2013-04-01 38 views
28

Bộ đếm chương trình giữ địa chỉ của lệnh cần được thực hiện tiếp theo, trong khi thanh ghi lệnh giữ lệnh thực tế được thực thi. không phải một trong số họ là đủ?Đăng ký chương trình và hướng dẫn đăng ký

Và độ dài của mỗi thanh ghi này là bao nhiêu?

Cảm ơn.

Trả lời

45

Bạn sẽ cần cả hai. Bộ đếm chương trình (PC) giữ địa chỉ của lệnh kế tiếp được thực thi, trong khi thanh ghi chỉ lệnh (IR) giữ lệnh được mã hóa. Khi tìm nạp lệnh, bộ đếm chương trình được tăng thêm một "giá trị địa chỉ" (đến vị trí của lệnh kế tiếp). Hướng dẫn sau đó được giải mã và thực hiện một cách thích hợp.

Lý do tại sao bạn cần cả hai là bởi vì nếu bạn chỉ có một bộ đếm chương trình và sử dụng nó cho cả hai mục đích bạn sẽ nhận được hệ thống rắc rối sau:

[Bắt đầu thực hiện chương trình]

  1. PC chứa 0x00000000 (nói đây là địa chỉ bắt đầu của chương trình trong bộ nhớ)
  2. Lệnh mã hóa được lấy từ bộ nhớ và được đặt vào PC.
  3. Hướng dẫn được giải mã và thực thi.
  4. Bây giờ là lúc để chuyển sang hướng dẫn tiếp theo để chúng tôi quay trở lại máy tính để xem địa chỉ của lệnh tiếp theo là gì. Tuy nhiên, chúng tôi gặp sự cố vì địa chỉ trước đó của máy tính đã bị xóa nên chúng tôi không biết hướng dẫn tiếp theo là ở đâu.

Vì vậy, chúng tôi cần một thanh ghi khác để giữ lệnh thực tế được tìm nạp từ bộ nhớ. Khi chúng tôi tìm nạp bộ nhớ đó, chúng tôi sẽ tăng PC để chúng tôi biết nơi tìm nạp hướng dẫn tiếp theo.

P.S. chiều rộng của thanh ghi thay đổi tùy thuộc vào kích thước từ của kiến ​​trúc. Ví dụ, đối với bộ xử lý 32 bit, kích thước từ là 32 bit. Do đó, các thanh ghi trên CPU sẽ là 32 bit. Sổ đăng ký hướng dẫn không khác nhau về kích thước. Sự khác biệt là trong hành vi và cách giải thích. Tuy nhiên, các hướng dẫn được mã hóa dưới nhiều dạng khác nhau, chúng vẫn chiếm một thanh ghi 32 bit. Ví dụ, bộ xử lý Nios II từ Altera chứa 3 loại lệnh khác nhau, mỗi loại được mã hóa khác nhau.Xem trang 6 của ftp://ftp.altera.com/up/pub/Tutorials/DE2/Computer_Organization/tut_nios2_introduction.pdf

Bạn cũng có thể tìm hiểu thêm về cấu trúc của bộ xử lý Nios II từ liên kết ở trên. Nó là một CPU IP đơn giản. Tất nhiên Intel có đặc điểm kỹ thuật/thiết kế riêng của họ và nó sẽ thay đổi.

5

Như bạn đã nêu, Program Counter (PC) giữ địa chỉ của lệnh tiếp theo để thực thi và Instruction Register (IR) lưu trữ lệnh thực tế sẽ được thực thi (nhưng không phải địa chỉ của nó).

Liên quan đến chiều dài của các thanh ghi này, các máy hiện tại có máy tính 64 bit. Chiều dài của IR (từ một điểm nhìn logic) phụ thuộc vào kiến ​​trúc:

Vì các máy này có thể tìm nạp, giải mã và thực hiện một số hướng dẫn mỗi chu kỳ, việc triển khai vật lý IR không dễ mô tả trong một vài dòng.

+0

Hoặc chính xác hơn, không thực sự là "đăng ký chỉ dẫn" vật lý, bởi vì việc tìm nạp mã trong các CPU siêu lớn hiện đại (esp. OOO) xảy ra theo khối lớn. Tôi không nghĩ rằng tôi đã bao giờ nghe thuật ngữ, và nó không được đề cập ngay cả trong mô tả chi tiết về cách x86 CPU làm việc nội bộ. ([Pdf vi mô của Agner Fog] (http://agner.org/optimize/) hoặc sách hướng dẫn tối ưu hóa của Intel hoặc các liên kết khác trong [tag wiki x86] (http://stackoverflow.com/tags/x86/info) Trừ khi bạn đang thực sự thiết kế phần cứng (đơn giản), nó có lẽ không phải là một thuật ngữ hữu ích để hiểu cách thức hoạt động của CPU. –

Các vấn đề liên quan