0

I'm trying to understand computer architecture and instructions set,but most of the material is rather cryptic, so I want to know:

What is the difference between RISC/CISC and x86? What instruction set do modern intel CPUs use?

I've been told that CISC instructions are translated to RISC microcode prior to execution, so what's the point of using CISC?

Trey
  • 474
  • 2
  • 9
  • 32
  • @BoPersson I voted for re-opening the question because the question has a lot of aspects which are not covered by the other question. Especially the first part (middle paragraph) of the question is not covered by the other question at all. (The last part of the question is also not exactly what was asked in the other question.) – Martin Rosenau Oct 19 '17 at 06:22
  • 1
    Modern Intel CPUs use the x86 ISA (aka IA-32 and IA-32e aka Intel 64). You can categorize it as CISC if you want, but if you want to know how to make machine code that will run on an x86 CPU, you look at x86 manuals (published by Intel or AMD), not "a CISC manual". See the [x86 tag wiki](https://stackoverflow.com/tags/x86/info) for links to actual docs. CISC isn't an instruction set, it's a way of categorizing an instruction set. – Peter Cordes Oct 19 '17 at 07:11
  • 1
    Why? Because backard compatibility. If you want to make a CPU that can run x86 code fast, you back that into the hardware and it ends up being easier not to *also* include for running some other instruction-set fast. x86 is a mess, but CISC isn't a terrible idea overall. Compact encoding of more work is a good thing for L1I cache and front-end bandwidth. (Splitting into multiple uops is easier than fusing adjacent instructions). See also http://agner.org/optimize/blog/read.php?i=421, a proposal for a new CISC ISA that combines the good features of x86 and other ISAs without the bad. – Peter Cordes Oct 19 '17 at 07:15
  • "CISC isn't an instruction set, it's a way of categorizing an instruction set" can I say the same thing about RISC? – Trey Oct 19 '17 at 07:26
  • On instruction encoding: The 8088 processor in the original PC had an 8-bit data bus, where execution speed was essentially limited by the number of bytes transferred. Having a compact instruction doing a lot of work was a great advantage. – Bo Persson Oct 19 '17 at 08:42
  • 2
    @Trey: yes. There are several different CISC instruction sets (with x86 and x86-64 being the most popular, AFAIK) and there are several different RISC instruction sets (I guess ARM is the most popular, these days). RISC (reduced instruction set) and CISC (complex intruction set) are indeed categories. – Rudy Velthuis Oct 19 '17 at 09:01

0 Answers0