Tải bản đầy đủ (.pdf) (37 trang)

Bài giảng Kiến trúc máy tính (ThS. Nguyễn Hằng Phương) Chương 13

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.52 MB, 37 trang )

+

Chương 13
Tập lệnh:
Chế độ định địa chỉ và định dạng


+ NỘI DUNG
1. Các chế độ định địa chỉ
Địa chỉ tức thời
Địa chỉ trực tiếp
Địa chỉ gián tiếp
Địa chỉ thanh ghi
Địa chỉ gián tiếp thanh ghi
Địa chỉ thay thế
Địa chỉ ngăn xếp
2. Chế độ địa chỉ của x86 và ARM
3. Định dạng lệnh
Chiều dài lệnh
Phân bổ Bit
Lệnh có độ dài thay đổi
4. Các định dạng lệnh của x86 và ARM


+

1. Các chế độ định địa chỉ
 Tức

thời


 Trực

tiếp

 Gián

tiếp

 Thanh

ghi

 Thanh

ghi gián tiếp

 Thay

thế

 Ngăn

xếp


Các chế độ định địa chỉ


+


Các chế độ định địa chỉ cơ bản



A = nội dung trường address trong từ lệnh



R = Nội dung trường address trong lệnh tham chiếu đến thanh ghi



EA = địa chỉ hiệu dụng của vị trí chứa tốn hạng đc tham chiếu



(X) = Nội dung của vị trí bộ nhớ X hoặc thanh ghi X


+

Địa chỉ tức thời
Dạng định địa chỉ đơn giản nhất
 Tốn hạng = A
 Có thể được sử dụng để định nghĩa và sử dụng hằng số hoặc thiết
lập giá trị ban đầu của biến
 Số thường được lưu trữ dưới dạng bù 2
 Bit ngoài cùng bên trái của trường tốn hạng là bit dấu
 Ưu điểm:
Khơng cần tham chiếu bộ nhớ để lấy dữ liệu toán hạng (chỉ có 1 lần truy

xuất lệnh)  tiết kiệm một chu kỳ cache hoặc bộ nhớ trong chu kỳ lệnh.
 Nhược điểm:
Kích thước của số bị giới hạn bởi kích thước của trường địa chỉ.
Vì trong các tập lệnh, kích thước trường địa chỉ thường nhỏ hơn kích
thước từ



Địa chỉ trực tiếp








Trường địa chỉ chứa địa chỉ hiệu dụng của toán hạng
Địa chỉ hiệu dụng (EA) = trường địa chỉ (A)
Phổ biến trong các thế hệ máy tính trước đây
Chỉ tham chiếu bộ nhớ 1 lần để lấy dữ liệu
Khơng cần tính tốn để tìm EA
Hạn chế: chỉ cung cấp một không gian địa chỉ hữu hạn


+

Địa chỉ gián tiếp

 Trường


địa chỉ tham chiếu đến địa chỉ của một từ trong bộ
nhớ chứa địa chỉ đầy đủ của toán hạng
 EA = (A)
 Dấu ngoặc đơn được hiểu như là nội dung của
 Tìm trong A, tìm địa chỉ (A), tới đó để lấy tốn hạng
 VD: ADD (A)


+

Địa chỉ gián tiếp (2)



Ưu điểm:
Không gian địa chỉ lớn
Với một từ có kích thước N cho phép một khơng gian địa chỉ là 2N
Nhược điểm:
 1 thực thi lệnh đòi hỏi hai lần tham chiếu bộ nhớ để truy xuất toán
hạng
 Một để lấy ra địa chỉ, hai là để lấy ra giá trị của nó
Biến thể hiếm gặp của địa chỉ gián tiếp là địa chỉ gián tiếp nhiều tầng
 EA = (((A)))
 Nhược điểm: cần nhiều hơn hoặc bằng 3 tham chiếu bộ nhớ để truy
