AMD Am9511

Az AMD Am9511 Arithmetic Processing Unit (APU) egy AMD gyártmányú, korai 8 bites aritmetikai feldolgozóegység, amely az 1970-es évek második felétől volt a piacon. Az AMD Am9511 1977-ben mutatta be. A korabeli 8 bites mikroprocesszorok és mikrovezérlők szinte mindegyikéhez csatlakoztatható koprocesszorként, amelyekkel együttműködve megnöveli a numerikus feldolgozás teljesítményét.

Adatsíne 8 bites, szabványos 24 tűs tokozású csipként készült, +12 és +5 voltos tápfeszültséget igényel. Fejlett n-csatornás szilíciumkapus, monolitikus MOS LSI technológiával készült. Órajelfrekvenciája a modelltől függően 2, 3, és (az „A” verzióban) 4 MHz lehetett.

A csip perifériaként lett megvalósítva, tehát a központi processzor kiad egy feladatot a csipnek, ami később egy külön szignállal jelzi, hogy elkészült és az eredmény készen áll az átvitelre; ezáltal a központi processzorral párhuzamosan működik.

Két változata volt, az első az 1977-ben megjelent Am9511-es alapmodell, ennek maximális órajele 3 MHz lehetett, majd az 1979-ben bemutatott Am9511A jelű egység, amelyben a 4 MHz-es órajel mellett javítottak a szinkron/aszinkron átviteli rendszeren is. A sikeres koprocesszor-kialakítást az Intel is licencelte az AMD-től, és 8231 és 8231A jelöléssel gyártotta 1979-től.

Az eszköz 16 és 32 bites fixpontos (integer) és 32 bites (egyszeres pontosságú) lebegőpontos adatokon képes műveleteket végezni; ezen a három típuson a négy alapműveletet (összeadás, kivonás, szorzás, osztás) és az előjelváltást, ezen felül képes a lebegőpontos adattípuson a négyzetgyökvonás, szinusz, koszinusz, tangens, ezek inverzei, természetes és tízes alapú logaritmus, exponenciális (ex) függvények és a hatványozás (lebegőpontos alappal és kitevővel) számítására. Rendelkezik adatkonverziós utasításokkal, valamint DMA és programozott I/O adatátviteli lehetőségekkel is.

Az eszközt egy mikroprogramozott vezérőegység irányítja, amely a 8 bites kétirányú adatsínnel, a sínvezérlő és interfész vezérlővonalakkal csatlakozik a fő processzorhoz. Belsőleg az operandusokat egy 8 elemű veremben tárolja, a verem rekeszeinek mérete 16 bites, tehát egy rekesz egy egyszeres pontosságú fixpontos adatot tárol. A 32 bites adatok két rekeszt foglalnak el, tehát a veremben egyszerre pl. 4 lebegőpontos szám lehet. A számításokhoz az eszköz kívülről nem elérhető munkaregisztereket és állapotregisztert is felhasznál. ALU-ja és belső adatsíne 16 bites. A verem legfelső két eleme akkumulátorként szolgál a műveletek eredményének számára, az adattípustól függően.

Utasítások

Az eszköz minden utasítása 8 bites. Az utasításokban 5 bit (0-tól 4-ig) kódolja a műveletet, 2 bit jelzi a művelet adattípusát (5. bit: egész vagy lebegőpontos, 6. bit: egyszeres vagy kétszeres pontosság), a legmagasabb 7-ik bit pedig azt jelzi, hogy a parancs végrehajtása után ki kell-e adni szervizkérelmet, azaz kell-e jelezni a vezérlő processzornak.

Az Am9511 utasításai
Utasításkód Mnemonik Leírás
 7 6 5 4 3 2 1 0. bitek
Fixpontos 16 bites
  sr 1 1 0 1 1 0 0   SADD TOS hozzáadása NOS-hoz, eredmény a NOS-ba, pop stack.
  sr 1 1 0 1 1 0 1   SSUB TOS kivonása NOS-ból, eredmény a NOS-ba, pop stack.
  sr 1 1 0 1 1 1 0   SMUL NOS szorzása TOS-val. Eredmény alsó fele a NOS-ba, pop stack.
  sr 1 1 1 0 1 1 0   SMUU NOS szorzása TOS-val. Eredmény felső fele a NOS-ba, pop stack.
  sr 1 1 0 1 1 1 1   SDIV NOS osztása TOS-val, eredmény a NOS-ba, pop stack.
Fixpontos 32 bites
  sr 0 1 0 1 1 0 0   DADD TOS hozzáadása NOS-hoz, eredmény a NOS-ba, pop stack.
  sr 0 1 0 1 1 0 1   DSUB TOS kivonása NOS-ból, eredmény a NOS-ba, pop stack.
  sr 0 1 0 1 1 1 0   DMUL NOS szorzása TOS-val. Eredmény alsó fele a NOS-ba, pop stack.
  sr 0 1 1 0 1 1 0   DMUU NOS szorzása TOS-val. Eredmény felső fele a NOS-ba, pop stack.
  sr 0 1 0 1 1 1 1   DDIV NOS osztása TOS-val, eredmény a NOS-ba, pop stack.
Lebegőpontos 32 bites
  sr 0 0 1 0 0 0 0   FADD TOS hozzáadása NOS-hoz, eredmény a NOS-ba, pop stack.
  sr 0 0 1 0 0 0 1   FSUB TOS kivonása NOS-ból, eredmény a NOS-ba, pop stack.
  sr 0 0 1 0 0 1 0   FMUL NOS szorzása TOS-val, eredmény a NOS-ba, pop stack.
  sr 0 0 1 0 0 1 1   FDIV NOS osztása TOS-val, eredmény a NOS-ba, pop stack.
Származtatott lebegőpontos funkciók
  sr 0 0 0 0 0 0 1   SQRTTOS négyzetgyöke, eredmény a TOS-ba.
  sr 0 0 0 0 0 1 0   SIN TOS szinusza, eredmény a TOS-ba.
  sr 0 0 0 0 0 1 1   COS TOS koszinusza, eredmény a TOS-ba.
  sr 0 0 0 0 1 0 0   TAN TOS tangense, eredmény a TOS-ba.
  sr 0 0 0 0 1 0 1   ASINTOS inverz szinusza, eredmény a TOS-ba.
  sr 0 0 0 0 1 1 0   ACOSTOS inverz koszinusza, eredmény a TOS-ba.
  sr 0 0 0 0 1 1 1   ATANTOS inverz tangense, eredmény a TOS-ba.
  sr 0 0 0 1 0 0 0   LOG TOS 10-es alapú logaritmusa, eredmény a TOS-ba.
  sr 0 0 0 1 0 0 1   LN TOS természetes (e alapú) logaritmusa, eredmény a TOS-ba.
  sr 0 0 0 1 0 1 0   EXP Exponenciális függvény (ex) a TOS-ból, eredmény a TOS-ba.
  sr 0 0 0 1 0 1 1   PWR NOS a TOS hatványon, eredmény a NOS-ba, pop stack.
Adatkezelő utasítások
  sr 0 0 0 0 0 0 0   NOP Nincs művelet
  sr 0 0 1 1 1 1 1   FIXS TOS konverziója lebegőpontosról 16 bites fixpontos formátumra
  sr 0 0 1 1 1 1 0   FIXD TOS konverziója lebegőpontosról 32 bites fixpontos formátumra
  sr 0 0 1 1 1 0 1   FLTS TOS konverziója 16 bites fixpontos formátumról lebegőpontosra
  sr 0 0 1 1 1 0 0   FLTD TOS konverziója 32 bites fixpontos formátumról lebegőpontosra
  sr 1 1 1 0 1 0 0   CHSS TOS-ban lévő 16 bites fixpontos operandus előjelének váltása
  sr 0 1 1 0 1 0 0   CHSD TOS-ban lévő 32 bites fixpontos operandus előjelének váltása
  sr 0 0 1 0 1 0 1   CHSF TOS-ban lévő lebegőpontos operandus előjelének váltása
  sr 1 1 1 0 1 1 1   PTOS Push a TOS-ban levő 16 bites fixpontos értéket a NOS-ba (másolás)
  sr 0 1 1 0 1 1 1   PTOD Push a TOS-ban levő 32 bites fixpontos értéket a NOS-ba (másolás)
  sr 0 0 1 0 1 1 1   PTOF Push a TOS-ban levő lebegőpontos értéket a NOS-ba (másolás)
  sr 1 1 1 1 0 0 0   POPS Pop a TOS-ban levő 16 bites fixpontos értéket, a NOS lesz az új TOS
  sr 0 1 1 1 0 0 0   POPD Pop a TOS-ban levő 32 bites fixpontos értéket, a NOS lesz az új TOS
  sr 0 0 1 1 0 0 0   POPF Pop a TOS-ban levő lebegőpontos értéket, a NOS lesz az új TOS
  sr 1 1 1 1 0 0 1   XCHS Cserélje fel a TOS-ban és a NOS-ban levő 16 bites fixpontos értékeket
  sr 0 1 1 1 0 0 1   XCHD Cserélje fel a TOS-ban és a NOS-ban levő 32 bites fixpontos értékeket
  sr 0 0 1 1 0 0 1   XCHF Cserélje fel a TOS-ban és a NOS-ban levő lebegőpontos értékeket
  sr 0 0 1 1 0 1 0   PUPI Lebegőpontos „” értéke a TOS-ba, push művelet.

Ahol:

Forrás:

Jegyzetek

  1. 1 2 3 4 "AM9511 Arithmetic Processing Unit / Advanced Micro Devices / Advanced MOS/LSI" (pdf) (angol nyelven). AMD. 1977. 1–12. o. Hozzáférés: 2014. {{cite web}}: Check date values in: |accessdate= (súgó)
  2. 1 2 "Arithmetic Processors: Then and Now" (angol nyelven). CPU Shack. 2010-09-23. Hozzáférés: 2014. It is best described as a scientific calculator on a chip. {{cite web}}: Check date values in: |accessdate= (súgó)

Fordítás

Ez a szócikk részben vagy egészben az AMD Am9511 című spanyol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Források

További információk

Kapcsolódó szócikkek