Tải bản đầy đủ (.pdf) (85 trang)

Giáo trình kiến trúc máy vi tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.55 MB, 85 trang )

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.



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



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)



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ó yê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



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



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



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



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



D5

D4


D3

D2

DI

DO

M7



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) : khUiuínJŨêỉ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




×