Phan Trung Kiên 1
Kiến trúc máy tính
Chương 6
HỆ THỐNG VÀO/RA
Phan Trung Kiên 2
Nội dung chương 6
 Tổng quan về hệ thống vào/ra
 Các phương pháp địa chỉ hóa cổng
vào/ra
 Các phương pháp điều khiển vào/ra
 Nối ghép thiết bị ngoại vi.
Phan Trung Kiên 3
Tổng quan về Hệ thống vào/ra
 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
 Các thao tác cơ bản:
• Vào dữ liệu (Input)
• Ra dữ liệu (Output)
 Các thành phần chính:
• Các thiết bị ngoại vi
• Mạch nối ghép vào/ra (Modul vào/ra)
Phan Trung Kiên 4
Tổng quan về Hệ thống vào/ra
Cache
Bus chính
BXL
Bộ nhớ
chính
Mạch ĐK
vào/ra
Mạch ĐK
vào/ra
Mạch ĐK
vào/ra
Đĩa Đĩa
Đồ họa
Mạng
Các ngắt
Phan Trung Kiên 5
Tại sao cần Modul vào/ra?
 Không thể nối trực tiếp các thiết bị ngoại
với bus hệ thống, vì:
• BXL không thể điều khiển được tất cả TBNV
• Tốc độ trao đổi dữ liệu khác nhau
• Khuôn dạng dữ liệu khác nhau
• Tất cả có tốc độ chậm hơn BXL và RAM
 Chức năng của Modul vào/ra:
• Nối ghép với BXL và hệ thống nhớ
• Nối ghép với một hoặc nhiều TBNV
Phan Trung Kiên 6
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 ngoài máy tính
 Phân loại:
• TBNV giao tiếp người-máy: màn hình,
bàn phím, máy in, ...
• TBNV giao tiếp máy-máy: các thiết bị
theo dõi và kiểm tra
• TBNV truyền thông: modem, card giao
tiếp mạng (NIC)
Phan Trung Kiên 7
Một số TBNV thông dụng
Phan Trung Kiên 8
Sơ đồ khối của TBNV
TÝn hiÖu §K
tõ Modul
vµo/ra
TÝn hiÖu TT
®Õn Modul
vµo/ra
D÷ liÖu ®Õn
vµ tõ Modul
vµo/ra
D÷ liÖu ®Õn vµ
tõ m«i tr−êng
bªn ngoµi
Logic §K
Bé ®Öm
Bé chuyÓn
®æi tÝn hiÖu
Phan Trung Kiên 9
Các thành phần cơ bản của TBNV
 Bộ chuyển đổi tín hiệu (transducer):
chuyển đổi dữ liệu từ dạng tín hiệu điện
thành dạng năng lượng khác và ngược lại
 Logic điều khiển (control logic): điều khiển
hoạt động của TBNV đáp ứng theo yêu
cầu từ Modul vào/ra
 Bộ đệm (buffer): chứa dữ liệu tạm thời khi
trao đổi dữ liệu giữa Modul vào/ra và
TBNV
Phan Trung Kiên 10
Modul vào/ra
 Chức năng:
• Điều khiển và định thời gian
• Trao đổi thông tin với BXL
• Trao đổi thông tin với TBNV
• Bộ đệm dữ liệu
• Phát hiện lỗi
Phan Trung Kiên 11
Sơ đồ khối của Modul vào/ra
C¸c ®−êng
d÷ liÖu
Nèi ghÐp víi
TBNV
C¸c ®−êng
®Þa chØ
C¸c ®−êng
®iÒu khiÓn
Thanh ghi d÷ liÖu
Thanh ghi §K/tr¹ng th¸i
Logic
vµo/ra
Logic
giao diÖn
víi TBNV
Logic
giao diÖn
víi TBNV
D÷ liÖu
§iÒu khiÓn
Tr¹ng th¸i
D÷ liÖu
§iÒu khiÓn
Tr¹ng th¸i
Nèi ghÐp víi
bus hÖ thèng
Phan Trung Kiên 12
Thành phần cơ bản của Modul vào/ra
 Thanh ghi dữ liệu: đệm dữ liệu trong
quá trình trao đổi
 Các cổng vào/ra: kết nối với TBNV,
mỗi cổng có một địa chỉ xác định
 Thanh ghi điều khiển/trạng thái: lưu
giữ thông tin điều khiển, trạng thái
cho các cổng vào/ra
 Logic điều khiển: điều khiển Modul
vào/ra
Phan Trung Kiên 13
Các PP địa chỉ hóa cổng vào/ra
 Vào/ra tách biệt (isolated IO)
 Vào/ra theo bản đồ bộ nhớ (memory
mapped IO)
Phan Trung Kiên 14
Vào/ra cách biệt
 Đặc điểm:
• Không gian địa chỉ cổng vào/ra nằm
ngoài không gian địa chỉ bộ nhớ
 Cách truy nhập:
• Cần có tín hiệu phân biệt truy nhập
cổng vào/ra hay truy nhập bộ nhớ
• Sử dụng lệnh vào/ra chuyên dụng: IN,
OUT.
Phan Trung Kiên 15
Ví dụ đối với BXL 8088
BỘ NHỚ THIẾT BỊ VÀO THIẾT BỊ RA
Lệnh: MOV IN OUT
T/h ĐK: IO/M = 0 IO/M = 1 IO/M = 1
1 MB
00000H
FFFFFH
64 KB
0000H
FFFFH
64 KB
0000H
FFFFH
Phan Trung Kiên 16
Vào/ra theo bản đồ bộ nhớ
 Đặc điểm:
• Không gian địa chỉ cổng vào/ra nằm
trong không gian địa chỉ bộ nhớ
 Cách truy nhập:
• Dùng chung tín hiệu như truy nhập bộ
nhớ
• Dùng chung lệnh trao đổi dữ liệu với bộ
nhớ
Phan Trung Kiên 17
Ví dụ đối với BXL 8088
 Lệnh và tín hiệu
điều khiển chung
cho cả hai:
MOV
IO/M = 0
00000H
FFFFFH
VÀO/RA BỘ NHỚ
Phan Trung Kiên 18
Các phương pháp điều khiển vào/ra
 Vào/ra bằng chương trình (Programmed IO)
 Vào/ra bằng ngắt (Interrupt Driven IO)
 Vào/ra bằng DMA (Direct Memory Access)
Phan Trung Kiên 19
Vào/ra bằng chương trình
 Nguyên tắc chung:
• Sử dụng lệnh vào/ra trong chương trình
để trao đổi dữ liệu với cổng vào/ra
• Khi BXL thực hiện chương trình, gặp
lệnh vào/ra thì BXL điều khiển trao đổi
dữ liệu với thiết bị ngoại vi
Phan Trung Kiên 20
Hoạt động vào/ra bằng chương trình
 BXL yêu cầu thao tác vào/ra
 Modul vào/ra thực hiện thao tác
 Modul vào/ra thiết lập các bit trạng
thái
 BXL kiểm tra các bit trạng thái:
• Nếu chưa sẵn sàng thì quay lại kiểm tra
• Nếu đã sẵn sàng thì tiến hành trao đổi
dữ liệu với modul vào ra
Phan Trung Kiên 21
Lưu đồ hoạt động
Đọc trạng thái
của TBNV
TBNV sẵn sàng?
Trao đổi DL
với TBNV
Sai
Đúng
Phan Trung Kiên 22
Các lệnh vào/ra
 BXL phát ra địa chỉ
• Xác định Modul vào/ra (và thiết bị nếu
một Modul chứa nhiều hơn 1 thiết bị)
 BXL phát ra lệnh:
• Điều khiển: yêu cầu Modul làm việc gì
 VD: điều khiển quay đĩa
• Kiểm tra: kiểm tra trạng thái
 VD: nguồn? lỗi?
• Đọc/ghi
 Modul truyền DL qua bộ đệm từ/tới thiết bị
Phan Trung Kiên 23
Đặc điểm
 BXL trực tiếp điều khiển vào/ra
• Nhận biết thông tin trạng thái từ TBNV
• Phát tín hiệu điều khiển Read/Write
• Trao đổi dữ liệu
 BXL chờ đến khi Modul vào/ra hoàn
thành thao tác
 Tốn thời gian của BXL
Phan Trung Kiên 24
Phân loại ngắt
 Ngắt cứng (Hard Interrupt): yêu cầu ngắt
do mạch phần cứng bên ngoài gửi đến
• Ngắt cứng NMI (None Maskable Interrupt): có
yêu cầu ngắt thì bắt buộc phải ngắt
 Ví dụ: Có sự cố nguồn; lỗi bộ nhớ
• Ngắt cứng MI (Maskable Interrupt): có yêu
cầu ngắt thì có hai khả năng xẩy ra:
 Được ngắt nếu ngắt đó ở trạng thái cho phép
 Không được ngắt nếu ngắt đó ở trạng thái bị cấm
Ngắt cứng MI dùng để trao đổi dữ liệu với
TBNV
Phan Trung Kiên 25
Phân loại ngắt
 Ngắt mềm (Soft Interrupt): Yêu cầu ngắt
do lệnh gọi ngắt nằm trong chương trình
sinh ra
 Ngắt ngoại lệ (Exception Interrupt): là các
ngắt sinh ra do lỗi xuất hiện trong quá
trình thực hiện chương trình
• Ví dụ:
 Gặp lệnh chia cho 0
 Lệnh sai cú pháp
 tràn số
 Nhảy đến các điều kiện không tồn tại
Phan Trung Kiên 26
Nguyên tắc hoạt động
 BXL không mất thời gian chờ đợi
 BXL không phải kiểm tra trạng thái
