A Letter to My Clients: How Computers Work
Per your request to give you a high-level explanation of how computers work, above is a diagram, along with a walk through that will hopefully dispel the mystery.
Let us start with the central processing unit (CPU). It is the core of any computer, and technically speaking, the components that make up a CPU are what, by definition, a computer is. All the other peripheral components listed above simply serve to extend the capabilities of the CPU in order to accomplish more meaningful tasks.
These “tasks” are what we call programs. Programs are nothing more than a series of instructions and values, that when executed in their intended sequential order, accomplish some meaningful end. As you know, programs are made up of lines of code; each line of code roughly translates into an instruction for the CPU to execute.
How the CPU actually accomplishes this is quiet technical and beyond the scope of this discussion; but for now, just accept that in the CPU is where all the interpretation and execution of programs occur.
Being that the CPU and all the peripheral components are separate physical components; the bus is what provides the means for them to communicate. The bus of a computer is similar in concept to the wires that carry the signals between telephones.
Back on the CPU, you will notice that I have listed two other components to the CPU in the diagram above: the clock and the cache. Although they are not technically required for the implementation of a process, they are generally included with them. I’ll explain the cache a little later, but the clock is essentially the heart beat of the computer by which it times the execution of instructions and its interaction with other components. Think of the clock as the coxswain of a crew team. The crew team coordinates its rowing with every shout of “stroke” by the coxswain. Another analogy is that the clock is like the drummer boy of a marching army. With every tick of the system clock, an operation is executed. Let us move on to the concept of DRAM.
The CPU itself can only hold and execute one (or a few) instructions at a time; so if this is the case, where does it get its list of instructions? The answer is: in the computer’s memory, or technically speaking, it’s Random Access Memory (RAM). It is conceptually a holding place for the instructions and values that make up the program that the CPU is executing. With each shout of “stroke” by the system clock, the CPU is either reaching out to memory for an instruction or value or is writing to with the results of a previous calculation. As for the term Dynamic Random Access Memory (DRAM), that is simply a type of memory whose distinction from other types is unimportant at this time.
Back to the concept of the CPU’s cache; because there is a latency cost of communicating across the bus, most CPUs contain on-board area of memory called a memory cache. This cache allows values that are frequently used to be copied and stored in a location that can be queried much faster than in regular memory. This component serves to improve the performance of the CPUs execution of programs.
At this point, knowing that the memory of the computer is where the instructions and values of a program are held for the CPU to execute, you might wonder why you need a hard disk when all one could theoretically store everything you need there. Although technically true, RAM memory is consider volatile; in that, it loses all the data stored in it when the power is turned off. Hard drives, on the other hand, are considered non-volatile; in that, they retain the data stored on them even when the power is off. This being the case, the disk of a computer is used for long term storage of programs and data.
The displaying of graphics on a monitor is computatively expensive for a CPU to handle. In order free up the CPU so it can focus on executing programs, most computer include a graphical processing unit (GPU) or video processor which is designed to handle the computations required to render an image on your monitor. Often, GPUs will be accompanied by a bank of dedicated memory to eliminate the latency associated with going across the bus to retrieve information stored in main memory.
So far, we have examined all the components of a computer and how they serve to extend the capabilities of a CPU; however, how does information get into and out of the computer in the first place? Whenever you type on your keyboard, point with your mouse, or print a page, you are submitting or receiving instructions through an input-output (I/O) interface. USB, parallel, serial, and the DVI ports into which you plug your monitor, are all examples of I/O interfaces. Their purpose is to provide a means for your computer to send information outside of your computer, such is the case when you print a page or view an image on a monitor; to receive information, such as when you type on your keyboard or point your mouse; or both, as is the case when you plug in a USB pen drive into your computer to save or open files stored on them.