C u trúc máy tính

ươ Ế Ạ Ch ng 6 Ị THI T B  NGO I VI

10/19/16 Chương 6: Thiết bị ngoại vi 1

N i dung

ớ ậ ế ế ị

ạ ộ

ế ị ạ ố 6.1. Nguyên lý xu t nh p trong máy tính t b  I/O. 6.2. Cách CPU giao ti p v i thi ắ 6.3. Ng t quãng 6.4. DMA  6.5. Ho t đ ng bàn phím 6.6. N i ghép thi t b  ngo i vi

10/19/16 Chương 6: Thiết bị ngoại vi 2

ế ị

Thi

t b  ngo i vi

 Thi

ế ị ế ị ữ ệ t b  I/O là 1 thi

ả ụ ọ ấ ả ầ

ữ ệ ự ụ t b  có kh  năng cung c p d  li u  khi CPU yêu c u trong tác v  đ c và có kh  năng ghi  d  li u vào khi CPU th c thi 1 tác v  ghi.

10/19/16 Chương 6: Thiết bị ngoại vi 3

Các thiết bị ngoại vi

 Chức năng: chuyển đổi dữ liệu giữa bên trong và bên

 Phân loại:

 Thiết bị ngoại vi giao tiếp người-máy: Bàn phím,

ngoài máy tính

 Thiết bị ngoại vi giao tiếp máy-máy: gồm các thiết

Màn hình, Máy in,...

 Thiết bị ngoại vi truyền thông: Modem, Network

bị theo dõi và kiểm tra

Interface Card (NIC)

10/19/16 Chương 6: Thiết bị ngoại vi 4

Các thành phần của thiết bị ngoại vi

 Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên

 Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa mô-đun

ngoài và bên trong máy tính

 Khối logic điều khiển: điều khiển hoạt động của thiết bị ngoại vi đáp ứng theo yêu cầu từ mô-đun vào-ra

vào-ra và thiết bị ngoại vi

10/19/16 Chương 6: Thiết bị ngoại vi 5

Minh h aọ

KEYBOARD

MONITOR

FLOPPY DISK

HARD DISK

MEMORY

CPU

VIDEO CONTROLLER

KEYBOARD CONTROLLER

HARDDISK CONTROLLER

FLOPPYDISK CONTROLLER

BUSBUS

10/19/16 Chương 6: Thiết bị ngoại vi 6

Làm sao CPU nhận biết một I/O

 Mỗi I/O có 1 địa chỉ riêng gọi là cổng (port). Khi CPU

truy xuất I/O , CPU xuất ra 1 địa chỉ.

 Một số bit cao của địa chỉ đi vào bộ giải mã, trên đường ra của bộ giải mã sẽ có tín hiệu Chip select tương ứng với I/O mà CPU muốn truy xuất.

 Các địa chỉ thấp còn lại sẽ đi đến mọi I/O nhưng chỉ có I/O nào có đường Chip Select tích cực mới được truy xuất.

10/19/16 Chương 6: Thiết bị ngoại vi 7

CPU liên lạc với thiết bị I/O

 Thiết bị ngoại vi liên lạc với CPU thông qua các cổng

 Các thiết bị I/O có tốc độ làm việc chậm hơn tốc độ của CPU rất nhiều  để khắc phục nhược điểm này người ta dùng vùng nhớ đệm.

 Sự truyền thông tin giữa thiết bị I/O và CPU được

I/O

 Bước 1 : truyền thông tin giữa bộ nhớ trong và bộ nhớ đệm.  Bước 2 : truyền thông tin giữa bộ nhớ đệm và thiết bị I/O.

thực hiện theo 2 bước :

10/19/16 Chương 6: Thiết bị ngoại vi 8

CPU liên lạc với thiết bị I/O

 Có thể tổ chức để 1 CPU làm việc đồng thời với nhiều thiết bị ngoại vi bằng cách phân chia thời gian.

Buffer

Thiết bị I/O

Bộ nhớ trong

Tín hiệu điều khiển của bộ nhớ đệm Tín hiệu điều khiển từ CPU

10/19/16 Chương 6: Thiết bị ngoại vi 9

Ngắt quãng (Interrupt)

 Ngắt (Interrupt) là gì ?

 Ngắt là sự làm ngừng chương trình đang chạy.

 Một interrupt xuất hiện khi 1 chương trình đang thực

thi bị ngưng.

phục vụ ngắt quãng (như xuất nhập chẳng hạn).

 Do hệ thống gây ra vì 1 lý do nào đó không mong muốn

(như lỗi của phép chia 0, phép tính bị tràn số…)

 Do thiết bị I/O gây ra : máy in, bàn phím, ổ đĩa ...

Interrupt được tạo ra bởi nhiều lý do khác nhau  Do người sử dụng lập trình có lệnh INT yêu cầu

10/19/16 Chương 6: Thiết bị ngoại vi 10

Ắ HO T Đ NG NG T QUÃNG C A IO

ế

 Khi 1 IO có yêu c u giao ti p v i CPU (xu t nh p data), IO này s  kích  ườ ở ng tín hi u IRQ c a mình (Interrupt request) đ  báo là mình  kh i 1 đ ụ ụ ầ c n ph c v .

ướ

ế

 Các b

c trong ti n trình ng t quãng :

ế

ụ ẽ ử IO có yêu c u CPU ph c v , s  g i tín hi u IRQ đ n Interrupt  controller.

ẽ ả

ế

ế

 N u có nhi u I/O cùng yêu c u ng t , IntController s  gi

i quy t

ế ộ ư

các yêu c u b ng ch  đ   u tiên.

t

ệ ỉ ở ề

ế IntController phát 1 tín hi u đ n CPU xin ng t, CPU s  hoàn t ị ủ ệ l nh đang th c hi n , c t giá tr  c a thanh ghi IP và CS vào stack  ụ ể ế ị đ  bi

t đ a ch  tr  v  sau khi ph c v  ng t hoàn t

t.

10/19/16 Chương 6: Thiết bị ngoại vi 11

Ắ HO T Đ NG NG T QUÃNG C A I/O

ậ ầ ể ế ụ  CPU yêu c u mã nh n d ng đ  bi ụ t ph c v  cái gì?

ỉ ắ ầ ụ ể ế t  ắ ụ ng trình con ph c v  ng t

ủ ộ ị ằ ạ ả Nh  mã này CPU vào b ng Interrupt vector đ  bi ươ đ a ch  b t đ u c a ch ớ n m đâu trong b  nh .

ỉ ắ ầ ươ  CPU chép đ a ch  b t đ u c a ch ng trình con

ụ ủ ệ ủ ự

ụ ươ ị ắ ng trình này. ph c v  ng t vào  CS và th c thi mã l nh c a  ch

ệ ự ệ

ụ ủ ị

ể ế ụ ắ ủ ệ ự

 Sau khi th c hi n xong tác v   c a ng t , l nh cu i  ố ẽ ấ cùng là INTR,  CPU s  l y giá tr  cũ c a CS và IP  ạ i  trong stack ra đ  ti p t c th c thi các l nh còn l ủ ứ c a  ng d ng

ụ 10/19/16 Chương 6: Thiết bị ngoại vi 12

Ng t m m

 Ng t m m : ắ

ươ

ng trình.

ươ

ệ ề

ng trình con trong h  đi u hành và

ườ

th

ậ ươ

 Do thi hành l nh INT trong ch ệ  Xãy ra khi c n 1 ch ầ ươ ấ ng là ch ng trình con xu t nh p.  Cú pháp g i 1 ng t m m trong ch ắ ọ

ng trình :

INT number  M t s  ng t m m thông d ng : ụ ề ắ ộ ố  INT 10H : Video services  INT 16H : Keyboard services  INT 17H : Printer services  INT 1AH : Time of Day   INT 1CH : User Time Interrupt  INT 21H : Dos Service  10/19/16 Chương 6: Thiết bị ngoại vi

13

ọ Thí d  minh h a g i ng t m m

ROM BIOS

CALLING PROGRAM

MOV …

1

INT 10h

ADD ….

2

……..

STL CLD PUSH ES PUSH DS …… IRET

3 F000:F065         F000:F066         F000:F067         F000:F068          ………….

RETURN TO CALLING  PROGRAM

4

3069      F000:F065         F000:AB62

INTERRUPT VECTOR TABLE

10/19/16 Chương 6: Thiết bị ngoại vi 14

Gi

i thích

ố ế ị ả ị t ph i đ nh v

ụ ắ m c nào trong b ng vector ng t quãng.

 Con s  theo sau INT báo cho CPU bi ả ị ế ắ ả ả ỉ ư  CPU nh y đ n đ a  ch  l u trong b ng vector ng t

quãng (F000:F065).

ươ ể ộ  M t ch

ắ ầ ượ ấ ắ ạ ề ng trình con (đi u khi n ng t) t i  c thi hành và hoàn t t khi

F000:F065 b t đ u đ g p l nh IRET.

 L nh IRET giúp CT quay tr  l

ở ạ ệ ặ ệ ệ ọ i ngay sau l nh g i

ế ụ ệ ắ ng t và ti p t c thi hành l nh này.

10/19/16 Chương 6: Thiết bị ngoại vi 15

ắ ứ Ng t c ng

ượ ạ ế ị ế ạ ầ  Ng t c ng : đ ắ ứ c t o ra khi thi t b  ngo i vi c n đ n

CPU.

ượ ở  Ng t c ng đ ắ ứ

c phát sinh b i chip 8259 Interrupt  ỉ ự ệ

ạ ắ ủ ử ệ Controler, phat tín hi u cho CPU t m đình ch  s  thi  hành c a CT hi n hành và x  lí ng t.

ắ ứ ệ ầ  Đăc tr ng c a ng t c ng là tín hi u yêu c u ng t  ắ

ủ ư quãng INTR.

ầ  Ng t bàn phím là 1 đi n hình ng t c ng. Khi c n  ể

ươ ắ ứ ắ ứ ắ ế t ch thi ể ấ ng trình có th  c m ng t c ng.

10/19/16 Chương 6: Thiết bị ngoại vi 16

ắ B ng vector ng t

ớ ộ ớ

ắ ặ ở ầ ộ  đ u b  nh  chính  ộ ầ ử ỗ  là 1 b   , m i ph n t ọ ượ c g i là các vector  ắ

ứ ị ươ  M t vùng nh  dài 1024 bytes đ t  ứ ầ ử (0h – 400h) , ch a 256 ph n t ố ừ 4 bytes đánh s  t  0h­FFh và đ ả ạ ng t , t o thành b ng vector ng t  .  M i vector ng t ch a đ a ch  c a 1 ch ng trình

ắ ắ ặ ộ ỉ ủ ớ ph c v  ng t đ t trong b  nh .

ụ ự ụ ế ạ

ọ ớ ươ ng trình ph c v  này liên l c tr c ti p v i  ổ ố ế ị t b  I/O thông qua 1 s  thanh ghi g i là c ng

ỗ ụ ụ  Các ch các thi (port) vào/ra.

10/19/16 Chương 6: Thiết bị ngoại vi 17

ắ B ng vector ng t

ắ ượ

ế ị

t đ a ch  c a

ố ng trình con ph c v  ng t này mà ch  quan tâm đ n s

c yêu c u, CPU không c n bi ắ ỉ ế

ỉ ủ ế ả

ỉ ủ ầ ử ứ  th  i  c a b ng

 Khi 1 ng t đ ụ ươ ch ố ủ ệ hi u i c a ng t và s  này ch  đ n ph n t interrupt vector .

ẽ ạ

