IH Cỏc phơng phỏp điều khiển vào ra dữ liệu.

Một phần của tài liệu Giáo trình kĩ thuật máy tính.doc (Trang 36 - 40)

- Nếu việc trao đổi dữ liệu do mỏy tớnh yờu cầu thỡ quỏ trỡnh diễn ra nh san: Mỏy tớnh đa lệnh điều khiển để khởi động bộ phối ghộp hay thiết bị ngoài.

IH Cỏc phơng phỏp điều khiển vào ra dữ liệu.

Núi chung, ngời ta phõn biệt ra 3 phơng phỏp điều khiển vào/ ra dữ liệu nh sau:

+ vào/ra dữ liệu điều khiển bằng cỏch thăm dũ trạng thỏi sẵn sàng của thiết bị TĐOạI VI.

+ vào/ra dữ liệu điều khiển bằng cỏch ngắt bộ VXL.

+ vào/ ra dữ liệu điều khiển bằng phần cứng phụ để thõm thập trực tiếp vào bộ

nhớ (dựng DMAC)).

Mỗi phơng phỏp điều khiển vào/ra dữ liệu núi trờn cú những đặc điểm khỏc

nhau và đợc ứng dụng trong những trờng hợp khỏc nhau. Trong phần này chỳng ta sẽ lần lợt nghiờn cứu từng phơng phỏp điều khiển trờn.

HII.1I. Vào/ra dữ liệu bằng phơng phỏp thăm dũ.

Vấn đề điều khiển vào/ra đữ liệu sẽ là đơn giản nếu thiết bị ngoại vi luụn sẵn

sàng để làm việc với CPU. Vớ dụ, với thiết bị vào nh bộ phận đo nhiệt độ số lắp sẵn trong một hệ thống điều khiển lỳc nào cũng cú thể cung cấp số đo về nhiệt độ của đối tợng cần điều chỉnh, hay thiết bị ra nh bộ đốn LED dựng để hiển thị giỏ trị nhiệt

độ trong hệ thống núi trờn thỡ lỳc nào cũng cú thể biểu hiện thụng tin đú. Nh vậy khi

CPU cần cú thụng tin về nhiệt độ của đối tợng thỡ nú chỉ việc đọc đữ liệu tại cổng phối ghộp với bộ đo nhiệt độ và nếu CPU muốn biểu diễn thụng tin vừa đọc lờn đốn

LED thỡ nú chỉ việc đa ra tớn hiệu điều khiển tới đú mà khụng cần kiểm tra xem cỏc

thiết bị này cú đang sản sàng làm việc hay khụng.

Tuy nhiờn, trong thực tế khụng phải lỳc nào CPU cũng làm việc với cỏc đối t- ơng luụn sẵn sàng nh trờn. Thụng thờng khi CPU muốn trao đổi dữ liệu với một đối t- ợng nào đú, trớc tiờn nú phải kiểm tra xem thiết bị đú cú đang ở trạng thỏi sẵn sàng

z.ễ-—. ` Ƒé°^ 1

hay b ° ?, TỐ ới thực hiện việc trao đổi dữ liệ lểm tra tỡnh trạng

thiế G Hạ Bufer Ân hiệu múc nối (hiỂsrake sỉg beviee lấy từ mạch ghộp

nối, mỜI HHỔ 3 States h. l

?*ẹh $. cỏch tạo ra tớn hiệu Thới nối . Trị này, để đơn giản ta giả thiết CHỦ chỉ tm việc với một thiết bị vào và Í thiết bị Ă Tả.

Một EŠ l8 Vào |S ú địa chỉ 00) đợc dựng ể độc Tang thỏi sẵn sàng của hai thiết bị trờn. [ớn hiệu sẵn sàng của thiết bị nị ` Ộ ở ào O1) đợc đặt tại bịt

DU, tớn hiệu kẵn sàng của thiết từ boa rả 02) đợc đặt vào bịt DI. Cỏc

bit này sẽ|cú| giỏ trị Í khi thiết bị é bại VI tơr c _|ạng thỏi sẵn sàng làm VIỆC VỚI CPU và chủns sẽ đợc đa vào bus H khi nú băng lệnh đọc cụng vào số 0. Chơng trỡnh trao đối dữ liệu sẽ kiểm tra cĂ sẵn sàng này và sẽ cú cỏc đỏp ứng phự hợp

Latch —— Buffer Device

Đbits 3 States 2 ———> | + SP02 Latch Đbits 5v pr Q D clk clr dhk89, py4 S7

b„

OSP02

OSP02

Hỡnh 8.4. Sơ đồ tạo tớn hiệu múc nối.

Khi thiết bị vào số 1 cú I byte số liệu cần trao đối, nú đa ra xung STB để cho

phộp mạch chốt, chốt lấy 8 byte dữ liệu đú, đồng thời kớch cho mạch lật D (mạch tạo tớn hiệu sẵn sàng) làm việc. CPU thăm dũ trạng thỏi của thiết bị l qua bớt DO khi nú đọc cổng 00. Đến khi CPU đọc 1 byte dữ liệu vào thỡ đồng thời nú xoỏ luụn mạch tạo (adsbygoogle = window.adsbygoogle || []).push({});

trạng thỏi để chuẩn bị cho lần làm việc sau.

HIIL2. Vào/ra dữ liệu bằng cỏch ngắt CPU.

Trong cỏch vào/ra dữ liệu điều khiển bằng phng phỏp thăm dũ, trớc khi tiến

hành trao đổi dữ liệu CPU phải dành toàn bộ thời gian vào việc xỏc định trạng thỏi

sẵn sàng của thiết bị cần trao đổi. Trong hệ thống VXL với cỏch làm việc nh vậy,

