Device ID Codes
The actual identifications will be assigned later, when the hardware is assembled most likely, but this will be a helpful guide as I work out the backplane (currently considering three options between 56 and 80 lanes).
Device ID | Signals/Commands | Description and Notes |
00000 | we,oe | Zero/Null Register |
00001 | we,oe | A-Register, half of the ALU input |
00010 | we,oe | B-Register, half of the ALU input |
00011 | we,oe, inc | Program Counter |
00100 | we,oe | SRAM, 64k bank 1 |
00101 | we, oe | General purpose data register (temporary value storage?) |
00110 | we, oe | General purpose data register (output register?) |
00111 | we, oe | General purpose address register (branch address?) |
The idea is we can identify most devices using a 5-digit code. If we start with nine devices, we will have an ALU, 64k of memory, and four general purpose registers to work with.
The Instruction Register is not listed above as there will be no instructions that affect it directly. The ALU does not need an identifier, either. We can use the 5-digits of the "source" to pass the ALU a mode (1-bit flag to switch between logical and mathematical functions) and command (4-bit signal to indicate which of sixteen functions to execute).
To start, a minimal setup would need the following five addressable devices, plus the Instruction Register and ALU.
Device ID | Signals/Commands | Description and Notes |
00000 | we,oe | Zero/Null Register |
00001 | we,oe | A-Register, half of the ALU input |
00010 | we,oe | B-Register, half of the ALU input |
00011 | we,oe, inc | Program Counter |
00100 | we,oe | SRAM, 64k bank 1 |
Note that the "Zero Register" might not actually be a card, it could be pull down resistors directly soldered to the backplane, as long as no actual device is assigned the 00000 identifier. The Instruction Register will need to reside on the data bus as well, but is not included in the above as it is not accessible to instructions (i.e. there are no software instructions to manipulate the IR). The ALU is not addressed by a device number, but will still need to take up a slot on the backplane to output results.