Chương 7 HỆ THỐNG QUẢN LÝ NHẬP XUẤT
7.2 Quá trình vào/ra
Quá trình trao đổi dữ liệu giữa bộ vi xử lý và các thiết bị ngoại vi gọi tắt là quá trình vào/ra. Quá trình này bao gồm các bước sau:
1. Xác định xem liệu cĩ thiết bị nào sẵn sàng trao đổi thơng tin với bộ xử lý hay khơng.
2. Nếu cĩ thì xác định xem thiết bị nào.
3. Giải quyết tranh chấp nếu cĩ nhiều thiết bị đều cùng muốn trao đổi thơng tin với bộ xử lý.
4. Phát ra các tín hiệu điều khiển và đồng bộ để trao đổi dữ liệu.
Chương trình thực hiện việc trao đổi dữ liệu gọi là chương trình phục vụ ï Cĩ thể thực hiện tất cả các bước trên theo các cơ chế sau đây:
Phương pháp hỏi vịng (polling)
Trong phương pháp này, chương trình liên tục kiểm tra trạng thái của các ngoại vi để xem cĩ yêu cầu trao đổi thơng tin hay khơng. Đến khi một ngoại vi cĩ yêu cầu phục vụ (tức là cĩ tín hiệu sẵn sàng) tạo ra một tín hiệu gọi là handshaking
(bắt tay), thì chương trình sẽ nhảy vào một chương trình con phục vụ và khi phục vụ thì thanh ghi điều khiển sẽ đặt trạng thái bận , sau khi phục vụ xong thì nĩ xố cờ bận, rồi lại kiểm tra thiết bị I/O vi kế tiếp. Quá trình này cứ thực hiện cho tới thiết bị I/O cuối rồi được lặp lại ngay từ đầu. Phương pháp này đơn giản nhưng gặp phải một nhược điểm là khi số lượng thiết bị I/O tăng lên sẽ làm lãng phí thời gian và khả năng đáp ứng với yêu cầu phục vụ là rất thấp vì CPU phải kiểm tra tất cả các trạng thái của các thiết bị I/O trước khi quay về thiết bị I/O cĩ yêu cầu phục vụ.
Phương pháp ngắt
Ngắt là một tín hiệu được một đơn vị nào đĩ trong máy tính gửi tới bộ xử lý chú ý ngay lập tức. Bộ xử lý dừng cơng việc đang làm và chạy một chương trình phụ gọi là chương trình dịch vụ ngắt. Sau khi thực hiện xong, bộ xử lý quay lại đúng điểm mà nĩ tạm dừng do bị ngắt để tiếp tục chương trình.
Bộ xử lý đáp ứng với các yêu cầu ngắt được phát ra do cả phần cứng và phần mềm. Một tín hiệu ngắt được phát ra bởi một phần cứng được xử lý bởi một chip điều khiển rồi chuyển tới CPU, q trình đĩ gọi là ngắt cứng. Mặt khác một chương trình cĩ thể dùng một lệnh đặc biệt để yêu cầu bộ xử lý thực hiện gọi là ngắt mềm.
Một phương pháp xác định nguồn gây ngắt khác là dùng sơ đồ ngắt vectơ , trong đĩ nguồn gây ngắt phát ra tín hiệu yêu cầu ngắt với số hiệu nhận dạng thiết bị và chương trình con sẽ rẽ nhánh tới chương trình con ngắt tương ứng nhờ vào số hiệu nhận dạng này. Khi cần tốc độ nhanh hơn, thay vì cho số nhận dạng là địa chỉ của chương trình con phục vụ ngắt tương ứng với thiết bị ngắt được nạp sẵn trong một chip ROM sẽ đưa vào bus dữ liệu ngay cho CPU.
Hệ thống ngắt vectơ đều cho phép ngắt và cấm ngắt bằng phần mềm. Ngắt bị cấm bằng lệnh máy xố cờ ngắt CLI và thiết lập cờ ngắt STI. Trước khi chạy một chuỗi lệnh cĩ các ngắt bị cấm, chương trình sẽ truyền tới một thanh ghi che ngắt (mask register) để ngăn sự kích hoạt các nguồn gây ngắt đĩ. Các chip vi xử lý thường cĩ lối vào ngắt khơng che được NMI (non-maskable). Lệnh cấm ngắt khơng cĩ tác dụng với lối vào ngắt này và nĩ dành các yêu cầu yêu cầu ưu tiên tuyệt đối như ngắt lỗi do nguồn ni.
Cĩ hai phương pháp để xác định nguồn ngắt cĩ mức ưu tiên cao nhất.
- Dùng sơ đồ mĩc xích: thay cho phương pháp hỏi vịng. Các thiết bị ghi nhận
ngắt theo hình mĩc xích để đưa vectơ ngắt vào, nếu khơng phải sẽ truyền tín hiệu tới thiết bị tiếp theo trong dãy mĩc xích đĩ.
- Dùng mạch điều khiển ngắt ưu tiên: sử dụng một chip điều khiển để xác định
ngắt ưu tiên.
Phương pháp DMA.
Mỗi thiết bị vào/ra cĩ cơ chế trao đổi với bộ nhớ trực tiếp mà khơng thơng luơn luơn qua CPU cho việc trao đổi từng dữ liệu. Cơ chế DMA giúp cho CPU khơng lãng phí thời gian, CPU gửi bộ điều khiển một số thơng số như địa chỉ trên đĩa của khối, địa chỉ trong bộ nhớ, số lượng byte cần để chuyển.
Sau khi bộ điều khiển đã đọc tồn bộ dữ liệu từ thiết bị vào vùng đệm của nĩ và kiểm tra checksum. Bộ điều khiển chuyển byte đầu tiên vào bộ nhớ chính tại địa chỉ được mơ tả bởi bộ nhớ DMA. Sau đĩ tăng địa chỉ DMA và giảm số byte cần chuyển. Quá trình này lặp lại cho tới khi số byte phải chuyển bằng 0 và bộ điều khiển tạo ra một ngắt gửi về CPU.
CPU Memory Bộ điều khiển đĩa
Bus hệ thống
Ổ đĩa
Buffer Thanh ghi DMA
Địa chỉ bộ nhớ Bộ đếm
Vận chuyển DMA được thực hiện bởi bộ điều khiển