<< Chapter < Page Chapter >> Page >
Vị trí các toán hạng Thí dụ Toán hạng cho lệnh tính toán trong ALU Vị trí đặt kết quả Cách thức thâm nhập vào toán hạng
Ngăn xếp B 5500 HP 3000/70 0 Ngăn xếp Lệnh Push, Pop
Thanh ghi tích luỹ PDP 8 Motorola 6809 1 Thanh ghi tích luỹ Lệnh nạp vào hoặc lấy ra từ thanh ghi tích luỹ (load, store)
Thanh ghi đa dụng IBM 360 DEC, VAX 2 hoặc 3 Thanh ghi hoặc bộ nhớ Lệnh nạp vào hoặc lấy ra từ thanh ghi hoặc bộ nhớ
Bảng II.1 : Ví dụ về cách chọn lựa vị trí các toán hạng

Một vài nhà sản xuất máy tính tuân thủ chặt chẽ các kiểu chọn vị trí toán hạng nêu trên, nhưng phần nhiều các bộ xử lý dùng kiểu hỗn tạp. Ví dụ, mạch xử lý 8086 của Intel dùng cùng một lúc kiểu "thanh ghi đa dụng" và kiểu "thanh ghi tích luỹ".

Ví dụ minh hoạ chuỗi lệnh phải dùng để thực hiện phép tính C := A + B trong 3 kiểu kiến trúc phần mềm.

Kiến trúc ngăn xếp Kiến trúc thanh ghi tích luỹ Kiến trúc thanh ghi đa dụng
Push APush BADDPop C Load AADD BStore C Load R1, AADD R1, BStore R1, C

Bảng II.2: Chuỗi lệnh dùng thực hiện phép tính C := A + B

(giả sử A, B, C đều nằm trong bộ nhớ trong)

Hiện tại các nhà sản xuất máy tính có khuynh hướng dùng kiến trúc phần mềm thanh ghi đa dụng vì việc thâm nhập các thanh ghi đa dụng nhanh hơn thâm nhập bộ nhớ trong, và vì các chương trình dịch dùng các thanh ghi đa dụng có hiệu quả hơn.

Loại kiến trúc Lợi điểm Bất lợi
Ngăn xếp(Stack) - Lệnh ngắn FIXME: A LIST CAN NOT BE A TABLE ENTRY.Ít mã máyLàm tối thiểu trạng thái bên trong của máy tínhDễ dàng tạo ra một bộ biên dịch đơn giản cho kiến trúc ngăn xếp FIXME: A LIST CAN NOT BE A TABLE ENTRY. Thâm nhập ngăn xếp không ngẫu nhiên.Mã không hiệu quảKhó dùng trong xử lý song song và ống dẫnKhó tạo ra một bộ biên dịch tối ưu
Thanh ghi tích luỹ(Accumulator Register) FIXME: A LIST CAN NOT BE A TABLE ENTRY. Lệnh ngắnLàm tối thiểu trạng thái bên trong của máy tính (yêu cầu ít mạch chức năng).Thiết kế dễ dàng FIXME: A LIST CAN NOT BE A TABLE ENTRY. Lưu giữ ở thanh ghi tích luỹ là tạm thời.Nghẽn ở thanh ghi tích luỹKhó dùng trong xử lý song song và ống dẫnTrao đổi nhiều với bộ nhớ.
Thanh ghiđa dụng(General Register) FIXME: A LIST CAN NOT BE A TABLE ENTRY. Tốc độ xử lý nhanh, định vị đơn giản.Ít thâm nhập bộ nhớ.Kiểu rất tổng quát để tạo các mã hữu hiệu FIXME: A LIST CAN NOT BE A TABLE ENTRY. Lệnh dàiSố lượng thanh ghi bị giới hạn

Bảng II.3: Điểm lợi và bất lợi của 3 kiểu kiến trúc phần mềm

Kiểu kiến trúc thanh ghi đa dụng

Do hiện nay kiểu kiến trúc thanh ghi đa dụng chiếm vị trí hàng đầu nên trong các phần sau, ta chỉ đề cập đến kiểu kiến trúc này.

Đối với một lệnh tính toán hoặc logic điển hình (lệnh ALU), có 2 điểm cần nêu lên.

Trước tiên, một lệnh ALU phải có 2 hoặc 3 toán hạng. Nếu trong lệnh có 3 toán hạng thì một trong các toán hạng chứa kết quả phép tính trên hai toán hạng kia (Ví dụ: add A, B, C).

Nếu trong lệnh có 2 toán hạng thì một trong hai toán hạng phải vừa là toán hạng nguồn, vừa là toán hạng đích (Ví dụ: add A, B).

Thứ hai, số lượng toán hạng bộ nhớ có trong lệnh. Số toán hạng bộ nhớ có thể thay đổi từ 0 tới 3.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Giáo trình kiến trúc máy tính. OpenStax CNX. Jul 30, 2009 Download for free at http://cnx.org/content/col10818/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Giáo trình kiến trúc máy tính' conversation and receive update notifications?

Ask