Categories
Phần cứng

CPU hoạt động như thế nào?

Computer trivia: What online company grew from Pierre Omiyar’s efforts to find a broader market for his wife’s collection of Pez dispensers?
Answer: eBay.

Bên trong CPU

Để hiểu được CPU hoạt động
như thế nào, chúng ta hãy cũng nhìn vào bên trong và tìm hiểu cơ chế
luận lý được dùng để tạo ra CPU. Ngoài ra, để có cái nhìn sâu hơn về
CPU, bạn cũng cần phải tìm hiểu thêm về ngôn ngữ hợp ngữ (hay nôm na là
ngôn ngữ máy) cũng như một số việc mà các kỹ sư chế tạo đã làm, để gia
tăng tốc độ cho CPU.

CPU thực hiện một tập hợp các
chỉ lệnh máy để bảo bộ xử lý (BXL) phải làm gì. Và dựa trên nền tảng
các chỉ lệnh, CPU thực hiện ba việc cơ bản sau:

Bằng cách sử dụng đơn vị ALU
của mình, CPU có thể thực hiện các phép toán số học như cộng, trừ, nhân
hoặc chia. Các CPU mới hiện nay chứa thêm các BXL dấu chấm động cho
phép nó có thể thực hiện các tính toán cực kỳ phức tạp trên các số dấu
chấm động lớn.

CPU có thể di chuyển dữ liệu từ một vị trí bộ nhớ này đến một vị trí khác.

CPU có thể đưa ra các quyết định và nhảy đến một tập hợp các chỉ lệnh mới dựa trên các quyết định này.

Tuy CPU có thể thực hiện
nhiều tính toán rất phức tạp nhưng tất cả đều quy lại ba việc cơ bản
trên. Biểu đồ sau sẽ cho thấy khả năng thực hiện ba việc này của một
CPU đơn giản:

Nhìn vào sơ đồ khối mô phỏng kiến trúc CPU trên, ta có thể thấy CPU này có:

* Một tuyến địa chỉ – address bus (độ rộng có thể là 8, 16 hoặc 32 bit) để gửi địa chỉ đến bộ nhớ.

* Một tuyến dữ liệu – data bus (độ rộng có thể là 8, 16 hoặc 32 bit) để có thể gửi dữ liệu đến bộ nhớ hoặc nhận dữ liệu lại từ bộ nhớ.

* Một đường đọc – RD và ghi – WR để CPU “nói chuyện” với bộ nhớ nếu nó muốn thiết lập hoặc lấy vị trí địa chỉ.

* Một đường đồng hồ – clock line cho phép bộ xử lý nhận các xung đồng hồ tuần tự.

* Một đường reset – reset line để reset bộ đếm của chương trình về zero và khởi động lại sự thi hành.

Đây là các thành phần của một CPU đơn giản: (Giả sử ở ví dụ này, độ rộng của tuyến địa chỉ và dữ liệu là 8 bit)

Thanh ghi A, B và C là các chốt đơn giản để đặt các con lật (flip-flop)

Chốt địa chỉ giống như các thanh ghi A, B và C.

Bộ đếm chương trình là một chốt với khả năng phụ dùng để tăng 1 và cũng để reset về zero khi được yêu cầu.

ALU chỉ đơn giản là một bộ cộng 8 bit, hoặc nó có thể cộng, trừ, nhân và chia các giá trị 8-bit.

Thanh ghi kiểm tra là một
chốt đặc biệt có thể giữ các giá trị từ các phép so sánh trong ALU. Một
ALU có thể so sánh hai số một cách bình thường và xác định xem chúng
bằng nhau, số này nhỏ hơn số kia hay lớn hơn… Nó lưu trữ các giá trị
này trong các con lật và sau đó bộ giải mã chỉ lệnh có thể sử dụng các
giá trị này để đưa ra quyết định.

Có tất cả 6 khối được ghi là
"3-State" trong biểu đồ trên. Chúng là các bộ đệm 3 trạng thái
(tri-state). Một bộ đệm 3 trạng thái có thể cho qua trạng thái 1, 0
hoặc nó có thể ngắt kết nối đầu ra (bạn hãy tưởng tượng đến một khoá
chuyển có thể ngắt hoàn toàn đường ra từ một đường dây mà đầu ra đang
hướng về phía trước). Bộ đệm 3 trạng thái cho phép nhiều đầu ra để nối
kết với đường dây, nhưng bạn cần lưu ý là chỉ một trong số chúng mới
thực sự mang giá trị 1 hoặc 0 trên đường đi.

Thanh ghi chỉ lệnh và bộ giải mã chỉ lệnh chịu trách nhiệm điều khiển tất cả các thành phần khác.

Mặc dù chúng không được biểu diễn trên sơ đồ khối, nhưng sẽ có các đường điều khiển từ bộ giải mã chỉ lệnh bảo:

* Thanh ghi A chốt giá trị hiện tại trên tuyến dữ liệu.

* Thanh ghi B chốt giá trị hiện tại trên tuyến dữ liệu.

* Thanh ghi C chốt giá trị hiện tại ra ngoài, bởi ALU.

* Thanh ghi bộ đếm chương trình chốt giá trị hiện tại trên tuyến dữ liệu .

* Thanh ghi địa chỉ chốt giá trị hiện tại trên tuyến dữ liệu.

* Thanh ghi chỉ lệnh chốt giá trị hiện tại trên tuyến dữ liệu.

* Bộ đếm chương trình tăng.

* Bộ đếm chương trình reset về 0.

* Kích hoạt một trong sáu bộ đệm 3 trạng thái (6 đường riêng biệt).

* ALU thực hiện các tính toán gì.

* Thanh ghi kiểm tra chốt các bit kiểm tra của ALU.

* Kích hoạt đường RD.

* Kích hoạt đường WR.

* Các bit sẽ đến bộ giải mã chỉ lệnh từ các thanh ghi kiểm tra và đường đồng hồ cũng như từ các thanh ghi chỉ lệnh.

(st)

CPU hoạt động như thế nào?’]