Archive for the ‘computing’ Category

A simple Demonstration CPU Project

February 21, 2011

It is relatively easy (depending on your skill) to build yourself a demonstration Central Processing Unit.  Since the objective of this project is to demonstrate how things sort of work – there is no effort here to enter the space of advanced technology.  This is a very simple slice of an electronic processing unit.   The function is limited to educational, historical, and hobby interests.

First lets review the components of a processing unit.  Relatively modern “discrete” central processing units contain several modularized components.  First there is the actual binary processor which in a “discrete component” system contains the circuits for executing primitive binary operations.  This processor will have a four bit instruction set which means it can do 16 actual instructions.  It will also have two sets of data input leads as well as one set of data out leads.  Each of these sets will contain four leads – the same as the instruction  word.  In techno-speak four bits is actually known as a nibble, but for this machine the instruction word is four bits.   If the device did not operate on four bits it could not generate or manipulate it’s own instructions which would make compiling or assembling a program a bit tough.  The processor chip will also have a set of “flag” leads, so the state of the processor can be determined.  Additional circuitry will provide power, ground, and perhaps timing signals, etc..  Such a chip is available as the 74181 or 74381.

To support the binary processor we will need several memory devices.  Each of these is typically called a “latch” or “buffer” to connect each set of processor input, output, program, and flag leads with.  A latch saves an input state and stabilizes the voltage output state so the processing unit can make an accurate computation.  A typical latch or buffer will use an externally generated trigger signal to lock or clear it’s state. Latches holding input data for the processor will present their output to the processors input leads.  When computation is finished and the result posted on the output leads, the output latch saves and holds the set of output voltages so the storage system can record the result.   The latch holding  output for the processor will take its input from the processor as it’s input leads “face” the processor.  The 7475 or many of it’s variations would serve the 74181 series of operation processors.

To actually use the processor a “sequencer” is needed to choreograph the processing events.  Typically a processor would start by clearing and latching any input, program and flag data. Once these inputs are latched, the sequencer signals the processor to compute and then latches the output preserving the computation.  The sequencer can then restart the process of loading input data wile waiting on the output to be read, but must wait long enough for the read process is finish before proceeding with the next computation.  If slices are added to create a longer data word then carry flag circuitry must be added, chained together. and the sequencer adjusted so the carry operations have time to complete.

A sequencer can be constructed using a 4 bit counter to drive the inputs of a 74154 chip. The counter is driven by a “clock” signal obtained from a crystal controlled oscillator.

More advanced systems would add “register” memory which typically contain 16 latches/buffers/registers in an integrated array.  The 7489 should serve this function.  Once registers are added however the instruction word must be increased so the instruction can designate input and output registers.

Of course if you have an interest in making the slice cpu useful, eight are needed for a 32 bit address and instruction word. Their carry flags also need to be chained together for math operations. Also you will need some external main memory to write data into and read data and instructions from.  When you get the slices integrated together, you will have a machine which preforms much like an old mainframe computer.

Russian programmers manipulation of markets

July 6, 2009

If someone else could use this program to unfairly manipulate markets…  I presume that is exactly what “the bank” has been doing with said software. If this program was neting them millions and millions of bucks, I think you can bet they were using it to their own maximum advantage. Were other banks targeted by “the bank” using this program, or some similar technology, offensively? I think a US attorney should be looking into how “the bank” was using as well as mis-using this technology.

One other thing – as a software developer, we often insert clauses into contracts to protect our interests – particularly if our own prior art is involved. The defendant in this case is at least somewhat of an expert on image and neural processing. They would not be paying him 400K per year, if he were not. Any software expert would insert a clause into his employment contract, allowing himself a legal copy or “fork” of the code he developed. He would also insist on a clause maintaining his right to continue developing his “fork”. This would be particularly applicable if the developed system contained methods or algorithms he had previously designed, developed, or invented. This could be how the defense can say they have broken no law. It would also mean “the bank” is using the government, and the legal system, to break an otherwise legally binding employment or consulting contract.

Some other US attorney should also be asking what this software had to do with the price of oil one year ago…