FPS AP-120B - FPS AP-120B
The FPS AP-120B byl 38bitový, orientovaný na potrubí procesor pole vyrobeno Systémy s plovoucí desetinnou čárkou. Byl navržen pro připojení k hostitelskému počítači, jako je DEC PDP-11 jako rychlý drtič čísel. Přenos dat byl proveden pomocí přímý přístup do paměti.
Doba cyklu procesoru byla 167 nanosekund, což dalo rychlost 6 MHz. Vzhledem k tomu, že by mohl představovat dva výsledky s plovoucí desetinnou čárkou za cyklus, jeden od sčítače a druhý od multiplikátoru, kapacita 12 Megaflops byl nárokován pro procesor.
Architektura
Procesor byl navržen kolem konceptu několika paralelních procesorových jednotek pracujících v synchronizaci. Jediné 64bitové instrukční slovo bylo rozděleno do polí, z nichž každé instruovalo určitý modul pod kontrolu CPU. Moduly byly následující:
- 16bitová aritmetická a logická jednotka (ALU)
- 38bitová sčítačka s plovoucí desetinnou čárkou (FADD) (dvě fáze)
- 38bitový multiplikátor s pohyblivou řádovou čárkou (FMUL) (tři fáze)
- Dva registry Data Pad pro příjem dat z paměti.
Procesor měl přístup k jádru paměti s dvojitým prokládáním, ve které byly v jedné fyzické bance uloženy liché adresy a v druhé byly sudě očíslované adresy. To představovalo pokus o využití typického postupného načítání paměťových slov. Načítání postupně z jedné fyzické banky by mělo za následek latenci dvou cyklů instrukcí před načtením dat do cílové datové podložky. Prokládání umožnilo sekvenční přístup nastat bezprostředně po předchozím. Dokončení obou přístupů trvalo dva cykly, ale překrytí a duální cílové podložky maximalizovaly využití datového kanálu.
Aritmetické moduly s plovoucí desetinnou čárkou byly oba vícestupňové procesory, které byly poháněny explicitními pokyny. Ve dvoustupňovém sčítači instrukce assembleru, jako je FADD DX, DY, načte hodnoty z datových padů DX a DY do prvního stupně sčítače. K předložení výsledku na sčítací výstup bude zapotřebí další instrukce FADD. Tento druhý FADD může být figurína bez argumentů, nebo to může být další výpočet v pořadí. Tímto způsobem lze proud operací FADD provádět v potrubí, s novým výsledkem v každém cyklu instrukcí, i když každé přidání vyžaduje dva cykly.
Podobně multiplikátor, třístupňová jednotka, vyžadoval jeden FMUL DX, DY pro zahájení násobení, následovaný dalšími dvěma instrukcemi FMUL k dosažení výsledku. Pečlivé programování kanálu umožnilo produkci jednoho výsledku za cyklus, přičemž každý výpočet trval tři cykly samy o sobě.
Pro maximální efektivitu byly všechny výpočty programovány pomocí jazyka assembleru dodávaného s hardwarem. Podobný jazyk na vysoké úrovni Fortran byla poskytnuta pro koordinaci úkolů a řízení přenosu dat do az hostitelského počítače.
Vyhledávací tabulky
Za účelem podpory typických aplikací při zpracování signálu byl hardware dodán s předem vypočítanou vyhledávací tabulkou sinus a kosinus hodnoty. Sinusy a kosiny pro úhly od 0 do π / 2 radiány byly uloženy na alternativní adresy, aby se využilo výše popsaného prokládání. Hodnoty pro všechny ostatní úhly lze vypočítat pomocí jedné nebo druhé z hodnot z vyhledávací tabulky, popřípadě negací pomocí známých pravidel.
Typický styl programování
To bylo neobvyklé, protože to bylo poháněno architekturou synchronního paralelního zpracování. Základní filozofii lze shrnout následovně:
- Rozložte nejkratší posloupnost instrukcí pro provedení jedné instance požadovaného výpočtu, umožňující dvoutaktní paměťovou latenci a řízení modulů s plovoucí desetinnou čárkou s výslovnými instrukcemi FADD a FMUL.
- Prohlédněte si posloupnost a určete minimální počet instrukcí tvořících smyčku, která bude výpočet opakovat. To vyžaduje pozornost konfliktů zdrojů. Například datová sběrnice pro přesun výsledků může pohybovat pouze jedním datovým slovem za cyklus. Podobně ALU, která se používá hlavně pro počítání smyček a adresování paměti, lze použít pouze pro jeden účel na cyklus. Tento krok je obvykle pokus-omyl.
- Koncepčně „zalomte“ celou posloupnost instrukcí kolem smyčky pomocí instrukcí FADD a FMUL k vedení výpočtů potrubím.
- Před zahájením smyčky přidejte podle potřeby paralelní zahájení procesu.
Konečná položka byla provedena následujícím způsobem: předpokládejme, že celý výpočet vyžaduje 15 cyklů a minimální velikost smyčky je 5 cyklů. Prvních 5 instrukčních slov začíná iterací 1 výpočtu. Druhých 5 slov obsahuje současně iteraci 1 a začátek iterace 2. Obvykle by to byla kopie operací začínajících iterací 1. Dalších 5 slov obsahuje poslední kroky iterace 1, střed iterace 2 a začátek iterace 3. Těchto pět slov tvoří tělo smyčky, která se opakuje, dokud byl zpracován požadovaný počet datových bodů.
aplikace
Jako připojený procesor se AP-120B obvykle používal jako nízkonákladový / nákladově efektivní doplněk k systémům, jako jsou diagnostické lékařské zobrazovací systémy a další. Na počátku 80. let byly VAX 11/780 nebo 11/785 s FPS-AP-120B a plotrem Versatec pracovními systémy pro seismické zpracování dat v ropném průmyslu. Komerční balíčky seismického zpracování byly napsány tak, aby mohly volat rutiny FPS AP-120B, pokud byly přítomny.