CS 152 Computer Architecture and Engineering Lecture 10 Multicycle Controller Design

Total Page:16

File Type:pdf, Size:1020Kb

CS 152 Computer Architecture and Engineering Lecture 10 Multicycle Controller Design Recap CS 152 ° Partition datapath into equal size chunks to minimize Computer Architecture and Engineering cycle time Lecture 10 • ~10 levels of logic between latches Multicycle Controller Design ° Follow same 5-step method for designing “real” processor (Continued) ° Control is specified by finite state digram September 29, 1999 John Kubiatowicz (http.cs.berkeley.edu/~kubitron) lecture slides: http://www-inst.eecs.berkeley.edu/~cs152/ CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.1 Lec10.2 Overview of Control Recap: Controller Design ° Control may be designed using one of several initial ° The state digrams that arise define the controller for representations. The choice of sequence control, and how logic is an instruction set processor are highly structured represented, can then be determined independently; the control can then be implemented with one of several methods using a ° Use this structure to construct a simple structured logic technique. “microsequencer” Initial Representation Finite State Diagram Microprogram ° Control reduces to programming this very simple device • microprogramming Sequencing Control Explicit Next State Microprogram counter Function + Dispatch ROMs sequencer datapath control control Logic Representation Logic Equations Truth Tables microinstruction (µ) micro-PC Implementation PLA ROM sequencer Technique “hardwired control” “microprogrammed control” CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.3 Lec10.4 Recap: Microprogram Control Specification The Big Picture: Where are We Now? µPC Taken Next IR PC Ops Exec Mem Write-Back en sel A B Ex Sr ALU S R W M M-R Wr Dst ° The Five Classic Components of a Computer 0000 ? inc 1 0001 0 load 0001 1 inc Processor 0010 x zero 1 1 Input BEQ 0011 x zero 1 0 Control Memory R: 0100 x inc 0 1 fun 1 0101 x zero 1 0 0 1 1 0110 x inc 0 0 or 1 ORi: Datapath Output 0111 x zero 1 0 0 1 0 1000 x inc 1 0 add 1 LW: 1001 x inc 1 0 1 ° Today’s Topics: 1010 x zero 1 0 1 1 0 • Microprogramed control SW: 1011 x inc 1 0 add 1 1100 x zero 1 0 0 1 • Administrivia • Microprogram it yourself • Exceptions CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.5 Lec10.6 How Effectively are we utilizing our hardware? “Princeton” Organization IR <- Mem[PC] A-Bus B Bus A <- R[rs]; B<– R[rt] Reg A next P IR S Mem File PC C ZX SX B W-Bus S <– A + B S <– A or ZX S <– A + SX S <– A + SX M <– Mem[S] Mem[S] <- B ° Single memory for instruction and data access • memory utilization -> 1.3/4.8 R[rd] <– S; R[rt] <– S; R[rd] <– M; PC <– PC+4; PC <– PC+4; PC <– PC+4; PC <– PC+4; PC < PC+4; PC < PC+SX; ° Sometimes, muxes replaced with tri-state buses • Difference often depends on whether buses are internal to chip ° Example: memory is used twice, at different times (muxes) or external (tri-state) • Ave mem access per inst = 1 + Flw + Fsw ~ 1.3 ° In this case our state diagram does not change • if CPI is 4.8, imem utilization = 1/4.8, dmem =0.3/4.8 • several additional control signals ° We could reduce HW without hurting performance • must ensure each bus is only driven by one source on each cycle CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99• extra control ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.7 Lec10.8 Alternative datapath (book): Multiple Cycle Datapath Our Controller FSM Spec ° Miminizes Hardware: 1 memory, 1 adder IR <= MEM[PC] PC <= PC + 4 “instruction fetch” PCWr PCWrCond PCSrc BrWr 0000 Zero IorD MemWr IRWr RegDst RegWr ALUSelA Mux 1 Target 32 A <= R[rs] “decode” 32 B <= R[rt] PC 0 0001 Mux 0 32 Instruction Reg Rs Zero Mux 0 Ra ALU Out ALU LW BEQ 32 RAdr Rt 5 32 ALU R-type ORi SW 32 Rb busA 1 32 Ideal 5 Reg File 32 1 Mux 0 Memory Rt 4 0 S <= A fun B S <= A op ZX S <= A + SX S <= A + SX S <= A - B WrAdr 32 Rw 32 1 Execute 0100 0110 1000 1011 0010 32 Din Dout Rd busW busB 32 32 1 32 2 1 Mux 0 3 ALU Equal ~Equal << 2 Control M <= MEM[S] MEM[S] <= B 1001 PC <= PC + Memory 1100 SX || 00 0011 Imm Extend R[rd] <= S R[rt] <= S R[rt] <= M 16 32 ALUOp ExtOp MemtoReg ALUSelB 0101 0111 1010 Write-back CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.9 Lec10.10 Microprogramming (Maurice Wilkes) Sequencer-based control unit ° Control is the hard part of processor design Control Logic Multicycle ° Datapath is fairly regular and well-organized ° Memory is highly regular Datapath ° Control is irregular and global Outputs Microprogramming: -- A Particular Strategy for Implementing the Control Unit of a processor by "programming" at the level of register transfer Inputs Types of “branching” 1 operations • Set state to 0 Microarchitecture: • Dispatch (state 1) State Reg • Use incremented state -- Logical structure and functional capabilities of the hardware as Adder seen by the microprogrammer number Historical Note: Address Select Logic IBM 360 Series first to distinguish between architecture & organization Same instruction set across wide range of implementations, each with different cost/performance Opcode CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.11 Lec10.12 “Macroinstruction” Interpretation Variations on Microprogramming User program ° “Horizontal” Microcode Main ADD plus Data – control field for each control point in the machine Memory SUB AND this can change! µseq µaddr A-mux B-mux bus enables register enables . ° “Vertical” Microcode . – compact microinstruction format for each class of DATA one of these is mapped into one microoperation of these – local decode to generate all control points execution unit branch: µseq-op µadd execute: ALU-op A,B,R CPU control AND microsequence memory: mem-op S, D memory e.g., Fetch Calc Operand Addr Fetch Operand(s) Calculate Horizontal Save Answer(s) Vertical CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.13 Lec10.14 Extreme Horizontal More Vertical Format 3 1 src dst other control fields next states inputs input . N3 N2 N1 N0 select D D 1 bit for each loadable register Incr PC E E MUX enbMAR ALU control C C enbAC . Some of these may have nothing to do with registers! Depending on bus organization, many potential control combinations simply wrong, i.e., implies transfers that can never happen at Multiformat Microcode: the same time. 13 6 Makes sense to encode fields to save ROM space 0 cond next address Branch Jump Example: mem_to_reg and ALU_to_reg should never happen simultaneously; 13 3 3 => encode in single bit which is decoded rather than two separate bits 1 dst src alu Register Xfer Operation NOTE: the encoding should be only wide enough so that parallel actions that the datapath supports should still be specifiable in a single microinstruction D D E E C C CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.15 Lec10.16 Hybrid Control Vax Microinstructions VAX Microarchitecture: Not all critical control information is derived from control logic 96 bit control store, 30 fields, 4096 µinstructions for VAX ISA encodes concurrently executable "microoperations" E.g., Instruction Register (IR) contains useful control information, 95 87 84 68 65 63 11 0 such as register sources, destinations, opcodes, etc. USHF UALU USUB UJMP 001 = left 010 = A-B-1 00 = Nop enable 010 = right 100 = A+B+1 01 = CALL signals R R R Jump . 10 = RTN Address from S S D . control 1 2 Register . ALU Subroutine File 101 = left3 Control Control D D D E E E ALU Shifter C C C Control µ IR op rs1 rs2 rd Current intel architecture: 80-bit microcode, 8192 instructions to control CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.17 Lec10.18 Horizontal vs. Vertical Microprogramming Administration NOTE: previous organization is not TRUE horizontal microprogramming; ° Midterm on Wednesday (10/6) from 5:30 - 8:30 in register decoders give flavor of encoded microoperations 277 Cory Hall ° No class on next Wednesday Most microprogramming-based controllers vary between: ° Pizza and Refreshments afterwards at LaVal’s on Euclid horizontal organization (1 control bit per control point) • I’ll Buy the pizza vertical organization (fields encoded in the control memory and • LaVal’s has an interesting history must be decoded to control something) ° Review Session: • Sunday (10/3), 7:00 PM in 306 Soda Horizontal Vertical + more control over the potential + easier to program, not very parallelism of operations in the different from programming datapath a RISC machine in assembly language - uses up lots of control store - extra level of decoding may slow the machine down CS152 / Kubiatowicz CS152 / Kubiatowicz 9/29/99 ©UCB Fall 1999 9/29/99 ©UCB Fall 1999 Lec10.19 Lec10.20 Designing a Microinstruction Set 1&2) Start with list of control signals, grouped into fields Signal name Effect when deasserted Effect when asserted ALUSelA 1st ALU operand = PC 1st ALU operand = Reg[rs] RegWrite None Reg. is written 1) Start with list of control signals MemtoReg Reg. write data input = ALU Reg. write data input = memory RegDst Reg. dest. no. = rt Reg. dest. no. = rd 2) Group signals together that make sense (vs.
Recommended publications
  • On the Hardware Reduction of Z-Datapath of Vectoring CORDIC
    On the Hardware Reduction of z-Datapath of Vectoring CORDIC R. Stapenhurst*, K. Maharatna**, J. Mathew*, J.L.Nunez-Yanez* and D. K. Pradhan* *University of Bristol, Bristol, UK **University of Southampton, Southampton, UK [email protected] Abstract— In this article we present a novel design of a hardware wordlength larger than 18-bits the hardware requirement of it optimal vectoring CORDIC processor. We present a mathematical becomes more than the classical CORDIC. theory to show that using bipolar binary notation it is possible to eliminate all the arithmetic computations required along the z- In this particular work we propose a formulation to eliminate datapath. Using this technique it is possible to achieve three and 1.5 all the arithmetic operations along the z-datapath for conventional times reduction in the number of registers and adder respectively two-sided vector rotation and thereby reducing the hardware compared to classical CORDIC. Following this, a 16-bit vectoring while increasing the accuracy. Also the resulting architecture CORDIC is designed for the application in Synchronizer for IEEE shows significant hardware saving as the wordlength increases. 802.11a standard. The total area and dynamic power consumption Although we stick to the 2’s complement number system, without of the processor is 0.14 mm2 and 700μW respectively when loss of generality, this formulation can be adopted easily for synthesized in 0.18μm CMOS library which shows its effectiveness redundant arithmetic and higher radix formulation. A 16-bit as a low-area low-power processor. processor developed following this formulation requires 0.14 mm2 area and consumes 700 μW dynamic power when synthesized in 0.18μm CMOS library.
    [Show full text]
  • 18-447 Computer Architecture Lecture 6: Multi-Cycle and Microprogrammed Microarchitectures
    18-447 Computer Architecture Lecture 6: Multi-Cycle and Microprogrammed Microarchitectures Prof. Onur Mutlu Carnegie Mellon University Spring 2015, 1/28/2015 Agenda for Today & Next Few Lectures n Single-cycle Microarchitectures n Multi-cycle and Microprogrammed Microarchitectures n Pipelining n Issues in Pipelining: Control & Data Dependence Handling, State Maintenance and Recovery, … n Out-of-Order Execution n Issues in OoO Execution: Load-Store Handling, … 2 Reminder on Assignments n Lab 2 due next Friday (Feb 6) q Start early! n HW 1 due today n HW 2 out n Remember that all is for your benefit q Homeworks, especially so q All assignments can take time, but the goal is for you to learn very well 3 Lab 1 Grades 25 20 15 10 5 Number of Students 0 30 40 50 60 70 80 90 100 n Mean: 88.0 n Median: 96.0 n Standard Deviation: 16.9 4 Extra Credit for Lab Assignment 2 n Complete your normal (single-cycle) implementation first, and get it checked off in lab. n Then, implement the MIPS core using a microcoded approach similar to what we will discuss in class. n We are not specifying any particular details of the microcode format or the microarchitecture; you can be creative. n For the extra credit, the microcoded implementation should execute the same programs that your ordinary implementation does, and you should demo it by the normal lab deadline. n You will get maximum 4% of course grade n Document what you have done and demonstrate well 5 Readings for Today n P&P, Revised Appendix C q Microarchitecture of the LC-3b q Appendix A (LC-3b ISA) will be useful in following this n P&H, Appendix D q Mapping Control to Hardware n Optional q Maurice Wilkes, “The Best Way to Design an Automatic Calculating Machine,” Manchester Univ.
    [Show full text]
  • System Design for a Computational-RAM Logic-In-Memory Parailel-Processing Machine
    System Design for a Computational-RAM Logic-In-Memory ParaIlel-Processing Machine Peter M. Nyasulu, B .Sc., M.Eng. A thesis submitted to the Faculty of Graduate Studies and Research in partial fulfillment of the requirements for the degree of Doctor of Philosophy Ottaw a-Carleton Ins titute for Eleceical and Computer Engineering, Department of Electronics, Faculty of Engineering, Carleton University, Ottawa, Ontario, Canada May, 1999 O Peter M. Nyasulu, 1999 National Library Biôiiothkque nationale du Canada Acquisitions and Acquisitions et Bibliographie Services services bibliographiques 39S Weiiington Street 395. nie WeUingtm OnawaON KlAW Ottawa ON K1A ON4 Canada Canada The author has granted a non- L'auteur a accordé une licence non exclusive licence allowing the exclusive permettant à la National Library of Canada to Bibliothèque nationale du Canada de reproduce, ban, distribute or seU reproduire, prêter, distribuer ou copies of this thesis in microform, vendre des copies de cette thèse sous paper or electronic formats. la forme de microficbe/nlm, de reproduction sur papier ou sur format électronique. The author retains ownership of the L'auteur conserve la propriété du copyright in this thesis. Neither the droit d'auteur qui protège cette thèse. thesis nor substantial extracts fkom it Ni la thèse ni des extraits substantiels may be printed or otherwise de celle-ci ne doivent être imprimés reproduced without the author's ou autrement reproduits sans son permission. autorisation. Abstract Integrating several 1-bit processing elements at the sense amplifiers of a standard RAM improves the performance of massively-paralle1 applications because of the inherent parallelism and high data bandwidth inside the memory chip.
    [Show full text]
  • Micro-Circuits for High Energy Physics*
    MICRO-CIRCUITS FOR HIGH ENERGY PHYSICS* Paul F. Kunz Stanford Linear Accelerator Center Stanford University, Stanford, California, U.S.A. ABSTRACT Microprogramming is an inherently elegant method for implementing many digital systems. It is a mixture of hardware and software techniques with the logic subsystems controlled by "instructions" stored Figure 1: Basic TTL Gate in a memory. In the past, designing microprogrammed systems was difficult, tedious, and expensive because the available components were capable of only limited number of functions. Today, however, large blocks of microprogrammed systems have been incorporated into a A input B input C output single I.e., thus microprogramming has become a simple, practical method. false false true false true true true false true true true false 1. INTRODUCTION 1.1 BRIEF HISTORY OF MICROCIRCUITS Figure 2: Truth Table for NAND Gate. The first question which arises when one talks about microcircuits is: What is a microcircuit? The answer is simple: a complete circuit within a single integrated-circuit (I.e.) package or chip. The next question one might ask is: What circuits are available? The answer to this question is also simple: it depends. It depends on the economics of the circuit for the semiconductor manufacturer, which depends on the technology he uses, which in turn changes as a function of time. Thus to understand Figure 3: Logical NOT Circuit. what microcircuits are available today and what makes them different from those of yesterday it is interesting to look into the economics of producing microcircuits. The basic element in a logic circuit is a gate, which is a circuit with a number of inputs and one output and it performs a basic logical function such as AND, OR, or NOT.
    [Show full text]
  • Datapath Design I Systems I
    Systems I Datapath Design I Topics Sequential instruction execution cycle Instruction mapping to hardware Instruction decoding Overview How do we build a digital computer? Hardware building blocks: digital logic primitives Instruction set architecture: what HW must implement Principled approach Hardware designed to implement one instruction at a time Plus connect to next instruction Decompose each instruction into a series of steps Expect that most steps will be common to many instructions Extend design from there Overlap execution of multiple instructions (pipelining) Later in this course Parallel execution of many instructions In more advanced computer architecture course 2 Y86 Instruction Set Byte 0 1 2 3 4 5 nop 0 0 addl 6 0 halt 1 0 subl 6 1 rrmovl rA, rB 2 0 rA rB andl 6 2 irmovl V, rB 3 0 8 rB V xorl 6 3 rmmovl rA, D(rB) 4 0 rA rB D jmp 7 0 mrmovl D(rB), rA 5 0 rA rB D jle 7 1 OPl rA, rB 6 fn rA rB jl 7 2 jXX Dest 7 fn Dest je 7 3 call Dest 8 0 Dest jne 7 4 ret 9 0 jge 7 5 pushl rA A 0 rA 8 jg 7 6 popl rA B 0 rA 8 3 Building Blocks fun Combinational Logic A A = Compute Boolean functions of L U inputs B 0 Continuously respond to input changes MUX Operate on data and implement 1 control Storage Elements valA A srcA Store bits valW Register W file dstW Addressable memories valB B Non-addressable registers srcB Clock Loaded only as clock rises Clock 4 Hardware Control Language Very simple hardware description language Can only express limited aspects of hardware operation Parts we want to explore and modify Data
    [Show full text]
  • P4080 Development System User's Guide
    Freescale Semiconductor Document Number: P4080DSUG User Guide Rev. 0, 07/2010 P4080 Development System User’s Guide by Networking and Multimedia Group Freescale Semiconductor, Inc. Austin, TX Contents 1Overview 1. Overview . 1 2. Features Summary . 2 The P4080 development system (DS) is a high-performance 3. Block Diagram and Placement . 4 computing, evaluation, and development platform 4. Evaluation Support . 6 supporting the P4080 Power Architecture® processor. The 5. Architecture . 8 P4080 development system’s official designation is 6. Configuration . 40 7. Programming Model . 45 P4080DS, and may be ordered using this part number. 8. Revision History . 58 The P4080DS is designed to the ATX form-factor standard, A. References . 58 allowing it to be used in 2U rack-mount chassis, as well as in a standard ATX chassis. The system is lead-free and RoHS-compliant. © 2011 Freescale Semiconductor, Inc. All rights reserved. Features Summary 2 Features Summary The features of the P4080DS development board are as follows: • Support for the P4080 processor — Core processors – Eight e500mc cores – 45 nm SOI process technology — High-speed serial port (SerDes) – Eighteen lanes, dividable into many combinations – Five controllers support five add-in card slots. – Supports PCI Express, SGMII, Nexus/Aurora debug, XAUI, and Serial RapidIO®. — Dual DDR memory controllers – Designed for DDR3 support – One-per-channel 240-pin sockets that support standard JEDEC DIMMs — Triple-speed Ethernet/ USB controller – One 10/100/1G port uses on-board VSC8244 PHY
    [Show full text]
  • Micro-Sequencer Based Control Unit Design for a Central Processing Unit
    MICRO-SEQUENCER BASED CONTROL UNIT DESIGN FOR A CENTRAL PROCESSING UNIT TAN CHANG HAI A project report submitted in partial fulfillment of the requirement for the award of the degree of Master of Engineering (Computer & Microelectronic Systems) Faculty of Electrical Engineering Universiti Teknologi Malaysia APRIL 2007 iii DEDICATION To my beloved wife, parents and family members iv ACKNOLEDGEMENT In preparing this thesis, I was in contact with many people, researchers and academicians. They have contributed towards my understanding and thoughts. In particular, I wish to express my sincere appreciation to my thesis supervisor, Professor Dr. Mohamed Khalil Hani, for encouragement, guidance and friendships. I am also very thankful to my friends and family members for their great support, advices and motivation. Without their continued support and interest, this thesis would not have been as presented here. v ABSTRACT Central Processing Unit (CPU) is a processing unit that controls the computer operations. The current in house CPU design was not complete therefore the purpose of this research was to enhance the current CPU design in such a way that it can handle hardware interrupt operation, stack operations and subroutine call. Register transfer logic (RTL) level design methodology namely top level RTL architecture, RTL control algorithm, data path unit design, RTL control sequence table, micro- sequencer control unit design, integration of control unit and data path unit, and the functional simulation for the design verification are included in this research. vi ABSTRAK Unit pusat pemprosesan (CPU) merupakan sebuah mesin yang berfungsi untuk menjana fungsi komputer. Buat masa kini, rekaan CPU masih belum sempurna.
    [Show full text]
  • LECTURE 5 Single-Cycle Datapath and Control
    Single-Cycle LECTURE 5 Datapath and Control PROCESSORS In lecture 1, we reminded ourselves that the datapath and control are the two components that come together to be collectively known as the processor. • Datapath consists of the functional units of the processor. • Elements that hold data. • Program counter, register file, instruction memory, etc. • Elements that operate on data. • ALU, adders, etc. • Buses for transferring data between elements. • Control commands the datapath regarding when and how to route and operate on data. MIPS To showcase the process of creating a datapath and designing a control, we will be using a subset of the MIPS instruction set. Our available instructions include: • add, sub, and, or, slt • lw, sw • beq, j DATAPATH To start, we will look at the datapath elements needed by every instruction. First, we have instruction memory. Instruction memory is a state element that provides read-access to the instructions of a program and, given an address as input, supplies the corresponding instruction at that address. ­ Code can also be written, e.g., self-modifying code DATAPATH Next, we have the program counter or PC. The PC is a state element that holds the address of the current instruction. Essentially, it is just a 32-bit register which holds the instruction address and is updated at the end of every clock cycle. ­ Normally PC increments sequentially except for branch instructions The arrows on either side indicate that the PC state element is both readable and writeable. DATAPATH Lastly, we have the adder. The adder is responsible for incrementing the PC to hold the address of the next instruction.
    [Show full text]
  • EEL 4914 Senior Design Gator Μprocessor Spring 2007 Submitted By
    EEL 4914 Senior Design Gator µProcessor Spring 2007 Submitted by: Kevin Phillipson Project Abstract The Gator microprocessor or GµP is a central processing unit to be used for education and research at the University of Florida. This processor will be realized on a development board that will be constructed in the course of this project. The board will contain a programmable gate array, in this case a FPGA. Using this FPGA we can dynamically build and test the CPU by describing and synthesizing it using a hardware description language. The processor will be instruction set & machine code compatible with the Motorola/Freescale 68xx microprocessors. This will allow us to use the extensive library of compliers, assemblers and other tools already available. Introduction The ultimate goal is to create a tool which could be used to bridge between Microprocessor Applications (EEL4744C) and Digital Design (EEL4712C) while enhancing both classes. Currently, the courses implement two separate boards. EEL4744C uses a board based on the Freescale 68HC12 micro-controller (Figure 1). It is supported by an EEPROM containing a monitor program, a 4MHz crystal oscillator, a serial port connection, an Altera CPLD, bus drivers and various supporting resistors and capacitors. Most devices are through-hole mounted. EEL4712C uses the BT-U board produced by Binary Technologies which is based on an Altera Cyclone FPGA (Figure 2). The board also features VGA & PS2 interfaces, switch banks and LED displays. The board comes pre-assembled. Figure 1: Current 4744 board Figure 2: Current 4712 board The GµP would be a bridge between these two designs, implementing a 68xx compatible CPU core in an Altera Cyclone II FPGA.
    [Show full text]
  • Traditional Cisc Design
    Supplement to Logic and Computer Design Fundamentals 4th Edition1 TRADITIONAL CISC DESIGN elected topics not covered in the fourth edition of Logic and Computer Design Fundamentals are provided here for optional coverage and for self-study. This S material fits well with the desired coverage in some programs but not may not fit within others due to time constraints or local preferences. This supplement consists of the CISC processor material from Chapter 10 of the 2nd edition of Logic and Computer Design Fundamentals. The use of this material is not recommended except as an example of microprogramming applied to a non-pipelined system. Note that the processor described is incomplete, has some architectural inconsistencies, and does not represent current processor microarchitectures. Instruction Set Architecture Figure 1 shows the CISC register set accessible to the programmer. All registers have 16 bits. The register file has eight registers, R0 through R7. R0 is a special reg- ister that always supplies the value zero when it is used as a source and discards the result when it is used as a destination. In addition to the register file, there is a program counter PC and stack pointer SP. The presence of a stack pointer indicates that a memory stack is a part of the architecture. The final register is the processor status register PSR, which contains information only in its rightmost five bits; the remainder of the register is assumed to contain zero. The PSR contains the four stored status bit values Z, N, C, and V in positions 3 through 0, respectively.
    [Show full text]
  • Effectiveness of the MAX-2 Multimedia Extensions for PA-RISC 2.0 Processors
    Effectiveness of the MAX-2 Multimedia Extensions for PA-RISC 2.0 Processors Ruby Lee Hewlett-Packard Company HotChips IX Stanford, CA, August 24-26,1997 Outline Introduction PA-RISC MAX-2 features and examples Mix Permute Multiply with Shift&Add Conditionals with Saturation Arith (e.g., Absolute Values) Performance Comparison with / without MAX-2 General-Purpose Workloads will include Increasing Amounts of Media Processing MM a b a b 2 1 2 1 b c b c functionality 5 2 5 2 A B C D 1 2 22 2 2 33 3 4 55 59 A B C D 1 2 A B C D 22 1 2 22 2 2 2 2 33 33 3 4 55 59 3 4 55 59 Distributed Multimedia Real-time Information Access Communications Tool Tool Computation Tool time 1980 1990 2000 Multimedia Extensions for General-Purpose Processors MAX-1 for HP PA-RISC (product Jan '94) VIS for Sun Sparc (H2 '95) MAX-2 for HP PA-RISC (product Mar '96) MMX for Intel x86 (chips Jan '97) MDMX for SGI MIPS-V (tbd) MVI for DEC Alpha (tbd) Ideally, different media streams map onto both the integer and floating-point datapaths of microprocessors images GR: GR: 32x32 video 32x64 ALU SMU FP: graphics FP:16x64 Mem 32x64 audio FMAC PA-RISC 2.0 Processor Datapath Subword Parallelism in a General-Purpose Processor with Multimedia Extensions General Regs. y5 y6 y7 y8 x5 x6 x7 x8 x1 x2 x3 x4 y1 y2 y3 y4 Partitionable Partitionable 64-bit ALU 64-bit ALU 8 ops / cycle Subword Parallel MAX-2 Instructions in PA-RISC 2.0 Parallel Add (modulo or saturation) Parallel Subtract (modulo or saturation) Parallel Shift Right (1,2 or 3 bits) and Add Parallel Shift Left (1,2 or 3 bits) and Add Parallel Average Parallel Shift Right (n bits) Parallel Shift Left (n bits) Mix Permute MAX-2 Leverages Existing Processing Resources FP: INTEGER FLOAT GR: 16x64 General Regs.
    [Show full text]
  • Quesenberry JD T 2011.Pdf (1.137Mb)
    Communication Synthesis for MIMO Decoder Algorithms Joshua D. Quesenberry Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Master of Science in Computer Engineering Cameron D. Patterson, Chair Michael S. Hsiao Thomas L. Martin August 9, 2011 Bradley Department of Electrical and Computer Engineering Blacksburg, Virginia Keywords: FPGA, Xilinx, Communication Synthesis, MIMO Copyright 2011, Joshua D. Quesenberry Communication Synthesis for MIMO Decoder Algorithms Joshua D. Quesenberry (ABSTRACT) The design in this work provides an easy and cost-efficient way of performing an FPGA implementation of a specific algorithm through use of a custom hardware design language and communication synthesis. The framework is designed to optimize performance with matrix-type mathematical operations. The largest matrices used in this process are 4 4 × matrices. The primary example modeled in this work is MIMO decoding. Making this possible are 16 functional unit containers within the framework, with generalized interfaces, which can hold custom user hardware and IP cores. This framework, which is controlled by a microsequencer, is centered on a matrix-based memory structure comprised of 64 individual dual-ported memory blocks. The microse- quencer uses an instruction word that can control every element of the architecture during a single clock cycle. Routing to and from the memory structure uses an optimized form of a crossbar switch with predefined routing paths supporting any combination of input/output pairs needed by the algorithm. A goal at the start of the design was to achieve a clock speed of over 100 MHz; a clock speed of 183 MHz has been achieved.
    [Show full text]