KI N TRÚC MÁY TÍNH

Tu n 3ầ

Ộ Ệ

KI N TRÚC B  L NH

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

1

ộ ệ ộ ệ

ầ ầ

ế Tu n 03 – Ki n trúc b  l nh ế Tu n 03 – Ki n trúc b  l nh

ụ M c tiêu:

1.Hi u cách bi u di n và cách th c thi các l nh trong máy  tính

ổ ệ

ữ ấ 2.Chuy n đ i l nh ngôn ng  c p cao sang assembly và mã  máy

ể ổ ệ

ữ ấ

ơ

3.Chuy n đ i l nh mã máy sang ngôn ng  c p cao h n

ế

4.Bi

t cách l p trình b ng ngôn ng  assembly cho MIPS

Slide được dịch và các hình được lấy từ sách tham khảo:

Computer Organization and Design: The Hardware/Software Interface, Patterson, D. A., and J. L. Hennessy, Morgan Kaufman, Revised Fourth Edition, 2011.

03/2017

Copyrights 2017 CE-UIT. All Rights Reserved.

2

ộ ệ

ế Tu n 3 – Ki n trúc b  l nh

ớ ệ 1. Gi i thi u

2. Các phép tính

3. Toán h ngạ

ố ấ ấ 4. S  có d u và không d u

ễ ệ ể 5. Bi u di n l nh

6. Các phép tính Logic

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

3

ệ ệ ả ề 7. Các l nh đi u ki n và nh y

Gi

ệ i thi u

ệ ể ả ằ ớ  Đ  ra l nh cho máy tính ta ph i nói v i máy tính b ng

ữ ủ ừ ủ ọ ngôn ng  c a máy tính. Các t ữ  c a ngôn ng  máy tính g i

ợ ấ ả ậ ừ ọ là  các  l nh ệ t  c   các  t g i  là (instructions)  và  t p  h p  t

ộ ệ b  l nh (instruction set)

ộ ệ ươ ộ ộ ệ ế B   l nh  trong  ch ng  này  là  MIPS,  m t  b   l nh  ki n

ượ ớ trúc máy tính đ c thi ế ế ừ t k  t ộ  năm 1980. Cùng v i hai b

ệ l nh thông d ng nh t ngày nay:  ố

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

4

ụ  ARM (r t gi ng MIPS) ấ The Intel x86

ộ ệ

ế Tu n 3 – Ki n trúc b  l nh

ớ ệ 1. Gi i thi u

2. Các phép tính

3. Toán h ngạ

ố ấ ấ 4. S  có d u và không d u

ễ ệ ể 5. Bi u di n l nh

6. Các phép tính Logic

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

5

ệ ệ ả ề 7. Các l nh đi u ki n và nh y

Phép tính (Operations)

Ví d :ụ

ự ệ ộ

add  a, b, c    Ch  d n cho máy tính th c hi n c ng 2  ế ế ả ớ bi n b v i c và ghi k t qu  vào bi n a,

Toán hạng (operands)

Phép tính (operations)

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

6

ỉ ẫ ế a = b + c.

Phép tính (Operations)

Ví d  1.ụ

Ví d  2.ụ

C/Java

C/Java

f = (g + h) – (i + j);

a = b + c; d = a – e;

MIPS

MIPS

add a, b, c sub d, a, e

add t0, g, h  add t1, i, j sub f, t0, t1

03/2017

Copyrights 2017 CE-UIT. All Rights Reserved.

7

ụ ộ ố ệ

Ví d  m t s  l nh trên MIPS

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

8

ộ ệ

ế Tu n 3 – Ki n trúc b  l nh

ớ ệ 1. Gi i thi u

2. Các phép tính

3. Toán h ngạ

ố ấ ấ 4. S  có d u và không d u

ễ ệ ể 5. Bi u di n l nh

6. Các phép tính Logic

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

9

ệ ệ ả ề 7. Các l nh đi u ki n và nh y

Toán h ngạ

ạ ạ Có 3 lo i toán h ng:

ạ 1.Toán h ng thanh ghi (Register Operands)

ạ ộ ớ 2.Toán h ng b  nh  (Memory Operands)

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

10

ạ ằ 3.Toán h ng h ng (Constant or Immediate Operands)

Toán h ngạ

ế

ầ ứ

ượ ọ

ữ ấ ư ươ ệ ả ặ ố ọ ị ạ ế ự c xây d ng tr c ti p trong ph n c ng đ ớ ạ ng thanh ghi có gi

ế

ượ

ng xuyên nên chúng đ

​ ​

ộ ệ

ữ ậ

ế

ườ

t l n gi a các bi n c a m t ngôn ng  l p trình  ng là 32 thanh

ủ ộ ị ớ ạ i h n (th

Copyrights 2017 CE­UIT. All Rights Reserved.

03/2017

11

ư (L u  ý:  m t  “t ”  trong  ki n  trúc  b   l nh  khác  có  th   không  là  32  bit)  M t s  khác bi ệ ớ ộ ự ế và các bi n thanh ghi là s  thanh ghi b  gi ghi trên các máy tính hi n nay)

Toán h ng thanh ghi:  Không gi ng nh  các ch ố ng trình trong ngôn ng  c p cao, các  ủ ạ toán h ng c a các l nh s  h c b  h n ch , chúng ph i đ t trong các  ệ ượ ặ ị c g i là  t đ v  trí đ c bi ố ượ i h n: MIPS­32, ARM Cortex  thanh ghi (s  l A8­40).   Kích  th ộ ướ c  c a  m t  thanh  ghi  trong  ki n  trúc  MIPS  là  32  bit;  ấ ườ c đ t tên là “t ”  nhóm 32 bit xu t hi n th ​ế (word) trong ki n trúc MIPS. ế

Toán h ngạ

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

12

Các thanh ghi trong MIPS:

Toán h ngạ

ể ữ ộ ượ

ỏ ữ ệ

Vi x  lý c ử

h  cỉ ó th  gi

m t l

ng nh  d  li u trong các thanh ghi,

trong khi

ệ ữ ệ

ứ b  nh  máy tính ch a hàng tri u d  li u.

ố ọ

ỉ ả

V i l nh

ả ớ ệ MIPS, phép tính s  h c ch  x y ra trên thanh ghi, do đó, MIPS ph i

ể ữ ệ

ư ậ ượ ọ

có các l nh ệ

ữ ộ chuy n d  li u gi a b  nh  và thanh ghi.

L nhệ  nh  v y đ

c g i là

l nh ệ

ộ ớ ạ Toán h ng b  nh  (1):

ể ữ ệ . chuy n d  li u

ể ữ ệ

ữ ộ

ộ ệ

ể ữ ệ M t l nh di chuy n d  li u gi a b  nh  và thanh ghi

L nh ệ

chuy n d  li u:

ộ ừ

ớ ệ

 Đ  truy c p vào m t t ậ

trong b  nh , l nh ph i cung c p

ớ ỉ b  nh . ộ

ị ấ đ a ch

ị ử ụ

ỉ: M t giá tr  s  d ng đ  phân đ nh v  trí c a m t ph n t

ầ ử ữ ệ ụ  d  li u c

Đ a ch

ớ th  trong m t m ng b  nh .

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

13

Toán h ngạ

ề ớ

ớ ỉ ố

ớ ị ụ ộ

ộ ớ ộ ỉ

ộ ỉ và n i dung

Hình 2: Đ a ch

Hình 1: Đ a ch   ả ậ nh  ớ gi

ỉ và n i dung c a b   ủ ộ ộ ư ả .  l p nh  m ng

th c tự ế.  ị ỉ ủ

Toán h ng b  nh  (2):    B  nh  ch  là m t m ng đ n chi u l n, v i đ a ch  đóng  ơ ả ắ ầ ừ  0. Ví d , trong hình  vai trò là ch  s  trong m ng đó, b t đ u t ị ủ ầ ử ứ ỉ ủ 1, đ a ch  c a ph n t  th  ba là 2, và giá tr  c a b  nh  [2] là  10.

ộ ủ

ớ ộ b  nh  MIPS ủ ỗ ừ  nh  (word) c a MIPS là 4 bytes. MIPS đ nh đ a  M i t ị ỗ ỉ ủ ỉ ch   theo  byte,  đ a  ch   c a  m i  word  là  đ a  ch   c a  byte  ỉ ỗ ầ đ u tiên trong word đó.  Do đó, đ a ch  m i word trong  MIPS ph i là b i c a 4.

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

14

Toán h ngạ

ủ ạ ị b   nh   vào  thanh  ghi  g i  là  . Đ nh d ng c a các ớ ữ ệ ừ ộ t lw − load word)

ạ ộ ớ Toán h ng b  nh  (3):   L nh  chuy n  d   li u  t ể ệ ế ắ ạ n p (load) t t  (vi ệ l nh n p:

Độ dời (offset)

Địa chỉ nền/cơ sở (Base address) Thanh ghi chứa địa chỉ nền/cơ sở gọi là thanh ghi nền/cơ sở (Base register)

ượ ử ụ ủ

aủ  h ng s  và n i dung c a thanh ghi  ớ ộ

ủ ừ

ế . N i dung c a t

ộ c  s   d ng  đ   truy  c p  vào  b   ớ  ỉ ộ này là đ a ch  b  nh ẽ ượ ư ừ   c đ a t

ị  nh  này s  đ

ậ $s1

•$s1: thanh ghi n p d  li u vào.  ạ ữ ệ •M t  h ng  s   (20)  và  thanh  ghi  ($s2)  đ ộ ằ ố ố ằ ớ ổ nh . T ng s  c ầ ử ầ ủ  c n truy c p đ n c a ph n t ớ ộ b  nh  vào thanh ghi

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

15

lw   $s1,20($s2)

Toán h ngạ

ộ ớ

ầ ử ầ

ả A  là  m t  m ng  c a  100

ph n ầ tử  (m i  ph n  t

ỗ ế

ả ị

ả ạ ệ

ạ Toán h ng b  nh  (4): ụ ề ệ Ví d  v  l nh lw:

c n  1  ớ ế ợ ữ và trình biên d ch đã k t h p các bi n g và h v i các  ỉ b t đ u c a m ng A (hay ị    đ nh r ng đ a ch ỉ c   sơ ở/n n)ề  ch a ứ trong  $s3.  Hãy  biên  d ch  đo n  l nh  b ng  ữ

ả ử ằ Gi   s   r ng  ư word l u tr )  thanh ghi $s1 và $s2. Gi đ a  ch   ngôn ng  C sau sang MIPS:

g = h + A[8];

ắ ầ ủ ằ ị ộ ự ế Th c t  trong MIPS m t  word là 4 bytes, do đó l nh ệ đúng ph i là: lw $ t0, 32($s3)

 Biên d ch:

ậ # $t0 nh n A[8]

lw  $t0, 8($s3)

add  $s1,$s2,$t0  # g = h + A[8]

ứ ị

ữ ệ 8) g i ọ là offset, và thanh ghi ch a đ a

ỉ ắ ầ ủ

ọ Copyrights 2017 CE­UIT. All Rights Reserved.

   H ng s  trong m t l nh truy n d  li u ( ộ ệ ố ch  b t đ u c a m ng  03/2017

ề ($s3) g i là

16

thanh ghi c  sơ ở.

Toán h ngạ

ộ ị ủ ớ ọ  thanh ghi ra b  nh , g i là l nh  ạ . Đ nh d ng c a các ộ ớ ể ữ ệ ừ ế ắ t t t sw − store word)

Toán h ng b  nh  (5):  L nh chuy n d  li u t ệ ư l u (store)  (vi ư ệ l nh l u:

Base address in base register

offset

ứ ữ ệ ầ ư

•$s1: thanh ghi ch a d  li u c n l u.

ượ ử ụ

ố ố

ộ ứ

ộ ậ c s  d ng đ  truy c p vào b   ỉ ộ ị ủ này là đ a ch  b   ẽ ượ ư c  l u  vào

$s1  s   đ

•M t h ng s  (20) và thanh ghi ($s2) đ ể ộ ằ nh .ớ  T ng s  c aủ  h ng s  và n i dung c a thanh ghi  ổ ộ ơ nhớ,  n i  mà  n i  dung  đang  ch a  trong  thanh  ghi  đây.

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

17

sw  $s1,20($s2)

Toán h ngạ

ộ ớ ạ Toán h ng b  nh  (6):

ụ ệ Ví d  l nh sw:

c k t n i v i

ượ A là trong $s3. Biên d chị ỉ ế ố ớ thanh ghi $s2 và đ a ch   th c ự ị ệ  câu l nh C

ả ử ế h đ    Gi  s  bi n  ả ơ ở ủ c  s  c a m ng  ướ hi nệ  d i đây sang MIPS?

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

ị Biên d ch:

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

18

# $t0 = A[8] # $t0 = h + A[8] # A[12] = $t0 lw  $t0,32($s3)  add  $t0,$s2,$t0  sw  $t0,48($s3)

Toán h ngạ

ph i  b t  đ u  t

ộ ớ ạ Toán h ng b  nh  (7):

ộ ố ế

ề ề

ệ ộ

ơ

Alignment  Restriction:  Trong  MIPS,  các  t ừ ả ắ ầ ừ ị   đ a  ch   là  ộ ố ủ ộ “alignment  restriction”  và  ọ ượ ầ b i  s   c a  4.  Yêu  c u  này  đ c  g i  là  m t  ộ ế nhi u  ki n  trúc  hi n  nay  bu c  tuân  theo  quy  đ nh  này  nh m  giúp  vi c  ữ ệ truy n d  li u nhanh h n. Tuy nhiên m t s  ki n trúc v n không b t bu c  ị quy đ nh này.

ữ ệ

ơ  đ c ọ

ươ

(Chú ý: T i sao tuân theo đi u này giúp truy n d  li u nhanh h n  ch

ng 5 sách tham kh o chính)

Leftmost  ­ “Big End”, “Big Endian”

Rightmost ­ “Little End”, “Little Endian”

ộ ạ

nào?

 MIPS thu c d ng

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

19

​ ​

Toán h ngạ

ố ố ứ ờ

ộ ạ Toán h ng h ng: ộ ằ M t  h ng  s /s   t c  th i  (constant/immediate  number)  có  ể ượ ử ụ th  đ c s  d ng trong trong m t phép toán

Ví d :ụ

Toán hạng hằng

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

20

# $s3 = $s3 + 4 addi  $s3, $s3, 4

Toán h ngạ

ộ ệ

Tóm l

i, ch  có 3 lo i toán h ng trong m t l nh c a MIPS

1.Toán h ng thanh ghi (Register Operands)

ớ 2.Toán h ng b  nh  (Memory Operands)

3.Toán h ng h ng (Constant or Immediate Operands)

L u ý:ư

ừ ộ

ộ ố ứ

ờ  trong MIPS.

ự ế

, có m t phiên b n khác c a MIPS làm vi c v i các thanh ghi

 Các hằng s  ố trong MIPS có th  ể âm nên không c n phép tr  m t thanh ghi và  m t s  t c th i  Trong th c t 64 bits, g i là MIPS­64. MIPS xem xét trong môn h c này là MIPS làm vi c v i

ẽ ể

các thanh ghi ch  32 bit, g i là MIPS­32.  (cid:0) Trong ph m vi môn h c này, MIPS dùng chung s  hi u là MIPS­32

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

21

ộ ệ

ế Tu n 3 – Ki n trúc b  l nh

ớ ệ 1. Gi i thi u

2. Các phép tính

3. Toán h ngạ

ố ấ ấ 4. S  có d u và không d u

ễ ệ ể 5. Bi u di n l nh

6. Các phép tính Logic

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

22

ệ ệ ả ề 7. Các l nh đi u ki n và nh y

ấ S  có d u và không d u

ơ ố

ư

ể ượ

h  ệ c  s  10, nh ng con s  có th  đ

c

 Con ng ể

ể ấ ỳ ơ ố

ố ơ ố

ơ ố

bi u di n

ườ ượ i đ c d y đ  suy nghĩ trong  ụ ễ  trong b t k  c  s  nào. Ví d , 123 c  s  10 = 1111011 c  s  2.

 S  ố l u tr  trong máy tính nh

ệ thế cao và th pấ , do

ư m t ộ chu iỗ  các tín hi u đi n  ơ ố   c ượ xem như h  ệ c  s  2.

ữ ư đó chúng đ

ẽ ướ

ư ế

ư

i  đây  cho  th y

ữ ố ấ nh   th   nào  m t  word  c a  MIPS  l u  tr   s

Ví  dụ:  Hình  v   d

1011:

ể ể

ố ừ

  M t word c a MIPS có 32 bit, do  đó có th  bi u di n các s  t

ế  0  đ n 2

32−1

ủ (4.294.967.295)

ấ (The  least  significant  bit  –  LSB):  Bit  ngoài  cùng  bên

 Bit  tr ng  s   nh   nh t  ố ỏ ộ ừ ớ  nh  (bit 0)  Bit tr ng s  l n nh t

ấ  (The most significant bit – MSB): Bit ngoài cùng bên trái

Copyrights 2017 CE­UIT. All Rights Reserved.

ph i trong m t t ố ớ ộ ừ ớ  nh  (bit 31)

ọ trong m t t 03/2017

23

ấ S  có d u và không d u

ố ươ

ng và âm trong máy tính: ệ ạ  s  d ng

i

ấ . ố s  có d u

ể ử ụ bù hai để bi u di n nh  phân cho  ng

ế ế

ượ ọ

 S  d Các máy tính hi n t • N u MSB = 0: s  d ố ươ • N u MSB = 1: s  âm. ố Bit th  32 ứ (MSB) còn đ

c g i là

bit d uấ .

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

24

ấ S  có d u và không d u

ươ

ố ừ

ng c a các con s , t

0 đ n

ư ế  2,147,483,647ten  (231 – 1), bi u di n nh

th

 N aử  ph nầ  d ngườ .  ầ ố

 Ph n s  âm bi u di n:

1000…0000two = ­2,147,483,648ten

ố ươ

ươ

ng t

ứ ng  ng.

­2,147,483,648ten , mà không có s  d

1000…0001two = ­2,147,483,647ten  Bù hai có m t s  âm  ộ ố    1111…1111two  = ­1ten

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

25

ấ S  có d u và không d u

Công thức chuyển từ một số bù hai sang số hệ 10:

ượ

v i ớ ­231, và ph n còn l

c nhân

ị ơ ố

ươ

ư L u ý:  ớ v i các

ấ ượ c nhân  Bit d u đ ủ ươ số d

ầ ng c a các giá tr  c  s  nào t

ạ ủ i c a các bit sau đó đ ủ chúng. ứ ng  ng c a

Ví dụ: đổi từ hệ 2 sang hệ 10

Trả lời:

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

26

ấ S  có d u và không d u

ở ộ ố ấ M  r ng s  có d u:

ể ế ể ổ ị

ộ ố ể ượ ề ễ ớ ể ộ ố c  bi u  ơ n  n  bit  thành  m t  s   bi u  di n  v i  nhi u  h n

Làm  th   nào  đ   chuy n  đ i  m t  s   nh   phân  đ ễ di n  trong  bit?

Ví d :ụ

ủ ố ten và ­2ten thành

ị ổ ố ể     Chuy n đ i s  nh  phân 16 bit c a s  2 ố ị s  nh  phân 32 bit. 2ten:

Copyrights 2017 CE­UIT. All Rights Reserved.

03/2017

27

­2ten:

ấ S  có d u và không d u

ệ ớ ư ủ

ở ộ

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

28

ở ộ ấ ệ Khi làm vi c v i các l nh c a MIPS, l u ý: •M  r ng có d u (Sign­extend) ấ •M  r ng không d u (Zero­extend)

ộ ệ

ế Tu n 3 – Ki n trúc b  l nh

ậ ệ

ệ ệ

ế ổ

i thi u l nh máy tính, t p l nh là gì

ượ ử ụ

ụ ể

c s  d ng c  th  trong môn h c này là

ậ ệ  (T p l nh đ

MIPS 32 bits)

ơ ả ổ ữ ệ

ậ ệ ệ

ồ ố ọ

T p l nh bao g m các nhóm l nh c  b n: Nhóm l nh logic,  ệ nhóm l nh s  h c, nhóm l nh trao đ i d  li u và nhóm l nh nh y

c chia thành ba nhóm:

ượ ạ

ạ ố ứ

V i MIPS, toán h ng cho các l nh đ ệ ạ nhóm toán h ng thanh ghi, nhóm toán h ng b  nh  và nhóm toán  ờ ạ h ng là s  t c th i

ắ ạ ố

Nh c l

i s  có d u và s  không d u

03/2017

Copyrights 2017 CE-UIT. All Rights Reserved.

29

T ng k t: Gi

ộ ệ

ế Tu n 3 – Ki n trúc b  l nh

 Lý thuy t: Đ c sách tham kh o ả ọ ế • M c: 2.1, 2.2, 2.3, 2.4 •

Sách: Computer Organization and Design: The  Hardware/Software Interface, Patterson, D. A.,  and J. L. Hennessy, Morgan Kaufman,  Revised  Fourth Edition, 2011.

 Bài t p: ậ file đính kèm

03/2017

Copyrights 2017 CE­UIT. All Rights Reserved.

30