ờ ắ ắ ố

ở ị

 VD : Khi ta gõ vào 1 phím, 1 tín hi u s  t m th i ng t ngang  ệ ế ẽ ỉ  đ a ch  0:24h.

công vi c c a CPU. CPU s  tìm đ n vector ng t s  9 (c a bàn  phím). Vector này

ủ ụ

ẽ ấ

ỉ ủ

 CPU s  l y ra đ a ch  c a th  t c chuyên ph c v  bàn phím

ủ ụ

ở ạ

ỗ ị

ể ế

ở i  ch   b   ng t  đ   ti p  t c  th c  hi n  công  vi c  d

(có s n trong ROM BIOS).   Th c hi n th  t c này xong ự ệ  Quay  tr   l dang

10/19/16 Chương 6: Thiết bị ngoại vi 18

ạ ổ

Các lo i c ng vào ra

ố ế

 C ng n i ti p (serial port ) : IBM PC cung c p 2 c ng n i ti p :   ổ

ở ị

ố ế ổ  đ a ch  400h và 402h

ữ ệ

COM1 hay AUX và COM2,  2 c ng này  trong vùng d  li u BIOS.

ố ế

 C ng n i ti p dùng cho modem đi n tho i, m t máy in n i ti p ố ế

ố ự

ế

ớ hay n i tr c ti p v i 1 máy tính khác.

ử ụ

 C ng song song (parallel port ) : IBM PC cho phép s  d ng 3

ổ ổ

c ng song song : PRN hay LPT1, LPT2 và LPT3.  ị

ơ

đ a ch

ỉ ứ N i ch a đ a ch

3F8H

400

2F8H

402

3BCH

408

 Tên c ngổ  COM1  COM2  PRN  LPT2

378H

40A

10/19/16 Chương 6: Thiết bị ngoại vi 19

DMA (Direct Memory Access)

 Vào-ra bằng chương trình và bằng ngắt do CPU trực

 Để khắc phục dùng DMA

 Thêm mô-đun phần cứng trên bus (cid:0) DMAC

tiếp điều khiển:  Chiếm thời gian của CPU  Tốc độ truyền bị hạn chế vì phải chuyển qua CPU

 DMAC điều khiển trao đổi dữ liệu giữa môđun

(Controller)

vào-ra với bộ nhớ chính

10/19/16 Chương 6: Thiết bị ngoại vi 20

DMA (Direct Memory Access)

 DMA là gì ?

 K  thu t cho phép I/O device hay Bus đi u  ữ ệ khi n vi c truy n d  li u vào/ra MT mà  không thông qua CPU.

 (cid:0)

ờ ế  Nh  th  CPU v n đi u khi n các quá  ấ ử trình x  lý khác trong quá trình nh p xu t  ữ ệ d  li u.

10/19/16 Chương 6: Thiết bị ngoại vi 21

Các thành phần của DMAC

 Thanh ghi dữ liệu: chứa dữ liệu trao đổi  Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu  Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi  Logic điều khiển: điều khiển hoạt động của DMAC

10/19/16 Chương 6: Thiết bị ngoại vi 22

Hoạt động DMA

 Hoạt động DMAC

 Vào hay Ra dữ liệu  Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng)  Địa chỉ đầu của mảng nhớ chứa dữ liệu (cid:0) nạp vào thanh

ghi địa chỉ

 Số từ dữ liệu cần truyền (cid:0) nạp vào bộ đếm dữ liệu

 CPU làm việc khác  DMAC điều khiển trao đổi dữ liệu  Sau khi truyền được một từ dữ liệu thì:  nội dung thanh ghi địa chỉ tăng  nội dung bộ đếm dữ liệu giảm

 Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU để báo kết

thúc DMA

10/19/16 Chương 6: Thiết bị ngoại vi 23

