Day 8
Ok we left off having given a very dry basic description of nearly all of the ALU functions I don't foresee myself adding a whole lot to this area as it is very compact essentially being just 4-6 relays per bit and there is little I can add to the function of the system itself excluding perhaps adding new functionality. This may be a project in and of itself so if I do tackle it it will be after I have built and deployed this computer then and only then will I start adding things to it. The only part of the ALU itself not yet mentioned is the left shift circuit which like all the others is always done but only read when necessary. The left shift is a simple function of shifting each wire 1 position to the left and the leftmost wire wraps around to the rightmost bit position. with this function we can recurse the function multiple times to cycle through all states of left or right shift, this wrap around function makes the shift a circular left shift. The advantage here is we can keep the instruction set simple with only a single shift instruction that we simply need repeat a number of times to allow for any amount or direction of shift(once for a single left shift 7 times for a single right shift and so on. With all of the functions occurring simultaneously we need only control which state gets fed onto the bus as our result this is accomplished with several enable circuits these are simply 2 relays that accept the enable signal on the coil closing the switches and allowing the result to flow onto the bus. There is also included in the ALU a zero detect circuit that reads the result bus and indicates if a zero response is given. Also present is the sign bit on the bus which is read from the most significant bit a 1 indicates a negative number a 0 a positive this is simply read directly from the bus with no extra parts. Obviously this is only a basic overview of the papers given for the Harry Porter computer and his information goes into much more detail but is also full of theory that I already have a solid grasp on so I've boiled it down to the descriptions and the functions I see as necessary and/or difficult for me to personally understand.
On the enable circuits they are fed their states from a 3 to 8 decoder that converts the function operation from a 3 bit binary number to an 8 bit enable output thus allowing only 1 of the ALU's functions to be carried out easily and reliably . There are in fact only 7 functions the ALU can carry out at the moment which would appear to leave room for another function later to be added should any single function be advisable when in fact the not used function is necessary for incrementing steps where other information is flowing over the data bus. If more functions are desired a 4 to16 or larger decoder will be required adding great complexity but with the benefit of greater usability. This is in fact a direction I am very much considering going after initial build and testing is complete.
In the coming days I will try and draw up a complete ALU as I have studied it just to get a feel for it's build. Next will be the registers a crude but fascinating form of memory storage which will likely lead to the first prototype builds I intend to attempt in a few weeks. My first prototyping build will be a 2 or 3 bit version of the ALU with registers and led indicators. I will also be taking some time to revisit the Relay Computer 2 ALU and register just to see if that makes more sense now that I've got some basic learnin under my belt.
No comments:
Post a Comment