Bài giảng Kiến trúc máy tính - Chương 7: Thiết bị ngoại vi - Nguyễn Thị Phương

Chương 7  
Thiết bị ngoại vi  
+
Chương 7. Thiết bị ngoại vi  
7.1 Các thiết bị ngoại vi  
7.2 Module vào/ra  
7.3 Các kỹ thuật I/O  
a. I/O chương trình  
b. Điều khiển ngắt vào/ra  
c. Truy xuất bộ nhớ trực tiếp  
7.4 Các bộ xử lý và kênh vào/ra  
+
7.1 Thiết bị ngoại vi  
Một trong ba thành phần cơ bản của hệ thống máy tính: CPU,  
bộ nhớ và thiết bị ngoại vi (thông qua module I/O)  
Giúp trao đổi dữ liệu với bên ngoài  
Kết nối với máy tính qua module vào/ra (module I/O)  
Truyền các thông tin điều khiển, dữ liệu và địa chỉ giữa CPU và thiết  
bị ngoại vi  
Có ba loại  
Con người đọc được: các thiết bị ngoại vi dành cho người dùng  
máy tính như màn hình, máy in,...  
Máy đọc được: các thiết bị gắn vào máy tính thực hiện một số chức  
năng giao tiếp (lấy thông tin,...): ổ cứng, cảm biến, băng từ,...  
Truyền thông: sử dụng truyền thông tin đi xa: modem, card mạng,...  
+
Mô hình tổng  
quát của I/O  
Module  
aSơ đồ khối thiết bngoại vi  
+
Sơ đồ khối thiết bngoài (tiếp)  
Giao diện (interface) với module I/O:  
+
Tín hiệu điều khiển - Control signal: xác định chức năng mà thiết bị  
sẽ thực hiện. dụ: gửi dữ liệu đến module I/O (INPUT hoặc READ),  
nhận dữ liệu từ module I/O (OUTPUT hoặc WRITE), thông tin trạng  
thái, hoặc hoặc thực hiện một số chức năng điều khiển đặc biệt đến  
thiết bị (ví dụ, đặt head của đĩa cứng lên một vị trí nào đó)  
Dữ liệu Data: một tập các bit được gửi đi hoặc nhận về từ module  
I/O.  
Tín hiệu trạng thái - Status signal: chỉ ra trạng thái của thiết bị. Ví dụ:  
READY/NOT-READY cho biết rằng khi nào thiết bị sẵn sàng cho việc  
truyền dữ liệu.  
Logic điều khiển – Control logic: nhận các tín hiệu điều khiển từ  
module I/O, điều khiển hoạt động của thiết b.  
Bộ chuyển đổi - Transducer: chuyển đổi dữ liệu (đang ở dạng t/h  
điện) sang các dạng khác (vd: điểm ảnh trên màn hình,...) và ngược  
lại. Ngoài ra, bộ đệm (buffer) để lưu trữ tạm dữ liệu đang được  
chuyển giao giữa module I/O và môi trường bên ngoài; kích thước bộ  
đệm thường từ 8 đến 16 bit.  
Công cụ tương tác máy tính/  
người dùng phổ biến nhất  
Người dùng cung cấp đầu vào  
thông qua bàn phím  
+
b. Bàn phím/Màn hình  
Màn hình hiển thị dữ liệu được  
cung cấp bởi máy tính  
Đơn vị chuyển đổi cơ bản là ký  
tự  
Bảng chữ cái tham khảo  
quốc tế (IRA)  
Ký tự  
Gắn với mỗi ký tự là một mã  
Mỗi ký tự được biểu diễn bởi một mã  
nhị phân 7-bit : biểu diễn 128 ký tự  
Hai loại ký tự:  
Mã bàn phím  
Khi người dùng bấm một phím, một tín  
hiệu điện tử được tạo ra bởi một bộ  
biến đổi trong bàn phím và dịch sang  
mẫu bit của mã IRA tương ứng  
In được  
Các ký tự chữ cái, số và ký tự đặc  
biệt có thể được in trên giấy hoặc  
hiển thị trên màn hình  
Mẫu bit này được truyền đến mô-đun  
I/O trong máy tính  
Trên đầu ra, các ký tự mã IRA được  
truyền đến một thiết bị ngoại vi từ  
module I/O  
Điều khiển  
Điều khiển việc in/hiển thị các ký tự  
VD: carriage return  
Các ký tự điều khiển khác liên quan  
đến các thủ tục truyền tin  
Bộ biến đổi giải mã và gửi các tín hiệu  
điện tử yêu cầu đến thiết bị đầu ra để  
hiển thị ký tự được chỉ định hoặc thực  
hiện chức năng điều khiển yêu cầu  
7.2 Module I/O  
a. Chức năng  
Các chức năng chính của một module I/O gồm:  
. Điều khiển và định thời: phối hợp luồng lưu lượng truy cập giữa  
thành phần thiết bị bên trong (main memory, bus) và thiết bị  
ngoại vi  
. Trao đổi thông tin với VXL: gồm giải mã lệnh, dữ liệu, báo cáo  
trạng thái (trạng thái của thiết bị I/O có sẵn sàng hay không),  
nhận dạng địa chỉ (địa chỉ các cổng mà TBNV được nối vào)  
. Trao đổi thông tin với TBNV: gồm các lệnh, thông tin trạng thái  
và dữ liệu  
. Đệm dữ liệu: thực hiện các hoạt động đệm cần thiết để cân bằng  
tốc độ TBNV và bộ nhớ  
. Phát hiện lỗi: phát hiện và báo cáo lỗi truyền  
b. Cấu trúc Module I/O  
+
b. Cấu trúc Module I/O (tiếp)  
Các module I/O thay đổi khác nhau theo sự phức tạp và số lượng các thiết bị  
ngoài mà nó điều khiển. Cấu trúc chung nhất:  
- Dữ liệu được truyền đến và đi từ module được đệm qua một hoặc nhiều thanh  
ghi dữ liệu (data register).  
- Thanh ghi trạng thái/ điều khiển (status/control register): lưu trữ thông tin  
trạng thái của thiết bị hoặc thông tin điều khiển của bộ VXL  
- Khối logic điều khiển - I/O logic: tương tác với VXL qua một tập các đường  
điều khiển (control line). VXL sử dụng các đường điều khiển để ra lệnh cho  
module I/O. Module I/O cũng có thể sử dụng một số đường điều khiển để gửi  
các tín hiệu phân xử bus hoặc tín hiệu trạng thái.  
- Module cũng có khả năng nhận diện và sinh ra các địa chỉ với mỗi thiết bị được  
nối đến nó (địa chỉ cổng). Mỗi module I/O có một (nếu chỉ nối với một TBNV)  
hoặc một tập địa chỉ (nếu module nối với nhiều TBNV)  
- Cổng nối ghép vào/ra (External Device Interface Logic): giao tiếp với thiết  
bị ngoại vi  
+
c. Địa chỉ cổng vào/ra  
Cũng giống như bộ nhớ, cácTBNV được gắn vào module I/O  
qua các cổng. Để CPU giao tiếp được với các TBNV, các cổng  
này phải được gán một giá trị địa chỉ  
+
Không gian địa chỉ I/O  
Có hai phương thức thực hiện không gian địa chỉ cho các TBNV:  
I/O ánh xạ bộ nhớ (memory-mapped I/O):  
Bộ nhớ và TBNV chia sẻ chung không gian địa chỉ. VXL coi  
các thanh ghi dữ liệu và trạng thái như các ô nhớ và sử  
dụng cùng các lệnh để truy cập cả bộ nhớ và thiết bị ngoại  
vi  
Chỉ sử dụng một đường đọc và ghi, do đó bus phải sắp  
xếp giữa việc đọc/ghi bộ nhớ và vào/ra TBNV  
I/O riêng biệt (isolated I/O):  
Sử dụng một đường command line để xác định: địa chỉ BN  
hay địa chỉ TBNV  
Toàn bộ dải địa chỉ dùng cho cả hai. VD: 10 đường địa chỉ  
cho phép đánh địa chỉ 1024 ô nhớ và 1024 TBNV  
Tập các chỉ lệnh đến BN và TBNV khác nhau  
7.3. Các kỹ thuật vào/ra  
+
Hoạt động của module I/O theo 3 kỹ thuật sau:  
I/O chương trình  
CPU thực thi một chương trình trực tiếp điều khiển các hoạt động vào/ra  
Khi bộ xử lý ra lệnh, nó phải đợi cho đến khi hoạt động vào/ra hoàn tất  
Bộ xử chạy nhanh hơn module I/O sẽ gây lãng phí thời gian xử lý  
I/O điều khiển ngắt  
Bộ vi xử lý ra lệnh I/O sau đó tiếp tục thi hành các lệnh tiếp theo trong  
chương trình.  
Khi module I/O hoàn thành công việc, nó sẽ gửi tín hiệu yêu cầu ngắt đến  
VXL.  
Truy cập bộ nhớ trực tiếp (DMA)  
Module I/O và bộ nhớ chính trực tiếp trao đổi dữ liệu không có sự  
tham gia của bộ vi xử lý  
Các kỹ thuật I/O  
+
a. Kỹ thuật I/O chương trình  
Khi cần thực hiện một tác vụ vào/ra:  
VXL thực thi một chương trình và gửi lệnh đến module I/O  
tương ứng  
Module I/O nhận yêu cầu, thiết lập các bit trạng thái trên thanh  
ghi trạng thái  
CPU định kỳ kiểm tra trạng thái của module I/O  
Chưa sẵn sàng thì tiếp tục định kỳ kiểm tra  
Đã sẵn sàng, thiết lập việc truyền dl đến module I/O  
+
a. Các lệnh I/O – I/O command (từ  
VXL đến module I/O)  
Để thực thi một hoạt động vào/ra, VXL đưa ra địa chỉ: định ra module I/O và  
TBNV cụ thể; và các lệnh I/O. Có bốn loại lệnh I/O các module cần thực  
hiện  
1) Control  
- ng để kích hoạt một thiết bị ngoại vi và chỉ định nó phải làm gì  
2) Test  
-Dùng để kiểm tra các điều kiện trạng thái liên quan đến một module I/O và các thiết  
bị ngoại vi. (TBNV bật hay tắt, hoạt động I/O đang thực hiện đã xong chưa, có lỗi gì)  
3) Read  
- Cho phép module I/O lấy dữ liệu từ thiết bị ngoại vi và đặt nó vào bộ đệm bên trong  
đặt dữ liệu vào bus cho CPU  
4) Write  
- Cho phép module I/O lấy dữ liệu từ bus dữ liệu rồi chuyển dữ liệu đó đến thiết bị  
ngoại vi  
+
Ví dụ: Hoạt  
động đọc  
(READ) từ thiết  
bị ngoại vi vào  
RAM  
+
bI/O điều khiển ngắt  
Vấn đề với I/O chương trình là bộ xử lý phải đợi một thời  
gian dài để module I/O sẵn sàng cho việc nhận hoặc  
truyền dữ liệu  
Giải pháp thay thế là bộ vi xử lý ra lệnh I/O cho module,  
sau đó thực hiện các việc khác.  
Khi module I/O sẵn sàng trao đổi dữ liệu với VXL, nó sẽ  
gửi tín hiệu ngắt đến VXL  
Bộ xử lý thực hiện việc truyền dữ liệu và tiếp tục quá trình  
xử lý trước đó  
+
Cơ chế làm việc  
Từ phía module I/O:  
Nhận lệnh READ từ VXL  
Đọc dữ liệu vào từ TBNV tương ứng  
Khi dữ liệu được đưa vào thanh ghi dữ liệu, module gửi tín hiệu yêu cầu ngắt  
đến VXL và chờ đợi tín hiệu yêu cầu dữ liệu từ VXL.  
Khi có tín hiệu đó, module đặt dữ liệu vào bus và sẵn sàng để thực hiện các  
hoạt động I/O khác  
Từ phía VXL:  
VXL đưa ra lệnh READ.  
Sau đó thực hiện các công việc khác (vd: trong trường hợp có nhiều CT  
đang chạy tại một thời điểm)  
Sau mỗi chu kỳ lệnh, VXL sẽ kiểm tra xem có tín hiệu yêu cầu ngắt được  
gửi tới  
Nếu có, VXL lưu trữ nội dung đang thực hiện và xử lý ngắt  
VXL nhận dữ liệu từ bus lưu trữ vào bộ nhớ và tiếp tục chương trình  
+
Thay đổtrong bộ  
nhớ và thanh ghi khi  
mộngắt  
Tải về để xem bản đầy đủ
pdf 49 trang yennguyen 12/04/2022 3880
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 7: Thiết bị ngoại vi - Nguyễn Thị Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_7_thiet_bi_ngoai_vi_nguy.pdf