Super Harvard Architecture Single-Chip Computer

From Wikipedia, the free encyclopedia

Super Harvard Architecture Single-Chip Computer
Remove ads

A Super Harvard Architecture Single-Chip Computer – azaz SHARC – egy nagy teljesítményű lebegőpontos és fixpontos módosított Harvard-architektúrájú DSP[1] az Analog Devicestől. A SHARC-ot számos jelfeldolgozási alkalmazásban használják, a hangfeldolgozástól kezdve az egyprocesszoros irányított tüzérségi lövedékeken keresztül az 1000 processzoros horizonton túli radarfeldolgozó számítógépekig. Eredeti tervei 1994 januárja körül készültek.[2]

A SHARC processzorok tipikusan úgy vannak kialakítva, hogy nagyszámú soros kapcsolattal rendelkezzenek, melyekkel összeköthetők további SHARC processzorokkal, és így az SMP olcsó alternatívájaként legyenek használhatók.[3]

A SHARC processzorokat eredetileg többprocesszoros rendszerekhez és számításigényes alkalmazásokhoz tervezték. Ezt a területet a cég ma már elsősorban TigerSHARC processzoraival fedi le, de a SHARC processzorok továbbra is szerepelnek a cég kínálatában.

Thumb
SHARC ADSP-21363
Remove ads

Architektúra

A SHARC egy Harvard-architektúrájú, szavas címzésű VLIW processzor; nem ismer 8 bites vagy 16 bites értékeket, mivel minden cím egy teljes 32 bites szóra mutat, nem egy oktettre. Ez a kialakítás sem növekvő (little-endian), sem csökkenő (big-endian) bájtsorrendűnek nem nevezhető, bár a fordítóprogram használhatja bármelyik konvenciót, ha 64 bites adatokat implementál és/vagy valamilyen módon több 8 bites vagy 16 bites értéket csomagol be egyetlen 32 bites szóba. Ebben az architektúrában a C nyelvű programok karakterei 32 bitesek, mivel a szabvány szerint ezek az adott gép legkisebb címezhető egységei.[4]

A Harvard-architektúra alapvető jellemzője a különválasztott programmemória és adatmemória. Ennek egyik előnye az, hogy a programkód szavainak mérete különbözhet az adatszavak méretétől. A SHARC architektúrában is így van, az utasításszó mérete 48 bit, az adatszavak mérete 32 bit az egészekhez és egyszeres pontosságú lebegőpontos számokhoz, és 40 bit a kiterjesztett pontosságú lebegőpontos számokhoz. A kód és az adatok szavait a vezérlés alapesetben a csipre integrált memóriából hívja le, amelyet a felhasználónak különböző szóméretű régiókra kell felosztania, igényei szerint. A memória szóméreténél kisebb adattípusok is tárolhatók a területen, az extra helyet/biteket figyelmen kívül hagyva. Például egy rendszerben, ami nem használ 40 bites kiterjesztett lebegőpontos számításokat, a csipen lévő memória két részre osztható, egy 48 bites területre a kód számára és egy másik 32 bites területre, minden egyébhez. A CPU legtöbb memóriával kapcsolatos utasítása nem fér hozzá a 48 bites memória minden bitjéhez, de erre a célra létezik egy speciális 48 bites regiszter. A speciális 48 bites regiszter párokba állított kisebb regiszterekkel is elérhető, lehetővé téve a normál regiszterek közötti adatcserét.[5]

A SHARC processzor lehetővé teszi csipen kívüli memória használatát is. Ez a memóriatípus csak egyetlen méretre konfigurálható. Ha a csipen kívüli memória 32 bites szómérettel van konfigurálva a pazarlás elkerülése végett, akkor csak a csipre integrált memória használható kódvégrehajtásra és a kiterjesztett lebegőpontos számításokhoz. Az operációs rendszerek overlay-technológia alkalmazásával megkerülhetik ezt a problémát, a végrehajtáshoz szükséges 48 bites adatok átvitelével a csipre integrált memóriába. Erre a célra egy DMA kezelőegység áll rendelkezésre.[1][3] A valódi lapozás nem lehetséges külső MMU nélkül.

A SHARC-nak 32 bites szó címzésű címtartománya van. A szómérettől függően ez 16 GiB, 20 GiB vagy 24 GiB címezhető memóriát jelent (a 8 bites „bájt” közismert definícióját használva).

A SHARC utasítások 32 bites közvetlen operandusokat tartalmazhatnak. Az ilyen, közvetlen operandusok nélküli utasítások általában képesek két vagy több műveletet végrehajtani egyidejűleg. Sok utasítás feltételes, és megelőzheti őket egy „ha feltétel”, az assembly nyelv szintaxisa szerint. Az előtét-feltételek többfajta kombinációja létezik, az x86 állapotregiszter jelzőbitjeivel alkotott feltételes esetekhez hasonlóan. A SHARC processzornak is vannak aritmetikai állapotregiszterei a jelzőbitek tárolására.

Az utasításvégrehajtásban két késleltetési rés szerepel. Egy ugrás/elágazás után az ugrást követő két utasítás normál esetben végrehajtásra kerül.

A SHARC processzor beépített támogatással rendelkezik a ciklusvezérléshez. Legfeljebb 6 (beágyazási) szint használható, a programciklusok (hurkok) előkészítése és a ciklusokból való kilépés egy ütem alatt történik, elkerülve normál elágazási utasítások és a ciklusból való kilépéshez tartozó állapotnyilvántartás szükségességét.

A SHARC két teljes készlet általános célú regiszterrel rendelkezik. A kód képes azonnal váltani közöttük, lehetővé téve a gyors kontextusváltást a felhasználó és az operációs rendszer alkalmazásai vagy két szál között.

Remove ads

Jegyzetek

Fordítás

Források

További információk

Kapcsolódó szócikkek

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads