View Single Post
  #7  
Old September 22nd 19, 06:47 AM posted to alt.comp.os.windows-10,alt.windows7.general,comp.sys.ibm.pc.hardware.chips,comp.sys.intel,alt.comp.hardware.amd.x86-64
Jeff Barnett
external usenet poster
 
Posts: 6
Default What is the absolute smallest instruction set do you need to makea working computer?

Yousuf Khan wrote on 9/21/2019 11:00 PM:
On 9/22/2019 12:04 AM, Jeff Barnett wrote:
I haven't looked at the video but (trying to remember from the 1960s)
you need 2 registers and places to branch on either crossing 0.
Essentially one register is the right half and the other the left half
of the "tape" and you are working with 2 characters, etc., etc.. etc.


This particular computer doesn't have any registers, it works directly
on memory. Now obviously in the background, the real chip might have
virtual registers that it uses as a buffer area, but that's completely
out of the control of the instruction set itself.


The machine I'm trying to recall is Turing Complete. In other words it
can implement an interpreter that can "execute" any Turing machine with
any input tape - it's a theoretical machine. If you are talking about a
machine with real components, that's a horse of a different color and
quite puny in comparison. This 2 register machine, with few instructions
was all the theoretical rage some 60 or 70 years ago and was described
in many text books. I thought your original question was fishing for
what I described.

If you are interested in possible real machines, I believe that Dave
Ferguson got a patent in the 1950s or 1960s for a machine that only had
very few op code bits - 2 or 3. The meaning of those bits depended on
the previous instruction executed so one had to be extraordinary clever
in planning code sequences. SDS started to build a machine based on that
concept though I'm not sure it was ever put on the market.

Ferguson actually coded the most unbelievable hack that I ever ran into
but first a word of background: in the 1950s and 1960s IBM card readers
could either read a card by columns or by rows. There were cards that
you could read to boot various computers such as a 709, 7094, 1401, etc.
But note that you needed a different card if the reader was set in row
or column. The operators got it wrong all the time and were quite
frustrated. Ferguson developed a card punch pattern that would boot some
specific machine no matter how the reader was set. To understand the
degree of difficulty, booting meant reading some instructions from a mag
tape some of which overlapped the instructions brought in from the card
reader. There were timing considerations too.

That last paragraph has absolutely nothing to do with this thread's
theme but will I was remembering it, I thought I'd share the story.
--
Jeff Barnett