Close

Instruction ROM

A project log for AMBAP: A Modest Bitslice Architecture Proposal

Trying to unify and simplify a minimal architecture for various implementation technologies...

yann-guidon-ygdesYann Guidon / YGDES 11/16/2016 at 02:156 Comments

I have studied the data RAM ( Read/Write circuit) but the instruction memory is not designed yet.

Actually I have not designed an instruction set or format so the following discussion will remain very prospective.

Magnetic memory wouldn't work with relay logic levels. The RAM needs to be refreshed too often. So far the only method that makes sense is an array of switches and diodes.

Ted inspired me to design a modular system with boards that can be swapped in/out for convenient programming and reuse of common code routines, so at least 4 boards are required in a bus. I suppose each board could contain about 32 instructions...

With this modular approach I can implement the program memory boards with various methods :

To ease development, a companion board should be created to provide a visual aid for assembly and disassembly. This is the same idea as the #Discrete YASEP's "hardware assembler" but with relays ;-) Now, maybe the "hardware assembler" should be simply integrated in the actual instruction decoder, to save on hardware and keep up with any ISA changes. A switch will simply determine if the current instruction comes from a front panel (easy for single stepping) or one of the boards... The front panel will provide a first practical interface to develop and debug the execution unit while the actual program counter and instruction memory are being developed.

So basicly, we have an electrical interface : X instruction bits and a strobe...


20161117

TODO : when a code routine is done, hardwire it with RED LED. More voltage drop but OMG it will look so amazing !


20161121

The LED will not sustain enough current to switch the coils (60mA)

Since there will be several program boards of different types, let's ponder what the first ROM will do : initialise all the CCPBRL states to a known value and contain the routine that refreshes the DRAM.

The refresh routine might work as an interrupt and needs to save a few registers before doing its job so a few (2? 4?) scratch registers are needed. How to implement them is a new question to answer...

Discussions

Ted Yapo wrote 11/17/2016 at 23:10 point

You mean use LEDs as diodes in the ROM array?  That's "brilliant" !

  Are you sure? yes | no

Yann Guidon / YGDES wrote 11/17/2016 at 23:30 point

Aren't we already surrounded by LED matrices already ? It wouldn't be innovative... and not "vintage" either but I can do it anyway :-D

  Are you sure? yes | no

Eric Hertz wrote 11/16/2016 at 11:20 point

weee DIP switches :)

  Are you sure? yes | no

Yann Guidon / YGDES wrote 11/16/2016 at 11:32 point

What can be better ?

Oh yes, lots of blinking lights, of course :-D

  Are you sure? yes | no

Eric Hertz wrote 11/16/2016 at 13:08 point

bah... clicking of relays might be on-par with blinking-lights... maybe even better.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 11/16/2016 at 22:49 point

sound is cool, light is a nice touch though ;-)

  Are you sure? yes | no