Still have the Mick & Brick book
frank freedman
Posts: 1,977
Spring rearrangement time in the hobby room, this book did not go to Half-Price Books.......
Comments
But even though I tracked down a <BLEEP!> load of AM29 parts, the big problem is now finding the software to properly assemble the microcode. Always wanted to assemble from bit-slice processor parts something with the intelligence to run Linux......
As far as I can see having the ALU and registers (the bit slices) is only a small part of the problem. There is still a ton of other circuitry to wrap around it to make a processor. A huge undertaking.
Linux...oh boy, that's huge. Now you need a memory management unit as well... The biggest problem would be getting Linux compiled for your creation. To to that end it might be an idea to build a processor design for which there is GCC support, MIPS, OpenRISC, RISC V etc.
What puts me off ever attempting such a thing is the lack of a C compiler for the finished machine. But if we could make a RISC V design with 2901's all the tools are available. And no microcode needed!
You need a lot more than the 2901 chips to make a complete microcomputer. It only provides the registers and arithmetic/logic unit. To get a working system you need circuitry to read/write memory, an address counter, and quite a few control signals. That's what the other 12 chips in the 2900 family are for, although 7400 series chips could also be used for that.
Kind of pointless, just for the fun of seeing some 2901's working.
Still you can find microprogram assemblers written by others. Like MetalAsm. There is another microprogram assembler written in Forth as well.
You can also put together a microprogrammed cpu out of 7400 series logic. The Forth people did it with the WISC (Stack Computers by Koopman).
Here's another:
http://www.aholme.co.uk/Mk1/Architecture.htm
https://www.bigmessowires.com/nibbler/
Not as cool and trendy as RISC-V but you can learn how it used to be done. Bit sliced systems powered the space shuttle and a multitude of military aircraft and still do.
Hope this helps.
I believe InnovASIC (after WSI (WaferScale Integration)) (IA59032 => 8 x 2901 - year 2008) was the last one to join the party, perhaps they still have it available/in production.
innovasic.com/upload/productdocuments/IA59032_Data_Sheet.pdf
IDT, a known source of dual-ported async/synchronous ram memories, also seems to had flirted (~1999) with some RISC-alike design, based on bit-slicers and dual-ported memories.
https://idt.com/document/apn/09-dual-port-srams-yield-bit-slice-designs
Cypress also sponsored some efforts(~2010), intended to grab more traction, towards other uses bit-slicers could have.
cypress.com/file/102956/download
I've been having these fantasies of a RISC V built out of AM2901's and a bunch of TTL, ROMS and static RAMS. New RISC done old skool.
But one specific grouping in the AM29 series stands out, they were designed especially for DEC for their systems which were designed around the AM2901.
Several PDP-11 designs used them, as did the LSI-11. But sadly not all.
I'd give anything to find a working H-11 system and that one is a Heathkit designed clone of the LSI-11 series.
I'd have to take a good look at their book again. And of course see for myself what is in it.
Heater, look up the LCC compiler. That there is the clue to the whole problem.
Not really pointless if it's done for the satisfaction of seeing if one can do it. I don't see that creating the microcode would be any more difficult than building the hardware. If necessary it could be done by hand using pencil and paper or with a spreadsheet. I used 2708 chips to convert individual digit and control signals to ascii data that was output as both parallel and serial data. The bit patterns were produced with pencil and paper, converted to hexadecimal, and entered to the eprom programmer by hand. Same thing could be done for the microcode.
Anyway, if I were putting the register file and ALU into FPGA I would not bother emulating the 2901. I did my register file like this: And the ALU like this: To easy
It's just that I'm not attracted to the idea of tweaking with a compiler's code generator when working RISC V tools are available.
But that is just me.
@kwinn, I'm not sure.
When I see "microcode" I think "microcode engine", as described in the AMD 2900 docs. Looks pretty complicated, has it's own sequence counter, subroutine call/return, a stack, etc. You have to build a lot of hardware to do that.
Where as, decoding something like the RISC V instruction set can be done with some simple logic, perhaps PROM lookup to set the control signals. No micro-code stepping.
A "microcode engine" can be complicated or as simple as a counter that can be loaded with a starting address and incremented from there, along with a prom (and possibly some decoding logic) to generate the control signals.
Another option would be to use a Propeller to generate the control signals. It would not be fast enough to make it a practical system but it would certainly simplify the hardware and make the microcode much simpler to create.
Three instructors and I decided to take a road trip from Mare Island (Vallejo) to Santa Clara for a presentation AMD was doing on bit slice. It was related to the course, right? One of the gimme's for the seminar was a copy of the Mick and Brick book. Caught total 7734 for going being a lowly student and bypassing usual channels for permission to go, but was worth it. Never got around to building up a super-16. Time I could afford it, IBM pcs were out, everybody and their brother was coming up with a clone. Super-16 seemed not so worth building up.
Moving on a couple of years, I'm working elsewhere and the PC is overtaking everything. So I put aside thoughts of the 29K stuff.
A couple of years later I was back at Marconi. After a years development of 10 guys on a new project I was testing the code on the real Locus 16 hardware. It did not work. With the help of a logic analyser I figured out that this multi-processor system failed when trying to use some kind of lock-exchange instruction.
"Oh", the processor designers said, "The lock-exchange is not implemented in the microcode of the Locus 16 version you are using"
It was soon fixed. I moved on again. All thoughts of the 29K went out of my mind. As did the whole puzzle of actually building a processor out of anything. I mean, why would anyone do that? The world is full of them.
Decades later, old and grey, I'm getting back into the idea. There is a puzzle there I did not see through to the end....
FYI: he's the brother to the fine individual who launched the open source router project that we call Open WRT.
Anyway fast forward to this year, and I'm no closer, but I certainly have more ideas.