1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Kỹ thuật vi xử lý - Chương 4 potx

38 953 0

Đ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

Định dạng
Số trang 38
Dung lượng 884,95 KB

Nội dung

Chế độ MIN chân MN/MX cần được nối thẳng vào +5V mà không qua điện trở Khi 8088 ở chế độ Min, tất cả các tín hiệu điều khiển liên quan đến các thiết bị ngoại vi truyền thống và bộ nhớ gi

Trang 1

Chương 4 Ghép 8088 với bộ nhớ và tổ chức vào ra dữ liệu

1 Giới thiệu tín hiệu chân của 8088 và các mạch phụ trợ

Các chân này ở trạng thái trở kháng cao khi 8088 chấp nhận treo (Hold)

 A15-A8 [O]: Là các bit phần cao của bus địa chỉ Các chân này ở trạng thái trở kháng cao khi 8088 chấp nhạn treo

 A16/S3, S17/S4, A18/S5, A19/S6 [O]: Là các chân dồn kênh của địa chỉ phần cao của tín hiệu trạng thái (A: Address, S: Status)

Khi ALE=0: Tại các chân này là tín hiệu trạng thái: S6-S3

Khi ALE=1: Tại các chân này là tín hiệu địa chỉ

Các chân này ở trạng thái trở kháng cao khi 8088 chấp nhận treo

 RD [O]: Tín hiệu điều khiển đọc ("Xung cho phép đọc") Khi RD=0 thì bus dữ liệu sẵn sàng nhận dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi Chân RD ở trạng thái trở kháng cao khi 8088 chấp nhận treo

IO/M (S1) AD0 DT/R (S2) AD1

RD AD2

WR (LOCK) AD3 DEN (S0) AD4 SS0 AD5 READY AD6 HOLD (RQ, GT0) AD7 HLDA (RQ, GT1) A8 INTA (QS1) A9 ALE (QS0) A10 NMI A11 INTR A12 RESET A13 MN/MX A14 TEST A15 CLK A16/S3 Vcc A17/S4 GND A18/S5 GND A19/S6

8 đường dồn kênh của bus A/D phần thấp

8 đường dồn kênh của bus

A phần cao

4 đường dồn kênh của bus A/C phần cao

tín hiệu điều

khiển hệ thống

Trang 2

 READY [I]: Tín hiệu báo cho CPU biết tính trạng (trạng thái) sẵn sàng của thiết bị ngoại vi hoặc của bộ nhớ Khi READY=1  CPU thực hiện ghi/đọc mà không cần xen thêm các chu kỳ đợi Ngược lại khi TBNV hay bộ nhớ có tốc độ chậm  chúng có thể đưa ra tín hiệu READY=0 để báo cho CPU chờ Khi này CPU tự kéo dài thời gian thực hiện ghi/đọc bằng cách xen thêm các chu kỳ đợi

 INTR [I]: Đây là chân tiếp nhận tín hiệu yêu cầu ngắt che được Khi có yêu cầu ngắt tác động đến chân này mà cờ cho phép ngắt IF=1 thì CPU kết thúc lệnh

đang thi hành dở (kết thúc chu kỳ lệnh), sau đó nó đi vào chu kỳ chấp nhận ngắt

và đưa ra tí hiệu INTA=0 tại chân INTA (24)

 TEST [I]: Tín hiệu tại chân này được kiểm tra bằng lệnh WAIT Khi CPU thực hiện lệnh WAIT mà khi đó TEST=1 thì CPU sẽ chờ cho đến khi TEST=0 thì mới thực hiện lệnh tiếp theo

 NMI [I]: Tín hiệu yêu cầu ngắt không che được Tín hiệu này không bị khống chế bởi cờ IF và nó sẽ được CPU nhận biết tại dườn dương của xung yêu cầu ngắt Nhận được yêu cầu này CPU kết thúc lệnh đang làm dở, sau đó chuyển sang thực hiện chương trình con phục vụ ngắt INT2 (ISR: Interrupt Service Routine)

 RESET [I]: Tín hiệu Reset lại 8088 (Trong chừng mực nào đó có thể coi tín hiệu này là tín hiệu yêu cầu ngắt không che được) Khi tín hiệu RESET=1 và kéo dài ít nhất 4 chu kỳ đồng hồ (4 xung clock) thì 8088 bị buộc phải khởi động lại, nó xoá các thanh ghi: DS, ES, SS, IP và FR về 0 và bắt đầu thực hiệu chương trình tại địa chỉ CS:IP =FFFF:0000 (như khi khởi động, IF0 để cấm các ngắt, TF0 để 8088 không bị đặt trong chế độ chạy từng lệnh  chạy suốt)

 CLK [I]: Tín hiệu xung đồng hồ (xung nhịp) Xung nhịp có độ rỗng 77% và cung cấp nhịp làm việc cho CPU (và các mạch khác của hệ thống)

 Vcc [I]: Chân nguồn Nguồn cung cấp cho CPU là +5V±10%, 340mA

 GND [O]: 2 chân nguồn nối với 0V của nguồn nuôi

 MN/MX [I]: Chân điều khiển hoạt động của CPU theo chế độ Min/Max (8088 có thể làm việc ở 2 chế độ khác nhau nên có một số chân tín hiệu phụ thuộc vào chế

độ làm việc đó)

 Chế độ MIN (chân MN/MX cần được nối thẳng vào +5V mà không qua điện trở)

Khi 8088 ở chế độ Min, tất cả các tín hiệu điều khiển liên quan đến các thiết

bị ngoại vi truyền thống và bộ nhớ giống như trong hệ 8085, đều có sẵn bên trong

