Re: RISC-V

Les Kitchen via linux-aus <[email protected]>
Newsgroups gmane.linux.australia
Message-ID <[email protected]>
On Thu, Mar 30, 2023, at 05:21, jon.maddog.hall--- via linux-aus wrote:
...
> The architecture also allows for different extensions to the CPU.   
> Here is where floating point accelerators can be implemented as well as 
> GPUs, and other extensions that today we tend to think of as part of 
> the system.   I will note that I programed the DEC PDP-8 "back in the 
> day" and it had only eight basic instructions where the system could 
> not even subtract (much less multiply and divide, much less do floating 
> point)....all it could do was add.   By finding the compliment of the 
> number you wish to subtract, adding it to the minuend and discarding 
> the high order bit you could get the result.

Your observation about the PDP-8's small instruction set
reminded me that one of the early computers (sorry, I can't
remember which one off the top of my head) had only a subtract
instruction for arithmetic.  You could negate by subtracting
from zero, and add by working with negatives, then negating at
the end:

   x + y = 0 - (0 - x - y)

So, subtract is all you need.

I did a fair bit of PDP-8 programming back in the mid-1970s — it
was about half of my Honours project in computer vision.

Yes, you did subtraction on the PDP-8 by forming the
twos-complement negation and then adding.  But I don't think you
needed to explicitly discard any bits.  You got the right answer
by the magic of twos-complement arithmetic (though some stuff
might have ended up in the carry and overflow bits).

The PDP-8 did have an assembler (and an interpreted BASIC-like
language called FOCAL).  But using the assembler was such
trouble (all done on paper tape) that I found it more efficient
to code directly in machine code.  Having only eight opcodes to
remember (and only 4k words of memory to fill) made that
feasible.

> Later on I used a PDP-11/70 time-sharing machine that had no floating 
> point hardware.   Every time you encountered a floating point op-code 
> it caused a hardware exception and did the floating point arithmetic 
> with software, then returned from the exception.  If you had a floating 
> point accelerator the same exception happened, but the hardware 
> accelerator did the work a lot faster, so the return was much faster.

I did most of my Ph.D. work (also in computer vision) on a
PDP-11/45.  Yes, it worked like that: if you didn't have a
floating-point unit you got an illegal-instruction trap on
floating-point instructions, and the handler looked at the
instruction that caused the trap and emulated it in software.
But my recollection is different about the case when you *did*
have a floating-point unit: then the floating-point operations
I think were just executed as instructions — no traps or
exceptions.

It was roughly similar with the early 80386 CPUs, depending on
whether or not you had an 80387 floating-point coprocessor.

> All of this is off the top of my head, and I am tired, so please take 
> this as a generality to demonstrate how a hardware extension does not 
> have to be part of the basic ISA.

Yeah, it's the take-away generalities that matter — about
hardware extension, and about being inventive with getting the
job done within the limits of currently available hardware.

I also remember that one of the early computers didn't even have
a program-counter register — all for the sake of minimizing
hardware.  I think it was one of the PDPs, but I can't track it
down.  It used (core) memory location zero as the program
counter, which the execution cycle could address simply by
clearing the memory-address register.  I leave to you to think
through how this worked.

...
> A nice project.  My project to create the little computer down in 
> Brazil (caninosloucos.org) is closely following and working on RiSC-V 
> chips.

Should that be "over in Brazil"?  Same hemisphere.

Yeah, a nice project.  Good work!  Those Labrador boards look
really interesting.  It looks like you have to go through the
contact form to enquire about buying one.  I couldn't find any
listing of the prices.


— Smiles, Les.
_______________________________________________
linux-aus mailing list
[email protected]
http://lists.linux.org.au/mailman/listinfo/linux-aus

To unsubscribe from this list, send a blank email to
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.