It is important to understand the basic concepts of computers for many reasons. Whether you are a programmer, a regular user, or an investor in tech stocks, you should have a basic understanding of the fundamental workings of the machine. Smartphones and tablets are basically small computers, so this discussion applies equally to them.
Conceptually, this is pretty simple and will be seem almost obvious, but the organization of the discussion should help to clarify and deepen the reader’s understanding.
The template for all modern computers is the Von Neumann architecture, detailed in a 1945 paper by Hungarian mathematician John von Neumann. [https://en.wikipedia.org/wiki/Computer_hardware]
Essentially, there are four important classes of components to a computer system.
- The Central Processing Unit (CPU) that controls the operation of the machine in accordance to a given set of digital instructions – a program.
- Memory Unit – a set of memory devices that provides storage for instructions (programs) and data.
- Input devices – through these a user can control the operation of the computer and provide data for it to process.
- Output Devices – through which the computer can show its results.
A diagram of the von Neumann architecture is below.
I have discussed the CPU in detail in another post. The graphic notes how there are two main logical units.
The Arithmetic/Logic Unit performs the actual computations, while the Control Unit organizes the flow of instructions and data to the ALU.
Memory is a very important. This is where programs and data are stored. Data can be in a database, or a Word or spreadsheet document, or a photo. All programs are also stored in memory until they are loaded, one instruction at a time, into the ALU. There are several types of memory. They are categorized according to their “proximity” to the CPU. Each type represents a tradeoff between cost and speed. The faster the memory, the more it costs.
- Registers: These are a very limited set of memory locations to which the CPU has direct access. The CPU can only read and write to one of these, and then direct that the data in one can be transferred to some other place (another part of memory, a display, or some other output device). These are actually a part of the CPU itself, so increasing them is extremely costly as they take up precious real estate within the processor.
- Cache: Also embedded in the CPU chip – but outside the actual logic unit – is a small set of memory called cache. Here data and instructions are stored briefly until they are required by the CPU and moved into the registers. Access is very fast. There are different levels of cache, some lives on the CPU chip itself, and others live on a separate chip external to the CPU but in very close proximity. Caches are particularly important since many programs repeat a small set of instructions in loops and the caches can hold these so they do not need to fetched repeatedly from main memory.
- Main Memory: Sometimes referred to as RAM (Random Access Memory), this is the main memory of the computer into which programs and data are loaded awaiting processing. This is electronic memory that is separated from the CPU, connected by the memory bus , a set of wires that transmit the data back and forth in parallel. Communications occur via this bus, which is many times slower than the communications within the CPU itself. Still, it is quite speedy.
- Hard Disk: Hard drives exemplify the external storage class which also would include removable flash cards and USB drive. Hard drives consist of a metal platter with a magnetic medium. A read/write head moves in and out as the platter spins recording or reading digital data. These are great because they can hold enormous amounts of data, and in this age of high definition photos and videos is really needed. Pne main advantage of hard drives is that they keep the data even when the machine is turned ff, which is not the case for standard RAM. They are also relatively cheap, but also very slow (comparatively). Flash cards are much faster, but still slower to access than main memory.
- SSD Drives: Solid State Drives are “Hard Drives” that instead of a spinning platter, have electronic memory just like Main Memory, but of a type that retains the data even when turned off. The cost is several times that of a traditional hard disk, but they run 10 times or more faster. Still, however, the read/write speed is affected by the communications protocol that remains that of the old fashioned hard drive.
No matter the type of storage, the ultimate aim is that data stored will be moved to the CPU to be acted on, whether this involves some type of computation, or the display of a photo or movie or music. It is precisely these differing communication channels that provide a bottleneck to the overall system speed. A CPU can run wild, but if it cannot get its data, it will be throttled like a Lamborghini in first gear. So for years, engineers have been working on ways to reduce the bottlenecks. Faster memory access channels was one way, and internal caches was another way to address this problem. SSDs are another way for more permanent memory.
Of course any computer is useless if it cannot communicate to us people the results of its computations. The most obvious output device is the display, but printers, audio speakers, Bluetooth communications with other devices, etc. are other means.
The most common of these are the keyboard, touch screen, and mouse or trackpad, but video cams, voice control and a variety of real world sensors are also in this category. All are used to influence the operation of the computer.
I hope this discussion has clarified some things for the reader. While some of the ideas may have appeared obvious, I have found that expressing them in the explicit fashion often helps people get a more formal handle on computer organization, and with this basis we can go on to deter details.
The next topic of discussion
If you appreciate this work
Then please check out my short fiction anthologies.