8088 cho nên việc phối ghép với các thiết bị ngoại vi và bộ nhớ sẽ rất dễ dàng Vì vậy có thể tận dụng được các phối ghép ngoại vi có sẵn  giảm giá thành hệ thống

 IO/M [O]: Tín hiệu này phân biệt tại một thời điểm cụ thể nào đó phần tử nào trong các thiết bị vào/ra (I/O) hoặc bộ nhớ (M: Memory) được chọn để trao đổi dữ liệu với CPU Trên Address bus lúc đó sẽ có các địa chỉ tương ứng thiết bị Chân này

ở trạng thái trở kháng cao khi CPU chấp nhận treo

 WR [O]: Xung cho phép (giống như RD) Khi CPU đưa ra tín hiệu WR=0 thì dữ liệu

đã ổn định và chúng sẽ được ghi vào bộ nhớ hoặc thiết bị vào/ra tại thời điểm chuyển mức WR=1 Chân WR sẽ ở trạng thái trở kháng cao khi 8088 chấp nhận treo

 INTA [O]: Tín hiệu điều khiển báo cho mạch bên ngoài biết CPU đã chấp nhận yêu cầu ngắt (INTR) Lúc này CPU đưa ra tín hiệu INTA=0 để báo cho TBNV biết

nó đang chờ mạch ngoài đưa lên Data bus số hiệu ngắt (kiểu ngắt)

 ALE [O]: Xung cho phép chốt địa chỉ (Address Latch Enable) Khi ALE=1 cso nghĩa trên bus dồn kênh A/D là địa chỉ của thiết bị ngoại vi hay bộ nhớ ALE

Trang 3

không bao giờ bị thả nổi (trạng thái trở kháng cao), khi CPU chấp nhận treo thì ALE=0

 DT/R [O]: Tín hiệu điều khiển các đệm bus 2 chiều của Data bus để chọn chiều vận chuyển dữ liệu trên bus D Chân này ở trạng thái trở kháng cao khi 8088 chấp nhạn treo

 DEN [O]: Tín hiệu báo cho bên ngoài biết khi này trên bus dồn kênh A/D có dữ liệu ổn định Chân này ở trạng thái trở kháng cao kho 8088 chấp nhận treo

 HOLD [I]: Tín hiệu yêu cầu treo CPU để mạch ngoài thực hiện trao đổi dữ liệu với

bộ nhớ bằng cách truy nhập trực tiếp bộ nhớ (DMA – Direct Memory Access) Khi HOLD=1, 8088 sẽ tự tách khỏi hệ thống bằng cách treo các bus A, D, C của nó (các bus ở trạng thái trở kháng cao) để bộ điều khiển DMA là DMAC (DMA Controler) có thể lấy đ−ợc quyền điều khiển hệ thống để thực hiện công việc trao

đổi dữ liệu

 HLDA [O]: Tín hiệu báo cho bên ngoài biết yêu cầu treo CPU đã đ−ợc CPU chấp nhận và CPU đã treo các bus A, D và một số tín hiệu điều khiển trên bus C

 SS0 [O]: Đây là tín hiệu trạng thái Tín hiệu này giống nh− S0 trong chế độ Max

và dùng kết hợp với IO/M, DT/R để giải mã các chu kỳ hoạt động của bus

Bảng quan hệ một số tín hiệu điều khiển

 Chế độ MAX (chân MN/MX cần đ−ợc nối thẳng vào 0V)

Khi 8088 làm việc ở chế độ Max, một số tín hiệu điều khiển cần đ−ợc tạo ra trên cơ sở các tín hiệu trạng thái nhờ dùng thêm ở bên ngoài một mạch điều khiển bus 8288 Chế độ Max đ−ợc sử dụng trong hệ thống có mặt bộ đồng xử lý toán học 8087

 S2, S1 và S0 [O]: Là các tín hiệu trạng thái dùng trong chế độ Max để ghép nối với mạch điều khiển bus 8288 Các tín hiệu này đ−ợc 8288 dùng để tạo ra các tín hiệu điểu khiển trong các chu kỳ hoạt động của bus Các tín hiệu điều khiển đó nh− trong bảng sau:

Trang 4

 RQ/GT0 và RQ/GT1 [O]: Là các tín hiệu yêu cầu dùng bus của các bộ vi xử lý khác trong hệ thống hoặc thông báo chấp nhận treo của CPU để cho phép các bộ

vi xử lý khác trong hệ thống dùng bus RQ/GT0 có các mức −u tiên cao hơn RQ/GT1

 LOCK [O]: Tín hiệu do CPU đ−a ra để cấm các bộ vi xử lý khác trong hệ thống dùng bus trong khi nó đang thi hành lệnh nào đó đặt sau tiếp đầu LOCK

 QS0 và QS1 [O]: Tín hiệu thông báo trạng thái khác nhau của đệm lệnh (hàng đợi lệnh) Trong các hệ vi xử lý có mặt bộ đồng xử lý toán học 8087 thì các tín hiệu này dùng để đồng bộ quá trình hoạt động của nó với 8088

Các mạch: 74LS373 chốt, 74LS244 khuếch đại đệm 1 chiều, 74LS245 khuếch

đại đệm 2 chiều

c Mạch tạo xung nhịp 8284

Dù cho 8088 làm việc ở chế độ Max hay chế

độ Min thì nó vẫn luôn cần xung nhịp (xung clock)

từ mạch tạo xung nhịp 8284 Mạch tạo xung clock

ngoài việc cung cấp xung clock cho 8088, nó còn

