Chip điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237

Một phần của tài liệu KĨ THUẬT GHÉP NỐI MÁY TÍNH (Trang 40)

DMAC 8237 cú thể thực hiện truyền dữ liệu theo 3 kiểu: kiểu dọc (từ bộ nhớ ra thiết bị ngoại vi), kiểu ghi (từ thiết bị ngoại vi đến bộ nhớ) và kiểu kiểm trạ

Khối Timing and Control (định thời và điều khiển): Tạo cỏc tớn hiệu định thời và điều khiển cho bus ngoài (external bus). Cỏc tớn hiệu này được đồng bộ với xung clock đưa vào DMAC (tần số xung clock tối đa là 5 MHz). Khối Priority encoder and rotating priority logic (mó hoỏ ưu tiờn và quay mức ưu tiờn):

DMAC 8237A cú 2 mụ hỡnh ưu tiờn: mụ hỡnh ưu tiờn cố định (fixed priority) và mụ hỡnh ưu tiờn quay (rotating priority). Trong mụ hỡnh ưu tiờn cốđịnh, kờnh 0 sẽ cú mức ưu tiờn cao nhất cũn kờnh 3 cú mức ưu tiờn thấp nhất. Cũn đối với mụ hỡnh ưu tiờn quay thỡ mức ưu tiờn khi khởi dộng giống như mụ hỡnh ưu tiờn cố định nhưng khi yờu cầu DMA tại một kờnh nào dú được phục vụ thỡ sẽ được đặt xuống mức ưu tiờn thấp nhất.

Khối Command Control (điều khiển lệnh):

Giải mó cỏc thanh ghi lệnh (xỏc định thanh ghi sẽđược truy xuất và loại hoạt động cần thực hiện).

Chương 3: Thủ tục trao đổi tin của mỏy vi tớnh

Cỏc thanh ghi:

DMAC 8237A cú tất cả 12 loại thanh ghi nội khỏc nhau:

Chức năng cỏc chõn của 8237A:

CLK (Input): tớn hiệu xung clock của mạch. Tớn hiệu này thường được lấy từ 8284 sau khi qua cổng đảọ

CS (Input): thường được nối với bộ giải mó địa chỉ.

RESET (Input): khởi dộng 8237A, được nối với ngừ RESET của 8284. Khi Reset thỡ thanh ghi mặt nạđược lập cũn cỏc phần sau bị xoỏ:

Thanh ghi lệnh

Thanh ghi trạng thỏi

Thanh ghi yờu cầu

Thanh ghi tạm

Flip-flop dầu/cuối (First/Last flip-flop)

READY (Input): nối với READY của CPU để tạo chu kỳ đợi khi truy xuất cỏc thiết bị ngoại vi hay bộ nhớ chậm.

HLDA (Hold Acknowledge) (Input): tớn hiệu chấp nhận yờu cầu treo từ CPU DRQ0 – DRQ3 (DMA Request) (Input): cỏc tớn hiệu yờu cầu treo từ thiết bị ngoại vi

DB0 – DB7 (Input, Output): nối đến bus địa chỉ và dữ liệu của CPU IOR , IOW (Input, Output): sử dụng trong cỏc chu kỳ dọc và ghi

EOP (End Of Process) (Input,Output): bắt buộc DMAC kết thỳc quỏ trỡnh DMA nếu là ngừ vào hay dựng để bỏo cho một kờnh biết là dữ liệu đó chuyển xong

(Terminal count – TC), thường dựng như yờu cầu ngắt để CPU kết thỳc quỏ trỡnh DMẠ

A0 – A3 (Input, Output): chọn cỏc thanh ghi trong 8237A khi lập trỡnh hay dựng để chứa 4 bit địa chỉ thấp.

A4 – A7 (Output): chứa 4 bit địa chỉ

HRQ (Hold Request) (Output): tớn hiệu yờu cầu treo đến CPU

DACK0 – DACK3 (DMA Acknowledge) (Output): tớn hiệu trả lời yờu cầu DMA cho cỏc kờnh.

AEN (Output): cho phộp lấy địa chỉ vựng nhớ cần trao đổi

ADSTB (Ađress Strobe) (Output): chốt cỏc bit địa chỉ cao A8 – A15 chứa trong cỏc chõn DB0 – DB7

MEMR , MEMW (Output): dựng để dọc / ghi bộ nhớ. Cỏc thanh ghi nội:

Cỏc thanh ghi nội trong DMAC 8237A được truy xuất nhờ cỏc bit địa chỉ thấp A0 – A3

Bit địa chỉ Địa (adsbygoogle = window.adsbygoogle || []).push({});

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

A3 A2 A1 A0

0 0 0 0 X0 Thanh ghi địa chỉ bộ nhớ kờnh 0 R/W 0 0 0 1 X1 Thanh ghi đếm từ kờnh 0 R/W 0 0 1 0 X2 Thanh ghi địa chỉ bộ nhớ kờnh 1 R/W 0 0 1 1 X3 Thanh ghi đếm từ kờnh 1 R/W 0 1 0 0 X4 Thanh ghi địa chỉ bộ nhớ kờnh 2 R/W 0 1 0 1 X5 Thanh ghi đếm từ kờnh 2 R/W 0 1 1 0 X6 Thanh ghi địa chỉ bộ nhớ kờnh 3 R/W 0 1 1 1 X7 Thanh ghi đếm từ kờnh 3 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 W 1 0 1 0 XA Thanh ghi mặt nạ cho một kờnh W 1 0 1 1 XB Thanh ghi chế độ W 1 1 0 0 XC Xoỏ flip-flop đầu/cuối 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ạ W 1 1 1 1 XF Thanh ghi mặt nạ W

Địa chỉ cỏc thanh ghi nội dựng ghi / đọc địa chỉ:

Kờnh /IOR /IOW A3 A2 A1 A0 Thanh ghi R/W?

0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành W R W R 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1

Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành W R W R 2 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1

Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành W R W R 3 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1

Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành

Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành

W R W R

Chương 3: Thủ tục trao đổi tin của mỏy vi tớnh

/IOR /IOW A3 A2 A1 A0 Thanh ghi

1 0 1 0 0 0 Ghi thanh ghi lệnh 0 1 1 0 0 0 Đọc thanh ghi trạng thỏi 1 0 1 0 0 1 Ghi thanh ghi yờu cầu 1 0 1 0 1 0 Ghi thanh ghi mặt nạ 1 0 1 0 1 1 Ghi thanh ghi chếđộ 1 0 1 1 0 0 Xoỏ flip-flop đầu/cuối 1 0 1 1 0 1 Xoỏ tất cả cỏc thanh ghi nội 0 1 1 1 0 1 1 0 1 1 1 0 Địa chỉ cơ sở và địa chỉ hiện hành 0 1 1 1 1 0 Địa chỉ hiện hành 1 0 1 1 1 1 Bộđếm cơ sở và bộđếm hiện hành 0 1 1 1 1 1 Bộđếm hiện hành

Mạch 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. 8237A-5 cú tốc độ truyền 1 MBps cho mỗi kờnh và 1 kờnh cú thể truyền 1 mảng cú độ dài 64 KB. Để cú thể sử dụng mạch DMAC 8237A, ta cần tạo tớn hiệu điều khiển như sau:

Tớn hiệu điều khiển cho hệ thống làm việc với DMAC 8237A

Tớn hiệu AEN từ 8237A dựng để cấm cỏc tớn hiệu điều khiển từ CPU khi DMAC đó nắm quyền điều khiển bus.

CHƯƠNG 4. GHẫP NI QUA RÃNH CM M RNG Mục tiờu:

Trỡnh bày cỏc vấn đề về ghộp nối mỏy tớnh với thiết bị ngoại vi thụng qua cỏc khe cắm (slot) của mỏy tớnh PC. Cấu trỳc, nguyờn lý và cỏch ghộp nối của cỏc khe cắm thụng dụng như ISA, PCỊ

Túm tắt chương:

- Đặt vấn đề - Bus PC

- Bus ISA (16 bit) - Bus PCI

Chương 4: Rónh cắm mở rộng

Đặt vấn đề

Khi bàn luận về cấu trỳc mỏy tớnh ta thường đề cập đến cỏc cấu trỳc bus, cỏc đường dẫn bus như bus dữ liệu, bus điều khiển , v.v. Cỏc rónh cắm mở rộng là một dạng thể hiện bằng phần cứng của bus trờn bản mạch chớnh, trờn đú cú thể cắm thờm cỏc card mở rộng để thay đổi hoặc nõng cấp cấu hỡnh của mỏy tớnh.

Sự ra đời của cỏc loại rónh cắm mở rộng gắn liền với sự phỏt triển của kỹ thuật mỏy tớnh. Từ trước đến nay đó cú đến 8 kiểu bus mở rộng được sử dụng cho mỏy tớnh cỏ nhõn. Việc phõn loại cỏc bus mở rộng dựa trờn số cỏc bit dữ liệu mà chỳng xử lý đồng thờị Đú là cỏc bus: (adsbygoogle = window.adsbygoogle || []).push({});

- Bus PC (Cũn gọi là ISA 8 bit) - Bus ISA (16 bit)

- Bus PC/MCIA (16 bit) - Bus VESA local (32bit) - Bus SCSI (16/ 32 bit) - Bus EISA (32 bit) - Bus MCA (32 bit) - Bus PCI (32/ 64 bit) - Bus AGP (32/ 64 bit)

Sơđồ chõn khe cắm ISA 8 bit Phớa mạch in Phớa linh kiện

GND B01 A01 /IOCHCK Reset B02 A02 D7 + 5V B03 A03 D6 IRQ2 B04 A04 D5 - 5V B05 A05 D4 DREQ2 B06 A06 D3 - 12V B07 A07 D2 Dự trữ B08 A08 D1 + 12V B09 A09 D0 GND B10 A10 /IOCHRDY

/MEMW B11 A11 AEN

/MEMR B12 A12 A19

/IOW B13 A13 A18

/IOR B14 A14 A17

/DACK3 B15 A15 A16

DERQ3 B16 A16 A15

/DACK1 B17 A17 A14

DREQ1 B18 A18 A13

/DACK0 B19 A19 A12

CLK B20 A20 A11

IRQ7 B21 A21 A10

IRQ6 B22 A22 A9 IRQ5 B23 A23 A8 IRQ4 B24 A24 A7 IRQ3 B25 A25 A6 /DACK2 B26 A26 A5 TC B27 A27 A4 ALE B28 A28 A3 + 5V B29 A29 A2 OSC B30 A30 A1 GND B31 A31 A0

4.1. Bus PC

Bus PC là loại bus xuất hiện trờn mỏy tớnh PC/XT đầu tiờn nờn được gọi luụn là bus PC. Loại bus này tận dụng kiến trỳc của bộ VXL Intel 8088, nờn cú một bus dữ liệu 8 bit và ngoài và bus địa chỉ 20 bit. Rónh cắm nối với bus PC cú 62 chõn cho phộp cắm vào một card mở rộng làm từ mạch in 2 mặt. Vỡ trờn bus này cú 8 bit dữ liệu được truyền đồng thời nờn bus PC cũn được gọi là bus PCI 8 bit

• Tốc độ truyền của bus PC được cốđịnh ở 4.77 MHz

Đối với bus ISA 8 bit ta cần quan tõm đến một sốđường tớn hiệu chớnh sau:

Tớn hiệu Hướng Mụ tả

A0 - A19 I/O 20 đường tớn hiệu địa chỉ dựng đểđịnh địa chỉ cho bộ nhớ và cỏc thiết bị ngoại vi

D0 - D7 I/O 8 đường tớn hiệu tạo thành BUS dữ liệu cho vi xử lý, bộ nhớ và cỏc thiết bị ngoại vi

Reset Out Sau khi bật mỏy tớnh hoặc sau khi khởi động lại, đường dẫn Reset sẽ kớch hoạt trong thời gian ngắn đểđưa card đó được cắm vào đến một trạng thỏi ban đầu xỏc định.

/IOW Out Input/Output/Write:

