CS1104 – Computer Organization

Slides:



Advertisements
Similar presentations
Adders Used to perform addition, subtraction, multiplication, and division (sometimes) Half-adder adds rightmost (least significant) bit Full-adder.
Advertisements

Part 4: combinational devices
Chapter #8: Finite State Machine Design 8
CS1104 – Computer Organization
Princess Sumaya University
Register Transfer Level
1ASM Algorithmic State Machines (ASM) part 1. ASM2 Algorithmic State Machine (ASM) ‏ Our design methodologies do not scale well to real-world problems.
Chapter 7 Henry Hexmoor Registers and RTL
Give qualifications of instructors: DAP
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Chapter 7 – Registers.
Sequential Circuits1 DIGITAL LOGIC DESIGN by Dr. Fenghui Yao Tennessee State University Department of Computer Science Nashville, TN.
Chapter 6 Digital System Design Digital Systems and Logic Designs.
EKT 221 : Digital 2 ASM.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Chapter 8 Sequencing and Control Henry Hexmoor1. 2 Datapath versus Control unit  Datapath - performs data transfer and processing operations  Control.
The Control Unit: Sequencing the Processor Control Unit: –provides control signals that activate the various microoperations in the datapath the select.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 20 Datapath and Control Datapath - performs data transfer and processing operations.
Chapter 3 Planning Your Solution
A presentation on Counters
Digital Computer Design Fundamental
Introduction to Digital Logic Design Appendix A of CO&A Dr. Farag
CSCE 211: Digital Logic Design Chin-Tser Huang University of South Carolina.
Implementing the Controller. Outline  Implementing the Controller  With JK Flip-flops  Decoder + D flip-flops  One Flip-flop per State  Multiplexers.
Rabie A. Ramadan Lecture 3
1 Introduction to Flowcharting. 2 Writing a program Defining the problem –Write down what the program will do Planning –Write down the steps, draw a flowchart.
COE 405 Digital System Design Based on Data Path and Control Unit Partitioning Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 21 Multiplier Example Example: (101 x 011) Base 2 Note that the partial product summation.
Chap 8. Sequencing and Control. 8.1 Introduction Binary information in a digital computer –data manipulated in a datapath with ALUs, registers, multiplexers,
1 Lecture 22 Sequential Circuits Analysis. 2 Combinational vs. Sequential  Combinational Logic Circuit  Output is a function only of the present inputs.
1 © 2014 B. Wilkinson Modification date: Dec Sequential Logic Circuits Previously, we described the basic building blocks of sequential circuits,
Activity diagrams. Introduction ● Activity diagrams are a behavioural model that represent the dynamics of the system. ● An activity diagram is essentially.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
EKT 221/4 DIGITAL ELECTRONICS II Chapter 2 SEQUENCING AND CONTROL.
Algorithmic state machines
Datapath - performs data transfer and processing operations The control unit sends: – Control signals – Control outputs The control unit receives: – External.
Chapter 6 Digital System Design Digital Systems and Logic Designs.
Large Digital Systems. Outline  Large Digital Systems  Top-Down Approach  Controller and Data Processor  Flowcharts.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Synchronous Counter Design
ASM Charts. Outline  ASM Charts Components of ASM Charts ASM Charts: An Example  Register Operations  Timing in ASM Charts  ASM Charts => Digital.
Processor Organization and Architecture Module III.
Chapter 3 Boolean Algebra and Digital Logic T103: Computer architecture, logic and information processing.
| MSC 8102:PROGRAMMING CONCEPTS By Vincent Omwenga, PhD. 1.
Design at the Register Transfer Level Algorithmic State Machines 07.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Sequential Logic Design
Prof. Sin-Min Lee Department of Computer Science
Basic Computer Organization and Design
Computer Organization and Architecture + Networks
Chap 7. Register Transfers and Datapaths
EKT 221 – Counters.
EKT 221 : Digital 2 COUNTERS.
KU College of Engineering Elec 204: Digital Systems Design
Register Transfer and Microoperations
Asynchronous Inputs of a Flip-Flop
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Instructor: Alexander Stoytchev
Registers and Counters Register : A Group of Flip-Flops. N-Bit Register has N flip-flops. Each flip-flop stores 1-Bit Information. So N-Bit Register Stores.
KU College of Engineering Elec 204: Digital Systems Design
Iterative Versus Sequential Circuits
Unit# 9: Computer Program Development
Chapter 3 – Combinational Logic Design
REGISTER TRANSFER LEVEL (RTL) DESIGN Using ASM CHART
KU College of Engineering Elec 204: Digital Systems Design
Instructor: Alexander Stoytchev
EGR 2131 Unit 12 Synchronous Sequential Circuits
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
ECE 352 Digital System Fundamentals
Digital Electronics and Logic Design
Presentation transcript:

CS1104 – Computer Organization http://www.comp.nus.edu.sg/~cs1104 Aaron Tan Tuck Choy School of Computing National University of Singapore

Lecture 14: Introduction to Algorithmic State Machines (ASM) Large Digital Systems Top-Down Approach Controller and Data Processor Flowcharts ASM Charts Components of ASM Charts ASM Charts: An Example Register Operations Timing in ASM Charts CS1104-14 Lecture 14: Introduction to Algorithmic State Machines (ASM)

Lecture 14: Introduction to Algorithmic State Machines (ASM) ASM Charts => Digital System ASM Charts => Controller ASM Charts => Architecture/Data Processor Implementing the Controller With JK Flip-flops Decoder + D flip-flops One Flip-flop per State Multiplexers PLA/ROM CS1104-14 Lecture 14: Introduction to Algorithmic State Machines (ASM)

Large Digital Systems In both combinational and sequential circuit design: small circuits via gate-level design (truth tables, K maps, etc) large circuits via block-level design (MSI components, etc.) However, larger digital systems need more abstract and systematic design techniques. One such systematic design method has the following characteristics: top-down approach separation of controller from controlled hardware develop an overall architecture (at block levels) before proceeding into the details of hardware. CS1104-14 Large Digital Systems

Top-Down Approach Top-down approach is immensely important for large complex system (whether hardware, software, or manual systems). Emphasis on macroscopic view, starting from original problem and gradually refine it towards solution. Steps for a top-down design procedure: Specify the problem clearly (at global/top level without unnecessary details). Break the problem into smaller sub-problems. Repeat the process until subproblems are small enough to be solved directly (implementable). CS1104-14 Top-Down Approach

Top-Down Approach Corresponds to goal-directed approach. State goal, then find sub-goals to solve main goal. Repeat until sub-goals are directly solvable. Pass CS1103 Do Tutorials Pass Tests Pass Exam Ask questions Practice Revise Sleep well CS1104-14 Top-Down Approach

Controller & Data Processor Digital systems are typically processors of information. They store data through flip-flops, registers and memory, and process them using combinational circuits like adders, multipliers, etc. These processing may pass through complicated sequences. CS1104-14 Controller & Data Processor

Controller & Data Processor A digital system consists of two components A control algorithm (controller) and An architecture (data processor) Control unit (Controller) Data Processor (Architecture) Commands Input data External command Status condition Output data CS1104-14 Controller & Data Processor

Controller & Data Processor Separation of the controller operations from the data processing operations Control operations give commands that direct the data processing operations to accomplish the desired tasks. Data processing operations manupulates the data according to requirements. A mechanical analogy: Automobile. Car (data processor): transports people from one location to another. Driver (controller): gives instructions to car to achieve objective. CS1104-14 Controller & Data Processor

Flowcharts Flowcharts: a tool for precise description of algorithms/procedures. Specify tasks to perform and their sequencing. Main symbols: Operation box: contains tasks/operations to perform. Decision box: alternative actions based on decisions to be taken. Arrows: indicate appropriate sequencing. CS1104-14 Flowcharts

Sub-task or operation to perform Flowcharts An operation box is rectangular in shape, and is used to specify one or more subtasks to be performed. It has at most one entry point and one exit point. Sub-task or operation to perform CS1104-14 Flowcharts

Flowcharts A decision box is diamond-shaped. It has one entry point and multiple (but mutually exclusive) exit points. choice option A option B option C CS1104-14 Flowcharts

Flowcharts Sequential flow: simplest type of sequencing; tasks are done in sequential order. An example: Eating a 3-course Western meal. Drink soup Main course Eat dessert Boxes are connected by lines with arrows. Lines without arrows are sometimes used. In the absence of arrows, the default flow direction is top-to-bottom and left-to-right. CS1104-14 Flowcharts

Flowcharts Iteration: some tasks/operations may be repeatedly/iteratively done. This is achieved through the loop-back in the flowchart. Decision box is used to determine when to terminate the loop. CS1104-14 Flowcharts

Flowcharts An example: Eating a Western meal in oriental style. Drink soup Main course Eat dessert enough? yes no CS1104-14 Flowcharts

Flowcharts Flowcharts can be used to implement complex decisions. get BF to buy nice colour & style? yes no reject test out affordable? made in Europe? fitting? BF’s opinion? accep-table poor encouraging insulting CS1104-14 Flowcharts

ASM Charts Algorithmic State Machine (ASM) Chart is a high-level flowchart-like notation to specify the hardware algorithms in digital systems. Major differences from flowcharts are: uses 3 types of boxes: state box (similar to operation box), decision box and conditional box contains exact (or precise) timing information; flowcharts impose a relative timing order for the operations. From the ASM chart it is possible to obtain the control the architecture (data processor) CS1104-14 ASM Charts

Components of ASM Charts The state box is rectangular in shape. It has at most one entry point and one exit point and is used to specify one or more operations which could be simultaneously completed in one clock cycle. one or more operations state binary code CS1104-14 Components of ASM Charts

Components of ASM Charts The decision box is diamond in shape. It has one entry point but multiple exit points and is used to specify a number of alternative paths that can be followed. deciding factors CS1104-14 Components of ASM Charts

Components of ASM Charts The conditional box is represented by a rectangle with rounded corners. It always follows a decision box and contains one or more conditional operations that are only invoked when the path containing the conditional box is selected by the decision box. conditional operations CS1104-14 Components of ASM Charts

ASM Charts: An Example An example: Initial state S A  0 F  0 A  A + 1 A2 E  0 E  1 A3 F  1 1 T2 T1 T0 An example: A is a register; Ai stands for ith bit of the A register. A = A4A3A2A1 E and F are single-bit flip-flops. CS1104-14 ASM Charts: An Example

Register Operations Registers are present in the data processor for storing and processing data. Flip-flops (1-bit registers) and memories (set of registers) are also considered as registers. The register operations are specified in either the state and/or conditional boxes, and are written in the form: destination register  function(other registers) where the LHS contains a destination register (or part of one) and the RHS is some function over one or more of the available registers. CS1104-14 Register Operations

Register Operations Examples of register operations: A  B Transfer contents of register B into register A. A  0 Clear register A. A  A  1 Decrement register A by 1. CS1104-14 Register Operations

Timing in ASM Charts Precise timing is implicitly present in ASM charts. Each state box, together with its immediately following decision and conditional boxes, occurs within one clock cycle. A group of boxes which occur within a single clock cycle is called an ASM block. CS1104-14 Timing in ASM Charts

Timing in ASM Charts 3 ASM blocks T0 1 T1 T2 Initial state S A  0 F  0 A  A + 1 A2 E  0 E  1 A3 F  1 1 T2 T1 T0 3 ASM blocks CS1104-14 Timing in ASM Charts

Timing in ASM Charts Operations of ASM can be illustrated through a timing diagram. Two factors which must be considered are operations in an ASM block occur at the same time in one clock cycle decision boxes are dependent on the status of the previous clock cycle (that is, they do not depend on operations of current block) CS1104-14 Timing in ASM Charts

Timing in ASM Charts Operations A = A4A3A2A1 A0 F0 AA+1 E0 E1 F1 CS1104-14 Timing in ASM Charts