xuất được toán hạng  chậm hơn








+

Địa chỉ thanh ghi
Trường địa chỉ tham chiếu đến thanh ghi
chứ khơng tham chiếu địa chỉ bộ nhớ chính
 EA = R
 Số lượng thanh ghi hữu hạn
 Ưu điểm:







Nhược điểm:




Chỉ cần một trường địa chỉ nhỏ trong lệnh  lệnh ngắn hơn, truy
xuất lệnh nhanh hơn
Không cần tham chiếu bộ nhớ
Không gian địa chỉ giới hạn

Sử dụng nhiều thanh ghi để tăng hiệu quả



Gánh nặng cho người lập trình assembly hay người viết trình hợp dịch


+

Địa chỉ gián tiếp thanh ghi

Tương tự như địa chỉ gián tiếp
 Khác biệt ở chỗ trường địa chỉ tham chiếu đến thanh ghi
 EA = (R)
 Toán hạng nằm trong ô nhớ được trỏ tới bởi nội dung của
thanh ghi R
 Ưu:
 Không gian địa chỉ lớn hơn (trường địa chỉ tham chiếu đến vị
trí chứa địa chỉ có độ dài bằng một từ )
 Tham chiếu bộ nhớ ít hơn 1 lần so với địa chỉ gián tiếp



+

Địa chỉ dịch
(displacement addressing)

Kết hợp chế độ địa chỉ trực tiếp và địa chỉ gián tiếp thanh ghi
 EA = A + (R)
 Lệnh phải có hai trường địa chỉ, ít nhất một trong hai phải có
giá trị cụ thể









Giá trị trong một trường địa chỉ (giá trị = A) được sử dụng trực tiếp
Trường địa chỉ còn lại tham chiếu đến thanh ghi, nội dung trong
thanh ghi đó được cộng với A để tạo ra địa chỉ hiệu dụng

3 dạng sử dụng địa chỉ dịch phổ biến:




Địa chỉ tương đối
Địa chỉ thanh ghi cơ sở
Lập chỉ mục


+

(a) Địa chỉ tương đối


Thanh ghi được tham chiếu ngầm định là thanh ghi PC
 Địa chỉ lệnh tiếp theo được cộng với trường địa chỉ để tạo ra EA
 Với phép cộng này, trường địa chỉ được coi là số bù 2
 Do đó, địa chỉ hiệu dụng là một dịch vị tương đối của địa chỉ trong

lệnh



EA = A + (PC)



Lợi dụng tính cục bộ của bộ nhớ



Tiết kiệm bit địa chỉ trong lệnh nếu đa phần các tham chiếu bộ nhớ ở
tương đối gần với lệnh đang được thực thi


+

Địa chỉ thanh ghi cơ sở
 Thanh

ghi được tham chiếu chứa con trỏ tới một địa chỉ cơ
sở bộ nhớ chính. Trường địa chỉ chứa giá trị dịch đi từ địa
chỉ này


Tham chiếu thanh ghi có thể là cụ thể hoặc ngầm định




Giá trị dịch là biểu diễn số nguyên khơng dấu

 Khai
 VD:

thác tính cục bộ của tham chiếu bộ nhớ

thanh ghi đoạn trong x86


+

Indexed Addressing
Trường địa chỉ tham chiếu địa chỉ bộ nhớ chính. Thanh ghi được
tham chiêu chứa giá trị dịch chuyển dương từ địa chỉ này
 Tính tốn EA giống như với địa chỉ thanh ghi cơ sở
 Ứng dụng: hiệu quả để thực hiện các hoạt động lặp
 Autoindexing
 Tự động tăng hoặc giảm thanh ghi index sau mỗi lần tham chiếu
đến nó
 EA = A + (R)
 (R)  (R) + 1
 Postindexing
 Địa chỉ gián tiếp thực hiện trước, Indexing addressing sau
 EA = (A) + (R)
 Preindexing
 Indexing addressing thực hiện trước, Địa chỉ gián tiếp thực hiện
