intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình kiến trúc máy tính I - Chương 6

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:41

161
lượt xem
55
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo Giáo trình kiến trúc máy tính I gồm 7 chương trình bày các vấn đề chung nhất, các thành phần cơ bản nhất cấu thành nên máy tính hiện đại nhằm trang bị cho sinh viên các nội dung chủ yếu - Chương 6 Kiến trúc bộ lệnh

Chủ đề:
Lưu

Nội dung Text: Giáo trình kiến trúc máy tính I - Chương 6

  1. Chương VI: Ki n trúc b l nh Chương VI: Ki n trúc b l nh Trong chương này chúng ta s t p trung vào ki n trúc b 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 ki u ki n trúc b l nh. ð c bi t trong chương này s t p trung vào b n ch ñ chính. ð u tiên là phân lo i các ki u ki n trúc b l nh và ñánh giá nh ng ưu khuy t ñi m c a chúng 6.1. Phân lo i ki n trúc b l nh Có ba lo i ki n trúc b l nh cơ b n: ki n trúc ngăn x p (stack), ki n trúc thanh ghi tích lũy (Accumulator) và ki n trúc thanh ghi ña d ng GPRA(general-purpose register architecture). Trong ñó ki n trúc GPRA l i chia làm hai lo i thông d ng là thanh ghi – b nh (register-memory) và n p-lưu (load-store). Ví d phép tính C = A + B ñư c dùng trong các ki u ki n trúc trong hình 6.1. Hình 6.1. Th c hi n l nh C = A + B cho 4 ki u ki n trúc b l nh Trong m t câu l nh thì chúng ta có các toán h ng, mà các toán h ng l i ñư c chia thành hai lo i: n (implicitly) và hi n (explicitly): Toán h ng trong ki n trúc ngăn x p là lo i n trên ñ 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 trong accumulator, còn ki n trúc GPRA thì ch dùng toán h ng 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 ghi t m th i nào ñó ph thu c vào ki u ki n trúc b l nh ñ c trưng c a nó. http://www.ebook.edu.vn 150
  2. 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- store) hay ki n trúc trên các thanh ghi (register-register); ngoài ra còn m t ki u ki n trúc GPRA n a là ki n trúc b nh -b nh (memory-memory), nhưng ki u này không còn th y ngoài th trư ng ngày nay n a. Nh ng máy tính ra ñ i trư c kia thư ng dùng ki u ki n trúc 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ó khuynh hư ng dùng ki n trúc ph n m m thanh ghi ña d ng vì vi c thâm nh p các thanh ghi ña d ng nhanh hơn thâm nh p b nh trong, và vì các chương trình d ch dùng các thanh ghi ña d ng có hi u qu hơn. B ng 6.1 cho ta th y các ưu và như c ñi m c a ba lo i ki n trúc cơ b n này. 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 k thu t làm cho các giai ño n khác nhau c a nhi u l nh ñư c thi hành cùng m t lúc => s hi u qu hơn. Trong khi ñó n u là ki n trúc stack thì bi u th c ñó ch có th ñư c tính tu n t t trái sang ph i – Có th dùng thanh ghi ñ lưu các bi n và như v y s gi m thâm nh p ñ n b nh => chương trình s nhanh hơn Tuy nhiên do các l nh ñ u dùng thanh ghi v y bao nhiêu thanh ghi là ñ ? câu tr l i ph thu c vào vi c các thanh ghi ñư c s d ng b i trình biên d ch như th nào. Ph n l n trinh biên d ch http://www.ebook.edu.vn 151
  3. Chương VI: Ki n trúc b l nh 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 ghi còn l i lưu tr các bi n c n thi t. Lo i ki n Ưu ñi m Như c ñi m trúc Ngăn x p - L nh ng n - Thâm nh p ngăn (Stack) - Ít mã máy x p không - Làm t i thi u tr ng thái ng u nhiên. bên trong c a m t máy tính - Mã không hi u qu - D dàng t o ra m t b - Khó dùng trong x biên d ch ñơn gi n cho lý song ki n trúc ngăn x p song và ng d n - Khó t o ra m t b biên d ch t i ưu 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 (Accumulator bên trong c a máy tính (yêu là t m th i. Register) c u ít m ch ch c năng) - Ngh n thanh ghi - Thi t k d dàng tích lu - Khó dùng trong x lý song song và ng d n - Trao ñ i nhi u v i b nh . Thanh ghi - T c ñ x lý nhanh, - L nh dài ña d ng ñ nh v ñơn gi n. - S lư ng thanh ghi (General - Ít thâm nh p b nh . b gi i Register) - Ki u r t t ng quát ñ hn t o các mã h u hi u B ng 6.1. So sánh các ki u ki n trúc b l nh http://www.ebook.edu.vn 152
  4. Chương VI: Ki n trúc b l nh Ki u ki n trúc thanh ghi ña d ng Do hi n nay ki u ki n trúc thanh ghi ña d ng chi m v trí hàng ñ u nên trong các ph n sau, ta ch ñ c p ñ n ki u ki n trúc này. ð i v i m t l nh tính toán ho c logic ñi n hình (l nh ALU), có 2 ñi m c n nêu: – Trư c tiên, m t l nh ALU ph i có 2 ho c 3 toán h ng. N u trong l nh có 3 toán h ng thì m t trong các toán h ng ch a k t qu phép tính trên hai toán h ng kia (Ví d : ADD A, B, C). N u trong l nh có 2 toán h ng thì m t trong hai toán h ng ph i v a là toán h ng ngu n, v a là toán h ng ñích (Ví d : ADD A, B). – Th hai, s lư ng toán h ng b nh có trong l nh. S toán h ng b nh có th thay ñ i t 0 t i 3. Như ñã nêu trên, trong nhi u cách t h p có th có các 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 trong 3 ki u sau : o thanh ghi-thanh ghi (ki u này còn ñư c g i n p - lưu tr ), o thanh ghi - b nh o b nh - b nh . Ki u thanh ghi - thanh ghi ñư c nhi u nhà ch t o máy tí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ã máy c ñ nh và s chu kỳ xung nh p c n thi t cho vi c th c hi n l nh là c ñ nh, ít thâm nh p b nh . Tuy nhiên, ki u ki n trúc này cũng có m t vài h n ch c a nó như: s lư ng thanh ghi b gi i h n, vi c các thanh ghi có cùng ñ dài d n ñ n không hi u qu 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 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. http://www.ebook.edu.vn 153
  5. Chương VI: Ki n trúc b l nh 6.2. ð a ch b nh Trong ki n trúc b l nh bao gi chúng ta cũng ph i ñ c p ñ n các toán h ng, mà m t s toán h ng này ñư c lưu trong b 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. B nh (memory) là thành ph n lưu tr chương trình và d li u trong máy tính mà trong chương 5 chúng ta ñã bi t Bit là ðơn v cơ b n c a b nh . Ngoài ra chúng ta cũng ñã bi t 1 bit có th ñư c t o ra b ng 1 flip-flop. Nhưng cách b trí các ô nh trong m t 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 mình là khác nhau như IBM PC 8 bit/ô, DEC PDP-8 12bit/ô, IBM 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 nhóm l i thành t (word) và máy tính v i t 16 bit s có 2 byte/t , 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 hi n trêntoàn b t . Vì v y máy tính 16 bit s có thanh ghi 16 bit và l nh thao tác trên 1 t 16 bit, còn máy 32 bit s có thanh ghi 32 bit và các l nh thao tác trên 1 t 32 bit. http://www.ebook.edu.vn 154
  6. Chương VI: Ki n trúc b l nh S p x p th t byte Có hai cách s p x p th t byte trong m t t , ñánh s byte trong m t t t trái sang ph i và ñánh s byte trong m t t t ph i sang trái. 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 ch ng h n. Hình 6.2(b) là m t minh h a tương t v máy tính 32 bit, ñánh s t ph i sang trái, ví d như h Intel. H th ng trư c kia b t ñ u ñánh s t ñ u l n ñư c g i là máy tính ñ u l n (Big endian), trái ngư c v i ñ u nh (little endian). Hình 6.2. (a) B nh ñ u l n (h Motorola), (b) B nh ñ u nh (h Intel) C n bi t r ng trong h th ng ñ u l n l n ñ u nh , s nguyên 32 bit v i tr s là 6 s ñư c bi u di n b ng bit 110 3 bit bên góc ph i c a t và 0 29 bit bên góc trái. Trong lư c ñ ñ u l n, nh ng bit này n m trong byte ñ u tiên bên ph i, byte 3 (ho c 7,11,…), trong khi ñó lư c ñ ñ u nh , chúng trong byte 0 (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. http://www.ebook.edu.vn 155
  7. Chương VI: Ki n trúc b l nh 6.3. Mã hóa t p l nh M t chương trình bao g m m t dãy các l nh (hay còn g i là 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 li u t b nh ,… Như chúng ta ñã th y trên, trong m t câu l nh g m có 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à ñư c g i t t là opcode, cho bi t hành ñ ng nào s ñư c thi hành (t ñây tr ñi ta dùng c m t mã tác v ). Trong m t l nh còn ch ra ñư c th c hi n trên các thanh ghi hay ñ a ch (address) ô nh , nơi ch a ñ ng d li u c n x lý. Trong hình 6.3 cho ta 3 trư ng h p mã hóa l nh ñơn gi n là m t s khuôn d ng ñi n hình c a các b l nh. Trư ng h p th nh t ch có mã tác t mà không có ph n ñ a ch . Trư ng h p th hai mã m t l nh có 2 ph n, ph n tác v l nh và ñ a ch và trư ng h p thú 3 (c) thì ph n ñ a ch chi m 2 vùng c a mã l nh. Opcode (a) Opcode ð a ch (b) Opcode ð a ch 1 ð a ch 2 Hình 6.3. M t vài d ng mã l nh 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 máy tính t t c các l nh ñ u có cùng ñ dài (Power PC, SPARC, MIPS), m t s máy khác l i có th có hai ho c ba ñ dài khác nhau (IBM 360/70, Intel 80x86), th m chí ñ dài mã l nh có th 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 . http://www.ebook.edu.vn 156
  8. Chương VI: Ki n trúc b l nh 6.3.1. Các tiêu chu n thi t k d ng th c l nh Vì có th có nhi u d ng khác nhau c a các l nh, cho nên 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à thi t k ñưa ra như sau: Tiêu chu n thi t k 1: Mã l nh ng n ưu vi t hơn mã l nh dài ðây là tiêu chu n ñ u tiên và cũng là quan tr ng nh t. M t chương trình g m n l nh 16 bit ch chi m ch ng m t n a không gian b nh so v i n l nh 32 bit. Suy cho cùng, b nh không mi n phí, b i v y nhà thi t k không thích lãng phí nó. Ngoài ra thì m i b nh có m t t c ñ truy n c th , ñư c quy t ñ nh qua công ngh và thi t k k thu t. N u t c ñ truy n c a b nh là T bit/giây (bps - bit per second) và chi u dài l nh trung bình là L thì nó có th truy n ñi nhi u nh t là T/L l nh trên 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 hơn. N u th i gian thi hành l nh quá lâu so v i th i gian tìm n p 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 l nh tìm n p trên m i giây là tiêu chu n thi t k quan tr ng. Tiêu chu n thi t k th 2: D dài mã l nh ñ ñ bi u di n t t 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 hay các vi tác v , thì ta không th dùng mã hóa l nh v i ñ dài nh hơn n. ðơn gi n không ñ ch trong opcode ñ cho bi t là l nh nào hay mã hóa t t c các l nh ñó. 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 . Trong trư ng h p mà ký t có k bit, ñ dài t ph i là k, 2k, 3k, 4k,… còn không s lãng phí không gian khi lưu tr các t . http://www.ebook.edu.vn 157
  9. Chương VI: Ki n trúc b l nh T t nhiên có th lưu tr 3.5 ký t trong m t word, song vi c ñó s làm vi c s gây ra tình tr ng kém hi u qu nghiêm tr ng trong khi truy c p các ký t . H n ch do mã ký t áp ñ t lên chi u 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 nh t là chi m m t s nguyên các byte ho c s l nh nguyên ph i n m g n trong m t t . Tiêu chu n thi t k th 4: s BIT trong trư ng ñ a ch càng ng n càng t t Tiêu chu n này liên quan t i vi c ch n kích thư c ô nh . C xem thi t k máy v i ký t 8 bit (có th 7 b t c ng tính ch n l ) và b nh chính ch a 216 ký t s th y. Nhà thi t k có th ch n gán ñ a ch liên ti p cho ñơn v 8, 16, 24, ho c 32 bit, cùng nh ng kh năng khác. Hãy hình dung chuy n gì s x y ra n u ñ i ngũ thi t k phân hóa thành hai phe gây chi n, m t phe d c s c t o byte 8 bit, ñơn v cơ b n c a b nh , còn phe kia ra s c t o t 32 bit như là ñơn v cơ b n c a b nh . Phe ñ u ñ ngh b nh 216 byte, ñư c ñánh s 0, 1, 2, 3,..., 65535. Phe sau ñ xu t b nh 214 t , ñư c ñánh s 0, 1, 2, 3..., 16383. Nhóm th nh t ch ra r ng ñ so sánh hai ký t trong t ch c t 32 bit, chương trình ch ng nh ng tìm n p t ch a ký t mà còn ph i trích t ng ký t trong t m i so sánh ñư c. Làm v y s 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. 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 b nh . ð a chi ng n hơn ñ ng nghĩa v i l nh ng n hơn, không nh ng chi m ít không gian mà còn ñòi h i ít th i gian tìm n p hơn. Ho c có th gi nguyên ñ a ch 16 bit ñ tham chi u b nh l n g p 4 l n m c cho phép c a t ch c 8 bit. Ví d này cho th y r ng ñ ñ t s phân gi i b nh t t hơn, ngư i ta ph tr cái giá b ng ñ a ch dài hơn, nói chung, có nghĩa http://www.ebook.edu.vn 158
  10. Chương VI: Ki n trúc b l nh 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 b nh có th l p ñ a ch tr c ti p t ng bit. Th c t có nh ng máy tính mà chi u dài word ch có 1 bit (ví d máy Burroughs B1700), l i có nh ng máy mà word r t dài, t i 60 bit (như máy CDC Cyber) 6.3.2. Opcode m r ng Trong ph n này chúng ta xem xét nh ng cân nh c và th a hi p liên quan ñ n mã tác v - opcode và ñ a ch . Gi s ta có l nh (n+k) bit v i opcode chi m k bit và ñ a ch chi m n bit. L nh này cung c p 2k phép toán khác nhau và 2n ô nh l p ñ a ch ñư c. Ho c, cùng n + k bit ñó có th chia thành opcode (k – 1) bit và ñ a ch (n+1) bit, t c ch m t n a s l nh nhưng g p ñôi b nh l p ñ a ch ñư c, ho c cũng dung lư ng b nh ñó nhưng Opcode (k+1) bit và ñ a ch (n-1) bit cho nhi u phép toán hơn, song ph i tr giá b ng s ô l p ñ a ch ñư c ít hơn. Gi a bit opcode và bit ñ a ch có nh ng quân bình r t tinh t cũng như ñơn gi n hơn như v a trình bày. ð hi u rõ v n ñ chúng ta xem ví d m t máy tính có l nh dài 16 bit, trong ñó mã vi tác v opcode dài 4 bit và 3 trư ng ñ a ch , m i trư ng dài 4 bit như hình 6.4. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Opcode ð a ch 1 ð a ch 2 ð a ch 3 Hình 6.4. L nh có opcode 4 bit và 3 ñ a ch 4 bit 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 http://www.ebook.edu.vn 159
  11. Chương VI: Ki n trúc b l nh 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? ð i v i trư ng h p th nh t 15 l nh ba ñ a ch thì nhà thi t 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 15 l nh 0000 xxxx yyyy zzzz opcode 3 ñ a ch 0001 xxxx yyyy zzzz 4 bit 0010 xxxx yyyy zzzz . . . 1100 xxxx yyyy zzzz 1101 xxxx yyyy zzzz 1110 xxxx yyyy zzzz a) 16 bit 14 l nh 1111 0000 yyyy zzzz opcode 2 ñ a ch 1111 0001 yyyy zzzz 8 bit 1111 0010 yyyy zzzz . . . 1111 1011 yyyy zzzz 1111 1100 yyyy zzzz 1111 1101 yyyy zzzz b) Hình 6.5. M t s d ng th c l nh cho 16 bit http://www.ebook.edu.vn 160
  12. Chương VI: Ki n trúc b l nh 16 bit 31 l nh 1111 1110 0000 zzzz opcode 1 ñ a ch 1111 1110 0001 zzzz 12 bit . . 1111 1110 1110 zzzz 1111 1110 1111 zzzz 1111 1111 0000 zzzz 1111 1111 0001 zzzz . . 1111 1111 1101 zzzz 1111 1111 1110 zzzz c) Hình 6.5 (ti p theo). M t s d ng th c l nh cho 16 bit Tương t ñ có 4 l nh hai ñ a ch ta làm như hình 6.5(b) và 31 l nh m t ñ a ch như hình 6.7(c). Các bit cao nh t (bit 12 ñ n 15) trong trư ng h p b) ñư c gán m c ñ nh tr nh phân “1”, b n bit k ñó (bit 8 ñ n 11) s mã 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 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. Như v y ñ dài các l nh là như nhau, ñ u 16 bit, nhưng 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. http://www.ebook.edu.vn 161
  13. Chương VI: Ki n trúc b l nh 6.3.3. Ví d v d ng th c l nh ð hi u rõ hơn cac v n ñ trong mã hóa l nh, trong ph n này chúng ta s kh o sát d ng th c l nh trong các máy PDP-11 và Intel. ñây chúng ta ñưa ra máy PDP-11 vì t p l nh c a nó ñư c xem là m t ñi n hình v tính ñơn gi n và h p lý. PDP-11 ð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 bit. M t bit opcode c trái cho bi t l nh v n hành trên byte hay word. Trư ng ñ a ch ñư c chia nh thành hai ph n, ph n ch ñ (mode) 3 bit và thanh ghi (Register ) 3 bit (Máy PDP-11 có 8 thanh 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 b nh hay là m t h ng s , v.v. Có tám mode gi ng nhau cho toán h ng ngu n cũng như cho toán h ng ñích. M i opcode ñ u có th dùng b t kỳ toán h ng ngu n và toán h ng ñích nào. T p l nh trong PDP-11 s d ng là tr c giao (orthogonal), là t p l nh trong ñó phương th c qui ñ nh ñ a ch các toán h ng ñ c l p v i opcode ñư c các nhà vi t trình biên d ch r t thích vì t p l nh tr c giao làm cho công vi c c a h ñơn gi n ñi r t nhi u. 15 14 12 11 98 65 3 2 0 L NH MODE REGISTER MODE REGISTER opcode Toán h ng ngu n Toán h ng ñích Source operand Destination operand byte/word Hình 6.6. Mã hóa l nh trên máy PDP-11 ð 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 có d ng x111 ñư c dùng ñ tránh kh i ph i dùng các mã l nh dài http://www.ebook.edu.vn 162
  14. Chương VI: Ki n trúc b l nh hơn. V i h u h t các l nh m t toán h ng l y opcode 10 bit và trư ng mode/register 6 bit, như v y ñ dài l nh v n là 16 bit gi ng như các l nh 2 toán h ng. Khi ñó trư ng mã tác v s có 10 bit bao 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). Các l nh có l p ñ a ch b nh trong PDP-11 s có thêm m t hay hai word 16 bit ñi theo sau l nh ñ a ch ñ ch ra các ñ a ch này. H lntel 8088/80286/80386/Pentium V i CPU Intel, tình hình ph c t p hơn nhi u và kém ñ u ñ n hơn nhi u. ð c bi t ñ i v i Pentium, mô hình chung như hình 6. C u t o ph c t p c a Pentium là do nó ñư c k th a t nhi u 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 là do ñòi h i ph i k th a các ñ c tính ra trư c mà nó không th thay ñ i c u trúc c a mình. Nói chung, ñ i v i l nh hai toán h ng, n u toán h ng này n m trong b nh thì toán h ng kia có th không 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 nh khác, m t ñi u mà PDP-I 1 cho phép như là k t qu tr c giao. Trên 8088, m i opcode là 1 byte, nhưng ñ n khi 80386 ra ñ 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. C u trúc duy nh t trong trư ng opcode là s d ng bit th t th p trong m t s l nh ñ cho bi t byte/word, và bit bên c nh ñ ch ñ a 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 hình 6.6. Do ch có s n 8 bit, nên tách ra thành trư ng ch ñ 2 bit và hai trư ng thanh ghi 3 bit. V y ch có b n cách l p ñ a ch toán h ng (so v i tám cách trên PDP-11), và m t trong s toán h ng luôn ph i là thanh ghi. V logic, AX, BX, CX, DX, SI, DI, BP, và http://www.ebook.edu.vn 163
  15. Chương VI: Ki n trúc b l nh SP ph i c th như thanh ghi, song nguyên t c mã hóa ngăn c m m t s k t h p và dùng chúng vào trư ng h p ñ c bi t. Bên c nh ñó, m t s l nh có 1, 2, ho c 4 byte tr lên qui ñ nh ñ a ch b nh và có th 1 , 2, ho c 4 byte n a dùng làm toán h ng h ng (ch ng h n như di chuy n con s 100 vào thanh ghi). B ng 6.2 cung c p t p d ng th c l nh 8088, 80286, 80386 và Pentium. M i l nh ti m ch a t i ña sáu trư ng, m i trư ng t 0 ñ n 4 byte. Trên 8088 và 80286, l nh ng n nh t là 1 byte và dài nh t là 9 byte. Trên 80386 cũng như Pentium, l nh ng n nh t v 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 thư c ñ a ch , l nh có th t i ña 16 byte. CPU PREFIX OPCODE MODE SIB DISPLACEMENT IMMEDIATE 8088 0-3 1 0-1 0 0-2 0-2 80286 0-3 1 0-1 0 0-2 0-2 80386 0-4 1-2 0-1 0-1 0-4 0-4 Pentium 0-4 1-2 0-1 0-1 0-4 0-4 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 cho phép CPU Pentium th c hi n nhanh hơn là m t vòng l p ñư c l p trình. • Opcode : chi m 1 ho c 2 byte. Opcode có th bao g m nh ng bit ch ra d li u là không ñ y ñ hay là ñ y ñ (16 ho c 32 bit ph thu c vào t ng trư ng h p c th ), bit ch ra hư ng c a d li u ñ n b nh ho c t b nh ñi • ModR/M : byte này ch ra các thông tin v toán h ng. Byte ModR/M ch ra toán h ng là m t thanh ghi hay là trong b nh . N u nó là trong b nh thì bên trong tr ơng này s ch http://www.ebook.edu.vn 164
  16. Chương VI: Ki n trúc b l nh ra mode ñ a ch nào ñư c dùng. Trư ng ModR/M bao g m 3 ph n : ph n mode 2 bit và hai ph n Reg/Opcode và R/M m i ph n 3 bit n a. ðôi khi 3 bit c a trư ng Reg/Opcode ñư c s d ng v i tính cách là ph n m r ng c a Opcode t o nên trư ng Opcode v i 11 bit. Trư ng Mod ch có 2 bit, ñi u ñó 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 m c ñích thêm vào m t s tính năng m i nhưng v n thích h p (support) v i các ki u cũ • Displacement: ð a ch d ch chuy n (s tìm hi u k hơn ph n ti p theo sau) • Immediate: ñ a ch t c th i 0-4 byte 1-2 0-1 0-1 0-4 0-4 Prefix Opcode ModR/M SIB Displacement Immediate Scale Index Base 6 1 1 76 5 4 321 0 INSTRUCTION byte/word hư ng ñi data Mod Reg/Opcode R/M 76 5 4 321 0 Hình 6.7. Format l nh Pentium http://www.ebook.edu.vn 165
  17. Chương VI: Ki n trúc b l nh 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: • ð a ch t c th i – Immediate • ð a ch tr c ti p – Direct • ð 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 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 ñ l p ñ a ch và các ưu khuy t ñi m c a m i lo i. Các ký hi u trong hình 6.8 và b ng 6.3: A – N i dung trong trư ng ñ a ch trong m t l nh 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 (X) – N i dung c a v trí b nh X ho c là thanh ghi X http://www.ebook.edu.vn 166
  18. Chương VI: Ki n trúc b l nh Hình 6.8. Các ch ñ l p ñ a ch http://www.ebook.edu.vn 167
  19. Chương VI: Ki n trúc b l nh Ch ñ Cách tính Ưu ñi m Khuy n ñi m Immediate Operand = A Không có tham ð l n toán chi u b nh h ng gi i h n Direct EA = A ðơn gi n không gian ñ a ch gi i h n Indirect EA = (A) không gian ñ a Tham chi u b ch l n nh ph c t p Register EA = R Không có tham không gian ñ a chi u b nh ch gi i h n Register EA = (R) không gian ñ a Tham chi u b indirect ch l n nh ph Displacement EA = A + (R) Linh ñ ng Ph c t p Stack EA= ñ u c a Không có tham ng d ng gi i ngăn x p chi u b nh hn B ng 6.3. Cách tính ñ a ch th c Trư c khi ñi vào c th t ng ch ñ l p ñ a ch có hai ñi m c n lưu ý, th nh t ñó là trên th c t t t c các ki n trúc máy tính ngày nay cung c p cho ta nhi u hơn m t trong nh ng ch ñ l p ñ a ch trên. V n ñ ñ t ra là làm th nào ñ b ñi u khi n xác ñ nh ñư c ch ñ ñ a ch nào ñư c dùng trong l nh. Có nhi u phương pháp khác nhau. Thư ng là nh ng opcode khác nhau s dùng các ch ñ ñ a ch khác nhau, cũng có th là m t trong các bit c a l nh ñư c dùng làm trư ng ch ñ , mà giá tr ch a trư ng này ch ra ch ñ ñ a ñư c dùng. ði m th hai ñây liên quan ñ n ñ a ch th c EA. Trong m t h th ng không dùng b nh o thì ñ a ch hi u d ng s ho c là m t ñ a ch c a b nh chính, ho c là m t thanh ghi. Trong m t h th ng nh o thì ñ a ch hi u d ng là m t ñ a ch o ho c là m t thanh ghi. Vi c s p x p http://www.ebook.edu.vn 168
  20. Chương VI: Ki n trúc b l nh th c c a ñ a ch v t lý là m t ch c năng c a cơ ch phân trang và ngư i l p trình không th y ñư c. a) L p ñ a ch t c th i (Immediate Addressing) Cách ñơn gi n nh t cho l nh qui ñ nh toán h ng là ñ ph n ñ a ch trong l nh ch a chính toán h ng thay vì ñ a ch ho c thông tin khác mô t v trí toán h ng: OPERAND = A Toán h ng như v y ñư c g i là toán h ng t c th i (immediate operand) vì t ñ ng ñư c tìm n p t b nh cùng lúc v i tìm n p b n thân l nh, nh ñó kh d ng t c th i. L p ñ a ch t c th i có ưu ñi m là kh i c n thêm tham chi u b nh b nh ñ tìm n p toán h ng. Như c ñi m là h n ch toán h ng con s v a vào trư ng ñ a ch . l nh có ñ a ch 3 bit (ví d như trư ng thanh ghi), toán h ng s gi i h n 3 bit, và làm h n h p tính h u ích c a chúng. Ch ñ này ñư c dùng ñ ñ nh nghĩa các h ng s ho c là kh i t o m t giá tr nào ñó cho m t bi n M t ví d trong các trư ng h p l p ñ a ch t c th i là ñưa giá tr “4” vào thanh ghi R1 như sau: MOV R1, #4 b) L p ñ a ch tr c ti p (Direct Addressing) M t phương th c ñơn gi n khác ñ qui ñ nh toán h ng là cung c p ñ a ch c a t nh có ch a toán h ng và ñ t nó vào trư ng ñ a ch c a l nh. Hình th c này g i là l p ñ a ch tr c ti p (direct addressing): EA = A T t nhiên ph i có cách ñ máy tính bi t ñư c ñ a ch nào là t c th i và ñ a ch nào là tr c ti p. Nói chung, có hai phương pháp: s d ng opcode khác nhau ho c s d ng m t mode ñánh ñ a ch ñ c bi t cho m i lo i toán h ng. Cũng như cách l p ñ a ch t c thì, ñ a ch tr c ti p có m t s gi i h n: L nh luôn truy c p ñ n ch m t ñ a ch ô nh . T c là giá tr t i ñ a ch ñó có th thay ñ i nhưng ñ a ch thì không. Như http://www.ebook.edu.vn 169
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2