Speciální číslicové struktury - Viktor Švagr

Transputery


OBSAH

1. Historie

2. Struktura

3. Propojování

4. Software

5. Rozdělení transputerů

6. Použití transputerů

7. Odkazy

8. T400 (ukázka programování)


 1. Historie

2. Struktura

 

 3. Propojování

    Transputery mají několik, obvykle čtyři vysokorychlostní, asynchronní a plně duplexní sériové kanály, kterými vzájemně komunikují. V praxi je propojení dvou transputerů provedeno pomocí dvou kroucených dvoulinek, každou pro jiný směr přenosu. Takové řešení umožňuje transputery jednoduše propojovat a to i v různých místnostech, čímž vzniká jejich lokální síť. Instrukční sada každého transputeru vzájemnou komunikaci podporuje tak, že jedinou instrukcí lze zahájit přenos, který pak probíhá bez účasti procesoru.

     

           dvourozměrná transputerová síť                 čtveřice propojených transputerů - úplný graf


4. Software

    Klasické programovací jazyky nejsou pro programování transputerů příliš vhodné a proto vyvinula firma Inmos jazyk OCCAM, založený na principech paralelního zpracování. Aby byl programátorům usnadněno použití transputerů, nabízí firma Inmos i překladače standardních programovacích jazyků jako je C, Pascal a Fortran. Provedení překladačů je takové, že programátor může část kódu psát v klasickém programovacím jazyku a část, zejména výpočetně náročnou, přímo v OCCAMu.

5. Rozdělení transputerů




6. Použití transputerů

Konkrétní oblasti použití:


7. Odkazy

    http://www.pact.srf.ac.uk/macrame/papers/T9000/T9000.html


8. Transputer T400 (ukázka programování)

T400 je nejznámější transputer jedná se o 32b transputer firmy Inmos. Výrobce udává výkonnost 10 MIPS při frekvenci 20 MHz. Obsahuje 2kB vnitřní paměti RAM a 6 vnitřních registrů.

A,B,C - jako zásobníky pro vyhodnocování výrazů

WP - workspace pointer jako ukazatel do paměti na místo s lokálními proměnnými

IP - čítač instrukcí

O - operand registr na sestavení operandů instrukce

Instrukční soubor tvoří 16 základních instrukcí délky 8 bitů. 0..3 bit instrukce obsahuje data, bity 4..7 tvoří kód instrukce. Protože transputer pracuje s délkou slova 32b, můžeme sdružovat instrukce do skupin.

 

Základní instrukce:

load constant                 load non local

add constant                  store non local

load local                    jump

store local                   conditional jump

load local pointer            call

prefix                        operate

 Všechny instrukce vykonávají přesun čtyř datových bitů do čtyř nejnižších bitů operand registru, který je poté použit jako instrukční operand. Všechny instrukce kromě instrukce prefix po provedení mažou obsah operand registru.

 8.1. Instrukce prefix

Instrukce prefix načítá čtyři datové bity do operand registru a potom posouvají jeho obsah o čtyři bity výše. Pomocí sekvence operací prefix můžeme tedy rozšířit operand instrukce až na délku operand registru.

 Příklad:    sekvence instrukcí načítající do registru A konstantu #864

                                                           O reg.             A reg.

prefix #8                #8        ?

prefix #6                #6        ?

load constant #4          0     #864

8.2. Nepřímé instrukce

Instrukce operate umožňuje, aby byl operand instrukce interpretován jako operace nad hodnotami uloženými v zásobníku pro výpočet. Instrukce operate umožňuje 16 takových operací, protože délka operandu je čtyři bity.

8.3. Vyhodnocování výrazů

Registry A,B,C jsou cíle a zdroje pro aritmetické a logické operace. Načtení hodnoty do vyhodnocovacího zásobníku způsobí uložení B do C a A do B před uložením hodnoty do A. Uložení obsahu A do paměti má obrácený postup. Registry A,B a C slouží jako zdroje a cíle aritmetických a logických operací. Dvouzdrojové operace jako sčítání tedy sečtou obsahy registrů A a B a výsledek uloží do reg. A a obsah registru C uloží do B.

 Příklad:

  výraz                                    sekvence instrukcí                    počet bajtů               počet cyklů

 x+2

                  load local x             1            2

                  add constant 2           1            1

(x+y)*(w+z)

                  load local x             1            2

                  load local y             1            2

                  add                      1            1

                  load local w             1            2

                  load local z             1            2

                  add                      1            1

                  multiply                 2          7+délka slova


Zdroje:

 Hlavička J.: Architektura počítačů

Dharma P.A.:Tutorial Advanced Computer Architecture

http://www.st.com/

odkazy