Đây là một câu hỏi rộng mà không có câu trả lời dễ dàng; đó là một chặng đường dài từ các điện tử lướt qua dây đồng đến kết xuất một trang web trong Firefox. Tôi sẽ cố gắng cung cấp cho bạn một cái nhìn tổng quan từ dưới lên trên và hướng bạn đến những điều đúng đắn để tìm kiếm.
Mã hóa số
Động lực cơ bản là để tính toán mọi thứ, như khi làm arithologists¹. Điều đầu tiên để xem xét là làm thế nào để đại diện cho số. Đã có nhiều cách tiếp cận, sử dụng thập phân hoặc ternary và tôi nghĩ ngay cả các hệ bát phân, nhưng cuối cùng, nhị phân đã thắng. Bây giờ chúng tôi biết rằng chúng tôi phải xây dựng các thiết bị xử lý hai giá trị - hãy gọi chúng là và .101
Lưu ý rằng cũng có nhiều cách để mã hóa số ở dạng nhị phân. Sau khi bạn xây dựng bộ xử lý đầu tiên, bạn nhận ra lợi thế của việc thực hiện theo những cách nhất định. Các ví dụ phổ biến là hai phao bổ sung và IEEE . Đối với người mới bắt đầu, hạn chế bản thân đến số tự nhiên.
Cổng
Giả sử chúng ta sử dụng mã hóa nhị phân. Hãy nghĩ về cách bạn học thêm ở trường tiểu học và viết tương tự cho các số nhị phân. Hóa ra, các khối xây dựng của đại số Boolean đã có sẵn cho bạn; thật dễ dàng để xây dựng một bộ cộng cơ bản (và các hàm số học khác) bằng các cổng logic .
Làm thế nào để xây dựng các cổng như vậy nằm ngoài phạm vi của khoa học máy tính; kỹ thuật điện tử đã cung cấp nhiều giải pháp bằng cách sử dụng các ống hoặc bóng bán dẫn . Trụ sở để trao đổi ngăn xếp kỹ thuật điện cho câu hỏi này.
Đồng hồ và nhà nước
Không phải tất cả các cổng đều nhanh như nhau và không phải tất cả các phần của một tính toán đều có cùng số cổng. Do đó, chúng tôi phải cẩn thận hơn rằng các hoạt động riêng lẻ không vượt qua nhau. Nó đã được chứng minh hữu ích để sử dụng đồng hồ toàn cầu ; kết quả của một mạng cổng nhất định là trạng thái của các dây đầu ra ở cuối chu kỳ (có thể thay đổi dữ dội trong khi các cổng xếp theo các trạng thái cuối cùng riêng lẻ của chúng).
Điều đó có nghĩa là kết quả của một chu kỳ có thể phải được lưu trữ cho đến khi chu kỳ tiếp theo bắt đầu, ví dụ nếu bạn nối dây vòng. Có một số yếu tố cơ bản bạn có thể sử dụng để thay đổi hiệu ứng, tất cả được xây dựng từ cổng; một số được gọi là dép xỏ ngón . Chúng cũng được sử dụng để xây dựng các thanh ghi , các phần tử lưu trữ số cho nhiều chu kỳ đồng hồ nếu cần.
Kiến trúc và các lệnh
Bây giờ bạn có vô số lựa chọn thiết kế để thực hiện. Bộ xử lý của bạn cung cấp những hoạt động số học nào? Lệnh của bạn trông như thế nào? Có thể là giáo dục để xem xét kiến trúc MIPS có hình thức ban đầu dễ dàng so với các thiết kế khác. Có một cái nhìn vào các kế hoạch :
Bản gốc từ http://ube.ege.edu.tr/~erciyes/CENG311
Về cơ bản, đó là tìm nạp và phân tách các lệnh, một bộ các thanh ghi, ALU và điều khiển. Các lệnh mã hóa hoạt động ALU nào để thực hiện trên toán hạng nào (theo số lượng thanh ghi mà chúng được giữ), cách thao tác với chương trình counter² hoặc đăng ký để tải / lưu trữ từ / vào bộ nhớ³.
Cân nhắc thêm
Bây giờ bạn có một bộ xử lý làm việc theo nghĩa hiện đại, giả sử bạn đã tìm ra cách xây dựng bộ nhớ và cách cung cấp cho nó các lệnh. Trên đường đến một cỗ máy hiện đại, nhiều sự lựa chọn phải được thực hiện. Đây là một số:
Lựa chọn thay thế
Ở trên bị ảnh hưởng nặng nề bởi cách lịch sử bật ra. Trong một thế giới khác với những suy nghĩ khác nhau, máy tính có thể hoạt động khác nhau. Trên thực tế, có rất nhiều mô hình tính toán , một số trong đó có những ưu điểm khiến chúng hữu ích như sự trừu tượng cho các máy thật trong nhiều trường hợp. Cũng có những nỗ lực bắt chước cách mà bộ não của chúng ta hoạt động, đó là cho phép điện toán thần kinh , hay nói chung là khai thác các chiến lược giải quyết vấn đề và lưu trữ thông tin được quan sát trong tự nhiên , nổi bật nhất là DNA và điện toán lượng tử .
Vì vậy, có lẽ (hy vọng?) Thông tin trên là tất cả lịch sử cổ đại thêm 50 hoặc 100 năm nữa kể từ bây giờ.
- Tất cả những điều thú vị chúng ta làm với máy tính ngày nay được chia thành nhiều nhiệm vụ số học nhỏ mà bộ xử lý thực hiện từng cái một.
- Nếu mô hình của bạn cho phép chương trình điều khiển luồng điều khiển, đây sẽ là địa chỉ bộ nhớ mà bộ xử lý nhận được lệnh tiếp theo. Bạn cũng có thể hình dung các máy chỉ đọc một bộ hướng dẫn cố định từ, giả sử, một cuộn băng. Trong thực tế, thực hiện sớm đã làm điều đó. Không nhảy có nghĩa là không có vòng lặp; một chương trình là một chuỗi các hướng dẫn hoàn toàn không được kiểm soát / mở ra tùy thuộc vào dữ liệu. Rõ ràng, việc có thể sử dụng cùng một chương trình cho nhiều dữ liệu đầu vào mạnh hơn.
- Giả sử bạn có trí nhớ; bộ xử lý của bạn hoạt động tốt mà không có nhưng sau đó chỉ có thể xử lý rất nhiều giá trị cùng một lúc. Các máy tính ban đầu đã đọc tất cả dữ liệu của họ từ băng và giữ chúng trong sổ đăng ký. Không có bộ nhớ, hãy để một mình lưu trữ, lưu trữ liên tục như chúng ta biết ngày nay.