bg2

57
Học kỳ 1 2011-2012 Học kỳ 1 2011-2012 Tổ chức máy tính Tổ chức máy tính 1 Tổ chức máy tính Tổ chức máy tính Học kỳ 1 2011-2012 Học kỳ 1 2011-2012 Bài 2: Assembly và mã máy Bài 2: Assembly và mã máy của bộ xử lý MIPS 32 bit của bộ xử lý MIPS 32 bit (Đọc chapter 2 : 2.1 đến 2.7) (Đọc chapter 2 : 2.1 đến 2.7) Hồ Viết Việt Hồ Viết Việt ThS. GVC ThS. GVC Bộ môn Kỹ thuật máy tính, Khoa Điện tử Bộ môn Kỹ thuật máy tính, Khoa Điện tử Viễn thông Viễn thông Đại học Bách khoa Đà Nẵng Đại học Bách khoa Đà Nẵng [email protected] [email protected]

Upload: hanlee890

Post on 24-Apr-2015

412 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 11

Tổ chức máy tínhTổ chức máy tínhHọc kỳ 1 2011-2012Học kỳ 1 2011-2012

Bài 2: Assembly và mã máy của bộ Bài 2: Assembly và mã máy của bộ xử lý MIPS 32 bitxử lý MIPS 32 bit(Đọc chapter 2 : 2.1 đến 2.7)(Đọc chapter 2 : 2.1 đến 2.7)

Hồ Viết Việt Hồ Viết Việt ThS. GVCThS. GVCBộ môn Kỹ thuật máy tính, Khoa Điện tử Viễn thôngBộ môn Kỹ thuật máy tính, Khoa Điện tử Viễn thông

Đại học Bách khoa Đà NẵngĐại học Bách khoa Đà Nẵng

[email protected]@gmail.com

Page 2: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 22

Mục tiêu bài 2Mục tiêu bài 2Chuyển đổi một đoạn chương trình Assembly của Chuyển đổi một đoạn chương trình Assembly của MIPS32 sang mã máyMIPS32 sang mã máyChuyển đổi một đoạn mã máy sang Assembly của Chuyển đổi một đoạn mã máy sang Assembly của MIPS32MIPS32Chuyển đổi một đoạn mã C sang Assembly của MIPS32Chuyển đổi một đoạn mã C sang Assembly của MIPS32Thực hiện một vài giả lệnh bằng một số tối thiểu các Thực hiện một vài giả lệnh bằng một số tối thiểu các lệnh Assembly của MIPS32lệnh Assembly của MIPS32Viết được một chương trình assembly có thể chạy trên Viết được một chương trình assembly có thể chạy trên phần mềm PCSPIMphần mềm PCSPIM

Page 3: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 33

Phần cứng của ComputerPhần cứng của Computer

Control

Datapath MemoryCentral Processing

Unit (CPU)Hay “processor”

Input

Output

5 thành phần cơ bản của phần cứng

Page 4: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 44

Phần mềm của ComputerPhần mềm của Computer

Application software,a program in C:

swap (int v[ ], int k){int temp;

temp = v[k];v[k] = v[k+1];v[k+1] = temp;

}

MIPS binary machine code:

00000000101000010000000000011000000000000001100000011000001000011000110001100010000000000000000010001100111100100000000000000100101011001111001000000000000000001010110001100010000000000000010000000011111000000000000000001000

Compiler Assembler

Application software

Hardware

Systems software

MIPS compiler output,assembly language program:

swap;muli $2, $5, 4add $2, $4, $2lw $15, 0 ($2)lw $16, 4 ($2)sw $16, 0 ($2)sw $15, 4 ($2)jr $31

Page 5: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 55

Kiến trúc tập lệnh (ISA)Kiến trúc tập lệnh (ISA)Một tập lệnh cung cấp mối liên kết giữa phần Một tập lệnh cung cấp mối liên kết giữa phần mềm và phần cứng.mềm và phần cứng.Với cùng một tập lệnh, người lập trình phần mềm Với cùng một tập lệnh, người lập trình phần mềm và người kỹ sư phần cứng hoạt động ít nhiều độc và người kỹ sư phần cứng hoạt động ít nhiều độc lập với nhau.lập với nhau.ISA được thiết kế nhằm khai thác được tính năng ISA được thiết kế nhằm khai thác được tính năng cao nhất từ công nghệ phần cứng sẵn có.cao nhất từ công nghệ phần cứng sẵn có.

Inst

ruc

tio

ns

etSoftware Hardware

Application software

Hardware

Systems software

Page 6: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 66

Kiến trúc tập lệnh (ISA)Kiến trúc tập lệnh (ISA)

ISAISA– Định nghĩa các thanh ghiĐịnh nghĩa các thanh ghi– Định nghĩa các mode truyền dữ liệu giữa các thanh Định nghĩa các mode truyền dữ liệu giữa các thanh

ghi với bộ nhớ và I/Oghi với bộ nhớ và I/O– Số lượng đủ các lệnhSố lượng đủ các lệnh– Độ dài và khuôn dạng của câu lệnh: cố định hay thay Độ dài và khuôn dạng của câu lệnh: cố định hay thay

đổiđổi

Page 7: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 77

Các kiểu ISACác kiểu ISAComplex instruction set computer (CISC)Complex instruction set computer (CISC)– Nhiều lệnh (vài trăm)Nhiều lệnh (vài trăm)– CPI > 1CPI > 1– Ví dụ: Intel PentiumVí dụ: Intel Pentium

Reduced instruction set computer (RISC)Reduced instruction set computer (RISC)– Ít lệnh (vài chục)Ít lệnh (vài chục)– CPI = 1CPI = 1– pipeliningpipelining– Ví dụ: ARM, MIPSVí dụ: ARM, MIPS

Page 8: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 88

PipeliningPipelining

FetchInstruction

DecodeOpcode

FetchOperands

ExecuteOperation

StoreResult

Mặc dù một lệnh cần 5 cycle để được thực hiện nhưng trong một cycle có thể hoàn tất được một lệnh. Vì sao?

Page 9: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 99

Sự tăng trưởng về số lượng của MIPS và Sự tăng trưởng về số lượng của MIPS và các bộ xử lý kháccác bộ xử lý khác

Chúng ta sẽ học kiến trúc Chúng ta sẽ học kiến trúc tập lệnh của các bộ xử lý tập lệnh của các bộ xử lý MIPSMIPS– MIPS tương tự với MIPS tương tự với

nhiều kiến trúc khác từ nhiều kiến trúc khác từ những năm 1980những năm 1980

– Gần 100 triệu bộ xử lý Gần 100 triệu bộ xử lý MIPS được sản xuất MIPS được sản xuất trong năm 2002trong năm 2002

– MIPS được nhiều hãng MIPS được nhiều hãng sử dụng: NEC, Cisco, sử dụng: NEC, Cisco, Nintendo, Silicon Nintendo, Silicon Graphics, Sony, …Graphics, Sony, …

1400

1300

1200

1100

1000

900

800

700

600

500

400

300

200

100

01998 2000 2001 20021999

Other

SPARC

Hitachi SH

PowerPC

Motorola 68K

MIPS

IA-32

ARM

2004 © Morgan Kaufman Publishers

Page 10: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1010

Tập lệnh MIPS (RISC)Tập lệnh MIPS (RISC)Các lệnh thực hiện các thao tác đơn giản.Các lệnh thực hiện các thao tác đơn giản.Có tính regularity về khuôn dạng – mỗi lệnh Có tính regularity về khuôn dạng – mỗi lệnh dài 1 word, gồm một mã lệnh (dài 1 word, gồm một mã lệnh (opcode)opcode) và và các đối số (các đối số (arguments)arguments)..Giảm thiểu việc truy cập bộ nhớ – dùng các Giảm thiểu việc truy cập bộ nhớ – dùng các thanh ghi làm đối số bất cứ khi nào có thể.thanh ghi làm đối số bất cứ khi nào có thể.Có 3 kiểu lệnh (khuôn dạng lệnh):Có 3 kiểu lệnh (khuôn dạng lệnh):

Kiểu thanh ghi (R) – chỉ dùng thanh ghi làm đối số.Kiểu thanh ghi (R) – chỉ dùng thanh ghi làm đối số.Kiểu tại chỗ (I) – dùng thanh ghi và các số làm đối số. Kiểu tại chỗ (I) – dùng thanh ghi và các số làm đối số. Kiểu nhảy(J) – dùng địa chỉ làm đối số.Kiểu nhảy(J) – dùng địa chỉ làm đối số.

Page 11: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1111

Các lệnh số học của MIPS Các lệnh số học của MIPS Tất cả các lệnh đều có 3 toán hạngTất cả các lệnh đều có 3 toán hạng

Trât tự các toán hạng là cố định (đầu tiên là toán hạng đích)Trât tự các toán hạng là cố định (đầu tiên là toán hạng đích)

Ví dụ: lệnh cộng addVí dụ: lệnh cộng add

C : C : a = b + c;

MIPS :MIPS : add a, b, c

“The natural number of operands for an operation like addition is “The natural number of operands for an operation like addition is three… requiring every instruction to have exactly three three… requiring every instruction to have exactly three operands conforms to the philosophy of keeping the hardware operands conforms to the philosophy of keeping the hardware simple”simple”

2004 © Morgan Kaufman Publishers

Page 12: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1212

Các lệnh số học của MIPS Các lệnh số học của MIPS Nguyên lý thiết kế 1: Đơn giản là Đều. Nguyên lý thiết kế 1: Đơn giản là Đều.

Hạn chế:Hạn chế:

C :C : a = b + c + d;

MIPS :MIPS : add a, b, cadd a, a, d

Các toán hạng phải là thanh ghi với lệnh add và Các toán hạng phải là thanh ghi với lệnh add và nhiều lệnh số học khácnhiều lệnh số học khác

MIPS định nghĩa tất cả 32 thanh ghi 32-bitMIPS định nghĩa tất cả 32 thanh ghi 32-bit

Page 13: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1313

Quy ước (khuyến cáo) sử dụng thanh ghiQuy ước (khuyến cáo) sử dụng thanh ghiTên Số Sử dụng

$zero $0 Hằng số 0

$v0-$v1 $2-$3 values for results and expression evaluation

$a0-$a3 $4-$7 arguments

$t0-$t7 $8-$15 temporaries

$s0-$s7 $16-$23 saved

$t8-$t9 $24-$25 more temporaries

$gp $28 global pointer

$sp $29 stack pointer

$fp $30 frame pointer

$ra $31 return address

Thanh ghi $1 ($at) dành cho assembler, $26-$27 dành cho hệ điều hành2004 © Morgan Kaufman Publishers

Page 14: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1414

Thanh ghi và Bộ nhớThanh ghi và Bộ nhớ

Processor I/O

Control

Datapath

Memory

Input

Output

Toán hạng của các lệnh số học phải là thanh ghiToán hạng của các lệnh số học phải là thanh ghiMIPS chỉ có 32 thanh ghi 32-bitMIPS chỉ có 32 thanh ghi 32-bit