Tớn hiệu này sẽ kớch hoạt khi truy nhập ghi lờn một card mở rộng. Mức thấp chỉ ra rằng cỏc dữ liệu cú giỏ trịđang chờđể đưa ra ở bus dữ liệụ Cỏc dữ liệu được đún nhận bằng sườn trước

/IOR Out Input/Output/Read:

Mức thấp của đường dẫn địa chỉ này bỏo hiệu sự truy nhập đọc trờn một card mở rộng. Trong thời gian này cỏc dữ liệu cú giỏ trị cần phải sắp xếp để sau đú được đún nhận bằng sườn trước

AEN Out Ađress Enable

Đường dẫn điều khiển AEN dựng để phõn biệt chu trỡnh truy nhập DMA và chu trỡnh truy nhập bộ vi xử lý. ở mức cao DMA giỏm sỏt qua bus địa chỉ và bus dữ liệụ Đường dẫn cú hiệu lực ở mức thấp. Đường dẫn này cần phải được sử dụng cho quỏ trỡnh giải mó địa chỉ bởi card mở rộng. (adsbygoogle = window.adsbygoogle || []).push({});

4.2. Bus ISA (16 bit)

Do cỏch tổ chức rónh cắm như vậy nờn một card PC vẫn cú thể cắm vào một khe cắm của bus ISẠ Card ISA rất phổ biến bởi vỡ chỳng thể hiện tớnh năng ưu việt đối với hầu hết cỏc ứng dựng ghộp nốị Cỏc linh kiện được sử dụng trờn card đều rất rẻ, cho nờn trờn thực tế việc ghộp nối bằng cỏc card mở rộng ISA tỏ ra là cụng nghệ đó qua thử thỏch và đỏng tin cậỵ

Từ tờn gọi cho thấy : đõy là loại bus được kiến trỳc theo tiờu chuẩn cụng nghiệp (ISA: Industry standard architecture). Trong cỏc tài liệu gọi bus PC là bus ISA 8 bit thỡ loại bus này thường được phõn biệt rừ là ISA 16 bit. Cụng ty mỏy tớnh IBM đó phỏt triển bus ISA (kiến trỳc theo chuẩn cụng nghiệp) dựng cho mỏy tớnh AT (Advanced Technology) dựa trờn bộ vi xử lý 80286. Điểm mạnh rừ nột của bus này là cú thể cho

phộp cựng một lỳc xử lý hoặc trao đổi với 16 bit dữ liệụ Để bảo đảm tớnh tương thớch với bus PC, cỏc nhà thiết kếđó bổ xung rónh cắm thứ hai thẳng hàng với rónh cắm PC 8 Bit, trờn đú cú chứa 8 bit dữ liệu và 4 đường dẫn địa chỉ. Như vậy, bus ISA cú một bus dữ liệu 16 bit và chớnh vỡ lẽ đú đụi khi bus ISA cũn được gọi rừ là ISA 16 bit để phõn biệt với 8 bit. Ngoài ra bus ISA cũn cú một bus địa chỉ 24 bit, cho phộp nhiều nhất là 16 Mbyte bộ nhớ cú thểđịnh địa chỉ được và giống như bus PC nú sử dụng tốc độ đồng hồ cốđịnh, nhưng khỏc về giỏ trị, cụ thể là bằng 8,33MHz. Như vậy tốc độ truyền dữ liệu cực đại là 2 byte (16 bit) trong mỗi chu kỳ giữ nhịp, cho ra một lưu lượng cực đại là 16 MB/giõỵ Trong cỏc mỏy tớnh cú tần số giữ nhịp chạy nhanh hơn 8 MHz, bus ISA chạy chậm hơn những phần cũn lại của mỏy tớnh.Do cỏch tổ chức rónh cắm như trờn nờn một card PC vẫn cú thể cắm được vào trong rónh cắm của bus ISẠ Cỏc card ISA rất phổ biến bởi vỡ chỳng thể hiện tớnh năng ưu việt đối với hầu hết cỏc ứng dụng ghộp nốị Cỏc linh kiện được sử dụng trờn card đều rất rẻ, cho nờn trờn thực tế việc ghộp nối bằng card mở rộng ISA tỏ ra là cụng nghệđó qua thử thỏch và đỏng tin cậỵ

