Virtual CPU Instruction Set: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
Bez shrnutí editace |
Bez shrnutí editace |
||
(Není zobrazeno 25 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
==Design goals== |
==Design goals== |
||
* Simple to implement in other languages |
* Simple to implement in other programming languages |
||
* Efficient to execute by emulator |
* Efficient to execute by emulator |
||
* Future extensibility (to support 128-bit data/address width or more) |
* Future extensibility (to support 128-bit data/address width or more) |
||
Řádek 8: | Řádek 8: | ||
==Other interesting instruction sets== |
==Other interesting instruction sets== |
||
{| class="wikitable sortable" |
|||
⚫ | |||
! CPU !! Instruction count !! Instruction size [bits] !! Data size [bits] !! Addressable memory [bits] !! Registers |
|||
⚫ | |||
|- |
|||
⚫ | |||
⚫ | |||
⚫ | |||
|- |
|||
⚫ | |||
⚫ | |||
⚫ | |||
|- |
|||
⚫ | |||
|- |
|||
⚫ | |||
|- |
|||
⚫ | |||
|- |
|||
⚫ | |||
|- |
|||
| [https://schweigi.github.io/assembler-simulator/instruction-set.html Simple 8-bit Assembler Simulator] || 60 || 8 || 8 || 8 || PC, SP, A, B, C, D |
|||
|- |
|||
| [https://user.eng.umd.edu/~blj/RiSC/RiSC-isa.pdf The RiSC-16 Instruction-Set Architecture] || 8 || 16 || 16 || 16 || PC, R0-R7 |
|||
|- |
|||
| [https://introcs.cs.princeton.edu/java/62toy/ TOY Machine] || 16 || 16 || 16 || 8 (256 words) || PC, R0-R15 |
|||
|- |
|||
| [http://www.cs.man.ac.uk/~pjj/cs1001/arch/node2.html MU0] || 8 || 16 || 16 || 12 || PC, ACC |
|||
|- |
|||
| [https://en.wikipedia.org/wiki/LC-3 LC-3] || 15 || 16 || 16 || 16 || PC, R0-R7 |
|||
|- |
|||
| [https://pcengines.ch/toy2.htm TOY/2 - a minimalist 16 bit CPU] || 15 || 16 || 16 || 16 || PC, A, T |
|||
|- |
|||
| [http://samples.jbpub.com/9781449600068/00068_CH04_Null3e.pdf MARIE: An Introduction to a Simple Computer] || 9 || 16 || 16 || 12 || PC, ACC |
|||
|- |
|||
| [https://www.eeweb.com/profile/max-maxfield/articles/building-a-4-bit-computer-the-instruction-set Building a 4-Bit Computer: The Instruction Set] || 16 || 4 || 4 || 12 || R0-R5, S0, S1, PC, SP, IX, IV, TA |
|||
|- |
|||
| [https://www.codeproject.com/articles/43176/how-to-create-your-own-virtual-machine How to create your own virtual machine] || 35 || 8 || 8 || 16 || A, B, X, Y, D |
|||
|- |
|||
| [https://en.wikipedia.org/wiki/Little_man_computer Little Man Computer] || 10 || 12 || 8 || 8 || A |
|||
|- |
|||
| [https://github.com/Member1221/CRISC CRISC] || 32 || struct || 64 || 16-64 || |
|||
|- |
|||
| [https://en.wikipedia.org/wiki/CHIP-8 CHIP-8] || 35 || 16 || 8 || 12 || V0-V15, I |
|||
|- |
|||
| [https://github.com/freedosproject/toycpu Toy CPU] || 14 || 8 || 8 || 8 || A |
|||
|- |
|||
| [https://codegolf.stackexchange.com/questions/171095/8bit-virtual-machine 8bit virtual machine] || 28 || 8 || 8 || 8 || PC, A, X |
|||
|} |
|||
==External links== |
|||
* [http://wiki.c2.com/?VirtualMachine Virtual machine on c2 wiki] |
|||
* [https://justinmeiners.github.io/lc3-vm/ Write your Own Virtual Machine] |
|||
* [https://www.andreinc.net/2021/12/01/writing-a-simple-vm-in-less-than-125-lines-of-c#loading-and-running-programs Writing a simple 16 bit VM in less than 125 lines of C] |
|||
* [https://100r.co/site/uxn.html UXN] - personal computing stack based on a small virtual machine |
|||
[[Category:Programování]] |
[[Category:Programování]] |
Aktuální verze z 21. 11. 2023, 16:46
Design goals
- Simple to implement in other programming languages
- Efficient to execute by emulator
- Future extensibility (to support 128-bit data/address width or more)
- Single instruction code for any data/address width
- Register based load-store architecture rather than stack based machine or accumulator based machine
Other interesting instruction sets
CPU | Instruction count | Instruction size [bits] | Data size [bits] | Addressable memory [bits] | Registers |
---|---|---|---|---|---|
Tiny CPU Instruction Set | 22 | 8-16 | 8 | 10 | PC, SP, A, X, SR |
A Quick Introduction to the ZipCPU Instruction Set | 29 | 32 | 32 | 32 | R0-R13, PC, CC |
MINI-CPU Instruction Set Specification | 12 | 4-12 | 8 | 8 | PC, ACC, R |
Simple Virtual Machine | 18 | 8 | 32 | 32 | PC, SP, FP |
Simple virtual machine which interprets bytecode. | 36 | 16-32 | 16-32 | 16-32 | IP, FLAGS, R0-R9, SP |
VAM Virtual Assembler Machine | 58 | 16-32 | 16-32 | 16-32 | R0-Rn (IP, SP) |
Simple 8-bit Assembler Simulator | 60 | 8 | 8 | 8 | PC, SP, A, B, C, D |
The RiSC-16 Instruction-Set Architecture | 8 | 16 | 16 | 16 | PC, R0-R7 |
TOY Machine | 16 | 16 | 16 | 8 (256 words) | PC, R0-R15 |
MU0 | 8 | 16 | 16 | 12 | PC, ACC |
LC-3 | 15 | 16 | 16 | 16 | PC, R0-R7 |
TOY/2 - a minimalist 16 bit CPU | 15 | 16 | 16 | 16 | PC, A, T |
MARIE: An Introduction to a Simple Computer | 9 | 16 | 16 | 12 | PC, ACC |
Building a 4-Bit Computer: The Instruction Set | 16 | 4 | 4 | 12 | R0-R5, S0, S1, PC, SP, IX, IV, TA |
How to create your own virtual machine | 35 | 8 | 8 | 16 | A, B, X, Y, D |
Little Man Computer | 10 | 12 | 8 | 8 | A |
CRISC | 32 | struct | 64 | 16-64 | |
CHIP-8 | 35 | 16 | 8 | 12 | V0-V15, I |
Toy CPU | 14 | 8 | 8 | 8 | A |
8bit virtual machine | 28 | 8 | 8 | 8 | PC, A, X |
External links
- Virtual machine on c2 wiki
- Write your Own Virtual Machine
- Writing a simple 16 bit VM in less than 125 lines of C
- UXN - personal computing stack based on a small virtual machine