ktmt chuong 6

54
Phan Trung Kiên 1 Kiến trúc máy tính Chương 6 HTHNG VÀO/RA

Upload: ductungsky

Post on 16-Jul-2015

108 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Ktmt chuong 6

Phan Trung Kiên 1

Kiến trúc máy tính

Chương 6HỆ

THỐNG VÀO/RA

Page 2: Ktmt chuong 6

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.

Page 3: Ktmt chuong 6

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)

Page 4: Ktmt chuong 6

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 ĐKvào/ra

Mạch ĐKvào/ra

Mạch ĐKvào/ra

Đĩa ĐĩaĐồ

họaMạng

Các ngắt

Page 5: Ktmt chuong 6

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ả

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

Page 6: Ktmt chuong 6

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)

Page 7: Ktmt chuong 6

Phan Trung Kiên 7

Một số

TBNV thông dụng

Page 8: Ktmt chuong 6

Phan Trung Kiên 8

Sơ đồ

khối của TBNVTÝn hiÖu §K

tõ Modulvµo/ra

TÝn hiÖu TT®Õn Modul

vµo/ra

D÷ liÖu ®Õnvµ tõ Modul

vµo/ra

D÷ liÖu ®Õn vµtõ m«i tr−êng

bªn ngoµi

Logic §KBé ®Öm

Bé chuyÓn®æi tÝn hiÖu

Page 9: Ktmt chuong 6

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

Page 10: Ktmt chuong 6

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

Page 11: Ktmt chuong 6

Phan Trung Kiên 11

Sơ đồ

khối của Modul vào/ra

C¸c ®−êngd÷ liÖu

Nèi ghÐp víiTBNV

C¸c ®−êng®Þa chØ

C¸c ®−êng®iÒu khiÓn

Thanh ghi d÷ liÖu

Thanh ghi §K/tr¹ng th¸i

Logicvµo/ra

Logicgiao diÖnvíi TBNV

Logicgiao diÖnví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íibus hÖ thèng

Page 12: Ktmt chuong 6

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

Page 13: Ktmt chuong 6

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)

Page 14: Ktmt chuong 6

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.

Page 15: Ktmt chuong 6

Phan Trung Kiên 15

dụ đối với BXL 8088

BỘ

NHỚ

THIẾT BỊ

VÀO THIẾT BỊ

RA

Lệnh: MOV

IN

OUTT/h ĐK: IO/M = 0 IO/M = 1 IO/M = 1

1 MB

00000H

FFFFFH64 KB

0000H

FFFFH

64 KB

0000H

FFFFH

Page 16: Ktmt chuong 6

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ớ

Page 17: Ktmt chuong 6

Phan Trung Kiên 17

dụ đối với BXL 8088

Lệnh và

tín hiệu điều khiển chung cho cả

hai:

MOVIO/M = 0

00000H

FFFFFH

VÀO/RA BỘ

NHỚ

Page 18: Ktmt chuong 6

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)

Page 19: Ktmt chuong 6

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

Page 20: Ktmt chuong 6

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

Page 21: Ktmt chuong 6

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

Page 22: Ktmt chuong 6

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ị

Page 23: Ktmt chuong 6

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

Page 24: Ktmt chuong 6

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ì

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

Page 25: Ktmt chuong 6

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

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

Page 26: Ktmt chuong 6

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

Page 27: Ktmt chuong 6

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ờ

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ử

Thực hiện ngắt

Khôi phục thông tin trạng

thái

Khôi phục Thanh ghi cờ

Bộ đếm CT

Phầ

n cứ

ngP

hần mềm

Page 28: Ktmt chuong 6

Phan Trung Kiên 28

Đặc điểm

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

Page 29: Ktmt chuong 6

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)

Page 30: Ktmt chuong 6

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

Than

h gh

i ngắ

t

INTR 0

INTR 1

INTR 2

INTR 3

Page 31: Ktmt chuong 6

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

Page 32: Ktmt chuong 6

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

Page 33: Ktmt chuong 6

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

dụ:•

PCI

SCSI

Page 34: Ktmt chuong 6

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ì

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ử

xong thì

BXL quay về

ngắt trước đó

Page 35: Ktmt chuong 6

Phan Trung Kiên 35

Ngắt tuần tự

Page 36: Ktmt chuong 6

Phan Trung Kiên 36

Ngắt lồng nhau

Page 37: Ktmt chuong 6

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)

Page 38: Ktmt chuong 6

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

Page 39: Ktmt chuong 6

Phan Trung Kiên 39

dụ: PIC 8259A

Page 40: Ktmt chuong 6

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

Page 41: Ktmt chuong 6

Phan Trung Kiên 41

Sơ đồ

cấu trúc của DMAC

Page 42: Ktmt chuong 6

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

Page 43: Ktmt chuong 6

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

Page 44: Ktmt chuong 6

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ớ

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.

Page 45: Ktmt chuong 6

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.

Page 46: Ktmt chuong 6

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

Page 47: Ktmt chuong 6

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

Page 48: Ktmt chuong 6

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

Page 49: Ktmt chuong 6

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

Page 50: Ktmt chuong 6

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

Page 51: Ktmt chuong 6

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

Page 52: Ktmt chuong 6

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

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

dụ: SCSI: 7 hoặc 15 thiết bị USB: 127 thiết bị IEEE 1394 FireWire: 63 thiết bị

Page 53: Ktmt chuong 6

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

Page 54: Ktmt chuong 6

Phan Trung Kiên 54

Kiến trúc máy tính

HẾT CHƯƠNG 6