sau
 EA = (A + (R))




+

Địa chỉ ngăn xếp










Ngăn xếp là một mảng liên tiếp các vị trí nhớ
 Cịn được gọi là pushdown list or last-in-first-out queue
Ngăn xếp là một khối dự trữ các vị trí nhớ
 Các mục được thêm vào đỉnh ngăn xếp nên khối đó được lấp đầy
một phần
Con trỏ gắn với ngăn xếp có giá trị là địa chỉ của đỉnh ngăn xếp
 Con trỏ ngăn xếp được duy trì trong một thanh ghi
 Vì vậy, tham chiếu đến các vị trí ngăn xếp trong bộ nhớ trong thực
tế là địa chỉ gián tiếp thanh ghi
Là một dạng của địa chỉ ngầm định
Lệnh máy không cần thêm tham chiếu bộ nhớ nhưng hoạt động
ngầm định trên đỉnh của ngăn xếp


Tính tốn chế độ định địa chỉ x86



Các chế độ định địa chỉ x86


+

ARM
Indexing
Methods

Tải và lưu trữ các lệnh chỉ tham chiếu bộ nhớ. Điều này luôn luôn được
thực hiện gián tiếp thông qua một thanh ghi cơ sở cộng với độ lệch


+

Địa chỉ lệnh xử lý dữ liệu và lệnh rẽ
nhánh ARM




Các lệnh xử lý dữ liệu


Sử dụng hoặc định địa chỉ thanh ghi hoặc kết hợp giữa định địa chỉ
thanh ghi và tức thì




Với định địa chỉ thanh ghi, giá trị trong một tốn hạng thanh ghi có
thể được thu nhỏ bằng một trong năm toán tử dịch

Các lệnh rẽ nhánh
 Dạng duy nhất của định địa chỉ cho các lệnh rẽ nhánh là định địa chỉ
tức thì
 Lệnh chứa 24 bit giá trị
 Đã dịch 2 bit để địa chỉ nằm trên ranh giới từ
 Khoảng hiệu quả +/- 32MB từ PC


+

ARM Load/Store Multiple Addressing


3. Định dạng lệnh
 Định nghĩa cách bố trí của các bit trong 1 lệnh (trong các
trường thành phần của nó)
 Bao gồm:

 1 opcode
 Khơng hoặc nhiều tốn hạng, ngầm định hoặc rõ ràng
 Phải ngầm định hoặc rõ ràng chỉ ra chế độ địa chỉ cho
từng toán hạng
 Với mỗi tập lệnh, có thể có nhiều định dạng được sử
dụng



+

Độ dài lệnh
 Vấn

đề thiết kế cơ bản nhất
 Ảnh hưởng, và bị ảnh hưởng bởi:
 Kích thước bộ nhớ
 Tổ chức bộ nhớ
 Cấu trúc bus
 Độ phức tạp của bộ xử lý
 Tốc độ bộ xử lý
 Trade off giữa hiệu quả của lệnh và tiết kiệm không gian


+

Độ dài lệnh
 Cần

xem xét:
 Độ dài lệnh có nên bằng độ dài dữ liệu bộ nhớ truyền
đi. Hoặc một trong hai cái nên là bội của cái còn lại
 Tốc độ truyền bộ nhớ chậm hơn tốc độ VXL
 Độ dài lệnh nên là bội của độ dài ký tự (thương là 8 bit)
và bội của độ dài của các số dấu chấm tĩnh


+


Phân bổ bit
Các yếu tố ảnh hưởng đến việc sử dụng bit địa chỉ trong 1 lệnh


Số lượng chế độ địa chỉ



Số lượng toán hạng



Thanh ghi hay bộ nhớ



Số lượng tập thanh ghi



Dải địa chỉ



Độ chi tiết địa chỉ


×