[comp.arch] RISC

arnold@geac.UUCP (10/22/87)

I have been hearing a lot about this new Reduced Instruction Set C?
technology...well I understand that if you restrict yourself to a
small instruction set and run it fast you get faster compiled 
programs (I guessed this was the assumption). But I have been unable
to find out just what the hardware differance is (though I have
heard referance to arrays?(I think that was it)).
So could someone out there explain a bit?
		thanx

collier@charon.unm.edu (Uncia Uncia) (10/25/87)

i would be grateful if someone could provide a quicky review
of the MIPS pipeline. i have forgotten the details but if i
remember correctly it was very simple and elegant, so perhaps
it wouldn't take up too much of someone's time.


-- 
Michael Collier		University of New Mexico Computing Center
			2701 Campus Blvd.
			Albuquerque, NM  87131

...!ihnp4!lanl!\
		unm-la!unmvax!charon!collier
...!cmcl2!beta!/

mash@mips.UUCP (John Mashey) (11/02/87)

In article <1656@geac.UUCP> arnold@geac.UUCP writes:

>I have been hearing a lot about this new Reduced Instruction Set C?
>technology...well I understand that if you restrict yourself to a
>small instruction set and run it fast you get faster compiled 
>programs (I guessed this was the assumption). But I have been unable
>to find out just what the hardware differance is (though I have
>heard referance to arrays?(I think that was it)).
>So could someone out there explain a bit?

Well, it's not really new [Seymour Cray has been designing RISCy machines
for eons, the IBM 801 is well over 10 years old, and various folks
(Pyramid, Ridge) have been selling RISC machines for a while.]  The only
really recent part is doing it in VLSI, and the ramifications thereof.
There have been many discussions in this newsgroup, so rather than repeating
them, how about just a few good references:

1) John Hennessy, "VLSI Processor Architecture", IEEE Trans on Computers,
C-33, no 12, Dec 1984, 1221-1246.

2) David A. Paterson, "Reduced Instruction Set Computers", Comm. ACM 28,
1 (Jan 1985), 8-21.

3) George Radin, "The 801 Minicomputer", ACM SIGARCH 10, 2 (March 1982).
-- 
-john mashey	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
UUCP: 	{ames,decwrl.prls,pyramid}!mips!mash  OR  mash@mips.com
DDD:  	408-991-0253 or 408-720-1700, x253
USPS: 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086

mash@mips.UUCP (John Mashey) (11/02/87)

In article <1710@charon.unm.edu> collier@charon.UUCP (Uncia Uncia) writes:
>i would be grateful if someone could provide a quicky review
>of the MIPS pipeline. i have forgotten the details but if i
>remember correctly it was very simple and elegant, so perhaps
>it wouldn't take up too much of someone's time.

See Moussouris, et al, "A CMOS RISC Processor with Integrated System Functions",
Proc IEEE COMPCON, SanFrancsico, March 1986, 126-143, for the details.

The integer unit is basically a 5-stage pipe:
	I-cache reference (instruction fetch)
	Register Fetch / Decode / next PC determination
	ALU / Address calculate
	Data-cache  / memory  access
	Write-back to register file

IF	RD	ALU	MEM	WB
	IF	RD	ALU	MEM	WB
		IF	RD	ALU	MEM	WB
			IF	RD	ALU	MEM	WB
				IF	RD	ALU	MEM	WB

This is a simplification: some things happen on half-cycle boundaries,
and virtual-physical translations are also happening in an overlapped
fashion.
-- 
-john mashey	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
UUCP: 	{ames,decwrl.prls,pyramid}!mips!mash  OR  mash@mips.com
DDD:  	408-991-0253 or 408-720-1700, x253
USPS: 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086

colwell@mfci.UUCP (Robert Colwell) (11/11/87)

>Well, it's not really new [Seymour Cray has been designing RISCy machines
>for eons, the IBM 801 is well over 10 years old, and various folks
>(Pyramid, Ridge) have been selling RISC machines for a while.]  The only
>really recent part is doing it in VLSI, and the ramifications thereof.
>There have been many discussions in this newsgroup, so rather than repeating
>them, how about just a few good references:
>
>1) John Hennessy, "VLSI Processor Architecture", IEEE Trans on Computers,
>C-33, no 12, Dec 1984, 1221-1246.
>
>2) David A. Paterson, "Reduced Instruction Set Computers", Comm. ACM 28,
>1 (Jan 1985), 8-21.
>
>3) George Radin, "The 801 Minicomputer", ACM SIGARCH 10, 2 (March 1982).
>-- 
>-john mashey	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
>UUCP: 	{ames,decwrl.prls,pyramid}!mips!mash  OR  mash@mips.com
>DDD:  	408-991-0253 or 408-720-1700, x253
>USPS: 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086


