Un computer set de instrucțiuni
Uno One Instruction Set Computer ( OISC ) este o mașină Turing care folosește o singură instrucțiune și, prin urmare, nu necesită un cod de operare . OISC sunt de obicei utilizate în predare. Un model de computer comercial care folosește un OISC este MAX's MAXQ [1] , care folosește doar instrucțiunea MOVE .
Tipuri de OISC
Există diverse posibilități de a crea un OISC complet Turing .
Scădeți și săriți dacă ...
Cele mai utilizate în predare sunt OISC bazat pe SUBLEQ (scădeți și săriți dacă ≤ 0 - SUB mai puțin echivalent) și SUBNEG sau SBN (scădeți și săriți dacă este negativ - SUB NEG). Implementările sunt, în pseudo cod:
subleq '' a '' , '' b '' , '' c '' ; Mem ['' b ''] = Mem ['' b ''] - Mem ['' a '']
; dacă (Mem ['' b ''] ≤ 0) mergeți la '' c ''
subneg '' a '' , '' b '' , '' c '' ; Mem ['' b ''] = Mem ['' b ''] - Mem ['' a '']
; if (Mem ['' b ''] <0) merge la '' c ''
Scădeți și omiteți dacă reportarea ( RSSB )
În engleză Reverse Subtract și Skip if Borrow : acumulatorul este scăzut din locația de memorie curentă. Dacă valoarea este negativă, săriți următoarea afirmație. Pointerul către instrucțiune ( contorul de program ) este la adresa 0, acumulatorul la 1.
RSSB '' la '' ; Mem ['' a ''] = Mem ['' a ''] - Mem ['' 1 '']
; Mem ['' 1 ''] = Mem ['' a '']
; if (Mem ['' 1 ''] <0) Mem ['' 1 ''] = Mem ['' 1 ''] + 1
Mutare
O „mașină de mutat”, numită și CPU, o arhitectură declanșată de transport [2] folosește doar instrucțiunea de mutare, care operează direct pe memorie.
mutați '' a '' în '' b '' ; Mem ['' b '']: = Mem ['' a '']
Uneori este scris ca
'' a '' - > '' b '' ; Mem ['' b '']: = Mem ['' a '']
Operațiile aritmetice sunt efectuate printr-o ALU , care pentru adresele a mai multor cuvinte poate fi înlocuită cu tabele de căutare [3] , în timp ce salturile sunt efectuate prin maparea contorului de programe în memorie. Un exemplu a fost construit din automatul celular Wireworld [4] . Un eseu despre această arhitectură și cum funcționează a fost scris de Douglas W. Jones [5] [6] . MAX's MAXQ folosește și acest design.
BitBitJump
BitBitJump este similar cu scăderea și saltarea, doar că funcționează prin copierea de biți singuri, mai degrabă decât prin scăderea adreselor de memorie : de exemplu, codul
19 20 8
0 0 -1
este reprezentat în 8 biți (MSBF) ca
[00010011] [00010100] [00001000]
[00000000] [00000000] [11111111]
Prima instrucțiune copiază bitul 19 în 20, deci
[00010011] [00010100] [00011000]
[00000000] [00000000] [11111111]
memoria devine acum
19 20 24
0 0 -1
Saltul la 24 biți este efectuat, adică a doua linie, care copiază bitul 0 pe sine și se termină (saltul la adrese negative pune capăt execuției).
Notă
- ^ (RO) Introducere în arhitectura MAXQ , pe maxim-ic.com. Adus la 20 iulie 2009 .
- ^ Un set de instrucțiuni Calculatoare
- ^ http://www.cs.eku.edu/faculty/styer/oisc.html
- ^ Calculatorul Wireworld
- ^ Ultimul RISC
- ^ ACM SIGARCH Computer Architecture News 16, 3 (iunie 1988) 48-55
Bibliografie
- Muzeul Retrocomputer , la catb.org .
- Pagina principală a liniei de produse MAXQ , pe maxim-ic.com . Adus la 20 iulie 2009 (arhivat din original la 28 iulie 2009) .
- Implementarea OISC cu subleq , la sccs.swarthmore.edu . Adus la 20 iulie 2009 (arhivat din original la 21 noiembrie 2015) .
- Univ. Of Waterloo URISC: F. Mavaddat și B. Parhami, URISC: The Ultimate Reduced Instruction Set Computer , Int'l J. Electrical Engineering Education , Vol. 25, No. 4, pp. 327–334, octombrie 1988.
- Univ. Of Iowa Ultimate RISC: http://www.cs.uiowa.edu/~jones/arch/risc/
Elemente conexe
linkuri externe
- Mark II OISC Self-Interpreter , la eigenratios.blogspot.com .
- Interpret redcode pentru RSSB , la adresa impomatic.blogspot.com .
- Ultimul RISC One Instruction Computing , la retrocode.blogspot.com .
- SBN Computer , la bitstuff.blogspot.com .
- Compilator și emulator SUBLEQ , pe mazonka.com .
- Subleq pe limbajul esoteric de programare Wiki
- RSSB pe limbajul esoteric de programare Wiki
- Arhitectura computerelor: o perspectivă minimalistă (CAAMP) , pe caamp.info . Adus la 5 noiembrie 2018 (arhivat din original la 13 iunie 2009) .
- BitBitJump OISC cu instrucțiuni care copiază o singură nit.
- Implementare BitBitJump - asamblator și emulator.
Controlul autorității | GND ( DE ) 4761222-8 |
---|