Tiểu luận môn học kiến trúc máy tính đề tài tìm hiểu về inputoutput

25 3 0
Tiểu luận môn học  kiến trúc máy tính đề tài  tìm hiểu về inputoutput

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÀI TIỂU LUẬN Môn học Kiến trúc máy tính Đề tài Tìm hiểu về Input/Output Giảng viên Trịnh Tấn Đạt Lớp DCT122C1 Nhóm thực hiện Nhóm 13 Nguyễn Văn Nghĩa MSSV 3122411133 MỤC LỤC DANH MỤC HÌNH VẼ 2 LỜI NÓ[.]

BÀI TIỂU LUẬN Mơn học : Kiến trúc máy tính Đề tài : Tìm hiểu Input/Output Giảng viên : Trịnh Tấn Đạt Lớp : DCT122C1 Nhóm thực : Nhóm 13 Nguyễn Văn Nghĩa MSSV : 3122411133 MỤC LỤC DANH MỤC HÌNH VẼ .2 LỜI NÓI ĐẦU CHƯƠNG I : TỔNG QUAN VỀ INPUT/OUTPUT Giới thiệu chung Các thiết bị ngoại vi .4 Modul vào .7 CHƯƠNG II : CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN INPUT/OUTPUT 10 Chương trình Input/Output 10 Interrupt-Driven Input/Output 12 DMA Input/Output 18 Channels and Processors .20 CHƯƠNG III : NỐI GHÉP THIẾT BỊ NGOẠI VI 22 Các kiểu ghép nối Input/Output 22 Cấu hình ghép nối Input/Output .23 TÀI LIỆU THAM KHẢO 24 DANH MỤC HÌNH VẼ, BẢNG BIỂU Hình 1.1: Mơ hình hệ thống vào Hình 1.2: Sơ đồ khối thiết bị ngoại vi Hình 1.3: Sơ đồ khối Modul I/O Hình 2.1: Q trình xử lí ngắt đơn giản .14 Hình 2.2: Kỹ thuật thăm dò phần mềm 16 Hình 2.3: Kỹ thuật chuỗi Daisy 17 Hình 2.4: Kỹ thuật nhiều đường ngắt 18 Hình 2.5: Sơ đồ khối DMA 19 Hình 3.1: Giao tiếp song song .22 Hình 3.2: Giao tiếp nối tiếp 23 LỜI NÓI ĐẦU Kiến trúc máy tính học phần chun mơn chương trình đào tạo ngành Cơng nghệ thơng tin Mục đích mơn học: trang bị cho sinh viên kiến thức kiến trúc máy tính, kiến trúc tập lệnh, nguyên lý hoạt động tổ chức máy tính vấn đề thiết kế hệ thống máy tính Trên sở đánh giá hiệu máy tính, khai thác sử dụng hiệu loại máy tính hành Với kiến thức thu được, sinh viên giải toán thiết kế mạch Logic, hệ lệnh, xây dựng nhớ, thay khung trang,… sau làm tiền đề giúp sinh viên sâu tìm hiểu mơn học chun ngành khác Hệ điều hành, Mạng máy tính, An tồn thơng tin Nội dung tiểu luận đề tài tìm hiểu Input/Output máy tính Bài tiểu luận thực thành viên nhóm 13 lớp DCT122C1 thuộc ngành Cơng nghệ thông tin chất lượng cao – Trường Đại Học Sài Gòn CHƯƠNG I : TỔNG QUÁT VỀ INPUT/OUTPUT Giới thiệu chung Ngoài vi xử lý nhớ, thành phần quan trọng thứ ba hệ thống máy tính module vào (I/O) Mỗi module giao tiếp với bus hệ thống chuyển mạch trung tâm điều khiển nhiều thiết bị ngoại vi Một module I/O không đơn giản kết nối học thiết bị với bus hệ thống mà chứa mạch logic thực chức truyền thông tin thiết bị ngoại vi bus Vậy ta không kết nối trực tiếp thiết bị ngoại vi với bus hệ thống Có số lý sau: -Có nhiều thiết bị ngoại vi với nhiều phương thức hoạt động khác Nếu xử lý kết nối trực tiếp với thiết bị ngoại vi cần phải trang bị mạch logic để điều khiển thiết bị đó, điều khơng cần thiết gây lãng phí tài nguyên xử lý -Tốc độ truyền liệu thiết bị ngoại vi thường chậm nhiều so với nhớ vi xử lý Do đó, không thực tế sử dụng bus tốc độ cao để giao tiếp trực tiếp với thiết bị ngoại vi -Mặt khác, tốc độ truyền liệu số thiết bị ngoại vi nhanh nhớ vi xử lý Một lần nữa, chênh lệch dẫn đến không hiệu hiệu hệ thống ta khơng có chế quản lý phù hợp -Thiết bị ngoại vi thường sử dụng định dạng liệu kích thước khác so với máy tính mà chúng gắn vào Do đó, việc sử dụng module I/O cần thiết Module có hai chức chính: -Giao tiếp với xử lý nhớ thông qua bus hệ thống chuyển mạch trung tâm -Giao tiếp với nhiều thiết bị ngoại vi liên kết liệu phù hợp Các thiết bị ngoại vi Các hoạt động I/O thực thông qua loạt thiết bị cung cấp phương tiện trao đổi liệu mơi trường bên ngồi máy tính Thiết bị ngồi kết nối với máy tính thơng qua liên kết tới module I/O Liên kết sử dụng để 142 chuyển tiếp điều khiển, trạng thái liệu module I/O thiết bị ngoại vi Chúng ta phân loại thiết bị ngoại vi thành ba loại sau: -Con người đọc được: thích hợp để giao tiếp với người sử dụng máy tính -Máy đọc được: thích hợp để giao tiếp với thiết bị -Truyền thơng tin: thích hợp để giao tiếp với thiết bị từ xa Hình 1.1 : Mơ hình hệ thống vào Các thiết bị người đọc hình máy in Các thiết bị máy đọc hệ thống đĩa băng từ, cảm biến truyền động sử dụng ứng dụng robot Về mặt chức năng, thiết bị phần hệ thống phân cấp nhớ, nhiên mặt cấu trúc, thiết bị điều khiển module I/O phải xét đến chương Thiết bị truyền thơng tin cho phép máy tính trao đổi liệu với thiết bị từ xa Giao diện với module I/O thơng qua tín hiệu điều khiển, liệu trạng thái Các tín hiệu điều khiển xác định chức mà thiết bị thực hiện, chẳng hạn gửi liệu đến module I/O (INPUT ĐỌC), tiếp nhận liệu từ module I/O (OUTPUT GHI), báo cáo trạng thái thực số chức điều khiển đặc biệt thiết bị (ví dụ: đặt đầu đọc/ghi đĩa từ vào vị trí đó) Dữ liệu dạng tập bit gửi tới nhận từ module I/O Các tín hiệu trạng thái cho biết trạng thái thiết bị Ví dụ READY/NOTREADY (sẵn sàng hay chưa sẵn sàng) để thơng báo thiết bị có sẵn sàng cho việc truyền liệu hay không Mạch logic điều khiển tiếp nhận tín hiệu điều khiển từ module I/O thực việc điều khiển hoạt động thiết bị Bộ chuyển đổi thực việc chuyển đổi liệu từ dạng tín hiệu điện sang dạng biểu diễn khác thiết bị từ dạng tín hiệu khác thành liệu dạng điện với thiết bị vào Bộ chuyển đổi thường kèm với nhớ đệm để lưu trữ liệu tạm thời trình trao đổi liệu module I/O mơi trường bên ngồi; kích thước đệm phổ biến từ đến 16 bit Hình 1.2 : Sơ đồ khối thiết bị ngoại vi Modul Input/Output - Các chức module vào (I/O): điều khiển định thời giao tiếp với xử lý giao tiếp với thiết bị đệm liệu phát lỗi Trong thời điểm nào, xử lý giao tiếp với nhiều thiết bị theo nhiều cách khác tùy thuộc vào yêu cầu vào/ra liệu chương trình Các tài ngun bên trong, ví dụ nhớ hệ thống bus bị chia sẻ với nhiều hoạt động, gồm hoạt động I/O Vì vậy, chức I/O bao gồm yêu Dữ liệu đến/ từ môi trường Các bit liệu đến từ module I/O Các tín hiệu trạng thái gửi đến module I/O Các tín hiệu điều khiển từ module I/O Logic điều khiển Bộ chuyển đổi Bộ đệm 144 cầuđiều khiển định thời để phối hợp luồng lưu lượng tài nguyên bên thiết bị ngồi Ví dụ q trình điều khiển truyền liệu từ thiết bị ngoại vi đến xử lý gồm bước sau: Bộ xử lý yêu cầu module I/O kiểm tra trạng thái thiết bị Module I/O trả trạng thái thiết bị Nếu thiết bị hoạt động sẵn sàng truyền, xử lý yêu cầu truyền liệu cách gửi lệnh cho module I/O Module I/O nhận đơn vị liệu (ví dụ, 16 bit) từ thiết bị Dữ liệu module I/O chuyển sang cho xử lý Nếu hệ thống sử dụng bus tương tác vi xử lý module I/O phải sử dụng chế phân xử bus Trong đó, module I/O phải thực việc giao tiếp với vi xử lý thiết bị ngoại vi Giao tiếp với xử lý sau: Giải mã lệnh: Module I/O nhận lệnh từ xử lý (thường gửi dạng tín hiệu bus điều khiển) Ví dụ, module I/O cho ổ đĩa nhận lệnh sau: READ SECTOR (đọc sector), WRITE SECTOR (ghi sector), SEEK track number (tìm kiếm strack, SCAN record ID (thăm dò ghi) Hai lệnh sau gửi kèm với tham số thông qua bus liệu Dữ liệu: Dữ liệu trao đổi xử lý module I/O qua bus liệu Báo cáo trạng thái: Vì thiết bị ngoại vi thường chậm nên xử lý thường phải biết tình trạng module I/O để yêu cầu thực hoạt động Ví dụ, module I/O yêu cầu gửi liệu đến xử lý (READ), module chưa sẵn sàng để thực u cầu thực yêu cầu I/O trước Điều cần báo cáo với xử lý thông qua tín hiệu trạng thái Tín hiệu trạng thái thường sử dụng BUSY READY Ngồi ra, có số tín hiệu báo cáo khác với điều kiện lỗi khác Nhận dạng địa chỉ: Giống từ nhớ có địa chỉ, thiết bị I/O Một module I/O phải nhận địa cho thiết bị ngoại vi mà điều khiển Mặt khác, module I/O phải thực việc giao tiếp với thiết bị Giao tiếp gồm có lệnh, thơng tin trạng thái liệu Một nhiệm vụ thiết yếu module I/O đệm liệu Chức cần thiết tốc độ trao đổi liệu nhớ xử lý cao so với hầu hết thiết bị ngoại vi Dữ liệu từ nhớ gửi đến module I/O với tốc độ nhanh cần đươc đệm module I/O sau gửi đến thiết bị ngoại vi với tốc độ thiết bị Ngược lại, liệu đệm lại để không làm thời gian nhớ nhận truyền chậm Do đó, module I/O phải hoạt động tốc độ nhớ thiết bị Tương tự trường hợp thiết bị I/O có tốc độ cao tốc độ truy cập nhớ, module I/O phải thực hoạt động đệm liệu cần thiết Cuối cùng, module I/O thường chịu trách nhiệm phát lỗi sau báo lỗi cho vi xử lý Một số loại bao gồm: hỏng điện học (ví dụ: kẹt giấy, track ổ cứng) Một loại lỗi khác mẫu liệu truyền từ thiết bị đến module I/O vơ tình bị thay đổi Người ta sử dụng loại mã phát lỗi để phát lỗi truyền tải Ví dụ việc truyền mã ký tự IRA, mã chiếm bit byte, bit thứ tám thiết lập để tổng bit byte chẵn (parity chẵn) lẻ (parity lẻ) Khi module I/O nhận byte, kiểm tra bit chẵn lẻ để xác định xem có lỗi xảy hay khơng Cấu trúc Module I/O: Các module I/O khác đáng kể độ phức tạp số lượng thiết bị bên mà chúng điều khiển Tại ta cố gắng mô tả cấu trúc chung module Module kết nối với phần lại máy tính thơng qua tập hợp đường tín hiệu (ví dụ: bus hệ thống) Dữ liệu chuyển đến từ module lưu đệm ghi liệu Các ghi trạng thái cung cấp thông tin trạng thái thiết bị Thanh ghi trạng thái có chức ghi điều khiển: nhận thông tin điều khiển từ vi xử lý Logic I/O tương tác với vi xử lý thông qua tập đường điều khiển Bộ vi xử lý sử dụng đường điều khiển để chuyển lệnh cho module I/O Một số đường điều khiển sử dụng module I/O (ví dụ tín hiệu phân xử trạng thái bus) Module phải có khả nhận dạng sinh địa liên kết với thiết bị mà điều khiển Mỗi module I/O có (nếu nối với TBNV) tập địa (nếu module nối với nhiều TBNV) Cuối cùng, module I/O chứa logic giao tiếp với thiết bị nối vào Với hoạt động module I/O, xử lý nhìn nhận loạt thiết bị theo cách đơn giản Module I/O ẩn thơng tin định thời, định dạng, vấn đề điện-cơ thiết bị ngoại vi, xử lý cần điều khiển hoạt động thông qua lệnh đọc ghi đơn giản lệnh đóng, mở tập tin Tuy nhiên, có module I/O hoạt động đơn giản để lại phần lớn công việc điều khiển thiết bị cho xử lý Những module I/O có khả xử lý cao, hỗ trợ nhiều cho xử lý thường gọi kênh I/O (I/O channel) xử lý I/O (I/O processor) Những module I/O đơn giản cần có điều khiển chi tiết từ xử lý thường gọi điều khiển I/O (I/O controller) điều khiển thiết bị (device controller) Bộ điều khiển I/O thường sử dụng máy vi tính, cịn kênh I/O thường sử dụng dịng máy tính lớn (mainframe) Hình 1.3 : Sơ đồ khối Modul I/O CHƯƠNG II : CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN INPUT/OUTPUT Có ba kỹ thuật để thực hoạt động vào/ra (I/O): vào chương trình, vào điều khiển ngắt vào chế truy nhập nhớ trực tiếp DMA Chương trình Input/Output Dữ liệu trao đổi vi xử lý module I/O Bộ xử lý thực thi chương trình cho phép trực tiếp điều khiển hoạt động vào/ra, bao gồm cảm nhận tình trạng thiết bị, gửi lệnh đọc ghi, truyền liệu Khi vi xử lý lệnh cho module I/O, phải đợi hoạt động I/O hoàn thành Nếu xử lý nhanh module I/O việc chờ đợi gây lãng phí thời gian xử lý Khi vi xử lý thực chương trình gặp thị (instruction) liên quan đến vào/ra liệu, thực thị cách phát lệnh (command) cho module I/O thích hợp Với I/O chương trình, module I/O thực hành động yêu cầu sau thiết lập bit thích hợp ghi trạng thái I/O Module I/O khơng có tác vụ khác để báo cáo vi xử lý Do đó, để biết cơng việc hồn thành hay chưa, xử lý phải định kỳ để kiểm tra trạng thái module I/O hoạt động hồn thành Để giải thích cho kỹ thuật I/O chương trình, xem xét từ cách nhìn lệnh I/O vi xử lý gửi đến module I/O sau từ cách nhìn thị thực vi xử lý Các lệnh vào ra: Để thực thị liên quan đến vào/ra, xử lý đưa địa xác định module I/O thiết bị bên cụ thể và đưa lệnh I/O Có bốn loại lệnh I/O sau: Điều khiển: Được sử dụng để kích hoạt thiết bị ngoại vi lệnh cho phải làm Ví dụ, ổ đĩa điều khiển để quay lại tới trước ghi Các lệnh điều khiển thiết kế riêng cho loại thiết bị 10 Kiểm tra: Được sử dụng để kiểm tra điều kiện trạng thái module I/O thiết bị ngoại vi Bộ xử lý cần phải biết liệu thiết bị ngoại vi có bật nguồn sẵn sàng sử dụng Nó cần phải biết hoạt động I/O gần hồn thành chưa có lỗi xảy không Đọc: Yêu cầu module I/O lấy liệu từ thiết bị ngoại vi đặt vào đệm Bộ xử lý sau lấy liệu cách yêu cầu module I/O đặt liệu lên bus liệu Ghi: Yêu cầu module I/O chuyển liệu (1 byte từ) từ bus liệu đến thiết bị ngoại vi Ví dụ việc sử dụng I/O chương trình để đọc khối liệu từ thiết bị ngoại vi (ví dụ: ghi từ băng từ) vào nhớ Dữ liệu đọc lần từ (16 bit) Đối với từ đọc, xử lý phải kiểm tra trạng thái xác định từ đọc vào ghi liệu module I/O Nhược điểm kỹ thuật trình lặp lặp lại việc kiểm tra trạng thái làm cho xử lý thêm bận rộn Chỉ thị vào ra: Với I/O chương trình, có tương ứng chặt chẽ thị (lệnh) liên quan đến vào/ra mà vi xử lý truy xuất từ nhớ lệnh I/O ((command) mà xử lý gửi đến module I/O để thực thị Do đó, thị cần ánh xạ thành lệnh I/O chúng thường có quan hệ một-một đơn giản Dạng thị phụ thuộc vào cách thiết bị định địa Thơng thường, có nhiều thiết bị I/O kết nối với hệ thống thông qua module I/O Mỗi thiết bị có số nhận dạng địa Khi xử lý đưa lệnh I/O đến thiết bị lệnh phải chứa thơng tin địa thiết bị Sau đó, module I/O phải dịch dòng địa để xác định xem liệu lệnh có phải gửi cho Khi xử lý, nhớ module I/O chia sẻ bus chung, hai chế độ định địa thực sau: I/O ánh xạ nhớ (memory-mapped I/O) I/O riêng biệt (isolated I/O) I/O ánh xạ nhớ sử dụng không gian địa chung cho nhớ thiết bị ngoại vi Bộ xử lý coi ghi trạng thái liệu module I/O giống vị trí nhớ sử dụng lệnh máy để truy cập nhớ thiết bị ngoại vi Ví dụ, với 10 đường địa ta có khơng gian địa gồm 210 = 1024 địa vị trí nhớ Với kỹ thuật I/O riêng biệt, bus trang bị thêm đường command line, đường cho biết địa bus địa vị trí nhớ hay thiết bị I/O Như vậy, ta sử dụng tồn khơng gian địa cho nhớ thiết vị ngoại vi Với 10 đường địa chỉ, hệ thống hỗ trợ 1024 vị trí nhớ 1024 địa I/O Giả sử hệ thống có 10-bit địa chỉ, 512 giá trị dành 11 cho nhớ (từ 0-511) 512 dành cho I/O (từ 512-1023) Hai địa dành riêng cho việc giao tiếp với bàn phím Địa 516 gán cho ghi liệu 517 gán cho ghi trạng thái Thanh ghi trạng thái hoạt động ghi điều khiển để nhận lệnh vi xử lý Chương trình hình có mục đích đọc byte liệu từ bàn phím vào ghi AC xử lý Với I/O riêng biệt, cổng vào/ra truy cập lệnh I/O đặc biệt Các lệnh kích hoạt đường command line bus Hầu hết xử lý có tập lớn thị khác để tham chiếu nhớ Nếu sử dụng I/O riêng biệt, số lượng thị vào/ra Do đó, ưu điểm I/O ánh xạ nhớ số lượng thị tham chiếu nhớ sử dụng tham chiếu thiết bị ngoại vi, cho phép việc lập trình hiệu Tuy nhiên, nhược điểm không gian địa phải chia sẻ với thiết bị ngoại vi Cả hai kỹ thuật I/O sử dụng phổ biến Interrupt-Driven Input/Output Bộ xử lý đưa lệnh I/O (I/O command) sau tiếp tục thực lệnh (instruction) khác chương trình, module I/O hồn thành cơng việc gửi u cầu ngắt tới xử lý để xử lý tiếp tục điều khiển hoạt động vào/ra Một vấn đề I/O chương trình xử lý phải đợi thời gian dài module I/O sẵn sàng tiếp nhận truyền liệu Trong khoảng thời gian đó, xử lý phải liên tục kiểm tra trạng thái module I/O Kết hiệu toàn hệ thống suy giảm nghiêm trọng Để giải vấn đề trên, người ta đưa giải pháp sau: vi xử lý gửi lệnh I/O đến module sau thực hoạt động khác Khi module I/O sẵn sàng để trao đổi liệu ngắt xử lý để yêu cầu phục vụ Bộ xử lý thực thi việc truyền liệu quay trở lại cơng việc Chúng ta xem xét cách hoạt động từ hai phía: xử lý module I/O Từ phía module I/O, việc đọc liệu vào sau: module I/O nhận lệnh READ từ xử lý Sau đó, tiến hành đọc liệu từ thiết bị ngoại vi yêu cầu Khi liệu đọc vào ghi liệu module, module gửi báo hiệu ngắt tới xử lý qua đường điều khiển Module chờ đợi xử lý gửi yêu cầu liệu Khi có yêu cầu, module đặt liệu vào bus liệu giải phóng, sẵn sàng cho hoạt động vào/ra khác Từ phía xử lý, hoạt động Đọc liệu vào sau: xử lý lệnh READ, sau thực cơng việc khác (ví dụ: xử lý chạy nhiều chương trình lúc) Vào cuối chu kỳ lệnh, xử lý kiểm tra ngắt Khi có ngắt gửi từ module I/O, xử lý lưu lại ngữ cảnh (ví dụ: ghi PC ghi khác xử lý) chương trình thực việc xử lý ngắt Khi xử lý ngắt, 12 xử lý đọc liệu từ 149 module I/O lưu trữ vào nhớ Sau khơi phục lại ngữ cảnh trước tiếp thục thực thi công việc Việc sử dụng ngắt hiệu giúp loại bỏ khoảng thời gian chờ không cần thiết xử lý Tuy nhiên, việc truyền liệu nhớ module I/O phải có tham gia xử lý Xử lý ngắt: Ta xem xét chi tiết vai trò xử lý I/O điều khiển ngắt Sự xuất ngắt gây số kiện phần cứng phần mềm Khi thiết bị vào/ra thực hoạt động vào/ra, chuỗi hoạt động phần cứng sau xảy ra: 13 Hình 2.1 : Quá trình xử lí ngắt đơn giản Thiết bị phát tín hiệu ngắt cho xử lý Bộ xử lý hoàn thành lệnh trước trả lời ngắt Bộ xử lý kiểm tra xem có ngắt hay khơng, có ngắt, gửi tín hiệu báo nhận (tín hiệu ACK) đến thiết bị gửi ngắt Khi nhận ACK, thiết bị loại bỏ tín hiệu ngắt Phần cứng TBNV đưa ngắt Bộ xử lý kết thúc lệnh Bộ xử lý gửi xác nhận việc nhận ngắt Bộ xử lý đưa liệu PSW PC vào ngăn xếp Bộ xử lý tải giá trị vào PC tùy theo ngắt yêu cầu Lưu thông thông tin trạng thái Xử lý ngắt Khôi phục lại thông 14 tin trạng thái Khôi phục lại PSW PC Phần mềm 150 Bộ xử lý cần phải chuyển điều khiển sang chế độ ngắt Đầu tiên, cần phải lưu lại thơng tin chương trình để khơi phục lại cơng việc sau hồn thành xong việc xử lý ngắt Các thông tin tối thiểu bắt buộc (a) trạng thái xử lý lưu trữ ghi PSW (thanh ghi trạng thái chương trình), (b) địa lệnh thực (nội dụng ghi PC) Chúng đẩy lên vùng nhớ ngăn xếp hệ thống Sau đó, xử lý tải vị trí chương trình xử lý ngắt vào ghi PC Tùy thuộc vào kiến trúc hệ thống thiết kế hệ điều hành, trình xử lý ngắt chương trình; chương trình cho loại ngắt chương trình cho thiết bị loại ngắt Nếu có nhiều trình xử lý ngắt, xử lý phải xác định xem ngắt gửi đến từ đâu Thông tin chứa tín hiệu ngắt gửi đến xử lý phải gửi đến thiết bị gửi ngắt để yêu cầu phản hồi thông tin cần thiết Sau ghi PC nạp, xử lý bắt đầu thực thi lệnh chương trình xử lý ngắt Tại thời điểm này, nội dung ghi PC PSW chương trình bị ngắt lưu vùng nhớ ngăn xếp hệ thống Tuy nhiên, số thông tin khác liên quan đến trạng thái chương trình cần phải lưu lại, đặc biệt nội dung ghi xử lý ghi sử dụng trình xử lý ngắt Do đó, thơng thường, trình xử lý ngắt bắt đầu việc lưu nội dung tất ghi vào ngăn xếp Lúc này, ngắt xử lý bao gồm việc kiểm tra thông tin trạng thái liên quan đến hoạt động I/O kiện khác gây ngắt Nó thực việc gửi thêm lệnh hoạt động I/O thực gửi tín hiệu ACK đến thiết bị ngoại vi Khi q trình xử lý ngắt hồn tất, giá trị ghi lưu ngăn xếp lấy khôi phục lại vào ghi Hoạt động cuối khôi phục giá trị PSW PC từ ngăn xếp Nhờ đó, chương trinh bị ngắt khôi phục lại tiếp tục thực thi Thực ngắt I/O phát sinh hai vấn đề sau Thứ nhất, hệ thống thường có nhiều module I/O, xử lý xác định thiết bị gửi tín hiệu ngắt nào? Thứ hai, nhiều yêu cầu ngắt gửi đến, xử lý định phục vụ ngắt trước ngắt sau? Với vấn đề đầu tiên, có bốn kỹ thuật thường sử dụng để xác định thiết bị gửi ngắt sau: Sử dụng nhiều đường truyền yêu cầu ngắt: xử lý module 15 I/O Tuy nhiên, việc sử dụng đường bus chân xử lý để làm đường ngắt không thực tế Do đó, sử dụng kỹ thuật này, đường ngắt nối với nhiều module I/O phải sử dụng ba kỹ thuật lại cho đường Thăm dò phần mềm: xử lý phát ngắt, rẽ nhánh sang trình phục vụ ngắt chung có nhiệm vụ thăm dò module I/O để xác định module phát ngắt Tín hiệu thăm dị dạng đường lệnh riêng (ví dụ TESTI/O) Bộ xử lý phát tín hiệu TEST I/O đặt địa module vào đường địa Module I/O gửi yêu cầu ngắt trả lời nhận thăm dò Một cách thăm dò khác xử lý đọc ghi trạng thái module để xác định module gửi ngắt Sau xác định module ngắt, xử lý chuyển điều khiển sang trình phục vụ ngắt dành riêng cho thiết bị Tuy nhiên, nhược điểm phương pháp tốn thời gian Hình 2.2 : Kỹ thuật thăm dò phần mềm Kỹ thuật chuỗi Daisy thực thăm dò phần cứng Kỹ thuật sử dụng đường ngắt chung (INTR) cho tất module Khi nhận yêu cầu ngắt, xử lý gửi tín hiệu ACK thừa nhận ngắt, tín hiệu truyền đường INTA qua tất module (nối chuỗi) gặp module gửi ngắt, module gửi lại tín hiệu trả lời cách đặt từ lên bus liệu, từ là địa thơng tin nhận diện module đó, gọi vector Khi đó, xử lý sử dụng vector để trỏ tới trình phục vụ ngắt module Với kỹ thuật này, xử lý khơng cần phải rẽ nhánh đến trình phục vụ ngắt chung trường hợp 16 Hình 2.3 : Kỹ thuật chuỗi Daisy Kỹ thuật phân xử bus: module I/O muốn gửi u cầu ngắt cần phải có quyền chiếm bus trước Vì vậy, thời điểm có module sử dụng bus Khi xử lý phát ngắt, trả lời đường ACK Khi nhận ACK, module yêu cầu đặt vector vào đường liệu xử lý thực việc xử lý ngắt tương tự với kỹ thuật chuỗi Daisy Với kỹ thuật trên, ta giải vấn đề xác định thứ tự ưu tiên trường hợp có nhiều ngắt gửi đến xử lý thời điểm Với kỹ thuật nhiều đường ngắt, đường ngắt gán độ ưu tiên định, đó, xử lý cần chọn đường ngắt có độ ưu tiên cao Với thăm dò phần mềm, xử lý thực việc thăm dò module theo thứ tự ưu tiên Tương tự, thứ tự module nối chuỗi daisy xác định theo độ ưu tiên chúng Cuối cùng, kỹ thuật phân xử bus, module có độ ưu tiên cao cho phép chiếm bus trước, giải vấn đề 17 Hình 2.4 : Kỹ thuật nhiều đường ngắt DMA Input/Output Khi cần trao đổi khối lượng lớn liệu, người ta đưa kỹ thuật hiệu hơn, là: truy cập nhớ trực tiếp (DMA) Với I/O chương trình I/O điều khiển ngắt, vi xử lý có trách nhiệm lấy liệu từ nhớ chuyển cho thiết bị ngoại vi (hoạt động Ghi) lưu liệu từ thiết bị vào nhớ (hoạt động Đọc) Vì vậy, chế thay đưa chế DMA (direct memory access - truy cập nhớ trực tiếp) để giảm thiểu tham gia xử lý vào trình trao đổi liệu nhớ thiết bị ngoại vi, tăng hiệu hệ thống 18 Hình 2.5 : Sơ đồ khối DMA DMA thường module bổ sung hệ thống bus Module DMA có khả bắt chước xử lý, tức tiếp nhận việc điều khiển hệ thống từ xử lý Nó cần phải thực điều để trao đổi liệu với nhớ qua bus hệ thống Với mục đích này, module DMA sử dụng bus xử lý khơng cần đến DMA phải buộc xử lý phải tạm ngừng hoạt động (gọi trộm chu kỳ) Kỹ thuật trộm chu kỳ thường phổ biến Khi xử lý muốn đọc ghi khối (block) liệu, đưa lệnh cho module DMA cách gửi tới module DMA thông tin sau: -Yêu cầu Đọc Ghi cách sử dụng đường điều khiển READ WRITE xử lý module DMA Địa thiết bị I/O liên quan, gửi qua đường liệu -Địa vị trí nhớ để đọc ghi lên, truyền qua đường liệu lưu trữ lại module DMA Thanh ghi địa -Số lượng từ cần đọc ghi, truyền qua đường liệu lưu trữ ghi Đếm liệu Sau đó, xử lý tiếp tục thực công việc khác Hoạt động vào/ra ủy quyền hoàn toàn cho module DMA Module DMA chuyển toàn khối liệu nhớ thiết bị ngoại vi mà không cần tham gia xử lý Khi trình trao đổi hồn tất, module 19

Ngày đăng: 18/03/2023, 06:39

Tài liệu cùng người dùng

Tài liệu liên quan