Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh

8.1. Tổng quan về hệ thống vào-ra

n Chức năng: Trao đổi

thông tin giữa máy tính

với bên ngoài

n Các thao tác cơ bản:

n Vào dữ liệu (Input)

n Ra dữ liệu (Output)

n Các thành phần chính:

n Các thiết bị vào-ra

n Các mô-đun vào-ra

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 1

Trang 1

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 2

Trang 2

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 3

Trang 3

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 4

Trang 4

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 5

Trang 5

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 6

Trang 6

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 7

Trang 7

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 8

Trang 8

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 9

Trang 9

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 49 trang xuanhieu 4540
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh

Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào-ra - Nguyễn Kim Khánh
3
NKK-HUST
Vào-ra theo bản đồ bộ nhớ
n Cổng vào-ra được đánh địa chỉ theo không gian 
địa chỉ bộ nhớ 
n CPU coi cổng vào-ra như ngăn nhớ
n Lập trình trao đổi dữ liệu với cổng vào-ra bằng 
các lệnh truy nhập dữ liệu bộ nhớ
n Có thể thực hiện trên mọi hệ thống 
n Ví dụ: Bộ xử lý MIPS
n 32-bit địa chỉ cho một không gian địa chỉ chung cho cả 
các ngăn nhớ và các cổng vào-ra
n Các cổng vào-ra được gắn các địa chỉ thuộc vùng địa 
chỉ dự trữ
n Vào/ra dữ liệu: sử dụng lệnh load/store
2017 Kiến trúc máy tính 444
NKK-HUST
Ví dụ lập trình vào-ra cho MIPS
n Ví dụ: Có hai cổng vào-ra được gán địa chỉ: 
n Cổng 1: 0xFFFFFFF4
n Cổng 2: 0xFFFFFFF8
n Ghi giá trị 0x41 ra cổng 1 
addi $t0,	$0,	0x41 #	đưa	giá	trị	0x41
sw $t0,	0xFFF4($0) #	ra	cổng	1
Chú ý: giá trị 16-bit 0xFFF4 được sign-extended thành 32-bit 0xFFFFFFF4 
n Đọc dữ liệu từ cổng 2 đưa vào $t3
lw $t3,	0xFFF8($0) #	đọc	dữ	liệu	cổng	2	đưa	vào	$t3
2017 Kiến trúc máy tính 445
NKK-HUST
Vào-ra riêng biệt (Isolated IO)
n Cổng vào-ra được đánh địa chỉ theo không gian 
địa chỉ vào-ra riêng 
n Lập trình trao đổi dữ liệu với cổng vào-ra bằng 
các lệnh vào-ra chuyên dụng 
n Ví dụ: Intel x86
n Dùng 8-bit hoặc 16-bit địa chỉ cho không gian địa chỉ 
vào-ra riêng
n Có hai lệnh vào-ra chuyên dụng
n Lệnh IN: nhận dữ liệu từ cổng vào
n Lệnh OUT: đưa dữ liệu đến cổng ra
2017 Kiến trúc máy tính 446
NKK-HUST
8.2. Các phương pháp điều khiển vào-ra 
n Vào-ra bằng chương trình 
(Programmed IO)
n Vào-ra điều khiển bằng ngắt 
(Interrupt Driven IO)
n Truy nhập bộ nhớ trực tiếp - DMA 
(Direct Memory Access)
2017 Kiến trúc máy tính 447
NKK-HUST
Ba kỹ thuật thực hiện vào một khối dữ liệu230 CHAPTER 7 / INPUT/OUTPUT
Figure 7.4a gives an example of the use of programmed I/O to read in a block of 
data from a peripheral device (e.g., a record from tape) into memory. Data are read 
in one word (e.g., 16 bits) at a time. For each word that is read in, the processor must 
remain in a status-checking cycle until it determines that the word is available in the 
I/O module’s data register. This flowchart highlights the main disadvantage of this 
technique: it is a time-consuming process that keeps the processor busy needlessly.
I/O Instructions
With programmed I/O, there is a close correspondence between the I/O-related 
instructions that the processor fetches from memory and the I/O commands that the 
processor issues to an I/O module to execute the instructions. That is, the instruc-
tions are easily mapped into I/O commands, and there is often a simple one-to-one 
relationship. The form of the instruction depends on the way in which external 
devices are addressed.
Typically, there will be many I/O devices connected through I/O modules to 
the system. Each device is given a unique identifier or address. When the processor 
issues an I/O command, the command contains the address of the desired device. 
Thus, each I/O module must interpret the address lines to determine if the com-
mand is for itself.
Issue read
command to
I/O module
Read status
of I/O
module
Check
Status
Read word
from I/O
module
Write word
into memory
Done?
Next instruction
(a) Programmed I/O
Error
condition
Ready Ready
Yes Yes
No
Not
ready
Issue read
command to
I/O module
Do something
else
InterruptRead status
of I/O
module
Check
status
Read word
from I/O
module
Write word
into memory
Done?
Next instruction
(b) Interrupt-Driven I/O
Do something
else
Interrupt
Error
condition
No
Issue read
block command
to I/O module
Read status
of DMA
module
Next instruction
(c) Direct Memory Access
CPU DMA
DMA CPU
CPU I/O
CPU I/O
I/O CPU
I/O CPU
I/O CPU
CPU Memory
I/O CPU
CPU Memory
Figure 7.4 Three Techniques for Input of a Block of Data
2017 Kiến trúc máy tính 448
NKK-HUST
1. Vào-ra bằng chương trình
n Nguyên tắc chung:
n CPU điều khiển trực tiếp vào-ra 
bằng chương trình à cần phải lập 
trình vào-ra để trao đổi dữ liệu 
giữa CPU với mô-đun vào-ra
n CPU nhanh hơn thiết bị vào-ra rất 
nhiều lần, vì vậy trước khi thực 
hiện lệnh vào-ra, chương trình cần 
đọc và kiểm tra trạng thái sẵn sàng 
của mô-đun vào-ra
2017 Kiến trúc máy tính 449
Đọc trạng thái
mô-đun vào-ra
Trao đổi dữ liệu
Sẵn sàng ?
Y
N
NKK-HUST
Các tín hiệu điều khiển vào-ra
n Tín hiệu điều khiển (Control): kích hoạt thiết bị 
vào-ra
n 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ị vào-ra
n 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ị vào-ra và 
đưa vào bộ đệm dữ liệu, rồi CPU nhận dữ liệu 
đó
n 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 
bộ đệm dữ liệu rồi chuyển ra thiết bị vào-ra
2017 Kiến trúc máy tính 450
NKK-HUST
Các lệnh vào-ra
n 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
n 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)
2017 Kiến trúc máy tính 451
NKK-HUST
Đặc điểm
n Vào-ra do ý muốn của người lập trình
n CPU trực tiếp điều khiển trao đổi dữ liệu 
giữa CPU với mô-đun vào-ra
n CPU đợi mô-đun vào-ra à tiêu tốn nhiều 
thời gian của CPU
2017 Kiến trúc máy tính 452
NKK-HUST
2. Vào-ra điều khiển bằng ngắt
n Nguyên tắc chung:
n 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 đó
n Khi mô-đun vào-ra sẵn sàng thì nó phát tín 
hiệu ngắt CPU
n CPU thực hiện chương trình con xử lý ngắt 
vào-ra tương ứng để trao đổi dữ liệu 
n CPU trở lại tiếp tục thực hiện chương trình 
đang bị ngắt
2017 Kiến trúc máy tính 453
NKK-HUST
Chuyển điều khiển đến chương trình con ngắt
2017 Kiến trúc máy tính 454
lệnh i+1
lệnh i
lệnh
lệnh
lệnh
Ngắt ở đây
 . . .
