One instruction set computer: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
|||
(30 versioni intermedie di 21 utenti non mostrate) | |||
Riga 1:
{{
Un modello commerciale di calcolatore che utilizza un OISC è il MAXQ della Maxim
==Tipologie di OISC==▼
▲== Tipologie di OISC ==
Esistono varie possibilità di realizzare un OISC che sia [[Turing equivalenza|Turing-completo]].
=== Sottrai e salta se... ===
I più utilizzati a livello didattico sono gli OISC basati su [[SUBLEQ]] (sottrai e salta se ≤ 0 - SUB Less EQual) e
<
subleq ''a'', ''b'', ''c'' ; Mem[''b''] = Mem[''b''] - Mem[''a'']
; if (Mem[''b''] ≤ 0) goto ''c''
Line 12 ⟶ 15:
subneg ''a'', ''b'', ''c'' ; Mem[''b''] = Mem[''b''] - Mem[''a'']
; if (Mem[''b''] < 0) goto ''c''
</syntaxhighlight>
=== Sottrai e salta se c'è riporto (
In inglese ''Reverse Subtract and Skip if Borrow'': l'[[accumulatore (informatica)|accumulatore]] è sottratto dalla locazione di memoria corrente. Se il valore è negativo, salta l'istruzione successiva. Il puntatore all'istruzione ([[program counter]]) è all'indirizzo 0, l'accumulatore all'1.
<
RSSB ''a'' ; Mem[''a''] = Mem[''a''] - Mem[''1'']
; Mem[''1''] = Mem[''a'']
; if (Mem[''1''] < 0) Mem[''1'']
</syntaxhighlight>
=== Move ===
Una "move machine", detta anche CPU a ''[[transport triggered architecture]]''<ref>[http://www.hawaga.org.uk/ben/tech/oisc1.html One Instruction Set Computers<!-- Titolo generato automaticamente -->]</ref> usa la sola istruzione Move, che
<
move ''a'' to ''b'' ; Mem[''b''] := Mem[''a'']
</syntaxhighlight>
A volte viene scritto come
<
''a'' -> ''b'' ; Mem[''b''] := Mem[''a'']
</syntaxhighlight>
Le operazioni aritmetiche sono effettuate tramite una [[unità aritmetica e logica|ALU]], che per indirizzi di più [[word]] può essere rimpiazzata da tabelle di lookup
Anche il MAXQ della Maxim utilizza tale design.
== BitBitJump ==
Il BitBitJump è simile al sottrai e salta, solo che opera copiando singoli bit, invece che sottraendo [[indirizzi di memoria]]: ad
<
19 20 8
0 0 -1
</syntaxhighlight>
è rappresentato ad 8 bit (MSBF) come
<
[00010011] [00010100] [00001000]
[00000000] [00000000] [11111111]
</syntaxhighlight>
La prima istruzione copia il 19° bit nel 20°, quindi
<
[00010011] [00010100] [00011000]
[00000000] [00000000] [11111111]
</syntaxhighlight>
la memoria diventa ora
<
19 20 24
0 0 -1
</syntaxhighlight>
Viene eseguito il salto al 24 bit, ossia la seconda riga, che copia il bit 0 su se stesso e termina (il salto ad indirizzi negativi termina l'esecuzione).
== Note ==
<references/>
== Bibliografia ==
*
* {{cita web | 1 = http://www.maxim-ic.com/products/microcontrollers/maxq/ | 2 = MAXQ product line homepage | accesso = 20 luglio 2009 | urlarchivio = https://web.archive.org/web/20090728041600/http://www.maxim-ic.com/products/microcontrollers/maxq/ | dataarchivio = 28 luglio 2009 | urlmorto = sì }}
* {{cita web | 1 = http://www.sccs.swarthmore.edu/users/06/adem/engin/e25/finale/ | 2 = OISC Implementation with subleq | accesso = 20 luglio 2009 | urlarchivio = https://web.archive.org/web/20151121172708/http://www.sccs.swarthmore.edu/users/06/adem/engin/e25/finale/ | dataarchivio = 21 novembre 2015 | urlmorto = sì }}
*Univ. of Waterloo URISC: F. Mavaddat and B. Parhami, [http://www.ece.ucsb.edu/~parhami/pubs_folder/parh88-ijeee-ultimate-risc.pdf URISC: The Ultimate Reduced Instruction Set Computer], ''Int'l J. Electrical Engineering Education'', Vol. 25, No. 4, pp.
*Univ. of Iowa Ultimate RISC: http://www.cs.uiowa.edu/~jones/arch/risc/
==Voci correlate==▼
*[[minimal instruction set computer|MISC]]▼
*[[zero instruction set computer|ZISC]]▼
▲== Voci correlate ==
==Collegamenti esterni==▼
* [[Linguaggio assembly]]
* [http://eigenratios.blogspot.com/2006/09/mark-ii-oisc-self-interpreter.html Mark II OISC Self-Interpreter] ▼
* [http://impomatic.blogspot.com/2009/01/redcode-interpretter-for-rssb-single.html Redcode interpreter per RSSB]▼
* [http://retrocode.blogspot.com/2009/01/ultimate-risc-one-instruction-set.html The Ultimate RISC One Instruction Computing]▼
* [http://bitstuff.blogspot.com/2007/02/subtract-and-branch-if-negative.html SBN Computer]▼
▲== Collegamenti esterni ==
* [http://esolangs.org/wiki/Subleq Subleq] su [[Esoteric Programming Language Wiki]]▼
▲*
* [http://esolangs.org/wiki/RSSB RSSB] su [[Esoteric Programming Language Wiki]]▼
▲*
▲*
* [http://www.esolangs.org/wiki/BitBitJump BitBitJump] OISC con istruzione che copia un solo nit.▼
▲*
* BitBitJump [http://mazonka.com/bbj/ implementazione] - assembler ed emulatore.▼
* {{cita web | 1 = http://mazonka.com/subleq/ | 2 = SUBLEQ compilatore ed emulatore | accesso = 20 luglio 2009 | dataarchivio = 24 febbraio 2009 | urlarchivio = https://web.archive.org/web/20090224180810/http://mazonka.com/subleq/ | urlmorto = sì }}
{{portale|informatica|hardware}}▼
[[categoria:Architettura dei calcolatori]]▼
[[categoria:Instruction Processing]]▼
* {{cita web |1=http://www.caamp.info |2=Computer Architecture: A Minimalist Perspective (CAAMP) |accesso=5 novembre 2018 |urlarchivio=https://web.archive.org/web/20090613042342/http://www.caamp.info/ |dataarchivio=13 giugno 2009 |urlmorto=sì }}
▲[[en:One instruction set computer]]
▲* [
▲* BitBitJump [http://mazonka.com/bbj/ implementazione] {{Webarchive|url=https://web.archive.org/web/20110820202004/http://mazonka.com/bbj/ |date=20 agosto 2011 }} - assembler ed emulatore.
{{Controllo di autorità}}
[[Categoria:Modelli di calcolo]]
|