kiến trúc máy tính Vũ Đức Lung phần 7
lượt xem 22
download
Tham khảo tài liệu 'kiến trúc máy tính vũ đức lung phần 7', công nghệ thông tin, hệ điều hành phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: kiến trúc máy tính Vũ Đức Lung phần 7
- Chương V: M ch tu n t Chương V: M ch tu n t T yêu c u c a ví d ta xây d ng lư c ñ tr ng thái c a => trên ñư ng chuy n tr ng thái ta ghi 1/0. ñây ta lưu ý là tr ng m ch. Theo ñ bài ta có 4 tr ng thái là 11 10 01 00, như v y s thái m ch l t l ch thay ñ i chuy n ti p c a xung ñ ng h , có 4 vòng tròn ñ bi u di n 4 tr ng thái này. Lư c ñ tr ng thái c a nhưng trong khi l p lu n ñ cho ñơn gi n và ñ nh m l n ta không m ch như hình 5.10. ñ c p ñ n nó. Bư c 2: 0/0 T lư c ñ tr ng thái này ta s xây d ng m t b ng tr ng 11 thái. Theo yêu c u dùng flip-flop SR, ma ta ñã bi t m i flip-flop cho phép ta nh 1 bit. V y ñây ta có 4 tr ng thái, do ñó c n có hai 1/0 1/0 flip-flop ñ mã hóa chúng. Ta g i 2 flip-flop ñó là A và B, và các ñ u vào c a chúng tương ng s là SA,RA,SB,RB. T sơ ñ kh i 0/0 0/0 m ch tu n t hình 5.9, chúng ta cũng bi t ñư c ñ u ra c a các flip- 10 flop cũng chính là ñ u vào c a m ch. Như v y b ng tr ng thái s 00 có 3 ñ u vào là A,B và x => có 23=8 t h p. Ngoài ra trong b ng 1/1 tr ng thái ta còn có m t ñ u ra y. Các tr ng thái c a m ch ñư c bi u hi n trong b ng 5.3. D a vào b ng tr n thái c a m ch l t l 1/1 b ng 5.2 ta s tìm ra các giá tr trong b ng 5.3. Ba c t ñ u tiên là 01 giá tr nh p vào, do ñó ta ch c n ñi n các giá tr sao cho th hi n 0/0 t t c các t h p có th có. ð tránh nh m l n ta ñi n theo th t t 000 001 010 … Xác ñ nh giá tr trong c t “tr ng thái k ” Hình 5.10.Lư c ñ tr ng thái m ch Ti p theo ñ n c tr ng thái k , t lư c ñ tr ng thái ta có Trong lư c ñ này m i tr ng thái bi u th b ng m t vòng n u ñang tr ng thái 00 (AB=00) thì khi x =0 tr ng thái s không tròn nh v i tr ng thái ñư c ch bên trong vòng tròn và các ñư ng thay ñ i, do ñó hàng ñ u tiên A=0, B=0; hàng ti p theo khi x=1 d n tr c ti p n i các tr ng thái ch cho bi t hư ng chuy n ti p gi a thì tr ng thái s thay ñ i t 00 11 => A=1, B=1. Tương t , ta s các tr ng thái. Trên m i ñư ng có mũi tên ñ nh hư ng và trên ñó có ñư c giá tr cho t t c các hàng c t tr ng thái k . ghi giá tr c a bi n ñ u vào m ch x và bi n ñ u ra y. Giá tr c a hai bi n này ñư c cách nhau b i d u “/”. Ví d như n u ta ñang tr ng Xác ñ nh các ngõ nh p vào các flip-flop thái 11, và n u tín hi u ñ u vào là 0 (x=0) thì tr ng thái s không Cũng d a vào b ng tr ng thái c a flip-flop SR ta s xác thay ñ i (ñư ng có mũi tên xu t phát t nó và quay v chính nó) và ñ nh ñư c các giá tr c a các c t còn l i. Ch ng h n như ñ i v i ñ u ra y=0. Như v y trên ñư ng mũi tên ta ghi 0/0 t c là x/y hay flip-flop A, khi A chuy n t 0 sang 0 thì SA=0, RA=x; khi A chuy n x=0 và y=0. N u tín hi u vào x=1 thì tr ng thái s chuy n sang m t t 0 sang 1 thì SA=1, RA=0;…. tr ng thái m i là 10 (mũi tên ch ñ n tr ng thái 10) và vì s bit c a các flip-flop có giá tr b ng 1 là 2, t c là ch n cho nên ñ u ra y=0 167 168
- Chương V: M ch tu n t Chương V: M ch tu n t Tr ng Nh p Tr ng Ngõ nh p vào các ð u ra Bx thái hi n thái flip-flop A 00 01 1 1 10 ti k 0 x xx A B x A B SA RA SB RB y 0 0 0 0 0 x 0 x 0 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 x x 0 0 0 => RA= AB x 1 1 0 0 0 x 0 1 1 0 ð i v i flip-flop B ta có : 0 0 1 0 x 0 0 x 0 1 0 1 0 1 0 1 1 0 1 Bx Bx 1 1 0 1 1 x 0 x 0 0 1 A 00 01 11 10 A 00 01 11 10 1 1 1 0 x 0 0 1 0 1 0 1 x 0 x 1 B ng 5.3. B ng tr ng thái m ch tu n t Bư c 3: 1 1 x 1 x 1 T b ng tr ng thái 5.3 ta tìm hàm cho các ngõ nh p vào các flip-flop. Chú ý là các hàm tìm ñư c ph i là ng n g n nh t, ñ làm ñư c vi c ñó ta ph i dùng b n ñ Karnaugh ñ rút g n chúng. => RB = Bx => SB = B x Trư c h t t b ng 5.3 => b n ñ Karnaugh cho ñ u vào SA như sau : Bx B n ñ cho ñ u ra y : A 00 01 11 10 Bx 0 1 A 00 01 11 10 0 1 1 x x x 1 1 T b n ñ này ta suy ra => SA = A B x Tương t như v y cho các c ng còn l i, ta có b n ñ Karnaugh cho RA : T b n ñ này ta suy ra => y = A Bx + AB x Phương trình nh p m ch l t Như v y trong bư c 3 này ta ñã tìm ra ñư c hàm hay phương trình nh p cho các m ch flip-flop như sau: 169 170
- Chương V: M ch tu n t Chương V: M ch tu n t Chú ý là khi v m ch thì các ñ u vào l y t các ñ u ra – SA = A B x ngh ch ñ o c a flip-flop ph i ñư c l y t ñ u ra Q c a flip-flop – RA= AB x tương ng. Ví d RA= AB x thì ñ u B ph i ñư c l y t ñ u ra Q – SB = B x – R B = Bx c a flip-flop B ch không ñư c dùng ñ u ra Q c a flip-flop B r i T ví d này chúng ta th y r ng phương trình nh p m ch l t cho qua m t c ng inverter. là bi u th c Boolean c a m ch t h p. Qua ví d trên cho ta các ñ c trưng c a m t m ch tu n t Bư c 4: như sau: Bư c này là ñơn gi n nh t vì khi ñã có hàm Boolean r i thì - Lư c ñ tr ng thái ñư c bi u di n b ng các vòng tròn, m i vi c l a ch n c ng và v sơ ñ m ch là hoàn toàn không khó khăn vòng tròn bi u di n m t tr ng thái và chuy n ti p gi a các gì. Sơ ñ m ch c a m ch tu n t c n thi t k như hình 5.11. tr ng thái ñư c ghi nh n b ng các ñư ng n i các vòng. Lu c ñ tr ng thái cung c p cho ta các thông tin như b ng tr ng thái nhưng m t cách tr c quan, rõ ràng và d hi u hơn. y - S nh phân trong m i vòng xác ñ nh tr ng thái c a các flip-flop. Trên các ñư ng n i ta ghi giá tr c a bi n nh p x và bi n xu t y cách nhau b ng d u s (/) b ng các con s nh phân. Tr nh p trong tr ng thái hi n t i ñư c ghi trư c và s sau d u s là tr xu t trong trang thái hi n hành. Vi d ñư ng n i t tr ng thái 00 ñ n 11 ghi 1/0 có nghĩa khi S Q A x m ch tu n t tr ng thái hi n hành 00 và nh p là 1, xu t C là 0. Sau m t chuy n ti p ñ ng h , m ch ñ n tr ng thái k Q A 11. R - Lư c ñ tr ng thái cho m t cái nhìn hình tư ng các chuy n ti p tr ng thái và thích h p cho m i ngư i khi di n gi i ho t ñ ng c a m ch. B S - M ch tu n t ñư c xác ñ nh qua b ng tr ng thái liên k t Q các ngõ ra và tr ng thái k như là m t hàm c a các ng C B nh p và tr ng thái hi n hành sang tr ng thái k ñư c kích Q R ho t b i m t tín hi u ñ ng h . B ng tr ng thái g m b n ph n, tr ng thái hi n hành, nh p, tr ng thái k và xu t. Ph n tr ng thái hi n hành cho th y tr ng thái c a m ch l t Clock Hình 5.11. Sơ ñ m ch c a ví d A và B t i th i ñi m t. Ph n nh p là tr c a x cho m i 171 172
- Chương V: M ch tu n t Chương V: M ch tu n t tr ng thái hi n hành. Ph n tr ng thái k cho th y tr ng thái 5. Thi t k m ch ñ m gi m 2 bit. ðây là m ch tu n t có 2 c a m ch l t t i m t chu kỳ sau ñó là th i ñi m t+1. Ph n flip-flop và 1 ngõ nh p x. Khi x=0, tr ng thái m ch l t không ñ i. xu t cho tr c a y v i m i tr ng thái hi n hành và ñi u Khi x=1, dãy tr ng thái là 11, 10, 01, 00 và l p l i. ki n nh p. 6. Thi t k m ch tu n t có 2 m ch l t JK, A và B và 2 ngõ vào E và x. N u E=0 m ch gi nguyên tr ng thái b t ch p x. Khi - Lư c ñ tr ng thái và b ng tr ng thái ñ mô t ho t ñ ng E=1 và x =1 m ch chuy n tr ng thái t 00 sang 01 sang 10 sang 11 c a m ch tu n t . Có lư c ñ tr ng thái thì ta có th suy ra v 00 và l p l i. ( ñây E-Enable gi ng như c ng ñi u khi n cho b ng tr ng thái và ngư c l i. phép m ch ho t ñ ng hay không) 7. Thi t k m ch tu n t dùng m ch l t T. Khi ngõ nh p x=0, tr ng thái m ch l t không thay ñ i. Khi x=1, dãy tr ng thái là 00,10,01,11 và l p l i. Bài t p chương V 1. Hãy ch ng minh r ng JK flip-flop có th chuy n sang D flip-flop v i m t c ng ñ o ñ t gi a các ngõ nh p J và K 2. Thi t k m ch tu n t dùng m ch l t JK. Khi ngõ nh p x=0, tr ng thái m ch l t không thay ñ i. Khi x=1, dãy tr ng thái là 11,01,10,00 và l p l i. 3. M t m ch tu n t g m 2 D flip-flop A và B , 2 ngõ nh p x,y m t ngõ xu t z. Phương trình các ngõ nh p vào các flip-flop và ngõ xu t m ch như sau: DA = x y + xA DB = x B + xA Z=B a. V lư c ñ lu n lý c a m ch b. L p b ng tr ng thái. 4. Thi t k m ch ñ m nh phân 2-bit là m t m ch tu n t có ñ ng h ñi qua m t dãy tr ng thái nh phân 00, 01, 10, 11 và l p l i khi ngõ nh p ngoài x có tr 1. Tr ng thái m ch không ñ i khi x = 0. 173 174
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh Ki n trúc GPRA có m t lo i có th truy c p tr c ti p vào b nh (register-memory); m t lo i có th truy c p vào b nh nhưng ph i n p thông qua m t register g i là ki n trúc n p-lưu (load- Trong chương này chúng ta s t p trung vào ki n trúc b store) hay ki n trúc trên các thanh ghi (register-register); ngoài ra l nh c a máy tính, gi i thi u các trư ng h p khác nhau c a các còn m t ki u ki n trúc GPRA n a là ki n trúc b nh -b nh ki u ki n trúc b l nh. ð c bi t trong chương này s t p trung vào (memory-memory), nhưng ki u này không còn th y ngoài th b n ch ñ chính. ð u tiên là phân lo i các ki u ki n trúc b l nh trư ng ngày nay n a. và ñánh giá nh ng ưu khuy t ñi m c a chúng Nh ng máy tính ra ñ i trư c kia thư ng dùng ki u ki n trúc 6.1. Phân lo i ki n trúc b l nh ngăn x p ho c ki n trúc thanh ghi tích lũy, nhưng t sau năm 1980 thì ñ u dùng ki n trúc GPR. Hi n t i các nhà s n xu t máy tính có Có ba lo i ki n trúc b l nh cơ b n: ki n trúc ngăn x p khuynh hư ng dùng ki n trúc ph n m m thanh ghi ña d ng vì vi c (stack), ki n trúc thanh ghi tích lũy (Accumulator) và ki n trúc thâm nh p các thanh ghi ña d ng nhanh hơn thâm nh p b nh thanh ghi ña d ng GPRA(general-purpose register architecture). trong, và vì các chương trình d ch dùng các thanh ghi ña d ng có Trong ñó ki n trúc GPRA l i chia làm hai lo i thông d ng là thanh hi u qu hơn. B ng 6.1 cho ta th y các ưu và như c ñi m c a ba ghi – b nh (register-memory) và n p-lưu (load-store). Ví d phép lo i ki n trúc cơ b n này. tính C = A + B ñư c dùng trong các ki u ki n trúc trong hình 6.1. Như v y ki u ki n trúc GPR ñư c dùng ngày nay b i các y u t sau: – Dùng thanh ghi, m t d ng lưu tr trong c a CPU có t c ñ nhanh hơn b nh ngoài – Dùng thanh ghi thì d dàng cho trình biên d ch và có th dùng hi u qu hơn là b nh ngoài. Ví d bi u th c (A*B) + (C*D) – (E*F) có th tính b ng cách nhân các ph n trong ngo c m i th t , và khi ng d ng k thu t pipeline, m t Hình 6.1. Th c hi n l nh C = A + B cho 4 ki u ki n trúc b l nh k thu t làm cho các giai ño n khác nhau c a nhi u l nh Trong m t câu l nh thì chúng ta có các toán h ng, mà các ñư c thi hành cùng m t lúc => s hi u qu hơn. Trong khi toán h ng l i ñư c chia thành hai lo i: n (implicitly) và hi n ñó n u là ki n trúc stack thì bi u th c ñó ch có th ñư c (explicitly): Toán h ng trong ki n trúc ngăn x p là lo i n trên tính tu n t t trái sang ph i ñ u c a ngăn x p, ki n trúc thanh ghi tích lũy có m t toán h ng n – Có th dùng thanh ghi ñ lưu các bi n và như v y s gi m trong accumulator, còn ki n trúc GPRA thì ch dùng toán h ng thâm nh p ñ n b nh => chương trình s nhanh hơn hi n, ho c là thanh ghi ho c là trên b nh . Toán h ng d ng hi n có th truy c p tr c ti p t b nh ho c ñ u tiên ñư c n p vào thanh Tuy nhiên do các l nh ñ u dùng thanh ghi v y bao nhiêu ghi t m th i nào ñó ph thu c vào ki u ki n trúc b l nh ñ c trưng thanh ghi là ñ ? câu tr l i ph thu c vào vi c các thanh ghi ñư c c a nó. s d ng b i trình biên d ch như th nào. Ph n l n trình biên d ch 175 176
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh Ki u ki n trúc thanh ghi ña d ng dành riêng m t vài thanh ghi cho tính toán m t bi u th c, dùng vài thanh ghi ñ chuy n các thông s c n thi t và cho phép các thanh Do hi n nay ki u ki n trúc thanh ghi ña d ng chi m v trí ghi còn l i lưu tr các bi n c n thi t. hàng ñ u nên trong các ph n sau, ta ch ñ c p ñ n ki u ki n trúc này. Lo i ki n Ưu ñi m Như c ñi m ð i v i m t l nh tính toán ho c logic ñi n hình (l nh trúc ALU), có 2 ñi m c n nêu: Ngăn x p - L nh ng n - Thâm nh p ngăn – Trư c tiên, m t l nh ALU ph i có 2 ho c 3 toán h ng. N u (Stack) - Ít mã máy x p không ng u trong l nh có 3 toán h ng thì m t trong các toán h ng ch a - Làm t i thi u tr ng thái nhiên. k t qu phép tính trên hai toán h ng kia (Ví d : ADD A, B, bên trong c a m t máy tính - Mã không hi u qu C). N u trong l nh có 2 toán h ng thì m t trong hai toán - D dàng t o ra m t b - Khó dùng trong x h ng ph i v a là toán h ng ngu n, v a là toán h ng ñích biên d ch ñơn gi n cho lý song song và ng (Ví d : ADD A, B). ki n trúc ngăn x p dn - Khó t o ra m t b – Th hai, s lư ng toán h ng b nh có trong l nh. S toán biên d ch t i ưu h ng b nh có th thay ñ i t 0 t i 3. Thanh ghi - L nh ng n - Lưu gi thanh tích lu - Làm t i thi u tr ng thái ghi tích lu là t m Như ñã nêu trên, trong nhi u cách t h p có th có các (Accumulator bên trong c a máy tính (yêu th i. lo i toán h ng c a m t l nh ALU, các máy tính hi n nay ch n m t Register) c u ít m ch ch c năng) - Ngh n thanh ghi trong 3 ki u sau : - Thi t k d dàng tích lu • thanh ghi-thanh ghi (ki u này còn ñư c g i n p - lưu - Khó dùng trong x tr ), lý song song và ng • thanh ghi - b nh dn • b nh - b nh . - Trao ñ i nhi u v i Ki u thanh ghi - thanh ghi ñư c nhi u nhà ch t o máy tính b nh . lưu ý v i các lý do: vi c t o các mã máy ñơn gi n, chi u dài mã Thanh ghi - T c ñ x lý nhanh, - L nh dài máy c ñ nh và s chu kỳ xung nh p c n thi t cho vi c th c hi n ña d ng ñ nh v ñơn gi n. - S lư ng thanh ghi l nh là c ñ nh, ít thâm nh p b nh . Tuy nhiên, ki u ki n trúc này (General - Ít thâm nh p b nh . b gi i h n cũng có m t vài h n ch c a nó như: s lư ng thanh ghi b gi i Register) - Ki u r t t ng quát ñ h n, vi c các thanh ghi có cùng ñ dài d n ñ n không hi u qu t o các mã h u hi u trong các l nh x lý chu i cũng như các l nh có c u trúc. Vi c lưu B ng 6.1. So sánh các ki u ki n trúc b l nh và ph c h i các tr ng thái khi có các l i g i th t c hay chuy n ñ i ng c nh. 177 178
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh S p x p th t byte 6.2. ð a ch b nh Có hai cách s p x p th t byte trong m t t , ñánh s byte Trong ki n trúc b l nh bao gi chúng ta cũng ph i ñ c p trong m t t t trái sang ph i và ñánh s byte trong m t t t ph i ñ n các toán h ng, mà m t s toán h ng này ñư c lưu trong b sang trái. nh . V y cách t ch c ñ a ch b nh ra sao là ñi u c n bi t trư c khi ñi vào nghiên c u các b l nh. Hình 6.2(a) cho th y th t byte trong b nh trên máy tính 32 b t có s byte ñư c ñánh s t trái sang ph i, như h Motorola B nh (memory) là thành ph n lưu tr chương trình và d ch ng h n. Hình 6.2(b) là m t minh h a tương t v máy tính 32 li u trong máy tính mà trong chương 5 chúng ta ñã bi t Bit là ðơn bit, ñánh s t ph i sang trái, ví d như h Intel. H th ng trư c kia v cơ b n c a b nh . Ngoài ra chúng ta cũng ñã bi t 1 bit có th b t ñ u ñánh s t ñ u l n ñư c g i là máy tính ñ u l n (Big ñư c t o ra b ng 1 flip-flop. Nhưng cách b trí các ô nh trong m t endian), trái ngư c v i ñ u nh (little endian). b nh chung như th nào? th t s p x p c a chúng ra sao? là ñi u chúng ta c n bi t trong ph n này. ð a ch b nh - B nh g m m t s ô (ho c v trí), m i ô (cell) có th ch a m t m u thông tin. M i ô g n m t con s g i là ñ a ch (address), qua ñó chương trình có th tham chi u nó. Gi s b nh có n ô, chúng s có ñ a chi t 0 ñ n n-1. T t c ô trong b nh ñ u ch a cùng s bit. Trong trư ng h p ô có k bit nó có kh năng ch a m t trong s 2k t h p bit khác nhau. Trong m t b nh thì các ô k c n nhau s có ñ a ch liên ti p nhau. Ô là ñơn v có th l p ñ a ch nh nh t và các hãng khác nhau dùng qui ñ nh s bit trong m t ô cho t ng lo i máy tính c a Hình 6.2. (a) B nh ñ u l n (h Motorola), (b) B nh ñ u nh mình là khác nhau như IBM PC 8 bit/ô, DEC PDP-8 12bit/ô, IBM (h Intel) 1130 16 bit/ô,…Tuy nhiên trong nh ng năm g n ñây, ña s các nhà s n xu t máy tính ñ u dùng chu n hóa ô 8 bit, g i là byte. Byte C n bi t r ng trong h th ng ñ u l n l n ñ u nh , s nhóm l i thành t (word) và máy tính v i t 16 bit s có 2 byte/t , nguyên 32 bit v i tr s là 6 s ñư c bi u di n b ng bit 110 3 bit còn máy tính v i 32 bit s có 4 byte/t . H u h t các l nh ñư c th c bên góc ph i c a t và 0 29 bit bên góc trái. Trong lư c ñ ñ u hi n trên toàn b t . Vì v y máy tính 16 bit s có thanh ghi 16 bit l n, nh ng bit này n m trong byte ñ u tiên bên ph i, byte 3 (ho c và l nh thao tác trên 1 t 16 bit, còn máy 32 bit s có thanh ghi 32 7,11,…), trong khi ñó lư c ñ ñ u nh , chúng trong byte 0 bit và các l nh thao tác trên 1 t 32 bit. (ho c 4,8,…). Trong c hai trư ng h p, t ch a s nguyên có ñ a ch 0. ði m khác bi t này bên trong m t máy tính là không có v n ñ gì, nhưng khi k t n i chúng vào trong cùng m t m ng và khi trao ñ i thông tin v i nhau thì s g p nhi u v n ñ tr c tr c. 179 180
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh 6.3. Mã hóa t p l nh thay ñ i tùy ý (VAX). Ngoài ra m t l nh có th ng n hơn, dài hơn ho c b ng v i ñ dài m t t . M t chương trình bao g m m t dãy các l nh (hay còn g i là 6.3.1. Các tiêu chu n thi t k d ng th c l nh ch th ), m i l nh ch rõ m t vi c làm c th nào ñó c a máy tính như th c hi n phép c ng, th c hi n nh p d li u, th c hi n ñ c d Vì có th có nhi u d ng khác nhau c a các l nh, cho nên li u t b nh ,… khi thi t k máy tính c n có các tiêu chí rõ ràng ñ l a ch n d ng th c l nh cho máy c n thi t k . M t s các tiêu chí chính ñư c các Như chúng ta ñã th y trên, trong m t câu l nh g m có nhà thi t k ñưa ra như sau: nhi u ph n. Trong ñó tác v th c hi n m i l nh ñư c ch rõ trong m t trư ng g i là mã phép toán (operation code) hay mã tác v và Tiêu chu n thi t k 1: Mã l nh ng n ưu vi t hơn mã l nh dài ñư c g i t t là opcode, cho bi t hành ñ ng nào s ñư c thi hành (t ðây là tiêu chu n ñ u tiên và cũng là quan tr ng nh t. M t ñây tr ñi ta dùng c m t mã tác v ). Trong m t l nh còn ch ra chương trình g m n l nh 16 bit ch chi m ch ng m t n a không ñư c th c hi n trên các thanh ghi hay ñ a ch (address) ô nh , nơi gian b nh so v i n l nh 32 bit. Suy cho cùng, b nh không mi n ch a ñ ng d li u c n x lý. phí, b i v y nhà thi t k không thích lãng phí nó. Trong hình 6.3 cho ta 3 trư ng h p mã hóa l nh ñơn gi n Ngoài ra thì m i b nh có m t t c ñ truy n c th , ñư c là m t s khuôn d ng ñi n hình c a các b l nh. Trư ng h p th quy t ñ nh qua công ngh và thi t k k thu t. N u t c ñ truy n nh t ch có mã tác t mà không có ph n ñ a ch . Trư ng h p th c a b nh là T bit/giây (bps - bit per second) và chi u dài l nh hai mã m t l nh có 2 ph n, ph n tác v l nh và ñ a ch và trư ng trung bình là L thì nó có th truy n ñi nhi u nh t là T/L l nh trên h p thú 3 (c) thì ph n ñ a ch chi m 2 vùng c a mã l nh. m t giây. Vì v y, t c thi hành l nh (t c t c ñ b x lý) tùy thu c vào ñ dài l nh. L nh ng n hơn ñ ng nghĩa v i b x lý nhanh Opcode hơn. (a) N u th i gian thi hành l nh quá lâu so v i th i gian tìm n p Opcode ð a ch nó t b nh , th i gian tìm n p l nh s không quan tr ng. Nhưng v i CPU nhanh, b nh thư ng là nút c chai. B i v y, tăng s (b) l nh tìm n p trên m i giây là tiêu chu n thi t k quan tr ng. Opcode ð a ch 1 ð a ch 2 Tiêu chu n thi t k th 2: ð dài mã l nh ñ ñ bi u di n t t Hình 6.3. M t vài d ng mã l nh c phép toán mong mu n N u chúng ta c n thi t k m t máy tính v i 2n các thao tác Tùy thu c vào ki n trúc c a máy tính, trong m t lo i máy tính mã l nh có th có cùng chi u dài ho c khác nhau. Trên m t s hay các vi tác v , thì ta không th dùng mã hóa l nh v i ñ dài nh máy tính t t c các l nh ñ u có cùng ñ dài (Power PC, SPARC, hơn n. ðơn gi n không ñ ch trong opcode ñ cho bi t là l nh nào MIPS), m t s máy khác l i có th có hai ho c ba ñ dài khác hay mã hóa t t c các l nh ñó. nhau (IBM 360/70, Intel 80x86), th m chí ñ dài mã l nh có th Tiêu chu n thi t kê th 3: ñ dài word c a máy b ng b i s nguyên c a ñ dài ký t . 181 182
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh Trong trư ng h p mà ký t có k bit, ñ dài t ph i là k, 2k, Ho c có th gi nguyên ñ a ch 16 bit ñ tham chi u b nh l n 3k, 4k,… còn không s lãng phí không gian khi lưu tr các t . g p 4 l n m c cho phép c a t ch c 8 bit. T t nhiên có th lưu tr 3.5 ký t trong m t word, song vi c Ví d này cho th y r ng ñ ñ t s phân gi i b nh t t hơn, ñó s làm vi c s gây ra tình tr ng kém hi u qu nghiêm tr ng ngư i ta ph tr cái giá b ng ñ a ch dài hơn, nói chung, có nghĩa trong khi truy c p các ký t . H n ch do mã ký t áp ñ t lên chi u là l nh dài hơn. M c tiêu t i thư ng trong s phân gi i là t ch c dài t cũng nh hư ng ñ n chi u dài mã l nh, b i vì m t l nh t t b nh có th l p ñ a ch tr c ti p t ng bit. nh t là chi m m t s nguyên các byte ho c s l nh nguyên ph i Th c t có nh ng máy tính mà chi u dài word ch có 1 bit n m g n trong m t t . (ví d máy Burroughs B1700), l i có nh ng máy mà word r t dài, Tiêu chu n thi t k th 4: s BIT trong trư ng ñ a ch càng t i 60 bit (như máy CDC Cyber) ng n càng t t 6.3.2. Opcode m r ng Tiêu chu n này liên quan t i vi c ch n kích thư c ô nh . Trong ph n này chúng ta xem xét nh ng cân nh c và th a C xem thi t k máy v i ký t 8 bit (có th 7 bit c ng tính ch n l ) hi p liên quan ñ n mã tác v - opcode và ñ a ch . và b nh chính ch a 216 ký t s th y. Nhà thi t k có th ch n Gi s ta có l nh (n+k) bit v i opcode chi m k bit và ñ a ch gán ñ a ch liên ti p cho ñơn v 8, 16, 24, ho c 32 bit, cùng nh ng chi m n bit. L nh này cung c p 2k phép toán khác nhau và 2n ô nh kh năng khác. l p ñ a ch ñư c. Ho c, cùng n + k bit ñó có th chia thành opcode Hãy hình dung chuy n gì s x y ra n u ñ i ngũ thi t k (k – 1) bit và ñ a ch (n+1) bit, t c ch m t n a s l nh nhưng g p phân hóa thành hai phe gây chi n, m t phe d c s c t o byte 8 bit, ñôi b nh l p ñ a ch ñư c, ho c cũng dung lư ng b nh ñó ñơn v cơ b n c a b nh , còn phe kia ra s c t o t 32 bit như là nhưng Opcode (k+1) bit và ñ a ch (n-1) bit cho nhi u phép toán ñơn v cơ b n c a b nh . Phe ñ u ñ ngh b nh 216 byte, ñư c hơn, song ph i tr giá b ng s ô l p ñ a ch ñư c ít hơn. Gi a bit ñánh s 0, 1, 2, 3,..., 65535. Phe sau ñ xu t b nh 214 t , ñư c opcode và bit ñ a ch có nh ng quân bình r t tinh t cũng như ñơn ñánh s 0, 1, 2, 3..., 16383. gi n hơn như v a trình bày. Nhóm th nh t ch ra r ng ñ so sánh hai ký t trong t ð hi u rõ v n ñ chúng ta xem ví d m t máy tính có l nh ch c t 32 bit, chương trình ch ng nh ng tìm n p t ch a ký t mà dài 16 bit, trong ñó mã vi tác v opcode dài 4 bit và 3 trư ng ñ a còn ph i trích t ng ký t trong t m i so sánh ñư c. Làm v y s ch , m i trư ng dài 4 bit như hình 6.4. t n thêm l nh và lãng phí không gian. Trái l i, t ch c 8 bit cung c p ñ a chi cho t ng l nh, giúp so sánh d dàng hơn nhi u. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Phe ñ xu t 32 bit s ph n bác b ng l p lu n r ng ñ xu t c a h ch c n 214 ñ a ch riêng bi t, cho ñ dài ñ a ch 14 bit mà thôi, còn ñ ngh byte 8 bit ñòi h i 16 bit ñ l p ñ a ch cùng m t Opcode b nh . ð a chi ng n hơn ñ ng nghĩa v i l nh ng n hơn, không ð a ch 1 ð a ch 2 ð a ch 3 nh ng chi m ít không gian mà còn ñòi h i ít th i gian tìm n p hơn. Hình 6.4. L nh có opcode 4 bit và 3 ñ a ch 4 bit 183 184
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh Như v y, ng v i mã vi tác v 4 bit s cung c p cho ta 4 2 =16 l nh khác nhau v i 3 ñ a ch . Nhưng n u nhà thi t k c n 15 16 bit l nh ba ñ a ch , ho c 14 l nh hai ñ a ch , ho c 31 l nh m t ñ a ch thì h s ph i l m th nào? 31 l nh 1111 1110 0000 zzzz opcode ð i v i trư ng h p th nh t 15 l nh ba ñ a ch thì nhà thi t 1 ñ a ch 1111 1110 0001 zzzz 12 bit k có th l y nguyên c u trúc trên hình 6.4, nhưng b ñi m t trư ng . h p c a opcode như trong hình 6.5(a). . 16 bit 1111 1110 1110 zzzz 15 l nh 1111 1110 1111 zzzz 0000 xxxx yyyy zzzz opcode 3 ñ a ch 1111 1111 0000 zzzz 0001 xxxx yyyy zzzz 4 bit 1111 1111 0001 zzzz 0010 xxxx yyyy zzzz . . . . 1111 1111 1101 zzzz . 1111 1111 1110 zzzz 1100 xxxx yyyy zzzz 1101 xxxx yyyy zzzz c) 1110 xxxx yyyy zzzz Hình 6.5 (ti p theo). M t s d ng th c l nh cho 16 bit a) Tương t ñ có 14 l nh hai ñ a ch ta làm như hình 6.5(b) 16 bit và 31 l nh m t ñ a ch như hình 6.7(c). 14 l nh Các bit cao nh t (bit 12 ñ n 15) trong trư ng h p b) ñư c 1111 0000 yyyy zzzz opcode 2 ñ a ch gán m c ñ nh tr nh phân “1”, b n bit k ñó (bit 8 ñ n 11) s mã 1111 0001 yyyy zzzz 8 bit hóa các tác v c n thi t. Vì 4 bit thì mã hóa ñư c 16 tác v , nhưng 1111 0010 yyyy zzzz trong trư ng h p này ta ch c n 14 tác v , do ñó còn 2 v trí không . dùng ñ n. Trong các trư ng h p có t h p code còn l i không . dùng, như trong hình 6.5 (b) thì t h p opcode 1111 1110 và 1111 . 1111 s ñư c x lý ñ c bi t. 1111 1011 yyyy zzzz 1111 1100 yyyy zzzz Như v y ñ dài các l nh là như nhau, ñ u 16 bit, nhưng 1111 1101 yyyy zzzz trong trư ng h p a) thì ñ dài opcode là 4, trư ng h p b) là 8 trong khi trư ng h p c) là 12 bit. b) Hình 6.5. M t s d ng th c l nh cho 16 bit 185 186
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh 6.3.3. Ví d v d ng th c l nh ð i v i m t s l nh khác, k c l nh m t toán h ng, PDP- 11 áp d ng lư c ñ opcode m r ng, theo cách này thì các opcode ð hi u rõ hơn các v n ñ trong mã hóa l nh, trong ph n có d ng x111 ñư c dùng ñ tránh kh i ph i dùng các mã l nh dài này chúng ta s kh o sát d ng th c l nh trong các máy PDP-11 và hơn. V i h u h t các l nh m t toán h ng l y opcode 10 bit và Intel. ñây chúng ta ñưa ra máy PDP-11 vì t p l nh c a nó ñư c trư ng mode/register 6 bit, như v y ñ dài l nh v n là 16 bit gi ng xem là m t ñi n hình v tính ñơn gi n và h p lý. như các l nh 2 toán h ng. Khi ñó trư ng mã tác v s có 10 bit bao PDP-11 g m 4 bit c a trư ng opcode và 6 bit c a trư ng toán h ng ngu n (xem hình v 6.6). ða s l nh hai toán h ng c a PDP-11 ñư c mã hóa như trong hình 6.6. M i l nh ch a opcode 4 bit và hai trư ng ñ a ch 6 Các l nh có l p ñ a ch b nh trong PDP-11 s có thêm bit. M t bit opcode c trái cho bi t l nh v n hành trên byte hay m t hay hai word 16 bit ñi theo sau l nh ñ a ch ñ ch ra các ñ a word. Trư ng ñ a ch ñư c chia nh thành hai ph n, ph n ch ñ ch này. (mode) 3 bit và thanh ghi (Register ) 3 bit (Máy PDP-11 có 8 thanh H lntel 8088/80286/80386/Pentium ghi cho nên ch c n 3 bit là có th mã hóa ñư c toàn b các thanh ghi). Trư ng ch ñ cho bi t toán h ng n m trong thanh ghi, trong V i CPU Intel, tình hình ph c t p hơn nhi u và kém ñ u b nh hay là m t h ng s , v.v. Có tám mode gi ng nhau cho toán ñ n hơn nhi u. ð c bi t ñ i v i Pentium, mô hình chung như hình h ng ngu n cũng như cho toán h ng ñích. M i opcode ñ u có th 6.7. C u t o ph c t p c a Pentium là do nó ñư c k th a t nhi u dùng b t kỳ toán h ng ngu n và toán h ng ñích nào. th h trong m t kho ng th i gian dài và do ngay t ñ u vi c l a ch n các tính ch t ñã không ñư c thành công l m. ði u này chính T p l nh trong PDP-11 s d ng là tr c giao (orthogonal), là là do ñòi h i ph i k th a các ñ c tính ra trư c mà nó không th t p l nh trong ñó phương th c qui ñ nh ñ a ch các toán h ng ñ c thay ñ i c u trúc c a mình. Nói chung, ñ i v i l nh hai toán h ng, l p v i opcode ñư c các nhà vi t trình biên d ch r t thích vì t p n u toán h ng này n m trong b nh thì toán h ng kia có th không l nh tr c giao làm cho công vi c c a h ñơn gi n ñi r t nhi u. n m trong b nh . Do ñó t n t i các l nh c ng hai thanh ghi, l nh c ng thêm giá tr thanh ghi vào b nh và c ng thêm b nh vào thanh ghi, nhưng không t n t i l nh c ng thêm m t t vào m t t 15 14 12 11 98 65 3 2 0 nh khác, m t ñi u mà PDP-I 1 cho phép như là k t qu tr c giao. L NH MODE REGISTER MODE REGISTER Trên 8088, m i opcode là 1 byte, nhưng ñ n khi 80386 ra opcode Toán h ng ngu n Toán h ng ñích ñ i thì opcode 1 byte dùng không ñ ñ mã hóa h t t p l nh, do ñó bit 15 c a opcode ñư c dùng ñ tránh ph i dùng opcode 2 byte. Source operand Destination operand C u trúc duy nh t trong trư ng opcode là s d ng bit th t th p byte/word trong m t s l nh ñ cho bi t byte/word, và bit bên c nh ñ ch ñ a Hình 6.6. Mã hóa l nh trên máy PDP-11 ch b nh (n u có) là ngu n hay là ñích Ti p sau byte opcode trong nhi u l nh là byte th hai cho bi t v trí toán h ng, tương t như hai trư ng mode/register trong 187 188
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh hình 6.6. Do ch có s n 8 bit, nên tách ra thành trư ng ch ñ 2 bit cho phép CPU Pentium th c hi n nhanh hơn là m t vòng l p và hai trư ng thanh ghi 3 bit. V y ch có b n cách l p ñ a ch toán ñư c l p trình. h ng (so v i tám cách trên PDP-11), và m t trong s toán h ng • Opcode : chi m 1 ho c 2 byte. Opcode có th bao g m luôn ph i là thanh ghi. V logic, AX, BX, CX, DX, SI, DI, BP, và nh ng bit ch ra d li u là không ñ y ñ hay là ñ y ñ (16 SP ph i c th như thanh ghi, song nguyên t c mã hóa ngăn c m ho c 32 bit ph thu c vào t ng trư ng h p c th ), bit ch ra m t s k t h p và dùng chúng vào trư ng h p ñ c bi t. hư ng c a d li u ñ n b nh ho c t b nh ñi Bên c nh ñó, m t s l nh có 1, 2, ho c 4 byte tr lên qui • ModR/M : byte này ch ra các thông tin v toán h ng. Byte ñ nh ñ a ch b nh và có th 1 , 2, ho c 4 byte n a dùng làm toán ModR/M ch ra toán h ng là m t thanh ghi hay là trong b h ng h ng (ch ng h n như di chuy n con s 100 vào thanh ghi). nh . N u nó là trong b nh thì bên trong tr ơng này s ch B ng 6.2 cung c p t p d ng th c l nh 8088, 80286, 80386 ra mode ñ a ch nào ñư c dùng. Trư ng ModR/M bao g m 3 và Pentium. M i l nh ti m ch a t i ña sáu trư ng, m i trư ng t 0 ph n : ph n mode 2 bit và hai ph n Reg/Opcode và R/M m i ñ n 4 byte. Trên 8088 và 80286, l nh ng n nh t là 1 byte và dài ph n 3 bit n a. ðôi khi 3 bit c a trư ng Reg/Opcode ñư c s nh t là 9 byte. Trên 80386 cũng như Pentium, l nh ng n nh t v n d ng v i tính cách là ph n m r ng c a Opcode t o nên là 1 byte, nhưng thêm ti n t kích thư c toán h ng và ti n t kích trư ng Opcode v i 11 bit. Trư ng Mod ch có 2 bit, ñi u ñó thư c ñ a ch , l nh có th t i ña 16 byte. có nghĩa là ch có 4 cách ti p c n v i toán h ng và m t trong các toán h ng luôn luôn ph i là thanh ghi. • SIB : Cho phép ch ra m t s chi ti t k thu t thêm nh m CPU PREFIX OPCODE MODE SIB DISPLACEMENT IMMEDIATE m c ñích thêm vào m t s tính năng m i nhưng v n thích 8088 0-3 1 0-1 0 0-2 0-2 h p (support) v i các ki u cũ 80286 0-3 1 0-1 0 0-2 0-2 • Displacement: ð a ch d ch chuy n (s tìm hi u k hơn ph n 80386 0-4 1-2 0-1 0-1 0-4 0-4 ti p theo sau) Pentium 0-4 1-2 0-1 0-1 0-4 0-4 • Immediate: ñ a ch t c th i B ng 6.2. D ng th c l nh c a các máy tính Intel Hình 6.7 cho ta th y d ng th c l nh c a máy Pentium v i các trư ng ñư c ñ nh nghĩa như sau : • PREFIX byte : ñó là ph n mã thêm c a mã l nh ñư c ñ t trư c opcode. N u nó t n t i thì nó bao g m LOCK ti p ñ u t (prefix) và ti p ñ u t l p l i (repeat prefix). LOCK prefix ñư c dùng ñ ñ m b o vi c dành riêng vùng nh chia s trong môi trư ng ña b x lý. Trong khi repeat prefix ñ c trưng cho m t chu i phép toán ñư c l p ñi l p l i, ñi u này 189 190
- Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh ð a ch t c th i – Immediate • 0-4 byte 1-2 0-1 0-1 0-4 0-4 ð a ch tr c ti p – Direct • Prefix Opcode ModR/M SIB Displacement Immediate ð a ch gián ti p – Indirect • ð a ch thanh ghi – Register • ð a ch gián ti p thanh ghi – Register inderect • ð a ch d ch chuy n – Displacement • ð a ch ngăn x p - Stack • Scale Index Base 6 1 1 76 5 4 3210 INSTRUCTION Các cách l p ñ a ch thông d ng trong hình 6.8. Trong b ng b ng 6.3. ch ra cách tính ñ a ch th c cho m i ch ñ byte/word l p ñ a ch và các ưu khuy t ñi m c a m i lo i. hư ng ñi data Các ký hi u trong hình 6.8 và b ng 6.3: Mod Reg/Opcode R/M A – N i dung trong trư ng ñ a ch trong m t l nh 76 5 4 321 0 R – N i dung trong trư ng ñ a ch mà ch ra m t thanh ghi nào ñó EA – ð a ch th c c a nơi ch a (memory ho c register) toán h ng Hình 6.7. Format l nh Pentium (X) – N i dung c a v trí b nh X ho c là thanh ghi X 6.3.4.Các ch ñ l p ñ a ch Có th phân l nh theo s lư ng ñ a ch s d ng. L nh qui ñ nh m t, hai hay ba ñ a ch ñ u ph bi n. Trên nhi u máy tính phép tính s h c ñư c th c hi n v i m t ñ a ch duy nh t. Có m t thanh ghi ñ c bi t g i là thanh b tích lu (accumulator) s cung c p m t trong các toán h ng, toán h ng còn l i s n m b nh . Trên máy này, ñ a ch thư ng là ñ a ch c a t nh m, trong ñó ñ t toán h ng. Trong ki n trúc GPR ch ñ l p ñ a ch c n ph i ch rõ ñó là m t h ng s , m t thanh ghi hay m t v trí trong b nh . Khi là m t v trí trong b nh ñư c dùng thì ñ a ch ô nh th c ñư c ch ra b i cách dùng ch ñ l p ñ a ch và ñư c g i là ñ a ch hi u d ng (effective address). ð hi u cách th c hi n m t l nh ta ph i bi t phương cách thông d ch bit trong trư ng ñ a ch ñ tìm toán h ng. Kh năng là chúng ch a ñ a ch b nh c a toán h ng. Th nhưng cũng có nh ng kh năng khác và trong ph n này chúng ta s khám phá nh ng k thu t ñánh ñ a ch cơ b n nh t sau: 191 192
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Kiến trúc máy tính - TS. Vũ Đức Lung
143 p | 1772 | 575
-
Giáo trình: Kiến trúc máy tính - Vũ Đức Lung
191 p | 308 | 81
-
Bài giảng Kiến trúc máy tính: Chương 2 - TS. Vũ Đức Lương
25 p | 265 | 37
-
kiến trúc máy tính Vũ Đức Lung phần 2
13 p | 94 | 23
-
kiến trúc máy tính Vũ Đức Lung phần 8
13 p | 88 | 23
-
kiến trúc máy tính Vũ Đức Lung phần 5
13 p | 104 | 23
-
kiến trúc máy tính Vũ Đức Lung phần 9
12 p | 101 | 22
-
kiến trúc máy tính Vũ Đức Lung phần 10
20 p | 106 | 22
-
kiến trúc máy tính Vũ Đức Lung phần 3
16 p | 114 | 22
-
kiến trúc máy tính Vũ Đức Lung phần 6
12 p | 95 | 21
-
kiến trúc máy tính Vũ Đức Lung phần 4
16 p | 87 | 21
-
Bài giảng Kiến trúc máy tính: Chương 2 - TS. Vũ Đức Lung
50 p | 267 | 21
-
Bài giảng Kiến trúc máy tính: Chương 1 - TS. Vũ Đức Lung
48 p | 89 | 7
-
Bài giảng Kiến trúc máy tính: Chương 4 - TS. Vũ Đức Lung
36 p | 73 | 6
-
Bài giảng Kiến trúc máy tính: Chương 6 - TS. Vũ Đức Lung
34 p | 80 | 5
-
Bài giảng Kiến trúc máy tính: Chương 6 - Vũ Đức Lung
31 p | 44 | 5
-
Bài giảng Kiến trúc máy tính: Chương 1 - Vũ Đức Lung
40 p | 52 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn