Phần
li
KIẾN TRÚC MÁY VI TÍNH
Chương
l i
TỔ CHỨC BỘ NHỚ TRONG MÁY VI TÍNH
1. TỔ CHỨC BỘ NHỚ THEO PHÂN CẤP
Một trong các chức năng của CPU là tuần tự nhập lệnh từ bộ nhớ và thực
h i ệ n - i ệ n h . Tốc„jiộ_tuiy nhập b ộ nhớ c h í n h (bộ nhớ thao tác) tượng đ ố i chậm
( v ớ i D R A M là khoảng lOOns = 1.10~ s) sọ v ã i k h ả n ă n g của CPU. N ế u CPU
7
nhập c á c l ệ n h và d ữ l i ệ u trực t i ế p từ bộ nhớ c h í n h thì tốíL-dậ xủlý
thực của
CPU phụ thuộc v à o tốc đ ộ truy nhập của bộ nhớ c h í n h . M ặ t k h á c .dung-lượng
nhớ của-bộ.flJxdchính cũng k h á hạn c h ế , do vậy nếu h ệ thống lưu trữ chỉ g ồ m
bộ nhớ c h í n h cũng sẽ hạn c h ế k h ả n ă n g của CPU.
Đ ể t ă n g tốc đ ộ x ử lý của CPU đồng t h ờ i đ ả m bảo k h ả n ă n g lưu trữ l ớ n của
bộ nhớ m á y tính người ta tổ chức bộ nhớ máy tính theo k i ể u hệ thống có phân cấp.
Ý tưởng c h í n h trong việc sử dụng h ệ thống bộ nhớ c ó p h â n cấp là t ạ i m ộ t
t h ờ i khoảng thì c á c l ệ n h và d ữ l i ệ u được sử dụng thường đ ề u n ằ m ở m ộ t khu
vực tương đ ố i n h ỏ trong bộ nhớ c h í n h . Các v ù n g này l u ô n chuyển dịch k h i
chạy c h ư ơ n g t r ì n h . Cơ sở của việc quản lý h ệ thống bộ nhớ c ó p h â n cấp,
m à trong đ ó bao g ồ m n h i ề u l o ạ i t h i ế t bị nhớ k h á c nhau, là dựa trên nguyên
quy chiếu phân
vùng.
lý
K ỹ thuật được sử dụng đ ể g i ậ m t h ờ i gian trụng b ì n h truy nhập bộ nhớ là
t h ê n u n ộ t - k ệ nhớ c ó tóc đ ộ ư u ỵ j Ị h ậ p cao, b ộ nhớ S R A M , vào h ệ thống lưu trữ
n à y . B ộ nhớ l o ạ i n à y được g ọ i là bộ nhớ caphe ( b ộ nhớ ẩn). B ộ nhớ cache được
sử dụng đ ể lưu trữ c á c l ệ n h và d ữ l i ệ u thường được sử dụng n h i ề u trong q u á
t r ì n h thực h i ệ n c h ư ơ n g t r ì n h . V i ệ c quy c h i ế u (truy nhập) đ ế n b ộ nhớ c h í n h chỉ
xảy ra k h i k h ơ n g t ì m t h ấ y t h ô n g t i n cần c ó trong cache. G i ạ i ^ h á p chọỵấĩỊ
đề
kíglLthước-hạiL£hế của b ộ nhớ c h í n h là sự. d ụ n g ^ nhớ n g o à i ( t h i ế t bị đĩa từ)
n h ư là m ộ t t h à n h phần của h ệ thống bộ nhớ (h.42).
91
Số hóa bởi Trung tâm Học liệu – ĐHTN
KIẾN TRÚC MÁY VI TÍNH
Phần li
CPU
2-5
I
i i
I
Cache
2"E
ik
Bộ nhớ chính DRAM
1
1
1
1
Bộ nhớ thứ cấp (đĩa từ)
Hình 42
2. TỔ CHỨC CACHE
Thủ tục quản lý bộ nhớ phân cấp có cache là nạp.từng.đoạn chương trình
và d ữ l i ệ u t ừ b ộ nhớ c h í n h ỵaọ ọạche. P h ư ơ n g p h á p đ ơ n g i ả n nhất được d ù n g
để quy chiếu b ộ n h ớ c ó cache là p h ư ơ n g p h á p á n h x ạ trúc t i ế p .
V i ệ c quy chiếu đ ế n cache được g ọ i l à " t r ủ ụ g " ( h í t ) n ế u truy nhập được
t h ô n g t i n ( n ằ m trong ô n h ớ c ó địa chỉ CPU đ ò i h ỏ i )ở trong cache, và g ọ i là
" t r ư ợ t " (miss) n ế u k h ô n g truy nhập được t h ô n g t i nở trong cache và phải đ ọ c
từ b ộ n h ớ c h í n h .
Bơ n h ớ c h í n h được chia t h à n h nhiều k h ố i , m ỗ i k h ố i bao g ồ m n h i ề u t ừ
hoặc nhiều byte (h.43).
Địa chỉ thấp
Khối 0
1 từ ( l b y t e )
00
Khối 1
1 từ(lbyte)
OI
Khối 2
1 từ(lbyte)
10
Khối 3
ĩ từ(lbyte)
li
Khối 4
1 từ(lbyte)
00
Khối 5
1 từ(lbyte)
OI
Khối 6
1
1 từ(lbyte)
1
Ì
Ì
10
1
ĩ
ì
1
ĩ
ì
Hình 43
92
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIẾN TRÚC MÁY VI TÍNH
li
B ộ n h ớ cache c ó JLhể c h ứ a . n h i ề i r k h ố i , g ọ i là k h ố i cache. M ỗ i k h ố i cache
n ằ m ở m ộ t vị t r í x á c định trong cache. M ặ L k h ố i cachẹ chứa c á c thông t i n n h ư :
số h i ệ u . t h ẻ * b i t . c ù . ỵ à - b ả n _ t h â n - k l i ố i d ữ l i ệ u ( k h ố i d ữ l i ệ u trong cache là b ả n
sao của k h ố i d ữ l i ệ u trong b ộ n h ớ c h í n h ) .
Cấu t r ú c m ộ t k h ố i cache n h ư sau :
Khối dữ liệu
Số h i ệ u t h ẻ
Giả thiết bộ n h á có 2
số lượng t h ẻ sẽ là 2
2 4
/2
2
ơ nhớ. N ế u cache c ó 2 vị t r í chứa ( k h ố i cache) t h ì
=2
2 2
(« 4triệu thẻ).
2.1 Trường hợp mỗi khối chứa một từ (hoặc Ì byte) dữ liệu
a) Thao tác đọc bộ nhớ
G i ả sử c ó b ộ n h ớ c h í n h c ó ỊỊgBS ậjfl r^ị 24 bít v à cache c ó 4 k h ố i .
K h i m ộ t t ừ ( l b y t e ) d ữ l i ệ u được đọc t h ì CPU cung cấp địa chỉ cho b ộ đ i ể u
k h i ể n b ộ n h ớ . B ộ đ i ề u k h i ể n b ộ n h ớ t á c h địa chỉ 24 bít l à m hai phần ( h . 4 4 ) :
2 b í t địa chỉ thấp nhất được đ ặ t v à o thanh g h i địa chỉ M A R của cache. C á c
bít n à y x á c định vị t r í ( t h ứ tự) k h ố i c ầ n t ì m trong cache.
22. bít địa chỉ cao m ô t ả số h i ệ u t h ẻ . Số h i ệ u t h ẻ là con số x á c định vị t r í
của k h ố i n h ớ trong b ộ n h ớ .
Thao t á c đ ọ c d ữ l i ệ u t ừ b ộ n h ớ được t i ế n h à n h n h ư sau :
Bước Ì : b ộ đ i ề u k h i ể n cache đọc k h ố i d ữ l i ệ u trong cache t ạ i vị t r í c ó số
thứ t ự t r ù n g v ớ i phần số t h ứ tự k h ố i trong địa chỉ trên BUS.
Bước 2 : b ộ đ i ề u k h i ể n cache xác. định xem s ố h i ệ u t h ẻ của k h ố i trong
cache n à y c ó t r ù n g v ớ i số h i ệ u t h ẻ trong địa chỉ BUS hay k h ô n g .
Bước 3 : N ế u t r ù n g t h ì v i ệ c quy chiếu l à " t r ú n g " và m ộ t t ừ d ữ l i ệ u được
đọc t ừ c a c h e - v à o ~ G P U . N ế u k h ô n g - t r ù n g (trường hợp " t r ư ợ t " ) t h ì t ừ d ữ l i ệ u
p h ả i được l ấ y t ừ b ộ n h ớ c h í n h . Trong trường hợp " t r ư ợ t " x ầ n phải sao lưu dữ
liệu trong
cạche
v à o b ộ n h ớ c h í n h theo địa chỉ của n ó , sau đ ó m ớ i nạp dữ liệu
mới cùng
với thẻ của nó v à o cache và đ ặ t b í t cờ F = 0 ( g h i nhận n ộ i dung
cache t r ù n g v ớ i n ộ i dung b ộ n h ớ c h í n h ) và d ữ l i ệ u được cung c ấ p cho CPU.
SỐ t h ẻ cache t r o n ậ ^ á c k h ố i cache c ó t h ể t r ù n g nhau ( k h i k h ố i cache chưa
bị thay t h ế ) và c ó t h ể k h á c nhau ( k h i n ộ i dung k h ố i cache bị thay).
93
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phẩn
KIẾN TRÚC MÁY VI TÍNH
li
23
2
Địa chỉ
24 bít
Số hiệu thẻ (22bit)
1
Số thứ tự khối (2bit)
Cache
Khối cache
00
MAR
0 1
>
Khối cache
10
Khối cache
11
Khối cache
Bộ so sánh
Số hiệu thẻ
Hình 44
"trúng"
hoặc "trượt"
Dữ liệu
Dữ liệu ra BUS
b) Thao tác ghi bộ nhớ
C ó m ộ t v à i k ỹ thuật được d ù n g đ ể g h i d ữ l i ệ u v à o b ộ n h ớ c h í n h k h i thực
h i ệ n c á c l ệ n h g h i b ộ n h ớ : k ỹ thuật g h i x u y ê n (vvrite through) và k ỹ thuật sao
lưu (copy back).
+ Ở l o ạ i cache ghi x u y ê n (write through) d ữ l i ệ u được g h i l ê n cả cache l ậ n
bộ n h ớ c h í n h c ù n g m ộ t l ú c , k h ô n g d ù n g đ ế n b í t cờ F. K ỹ thuật n à y l à m cho
t h ờ i gian g h i b ộ n h ớ t ă n g l ê n .
+ Ở l o ạ i cache sao lưu (copy back) t h ì d ữ l i ệ u chỉ dược g h i v à o cache và
bít cờ F được l ậ p ( F = 1), g h i nhận n ộ i dung cache k h á c v ớ i n ộ i dung b ơ n h ớ
c h í n h . Sau đ ó n ế u k h ố i d ữ l i ệ u c ầ n được thay t h ế bằng k h ố i d ữ l i ệ u k h á c t ừ b ộ
nhớ c h í n h (trường hợp " t r ư ợ t " ) t h ì bít cờ F được k i ể m tra đ ể x á c định xem c ó
cần thực h i ệ n thao t á c sao lưu n à y k h ô n g , n ế u F = Ì t h ì c ầ n thực h i ệ n sao l ư u ,
nếu F = 0 t h ì k h ô n g c ầ n sao lưu. K ỹ thuật n à y l à m t ă n g tốc đ ộ thao t á c v ớ i b ộ
nhớ và được g ọ i là k ỹ thuật sao lưu c ó dựng cờ.
94
0
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIẾN TRÚC MÁY VI TÍNH
li
2.2 T r ư ờ n g h ợ p m ỗ i k h ố i c h ứ a n h i ề u t ừ d ữ l i ệ u
K h i c ó n h i ề u từ d ữ l i ệ u trong m ộ t k h ố i thì k ỹ thuật á n h xạ trực t i ế p phức
tạp h ơ n . G i ả t h i ế t địa c h ỉ 4 à 24 b í t và m ộ t k h ố i g ồ m 4 từ (hoặc byte) d ữ l i ệ u .
Địa chỉ trên BUS sẽ được t á c h t h à n h 3 phần (h.45) :
Phần x á c định số t h ứ tự từ (hoặc byte) trong m ộ t k h ố i . v í dụ là 2 bít. C á c
bít n à y x á c định vị t r í t ừ d ữ l i ệ u cần truy nhập n ằ m trong k h ố i cache.
Phần x á c định số t h ứ tự k h ố i ,ví dụ là 2.
Phần số h i ệ u t h ẻ , ví d ụ là 20 bít.
C á c thao t á c k h á c được thực h i ệ n tương tự n h ư đ ã trình b à y ở trên.
23
4
3
Số hiệu thẻ
2 1
Số thứ tự từ
Số thứ tự khối
,2..:,
> Thẻ
Cache
T
1 Ì \'X
>
V
1 KhốiO
/ ỉ \ \
r •
v \
Khối 1
1
Ì
MAR
0
F
*
V
4 từ dữ liệu
' Khối 2
Khối 3
Hình 45
I
2.3 K ỹ t h u ậ t t ậ p l i ê n h ợ p
Vấn đề tốc độ lại được đặt ra khi CPU liên tục nhập 2 (hoặc 4) lệnh có
c ù n g địa chỉ k h ố i n h ớ ( c á c bít địa chỉ thấp của c á c k h ố i nhớ t r ù n g nhau).
Cách giải quyết là chứa 2 (hay 4) khối nhớ nói trên tại cùng một vị trí
( m ộ t k h ố i ) trọng_cacJtie, n h ư n g m ỗ i k h ố i c ó m ộ t t h ẻ r i ê n g . K h i vị t r í n à y trong
cache được truy nhập thì cả 2 (hay 4) t h ẻ trong 2 k h ố i con (hoặc 4 k h ố i con)
c ù n g được k i ể m tra. C á c k h ố i c o a n à y t ạ o t h à n h m ộ i Í ậ p 4 i ê « - 4 i ợ p (h.46).
Kỹ thuật dặt nỊụần (2 hoặc 4) khối vào cùng một vị trí trong cachẹ được
g ọ i là k ỹ i k u ậ U â f i , U M Ì L a p
95
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIẾN TRÚC MÁY VI TÍNH
li
Số thứ tự tập
Thẻ
Bộ so sánh
Bộ so sánh
Thẻ
Thẻ
TậpO
Tập 1
MAR
Dữ liệu
V
Dữ liệu
ì
Dữ liệu ra BUS
Dữ liệu ra BUS
H i n * 4Ố
3. T Ổ C H Ứ C B ộ N H Ớ M Á Y V I T Í N H
PC
Có hai cách tổ chức quản lý bộ nhớ : tổ chức theo phân đoạn và tổ chức
tuyến tính.
Ở cách tiếp cận theo phân đoạn chương trình và dữ liệu được người lập
trình chia t h à n h c á c modul. M ỗ i modul c ó m ộ t k h ơ n g gian địa chỉ r i ê n g . M ỗ i
modul được g ọ i là m ộ t đ o ạ n và được g á n m ộ t con sổ, g ọ i là địa chỉ đ o ạ n . M ỗ i
ô nhớ trong đ o ạ n được x á c định b ở i địa chỉ logic g ồ m hai con số : địa chỉ đ o ạ n
và địa chỉ offset (địa chỉ lệch). Các modul được nạp v à o b ộ nhớ và được quản
lý theo cơ c h ế p h â n đ o ạ n .
Ở cách tiếp cận tuyến tính, một bộ nhớ với không gian địa chỉ rất lớn (ảo)
được cung cấp cho c h ư ơ n g t r ì n h . Địa chỉ n à y là địa chỉ t u y ế n tính và bắt đ ầ u
từ 0. C h ư ơ n g trình được chia t h à n h c á c k h ú c n h ỏ c ó k í c h thước cố-dịnh, m ỗ i
k h ú c n à y được g ọ i l à j m ộ t j r a n £ , và được nạp v à o b ộ n h ớ vật lý. M ỗ i c h ư ơ n g
trình được hệ đ i ề u h à n h quản lý bằng m ộ t b ả n g trang. C á c k h ú c c h ư ơ n g t r ì n h
chứa trong b ộ nhớ được quản lý theo cơ c h ế p h â n trang. N h i ệ m vụ đ a n g chạyt ạ i một t h ờ i đ i ể m chỉ cần m ộ t số ít trang c h ư ơ n g t r ì n h và d ữ l i ệ u trong b ộ nhớ
96
Số hóa bởi Trung tâm Học liệu – ĐHTN
KIẾN TRÚC MÁY VI TÍNH
Phần Ù
vật l ý , n ê n k ỹ thuật q u ả n lý b ộ nhớ theo trang là m ộ t k ỹ thuật t h í c h hợp cho
việc t ổ chức b ộ nhớ ảo.
Người ta có thể kết hợp cả hai cách nói trên để quản lý bộ nhớ.
3.1 Cơ chế quản lý bộ nhớ theo phân trang
C á c CPU x86 32 bít c ó phần cứng h ỗ trợ quản lý b ộ nhớ trong c h ế 4 ô J b ả o
vệ theo cả hai c ơ c h ế p h â n đ o ạ n và p h â n trang. Cơ c h ế quản lý bộ n h ó theo
p h â n đ o ạ n đã được t r ì n h b à y ở c h ư ơ n g 1. Trong phần này ta chỉ xét cơ chế
quản lý bộ nhớ theo phân
trang.
Đ ơ n vị quản lý bộ nhớ chuyển địa chỉ logic g ồ m địa chỉ nền đ o ạ n 32 bít
và địa chỉ offset 32 bít t h à n h địa chỉ t u y ế n tính.
N ế u chọn c á c h quản lý theo p h â n đ o ạ n thì địa chỉ t u y ế n tính sẽ là địa òhỉ
vật lý.
N ế u chọn c á c h quản lý theo phân trang thì đơn vị quản lý bộ nhớ sẽ chuyển
địa chỉ t u y ế n t í n h t h à n h địa chỉ vật lý theo cơ c h ế quản lý theo p h â n trang.
Trong cơ c h ế q u ả n lý theo trang, c h ư ơ n g trình được chia t h à n h c á c k h ú c
nhỏ c ó k í c h thước"xac định, được g ọ i là trang. M ỗ i trang c h ư ơ n g trình được
g á n vào từng đ o ạ n nhỏ của bộ nhớ, m ỗ i đ o ạ n nhỏ chứa trang được g ọ i là m ộ t
khung trang.
H ệ đ i ề u h à n h quản lý q u á trình thực h i ệ n c h ư ơ n g trình bằng bảng trang.
Bảng trang chỉ ra vị t r í khung trang (địa chỉ nền) của m ỗ i trang c h ư ơ n g trình.
CPU dựa vào vị trí khung trang và địa chỉ offset của ơ nhớ trong trang đ ể tính
ra địa chỉ vật lý của ô nhớ.
C ấ u t r ú c c ủ a - h ệ t h ố n g quản lý trang g ồ m 3 phần : thư mục trang (Page
Directory), bảng trang (Page Table) và trang (Page). T h ư mục trang, bảng
trang và trang đ ề u c ó c ù n g m ộ t k í c h thước là 4Kbyte.
T h ư mục trang :
T h ư mục trang c ó k í c h thước 4Kbyte. T h ư mục trang chứa t ớ i 1024
vào thư mục trang PDE (Page Directory Entry).
Lối
PDE c ó k í c h thước 32 bít (4 byte). M ỗ i PDE chứa 20 bít địa chỉ nền bảng
trang (trỏ đ ế n n ề n bảng trang). M ỗ i m ộ t thư mục trang c ó t h ể quản lý được t ớ i
1024 bảng ttang.
Cấu t r ú c m ộ t PDE trong thư mục trang :
31
12
Địa chỉ bảng trang (20bit)
0
l i
T h ô n g t i n về bảng trang
97
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIẾN TRÚC MÁY VI TÍNH
li
Phần Địa chỉ bảng trang chứa 20 bít cao của địa chỉ n ề n bảng trang (địa c h i
bắt đ ầ u m ộ t bảng trang), 12 bít t h ấ p của địa chỉ n ề n bảng trang l u ô n bằng 0.
Phần T h ô n g t i n v ề bảng trang chứa c á c t h ô n g t i n v ề q u y ề n Jtjuy nhập bảng
trang và m ộ t số thuộc t í n h k h á c của trang. C á c bít Ì và 2 trong m ỗ i PDE cung
cấp mức đặc q u y ề n và q u y ề n g h i / đ ọ c v.v. của t ấ t cả c á c trang t r ỏ b ở i PDE n à y .
Trong c ơ c h ế quản lý b ộ nhớ theo trang, 10 bít cao (từ bít 22 đ ế n b í t 31)
của địa chỉ t u y ế n t í n h được d ù n g đ ể x á c đ ị n h vị trí của PDE trong t h ư mục
trang (vị trí so v ớ i n ề n t h ư mục trang).
+ Bảng trang :
Bảng trang c ó k í c h thước 4 K b y t e . Bảng trang chứa 1024 Lối vào
bảng
trang PTE (Page Table E n t r y ) .
PTE c ó k í c h thước 32 bít (4 byte). M ỗ i PTE chứa địa chỉ n é n của m ộ t
trang 4 K b y t e , do v ậ y m ộ t bảng trang c ó t h ể quản lý được t ớ i 1024 trang.
C ấ u t r ú c m ộ t PTE :
12
31
Địa chỉ trang (20bit)
0
l i
T h ô n g t i n v ề trang
Phần Địa chỉ trang chứa 20 bít cao của địa chỉ v ậ t lý n ề n trang (địa chỉ vật
lý bắt đ ầ u m ộ t trang), 12 b í t t h ấ p của địa chỉ n ề n trang l u ô n bằng 0.
Phần T h ô n g t i n về trang chứa c á c t h ô n g t i n về q u y ề n truy n h ậ £ j j £ n g và
m ộ t số thuộc t í n h k h á c của trang. C á c bít l v à 2 trong m ỗ i PTE cung c ấ p mức
đặc q u y ề n và q u y ề n g h i / đ ọ c v.v. của t ấ t cả c á c trang t r ỏ b ở i PTE n à y .
Trong c ơ c h ế quản lý b ộ nhớ theo trang, 10 bít của địa chỉ t u y ế n t í n h ( t ừ
bít 12 đ ế n bít 21) được d ù n g đ ể x á c định vị trí của PTE trong bảng trang (vị t r í
so v ớ i n ề n bảng trang).
C ó hai mức đặc q u y ể n được d ù n g đ ể bảo v ệ trang : mức c h ư ơ n g t r ì n h ứng
dụng ( t ư ơ n g đ ư ơ n g mức 3 trong quản lý theo đ o ạ n ) và mức c h ư ơ n g t r ì n h g i á m
sát ( t ư ơ n g đ ư ơ n g mức 0, Ì , 2 trong quản lý theo đ o ạ n ) .
M ứ c t h ấ p n h ấ t trong hai mức của PDE và PTE được l ấ y l à m mức đặc
q u y ề n và q u y ề n g h i / đ ọ c của từng trang.
Địa chỉ vật lý của ô nhớ trong trang được tính bằng c á c h k ế t hợp 20 bít sao
(phần Địa chỉ trang) trong PTE v ớ i 12 bít t h ấ p n h ấ t trong địa chỉ t u y ế n t í n h .
98
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIÊN TRÚC MÁY VI TÍNH
li
3.2 C ơ c h ế t r u y n h ậ p b ộ n h ớ t h e o t r a n g
Các máy tính PC loại 32 bít quản lý bộ nhớ theo cách kết hợp hai cơ chế
p h â n đ o ạ n và p h â n trang. Đ ể truy nhập m ộ t ô nhớ CPU cần c ó m ộ t địa chỉ
logic, g ồ m địa chỉ n ề n đ o ạ n (nhận được từ bộ m ô tả đ o ạ n theo cơ c h ế đã được
t r ì n h b à y ở mục 2.5.2 của C h ư ơ n g l ) và địa chỉ offset. Địa chỉ logic n à y được
chuyển t h à n h địa chỉ t u y ế n t í n h . Địa chỉ tuyến tính n à y được d ù n g đ ể tính địa
chỉ vật lý và truy nhập ơ nhớ theo cơ c h ế p h â n trang (h.47).
Khi truy nhập theo cơ chế phân trang địa chỉ tuyến tính được tách thành
3 phần :
+ A31 -ỉ- A 22 : lo bít chỉ số PDE, xác định vị trí PDE trong thư mục trang.
+ A21 -ỉ- A12 : 10 bít chỉ số PTE, xác định vị trí PTE trong bảng trang.
+ AI Ì -ỉ- AO : là 12 bít địa chỉ offset của ơ nhớ trong trang.
Địa chỉ vật lý của ơ nhớ trong trang được tính bằng cách kết hợp 20 bít
cao (phần địa chỉ trang) trong PTE v ớ i 12 bít thấp ( A U -H AO) n ằ m trong địa
chỉ t u y ế n tính n à y .
A31
Địa chỉ
tuyến tính
10bit
A22
A21 10bit
AI 2 A11
Địa chỉ offset
Chỉ số thư mục trang Chỉ số bảng trang
31
CRO
Dữ liệu
Cho phép trang
0 -
PTE
Trang
4kbyte
PDE
CR3
AO
12bit
Bảng trang
4 Kbyte
Địa chỉ nền
thư mục trang
Các thanh
ghi điều
khiển ỏ CPU
32bit
Bộ nhớ vật lý
Thư mục trang
4 Kbyte
Hình 47
99
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIẾN TRÚC MÁY VI TÍNH
li
Chương
IU
C Á C T H I Ế T BỊ Đ I Ể U K H I Ê N V À G I A O
VÀO -
RA DỮ
DIỆN
LIỆU
1. N G Ắ T V À B ộ Đ I Ể U K H I Ể N N G Ắ T P I C 8259
i
1.1 M ộ t s ố k h á i n i ệ m
N g ắ t là sự k i ệ n CPU bị t ạ m dừng việc thực h i ệ n q u á t r ì n h c h í n h và c h u y ể n
sang thực h i ệ n q u á t r ì n h phục vụ ngắt. N g ắ t cứng là p h ư ơ n g p h á p v à o / r a d ữ
l i ệ u , trong đ ó t h i ế t bị vào/ra ( t h i ế t bị vật lý : b à n p h í m , m á y i n , đ ổ n g h ồ nhịp
t h ờ i gian v.v.) chủ động k h ở i động q u á trình v à o / r a . Q u á t r ì n h phục vụ ngắt
cứng được k í c h hoạt bằng m ộ t tín h i ệ u vật lý t ừ b ê n n g o à i .
1.2 Phân loại ngắt
Các loại ngắt
Ngắt
DOS
Ngắt
BIOS
Ngắt logic
Ngắt cứng
Ngắt mềm
Ngắt
hệ thống
Ngắt của
người sử dụng
Thuật ngữ " ngắt" x u ấ t p h á t từ k ỹ thuật ngắt cứng. K h i n ó i đ ế n ngắt cứng,
ngắt m ề m hoặc ngắt logic (ngoại l ệ ) là hàm ý nói đến c á c c h ư ơ n g t r ì n h con
phục vụ hoạt động của hệ thống m á y tính và n ó i đ ế n c á c h k í c h hoạt c á c
c h ư ơ n g trình con n à y . T ấ t cả c á c c h ư ơ n g trình phục vụ ngắt đ ề u c ó c h u ỹ g j đ ặ c
đ i ể m : thứ nhất là hầu hết đã được v i ế t sẵn (là c á c c h ư ơ n g t r ì n h của h ệ đ i ề u
h à n h ) và được p h é p sử dụng ; thứ hai là địa chỉ của c á c c h ư ơ n g t r ì n h con n à y
100
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phẩn
KIẾN TRÚC MÁY VI TÍNH
li
p h ả i được đ ặ t ở m ộ t v ù n g x á c định là Bảng véc tơ ngắt,
n ằ m trong b ộ n h ớ
c h í n h . C á c c h ư ơ n g t r ì n h con phục vụ ngắt cứng t h ư ờ n g được d ù n g đ ể đ i ề u
k h i ể n q u á t r ì n h v à o / r a v ớ i c á c t h i ế t bị v à o - r a chuẩn ở mức vật lý. C á c c h ư ơ n g
t r ì n h con phục vụ ngắt cứng được k í c h hoạt b ở i c á c tín hiệu vật lý IRQ đ ế n từ
t h i ế t bị v à o - r a . C á c c h ư ơ n g trình con phục vụ ngắt m ề m là c á c c h ư ơ n g t r ì n h
h ệ thống thực h i ệ n c á c thao t á c v à o - r a cơ bản ở mức logic và c á c hoạt động
k h á c của h ệ thống. Các c h ư ơ n g trình con phục vụ ngắt m ề m được k í c h hoạt
b ở i lệnh INT trong h ệ lệnh của CPU. Các c h ư ơ n g t r ì n h con phục vụ ngắt logic
cũng phục vụ cho hoạt động của h ệ thống, n h ư n g c h ú n g chỉ được k í c h hoạt k h i
CPU thực h i ệ n l ệ n h và p h á t sinh m ộ t ngoại lệ n à o đ ó .
• Bảng véc tơ ngắt
Bảng véc tơ ngắt là bảng chứa địa chỉ của c á c c h ư ơ n g trình phục vụ ngắt.
Bảng n à y c ó 256 ơ, c á c ơ được đ á n h số thứ tự l ầ n lượt từ OOh, O l h , . . , 08h,.. ,
0Fh, 10h,.. , FFh. Số t h ứ tự của từng ô trong bảng được g ọ i là số ngắt. M ỗ i ô
chứa địa chỉ logic của m ộ t c h ư ơ n g trình phục vụ ngắt xác định, c á c địa chỉ n à y
c ò n được g ọ i là véc tơ
ngắt.
Cấu trúc của Bảng v é c tơ ngắt ở c h ế đ ộ thực :
Số ngắt
Chức n ă n g của c h ư ơ n g trình
OOh
OOh
X ử lý chia cho 0
Olh
Olh
Thực h i ệ n gỡ r ố i (debug)
08h
08h
Đồng h ồ hệ thống
09h
09h
Phục vụ bàn phím
21h
21h
Thực h i ệ n c á c dịch vụ
của hệ đ i ề u h à n h
FFh
FFh
Dự phòng
Số t.t.
Địa chỉ đ o ạ n
Địa chỉ offset
Địa chỉ đ o ạ n
Địa chỉ offset
Địa chỉ đ o ạ n
Địa chỉ offset
Địa chỉ đ o ạ n
Địa chỉ offset
Địa chỉ đ o ạ n
Địa chỉ offset
Địa chỉ đ o ạ n
Địa chỉ offset
loi
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIẾN TRÚC MÁY VI TÍNH
li
1.3 H ệ t h ố n g n g ắ t c ứ n g
CPU được t h i ế t k ế đ ể đ á p ứng được v ớ i c á c q u á t r ì n h ngắt cứng. CPU có
m ộ t đ ầ u v à o nhận tín h i ệ u ngắt I N T , k h i nhận được tín h i ệ u n à y CPU sẽ phản
ứng theo cơ c h ế ngắt cứng. Trong thực t ế c ó n h i ề u t h i ế t bị n g o ạ i v i yêu cầu
được phục vụ theo p h ư ơ n g p h á p ngắt cứng ( b à n p h í m , đ ồ n g h ồ h ệ thống, m á y
i n , v.v.) và sinh ra n h i ề u y ê u cầu ngắt, do v ậ y cần c ó m ộ t b ộ đ i ề u k h i ể n giúp
CPU quản lý và phục vụ c á c y ê u cầu ngắt, đ ó là b ộ đ i ề u k h i ể n ngắt PIC
(Programmable Iiiterrupt Controller).
C ấ u t r ú c h ệ thống ngắt cứng (h.48) :
INT
-INTA
lí
IRQO
M u
IRQO IRQ1 IRQ2.. IRQ7
PIC 8259 # 1
TBO
Timer
IRQ7
IRQ1
TB1
KC
TB7
FDC
ì
INT -INTA
CPU X86
INT
ROM
RAM
PIC 8259 # 2
Hình 48
H ệ ..thống ngắt cứng được x â y dựng t r ê n c ơ sở 2 b ộ đ i ề u k h i ể n ngắt PIC
8259, m ỗ i PIC 8259 c ó t h ể nhận 8 tín h i ệ u y ê u cầu ngắt I R Q t ừ t h i ế t bị vào/ra.
H a i PIC n à y được k ế t n ố i v ớ i nhau theo k i ể u g h é p tầng, k ế t hợp hoạt đ ộ n g đ ể
c ó t h ể phục vụ được 16 y ê u cầu ngắt I R Q .
Chức năng cơ bản của PIC 8259 : PIC 8259 là một vi mạch điện tử khả
trình được t h i ế t k ế đ ể g i ú p CPU thực h i ệ n q u á t r ì n h ngắt cứng. PIC 8259 thực
h i ệ n c á c chứsLDẩníỉ-Sau :
+ Ghi nhận được 8 yêu cầu ngắt IRQj , i = 0,1,...,7.
+ Cho p h é p chọn và phục vụ c á c yêu cầu ngắt theo mức ưu t i ê n .
+ Cung cấp cho CPU số ngắt tương ứng v ớ i yêu cầu ngắt IRQị Số ngắt n à y
đ ạ i d i ệ n cho địa chỉ của c h ư ơ n g t r ì n h con phục vụ t h i ế t bị y ê u cầu ngắt I R Q j .
102
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phấn
li
KIẾN TRÚC MÁY VI TÍNH
+ Cho p h é p hoặc k h ô n g cho p h é p c á c y ê u cầu ngắt I R Q j k í c h hoạt hộ
thống ngắt.
1.4 Thiết bị điều khiển ngắt PIC 8259 và cơ chê hoạt động của
hệ thống ngắt cứng
C ấ u t r ú c b ê n n g o à i của PIC 8259 (h. 49) :
-cs|
-WR
—>
IRQO
-RD
AO
PIC 8259
INT
-INTA
DO -D7
CASOCAS2
-SP/-EN
IRQ7
——^
—
N
Vi— •
Vi
•<—
ĩ
Hình 49
Cấu trúc bên trong của PIC 8259 (h.50) :
-INTA
INT
L
i
Logic
điều khiển
D7-D0
Đệm bus
-RD
-w
AO
-cs
Logic đọc
ghi/giải mã
ICW/OCW
CASO
CAS1
CAS2
Logic
ghép ụ
tầng
-SP/-EN -
ĩ
ISR Si
»3 PR
Si
IRR
IRpO
ì
- IRQ7
^
Hình 50
163
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIẾN TRÚC MÁY VI TÍNH
li
C á c k h ố i chức n ă n g :
+ Thanh ghi y ê u cầu ngắt I R R (Interrupt Request Register) : là thanh ghi
8 bít. I R R chứa ( g h i nhận) t ấ t cả c á c y ê u cầu ngắt I R Q i đ ò i phục v ụ . N ế u tín
h i ệ u I R Q ị = " Ì " thì bít IRRị t ư ơ n g ứng được đ ặ t bằng " Ì " .
+ B ộ g i ả i quyết ưu t i ê n PR (Priority R e s o l v e r ) : là thanh g h i 8 b í t . PR xác
định mức ưu tiên của c á c y ê u cầu ngắt. N g ắ t c ó ưu t i ê n cao n h ấ t được c h ọ n và
đ ặ t v à o bít tương ứng trong ISR trong chu k ỳ I N T A .
+ Thanh ghi ngắt đ a n g được phục vụ ISR ( I n Service Register) : là thanh
ghi 8 bít. ISR ghi nhận c á c ngắt đ a n g được phục vụ. Y ê u cầu ngắt I R Q ị n à o
đ a n g được phục vụ thì bít ISRj tương ứng được đ ặ t bằng " Ì " .
+ K h ố i logic đ i ề u k h i ể n : k h ố i logic đ i ề u k h i ể n đ ư a ra tín h i ệ u I N T , được
n ố i thẳng v ớ i c h â n I N T của CPU. K h i I N T c ó mức cao là đ ị i CPU phục vụ
ngắt. K h ố i logic đ i ề u k h i ể n nhận tín h i ệ u I N T A từ CPU. K h i nhận được tín
h i ệ u I N T A , PIC 8259 sẽ cung c ấ p số ngắt ra BUS d ữ l i ệ u cho CPU.
+ K h ố i đ ệ m Bus : là l o ạ i 8 bít, 2 h ư ớ n g , 3 trạng t h á i . C á c từ đ i ề u k h i ể n
I C W , O C W được đ ư a v à o PIC 8259 qua k h ố i n à y đ ể x á c l ậ p c h ế đ ộ hoạt động
của 8259. Số ngắt và trạng t h á i hoạt động của PIC cũng được đ ư a ra BƯS d ữ
l i ệ u qua k h ố i n à y .
+ K h ố i g h é p tầng
PIC 8259 c ó c ơ c ấ u cho p h é p n ố i g h é p tầng c á c PIC 8259 v ớ i nhau và p h ố i
hợp hoạt động của c á c PIC n à y . T ầ n g t h ứ nhất c ó đ ầ u ra I N T n ố i trực t i ế p v ớ i
CPU, g ọ i là PIC 8259-c/ỉiỉ. Đ ầ u v à o I R Q i của PIC chủ được n ố i v ớ i đ ầ u ra
I N T của PIC 8259 t h ứ hai. PIC n à y được g ọ i là PIC 8 2 5 9 - / A £ . C ơ c h ế g h é p
tầng cho p h é p x â y dựng m ộ t h ệ thống ngắt cứng quản lý được đ ế n 64 y ê u cầu
ngắtlRQ.
+ K h ố i logic g h i / đ ọ c và g i ả i m ã : thực h i ệ n g i ả i m ã c á c từ đ i ề u k h i ể n I C W
(Initialization
Command
Word -
Từ điều khiển k h ở i động)
và
OCW
(Operation Command W o r d - T ừ đ i ề u k h i ể n hoạt đ ộ n g ) . Qua hai l o ạ i t ừ đ i ề u
k h i ể n này n g ư ờ i sử dụng c ó t h ể lập t r ì n h x á c l ậ p c h ế đ ộ hoạt đ ộ n g cho PIC.
1Ơ4
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
li
KIẾN TRÚC MÁY VI TÍNH
+ Thanh g h i I M R : là thanh g h i 8 bít, cho p h é p đ ặ t / x ó a mặt n ạ ngắt.
+ Bảng c á c tín h i ệ u c s , AO, R D , W R , và c á c h g h i / đ ọ c PIC 8259 :
•
cs
AO
RD
WR
D4
D3
Hướng thông tin
0
0
0
1
X
X
I R R , ISR = > BUS
0
1
0
1
X
X
( I M R ) = O C W l = > BUS
0
0
1
0
0
0
BUS = > O C W 2
0
0
1
0
0
1
BƯS = > O C W 3
0
0
1
0
1
X
BUS = > I C W 1
0
1
1
0
X
X
BUS = > I C W 2 , I C W 3 , I C W 4 , 0 C W 1
Cơ c h ế hoạt đ ộ n g của h ệ thống ngắt cứng :
Đ i ề u k i ệ n ban đ ầ u : PIC 8259 cần được l ậ p trình k h ở i đ ộ n g qua c á c từ
đ i ề u k h i ể n I C W . Sau k h i c á c từ đ i ề u k h i ể n I C W được nạp thì PIC 8259 sẵn
s à n g hoạt đ ộ n g .
- Một hoặc nhiều thiết bị vào-ra có u cầu được phục vụ phát tín hiệu
I R Q i = " Ì " (mức t í c h cực) cho PIC. PIC ghi nhận c á c yêu cầu ngắt IRQị n à y
bằng c á c h đ ặ t c á c bít I R R ị tương ứng lên " Ì " .
- PIC 8259 chọn IRQi có mức ưu tiên cao nhất để phục vụ. PIC gửi tín
h i ệ u I N T cho CPU, đ ò i CPU phục vụ.
- CPU thực hiện các thao tác sau :
+ thực h i ệ n n ố t l ệ n h của q u á trình h i ệ n h à n h .
+ lưu địa chỉ trở v ề ( n ộ i dung của c á c thanh ghi c s , IP) và thanh ghi cờ
FLAGS vào ngăn xếp.
+ g ử i hai tín h i ệ u trả l ờ i ngắt I N T A cho PIC.
- Khi PIC 8259 nhận được tín hiệu INTA thứ Ì : bít ISRj ứng với IRQi có
mức ưu tiên cao n h ấ t được t h i ế t l ậ p (ISRị = 1) và bít I R R j t ư ơ n g ứng bị x ó a
105
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần Ù
KIẾN TRÚC MÁY VI TÍNH
(IRRị = 0). Trong chu k ỳ I N T A t h ứ nhất n à y PIC 8259 k h ô n g g ử i g ì cho CPU
qua BUS d ữ l i ệ u .
- K h i PIC 8259 nhận được tín h i ệ u I N T A t h ứ 2 : PIC 8259 g ử i số ngắt
tương ứng v ớ i IRQị đ a n g được phục vụ qua BUS d ữ l i ệ u cho CPU.
- CPU nhận số ngắt và trên c ơ sở số ngắt n à y v à o vị t r í t ư ơ n g ứng trong
Bảng véc tơ ngắt đ ể x á c định địa chỉ của c h ư ơ n g t r ì n h phục vụ ngắt. CPƯ nạp
địa chỉ c h ư ơ n g t r ì n h phục vụ ngắt v à o c á c thanh ghi c s và IP và bắt đ ầ u thực
h i ệ n c h ư ơ n g trình phục vụ ngắt n à y .
- K h i thực h i ệ n xong c h ư ơ n g trình phục vụ ngắt ( k h i CPU thực h i ệ n lệnh
I R E T ) thì q u á t r ì n h phục vụ ngắt của CPU cũng k ế t t h ú c . CPU k h ô i phục địa
chỉ trở v ề v à o c á c thanh g h i c s , IP, k h ô i phục n ộ i dung thanh ghi F L A G S và
t i ế p tục thực h i ệ n q u á t r ì n h vừa bị ngắt.
H ệ thống ngắt cứng c ó thể k ế t thúc phục vụ ngắt h i ệ n t h ờ i theo hai c h ế đ ộ :
+ K ế t t h ú c ngắt b ì n h thường E O I (End O f Interrupt) : k h i PIC được đặt
c h ế đ ộ k ế t t h ú c ngắt b ì n h thường E O I thì CPU p h ả i p h á t l ệ n h b á o k ế t
thức ngắt E O I (qua từ đ i ề u k h i ể n O C W 2 ) cho PIC trước k h i r ờ i k h ỏ i
c h ư ơ n g t r ì n h con phục vụ ngắt. K h i đ ó bít ISRị của ngắt đ a n g được phục
vụ sẽ được đặt xuống 0.
+ K ế t t h ú c ngắt tự đ ộ n g A E O I (Automatic E O I ) : k h i PIC được đặt c h ế
đ ộ k ế t t h ú c ngắt tự động A E O I thì t ạ i chu k ỳ I N T A t h ứ 2 bít ISRj của
ngắt đ a n g được phục vụ sẽ được đ ặ t xuống 0.
Bằng các cách nói trên hệ thống ngắt cứng có thể tiếp tục phục vụ yêu cầu
ngắt n à y ở những l ầ n t i ế p theo.
1.5 Lập trình khởi động PIC 8259 và các từ điều khiển khởi
đọng I C W
Cần xác lập chế độ làm việc của PIC 8259 trước khi sử dụng. Quá trình
n à y được g ọ i là l ậ p trình k h ở i đ ộ n g t h i ế t bị. V i ệ c l ậ p t r ì n h k h ở i đ ộ n g PIC 8259
được thực h i ệ n qua c á c t ừ đ i ể u k h i ể n I C W và theo lưu đ ồ sau :
106
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
li
KIẾN TRÚC MÁY VI TÍNH
ICW1
ICW2
ICW4
PIC 8259
sẵn sàng làm việc
a) I C W 1
D7
Dó
D5
D4
D3
D2
DI
DO
X
X
X
1
LUM
ADI
SNGL
IC4
C á c bít D5 - D7 k h ô n g d ù n g cho CPU x86.
+ I C 4 (bít DO) : Cho b i ế t c ó cần I C W 4 ?
IC4 = 0 : k h ô n g cần I C W 4 .
IC4 = Ì : có ICW4.
+ SNGL (bít D I ) : cho b i ế t h ệ thống ngắt chỉ c ó m ộ t PIC hay c ó n h i ề u
PIC g h é p tầng.
S N G L = 0 c ó g h é p tầng
S N G L = Ì chỉ c ó m ộ t PIC 8259
107
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
KIẾN TRÚC MÁY VI TÍNH
li
+ A D I (bít D2) : k h ô n g d ù n g cho h ệ CPU x86
+ L U M : x á c định dạng tín h i ệ u I R Q
L T I M = Ì I R Q p h ả i là tín h i ệ u mức T T L
L T I M = 0 I R Q p h ả i là tín h i ệ u dạng s ư ờ n xung.
+ D4= Ì
+ D5 = D ó = D7 = 0
b) I C W 2 :
I C W 2 định nghĩa số ngắt n ề n cho 7 số n g ắ t c ị n l ạ i .
D7
D6
D5
D4
D3
D2
DI
DO
T7
Tó
T5
T4
T3
X
X
X
Các bít T7 - T3 là 5 bít cao của số ngắt, 3 bít c ò n l ạ i l i ê n quan đ ế n c á c
đ ầ u v à o IRQị
N ă m bít cao T7 - T3 (do n g ư ờ i sử dụng t ù y chọn) c ù n g v ớ i 3 bít t h ấ p nhất
bằng 0 x á c định số ngắt n ề n . Dựa t r ê n số ngắt n ề n ứng v ớ i IRQo n à y , PIC
8259 t ự tạo ra c á c số ngắt t i ế p theo t ư ơ n g ứng v ớ i c á c
IRQỊ
đ ế n IRQ7.
V í dụ : ở h ệ thống ngắt cứng của m á y v i t í n h PC, c á c số ngắt do PIC 8259 chủ cung c ấ p n h ư sau :
0
0
0
0
1
0
0
0
ứng v ớ i I R Q 0
0
0
0
0
1
0
0
1
ứng v ớ i I R Q Ì
0
0
0
0
1
1
1
1
c) I C W 3 : liên quan đ ế n g h é p tầng.
M ạ c h phần cứng c ó c h â n SP/EN x á c định c h ủ / t h ợ ở c h ế đ ộ g h é p tầng : n ế u
SP = Ì thì PIC là chu, nếu SP = 0 thì PIC là thợ.
Có hai l o ạ i I C W 3
- I C W 3 cho PIC chủ : x á c định đ ầ u v à o I R Q j nhận tín h i ệ u I N T từ PIC t h ợ
thứ i .
108
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
li
KIẾN TRÚC MÁY VI TÍNH
D7
D6
D5
D4
D3
D2
DI
DO
SI
S6
S5
S4
S3
S2
SI
SO
N ế u Si = Ì b á o c ó PIC t h ợ n ố i v à o c h â n I R Q i của chủ
- I C W 3 cho PIC t h ợ : x á c định địa chỉ (chỉ thị nhận dạng) của PIC thợ.
0
0
0
0
0
ID2
mo
ID1
C á c bít I D 2 , I D 1 , IDO x á c định địa chỉ r i ê n g của c á c PIC 8 2 5 9 - t h ợ . K h i
nhận được tín h i ệ u I N T A 2 , PIC 8 2 5 9 - t h ợ so s á n h c á c tín h i ệ u CASO - CAS2
(phát ra t ừ PIC 8 2 5 9 - c h ủ ) v ớ i I D 2 - IDO, n ế u c h ú n g giống nhau thì PIC
8 2 5 9 - t h ợ g ử i số ngắt l ê n BUS d ữ l i ệ u cho CPU, ngược l ạ i thì k h ơ n g g ử i .
d) I C W 4 :
D7
Dó
D5
D4
D3
D2
DI
DO
Ọ
0
0
SFNM
BUFF
M/S
AEOI
MP
+ bít ịip : b á o cho PIC 8259 b i ế t phải l à m việc v ớ i h ọ v i x ử lý n à o .
Jip = Ì : l à m v i ệ c v ớ i h ọ x86
ịìP = 0 : l à m v i ệ c v ớ i h ọ 8085
+ b i t A E O I : x á c l ậ p c h ế đ ộ k ế t t h ú c ngắt.
A E O I = 0 : k ế t t h ú c b ì n h thường E O I
A E O I = Ì : k ế t t h ú c tự động A E O I
+ bít B U F F : b á o c h ế đ ộ c ó b ộ đ ệ m BUS
BUFF = Ì : PIC l à m việc ở c h ế đ ộ đ ệ m bus, lúc này tín h i ệ u SP/EN ở c h ế đ ộ
ra và việc đ ị n h nghĩa chủ/thợ được x á c định bằng bít M/S.
+ bít M/S : x á c định chủ/thợ
M/S = Ì : PIC là chủ
M/S = 0 : PIC là thợ..
N ế u B U F F = 0 t h ì M/S k h ơ n g c ó ý nghĩa.
109
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
li
KIẾN TRÚC MÁY VI TÍNH
+ bít S F N M : bít n à y được đ ặ t bằng 0 ngay k h i k h ở i đ ộ n g h ệ thống. K i ể u
ưu tiên c ố định là mặc đ ị n h , trong đ ó IRQo c ó mức ưu t i ê n cao nhất, I R Q
7
có
mức ưu t i ê n thấp nhất. C ó t h ể thay đ ổ i k i ể u ưu t i ê n bằng t ừ đ i ề u k h i ể n O C W 2 .
Trong k i ể u ưu tiên c ố định, k h i S F N M = 0 , k h i bít ISRj = Ì thì t ấ t cả c á c I R Q j
c ó mức ưu t i ê n thấp h ơ n đ ề u bị c ấ m . Chỉ c ó c á c I R Q i c ó mức ưu t i ê n cao hem
được p h é p g â y ngắt c h ư ơ n g trình phục vụ ngắt h i ệ n t h ờ i .
1.6 Các từ điều khiển hoạt động oe w
C á c từ đ i ề u k h i ể n O C W được d ù n g đ ể x á c l ậ p c á c c h ế đ ộ l à m v i ệ c cụ t h ể
trong q u á t r ì n h hoạt đ ộ n g của PIC 8259. C ó t h ể g ử i c á c từ O C W n à y cho
PIC8259 v à o bất k ỳ lúc n à o sau k h i k h ở i động h ệ thống ngắt.
a) OCWl : cho phép hoặc cấm nhận một yêu cầu ngắt IRQ ị nào đó bằng
mặt nạ ngắt.
V ớ i PIC chủ : địa chỉ thanh g h i chứa O C W l là 2 1 H
V ớ i PIC t h ợ : địa chỉ thanh g h i chứa O C W l là A 1 H
D7
Dó
D5
D4
D3
D2
DI
DO
M7
Mó
M5
M4
M3
M2
MI
MO
M ỗ i bít M i tương ứng v ớ i I R Q i
K h i M i = Ì mặt nạ ngắt được đặt, c ấ m PIC nhận I R Q i ( c ấ m I R Q i g â y ngắt)
K h i M i = 0 mặt nạ ngắt được xoa, cho p h é p PIC nhận I R Q i (cho p h é p I R Q i
g â y ngắt)
H ệ đ i ề u h à n h đ ặ t m ặ t n ạ che chắn c á c I R Q m à h ệ thống c h ư a d ù n g đ ế n .
b) OCW2 : dùng để đổi kiểu ưu tiên và báo kết thúc ngắt EOI.
Địa chỉ thanh ghi chứa O C W 2 : 20h (PIC chủ), AOh (PIC thợ)
PIC cho p h é p chọn m ộ t trong ba c h ế đ ộ ưu t i ê n :
Ưu. tiên cố định : IRQo có mức ưu tiêa cao nhất, IRQ có mức ưu tiên thấp
7
nhất. Trong c h ế đ ộ n à y I R Q mức cao c ó q u y ề n ngắt c h ư ơ n g t r ì n h phục vụ ngắt
c ó mức ưu tiên thấp h ơ n .
110
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần
li
KIẾN TRÚC MÁY VI TÍNH
ư ụ trịn quay v ị n g : I R Q i n à o vừa được phục v ụ t h ì b í t ISRj sẽ bị xoa
xuống 0 và tự đ ộ n g c ó mức ưu tiên thấp nhất. Đ i ề u n à y thực t ế đ ã tạo ra c á c
mức ưu tiên bằng nhau.
Ưu tiên đặc biệt: người lập trình có thể thay đổi mức ưu tiên bằng chương
trình. N ế u c á c b í t trong O C W 2 R = Ì , SL = Ì thì c á c b í t L 2 - L 0 sẽ đ ặ t I R Q „
xuống mức t h ấ p nhất và I R Q
D7
R
D6 D5
SL EOI
D4
0
n + 1
lên mức cao nhất.
D3 D2
0
LO
DI
LI
DO
L2
I
1 Liên quan đến chế độ
s ưu tiên đặc biệt
I
I ĩ EOI =1 (với R=0, SL=0)
1« báo kết thúc ngắt bình thường
{Tổ hợp giá trị các bít R.SL, EOI
xác định các kiểu ưu tiên khác nhau
c) OCW3 : clỊS phép đăt/đọẹ ỊSR và các thanh ghi khác của PLC 8259.
7
6
5
4
3
2
1
0
1
ESMM
SMM
0
1
p
RR
RIS
- E S M M = Ì v à S M M cho p h é p đ ặ t / x o á c h ế đ ộ m ặ t n ạ đặc b i ệ t . C h ế đ ộ
mặt nạ đặc b i ệ t n à y chỉ c ấ m m ộ t I R Q và cho p h é p t ấ t cả c á c I R Q c ò n l ạ i được
yêu cầu ngắt.
- D4 = 0 , D3 = Ì
- bít p : cho phép PIC 8259 làm việc với CPUở chế độ hỏi đáp, khơng
cần qua c á c tín h i ệ u I N T , I N T A . N ế u p = Ì thì PIC c o i tín h i ệ u đ i ề u k h i ể n đọc
R D n h ư là tín h i ệ u I N T A .
- các bít RR và RIS :
RR = Ì & RIS = 0 : báo sẽ đọc IRRở lệnh đọc tiếp sau
RR = Ì & RIS = Ì : báo sẽ đọc ISRở lệnh đọc tiếp sau.
IU
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phần Ù
KIẾN TRÚC MÁY VI TÍNH
1.7 P h â n b ố c h ứ c n ă n g c á c y ê u c ầ u n g ắ t v à s ố n g ắ t t r o n g m á y
PIC 8 2 5 9 - c h ủ :
PIC 8 2 5 9 - c h ủ c h i ế m hai địa chỉ cổng : 20h, 21h
IRQi
Số ngắt
IRQo
08h
B ộ tạo xung nhịp đ ổ n g h ồ h ệ thống
IRQI
09h
T h i ế t bị giao d i ệ n b à n p h í m
IRQ
OAh
PIC 8 2 5 9 - t h ợ
IRQ3
OBh
T h i ế t bị giao d i ệ n v à o / r a n ố i t i ế p 2 ( C O M 2)
IRQ4
oai
T h i ế t bị giao d i ệ n v à o / r a n ố i t i ế p 1 ( C O M 1)
IRQ5
ODh
Dự phòng
IRQ
OEh
T h i ế t bị giao d i ệ n ổ đĩa m ề m F D C
0Fh
T h i ế t bị giao d i ệ n v à o / r a song song ( L P T 1 )
2
6
IRQ7
T h i ế t bị yêu cầu ngắt
PIC 8 2 5 9 - t h ợ :
PIC 8 2 5 9 - t h ợ c h i ế m hai địa chỉ cổng : AOh, A l h
Dây IRQ
IRQ
8
IRQ9
IRQ10
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
SỐ ngắt
T h i ế t bị y ê u cầu ngắt
70h
Đ ồ n g h ồ t h ờ i gian thực
71h
Dự phòng
72h
Card â m thanh
73h
T h i ế t bị giao d i ệ n v à o / r a USB
74h
T h i ế t bị giao d i ệ n chuột PS/2
75h
B ộ đ ổ n g x ử lý x87
76h
77h
B ộ đ i ề u k h i ể n bus I D E
l(primary)
B ộ đ i ể u k h i ể n bus I D E 2 (secondary)
112
Số hóa bởi Trung tâm Học liệu – ĐHTN
PC
Phần li
KIẾN TRÚC MÁY VI TÍNH
2. T R U Y N H Ậ P T R Ự C T I Ế P B Ộ N H Ớ V À B Ộ Đ I Ể U
KHIỂN
D M A C 8237
2.1 K h á i n i ệ m c ơ b ả n
Q u á t r ì n h c h u y ể n d ữ l i ệ u trực t i ế p giữa t h i ế t bị ngoại v i và b ộ n h ớ c h í n h
khơng qua CPU được g ọ i là guấ t4nJbJDMA (Direct M e m o r y Access).
r
Trong q u á t r ì n h D M A , việc chuyển dữ l i ệ u kfrfong_đựỢfr diêu k h i ể n
hỉ ĩ
c h ự ơ n ^ ư ì n h m à được đ i ề u k h i ể n bằng m ộ t t h i ế t bị đặc b i ệ t g ọ i là bộ đ i ề u
k h i ể a J 2 M Ả £ ( D M A Controller).
n
Cấu t r ú c h ệ t h ố n g v à o - r a d ữ liêu k i ể u D M A n h ư sau (h.51) :
Bộ nhớ
chính
—Ti—
CPU
Hệ thống BUS
HOLD
DRQ
DMAC
8237
HLDA
DACK
Thiết bị
ngoại vi
Thiết bị
giao diện
Hình 51
2.2 Sơ đồ khôi mạch DMAC 8237 (h.52)
DRQO
DBO - DB7 Đệm
< = = > ! vào ra
A8-A15
0
A0-A3
Đệm
< £ = = > ! vào/ ra
ĩ> Kênh 1
A4-A7
CLK —
-IOR <-IOW <-MR <-MW
ADSTB
AEN <-EOP
-cs —
Đệm ra
Logic
điều
khiển
DMA
KênhO
ỉ> Kênh 2
DACKO
—
>
DRQ1
DACK1
——>•
DRQ2
DACK2
—
DRQ3
Hình 52
113
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phẩn
li
KIẾN TRÚC MÁY VI TÍNH
- D R Q 0 - D R Q 3 (tín h i ệ u v à o ) : t í n - h i ệ u ^ ổ a x ầ i L D M A . B ố n d ầ y D R Q nối
v ớ i 4 t h i ế t b i c ầ n phục vụ k i ể u D M A . K h i t h i ế t bị n g o ạ i v i đ ư a tín h i ệ u DRQ
lên mức tích cực thì q u á trình D M A bắt đ ầ u .
DRQO c ó mức ưu tiên cao nhất, D R Q 3 c ó mức ưu tiên t h ấ p nhất.
- DACK0-DACK3 (tín hiệu ra): tín hiệu trạ lờiDMA, DACK được nối vào
từng t h i ế t bị n g o à i đ ể b á o cho t h i ế t bị n g o à i b i ế t là D M A C đ a n g phục vụ nó.
- HOLD (tín hiệu ra) : dùng để báo cho CPU là DMAC đòi quyền điều
k h i ể n BUS.
- HLDA(tín hiệu vào) : tín hiệu HLDA được gửi từXPU^IaxliaDMAC
b i ế t là q u y ề n đ i ề u k h i ể n bus thuộc về D M A C .
- A0-A3(tín hiệu vào/ra) : 4 dấy-đỉa- chi thắp. Trong chu kì nghỉ được
d ù n g đ ể x á c định địa chỉ c á c thanh ghi trong D M A C k h i l ậ p t r ì n h hoạt động
cho D M A C . Trong chu k ỳ tích cực được d ù n g đ ể cung c ấ p 4 bít địa chỉ
A 0 - A 3 cho BUS đĩa chỉ.
- A4- A7(tín hiệu ra) : cung cấp 4 bít địa chỉ cao cho bus địa chỉ trong
quá trình D M A .
- DBO - D B 7 ( t í n h i ệ u v à o / r a ) : là BUS 8 bít đ a n ă n g .
Trong chu k ỳ nghỉ : là BUS 8 bít d ữ l i ệ u v à o t r u y ề n d ữ l i ệ u x á c lập chế
đ ộ l à m việc cho D M A C và cũng là BUS 8 bít d ữ l i ệ u ra trong q u á trình
CPU đọc trạng t h á i D M A C .
Trong chu k ỳ tích cực (chu k ỳ D M A ) : t r u y ề n hai l o ạ i t h ô n g t i n trong 2
t h ờ i khoảng :
+ T h ờ i khoảng đ ầ u : v ớ i sự c ó mặt của tín h i ệ u A D S T B t h ì D B 0 - D B 7 là
BUS 8 bít địa chỉ cao nhất ( A 1 5 - A 8 ) , 8 bít địa chỉ n à y c ầ n được chốt l ạ i
đ ể k ế t hợp v ớ i 8 bít địa chỉ t h ấ p ( A 7 - A 0 ) t h à n h địa chỉ 16 bít.
+ T h ờ i khoảng sau : là BUS 8 bít d ữ l i ệ u , d à n h cho t r u y ề n d ữ l i ệ u trong
chế độ D M A .
- M R (tín h i ệ u r a ) : là tín h i ệ u đ i ề u k h i ể n đ ọ c b ộ n h ớ trong c h ế đ ộ D M A .
- M W ( t í n h i ệ u ra) : là tín h i ệ u đ i ề u k h i ể n ghi b ộ n h ớ trong c h ế đ ộ D M A .
- A D S T B (tín h i ệ u r a ) : d ù n g đ ể đ i ề u k h i ể n v i ệ c chốt ( g h i l ạ i ) 8 bít địa chỉ
cao ( A 8 - A 1 5 ) .
114
Số hóa bởi Trung tâm Học liệu – ĐHTN
Phán li
KIẾN TRÚC MÁY VI TÍNH
- A E N : (tín h i ệ u ra) cho p h é p / c ấ m t h i ế t bị chốt địa chỉ hoạt đ ộ n g . A E N
cũng được d ù n g đ ể c ấ m c á c t h i ế t bị đ i ề u k h i ể n BUS k h á c trong c h ế đ ộ D M A .
- EOP (tín hiệu vào/ra) : khUinJŨêỉLỵào, tín hiệu EOP buộc DMAC
kết &ú
do D M A C p M U a b á o đ ã t r u y ề n đ ủ số byte x á c định b ở i TC.
- IOW (tín hiệu vào/ra): trong chế độ nghỉ là tín hiệu vào, tín hiệu này do
CPU cung cấp đ ể đ i ề u k h i ể n g h i d ữ l i ệ u v à o D M A C . Trong chu k ỳ tích cực là
tín hiệu ra, D M A C tạo tín h i ệ u đ i ề u k h i ể n ghi t h i ế t bị ngoại v i .
2.3 Các chê độ hoạt động của DMAC 8237
D M A C 8237 hoạt đ ộ n g trong 2 chu k ỳ c h í n h là : chu k ỳ nghỉ và chu k ỳ
hoạt động.
+ Chu k ỳ nghỉ : k h i k h ô n g c ó k ê n h n à o yêu c á ụ . t h ì D M A C đi vào chu k ỳ
nghỉ. Trong chu k ỳ n à y D M A C "quan s á t " c á c dậy D R Q ở từng nhịp đồng h ồ ,
đồng thời l à m v i ệ c v ớ i CPU. Trong chu k ỳ nghỉ của D M A C t h ì CPU c ó t h ể
xác lập, thay đ ổ i hoặc k i ể m tra n ộ i dung c á c thanh g h i c h ế đ ộ l à m việc của
D M A C . K h i c ó tín h i ệ u D R Q t í c h cực, D M A C g ử i ra tín h i ệ u H O L D và đ i v à o
chu k ỳ hoạt động.
+ Chu k ỳ hoạt đ ộ n g : Trong chu k ỳ hoạt động D M A C 8237 CQJhẩ hoạt
động theo Ì t r ọ j ạ & 4 J đ ể u , t ù y theo l ậ p t r ì n h :
- K i ể u t r u y ề n đ ơ n l ẻ (single t r a n s í e r mode) : trong k i ể u t r u y ề n n à y ,
D M A C được l ậ p t r ì n h đ ể thực hiệp, chimôtj[ầnjjụyền.
Thanh đ ế m từ TC tự
động g i ả m , địa chỉ t ă n g hoặc g i ả m cho đ ế n k h i T C = 0. Trong k i ể u t r u y ề n n à y
DRQ phải được g i ữ ở mức t í c h cực chừng n à o D A C K tích cực c ị n được g h i
nbận. N ế u D R Q c ò n g i ữ ở mức t í c h cực q u á m ộ t l ầ n t r u y ề n t h ì H O L D bị đặt
xuống 0 và D M A C trả q u y ề n đ i ề u k h i ể n bus cho CPU.
- Kiểu truyền khối (block transfer mode): trong kiểu truyền khối DMAC
bắt đầu thực h i ệ n v i ệ c t r u y ề n x ả i í l l ấ L i l ũ : l i ệ u k h i D R Q t í c h cực và t i ế p tục
truyền cho đ ế n k h i thanh đ ế m TC đ ế m xuống 0 hoặc cho đ ế n k h i nhận được
tín m ậ u EOP t ừ b ê n n g o à i . T í n h i ệ u D R Q chỉ cần được g i ữ t í c h cực cho đ ế n
khi D A C K trở t h à n h t í c h cực.
- K i ể u t r u y ề n theo y ê u cầu (demand transfer mode) : troag k i ể u t r u y ề n
này, dữ l i ệ u được t r u y ề n cho đ ế n k h i D R Q k h ơ n g tích cực hoặc TC = 0 hoặc
115
Số hóa bởi Trung tâm Học liệu – ĐHTN