Computer Systems: Architecture, Digital Circuits, and Error Detection, Schemes and Mind Maps of Electronics

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

2023/2024

Uploaded on 08/21/2025

km-urvashi-shri
km-urvashi-shri 🇮🇳

6 documents

1 / 106

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
5
UNIT 1 Computer System
Structure Page Nos.
1.0 Introduction
1.1 Objectives
1.2 A Brief History
1.3 Structure of a Computer
1.3.1 The CPU
1.3.2 Register Sets
1.3.3 Datapath
1.3.4 Control Unit
1.3.5 Memory Unit and I/O Devices
1.3.6 What is an Instruction?
1.4 How are Instructions Executed?
1.5 Instruction Cycle
1.6 Various Computer Architectures
1.6.1 von Neumann Architecture
1.6.2 Harvard Architecture
1.6.3 Instruction Set Architecture (ISA)
1.6.4 RISC
1.6.5 Multiprocessor and multicore Architectures
1.6.6 Mobile Architecture
1.7 Summary
1.8 Solutions/Answers
1.0 INTRODUCTION
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.
1.1 OBJECTIVES
After going through this unit, you will be able to:
explain the basic structure of computer system
list and explain the features of the von Neumann architecture of the computer;
identify some of the important breakthroughs in history of computers;
identify the process of instruction execution;
define some of the contemporary computer organization
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download Computer Systems: Architecture, Digital Circuits, and Error Detection and more Schemes and Mind Maps Electronics in PDF only on Docsity!

UNIT 1 Computer System

Structure Page Nos.

1.0 Introduction 1.1 Objectives 1.2 A Brief History 1.3 Structure of a Computer

  1. 3 .1 The CPU
  2. 3 .2 Register Sets
  3. 3 .3 Datapath
  4. 3 .4 Control Unit
  5. 3 .5 Memory Unit and I/O Devices
    1. 6 What is an Instruction?
  6. 4 How are Instructions Executed?
  7. 5 Instruction Cycle
  8. 6 Various Computer Architectures
  9. 6 .1 von Neumann Architecture
  10. 6 .2 Harvard Architecture
    1. 3 Instruction Set Architecture (ISA)
  11. 6 .4 RISC
  12. 6 .5 Multiprocessor and multicore Architectures
    1. 6 Mobile Architecture
  13. 7 Summary
  14. 8 Solutions/Answers

1.0 INTRODUCTION

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.

1.1 OBJECTIVES

After going through this unit, you will be able to:

  • explain the basic structure of computer system
  • list and explain the features of the von Neumann architecture of the computer;
  • identify some of the important breakthroughs in history of computers;
  • identify the process of instruction execution;
  • define some of the contemporary computer organization

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.

A similar project was started in 1946 at Cambridge University. The objective of

this project was to design a computer that stores instruction and data in the

computer memory. This proposed computer was known as the Electronic Delay

Storage Automatic Calculator (EDSAC). In 1949, EDSAC was completed and

became the first computer of the world that stored the program instructions and

related data in the memory of the computer. The architecture of these machines

is discussed in section 1.6. Thereafter, Harvard launched a series of computes

named Harvard Mark I, Mark II, Mark III, and Mark IV. The machines have

different architecture than that of other contemporary machines. This

architecture was called the Harvard Architecture. The Harvard architecture is

discussed in section 1.6. The term Harvard architecture, now, used for machines,

which have separate instruction and data cache memory. The term cache

memory is explained in Block 2.

In 1951, UNIVersal Automatic Computer (UNIVAC I) was developed. This can

be called the first commercial computer. In 1952, IBM announced its first

computer, the IBM701. Later in 1964, IBM announced a family of computers,

called IBM 360 series. The basic concept of family of computers was to keep

the similar instruction set. However, the performance and price of the family

increased with higher models. This allowed businesses to migrate to higher

performance computer while retaining their investments in software. Another

important computer series of this time was PDP-8 by Digital Equipment

Corporation (DEC).

Advancement of technology lead to development of microprocessor on a single

silicon chip. In 1971, Intel produced its first microprocess, called Intel 4004. The

first personal computer (PC) was introduced by the Apple computer in 1977.

Further, in this year itself world again saw the installation of a mainframe

computer. A mainframe computer had many user terminal that used to solve the

processing power of a single mainframe computer VAX-11/780 by the DEC. The

year 1977 may be considered as an important year for computer industry, as in

this year in addition to the developments as given above, one of the important

microprocessor 8086, which you will study in Block 4, was introduced. This led

to development of micro-computers. Different organisations launched their

micro-computers based on Intel 8088/8086 microprocessors or many other

microprocessors. In the subsequent years, the computers developed by Compaq,

Apple, IBM, Dell, and many others became popular in the academia and

Introduction to Digital

Circuits fold increase in the size of^ computer^ memory^ and^ very large increase in

processing capacities of computer processor. The integration technology has

shown a rapid growth. Initially, only a few transistors were fabricated on a

computer chip. This was called small-scale integration (SSI). Subsequently, with

the advancements of technology, computer chips were made using the medium-

scale integration (MSI), then using the large-scale integration (LSI), then using

the very large-scale integration (VLSI), and currently to ultra large-scale

integration (ULSI). Figure 1.2 includes various technologies and number of

transistors per chip, also called as chip complexity. The integration growth can

be more understandable in terms of “feature size”. Feature size is that dimension

of transistor that is required to be minimized without changing the functionality

of the device. So, a decrease in feature size will eventually increase the number

of transistors per chip which in turn, will result in development of new advanced

chip having advanced functionality. This has resulted in growth of

semiconductor memories (RAM memories) so that now, designers can trade off

speed with memory size.

\

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:

  • It should allow input of instructions or commands and data on which these comamands are to perfomed.
  • There can be large number of instructions that may be required for data manipulation. Some of these instructions may involve decision making and/or repetitions, therefore, it may be a good idea to store instruction and data. Thus, a computer should have memory. 1.3 STRUCTURE OF A COMPUTER
  • The computer should be able to process data as per the command/instruction. Thus, it will require components, which may process data, store temporary results and transfer data among different units.
  • It should be able to store the results of the processed data using some output unit. Therefore, a computer system should have a processor to perform computations as per the instructions, a memory for data storage/instructions, Input/Output units to input the data and insturction and output the results and a data path to transfer data. In order to define a simple structure of a computer system, the role and functions of its basic components should be studied. This section defines the basic components of the computer, like CPU, the Memory, the Input/output devices, data paths etc.

1. 3 .1 The CPU

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

input / output devices”. The most common and simple commands/instruction

processing can be summarized as follows:

1. Get the next instruction or command to be executed from the main

memory to the CPU registers

a. In general, the address of the next instruction is stored in the

program counter register (PC).

b. The CU causes the instruction fetch operation using the PC.

c. The fetched instruction is stored in the CPU, in general, in an

instruction Register (IR)

2. The instruction in the IR is interpreted by the control unit.

3. In addition to step 2, the operands are brought from the main memory to

CPU registers.

4. The operation as interpreted at point 2 , is performed on the data obtained

in step 3.

5. Results of the operation in step 4 are stored in the CPU registers. In case

the instruction specifies that the result of the operation is to be stored in

the memory, then the result data in CPU registers are transferred to the

specified memory locations.

The execution cycle is repeated as long as there are more commands to be

executed. Sometimes the execution of a program is required to be terminated

abnormally due to occurrence of certain error or other conditions, like division

by zero. Thus, there may be need of a mechanism that can interrupt the execution

Register for Fetching and storing Instructions

In a computer system the instructions of a program are stored in the main

memory. Two main registers, which are involved for transferring instructions

from main memory to CPU are: Program counter (PC) and instruction/command

or instruction register (IR). PC contains the address of the memory location from

which the next command may be executed. Instructions are fetched to IR, so that

it can be interpreted and executed.