sẵn sàng của TBNV
 Modul vào/ra ngắt BXL khi nó ở trạng
thái sẵn sàng
Phan Trung Kiên 27
Hoạt động
Mạch điều khiển
thiết bị phát ra ngắt
BXL thực hiện
xong lệnh hiện tại
BXL phát tín hiệu
chấp nhận ngắt
BXL cất nội dung Thanh ghi
cờ và Bộ đếm CT vào Stack
BXL nạp vào Bộ đếm CT
giá trị địa chỉ mới lấy từ
ngắt vào
BXL cất các thông tin còn
lại của trạng thái xử lý
Thực hiện
ngắt
Khôi phục
thông tin trạng
thái
Khôi phục Thanh
ghi cờ và Bộ đếm
CT
Phầncứng
Phầnmềm
Phan Trung Kiên 28
Đặc điểm
 Có sự kết hợp giữa phần cứng và
phần mềm
• Phần cứng: yêu cầu ngắt BXL
• Phần mềm: trao đổi dữ liệu
 BXL trực tiếp điều khiển vào/ra
 BXL không phải đợi Modul vào/ra
 hiệu quả BXL sử dụng tốt hơn
Phan Trung Kiên 29
Các PP xác định modul ngắt
 Nhiều đường yêu cầu ngắt
(Different line for each module)
 Kiểm tra vòng bằng phần mềm
(Software poll)
 Kiểm tra vòng bằng phần cứng
(Daisy Chain or Hardware poll)
 Chiếm bus (Bus Master)
Phan Trung Kiên 30
PP1: Nhiều đường yêu cầu ngắt
 BXL phải có các đường yêu cầu ngắt khác nhau
cho mỗi modul vào/ra
 Hạn chế số lượng thiết bị
Modul
vào ra
Modul
vào ra
Modul
vào ra
Modul
vào ra
BXL
Thanhghingắt
INTR 0
INTR 1
INTR 2
INTR 3
Phan Trung Kiên 31
PP2: Kiểm tra vòng bằng phần mềm
 BXL thực hiện phần mềm kiểm tra từng Modul
 Tốc độ chậm
Modul
vào ra
Modul
vào ra
Modul
vào ra
Modul
vào ra
BXL
Cờ
yêu
cầu
ngắt
INTR
Phan Trung Kiên 32
PP3: Kiểm tra vòng bằng phần cứng
 BXL phát tín hiệu chấp nhận ngắt đến chuỗi các Modul
vào/ra
 Modul sẽ đáp ứng bằng cách đặt vectơ ngắt lên bus dữ
liệu
 BXL sử dụng vectơ để xác định CTC điều khiển ngắt
Modul
vào ra
Modul
vào ra
Modul
vào ra
Modul
vào ra
BXL
Cờ
yêu
cầu
ngắt
INTR
Bus dữ liệu
INTA
Phan Trung Kiên 33
PP4: Chiếm bus
 Modul vào/ra cần chiếm bus trước khi
nó phát tín hiệu yêu cầu ngắt
 Ví dụ:
• PCI
• SCSI
Phan Trung Kiên 34
Xử lý với nhiều ngắt
 Các ngắt bị cấm
• BXL sẽ bỏ qua các ngắt khác trong khi đang
thực hiện một ngắt
• Các ngắt phải chờ và được kiểm tra sau khi
ngắt đang phục vụ được xử lý xong
• Các ngắt được thực hiện tuần tự
 Định nghĩa ưu tiên ngắt:
• Ngắt có mức ưu tiên thấp hơn thì có thể bị
ngắt bởi ngắt có ưu tiên cao hơn
• Khi ngắt có mức ưu tiên cao hơn được xử lý
xong thì BXL quay về ngắt trước đó
Phan Trung Kiên 35
Ngắt tuần tự
Phan Trung Kiên 36
Ngắt lồng nhau
Phan Trung Kiên 37
Nhiều ngắt xảy ra đồng thời
 Nếu có nhiều yêu cầu ngắt cùng một
lúc gửi đến BXL thì BXL giải quyết
thế nào?
 Nhờ sự can thiệp của Mạch điều
khiển ngắt lập trình được (PIC -
Programmable Interrupt Controller)
Phan Trung Kiên 38
PIC
 PIC có nhiều đường vào yêu cầu ngắt
 PIC chọn ngắt có ưu tiên cao nhất (không
bị cấm) gửi tới BXL
Modul
vào ra
Modul
vào ra
Modul
vào ra
Modul
vào ra
PIC INTR 0
INTR 1
INTR 2
INTR 3
BXL
Bus DL
INTR
INTA
Phan Trung Kiên 39
Ví dụ: PIC 8259A
Phan Trung Kiên 40
Vào/ra bằng DMA
 Vào ra bằng chương trình và vào/ra
bằng ngắt do BXL điều khiển
• Tốc độ truyền bị hạn chế
• Chiếm thời gian của BXL
 Để khắc phục, dùng DMA
