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

Kiến trúc máy tính ngành điện tử chương 3 Bộ tính toán số học

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 (2.49 MB, 57 trang )

Câu hỏi

• Câu 1: Hãy nêu chức năng của tập lệnh MIPS??
• Câu 2: Trong tập lệnh MIPS dùng thanh ghi gì để chứa
kết quả của phép nhân? Và vì sao?

• Câu 3: Trong MIPS các lệnh số thực được chia làm mấy
nhóm và đó là những nhóm nào?


Chương 3:

BỘ TÍNH TOÁN SỐ HỌC


3.1 GIỚI THIỆU

• MIPS: Microprocessor without Interlocked Pipeline
Stages

• Là một tập lệnh thườngTập
được
sử
dụng
rộng
rãi
trong
các
lệnh

hệ thống nhúng và là nền tảng cho nhiều kiến trúc tập lệnh


MIPS

gì?
thế hệ mới

• Các bộ xử lí sẽ chỉ xử lí được tập các lệnh đã được định
sẵng trong bộ xử lí đó. Vì thế các hệ thống nhúng và một
số loại siêu máy tính thuộc về kiến trúc tập lệnh MIPS thì
chỉ có thể thực thi được các chương trình viết bằng tập
lệnh MIPS.


3.1 GIỚI THIỆU

• Các lệnh nhân chia trong tập lệnh MIPS
• Kiến trúc phần cứng cho việc tính toán phép nhân và chia
• Biểu diễn số thực trong máy tính
• Các lệnh xử lý số thực trong tập lệnh MIPS


3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN


3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN


3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN
Biểu diễn giá trị từ −2𝑛−1 đến 2𝑛−1 − 1
32


Số dương: 0
Số âm: 1

1

n – 1 bit thấp


3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN

• Quy tắc kiểm tra bit dấu:
Cộng hai số dương nhưng kết quả là số âm, hoặc ngược
lại
Trừ một số âm ra khỏi một số dương nhưng kết quả là
một số âm, hoặc ngược lại


3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN

• MIPS kiểm tra tràn và thực hiện “xử lý ngoại lệ” hay
“ngắt quãng” để xử lý việc tràn

• MIPS cất giữ địa chỉ của lệnh gây ra tràn vào thanh ghi
đặc biệt EPC (exception program counter) để thực hiện xử
lý ngoại lệ


3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN
Các dạng lệnh
số học


Nhóm lệnh số học
không dấu (addu,
subu, addiu)

C hoặc Java

Nhóm lệnh số học
có dấu (add, sub,
addi)

Fortran


3.3 PHÉP NHÂN


Ví dụ:

Tính phép nhân sau:
Phép nhân :
0x0=0
0x1=0
1x0=0
1x1=1

Phép cộng :
0+0=0
0+1=1
1+0=1

1 + 1 = 0 (nhớ 1)

1000
x 1001
1000
0000
0000
1000
1001000

Số bị nhân ( Multippli – cand )
Số nhân ( Multippli )

Tích ( Product )


3.3.1 BỘ NHÂN TUẦN TỰ
Thiết kế bộ nhân tuần tự là quá trình “ bắt chước “ giải thuật nhân bằng giấy và bút.
Các khối màu trắng là thanh ghi và các khối màu xám là các khối xử lý.
Dịch trái

Số bị nhân
(64 bit)

ALU
64bit

Tích
(64 bit)


Số nhân
(32 bit)

Ghi

Bộ
điều khiển

Kiến thức bộ nhân tuần tự 32 bit

Dịch phải


Bắt đầu
m0 = 1

Hoạt động của
bộ nhân tuần tự

1 . m0

m0 = 0

1a. Cộng dồn thanh
ghi số bị nhân vào
thanh ghi tích
2. Dịch trái 1 bit thanh ghi số bị nhân
Dịch phải 1 bit thanh ghi số nhân

32 lần ?

Sai
Đúng
Kết thúc


Dịch trái

Số bị nhân
(32 bit)

ALU
64bit

Ghi

Tích
(64 bit)
Dịch phải
Số nhân

Bộ
điều khiển

Kiến thức bộ nhân tuần tự 32 bit tối ưu


Bắt đầu
m0 = 1

Hoạt

động
của bộ
nhân
tuần tự

1 . m0

m0 = 0

1a. Cộng dồn thanh ghi
số bị nhân vào 32 bit cao
của thanh ghi tích

2. Dịch phải 1 bit thanh ghi tích

32 lần ?
Sai
Đúng
Kết thúc


Lệnh
nhân
trong
MIPS


Lệnh

Ví dụ


mult

Mult Şs1, Şs2

Multu

Hoạt động

Nhân 2 số nguyên có dấu trong thanh ghi Şs1 và
Şs2, lưu kết quả vào thanh ghi Hi và Lo
Multu Şs1, Şs2 Nhân 2 số nguyên không dấu trong thanh ghi
Şs1 và Şs2, lưu kết quả vào thanh ghi Hi và Lo

Mul

Mul Şs0, Şs1 ,
Şs2

mfhi

Mfhi Şs0

mflo

Mflo Şs0

Nhân 2 số nguyên có dấu trong thanh ghi Şs1 và
Şs2, lưu 32 bit thấp của kết quả vào thanh ghi
Şs0, thanh ghi Hi và Lo không xác định giá trị

Sao chép giá trị trong thanh ghi Hi và thanh ghi
Şs0
Sao chép giá trị trong thanh ghi Lo và thanh ghi
Şs0

Các lệnh hổ trợ phép nhân trong MIPS


Opcode và
funct của
các lệnh
chia trong
MIPS

Lệnh

Opcode

Funct

Mult

0x00 (0)

0x18 (24)

Multu

0x00 (0)


0x19 (25)

Mul

0x1C (28)

0x02 (2)

Mfli

0x00 (0)

0x10 (16)

mflo

0x00 (0)

0x12 (18)


3.4 PHÉP CHIA


Ví dụ:

Tính phép chia sau:
Số bị chia

1 0 0 1 0 1 01 1 0 0 010

- 1000 0
1 0 0 110
10
101
1010
Số dư - 1 0 0 0
1 010

Số chia
Thương


3.4.1 BỘ CHIA TUẦN TỰ
Thiết kế bộ nhân tuần tự là quá trình “ bắt chước “ giải thuật nhân bằng giấy và bút.
Các khối màu trắng là thanh ghi và các khối màu xám là các khối xử lý.
Dịch phải

Số bị nhân
(64 bit)

ALU
64bit

Số dư
(64 bit)

Thương
(32 bit)

Ghi


Bộ
điều khiển

Kiến thức bộ chia tuần tự 32 bit

Dịch trái


Bắt đầu

Hoạt động của
bộ chia tuần tự

Số dư >= 0

1. Trừ thanh ghi số dư với thanh ghi số
chia và lưu vào thanh ghi số dư

3. Dịch trái thanh ghi
thương và chỉnh bit
thấp nhất thành 1

4. Cộng thanh ghi số
dư với tha số chia và
lưu kết quả vào số
dư & Dịch trái thanh
ghi thương 1 bit

2 . kiểm

tra số dư

5. Dịch phải 1 bit thanh ghi số chia

33 lần ?
Đúng
Kết thúc

Số dư < 0

Sai


Số bị nhân
(32 bit)

ALU
32bit

Số dư

Số bị chia
Dịch trái
Số dư
(64 bit)
Thương

Bộ
điều khiển


Kiến thức bộ chia tuần tự 32 bit tối ưu


Bắt đầu

Hoạt
động
của bộ
nhân
tuần tự

Số dư >= 0

1. Dịch trái thanh ghi số dư. Trừ 32bit cao
thanh ghi số dư với thanh ghi số chia và lưu
Số dư < 0
vào 32bit cao thanh ghi số dư

3. Chỉnh bit thấp
nhất thành 1

2 . kiểm
tra số dư

32 lần ?
Đúng
Kết thúc

4. Khôi phục 32 bit
cao thanh ghi số dư


Sai


×