thụng thờng CPU đợc thiết kế chủ yếu chỉ là để phục vụ cho việc vào/ ra dữ liệu và

thực hiện cỏc tỏc vụ xử lý dữ liệu liờn quan.

Trong thực tế, ngời ta phải tận dụng những khả năng của CPU để thực hiện những cụng việc khỏc ngoài việc trao đổi dữ liệu với TBN, chỉ khi nào cú yờu cầu

trao đổi dữ liệu thỡ mới yờu cầu CPU tạm dừng cụng việc hiện tại để phục vụ việc trao đối dữ liệu. Sau khi hoàn thành thỡ CPU lại trở lại thực hiện tiếp cụng việc đang tiến hành, hoặc thực hiện một cụng việc mới. Cỏch làm việc nh vậy gọi là ngắt CPU để trao đổi dữ liệu. Một hệ thống nh vậy cú thể đỏp ứng rất nhanh với cỏc yờu cầu trao đổi dữ liệu trong khi vẫn cú thể thực hiện cỏc cụng việc khỏc.

Hỡnh 8.5. trỡnh bày một cỏch đơn giản để đa ngắt số hiệu N vào bus đữ liệu trong khi cũng tạo ra yờu cầnungắt đa vào chõn INTR của bộ VXL 8088.

ADI AD2 AD2 AD3 AD5 AD6 AD/7

Hỡnh 8.5. Đa số hiệu ngắt vào bus dữ liệu

Trong trờng hợp đơn giản, tại một thời điểm nhất định chỉ cú một yờu cầu ngắt IRi đợc tỏc động, khi đú ở đầu ra mạch NAND sẽ cú xung yờu cầu ngắt đến CPU.

Tớn hiệu IRi đợc đồng thời đa qua mạch khuyếch đại đệm để tạo ra số hiệu ngắt tơng ứng, số hiệu ngắt này đợc CPU đọc vào khi nú đa ra tớn hiệu chấp nhận nứắt.

Bảng 8.1 cho quan hệ giữa IRi và số hiệu ngắt N tơng ứng.

Bảng 8.1. Quan hệ giữa IRĂ và số hiệu ngắt.

Apz| I6 [ IRš [ IR4 | IR3 [ IR2 [ IRI | IR9 N

(AD9) | (AD5) | (AD4) | (AD3) | (AD2) | (AD1) | (AD0)

1 1 1 1 1 1 1 0 FEH (253) 1 1 1 1 1 1 0 1 FDH (253) 1 1 1 1 1 0 1 1 FBH (251) l l l l 0 l l l F7H (247) 1 1 1 0 1 1 1 1 EFH (239) 1 1 0 1 1 1 1 1 DFH (223) 1 0 1 1 1 1 1 1 BFH (191)

Trong trờng hợp cú nhiều yờu cầu ngắt một lỳc, ngời ta phải sử dụng cỏc mạch

xử lý u tiờn ngắt. Một trong những mạch xử lý ngắt u tiờn điển hỡnh là mạch điều khiển ngắt 8259A.

HIL3. Vào/ra dữ liệu bằng DMA.

Trong cỏc cỏch điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và VXL

bằng cỏc cỏch thăm đũ trạng thỏi sẵn sàng của thiết bị ngoại vi hay bằng cỏch ngắt bộ VXL nh trờn, đữ liệu thờng đợc chuyển từ bộ nhớ qua bộ VXL rồi từ đú ghi vào thiết bị ngoại vi hoặc ngợc lại, từ thiết bị ngoại vị, dữ liệu đợc đọc vào qua bộ VXL rồi từ đú ghi vào bộ nhớ. Vỡ thế tốc độ trao đổi dữ liệu phụ thuộc rất nhiều vào tốc độ thực hiện của cỏc lệnh MOV, IN và OUT của bộ VXL. Do đú tốc độ trao đối dữ liệu núi chung là chậm.

Trong thực tế cú những khi rất cần thiết phải trao đối dữ liệu thật nhanhnvới

thiết bị ngoại vi: nh khi đa dữ liệu hiển thị ra màn hỡnh hoặc đọc, ghi đĩa... . Trong

cỏc trờng hợp đú ta cần cú đợc khả năng shi/ đọc dữ liệu trực tiếp với bộ nhớ (DMA- truy nhập trực tiếp vào bộ nhớ mà khụng qua CPU) thỡ mới đỏp ứng đợc yờu cầu về (adsbygoogle = window.adsbygoogle || []).push({});

tốc độ trao đối dữ liệu. Để làm đợc điều này, cỏc hệ VXL núi chung đều phải dựng thờm mạch chuyờn dụng để điều khiển việc truy nhập trực tiếp bộ nhớ (Direct

Memory Access Controller, DMAC) và phơng phỏp này là phơng phỏp điều khiển

vào/ra đữ liệu bằng DMA.

Cú thể lấy một vớ dụ để minh hoạ tớnh u việt về tốc độ trao đổi dữ liệu dựng DMAC nh sau: Trong khi một mạch DMAC nh 8237A-5 của Intel cú thể điều khiển

việc chuyển 1 by(e trong I mảng dữ liệu từ bộ nhớ ra thiết bị ngoại vi chỉ mất 4 chu

kỳ đồng hồ, thỡ bộ VXL 8088 cần khoảng 40 chu kỳ đồng hồ để thực hiện cụng việc

này.

Cơ chế trao đổi dữ liệu bằng DMAC đợc giới thiệu chỉ tiết trong chơng 6 tài liệu này.

Một phần của tài liệu Giáo trình kĩ thuật máy tính.doc (Trang 36 - 40)