Trình biên dịch (compiler) liên kết Biến với Thanh ghi.Trình biên dịch (compiler) liên kết Biến với Thanh ghi.Nếu một chương trình cần nhiều biến? Phải dùng đến Nếu một chương trình cần nhiều biến? Phải dùng đến bộ nhớ.bộ nhớ.

2004 © Morgan Kaufman Publishers

Page 15: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1515

Tổ chức bộ nhớTổ chức bộ nhớBộ nhớ được xem như một mảng một chiều lớn và có Bộ nhớ được xem như một mảng một chiều lớn và có địa chỉ bắt đầu là 0.địa chỉ bắt đầu là 0.

Một địa chỉ trong bộ nhớ là một chỉ số dùng để truy cập Một địa chỉ trong bộ nhớ là một chỉ số dùng để truy cập vào mảng.vào mảng.

"Byte addressing”: định địa chỉ theo byte, mỗi chỉ số trỏ "Byte addressing”: định địa chỉ theo byte, mỗi chỉ số trỏ đến 1 byte.đến 1 byte.

2004 © Morgan Kaufman Publishers

32 bit word

32 bit word

32 bit word

32 bit word

.

.

.

8 bits of data 8 bits of data 8 bits of data 8 bits of data

8 bits of data 8 bits of data 8 bits of data 8 bits of data

8 bits of data 8 bits of data

8 bits of data

8 bits of data

8 bits of data

8 bits of data 8 bits of data

8 bits of data

8 bits of data

8 bits of data

8 bits of data

8 bits of data

Byte 0 byte 1 byte 2 byte 3

byte 4 byte 10

Page 16: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1616

Tổ chức bộ nhớTổ chức bộ nhớĐơn vị dữ liệu thông thường là wordĐơn vị dữ liệu thông thường là word

Đối với MIPS, 1 word là 32 bit tức là 4 byte.Đối với MIPS, 1 word là 32 bit tức là 4 byte.

Địa chỉ byteĐịa chỉ byte

của wordcủa word

223232 byte có địa chỉ từ 0 đến 2 byte có địa chỉ từ 0 đến 232 32 – 1 – 1

223030 word có địa chỉ là 0, 4, 8, ... 2 word có địa chỉ là 0, 4, 8, ... 232 32 – 4 – 4

Word là alignedWord là alignedi.e., 2 bit thấp nhất của một địa chỉ word là 00?i.e., 2 bit thấp nhất của một địa chỉ word là 00?

...

Mỗi thanh ghi lưu trữ 32 bit dữ liệu

Dùng địa chỉ 32 bit

2004 © Morgan Kaufman Publishers

0

4

8

12

.

32 bits of data

32 bits of data

32 bits of data

32 bits of data

32 bits of data

Page 17: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1717

Các lệnh chuyển dữ liệu: lw, sw Các lệnh chuyển dữ liệu: lw, sw Các lệnh Load (lw) và Store (sw)Các lệnh Load (lw) và Store (sw)Ví dụ:Ví dụ:

C:C: A[12] = h + A[8];

MIPS :MIPS : lw $t0, 32($s3) # giả sử $s3 chứa địa chỉ của A add $t0, $s2, $t0 # giả sử h ở $s2

sw $t0, 48($s3)

Có thể dùng tên hoặc dùng số cho thanh ghiCó thể dùng tên hoặc dùng số cho thanh ghiVì toán hạng của các lệnh số học phải là thanh ghi nên không thể Vì toán hạng của các lệnh số học phải là thanh ghi nên không thể viết:viết:

add 48($s3), $s2, 32($s3)

2004 © Morgan Kaufman Publishers

Page 18: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1818

Ví dụ đầu tiênVí dụ đầu tiênCó thể tìm mã MIPS của hàm swap (mã C)?Có thể tìm mã MIPS của hàm swap (mã C)?

Lúc đầu, tg 5 chứa k; tg 4 chứa địa chỉ của v, tg Lúc đầu, tg 5 chứa k; tg 4 chứa địa chỉ của v, tg 31 chứa địa chỉ quay về31 chứa địa chỉ quay về

swap(int v[], int k);{ int temp;

temp = v[k];v[k] = v[k+1];v[k+1] = temp;

}

swap:sll $2, $5, 2add $2, $4, $2lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)jr $31

2004 © Morgan Kaufman Publishers

Page 19: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 1919

Có chuyện gì?Có chuyện gì?

Khi gặp “câu lệnh swap”:Khi gặp “câu lệnh swap”:– Nhảy đến chương trình con swapNhảy đến chương trình con swap

Các tg $4 và $5 chứa các đối sốCác tg $4 và $5 chứa các đối số

Tg $31 chứa địa chỉ quay vềTg $31 chứa địa chỉ quay về

– Hoán đổi 2 word trong bộ nhớHoán đổi 2 word trong bộ nhớ– Nhảy ngược lại địa chỉ quay về để tiếp tục phần còn lại Nhảy ngược lại địa chỉ quay về để tiếp tục phần còn lại

của chương trìnhcủa chương trình

.

.swap...

Địa chỉ quay về

Page 20: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2020

Bộ nhớ và Thanh ghiBộ nhớ và Thanh ghi

Word 0

Word 1

Word 2

v[0] (Word n)

048

12 .

4n . . .

4n+4k.

v[1] (Word n+1)

Register 0

Register 1

Register 2

Register 3

Register 4

Register 31

Register 5

v[k] (Word n+k)

4n

k

Memory

byte addr.

jump addr.v[k+1] (Word n+k+1)

.

.

Page 21: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2121

Ví dụ đầu tiênVí dụ đầu tiênCó thể tìm mã MIPS của swap?Có thể tìm mã MIPS của swap?

swap(int v[], int k);{ int temp;

temp = v[k]v[k] = v[k+1];v[k+1] = temp;

}

swap:sll $2, $5, 2add $2, $4, $2lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)jr $31

2004 © Morgan Kaufman Publishers

Page 22: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2222

Cho đến giờ…Cho đến giờ…MIPSMIPS

— Truy cập các word trong bộ nhớ theo địa chỉ byte— Truy cập các word trong bộ nhớ theo địa chỉ byte— Toán hạng của lệnh số học như lệnh cộng phải là — Toán hạng của lệnh số học như lệnh cộng phải là

thanh ghithanh ghi

LệnhLệnh Ý nghĩaÝ nghĩa

add $s1, $s2, $s3 $s1 = $s2 + $s3sub $s1, $s2, $s3 $s1 = $s2 – $s3lw $s1, 100($s2) $s1 = Memory[$s2+100] sw $s1, 100($s2) Memory[$s2+100] = $s1

2004 © Morgan Kaufman Publishers

Page 23: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2323

Mỗi lệnh dài 32 bit cũng giống như thanh ghi, như wordMỗi lệnh dài 32 bit cũng giống như thanh ghi, như word– Ví dụ: Ví dụ: add $t1, $s1, $s2– Các thanh ghi đều có số và tên: Các thanh ghi đều có số và tên: $t1= $9, $s1= $17, $s2= $18

Khuôn dạng lệnh kiểu R:Khuôn dạng lệnh kiểu R:

000000 10001 10010 01001 00000 100000

op rs rt rd shamt funct

Ngôn ngữ máyNgôn ngữ máy

2004 © Morgan Kaufman Publishers

Page 24: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2424

Nữu ƯớcNữu Ước

GrandCentralStation

TimesSquare

Page 25: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2525

Xét các lệnh load word và store word…Xét các lệnh load word và store word…– Nguyên lý thiết kế 1?Nguyên lý thiết kế 1?– Nguyên lý thiết kế 4: Good design demands a compromiseNguyên lý thiết kế 4: Good design demands a compromise

Khuôn dạng lệnh mới:Khuôn dạng lệnh mới:– I-type là khuôn dạng của các lệnh chuyển dữ liệuI-type là khuôn dạng của các lệnh chuyển dữ liệu– R-type ?R-type ?

Ví dụ lệnh load word: Ví dụ lệnh load word: lw $t0, 32($s2)lw $t0, 32($s2)

35 18 9 32

op rs rt một số 16 bit

Compromise ở chỗ nào?Compromise ở chỗ nào?

Ngôn ngữ máyNgôn ngữ máy

2004 © Morgan Kaufman Publishers

Page 26: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2626

Lệnh cũng là các bitLệnh cũng là các bit

Chương trình được lưu trữ trong bộ nhớ Chương trình được lưu trữ trong bộ nhớ Được đọc/ghi giống như dữ liệuĐược đọc/ghi giống như dữ liệu

Lấy và Thực hiện (Fetch và Execute)Lấy và Thực hiện (Fetch và Execute)Lệnh được lấy từ bộ nhớ và đặt vào một thanh ghi đặc biệtLệnh được lấy từ bộ nhớ và đặt vào một thanh ghi đặc biệt

Các bit Opcode sẽ điều khiển các hoạt động tiếp theoCác bit Opcode sẽ điều khiển các hoạt động tiếp theo

Lấy lệnh kế tiếp và cứ thế tiếp tụcLấy lệnh kế tiếp và cứ thế tiếp tục

Processor MemoryBộ nhớ lưu trữ dữ liệu,chương trình

Stored Program Computer (SPC)Stored Program Computer (SPC)

2004 © Morgan Kaufman Publishers

Page 27: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2727

Các lệnh ra quyết địnhCác lệnh ra quyết định– Thay đổi trình tự thực hiện,Thay đổi trình tự thực hiện,– i.e. thay đổi “lệnh kế tiếp” cần thực hiệni.e. thay đổi “lệnh kế tiếp” cần thực hiện

Các lệnh rẽ nhánh (branch) có điều kiện của MIPS:Các lệnh rẽ nhánh (branch) có điều kiện của MIPS:

bne $t0, $t1, Label beq $t0, $t1, Label

Ví dụ: C:Ví dụ: C: if (i==j) h = i + j;

MIPS: bne $s0, $s1, Labeladd $s3, $s0, $s1

Label: ....

Điều khiển (Control)Điều khiển (Control)

2004 © Morgan Kaufman Publishers

Page 28: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2828

Các lệnh rẽ nhánh không điều kiện của MIPS:Các lệnh rẽ nhánh không điều kiện của MIPS:j label

Ví dụ:Ví dụ:if (i!=j) beq $s4, $s5, Lab1 h=i+j; add $s3, $s4, $s5else j Lab2 h=i-j; Lab1:sub $s3, $s4, $s5

Lab2:...

Có thể xây dựng một vòng lặp Có thể xây dựng một vòng lặp for?for?

Cấu trúc Điều kiệnCấu trúc Điều kiện

2004 © Morgan Kaufman Publishers

Page 29: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 2929

