1. CHƯƠNG 5
MỨC MÁY THÔNG
THƯỜNG
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 1 / 50
2. Địa chỉ logic và địa chỉ vật lý
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 2 / 50
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).
Địa chỉ logic hay offset: địa chỉ trong một
đ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
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 3 / 50
4. Khuôn dạng lệnh
Opcode
(a)
Opcode Address
(b)
Opcode Address 1 Address 2
(c)
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 4 / 50
5. Khuô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ỉ
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 5 / 50
6. Khuôn dạng lệnh
Các tiêu chuẩn thiết kế khuôn dạng chỉ thị
1. Chỉ thị ngắn tốt hơn chỉ thị dài
2. Có đủ chỗ trong chỉ thị để biểu diễn tất cả các
thao tác
3. Độ 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
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 6 / 50
7. Khuôn dạng lệnh
Mở rộng mã chỉ thị
Chỉ thị có (n+k) bit:
opcode: dài k bit có 2k chỉ thị
address: dài n bit đánh được 2n ô nhớ
Nếu
opcode: dài k-1 bit có 2k-1 chỉ thị
address: dài n+1 bit đánh được 2n+1 ô nhớ
số chỉ thị chỉ còn một nửa, số ô nhớ tăng gấp
đôi
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 7 / 50
8. Khuôn dạng lệnh
Ví dụ: xét một máy có chỉ thị dài 16 bit: 16 chỉ thị 3
địa chỉ
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Opcode Address 1 Address 2 Address 3
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 8 / 50
9. Khuô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?
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 9 / 50
10. Khuôn dạng lệnh
0000 xxxx yyyy zzzz
Mã chỉ 0001 xxxx yyyy zzzz 15 chỉ thị
thị 4 bit … 3 địa chỉ
1101 xxxx yyyy zzzz
1110 xxxx yyyy zzzz
1111 0000 yyyy zzzz
Mã chỉ 1111 0001 yyyy zzzz 14 chỉ thị
thị 8 bit …
1111 1100 yyyy zzzz
2 địa chỉ
1111 1101 yyyy zzzz
1111 1110 0000 zzzz
Mã chỉ 1111 1110 0001 zzzz
thị 12 …
bit
1111 1110 1110 zzzz 31 chỉ thị
1111 1110 1111 zzzz
1địa chỉ
1111 1111 0000 zzzz
1111 1111 0001 zzzz
…
1111 1111 1110 zzzz
1111 1111 1111 0000
Mã chỉ 1111 1111 1111 0001 16 chỉ thị
thị 16 … không có
1111 1111 1111 1110
bit địa chỉ
10 /
1111 1111 1111 1111
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
11. Khuôn dạng lệnh
3 khuôn dạng lệnh cơ bản
Lệnh tham chiếu bộ nhớ
Lệnh tham chiếu thanh ghi
Lệnh vào/ra
Cấu trúc khuôn dạng lệnh
Ví dụ: Độ lớn: 16 bit, chia làm 3 phần
Mã lệnh (opcode): 3bit
Các thao tác: 13 bit
11 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
12. Khuôn dạng lệnh
Lệnh tham chiếu bộ nhớ
15 14 12 11 0
I Opcode Address
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
12 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
13. Khuôn dạng lệnh
Lệnh tham chiếu thanh ghi
15 14 12 11 0
0 111 Thao tác thanh ghi
Mã lệnh: 111
Bit 15 =0
13 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
14. Khuôn dạng lệnh
Lệnh vào/ra
15 14 12 11 0
1 111 Thao tác vào/ra
Mã lệnh: 111
Bit 15 =1
14 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
15. Khuôn dạng lệnh
Một số lệnh cơ bản
Tham chiếu thanh ghi
Ký hiệu I=0 I=1 Mô tả
AND 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
Ví dụ: 15 14 12 11 0
AND (I=0) 0 000 xxx ( 0xxx )
15 14 12 11 0
AND (I=1) 1 000 xxx ( 8xxx )
15 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
16. Khuôn dạng lệnh
Một số lệnh cơ bản
Ký hiệu Mô tả
Tham chiếu vào ra
CLA 7800 Xóa thanh ghi AC
Ví dụ:
CLE 7400 Xóa bit nhớ
CLA
CMA 7200 Bù của thanh ghi AC
15 14 12 11 0
CME 7100 Bù của bit nhớ
0 111 1000 0000 0000
CIR 7080 Quay phải thanh ghi AC và bit nhớ
INC CIL 7040 Quay trái thanh ghi AC và bit nhớ
15 14 12 11 0 INC 7020 Tăng AC
0 111 0000 0010 0000 SPA 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
16 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
17. Khuôn dạng lệnh
Một số lệnh cơ bản
Vào/ra
Ký hiệu Mô tả
INP 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
IOF F040 Hủy bỏ chế độ ngắt
Ví dụ: 15 14 12 11 0
INP 1 111 1000 0000 0000
15 14 12 11 0
ADD (I=1) 1 111 0000 1000 0000
17 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
18. Các chế độ địa chỉ
Xác định địa chỉ của các toán hạng tham gia vào
phép toán
Xác định địa chỉ của các từ nhớ tham gia vào phép
toán
Các chế độ địa chỉ
Tức thời
Trực tiếp
Gián tiếp qua bộ nhớ
Gián tiếp qua thanh ghi
Chỉ số
Thanh ghi
Tương đối
18 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
19. 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
Opcode Operand
19 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
20. Cá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
Instruction
Opcode Address A
Memory
Operand
20 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
21. Cá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 2
Instruction
Opcode Address A
Memory
Pointer to operand
Operand
21 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
22. Cá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
Instruction
Opcode Register Address R
Memory
Registers
Pointer to Operand Operand
22 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
23. Các chế độ địa chỉ
Chỉ số
Đị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 chỉ số
Instruction
Opcode Register R Address A
Memory
Registers
Pointer to Operand
+ Operand
23 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
24. Cá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
24 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
25. Các chế độ địa chỉ
Thanh ghi
Trường địa chỉ của chỉ thị chứa số của thanh ghi đang
chứa tóan hạng.
Instruction
Opcode Register
Address
Registers
Operand
25 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
26. Hoạt động của một phần tử (cell) nhớ
26 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
27. Thao tác đọc bộ nhớ - Bước 1
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ớ
CPU Read Memory
Memory request
Data bus
Address bus
CPU places address (XXXX) of the
memory location on the address bus
27 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
28. Thao tác đọc bộ nhớ - Bước 2
Accessed location at XXXX
CPU Read Memory
Memory request
Data bus
Address bus
Memory places data from the
accessed location onto the data bus
28 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
29. Thao tác đọc bộ nhớ - Bước 3
The CPU removes the Memory Request
and Read signals
CPU Read Memory
Memory request
Register
Data bus
Address bus
CPU latches the data into a register
29 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
30. Thao tác ghi bộ nhớ - bước 1
The CPU sends out a Memory Request control
signal to indicate that it wants to perform a
memory operation
CPU Memory
Memory request
Data bus
Address bus
CPU places address (YYYY) of the
memory location on the address bus
30 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
31. Thao tác ghi bộ nhớ - bước 2
The CPU sends out a Write control signal to
indicate that valid data is available on the data
bus
CPU Write Memory
Memory request
Register
Data bus
Address bus
CPU places the data from a register
onto the data bus
31 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
32. Thao tác ghi bộ nhớ - bước 3
The CPU removes the Write signal to complete
the memory write operation
CPU Write Memory
Memory request
Register Accessed location
Data bus at YYYY
Address bus
Memory copies the data bus into the
accessed location
32 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
33. Lượ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ỉ cao
Địa chỉ thấp
33 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
34. Lượ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
34 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
35. Lượ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
Đỉnh của bộ nhớ có địa chỉ là
FFFFF = 1111 1111 1111 1111 1111.
Bộ VXL truy cập vào địa chỉ cao nhất của bộ nhớ bằng
cách đặt tất cả các đường địa chỉ đều bằng 1
Bộ VXL có 20 đường địa chỉ:
Không gian địa chỉ nhớ sẽ là 220=1048 576=1MB
35 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
36. Lược đồ nhớ
Số phân vùng (partition)
Số phân vùng:= (địa chỉ cao –địa chỉ thấp) +1
Hãy tính số phân vùng cho BIOS với
Địa chỉ cao: FFFF=65535
Địa chỉ thấp: FF00=65280
36 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
37. Bộ 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
37 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
38. Bộ 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ị đó
am-1 am-2 am-3 … ak ak-1 ak-2 … a2 a1 a0
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ớ.
38 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
39. Bộ 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ớ.
39 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
40. Bộ 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
1K 10 256MEG 28
256K 18 1GIG 30
1MEG 20 4GIG 32
16MEG 24 64GIG 36
40 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
41. Bộ 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?
41 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
42. Bộ 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à:
256M = 228 có 28 đường địa chỉ
16M=224 có 24 đường địa chỉ
Như vậy cần có 4 đường địa chỉ từ 28 – 24 để kích hoạt không
gian nhớ 16M
Địa chỉ từ 23 – 0 là địa chỉ được sử dụng để truyền nhận dữ liệu
35E3C03 = 0011 0101 1110 0011 1100 0000 0011
0011 | 0000 0000 0000 0000 0000 0000 – địa chỉ thấp nhất
0011 | 1111 1111 1111 1111 1111 1111 – địa chỉ cao nhất
42 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử
43. Cá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
43 /
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử