Does using only NAND/NOR gates increase circuit delay?
First of all, I am wondering if this is how it's actually done: i.e. when Intel makes a CPU, do they build all the registers, etc. using
NAND
/NOR
gates, or do they have some other fancier way of doing things?
Registers aren't made out of gates, most often they are dedicated circuits. They can be seen as made with inverters (NOT
), but only to a certain extent.
In CMOS technology, everlogic circuit is based on the inverter: NOR
and NAND
gates are just inverters with multiple inputs arranged in a clever way, basically. So the inverting gates are faster than non inverting ones, which are just inverting gates with a NOT
at the output.
Also in dynamic logic, it's simpler to cascade two inverting blocks than putting NOT
gates everywhere.
Consider that in some cases a circuit may be made out of separated blocks, so there may be a case in which the output is interfaced through one or more inverters for buffering.
And there is another advantage in that: integration. Having a small number of different gates helps in laying out the circuit, and uniforming the performance. Often libraries include logic blocks at different levels of complexity: transistor, gate, operator, or higher.
So, briefly, yes, fast processors are mostly using inverting gates.
My inclination with CMOS is to think of a basic building block as being an inverter preceded by an arbitrary combination of independent "and" and "or" gates with no interconnections between them; all of the following functions:
not (X and (Y or Z))
not (X or (Y and Z))
not (X and Y and Z)
not (X or Y or Z)
have essentially the same cost in silicon, even though only the latter two have names. Trying to compose the former two functions using some combination of NAND or NOR gates would yield something which was much bigger and slower than a direct realization would be.