1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 8 - Vào/ra Dữ liệu bằng DMA pptx

18 1,7K 15

Đ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

Thông tin cơ bản

Tiêu đề Vào/ra Dữ liệu bằng DMA
Định dạng
Số trang 18
Dung lượng 298,52 KB

Nội dung

Nguyên tắc của việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách thâm nhập trực tiếp vμo bộ nhớ 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μ hệ vi x

Trang 1

Chương 8

Vμo/ra Dữ liệu bằng DMA

1 Nguyên tắc của việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách thâm nhập trực tiếp vμo bộ nhớ (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μ hệ vi

xử lý bằng cách thăm dò trạng thái sẵn sμng của thiết bị ngoại vi hay bằng cách ngắt

bộ vi xử lý đã được nói đến ở các chương trước, dữ liệu thường được chuyển từ bộ nhớ

qua bộ vi xử lý để rồi từ đó ghi vμo thiết bị ngoại vi hoặc ngược lại, từ thiết bị ngoại vi

nó được đọc vμo bộ vi xử lý để rồi từ đó được chuyển đến 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ộ vi xử lý vμ do đó việc trao đổi dữ liệu không thể tiến hμnh nhanh được

Trong thực tế có những khi ta cần trao đổi dữ liệu thật nhanh với thiết bị ngoại vi: như khi cần đưa dữ liệu hiện thị ra mμn hình hoặc trao đổi dữ liệu với bộ

điều khiển đĩa Trong các trường hợp đó ta cần có được khả năng ghi/đọc dữ liệu trực tiếp với bộ nhớ (direct memory access, DMA - thâm nhập vμo bộ nhớ trực tiếp không thông qua CPU) thì mới đáp ứng được yêu cầu về tốc độ trao đổi dữ liệu Để lμm được

điều nμy các hệ vi xử lý nói chung đều phải dùng thêm mạch chuyên dụng để điều

khiển việc thâm nhập trực tiếp vμo bộ nhớ (direct memory access controller, DMAC)

Có thể lấy 1 thí dụ cụ thể để minh hoạ điều nμy Trong khi một mạch DMAC như 8237A-5 của Intel có thể điều khiển việc chuyển 1 byte trong 1 mảng dữ liệu từ

Trang 2

bộ nhớ ra thiết bị ngoại vi chỉ hết 4 chu kỳ đồng hồ thì bộ vi xử lý 8088 phải lμm hết

cỡ 40 chu kỳ:

Để hỗ trợ cho việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách thâm nhập

trực tiếp vμo bộ nhớ, tại mỗi vi mạch CPU thường tồn tại chân yêu cầu treo HOLD để

thiết bị ngoại vi, mỗi khi có yêu cầu dùng bus cho việc trao đổi dữ liệu với bộ nhớ thì thông qua chân nμy mμ báo cho CPU biết Đến lượt CPU, khi nhận được yêu cầu treo thì nó tự treo lên (tự tách ra khỏi hệ thống bằng cách đưa các bus vμo trạng thái trở kháng cao) vμ đưa xung HLDA ra ngoμi để thông báo CPU cho phép sử dụng bus

Sơ đồ khối của một hệ vi xử lý có khả năng trao đổi dữ liệu theo kiểu DMA

được thể hiện trên hình 8.1

Bus A Bus D

Bus C (các tín hiệu quan trọng: IOR, IOW, MEMR, MEMW)

CPU

HOLD

HLDA

Hình 8.1 Hệ vi xử lý với DMAC

Ta nhận thấy trong hệ thống nμy, khi CPU tự tách ra khỏi hệ thống bằng việc

tự treo (ứng với vị trí hiện thời của các công tắc chuyển mạch) để trao quyền sử dụng bus cho DMAC thì DMAC phải chịu trách nhiệm điều khiển toμn bộ hoạt động trao

đổi dữ liệu của hệ thống Để lμm được điều đó DMAC phải có khả năng tạo ra được các tín hiệu điều khiển cần thiết giống như các tín hiệu của CPU vμ bản thân nó phải

DMAC

HRQ D RQ HACK DACK

MEM.

I/O

DRQ DACK

Trang 3

lμ một thiết bị lập trình được (để CPU "dặn dò" nó bằng cách đưa vμo các từ điều khiển trước khi nó có thể hoạt động độc lập)

Quá trình hoạt động của hệ thống trên có thể được tóm tắt như sau:

Khi thiết bị ngoại vi có yêu cầu trao đổi dữ liệu kiểu DMA với bộ nhớ, nó đưa yêu cầu DRQ=1 đến DMAC, DMAC sẽ đưa yêu cầu treo HRQ=1 đến chân HOLD của CPU Nhận được yêu cầu treo, CPU sẽ treo các bus của mình vμ trả lời chấp nhận treo qua tín hiệu HLDA=1 đến chân HACK của DMAC DMAC sẽ thông báo cho thiết

bị ngoại vi thông qua tín hiệu DACK=1 lμ nó cho phép thiết bị ngoại vi trao đổi dữ liệu kiểu DMA Khi quá trình DMA kết thúc thì DMAC đưa ra tín hiệu HRQ=0

Trong thực tế tồn tại 3 kiểu trao đổi dữ liệu bằng cách thâm nhập trực tiếp vμo bộ nhớ như sau:

+ Treo CPU một khoảng thời gian để trao đổi cả mảng dữ liệu

+ Treo CPU để trao đổi từng byte

+ Tận dụng thời gian không dùng bus của CPU để trao đổi dữ liệu

Ta sẽ lần lượt giới thiệu qua các kiểu trao đổi dữ liệu nμy

• Trao đổi cả một mảng dữ liệu

Trong chế độ nμy CPU bị treo trong suốt quá trình trao đổi mảng dữ liệu Chế

độ nμy được dùng khi ta có nhu cầu trao đổi dữ liệu với ổ đĩa hoặc đưa dữ liệu ra hiện thị Các bước thủ tục để chuyển một mảng dữ liệu từ bộ nhớ ra thiết bị ngoại vi:

1 CPU phải ghi từ điều khiển vμ từ chế độ lμm việc vμo DMAC để quy định cách thức lμm việc, địa chỉ đầu của mảng nhớ, độ dμi của mảng nhớ

2 Khi thiết bị ngoại vi có yêu cầu trao đổi dữ liệu, nó đưa DRQ=1 đến DMAC

3 DMAC đưa ra tín hiệu HRQ đến chân HOLD của CPU để yêu cầu treo CPU Tín hiệu HOLD phải ở mức cao cho đến hết quá trình trao đổi dữ liệu

4 Nhận được yêu cầu treo, CPU kết thúc chu kỳ bus hiện tại, sau đó

nó treo các bus của mình vμ đưa ra tín hiệu HLDA báo cho DMAC được toμn quyền

sử dụng bus

5 DMAC đưa ra xung DACK để báo cho thiết bị ngoại vi biết lμ có thể bắt đầu trao đổi dữ liệu

6 DMAC bắt đầu chuyển dữ liệu từ bộ nhớ ra thiết bị ngoại vi bằng cách đưa địa chỉ của byte đầu ra bus địa chỉ vμ đưa ra tín hiệu MEMR=0 để đọc 1 byte từ bộ nhớ ra bus dữ liệu Tiếp đó DMAC đưa ra tín hiệu IOW=0 để ghi dữ liệu ra thiết bị ngoại vi DMAC sau đó giảm bộ đếm số byte còn phải chuyển, cập nhật địa chỉ của byte cần đọc tiếp, vμ lặp lại các động tác trên cho tới khi hết số đếm (TC)

Trang 4

7 Khi quá trình DMA kết thúc, DMAC cho ra tín hiệu HRQ=0 để báo cho CPU biết để CPU dμnh lại quyền điều khiển hệ thống

• Treo CPU để trao đổi từng byte

Trong cách trao đổi dữ liệu nμy CPU không bị treo lâu dμi trong một lần nhưng thỉnh thoảng lại bị treo trong một khoảng thời gian rất ngắn đủ để trao đổi 1 byte dữ liệu (CPU bị lấy mất một số chu kỳ đồng hồ) Do bị lấy đi một số chu kỳ đồng

hồ như vậy nên tốc độ thực hiện một công việc nμo đó của CPU chỉ bị suy giảm chứ không bị dừng lại Cách hoạt động cũng tương tự như phần trước, chỉ có điều mỗi lần DMAC yêu cầu treo CPU thì chỉ có 1 byte được trao đổi

• Tận dụng thời gian CPU không dùng bus để trao đổi dữ liệu

Trong cách trao đổi dữ liệu nμy, ta phải có các logic phụ bên ngoμi cần thiết

để phát hiện ra các chu kỳ xử lý nội bộ của CPU (không dùng đến bus ngoμi) vμ tận dụng các chu kỳ đó vμo việc trao đổi dữ liệu giữa thiết bị ngoại vi với bộ nhớ Trong cách lμm nμy thì DMAC vμ CPU luân phiên nhau sử dụng bus vμ việc thâm nhập trực tiếp bộ nhớ kiểu nμy không ảnh hưởng gì tới hoạt động bình thường của CPU

2 DMAC 8237A-5 trong hệ vi xử lý 8088

2.1 Tín hiệu HOLD vμ HLDA trong CPU 8088

Hai tín hiệu dùng để yêu cầu treo vμ trả lời chấp nhận yêu cầu treo trong chế

độ MIN của CPU 8088 lμ HOLD vμ HLDA Quan hệ giữa 2 tín hiệu đó được thể hiện trên hình 8.2

T4 hoặc T1

CLK

HOLD

HLDA

Hình 8.2 Quan hệ giữa HOLD vμ HLDA

Trang 5

Tín hiệu yêu cầu treo HOLD được lấy mẫu tại sườn lên của xung đồng hồ trước chu kỳ T4 hoặc T1 Khi nhận được yêu cầu treo, CPU kết thúc chu kỳ bus hiện tại, đưa ra tín hiệu HLDA vμ treo các tín hiệu của bus A, bus D vμ bus C (trừ tín hiệu ALE=0) để nhường quyền sử dụng các bus nμy cho DMAC Cần lưu ý rằng đầu vμo HOLD có mức ưu tiên cao hơn các đầu vμo yêu cầu ngắt INTR vμ NMI nhưng lại thấp hơn so với đầu vμo RESET

Để đảm bảo việc đồng bộ tín hiệu yêu cầu treo của thiết bị ngoại vi với tín hiệu đồng hồ của hệ thống trước khi đưa vμo chân HOLD của 8088 người ta thường dùng mạch trên hình 8.3

yêu cầu treo +5V

từ thiết bị ngoại vi

RESET

Hình 8.3 Đồng bộ tín hiệu yêu cầu treo để đưa đến CPU 8088

2.2 Mạch DMAC 8237A-5 của Intel

Trước khi trình bμy kỹ về mạch DMAC 8237A-5 của Intel ta nói qua về các thay đổi cần có trong nhóm tín hiệu điều khiển ghi/đọc của hệ vi xử lý với CPU 8088 ở chế độ MIN để sử dụng được mạch 8237A-5 lμm DMAC

Như trên hình 8.1 đã thể hiện tương đối rõ, để thực hiện được chức năng DMA trong hệ, bus điều của hệ vi xử lý với CPU 8088 phải được thay đổi chút ít để có

được các tín hiệu cần thiết cho DMAC vμ các bộ phận khác hoạt động Đó chính lμ việc các tín hiệu RD, WR vμ IO/M được sử dụng để tạo các tín hiệu điều khiển mới IOR, IOW, MEMR, MEMW tương thích với các tín hiệu của DMAC 8237A-5

Hình 8.4 trình bμy một khả năng tạo ra các tín hiệu điều khiển như vậy dùng mạch dồn kênh 74LS257 Trong 74LS257 gồm 4 mạch đồn kênh 2 đường Các tín hiệu RD, WR vμ IO/M được bố trí sao cho khi đầu vμo của mạch 74LS257 lμ B=1 thì ta lμm việc (ghi/đọc) với thiết bị ngoại vi với các xung IOR vμ IOW, ngược lại khi B=0 thì ta lμm việc với bộ nhớ với các xung MEMR vμ MEMW

pr

D Q

clk clr

Trên hình 8.4 ta còn thấy tín hiệu AEN của DMAC cũng được dùng để khoá các tín hiệu điều khiển mới do CPU tạo ra khi DMAC đã nắm quyền điều khiển bus

Trang 6

+5V

IOR IOW

RD

MEMR

WR

MEMW

Hình 8.4 Một cách tạo các tín hiệu điều khiển mới cho hệ thống 8088 để lμm việc

với DMAC 8237A-5

DMAC 8237A-5 thường được dùng để điều khiển việc truyền dữ liệu giữa bộ nhớ vμ thiết bị ngoại vi Mạch 8237A-5 có thể điều khiển truyền dữ liệu theo 3 kiểu

EOP

RESET

CLK

AEN

ADSTB

MEMW

MENR

IOR

IOW

A8-A15

HRQ

DRQ0-

DRQ3

DACK0-

DACK3

Hình 8.5 Sơ đồ khối cấu trúc của DMAC 8237A-5

A0

A1 B1 Y1

A2 '257

B2 Y2 A3

B3 Y3

B OE

Bộ giảm

Thanh ghi tạm

Bộ tăng

Thanh ghi tạm

Đệm I/O

Khối

tạo nhịp

điều

khiển

bộ đếm số từ cho địa chỉ

Đệm ra

Đệm đọc

cơ sở cơ sở

Đệm ghi/đọc

hiện tại hiện tại

Địa chỉ Số từ Địa chỉ Số từ

Đệm đọc Đệm ghi

Bộ mã hoá

Đệm

T.g lệnh

mức ưu tiên

vμ logic

tạo ưu tiên

Chế độ

Thanh ghi tạm

T.g.trạng thái

Tg yêucầu

I/O

Trang 7

Trong chế độ truyền kiểu đọc thì dữ liệu được đọc từ bộ nhớ rồi đưa ra thiết bị

ngoại vi Trong chế độ truyền kiểu ghi thì dữ liệu được đọc từ thiết bị ngoại vi rồi đưa

vμo bộ nhớ Khi 8237A-5 lμm việc ở chế độ kiểm tra thì tuy địa chỉ được đưa đến bộ

nhớ nhưng DMAC không tạo ra các xung điều khiển để tiến hμnh các thao tác ghi/đọc

bộ nhớ hay thiết bị ngoại vi

Ngoμi ra mạch 8237A-5 còn hỗ trợ việc trao đổi dữ liệu giữa các vùng khác

nhau của bộ nhớ vμ cũng chỉ riêng trong chế độ lμm việc nμy, dữ liệu cần trao đổi mới

phải đi qua DMAC nhưng với tốc độ cao hơn khi đi qua CPU (trong trường hợp nμy ta

có thể đọc được dữ liệu đó trong thanh ghi tạm)

Sơ đồ khối cấu trúc bên trong của mạch 8237A-5 được thể hiện trên hình 8.5 Mạch DMAC 8237A-5 chứa 4 kênh trao đổi dữ liệu DMA với mức ưu tiên lập trình được DMAC 8237A-5 có tốc độ truyền 1 MB/s cho mỗi kênh, một kênh có thể truyền 1 mảng có độ dμi 64 KB

• Giới thiệu các chân tín hiệu của 8237A-5

+ CLK[I]: tín hiệu đồng hồ của mạch Để mạch có thể lμm việc tốt với hệ 8088 thì tín hiệu CLK của hệ thống thường được đảo trước khi đưa vμo CLK của 8237A-5

+ CS [I]: tín hiệu chọn vỏ của 8237A-5 Chân nμy thường được nối với đầu ra của bộ giải mã địa chỉ Bộ giải mã địa chỉ nμy không cần dùng đến đầu vμo IO/M vì bản thân DMAC đã được cung cấp các xung điều khiển mới của hệ thống

+ RESET[I]: tín hiệu nối với tín hiệu khởi động hệ thống Khi mạch 8237A-5

được khởi động riêng thanh ghi mặt nạ được lập còn các bộ phận sau đây bị xoá:

- thanh ghi lệnh

- thanh ghi trạng thái

- thanh ghi yêu cầu DMA

- thanh ghi tạm thời

- mạch lật byte đầu/byte cuối (First/Last)

+ READY [I]: tín hiệu sẵn sμng, nối với READY của hệ thống để gây ra các chu kỳ đợi đối với các thiết bị ngoại vi hoặc bộ nhớ chậm

+ HLDA [I]: tín hiệu báo chấp nhận yêu cầu treo từ CPU

+ DRQ0-DRQ3 [I]: các tín hiệu yêu cầu treo từ thiết bị ngoại vi Cực tính của các tín hiệu nμy có thể lập trình được Sau khi khởi động các tín hiệu nμy được định nghĩa lμ các tín hiệu kích hoạt mức cao (tích cực cao)

+ DB0-DB7 [I,O]: tín hiệu 2 chiều nối đến bus địa chỉ vμ bus dữ liệu của hệ thống, các tín hiệu nμy được dùng khi lập trình cho DMAC vμ khi DMAC hoạt động Khi DMAC hoạt động các chân nμy chứa 8 bit địa chỉ cao A8-A15 của mảng nhớ dữ

Trang 8

liệu cần chuyển Trong chế độ chuyển dữ liệu giữa các vùng của bộ nhớ tại các chân nμy có các dữ liệu được chuyển

+ IOR [I,O] vμ IOW [I,O]: lμ các chân tín hiệu 2 chiều dùng trong khi lập trình cho DMAC vμ trong các chu kỳ đọc vμ ghi

+ EOP [I,O]: lμ tín hiệu 2 chiều Khi lμ đầu vμo nó được dùng để bắt buộc DMAC kết thúc quá trình DMA Khi lμ đầu ra nó được dùng để báo cho bên ngoμi biết một kênh nμo đó đã chuyển xong số byte theo yêu cầu (Terminal count, TC), lúc nμy nó thường được dùng như một yêu cầu ngắt để CPU xử lý việc kết thúc quá trình DMA

+A0-A3 [I,O]: lμ các tín hiệu 2 chiều dùng để chọn các thanh ghi trong

8237A-5 khi lập trình vμ khi đọc (đầu vμo), hoặc để chứa 4 bit địa chỉ thấp nhất của địa chỉ mảng nhớ cần chuyển (đầu ra)

+A4-A7 [O]: các chân để chứa 4 bit địa chỉ phần cao trong byte địa chỉ thấp của địa chỉ mảng nhớ cần chuyển

+ HRQ [O]: tín hiệu yêu cầu treo đến CPU Tín hiệu nμy thường được đồng bộ với tín hiệu CLK của hệ thống rồi được đưa đến chân HOLD của 8088

+DACK0-DACK3 [O]: lμ các tín hiệu trả lời các yêu cầu DMA cho các kênh Các tín hiệu nμy có thể được lập trình để hoạt động theo mức thấp hoặc mức cao Sau khi khởi động, các tín hiệu nμy được định nghĩa lμ các xung tích cực thấp

+ AEN [O]: tín hiệu cho phép mạch chốt nối vμo DB0-DB7 chốt lấy địa chỉ của vùng nhớ cần trao đổi theo kiểu DMA Tín hiệu nμy cũng cho phép cấm các mạch đệm bus địa chỉ vμ dữ liệu hoặc mạch tạo tín hiệu điều khiển của CPU nối vμo các bus tương ứng khi DMAC hoạt động

+ ADSTB [O]: xung cho phép chốt các bit địa chỉ phần cao A8-A15 có mặt trên DB0-DB7

+ MEMR [O] vμ MEMW [O]: lμ các chân tín hiệu do DMAC tạo ra vμ dùng khi đọc/ghi bộ nhớ trong khi hoạt động

• Các thanh ghi bên trong của DMAC 8237A-5

Các thanh ghi bên trong DMAC 8237A-5 được CPU 8088 chọn để lμm việc nhờ các bit địa chỉ thấp A0-A3 Bảng 8.1 chỉ ra cách thức chọn ra các thanh ghi đó

Các thanh ghi trong bảng trên có thể được ghi, đọc hoặc chỉ ghi vμo vμ chúng chứa các thông tin khác nhau liên quan đến cách thức lμm việc vμ các thông số của mỗi kênh DMA

Trong bảng 8.2 vμ 8.3 liệt kê các thanh ghi trên theo các quan điểm ứng dụng khác nhau để dễ tra cứu địa chỉ cho chúng khi lập trình với DMAC 8237A-5

Trang 9

Bảng 8.1 Địa chỉ các thanh ghi bên trong của 8237A-5

Bit địa chỉ

A3A2A1A0

Địa chỉ Hex

Chọn chức năng R/W?

0 0 0 0 x0 Thanh ghi địa chỉ bộ nhớ kênh C0 R/W

0 0 0 1 x1 Thanh ghi đếm số từ kênh C0 R/W

0 0 1 0 x2 Thanh ghi địa chỉ bộ nhớ kênh C1 R/W

0 0 1 1 x3 Thanh ghi đếm số từ kênh C1 R/W

0 1 0 0 x4 Thanh ghi địa chỉ bộ nhớ kênh C2 R/W

0 1 0 1 x5 Thanh ghi đếm số từ kênh C2 R/W

0 1 1 0 x6 Thanh ghi địa chỉ bộ nhớ kênh C3 R/W

0 1 1 1 x7 Thanh ghi đếm số từ kênh C3 R/W

1 0 0 0 x8 Thanh ghi trạng thái/lệnh R/W

1 0 0 1 x9 Thanh ghi yêu cầu DMA W

1 0 1 0 xA Thanh ghi mặt nạ cho 1 kênh W

1 1 0 0 xC Xoá mạch lật First/Last W

1 1 0 1 xD Xoá toμn bộ các thanh ghi /đọc thanh ghi tạm W/R

1 1 1 0 xE Xoá thanh ghi mặt nạ cho 4 kênh W

1 1 1 1 xF Thanh ghi mặt nạ cho 4 kênh W

Ghi chú: x do cs quyết định

Bảng 8.2 Địa chỉ các thanh ghi trong để ghi/đọc địa chỉ vμ số từ cần chuyển

C0 0 1 0 0 0 0 0 địa chỉ cơ sở vμ địa chỉ hiện tại W

0 0 1 0 0 0 0 địa chỉ hiện tại R

0 1 0 0 0 0 1 bộ đếm cơ sở vμ bộ đếm hiện tại W

0 0 1 0 0 0 1 bộ đếm hiện tại R C1 0 1 0 0 0 1 0 địa chỉ cơ sở vμ địa chỉ hiện tại W

0 0 1 0 0 1 0 địa chỉ hiện tại R

0 1 0 0 0 1 1 bộ đếm cơ sở vμ bộ đếm hiện tại W

0 0 1 0 0 1 1 bộ đếm hiện tại R C2 0 1 0 0 1 0 0 địa chỉ cơ sở vμ địa chỉ hiện tại W

0 0 1 0 1 0 0 địa chỉ hiện tại R

0 1 0 0 1 0 1 bộ đếm cơ sở vμ bộ đếm hiện tại W

0 0 1 0 1 0 1 bộ đếm hiện tại R C3 0 1 0 0 1 1 0 địa chỉ cơ sở vμ địa chỉ hiện tại W

0 0 1 0 1 1 0 địa chỉ hiện tại R

0 1 0 0 1 1 1 bộ đếm cơ sở vμ bộ đếm hiện tại W

0 0 1 0 1 1 1 bộ đếm hiện tại R

Trang 10

Bảng 8.3 Địa chỉ các thanh ghi cho điều khiển vμ trạng thái

A3 A2 A1 A0 IOR IOW Thao tác

1 0 0 0 0 1 đọc thanh ghi trạng thái

1 0 0 0 1 0 ghi thanh ghi lệnh

1 0 0 1 0 1 không hợp lệ

1 0 0 1 1 0 ghi thanh ghi yêu cầu DMA

1 0 1 0 0 1 không hợp lệ

1 0 1 0 1 0 ghi thanh ghi mặt nạ cho 1 kênh

1 0 1 1 0 1 không hợp lệ

1 0 1 1 1 0 ghi thanh ghi chế độ

1 1 0 0 0 1 không hợp lệ

1 1 0 0 1 0 xoá mạch lật First/Last

1 1 0 1 0 1 đọc thanh ghi tạm

1 1 0 1 1 0 xoá toμn bộ các thanh ghi bên trong

1 1 1 0 0 1 không hợp lệ

1 1 1 0 1 0 xoá thanh ghi mặt nạ của 4 kênh

1 1 1 1 0 1 không hợp lệ

1 1 1 1 1 0 ghi thanh ghi mặt nạ cho 4 kênh

Ta sẽ giới thiệu qua các đặc điểm của một số trong các thanh ghi kể trên

+ Thanh ghi địa chỉ hiện thời: Đây lμ thanh ghi 16 bit dùng để chứa địa chỉ

của vùng nhớ phải chuyển Mỗi kênh có riêng thanh ghi nμy để chứa địa chỉ Khi 1 byte được truyền đi, các thanh ghi nμy tự động tăng hay giảm tuỳ theo trước đó nó

được lập trình như thế nμo

+ Thanh ghi số đếm hiện thời: Thanh ghi 16 bit nμy dùng để chứa số byte mμ

kênh phải truyền (nhiều nhất lμ 64KB) Mỗi kênh có thanh ghi số byte của mình Các thanh ghi nμy được ghi bằng số đếm nhỏ hơn 1 so với số byte thực chuyển

+ Thanh ghi địa chỉ cơ sở vμ thanh ghi số đếm cơ sở: các thanh ghi nμy được

dùng để chứa địa chỉ vμ số đếm cho mỗi kênh khi chế độ tự khởi đầu được sử dụng

Trong chế độ nμy khi một quá trình DMA kết thúc thì các thanh ghi địa chỉ hiện thời

vμ số đếm hiện thời được nạp lại giá trị cũ lấy từ thanh ghi địa chỉ cơ sở vμ thanh ghi

số đếm cơ sở Khi các thanh ghi địa chỉ hiện thời vμ số đếm hiện thời được lập trình thì các thanh ghi địa chỉ cơ sở vμ thanh ghi số đếm cơ sở cũng được lập trình bất kể

chế độ tự khởi đầu có được sử dụng hay không

+ Thanh ghi lệnh: Thanh ghi nμy dùng để lập trình cho DMAC Nó bị xoá khi

khởi động hoặc khi ta sử dụng lệnh xoá toμn bộ các thanh ghi

Dạng thức của thanh ghi lệnh được biểu diễn trên hình 8.6

Ngày đăng: 28/07/2014, 17:22

HÌNH ẢNH LIÊN QUAN

Hình 8.1.  Hệ vi xử lý với DMAC. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.1. Hệ vi xử lý với DMAC (Trang 2)
Hình 8.2. Quan hệ giữa HOLD vμ HLDA. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.2. Quan hệ giữa HOLD vμ HLDA (Trang 4)
Hình 8.3. Đồng bộ tín hiệu yêu cầu treo để đ−a đến CPU 8088 - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.3. Đồng bộ tín hiệu yêu cầu treo để đ−a đến CPU 8088 (Trang 5)
Hình 8.5. Sơ đồ khối cấu trúc của DMAC 8237A-5. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.5. Sơ đồ khối cấu trúc của DMAC 8237A-5 (Trang 6)
Hình 8.4. Một cách tạo các tín hiệu điều khiển mới cho hệ thống 8088 để lμm việc - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.4. Một cách tạo các tín hiệu điều khiển mới cho hệ thống 8088 để lμm việc (Trang 6)
Bảng 8.1. Địa chỉ các thanh ghi bên trong của 8237A-5. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Bảng 8.1. Địa chỉ các thanh ghi bên trong của 8237A-5 (Trang 9)
Hình 8.6. Dạng thức của thanh ghi lệnh. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.6. Dạng thức của thanh ghi lệnh (Trang 11)
Hình 8.7. Dạng thức của thanh ghi chế độ. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.7. Dạng thức của thanh ghi chế độ (Trang 12)
Hình 8.8. Dạng thức của thanh ghi yêu cầu. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.8. Dạng thức của thanh ghi yêu cầu (Trang 13)
Hình 8.9. Dạng thức của thanh ghi mặt nạ riêng cho mỗi kênh. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.9. Dạng thức của thanh ghi mặt nạ riêng cho mỗi kênh (Trang 13)
Hình 8.10. Dạng thức của thanh ghi mặt nạ tổng hợp. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.10. Dạng thức của thanh ghi mặt nạ tổng hợp (Trang 13)
Hình 8.11. Dạng thức của thanh ghi trạng thái. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.11. Dạng thức của thanh ghi trạng thái (Trang 14)
Hình 8.12. Sơ đồ phối ghép 8088 ở chế độ  min với  8237A-5. - Chương 8 - Vào/ra Dữ liệu bằng DMA pptx
Hình 8.12. Sơ đồ phối ghép 8088 ở chế độ min với 8237A-5 (Trang 16)

TỪ KHÓA LIÊN QUAN

w