Computer architecture refers to a number of similar ideas within the computer science and technology fields. On a software level, it refers to the assembly language systems that connect the various parts of the computer’s hardware into a single functioning system. When dealing with hardware, it applies equally to the methods of creating and utilizing hardware and the process of constructing computer components. Each of these definitions describes a similar process — the idea of starting with a non-functioning computer system and making it functional —, but they all look at the process from a different standpoint.
The software version of computer architecture is likely the most difficult for a non-technical person to understand. A computer system is performing thousands of tasks at any given time that have nothing to do with what the user is doing. These tasks form the basis of the computer’s systems. It may be moving information from short-term to long-term memory or checking the time against a scheduled task to see if it is time for activation.
All of these computer architecture functions rely on machine code to understand how the different parts of the machine are connected. This code creates a basic blueprint of the computer’s hardware that higher-functioning programs use to access things like processor time and memory addresses. This machine code blueprint defines the structure of the system from the software’s point of view.
The first hardware version of computer architecture is the form used to create the software blueprint. This form of architecture centers on the way various parts of the machine will send and receive data in order to work together. For example, if a memory module wants information formatted in a specific way, it is important that the processor sends it in that format so the data can be stored. If the various parts of the computer cannot communicate with one another, the system won’t work.
The other hardware version of computer architecture focuses on single pieces of hardware. This method requires designers to look at an individual piece and determine how it will function. Nearly every piece of computer hardware contains a complex series of instructions for manipulating data, receiving instructions and issuing commands. All of this takes place within the hardware, requiring a fully-realized language and command system. In essence, each hardware piece operates like a very specialized computer.
Since each of these definitions talks about a different facet of computer architecture, they all end up fitting together nicely. First, a designer looks at the individual pieces of the hardware and determines how they work. Next, the pieces are put together to form a hardware system. Lastly, the machine code is used to connect those systems together in such a way that programs can interact with the hardware.