Bài giảng môn Cấu trúc máy tính - Qui trình thực hiện lệnh

Chương trình trong bộ nhớ gồm một dãy mã lệnh. Mỗi mã lệnh được thực hiện qua một chu kỳ lệnh. Một chu kỳ lệnh bao gồm một dãy tiểu chu kỳ hoặc pha. Trong máy cơ bản mỗi chu kỳ gồm các pha sau:

ppt44 trang | Chia sẻ: lylyngoc | Lượt xem: 1713 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng môn Cấu trúc máy tính - Qui trình thực hiện lệnh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
QUI TRÌNH THỰC HIỆN LỆNH CHU KỲ LỆNH Chương trình trong bộ nhớ gồm một dãy mã lệnh. Mỗi mã lệnh được thực hiện qua một chu kỳ lệnh. Một chu kỳ lệnh bao gồm một dãy tiểu chu kỳ hoặc pha. Trong máy cơ bản mỗi chu kỳ gồm các pha sau: CHU KỲ LỆNH (tt) Tìm lệnh. Giải mã lệnh. Đọc địa chỉ hiệu dụng từ bộ nhớ nếu lệnh có địa chỉ gián tiếp. Thực hiện lệnh. Khi hoàn tất bước 4, điều khiển trở về bước 1 để tìm, giải mã và thực hiện lệnh kế. Qui trình này lặp mãi cho đến khi thực hiện lệnh dừng. Tìm và giải mã: - Khởi đầu, PC được nạp địa chỉ đầu tiên của chương trình. - SC xóa 0, tạo thời hiệu T0. - Sau mỗi xung đồng hồ, SC tăng 1 nên các thời hiệu sẽ là T0, T1, T2… - Các vi tác vụ cho các pha tìm và giải mã được xác định qua các vi lệnh sau: CHU KỲ LỆNH (tt) CHU KỲ LỆNH (tt) T0 : AR  PC T1 : IR  M[AR], PC  PC + 1 T2 : D0,…,D7  Giải mã IR (12-14) AR  IR (0-11), I  IR(15) Các chuyển thanh ghi cho pha tìm CHU KỲ LỆNH (tt) T0 : AR  PC thực hiện như sau: (1) Cho ngõ nhập chọn S2S1S0 = 010 để đặt PC lên bus. (2) Cho lên LD của AR để lấy bus đưa vào AR. T1: IR  M[AR] , PC  PC + 1 thực hiện như sau: (1) Lên ngõ nhập Read của bộ nhớ. (2) Cho S2S1S0 = 111 để đặt bộ nhớ lên bus. (3) Lên LD của IR để lấy bus vào IR. (4) Lên INR của PC để tăng PC CHU KỲ LỆNH (tt) Xác định kiểu lệnh. Sau khi giải mã, thời hiệu hoạt động là T3. Trong T3 , đơn vị điều khiển xác định loại lệnh vừa đọc từ bộ nhớ. Lưu đồ chu kỳ lệnh CHU KỲ LỆNH (tt) Lưu đồ trên cho thấy hoạt động của chu kỳ lệnh và cách điều khiển xác định loại lệnh khi giải mã. Ngõ ra mạch D7 = 1 nếu mã tác vụ là 111. Lệnh thuộc loại ghi hoặc nhập xuất. Ngõ ra mạch giải mã D7 = 0 nếu mã tác vụ là 000-110. Lệnh thuộc loại bộ nhớ. CHU KỲ LỆNH (tt) Kế tiếp, điều khiển kiểm bit đầu tiên của lệnh qua mạch lật I, Nếu D7 = 0 và I = 1, ta có lệnh bộ nhớ với lệnh gián tiếp. Khi đó cần đọc địa chỉ hiệu dụng từ bộ nhớ. Vi lệnh cho điều kiện địa chỉ gián tiếp là: AR  M[AR] CHU KỲ LỆNH (tt) Khởi đầu AR lưu phần địa chỉ của lệnh. Tác vụ đọc bộ sử dụng địa chỉ này. Từ đọc đưa lên bus. Cho lên LD của AR để nhận địa chỉ gián tiếp (12 bit thấp) từ bus. Ba loại lệnh có thể xác định qua: D7’ IT3: AR  M[AR] D7’ I’T3: Không làm gì D7 I’T3: thực hiện lệnh thanh ghi D7 IT3: thực hiện lệnh nhập xuất CHU KỲ LỆNH (tt) Khi thực hiện lệnh bộ nhớ với I = 0, không làm gì vì địa chỉ hiệu đã có trong AR. Tuy nhiên SC phải tăng khi D7’T3 = 1 để thực hiện lệnh bộ nhớ (tại T4). Lệnh thanh ghi hoặc nhập xuất có thể thực hiện tại T3 . Sau khi thực hiện lệnh, SC về 0 và điều khiển trở lại pha tìm với T0 = 1. CHU KỲ LỆNH (tt) Lưu ý: - SC tăng hoặc xóa 0 tại mỗi chuyển tiếp đồng hồ dương. - Chúng ta quy ước không viết SC  SC + 1 khi SC tăng nhưng điều khiển vẫn đi qua thời hiệu kế tiếp và viết SC  0 khi xóa SC. LỆNH THANH GHI Khi D7 = 1, I = 0, lệnh thuộc loại thanh ghi. Bit 0-11 trong mã lệnh xác định 1 trong 12 lệnh thanh ghi. Các hàm điều khiển và vi tác vụ trong bảng sau: LỆNH THANH GHI (tt) Lệnh tham chiếu thanh ghi LỆNH BỘ NHỚ Bảng sau liệt kê 7 lệnh bộ nhớ tương ứng với các ngõ ra giải mã Di(I = 0, 1, 2, 3, 4, 5, 6) Địa chỉ hiệu dụng đặt vào AR trong T2 khi I = 0, trong T3 khi I = 1 Thực hiện lệnh bộ nhớ bắt đầu với thời hiệu T4 Việc thực hiện lệnh cần nhiều vi tác vụ vì không thể xử lý trực tiếp dữ liệu trong bộ nhớ (phải đưa dữ liệu vào thanh ghi) LỆNH BỘ NHỚ Lệnh tham chiếu bộ nhớ AND (Vào AC) Thực hiện tác vụ AND trên các cặp bit trong AC và từ nhớ. Kết quả chứa trong AC. Vi tác vụ: D0T4: DR  M[AR] D0T5: AC  AC DR, SC  0 ADD (Vào AC) Cộng từ nhớ vào AC. Tổng chứa trong AC, bit nhớ Cout vào mạch lật E. Vi tác vụ: D2T4: DR  M[AR] D1T5: AC  AC + DR, E  Cout , SC  0 LDA (Nạp vào AC) Chuyển từ nhớ vào AC. Vi tác vụ: D2T4: DR  M[AR] D2T5: AC  DR, SC  0 Không có đường nối từ bus vào ngõ nhập AC nên phải đọc và DR rồi đưa vào AC. Vì chuyển từ bộ nhớ, qua bus vào mạch cộng và luận lý rồi vào AC sẽ dài hơn 1 chu kỳ (từ DR vào AC chỉ mất 1 chu kỳ) STA (Lưu AC) Chuyển nội dung AC vào từ nhớ. Vi tác vụ D3T4: M[AR]  AC, SC  0 BUN (rẽ không điều kiện) Chuyển chương trình sang lệnh xác định theo địa chỉ hiệu dụng. PC lưu địa chỉ lệnh đọc từ bộ nhớ trong chu kỳ lệnh kế. Thường thì PC tăng 1 tại T1 chuẩn bị cho địa chỉ lệnh kế tiếp. BUN cho phép thay đổi thứ tự thực hiện lệnh gọi là rẽ (hoặc nhảy) không điều kiện. Vi tác vụ: D4T4: PC  AR , SC  0 BSA (rẽ và lưu địa chỉ quay về) Dùng để rẽ đến một phần chương trình gọi là trình con hoặc thủ tục. BSA lưu địa chỉ lệnh kế (đang nằm trong PC) vào vùng nhớ định bởi địa chỉ hiệu dụng, sau đó cộng 1 vào địa chỉ hiệu dụng dùng làm địa chỉ trình con. Vi tác vụ: D5T4: M[AR]  PC , AR  AR + 1 D5T4: PC  AR , SC  0 BSA (tt) (a) Memory, PC, and AR at time T4 (b) Memory and PC, after execution BSA (tt) Hình trên là ví dụ cách dùng địa chỉ BSA. Giả định BSA nằm tại địa chỉ 20. Bit I là 0 và phần địa chỉ của lệnh là 135. Sau pha tìm và giải mã, PC = 21 là địa chỉ lệnh kế (địa chỉ quay về) AR giữ địa chỉ hiệu dụng 135 (hình a) BSA thực hiện các tác vụ sau: M[135]  21, PC  135 + 1 Kết quả thể hiện ở (hình b) BSA (tt) Địa chỉ quay về 21 lưu lại địa chỉ 135 và điều khiển tiếp tục với trình con tại địa chỉ 136. Việc quay về trình gốc (tại địa chỉ 21) thực hiện qua lệnh BUN gián tiếp ở cuối trình con. Khi thực hiện, điều khiển đến pha gián tiếp đọc địa chỉ hiệu dụng tại vị trí 135, tại đó tìm ra địa chỉ đã lưu 21. Chu kỳ lệnh kế tiếp tìm PC với trị 21 nên điều khiển tiếp tục thực hiện lệnh tại địa chỉ quay về. ISZ (tăng và nhảy nếu bằng 0) Tăng từ xác định bởi địa chỉ hiệu dụng, nếu trị tăng bằng 0, PC tăng lên 1. Người ta thường lưu 1 số âm (bù 2) vào từ nhớ. Số này tăng dần về 0, khi đó PC tăng lên 1 để nhảy đến lệnh kế. Vì không thể tăng từ trong bộ nhớ nên phải đọc vào DR, tăng DR rồi lưu ngược lại. ISZ (tt) Dãy vi tác vụ: D6T4: DR  M[AR] D6T5: DR  DR + 1 D6T6: M[AR]  DR, If (DR = 0) then (PC  PC + 1), SC  0 Hình sau là lưu đồ vi tác vụ của 7 lệnh bộ nhớ. Vi tác vụ thực hiện tại T4, T4, T5, T6. Như vậy chỉ cần mạch đếm tuần tự 3 bit để tạo T0 đến T7 là đủ. ISZ (tt) Lưu đồ tham chiếu bộ nhớ LỆNH NHẬP XUẤT Lệnh và dữ liệu trong bộ nhớ phải xuất phát từ một thiết bị nhập nào đó. Kết quả tính toán phải chuyển cho người dùng qua thiết bị xuất nào đó. Máy tính thường dùng nhiều loại thiết bị nhập xuất. Để minh họa ta dùng một trạm cuối gồm bàn phím và máy in. CẤU HÌNH NHẬP XUẤT Trạm cuối gởi và nhận tuần tự thông tin. Mỗi lượng thông tin gồm 8 bit của một ký tự. Dãy thông từ bàn phím được dịch vào thanh ghi nhập INPR. Dãy thông tin cho máy được lưu trong thanh ghi xuất OUTR. Hai thanh ghi này liên lạc tuần tự với một giao tiếp truyền thông và song song với AC. CẤU HÌNH NHẬP XUẤT (tt) Cấu hình nhập xuất CẤU HÌNH NHẬP XUẤT (tt) Hình trên là một cấu hình nhập xuất. Giao tiếp truyền nhận dãy thông tin từ bàn phím và truyền cho INPR. Giao tiếp nhận thông tin từ OUTR và lần lượt gởi cho máy in. Cờ nhập 1bit FGL là mạch lật điều khiển. - Bằng 1 khi thông tin sẵn sàng trong thiết bị nhập. - Bằng 0 khi máy nhận thông tin. CẤU HÌNH NHẬP XUẤT (tt) Cờ dùng để đồng bộ sự khác nhau về tốc độ giữa thiết bị nhập và máy. Qui trình chuyển thông tin như sau: - Khởi đầu FGI bị xóa. - Khi nhấn phím, mã ký tự 8 bit được dịch vào INPR và FGI lên 1. - Khi nào cờ còn là 1, INPR không thể thay đổi bằng cách nhấn phím. CẤU HÌNH NHẬP XUẤT (tt) Máy kiểm cờ FGI, nếu là 1, INPR được chuyển song song vào AC và xóa cờ. Khi đã xóa cờ, thông tin mới có thể dịch vào INPR bằng cách nhấn phím khác. Thanh ghi xuất OUTR hoạt động tương tự nhưng ngược lại. CẤU HÌNH NHẬP XUẤT (tt) - Khởi đầu FGO lên 1. - Máy kiểm bit cờ, nếu là 1, thông tin được chuyển song song từ AC vào OUTR và FGO bị xóa 0. - Thiết bị xuất nhận thông tin mã hóa, in ký tự tương ứng, khi thực hiện xong, đặt cờ lên 1. - Máy không nạp ký tự mới vào OUTR khi OUTR = 0 vì lúc này thiết bị xuất đang in ký tự. LỆNH NHẬP XUẤT Lệnh nhập xuất dùng chuyển thông tin vào ra AC, kiểm các bit cờ và điều khiển ngắt. Lệnh nhập xuất có mã tác vụ là 1111 và được nhận diện khi D7 = 1 và I = 1. NGẮT Qui trình truyền thông vừa nói ở trên được điều khiển qua chương trình. Máy tính duy trì việc kiểm tra bit cờ, khi có trị đặt thì khởi phát việc truyền thông. Sự khác biệt về tốc độ luồng thông tin giữa máy tính và thiết bị nhập-xuất làm cho cách truyền thông này không hiệu quả. NGẮT (tt) Ví dụ máy có thể qua một chu kỳ lệnh trong 1s và thiết bị xuất có thể truyền tối đa 10 ký tự trong 1s tức 1 ký tự trong 100.000 s. Hai lệnh được thực hiện khi máy kiểm tra bit cờ và quyết định không truyền. Như vậy máy sẽ kiểm cờ 50.000 lần giữa mỗi cuộc truyền. Như vậy sẽ lãng phí vì có thể làm nhiều việc khác trong khoảng thời gian đó. NGẮT (tt) Một cách giải quyết là để thiết bị báo cho máy khi sẵn sàng truyền. Trong lúc đó máy có thể đang bận việc khác. Loại này sử dụng tính năng ngắt. Khi máy đang chạy chương trình sẽ không kiểm cờ. Khi cờ bật, máy tạm thời bị ngắt và được báo là cờ bật. Máy tạm thời ngừng việc đang làm và đi giúp việc nhập xuất. Sau đó trở về tiếp tục chương trình đang thực hiện. NGẮT (tt) Mạch lật ngắt IEN có thể đặt hoặc xóa bằng 2 lệnh. Khi IEN xóa (bằng lệnh IOF), các cờ không thể ngắt máy. Khi IEN bật (bằng lệnh ION), máy có thể ngắt. Hai lệnh này có thể cho phép người dùng quyết định có dùng tính năng ngắt hay không. NGẮT (tt) R là một mạch lật ngắt trong máy. Khi R = 0, máy qua chu kỳ lệnh. Trong pha thực hiện của chu kỳ lệnh, điều khiển kiểm IEN, nếu là 0 tức người dùng không dùng ngắt, điều khiển tiếp tục chu kỳ lệnh kế. Nếu IEN =1, điều khiển kiểm các cờ, nếu cả 2 là 0 tức cả hai thanh ghi nhập/xuất chưa sẵn sàng chuyển thông tin. NGẮT (tt) Nếu một trong hai là 1, R bật lên 1. Tại cuối pha thực hiện, điều khiển kiểm R, nếu là 1 nó qua chu kỳ ngắt thay vì chu kỳ lệnh. Chu kỳ ngắt là một cài đặt cứng tác vụ rẽ nhánh và lưu địa chỉ quay về. Địa chỉ quay về có trong PC được lưu trong một vị trí đặc biệt giúp chương trình quay về lệnh bị ngắt. NGẮT (tt) Vị trí này có thể là thanh ghi xử lý, ngăn xếp hoặc 1 vị trí nhớ đặc biệt. Ở đây ta chọn địa chỉ 0 để lưu địa chỉ quay về. Sau đó điều khiển đưa địa chỉ 1 vào PC và xóa IEN và R để không có ngắt khác xảy ra khi đang xử lý ngắt.
Tài liệu liên quan