Lệnh hai địa chỉ

Một phần của tài liệu Giáo trình kiến trúc máy tính nguyễn trung đồng (Trang 89 - 92)

Chương IV Chương trình và thực hiện chương trình

6. Lệnh hai địa chỉ

Ở phần trên chúng ta đã xét các lệnh trong đó chỉ có một thành phần là

địa chỉ. Các lệnh này được gọi là các lệnh một địa chỉ. Các máy tính hiện

nay có thể hiểu và thực hiện được các lệnh hai địa chỉ. Lệnh hai địa chỉ gồm ba phần: 1. Mã lệnh 2. Địa chỉ thứ 1 3. Địa chỉ thứ 2 RET PCL  (SP) PCH  (SP + 1) SP  SP + 2

trong đó mã lệnh là phép tính hay thao tác cần thực hiện, địa chỉ thứ nhất là địa chỉ chứa toán hạng, còn địa chỉ thứ hai là địa chỉ lưu kết quả xử lý.

Trong máy tính, ngoài thanh ghi gộp thường có nhiều thanh ghi, được gọi là các thanh ghi đa năng. Các thanh ghi này cũng được sử dụng để lưu dữ liệu phục vụ cho quá trình tính toán và xử lý.

Các thanh ghi đa năng được gán tên để phân biệt. Số bit của các thanh ghi trong các bộ vi xử lý thường là 16 hoặc 32.

6.1. Các chế độ thực hiện lệnh hai địa chỉ

Các lệnh hai địa chỉ có thể được thực hiện trong các chế độ sau: Trao đổi dữ liệu giữa các ô nhớ trong bộ nhớ (Bộ nhớ - bộ nhớ)

Ví dụ 1: Máy tính thực hiện thao tác: Cộng nội dung ô nhớ có địa chỉ 963H vào nội dung ô nhớ có địa chỉ 492H

 Trao đổi dữ liệu giữa thanh ghi đa năng và bộ nhớ (Thanh ghi

đa năng - bộ nhớ)

 Trao đổi dữ liệu giữa bộ nhớ và các thanh ghi đa năng (Bộ nhớ

- thanh ghi đa năng)

 Cuối cùng là trao đổi dữ liệu giữa thanh ghi đa năng và thanh

ghi đa năng

6.2. Kiến trúc RISC và CISC

Có thể phân kiến trúc máy tính ra hai lớp cơ bản

 Máy tính với tập hợp lệnh tối thiểu (RISC – Reduced Instruction

Set Computer) và

 Máy tính với tập hợp lệnh phức hợp (CISC – Complex Instruction

Set Computer)

Các máy tính trước kia thường có một số ít các lệnh đơn giản vì công nghệ ống chân không và bán dẫn lúc bấy giờ quá đắt, kềnh càng và phát nhiều nhiệt, chưa cho phép thiết kế các lệnh phức hợp.

Khi công nghệ đạt được những tiến bộ nhất định, máy tính với kiến trúc tập hợp lệnh phức hợp (CISC) được thiết kế để có thêm nhiều lệnh và các lệnh càng ngày càng phức tạp. Chúng được thiết kế để hỗ trợ hệ điều hành và các trình biên dịch. Một lệnh thậm chí có thể thực hiện cả một chương trình con.

Nguyễn Trung Đồng – Tel 0983 410 866

Ý tưởng cơ bản để thiết kế các máy tính này là nếu lệnh càng phức hợp thì tập hợp các lệnh cơ bản càng ít và như vậy ít lệnh sẽ được đọc từ bộ nhớ hơn và do đó làm tăng tốc độ xử lý của CPU. Tuy nhiên các lệnh phức hợp lại đòi hỏi thêm linh kiện điện tử, làm cho bộ vi xử lý kềnh càng hơn và cuối cùng lại làm chậm tốc độ của CPU. Trong khi đó nhiều lệnh phức hợp lại hầu như không được sử dụng trong thực tế.

Vì thế lớp các máy tính có kiến trúc với tập hợp lệnh tối thiểu RISC xuất hiện với tư tưởng: chứa tập hợp một số ít các lệnh được chọn lọc kỹ lưỡng và các lệnh được thể hiện vật lý một cách đơn giản nhất có thể. Chương trình có thể sử dụng nhiều lệnh, nhưng hiệu suất tổng thể của máy tính tăng lên.

6.3. Kiến trúc xử lý song song

Ở một chừng mực nào đó, có thể tổ chức việc thực hiện lệnh nhờ vào kiến trúc có nhiều đơn vị số học và Logic trong một CPU. Mỗi ALU có thể thực hiện một thao tác đơn với tốc đọ cao. Ví dụ, ALU thực hiện phép cộng, ALU thực hiện phép trừ, ALU thực hiện phép nhân và ALU thực hiện phép chia. Trong trường hợp này, CU sau khi giải mã lệnh sẽ điều khiển một trong các ALU thực hiện lệnh, đồng thời CU nhận về lệnh tiếp theo để chuyển cho các ALU khác thực hiện. Cách thức này sẽ đạt hiệu quả cao khi thời gian thực hiện lệnh dài hơn nhiều so với thao tác lấy lệnh từ bộ nhớ. Trong hình vẽ, giả sử ta có 5 ALU, hai ALU thực hiện phép cộng, các ALU còn lại thực hiện các phép trừ, nhân và chia.

Giả sử một CPU có 5 đơn vị xử lý thực hiện các thao tác như hình vẽ dưới, ký hiệu là ĐVXL1 đến ĐVXL5. Khởi đầu, ĐVXL1 lấy về lệnh thứ nhất từ bộ nhớ và công việc chiếm một khoảng thời gian là t1. Trong khoảng

thời gian t2 llệnh đó được chuyển cho ĐVXL2 để giải mã, trong lúc ĐVXL1

Pr3 Pr2

Pr1

Các thanh ghi

lấy về lệnh kế tiếp. trong mỗi khoảng thời gian tiếp theo, ĐVXL1 sẽ lấy về một lệnh mới, các lệnh đã nhận sẽ chuyển cho các đơn vị xử lý kế tiếp. Kiểu kiến trúc này được gọi là Kiến trúc đường ống (Pipeline Machine). Thấy rằng, để thực hiện 1 lệnh cần một thời gian là T = t1 + t2 + t3 + t4 + t5. Tuy nhiên, vớ cách kiến trúc này, trong cùng thời gian đó, CPU thực hiện được 5 lệnh, và có thể coi là tốc độ xử lý đã tăng nhanh gấp 5 lần.

Insstruction Fetch Instruction Decode Generate Operand Address Operrand Fetch Execute IF ID GOA OF EX t1 t2 t3 t4 t5

Có thể mô tả phương thức hoạt động đường ống trong hình vẽ sau:

P1 1 2 3 4 5 6 7 8 9 P1: Đơn vị lấy lệnh IF

P2 1 2 3 4 5 6 7 8 P2: Đơn vị giải mã lệnh ID

P3 1 2 3 4 5 6 7 P3: Đơn vị tạo địa chỉ toán hạng GOA

P4 1 2 3 4 5 6 P4: Đơn vị lấy dữ liệu OF

P5 1 2 3 4 5 P5: Đơn vị thực hiện phép toán EX

1 2 3 4 5 6 7 8 9 t

Một phần của tài liệu Giáo trình kiến trúc máy tính nguyễn trung đồng (Trang 89 - 92)

Tải bản đầy đủ (PDF)

(183 trang)