cung cấp xung nhịp có tần số thích hợp cho toàn hệ

và nó còn đồng bộ tín hiệu RESET và tín hiệu

READY của CPU

C EFI

FC OSC

CSYN PCLK AEN1 RDY1 READ

Y RDY2 AEN2

Hình vẽ:Mạch 8284

Trang 5

Hình vẽ: Lược đồ máy IBM PC/XT

 ASYNC (Ready Synchronisation Setect) [I]: Chọn đồng bộ hai tầng hoặc đồng bộ một tầng cho tín hiệu RDY1, RDY2 Trong chế độ đồng bộ một tầng (ASYNC = 1) tín hiệu RDY có ảnh hưởng tới các tín hiệu READY tới tận sườn âm của xung

đồng hồ tiếp theo Còn trong chế độ đồng bộ hai tầng (ASYNC = 0), tín hiệu RDY chỉ có ảnh hưởng đến tín hiệu READY khi có sườn xuống (sườn âm) của xung

A15 A14 A13 A12 A11 A10 A9 A8

CPU 8088

ALE

A/D7 A/D6 A/D5 A/D4 A/D3

‘LS244

G OC

oc1 oc2

Address Bus

Data Bus

Trang 6

 X1, X2 (Crystal) [I]: Nối với 2 chân của thạch anh với tần số fx Thạch anh này là một bộ phận của mạch dao động bên trong 8284 có nhiệm vụ tạo xung chuẩn làm tín hiệu đồng bộ cho toàn bộ hệ thống

 F/C (Frequency/Crystal) [I]: Dùng để chọn nguồn tín hiệu chuẩn cho 8284 Khi chân này ở mức cao thì xung đồng hồ bên ngoài sẽ đ−ợc dùng làm xung nhịp cho

8284, ng−ợc lai thì xung đồng hồ của mạch dao động bên trong sẽ đ−ợc chọn làm xung nhịp

 EFI (External Frequency Input) [I]: Lối vào cho xung từ bộ dao động ngoài

 CLK [O]: Xung nhịp, fclk = fx/3, với độ rỗng 77% nối đến chân CLK của 8088

 PCLK (Peripheral Clock) [O]: Xung nhip fpclk = fx/6, với độ rỗng 50% dành cho thiét bị ngoại vi

 OSC (OSC Input) [O]: Xung nhịp có tần số fx đã đ−ợc khuếch đại

 RES (Reset Input) [I]: Chân khởi động, nối với mạch RC để 8284 có thể tự khởi

động khi bật nguồn

 RESET (Reset Output) [O]: Nối vào Reset của 8088, là tín hiệu khởi động lại (Reset) cho toàn hệ thống

 CSYNC (Clock Synchronisation) [O]: Lối vào cho xung đồng bộ chung khi trong

hệ thống có các 8284 dùng dao động ngoài tai chân EFI Khi dùng mạch dao

động trong thì phải nối đất chân này

d Mạch điều khiển bus 8288

Vi mạch 8288 là mạch điều khiển bus, nó

nhận một số tín hiệu điều khiển từ CPU (8088) và

cung cấp tất cả các tín hiệu điều khiển cần thiết

cho hệ vi xử lý khi CPU 8088 làm việc ở chế độ

MAX

Trong đó có một số tín hiệu mang tên

AEN: Address ENable

CEN: Command ENable

IOB: Input/Output Bus mode

MRDC: Memory ReaD Command

MWTC: Memory WriTe Command

AMWC: Advanced MWTC

IORC: Input/Output Read Command

AIOWC: Advanced IOWC

IOB CLK S1 DT/R ALE AEN MRDC AMWC MWTC

Hình vẽ:Mạch tạo xung nhịp 8288

Trang 7

DEN: Data Enable MCE/PDEN: Master Cascade Enable/Peripheral Data Enable Các tín hiệu của 8288 gồm:

 S2, S1, S0 [I] (Status): Là tín hiệu trạng thái lấy trực tiếp từ CPU Tuỳ theo các tín hiệu này mà 8288 sẽ tạo ra các tín hiệu điều khiển khác nhau tại các chân ra của

nó để điều khiển sự hoạt động của các thiết bị nối với CPU (Bảng tín hiệu trạng thái Si của 8088 ở chế độ MAX, bao gồm cả vào và ra của các tín hiệu)

 CLK [I] (Clock): Nối với xung đồng hồ của hệ thống (từ 8284) và dùng để đồng bộ các xung điều khiển đi ra từ mạch 8284

 ANE [I] (Address Enable): Đây là tín hiệu vào, sau khoảng thời gian trễ cỡ 150 ms thì sẽ kích hoạt các tín hiệu điều khiển đầu ra của 8288

 CEN [I] (Command Enable): Tín hiệu vào để cho phép đea ra tín hiệu DEN và các tín hiệu điều khiển khác của 8288

 IOB [I] (Input/Output bus mode): Tín hiệu để điều khiển mạch 8284 làm việc ở các chế độ bus khác nhau

o Khi IOB = 1 thì 8288 làm việc ở chế độ bus vào/ra

o Khi IOB = 0 thì 8288 làm việc ở chế độ bus hệ thống

(Như trong các máy IBM PC))

 MRDC [O] (Memory Read Command): Là tín hiệu điều khiển đoc bộ nhớ, nó sẽ kích hoạt bộ nhớ đưa dữ liệu ra bus

 MWTC, AMWC [O] (Memory Write Command – Advanced MWTC): Là các tín hiệu ghi bộ nhớ hoặc ghi bộ nhớ kéo dài Chúng giống như MEMW, nhưng AMWC hoạt động sớm lên một chút để tạo ra khả năng cho các bộ nhớ chậm có thêm thời gian

 IORC [O] (I/O Read Command): Là các tín hiệu điều khiển đọc thiết bị ngoại vi

