CHAPTER SIX BASIC COMPUTER ORGANIZATION AND DESIGN

Similar documents
5-1 Instruction Codes

Chapter 5. Computer Architecture Organization and Design. Computer System Architecture Database Lab, SANGJI University

Basic Computer Organization and Design Part 2/3

CHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle

Computer Organization (Autonomous)

BASIC COMPUTER ORGANIZATION AND DESIGN

UNIT:2 BASIC COMPUTER ORGANIZATION AND DESIGN

BASIC COMPUTER ORGANIZATION AND DESIGN

BASIC COMPUTER ORGANIZATION AND DESIGN

Basic Computer Organization - Designing your first computer. Acknowledgment: Most of the slides are adapted from Prof. Hyunsoo Yoon s slides.

csitnepal Unit 3 Basic Computer Organization and Design

Unit II Basic Computer Organization

Computer Architecture and Organization: L06: Instruction Cycle

COMPUTER ORGANIZATION

Computer Organization and Design

Programming Level A.R. Hurson Department of Computer Science Missouri University of Science & Technology Rolla, Missouri

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes

COMPUTER ARCHITECTURE AND ORGANIZATION Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital

Computer Architecture

CHAPTER SEVEN PROGRAMMING THE BASIC COMPUTER

Faculty of Engineering Systems & Biomedical Dept. First Year Cairo University Sheet 6 Computer I

Blog -

Introduction. Machine Language. Assembly Language. Assembler. Program Loops. Programming Arithmetic and Logic Operations.

C.P.U Organization. Memory Unit. Central Processing Unit (C.P.U) Input-Output Processor (IOP) Figure (1) Digital Computer Block Diagram

Computer architecture Assignment 3

Computer Architecture

Computer Architecture Programming the Basic Computer

UNIT-III REGISTER TRANSFER LANGUAGE AND DESIGN OF CONTROL UNIT

COMPUTER ARCHITECTURE AND DIGITAL DESIGN

Computer Organization and Architecture

Chapter 16. Control Unit Operation. Yonsei University

Register Transfer and Micro-operations

REGISTER TRANSFER LANGUAGE

Effective Approach for Teaching Computer System Architecture

Class Notes. Dr.C.N.Zhang. Department of Computer Science. University of Regina. Regina, SK, Canada, S4S 0A2

UNIT-II. Part-2: CENTRAL PROCESSING UNIT

Darshan Institute of Engineering & Technology for Diploma Studies Unit - 1

There are four registers involved in the fetch cycle: MAR, MBR, PC, and IR.