• Thêm modul phần cứng trên bus:
DMAC (DMA Controller)
• DMAC điều khiển vào/ra không qua
BXL
Phan Trung Kiên 41
Sơ đồ cấu trúc của DMAC
Phan Trung Kiên 42
Các thành phần của DMAC
 Thanh ghi dữ liệu: chứa dữ liệu cần
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
Phan Trung Kiên 43
Sơ đồ
DMACBXL Bộ nhớ TBNV
HRQ
DACK
DREQ
HLDA
Bus địa chỉ
Bus dữ liệu
Bus điều khiển
Phan Trung Kiên 44
Quá trình hoạt động
 B1: TBNV gửi tín hiệu DREQ (Dma REQuest) tới DMAC
 B2: DMAC gửi tín hiệu HRQ (Hold ReQuest) để xin
dùng các đường bus
 B3: BXL sẽ thực hiện xong chu kỳ bus hiện tại và trả lời
đồng ý bằng việc gửi tín hiệu HLDA (HoLD
Acknowledge) tới DMAC
 B4: DMAC gửi tín hiệu DACK (Dma ACKnowledge) tới
TBNV báo chuẩn bị truyền dữ liệu
 B5: DMAC thực hiện điều khiển quá trình truyền dữ liệu
giữa bộ nhớ và TBNV
 B6: DMAC thực hiện xong công việc, nó bỏ kích hoạt tín
hiệu HRQ. Hệ thống trở lại bình thường.
Phan Trung Kiên 45
Các kiểu thực hiện DMA
 DMA truyền theo khối (block-transfer
DMA): DMAC sử dụng bus để truyền cả khối
dữ liệu.
 DMA ăn trộm chu kỳ (cycle stealing DMA):
DMAC ép buộc BXL treo tạm thời từng chu kỳ
để thực hiện truyền một byte dữ liệu.
 DMA trong suốt (transparent DMA):
DMAC nhận biết những chu kỳ nào BXL không
dùng bus thì lấy bus để tranh thủ truyền một
byte dữ liệu.
Phan Trung Kiên 46
Cấu hình DMA: kiểu 1
 Bus đơn, bộ điều khiển DMA riêng rẽ
 Mỗi lần truyền, DMAC sử dụng bus 2 lần:
• Từ Modul vào/ra đến DMAC
• Từ DMAC đến bộ nhớ
 BXL bị treo bus 2 lần
Phan Trung Kiên 47
Cấu hình DMA: kiểu 2
 Bus đơn, bộ điều khiển DMA tích hợp
 DMAC điều khiển một hoặc vài Modul vào/ra
 Mỗi lần truyền, chỉ sử dụng bus 1 lần
• Từ DMAC tới bộ nhớ
 BXL chỉ bị treo bus 1 lần
Phan Trung Kiên 48
Cấu hình DMA: kiểu 3
 Bus vào/ra tách rời, hỗ trợ tất cả các thiết
bị cho phép DMA
 Mỗi lần truyền chỉ dùng bus 1 lần:
• Từ DMA tới bộ nhớ
 BXL cũng chỉ bị treo bus 1 lần
Phan Trung Kiên 49
Nối ghép thiết bị ngoại vi
 Các kiểu nối ghép vào/ra:
• Nối ghép song song
• Nối ghép nối tiếp
 Các cấu hình nối ghép:
• Điểm tới điểm
• Điểm tới đa điểm
Phan Trung Kiên 50
Nối ghép song song
 Truyền nhiều bit song song
 Tốc độ nhanh
 Cần nhiều đường truyền dữ liệu
Modul
vào/ra
song
song
Đến
bus hệ
thống
Đến
thiết bị
ngoại
vi
Phan Trung Kiên 51
Nối ghép nối tiếp
 Truyền lần lượt từng bit
 Cần có bộ chuyển đổi song song thành
nối tiếp và ngược lại
 Tốc dộ chậm
 Cần ít đường truyền dữ liệu
Modul
vào/ra
nối
tiếp
Đến
bus
hệ
thôn
g
Đến
thiết
bị
ngoạ
i vi
Phan Trung Kiên 52
Các cấu hình nối ghép
 Điểm tới điểm (point-to-point):
• Thông qua một cổng vào/ra, nối ghép với một
TBNV
• Ví dụ: cổng chuột, bàn phím, ...
 Điểm tới đa điểm (point-to-multipoint):
• Thông qua một cổng vào/ra, nối ghép được
với nhiều TBNV
• Ví dụ:
 SCSI: 7 hoặc 15 thiết bị
 USB: 127 thiết bị
 IEEE 1394 FireWire: 63 thiết bị
Phan Trung Kiên 53
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 song song (Parallel Port) –
25 chân
 Cổng COM (Communication): nối ghép với
modem, chuột, là cổng nối tiếp (Serial Port)
– 9 chân hoặc 25 chân
 Cổng USB (Universal Serial Bus): Cổng nối
