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 hiệ
Trang 1Phầ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
hiện-iệnh Tốc„jiộ_tuiy nhập bộ nhớ chính (bộ nhớ thao tác) tượng đ ố i chậm
(với D R A M là khoảng lOOns = 1.10~7s) sọ vãi k h ả n ă n g của CPU N ế u CPU nhập cá c lệnh và dữ l i ệ u trực tiế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ớ chính M ặ t k h á c dung-lượng nhớ của-bộ.flJxdchính cũng k h á hạn chế, 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ăng của CPU
Đ ể tăng tốc đ ộ xử lý của CPU đồng thời đ ả m bảo khả 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 kiể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 thờ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 nhỏ trong bộ nhớ chính Các vùng này luôn chuyển dịch k h i chạy chương trình Cơ sở của việc quản lý hệ thống bộ nhớ có phân cấp,
m à trong đó bao g ồ m nhiều l o ạ i thiết bị nhớ k h á c nhau, là dựa trên nguyên lý quy chiếu phân vùng
K ỹ thuật được sử dụng đ ể g i ậ m t h ờ i gian trụng bình 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ệnh và dữ l i ệ u thường được sử dụng nhiều trong quá
t r ì n h thực h i ệ n c h ư ơ n g trình V i ệ c quy c h i ế u (truy nhập) đ ế n b ộ nh ớ chín h chỉ xảy ra k h i k h ô n g tìm thấy t h ô n g tin 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 (thiết bị đĩa từ)
như là m ộ t t h à n h phần của h ệ thống bộ nhớ (h.42)
Trang 2Phần li KIẾN TRÚC MÁY VI TÍNH
CPU
1 2-5 1
I i i I Cache
ik
Bộ nhớ chính DRAM
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ớ chính ỵaọ ọạche Phương p h á p đ ơ n giản nhất được d ù n g
để quy chiếu bộ nhớ c ó cache là phương p h á p á n h x ạ trúc tiếp
V i ệ c quy chiếu đ ế n cache được g ọ i l à " t r ủ ụ g " (hít) n ế u truy nhập được thông t i n (nằm trong ô nhớ c ó địa chỉ CPU đ ò i h ỏ i ) ở trong cache, và g ọ i là
"trượ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ộ nhớ chính
Bô nhớ chính được chia thành nhiều k h ố i , m ỗ i k h ố i bao g ồ m nhiều từ
hoặc nhiều byte (h.43)
Trang 3Phần li KIẾN TRÚC MÁY VI TÍNH
B ộ nhớ 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ị trí x á c định trong cache M ặ L k h ố i cachẹ chứa c á c thông t i n n h ư :
số hiệu thẻ* 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 ộ nhớ c h í n h )
Cấu trúc m ộ t k h ố i cache n h ư sau :
Thao t á c đọc d ữ l i ệ u t ừ bộ nhớ đượ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ị trí c ó số
thứ t ự trùng 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 ó trùng v ớ i số h i ệ u t h ẻ trong địa chỉ BUS hay k h ô n g
Bước 3 : N ế u trùng t h ì việc quy chiếu l à " t r ú n g " và m ộ t t ừ d ữ l i ệ u được đọc t ừ cache-vào~GPU N ế u k h ô n g - t r ù n g (trường hợp " t r ư ợ t " ) t h ì t ừ d ữ l i ệ u phả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 ộ nhớ chính 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 trùng v ớ i n ộ i dung bộ nhớ 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 ể trùng nhau (khi k h ố i cache chưa
bị thay t h ế ) và c ó t h ể k h á c nhau (khi n ộ i dung k h ố i cache bị thay)
93
Trang 4b) 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ệnh g h i b ộ nhớ : k ỹ thuật g h i x u y ê n (vvrite through) và k ỹ thuật sao
lưu (copy back)
+ Ở loại cache ghi x u y ê n (write through) d ữ l i ệ u được g h i l ê n cả cache l ậ n
bộ nhớ 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 thời gian g h i b ộ nhớ tăng lên
+ Ở loại cache sao lưu (copy back) thì 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 ô nhớ chính 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ớ chính (trường hợp "trượ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ờ
Trang 5Phần li KIẾN TRÚC MÁY VI TÍNH
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 ó nhiề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 ả thiế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ách t h à n h 3 phần (h.45) :
Phần x á c định số thứ tự từ (hoặc byte) trong m ộ t khối.ví dụ là 2 bít Các bít n à y x á c định vị trí từ dữ l i ệ u cần truy nhập nằm trong k h ố i cache
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 nhớ (các bít địa chỉ thấp của các k h ố i nhớ trùng 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, nhưng m ỗ i k h ố i có m ộ t thẻ r i ê n g K h i vị trí 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 thành mộiÍập4iê«-4iợ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
Trang 6Phần li KIẾN TRÚC MÁY V I TÍNH
TậpO Tập 1
Ở 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 chương trình Địa chỉ n à y là địa chỉ t u y ế n tính và bắt đ ầ u
từ 0 Chương trình được chia t h à n h c á c k h ú c nhỏ 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ộ nhớ 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 trình 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ạy- tại một thời đ i ể m chỉ cần một số ít trang c h ư ơ n g trình và dữ l i ệ u trong bộ nhớ
Trang 7Phần Ù KIẾN TRÚC MÁY VI TÍNH
vật lý, n ê n k ỹ thuật quản lý bộ nhớ theo trang là một k ỹ thuật thích 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à phân trang Cơ c h ế quản lý bộ n h ó theo
p h â n đoạn đã được trình b à y ở chương 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 thành địa chỉ tuyến tính
N ế u ch ọ n c á c h quản lý theo phâ n đo ạ n th ì địa chỉ t u y ế n t í n h 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ỉ tuyến tính t h à n h địa chỉ vật lý theo cơ c h ế quản lý theo phân trang
Trong cơ c h ế quản lý theo trang, chương trình được chia thành các k h ú c
nhỏ c ó kích thước"xac định, được g ọ i là trang M ỗ i trang chương 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ý quá trình thực h i ệ n chương trình bằng bảng trang
Bảng trang chỉ ra vị trí khung trang (địa chỉ nền) của m ỗ i trang chương trình CPU dựa vào vị trí khung trang và địa chỉ offset của ô nhớ trong trang để tính
PDE có kích 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ó thể quản lý được t ớ i
Trang 8Phần li KIẾN TRÚC MÁY VI TÍNH
Phần Địa chỉ bảng trang chứa 20 bít cao của địa chỉ nền bảng trang (địa chi
bắt đ ầ u m ộ t bảng trang), 12 bít thấ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ính k h á c của trang C á c bít Ì và 2 trong m ỗ i PDE cung
cấp mức đặc quyền và quyền ghi/đọc v.v của t ấ t cả c á c trang trỏ 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ỉ tuyến tính được d ù n g đ ể x á c định vị trí của PDE trong t h ư mục trang (vị trí so v ớ i nền thư mục trang)
+ Bảng trang :
Bảng trang c ó kích thước 4 Kbyte Bảng trang chứa 1024 Lối vào bảng trang PTE (Page Table Entry)
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 4Kbyte, 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 :
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 thấ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ính k h á c của trang C á c bít l v à 2 trong m ỗ i PTE cung cấp mức đặc quyền và quyền ghi/đọc v.v của t ấ t cả c á c trang trỏ 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ị trí
so v ớ i nền bảng trang)
Có hai mức đặc quyển được d ù n g đ ể bảo vệ trang : mức c h ư ơ n g trình ứng
dụng (tương đ ư ơ 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ương đ ư ơ n g mức 0, Ì , 2 trong quản lý theo đ o ạ n )
Mức thấp nhấ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 ghi/đ ọ 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 thấp nhất trong địa chỉ t u y ế n t í n h
Trang 9Phần li KIÊN TRÚC MÁY VI TÍNH
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 trình 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ỉ tuyến tính Đị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 ế phâ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
Bộ nhớ vật lý
Trang 10Ngắt là sự k i ệ n CPU bị tạm dừng việc thực h i ệ n quá trình c h í n h và chuyển sang thực h i ệ n quá trình phục vụ ngắt Ngắt cứng là p h ư ơ n g p h á p vào/ra dữ
l i ệ u , trong đ ó thiết bị vào/ra (thiết bị vật lý : bàn p h í m , m á y i n , đổng h ồ nhịp thời gian v.v.) chủ động k h ở i động quá trình vào/ra Q u á trình phục vụ ngắt cứng được kích hoạt bằng m ộ t tín hiệu vật lý từ b ê n n g o à i
Thuật ngữ " ngắt" xuất phá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 trình con phục vụ hoạt động của hệ thống m á y tính và nói đ ế n c á c h kích hoạt các chương trình con này T ấ t cả các chương 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 viết sẵn (là các c h ư ơ n g trình 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 trìn h con n à y
Trang 11Phẩn li KIẾN TRÚC MÁY VI TÍNH
phải được đặt ở m ộ t vùng x á c định là Bảng véc tơ ngắt, n ằ m trong bộ nhớ
c h í n h Các c h ư ơ n g trình con phục vụ ngắt cứng thường được d ù n g để đ i ề u
k h i ể n quá trình vào/ra v ớ i các thiết bị v à o - r a chuẩn ở mức vật lý Các chương trình con phục vụ ngắt cứng được kích 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ìn h con phục vụ ngắt m ề m là c á c chươn g trì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ích hoạt bởi lệnh INT trong h ệ lệnh của CPU Các chương trình con phục vụ ngắt logic cũng phục vụ cho hoạt đ ộn g của h ệ thống, nhưn g c h ú n g chỉ được kíc h hoạt k h i CPU thực h i ệ n lệnh và phá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 chương trình phục vụ ngắt Bảng n à y có 256 ô, các ô được đánh số thứ tự lần lượt từ OOh, Olh, , 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 chương trình phục vụ ngắt xác định, các địa chỉ này
Số ngắt Chức n ă n g của chương trình
OOh Olh
X ử lý chia cho 0 Thực hiện gỡ r ố i (debug)
08h 09h
Đồng h ồ hệ thống Phục vụ bàn phím
Trang 12Phần li KIẾN TRÚC MÁY VI TÍNH
1.3 H ệ t h ố n g n g ắ t c ứ n g
CPU được thiế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ị ngoại v i yêu cầu được phục vụ theo phương p h á p ngắt cứng ( b à n p h í m , đồng h ồ h ệ thống, máy
i n , v.v.) và sinh ra nhiề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)
INT PIC 8259 # 2
Hình 48
H ệ thống ngắt cứng được xây dựng trên c ơ sở 2 bộ đ i ề u k h i ể n ngắt PIC
8259, m ỗ i PIC 8259 có thể 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
Hai 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 động để
có thể 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 thiế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 tiê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 trình con phục vụ t h i ế t bị yêu cầu ngắt I R Q j
Trang 13DO -D7
CAS2 -SP/-EN -INTA
CASO-DO -D7
CAS2 -SP/-EN
CASO-— CASO-— ^ -INTA
DO -D7
CAS2 -SP/-EN
N -INTA
DO -D7
CAS2 -SP/-EN
CASO-V i —
•<—
• PIC 8259
ĩ
IRQO
IRQ7
Hình 49 Cấu trúc bên trong của PIC 8259 (h.50) :
- IRQ7
Hình 50
Trang 14Phần li KIẾN TRÚC MÁY VI TÍNH
Các k h ố i chức n ă n g :
+ Thanh ghi yêu cầu ngắt IRR (Interrupt Request Register) : là thanh ghi
8 bít IRR chứa (ghi 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 hiệu IRQị = " Ì " thì bít IRRị tương ứng được đ ặ t bằng " Ì "
+ B ộ g i ả i quyết ưu tiên PR (Priority Resolver): là thanh ghi 8 bít PR xác
định mức ưu tiên của c á c yêu cầu ngắt Ngắt c ó ưu tiên cao nhất được chọ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 hiệu I N T A , PIC 8259 sẽ cung cấp số ngắt ra BUS d ữ l i ệ u cho CPU
I N T của PIC 8259 thứ 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
n g ắ t l R Q
+ K h ố i logic ghi/đọ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 W o r d - T ừ đ i ề u k h i ể n k h ở i động) và O C W (Operation Command W o r d - T ừ đ i ề u k h i ể n hoạt động) Qua hai l o ạ i từ đ i ề u
k h i ể n này n g ư ờ i sử dụng c ó thể lập trình x á c lập c h ế đ ộ hoạt đ ộ n g cho PIC
Trang 15• Cơ c h ế hoạt động 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 động 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àng hoạt động
- 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ích 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 IRRị 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
hiệ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 hiện hành
+ lưu địa chỉ trở về ( n ộ i dung của c á c thanh ghi c s , IP) và thanh ghi cờ
F L A G S v à o n g ă 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 nhất được thiết l ậ p (ISRị = 1) và bít I R R j tương ứng bị x ó a
Trang 16c h ư ơ n g trình 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 thúc ngắt tự động A E O I (Automatic EOI) : k h i PIC được đặt c h ế
đ ộ k ế t thú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
đ ọ n g 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 động thiết bị V i ệ c l ậ p trình k h ở i động PIC 8259 được thực hiện qua các từ đ i ể u k h i ể n I C W và theo lưu đ ồ sau :
Trang 17+ SNGL (bít D I ) : cho biết h ệ thống ngắt chỉ c ó m ộ t PIC hay c ó nhiều
PIC g h é p tầng
SNGL = 0 c ó g h é p tầng SNGL = Ì chỉ c ó m ộ t PIC 8259
Trang 18Các bít T7 - T3 là 5 bít cao của số ngắt, 3 bít c ò n l ạ i liê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 trê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ương ứng v ớ i c á c I R Q Ị đ ế 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 :
ứng v ớ i I R Q 0 ứng v ớ i I R Q Ì
Trang 19Phần li KIẾN TRÚC MÁY VI TÍNH
D7 D6 D5 D4 D3 D2 D I DO
N ế u Si = Ì b á o c ó PIC th ợ n ố i và o châ n I R Q i của ch ủ
- I C W 3 cho PIC thợ : x á c định địa chỉ (chỉ thị nhận dạng) của PIC thợ
C á c bít I D 2 , I D 1 , IDO x á c định địa chỉ riêng của c á c PIC 8259-thợ 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
BUFF = Ì : PIC làm việc ở c h ế đ ộ đ ệ m bus, lúc này tín hiệu SP/EN ở c h ế đ ộ
ra và việc định 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
Trang 20Phầ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 động h ệ thống K i ể u
ưu tiên c ố định là mặc định, trong đ ó IRQo c ó mức ưu tiên cao nhất, I R Q7 có
mức ưu tiên thấp nhất Có thể thay đ ổ i k i ể u ưu tiên bằng từ đ i ề u k h i ể n OCW2 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 tiên thấp hơn đ ề u bị c ấ m Chỉ có c á c I R Q i c ó mức ưu tiê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 việc cụ thể trong q u á trình hoạt động của PIC 8259 Có thể 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 ghi chứa O C W l là 2 1 H
V ớ i PIC thợ : địa chỉ thanh ghi chứa O C W l là A 1 H
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 OCW2 : 20h (PIC chủ), AOh (PIC thợ)
PIC cho p h é p chọn m ộ t trong ba c h ế đ ộ ưu tiên :
Ưu tiên cố định : IRQo có mức ưu tiêa cao nhất, IRQ7 có mức ưu tiên thấp
nhất Trong c h ế đ ộ này I R Q mức cao c ó quyền ngắt c h ư ơ n g trình phục vụ ngắt
c ó mức ưu tiên thấp hơn
Trang 21Phầ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ụ thì bít ISRj sẽ bị xoa xuống 0 và tự động 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
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
- E S M M = Ì và S M M cho p h é p đặt/xoá c h ế đ ộ mặt nạ đặc biệt C h ế đ ộ
mặt nạ đặc biệ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 coi 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
Trang 22IRQ3 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 o a i T h i ế t bị giao d i ệ n vào/r a n ố i t i ế p 1 ( C O M 1)
I R Q6 OEh T h i ế t bị giao d i ệ n ổ đĩa m ề m F D C
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
Trang 23Phầ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 K H I Ể N
D M A C 8 2 3 7
2.1 K h á i n i ệ m c ơ b ả n
Quá trình chuyển d ữ l i ệ u trực t i ế p giữa thiết bị ngoại v i và bộ nhớ c h í n h
không qua CPU được g ọ i là guấrt4nJbJDMA (Direct M e m o r y Access)
Trong quá trình D M A , việc chuyển dữ l i ệ u kfrfong_đựỢfr diêu k h i ể n hỉ n ĩ
c h ự ơ n ^ ư ì n h m à được đ i ề u k h i ể n bằng một thiết bị đặc biệt g ọ i là bộ đ i ề u
8237 DACK giao diện Thiết bị
Hệ thống BUS
Thiết bị ngoại vi
Hình 51 2.2 Sơ đồ khôi mạch DMAC 8237 (h.52)
DBO - DB7
< = = > !
A8-A15
Đệm vào ra
Trang 24Phẩ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 thiết b i c ầ n phục vụ k i ể u D M A K h i thiết bị ngoạ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, DRQ3 c ó mức ưu tiên thấ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 thiết bị n g o à i để b á o cho thiế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 trình 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 - DB7(tín h i ệ u vào/ra) : 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 quá trình
CPU đọc trạng thá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 thờ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 thì 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ỉ thấ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
c h ế đ ộ D M A
- M R (tín hiệu r a ) : là tín h i ệ u đ i ề u k h i ể n đọc b ộ nhớ 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ộ nhớ trong c h ế đ ộ D M A
- ADSTB (tín h i ệ u r a ) : d ù n g để đ i ề u k h i ể n việc chốt (ghi l ạ i ) 8 bít địa chỉ cao ( A 8 - A 1 5 )
Trang 25Phá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 thiết bị chốt địa chỉ hoạt động 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 &ú<UỊUi4tì»k»DMA L à tí n h i ệ u ra trong c h ế đ ộ hoạt đ ộng , tí n h i ệ u EOP
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 ghi 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 thiế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 động 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 việc v ớ i CPU Trong chu k ỳ nghỉ của D M A C thì CPU c ó thể xác lập, thay đ ổ i hoặc k i ể m tra n ộ i dung c á c thanh ghi 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ích 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 động : 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 trình :
- K i ể u truyền đơn l ẻ (single transíer mode) : trong k i ể u truyền này,
D M A C được l ậ p trìn h đ ể thực hiệp, chimôtj[ầnjjụyền Thanh đ ế m từ T C tự
động giảm, địa chỉ t ă n g hoặc g i ả m cho đ ế n k h i TC = 0 Trong k i ể u truyề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íc h cực c ò n được gh i nbận Nếu D R Q c ò n g i ữ ở mức tích cực q u á m ộ t l ầ n t r u y ề n thì H O L D bị đặt
xuống 0 và D M A C trả quyề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 việc t r u y ề n x ả i í l l ấ L i l ũ : l i ệ u k h i D R Q tích cực và t i ế p tục truyền cho đ ế n k h i thanh đ ế m T C đ ế 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ích cực cho đ ế n khi D A C K trở t h à n h tíc h cực
- K i ể u truyền theo yêu cầu (demand transfer mode) : troag k i ể u truyề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íc h cực hoặc T C = 0 hoặc
Trang 26Phấn li KIẾN TRÚC MÁY VI TÍNH
nhận được tín h i ệ u EOP V i ệ c truyền dữ l i ệ u trực t i ế p cho đ ế n k h i t h i ế t bị bên
n g o à i chuyển được hết d ữ l i ệ u của n ó N ế u t h i ế t bị chuẩn bị d ữ l i ệ u chậm hem,
n ó đặt D R Q t h à n h k h ô n g tích cực K h i thiết bị chuẩn bị xong thì n ó đ ặ t DRQ lên t h à n h tích cực và quá trình D M A l ạ i t i ế p tục
- K i ể u g h é p tầng(Cascade mode)(h.53)
HOLD
DMAC
8237 CPU
DMAC
8237
DRQ HOLD DACK HLDA
DMAC
8237 mức 2
DRQ DACK
Hình 53
Trong k i ể u g h é p tầng : d â y H O L D của D M A C tầng 2 n ố i vói d â y DRQ của D M A C tầng 1 Dây D A C K của D M A C tầng Ì n ố i v ớ i c á c d â y H L D A của
D M A C tầng 2
Yêu cầu D R Q của D M A C tầng 2 được truyền qua mạch p h â n định ưu tiên
của D M A G t ầ a g 1 Trong trường hợp k ê n h c ó n ố i tầng, D M A C tầng Ì chỉ thực
h i ệ n chức n ă n g phân định ưu tiên và k h ô n g đưa ra các tín h i ệ u đ i ề u k h i ể n BUS của r i ê n g n ó
2.4 Các thanh ghi của DMAC
- Thanh g h i địa chỉ h i ệ n t h ờ i (16 bít ) : Thanh g h i n à y chứa g i á trị địa
c h i của ô nhớ đ a n g được truy nhập trong quá trình D M A Địa chi tự động tăng hoặc g i ả m sau m ó t l ầ n truyền và giá trị tức t h ờ i n à y l ậ p tức được nạp vào đây Thanh ghi n à y được ghi/đọc b ở i CPU
- Thanh ghi đ ế m từ h i ệ n t h ờ i (16 bít) : thanh ghi này g i ữ số l ầ n t r u y ề n
được thực h i ệ n Số đ ế m n à y g i ả m sau m ỗ i l ầ n truyền K h i giá trị của
thanh ghi đ ế m từ h i ệ n t h ờ i g i ả m xuống 0 thì tín h i ệ u EOP được tạo ra Thanh ghi n à y được ghi/đọc b ở i CPU
Trang 27Phần li KIẾN TRÚC MÁY VI TÍNH
Các thanh ghi đ i ề u k h i ể n và trạng thái :
+ Thanh ghi lệnh (Command Register)
Thanh ghi lệnh (8 bít) này được nạp để xác lập chế độ làm việc cho
D M A C : cho p h é p hoạt động, k i ể u ưu tiên, k i ể u tốc đ ộ truy nhập, dạng tín
= 1 cho phép địa chỉ kênh 0
= 0 cho DMAC làm việc
= 1 cấm DMAC làm việc
0 đọc/ghi bình thường
1 đọc ghi nhanh
0 ưu tiên cố định, DRQO mức cao nhất
1 ưu tiên quay vòng
= 0 ghi bình thường
= 1 ghi mở rộng
• Í :
+ Thanh ghi yêu cầu (request register)
Thanh ghi yêu cầu (8 bít): cho phép DMAC có thể trả lời DACK cho từng
thiết bị yê u cầu và đ ặ t / x ó a yê u cầu DRQ
Trang 280 xóa mặt nạ kênh 3
1 đặt mặt nạ kênh 3 + Thanh ghi trạng thái :
Thanh ghi trạng thái(8 bít): cho biết trạng thái DRQ và TC của từng kênh
Trang 292.5 Lập trình chê độ làm việc DMAC 8237
Địa chỉ nền của DMAC 8237 #1 : OOOh
Địa chỉ n ề n của D M A C 8237 #2 : OCOh
+ L ậ p trình c á c thanh g h i đ i ề u k h i ể n
Địa chỉ thanh ghi
Trang 30Phần li KIẾN TRÚC MÁY VI TÍNH
+ L ậ p trình c á c thanh ghi địa chỉ và đ ế m
+ N ạ p byte thấp cho thanh ghi địa chỉ n ề n
+ N ạ p byte cao cho thanh gh i đ ị a ch ỉ n ề n
+ N ạ p byte th ấ p cho thanh g h i đ ế m
+ N ạ p byte cao cho thanh gh i đ ế m
+ N ạ p thanh gh i lệnh , thanh gh i yê u cầ u và thanh g h i k i ể u l à m việc + N ạ p thanh ghi địa chỉ trang
+ X ó a mặt nạ k ê n h cần d ù n g
+ Cho p h é p k ê n h hoạt động
Trang 31Phẩn í! KIẾN TRÚC MÁY VI TÍNH
2.6 Q u á t r ì n h D M A
D M A C được xác lập c h ế đ ộ l à m việc : c á c thanh ghi lệnh, thanh ghi k i ể u
làm việc, thanh ghi địa chỉ nền và thanh đ ế m kích thước k h ố i d ữ l i ệ u được nạp, cho phép k ê n h l à m việc
-Thiết bị vào-ra phát tín hiệu DRQ cho DMAC
- D M A C phát tín h i ệ u H O L D = Ì cho CPU, đòi CPU đ i vào c h ế đ ộ D M A
- CPU thực h i ệ n nốt chu k ỳ m á y
- C P Ư phát tín h i ệ u H L D A cho D M A C và tách ra k h ỏ i h ệ thống BUS
Quyền đi ề u k h i ể n BUS thuộc v ề D M A C
- D M A C l à m chủ cá c BUS địa chỉ, BUS số l i ệ u và BUS đi ề u khiển D M A C tạo ra tín h i ệ u D A C K , p h á t ra đỉa chỉ bộ nhớ (16 bít), tạo tín h i ệ u đ i ề u
khiển ghi/ đọc t h i ế t bị vào/ra, tín h i ệ u đ i ề u k h i ể n ghỉ/đọc bộ nhớ và m ộ t
byte dữ l i ệ u được truyền trực tiếp giữa bộ nhớ và thiết bị v à o - r a Địa chỉ
ô nhớ tiếp theo được phát ra và quá trình trên lặp l ạ i cho đ ế n k h i thực
hiện xong quá trình D M A theo k i ể u đã được lập trình (TC = 0)
- K h i quá trình D M A k ế t thúc D M A C phát tín h i ệ u H O L D = 0 cho CPU
và trả quyền đ i ề u k h i ể n hệ thống BUS cho CPƯ Q u á trình D M A cũng
c ó th ể được k ế t t h ú c từ bê n ngoà i bằng tín h i ệ u EOP
- CPU nắm l ạ i quyền điều khiển hệ thống BUS và tiếp tục làm việc bình thường
2.7 Mạch DMAirangJDáy vi tính PC/AT (h.54)
CPU
HOLD HLDA
8237
#2
DRQ1 DACK1
DRQO DACKO
8237
#1 HOLD HLDA Kênh 5
Kênh 6 Kênh 7
Trang 32D M A C chỉ tạo được địa chỉ 16 bít n ê n chỉ cho p h é p truy nhập được v ù n g
nhớ 64 Kbyte Đ ể thực h i ệ n q u á trình D M A v ớ i l o ạ i b ộ nhớ c ó bus địa chỉ 24
bít ỏ m á y PC n g ư ờ i ta t ổ chức quản lý b ộ n h ớ theo trang
N g ư ờ i ta thiết k ế c á c thanh ghi trang chứa 8 bít cao của địa chỉ 24 bít, k ế t
h ơ p v ớ i m ó t m á c h điên từ (74LS612) đ ể tạo c á c địa chỉ vật lý 24 bít trong q u á
Trang 33Vào/ra nối tiếp là phương pháp kết nối và truyền dữ liệu giữa máy tính và
t h i ế t bị ngo ạ i v i trong đ ố m ã chứa thôn g t i n được t r u y ề n theo từng bít, bít n ọ
sau bít kia (truyền t i n n ố i t i ế p )
3.1 Chuẩn truyền tin RS-232
Chuẩn truyền t i n RS-232 quy định về phương p h á p k ế t n ố i và giao d i ệ n
giữa DTE và DCE (h.55)
DTE (Data Terminal Equipment) thiết bị đầu c u ố i d ữ l i ệ u : là thiết bị phát
hoặc nhận dữ l i ệ u
DCE (Data Circuit-terminating E q u i p m e n t ) : thiết bị t r u y ề n d ữ l i ệ u
Chuẩn RS 232 Mạng truyền tin
Trang 34•
GND TxD RxD DTR
RTS CTS
CD
RI
Trang 35CD : DCE b á o p h á t h i ệ n được sóng mang của phía b ê n kia
R I : DCE b á o nhận được tín h i ệ u rung c h u ô n g
D T E t r u y ề n d ữ l i ệ u k h ô n g đ ồ n g b ộ về pha nhưn g đ ồ n g b ộ trê n từng byte
dữ liệu bằng bít " START" D ữ l i ệ u k h i được truyền có k h u ô n dạng sau Ì
r r \
Khuôn dạng dữ l i ệ u giữa bên phát và bên nhận phải được chọn giống nhau
Trang 36Phần li KIẾN TRÚC MÁY VI TÍNH
3.2 M o d e m ( D C E )
K h i cần thực h i ệ n truyền dữ l i ệ u giữa hai m á y tính khoảng c á c h lớn hơn
20 m é t , p h ư ơ n g p h á p có h i ệ u quả nhất là truyền qua h ệ thống đ i ệ n thoại công
cộng T h i ế t bị k ế t n ố i m á y tính số v ớ i h ệ thống đ i ệ n thoại là M o d e m Modem thực h i ệ n chuyển tín h i ệ u số nhị phân t h à n h tín h i ệ u tương tự đ ể h ệ thống điện thoại c ó thể truyền đi được M o d e m cũng thực h i ệ n chuyển tín h i ệ u tương tự
nhận được từ h ệ thống đ i ệ n thoại t h à n h tín h i ệ u số nhị p h â n cho m á y v i tính
N g o à i chức n ă n g đ i ề u c h ế (MOdulate) và g i ả i đ i ề u c h ế (DEModulate), modem
c ò n thực hiê n c á c chức n ă n g giao d i ệ n v ớ i h ệ thốn g đ i ệ n tho ạ i v à v ớ i má y vi tính
3.3 Kết nối kiểu Null-modem
Có thể thực h i ệ n k ế t n ố i và truyền t i n trực t i ế p giữa m á y tính v ớ i m á y tính
hoặc giữa m á y tính v ớ i thiết bị ngoại v i k h á c qua cổng n ố i t i ế p , k h ô n g qua
modem Phương p h á p k ế t n ố i trực t i ế p D T E - D T E ( m á y tính v ớ i m á y tính)
k h ô n g qua M o d e m được g ọ i là k ế t n ố i k i ể u N u l l - M o d e m K h i thực hiện kết
n ố i và truyền t i n n ố i t i ế p k h ô n g qua M o d e m v ẫ n cần tuân theo chuẩn R ổ 232
Có hai k i ể u k ế t n ố i N u l l - m o d e m : k i ể u 7 d â y và k i ể u 3 d â y
K ế t n ố i N u l l - m o d e m k i ể u 7 dâ y (h.58) và N u l l - m o d e m k i ể u 3 d â y (h.59):
GND TxD RxD DTR DTE DSR
GND TxD RxD DTR DTE DSR
Trang 37DTE truyền dữ liệu
DTE đặt RTS = 0
Kết thúc
Hình 60
3.4 Thiết bị giao diện vào/ra nôi tiếp ƯART 8250/16450
T h i ế t bị giao d i ệ n vào/r a n ố i t i ế p U A R T 8250/16450 thực h i ệ n hai chức năng chính :
+ Chuyển Ì byte d ữ l i ệ u (nhận từ CPU) dạng 8 bits song song thành dạng nối tiếp , tạo khung d ữ l i ệ u dạng n ố i t i ế p và phát đi tuần tự từng bít cho đ ế n
Trang 38Phần li KIẾN TRÚC MÁY VI TÍNH
hết byte d ữ l i ệ u N h ậ n Ì khun g d ữ l i ệ u d ạ n g n ố i t i ế p , l o ạ i b ỏ c á c bí t tạo khung
(bit START, PARITY.STOP), chuyển t h à n h dạng d ữ l i ệ u song song
+ Tạo và nhận c á c tín h i ệ u bắt tay theo chuẩn RS 232
EIA
-Đầu nối
9 chân hoặc
a) Thanh ghi dữ liệu phát THR :
T H R là nơi chứa d ữ l i ệ u (hoặc k ý tự) cần p h á t đi
Trang 39Phẩn li KIẾN TRÚC MÁY VI TÍNH
D L A B là bít D7 của thanh ghi LCR
c) Thanh ghi điều khiển đường truyền LCR
Thanh ghi L Í R x á c đ ịn h k h u ô n dạng d ữ l i ệ u p h á t / n h ậ n và cho p h é p truy nhập vào các thanh ghi T H R , RBR , IER hoặc BRG
Địa c h ỉ : Địa chỉ nền +3, ghi
D4 = 0 Số lượng l ẻ bít " Ì " được b á o hoặc k i ể m tra
D4 = Ì Số lượng chẵn bít " Ì " được b á o hoặc k i ể m tra
D 5 - chọn mức tích cực của bít parity
Nếu D5 = Ì và D 4 = Ì thì mức tíc h cực của bít parity là 0 (Parity chẵn) Nếu D5 = Ì và D 4 = 0 th ì mức tíc h cực của bít parity là Ì (Parity l ẻ )
Trang 40ả) Thanh ghi xác lập tốc độ truyền 16 bít BRG
B R G g ồ m 2 thanh g h i byte cao và byte th ấ p , x á c đ ịn h h ệ s ố chia của tốc
Tốc đ ộ t r u y ề n ( b á u d )