Cho đến bây giờ…Cho đến bây giờ…LệnhLệnh Ý nghĩaÝ nghĩaadd $s1,$s2,$s3 $s1 = $s2 + $s3sub $s1,$s2,$s3 $s1 = $s2 – $s3lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1bne $s4,$s5,Label Lệnh kế tiếp ở tại Label nếu

$s4 ≠ $s5beq $s4,$s5,Label Lệnh kế tiếp ở tại Label nếu

$s4 = $s5j Label Lệnh kế tiếp ở tại Label

Các khuôn dạng lệnh:Các khuôn dạng lệnh:

op rs rt rd shamt funct

op rs rt 16 bit address

op 26 bit address

R

I

J2004 © Morgan Kaufman Publishers

Page 30: BG2

Các lệnh logic và dịch bitCác lệnh logic và dịch bit

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 3030Tổ chức máy tínhTổ chức máy tính

Page 31: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3131

Đã có các lệnh: beq, bne, thế còn Branch-if-less-than?Đã có các lệnh: beq, bne, thế còn Branch-if-less-than?

Lệnh Set on Less Than (slt):Lệnh Set on Less Than (slt):if $s1 < $s2 then

$t0 = 1slt $t0, $s1, $s2 else

$t0 = 0

Có thể dùng lệnh này để xây dựng “lệnh” mới:Có thể dùng lệnh này để xây dựng “lệnh” mới:

blt $s1, $s2, Label

Assembler cần một thanh ghi cho việc này,Assembler cần một thanh ghi cho việc này,— thanh ghi $at ($1)— thanh ghi $at ($1)

Điều khiểnĐiều khiển

2004 © Morgan Kaufman Publishers

Page 32: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3232

Giả lệnh (Pseudoinstructions)Giả lệnh (Pseudoinstructions)

bltblt $s1, $s2, label$s1, $s2, labelAssembler chuyển thành:Assembler chuyển thành: sltslt $at, $s1, $s2$at, $s1, $s2

bnebne $at, $zero, label$at, $zero, label

Vài giả lệnh khác: bgt, ble, bge, li, moveVài giả lệnh khác: bgt, ble, bge, li, moveKhông được thực hiện bằng phần cứngKhông được thực hiện bằng phần cứngAssembler chuyển giả lệnh thành các lệnh máyAssembler chuyển giả lệnh thành các lệnh máyThanh ghi $1($at) dành cho việc chuyển giả Thanh ghi $1($at) dành cho việc chuyển giả lệnh thành lệnh máy.lệnh thành lệnh máy.

Page 33: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3333

Các hằng số nhỏ được dùng khá thường xuyên Các hằng số nhỏ được dùng khá thường xuyên e.g., e.g., A = A + 5;A = A + 5;

B = B + 1;B = B + 1;C = C – 18;C = C – 18;

Cách giải quyết?Cách giải quyết?– Đặt các hằng số điển hình trong bộ nhớ và nạp vào khi cần. Đặt các hằng số điển hình trong bộ nhớ và nạp vào khi cần. – Tạo ra các thanh ghi cố định (như $zero) cho các hằng số khác.Tạo ra các thanh ghi cố định (như $zero) cho các hằng số khác.

Các lệnh MIPS:Các lệnh MIPS: addi $29, $29, 4

slti $8, $18, 10andi $29, $29, 6ori $29, $29, 4

Nguyên lý thiết kế 3: Make the common case fast. Nguyên lý thiết kế 3: Make the common case fast.

Hằng số nhỏ (16-bit)Hằng số nhỏ (16-bit)

2004 © Morgan Kaufman Publishers

Page 34: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3434

Cần nạp một số 32 bit vào một thanh ghi? Phải dùng 2 lệnhCần nạp một số 32 bit vào một thanh ghi? Phải dùng 2 lệnh

Trước hết dùng lệnh "load upper immediate" :Trước hết dùng lệnh "load upper immediate" :

lui $t0, 1010101010101010

Rồi nạp các bit thấp bằng lệnh ori:Rồi nạp các bit thấp bằng lệnh ori:ori $t0, $t0, 1010101010101010

1010101010101010 0000000000000000

0000000000000000 1010101010101010

1010101010101010 1010101010101010

ori

1010101010101010 0000000000000000

16 bit đều bằng 0

Các hằng số lớn hơn 16-bit?Các hằng số lớn hơn 16-bit?

2004 © Morgan Kaufman Publishers

Page 35: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3535

Tất cả các lệnh máy của MIPS đều dài 32 bitTất cả các lệnh máy của MIPS đều dài 32 bit

Chỉ có 3 khuôn dạng lệnh:R, I và JChỉ có 3 khuôn dạng lệnh:R, I và J

Các giả lệnh không được thực hiện bằng phần cứngCác giả lệnh không được thực hiện bằng phần cứng

op rs rt rd shamt funct

op rs rt 16 bit address

op 26 bit address

R

I

J

Sơ kết về ISA của MIPSSơ kết về ISA của MIPS

2004 © Morgan Kaufman Publishers

Page 36: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3636

Các lệnh rẽ nhánh và nhảy:Các lệnh rẽ nhánh và nhảy:

bne $t4, $t5, Labelbne $t4, $t5, Label Lệnh tiếp theo ở tại Label Lệnh tiếp theo ở tại Label nếu nếu($t4) ($t4) ≠≠ ($t5) ($t5)