Đặc điểm của DMA

 CPU không tham gia trong quá trình trao đổi dữ liệu  DMAC điều khiển trao đổi dữ liệu giữa bộ nhớ chính với mô-đun vào-ra (hoàn toàn bằng phần cứng) (cid:0) tốc độ nhanh

 Phù hợp với các yêu cầu trao đổi mảng dữ liệu có

kích thước lớn

10/19/16 Chương 6: Thiết bị ngoại vi 24

Bàn phím

 Là thiết bị nhập đơn giản tập hợp các công tắc bố

 Mỗi tổ hợp phím xác định được ấn xuống mạch

trí thành 1 ma trận Tín hiệu ngõ ra của ma trận công tắc này được  Tín hiệu ngõ ra của ma trận công tắc này được đưa vào mạch tạo mã bàn phím. đưa vào mạch tạo mã bàn phím.

 Chip 8048 xử lý điều khiển bàn phím : Theo dõi có

sẽ tạo ra 1 con số nhận diện cho phím đó, sau đó con số này sẽ gửi cho CPU.

phím nào được ấn không thì báo cho CPU thông qua ngắt 09h.

10/19/16 Chương 6: Thiết bị ngoại vi 25

Bàn phím

 Nếu có phím nào bị ấn quá ½s , 8048 sẽ lặp lại phím

 Mỗi lần ấn 1 phím, các mạch điện tử của bàn phím sẽ tạo ra 1 mã dài 1 byte gọi là mã scan , đặc trưng cho vị trí trên bàn phím của phím tác động, giá trị nằm trong khoảng 1 ..83

 Làm sao MT phân biệt được khi 1 phím được nhấn

này sau những khoảng thời gian nhất định (typematic)

và khi phím đó được nhả ?

10/19/16 Chương 6: Thiết bị ngoại vi 26

Bàn phím

 Khi nhả phím bị ấn, bàn phím tạo ra 1 mã scan khác với mã scan lúc phím bị ấn, có giá trị bằng mã trước cộng thêm 128 (80h) , nghĩa là đổi bit 7 của byte mã scan trước từ 0  1

 VD : khi ta ấn chữ z , scan code là 44, nhả phím này

ra bàn phím tạo mã scan 172

10/19/16 Chương 6: Thiết bị ngoại vi 27

Bộ mã hoá quét trên ma trận

KEY DOWN

COL1

COL2

COL3

4 line To 1 line DEMUX

1

COL4

0

2

1

0 1 1

0

4 8

0 1 1 0

1

0

ROW4

Q0 Q1 Q2 Q3 4 Bit Counter

ROW3

ROW2

SCAN OSC

2 line To 4 line DECODER

ROW1

10/19/16 Chương 6: Thiết bị ngoại vi 28

Liên lạc giữa bàn phím và CPU

 Cứ mỗi lần có 1 tác động ấn phím

  mạch bàn phím gây ra ngắt 9 mạch bàn phím gây ra ngắt 9   gọi 1 chương trình con phục vụ ROM BIOS. gọi 1 chương trình con phục vụ ROM BIOS.  INT 9 sẽ đọc cổng 60H để biết tác động phím nào

đã xãy ra (đọc mã scan tương ứng).

 INT 9h chuyển mã scan này thành mã dài 2 bytes, byte thấp chứa mã ASCII của phím đó, byte cao chứa mã scan.

10/19/16 Chương 6: Thiết bị ngoại vi 29

Các cổng vào-ra thông dụng trên PC

 Các cổng PS/2: nối ghép bàn phím và chuột

 Cổng nối ghép màn hình

 Cổng LPT (Line Printer): nối ghép với máy in, là cổng

 Cổng COM (Communication): nối ghép với MODEM,

song song (Parallel Port) – 25 chân

 Cổng USB (Universal Serial Bus): Cổng nối tiếp đa

là cổng nối tiếp (Serial Port) - 9 hoặc 25 chân

năng, cho phép nối ghép tối đa 127 thiết bị, nhờ các USB Hub

10/19/16 Chương 6: Thiết bị ngoại vi 30