lệnh
lệnh
lệnh
RETURN
 . . .
lệnh
lệnh
Chương trình 
đang thực hiện
Chương trình con 
xử lý ngắt
lệnh
NKK-HUST
Hoạt động vào dữ liệu: nhìn từ mô-đun vào-ra 
n Mô-đun vào-ra nhận tín hiệu điều khiển 
đọc từ CPU 
n Mô-đun vào-ra nhận dữ liệu từ thiết bị 
vào-ra, trong khi đó CPU làm việc khác
n Khi đã có dữ liệu à mô-đun vào-ra phát 
tín hiệu ngắt CPU
n CPU yêu cầu dữ liệu 
n Mô-đun vào-ra chuyển dữ liệu đến CPU
2017 Kiến trúc máy tính 455
NKK-HUST
Hoạt động vào dữ liệu: nhìn từ CPU 
n Phát tín hiệu điều khiển đọc
n Làm việc khác
n Cuối mỗi chu trình lệnh, kiểm tra tín hiệu 
yêu cầu ngắt 
n Nếu bị ngắt:
n Cất ngữ cảnh (nội dung các thanh ghi liên 
quan)
n Thực hiện chương trình con xử lý ngắt để vào 
dữ liệu 
n Khôi phục ngữ cảnh của chương trình đang 
thực hiện 
2017 Kiến trúc máy tính 456
NKK-HUST
Các vấn đề nảy sinh khi thiết kế
n Làm thế nào để xác định được mô-đun 
vào-ra nào phát tín hiệu ngắt ?
n CPU làm như thế nào khi có nhiều yêu 
cầu ngắt cùng xẩy ra ?
2017 Kiến trúc máy tính 457
NKK-HUST
Các phương pháp nối ghép ngắt
n Sử dụng nhiều đường yêu cầu ngắt 
n Hỏi vòng bằng phần mềm (Software 
Poll)
n Hỏi vòng bằng phần cứng (Daisy Chain 
or Hardware Poll)
n Sử dụng bộ điều khiển ngắt (PIC)
2017 Kiến trúc máy tính 458
NKK-HUST
Nhiều đường yêu cầu ngắt
n Mỗi mô-đun vào-ra được nối với một đường yêu cầu 
ngắt
n CPU phải có nhiều đường tín hiệu yêu cầu ngắt
n Hạn chế số lượng mô-đun vào-ra
n Các đường ngắt được qui định mức ưu tiên
CPU
Mô-đun 
vào-ra
INTR3
INTR2
INTR1
INTR0
Thanh 
ghi 
yêu 
cầu
ngắt
Mô-đun 
vào-ra
Mô-đun 
vào-ra
Mô-đun 
vào-ra
2017 Kiến trúc máy tính 459
NKK-HUST
Hỏi vòng bằng phần mềm 
n CPU thực hiện phần mềm hỏi lần lượt từng 
mô-đun vào-ra 
n Chậm
n Thứ tự các mô-đun được hỏi vòng chính là 
thứ tự ưu tiên
CPU
Mô-đun 
vào-ra
INTRCờ 
ngắt
Mô-đun 
vào-ra
Mô-đun 
vào-ra
Mô-đun 
vào-ra
2017 Kiến trúc máy tính 460
NKK-HUST
Hỏi vòng bằng phần cứng 
CPU
Mô-đun 
vào-ra
INTRCờ 
ngắt
Bus dữ liệu
Mô-đun 
vào-ra
Mô-đun 
vào-ra
Mô-đun 
vào-ra
INTA
2017 Kiến trúc máy tính 461
NKK-HUST
Hỏi vòng bằng phần cứng (tiếp)
n CPU phát tín hiệu chấp nhận ngắt 
(INTA) đến mô-đun vào-ra đầu tiên 
n 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
n Thứ tự các mô-đun vào-ra kết nối trong 
chuỗi xác định thứ tự ưu tiên
2017 Kiến trúc máy tính 462
NKK-HUST
Bộ điều khiển ngắt lập trình được
n PIC – Programmable Interrupt Controller
n PIC có nhiều đường vào yêu cầu ngắt có qui 
định mức ưu tiên
n 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
CPU
Mô-đun 
vào-ra
INTR n
INTRn-1
INTR1
INTR0
Mô-đun 
vào-ra
Mô-đun 
vào-ra
Mô-đun 
vào-ra
PIC
. . .INTR 
INTA
Bus dữ liệu
2017 Kiến trúc máy tính 463
NKK-HUST
Đặc điểm của vào-ra điều khiển bằng ngắt
n Có sự kết hợp giữa phần cứng và phần 
mềm
n Phần cứng: gây ngắt CPU
n Phần mềm: trao đổi dữ liệu giữa CPU với 
mô-đun vào-ra
n CPU trực tiếp điều khiển vào-ra 
n CPU không phải đợi mô-đun vào-ra, do 
đó hiệu quả sử dụng CPU tốt hơn
2017 Kiến trúc máy tính 464
NKK-HUST
3. DMA (Direct Memory Access)
n Vào-ra bằng chương trình và bằng ngắt 
do CPU trực tiếp điều khiển: 
n Chiếm thời gian của CPU
n Để khắc phục dùng kỹ thuật DMA
n Sử dụng mô-đun điều khiển vào-ra chuyên 
dụng, gọi là DMAC (Controller), điều khiển 
trao đổi dữ liệu giữa mô-đun vào-ra với bộ 
nhớ chính
2017 Kiến trúc máy tính 465
NKK-HUST
Sơ đồ cấu trúc của DMAC
Bộ đếm dữ liệu
Logic điều khiển
Thanh ghi địa chỉ
Thanh ghi dữ liệu
Các đường dữ liệu
Các đường địa chỉ
Yêu cầu bus
Chuyển nhượng bus
Ngắt
Đọc
Ghi
Điều khiển đọc
Điều khiển ghi
Yêu cầu DMA
Chấp nhận DMA
2017 Kiến trúc máy tính 466
NKK-HUST
Các thành phần của DMAC
n Thanh ghi dữ liệu: chứa dữ liệu trao đổi
n Thanh ghi địa chỉ: chứa địa chỉ ngăn 
nhớ dữ liệu 
n Bộ đếm dữ liệu: chứa số từ dữ liệu cần 
trao đổi
n Logic điều khiển: điều khiển hoạt động 
của DMAC 
2017 Kiến trúc máy tính 467
NKK-HUST
Hoạt động DMA
n CPU “nói” cho DMAC
n Vào hay Ra dữ liệu 
n Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng)
n Địa chỉ đầu của mảng nhớ chứa dữ liệu à nạp vào 
thanh ghi địa chỉ 
n Số từ dữ liệu cần truyền à nạp vào bộ đếm dữ liệu 
n CPU làm việc khác
n DMAC điều khiển trao đổi dữ liệu
n Sau khi truyền được một từ dữ liệu thì:
n nội dung thanh ghi địa chỉ tăng
n nội dung bộ đếm dữ liệu giảm 
n Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt 
CPU để báo kết thúc DMA
2017 Kiến trúc máy tính 468
NKK-HUST
Các kiểu thực hiện DMA
n DMA truyền theo khối (Block-transfer DMA): 
DMAC sử dụng bus để truyền xong cả khối 
dữ liệu 
n 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.
n 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.
2017 Kiến trúc máy tính 469
NKK-HUST
Cấu hình DMA (1)
n Mỗi lần trao đổi một dữ liệu, DMAC sử dụng 
bus hai lần
n Giữa mô-đun vào-ra với DMAC
n Giữa DMAC với bộ nhớ 
CPU .	.	
.
DMAC MemoryI/OModule
I/O
Module
System	Bus
2017 Kiến trúc máy tính 470
NKK-HUST
Cấu hình DMA (2)
n DMAC điều khiển một hoặc vài mô-đun vào-ra 
n Mỗi lần trao đổi một dữ liệu, DMAC sử dụng 
bus một lần
n Giữa DMAC với bộ nhớ 
CPU
.	.	
.
DMAC Memory
I/O
Module
I/O
Module
I/O
Module
DMAC
System	Bus
2017 Kiến trúc máy tính 471
NKK-HUST
Cấu hình DMA (3)
n Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMA 
n Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần
n Giữa DMAC với bộ nhớ 
CPU
.	.	
.
Memory
I/O
Module
I/O
Module
I/O
Module
DMAC
System	Bus
IO	Bus
2017 Kiến trúc máy tính 472
NKK-HUST
Đặc điểm của DMA
n CPU không tham gia trong quá trình 
trao đổi dữ liệu 
n 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)à tốc độ nhanh
n 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
2017 Kiến trúc máy tính 473
NKK-HUST
4. Bộ xử lý vào-ra
n 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
n Bộ xử lý vào-ra hoạt động theo chương 
trình của riêng nó
n Chương trình của bộ xử lý vào-ra có thể 
nằm trong bộ nhớ chính hoặc nằm 
trong một bộ nhớ riêng
2017 Kiến trúc máy tính 474
NKK-HUST
8.3. Nối ghép thiết bị vào-ra
1. Các kiểu nối ghép vào-ra
n Nối ghép song song
n Nối ghép nối tiếp
2017 Kiến trúc máy tính 475
NKK-HUST
Nối ghép song song
n Truyền nhiều bit song song
n Tốc độ nhanh
n Cần nhiều đường truyền dữ liệu
Mô-đun
vào-ra 
song 
song
Đến 
thiết bị 
vào-ra
Đến 
bus 
hệ 
thống
2017 Kiến trúc máy tính 476
NKK-HUST
Nối ghép nối tiếp
n Truyền lần lượt từng bit 
n Cần có bộ chuyển đổi từ dữ liệu song song sang 
nối tiếp hoặc/và ngược lại
n Tốc độ chậm hơn
n Cần ít đường truyền dữ liệu
Mô-đun 
vào-ra 
nối tiếp
Đến 
thiết bị 
vào-ra
Đến 
bus 
hệ 
thống
2017 Kiến trúc máy tính 477
NKK-HUST
2. Các cấu hình nối ghép
n Điểm tới điểm (Point to Point)
n Thông qua một cổng vào-ra nối ghép với một 
thiết bị 
n Điểm tới đa điểm (Point to Multipoint)
n 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ị 
n Ví dụ: 
n USB (Universal Serial Bus): 127 thiết bị
n IEEE 1394 (FireWire): 63 thiết bị 
n Thunderbolt
2017 Kiến trúc máy tính 478
NKK-HUST
Thunderbolt
7.7 / THE EXTERNAL INTERFACE: THUNDERBOLT AND INFINIBAND 251
THUNDERBOLT PROTOCOL ARCHITECTURE Figure 7.18 illustrates the 
Thunderbolt protocol architecture. The cable and connector layer provides 
transmission medium access. This layer specifies the physical and electrical 
attributes of the connector port.
The Thunderbolt protocol physical layer is responsible for link maintenance 
including hot-plug3 detection and data encoding to provide highly efficient data 
transfer. The physical layer has been designed to introduce very minimal overhead 
and provides full-duplex 10 Gbps of usable capacity to the upper layers.
The common transport layer is the key to the operation of Thunderbolt and 
what makes it attractive as a high-speed peripheral I/O technology. Some of the 
features include:
 • A high-performance, low-power, switching architecture.
 • A highly efficient, low-overhead packet format with flexible quality of service 
(QoS) support that allows multiplexing of bursty PCI Express transactions 
Processor
COMPUTER
Platform
controller
hub (PCH)
Thunderbolt
controller
Memory
TC
TC TC
Daisy
chain
Thunderbolt
connector
Thunderbolt
20 Gbps (max)
PCIe x4 DisplayPort
Graphics
Sub-
system
DisplayPort
Figure 7.17 Example Computer Configuration with Thunderbolt
3The term hot plug is defined as pulling out a component from a system and plugging in a new one while 
the main power is still on. It allows an external drive, network adapter, or other peripheral to be plugged 
in without having to power down the computer.
2017 Kiến trúc máy tính 479
NKK-HUST
Hết chương 8
2017 Kiến trúc máy tính 480

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_8_he_thong_vao_ra_nguyen.pdf