5
\$\begingroup\$

I am a developer, yes, but there's still some mystery in the deep, dark depths of hardware engineering, system programming, and many other factors that darken the wood.

I know that from the boot loader the CPU must fetch the instructions, perform some I/O, do some MMIO/port I/O, arithmetic, etc.

The machine code is represented in binary or hexadecimal numbers, but implemented on the circuit as high and low voltages, states, or just "bits". That would entail that everything, from the firmware to shut down on an operating system, is all just flip-flop voltages carrying out electrical circuit operations that, in turn, drive the CPU, data, and other peripherals to perform the operations necessary for the computer to be fully used in all parts.

Is this correct or incorrect(i.e., is any part of the computing, hardware, or otherwise software not implemented in voltages under microcode from machine code?)

Hope the question isn't vague, and please let me know if I'm wrong.

\$\endgroup\$
  • \$\begingroup\$ And timing. Don't forget timing. \$\endgroup\$ – Ignacio Vazquez-Abrams Jul 6 '13 at 20:55
  • \$\begingroup\$ Timing is measured in voltages as well, no? It must be some frequency \$\endgroup\$ – Bit Girl Jul 6 '13 at 20:56
  • \$\begingroup\$ Everything electrical, whether computers or washing machines, motors or radios is about the movement of charge. This movement of charge is basically current and the potential to move charge is voltage. Side effects like radio waves are a little more obtuse in their origin but still basically come back to movement of charge. Timing, as mentioned above is based on clock circuits which are based on something oscillating and this still comes down to movement of charge and how this is controlled by resonant circuits. \$\endgroup\$ – Andy aka Jul 6 '13 at 21:02
  • \$\begingroup\$ Is it common place for CPUs to have internal clocks for timing resources, such as measuring time between operations in context switching (i.e., not for processing or pipelines)? \$\endgroup\$ – Bit Girl Jul 6 '13 at 21:03
  • \$\begingroup\$ I know this is usually the job of the PIC, but is the PIC integrated within the CPU's circuit, or external? \$\endgroup\$ – Bit Girl Jul 6 '13 at 21:09
7
\$\begingroup\$

It is correct for all the volatile state of the machine, i.e. the processor state, the RAM.

For the non-volatile part, it is something else that, when the machine is powered on, can be converted into voltage levels representing 0 or 1.

The "something else" is in general one of two things: magnetic polarization state (for the HD, and the old-fashioned floppy disks) or electrostactic state (for EEPROM, Flash & etc.). But may also be optical properties, like in a CDROM.

Although Flash memory & EEPROM use floating gate transistors where, maybe, you could also say the trapped electrons in the gate are a "voltage" (a DP from the rest of the circuit).

\$\endgroup\$
2
\$\begingroup\$

It all comes down to a binary system - two states that are logically related to each other. A '1' is NOT a '0' and a '0' is not a '1'. Without this relationship we couldn't apply BOOLEAN logic and all that follows.

How you define a '1' and a '0' in any given system can vary tremendously.

Example:

In magnetic memory (disk, tape etc.) a '1' may be a N-S domain, and a '0' may be a S-N domain.

In a mechanically switched system the switch can be closed (1) or open (0)

Worse still - holes punched in paper tape.

enter image description here

In all the systems its is an either/or situation. Modern computation is performed with devices that may manipulate voltages (or currents). In the future we may see devices that use a totally different technology - but as long as the technology is binary we can use the same principle.

Operations are sequential (even those done in parallel) so naturally timing will come into it somewhere.

\$\endgroup\$
  • \$\begingroup\$ So I was right about voltages? \$\endgroup\$ – Bit Girl Jul 6 '13 at 21:13
  • \$\begingroup\$ @BitGirl - thats the basic way we do it today but it wasn't always so (Babbage difference engine) and it probably won't be in the future (molecular electronics/nanotechnology or quantum computers) \$\endgroup\$ – JIm Dearden Jul 6 '13 at 21:19
  • \$\begingroup\$ Let's not forget about ternary computers. \$\endgroup\$ – feklee Jul 6 '13 at 21:26
  • \$\begingroup\$ Zuse built his first computer, the Z1, as a mechanical machine. en.wikipedia.org/wiki/Z1_%28computer%29 \$\endgroup\$ – starblue Jul 7 '13 at 11:41
2
\$\begingroup\$

I think the shortest answer is "yes". The only exceptions would depend whether some I/O devices are considered part of "the computer" or not. Since most of these devices work with the "real world" in some form or another they might initially represent information in ways different than "just voltages" but you might argue they are NOT part of the "computer" per se.

It might help restricting the word "computer" to just the processor for the purpose of this question.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.