1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giáo trình Kiến trúc máy tính: Phần 2

81 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 32,25 MB

Nội dung

Trang 1

Chương 6 THUC HIEN LENH MAY BEN TRONG BO XULi, CAP VI CHUONG TRINH '© TĨM TẮT CHƯƠNG

Tạp lệnh máy mà hãng sẵn xuất bộ xử lí trao cho người đùng thực ra chỉ là các lạnh mơ Trong cấp máu vi chương trình, để thực hiện các lệnh nà, thưởng các cđơn vị trong bộ xử lí phải dịch chúng ra thành các lệnh vĩ mơ, đĩ là một số hạn chế các thao tác đơn gi nhất cĩ thể được thực hiện trực tiếp bởi phản cứng lĩc: “số Cơng tới các thanh ghi, đơn vị điều khiển CŨ là thành phần quen trọng và phức tạp nhất trong bộ xử lí Việc khảo sắt quá trình thực hiện các lệnh máy bên trong bộ xử lí bớt đơn vị điểu khiển, bộ nhớ và các thanh ghỉ được thực hiện qua "ngơn ngữ truyền thành ghỉ RTL, Đơn vị điều khiển CŨ cơ thể được thiết ke theo

một trong bai cách

= on vị điều khiển được ví chương tình hố, trong 46 các lạnh mấy phức tạp được dịch thành các í chương rnh Vì chương trình bao gồm một tập hạn chế các, vi lệnh là những thao tĩc đơn giỗn nhất thực hiện được bởi các mạch điện lưqc số Rõ rồng quá trình thự biện một lệnh máy loại này phổi mất một khoảng thời gian cải mã lệnh,

~ Đơn vị điều khiển lưglc ngẫu nhiên, trong đĩ bộ xử l được thết kế sao cho các mạch logic số cĩ thể “hiểu và thực hiện được ngay một số nh máy khơng qua cả mã lạnh,

Xuất phát từ đĩ cùng dới các thống kế thực tiến trên các lệnh máy trong các chương trình đã dẫn tớ 2 loại bộ xử

Loại cĩ tập lệnh phức tạp CISC, trong đồ gồm tập nh cĩ cấu trúc phúc tạp và muốn thực hiện phải qua gii mã vi lịnh Loại này rất được thịch hành khi tốc độ truy cặp bộ nhớ cơn cham

~ Loại cĩ tập lệnh được rút gọn RISC, tong đĩ bộ xử lí được thiết kế để cĩ thể thực hiện được ngay một số lệnh cĩ cấu trúc đơn giản hơn, hay được dùng nhất

khơng qua gi mẽ vi lệnh thường cỡ 2000 lnh)

CCác tí xử í như 80486 hay Pentium déu sit dung mot céch nh hoạt cả bai loại kiến trúc bộ xử I này, trong đĩ cĩ tăng cường các kĩ thuật tiên tiến như lỡ thuật đường ống, siêu đường ống, ng cường số thanh gh và bộ nhớ cache nội

© CAC TU KHOA

Tiếng Việt + ngơn ngữ truyền thanh ghi, mi thạo tác, tưởng tốn hạng, pha tảm-rạp lệnh đơn vị điều khiển CŨ, đơn vị điều khiển vi chương trính hố, đơn vị “đều khiển lðgle ngẫu nhiên nh vĩ mơ, ạnh vi mơ, vỉ chương trnh, bộ xử cĩ lập lệnh phức tạp CISC bộ xửlc tập lệnh rút gọn RISC, xử dường ống

“Tiếng Ảnh : register transmission language, operand field, operation code fe, fetch phase, control unit CU, microprogrammable CU random logic CU macro-instruction, micro-instruction, miero-program complex instruction set computer CISC, reduced instruction set computer RISC, pipelining,

8.1 THỰC HIỆN LỆNH MAY BEN TRONG BỘ XỬ LÍ

6.1.1 Các quá

thực hiện lệnh,

“Ta sẽ khảo vất chỉ tiết hơn cách thức lầm việc của các đơn vị bên trong bộ Xử lí Nhắc lạ rằng bộ xử í thực hiện một lệnh theo chuỗi các bước như sau

mì-nạp lệnh từ bộ nhớ vào thanh ghỉ lệnh

Chuyển thanh ghỉ con trỏ lệnh IP tỏ tối lệnh tếp theo Xác định loại lệnh vừa nạp

`Nếu lệnh sử đụng đữ liệu trong bộ

Trang 2

Trở lạ bước 1 để bắt đầu thục hiện lệnh kế tiếp Hổ Ha

ws lee ba go sue enh le, 903 or Ean PH

Nên oo

C6 thé quy ước một cáchviết Cletus nn

để biểu diễn quá trình truyền đình 6.†- Các đường địa chỉ cịn

thơng tin đĩ ¡ gi là sgĩn ngữ *“y MP Ván ĐA B9 đến tương nh Thanh oh el ns

“Thí dụ : [MAR] © (PC| cĩ nghĩa là truyền (sao chép, copy) nội dung cia thanh ghỉ đếm chương trình vào thanh ghi địa chỉ nhớ MAR, lưu ý rằng trong cquá trình này nội dung của thanh ghi PC khơng thay đổi

[PC] < [PC] + 1 cổ nghĩa là : tăng noi dung cia PC en 1

IMS(20)] «- [PC] cĩ nghĩa là : sao chếp nội dung của PC vào vùng nhớ 20 trong bộ nhớ chính

4) Ouá trình đọc lệnh : Nội đung thanh ghỉ đếm chương trinh PC (Program 'Counler) chính là địa chỉ của lệnh kế tiếp Để chạy một lễnh, đấu tiên tội dụng cia thank ghi này được chuyển vào thanh ghỉ địa chỉ nhớ MAR (tức là [MAR) «—|PC|) Khi truyền xong, nội dụng của PC tự động tăng lên 1 IPC] ©— [PC] + 1) Thanh ghi địa chỉ nhớ MAR chứa địa chỉ của mot vùng trong bộ nhớ chính MS, ở đĩ số liệu được đọc/tiế Tiếp đĩ khi thực hiện chu trình đọc, mã lệnh cần thực hiện sẽ được đọc từ bộ nhớ và truyền tới thanh ghỉ đệm nhớ MBR ([MBR]—-[MS[MAR])) Thanh ghỉ MBR là nơi lưu giữ tam thời các lệnh và dữ liệu nhận được từ bộ nh trong chu kì đọc hoặc số liệu được ruyền từ bộ xử trong chu ki viết

tả

“Tiếp theo, lệnh được chuyển từ MIB§ tới thanh ghỉ lệnh IR, Ở đây nĩ được phản biệt thành 2 trường Mỗi trường là một từ mà ở đĩ các bịt được nhĩm với nhau thành một thực thể lơgic Một trường trong IR chia md ton hay la ma thao tac thường được viết tất là op~codc (operAtion code), để báo cho bộ xử lí biết phép tốn (hay thao tác) nào đang được thực hiện Trường khúc được gọi là "rường tốn hạng chứa địa chỉ của số liêu được dùng trong khi thực hiện lệnh

Đơi khi trường tốn hạng được bỏ đi vi khong phải tất cả các mã thao tác cẩn dữ liệu ở một vùng nào đố trong bộ nhớ Các lệnh dang được mõ tả này thuộc lớp các lệnh một địa chỉ Nếu lệnh cân hai dữ liệu, ta cĩ lệnh hai địa chỉ, v.v Dom vị điều khiển CŨ lấy mã thao tá từ IR cùng với một dịng các xung nhịp đồng hổ và phát ra các tín hiệu điều khiển tí cả các phần của bộ xử lí 'Đơn vị điều khiển cổ trách nhiệm chuyển các nội dung của bộ đếm chương trình vio MAR, thực hiện một chu kì đọc và chuyển các nội dung cia MBR tới,

“Chuỗi các hoạt động kể trên, trong đĩ lệnh kế tiếp được chuyển từ bộ nhớ: tới thanh ghỉ lệnh được gọi là giai đoạm từn-nạp lệnh (fetch phase) Trong giai Tênh được đọc từ bộ nhớ và được giải mã bởi đơn vị điều khiển Giai đoạn tìm nạp lệnh được tiếp nối bởi giai đoạn thực thị lệnh trong đĩ đơn vị CCU phát ra tất củ các tín hiệu cấn thiết để thực hiện lệnh Đơn vị điều khiển CÚ là phần phức tạp nhất của bộ xử lí Dưới đây liệt kế chuối các lạnh xảy ra trong giai đoạn tìm—nạp lệnh, trong đĩ FETCH là nhãn nơi bắt đầu “một chu kì tìm-nạp lệnh, IR(op-code) cĩ nghĩa là tường mã thảo tác của thanh ghi lệnh 1 Fetch (MAR] « [PC] copy PC 16i MAR (Pcl « (PC) +1 tăng PC lên Ì [MBR] ©- [MSMAR))| đọc lệnh UR} ©(MBR] chuyển nĩ tới R, CU © [IR(op-code)) 1) Đường số liệu trong bộ xử lỉ

Trang 3

Hậu để xế Mong giai đoạn tực tỉ — [ĐỆ mm len, Hình ày ứng xố lo lạnh dịc I chị, Họng đổ ta thêm vào một thình hi $6 ligu DO va dom vi tinh số học = tam

logic ALU um

I Thanh ghỉ số liêu gilt ede Ket quit mara :

trùng gian và tạm thơi rong qué tinh Cae) |

tính tốn Thanh ghỉ số iệu cần thiết ren guy trong các máy tính loại | dia chi 1 ce = T thuậ tốn (hí đụ, +, =, °,/) xảy nến — TẾ Ÿ lột tốn hạng được phân biệt bối lệnh =e eae

dược đi tưệc ti Suờn

uy một trong các lốn hạng bạn đâu Thanh ghi số lệu này cịn được gọi là thank gh seh lg (accumulator

“Thí dụ nếu ta cộng các nội dụng của vùng nhớ 1234 tới thanh ghi tích lu, xổ liệu trong thanh ghỉ sẽ được thay thể bởi các nội đung trước của nĩ cộng với nổi đung của vùng 1334 được cho bổi lệnh

[ALU thye hiện tất cả các phép tính lưgic và số học Các tốn tử lðgic và số học được áp lên nội dung của thanh ghi tich luÿ hoặc cia MBR Lối ra của ALU được quay ngược lại tới các thánh ghỉ này thánh ghỉ số liệu

“Tnhảu đâu iếntCU Hinh 62.Các đường đa cỉvà

Hãy lấy thí dụ về các lnh cĩ 2 địa chỉ:

Giả sứ tà cần chạy một chương trình đơn giản : P = Q + R Dấu "+" cĩ 6 học, Nhớ rằng Ð, Q và R là kí hiệu các tên được gắn cho các vùng chứa các biến ưong bộ nhớ

MOY DO Q : nap thanh ght D0 nội dung của vùng nhớ Q ADD DO R : cộng nội dung của vùng nhớ R vào thanh ghỉ D0 MOV P, DO: cit noi dung thanh ghi DO vio ving P

Cổ một chuối các hoạt động được thực hiện trong các giai doan tim-nap vi thực hiện lệnh của lệnh ADD D0,R Các hoạt động này nổi cho ta biết những gì đang thực xự xảy ra trong bộ xử lí, Hai thảo tác được biểu thị wong cùng | dõng được chạy đồng thời Các thao tác Hong dạng như [PC] <-[MAR] hoặc {DO} ©— [DI]s{MARJ thường duge gin cho ten I ec v uh (micro-instructions)

Một lệnh ở mức lợp ngữ (hí đụ, MOV, ADD đuợc thực hiện bằng một chuối vi lệnh Nồi chung, ví lệnh và vỉ cương rình là thuộc lĩnh vực quan tâm của “ác nhà thiết kế máy lính, chúng là những hợp phần bên trong tạo nên bộ xử lí Sau đây là hoạt động của đơn vị điều khiển nhìn heo các vi lệnh

Ferch [MAR].C FC] chuyển nội dung PC tối MAR (PC) < [PC] +1 tang noi dung PCIe | IMBR] © [MSMARD] đọc từ bộ nhớ chính UR] © (MBR] chuyée noi dung MOR tố

CU © [IR(op-code}] chuyén op-code tc 161 CU ADD [MAR] « [IR(addres9] chuyển địa chỉ tốn hạng i MAR (MBR] <- [MS([MAR))] đọc số liệu ALU _ [MBR], ALU <- [D0] thực hiện phí cộng (DĐ < ALU chuyển lối ra ALU tới thành ghỉ số liệu

©) Các lệnh nháy cĩ điều kiện T tt

DE cĩ cơ chế chọn lựa hoặc lạp lại một nhơn lệnh, bộ xử lí phải cĩ khả

năng chạy chương trình cổ lệnh nhảy (rẻ - s>2 ve) Pu nhánh) tuyệt đối hoc lệnh nhảy cổ điều

Xiện Lệnh nhủy là một lệnh buộc bộ xứ Ii chay một lệnh nằm ngồi chuổi lệnh hình thưởng, Nhảy cĩ điểu kien cho giếp to các cấu uúc IF THEN ELSE S%9 đồ khối ình 6 chỉ ra các đường địa chỉ và số liệu mối được thêm vào bộ xử 148 thực hiện các nh nhảy, đây cĩ

thêm 3 phần từ : mạch lật nhớ với bịt CN

fC (Gy Flip Pop) hah ging “Em THÊ

thấi BO xu PSR (processor status inh 3.cae deg hg tn wong register) và một đường nối giữa tường CPU sacked ie hc Uy địa chỉ của thánh ghỉ lệnh va bp dém Cm phe wong ‘nor in ae ts eg han gh PSR

Trang 4

MHoạt động của mạch lặt nhớ như sau + bất cứ khi nào, thí dụ phếp cơng hoặc trừ được thực hiện, kết quả sẽ đi tới thanh ghỉ tích luỹ va bit nhớ (hoặc, tượn) được lưu trữ rong, mach lat nh

“Thí dụ, cộng 00900100 + 00000001 cho tổng 00000101 và bìt nhớ C = 0 trong khi tổng 1000110 + 100001110 cho kết quả 00010100 và bịt nhớ C = “Tương tự nếu nội dung của thanh ghỉ số liệu được dịch tri (hoặc phai) mot bit, Địt đồ sẽ "tàn” rà ngồi và được truyền tới mạch lạt nhs Vi I do như vậy, bì thổ cĩ thể được coi như là một bịt mở sộng của thanh phỉ số liệu Sau khi bộ xử lí hực hiện một thuật tốn lơsic và võ học, nồ cập nhật các bit của thanh ghỉ trạng thái PSR để phản ánh bản chất của kết quả Các bi của PSR là

.C : bít nhớ, được đặt nếu nhớ được sinh ra trong phép ốn cuối cùng Dĩ nhiên bit Ceding giưng như bịt nhớ trong mạch lạt nhớ,

“2: bù sê-vơ được đặt nếu phép tốn cuối cùng cổ kết quả bằng 0 N ¿ bít đấu âm được đặt nếu kết quả cí

trong mã bù hai tốc là MSB = 1)

`V ¡bịt tràn được đạt nếu phép tốn cuối cùng tràn sổ, Đĩ là khi phép tốn tiền một hoặc hư số bù bai cho kết quả ngồi đãi chơ phép,

phếp tốn cuối cùng mang đầu âm

Đăng sau cho vi du vé tie dung cua phép cộng bai số tới nội dung của PSR

_ Tên hạng 1! ốn hạng 2= hốt quả [Cae Bit trang thai cla nan | 90000011 500000110 00000111 ¬ ved | ‘90000000 v=o | orr000 | vẽ 1111111 + 80000001 | orr0010 + cors0010 11091001 + 29109000 «01101001

PSR duce nối tới đơn vị điều khiến CÚ cho phép một số loại lệnh nhất <dinh thảm đị thanh ghí này Thí đụ các lệnh kiểm ta liệu phép tốn cuối cùng được thực hiện bởi bọ xử lí sinh ra kết quả đương hay khơng hoặc cĩ xảy rà trần số hay bịt nhớ cĩ được đặt hay khơng Ở đây cần một cơ cẩu cho phếp làm, một việc gì đố nếu kết quả của phép thir ding (true) và làm việc khác nến kết quá là xá (ae) Sự cái tiến cuối cùng trong bình 6.3 so với hình 6.2 là việc thêm vào các đường giữa trường địa chỉ của thanh ghỉ lệnh và bộ đếm chươn Điều này cho phép máy tính dấp ứng lại được với kết quả thăm) «a PSR 168

Một lệnh cĩ thể kiếm tra một hoặc nhiều Bí của PSR và nếu bát được xơi thì lệnh kế tiến sẽ được nhận từ bộ nhớ theo cách thơng thường Nếu bịt được đạt, lệnh kế tiếp sẽ nhận được từ vùng mà địa chỉ của nĩ chứa trong thanh ghi lệnh Loại lành này gọi à lệnh nhảy cĩ diều kiện

.4) Tốn hạng tức thơi

Đối khí cẩn cĩ các phép tốn mà tốn hàng là các giá tị xố nào đĩ Thí {dy lệnh cộng sổ 12h vào nội dung than: ghi tích luỹ DO thí dụ ADD D0.I2h Lúc này tốn hạng là một con số thực sự được sử dụng bot ma thao tie ADD Hình 6.4 chi ra mot đường số liệu bổ sung (được tơ đậm) giữa trường tốn hạng của thành ghỉ IR và ALU đành cho mục đích này e) Kiến trác của mặt ví xử lí

thực tế Phíi nổi rằng những năm gần đây

kiến trúc mấy tính đã được cải tiến bối

