Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
Hệ thống máy tính
Nội dung học phần
Chương 3 KIẾN TRÚC HỆ THỐNG VÀO-RA
(cid:132) Chương 1. Giới thiệu chung (cid:132) Chương 2. Kiến trúc bộ nhớ (cid:132) Chương 3. Kiến trúc vào-ra (cid:132) Chương 4. Kiến trúc bộ xử lý (cid:132) Chương 5. Kiến trúc máy tính tiên tiến
Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội
NKK-HUT
NKK-HUT
8 September 2009 1 8 September 2009 2
3.1. Tổng quan về hệ thống vào-ra
Nội dung
3.1. Tổng quan về hệ thống vào-ra 3.2. Các phương pháp điều khiển vào-ra 3.3. Nối ghép thiết bị ngoại vi
1. Giới thiệu chung (cid:132) Chức năng của hệ thống vào-ra: Trao đổi thông tin giữa máy tính với thế giới bên ngoài
(cid:132) Các thao tác cơ bản: (cid:132) Vào dữ liệu (Input) (cid:132) Ra dữ liệu (Output) (cid:132) Các thành phần chính: (cid:132) Các thiết bị ngoại vi (cid:132) Các mô-đun vào-ra
4 8 September 2009 3 8 September 2009
Nguyễn Kim Khánh - ĐHBKHN
1
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
Cấu trúc cơ bản của hệ thống vào-ra
Tổ chức bus dùng chung
Interrupts
CPU
Main memory
Cache
System bus
I/O controller
I/O controller
I/O controller
Disk
Disk
Network
Graphics display
NKK-HUT
NKK-HUT
8 September 2009 5 8 September 2009 6
Tổ chức bus vào-ra phân cấp
Đặc điểm của vào-ra
Interrupts
(cid:132) Tồn tại đa dạng các thiết bị ngoại vi
CPU
Main memory
Cache
Memory bus
Bus adapter
Bus adapter
AGP
PCI bus
khác nhau về: (cid:132) Nguyên tắc hoạt động (cid:132) Tốc độ (cid:132) Khuôn dạng dữ liệu
Intermediate buses / ports
(cid:132) Tất cả các thiết bị ngoại vi đều chậm
Bus adapter
I/O bus
I/O controller
hơn CPU và RAM
I/O controller
I/O controller
I/O controller
Graphics display
Network
Disk
Disk
CD/DVD
(cid:198) Cần có các mô-đun vào-ra để nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính
8 September 2009 7 8 September 2009 8
Nguyễn Kim Khánh - ĐHBKHN
2
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
2. Các thiết bị ngoại vi
Một số thiết bị ngoại vi
Keyboard, keypad
Music note, OCR
10s
Ubiquitous
Symbol
Mouse, touchpad
Stick, wheel, glove
100s
Ubiquitous
Position
(cid:132) Chức năng: chuyển đổi dữ liệu giữa
Barcode reader
Badge, fingerprint
100s
Sales, security
Identity
Touch, motion, light
Scent, brain signal
100s
Control, security
Sensory
Input type Prime examples Other examples Data rate (b/s) Main uses
bên trong và bên ngoài máy tính
Microphone
Phone, radio, tape
1000s
Ubiquitous
Audio
Photos, publishing
Scanner, camera
Graphic tablet
1000s-106s
Image
(cid:132) Phân loại:
Camcorder, DVD
VCR, TV cable
1000s-109s
Entertainment
Video
(cid:132) Thiết bị ngoại vi giao tiếp người-máy:
LCD line segments
LED, status light
10s
Ubiquitous
Symbol
Bàn phím, Màn hình, Máy in,...
Stepper motor
Robotic motion
100s
Ubiquitous
Position
Buzzer, bell, siren
Flashing light
A few
Safety, security
Warning
(cid:132) Thiết bị ngoại vi giao tiếp máy-máy: gồm
Braille text
Scent, brain stimulus
100s
Personal assistance
Sensory
Speaker, audiotape
Voice synthesizer
1000s
Ubiquitous
Audio
các thiết bị theo dõi và kiểm tra
Monitor, printer
Plotter, microfilm
1000s
Ubiquitous
Image
Video
Monitor, TV screen
Film/video recorder
1000s-109s
Entertainment
(cid:132) Thiết bị ngoại vi truyền thông: Modem,
Output type Prime examples Other examples Data rate (b/s) Main uses
Ubiquitous
Mass storage
Hard/floppy disk
CD, tape, archive
106s
Network Interface Card (NIC)
Network
Modem, fax, LAN
Cable, DSL, ATM
1000s-109s
Ubiquitous
Two-way I/O Prime examples Other examples Data rate (b/s) Main uses
NKK-HUT
NKK-HUT
8 September 2009 9 8 September 2009 10
Cấu trúc chung của thiết bị ngoại vi
Các thành phần của thiết bị ngoại vi
(cid:132) Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên ngoài và bên trong máy tính
(cid:132) Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa mô-đun vào-ra và thiết bị ngoại vi
(cid:132) 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
8 September 2009 11 8 September 2009 12
Nguyễn Kim Khánh - ĐHBKHN
3
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
3. Mô-đun vào-ra
Cấu trúc chung của mô-đun vào-ra
(cid:132) Chức năng của mô-đun vào-ra:
(cid:132) Điều khiển và định thời (cid:132) Trao đổi thông tin với CPU hoặc bộ nhớ
chính
(cid:132) Trao đổi thông tin với thiết bị ngoại vi (cid:132) Đệm giữa bên trong máy tính với thiết bị
ngoại vi
(cid:132) Phát hiện lỗi của thiết bị ngoại vi
NKK-HUT
NKK-HUT
8 September 2009 13 8 September 2009 14
Các thành phần của mô-đun vào-ra
4. Địa chỉ hóa cổng vào-ra
a. Không gian địa chỉ của bộ xử lý
(cid:132) Thanh ghi đệm dữ liệu: đệm dữ liệu
trong quá trình trao đổi
(cid:132) Các cổng vào-ra (I/O Port): kết nối với
thiết bị ngoại vi, mỗi cổng có một địa chỉ xác định
(cid:132) Thanh ghi trạng thái/điều khiển: lưu giữ thông tin trạng thái/điều khiển cho các cổng vào-ra
(cid:132) Khối logic điều khiển: điều khiển mô-
đun vào-ra
8 September 2009 15 8 September 2009 16
Nguyễn Kim Khánh - ĐHBKHN
4
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
Không gian địa chỉ của bộ xử lý (tiếp)
Không gian địa chỉ của bộ xử lý (tiếp)
(cid:132) Một số bộ xử lý quản lý hai không gian địa chỉ
(cid:132) Một số bộ xử lý chỉ quản lý duy nhất một
tách biệt: (cid:132) Không gian địa chỉ bộ nhớ: 2N địa chỉ (cid:132) Không gian địa chỉ vào-ra: 2N1 địa chỉ (cid:132) Có tín hiệu điều khiển phân biệt truy nhập không
gian địa chỉ
không gian địa chỉ: (cid:132) không gian địa chỉ bộ nhớ: 2N địa chỉ (cid:132) Ví dụ: Các bộ xử lý 680x0 (Motorola)
(cid:132) Tập lệnh có các lệnh vào-ra chuyên dụng
(cid:132) Ví dụ: Pentium (Intel)
(cid:132) không gian địa chỉ bộ nhớ = 232 byte = 4GB (cid:132) không gian địa chỉ vào-ra = 216 byte = 64KB (cid:132) Tín hiệu điều khiển (cid:132) Lệnh vào-ra chuyên dụng: IN, OUT
NKK-HUT
NKK-HUT
b. Các phương pháp địa chỉ hoá cổng vào-ra
8 September 2009 17 8 September 2009 18
Vào-ra riêng biệt
(cid:132) Cổng vào-ra được đánh địa chỉ theo
(cid:132) Vào-ra riêng biệt
không gian địa chỉ vào-ra
(Isolated IO hay IO mapped IO)
(cid:132) CPU trao đổi dữ liệu với cổng vào-ra
(cid:132) Vào-ra theo bản đồ bộ nhớ
(Memory mapped IO)
thông qua các lệnh vào-ra chuyên dụng (IN, OUT)
(cid:132) Chỉ có thể thực hiện trên các hệ thống có quản lý không gian địa chỉ vào-ra riêng biệt
8 September 2009 19 8 September 2009 20
Nguyễn Kim Khánh - ĐHBKHN
5
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
3.2. Các phương pháp điều khiển vào-ra
Vào-ra theo bản đồ bộ nhớ
(cid:132) Cổng vào-ra được đánh địa chỉ theo
không gian địa chỉ bộ nhớ
(cid:132) Vào-ra bằng chương trình (Programmed IO)
(cid:132) Vào-ra giống như đọc/ghi bộ nhớ (cid:132) CPU trao đổi dữ liệu với cổng vào-ra
(cid:132) Vào-ra điều khiển bằng ngắt (Interrupt Driven IO)
thông qua các lệnh truy nhập dữ liệu bộ nhớ
(cid:132) Truy nhập bộ nhớ trực tiếp - DMA
(cid:132) Có thể thực hiện trên mọi hệ thống
(Direct Memory Access)
NKK-HUT
NKK-HUT
8 September 2009 21 8 September 2009 22
1. Vào-ra bằng chương trình
Các tín hiệu điều khiển vào-ra
(cid:132) Tín hiệu điều khiển (Control): kích hoạt thiết
bị ngoại vi
(cid:132) Tín hiệu kiểm tra (Test): kiểm tra trạng thái
của mô-đun vào-ra và thiết bị ngoại vi
(cid:132) Nguyên tắc chung: CPU điều khiển trực tiếp vào-ra bằng chương trình (cid:198) cần phải lập trình vào-ra.
(cid:132) Tín hiệu điều khiển đọc (Read): yêu cầu mô- đun vào-ra nhận dữ liệu từ thiết bị ngoại vi và đưa vào thanh ghi đệm dữ liệu, rồi CPU nhận dữ liệu đó
(cid:132) Tín hiệu điều khiển ghi (Write): yêu cầu mô- đun vào-ra lấy dữ liệu trên bus dữ liệu đưa đến thanh ghi đệm dữ liệu rồi chuyển ra thiết bị ngoại vi
8 September 2009 23 8 September 2009 24
Nguyễn Kim Khánh - ĐHBKHN
6
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
Các lệnh vào-ra
Lưu đồ đoạn chương trình vào-ra
(cid:132) Với vào-ra riêng biệt: sử dụng các lệnh
vào-ra chuyên dụng (IN, OUT). (cid:132) Với vào-ra theo bản đồ bộ nhớ: sử
dụng các lệnh trao đổi dữ liệu với bộ nhớ để trao đổi dữ liệu với cổng vào-ra.
NKK-HUT
NKK-HUT
8 September 2009 25 8 September 2009 26
Hoạt động của vào-ra bằng chương trình
Đặc điểm
(cid:132) CPU yêu cầu thao tác vào-ra (cid:132) Mô-đun vào-ra thực hiện thao tác (cid:132) Mô-đun vào-ra thiết lập các bit trạng
thái
(cid:132) Vào-ra do ý muốn của người lập trình (cid:132) CPU trực tiếp điều khiển vào-ra (cid:132) CPU đợi mô-đun vào-ra (cid:198) tiêu tốn thời
(cid:132) CPU kiểm tra các bit trạng thái:
gian của CPU
(cid:132) Nếu chưa sẵn sàng thì quay lại kiểm tra (cid:132) Nếu sẵn sàng thì chuyển sang trao đổi dữ
liệu với mô-đun vào-ra
8 September 2009 27 8 September 2009 28
Nguyễn Kim Khánh - ĐHBKHN
7
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
2. Vào-ra điều khiển bằng ngắt
Chuyển điều khiển đến chương trình con ngắt
(cid:132) Nguyên tắc chung:
(cid:132) CPU không phải đợi trạng thái sẵn sàng của mô-đun vào-ra, CPU thực hiện một chương trình nào đó
(cid:132) Khi mô-đun vào-ra sẵn sàng thì nó phát tín
hiệu ngắt CPU
(cid:132) CPU thực hiện chương trình con vào-ra
tương ứng để trao đổi dữ liệu
(cid:132) CPU trở lại tiếp tục thực hiện chương trình
đang bị ngắt
NKK-HUT
NKK-HUT
8 September 2009 29 8 September 2009 30
Hoạt động vào dữ liệu: nhìn từ CPU
Hoạt động vào dữ liệu: nhìn từ mô-đun vào-ra
(cid:132) Mô-đun vào-ra nhận tín hiệu điều khiển
đọc từ CPU
(cid:132) Phát tín hiệu điều khiển đọc (cid:132) Làm việc khác (cid:132) Cuối mỗi chu trình lệnh, kiểm tra tín
(cid:132) Mô-đun vào-ra nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác
hiệu ngắt (cid:132) Nếu bị ngắt:
(cid:132) Khi đã có dữ liệu (cid:198) mô-đun vào-ra phát
(cid:132) Cất ngữ cảnh (nội dung các thanh ghi) (cid:132) Thực hiện chương trình con ngắt để vào
dữ liệu
(cid:132) Khôi phục ngữ cảnh của chương trình
tín hiệu ngắt CPU (cid:132) CPU yêu cầu dữ liệu (cid:132) Mô-đun vào-ra chuyển dữ liệu đến CPU
đang thực hiện
8 September 2009 31 8 September 2009 32
Nguyễn Kim Khánh - ĐHBKHN
8
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
Các vấn đề nảy sinh khi thiết kế
Các phương pháp nối ghép ngắt
(cid:132) Làm thế nào để xác định được mô-đun
vào-ra nào phát tín hiệu ngắt ?
(cid:132) Sử dụng nhiều đường yêu cầu ngắt (cid:132) Hỏi vòng bằng phần mềm (Software
(cid:132) CPU làm như thế nào khi có nhiều yêu
Poll)
cầu ngắt cùng xẩy ra ?
(cid:132) Hỏi vòng bằng phần cứng (Daisy Chain
or Hardware Poll)
(cid:132) Sử dụng bộ điều khiển ngắt (PIC)
NKK-HUT
NKK-HUT
8 September 2009 33 8 September 2009 34
Nhiều đường yêu cầu ngắt
Hỏi vòng bằng phần mềm
(cid:132) CPU thực hiện phần mềm hỏi lần lượt từng
mô-đun vào-ra
ngắt
(cid:132) Chậm (cid:132) Thứ tự các mô-đun được hỏi vòng chính là
thứ tự ưu tiên
(cid:132) Mỗi mô-đun vào-ra được nối với một đường yêu cầu
(cid:132) CPU phải có nhiều đường tín hiệu yêu cầu ngắt (cid:132) Hạn chế số lượng mô-đun vào-ra (cid:132) Các đường ngắt được qui định mức ưu tiên 8 September 2009 35 8 September 2009 36
Nguyễn Kim Khánh - ĐHBKHN
9
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
Hỏi vòng bằng phần cứng
Kiểm tra vòng bằng phần cứng (tiếp)
(cid:132) CPU phát tín hiệu chấp nhận ngắt (INTA) đến mô-đun vào-ra đầu tiên (cid:132) Nếu mô-đun vào-ra đó không gây ra
ngắt thì nó gửi tín hiệu đến mô-đun kế tiếp cho đến khi xác định được mô-đun gây ngắt
(cid:132) Thứ tự các mô-đun vào-ra kết nối trong
chuỗi xác định thứ tự ưu tiên
NKK-HUT
NKK-HUT
8 September 2009 37 8 September 2009 38
Bộ điều khiển ngắt lập trình được
Đặc điểm của vào-ra điều khiển bằng ngắt
(cid:132) Có sự kết hợp giữa phần cứng và phần
mềm (cid:132) Phần cứng: gây ngắt CPU (cid:132) Phần mềm: trao đổi dữ liệu
(cid:132) CPU trực tiếp điều khiển vào-ra (cid:132) CPU không phải đợi mô-đun vào-ra (cid:198)
hiệu quả sử dụng CPU tốt hơn
(cid:132) PIC – Programmable Interrupt Controller (cid:132) PIC có nhiều đường vào yêu cầu ngắt có qui
định mức ưu tiên
(cid:132) PIC chọn một yêu cầu ngắt không bị cấm có
mức ưu tiên cao nhất gửi tới CPU
8 September 2009 39 8 September 2009 40
Nguyễn Kim Khánh - ĐHBKHN
10
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
3. DMA (Direct Memory Access)
Sơ đồ cấu trúc của DMAC
(cid:132) Vào-ra bằng chương trình và bằng ngắt
do CPU trực tiếp điều khiển: (cid:132) Chiếm thời gian của CPU (cid:132) Tốc độ truyền bị hạn chế vì phải chuyển
qua CPU
(cid:132) Để khắc phục dùng DMA
(cid:132) Thêm mô-đun phần cứng trên bus (cid:198)
DMAC (Controller)
(cid:132) DMAC điều khiển trao đổi dữ liệu giữa mô-
đun vào-ra với bộ nhớ chính
NKK-HUT
NKK-HUT
8 September 2009 41 8 September 2009 42
Các thành phần của DMAC
Hoạt động DMA
(cid:132) CPU “nói” cho DMAC (cid:132) Vào hay Ra dữ liệu (cid:132) Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng) (cid:132) Địa chỉ đầu của mảng nhớ chứa dữ liệu (cid:198) nạp vào
(cid:132) Thanh ghi dữ liệu: chứa dữ liệu trao đổi (cid:132) Thanh ghi địa chỉ: chứa địa chỉ ngăn
thanh ghi địa chỉ
nhớ dữ liệu
(cid:132) Số từ dữ liệu cần truyền (cid:198) nạp vào bộ đếm dữ liệu
(cid:132) Bộ đếm dữ liệu: chứa số từ dữ liệu cần
trao đổi
(cid:132) Logic điều khiển: điều khiển hoạt động
(cid:132) CPU làm việc khác (cid:132) DMAC điều khiển trao đổi dữ liệu (cid:132) Sau khi truyền được một từ dữ liệu thì:
của DMAC
(cid:132) nội dung thanh ghi địa chỉ tăng (cid:132) nội dung bộ đếm dữ liệu giảm
(cid:132) Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt
CPU để báo kết thúc DMA
8 September 2009 43 8 September 2009 44
Nguyễn Kim Khánh - ĐHBKHN
11
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
Các kiểu thực hiện DMA
Cấu hình DMA (1)
(cid:132) DMA truyền theo khối (Block-transfer DMA): DMAC sử dụng bus để truyền xong cả khối dữ liệu
(cid:132) Mỗi lần trao đổi một dữ liệu, DMAC sử dụng
(cid:132) DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng bức CPU treo tạm thời từng chu kỳ bus, DMAC chiếm bus thực hiện truyền một từ dữ liệu.
bus hai lần (cid:132) Giữa mô-đun vào-ra với DMAC (cid:132) Giữa DMAC với bộ nhớ
(cid:132) DMA trong suốt (Transparent DMA): DMAC nhận biết những chu kỳ nào CPU không sử dụng bus thì chiếm bus để trao đổi một từ dữ liệu.
NKK-HUT
NKK-HUT
8 September 2009 45 8 September 2009 46
Cấu hình DMA (2)
Cấu hình DMA (3)
(cid:132) DMAC điều khiển một hoặc vài mô-đun vào-ra (cid:132) Mỗi lần trao đổi một dữ liệu, DMAC sử dụng
(cid:132) Giữa DMAC với bộ nhớ
bus một lần (cid:132) Giữa DMAC với bộ nhớ
(cid:132) Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMA (cid:132) Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần
8 September 2009 47 8 September 2009 48
Nguyễn Kim Khánh - ĐHBKHN
12
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
Đặc điểm của DMA
4. Kênh vào-ra hay là bộ xử lý vào-ra
(cid:132) CPU không tham gia trong quá trình
trao đổi dữ liệu
(cid:132) Việc điều khiển vào-ra được thực hiện bởi một bộ xử lý vào-ra chuyên dụng (cid:132) Bộ xử lý vào-ra hoạt động theo chương
trình của riêng nó
(cid:132) Chương trình của bộ xử lý vào-ra có thể
(cid:132) 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:198) tốc độ nhanh (cid:132) Phù hợp với các yêu cầu trao đổi mảng
nằm trong bộ nhớ chính hoặc nằm trong một bộ nhớ riêng
dữ liệu có kích thước lớn
(cid:132) Hoạt động theo kiến trúc đa xử lý
NKK-HUT
NKK-HUT
8 September 2009 49 8 September 2009 50
Nối ghép song song
3.3. Nối ghép thiết bị ngoại vi
1. Các kiểu nối ghép vào-ra (cid:132) Nối ghép song song (cid:132) Nối ghép nối tiếp
(cid:132) Truyền nhiều bit song song (cid:132) Tốc độ nhanh (cid:132) Cần nhiều đường truyền dữ liệu
8 September 2009 51 8 September 2009 52
Nguyễn Kim Khánh - ĐHBKHN
13
Bài giảng Hệ thống máy tính
NKK-HUT
NKK-HUT
2. Các cấu hình nối ghép
Nối ghép nối tiếp
(cid:132) Điểm tới điểm (Point to Point)
(cid:132) Thông qua một cổng vào-ra nối ghép với một
thiết bị ngoại vi
(cid:132) Điểm tới đa điểm (Point to Multipoint)
(cid:132) Thông qua một cổng vào-ra cho phép nối
ghép được với nhiều thiết bị ngoại vi
(cid:132) Ví dụ:
Truyền lần lượt từng bit
(cid:132) SCSI (Small Computer System Interface): 7 hoặc
15 thiết bị
nối tiếp hoặc/và ngược lại Tốc độ chậm hơn
(cid:132) USB (Universal Serial Bus): 127 thiết bị (cid:132) IEEE 1394 (FireWire): 63 thiết bị
(cid:132) (cid:132) Cần có bộ chuyển đổi từ dữ liệu song song sang
(cid:132) (cid:132) Cần ít đường truyền dữ liệu
NKK-HUT
8 September 2009 53 8 September 2009 54
Hết chương 3
8 September 2009 55