beq $t4, $t5, Labelbeq $t4, $t5, Label Lệnh tiếp theo ở tại Label Lệnh tiếp theo ở tại Label nếu nếu($t4) ($t4) == ($t5 ($t5

j Labelj Label Lệnh tiếp theo ở tại Label Lệnh tiếp theo ở tại Label

Hai khuôn dạng I, J:Hai khuôn dạng I, J: op rs rt 16 bit rel. address

op 26 bit absolute address

I

J

Địa chỉ trong các lệnh beq, bne và jĐịa chỉ trong các lệnh beq, bne và j

2004 © Morgan Kaufman Publishers

Page 37: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3737

Các lệnh rẽ nhánh có điều kiện:Các lệnh rẽ nhánh có điều kiện:bne $t4,$t5,Labelbne $t4,$t5,Labelbeq $t4,$t5,Labelbeq $t4,$t5,Label

Khuôn dạng I và J:Khuôn dạng I và J: – 215 to 215 – 1 ~ ±32 Kwords±32 Kwords

Địa chỉ tương đốiĐịa chỉ tương đối 226 = 64 64 Mwords Mwords– Đối với PC (program counter)Đối với PC (program counter)

Địa chỉ trong các lệnh bne, beqĐịa chỉ trong các lệnh bne, beq

2004 © Morgan Kaufman Publishers

op rs rt 16 bit address

op 26 bit address

Page 38: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3838

Ví dụ: Vòng lặp trong CVí dụ: Vòng lặp trong C

while ( save[i] == k )while ( save[i] == k )

i += 1;i += 1;

Với k cho trướcVới k cho trước

Page 39: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 3939

Compiler phát ra mã MIPSCompiler phát ra mã MIPSCompiler dùng các thanh ghi làm các biến:

$s3 (reg 19) ← i ban đầu bằng 0$s5 (reg 21) ← k$s6 (reg 22) ← Địa chỉ của mảng save[ ]

Compiler phát ra mã MIPS Assembly sau:

Loop: sll $t1, $s3, 2 # Temp reg $t1 = 4 * iadd $t1, $t1, $s6 # $t1 = address of save[i]lw $t0, 0($t1) # Temp reg $t0 = save[i]bne $t0, $s5, Exit # go to Exit if save[i] ≠ kaddi $s3, $s3, 1 # i = i + 1j Loop # go to Loop

Exit:Hãy chuyển đoạn mã trên sang mã máy, giả sử nó bắt

đầu từ địa chỉ 80000

Page 40: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 4040

Địa chỉ của các lệnh …Địa chỉ của các lệnh …

00 00 1919 99 22 00

00 99 2222 99 00 3232

3535 99 88 00

55 88 2121 +2+2

88 1919 1919 11

22 20000 (memory word address)20000 (memory word address)

. . . . .. . . . .

sll

add

lw

bne

addi

j

80000

80004

80008

80012

80016

80020

80024

Memory Machine codeByte addr. Bits 31-26| 25-21 | 20-16 | 15-11 | 10 – 6 | 5 – 0 |

$t0 ≡ Reg 8, $t1 ≡ Reg 9, $s3 ≡ Reg 19, $s5 ≡ Reg 21, $s6 ≡ Reg 22temp temp i k save

Page 41: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 4141

Tính địa chỉ byte của Tính địa chỉ byte của ExitExit

Exit = +2Exit = +2 là một số nguyên 16-bit trong lệnh bne là một số nguyên 16-bit trong lệnh bne 000101 01000 10101 000101 01000 10101 0000000000000010 = 20000000000000010 = 2$PC = 80016 là địa chỉ của lệnh kế tiếp lệnh bne$PC = 80016 là địa chỉ của lệnh kế tiếp lệnh bne 00000000000000010011100010010000 = 8001600000000000000010011100010010000 = 80016Nhân đối số của bne với 4 (dịch trái 2 bit)Nhân đối số của bne với 4 (dịch trái 2 bit) 0000000000001000 = 80000000000001000 = 8$PC $PC ← ← $PC + 8$PC + 800000000000000010011100010011000 = 8002400000000000000010011100010011000 = 80024Do vậy, Địa chỉ byte của Do vậy, Địa chỉ byte của ExitExit là 80024. là 80024.

Page 42: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 4242

Tính địa chỉ byte của Tính địa chỉ byte của LoopLoopĐối số trong lệnh J là Đối số trong lệnh J là 2000020000

000010000010 00000000000100111000100000 = 20000 00000000000100111000100000 = 20000

$PC = 80024, khi J đang được thực hiện$PC = 80024, khi J đang được thực hiện

000000000000000000010011100010011000 = 800240000000000010011100010011000 = 80024

Nhân đối số của J với 4Nhân đối số của J với 4

0000000000010011100010000000 = 800000000000000010011100010000000 = 80000

Nối thêm 4 bit cao nhất từ $PCNối thêm 4 bit cao nhất từ $PC

000000000000000000010011100010000000 = 800000000000000010011100010000000 = 80000

Do vậy, Do vậy, LoopLoop có địa chỉ byte là 80000. có địa chỉ byte là 80000.

Page 43: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 4343Tổ chức máy tínhTổ chức máy tính

Page 44: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 4444

Tóm tắtTóm tắtCác thanh ghi MIPS và Bộ nhớCác thanh ghi MIPS và Bộ nhớ

$s0-$s7, $t0-$t9, $zero, Fast locations for data. In MIPS, data must be in registers to perform

32 registers $a0-$a3, $v0-$v1, $gp, arithmetic. MIPS register $zero always equals 0. Register $at is

$fp, $sp, $ra, $at reserved for the assembler to handle large constants.

Memory[0], Accessed only by data transfer instructions. MIPS uses byte

230 memoryMemory[4], ..., addresses, so sequential words differ by 4. Memory holds data

words Memory[4294967292] structures, such as arrays, and spilled registers, such as those

saved on procedure calls.

Page 45: BG2

Các lệnh của MIPSCác lệnh của MIPS

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 4545Tổ chức máy tínhTổ chức máy tính

Page 46: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 4646

Các lệnh MIPSCác lệnh MIPSMIPS assembly language

Category Instruction Example Meaning Commentsadd add $s1, $s2, $s3 $s1 = $s2 + $s3 Three operands; data in registers

Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers

add immediate addi $s1, $s2, 100 $s1 = $s2 + 100 Used to add constants

load w ord lw $s1, 100($s2) $s1 = Memory[$s2 + 100]Word from memory to register

store w ord sw $s1, 100($s2) Memory[$s2 + 100] = $s1 Word from register to memory

Data transfer load byte lb $s1, 100($s2) $s1 = Memory[$s2 + 100]Byte from memory to register

store byte sb $s1, 100($s2) Memory[$s2 + 100] = $s1 Byte from register to memoryload upper immediate

lui $s1, 100 $s1 = 100 * 216 Loads constant in upper 16 bits

branch on equal beq $s1, $s2, 25 if ($s1 == $s2) go to PC + 4 + 100

Equal test; PC-relative branch

Conditional

branch on not equal bne $s1, $s2, 25 if ($s1 != $s2) go to PC + 4 + 100

Not equal test; PC-relative

branch set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = 0

Compare less than; for beq, bne

set less than immediate

slti $s1, $s2, 100 if ($s2 < 100) $s1 = 1; else $s1 = 0

Compare less than constant

jump j 2500 go to 10000 Jump to target address

Uncondi- jump register jr $ra go to $ra For sw itch, procedure return

tional jump jump and link jal 2500 $ra = PC + 4; go to 10000 For procedure call

Page 47: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 4747

Byte Halfword Word

Registers

Memory

Memory

Word

Memory

Word

Register

Register

1. Immediate addressing

2. Register addressing

3. Base addressing

4. PC-relative addressing

5. Pseudodirect addressing

op rs rt

op rs rt

op rs rt

op

op

rs rt

Address

Address

Address

rd . . . funct

Immediate

PC

PC

+

+

2004 © Morgan Kaufman Publishers

Các mode địa chỉ addi

add

lw, sw

beq, bne

j

Page 48: BG2

Các mode địa chỉCác mode địa chỉ

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 4848Tổ chức máy tínhTổ chức máy tính

Page 49: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 4949

Thay đổi thiết kế:Thay đổi thiết kế:

– Cung cấp nhiều lệnh mạnh hơnCung cấp nhiều lệnh mạnh hơn

– Mục đích là giảm số câu lệnh cần thực hiệnMục đích là giảm số câu lệnh cần thực hiện

– Hệ quả là cycle time dài hơn và/hoặc CPI cao hơnHệ quả là cycle time dài hơn và/hoặc CPI cao hơn

Các kiến trúc khácCác kiến trúc khác

–“The path toward operation complexity is thus fraught with peril.

To avoid these problems, designers have moved toward simpler

instructions”

2004 © Morgan Kaufman Publishers

Page 50: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 5050

IA - 32IA - 321978:1978: Intel công bố bộ vi xử lý 8086 (16 bit )Intel công bố bộ vi xử lý 8086 (16 bit )1980:1980: Bộ đồng xử lý toán 8087 được bổ sungBộ đồng xử lý toán 8087 được bổ sung1982:1982: Bộ vi xử lý 80286 có không gian địa chỉ 24-bit và nhiều Bộ vi xử lý 80286 có không gian địa chỉ 24-bit và nhiều

lệnh hơnlệnh hơn1985:1985: 80386 mở rộng lên 32-bit, có thêm nhiều mode địa chỉ80386 mở rộng lên 32-bit, có thêm nhiều mode địa chỉ1989-1995:1989-1995: 80486, Pentium, Pentium Pro bổ sung thêm các lệnh có 80486, Pentium, Pentium Pro bổ sung thêm các lệnh có

hiệu suất caohiệu suất cao1997: 1997: 57 lệnh “MMX” mới được bổ sung ở Pentium II57 lệnh “MMX” mới được bổ sung ở Pentium II1999: 1999: Pentium III có thêm 70 lệnh (SSE – Pentium III có thêm 70 lệnh (SSE –

streaming SIMD extensions)streaming SIMD extensions)2001: 2001: Thêm144 lệnh nữa (SSE2)Thêm144 lệnh nữa (SSE2)2003: 2003: AMD tăng không gian địa chỉ lên 64 bits, mở rộng kích cỡ AMD tăng không gian địa chỉ lên 64 bits, mở rộng kích cỡ

các thanh ghi lên 64 bit và nhiều thay đổi khác (AMD64)các thanh ghi lên 64 bit và nhiều thay đổi khác (AMD64)2004: 2004: Intel chấp nhận AMD64 (và gọi là EM64T) rồi bổ sung nhiều Intel chấp nhận AMD64 (và gọi là EM64T) rồi bổ sung nhiều

mở rộng mediamở rộng media““This history illustrates the impact of the “golden handcuffs” of compatibility:This history illustrates the impact of the “golden handcuffs” of compatibility:““adding new features as someone might add clothing to a packed bag”adding new features as someone might add clothing to a packed bag”“an architecture that is difficult to explain and impossible to love”“an architecture that is difficult to explain and impossible to love”

2004 © Morgan Kaufman Publishers

Page 51: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 5151

Tổng quan IA-32Tổng quan IA-32Độ phức tạp:Độ phức tạp:– Các lệnh có độ dài từ 1 đến 17 byteCác lệnh có độ dài từ 1 đến 17 byte– Một toán hạng vừa là nguồn vừa là đíchMột toán hạng vừa là nguồn vừa là đích– Một toán hạng có thể ở bộ nhớMột toán hạng có thể ở bộ nhớ– Các mode địa chỉ phức tạpCác mode địa chỉ phức tạp

Saving grace:Saving grace:– Việc thực hiện phần cứng các câu lệnh thường sử dụng không Việc thực hiện phần cứng các câu lệnh thường sử dụng không

quá khóquá khó– Compiler có thể tránh được các phần chạy chậm trong kiến trúcCompiler có thể tránh được các phần chạy chậm trong kiến trúc

““what the 80x86 lacks in style is made up in quantity, what the 80x86 lacks in style is made up in quantity, making it beautiful from the right perspective”making it beautiful from the right perspective”

2004 © Morgan Kaufman Publishers

Page 52: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 5252

Các thanh ghi của IA-32Các thanh ghi của IA-32

Các thanh ghi 32-bit bắt đầu từ 80386Các thanh ghi 32-bit bắt đầu từ 80386

GPR 0

GPR 1

GPR 2

GPR 3

GPR 4

GPR 5

GPR 6

GPR 7

Code segment pointer

Stack segment pointer (top of stack)

Data segment pointer 0

Data segment pointer 1

Data segment pointer 2

Data segment pointer 3

Instruction pointer (PC)

Condition codes

Use

031Name

EAX

ECX

EDX

EBX

ESP

EBP

ESI

EDI

CS

SS

DS

ES

FS

GS

EIP

EFLAGS2004 © Morgan Kaufman Publishers

Page 53: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 5353

Các hạn chế của IA-32Các hạn chế của IA-32

Không phải tất cả các thanh ghi đều là Không phải tất cả các thanh ghi đều là thanh ghi đa năngthanh ghi đa năng

2004 © Morgan Kaufman Publishers

Page 54: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 5454

Các lệnh tiêu biểu của IA-32Các lệnh tiêu biểu của IA-32Bốn kiểu lệnh chính với số nguyên:Bốn kiểu lệnh chính với số nguyên:– Chuyển dữ liệu như move, push, popChuyển dữ liệu như move, push, pop– Số học và Logic (đích ở thanh ghi hoặc bộ nhớ)Số học và Logic (đích ở thanh ghi hoặc bộ nhớ)– Điều khiển (sử dụng các cờ )Điều khiển (sử dụng các cờ )– Thao tác stringThao tác string

2004 © Morgan Kaufman Publishers

Page 55: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 5555

Các khuôn dạng lệnh của IA-32 Các khuôn dạng lệnh của IA-32 Các khuôn dạng tiêu biểu (có độ dài khác nhau)Các khuôn dạng tiêu biểu (có độ dài khác nhau)

a. JE EIP + displacement

b. CALL

c. MOV EBX, [EDI + 45]

d. PUSH ESI

e. ADD EAX, #6765

f. TEST EDX, #42

ImmediatePostbyteTEST

ADD

PUSH

MOV

CALL

JE

w

w ImmediateReg

Reg

wd Displacementr/m

Postbyte

Offset

DisplacementCondi-tion

4 4 8

8 32

6 81 1 8

5 3

4 323 1

7 321 8

2004 © Morgan Kaufman Publishers

Page 56: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 5656

Tham khảo thêmTham khảo thêmIA-32, IA-64 (CISC)IA-32, IA-64 (CISC)

A. S. Tanenbaum, A. S. Tanenbaum, Structured Computer Organization, Fifth Structured Computer Organization, Fifth EditionEdition, Upper Saddle River, New Jersey: Pearson Prentice-, Upper Saddle River, New Jersey: Pearson Prentice-Hall, 2006, Chapter 5.Hall, 2006, Chapter 5.

ARM (RISC)ARM (RISC)D. Seal, D. Seal, ARM Architecture Reference Manual, Second EditionARM Architecture Reference Manual, Second Edition, , Addison-Wesley Professional, 2000.Addison-Wesley Professional, 2000.

SPARC (Scalable Processor Architecture)SPARC (Scalable Processor Architecture)

PowerPCPowerPCV. C. Hamacher, Z. G. Vranesic and S. G. Zaky, Computer V. C. Hamacher, Z. G. Vranesic and S. G. Zaky, Computer Organization, Fourth Edition, New York: McGraw-Hill, 1996.Organization, Fourth Edition, New York: McGraw-Hill, 1996.

Page 57: BG2

Học kỳ 1 2011-2012Học kỳ 1 2011-2012 Tổ chức máy tínhTổ chức máy tính 5757

Bộ xử lý MIPS 32 bit có 32 thanh ghi 32-bitBộ xử lý MIPS 32 bit có 32 thanh ghi 32-bit

Bộ nhớ bao gồm các word được đánh địa chỉ theo byteBộ nhớ bao gồm các word được đánh địa chỉ theo byte

Ba khuôn dạng lệnh: R, I, JBa khuôn dạng lệnh: R, I, J

Bốn nguyên lý thiết kế tập lệnh:Bốn nguyên lý thiết kế tập lệnh:– 1. simplicity favors regularity1. simplicity favors regularity– 2. smaller is faster2. smaller is faster– 3. good design demands compromise3. good design demands compromise– 4. make the common case fast4. make the common case fast

Tóm tắt bài 2 Tóm tắt bài 2

2004 © Morgan Kaufman Publishers