Các chế độ địa chỉ Địa chỉ tức thời Phần địa chỉ của chỉ thị chứa chính toán hạng đó Không có bộ nhớ tham chiếu để lấy dữ liệu Thực hiện nhanh Phạm vi bị giới hạn Instruction Op
Trang 1CHƯƠNG 5
MỨC MÁY THÔNG
THƯỜNG
Trang 2Địa chỉ logic và địa chỉ vật lý
Trang 3Địa chỉ logic và địa chỉ vật lý
Xét đoạn bộ nhớ có địa chỉ thay đổi từ 0000h ÷ FFFFh (chiều dài đoạn là 64 KB).
đoạn, là độ lệch (offset) từ vị trí 0 của một đoạn cho trước
Ví dụ : như địa chỉ logic 0010h của đoạn mã
trong hình trên sẽ có địa chỉ thật sự là 28000h + 0010h = 28010h
Địa chỉ này gọi là địa chỉ vật lý Địa chỉ vật lý
chính là địa chỉ thật sự xuất hiện ở bus địa chỉ,
nó có chiều dài 20 bit
Trang 5Khuôn dạng lệnh
Chương trình bao gồm một dãy các chỉ thị, mỗi chỉ thị chỉ rõ một hành động cụ thể nào đó
Một phần chỉ thị gọi là Opcode – mã phép toán
Chỉ thị có thể không có địa chỉ hoặc có nhiều địa chỉ
Trang 63. Độ dài word của máy là bội số nguyên của chiều
dài ký tự: nếu mã ký tự có k bit thì chiều dài word cần phải là k, 2k, 3k, … tránh lãng phí không gian nhớ chứa ký tự
4. Số bit trong trường địa chỉ càng ngắn càng tốt
Trang 7Khuôn dạng lệnh
Mở rộng mã chỉ thị
Chỉ thị có (n+k) bit:
opcode: dài k bit có 2 k chỉ thị
address: dài n bit đánh được 2 n ô nhớ
opcode: dài k-1 bit có 2 k-1 chỉ thị
address: dài n+1 bit đánh được 2 n+1 ô nhớ
số chỉ thị chỉ còn một nửa, số ô nhớ tăng gấp
đôi
Trang 9Khuôn dạng lệnh
Nếu nhà thiết kế cần 15 chỉ thị 3 địa chỉ, 14 chỉ thị 2 địa chỉ, 31 chỉ thị 1 địa chỉ, 16 chỉ thị không có địa chỉ nào làm thế nào?
Trang 10Mã chỉ thị 8 bit
Mã chỉ thị 12 bit
Mã chỉ thị 16 bit
16 chỉ thị không có địa chỉ
Trang 12Khuôn dạng lệnh
Lệnh tham chiếu bộ nhớ
12bit để xác định địa chỉ
3 bit xác định mã lệnh
1 bit để xác định kiểu định địa chỉ
I=0: định địa chỉ trực tiếp
I=1 định địa chỉ gián tiếp
15 14 12 11 0
Trang 15AND 0xxx 8xxx And từ nhớ vào thanh ghi AC
ADD 1xxx 9xxx Add từ nhớ vào thanh ghi AC
LDA 2xxx Axxx Load từ nhớ vào thanh ghi AC
STA 3xxx Bxxx Lưu nội dung của thanh ghi AC vào bộ nhớ
BUN 4xxx Cxxx Rẽ nhánh không điều kiện
BSA 5xxx Dxxx Rẽ nhánh và lưu lại địa chỉ cũ
ISZ 6xxx Exxx Tăng và skip nếu nội dung bằng 0
Trang 16SPA 7010 Giữ lệnh tiếp theo nếu AC dương SNA 7008 Giữ lệnh tiếp theo nếu AC âm SZA 7004 Giữ lệnh tiếp theo nếu AC=0 SZE 7002 Giữ lệnh tiếp theo nếu bit nhớ bằng 0 HLT 7001 Dừng máy tính
15 14 12 11 0
0 111 1000 0000 0000
15 14 12 11 0
0 111 0000 0010 0000
Trang 17INP F800 Nhập ký tự vào thanh ghi AC
OUT F400 Lấy ký tự ra thanh ghi AC
SKI F200 Giữ cờ đầu vào
SKO F100 Giữ cờ đầu ra
ION F080 Khởi tạo chế độ ngắt
Trang 18 Gián tiếp qua bộ nhớ
Gián tiếp qua thanh ghi
Chỉ số
Thanh ghi
Tương đối
Trang 19Các chế độ địa chỉ
Địa chỉ tức thời
Phần địa chỉ của chỉ thị chứa chính toán hạng đó
Không có bộ nhớ tham chiếu để lấy dữ liệu
Thực hiện nhanh
Phạm vi bị giới hạn
Instruction
Operand Opcode
Trang 20Các chế độ địa chỉ
Trực tiếp
Địa chỉ trong chỉ thị là địa chỉ của ô nhớ chứa toán hạng
Address A Opcode
Instruction
Memory
Operand
Trang 21Các chế độ địa chỉ
Gián tiếp qua bộ nhớ
Địa chỉ trong lệnh là địa chỉ ô nhớ chứa địa chỉ thứ 2 Địa chỉ thứ 2 là địa chỉ ô nhớ chứa toán hạng
Address A Opcode
Instruction
Memory
Operand Pointer to operand
Address 2
Trang 22Các chế độ địa chỉ
Gián tiếp qua thanh ghi
Địa chỉ trong lệnh là địa chỉ thanh ghi Nội dung thanh ghi là địa chỉ ô nhớ chứa toán hạng
Register Address R Opcode
Instruction
Memory
Operand Pointer to Operand
Registers
Trang 23Address A
+
Trang 24Các chế độ địa chỉ
Tương đối
Địa chỉ ô nhớ chứa toán hạng được xác định bằng cách cộng địa chỉ trong lệnh với nội dung thanh ghi PC
Trang 26Hoạt động của một phần tử (cell) nhớ
Trang 27Thao tác đọc bộ nhớ - Bước 1
Address bus Data bus
CPU places address (XXXX) of the memory location on the address bus
Memory request Read
CPU gửi ra tín hiệu điều khiển Memory
Request và Read để cho biết nó có yêu cầu
đọc bộ nhớ
Trang 28Thao tác đọc bộ nhớ - Bước 2
Address bus Data bus
Memory request Read
Accessed location at XXXX
Memory places data from the
accessed location onto the data bus
Trang 29Thao tác đọc bộ nhớ - Bước 3
Address bus Data bus
Memory request
Read
Memory request Read
The CPU removes the Memory Request and Read signals
CPU latches the data into a register
Register
Trang 30Thao tác ghi bộ nhớ - bước 1
Address bus Data bus
CPU places address (YYYY) of the memory location on the address bus
The CPU sends out a Memory Request control
signal to indicate that it wants to perform a memory operation
Memory request
Trang 31Thao tác ghi bộ nhớ - bước 2
Address bus Data bus Memory request
CPU places the data from a register onto the data bus
Register
The CPU sends out a Write control signal to
indicate that valid data is available on the data bus
Write
Trang 32Thao tác ghi bộ nhớ - bước 3
Address bus Data bus Memory request
Memory copies the data bus into the accessed location
Register
Write
Accessed location
at YYYY
The CPU removes the Write signal to complete
the memory write operation
Memory request Write
Trang 33Lược đồ nhớ
Là cách mô tả bộ nhớ của hệ thống thông qua hàng dọc;
có nghĩa là biểu diễn mô hình ma trận nhớ trong đó các hàng sẽ tương ứng với các đơn vị nhớ Trong một vùng địa chỉ nhớ gồm các phân vùng nhỏ chứa các nguồn tài nguyên riêng biệt
Địa chỉ thấp
Địa chỉ cao
Trang 34Lược đồ nhớ
Kích thước các dữ liệu được lưu trong bộ nhớ chính là số lượng các bit có thể lưu trong một đơn vị nhớ là cố định và chính bằng số các cột trong ma trận nhớ đó
Một đoạn dữ liệu:
Các đoạn mã của chương trình, các dữ liệu…
Được lưu trong một địa chỉ duy nhất hay chính là các hàng trong bộ nhớ đó
Một số đoạn trong bộ nhớ được thiết kế dành riêng cho các mục đích đặc biệt
Ví dụ: BIOS, Hệ điều hành
Trang 35Lược đồ nhớ
Kích thước không gian nhớ: số lượng các đơn vị nhớ
Ví dụ: không gian nhớ 2m, m là đường địa chỉ cần có của bộ VXL
Trang 37Bộ giải mã địa chỉ ( Address Decoding )
Giải mã địa chỉ là một cách sử dụng địa chỉ để cho phép tại một thời điểm chỉ có một thiết nhớ làm việc trong khi các thiết bị khác không được cấp phép
Địa chỉ đầy đủ được chia ra làm hai nhóm;
Nhóm thứ nhất được sử dụng để xác định thiết bị nhớ
Nhóm thứ hai xác định đơn vị nhớ trong thiết bị nhớ được lựa chọn
Trang 38Bộ giải mã địa chỉ ( Address Decoding )
Để chia một địa chỉ ra thành hai nhóm như trên cần phải biết được độ lớn của thiết bị nhớ đó và không gian nhớ là bao nhiêu?
Kích thước không gian nhớ của thiết bị : 2m, m là số đường địa chỉ đến thiết bị đó
a m-1 a m-2 a m-3 … a k a k-1 a k-2 … a 2 a 1 a 0
m-k bit dùng để xác định thiết bị nhớ
k bit còn lại được nối trực tiếp đến thiết bị nhớ
Ta thấy, các bit có trọng số cao luôn để thực hiện việc
cho phép hay không cho phép thiết bị nhớ hoạt động,
các bit có trọng số thấp được dùng để truy cập vào đơn
vị nhớ
Trang 39Bộ giải mã địa chỉ ( Address Decoding )
Ví dụ, một thiết bị nhớ có 28 đường địa chỉ , ta có
228=256Mega đơn vị nhớ Có nghĩa là phải sử dụng
28 bit địa chỉ để xác định đơn vị nhớ trong thiết bị đó Tất cả các Bit còn lại trong địa chỉ đầy đủ đó sẽ được
sử dụng để kích hoạt hay không kích họat thiết bị.
Bộ VXL cũng thông qua các bit còn lại này để xác định bộ nhớ sẽ được đặt ở đâu trong lược đồ nhớ.
Trang 40Bộ giải mã địa chỉ ( Address Decoding )
Kích thước bộ nhớ cùng với số lượng các đường địa chỉ cần thiết để truy cập vào tất cả các đơn vị nhớ trong lược đồ nhớ đó
Kích thước nhớ Số đường dữ liệu Kích thước nhớ Số đường dữ liệu
Trang 41Bộ giải mã địa chỉ ( Address Decoding )
Ví dụ: Có một bộ VXL có không gian nhớ là 256Meg đang có địa chỉ là 35E3C03 truy cập vào một thiết bị nhớ
có dung lượng là 16Meg Vậy
Cần bao nhiêu đường địa chỉ để cho phép kích hoạt thiết
bị nhớ có không gian nhớ là 16 Meg này?
Địa chỉ nào trong thiết bị nhớ 16 Meg là địa chỉ sẽ được sử dụng để truyền nhận dữ liệu
Địa chỉ thấp nhất trong bản đồ nhớ của thiết bị nhớ 16 Meg
là bao nhiêu?
Địa chỉ cao nhất trong bản đồ nhớ của thiết bị nhớ 16 Meg
là bao nhiêu?
Trang 42Bộ giải mã địa chỉ ( Address Decoding )
Ví dụ: Có một bộ VXL có không gian nhớ là 256Meg đang có địa chỉ là 35E3C03 truy cập vào một thiết bị nhớ có dung lượng là 16Meg Vậy
Số đường địa chỉ để cho phép kích hoạt thiết bị nhớ có không gian nhớ 16M là:
Trang 43Các kiểu chỉ thị
Các chỉ thị vận chuyển dữ liệu: vd: copy dữ liệu
Các chỉ thị cho phép toán 2 ngôi
Các chỉ thị cho phép tóan một ngôi
Các chỉ thị so sánh và nhảy có điều kiện
Các chỉ thị gọi chương trình con
Các chỉ thị lặp
Các chỉ thị vào/ra