04-29-2014, 11:46 PM
(This post was last modified: 04-30-2014, 03:51 PM by Nickster258.)
So, here is my instruction set:
This is my second iteration of this instruction set and I think it will do well for what it is designed.
My goal with this was to be simple, compact, and easy to program/understand. As I put a fair amount of study and thought into it (have been working on it for over a month), it seems that some of the "ease of understanding" was simple out-done with my ever-increasing knowledge of these things .I designed this RiSC IS with a mix of 6502 and MIPS. I believe that this IS is nice and versatile. This supports 8 registers, however register 000 is a blank register, always reading 0 when called.
With the IS having a 7 bit address, one can have up to 128 bytes of RAM which is specified by that address on were to save each word. With further manipulation, one can extrapolate an 10 bit address for SW and LW and increase the RAM capacity from 128 bytes to 1024 bytes, or 1KiB. An 8 bit CPU may not need 1024 bytes, but it would still be an interesting side for both execution and performance.
This CPU can perform basic tasks and even has capabilities for multiple I/O options. With the GPU function, a 10 bit address could be used both for a simple plotting of points on a 10x10 black&white screen. A simple GPU that can process line graphing, ellipse drawing, and even graphing of any 3-4-5-6 sided figure given only the coordinates of each point (basically line drawing but processing multiple lines at once.)
More branch functions could be added since the 4 bit function code will support up to 16 separate functions. Branching is done by using the 10 bit address for the prog the cycle after the branch is defined. Yes, this will take two cycles, but many other CPUs do.
I plan not only that this IS be used for minecraft CPUs, but also to be either built on a breadboard or on a simulator and have a decent clock speed.
Thanks,
Nickster258
Edit: I just saw a few typos. LUI, SW, and LW use type RI wit the 10 bit address. And type RRI has a typo. It is 7 bits, not 8.
This is my second iteration of this instruction set and I think it will do well for what it is designed.
My goal with this was to be simple, compact, and easy to program/understand. As I put a fair amount of study and thought into it (have been working on it for over a month), it seems that some of the "ease of understanding" was simple out-done with my ever-increasing knowledge of these things .I designed this RiSC IS with a mix of 6502 and MIPS. I believe that this IS is nice and versatile. This supports 8 registers, however register 000 is a blank register, always reading 0 when called.
With the IS having a 7 bit address, one can have up to 128 bytes of RAM which is specified by that address on were to save each word. With further manipulation, one can extrapolate an 10 bit address for SW and LW and increase the RAM capacity from 128 bytes to 1024 bytes, or 1KiB. An 8 bit CPU may not need 1024 bytes, but it would still be an interesting side for both execution and performance.
This CPU can perform basic tasks and even has capabilities for multiple I/O options. With the GPU function, a 10 bit address could be used both for a simple plotting of points on a 10x10 black&white screen. A simple GPU that can process line graphing, ellipse drawing, and even graphing of any 3-4-5-6 sided figure given only the coordinates of each point (basically line drawing but processing multiple lines at once.)
More branch functions could be added since the 4 bit function code will support up to 16 separate functions. Branching is done by using the 10 bit address for the prog the cycle after the branch is defined. Yes, this will take two cycles, but many other CPUs do.
I plan not only that this IS be used for minecraft CPUs, but also to be either built on a breadboard or on a simulator and have a decent clock speed.
Thanks,
Nickster258
Edit: I just saw a few typos. LUI, SW, and LW use type RI wit the 10 bit address. And type RRI has a typo. It is 7 bits, not 8.