View Single Post
  #13  
Old September 22nd 19, 09:07 PM 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
J. P. Gilliver (John)[_3_]
external usenet poster
 
Posts: 24
Default What is the absolute smallest instruction set do you need to make a working computer?

In message , Roger Blake
writes:
On 2019-09-21, Yousuf Khan wrote:
What's your guess? 100 instructions? 50 instructions? 10? Would you
believe just 1 instruction!? And that instruction is implied, you don't
even need an opcode for that! And you're not going to believe what that
one instruction is either! This video explains how it's possible.

https://youtu.be/jRZDnetjGuo


Interesting. In terms of commercially-successful CPUs the most minimal
I've worked with was the DEC PDP-8, which had 8 instructions (3-bit opcode).
However, one of those (OPR) permitted the programmer to combine several
operations into one instruction cycle by setting the appropriate bits.


The first computer I learnt on had 8 instructions (3 bit opcode); it was
a "computer" by Mr. Parr's definition of having a conditional jump among
its op.s [as opposed to a programmable calculator - common at the time,
1970s, which didn't], where the decision was based on the result of (in
this case) previous instructions. (The one-opcode answer given above
qualifies, as it is subtract-and-jump-if.)

The PDP-8 was a 12-bit word-oriented machine sold from 1965-1979. Early
models used discrete transistors, the last models were CMOS microprocessors.
There was also a serial model that operated on one bit at a time - slow!!
No stack was employed - subroutines worked via the caller writing the
return address into the first word of the called routine. Fun times!

BRENDA (BaRnardian Electronic Numerical Demonstration Apparatus) was a
7-bit machine (16 memory locations); it _was_ a serial machine, also
operating in ones complement, instead of the now-universal twos
complement. It looked like everybody's idea of a computer then: a wall
of filament bulbs (one for each bit in each memory location, plus the
other registers such as accumulator, prog. counter, etcetera). No
subroutines. It was the shape and size of the luggage space of a Hillman
Imp (British car of the time), as that's where HCP built it. It was
modular, using transistors - I believe he actually got the fourth form
[tenth grade I think] one year to make the modules.

I can still remember the opcodes:
Z clear accumulator
A address add the contents of address to accumulator
S address subtract the contents of address from accumulator
T address transfer accumulator to address
I address stop for input (which went into address)
J address jump to address+1
K address conditional jump (if negative IIRR) to address+1
E stop
Note that Z and E - 000 and 111 - had no parameter; a wily programmer
used those to store constants.

Mr. Parr produced a booklet, including some exercises; they started with
simple things like 3a+b (Z, A15, A15, A15, A14, E) and running totals
(I15, A15, J15), but leading up to the 50th example which was IIRR
calculate the highest common factor of two numbers (which I never
managed).
http://forum.6502.org/download/file....7446aed16b6825
d2bb7c5999023c
http://forum.6502.org/viewtopic.php?f=3&t=2333
--
J. P. Gilliver. UMRA: 1960/1985 MB++G()AL-IS-Ch++(p)Ar@T+H+Sh0!:`)DNAf

Q. How much is 2 + 2?
A. Thank you so much for asking your question.
Are you still having this problem? I'll be delighted to help you. Please
restate the problem twice and include your Windows version along with
all error logs.
- Mayayana in alt.windows7.general, 2018-11-1