PowerPoint Presentation HỆ THỐNG VÀO RA – CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN VÀORA – GHÉP NỐI MÁY TÍNH VỚI THIẾT BỊ NGOẠI VI VŨ NGỌC THANH SANG TRỊNH TẤN ĐẠT KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC SÀI GÒN Email trinhtandatsgu edu vn Website https sites google comsitettdat88 mailto trinhtandatsgu edu vn https sites google comsitettdat88 HỆ THỐNG VÀORA GIỚI THIỆU CHUNG Khoa Công Nghệ Thông Tin – Đại học Sài Gòn Kiến Trúc Máy Tính • Hệ thống vàora (IO system) là thành phần quan trọng thứ ba (bao g.
Trang 1HỆ THỐNG VÀO/ RA – CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN VÀO/RA – GHÉP NỐI
MÁY TÍNH VỚI THIẾT BỊ NGOẠI VI
VŨ NGỌC THANH SANG
TRỊNH TẤN ĐẠT
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2HỆ THỐNG VÀO/RA: GIỚI THIỆU CHUNG
• Hệ thống vào/ra (I/O system) là thành phần quan trọng thứ ba (bao gồm CPU và
o Truyền tải lượng dữ liệu khác nhau + tốc độ khác nhau + nhiều định dạng
o Tốc độ truyền tải dữ liệu của thiết bị ngoại vi chậm hơn hoặc nhanh hơn sovới CPU và RAM ➔ khó tương thích, không thực tế
Trang 3HỆ THỐNG VÀO/RA: GIỚI THIỆU CHUNG
Trang 4THIẾ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:
o Thiết bị ngoại vi giao tiếp người - máy: bàn phím, màn hình, máy in,…
o Thiết bị ngoại vị giap tiếp máy – máy: gồm các thiết bị theo dõi và kiểm tra
o Thiết bị ngoại vi truyền thông: Modem, Network Interface Card (NIC)
Trang 5THIẾT BỊ NGOẠI VI - THÀNH PHẦN
• 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
• Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa module vào/ra và thiết bị ngoại vi
• 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êucầu từ module vào/ra
Trang 6I/O MODULE: CÁC CHỨC NĂNG
• Các chức năng chính hoặc cần thiết của I/O bao gồm:
o Điều khiển và định giờ (control and timing).
o Giao tiếp giữa các bộ xử lý (processor communication).
o Giao tiếp giữa các thiết bị (device communication).
o Đệm dữ liệu (data buffering).
o Nhận biết lỗi (error detection).
Trang 7CHỨC NĂNG: ĐIỀU KHIỂN VÀ ĐỊNH GIỜ
• Cần thiết: định vị dòng truyền tải dữ liệu giữa tài nguyên bên trong và các thiết bị ngoại vi.
• Ví dụ: Các bước để điều khiển việc truyền tải dữ liệu từ thiết bị ngoại vi vào bộ xử lý
1 Bộ xử lý sẽ tra hỏi trong I/O để kiểm tra trạng thái của thiết bị kết nối.
2 I/O trả về trạng thái của thiết bị kết nối.
3 Nếu thiết bị kết nối sẵn sàng hoạt động và truyền tải ➔ Bộ xử lý yêu cầu truyền tải dữ liệu
Bộ xử lý ra lệnh cho I/O.
Trang 8CHỨC NĂNG: GIAO TIẾP GIỮA CÁC BỘ XỬ LÝ
• Giải mã lệnh: I/O nhận các lệnh từ bộ xử lý, điển hình là gửi tín hiệu trên bus điều
khiển Ví dụ: đĩa từ
• Dữ liệu: Dữ liệu được truyền tải giữa bộ xử lý và I/O thông qua bus dữ liệu.
• Báo cáo trạng thái: vì tốc độ của các thiết bị chậm ➔ Cần quan tâm đến trạng
thái của I/O đang sẵn sàng hay đang bận
• Nhận dạng địa chỉ: tương tự như việc bộ nhớ có địa chỉ ➔ mỗi thiết bị I/O cũng
cần địa chỉ
Trang 9CHỨC NĂNG: GIAO TIẾP GIỮA CÁC THIẾT BỊ
Trang 10CHỨC NĂNG: ĐỆM DỮ LIỆU
• Cần thiết: đảm bảo tốc độ truyền tải nhanh và tương thích giữa bộ xử lý và thiết
bị ngoại vi Ví dụ như hình trên
Trang 11CHỨC NĂNG: NHẬN BIẾT LỖI
• I/O chịu trách nhiệm cho việc nhận biết lỗi và gửi báo cáo các lỗi về cho bộ xử lý
• Một lớp các lỗi liên quan đến máy móc và trục trặc điện được gửi từ thiết bị sẽqua I/O gửi về bộ xử lý
• Một lớp khác bao gồm các lỗi không chủ ý thay đổi các mẫu bit (trong việc truyềntải dữ liệu từ thiết bị đến I/O) Lỗi này có thể kiểm tra bằng cách thêm các bitchẵn, lẻ
Trang 12CẤU TRÚC CỦA I/O MODULE
Sơ đồ khối của I/O MODULE
Trang 13CÁC THÀNH PHẦN CỦA I/O MODULE
• Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi
• Các cổng I/O (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
• 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áccổng I/O
• Khối logic điều khiển: điều khiển I/O module
Trang 14CÁC PHƯƠNG PHÁP ĐỊA CHỈ HÓA CỔNG I/O
• I/O riêng biệt (Isolated I/O hay mapped I/O):
o Cổng I/O được đánh địa chỉ theo không gian địa chỉ I/O
o CPU trao đổi dữ liệu với cổng I/O thông qua các lệnh I/O chuyên dụng(IN, OUT)
o Chỉ có thể thực hiện trên các hệ thống có quản lý không gian địa chỉ I/O riêngbiệt
Trang 15CÁC PHƯƠNG PHÁP ĐỊA CHỈ HÓA CỔNG I/O
• I/O theo bản đồ bộ nhớ (Memory mapped I/O):
o Cổng I/O được đánh địa chỉ theo không gian địa chỉ bộ nhớ
o I/O giống như đọc/ghi bộ nhớ
o CPU trao đổi dữ liệu với cổng I/O thông qua các lệnh truy nhập dữ liệu bộnhớ
o Có thể thực hiện trên mọi hệ thống
Trang 16CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN I/O
• Bằng chương trình (Programmed I/O)
• Bằng chương trình Ngắt (Interrupt Driven I/O)
• Truy nhập bộ nhớ trực tiếp (Direct Memory Access – DMA)
Trang 17CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN I/O
Ba phương pháp điều khiển I/O
Trang 18PROGRAMMED I/O – TỔNG QUAN
• I/O Module thi hành các hành động được yêu cầu từ bộ xử lý (khi bộ xử lý thựcthi chương trình và bắt gặp lệnh của I/O) và thiết lập các bits phù hợp trong thanhghi trạng thái I/O
• I/O module sẽ không gửi tín hiệu thông báo và ngắt bộ xử lý Thay vào đó, bộ xử
lý sẽ là thành phần kiểm tra trạng thái của I/O cho đến khi hành động đó thànhcông
Trang 19PROGRAMMED I/O – CÁC TÍN HIỆU ĐIỀU KHIỂN
• Tín hiệu điều khiển (control): kích hoạt thiết bị ngoại vi.
• Tín hiệu kiểm tra (test): kiểm tra trạng thái của I/O module và thiết bị ngoại vi.
• Tín hiệu điều khiển đọc (read): yêu cầu I/O module 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 đó
• Tín hiệu điều khiển ghi (write): yêu cầu I/O momdule lấy dữ liệu trên bus dữ liệu
đưa đến thanh ghi đệm dữ liệu và chuển đến thiết bị ngoại vi
Trang 20PROGRAMMED I/O – CÁC LỆNH I/O
• I/O riêng biệt: Sử dụng các lệnh vào ra chuyên dụng:
Trang 21PROGRAMMED I/O – HOẠT ĐỘNG
• CPU yêu cầu thao tác I/O
• I/O module thực hiện thao tác
• I/O module thiết lập các bước trạng thái
• CPU kiểm tra các bits trạng thái:
• Nếu chưa sẵn sàng thì quay lại kiểm tra
o Nếu sẵn sàng thì chuyển sang trao đổi dữ liệu với I/O
Trang 22PROGRAMMED I/O – ĐẶC ĐIỂM
• I/O do ý muốn của người lập trình
• CPU trực tiếp điều khiển I/P
• CPU đợi I/O module → tiêu tốn thời gian của CPU
Trang 23INTERRUPT I/O
• 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ộtchương trình nào đó
• Khi mô-đun vào-ra sẵn sàng thì nó phát tín hiệu ngắt CPU
• CPU thực hiện chương trình con vào-ra tương ứng để trao đổi dữ liệu
• CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt
Trang 24INTERRUPT I/O – HOẠT ĐỘNG VÀO DỮ LIỆU (NHÌN TỪ I/O MODULE)
• I/O module nhận tín hiệu điều khiển đọc từ CPU
• I/O module nhận dữ liệu từ thiết bị ngoại vi, trong khi đó
CPU sẽ thật hiện việc khác
• Khi đã có dữ liệu, I/O module sẽ phát tín hiệu ngắt CPU
• CPU yêu cầu dữ liệu ➔ I/O module chuyển dữ liệu đến
CPU
Trang 25INTERRUPT I/O – HOẠT ĐỘNG VÀO DỮ LIỆU (NHÌN TỪ CPU)
• Phát tín hiệu điều khiển đọc.
• Làm việc khác
• Cuối mỗi chu trình lệnh, kiểm tra tín hiệu ngắt
• Nếu bị ngắt:
o Cất ngữ cảnh (nội dung các thanh ghi)
o Thực hiện chương trình con ngắt để vào dữ liệu
Trang 26INTERRUPT I/O – XỬ LÝ NGẮT (INTERRUPT PROCESSING)
1 Thiết bị phát tín hiệu ngắt đến bộ xử lý.
2 Bộ xử lý sẽ ưu tiên thực thi xong lệnh hiện tại
trước khi phản hồi tín hiệu ngắt.
3 Bộ xử lý kiểm tra ngắt, phát hiện ra một tín hiệu
ngắt ➔ bộ xử lý sẽ gửi tín hiệu xác nhận tới thiết
bị gửi tín hiệu ngắt Tín hiệu xác nhận cho phép thiết bị loại bỏ tín hiệu ngắt đã gửi.
Trang 27INTERRUPT I/O – XỬ LÝ NGẮT (INTERRUPT PROCESSING)
4 Bộ xử lý sẽ chuẩn bị để chuyển quyền điều khiển
cho quy trình ngắt Trước tiên, bộ xử lý cần lưu lại thông tin chương trình để có thể khôi phục lại tại thời điểm bắt đầu ngắt, bao gồm: trạng thái bộ xử
lý (được chứa trong thanh ghi gọi là program
status word (psw)), vị trí của lệnh thực thi tiếp
theo (lưu trong PC) → Tất cả thông tin này có thể
Trang 28INTERRUPT I/O – XỬ LÝ NGẮT (INTERRUPT PROCESSING)
5 Bộ xử lý lấy vị trí đầu vào của chương trình xử lý ngắt
sẽ đáp ứng với ngắt chuẩn bị thực thi từ PC Tùy theo kiến trúc máy tính, thiết kế hệ điều hành:
• Chương trình đơn;
• Chương trình đơn cho từng loại ngắt;
• Chương trình đơn cho từng thiết bị và từng loại ngắt.
5 (cont): Nếu có nhiều quy trình xử lý ngắt ➔ bộ xử lý sẽ xác định quy
trình nào phù hợp Thông tin này có thể được thêm vào khi gửi tín hiệu
ngắt đầu tiên hoặc bộ xử lý có thể yêu cầu từ thiết bị gửi tín hiệu ngắt.
Trang 29INTERRUPT I/O – XỬ LÝ NGẮT (INTERRUPT PROCESSING)
6 PC và PSW của chươn trình ngắt được lưu vào hệ
thống stack Ngoài ra, các thanh ghi bộ xử lý cũng cần được lưu vì các thanh ghi này có thể được dùng cho xử lý ngắt ➔trình xử lý ngắt bắt đầu sau khi lưu.
Ví dụ: Chương trình người dùng bị ngắt sau lệnh tại vị trí N.
➔ Các thông tin sau đó sẽ được đẩy vào stack Con trỏ
stack sẽ được cập nhập trên đỉnh stack, PC sẽ được cập
Trang 30INTERRUPT I/O – XỬ LÝ NGẮT (INTERRUPT PROCESSING)
7 Tiếp tục thực thi ngắt Trong quá trình này, xử lý
ngắt có thể gửi các lệnh hoặc xác nhận bổ sung tới I/O.
8 Khi xử lý ngắt kết thúc, các giá trị trong thanh ghi
đã lưu được lấy ra từ stack và được khôi phục trong thanh ghi.
9 Bước cuối cùng: khôi phục giá trị của PSW và PC
từ stack ➔ lệnh thực thi tiếp theo sẽ là lệnh trước chương trình ngắt.
Trang 31INTERRUPT I/O – CÁC VẤN ĐỀ NẢY SINH KHI THIẾT KẾ
• Làm thế nào để xác định được mô-đun vào-ra nào phát tín hiệu ngắt ?
• CPU làm như thế nào khi có nhiều yêu cầu ngắt cùng xảy ra ?
➔Các phương pháp nối ghép ngắt:
• Sử dụng nhiều đường yêu cầu ngắt
• Hỏi vòng bằng phần mềm (Software Poll)
• Hỏi vòng bằng phần cứng (Daisy Chain/Hardware Poll, vectored)
Trang 32INTERRUPT I/O – SỬ DỤNG NHIỀU ĐƯỜNG YÊU CẦU NGẮT
• Mỗi mô-đun vào-ra được nối với
một đường yêu cầu ngắt
• CPU phải có nhiều đường tín hiệu
yêu cầu ngắt
• Hạn chế số lượng mô-đun vào-ra
• Các đường ngắt được qui định mức
ưu tiên
Trang 33INTERRUPT I/O – SOFTWARE POLL
• CPU thực hiện phần mềm hỏi lần lượt từng mô-đun vào-ra
• Chậm
• Thứ tự các mô-đun được hỏi vòng chính là thứ tự ưu tiên
Trang 34INTERRUPT I/O – DAISY CHAIN/ HARDWARE POLL
• CPU phát tín hiệu chấp nhận ngắt (INTA) đến mô-đun vào-ra đầu tiê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
• Thứ tự các mô-đun vào-ra kết nối trong chuỗi xác định thứ tự ưu tiên
Trang 35INTERRUPT I/O – BUS ARBITRATION
• Đầu tiền, I/O module cần lấy quyền điều khiển bus trước khi bus gửi dòng yêucầu ngắt ➔ Chỉ có một module có thể gửi dòng yêu cầu ngắt trong cùng thời gian
• Khi bộ xử lý phát hiện ngắt, bộ xử lý sẽ phản hồi trên dòng ngắt đã xác nhận
• Module yêu cầu đặt các vector trên các dòng dữ liệu
Trang 36TRUY CẬP BỘ NHỚ TRỰC TIẾP (DIRECT MEMORY ACCESS – DMA)
• Programmed I/O và Interrupt I/O:
o Chiếm thời gian của CPU
o Tốc độ truyền bị hạn chế vì phải chuyển qua CPU
• Để khắc phục dùng DMA
o Thêm hardware module trên bus → DMAC (Controller)
o DMAC điều khiển trao đổi dữ liệu giữa I/O module với bộ nhớ chính
Trang 37DMA - SƠ ĐỒ CẤU TRÚC
• 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
Trang 38DMA – HOẠT ĐỘNG
• Khi bộ xử lý cần đọc hay ghi một khối dữ liệu ➔ Gửi yêu cầu tới DMA với những thông tin sau:
o Thanh ghi dữ liệu: chứa dữ liệu trao đổi.
o Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu
o Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi.
o Logic điều khiển: điều khiển hoạt động của DMA.
• Trong khi chờ, bộ xử lý sẽ tiếp tục công 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ì:
o nội dung thanh ghi địa chỉ tăng
o 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
Trang 39DMA – CÁC KIỂU THỰC HIỆN
• DMA truyền theo khối (Block-transfer DMA): sử dụng bus để truyền xong cả khối
Trang 40DMA – CẤU HÌNH ĐƠN BUS, DMA TÁCH RỜI
• Mỗi lần truyền, DMA sử dụng bus hai lần:
o Giữa I/O module với DMA
o Giữa DMA với bộ nhớ
Trang 41DMA – CẤU HÌNH ĐƠN BUS, DMA KẾT HỢP
• DMA điều khiển một hoặc vài I/O module
• Mỗi lần truyền, DMA sử dụng bus một lần:
Trang 42DMA – CẤU HÌNH I/O BUS
• I/O bus tách rời hỗ trợ tất cả các thiết bị cho phép DMA
• Mỗi lần truyền, DMA sử dụng bus một lần:
o Giữa DMA với bộ nhớ
Trang 43DMA – ĐẶC ĐIỂM
• CPU không tham gia trong quá trình trao đổi dữ liệu
• DMC điều khiển trao đổi dữ liệu giữa bộ nhớ chính với I/O module (hoàn toànbằng phần cứng) → 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
Trang 45THIẾT BỊ XUẤT
• Dữ liệu đầu ra là loại dữ liệu đã được xử lý bởi máy tính, được chuyển đổi để conngười/ hệ thống khác hiểu được thông qua các thiết bị xuất
• Các loại dữ liệu xuất cơ bản: ký tự, âm thanh, hình ảnh, video,…
• Các thiết bị xuất cơ bản:
o Màn hình
o Máy in
Trang 46THANK YOU FOR YOUR ATTENTIONS