Nó kích hoạt các thiết bị ngoại vi được chọn để các thiết bị này đưa dữ liệu ra bus

 IOWC, AIOWC [O] (I/O Write Command, Advanced IOWC): Là các tín hiệu điều khiển ghi thiết bị ngoại vi hoặc ghi thiết bi ngoại vi kéo dài Chúng là các tín hiệu giống như IOW, nhưng AIOWC hoạt động sớm lên một chút để cho các thiết bị ngoại vi chậm được kéo dài thêm thời gian ghi

 INTA [O] (Interrupt Acknowledge): Là đầu ra để thông báo cho thiết bị ngoại vi biết là CPU đã chấp nhận yêu cầu ngắt (yêu cầu của thiết bị ngoại vi) Và khi này thiết bị ngoại vi phải đưa số hiệu ngắt ra bus dữ liệu để CPU đọc lấy

 DT/R [O] (Data Transmit/Receive): Là tín hiệu để điều khiển chiều của dữ liệu trong hệ thống là vào hay ra so với CPU

o DT/R = 1: CPU đọc dữ liệu

o DT/R = 0: CPU ghi dữ liệu

Trong các máy IBM PC thì tín hiệu này được nối đến chân DIR của mạch đệm 2 chiều 74LS245 để điều khiển hướng đi của dữ liệu

 DEN [O] (Data Enable): Là tín hiệu để điều khiển dữ liệu trở thành bus cục bộ hay bus hệ thống Trong các máy IBM PC thì tín hiệu này được sử dụng cùng với tín hiệu của mạch điều khiển ngắt PIC 8259 để tạo ra tín hiệu điều khiển cực G của mạch đệm 2 chiều 74LS245

 MCE/PDEN [O] (Master Cascade Enable/Peripheral Data ENable): Đây là tín hiệu dùng để đặt chế độ làm việc cho mạch điều khiển ngắt PIC 8259 để nó làm việc ở chế độ chủ (Master)

 ALE [O] (Address Latch Enable): Là tín hiệu báo cho phép chốt địa chỉ có tại các chân dồn kênh A/D (A/D0 – A/D7), tín hiệu này thường nối với chân G của mạch chốt 74LS373 để điều khiển mạch mày chốt lấy địa chỉ

Trang 8

e Biều đồ thời gian của các lệnh đọc/ghi

Chu kỳ bus là một chu kỳ vận chuyển dữ liệu hoàn thành, điều này còn phụ thuộc vào số lượng các tín hiệu điều khiển (của CPU điều khiển hay DMAC, ) Một chu kỳ bus thường tốn khoảng 4 chu kỳ xung clock Cụ thể những hiện tượng xảy ra trong một chu kỳ bus (đã được đơn giản hoá) như sau:

 T1: Trong chu kỳ này tín hiệu địa chỉ của bộ nhớ hay thiết bị ngoại vi được đưa ra các chân địa chỉ, các chân dồn kênh A/D, A/S Các tín hiệu điều khiển như ALE, DT/R, IO/M cũng được đưa ra để giúp cho việc chốt địa chỉ này (20 bit địa chỉ)

 T2: Trong chu kỳ này, CPU 8088 đưa ra các tín hiệu điều khiển RD, hoặc WR, DEN (Data Enable) và các tín hiệu dữ liệu: D7 – D0 (nếu là lệnh ghi) Tín hiệu DEN thường dùng để mở các bộ đệm của bus dữ liệu (nếu các mạch đệm này có mặt trong hệ thống) Tại cuối chu kỳ T2 (và giữa mỗi chu kỳ Ti cả Tw nếu có), CPU lây mẫu tín hiệu READY để xử lý trong các chu kỳ tiếp theo khi nó phải làm việc với bộ nhớ hoặc thiết bị ngoại vi hoạt động chậm

 T3: Trong chu kỳ T3, CPU dành thời gian cho bộ nhớ hay thiết bị ngoại vi truy nhập dữ liệu Nếu là chu kỳ đọc dữ liệu thì tại cuối T3, CPU sẽ lấy mẫu tín hiệu của bus dữ liệu Nếu tại cuối chu kỳ T2 (hoặc giữa mỗi chu kỳ Ti của Tw) mà Cpu phát hiện ra tín hiệu READY = 0 (do bộ nhớ hoặc thiết bị ngoại vi đưa đên) thf CPU tự xen vào sau T3 một vai chu kỳ T để tạo chu kỳ đợik Tw (Tw (wait) = n*T) nhằm kéo dài thời gian thực hiện lệnh, tạo điều kiện cho bộ nhớ hoặc thiết bị ngoại vi chậm có đủ thời gian hoàn thành việc ghi/đọc dữ liệu

 T4: Trong chu kỳ này các tín hiệu điều khiển được đưa về trạng thái không tích cực để chuẩn bị cho chu kỳ bus mới Tín hiệu điều khiển WR trong khi chuyển trạng thái từ 0  1 sẽ kích hoạt việc ghi dữ liệu vào bộ nhớ hay thiết bị ngoại vi

Hình vẽ: Các tín hiệu của 8088 trong một chu kỳ ghi (đã được đơn giản hoá)

Chu kỳ bus

T3 T2

Tw (Chu kỳ đợi – Wait)

Trang 9

Hình vẽ: Các tín hiệu của 8088 trong một chu kỳ đọc (đã đ−ợc đơn giản hoá)

Ví dụ:

Xét với CPU 8088 làm việc ở tần số = 5MHz, mỗi Ti kéo dài 200 ns (nano giây) Theo hình vẽ chu kỳ đọc bộ nhớ: việc truy nhập bộ nhớ kéo dài trong khoảng từ T1 đến T3 mất khoảng 600 ns

Ttrễ địa chỉ = 110 ns, Tgiữ R = 30 ns (thời gian giữ của dữ liệu khi đọc)

Ttrễ đệm = 40 ns (trễ khi truyền dữ liệu qua các mạch đệm)

==> thời gian thâm nhập = 3*T - Ttrễ địa chỉ - Tgiữ R - Ttrễ đệm = 420 ns

==> Bộ nhớ nối với 8088/5MHz cần có thời gian thâm nhập – 420 ns thì hiệu quả (8088 không phải xen thêm các chu kỳ đợi)

Hơn nữa, với CPU 8088 thì TRD (độ rộng xung đọc) = 325 ns, là khoảng thời gian

đủ dài để cho bộ nhớ với thời gian thâm nhập 420 ns

Trong hình vẽ chu kỳ ghi dữ liệu: Cần có thời gian giữ dữ liệu tối thiểu Tgiữ W =

88 ns sau khi WR chuyển từ 0 > 1 Thực tế thời gian này xấp xỉ bằng 0 đối với các bộ nhớ thông dụng Độ dài xung ghi đối với 8088/5 MHz là TWR = 340 ns cũng phù hợp với các bộ nhớ có thời gian thâm nhập cỡ 420 ns

Trang 10

Hình vẽ: Mạch tạo 0 – 7 trạng thái đợi và biểu đồ thời gian

2 Phối ghép 8088 với bộ nhớ

a Bộ nhớ bán dẫn

Các vi mạch nhớ thường dùng với các hệ vi xử lý gồm:

 ROM (Read Only Memory – Bộ nhớ cố định): Bộ nhớ loại này thường có nội dung

được ghi săn từ khi sản xuất và chỉ có thể đọc ra nên chúng được gọi là bộ nhớ cố

định Loại này còn được gọi là ROM mặt nạ vì thông tin trong ROM được ghi thông qua một mặt nạ Khi mất nguồn nuôi cung cấp cho vi mạch thì thông tin vẫn còn (nội dung trong RM không bị mất đi)

PROM (Programmable ROM): Loại này ra ROM trắng (chưa ghi thôngo tin) sau khi sản xuất Người sử dụng có thể ghi thông tin vào ROM theo ý mình một lần duy nhất bằng máy nạp ROM (máy ghi ROM chuyên dụng)

EPROM (Erasable ROM): Loại ROM này có thể ghi (–lập trình–) bằng xung

điện và xoá bằng tia cực tím (UV – Untra Violete), từ một máy nạp ROM

RDY1 AEN1 RDY2

CLK READY

QA QB QC QD DE QF QG GH CLK

1T 3T 4T 5T 6T 7T 8T

READY CLK

8088

RD

WR INTA READY

Trang 11

EEPROM (Electric EPROM): Giống như EPROM, nhưng việc ghi/xoá ROM có thể thực hiện ngay trong mạch làm việc mà không đòi hỏi phải thông qua máy nạp ROM

 RAM (Random Access Memory – Bộ nhớ ghi/đọc): Đặc trưng của loại bộ nhớ này

là thông tin sẽ bị mất đi khi mất nguồn nuôi cấp cho vi mạch

SRAM (Static RAM – RAM tĩnh): Mỗi phần tử nhớ của loại này được cấu tạo từ mạch lật (flip – flop) nên có đặc điểm là tác động nhanh, thông tin ổn định Kèm theo đó là tốn nhiều transistor cho một đơn vị nhớ nên đắt tiền Chúng thường

được dùng vào những thành phần nhớ quan trọng như thanh ghi, cache, DRAM (Dynamic RAM): Mỗi phần tử nhớ của loại này được cấu tạo từ một tụ

điện nhỏ, được chế tạo bằng công nghệ PMOS Loại này có đặc điểm là tác

động chậm, thông tin không ổn định vì có sự dò điện tích giữa 2 bản tụ (1: tụ

được tích điện, 0: tụ không được tích điện) nên cần các mạch phụ trợ để bù lại lượng điện tích bị dò – gọi là các mạch làm tươi Loại này rẻ hơn SRAM và có thể sản xuất vi mạch nhớ với dụng lượng lớn

Một bộ nhớ (hay một modul nhớ nói chung) được cấu tạo (tạo nên) từ nhiều vi mạch nhớ ghép lại Mỗi vi mạch nhớ thường có cấu tạo như sau:

WR [I] (WRite): Tín hiệu

điều khiển ghi, với ROM

thường là WE: Write Enale

RD [I] (ReaD): Tín hiệu

điều khiển đọc, với ROM

thường là OE: Output Enale

CS [I] (Chip Select): Tín

hiệu chọn chip, với ROM thường là CE: Chip Enale

 Nhóm tín hiệu địa chỉ (Am-1 – A0): Dùng để chọn ra ô nhớ cụ thể được ghi/đọc Các

ô nhớ có độ dài khác nhau tuỳ từng loại vi mạch nhớ, từng nhà sản xuất: 1, 4, 8, bit Số lượng các đường dây địa chỉ (m) xác định dung lượng của vi mạch nhớ Dung lượng = 2m (ô nhớ)

Nếu m = 10 thì dung lượng là: 210 = 1 Kilo ô nhớ (kilo = 1024)