tiếp đa năng, cho phép nối ghép tối đa 127
thiết bị, nhờ các USB Hub
Phan Trung Kiên 54
Kiến trúc máy tính
HẾT CHƯƠNG 6

Ktmt chuong 6

  • 1.
    Phan Trung Kiên1 Kiến trúc máy tính Chương 6 HỆ THỐNG VÀO/RA
  • 2.
    Phan Trung Kiên2 Nội dung chương 6  Tổng quan về hệ thống vào/ra  Các phương pháp địa chỉ hóa cổng vào/ra  Các phương pháp điều khiển vào/ra  Nối ghép thiết bị ngoại vi.
  • 3.
    Phan Trung Kiên3 Tổng quan về Hệ thống vào/ra  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  Các thao tác cơ bản: • Vào dữ liệu (Input) • Ra dữ liệu (Output)  Các thành phần chính: • Các thiết bị ngoại vi • Mạch nối ghép vào/ra (Modul vào/ra)
  • 4.
    Phan Trung Kiên4 Tổng quan về Hệ thống vào/ra Cache Bus chính BXL Bộ nhớ chính Mạch ĐK vào/ra Mạch ĐK vào/ra Mạch ĐK vào/ra Đĩa Đĩa Đồ họa Mạng Các ngắt
  • 5.
    Phan Trung Kiên5 Tại sao cần Modul vào/ra?  Không thể nối trực tiếp các thiết bị ngoại với bus hệ thống, vì: • BXL không thể điều khiển được tất cả TBNV • Tốc độ trao đổi dữ liệu khác nhau • Khuôn dạng dữ liệu khác nhau • Tất cả có tốc độ chậm hơn BXL và RAM  Chức năng của Modul vào/ra: • Nối ghép với BXL và hệ thống nhớ • Nối ghép với một hoặc nhiều TBNV
  • 6.
    Phan Trung Kiên6 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 ngoài máy tính  Phân loại: • TBNV giao tiếp người-máy: màn hình, bàn phím, máy in, ... • TBNV giao tiếp máy-máy: các thiết bị theo dõi và kiểm tra • TBNV truyền thông: modem, card giao tiếp mạng (NIC)
  • 7.
    Phan Trung Kiên7 Một số TBNV thông dụng
  • 8.
    Phan Trung Kiên8 Sơ đồ khối của TBNV TÝn hiÖu §K tõ Modul vµo/ra TÝn hiÖu TT ®Õn Modul vµo/ra D÷ liÖu ®Õn vµ tõ Modul vµo/ra D÷ liÖu ®Õn vµ tõ m«i tr−êng bªn ngoµi Logic §K Bé ®Öm Bé chuyÓn ®æi tÝn hiÖu
  • 9.
    Phan Trung Kiên9 Các thành phần cơ bản của TBNV  Bộ chuyển đổi tín hiệu (transducer): chuyển đổi dữ liệu từ dạng tín hiệu điện thành dạng năng lượng khác và ngược lại  Logic điều khiển (control logic): điều khiển hoạt động của TBNV đáp ứng theo yêu cầu từ Modul vào/ra  Bộ đệm (buffer): chứa dữ liệu tạm thời khi trao đổi dữ liệu giữa Modul vào/ra và TBNV
  • 10.
    Phan Trung Kiên10 Modul vào/ra  Chức năng: • Điều khiển và định thời gian • Trao đổi thông tin với BXL • Trao đổi thông tin với TBNV • Bộ đệm dữ liệu • Phát hiện lỗi
  • 11.
    Phan Trung Kiên11 Sơ đồ khối của Modul vào/ra C¸c ®−êng d÷ liÖu Nèi ghÐp víi TBNV C¸c ®−êng ®Þa chØ C¸c ®−êng ®iÒu khiÓn Thanh ghi d÷ liÖu Thanh ghi §K/tr¹ng th¸i Logic vµo/ra Logic giao diÖn víi TBNV Logic giao diÖn víi TBNV D÷ liÖu §iÒu khiÓn Tr¹ng th¸i D÷ liÖu §iÒu khiÓn Tr¹ng th¸i Nèi ghÐp víi bus hÖ thèng
  • 12.
    Phan Trung Kiên12 Thành phần cơ bản của Modul vào/ra  Thanh ghi dữ liệu: đệm dữ liệu trong quá trình trao đổi  Các cổng vào/ra: kết nối với TBNV, mỗi cổng có một địa chỉ xác định  Thanh ghi điều khiển/trạng thái: lưu giữ thông tin điều khiển, trạng thái cho các cổng vào/ra  Logic điều khiển: điều khiển Modul vào/ra
  • 13.
    Phan Trung Kiên13 Các PP địa chỉ hóa cổng vào/ra  Vào/ra tách biệt (isolated IO)  Vào/ra theo bản đồ bộ nhớ (memory mapped IO)
  • 14.
    Phan Trung Kiên14 Vào/ra cách biệt  Đặc điểm: • Không gian địa chỉ cổng vào/ra nằm ngoài không gian địa chỉ bộ nhớ  Cách truy nhập: • Cần có tín hiệu phân biệt truy nhập cổng vào/ra hay truy nhập bộ nhớ • Sử dụng lệnh vào/ra chuyên dụng: IN, OUT.
  • 15.
    Phan Trung Kiên15 Ví dụ đối với BXL 8088 BỘ NHỚ THIẾT BỊ VÀO THIẾT BỊ RA Lệnh: MOV IN OUT T/h ĐK: IO/M = 0 IO/M = 1 IO/M = 1 1 MB 00000H FFFFFH 64 KB 0000H FFFFH 64 KB 0000H FFFFH
  • 16.
    Phan Trung Kiên16 Vào/ra theo bản đồ bộ nhớ  Đặc điểm: • Không gian địa chỉ cổng vào/ra nằm trong không gian địa chỉ bộ nhớ  Cách truy nhập: • Dùng chung tín hiệu như truy nhập bộ nhớ • Dùng chung lệnh trao đổi dữ liệu với bộ nhớ
  • 17.
    Phan Trung Kiên17 Ví dụ đối với BXL 8088  Lệnh và tín hiệu điều khiển chung cho cả hai: MOV IO/M = 0 00000H FFFFFH VÀO/RA BỘ NHỚ
  • 18.
    Phan Trung Kiên18 Các phương pháp điều khiển vào/ra  Vào/ra bằng chương trình (Programmed IO)  Vào/ra bằng ngắt (Interrupt Driven IO)  Vào/ra bằng DMA (Direct Memory Access)
  • 19.
    Phan Trung Kiên19 Vào/ra bằng chương trình  Nguyên tắc chung: • Sử dụng lệnh vào/ra trong chương trình để trao đổi dữ liệu với cổng vào/ra • Khi BXL thực hiện chương trình, gặp lệnh vào/ra thì BXL điều khiển trao đổi dữ liệu với thiết bị ngoại vi
  • 20.
    Phan Trung Kiên20 Hoạt động vào/ra bằng chương trình  BXL yêu cầu thao tác vào/ra  Modul vào/ra thực hiện thao tác  Modul vào/ra thiết lập các bit trạng thái  BXL kiểm tra các bit trạng thái: • Nếu chưa sẵn sàng thì quay lại kiểm tra • Nếu đã sẵn sàng thì tiến hành trao đổi dữ liệu với modul vào ra
  • 21.
    Phan Trung Kiên21 Lưu đồ hoạt động Đọc trạng thái của TBNV TBNV sẵn sàng? Trao đổi DL với TBNV Sai Đúng
  • 22.
    Phan Trung Kiên22 Các lệnh vào/ra  BXL phát ra địa chỉ • Xác định Modul vào/ra (và thiết bị nếu một Modul chứa nhiều hơn 1 thiết bị)  BXL phát ra lệnh: • Điều khiển: yêu cầu Modul làm việc gì  VD: điều khiển quay đĩa • Kiểm tra: kiểm tra trạng thái  VD: nguồn? lỗi? • Đọc/ghi  Modul truyền DL qua bộ đệm từ/tới thiết bị
  • 23.
    Phan Trung Kiên23 Đặc điểm  BXL trực tiếp điều khiển vào/ra • Nhận biết thông tin trạng thái từ TBNV • Phát tín hiệu điều khiển Read/Write • Trao đổi dữ liệu  BXL chờ đến khi Modul vào/ra hoàn thành thao tác  Tốn thời gian của BXL
  • 24.
    Phan Trung Kiên24 Phân loại ngắt  Ngắt cứng (Hard Interrupt): yêu cầu ngắt do mạch phần cứng bên ngoài gửi đến • Ngắt cứng NMI (None Maskable Interrupt): có yêu cầu ngắt thì bắt buộc phải ngắt  Ví dụ: Có sự cố nguồn; lỗi bộ nhớ • Ngắt cứng MI (Maskable Interrupt): có yêu cầu ngắt thì có hai khả năng xẩy ra:  Được ngắt nếu ngắt đó ở trạng thái cho phép  Không được ngắt nếu ngắt đó ở trạng thái bị cấm Ngắt cứng MI dùng để trao đổi dữ liệu với TBNV
  • 25.
    Phan Trung Kiên25 Phân loại ngắt  Ngắt mềm (Soft Interrupt): Yêu cầu ngắt do lệnh gọi ngắt nằm trong chương trình sinh ra  Ngắt ngoại lệ (Exception Interrupt): là các ngắt sinh ra do lỗi xuất hiện trong quá trình thực hiện chương trình • Ví dụ:  Gặp lệnh chia cho 0  Lệnh sai cú pháp  tràn số  Nhảy đến các điều kiện không tồn tại
  • 26.
    Phan Trung Kiên26 Nguyên tắc hoạt động  BXL không mất thời gian chờ đợi  BXL không phải kiểm tra trạng thái sẵn sàng của TBNV  Modul vào/ra ngắt BXL khi nó ở trạng thái sẵn sàng
  • 27.
    Phan Trung Kiên27 Hoạt động Mạch điều khiển thiết bị phát ra ngắt BXL thực hiện xong lệnh hiện tại BXL phát tín hiệu chấp nhận ngắt BXL cất nội dung Thanh ghi cờ và Bộ đếm CT vào Stack BXL nạp vào Bộ đếm CT giá trị địa chỉ mới lấy từ ngắt vào BXL cất các thông tin còn lại của trạng thái xử lý Thực hiện ngắt Khôi phục thông tin trạng thái Khôi phục Thanh ghi cờ và Bộ đếm CT Phầncứng Phầnmềm
  • 28.
    Phan Trung Kiên28 Đặc điểm  Có sự kết hợp giữa phần cứng và phần mềm • Phần cứng: yêu cầu ngắt BXL • Phần mềm: trao đổi dữ liệu  BXL trực tiếp điều khiển vào/ra  BXL không phải đợi Modul vào/ra  hiệu quả BXL sử dụng tốt hơn
  • 29.
    Phan Trung Kiên29 Các PP xác định modul ngắt  Nhiều đường yêu cầu ngắt (Different line for each module)  Kiểm tra vòng bằng phần mềm (Software poll)  Kiểm tra vòng bằng phần cứng (Daisy Chain or Hardware poll)  Chiếm bus (Bus Master)
  • 30.
    Phan Trung Kiên30 PP1: Nhiều đường yêu cầu ngắt  BXL phải có các đường yêu cầu ngắt khác nhau cho mỗi modul vào/ra  Hạn chế số lượng thiết bị Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL Thanhghingắt INTR 0 INTR 1 INTR 2 INTR 3
  • 31.
    Phan Trung Kiên31 PP2: Kiểm tra vòng bằng phần mềm  BXL thực hiện phần mềm kiểm tra từng Modul  Tốc độ chậm Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL Cờ yêu cầu ngắt INTR
  • 32.
    Phan Trung Kiên32 PP3: Kiểm tra vòng bằng phần cứng  BXL phát tín hiệu chấp nhận ngắt đến chuỗi các Modul vào/ra  Modul sẽ đáp ứng bằng cách đặt vectơ ngắt lên bus dữ liệu  BXL sử dụng vectơ để xác định CTC điều khiển ngắt Modul vào ra Modul vào ra Modul vào ra Modul vào ra BXL Cờ yêu cầu ngắt INTR Bus dữ liệu INTA
  • 33.
    Phan Trung Kiên33 PP4: Chiếm bus  Modul vào/ra cần chiếm bus trước khi nó phát tín hiệu yêu cầu ngắt  Ví dụ: • PCI • SCSI
  • 34.
    Phan Trung Kiên34 Xử lý với nhiều ngắt  Các ngắt bị cấm • BXL sẽ bỏ qua các ngắt khác trong khi đang thực hiện một ngắt • Các ngắt phải chờ và được kiểm tra sau khi ngắt đang phục vụ được xử lý xong • Các ngắt được thực hiện tuần tự  Định nghĩa ưu tiên ngắt: • Ngắt có mức ưu tiên thấp hơn thì có thể bị ngắt bởi ngắt có ưu tiên cao hơn • Khi ngắt có mức ưu tiên cao hơn được xử lý xong thì BXL quay về ngắt trước đó
  • 35.
    Phan Trung Kiên35 Ngắt tuần tự
  • 36.
    Phan Trung Kiên36 Ngắt lồng nhau
  • 37.
    Phan Trung Kiên37 Nhiều ngắt xảy ra đồng thời  Nếu có nhiều yêu cầu ngắt cùng một lúc gửi đến BXL thì BXL giải quyết thế nào?  Nhờ sự can thiệp của Mạch điều khiển ngắt lập trình được (PIC - Programmable Interrupt Controller)
  • 38.
    Phan Trung Kiên38 PIC  PIC có nhiều đường vào yêu cầu ngắt  PIC chọn ngắt có ưu tiên cao nhất (không bị cấm) gửi tới BXL Modul vào ra Modul vào ra Modul vào ra Modul vào ra PIC INTR 0 INTR 1 INTR 2 INTR 3 BXL Bus DL INTR INTA
  • 39.
    Phan Trung Kiên39 Ví dụ: PIC 8259A
  • 40.
    Phan Trung Kiên40 Vào/ra bằng DMA  Vào ra bằng chương trình và vào/ra bằng ngắt do BXL điều khiển • Tốc độ truyền bị hạn chế • Chiếm thời gian của BXL  Để khắc phục, dùng DMA • Thêm modul phần cứng trên bus: DMAC (DMA Controller) • DMAC điều khiển vào/ra không qua BXL
  • 41.
    Phan Trung Kiên41 Sơ đồ cấu trúc của DMAC
  • 42.
    Phan Trung Kiên42 Các thành phần của DMAC  Thanh ghi dữ liệu: chứa dữ liệu cần 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
  • 43.
    Phan Trung Kiên43 Sơ đồ DMACBXL Bộ nhớ TBNV HRQ DACK DREQ HLDA Bus địa chỉ Bus dữ liệu Bus điều khiển
  • 44.
    Phan Trung Kiên44 Quá trình hoạt động  B1: TBNV gửi tín hiệu DREQ (Dma REQuest) tới DMAC  B2: DMAC gửi tín hiệu HRQ (Hold ReQuest) để xin dùng các đường bus  B3: BXL sẽ thực hiện xong chu kỳ bus hiện tại và trả lời đồng ý bằng việc gửi tín hiệu HLDA (HoLD Acknowledge) tới DMAC  B4: DMAC gửi tín hiệu DACK (Dma ACKnowledge) tới TBNV báo chuẩn bị truyền dữ liệu  B5: DMAC thực hiện điều khiển quá trình truyền dữ liệu giữa bộ nhớ và TBNV  B6: DMAC thực hiện xong công việc, nó bỏ kích hoạt tín hiệu HRQ. Hệ thống trở lại bình thường.
  • 45.
    Phan Trung Kiên45 Các kiểu thực hiện DMA  DMA truyền theo khối (block-transfer DMA): DMAC sử dụng bus để truyền cả khối dữ liệu.  DMA ăn trộm chu kỳ (cycle stealing DMA): DMAC ép buộc BXL treo tạm thời từng chu kỳ để thực hiện truyền một byte dữ liệu.  DMA trong suốt (transparent DMA): DMAC nhận biết những chu kỳ nào BXL không dùng bus thì lấy bus để tranh thủ truyền một byte dữ liệu.
  • 46.
    Phan Trung Kiên46 Cấu hình DMA: kiểu 1  Bus đơn, bộ điều khiển DMA riêng rẽ  Mỗi lần truyền, DMAC sử dụng bus 2 lần: • Từ Modul vào/ra đến DMAC • Từ DMAC đến bộ nhớ  BXL bị treo bus 2 lần
  • 47.
    Phan Trung Kiên47 Cấu hình DMA: kiểu 2  Bus đơn, bộ điều khiển DMA tích hợp  DMAC điều khiển một hoặc vài Modul vào/ra  Mỗi lần truyền, chỉ sử dụng bus 1 lần • Từ DMAC tới bộ nhớ  BXL chỉ bị treo bus 1 lần
  • 48.
    Phan Trung Kiên48 Cấu hình DMA: kiểu 3  Bus vào/ra tách rời, hỗ trợ tất cả các thiết bị cho phép DMA  Mỗi lần truyền chỉ dùng bus 1 lần: • Từ DMA tới bộ nhớ  BXL cũng chỉ bị treo bus 1 lần
  • 49.
    Phan Trung Kiên49 Nối ghép thiết bị ngoại vi  Các kiểu nối ghép vào/ra: • Nối ghép song song • Nối ghép nối tiếp  Các cấu hình nối ghép: • Điểm tới điểm • Điểm tới đa điểm
  • 50.
    Phan Trung Kiên50 Nối ghép song song  Truyền nhiều bit song song  Tốc độ nhanh  Cần nhiều đường truyền dữ liệu Modul vào/ra song song Đến bus hệ thống Đến thiết bị ngoại vi
  • 51.
    Phan Trung Kiên51 Nối ghép nối tiếp  Truyền lần lượt từng bit  Cần có bộ chuyển đổi song song thành nối tiếp và ngược lại  Tốc dộ chậm  Cần ít đường truyền dữ liệu Modul vào/ra nối tiếp Đến bus hệ thôn g Đến thiết bị ngoạ i vi
  • 52.
    Phan Trung Kiên52 Các cấu hình nối ghép  Điểm tới điểm (point-to-point): • Thông qua một cổng vào/ra, nối ghép với một TBNV • Ví dụ: cổng chuột, bàn phím, ...  Điểm tới đa điểm (point-to-multipoint): • Thông qua một cổng vào/ra, nối ghép được với nhiều TBNV • Ví dụ:  SCSI: 7 hoặc 15 thiết bị  USB: 127 thiết bị  IEEE 1394 FireWire: 63 thiết bị
  • 53.
    Phan Trung Kiên53 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 song song (Parallel Port) – 25 chân  Cổng COM (Communication): nối ghép với modem, chuột, là cổng nối tiếp (Serial Port) – 9 chân hoặc 25 chân  Cổng USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị, nhờ các USB Hub
  • 54.
    Phan Trung Kiên54 Kiến trúc máy tính HẾT CHƯƠNG 6