جامعة بنها - كمية العموم قسم الرياضيات المستوي الرابع )علوم حاسب( يوم االمتحان: االحد تاريخ االمتحان: 1024 / 21 / 12 المادة :

M. Sc (CS) (II Semester) Examination, Subject: Computer System Architecture Paper Code: M.Sc-CS-203. Time: Three Hours] [Maximum Marks: 60

Blog -

Combinational and sequential circuits (learned in Chapters 1 and 2) can be used to create simple digital systems.

1. INTRODUCTION TO MICROPROCESSOR AND MICROCOMPUTER ARCHITECTURE:

CHAPTER 4: Register Transfer Language and Microoperations

Chapter 3 : Control Unit

THE MICROPROCESSOR Von Neumann s Architecture Model

REGISTER TRANSFER AND MICROOPERATIONS

Module 5 - CPU Design

UNIT - V MEMORY P.VIDYA SAGAR ( ASSOCIATE PROFESSOR) Department of Electronics and Communication Engineering, VBIT

STRUCTURE OF DESKTOP COMPUTERS

MICROPROGRAMMED CONTROL

PSIM: Processor SIMulator (version 4.2)

Assembly Language Programming of 8085

For Example: P: LOAD 5 R0. The command given here is used to load a data 5 to the register R0.

CPU Design John D. Carpinelli, All Rights Reserved 1

CHAPTER 8: Central Processing Unit (CPU)

Computer Organization (Autonomous)

session 7. Datapath Design

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

Lecture-15 W-Z: Increment-Decrement Address Latch:

REGISTER TRANSFER AND MICROOPERATIONS

(2) Explain the addressing mode of OR What do you mean by addressing mode? Explain diff. addressing mode for 8085 with examples.

INSTRUCTION SET OF 8085

Chapter 4. MARIE: An Introduction to a Simple Computer. Chapter 4 Objectives. 4.1 Introduction. 4.2 CPU Basics

UNIT - I: COMPUTER ARITHMETIC, REGISTER TRANSFER LANGUAGE & MICROOPERATIONS

Roll No TCS 402/TIT 402

Digital System Design Using Verilog. - Processing Unit Design

The von Neumann Architecture. IT 3123 Hardware and Software Concepts. The Instruction Cycle. Registers. LMC Executes a Store.

Architecture & Instruction set of 8085 Microprocessor and 8051 Micro Controller

COA. Prepared By: Dhaval R. Patel Page 1. Q.1 Define MBR.

Computer Organization II CMSC 3833 Lecture 33

2 MARKS Q&A 1 KNREDDY UNIT-I

Fig: Computer memory with Program, data, and Stack. Blog - NEC (Autonomous) 1

Dec Hex Bin ORG ; ZERO. Introduction To Computing

SCRAM Introduction. Philipp Koehn. 19 February 2018

Processing Unit CS206T

IA Digital Electronics - Supervision I

The functional block diagram of 8085A is shown in fig.4.1.

Basic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control,

1. Internal Architecture of 8085 Microprocessor

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY

Microcontroller Systems

IA-32 architecture. PDP8/e architecture Arithmetic. IA-32 architecture (cont)

William Stallings Computer Organization and Architecture

Problem Set 1 Solutions

8085 INSTRUCTION SET INSTRUCTION DETAILS

1. Internal Architecture of 8085 Microprocessor

COMPUTER ORGANIZATION AND ARCHITECTURE

Note that none of the above MAY be a VALID ANSWER.

Micro-Operations. execution of a sequence of steps, i.e., cycles


Lecture1: introduction. Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit

Architecture of 8085 microprocessor

1. Internal Architecture of 8085 Microprocessor


1 MALP ( ) Unit-1. (1) Draw and explain the internal architecture of 8085.

EE 3170 Microcontroller Applications

Chapter 2 Instruction Set Architecture

The CPU and Memory. How does a computer work? How does a computer interact with data? How are instructions performed? Recall schematic diagram:

Objective now How are such control statements registers and other components Managed to ensure proper execution of each instruction

Transcription:

CHAPTER SIX BASIC COMPUTER ORGANIZATION AND DESIGN 6.1. Instruction Codes The organization of a digital computer defined by: 1. The set of registers it contains and their function. 2. The set of instructions used. 3. The timing and control structure. The user of a computer can control the process by means of a program. A Program can be defined as a set of instructions that specify the operations, operands, and the sequence by which processing has to occur. A Computer Instruction is a binary code that specifies a sequence of microoperations for the computer. An Instruction Code is a group of bits that leads the computer to perform a specific operation. The instruction code usually divided into many parts, each having its own particular interpretation. The most basic part of an instruction code is its operation part. The Operation Code is groups of bits that define operations such as add, subtract, multiply, shift, and complement. The number of bits required for the operation code of an instruction depends on the total number of operations available in the computer. For example, a computer with 32 distinct operations needs an operation code that consists of five bits. The relationship between a computer operation and a microoperation is recognized as that, the operation code is part of instruction stored in computer memory, which tells the computer to perform a specific operation. The control unit receives the instruction from memory and interprets the operation code bits. It then issues a sequence of control signals to initiate microoperations in internal computer registers. For this reason, an operation code sometimes called a macrooperation because it specifies a set of microoperations. 1-50 Yacoup K. Hanna

The operation part of an instruction code specifies the operation to be performed. It is obvious that the operation must be performed on some data stored in processor register or in memory. Therefore, the instruction code must specify the registers or the memory words where the operands are to be found, as well as the register or memory word where the result is to be stored, in addition to the type of operation to be executed. 6.2. Stored Program Organization and Addressing Suppose that we have a computer with one processor register named Accumulator (abbreviated AC) and an instruction code format with two parts, one part for the type of operation to be performed and the second specifies an address. The memory address indicates the control where to find the operand in memory. The operand is read from memory and used as the data to be operated on together with the data stored in the processor register. Figure 6.1 illustrates this type of organization. For this example, it is shown that the set of instructions (programs) are stored in one section of memory and data in another section. For a memory unit with 4096 words, we need 12 bits to specify an address since 2 12 = 4096 and 4 bits for the operation code (Opcode) to specify one out of 16 possible operations. To execute the program, the control reads the first 16-bit instruction from the program portion of memory. The 12-bit address part of the instruction is used to read a 16-bit operand from the data portion of memory. The control then executes the operation specified by the operation code. The operation is performed with the memory operand and the content of AC. In case the operation indicated by the instruction code does not need an operand from memory, the 12-bits used to specify the address of the operand are not used and therefore can be used for other purpose. Examples of these operations that operate on data stored in the Accumulator register (AC) are, clear AC, complement AC, and increment AC. 2-50 Yacoup K. Hanna

Figure 6.1 Direct and Indirect Addressing When the second part of an instruction code specifies an operand, the instruction is said to have an Immediate Operand and this type of instructions are called Immediate Instructions. When the second part of an instruction code specifies the address of an operand, the instruction is said to have a Direct Address. When the second part of an instruction code designates an address of a memory word, in which the address of the operand is found, the instruction is said to have an Indirect Address. The memory word that holds the address of the operand is used as a pointer to an array of data. The pointer could be placed in a processor register instead of memory as done in commercial computers. To distinguish between a direct and indirect address, the most significant bit (bit 15) of the instruction code is used, in which 0 indicates direct address, while 1 indicates indirect address. To illustrate these configurations, we consider the instruction code format shown in figure 6.2(a). The instruction consists of a one bit designated by I for addressing mode, 3-bit for operation code, and the remaining 12 bits for an address. 3-50 Yacoup K. Hanna

A direct address instruction is shown in figure 6.2(b), where I = 0. This instruction is placed in address 10 in memory. The Opcode specifies an ADD instruction, and the address part is the binary equivalent of 1020. The control finds the operand in memory at address 1020 and adds it to the content of AC. An indirect address instruction is shown in figure 6.2(c), where I = 1. This instruction is placed in address 20 in memory. The Opcode specifies an ADD instruction, and the address part is the binary equivalent of 90. The control goes to the word at address 90 to find the address of the operand in memory at address 1340 and adds it to the content of AC. It is clear that, the indirect address instruction needs two references to memory to fetch an operand. From the above examples, it is shown that there is what is called Effective Address, which can be defined as the address of the operand in a computation-type instruction or the target address in a branch-type instruction. Thus, the effective address in the instruction of figure 6.2(b) is 1020 and the effective address in the instruction of figure 6.2(c) is 1340. Figure 6.2 4-50 Yacoup K. Hanna

6.3. Computer Registers As shown in the previous section, computer instructions are stored in consecutive memory locations and are executed sequentially one at a time. Therefore, in this case, a counter is needed to calculate the address of the next instruction after execution of the current instruction is completed. In addition, it is necessary to provide a register in the control unit for storing the instruction code after reading it from memory. The computer needs processor register for manipulating data and a register for holding a memory address. Figure 6.3 shows the memory and register configuration of the Basic Computer. Figure 6.3 Table 6.1 lists the eight registers of the basic computer with a brief description for each. Register Symbol Number of bits Table 6.1 Register Name Register Function DR 16 Data Register Holds the operand read from memory TR 16 Temporary Register Holds temporary data during processing AC 16 Accumulator General purpose processor register IR 16 Instruction Register Holds instruction code read from Memory PC 12 Program Counter Holds the address of the next Instruction to be read from memory after the current instruction is executed AR 12 Address Register Holds Address for Memory 5-50 Yacoup K. Hanna

INPR 8 Input Register OUTR 8 Output Register Receives an 8-bit character from an Input device Holds an 8-bit character for an output device From table 6.1, it is indicated that the memory address register (AR) has 12 bits since this is the width of memory address. The program counter (PC) has also12 bits since it holds the address of the next instruction to be read from memory after the current instruction is executed. The PC goes through a counting sequence and causes the computer to read sequential instructions previously stored in memory. Instruction words are read and executed in sequence unless a branch instruction is encountered. A branch instruction calls for a transfer to a nonconsecutive instruction in the program. The address part of a branch instruction is transferred to PC to become the address of the next instruction. The input and output register [(INPR) and (OUTR)] have 8 bits since each holds an 8-bits character. Common Bus System Figure 6.4 shows the basic computer in which it has eight registers, a memory unit, and a control unit. Paths must be provided to transfer information from one register to another and between memory and registers via a common bus. The outputs of six registers and memory are connected to the common bus. The selection variables S2, S1, and S0 are used to select the output of one of the six registers or memory at a given time. The number shown along each output indicates the decimal equivalent of the required binary selection. For example, the number along the output of memory unit is 7, and that along the output of register PC is 2. The 12-bit outputs of PC are placed on the bus lines when S2S1S0 = 010. The lines from the common bus are connected to the inputs of each register and the data inputs of the memory. The particular register whose LD (Loud) input is enabled receives the data from the bus during the next clock pulse transition. The memory receives the contents of the bus when its write input is activated and S2S1S0 = 111. The memory places its 16-bit output onto the bus when the read input is activated. 6-50 Yacoup K. Hanna

Two registers, AR & PC, have 12 bits each since as mentioned before they hold a memory address. When their contents are applied to the 16- bit common bus, the four most significant bits are set to 0's. When AR & PC receive information from the common bus, only the 12 least significant bits of the bus are transferred into these registers. Four registers, DR, AC, IR, and TR, each have 16 bits. They receive and transfer 16 bits from and to the common bus. The input and output registers (INPR & OUTR) have 8 bits each and communicate with the eight least significant bits in the bus. The input register (INPR) receives a character from an input device and it is connected in such a case to provide information to the bus via the accumulator. The output register (OUTR) can only receive information from the accumulator via the bus and delivers it to an output device. The common bus receives information from six registers (AR, PC, DR, AC, IR, and TR) and the memory, in other hand the common bus is connected to the inputs of six registers (AR, PC, DR, IR, TR, and OUTR) and the memory. Registers (AR, PC, DR, AC, and TR) have three control inputs, LD (load register), INR (increment register), and CLR (clear or reset register), while registers (IR, and OUTR) have only one control input (LD). The input and output data of the memory are connected to the common bus, while the memory address is connected to address register (AR). The content of any register except INPR & OUTR can be specified for the memory during a write operation. Similarly, any register can receive the data from memory after a read operation except AC & INPR. The output of adder and logic circuit goes to the input of the 16-bit AC. There are three sets of inputs to the adder and logic circuit: 1. A set of 16-bit comes from the outputs of the accumulator AC. They are used to implement register microoperations such as complement AC, and shift AC. 2. A set of 16-bit comes from the data register DR. the inputs from DR and AC are used for arithmetic and logic microoperations, such as add DR to AC or AND DR to AC. The result of an addition is transferred to AC and the end carry out of the addition is transferred to flip-flop E (extended AC bit). 7-50 Yacoup K. Hanna

3. A set of 8-bit comes from the input register INPR. From the diagram, it is clear that the content of any register can be applied onto the bus and an operation can be performed in the adder and logic circuit during the same clock cycle. The clock transition at the end of the cycle transfers the content of the bus into the designated destination register and the output of the adder and logic circuit into AC. For example, the following two microoperations can be executed at the same time. DR AC and AC DR This can be done by placing the content of AC on the bus (with S2S1S0 = 100) enabling the LD (load) input of DR, transferring the content of DR through the adder and logic circuit into AC, and enabling the LD (load) input of AC, all during the same clock cycle. The two transfers occur upon the arrival of the clock pulse transition at the end of the clock cycle. 8-50 Yacoup K. Hanna

6.4. Computer Instructions Figure 6.4 The basic computer has three instruction code formats. The type of instruction is recognized by the computer control from the four bits in positions 12 through 15 of the instruction as follows: 1. Memory-Reference Instruction For this type of instructions, the three Opcode bits in position 12 through 14 may be any combination except 111, and bit 15 is designate the addressing mode I. when I = 0 indicates direct address and when I = 1 indicates indirect address. The 12 bits in position 0 through 11 are used to specify an address. See figure 6.5(a). 2. Register-Reference Instruction 9-50 Yacoup K. Hanna

For this type of instructions, the three Opcode bits in position 12 through 14 is equal to 111 and the bit in position 15 equals to 0. This type of instructions specifies an operation on or a test of the AC register. An operand from memory is not needed; therefore, the other 12 bits are used to specify the operation or test to be executed. See figure 6.5(b). 3. Input-Output Instruction For this type of instructions, the three Opcode bits in position 12 through 14 is equal to 111 and the bit in position 15 equals to 1. This type of instructions does not need a reference to memory. The remaining 12 bits are used to specify the type of input-output operation or test performed. See figure 6.5(c). Figure 6.5 Table 6.2 shows the instructions used by the computer. Three letters are used to represent each instruction. The hexadecimal code is equal to the equivalent hexadecimal number of the binary code used for the instruction. Table 6.2 Instructio n type Memory- Reference Instructions Symbol Instruction Hexadecimal Code Description I = 0 I = 1 AND 0xxx 8xxx AND memory word to AC ADD 1xxx 9xxx Add memory word to AC LDA 2xxx Axxx Load memory word to AC STA 3xxx Bxxx Store content of AC in memory BUN 4xxx Cxxx Branch unconditionally 10-50 Yacoup K. Hanna

Register - Reference Instructions Input Output Instructions BSA 5xxx Dxxx Branch and save return address ISZ 6xxx Exxx Increment and skip if zero CLA 7800 Clear AC CLE 7400 Clear E CMA 7200 Complement AC CME 7100 Complement E CIR 7080 Circulate right AC and E CIL 7040 Circulate left AC and E INC 7020 Increment AC SPA 7010 Skip next instruction if AC is positive SNA 7008 Skip next instruction if AC is negative SZA 7004 Skip next instruction if AC is zero SZE 7002 Skip next instruction if E is zero HLT 7001 Halt computer INP F000 Input character to AC OUT F400 Output character from AC SKI F200 Skip on input flag SKO F100 Skip on output flag ION F080 Interrupt on IOF F040 Interrupt off A computer should have a set of instructions so that the user can construct machine language programs to evaluate any function that is known to be computable. This set of instructions is distributed on the following categories: 1. Arithmetic, logical, and shift instructions. 2. Moving information to and from memory and processor registers Instructions. 3. Program control instructions together with instructions that check status conditions. 4. Input and output instructions. Although the set of instruction for the basic computer listed in table 6.2 is complete, it is not efficient because some operations are not performed rapidly. An efficient set of instructions will include such instructions as subtract, multiply, OR, and exclusive-or. These operations must be programmed in the basic computer. 11-50 Yacoup K. Hanna

6.5. Timing and Control A master clock generator controls the timing of all registers in the basic computer. However, the clock pulses do not change the state of a register unless the register is enabled by a control signal. The control signals are generated in the control unit and provide control inputs for the multiplexers in the common bus, control inputs in processor registers, and microoperations for the accumulator. There are two major types of control organization: 1. Hardware Organization Control In this type of organization, the control logic is implemented with gates, flip-flops, decoders, and other digital circuits. It has the advantage that it can be optimized to produce a fast mode of operation. It has the disadvantage that it requires changes in the wiring among the various components if the design has to be modified or changed. 2. Microprogrammed Organization Control In this type of organization, the control information is stored in a sequence of microoperations. It has the advantage that any required changes or modifications could be done by updating the microprogram in control memory. In this section, we present the hardware control for the basic computer, while the microprogrammed control the same computer will be studied later. Figure 6.6 presents the block diagram of the control unit. The control unit consists of two decoders, a sequence counter, and a number of control logic gates. The instruction register (IR) is shown in the diagram is divided into three parts: 1. Bit 15 is transferred to a flip-flop designated by the symbol I, and its function is as mentioned before. 2. Bits 12 through 14 presents the operation code are decoded by a 3 8 decoder. The eight outputs of the decoder are 12-50 Yacoup K. Hanna