Condition Registers and Status registers

In some computers, status registers or flag registers are used to store status

information of various operations. Some computers have a special program

status register (PSW). PSW contains the present status of the processor flags. A

detailed discussion on flags is given in Block 3 and Block 4.

1. 3 .3. Datapath

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.

1. 3. 4. Control Unit

The control unit is primary unit which commands operations of the system by

giving control signals to various units of computer. The control unit is also

responsible to regulate internal and external flow of data from CPU. The data

transfer from CPU to/from memory and CPU to/from I/O is also controlled by

these signals. A continuous pulse sequence is generated by a system clock over

a set period of time. This sequence of steps, identified as t0, t1, t2, ..., (t0 ≤ t1 ≤

t2, ...), is used to perform a specific command by enabling control signals in a

specific order. The details on various types of control units and their operation

are discussed in Block 3 of this course.

1.3.5 Memory Unit and I/O Devices

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

As stated earlier, the purpose of memory in computer is to store the instructions

of a program and the related data. These instructions and related data to these

instructions are fetched by the CPU, which then executes theses instructions.

This memory is also called the Random Access Memory (RAM) as any location

of the memory can be addressed randomly. Details on memory system are given

in Block 2.

I/O devices are used to input data and programs, e.g. a keyboard can be used to

input a program. Present day computer use pointing devices and screens to select

options from Graphical user Interfaces (GUI) like Microsoft Windows. The

output devices like printer, monitor etc. display the output either in printed (also

called hard copy) form or are displayed on the details on I/O devices are also

given in Block 2.

1.3. 6 What is an Instruction?

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.

Fetch – Decode – Execute Cycle

1011 1110 0110 1110 1101 0101 1100 0101 1000 0000 1001 1100 0110 1010 1111 0101 1000 0000 1000 0000 1001 1100 0110 1010

program and data

A B ALU A+B A B A+ B ALU input registers Register set ALU input data bus ALU output register

Datapath Memory

Contro

l

I/O

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

A program is having a set of instruction which are stored in computer’s

memory. In general, the instructions of a program are executed sequentially by

the processor. A computer system executes an instruction in the following four

phases:

1. Fetching.

2. Decoding

3. Read the operands from the memory.

4. Execution.

These steps are explained in details in Block 3. In this unit they are just being

introduced.

Fetching the instruction: An instruction is placed in the memory location or

locations in RAM. Instruction fetch will bring this instruction into the

Instruction register. This step requires the information about where the

instruction is in the memory. In general, PC register contains this information.

Program Counter Instruction Register Program Status Word

General

Purpose

Registers

MAR

MBR

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:

  • The CPU identifies the source of the interrupt.
  • CPU executes and Interrupt Servicing Routine (ISR), which services the event that has occurred.
  • Meanwhile, the program which was being executed is moved to a hold state.
  • Once the CPU completes the ISR, i.e. executes it till its completion, it resumes the execution of program it has put on hold. Interrupts and Instruction Cycle The interrupt process is summarised below:
  • CPU is executing a program say “X”. and is in the decode stage of ith^ instruction of the program X.
  • Assume an interrupt due to an event occurred at this time.
  • CPU waits till the ith^ instruction execution is complete, and then stores the register values & PC, which has address of (i+1)th^ instructions into memory or special storage area.
  • CPU indentifies the interrupt and executes the interrupt servicing program till it is complete.
  • CPU then return to execution of the (i+1)th^ instruction by restoring the register and PC. Thus, after interrupt processing, the execution of the interrupt program is resumed. Figure 1. 8 shows Interrupt cycle. Figure 1. 8 : “Instruction Cycle with Interrupt Cycle [https://www.ece.ucdavis.edu/~vojin/CLASSES/EEC70/W2004/presentations/Ch_03.pdf”] Please note an important point in the figure 1.8, which is - interrupt enable and interrupt disable conditions. If CPU is executing very important instruction, the response to an interrupt can be disabled. In this situation interrupts will not be processed or acknowledged by the CPU till they are enabled again. Check Your Progress 2
  1. State True or False i) Assume a computer has one-byte long instructions, its PC contains a decimal value 205 and only one byte is fetched from the memory at a time. For this machine, after fetching an instruction, the value of PC will become 206.

T/F

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. Explain the term interrupt and its cause. ..................................................................................................................................... ..................................................................................................................................... .....................................................................................................................................
  2. Explain the interrupt processing in a computer. ..................................................................................................................................... ..................................................................................................................................... .....................................................................................................................................

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:

  • The control unit (CU), which interprets commands to be executed, and generates control signal which instructs other units about how to perform the operation.

Memory

ALU Control

STATUS^ CLOCK Control Instruction DATA IN OUT Control and Address

  • Registers and other circuitry.
  • Input/output system, which are used for input of instructions and output of results.
  • A memory, which stores instructions as well as data (both).
  • The inter connection structures, which allow communication between various components. (2) von Neumann machine works on a concept of stored program, which requires that data and commands both must be loaded into the memory of the main computer prior to execution &called as Random Access Memory (RAM). (3) The instruction/commands in a Von Neumann machine are executed in a sequence, therefore, to change this order of execution, a special instruction may be used. (4) A Von Neumann machine has a single path from control unit to main memory so only one of two-data or instruction can be transferred between the two at a time. 1. 6 .2 Harvard Architecture When data and instructions are kept in separate memory then it is Harvard architecture. Data is fetched from one memory location and instruction is retrieved from a separate location. Pipelining can be done in this architecture. It is complicated to design this architecture. The CPU can fetch, decode and execute instructions and data. The construction of this architecture has separate access for codes and data address. The modified Harvard architecture is similar to the Harvard architecture and has a standard address space for a separate data and instruction cache. It has digital signal processors that can handle audio and video data efficiently. It also has microcontrollers, the processing circuits that process small number of applications and has small data memory and speed up processing by performing the commands and data access simultaneously. Figure 1.1 2 shows different connection paths for modified Harvard architecture. All these four units are contained in CPU. It can perform simultaneous input / output operations and has a separate mathematical and logic component. Figure 1.1 2 : The modified Harvard architecture. ALU Control Unit Instruction Memory Data Memory I/O

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

RISC formulation is being used by ARM core. RISC is a strong design and it

delivers simple commands in a single cycle with high clock speeds. RISC targets

to reduce the hardware complexity of instructions because hardware has less

flexibility in comparison to software. As a result, the structure of the RISC

places expectations on the compiler. Conversely, complex instructions (CISC)

rely heavily on hardware for operational performance, and as a result CISC

commands are complex. Figure 1.1 4 shows this major difference.

Figure 1.1 4 : RISC vs. CISC

CISC emphasizes the complexity of hardware. The RISC emphasizes the

complexity of the compiler.

The RISC philosophy is based on four main building codes:

1. Instructions - Number of instructions has been reduced in RISC. An

instruction of RISC is executed in several segments. Instruction execution is

overlapped in these segments (called pipeline segment). Each segment takes

about one clock cycle time. For example, a processor performs complex

tasks by combining several simple commands. Each command is of a limited

length to allow the “pipeline to pick up future commands before deciding on

current commands”. CISC instructions are usually of varied length.

Compiler Compiler

Processor Processor

Code Generation Greater Complexity Greater Complexity Code Generation

CISC RISC

Introduction to Digital

Circuits 2.^ Pipes^ -^ The processing of the instructions is divided into smaller units that

can be made similar to pipes. Appropriately the pipe continues one step in

each cycle of execution.

3. Registers – Large registers for general purposes have been included in RISC

which may contain data or address. CISC processors have been provided

with specific registers for specific tasks.

4. Load-store creation - The processor operates on data managed in registers.

Memory access is expensive, so separating memory access to data

processing provides an opportunity. With CISC design the data processing

functionality can work in direct memory.

The RISC is explained in more details in Block 3.

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.