Timing in ASM Charts T0 1 T1 T2 A = A4A3A2A1 Operations A0 F0 AA+1 Initial state S A  0 F  0 A  A + 1 A2 E  0 E  1 A3 F  1 1 T2 T1 T0 A = A4A3A2A1 CS1104-14 Timing in ASM Charts

ASM Chart => Digital System ASM chart describes a digital system. From ASM chart, we may obtain: Controller logic (via State Table/Diagram) Architecture/Data Processor Design of controller is determined from the decision boxes and the required state transitions. Design requirements of data processor can be obtained from the operations specified with the state and conditional boxes. CS1104-14 ASM Chart => Digital System

ASM Chart => Controller Procedure: Step 1: Identify all states and assign suitable codes. Step 2: Draw state diagram. Step 3: Formulate state table using State from state boxes Inputs from decision boxes Outputs from operations of state/conditional boxes. Step 4: Obtain state/output equations and draw circuit. CS1104-14 ASM Chart => Controller

ASM Chart => Controller Initial state S A  0 F  0 A  A + 1 A2 E  0 E  1 A3 F  1 1 T2 T1 T0 T0 T1 T2 Assign codes to states: T0 = 00 T1 = 01 T2 = 11 Inputs from conditions in decision boxes. Outputs = present state of controller. CS1104-14 ASM Chart => Controller

ASM Chart => Architecture/Data Processor Architecture is more difficult to design than controller. Nevertheless, it can be deduced from the ASM chart. In particular, the operations from the ASM chart determine: What registers to use How they can be connected What operations to support How these operations are activated. Guidelines: always use high-level units simplest architecture possible. CS1104-14 ASM Chart => Architecture/Data Processor

ASM Chart => Architecture/Data Processor Various operations are: Counter incremented (A  A + 1) when state = T1. Counter cleared (A  0) when state = T0 and S = 1. E is set (E  1) when state = T1 and A2 = 1. E is cleared (E  0) when state = T1 and A2 = 0. F is set (F  1) when state = T2. Deduce: One 4-bit register A (e.g.: 4-bit synchronous counter with clear/increment). Two flip-flops needed for E and F (e.g.: JK flip-flops). CS1104-14 ASM Chart => Architecture/Data Processor

ASM Chart => Architecture/Data Processor (A  A + 1) when state = T1. (A  0) when state = T0 and S = 1. (E  1) when state = T1 and A2 = 1. Controller K J Q Clk 4-bit syn. counter A A2 A1 A3 A4 start S E F clock CP count clear T2 T1 T0 CS1104-14 ASM Chart => Architecture/Data Processor

Implementing the Controller Once the state table is obtained, the controller can be implemented using one of these techniques. 1. Traditional method: With JK flip-flops. design done at gate level. suitable for small controllers. procedure: prepare state table, use K-maps to obtain next-state/output functions. 2. Decoder + D flip-flops suitable for moderately large controllers. procedure: use decoder to obtain individual states; from the state table, obtain the next-state functions by inspection. CS1104-14 Implementing the Controller

Implementing the Controller 3. Multiplexers a more structured approach to implement controller. suitable for moderately large controllers. three level structure: first level consists of multiplexers that determine the next state of the register; second level is a register that holds the present state; third level has a decoder to provide separate output for each controller state. CS1104-14 Implementing the Controller

Implementing the Controller 4. One flip-flop per state also known as One-Hot Spot Method of ASM synthesis. procedure: allocate one flip-flop per state; from state table, determine the formulae to set each flip-flop; must ensure that controller is properly initialised. 5. PLA/ROM highly regular approach. ROM approach uses a very simple table lookup technique but suffers from large number of don’t care states. PLA can handle don’t care states well but design method is still at gate-level. CS1104-14 Implementing the Controller

Implementing Controller: With JK Flip-flops State table obtained from ASM chart: Corresponding state table using JK flip-flops: CS1104-14 Implementing Controller: With JK Flip-flops

Implementing Controller: Decoder + D Flip-flops The flip-flop input functions can be obtained directly from the state table by inspection. This is because for the D flip-flops, the next state = flip-flop D input. Decoder is then used to provide signals to represent different states. D Q 2x4 decoder T0 T1 T2 unused G1 G0 ? clock CS1104-14 Implementing Controller: Decoder + D Flip-flops

