Professional Documents
Culture Documents
ET4270
TS. Nguyn c Minh
[Adapted from Computer Organization and Design, 4
th
Edition, Patterson & Hennessy, 2008, MK]
[Adapted from Computer Architecture lecture slides, Mary Jane Irwin, 2008, PennState University]
T chc lp
S tn ch 3 (3-1-1-6)
Ging vin TS. Nguyn c Minh
Vn phng C9-401
Email minhnd1@gmail,com
Website https://sites.google.com/site/fethutca/home
Username: ca.fet.hut@gmail.com
Pass: dungkhoiminh
Sch Computer Org and Design, 3
rd
Ed., Patterson &Hennessy, 2007
Digital Design and Computer Architecture, David Money Harris
Th nghim 3 bi
Bi tp Theo chng, bi xem trn trang web
HUST-FET, 13/02/2011 2 Gii thiu
im s
iu kin thi Lab
Bi thi gia k 30%
Bi tp 20% (Ti a 100 im)
Tin trnh 10%
Ti a: 100 im,
Bt u: 50 im
Tch ly, tr qua tr li cu hi trn lp v ng gp t chc lp
Bi thi cui k 70%
HUST-FET, 13/02/2011 3 Gii thiu
Lch hc
Thi gian:
T 14h00 n 17h20
L thuyt: 11 bui x 135 pht / 1 bui
Bi tp: 4 bui x 135 pht / 1 bui
Thay i lch (ngh, hc b) s c thng bo trn website
trc 2 ngy
HUST-FET, 13/02/2011 4 Gii thiu
Kt lun chng 1
H thng my tnh c xy dng t phn cp cc lp tru
tng. Cc chi tit trin khai lp di b che khut khi lp trn.
Kin trc tp lnh lp giao tip gia phn cng v phn mm
mc thp l lp tru tng quan trng trong h thng my tnh.
Phn cng my tnh gm 5 thnh phn: ng d liu, khi iu
khin, b nh, khi vo, v khi ra. 5 thnh phn kt ni vi
nhau bng h thng bus theo m hnh vonNeumann hoc m hnh
Havard.
Phng php nh gi hiu nng mt h thng my tnh l dng
thi gian thc hin 1 chng trnh. Thi gian thc hin chng
trnh c tnh bng cng thc:
HUST-FET, 13/02/2011 5 Chng 2. Ngn ng my tnh v cc php ton
c cpu
T CPI I T =
Ni dung
1. H m v biu din s trong my tnh
(nhc li)
2. Kin trc tp lnh
1. Yu cu chc nng my tnh vonNeumman
2. Yu cu chung ca kin trc tp lnh
3. Kin trc tp lnh MIPS
4. Bin dch
3. Cc php ton v cch thc hin trong
my tnh
HUST-FET, 13/02/2011 6 Chng 2. Ngn ng my tnh v cc php ton
H m c s r
Mt s biu din trong h m c s r gm m
ch s trc du phy v n ch s sau du
phy:
Trong
0 d
i
r-1 l cc ch s
d
m-1
: ch s c ngha ln nht
d
-n
: ch s c ngha nh nht
Gi tr ca D trong h c s 10:
HUST-FET, 13/02/2011 7 Chng 2. Ngn ng my tnh v cc php ton
=
=
1 m
n i
i
i
r d D
r n m m
d d d d d d d D ) , (
2 1 0 1 2 1
=
Cc h m thng dng
H c s 10: r = 10; 0 d
i
9
H c s 2: r = 2; d
i
e (0,1); d
i
c gi l cc bit
H c s 8: r = 8; 0 d
i
7
H c s 16: r = 16; d
i
e (0,,9,A,B,C,D,E,F)
My tnh dng h c s 2, v 16
HUST-FET, 13/02/2011 8 Chng 2. Ngn ng my tnh v cc php ton
Chuyn t thp phn sang nh phn
Bc 1 - Phn nguyn: Chia s cn i cho 2 ly phn
d; Ly thng chia tip cho 2 ly phn d; Lp li cho
n khi thng bng 0; Phn d cui cng l bit c gi
tr ln nht (MSB), phn d u tin l bit c gi tr nh
nht (trc du phy)
Bc 2 - Phn thp phn: Nhn s cn i vi 2, ly
phn nguyn ca tch; Ly phn thp phn ca tch nhn
tip vi 2, ly phn nguyn; Lp li n khi tch bng 0
hoc tch b lp li; Phn nguyn u tin l bit u tin,
phn nguyn cui cng l bt cui cng (sau du phy).
HUST-FET, 13/02/2011 9 Chng 2. Ngn ng my tnh v cc php ton
Chuyn t nh phn sang h 16
Nhm s thp phn thnh cc nhm 4 bt, ln lt t
phi sang tri.
Nhm cui cng c th c s bit nh hn 4
Chuyn mi nhm 4 bt thnh 1 ch s h 16
HUST-FET, 13/02/2011 10 Chng 2. Ngn ng my tnh v cc php ton
) , , , , , , , , , , , (
0 1 1 4 /
0 1 2 3 4 5 6 7 4 3 2 1
h h h
m m m m
b b b b b b b b b b b b
m
H 2 H 16 H 2 H 16 H 2 H 16 H 2 H 16
0001 1 0101 5 1001 9 1101 D
0010 2 0110 6 1010 A 1110 E
0011 3 0111 7 1011 B 1111 F
0100 4 1000 8 1100 C
V d 2.1 Chuyn i h m
Chuyn i cc s sau gia cc c s 10, 2 v 16
(241,625)
10
(1101 0101,1001)
2
(4A,3F)
16
HUST-FET, 13/02/2011 11 Chng 2. Ngn ng my tnh v cc php ton
Biu din s nguyn khng du
HUST-FET, 13/02/2011 12 Chng 2. Ngn ng my tnh v cc php ton
Hex Binary Decimal
0x00000000 00000 0
0x00000001 00001 1
0x00000002 00010 2
0x00000003 00011 3
0x00000004 00100 4
0x00000005 00101 5
0x00000006 00110 6
0x00000007 00111 7
0x00000008 01000 8
0x00000009 01001 9
0xFFFFFFFC 11100
0xFFFFFFFD 11101
0xFFFFFFFE 11110
0xFFFFFFFF 11111 2
32
- 1
2
32
- 2
2
32
- 3
2
32
- 4
2
32
- 1
1 1 1 . . . 1 1 1 1 bit
31 30 29 . . . 3 2 1 0 v tr
2
31
2
30
2
29
. . . 2
3
2
2
2
1
2
0
trng s
1 0 0 0 . . . 0 0 0 0 - 1
Cc s dng khng
cn bt du
Khong biu din: [0, 2
m
-1]
Biu din s nguyn bng 1 bt du v ln
Trong :
Bt MSB b
m-1
l bt du; b
m-1
= 0 biu din s dng, b
m-1
= 1
biu din s m
Cc bt cn li biu din 1 s nh phn khng du
C 2 biu din s 0: 100 (-0) v 000(+0)
Khong biu din [-(2
m-1
-1), 2
m-1
-1]
HUST-FET, 13/02/2011 13 Chng 2. Ngn ng my tnh v cc php ton
=
=
2
0
0 1 , 2 1
2 ) 1 ( ) , , , (
1
m
i
i
i
b
m m
b b b b b
m
+ =
2
0
1
1 bit m 2, b 0 1 , 2 1
2 2 ) , , , (
m
i
i
i
m
m m m
b b b b b b
Biu din s nguyn bng m b 2
Quy tc tm biu din b 2, 4 bt :
HUST-FET, 13/02/2011 15 Chng 2. Ngn ng my tnh v cc php ton
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
1111 -1
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7 =2
3
- 1
=-(2
3
- 1)
=-2
3
Biu din s nguyn m lch (bias)
Trong : bias l lch v thng bng 2
m-1
Khng c bit du
Khong biu din: [-2
m-1
, 2
m-1
-1]
HUST-FET, 13/02/2011 16 Chng 2. Ngn ng my tnh v cc php ton
bias b b b b b
m
i
i
i ,bias m m
=
=
1
0
2 0 1 , 2 1
2 ) , , , (
V d 2.2 Biu din s nguyn
Chuyn cc s sau sang dng m b 1, m b 2 v m
2 lch 127 di 8 bt
123
-8
-3
-126
129
-129
HUST-FET, 13/02/2011 17 Chng 2. Ngn ng my tnh v cc php ton
Biu din s thc chun IEEE-754
chnh xc n dng 32 bit nh phn
Bao gm:
1 bt du s: 0 s dng; 1 s m
8 bt biu din s m theo m lch 127:
23 bt biu din phn ln c chun ha 1 M < 2
M = (1,f
22
f
21
f
0
)
2
HUST-FET, 13/02/2011 18 Chng 2. Ngn ng my tnh v cc php ton
0 22 23 30 31
S M exp: s nguyn lch 127 ln chun ha M
M R
s
IEEE
=
exp
754
2 ) 1 (
127 2 ) ( exp
7
0
127 , 2 0 6 7
= =
= i
i
i
bias
e e e e
s
e
7
e
6
e
0
f
22
f
21
f
0
Biu din s thc chun IEEE-754
Biu din cc s c bit
HUST-FET, 13/02/2011 19 Chng 2. Ngn ng my tnh v cc php ton
S m lch 127 ln S c biu din
0 0 0
1 to 254 Bt k S chun ha
255 0
255 S khc 0 NaN
0 S khc 0 S khng chun ha
Biu din s thc chun IEEE-754
Khong biu din
HUST-FET, 13/02/2011 20 Chng 2. Ngn ng my tnh v cc php ton
chnh xc n chnh xc kp
Machine epsilon
chnh xc
2
-23
or 1.192 x 10
-7
2
-52
or 2.220 x 10
-16
Smallest positive
S dng nh
nht
2
-126
or 1.175 x 10
-38
2
-1022
or 2.225 x 10
-308
Largest positive
S dong ln
nht
(2- 2
-23
) 2
127
or 3.403 x
10
38
(2- 2
-52
) 2
1023
or 1.798 x
10
308
Decimal
Precision
chnh xc
thp phn
6 significant digits
6 ch s sau du phy
15 significant digits
15 ch s sau du phy
V d 2.3 Biu din s thc dng IEEE-754
i cc s sau thnh biu din s thc du phy ng
chnh xc n
125,50
-56,25
i cc biu din s thc du phy ng chnh xc
n sau thnh s thc h 10
1 1101 1001 110000 (tng cng 32 bt)
0 1001 1101 101000 (tng cng 32 bt)
HUST-FET, 13/02/2011 21 Chng 2. Ngn ng my tnh v cc php ton
Biu din k t, ch s
M ASCII: 7 bit hoc 8 bt
M Unicode: 16 bt
M BCD
HUST-FET, 13/02/2011 22 Chng 2. Ngn ng my tnh v cc php ton
b3b2b1b0 000 001 010 011 100 101 110 111
0000 NUL DLE SP 0 @ P p
0001 SOH DC1 ! 1 A Q a q
0010 STX DC2 2 B R b r
0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 ENQ NAK % 5 E U e u
0110 ACK SYN & 6 F V f V
0111 BEL ETB 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB * : J Z j z
1011 VT ESC + ; K [ k {
1100 FF FS , < L \ l |
1101 CR GS - = M ] m }
1110 SO RS . > N ^ n ~
1111 SI US / ? O _ o DEL
Decimal
digit
BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
My tnh vonNeumann: Hot ng c bn
Np ch th t b nh chng trnh
Xc nh hnh ng v kch thc ch
th
nh v v np d liu ton hng
Tnh gi tr kt qu hoc trng thi
Lu d liu vo b nh s dng
sau
Xc nh lnh tip theo
HUST-FET, 13/02/2011 23 Chng 2. Ngn ng my tnh v cc php ton
Instruction
Fetch
Instruction
Decode
Operand
Fetch
Execute
Result
Store
Next
Instruction
My tnh vonNeumann: Yu cu chc nng
Yu cu nguyn tc:
My tnh hot ng theo cc ch th my
Ch th c biu din bng cc s khng phn bit
vi d liu
Chng trnh c lu tr trong b nh
Khi nim v chng trnh c lu tr (eng.
stored-program):
Chng trnh c cung cp nh l 1 tp cc s
nh phn.
My tnh c th chy cc chng trnh to sn
nu chng tng thch vi 1 kin trc tp lnh
S lng t cc kin trc tp lnh chun
Xc nh yu cu chc nng: Kin trc tp lnh
HUST-FET, 13/02/2011 24 Chng 2. Ngn ng my tnh v cc php ton
Accounting prg
(machine code)
C compiler
(machine code)
Payroll
data
Source code in
C for Acct prg
Memory
Kin trc tp lnh: nh gi
Thng s khi thit k:
C th trin khai c khng? Mt bao lu? Gi thnh?
C th lp trnh c khng? C d bin dch?
Thng s tnh:
ln chng trnh trong b nh?
Thng s ng:
S lng ch th c thc hin? S lng byte cn np
chy chng trnh?
S chu k ng h cn cho mi ch th?
Tc ng h?
Thng s tt nht: Thi gian thc hin!
HUST-FET, 13/02/2011 25 Chng 2. Ngn ng my tnh v cc php ton
CPI
Inst. Count Cycle Time
Kin trc tp lnh: Yu cu
Kch thc v kiu d liu
Php ton: loi no c h tr
nh dng v m ha ch th:
Ch th c gii m th no?
V tr ton hng v kt qu
S lng ton hng?
Gi tr ton hng c lu u?
Kt qu c lu v tr no?
Cc ton hng b nh c nh v th no?
Ch th tip theo: nhy, iu kin, r nhnh
HUST-FET, 13/02/2011 26 Chng 2. Ngn ng my tnh v cc php ton
D liu: Kiu & kch thc
HUST-FET, 13/02/2011 27 Chng 2. Ngn ng my tnh v cc php ton
Byte
Hal fword
Word
Doubleword
Byte = 8 bits
Word = 4 bytes
Doubleword = 8 bytes
Quadword (16 bytes) t c s dng
Halfword = 2 bytes
S dng lu d liu du
phy ng
Kin trc tp lnh: Yu cu
Kch thc v kiu d liu
Php ton: loi no c h tr
nh dng v m ha ch th:
Ch th c gii m th no?
V tr ton hng v kt qu
S lng ton hng?
Gi tr ton hng c lu u?
Kt qu c lu v tr no?
Cc ton hng b nh c nh v th no?
Ch th tip theo: nhy, iu kin, r nhnh
HUST-FET, 13/02/2011 28 Chng 2. Ngn ng my tnh v cc php ton
Cc php ton
HUST-FET, 13/02/2011 29 Chng 2. Ngn ng my tnh v cc php ton
Load/Store: c v ghi b nh
Computational: Tnh ton s hc v logic, so snh
C lnh nhn chia hay khng?
Cc lnh so snh no?
Jump and Branch: Nhy v r nhnh
Floating Point: Lnh du phy ng
coprocessor
Memory Management: Qun l b nh
Special: Lnh c bit
Cc php ton
HUST-FET, 13/02/2011 30 Chng 2. Ngn ng my tnh v cc php ton
Dch chuyn d liu c (t b nh), Ghi (ti b nh)
Chuyn gia cc nh
Chuyn gia cc thanh ghi
Vo (t thit b I/O), Ra (ti thit b I/O)
push, pop (t/ti ngn xp)
S hc S nguyn (nh phn, thp phn), S thc du
phy ng. Cng, tr, nhn chi
Dch Dch tri/phi, Quay tri/phi
Logic not, and, or, set, clear
iu khin (nhy, r nhnh) Khng iu kin, C iu kin
Lin kt vi th tc call, return
Ngt trap, return
ng b test & set
Chui search, translate
ha (MMX) Php ton song song
Cc php ton
HUST-FET, 13/02/2011 31 Chng 2. Ngn ng my tnh v cc php ton
Cc php ton n gin c s dng nhiu v
chim a s trong cc ch th ca chng trnh
Cn tp trung vo cc php ton:
load, store
move register-register
add, subtract, and, shift
compare equal, compare not equal
branch, jump, call, return
Kin trc tp lnh: Yu cu
Kch thc v kiu d liu
Php ton: loi no c h tr
nh dng v m ha ch th:
Ch th c gii m th no?
V tr ton hng v kt qu
S lng ton hng?
Gi tr ton hng c lu u?
Kt qu c lu v tr no?
Cc ton hng b nh c nh v th no?
Ch th tip theo: nhy, iu kin, r nhnh
HUST-FET, 13/02/2011 32 Chng 2. Ngn ng my tnh v cc php ton
nh dng lnh: cc trng
M lnh ch ra nhim v (chc nng) ca lnh
Tham chiu ton hng ngun ch ra cc ton hng c
x l bi lnh
Tham chiu kt qu ch ra ni lu tr kt qu ca lnh
Tham chiu lnh k tip ch ra cch tnh ton hoc ni
lu tr lnh s c thc hin tip theo
Thng khng c ch ra r rng trong lnh m c ngm coi
l lnh lin sau lnh hin ti trong chui lnh
Trong mt s loi lnh, a ch ca lnh tip theo s c ch ra
HUST-FET, 13/02/2011 33 Chng 2. Ngn ng my tnh v cc php ton
Kin trc tp lnh: Yu cu
Kch thc v kiu d liu
Php ton: loi no c h tr
nh dng v m ha ch th:
Ch th c gii m th no?
V tr ton hng v kt qu
S lng ton hng?
Gi tr ton hng c lu u?
Kt qu c lu v tr no?
Cc ton hng b nh c nh v th no?
Ch th tip theo: nhy, iu kin, r nhnh
HUST-FET, 13/02/2011 34 Chng 2. Ngn ng my tnh v cc php ton
S lng ton hng (1)
3 ton hng:
a ch ca 2 ton hng, v kt qu u c cha trong m lnh
OP A, B, C A B OP C
D bin dch t ngn ng bc cao sang lnh my
Gi tr ton hng lu trong cc thanh ghi
Lnh ch ra ch s thanh ghi
2 ton hng: (gi tr trong cc thanh ghi, hoc a ch nh)
Mt a ch c dng cho ton hng v kt qu
OP A, B A A OP B
Bin dch i hi thm lnh v thanh ghi lu tr tm thi
Gi tr ton hng lu trong thanh ghi hoc trong nh.
Lnh ch ra ch s thanh ghi hoc a ch nh
HUST-FET, 13/02/2011 35 Chng 2. Ngn ng my tnh v cc php ton
S lng ton hng (2)
Mt ton hng: lnh tch ly (accumulator)
Mt ton hng v kt qu c quy nh ngm c lu trong 1 thanh
ghi c bit (Accumulator AC)
Ton hng cn li lu trong thanh ghi
OP A AC AC OP A
Thng dng trong b x l tn hiu s
Khng ton hng: lnh ngn xp (stack)
Tt c cc a ch c quy nh ngm
Kt qu v ton hng th hai nm a ch nh ca stack: T
Ton hng th nht nm a ch th 2 ca stack: T-1
OP T T-1 OP T
S lng ton hng quyt nh: di lnh, I v CPI
HUST-FET, 13/02/2011 36 Chng 2. Ngn ng my tnh v cc php ton
V d 2.4: So snh s lng ton hng
HUST-FET, 13/02/2011 37 Chng 2. Ngn ng my tnh v cc php ton
Xt cu lnh ngn ng bc cao: Y = (A B)/(C+D*E)
Bin dch thnh hp ng:
3 a ch
SUB Y, A, B
MUL T, D, E
ADD T, T, C
DIV Y, Y, T
2 a ch
MOV Y, A
SUB Y, B
MOV T, D
MUL T, E
ADD T, C
DIV Y, T
1 a ch
LOAD D
MUL E
ADD C
STORE Y
LOAD A
SUB B
DIV Y
STORE Y
0 a ch
Chuyn sang dng ton t sau:
Y = AB-CDE*+/
PUSH A
PUSH B
SUB
PUSH C
PUSH D
PUSH E
MUL
ADD
DIV
POP Y
Kin trc tp lnh: Yu cu
Kch thc v kiu d liu
Php ton: loi no c h tr
nh dng v m ha ch th:
Ch th c gii m th no?
V tr ton hng v kt qu
S lng ton hng?
Gi tr ton hng c lu u?
Kt qu c lu v tr no?
Cc ton hng b nh c nh v th no?
Ch th tip theo: nhy, iu kin, r nhnh
HUST-FET, 13/02/2011 38 Chng 2. Ngn ng my tnh v cc php ton
Gi tr ton hng Ch a ch
HUST-FET, 13/02/2011 39 Chng 2. Ngn ng my tnh v cc php ton
Register Add R4,R3
R4 R4+R3
Immediate Add R4,#3
R4 R4+3
Displacement Add R4,100(R1)
R4 R4+Mem[100+R1]
Register indirect Add R4,(R1)
R4 R4+Mem[R1]
Indexed / Base Add R3,(R1+R2)
R3 R3+Mem[R1+R2]
Direct or absolute Add R1,(1001)
R1 R1+Mem[1001]
Memory indirect Add R1,@(R3)
R1 R1+Mem[Mem[R3]]
Auto-increment Add R1,(R2)+
R1 R1+Mem[R2]; R2 R2+d
Auto-decrement Add R1,(R2)
R2 R2d; R1 R1+Mem[R2]
Scaled
Add R1,100(R2)[R3]
R1 R1+Mem[100+R2+R3*d]
Ch a ch tc th (Immediate)
HUST-FET, 13/02/2011 40 Chng 2. Ngn ng my tnh v cc php ton
Gi tr ca ton hng (ton hng) l trng ton hng
ca cu lnh
Operand = Operand field
Khng tham chiu n b nh np d liu
Ton hng lun l hng s trong khi chy chng trnh
Tc cao
Khong gi tr ca ton hng nh
V d: ADD R4, #3: R4 R4+3
Operand Opcode Instruction
Ch a ch thanh ghi (Register)
HUST-FET, 13/02/2011 41 Chng 2. Ngn ng my tnh v cc php ton
Ton hng c cha trong thanh ghi ch ra bi trng
a ch
Operand = R[n] (Rn)
Khng truy cp b nh
Thc thi nhanh
Trng a ch dng t bit
Lnh ngn hn
Np lnh nhanh hn
S lng thanh ghi b hn ch
Register index: n Opcode Instruction Register file
Operand
Memory
Offset: A
Ch a ch tng i (Relative)
HUST-FET, 13/02/2011 43 Chng 2. Ngn ng my tnh v cc php ton
Phin bn ca a ch dch chuyn
R = PC, c ngm nh trong m lnh (opcode)
operand = MEM[A + PC]
Ly ton hng t a ch cch v tr chng trnh hin ti
A nh
Dng truy cp cc hng s, bin, a ch a phng
Opcode Instruction
Register file
PC
Operand
Memory Address A
a ch b nh
a ch b nh:
a ch byte: nh a ch cho cc nh kch thc 1 byte
a ch word: nh a ch cho cc nh kch thc 1 word
2 cu hi khi thit k ISA:
Cc kiu d liu ln hn byte c lu tr th no?
a ch khc byte c tnh ton th no?
Cc kiu d liu ln c c lu tr v tr a ch byte bt k
hay khng? (Vn alighment)
HUST-FET, 13/02/2011 44 Chng 2. Ngn ng my tnh v cc php ton
31 23 15 7 0
x x+1 x+2 x+3 x+4 byte address
word
a ch b nh: Endianess v Alignment
Big Endian:
a ch word = a ch ca byte c ngha ln nht trong word
(Most Significant Byte)
IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA
Litle Endian:
a ch word = a ch ca byte c ngha nh nht trong word
(Least Significant Byte)
Intel 80x86, DEC Vax, DEC Alpha
Alignment:
D liu c lu tr a ch
byte chia ht cho kch thc.
HUST-FET, 13/02/2011 45 Chng 2. Ngn ng my tnh v cc php ton
a ch b nh: Endianess v Alignment
Big Endian:
a ch word = a ch ca byte c ngha ln nht trong word
(Most Significant Byte)
IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA
Litle Endian:
a ch word = a ch ca byte c ngha nh nht trong word
(Least Significant Byte)
Intel 80x86, DEC Vax, DEC Alpha
Alignment:
D liu c lu tr a ch
byte chia ht cho kch thc.
HUST-FET, 13/02/2011 46 Chng 2. Ngn ng my tnh v cc php ton
a ch b nh: Endianess v Alignment
Big Endian:
a ch word = a ch ca byte c ngha ln nht trong word
(Most Significant Byte)
IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA
Litle Endian:
a ch word = a ch ca byte c ngha nh nht trong word
(Least Significant Byte)
Intel 80x86, DEC Vax, DEC Alpha
Alignment:
D liu c lu tr a ch
byte chia ht cho kch thc.
HUST-FET, 13/02/2011 47 Chng 2. Ngn ng my tnh v cc php ton
0 1 2 3
Aligned
Not
Aligned
S dng ch a ch
Displacement: 42% avg, 32% to 55%
Immediate: 33% avg, 17% to 43%
Register deferred (indirect): 13% avg, 3% to 24%
Scaled: 7% avg, 0% to 16%
Memory indirect: 3% avg, 1% to 6%
Misc: 2% avg, 0% to 3%
75% displacement & immediate
88% displacement, immediate & register indirect
HUST-FET, 13/02/2011 48 Chng 2. Ngn ng my tnh v cc php ton
88%
75%
Thng k ch a ch
Kch thc trng ton hng trc tip
8 bit: 50-60%
16 bit; 75%-80%
Cc ch a ch quan trng
Dch chuyn (Displacement)
Trc tip (Immediate)
Thanh ghi gin tip (Register indirect)
Kch thc lch trong ch a ch: 12-16
bt
Kch thc ton hng trc tip: 8-16 bt
HUST-FET, 13/02/2011 49 Chng 2. Ngn ng my tnh v cc php ton
nh dng ch th
HUST-FET, 13/02/2011 50 Chng 2. Ngn ng my tnh v cc php ton
di ch th:
C nh
Thay i
Lai: gm 1 vi loi ch th c di c nh khc nhau
Khi kch thc chng trnh quan trng: dng ch di
thay i
Khi hiu nng quan trng: dng di c nh
Variable:
Fixed:
Hybrid:
a
n-1
a
n-2
0 a
1
a
0
a
n-1
a
n-2
a
0
a
n-1
a
1
a
n-1
a
n-2
0 a
n-3
a
0
B dch
Dch tri 0 hoc 1 bt
C th thit k b dch c tri v phi
HUST-FET, 13/02/2011 107 Chng 2. Ngn ng my tnh v cc php ton
B dch
B dch tri 1 bt, v dch phi 2 bt
HUST-FET, 13/02/2011 108 Chng 2. Ngn ng my tnh v cc php ton
B cng na, cng 2 s 1 bit
HUST-FET, 13/02/2011 109
Tn hiu vo: a, b
Tn hiu ra: s (sum), c
o
(carry out)
Cu hi:
Xc nh biu thc Bool cho s, v c
o
Half Adder
(HA)
a
b
s
c
o
a b s c
o
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
s
b
a
c
o
B cng y , cng 3 s 1 bit
Tn hiu vo: a, b, c
i
(carry in)
Tn hiu ra: s (sum), c
o
(carry out)
Cu hi:
Xc nh biu thc Bool cho s, v c
o
HUST-FET, 13/02/2011 110
Full Adder
(FA)
a
c
i
s
c
o
b
a b c
i
s c
o
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
b
c
i
s
c
o
a
Php cng, tr 2 s c du
2 s biu din dng m b 2.
Cng tng bit t bit LSB n bit MSB; Nh sang ct k
tip
Kt qu sai v trn xy ra khi 2 bit nh cui cng khc
nhau: c
o,3
c
i,3
Cng 2 s khc du lun khng xy ra trn
Php tr l php cng vi s o (dng m b 2)
HUST-FET, 13/02/2011 111 Chng 2. Ngn ng my tnh v cc php ton
0 1 1 1
5 0 1 0 1
3 0 0 1 1
-8 1 0 0 0
Trn
1 0 0 0
-7 1 0 0 1
-2 1 1 1 0
7 0 1 1 1
Trn
1 1 1 1
-3 1 1 0 1
-5 1 0 1 1
-8 1 0 0 0
Khng trn
0 0 0 0
5 0 1 0 1
2 0 0 1 0
7 0 1 1 1
Khng trn
B cng 2 s n bt dng b 2
B cng ni tip gm
n b cng
n cng logic xor tnh s o khi tr
Cng logic xor pht hin trn
HUST-FET, 13/02/2011 112 Chng 2. Ngn ng my tnh v cc php ton
FA FA FA FA
...
...
a
n-1
b
n-1 a
2
b
2
a
1
b
1
a
0
b
0
add/
subtract
c
n-1
c
n-2
c
2
c
1
c
0
C
-1
s
2
s
1
s
0 s
n-1
overflow
b
c
i
s
c
o
a
Tc b cng
B cng ni tip
Tn hiu nh lan truyn (ripples) qua tt c cc b cng "ripple
carry adder"
tr tng tuyn tnh vi s lng b cng (s bit ca mi ton
hng)
Bt nh: t
ar
(c
n
) = t
ar
(c
n-1
) + 2 = 3 + 2*(n-1)
Bt tng: t
ar
(s
n
) = t
ar
(c
n
) + 1 = 4 + 2*(n-1)
Tng tc bng b cng tnh bit nh trc (Carry
lookahead Adder)
HUST-FET, 13/02/2011 113 Chng 2. Ngn ng my tnh v cc php ton
B cng CLA
HUST-FET, 13/02/2011 114 Chng 2. Ngn ng my tnh v cc php ton
Vi Ripple-Carry Adder, bit nh c tnh da trn cc
bt nh trc tc chm
Tng tc , tnh bit nh mi ct trc tip t tn hiu
u vo
Bit nh u ra ca ct i c tnh t tn hiu to nh v
tn hiu lan truyn nh c
i
= g
i
+c
i-1
p
i
s
i
= a
i
b
i
c
i-1
c
i
= a
i
b
i
+ a
i
c
i-1
+ b
i
c
i-1
= a
i
b
i
+ c
i-1
(a
i
+ b
i
)
= a
i
b
i
+ c
i-1
(a
i
b
i
)
Tn hiu to nh: g
i
= a
i
b
i
To ra c
i
khi a
i
= b
i
= 1
Lan truyn nh: p
i
= (a
i
b
i
)
Truyn nh t u vo n
u ra khi a
i
b
i
= 1
B cng CLA
Tnh ton bit nh
Mi cng thc nh trn c th c trin bi mt mch logic 2 mc
tnh ton p
i
, g
i
ta cn mch logic 1 mc t u vo
Vy cn ti a 3 mc t u vo tnh c tn hiu nh
Tng tc
Cn cng AND n+2 u vo cho c
n
!
HUST-FET, 13/02/2011 115 Chng 2. Ngn ng my tnh v cc php ton
c
0
= g
0
+ p
0
c
-1
c
1
= g
1
+ p
1
c
0
= g
1
+ p
1
g
0
+ p
1
p
0
c
-1
c
2
= g
2
+ p
2
c
1
= g
2
+ p
2
g
1
+ p
2
p
1
g
0
+ p
2
p
1
p
0
c
-1
c
3
= g
3
+ p
3
c
2
= g
3
+ p
3
g
2
+ p
3
p
2
g
1
+ p
3
p
2
p
1
g
0
+ p
3
p
2
p
1
p
0
c
-1
B cng CLA
HUST-FET, 13/02/2011 116 Chng 2. Ngn ng my tnh v cc php ton
p
i
b
i
c
i-1
s
i
a
i
g
i
p
0
g
0
c
-1
c
0
p
1
g
1
g
0
c
1
p
0
p
1
c
-1
c
2
p
2
g
2
g
1
p
1
p
2
g
0
p
0
p
1
c
-1
p
2
c
3
p
3
g
3
g
2
p
2
p
3
g
1
p
1
p
2
g
0
p
3
p
0
p
1
c
-1
p
2
p
3
Gm2 tng
Tng 1: Tnh ton tng, tnh hiu to nh v truyn nh (1 mc logic) - PFA
Tng 2: Tnh ton bit nh (2 mc logic) - CLA
Php nhn khng du
Nhn ln lt cc ct ca s b nhn v s nhn c tch cc b
Cc tch cc b c cng vi nhau theo ct
V d
HUST-FET, 13/02/2011 117 Chng 2. Ngn ng my tnh v cc php ton
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
3
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
3
b
1
a
2
b
1
a
1
b
1
a
0
b
1
+ a
3
b
2
a
2
b
2
a
1
b
2
a
0
b
2
+ a
3
b
3
a
2
b
3
a
1
b
3
a
0
b
3
s
7
s
6
s
5
s
4
s
3
s
2
s
1
s
0
a b a*b
0 0 0
0 1 0
1 0 0
1 1 1
1 0 1 1 * 0 0 1 1 11*3
1 0 1 1
+ 1 0 1 1
+ 0 0 0 0
+ 0 0 0 0
0 0 1 0 0 0 0 1 33
B nhn khng du song song
S dng logic t hp
HUST-FET, 13/02/2011 118 Chng 2. Ngn ng my tnh v cc php ton
FA
a b
c
i
c
o
s
b
0
a
0
b
1
a
1
b
0
a
2
b
0
a
3
b
1
a
2
b
2
a
0
b
2
a
1
b
3
a
0
FA
a b
c
i
c
o
s
FA
a b
c
i
c
o
s
FA
a b
c
i
c
o
s
FA
a b
c
i
c
o
s
FA
a b
c
i
c
o
s
b
1
a
0
b
0
a
1
b
1
a
3
b
2
a
2
b
3
a
1
FA
a b
c
i
c
o
s
FA
a b
c
i
c
o
s
FA
a b
c
i
c
o
s
b
2
a
3
b
3
a
2
FA
a b
c
i
c
o
s
FA
a b
c
i
c
o
s
b
3
a
3
FA
a b
c
i
c
o
s
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
Php nhn c du
M rng bt du cho cc tch cc b
Vi tch cc b ca bit du s b
3
, cn ly s i (s b 2)
HUST-FET, 13/02/2011 119 Chng 2. Ngn ng my tnh v cc php ton
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
3
b
0
a
3
b
0
a
3
b
0
a
3
b
0
a
3
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
3
b
1
a
3
b
1
a
3
b
1
a
3
b
1
a
2
b
1
a
1
b
1
a
0
b
1
+ a
3
b
2
a
3
b
2
a
3
b
2
a
2
b
2
a
1
b
2
a
0
b
2
+ a
3
b
3
a
3
b
3
a
2
b
3
a
1
b
3
a
0
b
3
+ 1
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
V d 2.9 Php nhn c du
HUST-FET, 13/02/2011 120 Chng 2. Ngn ng my tnh v cc php ton
1 0 1 1 * 0 0 1 1 -5*3
1 1 1 1 1 0 1 1
+ 1 1 1 1 0 1 1
+ 0 0 0 0 0 0
+ 1 1 1 1 1
1
1
1
1 0
1
1 0
1
1 1 1 1 0 0 0 1 -15
Php nhn c du
n gin ha
HUST-FET, 13/02/2011 121 Chng 2. Ngn ng my tnh v cc php ton
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
3
b
0
a
3
b
0
a
3
b
0
a
3
b
0
a
3
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
3
b
1
a
3
b
1
a
3
b
1
a
3
b
1
a
2
b
1
a
1
b
1
a
0
b
1
+ a
3
b
2
a
3
b
2
a
3
b
2
a
2
b
2
a
1
b
2
a
0
b
2
+ a
3
b
3
a
3
b
3
a
2
b
3
a
1
b
3
a
0
b
3
+ 1
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
2
b
1
a
1
b
1
a
0
b
1
+ a
2
b
2
a
1
b
2
a
0
b
2
+ a
2
b
3
a
1
b
3
a
0
b
3
+ 1
- a
3
b
0
- a
3
b
1
- a
3
b
2
- a
3
b
3
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
Php nhn c du
n gin ha
HUST-FET, 13/02/2011 122 Chng 2. Ngn ng my tnh v cc php ton
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
2
b
1
a
1
b
1
a
0
b
1
+ a
2
b
2
a
1
b
2
a
0
b
2
+ a
2
b
3
a
1
b
3
a
0
b
3
+ 1
- a
3
b
0
- a
3
b
1
- a
3
b
2
- a
3
b
3
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
2
b
1
a
1
b
1
a
0
b
1
+ a
2
b
2
a
1
b
2
a
0
b
2
+ a
2
b
3
a
1
b
3
a
0
b
3
+ 1
- 0 a
3
b
3
a
3
b
2
a
3
b
1
a
3
b
0
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
Php nhn c du
n gin ha
HUST-FET, 13/02/2011 123 Chng 2. Ngn ng my tnh v cc php ton
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
2
b
1
a
1
b
1
a
0
b
1
+ a
2
b
2
a
1
b
2
a
0
b
2
+ a
2
b
3
a
1
b
3
a
0
b
3
+ 1
- 0 a
3
b
3
a
3
b
2
a
3
b
1
a
3
b
0
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
2
b
1
a
1
b
1
a
0
b
1
+ a
2
b
2
a
1
b
2
a
0
b
2
+ a
2
b
3
a
1
b
3
a
0
b
3
+ 1
+ 1 a
3
b
3
a
3
b
2
a
3
b
1
a
3
b
0
1
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
Php nhn c du
n gin ha
HUST-FET, 13/02/2011 124 Chng 2. Ngn ng my tnh v cc php ton
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
2
b
1
a
1
b
1
a
0
b
1
+ a
2
b
2
a
1
b
2
a
0
b
2
+ a
2
b
3
a
1
b
3
a
0
b
3
+ 1
+ 1 a
3
b
3
a
3
b
2
a
3
b
1
a
3
b
0
1
p
7
p
6
p
5
p
4
p
3
p
2
p
1
P
0
a
3
a
2
a
1
a
0
* b
3
b
2
b
1
b
0
a
3
b
0
a
2
b
0
a
1
b
0
a
0
b
0
+ a
3
b
1
a
2
b
1
a
1
b
1
a
0
b
1
+ a
3
b
2
a
2
b
2
a
1
b
2
a
0
b
2
+ a
3
b
3
a
2
b
3
a
1
b
3
a
0
b
3
+ 1 1
p
7
p
6
p
5
p
4
p
3
p
2
p
1
p
0
B nhn c du
HUST-FET, 13/02/2011 125 Chng 2. Ngn ng my tnh v cc php ton
B nhn ni tip
S dng b cng cng cc tch cc b
Thc hin php nhn trong vi chu k ng h
Lu s b nhn, s nhn v kt qu tm thi trong cc
thanh ghi
Vi mi bit b
i
ca s nhn B (t phi qua tri)
Nhn b
i
vi s b nhn A v cng tch vi kt qu tng tm thi
Y Nu b
i
= 1 th cng A vo Y
Dch A sang tri 1 bit
HUST-FET, 13/02/2011 126 Chng 2. Ngn ng my tnh v cc php ton
B nhn ni tip
HUST-FET, 13/02/2011 127 Chng 2. Ngn ng my tnh v cc php ton
Dch tri
A[2n-1:0]
2n-bit ALU
Dch phi
B[n-1:0]
Y[2n-1:0] control
Start
A[n-1:0] SBN
B[n-1:0] SN
Y[2n-1:0] 0
Count n
B
0
= 1 YY+A
Dch phi B
Dch tri A
Count Count - 1
Count = 0
Stop
Y
N
Y
N
Trin khai gm:
2 thanh ghi 2n bit
1 thanh ghi n bit
1 b cng 2n bit
1 khi iu khin
V d 2.10 - B nhn ni tip
HUST-FET, 13/02/2011 128 Chng 2. Ngn ng my tnh v cc php ton
Nhn xt:
Mt na s bit ca A lun bng 0
Khi A dch tri, bit 0 c thm vo bn phi
cc bit LSB ca tch khng b nh hng
tng: Gi A pha tri ca tch v dch tch sang phi
1
Start
A[n-1:0] SBN
B[n-1:0] SN
Y[2n-1:0] 0
Count n
B
0
= 1 YY+A
Dch phi B
Dch tri A
Count Count - 1
Count = 0
Stop
Y
N
Y
N
0 1 1 0 0 0 0 1 1 0 1
0 0 0 0 0 0 0 0
0 0 0 0 1 1 0 1
0 0 0 1 1 0 1 0 0 1 0 1
0 0 1 0 0 1 1 1
0 0 1 1 0 1 0 0 0 0 1 0
0 0 1 0 0 1 1 1
0 1 1 0 1 0 0 0 0 0 0 1
1 0 0 0 1 1 1 1
1 1 0 1 0 0 0 0 0 0 0 0
Counter=4
Counter=3
Counter=2
Counter=1
Counter=0
Y
A
B
B
B
B
B
Y
A
Y
A
Y
A
Y
A
Dch tri
A[2n-1:0]
2n-bit ALU
Dch phi
B[n-1:0]
Y[2n-1:0] control
B nhn ni tip Dng n-bit ALU
HUST-FET, 13/02/2011 129
A[n-1:0]
n-bit ALU
B[n-1:0]
C,Y[2n-1:0] control
Start
A[n-1:0] SBN
B[n-1:0] SN
C,Y[2n-1:0] 0
Count n
B
0
= 1
C,Y[2n-1:n]
Y[2n-1:n]+A
Dch phi B
Dch phi C,Y
Count Count - 1
Count = 0
Stop
Y
N
Y
N
Trin khai gm:
2 thanh ghi n bit
1 thanh ghi 2n+1 bit
1 b cng n bit
1 khi iu khin
V d 2.11 B nhn ni tip
HUST-FET, 13/02/2011 130
Nhn xt: Trong qu trnh nhn ch mt s bit
ca Y c ngha vi kt qu
Counter=4
Counter=3
Counter=2
Counter=1
Counter=0
1 1 0 1 A
1 1 0 1 A
1 1 0 1 A 0 0 1 0 B
0 0 0 1 B
0 1 0 1 B
1 0 1 1 B
0 0 0 0 B
Y 0 0 1 1 1 0 0 0 1
Y 1 0 0 1 1 1 0 0 0
1 1 0 1 A
0 0 0 0 0 0 0 0 Y 0
1 1 0 1 0 0 0 0 Y 0
0 1 1 0 1 0 0 0 Y 0
1 0 0 1 1 1 0 0 0 Y
0 1 0 0 1 1 1 0 0 Y
0 0 0 1 1 1 1 0 1 Y
1 0 0 0 1 1 1 1 0 Y
A[n-1:0]
n-bit ALU
B[n-1:0]
C,Y[2n-1:0] control
Start
A[n-1:0] SBN
B[n-1:0] SN
C,Y[2n-1:0] 0
Count n
B
0
= 1
C,Y[2n-1:n]
Y[2n-1:n]+A
Dch phi B
Dch phi C,Y
Count Count - 1
Count = 0
Stop
Y
N
Y
N
B nhn ni tip
HUST-FET, 13/02/2011 131
Start
A[n-1:0] SBN
C,Y[n-1:0],B[n-1:0] 0,SN
Count n
B
0
= 1
C,Y[n-1:0]
Y[n-1:0]+A
Dch phi C,Y,B
Count Count - 1
Count = 0
Stop
Y
N
Y
N
a
n-1
a
0
B tng n bit
y
n-1
y
0
b
n-1
b
0
Logic iu khin cng v
dch phi
c
n
S b nhn A
S nhn B
Trin khai gm:
1 thanh ghi n bit
1 thanh ghi 2n+1 bit
1 b cng n bit
1 khi iu khin
V d 2.12 B nhn ni tip
HUST-FET, 13/02/2011 132
Counter=4
Counter=3
Counter=2
Counter=1
Counter=0
1 1 0 1 A
1 1 0 1 A
1 1 0 1 A
1 1 1 0
1 1 1 1
1 0 1 1
1 0 1 1
Y 0 0 1 1 1
Y 1 0 0 1 0
1 1 0 1 A
0 0 0 0 Y 0
1 1 0 1 Y 0
0 1 1 0 Y 0
1 0 0 1 0 Y
0 1 0 0 0 Y
0 0 0 1 1 Y
1 0 0 0 0 Y
Start
A[n-1:0] SBN
C,Y[n-1:0],B[n-1:0] 0,SN
Count n
B
0
= 1
C,Y[n-1:0]
Y[n-1:0]+A
Dch phi C,Y,B
Count Count - 1
Count = 0
Stop
Y
N
Y
N
a
n-1
a
0
B tng n bit
y
n-1
y
0
b
n-1
b
0
Logic iu khin cng v
dch phi
c
n
S b nhn A
S nhn B
1 1 0 1
1 1 0 1
1 1 1 0
1 1 1 1
1 1 1 1
Nhn Booth
Nhn vi mt chui s 1
A * 1111 = A * (2
4
2
0
) = A * 2
4
A
Dch A sang tri 4 bit v tr i A
S b nhn B cha chui s 1 t bit v tr v n bit v tr u
(b
n-1
, b
n-2
, b
u+1
,b
u
,,b
v
,b
v-1
,..,b
0
) = (b
n-1
, b
n-2
,0,1,,1,0,..,b
0
)
Chui bit c th thay th bng 2
u+1
2
v
Cc php nhn v cng cho cc bt b
u
n b
v
c th c thay
bng php dch tri v php tr
V d:
B = 001110 (14
10
), u = 3, v = 2 A x B = A* 2
4
A*2
1
HUST-FET, 13/02/2011 133
V d 2.13 B nhn Booth
HUST-FET, 13/02/2011 134
0 +1 0 0 -1 0
0 1 0 1 0 1 A
0 0 1 1 1 0 B
B
1 1 0 1 0 1 1 0 1 1 1 1
0 0 1 0 1 0 1 0 0 0 0 0
0 1 0 1 0 0 0 0 1 0 0 0
0 0 1 0 0 1 1 0 1 0 0 0
Thc hin
1. Bt u chui s 1 (chuyn t 0 sang 1, hai bit lin tip l
01): tr i s b nhn
2. Trong chui s 0, hoc chui s 1 (2 bit lin tip l 00 hoc
11): dch tri s b nhn
3. Kt thc chui s 1 (chuyn t 1 sang 0, hai bit lin tip l
10): cng vi s b nhn
Thut ton nhn Booth
HUST-FET, 13/02/2011 135
Start
A[n-1:0] SBN
B[n-1:0] SN
C,Y[n-1:0],B
-1
0
Count n
B
0
B
-1
C,Y[n-1:0]
Y[n-1:0]+A
Dch phi C,Y,B,B
-1
Count Count - 1
Count = 0
Stop
Y
N
01
N
C,Y[n-1:0]
Y[n-1:0]-A
10
00,11
a
n-1
a
0
B tng n bit
y
n-1
y
0
b
n-1
b
0
Logic iu khin cng, tr
v dch phi
c
n
S b nhn A
S nhn B b
-1
V d 2.14 Minh ha thut ton Booth
HUST-FET, 13/02/2011 136
Start
A[n-1:0] SBN
B[n-1:0] SN
C,Y[n-1:0],B
-1
0
Count n
B
0
B
-1
C,Y[n-1:0]
Y[n-1:0]+A
Dch phi C,Y,B,B
-1
Count Count - 1
Count = 0
Stop
Y
N
01
N
C,Y[n-1:0]
Y[n-1:0]-A
10
00,11
a
n-1
a
0
B tng n bit
y
n-1
y
0
b
n-1
b
0
Logic iu khin cng, tr
v dch phi
c
n
S b nhn A
S nhn B b
-1
Counter=6
Counter=5
Counter=1
1 0 0 A 1 1 0
0 1 1 -A 0 1 1
0 0 0 0 Y 0 0 0 1 1 1 0 0 0 0
0 1 1 1 0 0 0 0 Y 0 0 0 0 0 0
0 1 1 1 1 0 1 1 Y 0 0 0 1 1 0
Counter=4 0 0 1 1 0 1 0 1 Y 1 0 1 1 1 1
Counter=3 0 0 0 1 1 0 1 0 Y 1 1 1 1 1 1
Counter=2 1 0 0 0 1 1 0 1 Y 1 1 1 1 1 0
1 0 0 +A 1 1 0
1 0 0 0 0 0 1 0 Y 1 1 1 0 0 0
1 1 0 0 0 0 1 0 Y 1 0 0 0 0 0
Counter=0 0 1 1 0 1 0 0 0 Y 0 0 0 0 0 1
Nhn Booth: Nhn c du
HUST-FET, 13/02/2011 137
V a, b l 2 s c du dng b 2:
a = -2
n-1
*a
n
+ 2
n-2
*a
n-2
+ ... + 2*a
1
+ a
0
Xt 2 bit lin tip (a
i ,
a
i-1
), hiu ca chng v hot ng nhn:
Gi tr c tnh ton bi b nhn Booth:
(0 - a
0
) * b + (a
0
- a
1
) * b * 2 + (a
1
a
2
) * b * 2
2
... +
(a
n-3
a
n-2
) * b * 2
n-2
+ (a
n-2
a
n-1
) * b * 2
n-1
Trin khai cc s hng v ti gin:
b * (-2
n-1
*a
n
+ 2
n-2
*a
n-2
+ ... + 2*a
1
+ a
0
)= b * a.
which is exactly the product of a and b.
a
i
a
i-1
a
i
a
i-1
action
1 0 -1 Tr b, v dch
0 1 1 Cng b v dch
0 0 0 B qua
1 1 1 B qua
Php chia
HUST-FET, 13/02/2011 138
Php nhn
Cng vi s b nhn v dch tri s b nhn
Ti u phn cng: cng vi s b nhn v dch phi tch
Php chia
Tr cho s chia v dch phi s chia
V d: Y = A / B
Ti u phn cng: tr cho s chia v dch tri phn d
Y 0
B 1 1
1 1 1 A 0 0
B 0 1 1 0 Y 0
B 0 0 1 1
0 0 1 A 0 0
0 1 Y 0
B 0 0 1 1 0 0 1 Y 0 0
Thut ton chia ni tip
HUST-FET, 13/02/2011 139
Start
B[n:0] SC
C, Y[n-1:0],A[n-1:0] 0,SBC
Count n
C = 1
A
0
0
Phc hi Y = Y+B
Count Count - 1
Count = 0
Stop
Y
N
Y
N
Dch tri C,Y,A
C,Y[n-1:0]
C,Y[n-1:0]-B
A
0
1
Tr Y = Y B v kim tra bit du C ca kt qu
Nu C = 1 (php tr kt qu m)
Bt kt qu a
0
=0
Phc hi s b chia: Y = Y + B
Nu C = 0 (php tr kt qu dng)
Bt kt qu a
0
=1
b
n-1
b
0
B tr n+1 bit
C y
0
a
n-1
a
0
Logic iu khin tr v
dch tri
S chia B
S b chia A
0
y
n-1
V d 2.15 B chia ni tip
HUST-FET, 13/02/2011 140
Counter=4
Counter=3
Counter=2
Counter=1
0 0 1 1 B
1 1 1 0
1 0 0 0
1 1 1 0
0 1 1 1
Y 1 1 1 0 1
0 0 0 0 Y 0
0 0 0 0 Y 0
1 1 0 1 Y 1
0 0 0 1 0 Y
0 0 1 1 0 Y
0 0 0 0 0 Y
0 0 0 0 0 Y
1 1 1 0
0 0 1 0
1 0 0 0
1 0 0 1
1 1 1 0 0 0 0 0 Y 0
1 1 0 1 -B 1
1 1 0 0 0 0 0 1 Y 0
1 1 0 1 -B 1
1 1 0 0 0 0 0 1 Y 0
1 1 0 1 -B 1
1 1 0 1 -B 1
1 1 1 0 1 Y 0 0 1 0
0 0 0 1 0 Y 0 0 1 0 Counter=0
Start
B[n:0] SC
C, Y[n-1:0],A[n-1:0] 0,SBC
Count n
C = 1
A
0
0
Phc hi Y = Y+B
Count Count - 1
Count = 0
Stop
Y
N
Y
N
Dch tri C,Y,A
C,Y[n-1:0]
C,Y[n-1:0]-B
A
0
1
b
n-1
b
0
B tr n+1 bit
C y
0
a
n-1
a
0
Logic iu khin tr v
dch tri
S chia B
S b chia A
0
y
n-1
Chia c du
1. Chia phn gi tr tuyt i
2. Xc nh du ca kt qu
Du ca thng:
Dng nu s chia v s b chia cng du
m nu s chia v s b chia khc du
Du ca phn d: lun cng du vi s b chia
3. o kt qu nu cn thit
HUST-FET, 13/02/2011 141
Php ton du phy ng
HUST-FET, 13/02/2011 142
Php cng tr: gi s E
A
> E
B
S du phy ng:
Php nhn
Php chia
Chun ha kt qu: a nh tr v dng chun ha v iu chnh s m
tng ng
B A
E
B
E
A
M B M A 2 ; 2 = =
( )
A
E
B
A
M M B A 2
'
= +
( ) ( )
B A
E E
B A
M M B A
= 2 / /
( ) ( )
B A
E E
B A
M M B A
+
= 2
B A
E E
B
B M M
= 2
'
trong