Tuesday, November 6, 2012

Unfreezing the Architecture

A few posts ago, I stated that I planned to freeze the architecture as soon as I got the microcode assignments worked out.  There has been a change of plans.

I am now considering using Warren Toomey's Mack architecture, shown in this forum post.  It is a simpler 16-bit half-address design.

Advantages of switching:
  • A 16-bit architecture will help with the implementation of various compilers and coding in general.
  • Implementing the computer will be much simpler.
  • The 4 general registers, each of which can also be used as an address, will be much more flexible.
  • It has an essentially 1-cycle design, making it that much more simpler to build, profile, and time.
  • With an advanced memory controller, certain aspects of memory management become much simpler.
Disadvantages:
  • It can only load the first general register with an immediate value.
  • There is no indexed addressing.
  • It has no native stack, though one of the general registers can be used.
  • Working around various "features" of the design (no interrupts, no reading or writing program memory) will require a much more complex memory controller.
  • It will become much more repetitive to build because of the 16 bits.
Those are the basic advantages/disadvantages I've seen.
I've also been coding a few basic Forth primitives in Mack, and it seems much simpler and shorter than in my 6502-esque ISA, mainly because of the extra registers and native 16-bit.  Undoubtedly, something like Small-C will become much easier to code too.

Anyways, I'll think on it a few more days.

Saturday, November 3, 2012

A Change of Plans

As you may recall, I had planned to get the model working in a simulator before actually constructing it.  However, after reviewing the activities of the last weeks, I have found that I prefer doing actual things than using the simulator.  With that said, I plan to begin hardware construction as soon as I can get the chips and plan finalized.

I still think that a microcode model is worth it, however, to debug any mistakes in the microcode or code.

You should see some actual stuff happening really soon.  I am looking forward to it!

Monday, October 22, 2012

Microcode Stuffing

I've been thinking a lot in he past few days.  First I wanted to establish a 32-bit microcode, instead of the current 24 bits.  Then I realized that I will need bigger EEPROMs than I already had, and decided to scrap the 32-bits.  Now, I think, I'll need to either take away some hardware capability or move to 32 bits.
This afternoon, I was thinking about how wide the microcode needs to be.  I decided to do a "final" estimate representing the architecture as it is now.  I came up with an estimate of 25 bits, just one over my target.  I have 2 microcode bits currently selecting whether to increment or decrement the stack pointer or increment the program counter.  If I need, I will probably reclaim one of those bits by making all SP increments or decrements happen in microcode.  Although this won't affect most instructions, it will add a cycle to every push, and more importantly add 2 cycles to every JSR, 1 cycle to every RET, and 5 cycles to every INT/RTI pair.
In other news, I have added another temporary register to the design in order to be able to use (zp),Y addressing.  This completely fills up the ALU buses, so no more registers can be added.  I'm also working on the simulator and a microcode assembler.

Once the microcode issues clear up, I can make a final block diagram. See you then!

Monday, October 15, 2012

Too Many Ideas

My mind is overflowing with ideas for the Hack Minimax.  Not only am I redesigning the memory mapping unit, I am also trying to figure out how I will generate video and generally communicate with the real world.  I also have plans to add another 8 bits to the microcode word, as my current 24 bits are packed extremely tight.  Also included in my thoughts are a retarget of the classic Small-C compiler and an assembler.
In other news, I finished my SUBLEQ simulation.  I found a 74181 Logisim library and have designed another vital chip - the 74161.
As to the calculator, I will be pretty busy this week but hope to start redesigning the interface over the weekend.
See you soon!

Monday, October 8, 2012

I'm back! (Again)

Sorry that I haven't posted for a while. I'll try to keep up.

I have decided, after reviewing the shortcomings of the previous platform (most notably that it doesn't support interrupts), to go with a different architecture. I apologize to all that came from the TECS forum and I promise that I will eventually write a Hack emulator.

In lieu of the Hack microarchitecture, I am going to use a 6502-based microcoded architecture.  For those who don't know, the 6502 is an 8-bit microprocessor that was very popular in its day.  I have a very nice design for the microarchitecture I just made about 30 minutes ago that fits into a 24-bit horizontal microcode.

I am also going to call a halt to all hardware until I inventory my already-owned chips, design schematics, and simulate them successfully.  To that extent, I am learning how to use Logisim by designing a test 8-bit SUBLEQ computer.  After that, I will need to design simulations of each individual MSI chip, then combine them in my simulation.

While I haven't posted in a while, I've been doing some thinking about the capabilities of the HM. I am designing a paging system and I/O extenders.

See you (hopefully) soon!

Friday, June 8, 2012

I'm back!

I haven't posted for a while, but I actually have gotten a lot of the computer done.  However, new changes in the project will force me to start over on some of the pieces:

  1. I had been wiring the Hack Minimax by grouping each register together.  However, this will be a nightmare to wire, so I am deciding to rather create miniature 4-bit "slices" of  the computer.  Not only will this simplify the wiring, it will grant a degree of extensibility to the computer.  I can run programs with only 8 bits done, and if I ever need to, I can always extend the computer to 24 bits or beyond.
  2. I had been using the 74181 as my ALU, but the 181 doesn't support some of the operations the Hack Minimax needs.  Most importantly, it only allows some operations on some registers.  I will rather be constructing the ALU out of lower-level gates.
I will post some pictures up soon, but I will not post them for the next 2 weeks while I am at summer camp.

Tuesday, February 21, 2012

A Trip to Radio Shack

Over the weekend I went to Radio Shack for the third time and got a lot of stuff.  This includes TWO 5v power supplies, one huge one that can supply a whopping 18 amps (!) and a portable 3 amp one.

I also got another box of stuff from Mouser, some new wire cutters, the giant plastic container for the computer, and other various things.

Those are mostly giant 800-point breadboards in the plastic container.















Left:  The huge power supply.
Right: The smaller one.











With my new soldering iron from the Shack, I was sure I would get soldering right. Of course, the tip managed to oxidize in the time it took me to strip the end off a wire.  I have completely given up on soldering at this point.

Now begins the search for a DIP-pin enabled pushbutton switch.

With a power supply, I can finally begin the construction of the CPU.


Right: A cute 14-pin DIP 7-segment LED display.  I have two.