Computer Architecture

What is Computer Architecture?

The term computer architecture refers to the set of rules, techniques, and procedures. It signifies the functionality of the whole computer system as well as the execution of the programs.

In other words, computer architecture means the design of the computer system using well-matched technologies.

This means that it is a specification that particularly details the set of hardware and software technology standards used to build a computer system that will interact with each other for producing the optimal results.

Understanding Computer Architecture

Understanding Computer Architecture

According to computer engineering, computer architecture is the method that describes the organization, implementation, and functionality of a computer system.

The architecture refers to the structure of the computer system with reference to the different components of it that is specified separately along with interrelationships among them.

However, not all definitions of computer architecture that you may find on the internet define it in the same way.

There may be a few that will describe it as the programming model and its capabilities of the computer but may exclude the particular implementation aspect.

On the other hand, you may also find a few other specific definitions of computer architecture where it involves other specific aspects such as:

The best way to clear all your doubts and confusions is to know about the history and the structural aspect of computer architecture to start with.

According to computer literature, the term architecture indicates the efforts put in by Sir Frederick P. Brooks and Sir Lyle R. Johnson who were the members of the Machine Organization department.

In 1959, Sir Johnson described instruction types, formats, hardware limitations, as well as speed improvements at the system architecture level.

This is a term that is very useful as compared to machine organization. Subsequently, the term can also be used by a computer user in different but less precise methods.

Prior to this, computer architecture was designed by computer architects on paper and then it was built directly into the final form of the hardware.

Later on, the computer scientists created computer architecture designs significantly in the form of Transistor-Transistor Logic or TTL computers.

In the 1990s, new computer architectures were built, scrutinized, and tweaked inside separate computer architecture or an FPGA or in a computer architecture simulator as a microprocessor before carrying out to the final hardware form.

As said earlier, CISC and RISC are the two main approaches to the processor architecture.

Here, the CISC processors come with a single processing unit, a small register and an external memory with lots of different instructions.

Since these processors have only one instruction to perform, it makes it easier for the programmer who needs to create fewer lines of code.

It uses less memory but takes longer time to complete.

The RISC architecture, on the other hand, is simple and fast and can perform complex instructions with simple instructions.

These microprocessors or digital systems can read and carry out machine language instructions that are represented in assembly language or a symbolic format. These processors are employed on one integrated circuit.

Some of the common microprocessors of today are:

Almost all recent processors are microprocessors and these are usually obtainable on regular Von Neumann machines.

The microprocessors of today belong to the 5th generation. The different generations of these processors are;

There are different types of microprocessors available now such as:

These processors can be improved as per the need. The other different advantages of using a microprocessor include:

However, as for the demerits of these processors, they overheat if overused and most of them do not support floating-point operations. Their performance also depends on the size of data

Types of Computer Architecture

Now, take a look at the different types of architecture that a computer system may have.

Von-Neumann Architecture

Von Neumann architecture may be quite an old concept of architecture but it is still used by most of the computers even today. This architecture was proposed in 1945 by the mathematician John von Neumann.

The architecture defines the design of an electronic computer along with its CPU. This includes:

The computers that you find today use the same architectures coined and developed by John von Neumann because they follow the same concepts.

Also known as Princeton architecture, the design is unique for an electronic digital system of today that has the same components mentioned above.

This is primarily because the computers may have changed dramatically in design as a physical object right from the supercomputers that occupied an entire room to the modern day laptop that fits in a bag in the years after von Neumann proposed his architecture but the basic functionality is still the same.

Though the performance level may have increased, at their core, there is a very little change in the computers created between then and now. Therefore, it still can and does run on the same old von Neumann architecture.

Read Also:  Computer Related Abbreviations & Full Forms

That is why the design of von Neumann is considered to be the foundation of modern computers.

Though the Harvard architecture is pretty similar and uses dedicated data addresses and buses to read and write to memory, the von Neumann model wins because it is very easy to implement in real hardware.

The primary computation concept of the von Neumann architecture is that both data and instructions are loaded in the same main memory unit of the computer. It is made up of a series of addressable locations.

It allows the process to access the data and instructions needed for execution of any task or a computer program by using committed connections called buses.

These are the address bus, which is used to make out the address location and a data bus which is used to move the contents to a location or from it.

However, the von Neumann architecture comes with some pros and cons that are good to know.

There are a number of good reasons for the von Neumann computer architecture to be so successful.

One, it is comparatively easy to put into practice in hardware. Two, the von Neumann machines can be introspective and deterministic.

This means that these can be expressed mathematically and every step of the computing process can be clearly understood.

The performance of it is consistent and therefore one can rely on it to get the same output over and over again for any given set of inputs.

However, one of the most significant challenges with von Neumann machines is that coding is very difficult.

This eventually resulted in the development of computer programming which considers the real-world issues and explains them to the von Neumann machines.

This helps in reducing an algorithm when a software program is being created to the formal instructions that can be followed by the von Neumann machine.

However, there is one significant issue in here as well, which is, all algorithms and problems are not very easy to reduce. This leaves a number of problems unsolved.

Harvard Architecture

The Harvard Architecture, on the other hand, basically comprises data and code that are laid in separate memory sections.

This means that it needs a distinct memory block for the instructions and data.

Typically, the data storage is solely contained within the CPU.

The accessibility of data in one memory is usually completed by a single memory location and solo collection of clock cycles is required in the case of Harvard architecture.

Apart from that, the modern computers have the most recent CPU processes for both ways but these are unrelated in a hardware design.

In a standard computer that pursues von Neumann architecture, it is the same memory in which both the data and instructions are stored.

This means that the same buses can be used to retrieve them as and when required.

This allows the CPU to do both tasks together such as reading the instructions and reading or writing the data.

In comparison, in the case of the Harvard Architecture, there are separate buses and separate storage.

This means that there is a signal path to fetch the instruction and data.

The key benefit of having separate buses for data and instruction is that it allows the CPU to access instructions and read or write data at the same time.

The main idea of the Harvard architecture was to do away with the bottleneck of Von Neumann Architecture.

In the Harvard architecture there are different types of buses or separate signal pathways used. These are:

There are also different types of operational registers involved in the Harvard architecture that are mainly used to store different types of instruction addresses.

Two such operational registers are the Memory Data Register and Memory Address Register.

There is also a program counter that contains the location of the subsequent instruction that is to be executed. This counter passes this address to the Memory Address Register.

The architecture also contains other components such as:

The Harvard Architecture also comes with some significant advantages such as the separate buses for data and instruction.

And, the modified architecture, in practice, can be used where there are two distinct data and instruction caches such as in the ARM and the x86 processors.

Instruction Set Architecture

Commonly known as ISA, this is another important digital computer architecture which comprises a set of instructions.

The processor renders and deduces these instruction sets that are typically of two distinct types namely:

CISC includes several specialized instructions that are useful for specific programs but are not universal. Such programs characteristically use fewer instructions but each of these instructions will usually take extra cycles.

RISC, on the other hand, has a more optimized, smaller, and generalized set of simple instructions.

However, there are separate instructions for load/store and not as an element of another instruction.

There is a larger number of instructions but each takes a single clock cycle. There are also greater numbers of registers and concurrent execution of parts through pipelining in RISC processors.

Though the implementation of the Instruction Set Architecture is quite versatile, it usually varies in features such as:

However, it allows the development of the micro-architectures by implementing ISA as a unique and high-performing system which can run software on previous generations of execution.

Ideally, an ISA describes the set of essential operations that must be supported by a computer.

This includes the practical explanation of operations and the particular descriptions of how to access and invoke them.

An ISA means implementation of it in a processor and it is not dependent on the micro-architecture.

In fact, an ISA itself can have several micro-architecture implementations.

Ideally, an ISA includes instructions for different tasks such as:

Read Also:  What is Macbook? 19 Pros & Cons

Apart from that an Instruction Set Architecture also describes the highest bit length of all instructions as well as the encoding process of an instruction.

With the definition of the ISA hardware and software development can be alienated from each other.

This means that a particular company can develop the hardware and several other companies can work on the software development separately knowing that the software program will run on that particular hardware.

Micro-architecture

Micro-architecture refers to the specific structural blueprint of a microprocessor. It is a computer organization that leverages a process in which the ISA holds a processor that is built-in.

The ISA is implemented by the hardware scientists and engineers with different micro-architectures that may vary due to changing technology.

It includes the methods, the resources and the technologies used as well. In doing this, the processors are actually devised to manage a specific instruction set.

In simple words, this is a digital logic form of all data pathways and electronic elements that may be present in the microprocessor and are designed in a particular manner.

This allows the best possible completion of instructions that are needed to be executed.

Ideally, it is all about the combined implementation of different elements such as:

All of these elements together form the processor.

When a micro-architecture is combined with an ISA it makes up the computer architecture of the system on the whole.

Same ISA can be implemented by different micro-architectures but at the cost of speed of execution and power efficiency.

However, the fundamental processor will consist of different elements such as:

All these elements allow the processor to make decisions according to the instruction that is being executed.

This specific type of computer architecture involves data pathways between the components and buses and how exactly these are laid out to determine the shortest paths and establish proper connections.

There are typically multiple layers in the modern microprocessors that help in handling complexity but the primary idea regarding the layout of a circuit that will help in executing operations and commands are defined in the instruction set.

Pipelined data path is a technique currently used in micro-architecture that gives a sort of parallelism.

It can be implemented in data processing and it will help in overlapping several instructions while execution.

This is achieved by running several execution pipelines in parallel or close to parallel.

The execution units are a very important aspect of micro-architecture since these perform the calculations and operations of the processor.

Therefore, the most significant consideration for micro-architecture design is the selection of the number of execution units along with their throughput and latency.

On the other hand, the other important micro-architectural decisions are:

The system level design is another vital aspect to consider in micro-architecture and it includes assessments on the performance level, connectivity of input, I/O devices, and output.

Typically, micro-architectural design emphasizes on restrictions rather than capability. The design decision will affect things going into it directly.

Therefore, the specific areas that should be focused on while selecting the design include and are not limited to:

Ideally, a micro-architecture is considered to be good only when it caters to all of the above criteria.

Systems Design

A good systems design will be able to meet all the requirements of the user such as data management in the system, its architecture, and the computer modules that have different interfaces.

Therefore, considering all these facts, a systems design can be viewed as an application of systems theory to product design and development.

Apart from that, in system design there is also come overlapping with the other disciplines of the system such as:

Ideally, systems design refers to the act of using the marketing information and designing a product to be manufactured based on the broader aspect of product development.

This combines the viewpoint of design, marketing, and manufacturing in a single approach to develop a product.

Therefore, it can be said that systems design is the procedure of defining and developing systems that will satisfy the specific needs of the users.

This means that, the fundamental aspect of system design is to study the different components and their consequent interaction with each other.

Physical design is one important aspect of systems design which is related to the actual input and output procedures of the system. This means that it involves different aspects such as:

Te different requirements that are determined in a physical design are:

In other words, physical design of a system can be divided into three specific sub-tasks such as:

When you are done with designing the micro-architecture and an instruction set, the next thing to do is develop a practical machine.

This is called implementation, which however is normally not an architectural design but a hardware design engineering rather.

This implementation process can be divided further into different steps which include:

Physical implementation is another process where the physical circuits are drawn for different components that are placed on a board or in a chip floor and create wires to connect them.

Design validation tests must be done to see how things work in real time and in different situations. When this process starts, the logic emulators test the design at the logic level.

However, this is a slow process. To expedite the process prototypes are built by using Field Programmable Gate Arrays or FPGAs after making the necessary corrections.

The last step is to test the prototype Integrated Circuits that may need you to make several redesigns.

Practically, for the CPUs, this entire process is referred to as systems design.

Other Technologies

There are some other technologies as well in computer architecture. These technologies are usually used in larger companies such as Intel. These are:

Now that you are done with the different computer architectures, take a look at the fruition of processor architecture.

How Does Computer Architecture Work?

Now, take a look at the working process of each of the components of the computer architecture.

Input Unit – This provides data from outside to the computer system.

This means that the input unit connects the outer environment with the computer by taking data from the input devices.

It then converts the data into machine language and loads the same in the computer system.

Output Unit – This provides the results of the processed data by the computer on the output devices in the form of text, images, audio, and video. This means that it connects the computer with the outer environment.

Storage Unit – This stores the data and information in the traditionally divided primary and secondary storage.

The data in the primary storage is made available to the CPU directly while the secondary storage is not which stores huge amounts of data permanently. This is transferred to the primary memory first from where the CPU can access them.

Arithmetic Logic Unit – This makes all calculations associated with the computer system. This is a part of the Central processing unit.

Control Unit – This is another part of the CPU and transfers data from the storage unit to the Arithmetic Logic Unit for calculation. The control unit is also called the Central Nervous System since it controls all other units of the computer system.

Apart from transferring data across the computer, it also decides how the input output devices, memory, Arithmetic Logic Unit and others should behave.

What are the Elements of Computer Architecture?

Usually, the computer architecture comprises three specific elements such as:

All these components are linked with one another with the help of a system bus. This system bus, in turn, consists of three different components such as:

What is the Importance of Computer Architecture?

Now, take a look at the importance of computer architecture.

Typically, the primary role of the computer architecture is to ensure that there is a perfect harmony when the computer operates or processes any given set of data or instructions.

Therefore, the computer architecture needs to maintain a balance in the efficiency and performance of the computer system on the whole as well as keep its cost low and ensure a high level of reliability.

For example, the Instruction Set Architecture typically signifies the views of a programmer of the system apart from acting as the bridge between the hardware and software of the computer.

As you may know already, computers can understand only binary language, which includes only 0s and 1s.

On the other hand, the users of the computers understand languages of much higher level and other conditions such as while, if else, and more.

Therefore, without a proper language there will be no proper communication between the computer and the user and create a lot of confusion during the operation.

That is why efficient computer architecture is required in order to communicate between each other.

In that case, the Instruction Set Architecture plays a vital role by bridging this gap by translating the high level language of the users to binary language so that it can be understood by the computer.

What are the Examples of Computer Architecture?

Here are some of the most common examples of computer architectures:

Typically, there are three specific groups of computer architecture namely:

System Design

This group of computer architecture includes the hardware components used in the computer apart from the CPU or Central Processing units such as:

Apart from that, it also includes data paths, memory controllers, and diverse things such as virtualization and multiprocessing.

Instruction Set Architecture

Commonly referred to as the ISA, this specific group of computer architecture includes the programming language embedded in the Central Processing Unit. In addition to that, it also includes other vital things such as:

The primary job of the ISA is to define the capabilities and functions of the CPU depending on the particular type of programming it can process or perform.

Micro-architecture

The micro-architecture is also known as a computer organization. This particular type of computer architecture describes several important things such as:

Add to that, it also tells how exactly these things should be integrated into the Instruction Set Architecture.

Conclusion

Computer architecture is a complex subject that comprises the computer system as well as the operations that determine its functionality.

As this article points out it defines and meets the needs of the users as well as the system on the whole.