Nếu m = 20 thì dung lượng là: 220 = 1 Mega ô nhớ (kilo = 1024*1024 = 1048576)

 Nhóm tín hiệu dữ liệu (Dn-1 – D0): Các đường tín hiệu này là đầu ra đối với vi mạch ROM và là vào/ra đối với vi mạch RAM, cũng có thể đặt riêng nhóm đường vào và

ra của các tín hiệu này, khi nối vào bus dữ liệu: là nối chung vì các mạch nhớ thường có đầu ra đữ liệu 3 trạng thái Số đường dữ liệu (n) xác định độ dài của ô nhớ (ngăn nhớ – từ nhớ) Thường ghi rõ 1Kx8 hoặc 16Kx4 hoặc 1Kx1

 Tín hiệu chọn vi mạch: Người ta thường dùng ký hiệu CS (Chip Select) cho các vi mạch RAM và CE (Chip Enable) cho các vi mạch ROM Tín hiệu này dùng để chọn

ra (cho phép) vi mạch nhớ nào trong bộ nhớ làm việc thì mới tiến hành ghi/đọc ô

A0 D0 A1 D1

Trang 12

nhớ của vi mạch đó Tín hiệu này thường được nối với đầu ra của mạch giải mã địa chỉ Khi một số vi mạch nhớ có tín hiệu này ở trạng thái không tích cực thì bus dữ liệu của nó (Am-1 – A0) bị treo (trạng thái trở kháng cao)

 Nhóm tín hiệu điều khiển: Các tín hiệu điều khiển đọc RD và WR (OE và WE đối với ROM) luôn ngược pha nhau để cho phép dữ liệu từ bus dữ liệu được đi vào bi mạch hoặc ngược lại từ vi mạch nhớ ra bus dữ liệu Cũng có những RAM chỉ có 1

đường tín hiệu điều khiển cho cả ghi và đọc: R/W Khi này: R/W = 1: đọc, R/W = 1: ghi

Một đặc trưng quan trọng của vi mạch nhớ là thời gian thâm nhập tac (taccess)

Có thể định nghĩa rằng thời gian thâm nhập của một vi mạch nhớ là khoảng thời gian

kể từ khi có (xung) địa chỉ trên bus địa chỉ cho đến khi dữ liệu ra ổn định trên bus dữ liệu Thông số này phụ thuộc vào công nghệ chế tạo vi mạch nhớ

Với công nghệ lưỡng cực, có thể sản xuất các vi mạch nhớ có tac = 10 – 30 ns Với công nghệ MOS, có thể sản xuất các vi mạch nhớ có tac lớn hơn, cỡ 150 ns hoặc hơn nữa

Với tac = 250 – 450 ns tùy từng loại cụ thể

Ví dụ: Xét vi mạch nhớ EPROM 2716 có tac = 450 ns Vậy để ghép với bộ vi xử lý

8088 – 5 MHz cần có thêm các chu kỳ đợi (Tw) Ngược lại mạch 2716-1 lại có tac =

OE (Output Enable): Cho phép đưa dữ liệu ra

CE/PGM: Chọn chip/điều khiển ghi

CE/PGM OE Vpp [V] Vcc [V] D7–D0

Duy trì 1 x +5 +5 HZ Ghi Xung ghi kéo dài 50 ns 1 +25 +5 Din Kiểm tra

ghi 0 0 +25 +5 Dout Cấm ghi 0 1 +25 +5 HZ

Trang 13

chức (bố trí) các chân giống nhau để dễ dàng thay thế cho nhau trong quá trình phát triển hệ thống

Trong thực tế đã tồn tại các mạch nhớ SRAM với dung lượng:

(Row Access) : Cho phép chốt địa chỉ hàng

(Column Access): Cho phép chốt địa chỉ cột

bên trong vi mạch

Các mạch nhớ DRAM thường được chế

tạo với độ dài 1 hoặc 4 bit trên một ngăn nhớ Thực tế đã có các mạch nhớ 1Mx1, 4Mx1, 16Mx1 và chúng được xây dựng thành các modul nhớ kiểu SIMM (Single Inline Memory Modul) hay SIP (Single Inline Package) dùng trong các máy 80268, 80386,

Trang 14

b Giải mã địa chỉ cho bộ nhớ

Mỗi vi mạch nhớ hay một modul nhớ khi ghép với bộ vi xử lý cần phải được bộ vi

xử lý tham chiếu tới một cách chính xác khi thực hiện các thao tác ghi/đọc Có nghĩa là mỗi –modul– nhớ cần được gán cho một vùng không gian riêng biệt cụ thể (trong không gian quản lý chung của bọ vi xử lý), có địa chỉ xác định Việc gán địa chỉ cụ thể cho modul nhớ được thực hiện nhờ một xung chọn chip từ mạch giải mã địa chỉ Việc phân chia không gian tổng thể của bộ vi xử lý thành các vùng khác nhau dành cho các mục đích khác nhau gọi là phân vùng bộ nhớ

Ví dụ:

Với 8088 vì có 20 bit địa chỉ (A19 – A0) nên không gian tổng thể dành cho bộ nhớ

là 220 = 210*210 = 1 MB (1 byte/ngăn nhớ) Trong không gian tổng thể đó:

1) Vùng không gian 1 KB đầu, kể từ địa chỉ thấp nhất: 00000h – là phải được dành cho RAM vì tại đây phải có chỗ dành cho bảng vector ngắt gồm 256 (ngắt)*4 (byte)= 1KB)

2) Vùng nhớ có địa chỉ FFFF0h thì nhất thiết phải được dành cho ROM hoặc EPROM – chứa chương trình khởi động hệ thống Vì sau khi bật nguồn, CS

