Forums - Open Redstone Engineers
1Hz Baby! WX 0.1 CPU ! - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: ORE General (https://forum.openredstone.org/forum-39.html)
+--- Forum: Projects & Inventions (https://forum.openredstone.org/forum-19.html)
+---- Forum: Completed Projects (https://forum.openredstone.org/forum-21.html)
+---- Thread: 1Hz Baby! WX 0.1 CPU ! (/thread-808.html)



1Hz Baby! WX 0.1 CPU ! - WrytXander - 08-22-2013

It seems that I have finished my first CPU on ORE. In fact I have finished it quite some time ago, but debugging ad optimizing took "some" time. So here are the specs:

CPU Instruction Cycle Rate: 10 ticks or 1 second (aka 1Hz)
*8 tick works just fine, but after some time pistons start dropping blocks)
Accumulator: Yes
Bus bitwidth: 8 Bits
RAM: 4 bytes (4 addressable cells)
ROM approximetly 21 bytes
Instruction Set Architecture: RISC
Instruction Set Size: 11 bits
Operations: Add, Subtract, AND, NOR, OR, bitwise Left/Right shift/Accumulate/Halt
UI: Terrible :(

Now you might think: Hey Wryt, what the actual f***! This is not really a powerful computer. And boy you are right. This computer was designed to push the clock cycle speeds to its limits! And just like any computer it can perform operations, and handle memory. And runs at a flickering 10 ticks (8, if we lived in a hypotethical world where there was ne server lag).

What makes this so fast is that it uses what its called a "Software pipeline"! What this means is that I am going thru stages of execution in a pipeline that is not fixed in hardware, but handled by software which allows me to overclock the CPU!

And I am ending this thread by a quote from all might Benny!: "Clock speed != speed of the CPU" I will let you guys think that one thru, and tell me if my CPU is fast or not!


RE: 1Hz Baby! WX 0.1 CPU ! - CMOSprinkles - 08-23-2013

I wish there could be pictures for those of us who can't get on the server T~T
Anyways, looks good! Interesting set of functions there, does it have some form of input inverter/flood carry to make it turing complete? Also, last question for now, is it just the CPU that runs on 10 tick cycles or the entire computer?

Oh yeah, you say that you used pipelining to get it down to 10 ticks, how long does the longest instruction actually take to execute?


RE: 1Hz Baby! WX 0.1 CPU ! - WrytXander - 08-23-2013

(08-23-2013, 12:12 AM)CMOSprinkles Wrote: I wish there could be pictures for those of us who can't get on the server T~T
Anyways, looks good! Interesting set of functions there, does it have some form of input inverter/flood carry to make it turing complete? Also, last question for now, is it just the CPU that runs on 10 tick cycles or the entire computer?

Oh yeah, you say that you used pipelining to get it down to 10 ticks, how long does the longest instruction actually take to execute?

Hahaha sorry I cant get to the server as well:) I did not put inverting function directly.. But it can be done by nor function. And yeah 10 ticks for the whole computer.the longest instruction took 10 ticks before I used instant repeaters now it is 8 ticks max.


RE: 1Hz Baby! WX 0.1 CPU ! - CMOSprinkles - 08-23-2013

I've had this discussion before, maybe you can shed some light on it; What combination of AND/OR/NOR would you use to get results like "!A" or "B-->A"? I understand how those functions can be combined to perform XOR/TRUE/NAND etc., but I can't figure out how to get IMPLIES/NIMPLIES results or A/B/!A/!B. Out of curiosity, how many ticks does the ALU take to calculate the longest operation? And since I can't get on the server and there are no pictures, could you at least tell me the dimensions of the computer?

Never mind about the functions, I saw your response to the same question in another thread. So you literally have to have a register that is always set as 0? It seems like there would be a better way, such as Guy's idea of having only a single OR gate with inverters on both inputs and flood carry to achieve any Boolean operation using only general registers.


RE: 1Hz Baby! WX 0.1 CPU ! - WrytXander - 08-23-2013

(08-23-2013, 01:09 AM)CMOSprinkles Wrote: I've had this discussion before, maybe you can shed some light on it; What combination of AND/OR/NOR would you use to get results like "!A" or "B-->A"? I understand how those functions can be combined to perform XOR/TRUE/NAND etc., but I can't figure out how to get IMPLIES/NIMPLIES results or A/B/!A/!B. Out of curiosity, how many ticks does the ALU take to calculate the longest operation? And since I can't get on the server and there are no pictures, could you at least tell me the dimensions of the computer?

Never mind about the functions, I saw your response to the same question in another thread. So you literally have to have a register that is always set as 0? It seems like there would be a better way, such as Guy's idea of having only a single OR gate with inverters on both inputs and flood carry to achieve any Boolean operation using only general registers.

Oh, the longest ALU operation is 8 ticks.
And yeah, that OR stuff. It actuaaly doesn't matter how you do it. Either the nor+zero register I told you, or the one Guy told you, It end up being "not (something)" in the high level. And as long as you jabe it donein one clock cycle, It is fine . And the Zer register. A huge persantage of the modern cpus have it, and it does not have to be a real physical register. Just an address with no data in it. But od you do not want to implent that, you should use a Zero immediate instead.

You have to have otherdata, (other then the one you are trying to invert) becouse we set two operand at each clock cycle. So of you dont want to input two, but instead one, you have to have some sort pf blank data. (Or full 1's instead of 0,s to achieve our desired effect )


RE: 1Hz Baby! WX 0.1 CPU ! - CMOSprinkles - 08-23-2013

Makes sense to just have a blank address, I suppose it's just a matter of personal choice then. I guess having just the 3 functions means you only have to use 2 bits to address logical functions instead of 3. Anyways, if your longest ALU operation is 8 ticks, you must have some super fast/instant memory for 10 tick cycles, how'd you manage that?


RE: 1Hz Baby! WX 0.1 CPU ! - WrytXander - 08-23-2013

(08-23-2013, 05:08 PM)CMOSprinkles Wrote: Makes sense to just have a blank address, I suppose it's just a matter of personal choice then. I guess having just the 3 functions means you only have to use 2 bits to address logical functions instead of 3. Anyways, if your longest ALU operation is 8 ticks, you must have some super fast/instant memory for 10 tick cycles, how'd you manage that?

I use Instant repeaters + as I said software pipeline, or step-by-step execution, which allows for fast clock cycles.