But please keep in mind that there is still room for other opinions
here...I see almost nothing RISCy about Pyramid or Ridge.  Pyramid
seemed like a RISC to the novice because it had lots of registers
organized in windows, which was like RISC-I, and RISC-I is a RISC,
so Pyramid must be too?  No way, unless you think the IBM 801 was
not.

By the way, all three of the above papers were reprinted in Stallings'
recent 'Reduced Instruction Set Computers', IEEE catalog EH0251-9.

I notice that nobody has taken up Wirth's challenge at the ASPLOS-II
conference concerning the dangers inherent in the current approach of
"performance above all else".  He mentioned items like undetected
integer overflows and broken floating point processing as being the
norm.  I bet he knows this, but he didn't mention it.  The
problem is that when you've got several streams of floating point
operations in the air at the same time, you could have a royal mess
if any one of them takes an exception AND you have to handle it a la
IEEE.  One way out is to have the exceptions be flagged in a sticky
register, and check that register at the completion of the
computations; if clean, you win.  If you do the flops sequentially,
you can tell the user exactly what went wrong and where, but it won't
help -- you won't have any users, because they'll have bought someone
else's machine.

-- Bob Colwell   {yale!mfci!colwell}  {203-488-6090}
-- (pretend there's a standard generic disclaimer here)

mash@mips.UUCP (11/12/87)

In article <197@m2.mfci.UUCP> colwell@m6.UUCP (Robert Colwell) writes:
>here...I see almost nothing RISCy about Pyramid or Ridge.  Pyramid
>seemed like a RISC to the novice because it had lots of registers
>organized in windows, which was like RISC-I, and RISC-I is a RISC,
>so Pyramid must be too?  No way, unless you think the IBM 801 was
>not.
Pyramid RISCyness has been debated before in this newsgroup;
personally, it seems like being on the CISCy edge of RISC to me,
or RISCy edge of CISC, but it didn't seem reasonable not to mention it.
Also, somebody from Celerity complained (probably fairly) on not
being included in the list.  
What's un-RISCy about RIDGE? (allowing non-VLSI designs to be RISC)
In any case, this wasn't supposed to be a definitive list, or
detailed analysis, or any such thing, especially since we all know
there's no such thing as a sharp boundary between RISC and CISC anyway.
Certainly, the 801 is on the RISCy side of all this.

>I notice that nobody has taken up Wirth's challenge at the ASPLOS-II...
>integer overflows and broken floating point processing as being the
>norm.  I bet he knows this, but he didn't mention it.  The
>problem is that when you've got several streams of floating point
>operations in the air at the same time, you could have a royal mess
>if any one of them takes an exception AND you have to handle it a la
>IEEE.  One way out is to have the exceptions be flagged in a sticky
>register, and check that register at the completion of the
>computations; if clean, you win.
	 Just out of curiosity, what DOES Multiflow do on this?
One of your OS folks gave a good talk in my session at USENIX, but
I don't recall how the IEEE-exception-handling was done.
-- 
-john mashey	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
UUCP: 	{ames,decwrl,prls,pyramid}!mips!mash  OR  mash@mips.com
DDD:  	408-991-0253 or 408-720-1700, x253
USPS: 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086

krish@weitek.UUCP (Krishnan Sridhar) (08/27/88)

Several articles have been posted in this group in the recent past comparing
the performance of certain benchmarks on different types of machines, most 
notably RISC machines.

Just what EXACTLY is RISC? I know it's an acronym for Reduced Instruction Set
Computer i.e., the intruction set is a lot simpler and smaller and therefore,
can be executed directly in hardware much faster. I am also aware of the
concept of register file windows (from RISC II - was it GOLD or BLUE or
neither?). Apart from these two concepts, are there any others unique to RISC
architecture? Frequently, I hear the term "Load-Store Architecture" applied
specifically to RISC machines. What *exactly* does it mean and what are it's
implications in the architecture of a machine?

Much has been talked about RISC in the past year or so, with the introdution
of RISC processors from SUN, MIPS, MOTOROLA etc. Is the concept of RISC really
that revolutionary, or is it just another infinitesimal addition to the list
of buzzwords already floating around?

Please note that I am not trying to critique RISC architecture in any way. My
exposure to RISC is limited and I would really appreciate getting responses to
my questions from people out there in the arch.comp land.

Thanks much in advance.

P.S.   Also a list of references and/or books on RISC will be appreciated.

       My apologies, if this topic has already been beaten to death; I am
       fairly new to this net.