Overview of Computer System
The system which is a combination of hardware and software is called a computer system. The computer system consists of input devices, processing devices, storage devices, and output devices. Thus computer system is a collection of different components that are combined to get a certain objective. In other words, it is defined as a combination of an input unit, central processing unit (CPU), output unit, and other parts. Here we are going to discuss the Computer system in detail.
Table of Contents
TogglePC Hardware
A typical hardware setup of a PC consists of:
- computer case with power supply
- central processing unit (processor)
- motherboard
- memory card
- hard disk
- video card
- visual display unit (monitor)
- optical disc (usually DVD-ROM or DVD Writer)
- keyboard and pointing device
PC Software
Computer software is a general term used to describe a collection of computer programs, procedures, and documentation that perform some tasks on a computer system. The term includes application software such as word processors which perform productive tasks for users, and system software such as operating systems, which interface with hardware to provide the necessary services for application software.
Software applications for word processing, Internet browsing, Internet faxing, e-mail and other digital messaging, multimedia playback, computer gameplay, and computer programming are common. The user of a modern personal computer may have significant knowledge of the operating environment and application programs but is not necessarily interested in programming or even able to write programs for the computer.
Brief Descriptions of Computer System Components:
-
Hardware:
The physical components that can be seen, touched, and felt are called hardware which are resources of a computer.
-
Software:
Computer software is a general term used to describe a collection of computer programs, procedures, and documentation that perform some tasks on a computer system. The term includes application software such as word processors which perform productive tasks for users, and system software such as operating systems, which interface with hardware to provide the necessary services for application software.
Software applications for word processing, Internet browsing, Internet faxing, e-mail and other digital messaging, multimedia playback, computer gameplay, and computer programming are common. The user of a modern personal computer may have significant knowledge of the operating environment and application programs but is not necessarily interested in programming or even able to write programs for the computer.
CPU (central processing unit) or processor or Microprocessor
The processing unit that performs different types of mathematical and logical operations and controls all the devices connected with it is called the central processing unit. The processor is also called the Brain of a computer system which is a special kind of Integrated Circuit(IC) and which may be programmed and applied to a wide range of applications. The CPU is linked with different peripherals equipment, including, INPUT-OUTPUT devices auxiliary storage and primary storage. The CPU is attached to the main circuit board, called the motherboard in a microcomputer. A central processing unit (CPU), or sometimes simply processor, is the component in a digital computer that interprets computer program instructions and processes data. CPUs provide the fundamental digital computer trait of programmability and are one of the necessary components found in computers of any era, along with primary storage and input/output facilities. A CPU that is manufactured as a single integrated circuit is usually known as a microprocessor. The phrase “central processing unit” is a description of a certain class of logic machines that can execute computer programs
The functions of the CPU are mentioned as:
- To control the use of main storage to store data and instruction.
- To control the sequence of operations.
- To give commands to all parts of the computer system.
- To carry out processing.
Block Diagram of CPU:
Components of CPU:
- The Arithmetic and Logic Unit(ALU)
-The arithmetic and logic unit or ALU is another part of the central processing unit whose function is to carry out arithmetic or logical operations. The arithmetic operations may be addition, subtraction, multiplication, division (+, -, ×, ÷), and Logical operations are comparison operations such as logical tests for less than, less than or equal to, greater than or equal to, not equal to, greater than, or equal to (<, ≤, ≥, ≠, >, =) on integer (whole numbers) and real numbers(with decimal point) operand. This unit consists of special temporary components register to store its results and at last, send them to memory.
- Control Unit(CU)
-The control unit is a part of the central processing unit of a computer that coordinates all the functions of a computer system. It is responsible for the execution of instructions for the program. The control unit acts as a central nervous system for the other components of the computer. It manages and coordinates the entire computer system, including the input and output units. It obtains instructions from the program stored in the main memory, interprets the instructions, and issues signals, which cause other units of the system to execute them. It consists of a special type of register to hold the current instruction and the next instruction to be executed.
- Memory Unit(MU)
-The unit that is used to store data, information, programs, and their instruction either temporarily or permanently is called a memory unit. But the CPU consists of a special memory unit called Register.
Register
-Register are temporary storage locations in the CPU that are designed for storing data temporarily during the execution of the program. In other words, registers are electronic devices made of transistors which are the fastest memory among all. Register quickly accept, store, and transfer the data and instructions that are used immediately. To execute an instruction, the control unit of the CPU retrieves it from the main memory and places it into a register.
Note: The size and number of these registers determine the overall speed of the computer. Register is very fast compared to other memory devices.
The Central Processing Unit (CPU)
The computer does its primary work in a part of the machine we cannot see, a control center that converts data input to information output. This control central part called the central processing unit (CPU), is a highly complex, extensive set of electronic circuitry that executes stored program instructions. All computers, large and small, must have a central processing unit. As Figure 1 shows, the central processing unit consists of two parts: The control unit and the arithmetic/logic unit. Each part has a specific function.
Before we discuss the control unit and the arithmetic/logic unit in detail, we need to consider data storage and its relationship to the central processing unit. Computers use two types of storage: Primary storage and secondary storage. The CPU interacts closely with primary storage, or main memory, referring to it for both instructions and data. So that this part of the reading is considered as memory in the context of the central processing unit. Technically, however, memory is not part of the CPU.
Recall that a computer’s memory holds data only temporarily, at the time the computer is executing a program. Secondary storage holds permanent or semi-permanent data on some external magnetic or optical medium. The diskettes and CD-ROM disks that you have seen with personal computers are secondary storage devices, as are hard disks. Since the physical attributes of secondary storage devices determine the way data is organized on them, we will discuss secondary storage and data organization together in another part of our online readings.
Now let us consider the components of the central processing unit.
- The Control Unit: The control unit of the CPU contains circuitry that uses electrical signals to direct the entire computer system to carry out, or execute, stored program instructions. Like an orchestra leader, the control unit does not execute program instructions; rather, it directs other parts of the system to do so. The control unit must communicate with both the arithmetic/logic unit and memory.
- The Arithmetic/Logic Unit: The arithmetic/logic unit (ALU) contains the electronic circuitry that executes all arithmetic and logical operations. The arithmetic/logic unit can perform four kinds of arithmetic operations, or mathematical calculations: addition, subtraction, multiplication, and division. As its name implies, the arithmetic/logic unit also performs logical operations. A logical operation is usually a comparison. The unit can compare numbers, letters, or special characters. The computer can then take action based on the result of the comparison. This is a very important capability. It is by comparing that a computer can tell, for instance, whether there are unfilled seats on airplanes, whether charge-card customers have exceeded their credit limits, and whether one candidate for Congress has more votes than another. Logical operations can test for three conditions:
- Equal-to condition: In a test for this condition, the arithmetic/logic unit compares two values to determine if they are equal. For example: If the number of tickets sold equals the number of seats in the auditorium, then the concert is declared sold out.
- Less-than condition: To test for this condition, the computer compares values to determine if one is less than another. For example: If the number of speeding tickets on a driver’s record is less than three, then insurance rates are $425; otherwise, the rates are $500.
- Greater-than condition: In this type of comparison, the computer determines if one value is greater than another. For example: If the hours a person worked this week are greater than 40, then multiply every extra hour by 1.5 times the usual hourly wage to compute overtime pay.
A computer can simultaneously test for more than one condition. A logic unit can usually discern six logical relationships: equal to, less than, greater than, less than or equal to, greater than or equal to, and not equal.
The symbols that let you define the type of comparison you want the computer to perform are called relational operators. The most common relational operators are the equal sign (=), the less-than symbol (<), and the greater-than symbol (>).
- Registers: Temporary Storage Areas
Registers are temporary storage areas for instructions or data. They are not a part of memory; rather they are special additional storage locations that offer the advantage of speed. Registers work under the direction of the control unit to accept, hold, and transfer instructions or data and perform arithmetic or logical comparisons at high speed. The control unit uses a data storage register the way a store owner uses a cash register a temporary, convenient place to store what is used in transactions. Computers usually assign special roles to certain registers, including these registers:
- An accumulator, which collects the result of computations.
- An address register, which keeps track of where a given instruction or piece of data is stored in memory. Each storage location in memory is identified by an address, just as each house on a street has an address.
- A storage register, which temporarily holds data taken from or about to be sent to memory.
- A general-purpose register, which is used for several functions.
- Memory and Storage
Memory is also known as primary storage, primary memory, main storage, internal storage, main memory, and RAM (Random Access Memory); all these terms are used interchangeably by people in computer circles. Memory is the part of the computer that holds data and instructions for processing. Although closely associated with the central processing unit, memory is separate from it. Memory stores program instructions or data for only as long as the program they pertain to is in operation. Keeping these items in memory when the program is not running is not feasible for three reasons:- Most types of memory only store items while the computer is turned on; data is destroyed when the machine is turned off.
- If more than one program is running at once (often the case on large computers and sometimes on small computers), a single program cannot lay exclusive claim to memory.
- There may not be room in memory to hold the processed data.
How do data and instructions get from an input device into memory?
The control unit sends them. Likewise, when the time is right, the control unit sends these items from memory to the arithmetic/logic unit, where an arithmetic operation or logical operation is performed. After being processed, the information is sent to memory, where it is held until it is ready to be released to an output unit.
The chief characteristic of memory is that it allows very fast access to instructions and data, no matter where the items are within it. We will discuss the physical components of memory-memory chips later in this chapter.
To see how registers, memory, and second storage all work together, let us use the analogy of making a salad. In our kitchen, we have:
- a refrigerator where we store our vegetables for the salad;
- a counter where we place all of our veggies before putting them on the cutting board for chopping;
- a cutting board on the counter where we chop the vegetables;
- a recipe that details what veggies to chop;
- the corners of the cutting board are kept free for partially chopped piles of veggies that we intend to chop more or mix with other partially chopped veggies.
- a bowl on the counter where we mix and store the salad;
- space in the refrigerator to put the mixed salad after it is made.
The process of making the salad is then: bring the veggies from the fridge to the countertop; place some veggies on the chopping board according to the recipe; chop the veggies, possibly storing some partially chopped veggies temporarily on the corners of the cutting board; place all the veggies in the bowl to either put back in the fridge or put directly on the dinner table.
The refrigerator is the equivalent of secondary (disk) storage. It can store high volumes of veggies for long periods. The countertop is the equivalent of the computer’s motherboard – everything is done on the counter (inside the computer). The cutting board is the ALU – the work gets done there. The recipe is the control unit – it tells you what to do on the cutting board (ALU). Space on the countertop is the equivalent of RAM – all veggies must be brought from the fridge and placed on the countertop for fast access. Note that the countertop (RAM) is faster to access than the fridge (disk), but cannot hold as much, and cannot hold it for long periods. The corners of the cutting board where we temporarily store partially chopped veggies are equivalent to the registers. The corners of the cutting board are very fast to access for chopping, but cannot hold much. The salad bowl is like a temporary register. It is for storing the salad and waiting to take it back to the fridge (putting data back on a disk) or for taking it to the dinner table (outputting the data to an output device).
Now for a more technical example. let us look at how a payroll program uses all three types of storage. Suppose the program calculates the salary of an employee. The data representing the hours worked and the data for the rate of pay are ready in their respective registers. Other data related to the salary calculation-overtime hours, bonuses, deductions, and so forth-is waiting nearby in memory. The data for other employees is available in secondary storage. As the CPU finishes calculations about one employee, the data about the next employee is brought from secondary storage into memory and eventually into the registers.
The following table summarizes the characteristics of the various kinds of data storage in the storage hierarchy.
Storage | Speed | Capacity | Relative Cost ($) | Permanent? |
Registers | Fastest | Lowest | Highest | No |
RAM | Very Fast | Low/Moderate | High | No |
Floppy Disk | Very Slow | Low | Low | Yes |
Hard Disk | Moderate | Very High | Very Low | Yes |
Modern computers are designed with this hierarchy due to the characteristics listed in the table. It has been the cheapest way to get the functionality. However, as RAM becomes cheaper, faster, and even permanent, we may see disks disappear as internal storage devices. Removable disks, like Zip disks or CDs (we describe these in detail in the online reading on storage devices) will probably remain in use longer as a means to physically transfer large volumes of data into the computer. However, even this use of disks will probably be supplanted by the Internet as the major (and eventually only) way of transferring data. Floppy disk drives are already disappearing: the new IMac Macintosh from Apple does not come with one. Within the next five years, mostly, new computer designs will only include floppy drives as an extra for people with old floppy disks that they must use.
- The Central Processing Unit:
- (CPU),
- Buses,
- Ports and controllers,
- ROM;
- Main Memory (RAM);
- Input Devices;
- Output Devices;
- Secondary Storage;
- floppy disks,
- hard disk,
- CD-ROM
The instruction set, also called instruction set architecture (ISA), is part of a computer that pertains to programming, which is machine language. The instruction set provides commands to the processor, to tell it what it needs to do. The instruction set consists of addressing modes, instructions, native data types, registers, memory architecture, interrupt, and exception handling, and external I/O. This part of the reading will examine the CPU, Buses, Controllers, and Main Memory. Other sections will examine input devices, output devices, and secondary memory.
Examples of instruction set
- ADD – Add two numbers together.
- COMPARE – Compare numbers.
- IN – Input information from a device, e.g. keyboard.
- JUMP – Jump to the designated RAM address.
- JUMP IF – Conditional statement that jumps to a designated RAM address.
- LOAD – Load information from RAM to the CPU.
- OUT – Output information to a device, e.g. monitor
Differentiate between RISC and CISC
RISC | CISC | |
Acronym | It stands for ‘Reduced Instruction Set Computer’. | It stands for ‘Complex Instruction Set Computer’. |
Definition | The RISC processors have a smaller set of instructions with few addressing nodes. | The CISC processors have a larger set of instructions with many addressing nodes. |
Memory unit | It has no memory unit and uses separate hardware to implement instructions. | It has a memory unit to implement complex instructions. |
Program | It has a hard-wired unit of programming. | It has a micro-programming unit. |
Design | It is a complex compiler design. | It is an easy compiler design. |
Calculations | The calculations are faster and more precise. | The calculations are slow and precise. |
Decoding | The decoding of instructions is simple. | The decoding of instructions is complex. |
Time | Execution time is much less. | Execution time is very high. |
External memory | It does not require external memory for calculations. | It requires external memory for calculations. |
Pipelining | Pipelining does function correctly. | Pipelining does not function correctly. |
Stalling | Stalling is mostly reduced in processors. | The processors often stall. |
Code expansion | Code expansion can be a problem. | Code expansion is not a problem. |
Disc space | The space is saved. | The space is wasted. |
Applications | Used in high end applications such as video processing, telecommunications, and image processing. | Used in low end applications such as security systems, home automation, etc. |
- STORE – Store information to RAM.
Comparison between RISC and CISC:
The term RISC stands for ‘Reduced Instruction Set Computer’. It is a CPU design strategy based on simple instructions and fast performance.
RISC is a small or reduced set of instructions. Here, each instruction is meant to achieve very small tasks. In a RISC machine, the instruction sets are simple and basic, which helps in composing more complex instructions. Each instruction is of the same length; the instructions are strung together to get complex tasks done in a single operation. Most instructions are completed in one machine cycle. This pipelining is a key technique used to speed up RISC machines.
RISC is a microprocessor that is designed to carry out a few instructions at the same time. Based on small instructions, these chips require fewer transistors, which makes the transistors cheaper to design and produce. Some other features of RISC include:
The term CISC stands for ‘Complex Instruction Set Computer’. It is a CPU design strategy based on single instructions, which are capable of performing multi-step operations.
CISC computers have shorted programs. It has a large number of complex instructions, which take a long time to execute. Here, a single set of instructions is covered in multiple steps; each instruction set has more than three hundred separate instructions. Most instructions are completed in two to ten machine cycles. In CISC, instruction pipelining is not easily implemented.
The CISC machines have good performances, based on the simplification of program compilers; as the range of advanced instructions is easily available in one instruction set. They design complex instructions in one simple set of instructions. They perform low-level operations such as an arithmetic operation, or a load from memory and memory store. CISC makes it easier to have large addressing nodes and more data types in the machine hardware. However, CISC is considered less efficient than RISC, because of its inefficiency in removing codes which leads to wasting of cycles. Also, microprocessor chips are difficult to understand and program for, because of the complexity of the hardware.
Instruction Formats
One of the first lessons a beginner learns about computers is that to use a computer, a program must be written, translated into machine language, and loaded into memory; that such a program consists of machine instructions, and that a machine instruction is a binary number. In this chapter we look at the details of machine instructions, and in particular, the fact that a machine instruction is rarely a single binary number. It normally consists of several numbers that are assembled (placed together) by the assembler, to become the fields of the complete instruction. As a result, any machine instruction has a certain format.
The instruction is divided into fields, each a binary number. A machine instruction must contain at least one field, namely the operation code (opcode), that tells the control unit what the instruction is supposed to do. Most instructions contain other fields specifying registers, memory addresses, immediate quantities, addressing modes, and other parameters.
Figure: Various Instruction Formats
Figure illustrates typical instruction formats. They range from the simplest to the very complex and they demonstrate the following properties of machine instructions:
- Instructions can have different sizes. The size depends on the number and nature of the individual fields.
- The opcode can have different sizes. The opcode can also be broken up into several separate fields.
- A field containing an address is much larger than a register field. This is because the number of registers is small, while the size of memory is large.
- Fields containing immediate operands (numbers used as data) can have different sizes. Experience shows that most data items used by programs are small. Thus, a well-designed instruction set should allow for both small and large data items, resulting in short instructions whenever possible.
The last point, about short instructions, is important and leads us to the next topic of discussion, namely the properties of a good instruction set. When a new computer is designed, one of the first features that has to be determined and fully specified is the instruction set. First, the instruction set has to be designed as a whole, then the designers decide what instructions should be included in the set. The general form of the instruction set depends on features such as the intended applications of the computer, the word size, address size, register set, memory organization, and bus organization. Instruction sets vary greatly, but a good design for an instruction set is based on a small number of principles that are independent of the particular computer in question. These principles demand that an instruction set should satisfy the following requirements:
- Short instructions.
- An instruction size that is both compatible with the word size, and variable.
- Short instructions: Why should machine instructions be short? Not because short instructions occupy less memory. Memory isn’t expensive and modern computers support large memories. Also, not because short instructions execute faster. The execution time of an instruction has nothing to do with its size. A “register divide” instruction, to divide the contents of two floating-point registers, is short since it only has to specify the registers involved. It takes, however, a long time to execute. Therefore, short instructions are required because they take less time for memory access hence they have lesser fetch time.
- Instruction size: The instruction size should also be compatible with the computer’s word size. The best design results in instruction sizes of N, 2N, and 3N where N is the word size. Instruction sizes such as 1.2N or 0.7N do not make any sense, since each memory read brings in exactly one word. In a computer with long words, several instructions can be packed in one word and, as a result, instruction sizes of N/2, N/3, and N/4 also make sense.
The two requirements above are satisfied by the use of variable-size opcodes and addressing modes.
These are the two important requirements of having a good design for an instruction set. We discuss the opcode size next and address modes in the subsequent sections.
The Opcode Size
If the instruction is to be short, individual fields in the instruction should be short. In this section, we look at the opcode field. The opcode cannot be too short or there would not be enough codes for all the instructions. An opcode size of 6–8 bits, allowing for 64–256 instructions, is common. Most modern computers, however, use variable-size opcodes, for two good reasons. One reason has to do with the instruction size to the word size, and the other has to do with future extensions of the instruction set.
The first reason is easy to understand. We want our instructions to be short, but some instructions have to contain more information than others and are naturally longer. If the opcode size varies, longer instructions can be assigned short opcodes. Other instructions, with short operands, can be assigned longer opcodes. This way the instruction size can be fine-tuned to fit in precisely N or 2N bits.
The second advantage of variable-size opcodes has to do with extensions to an original instruction set. When a computer becomes successful and sells well, the manufacturer may decide to come up with a new, extended, and upward-compatible version of the original computer. The 68000, 80×86, and Pentium families are familiar examples.
Upward compatibility means that any program running on the original computer should also run on the new one. The instruction set of the new computer must therefore be an extension of the original instruction set. With variable-size opcodes, such an extension is easy.
When an instruction is fetched, the hardware does not know what its opcode is. It has to decode the instruction first. In a computer with variable-size opcodes, when an instruction is fetched, the control unit does not even know how long the opcode is. It has to start by identifying the opcode size, following which it can decode the instruction. Thus, with variable-size opcodes, the control unit has to work harder.
Instruction Cycle:
The period during which one instruction is fetched from memory and executed when a computer is instructed in machine language. There are typically four stages of an instruction cycle that the CPU carries out:
Fetch the instruction from memory. This step brings the instruction into the instruction register, a circuit that holds the instruction so that it can be decoded and executed.
Decode the instruction.
Read the effective address from memory if the instruction has an indirect address.
Execute the instruction.
Steps 1 and 2 are called the fetch cycle and are the same for each instruction. Steps 3 and 4 are called the execute cycle and will change with each instruction.
An instruction cycle (sometimes called a fetch–decode–execute cycle) is the basic operational process of a computer. It is the process by which a computer retrieves a program instruction from its memory, determines what actions the instruction dictates, and carries out those actions. This cycle is repeated continuously by a computer’s central processing unit (CPU), from boot-up to when the computer is shut down.