According to Wikipedia, x86 is a CISC design, but I also have heard/read that it is RISC. What is correct? I'd to also like to know why it is CISC or RISC. What determines if a design is RISC or CISC? Is it just the number of machine language instruction a microprocessors has or are there any other characteristics that determine the architecture?
Asked
Active
Viewed 6.5k times
51
-
3I don't have time to write up a full answer, but yes, the raw x86 instruction set architecture is CISC on the surface (lots of complex instructions which could be replaced by series of simpler instructions). But under the hood, in many x86 CPUs, it's RISC-like -- it uses microcode to convert complex instructions into simpler ones, and then it executes those simpler instructions. – Adam Rosenfield Oct 25 '12 at 14:58
-
10This question is on topic: * software tools commonly used by programmers (instruction sets) * practical, answerable problems that are unique to software development (understanding instruction set architectures) – Brent Bradburn Nov 15 '13 at 15:56
2 Answers
58
x86 is a CISC architecture. The number of instructions is a big factor as all cisc architectures with all more instructions. Furthermore as instructions are complex in cisc they can take >1 cycle to complete, where as in RISC they should be single cycle. The main differences are found here:
+------------------------------+------------------------------+ | CISC | RISC | +------------------------------+------------------------------+ | Emphasis on hardware | Emphasis on software | | . | | | Includes multi-clock | Single-clock, | | complex instructions | reduced instruction only | | . | | | Memory-to-memory: | Register to register: | | "LOAD" and "STORE" | "LOAD" and "STORE" | | incorporated in instruction | are independent instructions | | . | | | Small code sizes, | Low cycles per second, | | high cycles per second | large code sizes | | . | | | Transistors used for storing | Spends more transistors | | complex instructions | on memory registers | +------------------------------+------------------------------+
For further research consult here: http://www-cs-faculty.stanford.edu/~eroberts/courses/soco/projects/risc/risccisc/

StuartLC
- 104,537
- 17
- 209
- 285

mikeswright49
- 3,381
- 19
- 22
-
And if we consider that an x86 can execute several instructions per clock cycle, what have we then got? – Bo Persson Oct 25 '12 at 16:37
-
If we can execute several instructions per cycle then the x86 would have the ability to do parallel processing. – mikeswright49 Oct 25 '12 at 17:10
-
25The x86 **instruction set** is CISC, but (modern) x86 **architecture** is RISC (inside) – phuclv Nov 14 '13 at 01:46
-
-
2This post also puts a lot of light into this - Adding this because this is the first google result. http://stackoverflow.com/questions/5806589/why-does-intel-hide-internal-risc-core-in-their-processors Also, we may need that table updated - I don't believe single core is a requirement for RISC processors anymore. – IceMage Sep 06 '16 at 18:13