Implementing Controller: Decoder + D Flip-flops Given the state table: We can directly determine the inputs of the D flip-flops for G1 and G0. DG1 = T1.A2.A3 DG0 = T0.S + T1 CS1104-14 Implementing Controller: Decoder + D Flip-flops

Implementing Controller: Decoder + D Flip-flops Flip-flop input functions: DG1 = T1.A2.A3 DG0 = T0.S + T1 Circuit: D Q 2x4 decoder T0 T1 T2 unused G1 G0 clock A2 A3 S CS1104-14 Implementing Controller: Decoder + D Flip-flops

Implementing Controller: One Flip-flop per State Require n flip-flops for n states; each flip-flop represents one state. (Other methods: n flip-flops for up to 2n states.) D Q T1 T0 ? clock : CS1104-14 Implementing Controller: One Flip-flop per State

Implementing Controller: One Flip-flop per State Formulae for next state can be obtained directly from state table: 1. If there is only one line going into the state, then formula = input condition ANDed with the previous state. 2. If there are more than one line, then formula = Ored of all the conditions found in (1). CS1104-14 Implementing Controller: One Flip-flop per State

Implementing Controller: One Flip-flop per State State table: State diagram: T0 S=0 A2=0 T1 S=1 A2=1, A3=0 T2 A2=1, A3=1 Flip-flop input functions: DT0 = T2 + S'.T0 DT1 = S.T0 + A2'.T1 + A2.A3'.T1 = S.T0 + (A2.A3)'.T1 DT2 = A2.A3.T1 CS1104-14 Implementing Controller: One Flip-flop per State

Implementing Controller: One Flip-flop per State Circuit diagram below. To initialise to state T0, set flip-flop of T0 to 1 and clear the rest to zero. D Q T1 T0 S clock T2 A2 A3 clear preset DT0 = T2 + S'.T0 DT1 = S.T0 + (A2.A3)'.T1 DT2 = A2.A3.T1 CS1104-14 Implementing Controller: One Flip-flop per State

Implementing Controller: One Flip-flop per State Alternative: Use Q' output for T0, and input function for T0 is complemented. To initialise, clear all flip-flops to zero. D Q T1 T0 S clock T2 A2 A3 clear Q' DT0 = (T2 + S'.T0)' DT1 = S.T0 + (A2.A3)'.T1 DT2 = A2.A3.T1 CS1104-14 Implementing Controller: One Flip-flop per State

Implementing Controller:Multiplexers Purpose of multiplexer is to produce an input to its corresponding flip-flop equals to the value of the next state. The inputs of multiplexers are determined from the decision boxes and state transitions in the ASM chart. CS1104-14 Implementing Controller: Multiplexers

Implementing Controller:Multiplexers Example 1: Given the state table. Reformat the state table. CS1104-14 Implementing Controller: Multiplexers

Implementing Controller:Multiplexers Obtain multiplexer inputs: CS1104-14 Implementing Controller: Multiplexers

Implementing Controller:Multiplexers Draw circuit: T1 T0 S clock D Q T2 A2 A3 2x4 decoder G1 G0 MUX1 1 2 3 S1 S0 MUX0 Determine next state of register Hold present state CS1104-14 Implementing Controller: Multiplexers

Implementing Controller:Multiplexers Example 2: w 1 T0 00 T1 01 x T3 11 T2 10 y z CS1104-14 Implementing Controller: Multiplexers

Implementing Controller:Multiplexers w clock D Q T3 y z 2x4 decoder G1 G0 MUX1 1 2 3 S1 S0 MUX0 y' x' z' T2 CS1104-14 Implementing Controller: Multiplexers

Implementing Controller: PLA/ROM Similar to the design using D flip-flops and a decoder. The only difference is PLA essentially replaces the decoder and all the gates in the inputs of the flip-flops. PLA/ROM External command Commands to architecture Present state Next state Register to represent states CS1104-14 Implementing Controller: PLA/ROM

End of segment