Introduction to Computer Architecture
- Computer architecture refers to those attributes of a system visible to a programmer or those attributes that have a direct impact on the logical execution of a program.
- Computer organization refers to the operational units and their interconnections that realize the architectural specifications.
- Examples of architectural attributes: Instruction set, the number of bits used to represent various data types (e.g., numbers, characters), I/O mechanisms, and techniques for addressing memory.
- Example of organizational attributes: Hardware details transparent to the programmer, such as control signals; interfaces between the computer and peripherals; and the memory technology used.
- For example, it is an architectural design issue whether a computer will have a multiply instruction.
- On the other hand, it is an organizational issue whether that instruction will be implemented by a special multiply unit or by a mechanism that makes repeated use of the add unit of the system.
STRUCTURE AND FUNCTION
- A computer is a complex system
- The hierarchical nature of complex systems is essential to both their design and their description
- The designer need only deal with a particular level of the system at a time
- At each level, the system consists of a set of components and their interrelationships and the designer is concerned with associated structure and function:
- Structure: The way in which the components are interrelated
- Function: The operation of each individual component as part of the structure
Functional View of a Computer
Functional units
- In general terms, there are only four functional units:
- Data processing: The computer must be able to process data
– The data may take a wide variety of forms, and the range of processing requirements is broad
- Data storage: It is also essential that a computer store data.
- If the computer is processing data on the fly (i.e., data come in and get processed, and the results go out immediately), the computer must temporarily store at least those pieces of data that are being worked on at any given moment o Thus, there is at least a short-term data storage function
- Equally important, the computer performs a long-term data storage function also
- Files of data are stored on the computer for subsequent retrieval and update
- Data movement: The computer must be able to move data between itself and the outside world
- The computer’s operating environment consists of devices that serve as either sources or destinations of data
- When data are received from or delivered to a device that is directly connected to the computer, the process is known as input–output(I/O), and the device is referred to as a peripheral
- When data are moved over longer distances, to or from a remote device, the process is known as data communications
- Control: There must be control of these three functions
- This control is exercised by the individual(s) who provides the computer with instructions
- Within the computer, a control unit manages the computer’s resources and orchestrates the performance of its functional parts in response to those instructions
Possible Operations
- The computer can function as a data movement device (Figure 1), simply transferring data from one peripheral or communications line to another
- It can also function as a data storage device (Figure 2), with data transferred from the external environment to computer storage (read) and vice versa (write)
- The final two diagrams show operations involving data processing, on data either in storage (Figure 3) or enroute between storage and the external environment (Figure 4)
THE THREE CATEGORIES OF COMPUTER ARCHITECTURE
There are three categories of computer architecture, and all work together to make a machine function.
SYSTEM DESIGN
System design includes all hardware parts of a computer, including data processors, multiprocessors, memory controllers, and direct memory access. It also includes the graphics processing unit (GPU). This part is the physical computer system.
INSTRUCTION SET ARCHITECTURE (ISA)
This includes the functions and capabilities of the central processing unit (CPU). It is the embedded programming language and defines what programming it can perform or process. This part is the software that makes the computer run, such as operating systems like Windows on a PC or iOS on an Apple iPhone, and includes data formats and the programmed instruction set.
MICROARCHITECTURE
Microarchitecture is also known as computer organization and defines the data processing and storage element and how they should be implemented into the ISA. It is the hardware implementation of how an ISA is implemented in a particular processor.
THE EVOLUTION OF PROCESSORS
Complex Instruction Set Computer (CISC) and Reduced Instruction Set Computer (RISC) are the two major approaches to processor architecture. CISC processors have a single processing unit, external memory, and a small register set with hundreds of different instructions. These processors have a single instruction to perform a task, and have the advantage of making the job of the programmer easier, as fewer lines of code are needed to get the job done. This approach uses less memory, but can take longer to complete instructions.
The RISC architecture was the result of a rethink, which has led to the development of high-performance processors. The hardware is kept as simple and fast as possible, and complex instructions can be performed with simpler instructions.
Microprocessors are digital systems which read and execute machine language instructions. Instructions are represented in a symbolic format called an assembly language. These are processors which are implemented on a single, integrated circuit. Common microprocessors used today are the Intel Pentium series, IBM PowerPC, and the Sun SPARC, among others. Nearly all modern processors are microprocessors, which are often available as standard on von Neumann machines.
THE PROS AND CONS OF THE VON NEUMANN ARCHITECTURE
There are a number of reasons why the von Neumann architecture has proven to be so successful. It is relatively easy to implement in hardware, and von Neumann machines are deterministic and introspectable. They can be described mathematically and every step of their computing process is understood. You can also rely on them to always generate the same output on one set of inputs.
The biggest challenge with von Neumann machines is that they can be difficult to code. This has led to the growth of computer programming, which takes real-world problems and explains them to von Neumann machines.
When a software program is being written, an algorithm is reduced to the formal instructions that a von Neumann machine can follow. However, the challenge is that not all algorithms and problems are easy to reduce, leaving unsolved problems.