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.. • 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
Trang 1QUI TRÌNH THỰC HIỆN LỆNH QUI TRÌNH THỰC HIỆN LỆNH
Trang 4• 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)
Trang 6Các chuyển thanh ghi cho pha tìm
Trang 7CHU KỲ LỆNH (tt)
T 0 : 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
T 1 : 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
Trang 8CHU 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ớ
Trang 10CHU 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ớ
Trang 11CHU 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]
Trang 12CHU 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
Trang 13CHU 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 T = 1
Trang 14CHU 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
Trang 15LỆ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:
Trang 16LỆNH THANH GHI (tt)
Lệnh tham chiếu thanh ghi
Trang 17• 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)
Trang 18LỆNH BỘ NHỚ
Lệnh tham chiếu bộ nhớ
Trang 19AND (Vào AC)
• Thực hiện tác vụ AND trên các cặp bit trong AC
Trang 20ADD (Vào AC)
Trang 21LDA (Nạp vào AC)
• Chuyển từ nhớ vào AC
Trang 22STA (Lưu AC)
• Chuyển nội dung AC vào từ nhớ
• Vi tác vụ
D 3 T 4 : M[AR] AC, SC 0
Trang 23BUN (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ụ:
Trang 24BSA (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ụ:
Trang 25BSA (tt)
Trang 26BSA (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)
Trang 27• Chu kỳ lệnh kế tiếp tìm PC với trị 21 nên điều
Trang 28ISZ (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
Trang 30ISZ (tt)
Lưu đồ tham chiếu bộ nhớ
Trang 32CẤ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
Trang 33CẤU HÌNH NHẬP XUẤT (tt)
Trang 34CẤ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
Trang 35CẤ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
Trang 37CẤ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ự
Trang 38LỆ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
Trang 39• 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ả
Trang 40NGẮT (tt)
• Ví dụ máy có thể qua một chu kỳ lệnh trong 1s
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 đó
Trang 41NGẮ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à
Trang 42• 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
Trang 43NGẮ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
Trang 44NGẮ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
Trang 45NGẮ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