PHY 201 (Blum)1 Microcode Source: Digital Computer Electronics (Malvino and Brown)

Slides:



Advertisements
Similar presentations
The CPU The Central Presentation Unit What is the CPU?
Advertisements

Computer Architecture and the Fetch-Execute Cycle
Infix, Postfix and Stacks
The 8085 Microprocessor Architecture
Microprocessor and Microcontroller
Processor System Architecture
1.21 Introduction to microprocessors KUEU 2135 / KBEB 2193 Mikropemproses dan Sistemnya.
DH2T 34 Computer Architecture 1 LO2 Lesson Two CPU and Buses.
Room: E-3-31 Phone: Dr Masri Ayob TK 2123 COMPUTER ORGANISATION & ARCHITECTURE Lecture 5: CPU and Memory.
CHAPTER 4 COMPUTER SYSTEM – Von Neumann Model
The processor and main memory chapter 4, Exploring the Digital Domain The Development and Basic Organization of Computers.
Chapter 16 Control Unit Implemntation. A Basic Computer Model.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
Chapter 17 Microprocessor Fundamentals William Kleitz Digital Electronics with VHDL, Quartus® II Version Copyright ©2006 by Pearson Education, Inc. Upper.
The Computer Processor
The Microcomputer System In this presentation you will: Investigate the microprocessor Title Page.
A-Level Computing#BristolMet Session Objectives#5 MUST identify different buses and registers used in a CPU SHOULD describe the use of buses to send information.
The Structure of the CPU
Control pins and Writing Microcode. Simple architecture Recall our architecture from the previous week It was a simple bus architecture “Control” was.
Computer Systems 1 Fundamentals of Computing The CPU & Von Neumann.
Internal hardware and external components of a computer Three-box Model  Processor The brain of the system Executes programs A big finite state machine.
Computing hardware CPU.
Lecture 8 Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU.
D75P 34R HNC Computer Architecture 1 Week 9 The Processor, Busses and Peripherals © C Nyssen/Aberdeen College 2003 All images © C Nyssen /Aberdeen College.
CSIT 301 (Blum)1 Basic Units of Computer Architecture Some of this material can be found in Chapter 3 of Computer Architecture (Carter)
CSIT 301 (Blum)1 Instructions at the Lowest Level Some of this material can be found in Chapter 3 of Computer Architecture (Carter)
Central Processing Unit
Microcode Source: Digital Computer Electronics (Malvino and Brown)
CSC 3210 Computer Organization and Programming Chapter 1 THE COMPUTER D.M. Rasanjalee Himali.
The CPU Central Processing Unit. 2 Reminder - how it fits together processor (CPU) memory I/O devices bus.
Advanced Computer Architecture 0 Lecture # 1 Introduction by Husnain Sherazi.
How Computers Work … and how you can work them. Art 315 Lecture 03 Dr. J Parker Fall 2010.
Computer Organization - 1. INPUT PROCESS OUTPUT List different input devices Compare the use of voice recognition as opposed to the entry of data via.
Execution of an instruction
Lecture 14 Today’s topics MARIE Architecture Registers Buses
CHAPTER 4 The Central Processing Unit. Chapter Overview Microprocessors Replacing and Upgrading a CPU.
Computer Hardware A computer is made of internal components Central Processor Unit Internal External and external components.
Instructions. Portability In addition to making hardware backward compatible, we have also made software portable. In describing software, “portable”
© GCSE Computing Candidates should be able to:  describe the characteristics of an assembler Slide 1.
HOW a Computer Works ? Anatomy of Microprocessor.
Electronic Analog Computer Dr. Amin Danial Asham by.
Microarchitecture. Outline Architecture vs. Microarchitecture Components MIPS Datapath 1.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Introduction to Microprocessors - chapter3 1 Chapter 3 The 8085 Microprocessor Architecture.
Concepts of Engineering and Technology Copyright © Texas Education Agency, All rights reserved.
Simple ALU How to perform this C language integer operation in the computer C=A+B; ? The arithmetic/logic unit (ALU) of a processor performs integer arithmetic.
CSIT 301 (Blum)1 Instructions at the Lowest Level Some of this material can be found in Chapter 3 of Computer Architecture (Carter)
The 8085 Microprocessor Architecture. What 8085 meant for? 80 - year of invention bit processor 5 - uses +5V for power.
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
8085 INTERNAL ARCHITECTURE.  Upon completing this topic, you should be able to: State all the register available in the 8085 microprocessor and explain.
1 3 Computing System Fundamentals 3.2 Computer Architecture.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Chapter 20 Computer Operations Computer Studies Today Chapter 20.
1 Chapter 1 Basic Structures Of Computers. Computer : Introduction A computer is an electronic machine,devised for performing calculations and controlling.
3.1.4 Hardware a. describe the function and purpose of the control unit, memory unit and ALU (arithmetic logic unit) as individual parts of a computer;
STUDY OF PIC MICROCONTROLLERS.. Design Flow C CODE Hex File Assembly Code Compiler Assembler Chip Programming.
Computer Systems Nat 4/5 Computing Science Computer Structure:
CPU Lesson 2.
Systems Architecture Keywords Fetch Execute Cycle
Control Unit Operation
Basic Units of Computer Architecture
Edexcel GCSE Computer Science Topic 15 - The Processor (CPU)
Lesson Objectives A note about notes: Aims
Lecture on Microcomputer
Instructions at the Lowest Level
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
Number Representations and Basic Processor Architecture
Instructions at the Lowest Level
Computer Science. The CPU The CPU is made up of 3 main parts : Cache ALU Control Unit.
Presentation transcript:

