Trong kỹ thuật máy tính, thuật ng giao di n (interfacing) có nghĩa là ghép n i gi a các thi t b v n khác nhau v t c đ và tín hi u (m c logic) sao cho chúng có thể hiểu đ c nhau hay nói cách khác chúng có thể trao đ i đ c s li u v i nhau. Hiểu theo nghĩa hẹp, interfacing là m ch đi n t thực hi n vi c ghép n i các IO (Input Output) v i bus cuả h vi x lý. Ví dụ để ghép n i máy in v i CPU cần phải có b giao di n gắn vào bus máy tính để chuyển đ i các thông tin t CPU thành các ký tự và hình ảnh trên máy in.
Để n i b nh v i các ngo i vi hoặc b nh và các phần khác cuả máy tính ng i ta s dụng tập h p các đ ng dây gọi là bus. Khi m t IO hoặc m t module nh đ c n i v i bus, m t giao di n phải đ c s dụng. M ch giao ti p (adapter) bao g m các m ch chuyển đ i logic và tín hi u để các thi t b không t ng thích nhau có thể ghép n i v i nhau. Nh trên đã nói, các thành phần cuả h th ng máy tính nh b nh , các IO và các thành phần khác phải n i v i nhau. B ALU và b đi u khiển nằm chung v i nhau trong m t chip gọi là CPU. Trong các máy tính lo i cũ, CPU n i trực ti p v i b nh và IO thông qua các b giao ti p logic (IL = interface logic) dùng cable . Trong các máy tính hi n đ i ng i ta dùng m t bus chung duy nhất. Bus này bao g m m t s dây n i và đầu n i.
Trong các h th ng đ n giản, CPU đi u hành toàn b quá trình trao đ i thông tin trên bus. Bus là m t tập h p các đ ng dây để truy n s li u. Trong cấu hình máy tính ch có m t bus thì bus bao g m 3 lo i:
* Bus s li u (data bus): đây là các đ ng dây mang s li u. Hi n nay bus s li u có thể có đ r ng 8,16, 32 hoặc 64 bit.
* Bus đ a ch (address bus): đây là tập h p các đ ng dây dùng để xác đ nh đ a ch b nh và các IO. Tuỳ theo máy mà bus đ a ch có thể là 16, 20, 24, 32, 36 bit.
* Bus đi u khiển (control bus): Các đ ng dây này bao g m các đ ng dây để đi u khiển thi t b nh đọc, vi t, ngu n nuôi ...
Cùng v i quá trình phát triển cuả kỹ thuật ch t o máy tính đã có các chuẩn bus sau đây.
- Bus m r ng ISA (Industry Standard Architectute) = AT bus. Bus m r ng AT g m 2 đo n khe cắm cách r i nhau, m t đo n 62 chân (XT bus) và m t đo n thêm 36 chân (AT). Bus m r ng này có 15 đ ng ngắt, 16 đ ng s li u, 24 đ ng đ a ch và m t s đ ng đi u khiển khác. Năm 1987 Uỷ ban chuẩn qu c gia cuả Mỹ cùng v i Vi n kỹ thuật đi n - đi n t (IEEE) đã đ a ra b tiêu chuẩn gọi là ISA bao g m tất cả các thông tin kỹ thuật cần thi t để t o ra các lo i bus và card m r ng trên AT. T đó AT bus gọi là ISA bus. Bus ISA có t c đ chậm (5MBps) .
- Bus MCA (Micro Channel Architecture). Bus này do IBM gi i thi u năm 1987 có đ r ng bus s li u 32 bit. MCA dùng cho các máy tính PS/2 cuả IBM. Đây là bus có t c đ truy n d li u nhanh h n ISA (45MBps), khả năng đ a ch 32 bit. Tuy nhiên MCA không t ng thích ng c v i ISA.
- Bus EISA: đây là kiểu bus m r ng ISA đ c nâng cao (Enhanced ISA) do nhi u công ty máy tính cùng h p tác xây dựng. EISA t ng thích ng c v i ISA nh ng có t c đ nhanh h n (33MBps).
- Local bus: đây là bus kéo dài trực ti p bus cuả b vi x lý ra ngoài nhằm đ t đ c t c đ cao cho các ng dụng đ họa. Vào đầu năm 1990 do hi n t ng thắt c chai cuả ISA bus đã thúc đẩy các nhà thi t k máy tính cho ra đ i local bus và ghép n i card màn hình vào bus đ a ph ng này nhằm nâng cao khả năng thể hi n đ họa. Năm 1992 Hi p h i chuẩn đi n t và video (Video Electronics Standard Association) đã đ a ra chuẩn VESA nhằm th ng nhất các ph ng pháp ghép n i card video và net card vào local bus. Chuẩn này còn gọi là VL bus (VESA local bus). T c đ cuả VESA local bus là 130 - 260MBps.
- Bus PCI (Peripheral Component Interconnect): đây là lo i bus m r ng 32 hoặc 64 bit do Intel xây dựng năm 1992. PCI không phải là local bus nh ng có các đặc tr ng cao. PCI t ng thích v i chuẩn Plug and Play. T c đ c a PCI là 568MB/s.
- Plus and Play (PnP): là m t tiêu chuẩn kỹ thuật cho bus và các ngo i vi. Chuẩn PnP yêu cầu h đi u hành Windows9X, BIOS thích h p (flash BIOS) và card m r ng t ng thích (card PCI). N u th a mãn các yêu cầu trên, vi c gắn m t ngo i vi vào máy tính s hoàn toàn tự đ ng: máy tính tự đ ng tìm thấy phần c ng
và s h ng dẫn ng i s dụng cài đặt phần m m đi u khiển thi t b mà không s b tranh chấp (conflict).
- Bus SCSI (Small Computer System Interface): Đây là chuẩn bus đ c đ ngh để dùng cho các ngo i vi có d ng card nh modem, sound card và cả hard disk trong các máy tính để bàn và xách tay.
- Bus USB - Hi n nay trên các máy tính đang s dụng r ng rãi chuẩn USB (Universal Serial Bus) g m 4 đ ng dây, t c đ truy n c 60MBps. S thi t b ngo i vi n i v i USB có thể đ n 127.
5.2 T ch c đi u khiển vào/ra trong máy tính
Để truy xuất thông tin gi a CPU và các ngo i vi trong cấu hình 1 bus, các thi t b ngo i vi phải đ c gán 1 đ a ch duy nhất. Vi c trao đ i s li u gi a 1 thi t b IO v i CPU bao g m:
- CPU xác đ nh đ a ch cuả thi t b mu n truy xuất
- Thi t b IO có đ a ch đã đ c xác đ nh s ti n hành trao đ i s li u v i CPU thông qua bus h th ng.
Có 2 ph ng pháp ch y u đ c s dụng để ch đ nh các thi t b vào ra. Ph ngpháp th nhất là dùng đ a ch IO khác v i đ a ch b nh , ph ng pháp này gọi là ngo i vi tách bi t (isolated IO). Ph ng pháp th hai gọi là đ a ch IO dùng chung v i b nh (memory mapped IO).
Trong kỹ thuật IO tách bi t, m i thi t b IO có 1 đ a ch riêng bi t trên bus. Ví dụ máy in đ c gán đ a ch s 3, bàn phím đ c gán đ a ch s 4 ... Đ a ch t ng ng cuả thi t b s đ c chuyển lên bus khi CPU trao đ i s li u v i IO. Trong kiểu đ a ch IO này, CPU phải t o ra tín hi u đ a ch riêng cho IO (input/ouput address bus) và tín hi u đ a ch riêng cho b nh (memory address bus).
Kỹ thuật đ a ch IO dùng chung v i b nh bao g m vi c các thi t b IO chia s (share) đ a ch cùng v i đ a ch b nh . Nói cách khác các thi t b IO dùng cùng đ a ch v i đ a ch b nh . Trong tr ng h p này CPU phải có tín hi u đi u khiển để ch ra rằng đ a ch mà nó phát ra là dành cho b nh hay cho thi t b ngo i vi. Đó là các tín hi u MEMR/ MEMW và IOR/IOW.
5.3.1 Vào ra đi u khiển bằngngắt
Vi c trao đ i s li u gi a CPU và các IO th ng đ c thực hi n theo 2 ph ng pháp: Ngắt và DMA (Direct Memory Access).
Ngắt(interrupt) là m t ph ng pháp trao đ i s li u gi a các IO có t c đ chậm v i h vi x lý có t c đ cao. M t ví dụ điển hình cho ngắt là ngắt Keyboard. Bình th ng CPU ti n hành công vi c cuả mình. Khi m t phím đ c nhấn, m t tín hi u ngắt đ c g i t i CPU. Trong ch đ ngắt, CPU tự đ ng dùng ch ng trình t i vào cu i m i l nh để xem có yêu cầu ngắt không, n u có CPU s d ng ch ng trình đang ch y để x lý ngắt (ch y ch ng trình con phục vụ ngắt) sau đó quay tr l i ch ng trình chính.
Nh c điểm cuả ngắt là: CPU có thể b ngắt bất c lúc nào do đó vi c phát hi n l i trong m t ch ng trình có ngắt tr nên khó khăn. Các ch ng trình con phục vụ ngắt phải cất gi tr ng thái cuả ch ng trình chính (n i dung các thanh ghi đang s dụng, các c ...) và phải phục h i tr ng thái ch ng trình chính sau khi ngắt. Đi u này bu c CPU phải thực hi n thêm m t s l nh và làm tăng đáng kể th i gian phục vụ ngắt.
Khi ngắt xảy ra, phải thực hi n các công vi c sau :
- Yêu cầu ngắt : Yêu cầu ngắt (t ngo i vi) th ng đ c ghi nhận và ch đ n
cu i m i chu kỳ l nh để đ c x lý.
- Chuyển điều khiển đến phục vụ ngắt: Khi có m t ngắt thì CPU s gọi m t ch ng trình con phục vụ ngắt t ng ng để phục vụ .
- Cất giữ và khôi phục trạng thái chương trình chính: Tất cả CPU khi trả l i
ngắt đ u phải cất gi tr ng thái cuả ch ng trình chính bằng cách dùng ngăn x p (satck). Đ a ch đ nh cuả ngăn x p đ c cất trong thanh ghi SP. Quá trình khôi phục tr ng thái ch ng trình chính đ c thực hi n ngay sau khi đã phục vụ ngắt.
- Xác định ngu n ngắt: Cần phải ti n hành xác đ nh ngu n ngắt khi s đầu vào
ngắt nhi u h n s đầu vào ngắt mà CPU có đ c. Th ng ng i ta dùng cách t o vector (vectoring) để xác đ nh ngu n ngắt, theo đó tất cả các ngu n ngắt đ c đ a vào m ch mã hoá để t o vec tor ngắt (interrupt vector). Vector ngắt ch a đ a ch cuả ch ng trình con phục vụ ngắt.
- Vấn đề ưu tiên (priority): Khi có nhi u yêu cầu ngắt đ c g i t i CPU cùng m t lúc thì phải phân bi t đ u tiên. Các IO đ c gán th tự u tiên t cao đ n thấp (m c 0 đ n m c n).
- Cho phép và cấm ngắt (EI và DI): Có thể cấm ngắt bằng l nh DI hoặc do CPU
tự đ ng cấm ngắt (khi RESET hoặc khi m t ngắt đã đ c ghi nhận). Ngắt b cấm cho đ n khi CPU thực hi n xong l nh tr c l nh cho phép ngắt (EI). L nh DI không tác dụng đ i v i đầu vào NMI .
Máy tính có 256 ngắt khác nhau và đ c chia làm 2 lo i: Ngắt c ng (hardware interrupt) phát sinh t các thi t b phần c ng và ngắt m m (software interrupt) do l nh ngắt t các ch ng trình.
Ng i ta còn phân lo i ngắt theo ngu n g c mà chúng đ c cung cấp. Cách th c thi hành ngắt m m và ngắt c ng là nh nhau. Khi 1 ngắt xảy ra, h th ng s phải truy cập bảng vector ngắt để lấy đ a ch cuả ch ng trình con phục vụ ngắt. Trong PC có 256 ngắt khác nhau. Vùng thấp RAM cuả PC (1024 byte đầu tiên cuả RAM) dùng để l u gi đ a ch cuả 256 ch ng trình con phục vụ ngắt khác nhau. M i đ a ch g m IP và CS (4 byte). Khim t ngắt xảy ra bảng vector ngắt đ c truy xuất và giá tr thanh ghi CS:IP đ c dùng để ch t i ch ng trình con phục vụ ngắt. Có 16 ngắt c ng trên PC-AT. Chúng đ c các IO t o ra khi có yêu cầu trao đ i s li u. Trong PC - AT s dụng 2 chip 8259 để đi u khiển ngắt c ng. Chip 8259 là b đi u khiển ngắt ( Interrupt Controller). Chip 8259-1 đi u khiển các ngắt INT8 đ n INTF, đ a ch t 20h đ n 3Fh. Chip 8259-2 đi u khiển các ngắt INT 70 đ n INT77, đ a ch t 1C0h đ n 1DFh.
Ngắt th ng dùng để thực hi n các d ch vụ vào ra c s . Ngắt cũng dùng để đi u khiển thi t b .
5.3.2 Vào ra đi u khiển theo DMA
DMA (Direct Memory Access) là m t kỹ thuật chuyển d li u nhanh t m t card thi t b t i b nh hoặc t b nh ra card thi t b . Trong chu trình DMA, CPU làm công vi c cuả mình đ ng th i có m t chip đi u khiển vi c truy n s li u trực ti p gi a b nh và IO. Chip này gọi là DMA controller (DMAC).
Trong PC- XT dùng 1 chip 8237 cho DMAC còn trong PC-AT, DMAC g m 2 chip 8237. Vi c lập trình cho DMAC th ng đ c hoàn thành b i 1 ch ng trình ch y trên máy tính (ví dụ ch ng trình chép đĩa, hoặc m t th tục l u trong ROM cuả m t card giao ti p). Trong khi DMAC làm vi c, CPU đ c tự do và làm vi c khác.
Để chuyển d li u t thi t b IO đ n b nh bằng DMA, tr c tiên DMAC kích ho t bus r i cho l nh đọc thi t b (ho t đ ng đọc c ng IO) và đ ng th i t o ra l nh ghi b nh . Vi c kích ho t đọc t c ng IO s làm cho thi t b đặt 1 đ n v thông tin (byte hoặc word) lên bus sau đó d li u này đ c sao chép trực ti p vào b nh . Quá trình di n ra t ng tự khi chuyển s li u t b nh ra IO bằng DMA.
Gi ng nh b đi u khiển ngắt mà đó các yêu cầu ngắt đ c g i t i bằng đ ng IRQ, m t DMAC nhận yêu cầu DMA thông qua đ ng DMA request (DREQ). DREQ đ c g i t i CPU, sau khi nhận DREQ, CPU trao quy n đi u khiển bus cho DMAC và quá trình DMA đ c bắt đầu. Tất cả các b đi u khiển đĩa m m trên PC đ u dùng DMA (kênh 2) để chuyển d li u gi a đĩa m m và b nh . D li u trên đĩa m m đ c đọc theo t ng đ n v 512byte (1sector) thông qua DMAC t ng 512 byte đ c chuyển t đĩa m m vào đ a ch xác đ nh trong b nh .
Trên PC-XT s dụng 1 chip DMAC 8237. Chip này cung cấp 4 kênh DMA lo i 8 bit, chúng đ c đánh s t DMA0 đ m DMA3. Đ n PC-AT do yêu cầu m r ng khả năng trao đ i s li u ng i ta thêm chip 8237 th hai. Có t ng c ng 8 kênh DMA trên PC-AT. Bảng 8-16 mô tả các kênh DMA trên PC.
5.4 Các m ch ghép n i và đi u khiển thi t b vào ra5.4.1 C ng song song (Parallel) 5.4.1 C ng song song (Parallel)
Các máy tính PC đ c trang b ít nhất là 1 c ng song song và 1 c ng n i ti p. Khác v i ghép n i n i ti p có nhi u ng dụng, ghép n i song song th ng ch phục vụ cho máy in. S đ ghép n i song song nh hình 5.1
Hình 5.1: Sơ đ c ng song song
D li u có thể trao đ i trực ti p gi a 2 PC qua các c ng song song v i nhau. Mu n vậy, các đ ng đi u khiển bên này phải đ c k t n i v i các đ ng tr ng thái bên kia.
5.4.2 C ng n i ti p (Serial)
* Truyền nối tiếp đ ng bộ và bất đ ng bộ
Ghép n i ti p cho phép trao đ i gi a các thi t b t ng bit m t. D li u th ng đ c g i theo các nhóm bit SDU (serial data unit) mà m i nhóm t o thành 1 byte hay 1 word. Các thi t b ngọai vi nh : máy v , modem, chu t có thể đ c n i v i PC qua c ng n i ti p COM.
Sự khác nhau gi a truy n n i ti p đ ng b và bất đ ng b là: trong kỹ thuật truy n đ ng b , ngoài đ ng dây d li u phải đ a thêm vào m t hoặc vài đ ng tín hi u đ ng b để cho bi t rằng khi nào bit ti p theo n đ nh trên đ ng truy n. Ng c l i trong truy n bất đ ng b , các bit d li u tự nó ch a các thông tin để đ ng b ; phần phát và phần thu phải họat đ ng v i cùng 1 tần s xung clock. Thông tin đ ng b (trong truy n bất đ ng b ) g m có các bit start (cho bi t bắt đầu c a kh i d li u đ c truy n) và m t bit stop (cho bi t k t thúc kh i d li u).
* Kiểm tra chẵn lẻ và tốc độ truyền
Bit chẵn lẻ (parity bit) đ c đ a vào khung SDU dùng để phát hi n l i trên