43
Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 1 / 50 CHƯƠNG 5 MỨC MÁY THÔNG THƯỜNG

BGKTMT Ch5 mức máy qui ước

  • Upload
    toa-cao

  • View
    385

  • Download
    2

Embed Size (px)

Citation preview

Page 1: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 1 / 50

CHƯƠNG 5

MỨC MÁY THÔNG THƯỜNG

Page 2: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 2 / 50

Địa chỉ logic và địa chỉ vật lý

Page 3: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 3 / 50

Đị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

Page 4: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 4 / 50

Khuôn dạng lệnh

Opcode

Opcode Address

Opcode Address 1 Address 2

(a)

(b)

(c)

Page 5: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 5 / 50

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ỉ

Page 6: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 6 / 50

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

Page 7: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 7 / 50

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

Page 8: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 8 / 50

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

Page 9: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử 9 / 50

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?

Page 10: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử10 / 50

Khuôn dạng lệnh0000 xxxx yyyy zzzz

0001 xxxx yyyy zzzz

…1101 xxxx yyyy zzzz

1110 xxxx yyyy zzzz

1111 0000 yyyy zzzz

1111 0001 yyyy zzzz

…1111 1100 yyyy zzzz

1111 1101 yyyy zzzz

1111 1110 0000 zzzz

1111 1110 0001 zzzz

…1111 1110 1110 zzzz

1111 1110 1111 zzzz

1111 1111 0000 zzzz

1111 1111 0001 zzzz

1111 1111 1110 zzzz

1111 1111 1111 0000

1111 1111 1111 0001

…1111 1111 1111 1110

1111 1111 1111 1111

Mã chỉ thị 4 bit

Mã chỉ thị 8 bit

Mã chỉ thị 12 bit

Mã chỉ thị 16 bit

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ỉ

Page 11: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử11 / 50

Khuôn dạng lệnh

3 khuôn dạng lệnh cơ bảnLệnh tham chiếu bộ nhớLệnh tham chiếu thanh ghiLệnh vào/ra

Cấu trúc khuôn dạng lệnhVí dụ: Độ lớn: 16 bit, chia làm 3 phần

Mã lệnh (opcode): 3bit Các thao tác: 13 bit

Page 12: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử12 / 50

Khuô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

I Opcode Address

Page 13: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử13 / 50

Khuôn dạng lệnh

Lệnh tham chiếu thanh ghi

Mã lệnh: 111 Bit 15 =0

15 14 12 11 0

0 111 Thao tác thanh ghi

Page 14: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử14 / 50

Khuôn dạng lệnh

Lệnh vào/ra

Mã lệnh: 111 Bit 15 =1

15 14 12 11 0

1 111 Thao tác vào/ra

Page 15: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử15 / 50

Khuôn dạng lệnh

Một số lệnh cơ bản Tham chiếu thanh ghi

Ví dụ:AND (I=0)

AND (I=1)

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

15 14 12 11 0

0 000 xxx

15 14 12 11 0

1 000 xxx

( 0xxx )

( 8xxx )

Page 16: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử16 / 50

Khuôn dạng lệnh

Một số lệnh cơ bản Tham chiếu vào ra Ví dụ:

CLA

INC

Ký hiệu Mô tả

CLA 7800 Xóa thanh ghi AC

CLE 7400 Xóa bit nhớ

CMA 7200 Bù của thanh ghi AC

CME 7100 Bù của bit nhớ

CIR 7080 Quay phải thanh ghi AC và bit nhớ

CIL 7040 Quay trái thanh ghi AC và bit nhớ

INC 7020 Tăng AC

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

15 14 12 11 0

0 111 1000 0000 0000

15 14 12 11 0

0 111 0000 0010 0000

Page 17: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử17 / 50

Khuôn dạng lệnh

Một số lệnh cơ bản Vào/ra

Ví dụ:INP

ADD (I=1)

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

15 14 12 11 0

1 111 1000 0000 0000

15 14 12 11 0

1 111 0000 1000 0000

Page 18: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử18 / 50

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

Page 19: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử19 / 50

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

OperandOpcode

Page 20: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử20 / 50

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

Address AOpcode

Instruction

Memory

Operand

Page 21: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử21 / 50

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 AOpcode

Instruction

Memory

Operand

Pointer to operand

Address 2

Page 22: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử22 / 50

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

Register Address ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Page 23: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử23 / 50

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ố

Register ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Address A

+

Page 24: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử24 / 50

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

Page 25: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử25 / 50

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.

RegisterOpcode

Instruction

Registers

Operand

Address

Page 26: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử26 / 50

Hoạt động của một phần tử (cell) nhớ

Page 27: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử27 / 50

Thao tác đọc bộ nhớ - Bước 1

CPU Memory

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ớ

Page 28: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử28 / 50

Thao tác đọc bộ nhớ - Bước 2

CPU Memory

Address bus

Data bus

Memory request

Read

Accessed location at XXXX

Memory places data from the accessed location onto the data bus

Page 29: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử29 / 50

Thao tác đọc bộ nhớ - Bước 3

CPU Memory

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

Page 30: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử30 / 50

Thao tác ghi bộ nhớ - bước 1

CPU Memory

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

Page 31: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử31 / 50

Thao tác ghi bộ nhớ - bước 2

CPU Memory

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

Page 32: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử32 / 50

Thao tác ghi bộ nhớ - bước 3

CPU Memory

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

Page 33: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử33 / 50

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ỉ thấp

Địa chỉ cao

Page 34: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử34 / 50

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

Page 35: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử35 / 50

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

Page 36: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử36 / 50

Lược đồ nhớ

Số phân vùng (partition)

Hãy tính số phân vùng cho BIOS với

Địa chỉ cao: FFFF=65535

Địa chỉ thấp: FF00=65280

Số phân vùng:= (địa chỉ cao –địa chỉ thấp) +1

Page 37: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử37 / 50

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

Page 38: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử38 / 50

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ớ.

Page 39: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử39 / 50

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ớ.

Page 40: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử40 / 50

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

Page 41: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử41 / 50

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?

Page 42: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử42 / 50

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

Page 43: BGKTMT Ch5 mức máy qui ước

Bộ môn Kỹ thuật máy tính – Khoa Điện Tử43 / 50

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