Những ứng dụng tiờu biểu cú thể kể là: Card vào/ra nối tiếp và song song, card nối mạng và card õm thanh. Cú cỏc tiếp điểm được bố trớ trờn hai mặt, được đỏnh số là A,B,C,D.

Cỏc đường địa chỉ:

Số đường địa chỉ trong cỏc mỏy tớnh là khỏc nhau, cỏc XT cú 20 đường địa chỉ,cỏc mỏy AT cú 24 đường địa chỉ từ A0 (A23 tuy nhiờn cỏc đường A20 (A23 dựng cho việc quản lý,nờn thực tế cỏc đường địa chỉ cũn lại là A0 ( A19

Cỏc đường từ A0 ( A19 đi ra từ mỏy tớnh hoạt động ở mức thế cao, cỏc đường này được dựng đểđịa chỉ hoỏ bộ nhớ hay thiết bị vào ra .A0 là cỏc bit giỏ trị nhỏ nhất (LSB) ,A19 cú giỏ trị cao nhất (MSB) cỏc đường này được điều khiển nhờ VXL trong chu trỡnh bus đọc và viết bộ nhớ hay cổng vào rạ Ngoài ra chỳng cũn được điều khiển nhờ logic xõm nhập trực tiếp vào bộ nhớ trong chu trỡnh DMẠ

Bộ vi xử lý qua việc sử dụng cỏc lệnh in và out cú thểđịa chỉ 64Kbyte địa chỉ cổng vào ra nhưng thiết kế PC khụng cho phộp sử dụng toàn bộ cỏc địa chỉ này vỡ cổng vào ra chiếm cỏc ụ nhớ từ 300h – 3FFh nờn chỉ cú 10 bit thấp nhất của đường địa chỉ là được sử dụng địa chỉ của thiết bị và địa chỉ cổng vào rạ Như vậy chỉ cỏc đường địa chỉ A0-A19 là được sử dụng cho việc giải mó địa chỉ cỏc thiết bị và địa chỉ cổng vào rạ

Bit 9 là một bit cú ý nghĩa đặc biệt:

-Khi bit này khụng tớch cực hệ chỉ cho phộp số liệu từ cỏc thiết bị ngoại vi vỡ cỏc thiết bị vào ra trong Mainboard trao đổi với nú khi bit 9 là khụng tớch cực chỳng chiếm địa chỉ từ 000h – 0FFh .

Khi 9 bit tớch cực là cỏc bit cho phộp số lỉệu được ghi đọc từ cỏc cổng vào ra của khe cắm chỳng chiếm cỏc địa chỉ 300h – 3FFh.

Điều này cú nghĩa là với cổng vào 1024 địa chỉ được chia làm 2 phần 512 địa chỉ dựng cho Mainboard và 512 địa chỉ dựng cho khe cắm.

Cỏc đường này để chuyển số liệu giữa VXL với cổng vào ra và bộ nhớ .Số lượng cỏc đường bus số liệu quyết định số bit cú thể truyền đồng thời đến hoặc đi từ bộ nhớ. Cỏc mỏy XT cú 8 đường số liệu D0 ( D7 cú nghĩa là cú thể truyền 1 bytẹ Mỏy AT cos 16 đường số liệu D0 ( D15 tức cú thể truyền đồng thời 2 bytẹ

Cỏc đường số liệu D0 ( D15 là cỏc đường 2 chiều cú thể hoạt động ở mức thế cao .D0 là (LSB), D15 là (MSB) khi VXL đưa ra chu trỡnh bus nú điều khiển bus tới địa chỉ của ụ nhớ hay cổng vào ra xỏc định, điều khiển hướng truyền nơi nhận số liệụ

Khi chu trỡnh ghi bắt đầu số liệu trờn bus là số liệu sẽđược ghi vào bộ nhớ hay cổng vào ra .Số liệu phải ổn định trước sườn tăng của tớn hiệu điều khiển IOW và MEMW . Sườn tăng của cỏc tớn hiệu này thường dựng để tạo nhịp cho số liệu trờn bus số liệu ghi

Một phần của tài liệu KĨ THUẬT GHÉP NỐI MÁY TÍNH (Trang 40)