Intel 8237 - Intel 8237

Intel 8237A-5, použitý na původní základní desce IBM PC .
Pinout

Intel 8237 je řadič DMA ( Direct Memory Access ), který je součástí rodiny mikroprocesorů MCS 85 . Umožňuje přenos dat mezi pamětí a I/O se sníženým zatížením hlavního procesoru systému tím, že během přenosu DMA poskytuje paměti řídicí signály a informace o adrese paměti.

8237 je čtyřkanálové zařízení, které lze rozšířit o libovolný počet vstupů kanálu DMA. 8237 je schopen přenášet DMA rychlostí až 1,6 megabajtu za sekundu. Každý kanál je schopen adresovat celou 64kbajtovou část paměti a může přenášet až 64k bytů s jediným programováním.

Jediný 8237 byl použit jako řadič DMA v původních počítačích IBM PC a IBM XT . IBM PC AT přidal další 8237 v konfiguraci Master-Slave, zvýšení počtu DMA kanálů ze čtyř na sedm. Později mohou mít osobní počítače kompatibilní s IBM čipové sady, které emulují funkce 8237 pro zpětnou kompatibilitu. Intel 8237 byl ve skutečnosti navržen AMD (nazvaný Am9517). Byla to součást dohody o křížových licencích, která umožnila AMD vyrábět procesory Intel, díky čemuž byl design k dispozici i pro Intel. Proto je na balíčku Intel vytištěno „(C) AMD 1980“.

Režimy

8237 pracuje ve čtyřech různých režimech, v závislosti na počtu přenesených bytů za cyklus a počtu použitých integrovaných obvodů:

  • Jeden - Jeden cyklus DMA, jeden cyklus CPU prokládaný, dokud čítač adres nedosáhne nuly.
  • Blokovat - přenos pokračuje, dokud počet slov nedosáhne nuly nebo dokud signál EOP nezačne být aktivní.
  • Poptávka - převody pokračují, dokud TC nebo EOP nezačne být aktivní nebo DRQ neaktivní. CPU není povoleno používat sběrnici, pokud není požadován žádný přenos.
  • Cascade - Slouží ke kaskádě dalších řadičů DMA. DREQ a DACK jsou spojeny s HRQ a HLDA z dalšího čipu za účelem vytvoření prioritního řetězce. Aktuální signály sběrnice jsou vykonávány kaskádovým čipem.

Lze provést přenos z paměti do paměti. To znamená, že data lze přenášet z jednoho paměťového zařízení do jiného paměťového zařízení. Registr aktuální adresy kanálu 0 je zdrojem pro přenos dat a kanál 1 a přenos končí, když se aktuální registr počtu slov stane 0. Kanál 0 se používá pro aktualizaci DRAM na kompatibilních počítačích IBM PC.

V režimu automatické inicializace jsou hodnoty adresy a počtu obnoveny po přijetí signálu konce procesu (EOP). K tomu dochází bez jakéhokoli zásahu procesoru. Slouží k opakování posledního přenosu.

Počet terminálů (TC) signalizuje konec přenosu na karty ISA. Na konci přenosu dojde k automatické inicializaci nakonfigurované k tomu.

Jediný režim

V jednom režimu je na jeden požadavek přenesen pouze jeden bajt. Při každém přenosu se čítací registr sníží a adresa se zvýší nebo sníží v závislosti na programování. Když registr počítání dosáhne nuly, signál TC počtu terminálů se odešle na kartu.

DREQ požadavku DMA musí být vyvolán kartou a držen aktivní, dokud není potvrzen DACK potvrzujícím DACK .

Režim blokování přenosu

Přenos je aktivován DREQ, který lze deaktivovat po potvrzení DACK . Přenos pokračuje, dokud není aktivován EOP procesu (interní nebo externí), který spustí počet terminálů TC na kartu. V tomto režimu lze naprogramovat automatickou inicializaci.

Režim převodu poptávky

Přenos je aktivován DREQ a potvrzen DACKem a pokračuje, dokud buď TC , externí EOP nebo DREQ neaktivní. Automatickou inicializaci může aktivovat pouze TC nebo externí EOP, pokud je naprogramováno.

Interní registry

Interní registry používané v 8237 pro přenos dat jsou následující:

  • Register základní adresy: K uložení počáteční adresy, odkud bude probíhat přenos dat
  • Základní registr počtu slov: K uložení počtu provedených přenosů
  • Register aktuální adresy: K uložení aktuální adresy, odkud se přenášejí data
  • Aktuální registr počtu slov: K uložení počtu zbývajících přenosů, které mají být provedeny
  • Dočasný registr adres: K uchování adresy dat během přenosu z paměti do paměti
  • Dočasný registr počtu slov: K uchování počtu přenosů, které se mají provést při přenosu z paměti do paměti
  • Registr režimů: 8bitový registr, který ukládá kanál, který má být použit, provozní režim, tj. Režim přenosu, a další parametry přenosu
  • Registr příkazů: 8bitový registr, který inicializuje kanál, který má být použit pro přenos dat
  • Register požadavků: 8bitový registr používaný k označení, který kanál požaduje přenos dat
  • Mask register: 8bitový registr používaný k maskování konkrétního kanálu před žádostí o službu DMA
  • Stavový registr: 8bitový registr používaný k označení, který kanál je aktuálně využíván službou DMA a některých dalších parametrů

Použití počítače IBM PC

Jako člen rodiny zařízení Intel MCS-85 je 8237 8bitové zařízení se 16bitovým adresováním. Nicméně, to je kompatibilní s 8086 / 88 mikroprocesory. Modely IBM PC a PC XT (typy strojů 5150 a 5160) mají procesor 8088 a architekturu 8bitové systémové sběrnice; druhé rozhraní je přímo s 8237, ale 8088 má 20bitovou adresovou sběrnici, takže vedle 8237 jsou přidány čtyři další 4bitové adresové západky, jedna pro každý kanál DMA, aby se rozšířily čítače adres. Protože jsou však tyto externí západky oddělené od čítačů adres 8237, nikdy se během operací DMA automaticky nezvyšují ani nesnižují, což znemožňuje provedení operace DMA přes hranici adresy 64 KiB. Pokusy o překročení hranice 64 KiB v přenosu DMA se obalí v rámci jednoho bloku paměti 64 KiB. (Například pokud by byl kanál DMA a přidružená západka adresy naprogramovány tak, aby přenášely 256 bajtů na vzestupné adresy začínající na adrese 0x3FF8C, namísto přenosu na adresy 0x3FF8C až 0x4008B by byla data přenesena na adresy 0x3FF8C až 0x3FFFF a poté na 0x30000 až 0x3008B.)

IBM PC AT (typ stroje 5170) a 100% kompatibilní používají procesor 80286 a 16bitovou architekturu systémové sběrnice. Kromě 8237 z modelů PC a XT je přidán druhý, kaskádovaný 8237, pro 16bitové přenosy DMA. To je možné, přestože 8237 je 8bitové zařízení, protože 8237 provádí přenosy mezi I/O portem a pamětí jako „fly-by“ přenosy, při kterých jsou data umístěna na sběrnici ze zdrojové paměti nebo I/ O port a současně načtené současně cílovým I/O portem nebo pamětí, aniž by je obsluhoval 8237. Pro tento způsob přenosu je šířka datové sběrnice v podstatě nepodstatná pro 8237 (pokud je připojen k datové sběrnici široké alespoň 8 bitů, pro programování registrů 8237). Druhý 8237 v počítači třídy AT poskytuje tři 16bitové kanály DMA (jeho kanály 1 až 3, pojmenované kanály 5 až 7 v počítači PC AT); jeho kanál 0 (pojmenovaný kanál 4 v PC AT) se používá v kaskádovém režimu k připojení 8237 pro 8bitový DMA jako „slave“ v kaskádovém uspořádání; 8237 poskytující 16bitové kanály je „master“. Aby mohl adresovat 16bitová slova, je připojen k adresové sběrnici takovým způsobem, že místo jednotlivých adres počítá sudé adresy (0, 2, 4, ...). Stejně jako první 8237 je rozšířen o čtyři registry rozšíření adresy. V počítači třídy AT je všech osm registrů augmentace adres široké 8 bitů, takže lze zadat úplné 24bitové adresy-velikost adresové sběrnice 80286. Přenosy DMA na žádném kanálu stále nemohou překročit hranici 64 KiB. (16bitová DMA je omezena na 32 768 16bitových slov, přestože kanál DMA může čítat 65536 adres; nejvýznamnější bit čítače adres ze 16bitového kanálu DMA je ignorován.) Protože paměť 8237- režim DMA do paměti funguje přenesením bajtu ze umístění zdrojové paměti do interního dočasného 8bitového registru v 8237 a poté z dočasného registru do umístění cílové paměti, tento režim nelze použít pro 16bitovou paměť- do paměti DMA, protože dočasný registr není dostatečně velký. Navíc 16bitová DMA paměti na paměť by vyžadovala použití kanálu 4, což je v rozporu s jejím použitím na kaskádě 8237, která zpracovává 8bitové kanály DMA. Na AT se však 8bitový kanál DMA 0 již nepoužívá pro aktualizaci DRAM, protože byl nahrazen specializovanou obnovovací logikou, takže by mělo být možné provádět 8bitové DMA z paměti do paměti pomocí kanálů 0 a 1 bez přerušení aktualizace DRAM.

