Computer Architecture

Digital Computer Hardware Organization

What is a Digital Computer?

A digital computer is a device capable of solving problems and manipulating information under the direction of a given program of instructions. The hardware of a digital computer is a set of digital logic circuits that receives information from one or more sources, processes this information, and sends the results to one or more destinations.

Digital computers allow the automation of arithmetic operations and provide a low-cost way to solve complex numeric problems, store, retrieve, and communicate information; and control robots, manufacturing plants, automobiles, appliances, etc.

Digital Computer Hardware Organization

The basic hardware elements of a digital computer are a central processing unit (CPU), memory and assorted input and output (I/O) devices as demonstrated in the figure below:

Figure 1.0 Computer architecture organization

The CPU consists of a control unit, which coordinates the actions of other elements in the computer; one or more arithmetic and logic units (ALUs), which are digital logic circuits that manipulate data as instructed by the control unit; and a set of registers, which are high-speed storage locations used to temporarily store data, addresses, and other information within the CPU.

The ALU, registers, memory, and I/O devices make up the data path of the computer.

Each ALU is unique in the types of data that it can manipulate and the set of operations that it can perform on these data. Most ALUs support operations on binary integers of various sizes. Additionally, some include operations to manipulate floating-point numbers, decimal numbers, and various nonnumeric data. Typical ALU operations consist of:

  • Arithmetic (add, subtract, multiply, divide, compare).
  • Logical (AND, OR, Exclusive-OR [XOR], complement, bit test/set/clear).
  • Shift and rotate data.

The control unit of a CPU is responsible for fetching program instructions from memory, interpreting or decoding the instruction codes, and executing instructions by issuing control signals to the elements of the data path. The control unit coordinates all the operations of the ALU, memory, and I/O devices by continuously cycling through a set of operations that cause instructions to be fetched from the memory and executed. This sequence of events is termed to as the instruction cycle of the computer.

An instruction cycle consists of five basic steps:

  • An instruction is fetched from the memory into the control unit of the CPU.
  • The control unit decodes the instruction, that is, establishes from the instruction code what operations to perform.
  • Any data, called operands, needed to perform these operations are accessed from the CPU storage registers, retrieved from memory, or read from input devices.
  • The operation is performed on these operands.
  • The result is saved in a register, written to a memory location, or sent to an output device.
Fig 1.1 Instruction fetch and execute cycle

Program instructions and data are stored and retrieved from the memory of the computer. If a single memory is used for both, as in the case in most general purpose computers as shown in Figure 1.2 below, the computer is said to have Von Neumann architecture.

Figure 1.2 Von Neumann architecture

A computer that uses one memory for instructions and a separate memory for data as shown in the Figure 1.3 below is said to have Harvard architecture. Most microcontrollers use the Harvard architecture. Moreover, a number of high-performance CPUs use Harvard architectures to enable instruction and data memories to be accessed concurrently.

Figure 1.3 Harvard architecture

The instruction set architecture of a computer refers to the organization of a computer instruction set as seen from a programmer’s point of view. Every instruction set architecture is unique in how it supports different data types; operations on data; and access to information in registers, memories and I/O devices. Information is usually transferred between a computer and the outside world through various I/O devices. Programs are usually transferred into the memory of a computer from such peripheral equipment such as magnetic, optical, or flash memory peripheral storage devices. In similar way, data to be utilized by a program can be transferred into the memory from keyboards, scanners, magnetic disks, analog-to-digital converters, communication channels, and other input devices. A program may output data to several types of peripherals such as liquid crystal displays (LCD) panels, cathode-ray tubes (CRTs) and light-emitting diodes (LEDs) that are used to display the results of a program’s calculations, or to various types of printers which are used to produce permanent results. Digital-to-analog converters, motor drivers, communication channels, plotters, magnetic disks, and other recording apparatus are examples of commonly used output devices.

John Mulindi

John Mulindi has a background in a technical field and he writes on topics ranging from automation, computer systems, embedded systems, mechatronics to measurement and control.

View Comments

Recent Posts

Rigid-Flex PCBs: Enhancing Durability and Flexibility in Electronic Devices

The world of electronics is constantly evolving, allowing designers and manufacturers to push the boundaries…

2 months ago

Key Features of PIC16X84 Family of Microcontrollers

PIC microcontrollers are fabricated by Microchip Technology. PIC16C84 and PIC16F84 are the two microcontrollers in…

9 months ago

ADD Instruction in Intel 8051 (MCS-51) Microcontroller

The ADD instruction tells the microcontroller’s CPU to add the source byte to register A…

9 months ago

Main Features of Intel 8086 Microprocessor

8-bit microprocessors are limited in their speed (the number of instructions that can be executed…

9 months ago

Basic Features of 68HC11 Family of Microcontrollers

The 68HC11 (also abbreviated as 6811 or HC11) is an 8-bit microcontroller that was introduced…

9 months ago

Process Synchronization using Semaphores

Mutual exclusion typically imposes some conditions on access to a given resource by two or…

10 months ago