PHY 201 (Blum)1 Microcode Source: Digital Computer Electronics (Malvino and Brown)

PHY 201 (Blum)2 Micro-code Micro-code is the instructions at the lowest level, closest to the hardware. Any higher-level instructions (including assembly/machine language) must be converted to a lower level. A single machine-language instruction (like Load Accumulator A) typically consists of several micro-code instructions.

PHY 201 (Blum)3 Where is microcode stored? It used to literally be wired in (hence the term “hard wired”). Typically it stored in ROM. If the code is stored in EEPROM, it can be changed; this is known as microprogramming. But this is something one does on a rare occasion. Sometimes referred to as “firmware,” an intermediate between software and hardware.

PHY 201 (Blum)4 Machine language A level above micro-code. The instructions are numbers, which really are the addresses of the micro-code instruction in ROM. Mnemonic version of machine language is called assembly language.

PHY 201 (Blum)5 Assembly is a mnemonic

PHY 201 (Blum)6 Getting down to hardware’s level High level programs are translated into assembly language or machine language by a compiler. Assembly language programs are translated into machine language by an assembler. Each processor has its own unique machine language. Thus code must be rewritten or at least recompiled to run on different processor (different hardware).

PHY 201 (Blum)7 A simple design Next we will show a computer design that uses the basic “bus architecture” A bus is a basically just wires through which data travels from one part of a computer to another. –Usually it’s implied the path is shared by a number of parts. –(One also talks about buses in networks.)

PHY 201 (Blum)8 Input port 1Accumulator ALU Flags Input port 2 Prog. counter Mem.Add.Reg. Memory MDR Instr. Reg. Control C B TMP Output port 3 Output port 4 Display Keyboard encoder Bus

PHY 201 (Blum)9 Input ports Keyboard encoder: converts key pressed into corresponding string of bits (ASCII) Input port 1: where keyboard data is entered, usually contains some memory (a buffer) where data is held until the processor is ready for it Input port 2: where non-keyboard data is entered

PHY 201 (Blum)10 Program counter The program counter points to the current line of the program (which is stored in memory) This design shows arrows connecting the “PC” to and from the bus, why? –If the next instruction to be executed is not the next line of code in memory, such as If Loops Subroutines, functions, etc.

PHY 201 (Blum)11 MAR, MDR and Memory MAR (Memory Address Register) holds the address of the memory location being read from or written to –Not necessarily same as program counter Memory (RAM): the place where data and instructions are stored MDR (Memory Data Register) holds the data that is being read from or written to memory –Bi-directional connection to bus for reading and writing

PHY 201 (Blum)12 Instruction Register Instruction register holds the instruction that is currently being executed. A given line of assembly or machine language code involves several micro-code instructions, the instruction register holds onto the instruction until all of the micro-instruction steps are completed

PHY 201 (Blum)13 Controller/Sequencer Executes the program at the lowest level. Sends signals to the control pins of all the devices involved. These lowest level instructions are in ROM. Each assembly-level instruction has a numerical counterpart (machine language); the numerical counterpart is the address of the microcode for that instruction stored in ROM. Not shown, controller connects to everything.

PHY 201 (Blum)14 Accumulator and ALU Accumulator: register used in conjunction with the ALU. Data upon which arithmetic or logic operations will eventually be performed is stored here; also the results of these are stored here. ALU (Arithmetic Logic Unit) where operations that change the data (as opposed to just moving it around) are done.

PHY 201 (Blum)15 Flags Flags are output from the ALU that are distinct from data (data output goes to Acc. A) For example, –A carry from an addition –An indication of overflow These are needed for program control or to indicate possible errors –The result of a logical comparison (, =) These are needed for control (ifs, loops, etc)

PHY 201 (Blum)16 TMP, B and C TMP is the other register used in conjunction with the ALU; the distinction is that answers are generally sent to Accumulator A. B and C are additional registers used for holding data temporarily. –They allow additional flexibility and reduce the amount that must be written to memory.