sẽ mạng giá trị FFFF0h (là địa chỉ

khởi động của CPU)

Bộ giải mã địa chỉ để tạo ra xung chọn

chip thường có cấu tạo như hình vẽ bên:

Đầu vào bộ (mạch) giải mã là các tín

hiệu địa chỉ và các tín hiệu điều khiển khác

nữa (nếu cần thiết) Các tín hiệu địa chỉ gồm

các bit địa chỉ có quan hệ nhất định với các

tín hiệu chọn chip ở đầu ra Tín hiệu điều

khiển thường là tín hiệu IO/M dùng để phân

biệt đối tượng mà bộ vi xử lý chọn làm việc

là bộ nhớ hay thiết bị vào/ra (I/O device) Mạch giải mã là khâu gây ra việc trễ thời gian

từ bộ vi xử lý đên thiết bvị ngoại vi mà trong khi chọn mạch nhớ/thiết bị ngoại vi ta cần tính đến Tuỳ theo quy mô (yêu cầu) của mạch giải mã mà ở đầu ra ta có thể có nhiều tín hiệu chọn chip (CS)

Giải mã đầy đủ cho một modul nhớ yêu cầu ta phải đưa đến đầu vào của mạch giải mã các tín hiệu địa chỉ sao cho tín hiệu đầu ra của nó chỉ chọn riêng mạch nhớ đã

định trước Trong trường hợp này ta phải dùng tổ hợp đầy đủ cả các đầu và địa chỉ tương ứng để chọn mạch nhớ Nếu ta bỏ bớt đi một tín bit địa chỉ nào đó thì đó là việc giải mã thiếu cho modul nhớ, vì xung chọn chip ở đầu ra mạch giải mã ngoài việc chọn mạch nhớ ở vùng đã định sẽ có thể chọn ra các mạch nhớ ở vùng khác nữa Vậy, việc giải mã thiếu thì có thể tiết kiệm được linh kiện khi xây dựng mạch giải mã nhưng lại không đảm bảo tính đơn trị theo ý nghĩa của việc giải mã

Trong thực tế, thông thường khi thiết kế mạch giải mã địa chỉ cho modul nhớ người ta thường tính dôi ra một chút để dự phòng sự phát triển tăng thêm dung lượng của bộ nhớ mà vẫn có thể tận dụng (sử dụng) được mạch giải mã sẵn có

 Xây dựng mạch giải mã bằng các mạch NAND (các mạch logic đơn giản)

Bằng các gates logic kiểu NAND, ta có thể xây dựng được mạch giải mã địa chỉ

đơn giản với số lượng tín hiệu chọn chip ở đầu ra là hạn chế Ta phải đưa đến đầu vào

Address Decode Address

Control

CS0

CS1

CS n-1Hình vẽ: Sơ đồ khối giải mã địa chỉ cho

modul nhớ

Trang 15

của mạch cửa NAND nhiều lối vào một tổ hợp thích hợp của các bit địa chỉ để nhận

được ở đầu ra của nó tín hiệu chọn chip cho modul nhớ

Ví dụ: Cho modul nhớ SRAM có dung lượng 32 KB (32Kx8) Xây dựng mạch giải mã để ghép modul trên với 8088 tại địa chỉ 08000h

Chú ý: Một địa chỉ bắt đầu cho một modul nhớ cần đảm bảo sao cho có giá trị các bit địa chỉ đưa vào modul nhớ để chọn ra ô nhớ cần tham chiếu phải bằng 0, chúng sẽ ‘’chạy’’ lần lượt tới 1 để chọn hết đủ tất cả các ô nhớ

Giải:

Modul nhớ 32 KB cần có 15 bit địa chỉ để chọn các ô nhớ

Không gian địa chỉ của 8088 gồm 20 bit địa chỉ: A19 – A0

Nên phải sử dụng các bit địa chỉ thấp: A14 – A0 để đưa vào modul nhớ, còn lại 5 bit địa chỉ phần cao và các tín hiệu điều khiển IO/M sẽ đi vào mạch giải mã Vậy ta có sơ đồ như sau:

Triển khai địa chỉ của modul

Các tín hiệu điều khiển vào

mạch NAND nhiều đầu vào phải

đồng thời bằng 1 thì đầu ra CS = 0

Vậy ta có sơ đồ như bên:

Hoặc ta có thể sử dụng các mạch logic đơn

giản khác để xây dựng mạch giải mã sau cho có

nhiều đầu ra CS = 0 như sau (trang bên):

Kết luận: Để thực hiện mạch giải mã

kiểu này, có nhiều cách sắp xếp các phần tử

logic (gates) để đưa ra được tín hiệu CS = 0

ở đầu ra Tuy nhiên người thiết kế cần phân

tích hàm đầu vào và tín hiệu đầu ra và tối

giản các phần tử để sao cho số lượng các

gates logic sử dụng trong mạch giải mã là ít

nhất (tối ưu mạch giải mã) Ví dụ, mạch giải

mã trên có thể thay thế bằng mạch giải mã

bên:

Mạch này cũng thực hiện đúng yêu cầu

như mạch giải mã trên, tuy nhiên tốn nhiều

phần tử gates logic hơn nên chưa tốt

Giải thích: Trong mạch giải mã cho

modul nhớ này, xung chọn chip (CS) sẽ có

SRAM 32KB

CS

NAND

A15

CS A16

A17 A18 A19 IO/M

A15

CS

A16 A17 A18 A19 IO/M

NOT

AND

Trang 16

