Computer architecture forms the backbone of computer science. So, it comes as no surprise it’s one of the most researched fields of computing.
But what is computer architecture, and why does it matter?
Basically, computer architecture dictates every aspect of a computer’s functioning, from how it stores data to what it displays on the interface. Not to mention how the hardware and software components connect and interact.
With this in mind, it isn’t difficult to realize the importance of this structure. In fact, computer scientists did this even before they knew what to call it. The first documented computer architecture can be traced back to 1936, 23 years before the term “architecture” was first used when describing a computer. Lyle R. Johnson, an IBM senior staff member, had this honor, realizing that the word organization just doesn’t cut it.
Now that you know why you should care about it, let’s define computer architecture in more detail and outline everything you need to know about it.
Basic Components of Computer Architecture
Computer architecture is an elaborate system where each component has its place and function. You’re probably familiar with some of the basic computer architecture components, such as the CPU and memory. But do you know how those components work together? If not, we’ve got you covered.
Central Processing Unit (CPU)
The central processing unit (CPU) is at the core of any computer architecture. This hardware component only needs instructions written as binary bits to control all its surrounding components.
Think of the CPU as the conductor in an orchestra. Without the conductor, the choir is still there, but they’re waiting for instructions.
Without a functioning CPU, the other components are still there, but there’s no computing.
That’s why the CPU’s components are so important.
Arithmetic Logic Unit (ALU)
Since the binary bits used as instructions by the CPU are numbers, the unit needs an arithmetic component to manipulate them.
That’s where the arithmetic logic unit, or ALU, comes into play.
The ALU is the one that receives the binary bits. Then, it performs an operation on one or more of them. The most common operations include addition, subtraction, AND, OR, and NOT.
Control Unit (CU)
As the name suggests, the control unit (CU) controls all the components of basic computer architecture. It transfers data to and from the ALU, thus dictating how each component behaves.
Registers
Registers are the storage units used by the CPU to hold the current data the ALU is manipulating. Each CPU has a limited number of these registers. For this reason, they can only store a limited amount of data temporarily.
Memory
Storing data is the main purpose of the memory of a computer system. The data in question can be instructions issued by the CPU or larger amounts of permanent data. Either way, a computer’s memory is never empty.
Traditionally, this component can be broken into primary and secondary storage.
Primary Memory
Primary memory occupies a central position in a computer system. It’s the only memory unit that can communicate with the CPU directly. It stores only programs and data currently in use.
There are two types of primary memory:
- RAM (Random Access Memory). In computer architecture, this is equivalent to short-term memory. RAM helps start the computer and only stores data as long as the machine is on and data is being used.
- ROM (Read Only Memory). ROM stores the data used to operate the system. Due to the importance of this data, the ROM stores information even when you turn off the computer.
Secondary Memory
With secondary memory, or auxiliary memory, there’s room for larger amounts of data (which is also permanent). However, this also means that this memory is significantly slower than its primary counterpart.
When it comes to secondary memory, there’s no shortage of choices. There are magnetic discs (hard disk drives (HDDs) and solid-state drives (SSDs)) that provide fast access to stored data. And let’s not forget about optical discs (CD-ROMs and DVDs) that offer portable data storage.
Input/Output (I/O) Devices
The input/output devices allow humans to communicate with a computer. They do so by delivering or receiving data as necessary.
You’re more than likely familiar with the most widely used input devices – the keyboard and the mouse. When it comes to output devices, it’s pretty much the same. The monitor and printer are at the forefront.
Buses
When the CPU wants to communicate with other internal components, it relies on buses.
Data buses are physical signal lines that carry data. Most computer systems use three of these lines:
- Data bus – Transmitting data from the CPU to memory and I/O devices and vice versa
- Address bus – Carrying the address that points to the location the CPU wants to access
- Control bus – Transferring control from one component to the other
Check out OPIT degrees
-
Career aligned
-
Fully Online
-
EU-accredited institution
Types of Computer Architecture
There’s more than one type of computer architecture. These types mostly share the same base components. However, the setup of these components is what makes them differ.
Von Neumann Architecture
The Von Neumann architecture was proposed by one of the originators of computer architecture as a concept, John Von Neumann. Most modern computers follow this computer architecture.
The Von Neumann architecture has several distinguishing characteristics:
- All instructions are carried out sequentially.
- It doesn’t differentiate between data and instruction. They’re stored in the same memory unit.
- The CPU performs one operation at a time.
Since data and instructions are located in the same place, fetching them is simple and efficient. These two adjectives can describe working with the Von Neumann architecture in general, making it such a popular choice.
Still, there are some disadvantages to keep in mind. For starters, the CPU is often idle since it can only access one bus at a time. If an error causes a mix-up between data and instructions, you can lose important data. Also, defective programs sometimes fail to release memory, causing your computer to crash.
Harvard Architecture
Harvard architecture was named after the famed university. Or, to be more precise, after an IBM computer called “Harvard Mark I” located at the university.
The main difference between this computer architecture and the Von Neumann model is that the Harvard architecture separates the data from the instructions. Accordingly, it allocates separate data, addresses, and control buses for the separate memories.
The biggest advantage of this setup is that the buses can fetch data concurrently, minimizing idle time. The separate buses also reduce the chance of data corruption.
However, this setup also requires a more complex architecture that can be challenging to develop and implement.
Modified Harvard Architecture
Today, only specialty computers use the pure form of Harvard architecture. As for other machines, a modified Harvard architecture does the trick. These modifications aim to soften the rigid separation between data and instructions.
RISC and CISC Architectures
When it comes to processor architecture, there are two primary approaches.
The CISC (Complex Instruction Set Computer) processors have a single processing unit and are pretty straightforward. They tackle one task at a time. As a result, they use less memory. However, they also need more time to complete an instruction.
Over time, the speed of these processors became a problem. This led to a processor redesign, resulting in the RISC architecture.
The new and improved RISC (Reduced Instruction Set Computer) processors feature larger registers and keep frequently used variables within the processor. Thanks to these handy functionalities, they can operate much more quickly.
Instruction Set Architecture (ISA)
Instruction set architecture (ISA) defines the instructions that the processor can read and act upon. This means ISA decides which software can be installed on a particular processor and how efficiently it can perform tasks.
There are three types of instruction set architecture. These types differ based on the placement of instructions, and their names are pretty self-explanatory. For stack-based ISA, the instructions are placed in the stack, a memory unit within the address register. The same principle applies for accumulator-based ISA (a type of register in the CPU) and register-based ISA (multiple registers within the system).
The register-based ISA is most commonly used in modern machines. You’ve probably heard of some of the most popular examples. For CISC architecture, there are x86 and MC68000. As for RISC, SPARC, MIPS, and ARM stand out.
Pipelining and Parallelism in Computer Architecture
In computer architecture, pipelining and parallelism are methods used to speed up processing.
Pipelining refers to overlapping multiple instructions and processing them simultaneously. This couldn’t be possible without a pipeline-like structure. Imagine a factory assembly line, and you’ll understand how pipelining works instantly.
This method significantly increases the number of processed instructions and comes in two types:
- Instruction pipelines – Used for fixed-point multiplication, floating-point operations, and similar calculations
- Arithmetic pipelines – Used for reading consecutive instructions from memory
Parallelism entails using multiple processors or cores to process data simultaneously. Thanks to this collaborative approach, large amounts of data can be processed quickly.
Computer architecture employs two types of parallelism:
- Data parallelism – Executing the same task with multiple cores and different sets of data
- Task parallelism – Performing different tasks with multiple cores and the same or different data
Multicore processors are crucial for increasing the efficiency of parallelism as a method.
Memory Hierarchy and Cache
In computer system architecture, memory hierarchy is essential for minimizing the time it takes to access the memory units. It refers to separating memory units based on their response times.
The most common memory hierarchy goes as follows:
- Level 1: Processor registers
- Level 2: Cache memory
- Level 3: Primary memory
- Level 4: Secondary memory
The cache memory is a small and fast memory located close to a processor core. The CPU uses it to reduce the time and energy needed to access data from the primary memory.
Cache memory can be further broken into levels.
- L1 cache (the primary cache) – The fastest cache unit in the system
- L2 cache (the secondary cache) – The slower but more spacious option than Level 1
- L3 cache (a specialized cache) – The largest and the slowest cache in the system used to improve the performance of the first two levels
When it comes to determining where the data will be stored in the cache memory, three mapping techniques are employed:
- Direct mapping – Each memory block is mapped to one pre-determined cache location
- Associative mapping – Each memory block is mapped to a single location, but it can be any location
- Set associative mapping – Each memory block is mapped to a subset of locations
The performance of cache memory directly impacts the overall performance of a computing system. The following cache replacement policies are used to better process big data applications:
- FIFO (first in, first out) – The memory block first to enter the primary memory gets replaced first
- LRU (least recently used) – The least recently used page is the first to be discarded
- LFU (least frequently used) – The least frequently used element gets eliminated first
Input/Output (I/O) Systems
The input/output or I/O systems are designed to receive and send data to a computer. Without these processing systems, the computer wouldn’t be able to communicate with people and other systems and devices.
There are several types of I/O systems:
- Programmed I/O – The CPU directly issues a command to the I/O module and waits for it to be executed
- Interrupt-Driven I/O – The CPU moves on to other tasks after issuing a command to the I/O system
- Direct Memory Access (DMA) – The data is transferred between the memory and I/O devices without passing through the CPU
There are three standard I/O interfaces used for physically connecting hardware devices to a computer:
- Peripheral Component Interconnect (PCI)
- Small Computer System Interface (SATA)
- Universal Serial Bus (USB)
Power Consumption and Performance in Computer Architecture
Power consumption has become one of the most important considerations when designing modern computer architecture. Failing to consider this aspect leads to power dissipation. This, in turn, results in higher operating costs and a shorter lifespan for the machine.
For this reason, the following techniques for reducing power consumption are of utmost importance:
- Dynamic Voltage and Frequency Scaling (DVFS) – Scaling down the voltage based on the required performance
- Clock gating – Shutting off the clock signal when the circuit isn’t in use
- Power gating – Shutting off the power to circuit blocks when they’re not in use
Besides power consumption, performance is another crucial consideration in computer architecture. The performance is measured as follows:
- Instructions per second (IPS) – Measuring efficiency at any clock frequency
- Floating-point operations per second (FLOPS) – Measuring the numerical computing performance
- Benchmarks – Measuring how long the computer takes to complete a series of test programs
Emerging Trends in Computer Architecture
Computer architecture is continuously evolving to meet modern computing needs. Keep your eye out on these fascinating trends:
- Quantum computing (relying on the laws of quantum mechanics to tackle complex computing problems)
- Neuromorphic computing (modeling the computer architecture components on the human brain)
- Optical computing (using photons instead of electrons in digital computation for higher performance)
- 3D chip stacking (using 3D instead of 2D chips as they’re faster, take up less space, and require less power)
Check out OPIT degrees
-
Career aligned
-
Fully Online
-
EU-accredited institution
A One-Way Ticket to Computing Excellence
As you can tell, computer architecture directly affects your computer’s speed and performance. This launches it to the top of priorities when building this machine.
High-performance computers might’ve been nice-to-haves at some point. But in today’s digital age, they’ve undoubtedly become a need rather than a want.
In trying to keep up with this ever-changing landscape, computer architecture is continuously evolving. The end goal is to develop an ideal system in terms of speed, memory, and interconnection of components.
And judging by the current dominant trends in this field, that ideal system is right around the corner!