PHY 201 (Blum)17 Output ports Output port a connection to the “outside world” –Usually includes a buffer –This design has to one for displayed output and a second for other output (e.g. storage)

PHY 201 (Blum)18 Micro-code Let us now examine the steps involved in the assembly (machine language) instruction Load Accumulator A

PHY 201 (Blum)19 What do you mean by Load There are different types of Loads –Load Instruction and address Associated data is the address of data that is to be put in Acc. A –Load immediate Instruction and data Associated data is actual data to be sent directly to Acc. A –Load indirect Instruction and address of address Associated data is an address. Found at that address is another address. Then at that second address is the data to be placed in Acc. A.

PHY 201 (Blum)20 Fetch Cycle Address State : the value of the program counter (which recall is the address of line of the program to be performed) is put into memory address register. Increment State : the program counter is incremented, getting it ready for the next time. Memory State : the current line of the program is put into instruction register (so Control knows what to do).

PHY 201 (Blum)21 Execution cycle (Load Acc. A) The remaining steps depend on the specific instruction and are collectively known as the execution cycle. Recall the instruction consisted of a load command and an address. A copy of the address is now taken over to the memory address register. The value at that address is loaded into Accumulator A. For the load command, there is no activity during the sixth step. It is known as a "no operation" step (a "no op" or "nop").

PHY 201 (Blum)22 Input port 1Accumulator ALU Flags Input port 2 Prog. counter Mem.Add.Reg. Memory MDR Instr. Reg. Control C B TMP Output port 3 Output port 4 Display Keyboard encoder Bus

PHY 201 (Blum)23 Data Movement Many of the micro-code steps involve moving data and addresses to various locations (registers, memory locations, etc.). The information is often, but not always, sent over the bus. So information must be put on and taken from the bus.

PHY 201 (Blum)24 Load and Enable With memory, one talks about reading and writing. With registers and the bus, one talks about enabling and loading. Enabling: placing a value from a register on the bus. Loading: placing a value from the bus into a register.

PHY 201 (Blum)25 Register Control pins A register that takes values off of the bus (e.g. the Memory Address Register, MAR) will need a “load” control pin –It does not always take the value on the bus, instead it takes the current value on the bus when the load pin is “activated” “Active high”means the action is performed when the pin is high “Active low” means the action is performed when the pin is low

PHY 201 (Blum)26 The clock pin The clock is another control pin (sometimes called a timing pin) which determines when a register takes the value on the bus The load input determines if the register takes the value The clock input determines when the register takes the value

PHY 201 (Blum)27 The clock A binary clock: Each cycle (01) should take the same amount of time (the time for a cycle: the period) The number of cycles in a second is called the frequency “on the edge:” many registers load on the clock’s edge –Positive edge: as 0 goes to 1 –Negative edge: as 1 goes to 0

PHY 201 (Blum)28 Enable The reverse of a load is an enable, this is when a device places a value on the bus A register that places values on the bus (e.g. the buffer associated with an input port) must have an “enable” control pin Again enabling may be active high or active low

PHY 201 (Blum)29 “Only one bus driver” Only one item can place its value on the bus (“drive the bus”) at a time. WHY? –Suppose two items drive the bus and that they have different values –Then there would be a direct connection (the bus is essentially just wire) between a high voltage and a low voltage –Since wire offers little resistance, there would be a very large current – a.k.a. a short Large currents destroy digital circuits

PHY 201 (Blum)30 Three-State logic If a device is not driving the bus, it must be effectively disconnected from the bus –Otherwise the short problem Thus we need three-state logic –High –Low –Disconnected

PHY 201 (Blum)31 Tri-State buffer “Disconnecting” all devices except the “bus driver” from the bus is done with tri-state buffers These are not shown in our diagram and are distinct from chips Thus we won’t find the kind of “enable” control pins discussed here on chips

PHY 201 (Blum)32 Other control pins Items involved in data manipulation (as opposed to simply data movement) will require additional control pins –For example, the program counter needs to be incremented Thus additional control pins are required –These pins are sometimes also referred to as “enable” pins, as they enable a particular action

PHY 201 (Blum)33 ALU control The primary data manipulator is the ALU The is a simple ALU It has an M select to choose between logic and arithmetic functions (M) It has a set of S selects (S0, S1, S2, S3) to choose among the various functions of that type

PHY 201 (Blum) ALU Chip Data in Control pins Data out

PHY 201 (Blum)35 Micro-code is Micro-code is 1’s and 0’s stored in ROM The ROM output is connected to control pins For example, one micro-code instruction is to take the value from the program counter to the memory address register –So send active signals to “enable the PC” and “load the MAR”