A master of the machine is someone who knows not just how to program, but
- Knows that the program that exists in his/her high-level language must get translated for "la machine". (see GeneralPurposeComputer)
- Knows that the language of the machine is binary words, composing both data and instructions (cf. VonNeumannArchitecture).
- Knows that there are space vs. time trade-offs for everything.
- Knows that the DigitalLogic and BinaryArithmetic are the linguas-franca that must be mastered and should not dabble in the dark arts of LISP (ClosuresConsideredHarmful).
I'd add
- Knows that binary words are realized by flip-flops (in the CPU) or CMOS gates (in RAM)
- Knows that instructions are realized by chains of logic operations driven (mostly) by uniform clock (this is what leads to the space-time trade-offs in the CPU)
- Knows that logic gates are realized by transistors (this is what leads to more complex operations being more 'expensive' than simpler (either in chip space or execution time)
- Knows that the transformation from the high-level description of the machine (the logic gates e.g. in VHDL) to the electric schematic (which gates connected by which impedances and capacitances to each other) is difficult
- Knows that transistors are realized by P and N doped regions (and gaps between) thus requiring highly purified silicon
- Knows that the actual multi-layer layout of the schematic onto the physical substrate (the assignment of regions of N and P doped silicon and the gaps between) is a complex under-constrained optimization process
- Knows that these regions are created by multiple 'etching' processes one onto each other (thus requiring an extremely optimized process with potentially high rejection rates)
- Knows the chemical properties of the etching process (thus knowing that CPU production creates lots of dangerous waste)
- And here it really leaves the domain of the machine and enters engineering and physics...
I think that happened after point number four. But these are good.
I'd add
- Knows the electrical processes underlying transistor-transistor logic, CMOS and VLSI devices
- Knows the physics underlying transistor behaviour, design and implementation
- Knows the mathematics that allows us to accurately describe and model the physics
Given all that, it's easier to stick with dabbling in the dark arts of LISP.
Heheh, those are pretty good. Beyond the non-physical abstraction of DigitalLogic, I categorize as ComputerEngineering because the engineers really must design and build their chips towards what the Master-as-User wants and what the TuringMachine will need, otherwise, there's no use for a piece of fancy hardware, by itself (beyond the fetish of amazing hardware engineering, of course).
The master of the machine knows about electrical properties. Maybe not of all the CPU internals.
But there are masters of machines which exploit such properties. Examples: There used to be C64 demos which used the IO bus to do pipelined binary arithmetic (because of the electical properties of that bus).
And there are current security exploits of bus timings which allowed to jail-break the IPhone (if I remember correctly; something about the gaining access to protected memory by manipulating address bus lines while the CPU believed that it was access some other unprotected area).
Cool.
See also OneTruePath, GeneralPurposeComputer, MarkJanssen
CategoryHumor