|
Authored by: sproggit on Wednesday, May 02 2012 @ 07:18 AM EDT |
Completely agree with you... CISC architectures like x86 achieve higher-order
functions [such as multiplication] by implementing extra functionality in what
you describe as "microcode" but which is essentially hard-coded
software. You could achieve similar results [only a lot more slowly] by putting
the functionality, in binary machine instructions, into a PROM chip that fell
within the addressing range of the main processor core. Essentially [this is my
limited understanding] is that the micro-code functions are exactly like methods
[subroutines] that the processor executes when it receives a given op-code
instruction.
For example, some early chips supported an instruction such as "MUL"
which will take two numerical inputs, compute the product, and leave the result
in one of the on-chip registers (i.e. an accumulator). Because MUL is
essentially a refined form of looping "ADD" instruction, exactly as
you describe, the chip designers implement "MUL" in microcode, whereas
"ADD" might be wired into the chip's ALU.
In the early Intel product family, x86-based computers could be augmented with
x87 "Maths co-Processors" that speeded-up math processing by providing
commonly-used math functions in a piece of dedicated silicon. We don't have x87
processors on the Intel range any more simply because Intel are now able to
co-locate the logic on the same piece of silicon as the processing core. If you
look at an architecture diagram of a Core2Duo chip you might see something like
"ALU" - Arithmetic Logic Unit - which is essentially the on-chip x87
co-processor.
But the important point is that the microcode you describe is itself written in
op-codes that are part of the core CPU's native instruction set...
Performance/simplicity is achieved just by having them execute in hardware on
the main chip, rather than having to fetch the op-codes from [massively slower]
main memory.
I think you'll find that the same principles apply, all the same. [ Reply to This | Parent | # ]
|
|
|
|
|