cisc…again!!! (and a bit o’ risc, too)

27
CISC… AGAIN!!! (and a bit o’ RISC, too) by Javier Arboleda

Upload: teigra

Post on 25-Jan-2016

51 views

Category:

Documents


3 download

DESCRIPTION

CISC…AGAIN!!! (and a bit o’ RISC, too). by Javier Arboleda. Agenda. Brief History An example of “Closing the semantic gap” Drawbacks of CISC Interesting RISC vs. CISC stuff. CISC’s Roots. Back in the 70’s memory & software = $$$ Hardware… not so much $ - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CISC…AGAIN!!!  (and a bit o’ RISC, too)

CISC…AGAIN!!! (and a bit o’ RISC, too)

by Javier Arboleda

Page 2: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Agenda

Brief History

An example of “Closing the semantic gap”

Drawbacks of CISC

Interesting RISC vs. CISC stuff

Page 3: CISC…AGAIN!!!  (and a bit o’ RISC, too)

CISC’s Roots

Back in the 70’s memory & software = $$$

Hardware… not so much $ Move burden of code from software &

memory to hardware “Closing the semantic gap”

Page 4: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Department of Redundancy Department

So, to reiterate, CISC architecture type was created to :Reduce software developing costs by making

compilers easier to write and code easier to debug

Reduce calls to memory, thus making it possible to do more with less memory which at the time was the most expensive part of a computer system

Page 5: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Exempli Gratia = E.G. != I.E.

Let’s pretend that…H is the name for a high-level language. This

language has a function Cube() which will cube an integer

H compiler translates code into assembly language for the A-1 computer, which only has two instructions

Page 6: CISC…AGAIN!!!  (and a bit o’ RISC, too)

A-1 Computer Instructions

Move [destination register, integer or source register]

This instruction takes a value, either an integer or the contents of another register, and places it in the destination register. So Move [D, 5] would place the number 5 in register D. Move [D, E] would take whatever number is stored in E and place it in D

Mult [destination register, integer or source register]

This instruction takes the contents of the destination register and multiplies it by either an integer or the contents of the source register, and places the result in the destination register. So Mult [D, 70] would multiply the contents of D by 70 and place the results in D. Mult [D, E] would multiply the contents of D by the contents of E, and place the result in D

Page 7: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Pre-CISC exampleStatements in H Statements in

Assembly for A-1 computer

1. A = 20;2. B = Cube(A);

1. Move [A, 20]2. Mult [A, A]3. Mult [A, A]4. Move [B, A]

Here it takes four statements in the A-1 assembly to do the work of two statements in H since the A-1 computer has no instruction for taking the Cube of a number

Page 8: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Three possible problems

1. If the program H uses Cube() many times, then assembly code will be relatively larger, which is bad for the A-1 computer that has very little memory

2. With computer speeds being so slow, compiler takes a long time to translate all of the Cube() statements to multiple Mult[] instructions

3. Programming in assembly language would be time consuming, tedious, and difficult to debug

Page 9: CISC…AGAIN!!!  (and a bit o’ RISC, too)

How does CISC solve this problem?

Include a Cube instruction in the instruction set of the next generation of computers, A-2

Cube[destination register, source register] This instruction takes the contents of the source register and cubes it. It then places the result in the destination register. So Cube [D, E] takes whatever value is in E, cubes it, and places the result in D

Page 10: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Post-CISC exampleStatements in H Statements in

Assembly for A-2 computer

1. A = 20;2. B = Cube(A);

1. Move [A, 20]2. Cube[B, A]

One-to-one correspondence between H and assembly code

“Semantic gap” is closedComplexity has moved from the software level to the

hardware level

Page 11: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Result

Compiler does less work to translate Less memory needed Easier to debug

Page 12: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Drawbacks

When using an instructions set with so many instructions, the decode function of the computer system must be able to recognize a wide variety of functions. As a result, the decode logic, while time critical for purposes of performance, grows to be quite complex

Not every one of the complex instructions are used for each software program, and thus much of the decode logic functionality is seldom used during operation

Another problem arises from the fact that the complex instructions are often of different lengths, i.e., each instruction could consist of any number of operands and takes any number of cycles to execute

Page 13: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Here comes the 80’s and a….

Page 14: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Birth of RISC & CISC???

RISC = Reduced instruction set computer Previous to RISC, CISC was not called

“CISC,” it was just the “really good way to do things computer” or RGWTDTC (just kidding)

The term “complex instruction set computer” was forced upon anything else that was not RISC

Page 15: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Bloody hell, it’s obvious that RISC and pointy hats are the future, mate!!!

Pipelining… BRILLIANT!!

Page 16: CISC…AGAIN!!!  (and a bit o’ RISC, too)

RISC = GOOD!!!!CISC = BAD!!!

RISC > CISC

Page 17: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Are you ready to rumble?

RISC CISC

VS

Page 18: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Warning, Geeky Conspiracy Theory Ahead

Page 19: CISC…AGAIN!!!  (and a bit o’ RISC, too)

CISC + Pipelining = i486

CISC chips started using pipelining with the Intel i486 processor. Now what, RISC?!?

Several years later Apple starts using the G3 (third generation PowerPC processors)

This was a RISC chip which actually had more instructions than Intel’s Pentium II CISC processor!

Hold up, Isn’t RISC suppose to have a reduced number of instructions? Isn’t that why RISC is so much better than CISC?

Page 20: CISC…AGAIN!!!  (and a bit o’ RISC, too)

RISC’s people: “What we meant…”

Proponents of RISC started to claim that the actual number of instructions was never intended to be reduced; rather, only the individual instructions themselves were to be reduced in cycle time and complexity

All the hoopla was speculated to have been generated from Apple’s camp and users who must insist that the processors in their Macs are pure RISC chips, since

Page 21: CISC…AGAIN!!!  (and a bit o’ RISC, too)

RISC = GOOD!!!!CISC = BAD!!!

RISC > CISC

Page 22: CISC…AGAIN!!!  (and a bit o’ RISC, too)

10 Years

The argument about RISC being so much better than CISC starts to quiet down, and why?

What announcement did Apple make in 2005?

Page 23: CISC…AGAIN!!!  (and a bit o’ RISC, too)

No more PowerPC for Apple,

Now it’s all about Intel!

Brilliant!!

Page 24: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Hilarious!!

Page 25: CISC…AGAIN!!!  (and a bit o’ RISC, too)

In Conclusion…

CISC chips dominate the personal computer market

Line between RISC and CISC continues to blur

The RISC > CISC || CISC > RISC debate is unheard of

Page 26: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Thank you!

Page 27: CISC…AGAIN!!!  (and a bit o’ RISC, too)

Sources

http://arstechnica.com/cpu/4q99/risc-cisc/rvc-1.html http://www.amigau.com/aig/riscisc.html http://www.pcguide.com/ref/cpu/arch/int/instComplexity-

c.html http://en.wikipedia.org/wiki/

Complex_instruction_set_computer http://en.wikipedia.org/wiki/RISC http://en.wikipedia.org/wiki/X86 http://en.wikipedia.org/wiki/PowerPC