Design 8237 založeného DMA v kompatibilních PC AT nebyl aktualizován s přechodem na 32bitové CPU a architektury 32bitové systémové sběrnice. V důsledku toho je na těchto strojích omezení, že řadiče 8237 DMA se svými rozšířenými registry „stránky“ doprovodné adresy mohou adresovat pouze 16 MiB paměti, podle původního návrhu orientovaného kolem CPU 80286, který sám má stejné omezení adresování. To znamená, že pro ostatní paměťové oblasti musí být data nejprve přenesena DMA z I/O zařízení do mezilehlé vyrovnávací paměti v prvních 16 MiB prostoru fyzických adres a poté přesunuta do konečné paměti CPU; nebo, v opačném směru, musí být přenesen z počáteční paměti do mezipaměti procesorem, než bude přenesen DMA z této vyrovnávací paměti do I/O zařízení. Tato technika se nazývá „nárazníkový nárazník“ . Obecně ztrácí veškerý celkový rychlostní přínos spojený s DMA, ale může být nezbytný, pokud vyžaduje přístup k periferii DMA buď z důvodu náročných požadavků na časování, nebo z důvodu nepružnosti hardwarového rozhraní.

V řadě počítačů PS/2 společnost IBM aktualizovala hardware DMA tak, aby podporoval 32bitová data a adresy v některých systémech s 80386 CPU, ale udělali to nahrazením 8237 novým designem řadiče DMA. Nový design obsahuje režim kompatibility 8237 pro sestupnou kompatibilitu s PC AT.

Integrace do čipových sad

Ačkoli se toto zařízení nemusí v moderních systémech osobních počítačů jevit jako samostatná součást, objevuje se v sadách čipů řadiče systému. Například PIIX integroval dva řadiče 8237 pro ISA sběrnici DMA.

Varianty

Modelové číslo Rychlost hodin Rychlost přenosu Cena (USD)
8237 3 MHz
8237-2 5 MHz 1,6 mps 20,00 $

Viz také

Reference

  1. ^ Mikroprocesory Intel Barry B Brey
  2. ^ N. MATHIVANAN (2007). PŘÍSTROJE NA PC: KONCEPTY A PRAXE . PHI Learning Pvt. Ltd. s. 227–229. ISBN 978-81-203-3076-4.
  3. ^ a b c d e f aluzina.org - Intel 8237/8237-2 Vysoký výkon. Datový list programovatelného řadiče DMA (.pdf)
  4. ^ a b c d books.google.com - Advanced Microprocesors And Peripherals , 2006 p312/313
  5. ^ pinouts.ru-ISA bus pinout and wiring , 2008-10-20
  6. ^ brokenthorn.com - Řada pro rozvoj operačních systémů
  7. ^ https://pdos.csail.mit.edu/6.828/2012/readings/hardware/8237A.pdf
  8. ^ http://pdf.datasheetcatalog.com/datasheet/Intel/mXvqwzr.pdf
  9. ^ Intel Corporation, „Komponenty mikropočítače: Nový řadič Intel 8237 DMA poskytuje 5 MHz DMA odpověď pro systémy založené na 8088 a 8085A-2“, Intel Preview, květen/červen 1979, str.

externí odkazy