Unicore - Unicore - Wikipedia
- Pro grid computing middleware viz UNICORE.
Návrhář | Centrum pro výzkum a vývoj mikroprocesorů |
---|---|
Bity | 32-bit |
Představený | 1999 |
Design | RISC |
Kódování | Pevný |
Větvení | Podmínkový kód |
Endianness | Málo |
Velikost stránky | 4 KiB |
Registry | |
Obecný účel | 31 |
Plovoucí bod | 32 |
Unicore je název počítače instrukční sada architektura navržená Mikroprocesorovým výzkumným a vývojovým střediskem (MPRC) v Pekingská univerzita v PRC. Počítač postavený na této architektuře se nazývá Jednota-863.[1]CPU je integrován do plně funkčního SoC pro vytvoření systému podobného PC.[2]
Procesor je velmi podobný ARM architektura, ale používá jinou sadu instrukcí.[3][je zapotřebí lepší zdroj ]
Podporuje jej Linuxové jádro od verze 2.6.39.[4]Podpora bude odstraněna v Linuxové jádro verze 5.9, protože se zdá, že ji nikdo neudržuje, a kód zaostává za zbytkem kódu jádra a požadavků kompilátoru.[5]
Sada instrukcí
Pokyny jsou téměř identické se standardními formáty ARM, kromě toho, že bylo odebráno podmíněné provádění a bity byly znovu přiřazeny, aby se rozšířily všechny specifikátory registru na 5 bitů.[6][7] Okamžitý formát je rovněž 9 bitů otočených o 5 bitů (místo 8 bitů otočených o 4), velikosti offsetu načítání / ukládání jsou 14 bitů pro bajt / slovo a 10 bitů pro podepsaný bajt nebo půl slova. Podmíněné pohyby jsou poskytovány kódováním podmínky v (RUS nepoužívaném) poli druhého zdrojového registru Rn pro instrukce MOV a MVN.
Popis | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | operační kód | S | Rn | Rd | posun | 0 | Sh | 0 | Rm | ALU provoz, Rd = Rn op Rm posun #posun | ||||||||||||||||||||
0 | 0 | 0 | operační kód | S | Rn | Rd | Rs | 0 | Sh | 1 | Rm | ALU provoz, Rd = Rn op Rm posun Rs | ||||||||||||||||||||
0 | 0 | 1 | operační kód | S | Rn | Rd | posun | im9 | ALU provoz, Rd = Rn op # imm9 ROTL #shift | |||||||||||||||||||||||
0 | 1 | 0 | P | U | B | Ž | L | Rn | Rd | posun | 0 | Sh | 0 | Rm | Vložte / uložte Rd na adresu Rn ± Rm posun #posun | |||||||||||||||||
0 | 1 | 1 | P | U | B | Ž | L | Rn | Rd | offset14 | Načíst / uložit Rd na adresu Rn ± offset14 | |||||||||||||||||||||
1 | 0 | 0 | P | U | S | Ž | L | Rn | Bitmapa vysoká | 0 | 0 | H | Bitmapa nízká | Načíst / uložit více registrů | ||||||||||||||||||
1 | 0 | 1 | kond | L | offset24 | Pobočka (a odkaz), pokud je splněna podmínka | ||||||||||||||||||||||||||
1 | 1 | 0 | Pokyny pro koprocesor (FPU) | |||||||||||||||||||||||||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Číslo pasti | Přerušení softwaru | |||||||||||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | A | S | Rn | Rd | Rs | 1 | 0 | 0 | 1 | Rm | Vynásobte, Rd = Rm * Rs (+ Rn) | ||||||||||||||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | L | 11111 | 11111 | 00000 | 1 | 0 | 0 | 1 | Rm | Pobočka a směnárna (BX, BLX) | ||||||||||||||||
0 | 1 | 0 | P | U | 0 | Ž | L | Rn | Rd | 00000 | 1 | S | H | 1 | Rm | Načíst / uložit Rd na adresu Rn ± Rm (16 bitů) | ||||||||||||||||
0 | 1 | 0 | P | U | 1 | Ž | L | Rn | Rd | imm_hi | 1 | S | H | 1 | imm_lo | Načíst / uložit Rd na adresu Rn ± # imm10 (16 bitů) |
Význam různých příznakových bitů (například S = 1 umožňuje nastavení stavových kódů) je identický se sadou instrukcí ARM. Vícenásobná instrukce načíst / uložit má přístup pouze k polovině sady registrů, v závislosti na H bitu. Pokud H = 0, 16 bitů označuje R0 – R15; pokud H = 1, R16 – R31.
Reference
- ^ „Úvod do MPRC“. Centrum pro výzkum a vývoj mikroprocesorů, Pekingská univerzita.
- ^ Xu Cheng; Xiaoyin Wang; Junlin Lu; Jiangfang Yi; Dong Tong; Xuetao Guan; Feng Liu; Xianhua Liu; Chun Yang; Yi Feng (březen 2010), „Pokrok výzkumu procesorů UniCore a PKUnity SoC“ (PDF), Journal of Computer Science and Technology (JCST), 25 (2): 200–213, vyvoláno 2012-07-11
- ^ Bergmann, Arnd (09.07.2012). „Re: [PATCH 00/36] AArch64 linuxový port jádra“. linux-kernel (Poštovní seznam). Citováno 2012-07-11.
Dalším zajímavým příkladem je unicore32, který ve skutečnosti sdílí více kódu s arch / arm než navrhovaný arch / aarch64. Myslím, že kódové základně unicore32 by prospělo sloučení zpět do arch / arm jako třetí sady instrukcí, ale další náklady na údržbu pro každého, kdo pracuje na ARM, to činí nereálným.
- ^ „Sloučit okno zavřené - výstup 2.6.39-rc1“. Linus Torvalds.
- ^ "odebrat podporu unicore32". Mike Rapoport.
- ^ Hsu-Hung Chiang; Huang-Jia Cheng; Yuan-Shin Hwan (2012-02-25), „Zdvojnásobení počtu registrů na procesorech ARM“ (PDF), 16. workshop o interakci mezi překladači a počítačovými architekturami (INTERACT), s. 1–8, doi:10.1109 / INTERACT.2012.6339620, ISBN 1-4673-2613-5
- ^ Zdrojový kód simulátoru procesoru Unicore. Formáty instrukcí jsou v decode.c, demontáž v interpr.c a emulace v instEx.c.
- ^ Zdrojový kód emulátoru QEMU Unicore32
![]() | Tento počítačové inženýrství související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |