HỆ 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
ĐẠI HỌC SÀI GÒN
Email:
Website: />
HỆ 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à
bộ nhớ) trong hệ thống máy tính.
• Là một phương tiện hiệu quả để nhận đầu vào và cung cấp đầu ra cho hệ thống
máy tính.
• Là một giao diện chứa các logic để kết nối các hàm giữa thiết bị ngoại vi và hệ
thống bus.
• Lưu ý: Nguyên nhân dẫn đến việc các thiết bị ngoại vi không kết nối trực tiếp với
hệ thống bus:
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 so
với CPU và RAM ➔ khó tương thích, khơng thực tế.
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ÀO/RA: GIỚI THIỆU CHUNG
Mơ hình chung của hệ thống vào/ra
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
THIẾT BỊ NGOẠI VI
• Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngồ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).
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
THIẾ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 ngồ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êu
cầu từ module vào/ra
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
I/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).
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CHỨ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.
4.
I/O nhận một đơn vị dữ liệu (8 bits, 16 bits,…) từ thiết bị ngoại vi.
5.
Dữ liệu được truyền tải dữ liệu từ thiết bị ngoại vi vào bộ xử lý.
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CHỨ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ỉ.
Khoa Công Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CHỨC NĂNG: GIAO TIẾP GIỮA CÁC THIẾT BỊ
Sơ đồ khối của thiết bị ngoại vi
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CHỨ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.
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CHỨ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ền
tả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 bit
chẵn, lẻ.
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CẤU TRÚC CỦA I/O MODULE
Sơ đồ khối của I/O MODULE
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CÁC THÀNH PHẦN CỦA I/O MODULE
• Thanh ghi đệm dữ liệu: đệm dữ liệu trong q 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ác
cổng I/O.
• Khối logic điều khiển: điều khiển I/O module.
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CÁ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êng
biệt.
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CÁ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.
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CÁ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).
Khoa Công Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN I/O
Ba phương pháp điều khiển I/O
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
PROGRAMMED 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ực
thi 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 thanh
ghi 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ành
cơng.
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
PROGRAMMED 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.
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
PROGRAMMED 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:
o IN
o OUT.
• I/O theo bản đồ bộ nhớ:
o Sử dụng các câu lệnh trao đổi dữ liệu với bộ nhớ.
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
PROGRAMMED 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
module.
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
PROGRAMMED 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
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
INTERRUPT 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ột
chươ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.
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
INTERRUPT 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.
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
INTERRUPT 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.
o Khơi phục ngữ cảnh của chương trình đang thực hiện.
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính