Content deleted Content added
mNo edit summary |
vertical MC may increase MHz; it's not an "oddity" but common in emulators |
||
Line 54:
The above is an example of "horizontal" microcode. This is microcode that sets all the bits of the CPU's controls on each tick of the clock that drives the [[sequencer]].
Note how many of the bits in horizontal microcode contain fields to do nothing.
Some CPUs Some vertical microcodes are just the assembly language of a simple conventional computer that is emulating a more complex computer. This technique was popular in the time of the [[PDP-8]]. Another form of vertical microcode has two fields: | field select | field value |
The "field select" selects which part of the CPU will be controlled by this word of the control store.
The "field value" actually controls that part of the CPU. With this type of microcode, a designer explicitly chooses to make a slower CPU to save money by reducing the unused bits in the control store however, the reduced complexity may increase the CPU's clock frequency, which lessens the effect of an increased number of cycles per instruction.
Because transistors are becoming cheaper, horizontal microcode is coming to dominate the design of hardware control units
As of the early [[2000s]], CPUs no longer use vertical microcode except perhaps in [[emulator]] software designed to run on a standard computer.
After the microprogram is finalized, and extensively tested, it is sometimes used as the input to a computer program that constructs logic to produce the same data.
This program is similar to those used to optimize a [[programmable logic array]]. No known computer program can produce optimal logic, but even pretty good logic can vastly reduce the number of transistors from the number required for a ROM control store. This reduces the cost and power used by a CPU. |