tác động (CS = 0 – tích cực thấp) khi ta truy xuất bộ nhớ (ghi/đọc) tại địa chỉ nằm trong phạm vi 08000h – 0FFFFh, 5 bit địa chỉ phần cao (A19 – A15) phối hợp cùng tín hiệu

điều khiển IO/M (= 0 để chỉ ra sẵn sàng truy xuất bộ nhớ) để tạo ra xung chọn chip cho modul nhớ Mỗi ô nhớ cụ thể trong 32 KB của modul nhớ sẽ do các bit thấp còn lại (A14 – A0) của bus địa chỉ chọn ra Để kiểm chứng nhanh điều này ta thấy bit địa chỉ A15 để chọn ra vùng nhớ 32 KB, bit A16 để chọn ra vùng nhớ 64 KB, các vùng nhớ này nằm rải rác nhau trong không gian nhớ 1 MB

 Xây dựng mạch giải mã bằng mạch giải mã chuyên dụng 74LS138

Khi ta muốn có nhiều đầu ta chọn chip (CS) ở đầu ra

mạch giải mã mà vẫn dùng các mạch logic đơn giản thì

thiết kế sẽ trở nên rất cồng kềnh do số lượng các gates

tăng lên Trong trường hợp đó người ta thường sử dụng

mạch giải mã chuyên dụng có sẵn Một trong các mạch

giải mã kiểu đó hay được sử dụng là 74LS138 Đây là

Trang 17

chọn ra các ô nhớ riêng trong đó, còn 4 đường địa chỉ sẽ được tổ hợp cùng tín hiệu

điều khiển IO/M để chọn cho vi mạch 74LS138 Sơ đồ như trên

Trong ví dụ này ta thấy bit địa chỉ A13 có thể chọn ra các vùng nhớ 8K (bằng dung lượng vi mạch) nằm rải rác trong không gian nhớ của 8088 Vì vậy ta có thể dùng

nó như đầu vào chọn A của 74LS138, cùng với các bit địa chỉ A14, A15 tại các chân B

và C ta sẽ chọn ta được 8 vùng nhớ liền nhau (64 KB = 8x8KB) Vấn đề còn lại định vị vùng 64 KB này vào địa chỉ B0000h của không gian nhớ 1 MB Điều này có thể thực hiện một cách dễ dàng bằng cách dùng tổ hợp 4 bit địa chỉ phần cao còn lại: A19 A16 = 1011 Thấy A18 = 0, đưa vào đầu vào cho phép G2A, tín hiệu IO/M ở mức thấp ==> đưa vào G2B, còn lại A16, A17, A19 = 1 ==> đưa qua mạch AND 3 đầu vào

để có đầu ra = 1 duy nhất gửi đến G1 của 74LS138

 Xây dựng mạch giải mã bằng PROM

Trong ví dụ trước ta thấy mạch giải mã chuyên dụng sẵn có 74LS138 có số lượng

đầu vào địa chỉ và đầu vào cho phép là hạn chế Nếu ta có số lượng đầu vào cho địa chỉ là lớn mà lại phải giải mã đầy đủ thì để xây dựng bộ giải mã hoàn chỉnh ta vẫn phải dùng thêm các gates logic phụ Đó chính là lý do để người ta thay thế các bộ giải mã kiểu này bằng các bộ giải mã bằng PROM hoặc PLA (Programmable Logic Array – mảng logic lập trình được), với ưu điểm là chúng có rất nhiều các bit đầu vào cho địa chỉ và vì vậy rất thích hợp trong các hệ vi xử lý có bộ vi xử lý tiên tiến – có không gian

địa chỉ rất lớn

Ta lấy lại ví dụ trong phần trước, có nghĩa là xây dựng mạch giải mã dùng PROM cho vùng nhớ 64 KB (8KBx8) Ta sử dụng loại PROM TPB28L42 với dung lượng 512 byte để làm bộ giải mã Ta có bảng mẫu các bit để ghi vào PROM TPB28L42 cho ví

dụ cụ thể này như sau:

A y0

B y1

C y2 y3 y4 G2A y5 G2B y6 G1 y7

SRAM 8Kx8

A13 A14 A15

A16

IO/M A17

Các chân chọn chip cho

7 vi mạch nhớ SRAM 8Kx8 còn lại

BE000-BFFFF A18

A12-A0

Hình vẽ: Mạch giải mã cho modul nhớ 64 KB dùng 74LS138

Trang 18

Các đầu vào Các đầu ra

Trong các máy vi tính cá nhân thương phẩm ngày nay, việc phân vùng và giải mã

điạ chỉ cho bộ nhớ đã được thực hiện hoàn chỉnh Việc nâng cấp, bổ xung các modul (DRAM) vào hệ thống cũng được các nhà sản xuất tính toán từ trước để tạo thuận lợi tối đa cho người sử dụng Ngày nay khi mở vỏ hộp máy tính (case), trên mainboard ta thường thấy 2-3 khe cắm DRAM có sẵn, cho phép ta bổ xung hoặc sử dụng bất kỳ khe

A1 O0 A2 O1 A3 O2 A4 O3 A5 O4 A6 O5 A7 O6 A8 O7

SRAM 8Kx8

A13 A14 A15 A16 A17

Các chân chọn chip cho

7 vi mạch nhớ SRAM 8Kx8 còn lại

BE000-BFFFF A12-A0

Hình vẽ: Mạch giải mã cho modul nhớ 64 KB dùng PROM

A18

Trang 19

cắm nào trong số đó vì trên mainboard đã có sẵn mạch giải mã cho các modul RAM cắm vào

Ngày đăng: 22/07/2014, 05:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w