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.

Monday, February 13, 2012

A Soldering Iron, Part 2

I got another soldering iron.  Of course, the solder will not stick to the PCB.  Back to the drawing board for the regulator.

I recieved a heatsink compound, which I will not be using because the solder won't stick to the PCB!

More Mouser components are coming - a potentiometer for the clock control, a few more ICs, decoupling capacitors, 80 more LEDs, some more EEPROM, and a variety of resistors.

Wednesday, February 8, 2012

A Soldering Iron: Part 1

I have ordered another soldering iron.

Meanwhile, operations are at a standstill.  Things will be picking up, though, once I obtain a working iron.

Just some notes:

  • The 5V regulator will be constructed using the "Manhattan" style of unmarked PCB building.  This will add some extra capacitance to ground, but I'm already adding 200 uF; what more can a few pF do?
  • I just got what I hope is my last breadboard, bringing my total up to eight.
  • I also received a huge plastic container to be used as the case.
  • If anyone can find a place to get 24 gauge solid wire, please contact me in the comments and/or email me.
A picture of the COMPLETED regulator will hopefully be forthcoming.

Tuesday, February 7, 2012

Parts and a Broken Soldering Iron

All of the materials came Thursday.  Here are some pictures:























And this is what I will use to create the voltage converter:







Unfortunately, my soldering iron broke, so I have to get a new one.  Updates on progress will follow.

Sunday, January 29, 2012

The Components are Coming

I have just ordered all the components left to order for the computer.  Hopefully they will come within the next few weeks.  I shipped them using the postal service, so no guarantees.

Pictures will be coming, probably starting with the general-purpose AC line voltage to 5 volt converter.

Wednesday, January 25, 2012

EEPROM Troubles

All sorts of stuff is coming in, and along with it I realized that I didn't get enough EEPROM.  Good thing it was on the website where I am ordering the rest of my components.

Saturday, January 14, 2012

Architecture

That last post had been sitting in Drafts for over 2 weeks, so I felt like I just had to get it out.  Anyway, most of the parts have either been ordered or are in shopping carts.

The general architecture is pretty striaghtfoward.  It was mostly taken from the book The Elements of Computing Systems, by Noam Nisan and Shimon Schocken.  Probably its most attractive feature is that its control logic consists of 2 or 3 ICs containing in total maybe two dozen MOSFET transistors.  Most of the instructions are essentially microcoded.  For example, as long as bit 15 of the instruction is 1, bits 11-6 of the opcode go directly to the ALU.  The computer is a Harvard architecture, but that can easily be modified into a  modified Harvard architecture.

So, anyway, I will be quite possibly posting a variety of pictures at some point.

In The Beginning

I am building myself a 16-bit computer.

You all think I'm crazy, right?  I mean, "Who builds themselves a computer?"  Well, I do.  Honestly, it's more interesting than just getting any old computer from Best Buy.  (Note to Best Buy:  This is not intended to be offensive.)

More details will follow.