các tiến bộ về mặt cơng nghệ nhiều hơn, Là về khố học máy tinh và lập tình, Sự phát triển nhanh chồng của cơng, vật liệu bản dân đã tạo ra các bộ xử í cĩ độ rịng từ dữ liệu ngày càng lớn tối 32 và 64 bút và cĩ thêm nhiễu thanh ghi rong đĩ Các bộ xử lí điển bình với nhiều buy và một đây các thanh ghỉ được xuất hiện Nĩ cũng cĩ các thánh phỉ điều khiển giống như bộ xứ lí giả định kể trên (PC, MAR, MDR, IR) nhưng sự thay đổi chính là sự hiện điện của nhiều thanh gỉ số iệu và thanh ghỉ địa chỉ `Với các thanh ghỉ cĩ độ rộng từ dữ liệu 16 bịt xẽ cho phép một định dạng lệnh khác với định dạng một địa chỉ được mơ tả rước đây Để thâm nhập cúc thanh hi niy ta edn e6 dinh dang lệnh hui địa chỉ, Do đồ một lệnh lúc này gồm cĩ 3 trường : mã thao tác, địa chỉ tốn hạng và địa chỉ thanh ghí

Trang 5

Lệnh MOV [1234) DX

Mov ax (1284)

[a thao tae | Bla caltodn hang dich | Thanh gh ton hang nguén Thay vì chỉ cĩ một thanh gh tích luỹ như ở bộ xử í giá định xét trên, việc xuải hiện nhiều thanh ghi s6 iệu cho phép bộ xử lí thực tế ẽ cổ hiệu suất tính tốn manh hơn Khi cĩ nhiều thanh ghỉ sở liệu người lập trình cĩ th lưa trữ tổng giấ tị xố iệu thường dng wong ede than shi ny’ ten chip xi lí th sẽ cho phép tính tốn nhanh hơn so với kh lưu tữ chung trong bộ nhớ chính Thí dụ lệnh cơng nội dụng 2 thanh ghỉ sẽ khơng cần đời hỏi một chư kì quy chiếu bộ nhớ nào củ Lúc này chỉ cổ khĩ với người lập trình là phải chọn lh

nào giữ biến nào May mắn là trong hấu hết các chương trình được viết trong, ngơn ngữ bậc cao điều này đã được các trình biên dịch sắp đật tự động cả Sự xuất hiện thêm nhiều thanh ghỉ địa chỉ cho php lưu giữ địa chỉ của các tốn hạng được thâm nhập trong bộ nhớ Nhiều vi xử lí lưu trữ lệnh trong hơn mội từ nhớ, mã thảo tác chia trong mot te va dja chi cia ede Loan hạng trong các tử

siu §ự sắp xếp này cho phép sử dụng bộ nhớ một ích hiệu quả nhưng chương tình sẽ chay hơi chậm vì cĩ nhiều hơn một từ nhớ cần được thàm nhập trong một chủ kì đọc lệnh Hoạt động này sẽ cố thể được tăng tốc bằng cách "ru tiên nạp tốn hạng (mà thực chất là các địa chỉ của đữ liệu) vào thanh phì địt chỉ, ổi sử dung các lệnh phân biết vùng của tốn hạng trong nội đụng thanh ghi địt chỉ Một khi đã mạp địa chỉ của tốn hạng vào thanh ghỉ địa chỉ tồi thì khơng phải quan tâm đến nĩ nữa Lúc đồ cĩ thể thảm nhập tốn hạng 4qus thank ghi địa chỉ (c6 nghĩa rằng ta cổ thể đùng lệnh một từ để (hâm nhập tốn hạng như với lệnh hai tờ), Thí đụ lệnh ADD D0, [A1] cĩ nghĩa là cộng cội dụng vùng nhớ được chỉ bởi thanh ghỉ địa chỉ AI với nội đụng của thanh ghi số iệu D0, Trong ngịn ngữ thanh ghi RTI, cĩ

[Do} {D0} + [MS LA) )1

Lưu ý rằng ta viết [A1] chứ khơng phải là A1 để ngụ ý rằng tốn hạng khơng phải là nối dung của AI mã là nội đung của vùng nhớ cĩ địa chỉ là nội dùng của AI

Một ứng dựng khác của thanh ghi địa chỉ là trong việc tính toần đơng các địa chỉ của máy ính Vì cĩ thể ấp một phép tốn sở vào nội dung của thanh ghỉ địa chỉ nên cổ thể ãm việc với các địa chỉ cĩ th biến đổi Phép tính các địa chỉ trong thời gian chạy cho phếp người lập trình cĩ thế hoại đơng trên các cầu trúc bằng và đữ liệu kiều khác tị, 6.1.3 Đơn vị điều khiến CŨ: on vị điều Kiến CŨ {Control Unit) la phin phic >

tap nhất trong bộ xử lí Hãy ”°

Khảo ví xơ lược hoạ động gia đơn v này và cính nỗ cho phếp bộ xử lí tực hiện Ảnh hiện ti ong các thủ hi len Hình 65 1m bin của mới bộ xử lí đơn gi

được dũng để mình hoạ cho “cơ hoại động của đơn vị điện khiển CÚ Cổ hú cách tiếp căn Khác nhau để tiết kỆ tmột CŨ Cích thứ nhất

nến một CŨ tự nĩ là một máy „6122 sec

tính tong máy tính và biển '” “ “| AL

đổi mỗi nh máy thành một de shuổi các lệnh sơ khi gọi là ví lệnh, Cách tiếp cận khúc à

lầm rà chuỗi các phếp tốn "xa lưgie và số học ci thi eho Habe ee ial nea ep việc thực ign mat ah i

{hE ké mach loge thich hap để thực iện ác chối này

4) Don vi diu khiển được vỉ chương trình

Ngơn ngữ tự nhiên của máy tính là các lệnh máy thường được biểu diễn bằng các từ gợi nhớ (mnemoaie) cho Ia các lệnh hợp ngữ Cúc lệnh máy nay “được gọi là các nh vŸ mở (maeto-instruction) Mỗi lệnh vĩ mơ được dich boi một xố các hoạt động rất sơ đẳng (primidixe) được gọi là các lệnh ví mở bay Lent (microinstruction) Néi cach Khác cĩ một ngơn ngữ thậm chí cịn sơ đảng hơn lệnh máy Một vỉ lệnh là một sự kiện nhỏ nhất xảy ra bên tong máy tính và cĩ thể bao gồm việc lật trạng thất một mạch lật hoặc chuyển sổ liêu từ “một thanh ghỉ này tới thanh ghi khác, Quả trình xử í một lệnh vĩ mơ bằng cách thực hiện một chuối các ỉ lệnh được god li dich leh

Trang 6

tình cho phép các loống thơng in được chuyển dịch rong bộ xử lí Mỗi một ghỉ (bộ đếm chương trình, MAR các thanh ghi số liệu v.Y ) được tạo bởi mach lật D Sau mỗi nhịp đồng hồ, số liều từ lồi vào sẽ dược chốt tới lối ra cửa các [p-fiop này và giữ lại ở đồ đến khi xuất hiện xung nhịp sau Một bus dữ liệu cao tốc m-bit ni các thanh ghi với nhau Giá sử ta muốn máy tính thực hiện một chu kì lệnh với mã thao tác cộng nội đụng vùng nhớ cĩ địa chỉ xác định với nội dung thanh ghỉ tích luỹ D0 ồi đặt kết quả vào D0

ADD D0 địa chí»

“Ta cĩ thể viết một chuối các hoạt động - gọi là chuối các vi lệnh ~ xây ra tong suốt quả tình thực hiện lệnh này khơng chỉ theo ngơn ngữ thanh ghỉ RTL mà theo các thuật ngữ cho pháp (enable) các cửa (gatcx) và lạt các mạch lật "Bìng 6.1 mình hoạ chuối các vi lệnh đĩ Cần nhấn mạnh rắn pha tìm—nạp lệnh, (feteh) của tất cš các lệnh thi như nhau và chỉ cổ phá thực thị lệnh (execute) biển đổi phù hp với mã thao tác được đọc trong quá trình nhận lệnh mã thơi Being 6.1 MOT CHU TRINH LENH DUOC DICH RA THUAT NGU RTL Bude] Nagin nga uy thanh gh RTL (ie heat dong yeu cfu ey | Mar} « (Pe) | cho phép G1, cấp nhịp cho MAR ta | Nc (PC) | 2 | PO e INC ‘cho phép G2, cấp nhịp cho PC b | tMBR)ô 0e (MARN _ | doEtỏeMS.RMel.deshipeđ | cho phép G1, tp co MER |, | mm «me cho phi G7, eo mi eno Me Jen | cu <tr ep-coamn 5 | [MAR] «IR (aia chi cho phép G3, cấp nhịp cho MAR «| — (NBRICIMSMMARN, — | đophẩoMS,RWM=t,cophepGB | cản ghế Gt hp cho MER 7 Lu <a cho phéo cr | aw <p |asmsen | Ít | ea ea jm hi s6 du + Ví chương trình:

“Tưởng tượng ring I6i ra của đơn vị điều khiến CỤ gồm 12 tín hiệu các cửa G ~Giạ, 2 tín hiệu điều khiển bộ nhớ chính xà 5 tín hiệu xung nhịp để kích hoạt các lối vào của các thanh ghỉ PC, MAR, MBR, IR và D0 Bảng 6.2 liệt kê 19 tín hiệu lối ra của CƯ theo một đãy các giá trị nhị phân được phát ra trong suốt quá trình nhân và chạy lệnh cong ADD Nếu cấp 19 tín hiệu trong bảng 62 tới các thành phần khác nhau củx bộ xử lí trong hình 2Ø thì một chủ rình lệnh sẽ được thực hiện Trong máy tính thực thường cĩ từ 64 đến 200 tín hiệu điều khiển như vậy Một trong những sự khác nhau quan trọng giữa lệnh vi mơ và lệnh vĩ mơ là ở chổ lệnh vi mỏ chứa nhiều trường hơn và cĩ thể cung cấp một vài chứ khơng phải 1 hoặc 2 tốn hạng như lệnh vĩ mỏ Tám bước trong "bảng 6.1 là một vĩ chương trình địch một giai đoạn tìm=nạp lệnh được theo sau ‘bai mot leah cong ADD

‘Bing 62 CAC TIN HIEU DIEU KHIEN DUGC PHAT TRONG CAC PHA NHN VA THUC HIỆN LÊNH CONG ADD ác TT Giang min [re 66 GG 6 G Ou Galen | PHAR WOR DOR 10000000000 0] xịa + ~o 6} oo} a{t o 0 0 0} 10! ee + 0Ð ° Đụ Bĩi 1 oo 1 00 ° 6 00 0 09} oo ete [Nhu vy cíc lệnh vĩ mơ được dich ra thành một chui các nh vi mơ và số một vi chương trình cho mỗi mã hao tác của bộ xử Íí Bây gi ta xem xết chính ã chương trình và phân cứng đồi hơi để chạy nĩ Vi chương trình được chạy Đối một cơ chế tương tự như việc chay lệnh Vĩ mỏ Thí dụ, thay cho bộ đếm chương tình thì ở dày, đơn vị điển khiển được ỉ chương tình hố cĩ một bộ

Trang 7

đếm ví chươnn trinh, Cấu trúc cơ bản cũa một CƯ được vi chương trình hố chỉ ra trên hình 6.6 Nồ cĩ một bở đếm ví cluznng trinh, một bỏ ni ví chương tinh! Xà (anh gi vĩ lệnh Địa chỉ vì lệnh từ bộ đếm vi chương trình được đạt tới lối vào địa chỉ của bộ nhớ vĩ chương trình và số liệu ra của bộ nhớ được cấp tối thanh ghỉ ví lệnh Thơng tin trong thanh ghi vi lệnh được chỉa làm 4 trường, trường địa chỉ vi lệnh kế tiếp trường điều khiển nạp bộ đếm vỉ chương trình, trường chọn lọc điều kiện và trường điều khiến bộ xử lí Hầu hết các bít tron thant gh vĩ lành thuộc về trường điều khiến Chúng điều khiển luỗng thơng tin

hem trong bộ xử lí bằng việc mỡ các cổng 3 trang thái và cấp nhịp lặt chơ các, thanh ghỉ như đã mơ tả trên, “Thanh gr loo | =| EE me 1 1 nem (2s, an CC BH" 8 Etats “Hinh 66 Ca trú cis mt CPU được vì chương hình bọt 1

+ Điều khiển chưổi vì lệnh

Nếu hộ đếm vị chương trình được đếm các buốc 0, 1, 2, thỉ một đồng các vi lênh kế tiếp nhau sẽ xuất hiện trong thanh ghỉ lệnh như cách dược mỏ tỉ

trong bản của mỗi vì lệnh sẽ xác định lơng

thơng tin bên trong bộ xử lí Tuy nhiên như trong trường hợp của đơn vị điều khiển vĩ mơ thường cần thay đổi chuối các vĩ lệnh dược chay Thí đụ, chúng ta cĩ thể muốn lấp lại một nhĩm các vi lệnh n lần ; hoặc muốn nhảy từ pha

tìm=nạp lệnh tới pha thực thỉ lệnh hoặc muốn gọi một chương trì

Ba tiudmg thanh ghi sẽ điểu khiển chuỗi vì lệnh cho phếp bộ dem vi chương trình thực hiện cả hoại động nhảy rẽ

tới vùng bên ưịng bộ nhớ vỉ chương trình Hoa động này là cín thiết để chạy các lệnh vĩ mơ như BRA, BCC BSC, BEQ x Trong hoạt động bình thường, bộ đếm vĩ chương ình sẽ đếm qua các lệnh một cách liên tiếp và địa ch của vỉ

chương trình kế tiếp Tà địa chỉ hiện tai cơng với 1 Bằng việc nạp các nội dụng của trường dja chi vi lệnh kế tiếp của trường xi lệnh hiện tại vào bộ đếm vỉ chương trình, một hoại động rẽ nhánh cĩ thể tới được một điểm bất Ki trong bo nhớ vì chương trình Nồi cách khác, mỗi vi lệnh xác định liệu vi lành kế tiếp được đưa vào trong chuỗi hoặc đưa ra tử trường địt chỉ kể tiếp của vi nh hiện tai Vậy thì cát gì ác định liệu bộ đếm vi chương trình in tục theo một chuối hoặc được nạp từ “rường địa chỉ vì lệnh kế tiếp của ví lệnh lượt tại * cĩ và khơng cĩ điều kiện

Trường diều Khiển nạp bộ đếm vì chương trình (micraprogram caMtter oa cowie fit cba than ghỉ vị lệnh báo cho bộ đếm vì chương trình hoặc 1a Liy dia chi lệnh kế iếp của nĩ bằng việc tang 1 rong một chuối liên tục hoe là từ việc dnh dia chi (address mapper) hoae 1a ding dia chi rong trường địa chỉ kế iếp của thanh ghỉ vũ lệnh

Trường chow diéu kign (condition select field) cia thank ghỉ vỉ lệnh thực hiện nhãy cĩ diều kiện ở mức lệnh vĩ mơ bằng việc nhảy cĩ điều kiện ở mie vi lenh Trong se dé hinh 6,6 mot trong bốn điều kiện cổ thể được chọn Các điều kiện này nhận dược từ ALU và thường là các bịt cỡ của hanh chỉ trạng thấi bộ xử lÍ PSR (hay cồn gọi là thanh ghi ma điểu kiện CCR-condition code register) thi du 7, N.C, V Trường chọn điều kiên xác định những bịt cờ não, được cấp tới lối ra của bộ đổn Kẽnh chọn diều kiệu Nếu lối rà của bơ đồn kênh là irue thì một hoạt động nhảy được thực hiện tối địs chỉ được xác định bởi nội cđụng của trường địa chỉ vỉ lệnh kế tiếp, trong trường hợp ngược lại vỉ chương trình sẽ chay liên tục theo chuối bình thường Trong hình 6.6 hai trong số cấc

Trang 8

điều kiện nhận được từ CCR và 2 buơn là uc và /ale Điều kiện /als£ ngụ ý rằng “khơng bao giữ rẽ nhánh” và re à "Iuơn luơn rẽ nhánh” (tức là lệnh gơz) Mơi cũ nhay cĩ diều kiện ở mức lịnh vĩ mơ (thí dụ BE) được dịch bởi các ¥i len theo cách sau Trường chọn diều kiện của vì lệnh chọn bù trạng thị thích hợp của CCR để kiếm tra, thí dụ nếu lệnh vĩ mồ là BEQ thì bít Z được chọn, Trường điểu khiến nạp bộ đếm vỉ chương trình bao gốm thao tá “tế nhánh tối địa chỉ wong thank ghi về lệnh rong điều kiện được chọn là re" Như vây, nếu điều kiện được chọn là zue (tức là Z = 1) một hoạt động nhảy được thực hiện tới một điểm trong vi chương trình cho phếp mot bước nhảy {wong ứng trong chương trình vĩ mồ Nếu điều kiện được chọn là se (tức là Z = 0), chuối hiện tại của cúc vi lệnh bị kết thúc bằng việc khởi phát một chủ tình lẽnh tm=nạp và thực thị lênh mới + Phục hiệu cu trình nh:

Phần đầu tiên của mỗi vỉ chương trình được thực hiện bối đơn vị điều khiến phù hợp với pha tị-nạp lệnh vĩ mơ và kết thúc với mã thao tác lệnh vĩ mơ được đột vào các thanh ghi lệnh Mã thao tác được nạp tới bộ ảnh xạ địa chỉ (ađérsss mmapper) bộ này tìm một bảng chứa danh sách các địa chỉ khỏi phát sửa vi chương tình cho mỗi mã thao tác cĩ thể Như vậy bộ ánh xạ địa chỉ đã địch một nhĩm bit nto đồ của mã thao tác thành vũng vi chương trình tương ứng mà vùng đố sề thực hiện mã thao tác, Sau khi vì chương Hình này được chạy, một hoạt động nhảy khong điều kiện tới điểm khối phát của vĩ chương trình được thực hiện nhằm dịch phá m7 nạp lệnh vĩ mơ và rồi xử lí li được tiếp tục

Dĩ nhiên vige mơ tả đơn vị điều khiển dược vi chương trình kể trên là hết sức đơn giản Trong thực tế vi chương tình thường bao gồm các phương tiệ liên cquan đến các ngất, bộ nhớ chính và các thiết bị vàoƒzs Một trong những vu điểm lớn của đơn vị điều khiển được vi chương trình là khả năng biến đổi nội dung, của bộ nhớ vĩ clương trình (đi khi được gợi là bợ nh điều khiển) và do đồ cho phép cĩ thế thiết kế được các lệnh mức máy của riêng người sử dụng

Thực tế rất cĩ khả năng chọn một tập các vi chương trình nhằm chạy mã máy của một máy tính khác hồn tồn Trong trường hợp này my tinh được coi là mơ phơng máy tính khác Việc này là hữu ích nếu chúng ta cần thay đổi máy tính cũ của mình thành máy mới mà mã máy riêng của nĩ khơng tương thích với các chương ình cũ Việc mơ phỏng ấp dung tới chương trình tồn

116,

trong mã đối tượng (object) ở đĩa từ Bảng việc viết các vi chương trình trên máy mới để dịch mã máy của máy cũ cho phép cĩ khả nàng tận dụng được tựu điểm của máy mới mà vẫn sử dụng được phần mễm cũ

"Để hiểu cách thức đơn vị điều khiến xác định việc thực biện một lệnh vĩ mồi ta hãy xết cấu trúc của một đơn vị điều khiển được vi chương trình tương tự Hình 66 là hình 6 pon [Oe Tra fies re en cu 4 hu E0 He

Tính 67 Cu tú của mộ đơ vị điền hiến chương tình

Nến ta giả thiết rằng một mã thao tác dang ở rong thanh ghỉ lệnh củả bộ xử lí, chuối sự kiện sau sẽ xây

— Mã thạo tác được cấp tối lối vào của ROM để ara cứu địa chỉ khởi phát “của vi lệnh cĩ liên quan trong bảng các địa chỉ Địa chỉ thứ nhất của vĩ chương, trình được đưa vào bộ đếm ví chương trình và cũng xuất hiện ở lối ra của nĩ, ở “đồ nĩ chọn vị lệnh thứ nhất từ bộ nhớ vì chương trình

Trang 9

= Vi leah được giữ trong một thanh ghỉ đường ống, gọi như vậy vì nĩ gi vì lệnh hiện tai trong khi đơn vị điều khiển dang bận nhận vỉ lệnh kế tiếp

`Vi lệnh được đồng để điều khiển hoạt động của bộ xử lí Vi lệnh điển hình rộng 64 đến 128 bit va được chỉa thành một số trường, Dưới đây là minh hoạ một vì lệnh giả định

[ener

; 4 vit] 8

8 ch [F%°hn maou ni iu dn) J nace aja ei] wing fiend La maah| "9h |zanven| gen ace [aut XE iếp tu [MALU uu] ava frye td hệ thống năng| hanhgh {a ugu bus

revit | abi | abi | sue [soe] soe [soe] eba [1658| «bi

Định đạng lạnh 84 bi

8) Đơn vị điều khiển logic ngdu nhign

Loại đơn vị điều khiển kể trên thực hiện việc địch một lệnh máy bằng một Vi chương trình được lưu trữ trong bộ nhớ ROM Độ phúc tạp của đơn vị điều khiển được vĩ chương tình khơng liên quan trực tiếp tới độ phúc tạp của các lệnh máy mà nĩ phải dich, cũng giống như trường hợp độ phức tạp của máy tính mức lệnh máy khơng liên quan gì tới độ phức tạp của các chương trình ngơn ngữ bậc cao đang chạy trên nĩ Nhưng đơi khi các nhà thiết kế máy tính Tại muốn cung cấp các lệnh mức máy gần gũi với các tiện ích phức tạp được cho bởi các ngơn ngữ bậc cao Trong những trường hợp như vậy, phát sinh một mối quan hệ thực sự giữa độ phúc tạp của ngơn ngữ bạc cao với độ phức tạp của đơn vị điều khiến Như phần trên đã nổi, cách tiếp cận để xây dựng một đơn vị điễu khiển khác là tìm ra chuối các phép tốn logic va số học cắn thiết “ho việc thực hiện một lệnh rồi thiết kế mạch lưgie thích hợp để thực hiện các chuối này Lúc đĩ ta cĩ đơn vị điều khiển được xây đựng bằng các mach logic "ngẫu nhiên hay đơn vị điếu khiển lơgfc ngấu nhiên (random logic contol uni0) “Từ ngẫu nhiên ở đây chỉ hàm ý à "khơng theo một cách thiết kế nhất định nào” {ad he),

.Đơn vị điều khiển dược vỉ chương mình cĩ thể dễ dàng tích ứng với các mmấy tính khác nhau chỉ với một ít sửa đổi những đơn vị điu khiển lưgc ngẫu hiên thì chỉ được đăng cha một bộ xử í nhất định và khơng đề sửa đổi được Ta sẽ khảo sát một bộ xử lí đơn giản với đơn vị điều khiển lðgic ngẫu nhiên như hình 68 Một bus đơn nối tất cả các thanh ghi eho php truyền chỉ một 178 từ số liệu một lần từ nguồn tới R Bus he ering dịch Bộ nhớ chính nhận các ia chi cia ving nhớ cấn thâm nhập một cách trực tiếp từ thanh ghí MAR mà lối ra của nĩ được nối tới lối vào địa chỉ của bộ nhớ chính MS Điều kiện này làm đơn giản đổi các mạch điều khiến bus Bus sé ligu 2 husing được nối

tối bux hệ thơng bằng các cổng Cy—| 3 trạng thấi Gus và Gusy

“Trong chu kì viết bộ nhớ (W là re), số liệu được tuyển tây bụs hệ thống tối bộ nhớ qua

cổng Gusu Trong chủ kì đọc Cụ, +) sổ liệu được truyền

hộ, tới bus hệ thống

(qua cong Gyyse- Cae than ghi MBR, thanh ghi sổ liệu, bộ Lđểm chương trình và thanh ghỉ lệnh được sấp đạt với bus nội

bộ theo cùng một cách Khi một trong những thanh ghỉ này muốn đưa số liệu lên bus, cổng 3 trạng thái của nĩ được mỡ Ngược lai số liệu từ bus được nạp vào một thanh ghỉ béi mot xung nhịp dưa tối thanh ghỉ Lưu ý rằng thanh ghỉ len IR được sắp đạt nhằm cho nĩ cĩ thể nhận số liệu trực tiếp từ bộ nhớ chính mà khơng phải qua MBIR như bộ xử lí đã giả định trước đây ALU nhận số liệu từ: 2 nguồn bus nội bọ và thanh ghỉ số liệu, rồi đưa các ín hiệu ra của nĩ tới bus hệ thống,

Điều này làm này sinh văn để : ALU làm sao đặt số liệu lên cùng một bus ‘wong cing một thời gian nếu nĩ nhận số liệu từ bus hệ thống ? Cĩ 2 cách giải “quyết, Cách thứ nhất là phải đặt một thanh ghỉ trong ALU để giữ số liệu vào khơng đối trong khi bus dược nổi tối lối ra của ALU N6i cách khác ALU Sĩ một thanh ghỉ MBR của riêng nĩ Cách thứ hai đựa vào hiệu ứng thời gian tiễ của cắc tín hiệu khi đi qua một mạng dien logic $6 liệu truyền từ lối sào Con = " Minh 68 C tú của bệ xử don giun đụng để Khảo sả cấu to của đơn vị điều khiến lo nghi nhiên

Trang 10

của ALU tới lối ra mất chừng S0ns Giả thiết rằng các nơi đưng của MBR được Bang 6.5 DICH TAP LENH G BANG 64 TRO? (GON NGURTL VA xẽ khơng cịn ổn định Tuy vậy tín hiệu ra khơng thể thay đổi ngay lập tức vì | Lệnh | Op code Các hoạt déng (RTL) “Các hoạt động điều khiển

sổ tồi gant bên ng kế tên, [TT TU D HÀ In — TT mRictel front Ce

Kết quả là nếu cổng GẠyu được | Banas ‘MA DIEU KHIEN ALU | | UR) © [MS([MAR)] Rta

nĩ và than ahi 6 eu dup 8p | pT | | Aucel Ese”tF Fạzt9

2 Nụ f0 VÀ F cĩ chic tng nde 5] 5 | cima | | wsqwanpy foo |

Renee sd tee eeepc ata ngnhnọi:2Ú SH ene | | tac sen ALU © [MBR]

Bing 64 TAP LENH DON GIAN CHO BỘ XỬ LÍ Ở HÌNH 6.8 | Be Hae |

op-code| Tagine Pháp tốn | MBR] © [MS(MARD] 0o ADD M 100} © [Đ0] + [MS(M)] 'MBR] - [MS((MAR)), {D9] «- [D0] - [MS(M)] IMBR] «- ALU = = Y ntl an | [MS([MAR))] (MBR) Tơi Em IMS(M) © IMSIMJ - + vec | 101 | (aR) = 1 im [| 88 M IF 201 THEN PC] | u= man | IM8R] « ALU

Bang 6.5 liệt kê cả các tín hiệu nhịp đồng hồ, được kí hiệu là Cụ, và tất cả IMS(IMARD] + [MBR] Wet

Trang 11

Để chạy một lệnh phải thực hiện 2 iệc ¡ giải mã thao tác 3 bị thành 8 thao, tác kế tiếp nhau và thực hiện các thao

tác đĩ, Hình 69 là thí đụ cẩu trúc của một bộ giải mã lành 3 thành 8 Với | 843] 82 một giá trì nhị phân 3 bít đấu vào chỉ

cổ một trong 8 đầu rà được đặt ở mức tích cực cao, các đầu ra cơn lại ở mức thấp, Thí đụ, nếu mã tương ứng với lệnh cộng ADD (tức là 010) được nạp Vào thanh ghi IR trong pha nhận lệnh thị lối ra thứ hai từ đấy cổng AND sẽ ở mức lơgc cao, Để thực hiện chuối các vi lệnh cần phải cĩ nguồn tao ra các xung kích oat (triga) các vi lệnh

Mach điện tạo rà một chuối các tín Minh 69 Bo gist naan 3 +8 hiệu kích hoại đổ gọi là bộ ao xung tuần tự (sequencer) aim inh 6.10.10 sg 4 tự bước

THình 6 10 là sơ đồ một bộ tạo xung tuần tự 8 bước Các lối ra của 3 igo J-K được thiết kế thành một bộ đếm tiến 3 bịt và được nổi tới 8 cổng AND 3 đầu Vào để cụng cấp các tín hiệu nhịp Tụ — T

182

Hình 6.11 là giản đồ thi gian của các xung điều khiển Lưu ý rằng bộ giải mã thời gian ở đây cũng giống như bộ giải mã lệnh trên hình 6.9 Vì khơng phải tất cä các lệnh vĩ mơ đều đồi hỏi một số vi lệnh như nhau, do vậy cĩ thêm một lối vào Reset cho phép dat lại bộ tạo xung tuần tự trổ về trạng thái T ở bất kì thời điểm nào Bước iếp theo là kết hợp các tín hiệu từ bộ giải mã lệnh với các ín hiệu định thồi từ bộ tạo xung tuần tự để phát ra các tín hiệu điều khiển định thời thực sự It, +, am mơ Bae tT |.„vw——;—ÍÌ ——‡-T | + ———ÏÌL_——_—— fins yeaa Lh Lại km ————Ï L_——— La dội LỆ —== ml lệ sa Lo, yt LL — ‘Minh 611 Giản đồ tồi gian cỉací< xin đền khiển SoBonrouEnv

Tình 6.12 chỉ ra một ong những cách giải quyết việc này Đối với mối một trong 8 lệnh mức mấy, - pgrey Spee pau

một trong các đường đây dọc từ bộ giải mã lệnh sẽ ở mức logic 1 cho phép ma cổng AND mi n6 ni t6i Khi các tín hiệu nhịp thời gian Tạ đđến T; được phát ra, các lối ra của các cổng AND sẽ cho phép đơn vị điều khiển lơgie "ngẫu nhiên hoạt động Lối ra của mỗi cổng AND, tương ứng với một vi lệnh nhất định rErch XMOVE(@ed90s9)09 MOVE(sietee)

(thí đụ Chụ„ạ) được nối tới tàn) San

Trang 12

Lối ra của các cổng OR my sé kích hoạt các vi lệnh tương ứng Trong hình này các cổng AND với lối vào EXECUTE là phấn giải mã trong sơ đối hình 69,

"Đối với một vi nh, một nhĩm các tín hiệu điều khiển cĩ thể được hoại tại một thời gian xác định Như vậy mi tín hiệu điều khiến cĩ thể được kích hoạt bởi một vài lệnh vĩ mổ (cĩ hả năng điễn ra trong các chủ kì nhịp đồng hồ khắc nhau) và được phát bởi một máy phát vịng Đơn vị điều khiến luơn ở một trong 2 trạng thái là pha nhận lệnh (fetch) hoặc pha thực tỉ lệnh (execute

Trang 13

và đặ/xố mạch lật nhận-thực th lệnh Với mỗi vị lệnh ta cĩ thể viết một biểu thức Boolean theo dạng lệnh mức máy và một chuối các xung theo thời gian

“Thí dụ, xem biểu thức cho Euan, Bị, Chay,

Euugs = ADD Tị + SUBT, + INCT, + INCT + DEC T, + DECT, + DECT; Eg = Fetch T, + BRA Ty + BEQ Tụ

Guan = Fetch Ty + Fetch T,

‘inh 6.14 Sa 48 hi của một đơi vi did Ki age ng ohien

Hình 6.14 là sơ đổ chỉ iế của một đơn vị điều khiển lơgic ngẫu nhiên So sánh giữa 2 thiết kế đơn vị điều khiến theo kigu vi chuong tinh hos va logic ngẫu nhiên ta th

— Đơn vị điều khiển lơgic ngấu nhiên cĩ tốc độ hoạt động nhanh hơn vì nĩ được tối ưu hố cho một ứng dụng cụ thẻ Hơn nữa loại vi chương trình hố thì ‘cham hơn vì nĩ cần phải mát thời gian đọc vi lệnh từ bộ nhớ vỉ chương trình

186

— Vi hương trình thường cho mời thiết kế mềm đẻo hơn Vì nổ tổn tại trong bộ nhớ ROM nên cĩ thể để đăng sửa đổi nội dung rong gia! đoạn thiết kế hoặc sản xuất

`Vi chương trình cĩ ứng đụng cao trong những năm 70 khi mà tốc độ của bộ nhớ chính cịn chậm (1-2s) trong khi thời gian thâm nhấp bộ nhớ điều khiến chỉ chững 50- 100ms Khi đĩ các lệnh mã máy phúc tạp sẽ được chay rất nhanh, nhờ vì mã Nhưng đến hiện nay, đo thời gian thảm nhập bộ nhớ chính thường thấp hơn IƯ0ns nên các đơn vị điều khiển lơgic ngẫu nhiên cứng thard) cĩ thể

được thiết kế để chay các lệnh nhanh hơn nhiều các đơn vị điều khiên vi mã

6.2 CÁC BỘ XỬ LÍ RISC

CCấc và xử lí hoại động theo nguyên tắc kể tên cĩ xố lượng lệnh vĩ mỡ lớn, (thường hơn 300 lệnh), cĩ các khả nàng định địa chỉ phúc tạp các lệnh được thực hiện bằng một chuổi vị lệnh vi chương trinh, Do vay ed

được gọi là loại cĩ dập lệnh phức rạp CISC (Complex Instruction Se €omputer) Vì chương trình được phát triển mạnh trong những năm 70 khi mà bộ nhớ chính cĩ tốc độ truy cập tương đối chàm Lúc đồ các nhà thiết kế máy, sử đụng hộ nhớ chính tốc độ chàm để lưu trữ các lệnh phúc tạp tạo niên chương trình ở mức máy Các lệnh đĩ sẽ được dịch bằng vi mũ trong bố nhớ vi chương trình cĩ tốc độ nhanh hơn Ngày nay, các bộ nhớ chính cĩ uy cập ngắn hơn Ä0nx làm cho cúc tu điểm kể trên của vỉ chương trình khơng những biến mất mà cịn gây cán trở cho hệ thống

“Trong hàng thập kỉ, các nhà khoa học máy tính đã nghiên cứu cách thức mà các mấy tính hiện nay chạy chương trình Điểu tra thống kế đã chỉ rà những kết fuga sau

Trang 14

“Trong đĩ 1 là nhĩm các lệnh chuyển dữ iệu 2 tà nhĩm các lệnh thay đổi chương trình (lệnh rẽ nhánh ~branch, gọi call, trả vế ~retum) 3 à nhĩm các lệnh tính số học 4 là nhốm các lệnh sơ sánh 5 là nhơm các lệnh lơgic 6 là nhĩm các lệnh dịch ` là nhơm các lệnh xử lí bit 8 là nhĩm các lệnh vào/ra

Rõ tầng trong tổng số 8 nhĩm lệnh thì 2 nhĩm lệnh chuyến dữ liệu và thay đổi chương trình cố tản suất sử đụng chiếm đến 74%,

+ Cĩ những trường hợp để đạt được cùng một kết quả thì

chuối lệnh đơn giản sẽ nhanh hơn là chạy một lệnh phức tap iệc chạy một Những kết luận này là tiến để để một loại vi xử lí khác ra đời : nĩ hoại động theo phương pháp xử dụng tdp len rit gon RISC (Reduced Instruction Set Cemputer) Tập lệnh ở đây được hạn chế vào các lệnh chính yếu cần thiết trong số 20% lệnh nĩi trên và phẩn cứng được thiết kế sao cho các phần tử RISC này hiểu ngay được lệnh máy do chương trình cung cấp, Do đồ các lệnh loại này khơng cần chuyển cho bộ giải mã vi lệnh mà cĩ thể thực hiện được ngay Kiểu kiến trúc vi xử lí mới cĩ tên gọi là RISC này cho phép thực hiện một mã thao tie chi trong mot chu kl my

6.3.1 Các đạc điểm của kiến trúc RISC Kiến trúc RISC cần cĩ những đặc điểm sau:

1 Căn cĩ đủ số thanh ghí (hực chất là các bộ nhớ ngay trong chip, © thei gian truy cập nhanh hơn so với bộ nhớ ngồi) để khác phục được hiệu ứng ngẹt cố ‘hai (bottleneck),

2 Vì các lệnh ưong nhĩm 2 (call, retum ) thường xảy ra nên một kiến trúc hiệu đụng cấn tạo sự dự phịng cho việc chuyển hiệu quả các tham sổ giữa các thủ lục

3 Các lạnh phúc tạp làm tăng thời gian thiết kế, sẵn xuất và thử nghiệm -4, Nấu một bộ xử í RISC đủ nhanh thì nĩ phải chạy được một lệnh trong một chu kì máy Điều này cũng cĩ nghĩa là sự phức tạp của các lạnh phải cĩ ii hạn của chúng

5, Kết quả tất yếu suy ra từ điều trên là một kiến trúc cĩ hiệu quả khơng nên được vĩ chương trình hố vì nĩ phải địch một lênh bằng việc chạy các ví lệnh Một bộ xử lí RISC gắn với một kiến trúc vi chương trình tong đĩ sự phân biệt giữa chủ trình máy và chu trình vi lệnh bị biến mất

6 Bộ xử lí hiệu quả phải eĩ một định dạng lệnh đơn Khi đĩ việc giải mã lệnh cĩ thể được thực biện bảng mot mach Logic giải mã tối thiểu

` Để giảm thời gian chạy lệnh các lệnh dài cổ liên quan tối các vi xử lí thế hệ | và 2 cần phải bộ đi

Đến đây la sẽ xét 3 khía cạnh cơ bản của kiến trúc RISC : dùng một số lớn các thanh ghỉ được chế tạo trên chíp (oa~chip) đùng các cửa sổ thanh ghỉ gối lên nhau để giảm một cách đáng kể sự truyền tham số giữa các thủ lục và cơ chế đường ống (pipeliing) trong đĩ cho phép sự gối lên nhau trong việc thực hiện lệnh Trong kiến trúc RISC do nhĩm Berkeley để xướng sử dụng định “dạng lênh 3 thanh gỉ như đưới đây Mỗi trường tốn hạng cho phếp một trong

số 32 thanh ghỉ bên tong được truy cập Decode [80 [och | Niet [whore | wn? | TRO tbk SSSR okt xu

Hãi trường SCC và IM+B zeros liên quan đến việc cập nhật thanh ghỉ mã điều kiện và tốn hạng tức thời Định dạng RISC cho phép các lệnh dang ADD X.Y.Z tong đĩ X, Y, Z là cắc thanh ghỉ ben tong Vì rằng mỗi trường tốn ‘hang đài 5 bit nén RISC cổ 2° = 32 thanh ghi ben trong Nhung trong thye RISC cĩ đến 138 thanh ghi da nang ben trong dùng cho người sữ dụng Nguyên nhân khác nhau này là do một cơ chế gọi là cửa số, cơ chế đĩ cho phép người Lập tình chỉ nhìn thấy một tập nhỗ trong xố tồn bộ các thanh ghi trong một thời điểm nào đĩ

Trang 15

6.2

` Các cửa số thanh ghỉ

Một đặc điềm thiết kế quan rong trong kiến trúc RISC mà nhĩm Berkeley nếu ra là cách thức nổ cĩ th định vi khơng gian thanh ghi tới mổi thủ tục mới feroeedure) Mặc dù chỉ cĩ 12 hanh ghỉ được đồi hơi bồi mỗi lêi gọi thứ tực Xiệc lồng liê tiếp các thủ tục xẻ lâm tang nhanh chống xổ các thanh ghỉ trên chịp được gần củo các th tục (ểu mỗi hủ tục đều cĩ các biến cục bộ của -g chúng) Cổ thể nghĩ rằng ý định đành một tập các thanh ghỉ cho mỗi thủ tực mối là Khơng thục vi rằng gọi một chuối các hủ tục Ting lê nhau sẽ đội hỏi một lượng bộ nhớ quá giới bạn May thay mặc đù về nguyên tác cc thủ tục cĩ thế ơng lên nhau ới mức độ uỷ ý những cức cơng tình nghiên cứu đã chỉ ra ằng hấu hết các thổ tục khơng lồng lên nhau với mức độ lớn bất kỉ Trên hình 6,15 cho thấy mối ệnh CAIL được biêu diễn bảng một đường đi xuống về phía phải và mới lệnh RETURN due bigu dién bảng một đường đi lên về phía phải Trong hình cĩ về một cửa số cĩ độ sâu lồng ghép à Ta thấy rằng chỉ cổ một đây lệnh CALL va RETURN cĩ độ sâu lồng ghép th tục là 6, Vậy chương tình vẫn cĩ th iếptục được thực hiện trong của sổ đồ một giai đoạn đài, Do ‘fy iệc chọn một số hạn chế các thanh ghỉ cục bộ cho mội chuỗi cc thủ tục lồng nhau là hồn tồn khả th Một cơ chế thực hiện khơng gian làm việc biến ce bp cho ee thi ye được các nhà thiết kế RISC Berkelsy đưa ra là quản lí tới 8 th tục lổng nhau bằng việc cng cấp khơng gian làm việc trên chip cho mỗi thủ tục Nếu mức độ lồng nhau lớn hơn sẽ buộc bộ xử lí phải sử dụng khơng gian bộ nh ngồi cho việc lưu rỡ các biến cụ bộ, Thẻagan(đo vi ieốCat/dưn) a a

inh 6.18 Chet Vg she ren ci th

Khong gian bộ nhớ được đùng bởi các thủ tục cĩ thể được chỉs làm 4 loại 1 Khơng gian tồn cục là một vùng khơng gian địa chỉ lơgic cĩ thể được thăm nhập bởi tất cả các thủ tục Nĩ được đùng để giữ các hằng sổ và số Liew

190

cĩ thể được đời hỏi từ bất kì điểm nào trong chương trì chỉ cĩ các thanh ghỉ tồn cục bên trong

3 Khơng gian cục bộ là vng khơng gian địa chỉ lưgie đành riêng cho thi tục Nĩ được đùng như một khong gian làm việc cho thủ tục hiện tại

3 Khong gian them số nhập liệu gìữ các tham số được truyền cho thủ tục hiên tại từ thủ tục mẹ của nĩ gọi là các thanh ghỉ “cao”

4, Khơng gian tham số xuất liệu gid cfc tham số được truyền từ thủ tục hiện tạ tới các thủ tục con của nĩ gọi là các thanh ghỉ “thấp”

Hầu hết các ví xử lí

6.2.3 Các cửa sổ và việc truyền tham số

Mot trong những lí do làm cho tấn suất sử đụng các phép tốn chuyển số liệu trở nên lớn là việc ấn tiết phải truyền các tham số tới các hủ tụ và nhận chúng từ các thủ tục Một hệ thống giảm được việc truyền số liệu này sẽ cho phếp tíng đáng kế tốc độ chạy chương tình Kiến trúc RISC Bekeley giải “quyết vấn để truyền tham số bằng phƯƠNg cọ pháp da cửa sổ lồng nhau Một của sổ là 0 cuứi — omyisy một lập các thanh ghi khả kiến với một

thủ tục biên ti Hình 6,l6 mình hoạ cấu trúc của các của số lồng nhan của RISC Giả thiết rằng bộ xử íiện đang đùn tập cửa sổ th ¡ Một thanh ghỉ đặc biết gọi con trỏ cửa số WP (Winờw pointer cửa sổ được kích hoạt hiện ti

“Trong trường hợp này, WP chứa giá tị ¡ Nhu mo ti ở trên, mơi cửa sổ được chia thành 4 phần : các thanh ghỉ RO-R® là tập ếc thanh ghỉ tồn cục, các thanh ghỉ ni a is

RIO-RIS được dùng bởi thủ tục để nhận

các tham số từ mẹ của nổ và truyền các conse ove tham số quay trở ai mẹ của nĩ, các thành - “` C9 Ki ‘hi RI6-R25 là mười thanh ghỉ khơng thé [1 _}—J one

truy cập được trực tiếp bởi bất kì thủ tục

khác, các thanh ghỉ R26-R31 được ding inh 6.16 Cv ric cdc cu o6 ởi thủ tục để truyền và nhận các tham số gil mày TU) từ con của nĩ (tức là thủ tục được gọi bởi chính nổ)

Trang 16

“Tát cả các cửa sổ bao gồm 32 thanh ghi, R0R3I và mồi một trong những thanh ghi nay được địa chỉ hố bởi một lệnh RISC gồm S bít địa chỉ trê trường, tốn hạng Trong phần này ta sẽ sử dụng từ gợi nhớ để mơ tả hoại động của RISC Một lệnh cĩ dạng ADD R3, R12, R25 là [R25) © [R3]3|R12], 6 đây R3 bên trong khơng gian địa chỉ tồn cục, R12 được nhập (hoặc xuất) từ khơng gian thủ tục mẹ và R25 trong khơng gian địa chỉ cục bộ Lưu ý rằng các lệnh x8 học và lơgie RISC luơn cĩ giá trị 32 bị Bất cứ khi nào một thủ tục được gọi bối một lệnh dạng CALLR Rd,<dia chi> ede nội đụng cđa con trổ cửa sổ được tăng lên Ì và giá tị hiện tại của bộ đếm chương trình được cất trong thanh ghỉ Rd của cửa số mới Lưu ý tắng kiến trúc RISC Berkeley khong ding ngân xếp thơng thường trong bộ nhớ chính để ct các địa chỉ trở về của chương trình con Ki một cửa sổ mới được gọi ra (Ưong hình 6.16 là cửa sổ i), tht tục mới sẽ nhìn một tập các thanh ghi khác Với cửa sổ trước đĩ Các thanh ghỉ lồn cục R0~RR9 làMnột ngoại lệ vì chúng là chung cho mọi cửa sổ Cửa sổ R10 của thủ te con giống với của sổ R26 của th lục gọi (tức là thủ tục mẹ)

6.2.4 Tràn cửa số

Tuy nhiên các tải nguyên của bất kì bộ xử í nào cũng đề cĩ giới hạn hư tưong trường hợp kiến trúc RISC của Berkeley các thanh gh được hạn chế ở 8 cửa số Nếu các hủ tục lồng lên nhau với mức độ lớn hơn hoặc bằng 8 thi sé Xây ra việc tân cửa sổ ì răng khơng cịn một cửa sổ mới sào cho sự gợi một th tục tiếp theo Khi xây ra trần cứa sổ điều đuy nhấ làm được là dùng bộ nhớ chính để lưu giữ các xố iệu win Trong thực tế thường cửa sổ già nhất được cất thay vì của sổ mới vừa được ạo nên bởi hủ tục vữa được gợi Nếu số thủ tục được trả về (tua) rừ đi số thù tục được gợi (cal) vượt quá § sẽ xảy ra tràn của số

6.2.5 Kiến trúc RISC và xử í đường ống

Một lệnh máy được thực hiện qua Š giai đoạn như hình 6.17 chỉ rí

1 Nhan leah (instruction fetch) lấy lệnh từ bộ nhớ hệ thống và tăng giá trị thanh đếểm chương tình PC tên một

3 Giải mã lệnh (instruction decode) : ii ma lệnh được đọc từ bộ nhớ trong giai đoạn trước Bản chất của giai đoạn này rất phụ thuộc vào tính phúc tạp của việc lặp mã lệnh Một lệnh thơng thường cĩ thể được giải mã trong một vài nanơ giây trong khi một lệnh phúc tạp cĩ thể đồi hồi phải qua một bảng tra

“cứu nạp sin trong ROM để gi 192

3 Nha tốn hạng (operand fetch): tốn hạng của lệnh được đọc từ bộ nhớ "hệ thống hoặc từ một thanh ghỉ trên chịp rồi nạp vào bộ xử í

-1 Thực hiện lệnh (Execute) : phếp tốn lệnh được thực hiện

.3- Lạt trữ tốn họng (Operand store) : kết quả của giai đoạn thực hiện lệnh được viết vào tốn hạng đích Đố cĩ thể là một thanh ghỉ trên chịp hoặc một Vùng nhớ ngồi Mameim | Mwwslan Fetch E3 mm Sun | | t ry F °

Hin 647 Cấu trúc của mi chứ tình này

Trang 17

“Tuy nhiên kĩ thuật đường ống gập phải một tr ng

thống phải ính đến, đĩ à các "bọt nước” xuất hiện trên đường ống do các lệnh rễ nhánh sinh ra và tính phụ thuộc của các đữ liêu Một đường ổng là một cấu túc trải tự được phát iển trên các quy tắc Ở một giai đoạn bất kì rong việc thự hiện một chương trình, một đường ống chứa 2 hoặc nhiều hơn các lệnh với các giai đoạn khác nhau Hãy xem hình 6.19 trong đố một chuỗi lệnh đang được thự hiện tong xử í đường ống uf | or| e | os

ovata [or]: w [ra] woa |e

inh 6.19 Tae dng ean ash rong đường ổng

Thi bộ xử í gập một lệnh rẽ nhs, n6 bude phi nap li noi dung be dem ‘huang trình tối một giá tị mới Điều này cĩ nghĩ là tt cả các cơng việc hữu Ích đã được thực hiện ổi đường ống đến đây sẽ bị bỏ đi, vi lệnh iếp ngay sau lệnh tế nhánh sẽ khơng được thự hiện Khi đữ liệu ong đường ống bị đấy ra ngồi hoậc đường ống bị tro vào trạng thi chạy khơng, chúng ta nồi rằng một bot nuốc đã xuất hiện ong đường ống và làm chậm lại qué wink xi I Di nhiên, nếu đường Gag cing di Hì cảng cĩ nhiều lệnh phải bị đẩy ra khỏi 6 khi xuất hiện nh rẽ nhánh Cấu trúc RISC của Bedeley khắc phục vấn để bọt nước bùng cách khơng đầy ngay các lệnh sau nh rể nhánh ra ngồi dường ống, 9a Lệnh theo sau lệnh rẽ nhánh thì luơn được thực hiện Xết tác động của chuối lệnh sau AOD RY.R2.R3 [RSJẨ[RtJ.R2] AMP XN PC] © [N] tứ là nhảy 08 ia ot ADD R3.R4,R5 [RB] «(RSI RA)

.ADD R7, R8,RĐ _._ Khơng được chạyvicĩlãnh rẻ nhánh

Bo xử lí sẽ tính R5 = R1+R2+R4 trước khi chạy lệnh rể nhánh Đây là một cách xử lí lạ với những người lập trình ngơn ngữ máy thơng thường vì thường khơng bao giờ một lệnh sau lệnh rẽ nhánh lại được chạy cả Cách xử lí này cũng thường khơng phải lúc nào cũng thực hiện được Vì khi đồ bộ biên dich phải đưa vào một lệnh chạy khơng (NOP) sau lệnh rẽ nhánh và chấp nhận một điều khơng tránh khỏi à cĩ một bọt nước Các bộ xử í RISC nối chung coi cơ chế này như một bước nháy trể(delayed jump) hoặc gọi là Kĩ qhuật rẻ nhánh và thực hiện (branch-and~execut technique) Hình 6.20 là mình hoạ cách mà bộ Xử í RISC thực hiện kĩ thuật nhảy trẻ Lưu ý ở đây địa chỉ đích của nhánh được tính ong giai đoạn thực hiện lệnh của chu tình máy,

“Minh 630 Nhữy rề

Ảnh hưởng do tính hủ thuộc đã lệu ong dưỡng ống à các chuối lệnh xác định chay rong dưỡng ống sẽ gặp ác rồi vì hép tốn hiện tại đi ồi một kế quả từ phép tốn rước đồ và ép ốn rước này li dang chư rời khỏi đường ống Hình 621 mình hoạ sự phu thuộc đữ ệu xây ra như thể nào, Giả sử người lập tình muốn thực hiện php tính X:=(A+B)ANDLA+B C) Giả tiết ràng A.BC,X Yà2 giá tị tạm thời Templ và Temp2 nàm cc thn gh trong cu 36 hig i Chơng ta cĩ viết

ADD A.B,Tempt [Temp1] — (A}+{8)

S08 Tenpt,Tenp2 [Tems] [Teme*FIE] AND Temp) Temp2.X Xe fTenptliTang2]

Trang 18

Lệnh thứ i+1 tong hình 6.21 bắt đầu chạy tong thi gian xây ra giai đoạn, nhận tốn hạng của lệnh trước đĩ Tuy nhiên, lệnh i+l khơng thể chay tới giai {oan tgp sau là pha ấy tốn hạng = vì tốn hạng thự sự mà nĩ đời hỏi chỉ được viết vào tếp sau 2 chủ kì đồng hồ nữa Hậu quả là một bọt nước xuất hiện rong đường ống tong lúc lệnh +1 đợi số liệu cho nĩ Tương tự, phép tốn AND cũng bị đưa vào một bọt nước vì nĩ cũng đồi hỏi kết quả của phếp tốn trước đĩ mà

phép tốn đ lại đăng cịn ở trong đường ống ons ole] o | kh [remot irene [TS an.c| emote Temes c ‘sae | Tome?

Ce at victn HE vn nang Teme anna ip 2 — =[

‘inh 6.21 A hường của sự phụ 'huộc đã liệu

Hình 6.22 mơ tả một kĩ thuật gọi là ứưernal /orwarding được thiết kế để khắc phục ảnh hưởng của tính phụ thuộc dữ liệu Thí dụ phù hợp với một đường cống 3 cơng đoạn nhu trong RISC Chudi các hoạt động sau được thực hiện

+ ADDRIRZRS- |R]©[RIR.RZ] 2 ADDR4/.5/RS- (R6J©[RSRSJ 3 ADDR3/.4/R7- [R7J<(RSJR4J 4 ADDRPRRLRS (R8J©[RIRWR]

“Trong thí đụ này, lệnh 3 sử dựng tốn hạng được phát ra bởi nh 1 (tức là nội dung của thanh ghỉ R3) Tuy vậy, vì cĩ sự xen vào lệnh 2, tốn hạng đích được phát bởi lệnh 1 cĩ thời gian được viết vào fle thanh ghỉ trước khi nĩ được đọc như là tốn hạng nguồn bơi lệnh 3 Lệnh 3 phát một tốn hạng đích R7, tốn hạng này được dùng như là tốn hạng nguồn bởi lệnh tiếp theo Nếu bộ xử í đọc tốn hạng nguồn được yêu cầu bởi lệnh 4 từ tếp thanh gh, nổ sẽ tìm giá trị cũ của R7 Bằng kĩ thuật này, bộ xử lí sẽ ruyễn trực tiếp R7 từ đơn vị thực hiện lệnh 3 tới đơn vị thự hiện lệnh 4 196 ris Bet lonmneolter | e ĐÍ s

"Hình 632 Kĩ hoặt nem foreudin, 6.3 VI XU LI 80486 VA PENTIUM CUA INTEL

“Các vi xử lí 80486 và Pendum của hãng Intel là các thí dụ điển hình về việc ứng dung các cơng nghệ mới được trình bày ở trên, Mục này sẽ khảo sát ác vi "xử [đĩ theo con mắt của người lập trình để hiểu rõ hơn về kiến trú bộ xử lí hiện đại

6.3.1 Vi xir 80486

Chip i486 cia Intel e6 mặt độ ích hợp rất cao bao gồm bên trong một vi xử $6 32-bit đã cải tiến, một bộ đồng xử lí tốn 80387, một bộ điều khiển cáche Và một bộ nhớ cache tốc độ cao cổ dung lượng 8 kbye Bus số iệu và địa chỉ ở đây đều rộng 32 bi, tốc độ truyền ải đồ liệu cĩ thề lên ti 160 Mbytes Day à thiết kếđựa trên kết qu tủa việc ch hợp bai loại phn tử xử Ji CISC và RISC trong cing mot chip Trong 486, cc lệnh mã máy thường Xuyên được sử dụng sẽ được vài đặt ẩn và cĩ thể được thực hiện ngay, ong Khi các lệnh phức tạp nhất và được sử đụng sẽ thơng qua bộ giải mã v lệnh “Theo phương thức này, hấu như tất cả ác lệnh cĩ thể được thực hiện gọn tong ‘mot chu ki xung nhịp đồng hồ

VÍ xử If¡486 hồn tồn tương thích với các vi xử lí trước đĩ về tập lệnh và các loại số liệu Nĩ cũng cĩ thể chạy trong các chế độ thực và bio ve, Chế độ bio vệ là chế độ trong đỡ các nhiệm vụ của chương trình được cách lí khỏi các nhiệm vụ khác tong hoạt động đa nhiệm vụ Vấn để này sẽ được xem xét kỉ trong chương bàn về cấp máy hệ điều hành Sơ đổ khối bên trong của 80486 được chỉ ra như hình 6.23

Trang 19

Mot trong những đặc điểm quan trọng là trong 486 được tích hợp luơn bộ đồng xit tốn Về nguyên tắc nĩ cũng giống như chịp 80387 cho vì xử í 386 nhưng vì được tích hợp ngay trên cùng một chịp nên cho phép chạy các lệnh tốn nhanh hơn trong một hệ gồm 386 và 387 tách rời bình thường chừng 3 lần

“Minh 631.3 đồ khối của vi xi 80486

Mach cache lign hop 4 đường trong 486 làm việc giống như cache ngoại nhưng đường cache ở đầy là 128 bịt chứ khơng phải 32 bi Sơ đổ cịn cho thấy ở đây cĩ đường ống lệnh 5 tầng cho phép chạy các lệnh nhanh hơn ở 386 nhiều S0 đổ này thường đùng trong vì xử lí RICS cho phép một vài lệnh cĩ thể "chảy” trong đường ống cùng một lúc 486 sẽ nhận một vài lệnh trước và trong khi đang xử lí một lệnh nĩ sẽ giải mã và khối phát chay lệnh tiếp theo sớm đến mức cĩ thể được Thực sự 486 cĩ thể thực thỉ các phần của một vài lệnh trong cùng một thời gian Thí dụ, giả thử 486 phải thực hiện chuỗi lệnh cĩ ý nghĩa như sau : MOV AX noi dung ving nhớ ADD CX BX SHR AX MOV nội dụng vùng nhd, CX 198

Một vài nhịp đồng hồ trước khỉ thực hiện lệnh thứ nhất, 486 dy at cd cấc lệnh đơn giản và khối phát giải mã chúng Khi lệnh đầu tên được thực hiện thì việc giải mã nh thứ ai đã bồn thành Vì lệnh ADD khơng đồng các bus hoặc số liệu đọc từ bọ nhớ bởi lệnh MOV nên nĩ cĩ thể được thực hiện tước Khi lệnh MOV hồn thành Giống như vậy sự giải mã lệnh SHR sẽ được hồn thành trong khi lệnh ADD CX, BX đang thục hiện : và trong chu kì nhịp tiếp theo lệnh SH sẽ được thực hiện Trong chủ kì nhịp mà lệnh SHIR được thực hiện sự giải mã lệnh cuối cùng được hồn thành và địa chỉ của vùng nhớ sẽ “được đưa ra bus địa chỉ Trong chủ kì đồng hổ tiếp theo, từ trong thanh ghỉ CX 3Š được đưa a trên bus số liệu, Việc tăng cường sự xen phủ như vậy cho phép -486 chạy nhiề lệnh trong một chủ kì đồng hồ một cách hiệu đụng Việc nhận lệnh, giải mã lệnh và thự hiện nỗi ệnh thực ế xả ra vài nhịp đồng hồ nhưng các hoạt động này xen phủ lên nhau với các quá tình giải mã và thực hiện lệnh nên hời gian thự cho mỗi nh chỉ mất cĩ một nhịp đồng hồ, Thí đụ, một hoạt động viết bộ nhớ l6 bịt mất chừng 22 nhịp đồng hồ tren vi xử í 8088 và -4 nhịp ong 386 tì chỉ điễn ra Ì nhịp trong 80486

“Các lệnh nhảy cĩ điều kiện cũng gặp thuận lợi trong cơ chế đường ống của 486 Khi 486 gidi mã một lệnh nhảy cĩ điều kiện nĩ tự động nhận một hoặc nhiều lệnh từ địa chỉ đích ngay trong trường hợp cú nhảy xây ra Nếu sự rẽ nhánh được thực hiện thì 486 khơng phải đợi qua một chu kì bus cho lệnh đầu, tiên ở địa chỉ rẽ nhánh Một lệnh nhảy cĩ điều kiện cần chừng 16/4 chủ kì nhịp {8088 va 8/3 chu ki ahip & 386 thi chi mai chimg 3/4 chu ki nhịp trong 486

ấu hết những cải tiến trong 486 liên quan đến các tín hiệu và ghép nối phần cúng Hình 6.24 là các nhĩm chân tín hiệu của 486 Một nhĩm chân tín hiệu mới rong 486 là nhĩm chấn-lê DPO đến DP3 và PCHK# Các ín hiệu này “cho phép 486 thự hiện viếc phát và kiểm tra chẩn- lẻ cho việc đọc/xiết bộ nhớ Nhĩm tín hiệu mới khác là tín hiệu sấn sàng truyền khối (burst mode) BRDY*, và tín hiệu kết thúc khối BLASTE Các tín hiệu này được đùng để điều khiển chế độ dọc/viết một khối dữ liệu từ/đến bộ nhớ Trong chế độ bình thường, 1 chủ kì bus khơng cĩ trạng thái đợi chiếm mất 2 chu ki đồng hồ giống như trong 80386 Trong chế độ bu, thi gian cẩn thiết cho việc chuyển tải đữ liệu như vậy giảm xuống cịn 1 chủ kì nhịp đồng hồ Chế do burst duce bit dé bằng việc thâm nhập bình thường bộ nhớ và kế thúc trong 2 nhịp đồng hồ “Trong chủ kì nhịp thứ hai 8486 nàng tín hiệu trong chan BLAST lén mite cao

Trang 20

để chỉ th rằng nĩ muốn chạy chế độ truyền đữ liêu kiểu bues Nếu hệ thống được định địa chí cĩ khả năng thực hiện một chu kì burst thi nd ha day “ĐDY xuống mức tích cục thấp m3] TẾ ]E atte (35 wo Sam a Ble chi a (= aren wo (ate Ee} as] ce | - [Em Jas, eae PA Len ss ee Fe | ows — “Hình 624 Cc hơm chn tín hiệu của 90186 “Từ đĩ tấ cả các chủ kì bus chỉ mất mọt nhịp đồng hồ Để kết thức chủ kì burst, 486 ha tín hiệu BEAS7 xuống mức tích cực thấp để báo rằng gi tị cối cùng của chu tinh burst hign tai đã được truyền với tín hiệu BRDY hoặc

RDY tiếp theo Chú ý rằng các số liệu được truyền trong một chu trình burst

phải nằm trong một vùng 16 byte tức là địa chỉ của chúng phải nằm trong dãi 300 uuta0h tới xxAeosAfh Gexkxeve = 0000000h ti (fTHI), Điều này phải hợp với một bàng cache trong bộ nhớ cache nội của vi xử lí Với vi xử lí 486 DX2 hoạe DX4, ấn sở nhịp được cấp cho bộ xử (sẽ được nhân 2 hoặc 3 bên 200 rong chịp, cho phép cĩ thể tăng tốc độ của vì xử lí mà khơng đài hỏi bản mạch chính cũng phải cĩ cùng tốc độ đĩ

Điều này làm giảm nhẹ việc thiết kế chế tạo các bản mạch chính phải chay ở tấn số cao đo đĩ giá thành sản phẩm cũng được giảm theo Thí dụ, vĩ xử lí 1486 DX2/50MHz chỉ cần chạy véi bin mach chinh 25MHz, DX2/66MHz hay DX4/100Mz với bản mạch chính 33MHz Theo phương án này, nhìn chung máy vi tính phải chịu thiệt về hiệu suất, vì bộ xử líiến hành xử í số iệu nhanh gấp hai hoặc ba lần so với các bộ phận trên bản mạch chính, do đĩ cĩ thể phải XXen vào một vài chủ kì đợi (waitcyele) Để giải quyết vấn để này, một bộ nhớ cache ngồi đủ rộng để giữ tạm các lệnh và dữ iệu mà bộ vỉ xử í phải đợi Nếu được thiết kế hợp í hệ thống như vậy cĩ thể đạt tối hiệu suất 80% so với các hệ thống cĩ tốc độ xung nhịp trên bản mạch chính bằng tốc độ xung nhịp ở trong bộ xi I 6.3.2 Ví xử lí Pentlum

Vi xử lí Pentium khơng chỉ nhanh hơn 80486 mà cịn cĩ một sổ đặc điểm mới được thiết kế đặc biệt cho các ứng dụng phục vụ file Đĩ là bus dữ liệu rong 64 bit uy vẫn chỉ cĩ các thanh ghi 32 bit bên trong Chip cĩ khả năng thực hiện 2 lệnh song song theo cơng nghệ siêu vơ hướng (superscalar) với 2 đường ống U va V Cơng nghệ này cĩ khả năng làm việc với các cấu trúc RISC CChịp cĩ khả năng định địa chỉ bổ sung chỉ tiêu được cải thiên với các phép tính đấu chấm động và các bộ nhớ cạche nội lớn và mềm déo ham Ben trong chip ccĩ 2 bộ nhớ cache nội B kbyte, một cho lệnh và một cho đũ liều

Sơ đồ khối của vi xử lí Pentium cĩ thể được trình bày như hình 6.25 gồm, + Hai bộ nhớ cache 8 kbyteriêng biệt, một dành cho lệnh và một dành cho xổ liệu

+ Hai hàng nhận lệnh trước 32 bịt và bai bộ tính số học và lưgic ALU được cung cấp lệnh và dữ liệu trên hai đường ống song song siêu võ hướng U và V (superscalar) cho phép thì hành hai lệnh máy trong một chủ kì

+ Bộ xử í vẫn làm việc với các thanh ghi 32 bit va bus địa chỉ 32 bít nhưng, cĩ thể nổi với bus số liệu ngồi là 64 bi

+ Bus nội bộ là 64 bit va 128 bit, bus từ bộ nhớ cache nội nối với các vùng đêm của các ALU rộng 256 bì! cho phép tăng tốc độ trao đối đữ liệu trong nội bộ vi xử í lên ất cao

Trang 21

* Cĩ một vũng nhớ gọi là vùng đệm đích rẽ nhánh BTB (branch target buffr) của lênh đối với 256 lệnh rẽ nhánh mới đây nhất

* C6 một bộ đồng xử í với hiệu suất cao hơn nhiều lần các thế hệ trước nhờ các giải thuật nhanh hơn, nhờ cách sắp xếp bổ trí lệnh cũng như cĩ thể thực hiện đồng thời hai lệnh, sae = 22s oh Eid Ea — aa ‘ye nice] — [Raha hone seamen r [Paat nang

“Hinh 635 Sữđồ khối của vị xửl( Pentom

Một vài đặc trưng khác làm cho Pentium phân biệt được với các vi xử lí trước là:

Kích thước trang của bộ nhớ trong chế độ bảo vệ và ảo khơng chỉ hạn chế ở 4kbyte mà cĩ thể lên đến 2Mbyte hay 4Mbyte Khả năng tự tìm kiếm các lỗi phức tạp và gỡ rối (debugging) bằng các mạch phần cứng lắp thêm Cĩ thể tự đánh giá được hiệu suất thị hành chương trình Mặc dù là một vĩ xử lí được xây dưng trên nguyên tắc xử lí CISC nhưng Pentiur đã ứng dụng nhiều cơng nghệ mới giống như các loại vi xử lí RISC tốc độ cao, thí dụ như việc sử dụng các cấu trúc đường ống, cấu trúc superscalar va dự đốn tẽ nhánh Điều này làm cho nĩ cĩ hiệu suất cao như các vi xử lí RISC thực sự Các lệnh chạy trong Pentium được thực hiện trên một cấu trúc superscalar với hai đường ống song song U và V, các cache nội bộ và vùng đệm đích rẻ nhánh BTB Xét qua các cấu trúc này sẽ cho phép giải thích tại sao Pentium lại cĩ hiệu suất cao hơn so với các vi xử lí tước 46,

202

Céiu tric superscalar với hai đường dng song song : Việc thì hành lệnh trong các vì xử í 80x86 va Pentium duge din ra qua 5 céng doan :

trước (Preferch) : lệnh máy được lấy từ bộ nhớ chuyển vào bộ

mã lệnh 1 (Decode 1) phân ích để xác định loại lạnh 3 Giải mã lệnh 2 (Decode 2) xá định địa chỉ ð nh cần

-4, Thực hiện lệnh (Execute)

5 Viết các kết quả dữ liệu vào các thanh ghi vi bo nhs (Writeback)

`Nếu như mỗi cơng đoạn đồi hỏi tối thiểu một chu kì nhịp đồng hồ thì khi thì hành tuần tự các cơng đoạn này cho mỗi lệnh, thơng thường phải mắt tổng cơng năm chu kì nhịp Nhưng với một cấu trúc đường ống cĩ thể thực hiện đồng thời song song những cơng doan trén, Pentium tao ra một phương thức làm việc như sau : khi ệnh thứ (n) vừa chuyển sang cơng đoạn thứ hai thì một lệnh mới thứ (n+1) được đưa ngay vào cơng đoạn thứ nhất v.v Nhờ đĩ cả thấy cĩ 5 lệnh sẽ cùng được xử lí đồng thời trên một đường ống và cĩ thể coi mỗi lệnh chỉ được xử lí trong một chu kì nhịp đồng hồ Hon thé na, Pentium lại cĩ én hai dung ống gọi tên là U và V được chế tạo hoạt động song song với thaw Về mặt lí huyết, nổ sẽ cĩ khả năng thí hành cùng một lúc bai lệnh Tuy chiên thực tế khơng phải lúc nào cũng thực hiện được điều đĩ vì hai lệnh kế tiếp nhau thường phụ thuộc vào nhau và lúc này chỉ cĩ thể xử lí chúng một cách tuần tự Một mạch đặc biệt sẽ kiểm tra tinh phụ thuộc đữ liệu đĩ xem chúng cĩ yêu cầu phải liên kết trong quá trình xử lí hay khơng Nếu khơng phụ thuộc, hai lệnh sẽ được gi đến hai đường ống theo đúng thứ tự Quá trình cĩ thể dẫn giải như sau : rong cơng đoạn một, lệnh hiện ti sẽ được đưa vào đơn vi giải mã của đường ống U, lệnh kế tiếp = vào đơn vị giải mã của đường Nếu trong cơng đoạn hai, mạch đặc biệt nĩi trên xác định cĩ thể thực hiện ống V đồng thời được hai lệnh thì mỗi lệnh sẽ trải qua các cơng đoạn cịn lại tong mỗi đường ống của nĩ, ngược lại thì lệnh trong ống U sé tri qua cơng đoạn kế: tiếp như bình thường cịn lệnh kế tiếp trong ống V sẽ được chuyển qua thỉ hành trong ống U hư là lệnh theo sau lạnh hiện ti

“Bộ nhớ cache nội bộ : Pentum cĩ hai bộ nhớ cache riêng biệt, một đành cho dữ liệu và một đành cho lệnh Do cĩ tốc độ nhanh lại được được tích hợp ngay tong chịp vi xử lí nên các lệnh và dữ liệu ở đây cĩ thể được truy cập, rất nhanh Mỗi cache cĩ dung lượng 8kbyte gồm hai toyến, 128 hàng cache,

y nhập

Trang 22

mỗi hàng dai 32 byte, Cả hai cache này cĩ thể được truy xuất đồng thời từ hai đường ống U và nhờ vào cấu trúc đạn xen gấp tấm (trang)

Pentium cĩ thể hoạt động nhịp nhàng với các vi xử í khác trong chế độ đa xử lí mỗi vi xử í cĩ một cache nội riêng) nhờ được cấp một giao thức đặc biệt gọi là MESI (Modiied, Exclusive, Shared, Invalid) Nĩ cho phếp hỗ trợ việc đồng bộ hố giữa các cache trong một hệ thống đa xử lí Giao thức cĩ chứa thủ tục bus snoopine cho phép một bộ xử í thăm dị và xử lí các thơng tỉn được trữ trong các bộ nhớ cache của các bộ xử lí khác trong hệ thống

Vàng đệm đích rể nhánh TB : Xét trường hợp khi bộ xử lí thực hiện một lệnh nhảy (UMP) Lic niy, thay vi tiếp tục với lệnh kế tiếp trong bộ nhớ thì việc thị hành chương trình lại được tiếp tục với một lệnh hồn tồn khác tại địa chỉ đích của lệnh nhây Điều đĩ dẫn ổi việc phải "tống" lệnh kế tiếp trên, vốn đã nằm sấn trong đường ống ra ngồi, và phải nạp một lệnh mới vào đường sống Kết quả là hiệu suất của bộ xử lí sẽ bị giảm xuống vì phải mất đi một vài chủ kì nhịp đồng hồ cho quá ình trên Để khắc phục tình trang nay, Pentium cố một vùng nhớ đệm gợi là vùng đệm đích rẽ nhánh BTB (nghĩa là vùng đệm đành chơ các lệnh nhảy - IE/THEN) Nĩ được sử dụng trong cơng đoạn giải mã lệnh 1 (Decodk 1) của tất ã các lệnh nhảy gần (NEAR JUMP) Nếu lệnh nhảy, được th hành, bộ xử lí sẽ cất cá địa chỉ lệnh nhảy và địa chỉ đích của lệnh vào 'ĐTB Khi thực hiện lệnh nhây, thay vì nạp lệnh kế tiếp theo sau lệnh nhảy vào “đường ống, bộ xử lí sẽ nạp lệnh ở địa chỉ đích của lệnh nhảy Cịn nếu lệnh nhảy chưa được thỉ hành, tức là các địa chỉ lệnh nhảy và địa chỉ đích của nĩ chưa được đăng kí trong BTP thì lệnh kế tiếp theo sau lệnh nhảy sẽ được nạp ào đường ống như bình thường

Phin mềm của Pentium tương thích với những phấn mềm của 80386 và 80486 nhưng cĩ thời gian thực hiên lệnh nhanh hơn nhiều Với khoảng 3.1 triệu transis—tor ở phiên bản đầu thế hệ 1, Pentum cĩ thể chạy với các tần số '60MHz và tốc độ xử lí là 1Ư0MIPS với tốc độ bus trên bản mạch chính là 66MEz Trong khi thé he Pentium đấu tiên được gọi là P5 đang dược sử dụng thì Imel đã đưa ra thế hệ tiếp sau, Intel P6, véi ten goi IA Pentium Pro Các Pentium thế hệ 2 cĩ các phiên bản 75/100/120/133/150/166/200MHz Trên cơ sở cơng nghệ 0/ámiero với 250MIPS, nĩ cĩ thiết kế đổi mới và tốc độ xử lí nhanh hơn nhưng lại giữ được tính tương thích hồn tồn với tập lệnh của 386 và 486 Điều đĩ cho phép vẫn sử đụng được một khối lượng đổ sộ các

Trang 23

© CAU HOI VA BAI TAP 61 62 63 đá 658 66 6 Giải thích ý nghĩa của các hoạt động theo ngơn ngữ RTL sau Des DU) IMS49)] [MSG))] IMS) © [MSMSG))] ID4]< [MSID2)] (DI [MS4 + [2D] Ciải thích chức năng của các thanh gh sau trong bộ xử lí + PC hay IP MAR MBR IR

“Giải thích ý nghĩa của chu trình tim-nap Iénh ("fetch cycle”) va mơ tả hoạt động của nĩ theo ngơn ngữ RTL Một vài vi xử lí cĩ 1 hay 2 thành ghỉ tích lu, Anh (hay chị) cĩ nghĩ rằng cổ thể một máy tính phải xác định được số Ii tưởng các thanh ghỉ đa năng cho nồ khơng 7 Tại sao ?

Ví lệnh là gì

“Trình bày sự khác nhau cơ bản giữa đơn vị điều khiển vỉ chương trình hố và đơn vị điều khiển lðgic ngẫu nhiên Kiến trúc RISC cĩ những gì để phân biệt nĩ với kiến trúc CISC ?

Xử lí đường ống là gì khi cho phếp người thiết kế máy tính tăng tốc độ hiệu dụng của bộ xử lí bằng cách gối chẳng các hoạt động lên nhau "Những văn để nào nảy sinh ra khi thực hiện cơ chế này ? Nêu một vài cách khác phục những vấn để đĩ

Hay tim xem những đặc điểm của kiến trúc CISC va RISC nào được thể hhign trong 80486 và Pentium ?

Chương 7

CẤP MÁY QUY ƯỚC CỦA MÁY TÍNH

'© GIỚI THIỆU

“Cấp máy quy ước là cốp mà người sử dụng dỗn gọi là cốp ngơn ngữ máy, Tại cấp nảy bộ nhớ của máy tính được tổ chức theo bie hoặc theo từ oới các lệnh máy, được sử dựng qua các từ gợi nhớ Cấp này liên quan đến uiệc thực thì các lệnh

máy quo một tập các thanh ghi và bộ nhớ Mỗi thanh ghi chứa một từ dữ liệu Thường các lệnh cĩ một hoặc hai tốn họng Chúng được địa chỉ hố theo nhiều chế đệ như địa chỉ tức thi, địa chỉ trực iểp, địa chỉ giĩn tiếp thanh ghỉ, cđịa chỉ chỉ số hố tị địa chỉ ngăn xếp Các lệnh mĩp được mỗi nhà sản xuốt bộ xử lí quy định theo các định dạng riêng Với các xử li họ 80x86 của hãng Intel s6 sử dụng các trường mã tốn, tiến tố, trường chọn chế dộ MODE tỏ trường dia chỉ Các lệnh nảy thưởng được phơn nhĩm thành các nhĩm lệnh di chuyển dữ Liệu, lệnh tính số học logic theo cĩc phép toÉn hai ngồi ồ một ngồi, nhĩm các lạnh nhảy ỗ lệnh gọi thủ tục cũng như ơng lợp nà nhĩm các lệnh bo ra Lồng, diều khiển chương tình trong máy tính khang phải lúc nảo cũng tuổn tự Nhiều hi nĩ bị chuyển hướng do các lời goi thú tye, do xy ra byw nad Vi way mot sự chứ ý tới các th tục tà phương pháp lập trình cĩ cấu trúc là cẩn thiết

@ CAC TU KHOA

Tiếng Việt: cấp mĩy thơng thường, thenh ghỉ đa năng, thanh chỉ con trổ chỉ số, mã toền, tiến tố, tốn hạng, tốn hang nguồn, tốn hang đích, địa chỉ tốn hạng, chế độ đa chỉ tức thờ, chế độ đa chỉ rực tiếp, chế độ đa chỉ gián tiếp, chế độ đi chỉ giấn tiếp thanh ghi, chế độ địa chỉ cỉ số, chế độ địa chỉ ngăn xếp, thủ tụ,

"bấy, ngất

“Tiếng Anh: conventional evel, general purpose registers, index pointer register, ‘operation code - opcode, prefix, operand, source operand, destinaion operand,

Trang 24

operand adiwoss, immelale aldhesing, dưect addressing indirect addressing, register indirect addressing index addressing, stack addressing, procedure, tap, inter

“Trong cấu trúc phăn cấp của máy tính, cấp 2 là cấp lệnh máy theo cách hiểu thơng thường của người sử dụng Nguyên do là vỉ các nhà sẵn xuất bộ xử lí trao cho người sử dụng tập lệnh này để lập trình ngơn ngữ máu Tuy nhiên như trên đã nĩi, thường đầy mới chỉ là các lệnh vi mơ chữ chưa phải các lệnh vi mơ mà cấp lotc số cĩ thể hiểuŸ được Lí do thứ hai để người lặp trnh cứ nghĩ rằng cấp này là cấp máy thực sự vì cấp thấp hơn là các vi chương tình thường được cơi đặt sẵn trong ROM và cấu trúc cũng cĩ những đạc thủ iêng và khá phức tạp như chương 6ã nổi nên người sử dụng cĩ thể can thiệp được Vì những l do kể trên nén cấp ð thường được gọi là cấp may quy ude (conventional machine level, CSp my ny thuing diye Kho sit qua cdc fp Minh may

7.1 LENH MAY TRONG MAY TINH BA NANG

May tính là một hệ thống điền tử số Nhưng ta hãy xem nĩ Khác các hệ thống điện từ xố thơng thường thể nào Tổ chức bên trong của một hệ thống điện tử sổ được xác định bởi chuối các bao tác mà nổ thực hiện trên các số liệu được lưu ữ trong các phấn tử lðgie của nĩ Trong một hệ thổng xố chuyên đụng (special parpoxe digitalsysfem), chuối các thao tác này được cố định bởi phần cứng là các mạch điện tử và hệ thống thục hiên cùng một nhiệm vụ, lặp Thủ mãi mãi Nồi cách khác các thao tác ở đây khơng phải là một đối tượng để biến đổi Thí dụ như trong các khối điều khiến ổ địa từ khối này điều khiển chuyển động của đĩa và truyền các thơng tin nhị phân giữa đĩa và mơi trường, khác Khối này khơng thể thực hiện bất kì một thao tác nào khác ngồi nhiệm, Vụ được thiết kế như trên Trong khi đĩ máy tính số là một hệ thống số đã nàng (general purpose digital system) Máy tính đa năng này cĩ khả năng thực hiện các vĩ hao tác khác nhau và thêm nữa cĩ thể thực hiển một chuối thao tác đặc biệt được chỉ thị, Người đùng bệ thống này cĩ thể điều khiến xử lí bằng một chương trình, đĩ là một tấp các lệnh chỉ ra các thao tác phép tốn các, tốn hạng và một chuổi các xứ lí cần được thực hiện Nhiệm vụ xử lí đữ liệu cĩ thể được biến đổi một cách đơn giản là thay bằng một chương trình mới với các lênh khác hoặc cũng là các lệnh đĩ nhưng với các dữ iệu mới Một lạnh máy tính được biểu điển bằng một mã nhị phân chỉ rà một chuỗi các vi thao tác cho máy tính Các mã lệnh cùng với dữ liệu được trữ trong bộ nhớ Bộ điều khiển đọc mối lệnh này từ bộ nhớ và đặt nổ vào thanh ghỉ điều khiển Sau đĩ nĩ sẽ

208

địch mã lệnh nhị phân và thực hiện lệnh (chạy lệnh) bảng việc phát ra một chuối các nhiệm vụ điều khiển Mỗi máy tính đa năng cĩ một đặc điểm lệnh riêng của nĩ Khả năng hưu trữ và chạy các lệnh, khái miện chương tình hư

à thuộc tính quan trọng nhấi của một máy tinh đe năng

.Mã lệnh (instruetioa code) là một nhĩm các bít chỉ cho máy tính thực hiện ‘mot thao tée nhất định Nĩ thường được chỉa thành một vài phần, mỗi phần cĩ sự thể hiện đạc biệt riêng của nĩ Phần cơ bản nhất là phần mã thao tác hay mã tốn Ma thao tc (operation code, op-code) Ia mot nhém các bịt xác định các thao tác (hộc phép tốn) như cộng, trừ, nhân, phép địch phép bù, vv TAP sắc thao tác được phát biểu cho một máy tính phụ thuộc vào việc xử lí mà mấy, inh đĩ định tiến hành Tổng số các thao tác như vậy xác định tập các lệnh máy Số bịt đơi hồi cho phần mã thao tác trong mã lệnh là hồm của tổng số lệnh được sử dụng Nĩ phải gốm ít nhất» bìt cho một tập gốm 2" lệnh Thí dụ, Xxét một máy tính cĩ 32 lệnh, trong đĩ cĩ lệnh cộng ADD Ma thao tác gồm 5 bịt với số 10010 gắn cho phếp tốn cộng ADD Khi ma thao téc này được đơn vị điều khiến nhận được, nổ sẽ phát các chức năng điều khiển đọc tốn hạng từ bộ nhớ và cộng tốn hạng với nội dung một thanh ghỉ của bộ xử lí Tới điểm này ta bất đấu thấy mối quan hệ giữa tốn hạng và thao tác Một thao tác là “một phần của lệnh được lưu tt trong bộ nhớ máy tính Như chương 6 trước đây đđã nĩi, đơn vị điều khiển nhận lệnh từ bộ nhớ và địch các bít mã thao tác Sau đồ nĩ sẽ phát ra một chuỗi các chức năng điều khiển phần cứng thực hiện các vi tao rác nhất định trong các thanh gỉ bên trong của máy tính Vì lí đo này, "một mã thao tác cịn được gọi à thao tác vĩ mơ (maacro~operdtion) vì nĩ định rõ một tập các vì thao tác (miero-operaton)

Trang 25

“quyết định kiến trắc của máy tính đĩ Như vậy, mồi loi máy tính cĩ trên thị trường sẽ cĩ một loại định đạng lệnh khác nhau

Ta hãy tưởng tượng một cách đơn giản nhất về tổ chúc một máy tính cĩ một thanh ghỉ bộ xử lí và một định đạng mã lệnh với ai trường như mơ tả ở hình 7.1 Trường thứ nhất xác định thao tác được thực hiện, gợi là mã thao tác (hay mã tốn) kí hiệu là OP và trường thứ hai được ding dé chia dia chi Dia chí để báo cho bộ điều khiển nơi sẽ tìm thấy toan hang trong bộ nhớ Tốn "hạng nây được đọc từ bộ nhớ và được đùng như dữ liệu được thao tác với dữ Tiên được lưu trữ trong thanh ghỉ bộ xử lí ee ; rủ _hoemuee nh tơng kLTEU làm nu

“Mình 71 Mới quan bệ gia ịnh dạng nã nh, địa chỉe nhơ và tình gỉ

“Các lệnh được lưu trở trong một vùng của bộ nhớ và dữ liệu được lưu trữ vàng khác Thí đụ như trong hình, với một đơn vị nhớ cĩ 4096 l6 bịt, chúng ta cần 12 bịt để đánh địa chỉ vì 2Í2 = 4096, Nếu lưa trữ mỗi mã lệnh rong muột từ nhớ 16 bịt thì phải cần 12 bị để đánh địa chỉ của một tốn hạng và như vậy chỉ cồn # bị để lập mã chổ một trong 16 lệnh Bộ điều khiển sẽ đọc lệnh 16 bit này từ phần lưu 6ữ hương trình của bộ nhớ Nĩ sẽ giả: mã thao tác 4 bit để xác định chuỗi vì thao tác cần thực hiện Trong quá trình thực thị lệnh nĩ ding phần địa chỉ 12 Bí của lệnh để đọc một tốn hạng từ vùng đữ liệu của bộ nhớ

Sau đố sẽ thực th lệnh bằng các vi thao tác giữa các tốn hạng và thanh ghỉ bộ xử lí Nếu một thao tác rong mã lệnh khơng cần tốn hạng từ bộ nhớ, phần cồn lại của các bit rong lệnh cổ thế được đũng cho mục đích khác Thí dụ, các thao tác (phép tốn) như xố thanh ghi tích lu, lấy số bù với số là nội dung của thanh ghỉ tích luỹ và thao tấc tăng thanh ghi tích luỹ lên 1, v; các số liêu được lưu trữ chỉ rong thanh ghi này Chúng khơng cẩn tốn hạng từ bộ nhớ Gi ede thao tấ loại này, phần thứ hai của mã lệnh khơng cán để chỉ định địa chỉ nhớ và cĩ thể được sử dụng để định rõ các thao tác khác cho máy tính

210

Đơi khi để thuận tiên, dùng các bit địa chỉ của mã lệnh khơng phải cho địa chỉ cia todn hạng (địa chỉ của ð nhớ cĩ nơi dung tốn hạng) mà là chính tốn hạng, Khi phần thứ bai của mã lệnh định rõ tốn hạng tì lệnh này được gọi là cĩ tod hang ttc thoi (immediate operand) Khi phiin thứ hai xác định địa chỉ của một tốn hạng, lệnh được gọi là cĩ địa chỉ rực iếp (direct addres) Ngược lại với trường hợp này gọi là địa chí gián tiếp indireet addiesss), trong đồ các bít trong phần th bai của lệnh được gần cho địa chỉ của một từ nhớ mã địa chỉ của tốn hạng sẽ được tìm thấy trong để Cĩ thể sử dụng 1 bit trong mã lệnh để phân biệt giữa địa chỉ lệnh rực iếp và gián tiếp

Hình 7.2 là thí dụ đơn giản mình hoạ sự phân biệt cách định địa chỉ trực tiếp ề gián tiếp như sau

[LIw[ ]easmessem

—= {ep Ldn cian

inh 72 isdn a ei ev pv i tiếp

Định dang len nur inh (a) g6m 3 bit ma thao tác kí hiệu a OP (ur bit | <n 3), 6 bit dia chi AD (Ur bit (0 cho đị chỉ tự tiếp, cho gián tiếp) Lệnh địa chỉ eye tiếp được chỉ ra tên 4 én 9) va 1 bt chi thi mode da chi gd itp hình (®) Nổ được đặt ở địa chỉ số 2 trong bộ nh Bị / bằng tức l lệnh được đơn vị điều khiển nhận biết là lệnh trực iếp Vì rằng phần đị chỉ AD là tương đương với số 9 (001001), nên đơn vị điu khin sẽ tìm tốn hạng ở địa chỉ số 9 “Trong hình (e) nh ở địa chỉ số 2 cĩ bị / bing 1 do đổ day là nh địa chỉ dn tiếp Dơnvị điều khiến sẽ thâm nhập đến địa chỉ 9 để tim da chi ei ton hạng Địa chỉ này ở rong phần địa chỉ của từ vì được kí hiệu là MỊAD) Vì MIAD) chứa số 4001 110) nên đơn vị điều khiển sẽ tìm thấy tốn hạng trong

Trang 26

hộ nhớ ở địa chỉ số 14 Lệnh địa chỉ gi tiếp cần 2 quy chiếu bộ nhớ để từn- nạp một tốn hạng Quy chiếu thứ nhất để đọc địa chỉ của tốn bạng và quy chiếu thứ hai để lấy chính ton hạng

7-2 CAC BINH DANG LENH

Vi các máy tính thực tế, nhiều lệnh chứa hoặc chỉ rõ vị trí của dữ liệu được lệnh sử dụng Thí dụ, nh so sánh 2 kí tự xem chúng cĩ giống nhan khơng cần phải xác định rõ kí tự nào được so sánh Hình 7.3 trình bày 3 định cdạng lệnh máy tiêu biểu : lệnh khơng cĩ địa chỉ, lệnh cĩ 1 địa chỉ và lạnh cổ 2 địa chỉ Cĩ thể tất cả các lệnh cĩ cùng chiều đài, cũng cĩ thể cĩ 2 hoặc 3 chiều cài khác nhau Các lệnh cĩ thể cĩ chiều đài ngắn hơn, bằng hoặc đài hơn chiều đài của I tứ Wisin | BadiônhgB) Mawan | Omari | Basw2 “Hinh 7.1 Ba định dạng en ie bia Các định đạng lệnh thường được thiết kế theo các iều chuẩn sau + Lệnh càng ngắn càng tố Lí do vì với các chương trình cĩ cùng một số lệnh, chương tình nào cĩ các lệnh ngắn sẽ chiếm ít khơng gian nhớ hơn chương trình cĩ các lệnh dài Thí dụ, một chương trình gồm n lệnh đài 16 bịt sẽ chiếm một khơng gian nhớ chỉ bằng một nửa ø lệnh đài 32 bịt, Lí đo thứ hai là tốc độ xữ lí của bộ xử lí cũng phụ thuộc vào độ dài các lệnh Các lệnh ngân hơn cho phép bộ xử lí ruyền được nhiều lệnh hơn trong một đơn vị thời gian

® Cần đủ khơng gian trong lệnh để diễn tả tất cả các thao tác mong muốn “Thí đụ, một bộ xử lí cần 2” thao tác thì phải cĩ kích thước mã lệnh lớn hơn hoặc bằng ø bi

Chiều đãi của từ lệnh máy nên à một bội số nguyên của chiếu đi kí tự Nếu mã kí tự cĩ É bit thì chiếu đầi từ máy phải là bội số nguyên của É, nếu khơng “khơng gian bộ nhớ sẽ bị ãng phí kh cất các kí tự

* $6 bit trong trường địa chỉ cần được xem xét lựa chọn Xét trường hợp thiết kế một máy tính cĩ kí tự š bịt với một bộ nhớ chính chứa được 2" kí tự "Nếu chọn trường địa chỉ dài { byte = 8 bit thi cin /6 bít để đánh 2 địa chỉ bộ nhớ kế trên, Trong khi đĩ nếu chọn trường địa chỉ đài ƒ ử = ý byte = 32 bit chỉ cần 14 bit dé dint 2" địa chỉ nhớ, Với cách tổ chức thứ nhất, iệc so sánh “2 kí tự sẽ để dàng hơn chữ khơng như cách tổ chức thứ hai cần phải rất ra mỗi Xí tự từ các từ để so sánh Tuy nhiên với cách tổ chức thứ hai chiều đài địa chỉ chỉ cần J# bit cĩ nghĩa là chiều dài lệnh sẽ ngắn hơn, chiếm ít khơng gian hơn và thời gian tìm-nạp lệnh cũng ngắn hơn Như vậy, để bộ nhớ hoạt động tốt hơn phải trả giá bằng số bít trong trường địa chỉ đài hơn và như vậy cĩ nghĩa là ệnh sẽ dài hơn Tại đây mối lệnh cĩ thể cĩ đến 6 trường, mỗi trường cĩ thể từ đến 5 byt Lệnh ngần nhất đài / byte lệnh đài nhất đài đến 9 byte kể cả tiền tố Trong các vi xử lí thế hệ sau như B0386 lệnh dài nhất lên tới /7 byte Các lênh này cĩ định dạng ít theo quy luật nhất định Chỉ cĩ điều trong các lệnh 2 tốn hạng thì nếu một tốn hạng đã nằm trong bộ nhớ thì tốn hạng cịn lại khơng được nằm ở bộ nhớ mà phải nằm ở thanh ghi Thí đụ chỉ tổn tại các lệnh cơng thánh ghỉ với bộ nhớ và bộ nhớ với hanh ghỉ chứ khơng cĩ các lệnh cơng từ nhớ này với từ nhớ kia

“Chứng ta sẽ khio sát định đạng lệnh của ác vi xử í 80x86 hãng Iatel được cho tên hình 7.4 để làm thí đụ sáng tổ các vấn để nĩi trên I Iaeiinamj “TÍnÀ 74 Ce định đọng lnh của S086

“Trên 8086 mỗi mã thao tác (op-code) đải 1 byle Trong trường mã thao tác tại một số lệnh cĩ dùng một bịt thấp w để cho biết địa chỉ bộ nhớ (nếu cĩ) là byte hay ti, mot bit đ để cho biết địa chỉ là nguồn hay dich Theo sau la byte MODE cho biết tốn bạng ở đâu Byte này được chỉs thành một trường mod đãi 2 bit cũng hai trường reg va R/M, mỗi trường 3 bit Với các đoạn nhớ trong

Trang 27

vĩ xử í 32 bịt (như ở 80386) cần thêm một byte nữa là SIB (scale, index, baxe) biểu thị cho một số đặc ính kĩ thuật nữa

“Các bịt e và røg quy định cho các thánh ghi nu trong bảng 7.1 "Bảng 71 ws | a 000 co on 10) ĐH 1H” mm tết cH nơ St —x—] 0

Bit d chỉ hướng đĩ của dữ liệu, đ = J dữ iệu đi đến thanh ghỉ cho bởi 3 bít 0 đến từ thanh ghì đĩ Bịt w quy định địa chỉ nhớ là từ hay byte ï

la byte

Byte MODE diéu khiến các kiểu định địa chí của bộ xử lí 80x86 Một tong các tốn hạng được xác định bởi sự kết hợp của trường mod và trường, “R/M Tốn hạng kia luơn là thanh ghỉ được xác định bởi trường reg Các tổ hợp cĩ thể được xác định bởi trường mố 2 bít và trường R/M 3 bịt được trình bầy

trong bing 7.2

Như thấy trong bảng, cĩ thể định địa chỉ gián tip qua thanh ghi BX, SỊ và DI nhưng khơng qua các thanh ghi AX CX, DX và BP hoặc SP cho phép địa chỉ trực tiếp nhung chỉ với tư cách loại bỏ địa chỉ giần tiếp qua BP, Cĩ thể sứ cdụng tổng của BX và Dĩ làm con trỏ nhưng khơng được dùng tổng của BX và 'CX hoặc AX và DI Khơng cĩ các kiểu túc thời mặc dù cĩ những mã tốn đặc biệt cho phép một số lệnh được phép định địa chỉ tức thời Tự động định vị chỉ số cũng khơng được phép ree wes Rta, 24 đảng 7.2 red 10 “ o 0 " ew pe : pe |e Chế đa bẻ mồ hs than gh coo [bi | t99M9Pdsea | Bibsapib| A | AX

901 | (exon (BXHIDIhdep9 | [AXiDjsásp+6| ©L ox | 916 | IBPRiSI | IEPliSlsdss3 8PhiSihdsple| ov | Ox ort] li | @iDIezspa | IDlsesp16 | at) ax too | (St) Eledsps (8lsdspl9 | AM | SE 10t (oH IDtedip ® [DIJtđip 16 cH | BP 110 | dspté | J8PRdsp® | IBEMdsplÐ | OM st [HT mg | Phdee | pp@hseas | 8H | oi

Hai cột giữa bao gm các kiểu trong đĩ một hoặc hai thanh ghỉ được cộng với một hàng sổ 8 bit, hing s6 này được gọi là dé dich chuyến disp (displacement) theo sau lệnh Nếu chọn mot hang 8 bit, hing được mở rộng đấu thành 16 bít trước khi cộng Thí đụ, lệnh ADD vi R/M = 0f1, mod =1 và đội địch chuyển là 6 tính tổng của BP, DĨ và 6 Kết quả này được sử dụng làm địa chỉ bộ nhớ cũa một trong các tốn hạng Trường zzg xác định thanh ghỉ dùng lâm tốn hạng thd hai, Bit 1 trong byte ma tốn cho biết tốn hạng nào là "nguồn và tốn hạng nào là đích,

Cot mod = 11 cĩ nghĩa là tốn hạng ở rong thanh ghỉ được chỉ định, tuỳ thuộc vào tốn hạng là từ (word opcrand) hay byte Tbyte operand) Ding gid ti mod này khi cả bai tốn hạng đều ở trong các thanh ghi

Trang 28

thanh ghí chỉ sổ hoặc thanh ghí cơ sở Các kiểu SIB cĩ ích trong việc tuy xuất các phần tử đây,

Các lệnh máy thường được cho đưới dạng các rử gợi nhớ (mnemonic) di kèm theo mã máy Những từ này giúp cho người lập trình đễ hình dung ra nội đang các lệnh hơn Hiện nay các chương trình sử dụng các lênh máy đều được viết bằng các lệnh đưới đạng này Thí dụ lấy của lệnh nạp số 89h thanh ghí AL là 1011 0000 1000 1001; = B989 h Khi sử đụng từ gợi nhớ MOV, mã lệnh này được viết để hiểu như sau MOV AL.49h “Thí dụ tiếp theo, Lệnh MOV CL.[BX] cĩ mã là 1000 1010 0000 1111

Lệnh này thục hiện thao ti thanh ghỉ BX vào thánh ghi CŨ,

7.3 PHAN LOAI CAC LỆNH

“Các lệnh ở cấp máy thơng thường được chỉa thành các nhém như sau :

nap noi dung byte nhớ cĩ địa chỉ là nội dụng

7.3.1 Các lệnh di chuyển đữ liệu

‘Sao chép dữ liệu từ nơi này sang nơi khác là thao tác cơ bản nhất trong tất cả các thao tác Bằng cách này cĩ thể tạo ra một đối tượng mối cĩ mẫu bịt giống hệt mẫu ban đầu Dữ liệu được cất ở nhiều nơi khác nhau tuỳ vào cách các từ được truy xuất ; thường là ở bộ nhớ, ở thanh ghỉ hoặc ở ngân xếp C¡ lệnh di chuyển dữ iệu yêu câu cả nguồn (vị trí ban đầu) và đích của thơng tin (nơi đặt bản xao) phải được xác định một cách rõ rằng hoặc một cách ngắm định Lênh dị chuyển phải cho biết bằng cách này hay cách khác lượng đữ liệu cẩn di chuyển từ một bịt đến tồn bộ nh Viếc dĩ chuyển dữ liệu được thực hiện cho tới khi cĩ dấu biệu kết thúc vùng dữ liệu (end-of-data field mask) được tìm thấy trong chính đữ liệu

7.3.2 Các lệnh tính hai ngơi

“Các thao tác hai ngơi là những thao tác kết hợp 2 tốn hạng để sinh ra một kết quả Hầu hết các máy đều cĩ các lệnh thực hiện phép cộng và trừ trên các

216

số nguyên Phép nhân và chia các số nguyên cũng thường là các phép tốn chuẩn trong tính số học Một nhĩm các phép tốn nhị nguyên khác là các lệnh “đại số lơgie Các lệnh thơng dung la AND, OR và XOER cho các kết quả là “TRUE hoặc EALSE Ngồi ra các phép tốn này cũng hay dùng cho việc xử lí các bị trong một từ qua các tốn tử bifvise ¡ đồ là việc thực hiện phép tốn lưgic cho từng bì tương ứng của 2 từ với nhau

3 Các lệnh tính một ngơi

Các thao tác một ngơi cĩ một tốn hạng và ạo ra một kết quả Do các phép, tính một ngơi cần t địa chỉ hơn các thao tác hai ngơi nên các lệnh cũng thường, ngắn hơn Cúc lệnh địch hoặc quay nội dung của một từ hoặc một byte rất cĩ Ích và thường cĩ nhiều biến thể khác nhau Dịch là thao tác trong đĩ các bịt được chuyển sang trấi hoặc phải, các bit được địch ra khỏi một đầu của từ sẽ mất Thao tác quay là thao tác địch trong đĩ các bí được đẩy ra khỏi đầu này nhưng xuất hệ lại ở đầu kia Cả hai thao tác dịch phải tái và quay phải /trái đều cĩ ích Khi một từ n-bit được quay trấ k bịt sẽ cho cùng kết quả với việc cquay phải từ này (a-k bit

Các thao tác bai ngơi thường xiy ra với các tốn hang đặc biệt Đơi khi cấc lênh này được thay bằng các lệnh một ngơi lại cho kết quả nhanh chĩng hơn “Thí đụ thay các phép nhân và chỉa cho các số bảng 2” bằng các phép địch trái

hoặc phải đi bit thì nhanh hơn nhiều

7.3.4 Các lệnh so sánh và nhây cĩ điều kiện

Hầu như tất cả các chương trình đều cần khả năng kiểm tra đỡ liệu và thay đổi chuối lệnh được thực hiện đựa vào kết quả Một phương pháp thơng thường, Tà sử dụng các lệnh nhảy cĩ điều kiện (rẽ nhánh cĩ điều kiện) Lệnh này kiểm, tra điều kiện nào để và nhây tới một địa chỉ nhớ cụ thể nếu điều kiện được thoả “mãn Đơi khi cĩ thể thiết lập một bít trong lệnh là L hoặc 0 nghĩa là thự hiện “nhảy nếu điều kiện thoả mãn hoặc khơng thố mẫn

“Điều kiện kiểm tra thơng thường nhất là bit cụ thể trong máy cĩ là 0 hay khơng Nhiều máy tính sử dụng một sổ bịt để cho biết điều kiện cụ thể Thí dụ bịt tần (overlow) được đạt là I mỗi khi một phép tốn số bọc cho một kết quả ai Kiểm tra bịt này cho phép biết được sự tràn của phép tốn số học tước Vì thể nếu xây nụ tràn, chương trình cĩ thể nhảy tối một thường trình báo lỗi

Trang 29

“Tương tự bộ xử lí cũng cĩ 1 bit nhớ (cary b0 được đạt khi cĩ sổ nhớ xuất hiện ở bịt tân càng bên trấ, thí đụ cộng 2 số âm Một số bộ xử lí cĩ lệnh kiểm tra bit tan cũng bên phải để xem số đĩ là chấn hay lẽ Việc kiểm tra zero Iai quan trọng đối với các vịng lập và cho nhiễu mục dich khác Thay vì kiểm tra tùng bịt trong từ để biết từ đĩ cĩ bằng Ø hay khơng, bộ xử lí cũng cĩ lệnh kiểm tra tử và nhảy nếu từ đ bằng 0

hi cần so sánh hai từ hoặc hai kí tự xem chúng cĩ bằng nhau hay khơng sấn 3 địa chỉ Hai cho các phần tử dữ liệu và một ch địa chỉ nhảy tới nếu điều kiện là đúng Các bộ xử lí cổ ít hơn 3 địa chỉ cho mỗi lệnh chúng thực hiện lệnh nhảy cĩ điều kiện bằng một lệnh bỗ qua lệnh kế tiếp sau nếu điều kiện thộ mãn Lệnh như vậy thường là một lệnh nhảy

[hay khong điều kiện là trường hợp đặc biệt của nhảy cĩ điều kiện trong đổ điều kiện luớn được thoả mãn,

2.3.5 Các lênh gọi thủ tục

“Thủ tục là một nhốm lệnh thực hiện một cơng việc nào đĩ và cĩ thể được oi tữ nhiều nơi rong chương ình Trong hợp ngữ thường hay dùng thu ngữ Chuong tinh ple (subroutine) thay cho thi tye (procedure) Khi th tục hồn tết cơng Việc, thì tục phải rổ về câu nh tiếp ngay sau lệnh gọi Do đ địa chỉ trở về phải được truyền tới thủ tục Địa chỉ này cĩ thể được đặt ở một trong 3 ơi: bộ nhớ, thình ghi hoc ngân xếp

“Thủ tục cĩ thể gọi những thủ tục khá, bởi vì mối thả tục đều cổ Khơng gian cho địa chỉ tở vẻ, Khả năng tủ tục gọi chính nĩ được gợi là sự đệ quy (recursion) th tung hop et quan trọng trong lập tình Cổ nh gọi thơ tục đặt địa chỉ ở về trong thanh ghi Nếu thủ tục 1à đệ quy th sẽ phải đạt địa chỉ ở ể vào một nơi khác mỗi lấn th tục được gi Thường các ệnh gọi thủ tục cất địa chỉ tr về vào ngăn xếp Khi hồn, xếp và đưa địa chỉ này vào thanh hi bo đếm chương trình (hay con trồ lệnh) th tục lấy địa chỉ trở về ra khổi ngân

.3.6 Các lệnh điều khiển vịng lập

Nha cầu thực thí một nhĩm lệnh với một số lần cố định xây ra thường xuyên nên một số mấy tính cĩ các lệnh nhảm dễ thực hiện điều này Các phương pháp đều bao gồm một bộ đếm được tăng hoặc giảm bởi một hàng số nào đĩ mối lần qua vịng lập Bộ đếm cũng được kiểm tra mồi lần qua vịng lập,

nếu điều kiện đúng vịng lấp được kết thúc Phương pháp này khổi động bộ đếm ở ngồi vịng lặp và sau đổ bất đầu thực hiện ngay mã vịng lặp, Lạnh cuối cùng của vịng lập sẽ cập nhật bộ đếm và nếu điều kiện kết thúc chưa thoả mãn sẽ quay trổ lại lệnh đầu iên của vịng lập Ngược lại vịng lạp kết thúc và thực thị lệnh đầu iên ở ngồi vịng Dạng lặp vịng này đặc trưng cho loại kiểm tra ở cuối Loại này cĩ đặc tính là vịng luơn luơn được thực th tối thiểu 1 lần ngay, cả khi sổ lập n < 0 Phương pháp khác là kiểm tra ngay từ đầu vịng lập Việc kiểm tra trong 2 tường hợp này là khác nhau và người thiết kế bắt buộc phải chọn mot trong hai phương pháp

“Tất cả vi xử í của Inel đều đùng lệnh LOOP để lặp lại một số lần cổ định Lệnh này làm giảm thanh ghi CX hoặc ECX đi 1 và nhảy tới nhăn đã cho nếu Xếi quả khác 0 Nếu kết quả khác hoặc lớn hơn 0, vịng lặp được lập lạ ; ngược Tại kết thúc vịng lập và lệnh theo sau vịng lập được thực hiện

1.3.7 Các lệnh vàora

Hiện cĩ 4 phương pháp khác nhau được thực hiện vối các lệnh vào/ra 1 Vào ra theo chương trình theo cách hồi vịng,

3 Vào ra theo ngất,

3 Vào ra bằng truy cập bộ nhớ trực tiếp DMA và

4 Vào ra sử dụng các kênh dữ liệu

Ba phương pháp đầu được dùng phổ biển ong các máy vi tính như đã được trình bày trong chương trước Riêng phương phấp thứ tư được ding trong cic ray tinh 1Gn (mainframe) Tai day them các bộ xử lí vào rà đặc biệt gọi là các kênh dữ liệu (data channel) Một kênh thực sự là một máy tính chuyên dụng được cung cấp một chương trình để hoạt động và sau đồ ngừng hoặc chạy chương trình mà khơng cần sự giúp đỡ nào từ bộ xứ lí chính Chương trình của kênh cũng rất phúc tp, bao hàm cả việc chuyển nhiều khối dữ liệu và cẩn ít “gắt hơn so với việc truyền bằng DMA đơn giản

Trang 30

MOV AL, 98h MOV DX 0378h OUTDX, AL

7.4 CAC THANH GHI VA LENH MAY CUA VI XU Li 80x86 7.4.1 Binh dia chi

nhớ và các thanh ghỉ trong 8086

(Qué trình thực hiện các lệnh gồm các thao tác tính tốn và trao đổi đữ iệu giữa bộ nhớ và các thanh ghi Vì vậy khảo sắt cấp máy quy ước chính là khảo, xất quá trình này Ta cĩ thể xem xét bộ nhớ và các thanh ghi của vi xứ lí 8086 của hang Intel lam thi du Chịp 8086 cĩ thể địa chỉ hố được 2”” = J Mbyte nhớ, đánh số liên ục từ 0 như hình 7.3 Các lệnh cĩ thể được thực thí theo tùng byte (8 bit) hose tang we (16 bit) mot * :PB}—ssses " 1= 2 Be RE aL

Hinh 75 Bia chi bos theo byte hts ca 886

Vi cée thanh ghi cia 8086 rong 16 bit, nem néu ding | thanh ghỉ thì chỉ số thể đánh được đến 2! = 64kbyte địa chỉ nhớ Do vậy các nhà thiết kế phải ‘ding đến 2 thanh ghỉ để đính địa chỉ cho mỗi byte nhớ tong khơng gian IMbyte D6 18 một tong 4 thawh gh doan (segment) để trỏ tối một đoạn nhớ lơgic mà ư nhớ cấn truy xuất nảm trong doạn đĩ và một thanh ghỉ độ lệch (6ffset) để chỉ khoảng cách từ địa chỉ thấp nhất trong đoạn tới ư nhớ đĩ Đoạn nhớ lưgic của 8088 là một vùng nhớ nằm trong khơng gian nhớ vật lí IMDyte số độ đài cổ định 64kbyie Địa chỉ của ơ nhớ thấp nhất trong đoan được gin cho dịu chỉ don hay cịn gọi là dia ch cơ sở đoạn Các đoạn nhớ nhất thiết

220

phải cách nhau 16 byte do đĩ các thanh gỉ đoạn tr tới các địa chỉ là bội số của 16 Các đoạn nhớ cĩ thể kể cận nhau, tích bit nhau hoặc phủ lấp một phần Jen nhau Như vậy một ð nhớ được định địa chỉ lðgie bơi một cập thanh ghỉ 16 bi là doạ và độ léch (segment: offset) Khi tray xuất bộ nhĩ, đơn vị ghếp n bus ong bộ xử lí sẽ tính từ đĩ ra địa chỉ vặt lí thực sự của byte nhớ cẩn truy cập theo cơng thức "Địa chỉ vật I'= Địa chỉ đoạn x 1 + Địa chỉ độ lệch (segment x 16 + offset)

LBộ xử lí 8086 cĩ tất cả 14 thanh ghỉ 16 bị Mối quan hệ giữa địa chỉ vật lí vi dia chi logic eting nhu ede thanh ghỉ được rình bầy trên hình 74 siau wis to TY Hợp, heiBee „im oxton ac| f ste cus = we ara = seo Magnet = toh |=s==ô ome Teen ơ coro] FOIE e220, conn armies ah 74h a pi ha 086

AX(AH, AL): colt thant gh): (BH): rege aan ca) X(CH.CL) caer (Nh dm); DKIOH BL dt rea ont

BP stese porter na gXcơEĩ con SI-soce ine ter hc ert ĐI đeqsstentder(đønhgW cose sopra tanh gan); a8 eh); Sch pte ar gh eon a 6) 08 teat na i oa 55: tack sper (han oh dba gn 46); ES- extn sega thar 9 do eh Pit einer aon Wenn WS): Ragnan aed

Trang 31

điểm của việc sử dụng thanh ghi bên trong cho việc lưu rữ tạm thời dữ liệu là cho phép CPU cĩ thể truy cập dữ liệu nhanh hơn rất nhiều so với việc phải truy cập bộ nhớ ngồi Các thanh ghỉ này được tách ra thành 2 phần : phần 8 bịt cao gội là thanh gí AH và phần & bịt thấp gọi là thanh ghỉ AL ; BH va BL ; CH và CL ; DH và DL Các nữa này đều cĩ thể được địa chỉ hố tách biệt

“Thánh ghỉ AX chủ yếu được đùng cho các phép tốn số học Thí dụ, đ tính tổng 2 số nguyên, chương trình nạp một trong hai số đồ vào AX, sau đĩ cộng số thứ hai với AX và cui cùng cát nội đun của AX vào bộ nhớ, Cũng cĩ thể đồng các thanh ghỉ khác nhưng tốc độ sẽ chậm hơn so với vige dùng AX ‘Thanh ghi BX thường dùng để chứa coa tỏ (pointer) tỏ tới bộ nhớ

“Thanh ghỉ CN chứa số đếm trong các lệnh lập vịng Để lập một vịng lập 7 Hin, CX được nap gié ti n sau mỗi lá lạp Giá trị này được giảm đi 1 cho đến koi CX bằng Ø thì vịng lập kết thúc

‘Thanh ghi DX là một thanh ghỉ mở rộng của AX trong các lệnh nhân và chia Thanh ghi này chứa nữa cao của một tích 32 bịt hoặc nữa cao của số bị chia 32 bit Trong việc thực hiện các lệnh đọc/viết các cổng vào ra, thanh ghỉ này được ding để chữa địa chỉ của các cổng cẩn đọc viết cổ giá trị địa chỉ lớn hơn FFh,

+ Các thank ghi dogm : C6 4 thanh ghi doan ding để lưu trữ địa chỉ 16 bít của 4 loại đoạn nbé logic ; doan ma CS , doan dt lieu DS đoạn ngăn xếp SŠ về đoạn phụ ES Ngăn xếp (staek) là một vùng nhớ được đặt ra ngồi để lưu trữ địa chỉ và đữ liệu trong khi thực hiện chương trình con Khi lạm dừng chương trình chính tại một điểm nào để để thực hiện một chương con, bộ xử lí phi lưu trữ tất cá các thơng số hiện cĩ tại điểm đồ (thí dụ nội dung của các thanh ghỉ liên quan) vào vịng nhớ ngăn xếp để sau khi kết thúc chương trình cen bộ xử 1í lấy lại được các nội dung này để tiếp tục thực hiện chương tình chính từ điểm mà nĩ bị tam đừng Đây là loại vùng nhớ tảo sau~ ra trước LIEO (last in ~ frst out, nghĩa là các đỡ liệu được cất vào sau cùng thì sẽ được goi rà đầu tiên Thanh ghi đoạn ngăn xếp được đùng để git 16 bịt cao của địa chỉ bắt đầu cho đoạn ngân xếp của chương trình

+ Các thanh ghỉ SI và DĨ được đùng cho các thao tác chuối Một thao tác chuối điển hình cần cổ địa chỉ nguồn xác định bởi thunk gửỉ chỉ số ngướn SĨ tong đoạn dữ liệu và địa chỉ đích được xác định bởi thanh ghi chi sd dich DI rong đoạn phụ (và cũng cĩ thể à chính đoạn DS) 22

Thanh gỉ con trỏ cơ sở BP và con trỏ ngân xếp SP thường được ding dé địa chỉ hố ngăn xếp BP trỏ tới đầy của khung ngân xếp hiện tại và SP tr tới định của khung ngân xếp

* Thanh ghỉ con trở lệnh ÍP : ong nhiều máy cịn được gọi là bộ đếm chương trình PC (program counter) gil dia chi do Iéch (dia chi offset) 16 bit của byle lệnh tiếp theo nằm bên trong đoạn mã lệnh Như trên đã nổi, giá trị được chứa trong IP cùng với địa chỉ cơ vở trong cấc thanh ghi đoạn để tạo thành một địa chỉ vậ í ơ nhớ cần truy xuất

+ Thanh ch cở P là một thanh hì đặc biệt Đĩ là một tập hợp các bịt cĩ thế được dt (seQ) hay xố (clea?) Mỗi bịt đĩ được lấy từ một mạch lạ để chỉ thi trạng thái sinh ra bởi quá trình thực hiệ lệnh hay điều khiển các phép tốn của đơn vị th hin ln Thanh ghỉ cỡ trong 80E6 cĩ 9 ít cỡ ích cực Ví dụ một mạch lại được gọi là cờ nâZ vẽ được đạ lên Ì nếu tổng của hai số nhị phân 16-bit e6 nhs vị tr bị cao nhất, Nế khơng cĩ nh ở bịt cao nhất rong phếp cơng thì cờ nhớ sẽ được đạt gi trì 0, Như vậy nhờ vào cỡ, đơn vị thực thì nh ác định rất nhanh là phép tốn cĩ nhớ Thanh ghỉ cờ cịn dùng để chỉ kết quả ‘cia mot thao tée v6i ngoại vĩ cĩ tốt hay khơng Su cỡ tạng tái ong nhĩm tày là cỡ nhớ (CE), cỡ chấn lễ (PF) cỡ nhớ plụ (AE), cở eo (ZF), cờ dấn (SF) và cờ tàn (OF) Tên của những cử nãy cũng đem lại gợi ý vế trang thi nào sẽ ảnh hưởng đến các cỡ 8086 sẽ kiểm tra những cờ này để xá định xem hai hành động lưàn phiến nào sẽ được thị hành trong quá ình thực hiện lệnh Ba cỡ cịn lại ương thanh ghỉ cỡ được sử dụng để điều khiến các phép tốn khác nào đồ của bộ xử lí Ba cỡ này khác so với sấu cỡ miêu t ở rên rong cích đại hoặc đặt li giá tị của chúng Cỡ điều khiển được đặt hay xố một ‘eich cổ chủ tâm với các lnh riêng được đặt rong chương tình của người dùng, Ba cờ điều khiến là cờ Đáy (TP), được sử dụng cho chạy tang bude chương tình : cở ngất ({P) dùng để cho phếp hay cấm các ngất của chương trình và cờ lướng (DP), đồng với các lệnh chuổ Dưới đây là vị trí của các bit cờ trong thanh gỉ cỡ của 8086, CTT-LIRIERTHEIETTATTET Telas 1.43 Tập lệnh máy của 8086

Tap lệnh của 8086 được liệt kẻ như bảng 7.3 dưới day Nhiều lệnh tham, chiếu I hoặc 2 tốn hạng trong các thanh ghỉ hoặc trong bộ nhớ, nhưng khơng,

Trang 32

thể cả 2 toần hang trong một lệnh đều là ð nhớ Hầu hết các lệnh đễu cĩ nhiều ‘dang ma hod khác nhau tuỳ thuộc vào bản chất của các tốn hạng Thường cĩ thể chỉs các lệnh thành nhiều nhĩm Nhĩm chứa các lệnh đi chuyển đữ liệu bản trong máy di chuyển giữa các thanh ghỉ, bộ nhớ và ngăn xếp Nhồm thực hiện “các phép tính số học : nhĩm thực hiện các phép tính số BCD Nhĩm thực hiện phép kiểm trà và so sánh Nhĩm cất, di chuyển, so sính và quất chuối các kí tự hoặc các từ Nhĩm cịn lại gốm một vải lệnh như biển đối, vàojra và đừng bộ xử lí Các lệnh cũng cĩ thể cố một hoặc vài tiến tổ prefix) Mỗi tiến tổ là một byte dic bigt thường đứng trước lệnh Tiền tố làm cho lệnh theo sau nĩ được lập lại Một số tiền tổ khác được ding để buộc lệnh phải tìm nạp tốn hạng của ênh từ ngân xếp hoặc từ đoạn phụ thay vì từ đoạn dữ liệu, Từ tị

cone “Chức nâng sảng “Chức năng

in pe cing vara " Nhây nếu cĩ ở đấu

ine Tang toan hang gic én 1 | ‘Nha nếu bằng 0

int s —_ |LAHF Ì Nạp 8 bí thấp của cổ vào

se

into " LS Í Nạp ư nhỏ từ kếp vào thành ghí đoạn đữ lêu RET 118 v8 cd nad LEA | Nap dia chi higu dung

Bing 73 TAP LENH MAY CUA 8086 DUGI DANG CAC TU GOI NHO ae đập T0 0g THỊ

ND) Ea _Nhảy nếu thấp hơn {Loos Nạp xấu ¬

Từ Tứ [tee ‘Nhdy néu thdp hon hogs [LODSB | Nepxau byte) —

Hà Chức năng tu Chức năng bi _

aaa Jano “Chinh sau phép céng 268 [GMP [ So sanh tốn hạng đích Geng ASCH vaose wc OZ | Ney nu Oxe0 Nhảy nếu cố cỗ nhệ LOOP | Vooa ee Nạp sâu (0)

[cress ASC [ows [So wim 2 cul ye Ray g Nhày nấu bàng LOPE | tạplại ưengkh bàng

AM sống ASGI ‘Grin sau phep nhên 2 |CMPSB | So sánh xâu (lo) Bint obi lohan, Nhây nếu lớn hơn hoặc |LOOPNZ| LạpHIMNiHơngbìngD POPE | TAN EN kg Bont

AAS mã ASCI Chỉnh sau phép trử 2 số |CMPSW |_ So sánh xâu (từ) o bing Nhảy nếu mơ hơn + 10007 | Lapel wi bingo

lAoc JAD [ cong 2 on hang "Cộng số sở mồ CWB | Biếnđổhanhtvkếp | DAA | Hidu cnn tap phn sau_| pháp cộng CƠ | lẽ awe | Nniy eng unin Nhây nấu nhỏ hơn hoặc [MOV | Chuyểnnguốntáidíh | bảng [WOVE | Chưến xe 2

AND CA | Geiehsena tenn eon ‘Va từng bit tương ứng của |DAS 2 ônhạng [DEC | Glam todmnang een a4 | phe Hiêu chỉnh thập phân sau ( a | om A eaten oe ° NT tây nếu àn ,o naa in xéu na (byte)

caw Chuyển byte thành từ ˆ DI Chia khơng đấu — _ NB “Nhảy nếu khơng ở dưới mạ Phép nhar —]

lke — [xem co | xeemee —— |JHr | te — lạc | Thos | AC | Nhiy nfs knéng 3 ais INE@ | cou noyidy pia — hoặc bằng 4

" ion a [năng a a!

jonc [mm — hước — | Nhansốnayen

xen z5

Trang 33

Từ ~ Tit _ Hà Chức nàng Nà Chức nâng

gơinhở Chức nàng 'gợi nhớ ‘Chie nang 'gợi nhớ ` _| gìn | bủ | LINE, ƠNG — | MhiynfuHơnglmbm jOR | Hove cle bi wena Oho ( Nhảy nổu khơng bằng — NOT Đảo dấu (lấy bil 1) / JSCASW | Quétxâu (ti fsa) Och XUAT KOR | Hoke hy đổ ng bi Chuyển đổi bảng

a s _của 2 lốn hạng, mảnh L— tương ứng 2 số |

INGE Nhdy nu khong 16n hơn | OUT Viết cổng vào/ra aes Biche _—-

_| hoạ bằng lopsp | Ngxetukem, SEN | Ow ty nếu tơng cĩ

INC Nhây nốu Khong nnd hon |POP [Lithann 3”) Hối phục nội dung (các L— luovso | Chuydn nau kde) [SETNS | Datbyte nu néng a chấn lễ al

fine Wy of tg ob on [PORE | Hl pye nana ee [MOVSX | Chuyén v6 Sign-exiend _[SETNZ | Datbyionéukhéng bing0

L ae To |

JNO "Nhảy nếu khơng tràn |PUSH Đẩy nội đưng (thanh đi ve ng sếp pans [ScASO | Quit bu (Kd) hểexð zem-siimi JÉTG, | 6ÉĐ/6nfibim SGTP— Đmbyanfucooian |

INP [PUSHF | By ngi dung cơ vào ngăn [SETA ‘Bat bya nud trén WSETPE Đatbme nấu chấnlẻ chấn |

p SETAE ‘Dat byte néu ð rên hoặc |SETPO | Batbytendu cd chin ile |

INS Nhảy nếu khơng cĩ cỡ [RCL Quay trải qua cỡ nhớ bang | |

hs " J SETS ‘Dat byte nếu ở dưới SETS Dat byte nếu cĩ đầu

NZ | Miynmơngtgn |RSR | Quy phi qua cond hơng bảng9 _ | ISETEE | Om byte néu 8 aati hase |SETE | Oat byte ndu bingo 1o Nhiy néu ed ban ÌREP | pla lân

= Nhày nếu cĩcð chẩn lê /REPE | L8plgiknbìng WSETC | Đmmwanfacscom [Sad | 0ghuAqutep) TPE | nnd nu chin é ohn |REPNE | LHplawuMhngbang SEE | Bwoye nda bin 1 a rk BPO] Nhiy ndu chin BiB |REENZ | Lapiaixh ving bingo | eens esis — See AN

Re: | aptitengtinango [sve | mon sero — soar nfm [roam | tava eo

RET Teas st | Dated rung eee | ee

ROL | Guay vai Sn —_| Bmzangát ROR) Gum STOS | La radu

ar | Ga ue naan aie [eroos | tmetae rm) 7.6 CÁC CHẾ ĐỘ BIA CHI CUA VI XỬ LÍ HỌ 80x86

| ane | T1 Các chế độ định địa chỉ

SA | Die wala Pry oe nhà số học srosw | uuwøxkum) suet Peep r “Cách thúc cho biết các tốn hạng trong lệnh 2 ở đâu được gọi là phương pháp 8 | mp “nh đu chỉ hay chế độ đ chỉ Cức lạnh cĩ thể được phân loại theo số đa chỉ sa — | Trueonwm TEST | nes (min be din sử dạng Lưu § ring tp ede than gh cia bo x được sắp xếp cũng to nên L seas | mm san J sạ _| = số thể cĩ 1,2 hay 3 địa chỉ một bộ nhớ tốc độ cao và cũng cĩ một Khong gan dịa chi, Tang gust, mot Fe

SeASB | uit iu (oe [CHG | rao 6 |

Trang 34

“Thí đụ các lệnh cộng cĩ 2 địa chỉ sử đụng một là nguồn và một à đích Sa đồ cộng nguồn với dich va cat ket qué vio dich

Bich (destination) = Bich (destination) + Nguén (source)

‘Che Lenh e6 3 dia chi cho bigt 2 nguén va một đích Nội dung 2 nguồn được “cơng với nhau và ci kết quả vào đích

"Để truy cập dữ liệu trong bộ nhớ, bộ xử lí phải tính được địa chỉ vật 20-bi từ các câu lệnh 8086 làm diều này bằng cách cơng giá tị địa chỉ hiểu ‘dung L6 bịt với địa chí eơ sở đoạn là số lổ ít nằm tại một trong bốn thanh ghỉ đoạn, Địa chỉ hiệu đụng (EA : effective address) la 46 Igeh (displacement hay offset) cia toin hang mong muốn tính từ địa chỉ co sỡ đoạn Bất cứ địa chỉ cơ

sở đoạn nào cũng ding được nhưng thơng đụng nhất là đoạn dũ liệu Hình 7.7 biểu điền trường hợp mà địa chỉ hiệu dung EA được cộng vào địa chỉ cơ sở đoạn dữ liệu để chỉ ra tốn hạng tron bộ nhớ và cách mà bộ xử lí tính địa chỉ vật lí 20 bit trong 8086, Địa chỉ vật lí bật đầu của đoạn dữ liệu trong hình là 2000 Bộ xử lí cộng thêm địa chỉ hiệu dụng 437A vào địa chỉ cơ sở đoạn dit liệu 20000 để tạo ra địa chỉ vật í gửi tới bộ nhớ là 2437A Địa chỉ vật f hoặc viết đưới dạng số 2437A hay dang segment base 2e! (2000 : 437A) thờ ‘MOveX.UsTAN) aan 24 37A Đgaieng 200mm —

‘Muah 7.7 Ti a ci vit ino ung han doan va ịachỉ hiệu dụng

Don vj thị hành lệnh EU trong bộ xử í tính tốn địa chỉ hiệu dụng cho tốn hạng dựa vào thong tin ghỉ rong câu lệnh Cĩ thể chỉ cho EU sử dụng con số trong lệnh như là địa chỉ hiệu đụng, sử dụng nội dung thanh ghỉ xác định như địa chị hiệu dưng, hay tính tốn địa chỉ biệu dụng bằng cách cộng số trong lệnh với nội đung của một hay hai thanh gbi xác định Đĩ gọi à các chế độ định địa chi, Sau day t6m tắt các chế độ định địa chỉ được dùng trong 8086,

7.8.2 Dinh dia chi te thoi (immediate addressing) : Cách đơn giản nhất để một lệnh xác định một tốn hạng là phần địa chỉ cũa lệnh chứa chính tốn 28

hạng đĩ chứ khơng cần địa chỉ hoặc thơng tin khác mơ tả tốn hạng đĩ ở đầu Một tốn hạng như vậy gọi là tốn hạng tức thời bởi vì tốn hạng được tìm nạp tự động từ bộ nhớ cùng lúc với lệnh và được sử dụng ngay lập tức Định địa chỉ tức thời cĩ ưu điểm là khơng cắn một truy xuất bộ nhớ nào Tuy nhiên cĩ nhược điểm là tốn hạng bị giới hạn bởi một số chỉ đặt vừa trong trường địa chỉ

“Thí dụ lệnh ; MOV CX,437Bh; nạp số 437B vào thanh ghỉ CX Khi thực hiện, bộ sử lí sẽ đạt số 437B tức thời lên thanh ghỉ 16-bit CX

7.8.3 Dinh dia chi true tigp (direct addressing) : Phương pháp này xác định một tốn hạng bằng cách cung cấp địa chỉ của ừ nhớ chứa tốn hạng cho bộ xứ

`Với chế độ định địa chỉ bộ nhớ đơn giản nhất, địa chỉ hiệu dụng chỉ là số 16 bít được viết trực tiếp trong câu lệnh,

‘Thi dy Ienh : MOV BL, (437A) : nạp nội dung 6 nhớ cĩ độ lệch, tính từ địa chỉ cơ sở đoạn là 437A vào thanh ghỉ BÚ

Khi được thục hiện, bộ xử lí tính tốn địa chỉ ð nhớ vật lí 2

‘cong them địa chỉ hiệu dụng 437A vào địa chỉ cơ sở đoạn dữ iệu Chế độ định, địa chỉ này được gọi là trực tiếp vì độ địch chuyến của tốn hạng được chỉ ra rực tiếp tong câu lệnh Độ lệch trong câu lệnh sẽ được cộng vào cơ sử đoạn dữ liệu trừ “khi yêu cầu bộ xử Ìí cộng nổ với cơ sỡ đoạn khác

Một thí dụ khác : MOV BX, 437A)

'Khi thực hiện, lệnh này copy một từ l6-bịt từ bộ nhớ vào thanh ghi BX "ơi vì mơi địa chỉ của 8086 đại điện cho mot byte, vay từ phải lấy từ ai ở nhớ Byte tai do léch 437A so với cơ sở đoạn dữ liệu sẽ được copy vào BL, nội dung của địa chỉ cao hơn tiếp theo, độ lệch 437B, sẽ được copy vào thanh gỉ BH như thí dụ trên hình 7.7 Dựa vào mã lệnh, 8086 sẽ tự động xác định số byle mà nổ phải truy cập trong bộ nhớ Một điểm quan trong ở đầy là 8086 luơn luơn lưu trữ byie thấp của từ trong địa chỉ thấp và byte cao iia tr trong dia chi ea

Hai thí đụ trên đây chỉ ra cách mà chế độ truy cập địa chỉ rực tiếp cĩ thể được dùng để xác định nguồn cũa tường tốn hạng Truy cập địa chỉ rực tiếp cũng được ding để xác định tốn hạng đích trong bộ nhớ, Ví đụ lệnh MOV

Trang 35

[H37AhJ BX sẽ copy nội dụng của thanh ghỉ BX vào ai ơ nhớ trong đoạn dữ liệu Nội dung của BL sẽ copy vào 6 nhé c6 độ lệch là 437Ah, nội dung thành, ghĩ BH sẽ copy vào 6 nhớ cĩ độ lệch 437B

7.5.4 Định địa chỉ thanh ghi (register addressing) = Trong chế độ nà trường địa chỉ của lệnh chứa số của thanh ghỉ lưu giữ tốn hạng (thanh ghỉ là tốn hạng nguồn của câu lệnh) Các máy tính được thiết kế chế độ địa chỉ này Vi 2 li do: các thanh ghí cĩ tốc độ tuy cập nhanh hơn bộ nhớ chính và do số lượng thanh ghỉ rất íL nên chỉ cần một í bít để đánh địa chỉ chúng

Thí dụ lệnh: — MOVCX.AX; copy nội đụng thanh ghỉ AX vào than ghi CX:

[Nh rằng vị trí đích là trước đấu phẩy trong cầu lệnh và vi trí nguồn là sau dấu phấy Và nội dang của AX chỉ copy vào CX chứ khơng phải đi chuyển thực sự Nổi cách khác, nội đung trước của thanh ghỉ CX bị viết đề lên nhưng nội dung AX khơng đổi Ví dụ, CX chứa 2A84 và AX chứa 4971 sau khi lệnh MOV CX AX thực hiện CX chứa 4791 và AX vẫn chứa 4971 Cĩ thể copy bất cứ nội dụng thanh ghỉ 16 bịt nào vào thanh ghỉ 16 bít khác và thanh ghỉ 8 vào thành ghỉ 8 bịt bất k Tuy nhiên khơng thể dùng lệnh MOV CX, AL bởi vì đây là cổ gắng copy thanh ghỉ nguồn & bit vio thanh ghi dich 16 bit

7.8.8 Dinh địa chỉ gián tiếp (indiect addreing): tong chế độ này trường, địa chỉ cho biết từ nhớ nào hoặc thanh ghỉ nào chứa địa chỉ của tốn hang “Trong nhĩm này cĩ các loại như sau

+ Định vị gián tiếp thank ghi (register indirect): Ide này EA nim 6 một "vong các thanh ghi BX, BP, Sĩ hoặc DĨ

Thídulệnh: — MOVAX[SI); —— chuyển nội dung của ư nhớ trong đoạn hiện tại cĩ dia chi offset là nội đụng của thanh ghỉ SĨ vào AX

® Dinh vj cor sd (based addressing) + EA là tổng của độ địch chuyển và nội ‘dung cia thank ghi BX hode BP

“Thí dụ lệnh : MOV [BX] + displacement, AL : chuyển nội dụng của thanh hi AL vao ơ nhớ cĩ địa chỉ offSeL bằng tổng cia ngi dung ĐX với độ dịch chuyển Thanh ghi doan 1a DS

7.5.6 Binh dia chi chi $6 (indexed addressing) : EA là tổng của độ địch chuyển và nội dung của thanh ghỉ ST hoặc DI

Lí do cổ chế độ này như sau Nhiều thuật tốn cần thực hiễn một thao tắc nào dé trên một chuỗi cấu trúc dữ liệu lưu giữ trong những vị trí nhớ liên tiếp, Thí dụ xét một khối gồm œ từ lệnh máy chiếm các vị bí A, A+l, A+2, LA+n_1 Các từ này cắn được đi chuyển đến các xị trí B, Bè, B2 Ren=l “Trong trường hợp này cĩ thể thực hiện lệnh MOV A B rồi thay đổi chính lệnh đồ thành MOV A+1, Bel va lap lại cho tới khi cả ơ từ được sao chép hết Bằng cách định địa chỉ gián tiếp cĩ thể thực hiện được điều này Một thanh ghỉ hoặc tử nhớ được nạp địa chỉ A, một thanh ghỉ hoặc từ nhớ khác nạp địa chỉ B Lệnh MOV đồng 2 thanh ghỉ này làm các con trổ và sau mồi lần sao chép một từ com trỏ được tăng lên I Các co trỗ à một phần của dữ iệu chứ khơng phải là phần ccủa chương tình và những người sử dụng khơng được đùng chung đĩng thời Một giải pháp khác là cĩ một số thanh ghi goi lt rhanh gi ch sể hoạt động như sau, Địa chỉ cĩ 2 phần : số của một thanh ghi chỉ sổ và một hằng số Địs “chỉ của tốn hạng là tổng của hằng số vối nội dung của thanh ghỉ chỉ số Trong thi du này, nếu cã hai địa chỉ được định chỉ số bằng cách dùng một thanh ghỉ

chỉ sỡ chứa sổ nguyên k lệnh MOV A., B sẽ chuyển nội dung vị tí nhớ A+k t 'Bek Bìng cách khởi động thanh ghỉ chỉ số à 0 và tăng nội đung thanh ghí n lên một lượng bằng kích thước của từ sau khi sao chép một từ, chỉ cắn một thanh ghi cho vịng lập sao chép Hơn nữa việc tăng thánh ghí sẽ nhanh bơn Việc tăng một vị trí nhớ

Việc đánh chỉ số được sử đụng rộng rãi để định địa chỉ mơt trường tại một “hoảng cách đã biết tính từ điểm đầu của một cấu trúc dữ liệu đã cho Các biến “ec bộ trong một thủ tục được truy cập theo cách này

Việc tăng hoặc giảm giá trị thanh ghị chỉ số trước hoặc sau khi nĩ được sử dạng là việc làm thường xuyên xảy ra Vì vậy người ta thường đưa ra các lệnh định địa chỉ đạc biệt hoặc thậm chí cĩ những thanh ghi chỉ số đặc biết mà tự chúng cĩ thể tâng hoặc giảm giá trị, Việc sửa đổi tự động một thanh ghí chỉ số được gọi là đánh chỉ sổ tự động (autoindexing)

“Thí đụ lệnh : MOV AL, [ST] + đisplacement ; chuyén noi dung ư nhớ chi offset bing tng cia di dung SĨ với độ cĩ địa dich chayéa vio thanh ghi AL,

Trang 36

Đây là kiểu định địa chỉ chỉ số cơ sở hố, EA là tổng của nội dung thanh hi co sở thanh ghỉ chỉ số và độ địch chuyển

7.8.7 Dinh địa chỉ ngan xép (stack addressing) : Ngan xếp gồm các phần tir da Tig (1, kit, bit, v.v ) duge laut theo mot tatty iên tiếp trong bộ nhớ Phần từ đầu tiên được cất vào ngăn xếp sẽ ở đáy ngăn xếp Phần tử mới nhất được cất vào sẽ ở đỉnh ngân xếp Kết hợp với mỗi ngăn xếp là một thanh ghỉ hoặc từ nhớ chứa địa chỉ của đình ngăn xếp được gọi là con trở ngân xếp, (stack poimer)

Hình 7.8 mình hoạ hoạt động ngăn xếp

“Trong hình 7.8a, đã cĩ 2 phần tử trong ngân xếp là 98 và 40 Day ngăn xếp: ở 3j trí nhồ 1000 và định ở ví tr 1001 Con trõ ngăn xếp chứa địa chỉ đỉnh ngân, xếp là 1001 Trong hình 7.8b, sổ 6 được cất vào ngân xếp và con trở ngăn xếp chứa số 1002 là đỉnh mới của ngân xếp Trong hình 7.8e số 75 được cất vào "ngàn xếp và trong hình 7.8đ số này được lấy ra khỏi ngân xếp Bihngemap tem [ S6 }= iyo to Sể - cont otto [157] a 3 » 3 Hình 78 ii động của ngăn xếp

May tính cĩ lênh PUSH cất các nội dung của ð nhớ hoặc thanh ghi vào, ngăn xếp Lệnh này phi thực hiện việc sao chép phần tử đổ và tăng con trổ ngân xếp Ngược lại, lệnh POP lấy nội đụng đỉnh ngăn xếp đưa trở lại thanh chi hoặc ở nhớ phải thực hiện sao chép mới vào nơi thích hợp và giảm con trỏ ngân xếp, Thídụlệnh: — PUSHAX; _- cất nội dung của thanh ghỉ AX vào ngân xếp POPAX; hi phuc gid tr thành ghỉ AX tt noi “dụng đình ngân xếp 232

Một số lệnh khơng địa chỉ cũng cĩ thể được sử dụng cùng với ngân xếp Dink dạng lênh này chỉ ra rằng 2 tốn hạng được lấy ra khỏi ngân Xếp, tốn Hạng này tiếp sau tốn hạng kỉa, phép tốn được thục hiện (thí dụ nhân hộc ND) và kết quả được cất tr lại ngân xếp

7.6 LUỒNG ĐIỀU KHIỂN

uống điều khiến cĩ liên quan đến trình tự thực thỉ các lệnh, Thường các lệnh được thực hiện lần lượt, được lấy từ các vị trí nhớ liên tiếp Các lệnh gọi thủ tục là nguyên nhân làm thay đổi luồng điều khiển vì nổ đững thủ tục đang thực hiện và nhảy vào một thủ tục khác Các bẫy và các ngất cũng lầm cho Muơng điều khiển thay đổi khi cĩ các điều kiện đạc biệt xây ra

7.6.1 Ludng điều khiển tuần tự và các lệnh nhãy

Đà số các lệnh khơng làm thay đổi luồng điều khiển Sau khi một lệnh được thực thí, nh tiếp theo trong bộ nhớ được tìm sạp và thực biện Sau mỗi một lệnh, nội dung thanh đếm chương trình được tăng lên bảng chiều đài tính ra byle của lệnh Sự tăng này gắn như tuyến tính theo thời gian Nếu chương trình chứa các lệnh nhảy, mối liên hệ đơn giản này giữa tặt tự trong đồ các lệnh xuất hiện rong bộ nhớ và trật tư trong đĩ các lệnh được thực hiện khơng cịn đúng nữa Kết quả là người lập trình khố hình dung tiến trình theo thời gian của chuỗi thực thí lệnh từ bảng đánh sách cđa chương trình Do vậy nhiều tác giả đã khuyến cáo người p tình nền tránh dùng các câu lệnh GOTO và đã khai sinh ra cuộc cách mạng cho phương pháp lập tình cĩ cầu trúc Một trong, những nguyên lí của phương pháp này Tà thay thế phát biểu OOTO bằng những ‘dang cĩ cấu trúc hơn của luồng điều khiển như vịng lập WHILE, REPEAT

UNTIL, vv

746.2 Thi we

Kĩ thuật quan tọng nhất đối với các chương tình cổ cấu trúc là th tực Lệnh gọi thú tục cũng làm thay đổi luồng điều khiển như lệnh nhảy nhưng hơi khác chút í Khi thực hiện xong cơng việc, thủ tục trả điều khiển rổ về cho lệnh theo sau lệnh goi

Tuy nhiên, với cách nhìn khác, phần thân của th tục cĩ thể được xem như

xác định một lệnh mới ở cấp cao bon, Từ quan điểm này, lệnh gọi th tục được Xem như một lênh duy nhất đù cho cĩ thể rất phức tạp Để hiểu phần mã chứa

Trang 37

lệnh gọi thủ tụe, điều quan trọng nhất cn biết là làm gi, khơng cần biết cách thực hiện

Một loi thủ tục đáng quan tâm là thủ tục để quy (recursive) Đĩ là một thủ tục gọi chính nĩ Việc nghiên cứu các thủ tục đệ quy nhằm hiểu rõ cách thực hiện lệnh gọi thủ tuc và các biến cục bộ thực sự là gì Để gọi các thủ tạc đệ quy cẩn một ngân xếp chứa các tham số Mỗi lần gọi một thủ tục, một khối bộ nhớ oi là khung ngăn xếp (staek Íramc) dành chỗ trong ngăn xếp cho các tham số,

địa chỉ trở vẻ và các biến cục bộ nếu cĩ Khung ngàn xếp được tạo ra gần nhất

]à khung ngàn xếp hiện hành Ngồi con trổ ngân xếp được đùng để trỏ tới đình, "gân xếp (địa chỉ thấp nhất), để thuận tiện nên cổ một cơn trỏ cơ sở cục bộ [ID (docal base poinfe) rộ tối một vị tí cố định trong khung

Một trong những đc tính quan trọng của bất kì máy tính nào là làm thế nào máy tạo ra phần mở đầu và phần kết thúc một cách nhanh và gọn Nếu cả hai phần này dài và chậm, việc gọi thủ tục sẽ tốn kém Những người lập trình, muốn đạt hiệu quả cao sẽ nghiên cứu để tránh viết nhiều thủ tục ngắn thay vào, 446 họ viết những chương trình lớn, đơn điêu và khơng cĩ cấu trúc Các lệnh ENTER và LEAVE của Intel được cung cấp để thực hiện hầu hết các cơng việc của phần mở đầu và kết thúc thủ tục một cách cổ hiệu quả

7.6.3 Ding thii tue

“Trong chuổi gọi các thủ tạc thịng thường cĩ sự phân biệt giữa thủ tục gọi và thủ tục được gọi Xét thủ tục A gi thủ tục B, nếu A gọi D nhiều lần thì B luơn luơn bắt đầu lại ở đầu thủ tục mỗi lần được gọi, tái lại A khơng bao giờ bất đầu lại từ đầu thủ tục Đĩ là tính khơng đối xứng này sinh từ thực tế Sự "khác nhau này được phần ánh tong cách mà điều khiến được chuyển giữn A và B Khi A goi B A dung lệnh gọi thủ tu, lệnh này đặt địa chỉ quay về (địa chỉ của lệnh sau lệnh gọi) vào nơi nào đổ thí dụ vào đình ngăn xếp, Sau đĩ lệnh này dat địa chỉ của l vào thanh đếm chương trình để hồn tất iệc gợi Khi B trở về, B khơng sử dụng lệnh gọi mà là lệnh quay vé, lệnh này đơn giản chỉ lấy địa chỉ trở về từ ngân xếp và đặt vào thanh đếm chương trình, Đơi khi ta cĩ 2 thi tye A và B hú tục này gọi thủ tục kia như là một thủ tục, Khi từ B trở về A, điều khiến nhảy tới lệnh theo sau lệnh gọi B Khi À chuyển điều khiển tối B, điểu khiển khơng đi tới câu lệnh đầu tiên của thủ tục (từ lần đấu tiên) mà đi tới lênh theo sau lệnh “trở vÉ" gần nhất, nghĩa là lần goi A gần đây nhất Hai thủ tục mà trong đồ thủ tục này xem thủ tục kia như là mơt thủ tục được gọi là các ding thĩ tục hay đồng thường trình (cetoutie)

2

Khơng cĩ lệnh gọi cũng như khơng cĩ lènh trở về thơng thường nào đành cho việc goi đồng th tục, bởi vi địa chỉ để nhãy tới từ ngăn xếp giống như sự trở về, nhưng khơng giống như lệnh trở về lệnh gọi đồng thủ tục tư đặt địa chỉ trở về vào một nơi nào đồ cho lần trở về sau Để thực thì đồng thủ tục cần phải số nhiều ngân xếp bởi vì mỗi đồng thỏ tuc cũng cĩ thể gọi các thủ tục theo cách thơng thường, ngồi việc tạo ra các lời gọi đồng thủ tục

T.6.4, Bấy

tBẫy (rap) là một loi lờt gọi thủ tục tự đong được khởi động bởi một điều kiện nào đĩ do chương trnh tạo ra, thường là điều kiện quan trọng nhưng hiểm, xây ra Trần (overflow) là một thí dụ Trên nhiều máy tính nếu kết quả của một phép tốn số học vượt quá số lớn nhất cĩ thể biểu diễn thì một bảy xuất hiện Nghĩa là luồng điều khiển được chuyển đến một vị trí cổ định nào đồ thay vì tiếp tục trình tự ố định đĩ cĩ một lệnh nhảy tới một thủ tục gọi là bọ điều khiến bẫy (trap handler), bộ này thực hiện một động tác thích hợp nào đĩ,

như in một thơng báo lỗi Nếu kết quả của phếp tốn nim trong phạm vi cho phép, bấy khơng xuất hiện

"Điểm cơ bản của bấy là bẫy được khỏi động bởi một điều kiện ngoại lệ nào đồ gây ra bài chính chương trình và được phần cứng hoặc vi chương trình phát

hiện Bây cũng được thực hiện nhờ vào việc kiểm ưa bởi trình thơng dịch ở cấp `i chương trình thực hiện việc kiểm tra thì tiết kiệm được thời gian hơn so với kiểm tra của người lập trình đồng thời cũng tiết kiệm được bộ nhớ

Một số điều kiện gây rà bẫy là trần trên số dầu chấm động, trần đưới đấu chấm động, vi phạm sự bảo vệ, mã tốn khơng xác định, tràn ngân xếp, khởi động một thiết bị khơng tổn ti, tìm nạp một từ ở địa chỉ lẻ và chỉa cho eo

7.6.5 Ngất

Ngất (inlenupl) là những thay đổi ong luồng điều khiển gây ra khơng phải do chương trình đang được thực thi mà do bởi một tác động khác thường, liên quan tối vào ra Giống như bẫy, ngất cũng làm ngừng chương trình đang được thục thì và chuyển điều khiến tới bộ điều khiển ngất để thực hiện một số động tác thích hợp Khi hồn ti, bộ điều khiển ngất trả điều khiển cho chương, trình bị ngất Chương trình này phải khởi dộng lại quá trình bị ngất một cách chính xác ở trang thai giống như trước kh xây rà ngất nghĩa là khơi phục lại tất cả nội dung các thanh ghỉ về trạng thái tước khi xây rà ngất,

Trang 38

“Sự khác nhau cơ bản giữa bấy và ngất là các bẫy đồng bộ với chương trình cịn ngất thì khơng Nếu chương trình chay lại với cùng một đữ liệu vào thì bẫy sẽ lại xấy ra ở cùng một nơi cho mỗi lấn chạy Nhưng ngất lại khác, thí dụ tuỳ thuộc chính xác vào thời điểm mà một người nhấn phím CR trên bàn phím Nguyên nhân đối với việc ái two lai bly va khơng tá tạo lại ngất là bấy được gây ra trực tiếp bởi chương trình cịn ngất được gây ra gián tiếp bởi chương trình

“Cĩ 3 nguền gây ngất trong máy tính

“gắt cứng (hardware imestupt) xây ma do cĩ tín hiệu yêu cầu ngất đưa vào, một trong các chân ngất của bộ xử lí Nếu chân đồ là NMI (non~maskable interrup) thì đây là ngất khơng che được đùng trong các tường hợp báo lỗi hệ thống nghiêm trong Néu chan dé ta INTR (interrupt request thi đây là ngất cĩ thể che được đo ngất này cĩ thể bị vơ hiệu hố bằng lệnh máy xố cờ mgat CLI

Nguồn ngắt thứ ba à đo chương tình gập ác câu lệnh gọi ngất TNT trong cấp mấy thơng thường Các ngất loại này được gọi là ngất mớm (software interrupt

Nguồn ngất thứ ba là các lỗi phát sinh trong qué trình thực hiện cầu lệnh, thí đụ cố tình chia một số cho 0, bộ xử lí sẽ tự động ngất chương trình đang, chạy bằng ngất sổ 0 Các ngất xây ra ngay tong bộ xử lí loại này được gọi là ngoại lệ (exception)

Khi một thiết bị vào/ra phát rà một yêu cầu ngất, bộ xử lí đồng vectơ ngất để định chỉ số trong một bảng 256 điểm vào, gọi là bảng vectơ ngất, để tìm địa chỉ của thường trình phục vụ ngất Thí dụ trên vỉ xử lí 8086 của Intel, bảng, vvectơ ngất bắt đầu ở địa chỉ tuyệt đối 0, mỗi điểm vào cĩ 4 byte rên các vi xử 1 80286 và 386 các vectơ ngất là các bộ mổ tổ đoạn đài § byte và cĩ thể bắt đầu ở một địa chỉ bất kìtrong bộ nhớ Một thanh ghỉ tồn cục cố nhiệm vụ trổ tới điểm bắt đầu của bằng các bộ mơ tả này

© CAU HOI VA BAI TAP

7.1 Tinh dia chi vat Ii từ các địa chỉ lưgic sau trong máy tính đồng bộ xử 3086

4370: S6LE 7A32 : 0028

236

7.2 Uudiém cia vie ding than ghi trong thời so với dùng bộ nhớ là gì bo xử lí để lưu trữ các đổ liệu lạm 7.3 Néu thanh ghi doan ngin xếp chứa số 3000h và thanh ghỉ con trỏ ngăn

xếp chứa số 8434h thì địa chỉ vật í của đỉnh ngân xếp là bao nhiêu ? “:4 Nếu thanh ghỉ đoạn số liệu DS chứa số 4000h, thì lệnh MOV AL, [234B]

Vậtlí ào 7

sẽ đọc địa Í

“:5 Nêu thanh gỉ đoạn số liệu của 8086 chứa số 7000, viết một lênh copy tội dụng của thanh ghỉ DU tới địa chỉ 74B2Ch

7.6 Mơ tả sự khác nhau giữa các lệnh MOV AX, 2437h và MOV AX, Ia437h] 2⁄7 Viết mã nhị phân (hay mã cơ số 16) của các lệnh sau, một thủ tục cổ địa chỉ cao hơn địa chỉ của lệnh sau lệnh gọi là 97h

— Trở về chương trình c† xếp lên 4 từ một thủ tục gi xa Và tầng con trổ ngăn ⁄8 Viết các lệnh máy trong 8086 trên cơ sở ác từ gợi nhớ thực hiện các hoạt động sau + Copy AL tới BL — Nặp số 4âh vào CL — Tang noi dung CX lên 1 ~ Copy SP tới BP ~ Cơng số 07h vào DL = Nhan AL hin BL, ~ Copy AX tới một vùng nhớ cĩ độ lệch là 24SAh trong thanh ghi đoạn x6liệu ~ Giảm SP di ~ Quay bít nhiều ý nghĩa nhất của AL vào vị trí của bÌtt ý nghĩa n ~ Ccpy DI tới nhớ mà độ lệch của nổ là nội đung của thanh gỉ BX, ~ Che 4 bít thấp của thanh ghỉ BÚ,

Trang 39

19

— Đạt bịt nhiều ý nghĩa nhất của AX lên 1, nhưng khơng ảnh hưởng đến các bịt cồn lại — Đảo 4 b thấp của B nhưng khơng ảnh hướng đến các bït cịn lại Viel các mã nhị phân của các lệnh B086 sau ~MOVBL,AL — =RORAX.L ~MOV[BXỊ.CX ~ADDBX.59h[DI] ~ SUB (2048), DH ~XCHGCH,ES:IBX] ~OUTDX.AI -ANDAL.0Eh oP ~INAL,DX 7-16 Phân biệt giữa bẫy và ngất Chương 8 CAP MAY HE DIEU HANH .9 GIỚI THIEU

"Hệ điều hành cĩ thd được xem là một quá trinh thơng dịch ớt các đặc tính cĩ cấu trúc khơng tìm thấy trong cấp mủy thơng thưởng Các đặc tính này biểu hiện ở cúc Lộ nhớ ỏo, cĩc lệnh vio a ng bit vỗ cĩc iện ich cho me hing I song song, Bộ nhớ đo là một mơ hình cỏ cẩu trúc cho pháp chương trình sử dụng nhiều khơng gion dia chi hom so uới bộ nhớ gặt lí của mấy hoặc cung cấp một cơ chế" ‘bo uệ bộ nhớ linh động tổ tích hợp Cĩ thể thực hiện bộ nhớ do bằng kĩ thuật chân đoọn để cĩ các địa chỉ tuyển tính chính là đ chỉ ật lí hoặc kĩ thuật phân trang cho phép biến các địa chỉ tuyến tính đĩ thành các địa chỉ ột í nằm trong các trang nhớ cĩ kích thước cổ định

"Hiện thực 60 quan trọng trong cốp mĩy hệ điều hành lị quá trình uào ro các tập tin, Tại đầy chúng được coi là một chuỗi cĩc bản ghỉ lðgte cĩ thể ghi đọc được mà khơng edn biết đến cách mà các bộ nhớ tơ thiết bị làm việc ra soo Các tập tin cĩ thể được truy xuất tuẩn tự, ngẫu nhiên bằng số của bản ghí hoặc ngẫu

nhiên bằng khố Các thư mục cĩ thể được dùng để nhĩm các tập tin tới nhau “Xổ lí song song được hiện diện ở cấp máy hệ điều hành bằng cách mơ phống

nhiều bộ xử lí áo nhờ ào iệc đùng chung 1 bộ xử lí thực Các tác động quo lạ khơng điều khiển được giữa các quá trình cĩ thể dẫn đến các điều kiện tranh duc cần cĩ các biện pháp khắc phục

'© CÁC TỪ KHỐ

“Tiếng Việt hộ điều hành, lệnh tắm thường, lệnh OSML, bộ nhớ vật bộ nhới ảo, vùng nhớ phủ, đơn ui quỗn Ì bộ nhố, hệ điều hành đa nhiệm, khơng giàn nhớ

Trang 40

tồn cúc, khơng gian nhớ cục bơ, mức đặc quyền, đoạn nhớ, bảng các bộ mơ tÄ tồn cục GDT, bằng các bộ mơ tả cục bộ LT, bảng các bộ mồ tŠ ngất IDT, bội chọn cửa gio dich, trang nbd, thi mục trang, bằng các trang, khung trang bộ đệm chuyển hố rơng TL, tập in tuần tự tập tin truy xuất ngẫu nhiên, đều kiện tranh đụa

Tiếng Anh : operating system, ordinary instruction, operating system machine Isoguage physical memory, virtual memory, overlay, memory management unit ‘multitask operating systom globle memory space local memory space, privoge level, memory segment, globle descriptor table, local descriptor table, interrupt descriptor table, selector, call gat, page page directory, page table, page frame translation lookaside buffer TL, serial accessed fle, random accessed fie, race condition,

8.1 PHAN BIET CAP MAY HE DIEU HANH

“Trong ce may tinh ding vi chương trình, một số lệnh ở cấp máy thơng thường khơng được thị hành một cách trực tiếp bằng phần cứng Thí dụ như các lệnh gọi thủ tục, lệnh nhăn và lệnh lập Tại đây chúng được tìm nạp từ bộ phố, được kiểm tra và thị hành như một đầy liên tiếp các bước nhỏ bằng vi chương, trình Cũng nh mot tinh thong địch chạy trên cấp 1 cấp vỉ chương trình cổ thể thơng địch các chương trình viết bằng ngơn ngữ máy cấp 2, cấp máy thơng, thường, một trình thơng dịch chạy trên mấy cấp 2 này cổ thể thơng dịch các chương trình viết bằng ngơn ngữ máy cấp 3 Trình thơng dịch chạy trên máy cấp 2 hỗ trợ cho mây cấp 3 này được gọi là hệ điều lonl và cấp 3 gọi là cấp máy hệ điều hành Trong ịch sử cấp máy hệ điều hành được phát triển dần dân tách ra khỏi cấp máy thơng thường Do vậy hấu hết các lệnh của cấp này cũng cĩ ở cấp máy thơng thường Ta sẽ gọi các lệnh này là các lệní cấp 3 “tẩm tường” (erdinary) do bối chúng bao gồm các thao tắc bình thưởng như các phếp tốn số học, lơạïc, các phếp địch bit v.v Các lệnh cịn lại là các lểmh ngơn nạữ máy hệ diễu hank OSML (operating system machine language) do chúng chỉ biên diên trong cấp my hè điều hành

‘Ve nguyên tác cổ thể để hệ điều hành thơng dịch tất cả các lệnh của cấp 3 nhưng điều này khơng hiệu quá bing việc để các lệnh tấm thường được địch trực tiếp bởi các vi chương trình Lúc này vi chương trình lấy các lệnh rực tiếp tử chương trình người sử đụng và thực thỉ chúng Khi gặp các lệnh OSML, vi chương trình sẽ ngững thơng dich chuong trinh và bắt đầu thơng dịch bằng hệ 240

điều hành Hệ điều hành sau đĩ khảo sát lệnh OSMI trong chương trình người sử đụng và thực thị lệnh này Khi lệnh OSML được thực tị, hệ điều hình thực thỉ một lệnh nào đĩ làm cho vỉ chương trình tiế tục ấy và thực thị các lệnh của chương trình người sử dụng Dĩ nhiên nếu lệnh kế tiếp của chương trình người sử dụng cũng à nh OSML thì hệ điều hành sẽ được khởi động ần nữ

“Thực chất phương pháp thực thi các chương tình ở cấp máy hệ điều hành này là một phần hời gian máy tính cĩ chức năng của một máy cấp 3 và một phấn thời gian cĩ chức năng của mấy cấp 2 Trong lúc thì hình lệnh OSML s& c6 3 chương trình đang chạy, mơi chương rình chạy rên một máy ảo vối các trạng thái riêng của chúng, kế cả bộ đếm chương trình riêng Một cách khái quất, bộ đếm chương tình của cấp 3 tr tới lệnh OSML, bộ đếm chương trình cấp 2 rơ tới lệnh của hệ điều hành đang được thực th và bộ đếm chương trình cấp cho biết phẩn cứng thực sự mà vi lệnh được thực tị

Đa sổ các máy tính lớn đều cĩ hệ điều hành là các hệ thing da lap wink (muluiprogramming system), nghia 1a thay vì chỉ hỗ rợ cho một máy áo cấp 3 hệ điều hành hỗ trợ cho vài máy ảo cấp 3 chạy song song Nếu mỗi máy ảo nối với một thiết bị đấu cuối từ xa a cĩ một hệ thống chia xé thai gian ((ime~sbared system) Nếu khơng cổ các thiết bị đầu cuối từ xa, ta cĩ một hệ thống da lập trình nhĩm (batch) Với đạng hồn hợp, một số máy ảo đang được sử dụng trực tuyến, một số máy khác thì khơng Phần chủ yếu của hệ điều hành liên quan đến việc quản í tất cả các máy ảo hơn là thơng địch các lệnh OSML

Xhảo sắt sơ bộ hệ điều hành thường liên quan đến 3 chủ để chính : Bộ nhớ ito (virtual memory) là một kĩ thuật được cung cấp bởi hệ điều hành làm cho máy cĩ nhiều bộ nhớ hơn là máy thực sự cĩ văn để xuâi / nhập tập tin : đây là một kĩ thuật cao hơn các lệnh vào ra và cuối cùng là vấn để xử lí song song tại cấp máy hệ điều hành,

8.2 BỘ NHỚ VẬT LÍ VÀ BỘ NHỚ ẢO

Khong gian bộ nhớ vật í phụ thuộc vào số đường đây địa chỉ của bộ xử

thí dụ với 8086 cĩ độ rộng bus địa chỉ là 20 bịt là 2?” byte = IMbyte, với

Ngày đăng: 14/10/2023, 13:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w