VÝ dô, víi thiÕt bÞ vµo nh bé phËn ®o nhiÖt ®é sè l¾p s½n trong mét hÖ thèng ®iÒu khiÓn lóc nµo còng cã thÓ cung cÊp sè ®o vÒ nhiÖt ®é cña ®èi tîng cÇn ®iÒu chØnh, hay thiÕt bÞ ra nh bé [r]
(1)Chơng VI kiến trúc Bộ nhớ máy vi tÝnh I C¸c kh¸i niƯm chung
Một hoạt động máy tính lu trữ liệu dạng nhị phân Các liệu chơng trình số liệu mà Vi xử lý đa đọc vào tuỳ theo yêu cầu Bộ nhớ thiết bị để thực nhiệm vụ lu trữ liệu máy vi tính
Mỗi ô nhớ đợc xác định địa Thơng thờng nhớ có dung l-ợng byte Các byte đợc ghép thành từ Những máy 16 bit số liệu tổ chức byte/từ, cịn máy 32 bit số liệu độ dài từ gấp đơi (4 byte/từ)
I.1 TrËt tù c¸c byte tõ.
Có thể từ phải sang trái (vi xử lý họ Intel) ngợc lại từ trái sang phải (vi xử lý họ Motorola) Trờng hợp liệu lu giữ số nguyên hai cách xếp khơng có trở ngại Nhng liệu bao gồm số nguyên xâu ký tự có vấn đề
Xâu kết thúc byte cuối để điền kín chỗ trống từ, cịn số ngun đợc thêm vào byte phần có trọng số cao Do dịch cách xếp sang cách xâu giống nh số nguyên bị nhầm
I.2 MÃ phát lỗi sửa sai.
Số vị trí bit khác hai từ gọi khoảng cách Hamming Ví dụ,
trong hai từ: 10001001 10110001 có khoảng cách Hammming
3
Để sửa sai, bên cạnh m số bit số liệu từ, ngời ta thêm vào r bit d
(redundant bits) vµ chiỊu dµi tỉng cđa tõ lµ n : n = m + r
Để phát d bit lỗi đơn, cần dùng mã có khoảng cách d+1 Tơng tự, để sửa lỗi d bit đơn, cần dùng mã có khoảng cách 2d+1 Ví dụ, dùng mã bit parity thêm vào byte số liệu, mã có khoảng cách 2, dùng để phát bit sai, nh ng không sửa đợc lỗi
Trong truyền khối ký tự, ký tự có bit parity để kiểm tra cuối khối, ta truyền thêm ký tự parity toàn thể tin, gọi longitudinal check (LRC) Phía thu tính LRC so với LRC nhận đợc để kiểm tra lỗi Một phơng pháp để kiểm tra lỗi truyền số liệu dùng CRC (Cyclic redundance check), đa thức nhị phân d thu đợc chia đa thức bit tin cho đa thức quy định
VÝ dô m· sưa sai lµ m· cã tõ dµi 10 bit nh sau:
0000000000, 0000011111, 1111100000, 1111111111 M· nµy cã khoảng cách
5, tc l nú cú th sửa đợc lỗi kép Ví dụ ta nhận đợc từ 0000000111, máy thu biết từ phải 0000011111 (nếu coi nh khơng có nhiều lỗi kép) Nhng lỗi ba xảy ra, biến 0000000000 thành 0000000111 ta khơng sửa lỗi đợc
Để sửa lỗi, ngời ta dùng thuật toán Hamming
I.3 KiÕn tróc tỉng thĨ cđa bé nhí (h 6.1)
Xét cách tổng thể, nhớ máy tính có kiến trúc theo cung bậc (hierarchy) trải dài từ nhớ đến nhớ cuối đến nhớ đệm (cache) CPU
Mass Memory HDD, FDD, Tape, CD ROM
(2)H×nh 6.1 Hieratchy nhớ máy vi tính.
I.4 Quản lý bé nhí (MMU, Memory Management Unit)
Cơng việc quản lý nhớ máy vi tính chủ yếu vi xử lý đảm nhiệm Bên cạnh cịn có DMAC (Direct Memory Access Controller) tham gia quản lý nhớ việc truyền số liệu controller ổ đĩa với nhớ làm tơi nhớ máy có Cache Memory Cache Memory Controller thực công việc truyền số liệu Cache Memory RAM
ở khu vực trung tâm máy vi tính (bộ vi xử lý, ROM, RAM, bus ), thực chất việc quản lý nhớ ghi vi xử lý đa địa ô nhớ cổng I/O qua bus địa chỉ, lệnh điều khiển/ trạng thái khác lệnh đọc vào/ viết số liệu ô nhớ Các phận bên VXL giải mã địa tín hiệu điều khiển/ trạng thái để trỏ vào byte/ từ/ từ kép nhớ để thực thao tác tơng ứng
Còn từ ổ đĩa trở đi, việc quản lý nhớ thực lệnh hệ điều hành lên file (có địa chiều C-H-S), cụ thể truyền số liệu nhờ DMAC vùng đệm (buffer) điều khiển ổ đĩa với nhớ RAM
Các vi xử lý Intel từ hệ 286 trở phân biệt hai mode địa chỉ: mode địa thực (chỉ quản lý 20 bit địa vật lý nhớ) mode địa bảo vệ (quản lý tới 32 bit địa ảo nhờ ghi ẩn vi xử lý)
ở cấp dới, tức cấp ngoại vi, nh điều khiển ổ đĩa, điều khiển hình, máy in có tổ chức nhớ riêng chúng để tiện cho việc cất giữ xử lý với đặc thù riêng
Các nhớ RAM-ROM vùng nhớ nhớ (trên ổ đĩa), khác cách mã hoá bit, cách tổ chức, cách truy nhập khác
II Tỉ chøc bé nhí cđa vi xư lý.
Bộ nhớ vi xử lý xem nh bao gồm có nhớ ROM nhớ RAM Bộ nhớ RAM vi xử lý ghi (thanh ghi chung, ghi số, ghi đoạn, ghi ngăn xếp, ghi trạng thái, ghi cờ, đệm số liệu/ địa chỉ/ điều khiển ) Còn nhớ RAM phận giải mã lệnh để phát vi lệnh
Nhằm mục đích quản lý đợc số lợng địa nhớ (ảo) nhiều số đờng địa vi xử lý bảo vệ vùng nhớ nhiệm vụ khác (task) hạt nhân (kernal) chống truy nhập không hợp pháp, vi xử lý có cách tổ chức đặc biệt ghi địa (bộ phận phân trang, điều khiển đoạn nhiệm vụ)
I/O Processor
Main Memory RAM
(3)Các vi xử lý từ hệ 486 trở cịn có nhớ Cache Memory với kích thớc nhiều Kbyte để chứa mảng lệnh số liệu thờng dùng lấy từ nhớ RAM, nhằm tăng tốc độ truy nhập
Để tăng tốc độ tính tốn phép tốn dấu chấm động, vi xử lý từ 486 trở cịn có phận dấu chấm động (FPU, Floating Point Unit), phận có ghi FPU phục vụ riêng cho
III Tỉ chøc bé nhí cđa m¸y vi tÝnh
Bộ nhớ máy tính dùng để chứa chơng trình số liệu phần ch-ơng trình hạt nhân nhiệm vụ Mỗi byte đợc gán cho địa để VXL DMAC truy nhập tới
Bộ nhớ RAM máy từ 386 trở đợc tách riêng nhớ đệm (cache memory), RAM tĩnh với thời gian truy nhập nhanh, có kích thớc dới 1Mb đợc nối vào bus nội máy tính sát vi xử lý đợc điều khiển Cache controller Phần lại DRAM, chậm nhng rẻ có dung lợng lớn Hình 6.2 thể sơ đồ khối bên máy 386
Local CPU Bus ; System control/ status bus
System address bus; System data bus; Peripheral bus
H×nh 6.2 Phần trung tâm máy tính AT 386
Trong s đồ: Vi xử lý 80386, đồng xử lý toán 80387, cache controller 82385 đợc nối trực tiếp với thành bus local Các đờng địa A2-A31 386 nối trực tiếp tới đờng tên 82385DX, đờng số liệu D0-D31
80386DX CPU
80387DX Coprocessor
82385DX Cache Controller
Local DRAM
82386 System Controller
82315 Data Buffer
82384 ISA Controller
BIOS EPROM Cache
SRAM
Local DRAM
Local DRAM
(4)386 đợc nối trực tiếp tới đờng số liệu tên 387DX Hơn nữa, chân quy định chu kỳ bus D/C#, W/R# M/IO# đợc nối trực tiếp tới chân tơng ứng 82385DX
Từ bus local VXL, đờng địa đợc đệm chốt địa bit 74373 (không vẽ hình) Các đờng số liệu bus local đợc đệm hai chiều Data Buffer 82345
System Controller 82346 trái tim chipset 340 Nó nèi tíi bus local cđa 386, bus më réng ISA, Data buffer 345, ISA Controller 344 Nã thùc hiÖn mét số chức sau:
- Nhn xung ng h từ bên để phát nhịp clock TURBO clock chm hn
- Làm trọng tài bus (các việc DMA làm tơi nhớ)
- Phỏt tín hiệu địa hàng RAS địa cột CAS đến dãy nhớ toàn bộ nhớ DRAM MainBoard, phát tín hiệu ghi vào RAM
- Phát tín hiệu ready, tín hiệu Reset CPU - Giao tiếp đồng xử lý với CPU
Controller ISA 82344 nối bus local CPU với bus hệ thống để làm chức giao tiếp với CPU, system controller 346, data buffer 345, ROM, bus, thiết bị ngoại vi nh sau:
- Nhận tín hiệu BE0# - BE3# CPU, ROM# IOCHRDY từ bus ISA để sinh tín hiệu chọn byte chẵn byte lẻ SA0# SBHE#
- Tạo tín hiệu giao tiếp 344, 345 vµ 346
- Chứa khối điều khiển ngoại vi Peripheral Control gồm vi mạch có độ tích hợp cực cao (VLSI) quen thuộc: hai chip 82C59 (ngắt), hai chip 82C37A (DMAC), vi mạch định thời 82C54, ghi địa trang 74LS612, driver cho loa, port B parallel I/O, đồng hồ thời gian thực đếm làm tơi nhớ
- Giải mã địa để tạo tín hiệu chọn chip 8042CS# cho controller bàn phím 8042 ROMCS# phép chọn ROM BIOS
Vi mạch Peripheral Combo 82341 đợc ghép vào bus mở rộng bus ISA, chứa VLSI để thực số chức thiết bị ngoại vi sau đây:
- Hai cổng nối tiếp không đồng 16C450 - Một cổng song song cho máy in
- §ång hå thêi gian thùc
- RAM sổ tay, controller cho bàn phím chuột - Interface cho đĩa cứng (tiêu chuẩn IDE)
Controller đĩa mềm 82077 điều khiển tới ổ đĩa mềm loại 5”1/2 3”1/2
III.2 Tỉ chøc bé nhí RAM cđa m¸y tÝnh.
Xét trờng hợp máy 386, có 32 bit địa chỉ, từ 00000000H đến FFFFFFFFH, ứng với GByte không gian nhớ vật lý Về quan điểm phần cứng, ta chia khơng gian thành dãy nhớ rộng byte, độc lập nhau, bank0 - bank3, bank kích thớc GByte Chúng cần tín hiệu Bank Enable BE0# tới BE3# Trong hình 7.4 sau, ta thấy địa A2 - A31 đợc đặt song song vào tất bank nhớ Còn bank nhớ cung cấp byte số liệu cho 32 đờng số liệu
ở chế độ thực, 386 dùng đờng địa A2 - A19 tín hiệu BE# dùng để chọn bank nhớ Mỗi bank có 256 KByte
Từ hình 6.3 ta thấy không gian nhớ vật lý đợc tổ chức thành dãy từ kép (32bit) Do từ kép xếp hàng (aligned) bắt đầu địa bội số
(5)1 chu kỳ bus (khi từ kép xếp hàng) chu kỳ bus (khi từ kép xếp lệch hàng, misaligned)
a Vi xö lý 80386.
Name Funtion Type
CLK2 A31-A2 BE3-BE0 D31-D0 BS16 W/ R D/ C M/ IO ADS READY NA LOCK INTR NMI RESET HOLD HLDA PEREQ BUSY ERROR System clock Address bus Byte enable Data bus Bus size 16
Write/ Read indication Data/ Control indication Memory/ IO indication Address status
Transfer acknowledge Next address request Bus lock indication Interrupt request
Nonmaskable interrupt request System reset
(6)(7)H×nh 6.4 Truy nhËp
đúng hàng (aligned) vào byte, từ, từ kép.
H×nh 6.5 Truy nhËp chƯch hµng tõ kÐp.
(8)Hình 6.6 Sơ đồ giao tiếp VXL với nhớ.
Sơ đồ giao tiếp vi xử lý 386 với nhớ chế độ bảo vệ đ ợc vẽ hình 6.6 Ta thấy giao tiếp bao gồm việc:
- Giải mã trạng thái vi xử lý (ADS#, M/IO#, D/C#, W/R#) để cấp tín hiệu điều khiển bus (ALE#, MWTC#, MRDC#, OE# cho nhớ, DT/R# DEN#)
- Giải mã địa cao (A29-A31) để có đợc tín hiệu chọn chip CE0# - CE7#, cho trờng hợp chip bit, chốt địa A2-A28 CE0# - CE7# để đa sang nhớ
- Đệm truyền số liệu hai chiều VXL nhớ đợc điều khiển tín hiệu cho phép đa số liệu EN# định hớng truyền DIR
- Tõ c¸c tÝn hiƯu BE0# - BE3# MWTC# cấp điều khiển viết lên bank nhớ WEB0# - WEB3#
- Bé nhí cÊp c¸c tÝn hiƯu NA#, BS# vµ READY# cho VXL
III.4 Giải mã địa Latch địa chỉ, đệm hai chiều số liệu.
(9)(10)Hình 6.8 Giải mã địa latch địa máy 386.
Để giải mã địa ngời ta dùng mạch 74F138 với đờng (hoặc 74F139 hai mạch giải mã, mạch có đờng ra) Trên hình 6.8 ta thấy địa cao dùng để giải mã tín hiệu chọn chip CE0# - CE3# Để Latch ta dùng vi mạch 74F373 (có thể sink đợc 24 mA max) Chân trạng thái OC# nối đất, chân CLK 373 đợc cấp ALE# lúc cần Latch địa Chân trạng thái OC# nối đất, chân CLK 373 đợc cấp ALE# lúc cần latch địa
(11)Hình 6.9 Đệm bus số liệu hai chiều VXL bus hệ thống.
III.5 Giải mà trạng thái bus VXL
VXL 386 cấp trực tiếp ba tín hiệu quy định kiểu chu kỳ nhớ hành bus là: Mem/IO#, Data/Control# Write/Read# Bảng 6.2 kiểu chu kỳ bus 386 Ngồi ra, VXL cịn cấp tín hiệu ADS# (Address Status) hạ xuống mức để báo tín hiệu bình ổn hữu hiệu hình 6.5 ta thấy mạch logic điều khiển bus, đợc dùng để giải mã kiểu chu kỳ bus nhằm cấp điều khiển tơng ứng ti Mem/IO, Latch Address
Bảng 6.2 Các kiểu chu kú bus 386.
M /IO D /C W / R Type of bus
Interrupt acknowledge Idle
I/O data read I/O data write Memory cycle read Hold/Shutdown Memory data read Memorty data write
Controller bus đợc chế tạo PLA (Programable Logic Arrays), mạch có nhiều lối ra, lối thứ i nghịch đảo tổng tích lối vào thứ j
Output i=∑
k=1
7 ∏
j=1
16
Input j
C¸c PLA thờng có cửa ba trạng thái (với chân điều khiển CE#) Có loại có ghi D - Latch ë lèi
(12)III.6 Bé phËn Cache Memory vµ Controller Cache Memory.
Mặc dù có dùng thiết bị nhớ DRAM tốc độ truy nhập tới 60nS, EPROM 120nS, , nhng chậm với hệ máy 386 zero-wait-state Ví dụ 386 loại 25 MHz địi hỏi nhớ có thời gian truy nhập nhỏ 40nS Vì ta phải đa thêm wait-state vào chu kỳ bus truy nhập có nhớ
Vì ta đa vào VXL nhớ chậm, rẻ tiền vùng nhớ SRAM có dung lợng nhỏ, thời gian truy nhập nhanh để cải thiện vấn đề truy nhập nhớ máy vi tính Bộ phận gọi Cache Memory Bộ phận nhớ nhanh đợc truy nhập khơng có chu kỳ đợi
Nh Cache Mem giữ lệnh số liệu mà CPU lấy từ nhớ để đa xử lý Và tìm lệnh hay số liệu, CPU phải xác định xem chúng đợc cất Cache cha; tìm thấy Cache, ta gọi trúng Cache, không, gọi trợt
Hình 6.9 sơ đồ bố trí tơng tác VXL, Cache, nhớ trờng hợp thực roitine lặp (loop)
H×nh 6.10 Cache mét routine lỈp.
Thờng dùng hai cách tổ chức cache Cách thứ dùng cache trực tiếp (direct-mapped cache) vùng nhớ có địa offset trang nhớ cache 64KB (h 6.11) Cách thứ hai dùng cache hai đờng(two way set associative cache) theo ta chia trang nhớ cache thành hai bank, bank 32 KByte Và vùng nhớ trang nhớ đợc nạp sang bank A bank B cache Do tỷ lệ cache trúng tăng lên (h 6.11b)
Bank A
x(2) x(1)
Bank B
Page n
X
X(n) X(i)
X(1) X(0)
CACHE MEMORY
MAIN MEMORY PAGES
CPU Memory
Data bus
Address bus
Loop Control
Control
(13)Hình 6.11 Hai phơng pháp cache nhớ: nhớ trực tiếp hai đờng.
Thuật toán đổi phận nhớ cache thực chất bỏ phần nội dung nhớ lâu không đợc dùng (least recent used, LRU) thay vào nội dung cần dùng Thuật toán với dùng cache đờng cho phép tăng tỷ lệ cache trúng lên nhiều
Cache Controler 82385 đợc thiết kế để nối trực tiếp với CPU 80386 Nó đợc dùng để cài đặt nhiều cấu hình khác cache Hình 6.12 kiến trúc hệ cache với CPU 386, Cache Controller 82385, nhớ cache đệm số liệu địa
x(B) x(A)
x(1) x(0)
CACHE MEMORY MAIN MEMORY PAGES Page
Page
Page
Page i
386 DX CPU
386 DX CPU
Data
buffer Addressbuffer
System bus
CALE CLK2 CE/ RESET CS0-CS3 ADS COLA, COL D NA CWCA, CWCB LOCK
M/IO, D/C, W/R C0, BC3 A2, A31
BHCLD WBS FLUSH MISS CLOCK BNA DADS DBC0-DBC3
CLK2 RESET ADS NA LOCK
(14)H×nh 6.12 KiÕn tróc cđa hệ điều khiẻn nhớ Cache máy 386.
Ta thấy đờng địa A2 A31 BE0# BE3#, đờng số liệu D0 -D31, trạng thái bus (M/IO#, D/C#, W/R#) CPU cấp cho Cache Controller Buffer địa chỉ, số liệu, điều khiển, Controller cấp số tín hiệu điều khiển tới nhớ Cache bus local
Xét ví dụ điều khiển 32 KByte nhớ Cache theo hai phơng pháp Cache trực tiếp Cache đờng hình 6.13 Các tín hiệu điều khiển Cache Mem gồm:
- CALEN (Cache Address Latch Enable) cÊp cho pin E cđa Latch 373 cho nhí cache
- CT/R# (Cache Transmit/ Receive) để điều khiển chiều truyền số liệu DIR nhận 245 bus số liệu nhớ cache
- CS0# - CS3# (Cache chip select) dùng để chọn chip cho bốn vi mạch SRAM
- COEA#, COEB# (Cache Output Enable) vµ CWEA#, CWEB# (Cache Write Enable) dïng cho ch©n OE# cđa bé nhËn số liệu 245và chân WE# SRAM
Ngoài có tín hiệu Controller cấp
- BACP (Bus Address Clock Pulse) tạo xung nhịp cho mạch Latch - BAOE (Bus Address Output Enable) điều khiĨn pin OE# cđa Latch
- BT/R# (Bus Transmit/ Receive), DOE# (Data Ouput Enable) vµ LDSTB (Local Data Strobe) ®iỊu khiĨn transceive sè liƯu 646
(a)
Address CACHE
DATA CS0
-CS3 WE
x 245 A D OE DIR x 373 O D OE E
CALEN
CT/R COEA,B CWEA,B CS0-CS3
(15)(b)
Hình 6.13 Ví dụ điều khiển nhớ trực tiếp (a) hai đờng (b).
Nh÷ng tÝn hiƯu giao tiÕp gi÷a Controller víi bus local cđa nã gåm: - BBE0# - BBE3# (Bus Byte Enable)
- BADS# (Bus Next Address Request)
- BLOCK# (Bus Lock), BHOLD, BHLDA(Bus Hold Acknowledge) - FLUSH để khởi đầu xoá nhớ Cache thiết bị
- MISS (Cache Miss) địa hành bus không tơng ứng với số liệu có Cache phải đọc lại thơng tin từ nhớ
-WBS (Write Buffer Status) ghi 646 chứa số liệu (để viết vào nhớ chính) khơng đợc viết vào nhớ
III.7 Hoạt động Cache trực tiếp Cache hai đờng.
Trong hệ máy 386 tồn khơng gian nhớ vật lý GByte đợc chia thành
217-1 trang nhớ 32 KByte Vì máy 386 có tổ chức số liệu 32 bit, nên trang có
8Kb tõ kÐp
Controller chứa 1024 lối vào 26 bit, có tên SET - SET 1023 để chứa trạng thái ô nhớ Cache Directory trờng hợp Cache trực tiếp, lối vào tơng ứng với dòng liên tiếp (từ kép) dãy nhớ Cache Trong trờng hợp Cache đờng, có hai Cache Directory A B ứng với Bank A Bank B nhớ Cache, Bank chứa KByte từ kép, Controller chứa hai tập lối vào (Set Entry) dài 27 bit Mỗi Set có 512 lối vào Định dạng thơng tin đ a tới lối vào gồm có bit Line Valid Bits, Tag Valid Bit Tag 17 bit (với Cache trực tiếp), 18 bit (với Cache đờng) Hình 6.14
25
17 bits TAG Line Valid Bits
Tag Valid Bits
x 373 O C CE E
Address
DATA
x 245 A B CE DIR
CS0- WE CS3 Address DATA
CE DIR A B
CALEN
COEA CWEA CE0-CE3 CT/R CWEB COEB
(16)26
18 bits TAG Line Valid Bits
Tag Valid Bits
Hình 6.14 Format Entry SET Cache Directory trực tiếp hai đờng.
Phần TAG dài 17/18 bit số hiệu 131072 trang, 32 KB (hoặc 262144, trang 16 KB) nhớ Cịn TAG_BIT TAG có hữu hiệu hay khơng Nếu TAG_BIT = tất dịng SET không hữu hiệu Nếu TAG_BIT = bit bit LINE_VALID_BITS có nghĩa dịng tơng ứng Cache chứa thơng tin hữu hiệu, tức thơng tin đợc cập nhật tự động
VÝ dô: NÕu SET = 00005FFh, ta chuyển sang dạng nhị phân:
SET = 0000 0000 0000 0000 0101 1111 1111 Tõ
đó ta có: TAG = 0000 0000 0000 0000 010 = 2(10)
TAG_VALID = 1, dịng LINE_VALID_BIT = 1111 1111 hữu hiệu Tức tất dòng Cache hữu hiệu
*Cache trùc tiÕp.
Khi VXL 386 bắt đầu chu kỳ đọc nhớ, cấp địa song song cho nơi Latch địa local bus controller, lối vào địa controller interface nhớ Cache đó, Cache Controller định VXL cần đọc từ nhớ hay từ Cache Nó thực điều cách thông dịch địa so sánh với ENTRY Cache Directory
Hình 6.15 trờng (field) bit địa cho Cache trực tiếp Cache hai đờng Trong 17/ 18 bit lớn A15 - A31 (hoặc A14 - A31) TAG để trang nhớ cần đọc thơng tin từ vào VXL Các bit tiếp theo, A5 -A14 (hoặc A5 - A13) gọi địa SET nhớ Cache, chỗ cần truy nhập vào Còn bit bé A2 - A4 để chọn dòng SET
A31 A1
5 A14 A5 A4 A2
17 bits TAG Set address Line select (1 of 217 pages) (1 of 1024 SETS) (1 of LINES)
A31 A1
4 A13 A5 A4 A2
17 bits TAG Set address Line select
(1 of 218 pages) (1 of 512 SETS) (1 of LINES)
Hình 6.15.Các trờng bit địa dùng cho Cache trực tiếp hai đờng
Khi địa VXL đặt vào lối vào địa Controller, phần SET địa đợc dùng để chọn 1024 ENTRY SET Cache Directory Sau Controller tiến hành kiểm tra nh sau:
(17)- Bit TAG_VALID_BIT ENTRY SET đợc chọn phải
- LINE_VALID_BIT ENTRY tơng ứng với giá trị phần LINE_SELECT địa phải =
Nếu ba điều kiện thoả mãn thông tin cần phải đọc từ nhớ đ-ợc lu nhớ Cache hữu hiệu Và Controller khởi đầu chu kỳ đọc liệu từ Cache thay từ nhớ Đây trờng hợp trúng Cache
Nếu hai điều kiện đầu thoả mãn, LINE_VALID_BIT = trợt Cache, tức ENTRY SET Directory tơng ứng với trang nhớ chính, nh-ng dịnh-ng từ kép cần phải đọc vào VXL lại cha đợc chuyển sanh-ng Cache, gọi trợt dòng Khi VXL phải đọc từ nhớ từ kép, đồng thời đợc đa vào nhớ Cache LINE_VALID_BIT ENTRY Cache Directory đợc xác định Do thơng tin đợc đọc vào Cache đánh dấu hữu hiệu
Nếu kiểm tra TAG không khớp TAG_VALID_BIT = xảy trợt TAG (tag miss) Đó trờng hợp đọc trang không đợc Cache, Cache nhng không hữu hiệu Trong trờng hợp Controller phải khởi đầu chu kỳ đọc từ nhớ viết vào nhớ Cache Lúc TAG SET ENTRY Directory đợc cập nhật phần TAG địa chỉ, TAG_VALID_BIT đợc lập 1, LINE_VALID_BIT địa trỏ đợc lập 1, LINE_VALID_BITS bị xoá Bằng cách trang hữu hiệu ENTRY dòng đợc lập nên tất ENTRY khác SET tơng ứng với thơng tin trang khác nhớ trở nên không hữu hiệu
* Cache hai đờng.
ở hình 6.14, 6.15 nêu cách tổ chức nhớ Cache, format ENTRY SET, trờng địa hai trờng hợp Cache trực tiếp Cache hai đ-ờng
Trong trờng hợp Cache hai đờng, hai Directory A B ứng với hai ENTRY, cịn có thêm 512 cờ Least Recently Used dài bit (LRU bit) Những cờ theo dõi xem BANK A BANK B giữ thông tin lâu không sử dụng Những cờ đợc Controller kiểm tra thuật tốn thay thơng tin lâu không dùng
Thao tác đọc thông tin từ nhớ Cache hai đờng giống nh Cache trực tiếp Biết (ở sơ đồ h.6.15) SET_ADDRESS có bit Đầu tiên địa bit đợc dùng để chọn 512 lối vào SET hai Directory A B Tiếp theo TAG_ADDRESS 18 bit đợc so sánh với TAG lối vào SET, TAG_VALID_BITS đợc kiểm tra, LINE_VALID_BIT tơng ứng với mã LINE_SELECT (A2 đến A4) đợc kiểm tra lối vào SET Nếu ba điều kiện kiểm tra đợc thoả mãn hai lối vào SET ta nói trúng Cache thơng tin dòng đợc đọc vào VXL từ BANK tơng ứng nhớ Cache
Mặt khác, xảy trợt Cache không khớp TAG hai VALID_BIT bị xố, LINE_VALID_BIT khơng đợc lập lối vào nào, algorithm kiểm tra bit cờ LRU SET đợc chọn địa SET để xác định xem lối vào BANK A hay BANK B lâu không đ ợc dùng hơn, sau thơng tin đợc đọc vào từ nhớ viết vào BANK nhớ lâu khụng c dựng
III.9 Làm tơi nhớ DRAM
Bộ nhớ DRAM có hàng cần phải đợc lm ti mi chu k 2mS
Mạch làm tơi chip nhớ phải kiểm tra điện áp « nhí, nÕu nã lín h¬n Vcc/2
(18)Để đọc từ từ BANK nhớ DRAM, trớc hết DRAM Controller mạch khác cấp tín hiệu WE# = Sau gửi nửa thấp địa chỉ, ứng với địa hàng, tín hiệu RAS# = Sau thời gian, controller cấp nửa địa cao, ứng với địa cột, tín hiệu CAS# = Sau thời gian định, từ cần có xuất Output Data nhớ
Để viết vào DRAM, tín hiệu tơng tự, ngoại trừ sau tín hiệu CAS# = 0, controller cấp WE# = để quy định viết vào RAM
Controller làm tơi DRAM cách gửi địa 512 địa hàng cấp RAS# = theo chu kỳ, khoảng 4mS Việc làm tơi đợc tiến hành theo burst mode theo distributed mode Trong burst mode toàn 512 hàng đ-ợc định địa đánh nhịp lần lợt cách 4mS Còn distributed mode hàng đợc định địa đánh nhịp sau 4/512 mS Hình 6.16 mạch làm tơi DRAM với controller làm tơi 8208
H×nh 6.16 Mạch làm tơi nhớ dùng 8028.
(19)- Cấp hai nửa địa tín hiệu RAS#, CAS# thích hợp - Bảo đảm thao tác đọc/viết làm tơi không xảy đồng thời - Cấp tín hiệu đọc/viết để điều khiển chiều số liệu
Hình 6.16 mơ tả sơ đồ Controller 8208 làm tơi MByte cho hệ VXL 8086 Bộ nhớ chia thành BANK (mỗi BANK bit) Controller bảo đảm cấp địa hàng địa cột, tín hiệu RAS#, CAS#, tín hiệu READ/WRITE Các chân trạng thái S0 - S3 VXL đấu thẳng tới chân vào 8208 Controller giải mã tín hiệu tín hiệu đọc viết mà VXL yêu cầu Do đó, đa số thòi gian VXLđợc dùng để đọc byte/từ RAM mà khơng cần có chu kỳ chờ Nếu 8208 chu kỳ làm tơi nhớ mà VXL muốn đọc RAM 8208 lu giữ AACK cao buộc VXL cấp thêm chu kỳ đợi để 8208 kịp hoàn thành chu kỳ làm tơi Để tiết kiệm chân, khơng có chân số liệu (để nạp từ điều khiển), chân PDI nối mass cho phép 8208 tự khởi đầu hoạt động đa số ứng dụng Cịn trờng hợp khác chân PDI đợc điều khiển bởi ghi dịch vào song song - nối tiếp, nhờ từ điều khiển đợc nạp vào 8208 Sau Reset chân WE/PCLK cấp dãy xung đánh nhịp cho từ điều khiển từ ghi dịch nạp vào 8208 Từ điều khiển đợc thực nối lối vào ghi dịch
Ta dùng DMAC để làm tơi nhớ Hình 6.17 ví dụ mạch BANK với dung lợng 256KB nhớ máy tính dùng chế độ đọc DMA ảo Bộ định thời 8253 lập trình để phát xung nhịp 15S Xung đợc nối vào lối vào xin DMA (DMA Request) DREQ0 8237 DMAC đợc lập trình để đọc từ nhớ viết vào cổng không tồn Khi DMAC nhận xung này, gửi tín hiệu HOLD_REQUEST tới VXL VXL trả lời tín hiệu HLDA đặt chân trạng thái trở kháng cao Khi đó: 8237 chiếm lấy bus, gửi địa nhớ, tín hiệu đọc nhớ tín hiệu chấp nhận DMA kênh (DACK0)
Tám bit địa thấp gửi tới nhớ, DACK0 để cung cấp xung RAS# cho bank DRAM để làm tơi nhớ động Sau thao tác DMA ghi địa hành DMAC đợc tự động tăng/giảm (tuỳ thuộc cách lập trình lúc đầu) để làm tơi hàng (row) nhớ sau Nếu 8237 lập trình để truyền 64 kByte, khỏi đầu địa 0, tăng đếm sau lần DMA, tự khởi động (autoinitialize), dẫy địa gửi làm tơi tất 256 hàng DRAM Mỗi hàng làm tơi 15ns
Ví dụ với tần số clock 4.77MHz dùng IBM PC, chu kỳ DMA để làm tơi 820 ns 15 ns, tức 5% thời gian VXL
(20)Hình 6.17 Main board máy tính IBM PC.
(21)Thờng xuyên có nhu cầu chuyển mảng số liệu nhớ ngoại vi Lúc ta dùng DMAC Hình 6.17 mơ tả chế hoạt động DMAC với VXL để truyền số liệu nhớ ngoại vi
Hình 6.17 Cơ chế hoạt động DMAC với VXL
Khi ta bật máy lúc đầu khố vị trí đóng từ VXL tới ngoại vi, nhớ Chúng ta lập trình để chạy DMAC, ví dụ để đọc file từ ổ đĩa để viết vào nhớ Muốn phải gửi loạt lệnh tới controller ổ đĩa yêu cầu đọc block liệu từ đĩa Khi controller có byte đầu tiên, gửi DMA Request(DREQ) cho DMAC, channel DMAC khơng bị che chắn , DMAC gửi HOLD REQUEST tới chân HOLD VXL, VXL treo bus cao gửi HLDA cho DMAC, DMAC nhận HLDA VXL, cho tín hiệu điều khiển để đặt ba khố vị trí DMA, cắt VXL ra, sau DMAC cho địa cấp cho nhớ, DMAC gửi DMA-Acknowlege (DACK0) cho ổ đĩa để đa số liệu, cuối cấp MEMW#=0 IOR#=0 bus điều khiển, nhờ liệu đợc đọc vào từ ngoaị vi viết ô nhớ, truyền số liệu hồn thành DMAC thu lại tín hiệu HRQ, VXL lấy lại bus lần DMA sau
Hình mạch chi tiết sơ đồ hình Trong 8237 DMAC 8272 controller ổ đĩa mềm, 8282 dùng để latch bit địa gửi từ VXL (do ALE 8086 điều khiển ) 8237 (do AEN ADdress STrobe điều khiển)
Khi đóng điện DMAC cấp AEN = 0, vi mạch U1, U2, U4 đợc hữu hiệu Và ALE từ VXL đợc dùng để đánh nhịp (STroBe) cho vi mạch Do chúng chốt địa A0-A19 VXL bus địa nh trờng hợp thông thờng (không DMA)
Khi DMAC muốn chiếm lấy bus, cấp AEN= 1, dẫn đến:
- Khố khơng cho U1 làm việc, cắt địa A0 -A7 từ VXL, DMAC trực tiếp cấp địa thấp cho nhớ truyến số liệu,
- AEN =1 làm đổi vị trí Multiplex khiến cho việc đánh nhịp cho U2 thực ADSTB DMAC Để tiết kiệm chân, DMAC bit địa cao qua chân số liệu D0-D7, với ADSTB=1 báo địa cao A15- A8 DMAC cấp cho qua nhớ latch U2
-Cịng AEN =1, c¸c bit A16- A19 U3 cÊp tõ c¸c bit D10 -D13 ta lËp tr×nh cøng
AD0-AD15
ALE
CPU
HLDA HOLD
HRQ
DMA
CONTROLLER
MEMORY
PERIPHERAL DEVICE
Address Latches
CONTROL BUS CONTROL BUS
DATA BUS ADDRESS BUS
DATA BUS
HOLD HLDA
DREQ
(22)DACK0 Cuối cùng, tín hiệu điều khiển đợc đổi nối từ output VXL sang output DMAC ( gồm có IOR#, IOW#, MEMW#, MEMR#)
Các buffer số liệu hai chiều 8286 cho phép truyền bit số liệu tới/từ controller đĩa từ/tới byte cao byte thấp nhớ Bit địa A0 dùng để chọn đờng cho hai byte nhớ chẵn/lẻ
DMAC có kênh (channel), nhiều ghi để:
-Ghi địa nhớ sở(16 bit) -Ghi số đếm từ (word) nhớ sở
-Địa nhớ hành -Ghi địa tạm thời
-Ghi số đếm tạm thời -Ghi trạng thái
-Ghi địa lệch -Ghi tm thi
-Các ghi mode -Ghi chắn DMA
-Ghi yêu cầu xin DMA
DMAC cú chân địa bit vào IOR#, IOW# để điều khiển hoạt động đọc/viết ghi Nó cịn có flip flop để trỏ địa byte cao/byte thấp có chân số liệu Các flip flop đợc lần lợt tự động lật trạng thái phép cấp 16 bit địa nhờ cổng bit Tất nhiên để điều khiển hoạt động DMAC cần phải lập trình khởi đầu nó, lập trình hoạt động sau DMAC lập trình để truyền 1byte cho request, khối byte cho request, hay truyền nhận đợc tớn hiu dng t chõn vo/ra EOP#
Đại thể phải làm việc sau:
- Vit t điều khiển vào địa 1101 để xoá flip flop - Viết từ điều khiển vào địa 1000
- Viết từ mode cho channel (dùng địa 1011)
- Viết địa nhớ tới địa ghi sở cho channel ta cần
- Viết số byte ta muốn truyền tới địa ghi đếm số l ợng từ sở cho kênh
- Viết từ/ từ điều khiển để xoá mặt nạ cho channel/ channel cần dùng
Table a
SIGNALS
Operation A3 A2 A1 A0 IOR IOW
1 0 0 Read status register
1 0 write command register
1 0 1 illegal
1 0 1 write request register
1 0 illegal
1 1 write single mask register set
1 1 illegal
1 1 write mode register
1 0 illegal
1 0 clear byte pointer flip/ flop
1 1 read temporary register
1 1 master clear
1 1 0 illegal
1 1 clear mask register
1 1 1 illegal
1 1 1 write all mask register bits
Table b
Name Size number
base address register 16 bits
(23)current address register 16 bits
current word count register 16 bits
temporary address register 16 bits
temporary word count register 16 bits
status register bits
command register bits
temporary register bits
mode register bits
mask register bits
(24)C
h
a
n
el register operat
ion signal Intern al flip flop Data bus db0 db7
CSIOR IOW A A A A 0
0 Base and current address Current address
Base and current word count Current word count
write read write read
0 0 0 0 0
0 1 1
A0 - a7 a8 - a15 A0 - a7 a8 - a15 W0 - w7 w8 - w15 w0 - w7 w8 - w15 Base and current address
Current address
Base and current word count Current word count
write read write read
0 0 0 0 0
0 1 1
A0 - a7 a8 - a15 A0 - a7 a8 - a15 W0 - w7 w8 - w15 w0 - w7 w8 - w15 Base and current address
Current address
Base and current word count Current word count
write read write read
0 0 0 0 0
0 1 1
A0 - a7 a8 - a15 A0 - a7 a8 - a15 W0 - w7 w8 - w15 w0 - w7 w8 - w15 Base and current address
Current address
Base and current word count Current word count
write read write read
0 0 0 0 0
0 1 1
A0 - a7 a8 - a15 A0 - a7 a8 - a15 W0 - w7 w8 - w15 w0 - w7 w8 - w15
(25)Trong máy tính AT ta dùng hai DMAC, địa chúng mapping I/O nh sau:
000 -01F : DMAC 1(8237A)
0C0 -0DF : DMAC (8237)
087, 083, 081, 082, 08B, 089, 08A, 08F: DMA Page Register (cấp địa A16 -A23 cho kênh 0, 1, 2, 3, 5, 6, 7, làm tơi)
Bốn kênh DMAC ( đánh số từ tới ) dùng để truyền số liệu bit adapter I/O bit với nhớ 16 bit Mỗi kênh giúp truyền 16 MByte số liệu tổ chức thành khối 64 kByte ( Các chân BHE đảo A0)
DMAC2 có kênh từ -7 Kênh dùng để nối tầng bốn kênh đến vào VXL Ba kênh 5, 6, dùng truyền số liệu 16 bit adapter I/O 16 bit với nhớ 16 bit Các kênh DMA truyền 16 MByte khối 128 kByte Các kênh 5, 6, truyền số liệu byte bắt đầu địa lẻ (các chân A0, BHE = 0)
Trong slot ISA cđa m¸y vi tính AT có chân sau dùng cho hai DMAC: DRQ0, DRQ1, , DRQ2, DRQ3, DRQ4, DRQ5, DRQ6, DRQ7 vµ
DACK0 ACK1, DACK2, DACK3, DACK4, DACK5, DACK6, DACK7
IV Bé nhí ¶o.
Để giải vấn đề kích thớc nhớ vật lý khơng đủ chứa hệ điều hành với chơng trình ngời sử dụng, đồng thời vấn đề vùng nhớ phải đợc bảo vệ cách chắn để khỏi bị chơng trình ngời sử dụng làm hỏng: Ngời ta sử dụng chế nhớ ảo Đó kết hợp nhớ ẩn (SRAM với tốc độ cao), nhớ (DRAM) nhớ phụ ( ổ đĩa cứng), hoath động dới quản lý MMU, cho dới quan điểm lập trình ngời sử dụng, tập hợp nhớ đợc quan niệm nhớ với dung lợng lớn (gần dung lợng ổ đĩa cứng) nhng lại làm việc tốc độ cao (gần tốc độ nhớ chính)
Cấu trúc phân cấp nhớ nh sơ đồ sau:
Hình 6.17 Bộ nhớ ảo.
B nh o đợc quản lý cách chia nhớ thành mảng nhỏ có độ lớn tính theo đoạn, chế gọi phân đoạn (đối với họ Intel có từ bộ VXL 80286 trở đi) trang, chế gọi phân trang ( họ Intel có từ VXL 80386) trở Trong nhớ ảo nh vậy, mảng mã lệnh mảng liệu dùng cho chơng trình đợc tải từ ổ đĩa vào DRAM đợc truy nhập đến điều khiển nhớ ẩn cần thiết Nếu chơng trình chạy cần đến mảng mã lệnh hay mảng liệu mà khơng chứa DRAM đợc tải vào DRAM Nếu DRAM khơng cịn đủ khơng gian để chứa mảng DRAM đợc xác định theo tiêu chuẩn định để bị đẩy lại ổ đĩa, nhờng chỗ cho mảng cần lấy vào Một chế tơng tự điều khiển hoạt động nhớ ẩn nhớ Nói cách khác, nhớ DRAM
Bé vi xö lý
Virtual Memory Page Main
(26)đóng vai trị nhớ ẩn nhớ phụ, nhớ cache dóng vai trị nhớ ẩn cho DRAM
Trong thực tế đoạn có độ lớn từ byte đến 4GB cịn trang thơng thờng có độ lớn 4KB
Theo quan điểm nhớ ảo nhớ vật lý chỗ chứa mảng (các đoạn hay trang) có liên hệ với hệ điều hành với chơng trình nngời sử dụng Để truy nhập đến nhớ ảo ta dùng địa ảo (địa lơgic), cịn truy nhập đến nhớ vật lý ta phải dùng địa vật lý Trong hệ VXL có MMU, CPU hoạt động cần đọc lệnh hay tốn hạng đa địa ảo lệnh tốn hạng MMU nhận địa ảo dịch (chuyển đổi) địa vật lý, địa đợc đa lên bus địa để truy nhập nhớ vật lý (hình 6.18)
Hình 6.18 Chức chuyển đổi địa MMU.
III.1 Ph©n trang bé nhí.
Trong chế độ làm việc theo kiểu phân trang, độ lớn trang đợc chọn 4KB để đạt đợc tốc độ tối u trao đổi trang liệu ổ đĩa nhớ Khi làm việc theo kiểu phân trang, địa lôgic đợc đa qua phận phân trang để dịch thành địa vật lý Trong VXL từ 80386 trở có ghi điều khiển CR dài 32 bit, đợc đánh số từ CR0-CR3 Khi muốn cho vi xử lý làm việc theo chế độ phân trang, ta phải đa bit điều khiển thích hợp vào ghi CR0
cho CR031 = CR3 lúc chứa địa sở bng danh mc bng trang
Địa tuyến tính gåm ba phÇn:
+ Phần danh mục (Directory) cộng với nội dung CR3 để vào danh mục mong muốn danh mục bảng trang
+ Phần bảng trang (Page Table) đợc cộng với nội dung danh mục mong muốn danh mục cácbảng trangthu đợc để ghi tiếp vào bảng trang mong muốn ảng trang
+ Phần lệch (offset) đợc cộng với nội dung bảng trang mong muốn bảng trang thu đợc ddể tiếp vào toán hạng mã lệnh cần tìm giới hạn khn trang mong muốn
Hình 6.19 Dịch địa tuyến tính-địa vật lý hệ thống phân trang dịch địa
MMU
địa ảo địa vật lý
DIRECTORY TABLE OFFSET
Địa tuyến tính
CR3
Danh mơc b¶ng trang
B¶ng trang
Bé nhí vËt lý
(27)Cơ chế bảo vệ CPU làm việc chế độ phân trang nh sau:
Trong bảng trang, mục cho khuôn trang 4KB bao gồm bit địa sở khuôn trang bit quản lý Trong danh mục bảng trang vậy, mục cho bảng trang bao gồm bit địa sở bảng trang bit quản lý Trong số bit quản lý có bit U/S (user/supervisior) dùng để mã hoá mức đặc quyền (U/S = biểu thị mức đặc quyền hệ điều hành
Chơng VII Giao diện máy vi tính
Một hệ thống máy tính điển hình từ cỡ nhỏ đến cỡ trung bình, bao gồm vi xử lý trung tâm, nhớ hệ thống phối ghép vào/ Các thành phần liên hệ với thông qua hệ thống bus Chơng nghiên cứu phần cuối hệ thống máy tính, phối ghép vào/ Cụ thể chip phối ghép vào/ ra, máy tính đợc liên hệ với giới bên ngồi thơng qua chip
I Các chip vào/ (I/O chip)
Trong giới máy tính, có nhiều loại chip vào/ra chủng loại chip liên tục xuất Trong số chip thơng dụng nói đến chip điều khiển truyền thơng UART, USART, chip điều khiển hiển thị hình CRTC, chip điều khiển đơn vị ổ đĩa HDC/FDC chip điều khiển vào/ qua cổng song song PIO
I.1 Chip nhận - phát không đồng UART
Chip UART (Universal Asynchronous Receiver Transmitter), đọc byte liệu từ bus liệu chuyển bit liệu lên đờng dây nối tiếp tới thiết bị đầu cuối (terminal) nhận liệu từ terminal Các chip UART thờng hoạt động tốc độ từ 50bps tới 19,2 Kbps
I.2 Chip nhận - phát đồng bộ/không đồng USART
Chip USART(Universal Synchronouns Asynchronous Receiver Transmitter) quản lý việc truyền liệu đồng việc sử dụng nhiều giao thức khác nhau, nh sử dụng tất chức UART
I.3 Các chip vào/ra song song PIO(Parallel I/O)
(28)Chơng VIII Vào liệu với thiết bị ngoại vi I Vai trò nhiệm vụ phèi ghÐp
I.1 Vai trß cđa bé phèi ghÐp
Bộ phối ghép nằm trung gian máy vi tính thiết bị ngồi, đóng vai trị trung chuyển liệu (nhận truyền) chúng
Khi truyền liệu từ máy vi tính thiết bị ngồi, phối ghép đóng vai trị nhận liệu từ máy tính nguồn cấp liệu cho thiết bị
Khi truyền liệu từ thiết bị ngồi vào máy vi tính, phối ghép đóng vai trị nhận liệu từ thiết bị ngồi nguồn cấp liệu vào cho máy tính
I.2 NhiƯm vơ cđa bé phèi ghÐp.
Bộ phối ghép làm nhiệm vụ phối hợp trao đổi liệu máy tính thiết bị ngồi mức cơng suất tín hiệu, dạng tín hiệu, tốc độ phơng thức trao đổi
I.2.1 Phèi hợp mức công suất tín hiệu
Mc tín hiệu máy vi tính thờng mức (0V, 5V) thiết bị ngoài, mức cao ( 15V, 48V) thấp (<<1V) Do đó, phối ghép phải biến đổi mức cho phù hợp
Cơng suất tín hiệu bus liệu máy vi tính nhỏ (cõ vài chục mA), cần công suất lớn nhiều cho thiết bị ngồi Do phối ghép phải biến đổi công suất cho phù hợp
ở ngõ vào ngõ phối ghép thờng dùng mạch đệm ba trạng thái
I.2.2 Phối hợp dạng liệu (tín hiệu)
Bộ phối ghép phải đảm bảo tính tơng thích chế trao đổi liệu máy tính thiết bị
I.2.3 Phối hợp tốc độ trao đổi liệu
Máy tính thờng hoạt động với tốc độ cao, thiết bị ngồi thờng hoạt động chậm Do phối ghép phải có khả cấp, nhận liệu nhanh với máy tính, nhng vói thiết bị ngoại ngợc lại
I.2.4 Phối hợp ph ơng thức trao đổi liệu
Để đảm bảo trao đổi liệu cách tin cậy, cần có phối ghép ph -ơng thức trao đổi liệu diễn theo trình tự định hợp lý
- Nếu việc trao đổi liệu máy tính u cầu q trình diễn nh sau: Máy tính đa lệnh điều khiển để khởi động phối ghép hay thiết bị ngồi Máy tính đọc tín hiệu trả lời Nếu có tín hiệu sẵn sàng trao đổi tin, không, thêm chu kỳ chờ đọc lại trạng thái
(29)- Nếu việc trao đổi tin TBN yêu cầu: để giảm thời gian chờ đợi trạng thái sẵn sàng TBN, máy tính khởi động TBN thực nhiệm vụ khác Việc trao đổi tin diễn khi:
TBN gửi yêu cầu trao đổi tin tới xử lý ngắt khối ghép nối, để đa u cầu ngắt chơng trình đến máy tính
Nếu có nhiều thiết bị ngồi gửi u cầu, KGN xử lý theo mức u tiên ngắt định trớc, đa yêu cầu trao đổi tin cho máy tính
Máy tính nhận yêu cầu, chuẩn bị trao đổi gửi tín hiệu xác nhận sẵn sàng trao i
KGN nhận truyền tín hiệu xác nhận cho TBN
TBN trao đổi tin với KGN KGN trao đổi tin với máy tính (nếu đ a tin vào) máy tính trao đổi tin với KGN KGN trao đổi tin với TBN (nếu đa tin ra)
II CÊu tróc chung cđa khèi ghÐp nèi
II.1 NhiƯm vơ cđa c¸c khèi KGN.
KGN có nhiệm vụ chung nhận chuyển tin máy tính TBN Nhng cụ thể, có nhiệm vụ nhỏ khác sơ đồ khối Những nhiệm vụ khối tơng ứng là:
1 Ghép nối biến đổi tin MT - KGN KGN - TBN về: - Mức cơng suất tín hiệu
- Dạng tin (song song, nối tiếp, tín hiệu số, tín hiệu analog) 2 Giải mã địa chỉ, giải mã lệnh cho ghi đệm KGN.
3 Ghi nhận trạng thái TBN hay yêu cầu trao đổi tin TBN, xử lý yêu cầu u tiên, gửi yêu cầu vào MT xác nhận trao đổi tin từ MT
4 Ghi nhận, biến đổi dạng tin, phát tin cho thiết bị nhận tin.
5 Nhận phát tín hiệu nhịp thời gian trao đổi tin cho khối KGN và TBN.
II.2 Sơ đồ khối.
d a t a i n d a t a o u t I N T A I N T R RD WR A A n I/O BUS
Phèi hỵp I/O bus
(30)Hình 8.1 Sơ đồ khối khối ghép nối.
1 Khối phối hợp đờng dây MT. Khối có nhiệm vụ:
- Phối hợp mức cơng suất tín hiệu với bus I/O MT - Cô lập bus I/O với TBN không trao đổi tin - Điều khiển đa tin ra, đa tin vào bus I/O
Các nhiệm vụ dợc thực nhờ vi mạch đệm ba trạng thái 2 Khối giải mã địa - lệnh.
Mỗi ghi đệm (điều khiển, trạng thái, số liệu đọc vào, số liệu đa ra) KGN đợc chọn để ghi đọc tin nhờ lệnh đọc, ghi từ khối giải mã địa -lệnh Khối giải mã vi mạch giải mã hay tổ hợp cổng logic Lối
vào đợc nối với bus I/O MT, để nhận tín hiệu địa (A0 An), tín hiệu
điều khiển đọc, ghi, tín hiệu chốt địa chỉ, chốt liệu Lối khối tín hiệu đọc, ghi cho ghi đệm KGN
3 Các ghi đệm gồm:
- Thanh ghi điều khiển chế độ hoạt động, ghi điều khiển TBN - Thanh ghi trạng thái hay yêu cầu trao đổi tin TBN
- Thanh ghi đệm số liệu ghi - Thanh ghi đệm số liệu đọc 4 Khối xử lý ngắt.
Khi nhận, che chắn yêu cầu trao đổi tin TBN, xử lý u tiên đa yêu cầu trao đổi tin vào MT
I N T R Tha nh ghi đệm đọc Tha nh ghi đệm viết Tha nh ghi điều khiể n Tha nh ghi trạn g thái
Phèi hỵp TBN bus
(31)5 Khối phát nhịp thời gian
Phát nhịp thời gian cho hoạt động truyền xử lý tin KGN hay TBN Đôi khi, để đồng bộ, khối cịn nhận tín hiệu nhịp đồng hồ từ MT
6 Khối đệm TBN.
Khối biến đổi mức (TTL), biến đổi cơng suất (cho TBN mạch điều khiển công suất) biến đổi dạng tin
7 Khèi ®iỊu khiĨn:
Điều khiển hoạt động khối, nh khối phát nhịp thời gian, chế độ hoạt động, vv
III Giải mã địa cho ghép nối.
Việc giải mã địa cho ghép nối gần giống nh giải mã địa cho mạch nhớ Chủ yếu ta nghiên cứu việc giải mã địa cho cổng Thông thờng cổng có địa bit A0-A7 có địa 16 bit A0-A15 Tuỳ theo độ dài toán hạng lệnh hay 16 bit ta có cổng bit hay cổng 16 bit có địa liền để tạo nên từ với độ dài tơng ứng Trong thực tế có hệ sử dụng hết 256 cổng I/O khác nhau, nên ta xét giải mã địa bit A0-A7 mạch giải mã thông dụng nh 74LS138 để tạo xung chọn thiết bị
Các mạch giải mã đơn giản đợc thiết kế từ mạch NAND nh hình 8.2
a Mạch tạo xung chọn cổng vào.
b M¹ch t¹o xung chän cỉng ra.
Hình 8.2 Mạch giải mã địa đơn giản cho KGN I/O.
Trong trờng hợp cần nhiều xung chọn đầu cho cổng vào/ra có địa liên tiếp, ta dùng mạch giải mã loại 74LS138 nh vớ d sau:
Địa cổng I
IO/
ISP
RD Địa cổng O
IO/
(32)
Hình 8.3 Các giải mã với địa 00-07 cho cổng vào cổmg ra.
III C¸c phơng pháp điều khiển vào liệu.
Nói chung, ngời ta phân biệt phơng pháp điều khiển vào/ liệu nh sau:
+ vào/ra liệu điều khiển cách thăm dò trạng thái sẵn sàng thiết bị ngoại vi
+ vào/ra liệu điều khiển cách ngắt VXL
+ vào/ liệu điều khiển phần cứng phụ để thâm thập trực tiếp vào nhớ (dùng DMAC)
Mỗi phơng pháp điều khiển vào/ra liệu nói có đặc điểm khác đợc ứng dụng trờng hợp khác Trong phần lần lợt nghiên cứu phơng phỏp iu khin trờn
III.1 Vào/ra liệu phơng pháp thăm dò.
Vn iu khin vo/ra liệu đơn giản thiết bị ngoại vi ln sẵn sàng để làm việc với CPU Ví dụ, với thiết bị vào nh phận đo nhiệt độ số lắp sẵn hệ thống điều khiển lúc cung cấp số đo nhiệt độ đối tợng cần điều chỉnh, hay thiết bị nh đèn LED dùng để hiển thị giá trị nhiệt độ hệ thống nói lúc biểu thơng tin Nh CPU cần có thơng tin nhiệt độ đối tợng việc đọc liệu cổng phối ghép với đo nhiệt độ CPU muốn biểu diễn thông tin vừa đọc lên đèn LED việc đa tín hiệu điều khiển tới mà khơng cần kiểm tra xem thiết bị có sẵn sàng làm việc hay không
Tuy nhiên, thực tế lúc CPU làm việc với đối t-ợng sẵn sàng nh Thông thờng CPU muốn trao đổi liệu với đối tợng đó, trớc tiên phải kiểm tra xem thiết bị có trạng thái sẵn sàng hay khơng, có thực việc trao đổi liệu Việc kiểm tra tình trạng thiết bị đợc thực nhờ tín hiệu móc nối (handshake signal) đợc lấy từ mạch ghép nối, ngời thiết kế tạo
Hình 8.4 ví dụ cách tạo tín hiệu móc nối Trong ví dụ này, để đơn giản ta giả thiết CPU làm việc với thiết bị vào thiết bị
Một cổng vào số (có địa 00) đợc dùng để đọc trạng thái sẵn sàng hai thiết bị Tín hiệu sẵn sàng thiết bị ngoại vi số (cổng vào 01) đ ợc đặt bit D0, tín hiệu sẵn sàng thiết bị ngoại vi số (cổng 02) đợc đặt vào bit D1 Các bit có giá trị thiết bị ngoại vi tơng ứng trạng thái sẵn sàng làm việc với CPU chúng đợc đa vào bus liệu CPU đọc lệnh
(33)đọc cổng vào số Chơng trình trao đổi liệu kiểm tra bit báo sẵn sàng có đáp ứng phù hợp
Hình 8.4 Sơ đồ tạo tín hiệu móc nối.
Khi thiết bị vào số có byte số liệu cần trao đổi, đa xung STB phép mạch chốt, chốt lấy byte liệu đó, đồng thời kích cho mạch lật D (mạch tạo tín hiệu sẵn sàng) làm việc CPU thăm dò trạng thái thiết bị qua bit D0 đọc cổng 00 Đến CPU đọc byte liệu vào đồng thời xố ln mạch tạo trạng thái để chuẩn bị cho lần làm vic sau
III.2 Vào/ra liệu cách ngắt CPU.
Trong cách vào/ra liệu điều khiển phng pháp thăm dò, trớc tiến hành trao đổi liệu CPU phải dành toàn thời gian vào việc xác định trạng thái
Latch bits D0
D1
D7
Device Buffer
3 States
01 ISP
pr Q D clk
clr
5v
00 ISP
02 OSP
Latch bits
Buffer States
Device
pr Q D clk
clr
5v
00 ISP
ISP 01
OSP 02
(34)sẵn sàng thiết bị cần trao đổi Trong hệ thống VXL với cách làm việc nh vậy, thông thờng CPU đợc thiết kế chủ yếu để phục vụ cho việc vào/ liệu thực tác vụ xử lý liệu liên quan
Trong thực tế, ngời ta phải tận dụng khả CPU để thực công việc khác việc trao đổi liệu với TBN, có yêu cầu trao đổi liệu u cầu CPU tạm dừng cơng việc để phục vụ việc trao đổi liệu Sau hồn thành CPU lại trở lại thực tiếp công việc tiến hành, thực công việc Cách làm việc nh gọi ngắt CPU để trao đổi liệu Một hệ thống nh đáp ứng nhanh với yêu cầu trao đổi liệu thực cơng việc khác
Hình 8.5 trình bày cách đơn giản để đa ngắt số hiệu N vào bus liệu tạo yêu cầu ngắt đa vào chân INTR VXL 8088
Hình 8.5 Đa số hiệu ngắt vào bus d÷ liƯu
Trong trờng hợp đơn giản, thời điểm định có yêu cầu ngắt IRi đợc tác động, đầu mạch NAND có xung yêu cầu ngắt đến CPU Tín hiệu IRi đợc đồng thời đa qua mạch khuyếch đại đệm để tạo số hiệu ngắt tơng ứng, số hiệu ngắt đợc CPU đọc vào đa tín hiệu chấp nhận ngắt
B¶ng 8.1 cho quan hệ IRi số hiệu ngắt N tơng ứng
Bảng 8.1 Quan hệ IRi số hiệu ngắt.
AD7 (AD6)IR6 (AD5)IR5 (AD4)IR4 (AD3)IR3 (AD2)IR2 (AD1)IR1 (AD0)IR0 N
1 1 1 1 FEH (254)
1 1 1 1 FDH (253)
1 1 1 1 FBH (251)
1 1 1 1 F7H (247)
1 1 1 1 EFH (239)
1 1 1 1 DFH (223)
1 1 1 1 BFH (191)
AD0 AD1
AD2 AD3 AD4 AD5 AD6 AD7
INTR
74LS244
(35)Trong trêng hợp có nhiều yêu cầu ngắt lúc, ngời ta phải sử dụng mạch xử lý u tiên ngắt Một mạch xử lý ngắt u tiên điển hình mạch điều khiển ngắt 8259A
III.3 Vào/ra d÷ liƯu b»ng DMA.
Trong cách điều khiển việc trao đổi liệu thiết bị ngoại vi VXL cách thăm dò trạng thái sẵn sàng thiết bị ngoại vi hay cách ngắt VXL nh trên, liệu thờng đợc chuyển từ nhớ qua VXL từ ghi vào thiết bị ngoại vi ngợc lại, từ thiết bị ngoại vi, liệu đợc đọc vào qua VXL từ ghi vào nhớ Vì tốc độ trao đổi liệu phụ thuộc nhiều vào tốc độ thực lệnh MOV, IN OUT VXL Do tốc độ trao đổi liệu nói chung chậm
Trong thực tế có cần thiết phải trao đổi liệu thật nhanhnvới thiết bị ngoại vi: nh đa liệu hiển thị hình đọc, ghi đĩa Trong trờng hợp ta cần có đợc khả ghi/ đọc liệu trực tiếp với nhớ (DMA- truy nhập trực tiếp vào nhớ mà khơng qua CPU) đáp ứng đợc yêu cầu tốc độ trao đổi liệu Để làm đợc điều này, hệ VXL nói chung phải dùng thêm mạch chuyên dụng để điều khiển việc truy nhập trực tiếp nhớ (Direct Memory Access Controller, DMAC) phơng pháp phơng pháp điều khiển vào/ra liệu DMA
Có thể lấy ví dụ để minh hoạ tính u việt tốc độ trao đổi liệu dùng DMAC nh sau: Trong mạch DMAC nh 8237A-5 Intel điều khiển việc chuyển byte mảng liệu từ nhớ thiết bị ngoại vi chu kỳ đồng hồ, VXL 8088 cần khoảng 40 chu kỳ đồng hồ để thực công việc