




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An introduction to the basic structure of computer systems, focusing on digital circuits and error detection methods. It covers the von neumann architecture, historical breakthroughs in computing, and the process of instruction execution. Key topics include number conversions, parity bits, and hamming's error detection and correction code. The document also explains full and half adders, binary number addition, and register operations like shifting bits. It is designed to help students understand the fundamental components and operations within a computer system, emphasizing error detection and correction techniques.
Typology: Schemes and Mind Maps
1 / 106
This page cannot be seen from the preview
Don't miss anything!





























































































1.0 Introduction 1.1 Objectives 1.2 A Brief History 1.3 Structure of a Computer
In the present competitive world, a business can survive if it uses most advanced Information technology to support various businesses processes. In this digital world, computers are an important part your daily life. You use computer to use health services, banking services, teaching and learning services, online services made available by the Government and many more such services. Computer technology can be used to make all these processes more efficient and user friendly. This Unit introduces you to some of the basic terminologies used to define computer system of today. In addition, the breakthrough in the history of computer systems has also been included in this Unit. This Unit also introduces you to some of the popular computer architectures, like von Neumann Architecture, which was one of the first computer architecture, and other contemporary architectures of Computer System. Also, a simple novel idea for execution of instructions has also been introduced. This basic process of instruction execution will be explained in more details in the later Units of the course. You can get more information on these principles from the further readings.
After going through this unit, you will be able to:
Introduction to Digital Circuits 1.2 A Brief History This section traces a brief historical background of computer. You should be aware of that the push to construct Computer has not come from one person or group or organisation. There were many attempts to develop an automatic and programmable computing device. In 1944, the University of Pennsylvania developed the first automatic computing device, which was called Electronic Numerical Integrator and Calculator (ENIAC). It was a general-purpose machine fabricated utilizing vacuum tubes. This machine was planned basically to compute the shooting scope of weapons during World War II. It was arranged by manual setting of exchanging and associating links. An improved ENIAC model was called Electronic Discrete Variable Automatic Computer (EDVAC), which was completed in 1952. Meanwhile, the specialists at the Institute for Advanced Study (IAS) in Princeton assembled (1946) an IAS machine, which was multiple times quicker than ENIAC.
computer. A mainframe computer had many user terminal that used to solve the
Introduction to Digital
Figure 1.2: Numbers of Transistors per Chip [“Ref: https://www.ncbi.nlm.nih.gov/books/NBK321721/figure/oin_tutorial.F3/ ” ] As discussed in the previous section, computer is fabricated using semi-conductor chips. This technology primarily have two stable states of representation, such as presence or absence of output. These two states are used to denote bits 0 and bit 1 respectively. Thus, the computer is a digital device, which performs all the operations using binary digits (bits). Therefore, computer instructions, character set, data in computation etc everything is to be represented and processed using binary codes or binary number system. The minimal processing requirements of a computers system are:
The CPU is responsible for executing a sequence of instructions, which are part of a computer program. A computer program along with the data is stored in the main memory of a computer system. The CPU consists of following components: (1) registers, (2) an arithmetic logic unit (ALU), and (3) a control unit (CU). The role of each component of CPU is well defined. The registers are used to store - (1) commands or instruction which is presently being executed by the Arithmetic logic unit, (2) they can also store addresses such as address of operands /data, “address of the next instruction to executed”, (3) the data or operands itself. Arithmetic logic unit is designed to perform binary computations. The control unit (CU) controls the execution of instructions by the computer. CU controls the fetching, interpreting and execution of the commands or instructions on a computer, which primarily results in processing of the data stored in registers or the main memory. Figure 1. 3 shows the structure of the CPU and its interaction with the memory system and input / output devices. The CPU “reads commands form the memory, reads and writes data from and to the memory, and transfers the data to the
As discussed earlier, a computer performs instruction execution using differnet components. But, how does the data and instructions get communicated from one component to other. This is achieved by datapaths. There can be two diferent types of datapaths: (i) The datapaths which are internal to CPU: Such datapaths transfer two different categories of data. Data category, which includes data contained in different registers of ALU. The control data, which essentially pulls control signals from the datapaths for the use of control unit. In addition, the data is moved between two registers or between ALU and a register. This internal data migration is done by local buses, which may carry control information, instructions and addresses. (ii) Externally, data may be transferred to and from registers to memory and I / O devices, usually using a special set of circuit called the system bus. Internal data transfer between registers and between ALUs and registers can be done through various organizations including one, or more buses. Dedicated datapaths can also be used for data transfer devices between the CPU components on a regular basis. For example, Program counter register (PC) content is transferred to Memory Address Register (MAR) to fetch new commands at the commencement of each command cycle. Therefore, dedicated datapaths from PC to MAR can help speed up this part of command execution.
An interesting part of computer is the memory of a computer, which stores the data as well as instructions. Computer stores binary digits 0 and 1 called bits. However, bit is a very elementary, therefore, a meaningful combination of bits is generally, required to be stored in memory. A group of 8 bits is traditionally called a “Byte”. However present day data may include 16 bits (2 bytes), 32 bits (4 bytes), 64 bits (8 bytes) and so on.
Introduction to Digital Circuits Interestingly the size of the memory is represented as a byte in many situations, which was equal to one character in earlier data representation (Please refer to Unit 2 for data representation). Therefore, higher units are needs to measure the size of the memory. As computer is a binary device, an interesting combination as given in the following table is used to measure the memory capacity. Unit Equivalent to 1 Kilobyte (KB) (^210) Byte = 1024 bytes ≈ 1000 bytes 1 Megabyte (MB) 210 KB = 20^20 byte 1 Gigabyte (GB) 210 MB = 20^30 byte 1 Terabyte (TB) 210 GB = 20^40 byte 1 Petabyte (PB) 210 TB = 20^50 byte 1 Exabyte (EB) 210 PB = 20^60 byte 1 Zettabyte (ZB) 210 EB = 20^70 byte 1 Yottabyte (YB) 210 ZB = 20^70 byte and beyond
In the entire discussion on CPU, one term was used consistently - an instruction. What is an instruction in the context of a computer system? In general, you write programs in a high level computer language like C, Python, JAVA, C++ and so on. Most of these programming language requires you to compile the program into an object program, which is linked with library programs and loaded in the memory of the computer. A program also include some basic data and I/O from keyboard or files. These loaded programs contains binary instructions, which operate on binary data. Some of the common high level statements include arithmetic instructions like addition, subtraction; decision like if-then-else; repetitive loops which also involves decisions like while, for etc.; and procedure/function calls. In all these statements few common characteristics stand out, which are made part of binary instructions as given below: (1) Each binary instruction may define one operation using a binary operation code also called opcode.
Introduction to Digital Circuits The instruction will also allocate a third memory location named z. Thus, first instruction, technically will be translated to create three integer location named x, y and z. Please note that these locations, when loaded in the memory will be identified as three separate addresses. The second instruction z=x+y; will be executed by the CPU to produce the desired results. But, how does these set of instructions be executed by computer? As a first step, a compiler program will be executed by computer and all the High level programming statements will be translated to a machine language program consisting of data in the form of variable locations and values, and instructions as binary operation codes and operand addresses. Please note in the C program segment, the declaration results in creation of variable locations, with data values. It is the instruction z=x+y; which gets converted to one or more machine instructions, which will have binary codes indicating addition operation, opened address on which this addition is to be performed, and where the result will be stored. Assuming a typical machine is shown in Figure 1. 4 . Figure 1. 4 : “Instruction and data format of an assumed machine[https://www.cise.ufl.edu/~mssz/CompOrg/CDA-lang.html”] Please notice the role of ALU registers. They get values of locations x and y first to be added by the ALU and the answer of this addition is stored in a register, which is sent back to the memory location z. In general, a machine consists of several registers as shown in figure 1. 5. The details on these registers will be discussed in Block 3 of this course.
1011 1110 0110 1110 1101 0101 1100 0101 1000 0000 1001 1100 0110 1010 1111 0101 1000 0000 1000 0000 1001 1100 0110 1010
A B ALU A+B A B A+ B ALU input registers Register set ALU input data bus ALU output register
Figure 1.5: “Central Processing Unit with registers [http://digitalthinkerhelp.com/what-is-cpu-processor-register-in-computer-its- types-with-functions/]”
1. 5 INSTRUCTION CYCLE
Program Counter Instruction Register Program Status Word
Memory Buffer Register Memory Address Register CPU Registers Central Processing Unit Data Bus Address Bus Main Memory
Interrupt mechanism is a very useful mechanism for increasing the efficiency of program execution. The instruction cycle many continue, till the time an interrupt occurs. As a result of an interrupt, the CPU knows that some event has occurred and then CPU stops the execution of the current program and goes on to process that event. CPU then uses the following steps to process the interrupt:
START HALT Fetch Cycle Execute Cycle^ Interrupt Cycle Interrupts Disabled Interrupts Enabled Fetch Next Instruction Execute Instruction Check for Interrupt: Process Interrupt
Introduction to Digital Circuits ii) PC register is needed to fetch the data from memory. iii) A clock signal cannot cause as interrupt. iv) The interrupt are answered by the hardware. v) The processor processes one interrupt, even if, multiple interrupts may occur at a time.
1. 6 VARIOUS COMPUTER ARCHITECTURE Architecture of a computer contains procedures or processes to explain the user about the functionality of a computer system. This is analogous to design of a building, i.e. the construction of buildings is tailored to the needs of the user by taking into account the cost threshold. The original design is designed on paper. Likewise the computer, after it was constructed using the logic of transistors and integrated circuits, the construction was tested and built in a hardware way. Computers can be evaluated based on their performance, efficiency, reliability, and cost of computer software, which works with software and computer technology standards. In this section, you will learn about various computer architectures. 1 .6.1 von-Neumann Architecture John von – Neumann has invented this architecture. Several computers are based on the construction of this architecture and other improvements on this architecture. The basic building blocks of this architecture are- 1. CPU 2. Memory Unit 3. I/O Devices 4. Connection Structure Each memory unit having multiple locations will have different addresses. Same memory is having instructions and data, which has multiple locations with each location having unique address. A computer program consists of instructions and data. CPU process the data stored in the memory or obtained term input devices as per the instruction the program. The results are stored in the memory or output devices. The data processing operation in CPU use registers.
Introduction to Digital Circuits Figure 1. 11 : Princeton (von Neumann) Architecture Stored System Computers – Such computers can be programmed to do various tasks and also, applications are kept on them that is why they are named as Stored System Computers. This concept of a stored system was presented by John von Neumann. In such computer systems, a single memory is used to store programs and data and is treated in the same way. A computer built in this way will be easy to imitate. The von Neumann architecture, also called as Princeton model, is a computer architecture designed by the 1945 definition of John von Neumann and others in the First Draft of a Report on the EDVAC. The draft defines the design of a digital computer. As per this document a general purpose computer should contain: ❑ a Processing unit comprising of arithmetic unit, logic unit and processor registers ❑ A control unit comprising of command register and a program counter register ❑ Data storage in data memory ❑ Limited external storage ❑ Input and output methods The name "von Neumann architecture" has been attributed to any computer where the stored program and data are not transmitted simultaneously because they share the same medium of data transfer, called system bus. This is called a von Neumann bottleneck, as it restricts simultaneous access of data and instructions, thus, may result in reduction in the performance of the system. However, the single path simplifies the design of the von Neumann machine. In comparison, a Harvard architecture machine uses one dedicated bus each for address memory and data memory respectively, therefore, is more complex. The basic characteristics of Von Neumann architecture are summarized below. (1) A computer has the following operational units:
STATUS^ CLOCK Control Instruction DATA IN OUT Control and Address
As Micro-architectural standard is placed just below the ISA standard and is therefore deals with the implementation of computer-based core functions as suggested by ISA. What is the need to differentiate between Micro-architecture and ISA? It is required to establish and maintain system compliance across all ISA-based hardware applications. Adapting different machines to the same set of basic commands (ISA) allows the same system to run smoothly on multiple different machines, thus, making it easier for editors to write and store code for many different machines simultaneously and efficiently. This abstraction hierarchy supports flexibility, which is why first the ISA is developed and then various micro architectures are created that are compatible with this machine-operated ISA. The micro-architecture is implemented using various logic circuits.
1. 6. 4 RISC
Code Generation Greater Complexity Greater Complexity Code Generation
Introduction to Digital
1. 6. 5 Multiprocessor and Multicore Architecture One of the ways to improve computer system efficiency is to have processors with faster clock speeds. But, owing to the thermal wall problem, when the clock speeds started hitting the thermal barrier, focus was on to extract maximum work out of the available system as an alternative of increasing processor speed.
One of the ways to introduce parallelism in computers is to have more than one processor available in the single computer system referred to as multiprocessor system. It is very likely that at times the job (application) to be executed on a processor can be divided into various tasks with two or more tasks being capable of running independent of each other. Multiprocessor system corresponds to the architecture in which rather than having only one processor we have more than one processor available on the chip. Thus, if the job demanding execution comes with independent tasks, a processor can be dedicated to each task in order to exploit the parallelism in the job. In a way, multiprocessor system can be looked as a solution to offer hardware parallelism to match the available software parallelism in the job. This architecture corresponds to instruction level parallelism allowing independent instructions (or sub tasks) being assigned to different processors in the multiprocessor system allowing their parallel execution. If all the processors are same, the system is referred to as a Symmetric Multi- Processor (SMP). The multiprocessor architecture shares the computing environment viz. memory, OS, system clock etc. In a conventional computer system, you had only one CPU available, which is responsible for the job execution focusing on only one task at a time. However, now a days, you hear about terms like a computer with quad core processor or an octa core processor. This architecture is referred to as the multicore architecture corresponding to both instruction level and thread level parallelism in a uniprocessor system. In this case, a single processor CPU is fabricated to have more than one CPU cores inside it. Each core acts an independent processing unit (CPU) and can execute independent threads, if permitted by the program. Thus, a quad core processor comprises for four cores whereas an octa core processor has eight cores capable of working independently on the same processor. The difference between multiprocessor architecture and multicore architecture lies in the fact that multiprocessor architecture has more than one processor available whereas multicore processors have a single processor with multiple cores used as independent CPUs. Thus, multicore architecture is multiprocessing in a single packaged unit. Both multiprocessor and multicore architectures correspond to the MIMD category of Flynn’s classification with multiprocessor architecture being more pure form of parallel processing. Practically, for improved performance, you can have multiprocessor machines with each processor having multiple cores.