summaryrefslogtreecommitdiff
path: root/cpu/instructions
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2022-11-14 20:18:34 -0500
committerTest_User <hax@andrewyu.org>2022-11-14 20:18:34 -0500
commit724b2654fb10fa40cf9053d96012e860cf24623d (patch)
treec18ebe09f0a821736e8955649b320989400ed6cd /cpu/instructions
parent727cda594d942f310180cda48ae04c5e3ee9a0ff (diff)
downloadspecification-724b2654fb10fa40cf9053d96012e860cf24623d.tar.gz
specification-724b2654fb10fa40cf9053d96012e860cf24623d.zip
Added incomplete instruction set overview, fixed some other stuff
Diffstat (limited to 'cpu/instructions')
-rw-r--r--cpu/instructions/overview.txt41
1 files changed, 41 insertions, 0 deletions
diff --git a/cpu/instructions/overview.txt b/cpu/instructions/overview.txt
new file mode 100644
index 0000000..95b0034
--- /dev/null
+++ b/cpu/instructions/overview.txt
@@ -0,0 +1,41 @@
+Dynamic VLIW
+ Allows a dynamic number of instructions to be queued for simultaneous execution
+
+ All inputs within the same queue will be calculated before outputs
+ `mov R0, R1` and `mov R1, R0` put into the same queue will result in swapping R0 and R1
+
+ If any exception occurs during the execution of the queued instructions, all output will be discarded
+ If multiple exceptions would have theoretically occurred, which one is triggered is undefined
+
+ Current format ideas:
+ A)
+ effects:
+ uses space efficiently when using many repetitions of the same opcodes
+ easier for the CPU to parse
+
+ requires all parameter lengths to be the same within the opcode
+ wastes space when few repetitions of the same opcode exists
+
+ format:
+ num_opcodes
+ for each:
+ opcode
+ num_instructions
+ for each:
+ parameters
+ size_of_immediate_references
+ for each:
+ value
+
+ B)
+ effects:
+ allows variable length parameters
+
+ harder for the CPU to parse
+
+ format:
+ size_of_queue
+ for each instruction:
+ opcode
+ parameters
+ immediate references