On November 11, 1999, the ASCI Red computer at Sandia National Labs
was rated the fastest supercomputer in the world. This machine was designed to perform complex nuclear simulations which can replace actual testing of nuclear weapons. According to the machine's builders, this supercomputer can perform almost two and a half trillion floating point operations per second! Since nearly all scientific simulations involve data with real numbers, floating point operations are a good measure of a machine's performance. While these numbers are quite impressive, it will not be long before another machine surpasses the computer at Sandia National Labs.
You may be wondering how your desktop personal computer rates against a powerhouse like ASCI Red. According to Brian Marshall, "Most people have something like a Pentium computer running Windows or a Macintosh. A computer like this can execute approximately 100 million instructions per second. Your particular machine might be twice that fast or half that fast, but that's the ballpark." Interestingly, the most powerful processor in the world is the human mind. Marshall continues: "Your brain is made up of about one trillion cells with 100 trillion connections between those cells. We might take a rough estimate and say it is handling 10 quadrillion instructions per second, but it really is hard to say." With these estimates, we can conclude that our minds are about 5,000 times more powerful than the fastest supercomputer, and the fastest supercomputer is about 20,000 times more powerful than our PCs.
So, what is the source of all this electronic computing power? Amazingly, both supercomputers and PCs are built on the same basic logic which in the Computer Engineering world is called gates. Gates are tiny electronic devices that manipulate binary data in fixed ways. Three important gates are the AND gate, the OR gate, and the NOT gate. For each of these gates, we can describe their behavior (i.e., the way they manipulate binary data) using a truth table and a simple diagram. The truth tables for each of these gates are listed below.
Notice that the AND gate and the OR gate have two inputs while the NOT gate has a single input. Earlier we described various ways that bits can be represented: 0 or 1, off or on, false or true, high voltage or low voltage. Since gates are electronic devices, the appropriate way to represent binary data is with low or high voltage level. However, it is easier for us to think of these levels as 0 for low voltage and 1 for high voltage when describing the behavior of gates. Thus, the gates receive their binary input as a voltage, and they output a either a high or low voltage depending on their input. For the AND gate, both inputs must receive a high voltage in order for the output to be a high voltage. Any other combination results in a low voltage. We can think of the behavior of the AND gate this way: "If input 1 AND input 2 have a high voltage, output a high voltage. Otherwise, output a low voltage." For the OR gate, both inputs must receive a low voltage in order for the output to be a low voltage. Any other combination results in a high voltage. We can think of the behavior of the OR gate this way: "If input 1 OR input 2 have a high voltage, output a high voltage. Otherwise, output a low voltage." For the NOT gate, only one input is required. The behavior of the NOT gate is to reverse the voltage of its input.