Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Bài giảng kiến trúc máy tính và hợp ngữ: Kiến trúc bộ lệnh MIPS doc
MIỄN PHÍ
Số trang
107
Kích thước
470.4 KB
Định dạng
PDF
Lượt xem
1511

Bài giảng kiến trúc máy tính và hợp ngữ: Kiến trúc bộ lệnh MIPS doc

Nội dung xem thử

Mô tả chi tiết

TH028 – Kiến trúc máy tính và hợp ngữ

Bài 6. Kiến trúc bộ lệnh MIPS

Phạm Tuấn Sơn

[email protected]

2

• Sau bài này, SV có kh

ả n

ăng:

– Có kh

ả n

ăng l

ập trình h

ợp ng

ữ MIPS

– Gi

ải thích quan

điểm thi

ết k

ế

b

ộ lệnh MIPS

– Trình bày các v

ấn đề

c

ần quan tâm khi thi

ết

k

ế

m

ột b

ộ lệnh

– Có kh

ả n

ăng t

ự thi

ết k

ế

m

ột b

ộ lệnh theo m

ột

quan

điểm nào

đ

ó

M

ục tiêu

3

• Kiến trúc bộ lệnh MIPS

• Các vấn đề khi thiết kế bộ lệnh

• Quan điểm thiết kế bộ lệnh MIPS

Nội dung

4

• Công việc cơ bản nhất của CPU là thực thi các lệnh

(instruction).

• Các CPU khác nhau cài đặt các tập lệnh khác nhau. Tập

hợp các lệnh mà một CPU nào đó cài đặt gọi là kiến trúc

bộ lệnh (Instruction Set Architecture – ISA).

– Ví dụ: Intel 80x86 (Pentium 4), IBM/Motorola PowerPC

(Macintosh), MIPS, Intel IA64, ...

• Môn học sẽ sử dụng kiến trúc MIPS để minh họa.

• Tại sao sử dụng MIPS để giảng dạy thay vì Intel 80x86?

Kiến trúc bộ lệnh

5

Lệnh số học trong MIPS

• Cú pháp:

opt opr,opr1,opr2

trong đó:

opt – Tên thao tác (toán tử, tác tử)

opr – Thanh ghi (toán hạng, tác tố đích)

chứa kết quả

opr1 – Thanh ghi (toán hạng nguồn thứ 1)

opr2 – Thanh ghi hoặc hằng số (toán hạng

nguồn thứ 2)

6

Toán hạng thanh ghi

• MIPS hỗ trợ 32 thanh ghi đánh số từ $0 - $31.

Tại sao là 32 ? Để dễ sử dụng, các thanh ghi

còn có thể được truy xuất thông qua tên của nó.

• Mỗi thanh ghi có kích thước 32 bit. Tại sao là 32

?

– Trong MIPS, nhóm 32 bit được gọi là một từ (word)

• Trong đó, 8 thanh ghi thường được sử dụng để

thực hiện các phép tính được đánh số $16 -

$23.

$16 - $23 ~ $s0 - $s7 (saved register)

(tương ứng với biến C)

7

M

ột s

ố đặc

điểm

c

ủa toán h

ạng thanh ghi

Đóng vai trò gi

ống nh

ư bi

ến trong các NNLT c

ấp cao (C,

Java). Tuy nhiên, khác v

ới bi

ến ch

ỉ có th

ể gi

ữ giá trị theo

ki

ểu d

ữ li

ệu được khai báo trước khi s

d

ụng, thanh ghi

không có ki

ểu, thao tác trên thanh ghi s

ẽ xác định d

li

ệu trong thanh ghi s

ẽ được đối x

ử nh

ư th

ế nào.

Ưu

điể

m: b

x

ử lý truy xu

ất thanh ghi nhanh nh

ất (h

ơn 1

t

ỉ lần trong 1 giây) vì thanh ghi là m

ột thành ph

ần ph

ần

c

ứng thường n

ằm chung m

ạch v

ới b

x

ử lý.

• Khuy

ết

điể

m: do thanh ghi là m

ột thành ph

ần ph

ần c

ứng

nên s

ố lượng c

ố định và h

ạn ch

ế. Do

đó, s

d

ụng ph

ải

khéo léo.

8

Cộng, trừ số nguyên (1/4)

• Lệnh cộng:

add $s0,$s1,$s2 (cộng có dấu trong MIPS)

addu $s0,$s1,$s2 (cộng không dấu trong MIPS)

tương ứng với: a = b + c (trong C)

trong đó các thanh ghi $s0,$s1,$s2 (trong MIPS)

tương ứng với các biến a, b, c (trong C)

• Lệnh trừ:

sub $s3,$s4,$s5 (trừ có dấu trong MIPS)

subu $s3,$s4,$s5 (trừ không dấu trong MIPS)

tương ứng với: d = e - f (trong C)

trong đó các thanh ghi $s3,$s4,$s5 (trong MIPS)

tương ứng với các biến d, e, f (trong C)

9

C

ộng, tr

s

ố nguyên (2/4)

• L

ưu ý: toán h

ạng trong các l

ệnh trên ph

ải là

thanh ghi

• Trong MIPS, l

ệnh thao tác v

ới s

ố không d

ấu có

ký t

ự cu

ối là “u” – unsigned. Các thao tác khác

là thao tác v

ới s

ố có d

ấu. S

ố nguyên có d

ấu

được bi

ểu di

ễn dưới d

ạng bù 2.

• Làm sao bi

ết được m

ột phép toán (ví d

ụ a =

b+c) là thao tác trên s

ố có d

ấu hay không d

ấu ?

• Có th

s

d

ụng 1 toán h

ạng

đóng 2 vai trò v

ừa

là toán h

ạng ngu

ồn, v

ừa là toán h

ạng

đích

Æ

lệnh ch

c

ần 2 toán h

ạng.

Tại sao không

?

10

Cộng, trừ số nguyên (3/4)

• Làm thế nào để thực hiện câu lệnh C sau đây bằng lệnh

máy MIPS?

a = b + c + d - e

• Chia nhỏ thành nhiều lệnh máy

add $s0, $s1, $s2 # a = b + c

add $s0, $s0, $s3 # a = a + d

sub $s0, $s0, $s4 # a = a - e

• Chú ý: một lệnh trong C có thể gồm nhiều lệnh MIPS.

• Tại sao không xây dựng các lệnh MIPS có nhiều toán

hạng nguồn hơn ?

• Ghi chú: ký tự “#” dùng để chú thích trong hợp ngữ cho

MIPS

Tải ngay đi em, còn do dự, trời tối mất!