Design and VHDL Implementation of an Application-Specific Instruction Set Processor

Total Page:16

File Type:pdf, Size:1020Kb

Design and VHDL Implementation of an Application-Specific Instruction Set Processor Design and VHDL Implementation of an Application-Specific Instruction Set Processor Lauri Isola School of Electrical Engineering Thesis submitted for examination for the degree of Master of Science in Technology. Espoo 19.12.2019 Supervisor Prof. Jussi Ryynänen Advisor D.Sc. (Tech.) Marko Kosunen Copyright © 2019 Lauri Isola Aalto University, P.O. BOX 11000, 00076 AALTO www.aalto.fi Abstract of the master’s thesis Author Lauri Isola Title Design and VHDL Implementation of an Application-Specific Instruction Set Processor Degree programme Computer, Communication and Information Sciences Major Signal, Speech and Language Processing Code of major ELEC3031 Supervisor Prof. Jussi Ryynänen Advisor D.Sc. (Tech.) Marko Kosunen Date 19.12.2019 Number of pages 66+45 Language English Abstract Open source processors are becoming more popular. They are a cost-effective option in hardware designs, because using the processor does not require an expensive license. However, a limited number of open source processors are still available. This is especially true for Application-Specific Instruction Set Processors (ASIPs). In this work, an ASIP processor was designed and implemented in VHDL hardware description language. The design was based on goals that make the processor easily customizable, and to have a low resource consumption in a System- on-Chip (SoC) design. Finally, the processor was implemented on an FPGA circuit, where it was tested with a specially designed VGA graphics controller. Necessary software tools, such as an assembler were also implemented for the processor. The assembler was used to write comprehensive test programs for testing and verifying the functionality of the processor. This work also examined some future upgrades of the designed processor. The upgrades include improvements to hardware, software tools and usability. The source codes for the processor, graphics controller and test programs are published under the MIT license, and are available at: http://www.iki.fi/lauri.isola/asip38. Keywords ASIP, CPU, RTL, HDL, FPGA, SoC, programmable logic, embedded systems Aalto-yliopisto, PL 11000, 00076 AALTO www.aalto.fi Diplomityön tiivistelmä Tekijä Lauri Isola Työn nimi Sovelluskohtaisen käskykantaprosessorin suunnittelu ja toteutus VHDL:llä Koulutusohjelma Computer, Communication and Information Sciences Pääaine Signal, Speech and Language Processing Pääaineen koodi ELEC3031 Työn valvoja Prof. Jussi Ryynänen Työn ohjaaja TkT Marko Kosunen Päivämäärä 19.12.2019 Sivumäärä 66+45 Kieli Englanti Tiivistelmä Avoimen lähdekoodin prosessorit ovat yleistymässä. Ne ovat laitteistosuunnitte- lun kannalta kustannustehokas vaihtoehto, koska prosessorin käyttäminen ei vaadi kallista lisenssiä. Avoimen lähdekoodin prosessoreita on tarjolla kuitenkin vielä var- sin rajallinen määrä. Tämä koskee etenkin sovelluskohtaisia käskykantaprosessoreita (ASIP). Tässä työssä on suunniteltu sovelluskohtainen käskykantaprosessori ja toteutet- tu se VHDL-laitteistokuvauskielellä. Suunnittelun lähtökohtina olivat prosessorin vaivaton muokattavuus sekä toteuttaminen järjestelmäpiirille (SoC) mahdollisim- man vähillä resursseilla. Prosessori on toteutettu FPGA-piirille, jossa sitä testattiin erikseen suunnitellulla VGA-grafiikkaohjaimella. Prosessoria varten toteutettiin myös tarvittavat ohjelmistotyökalut, kuten as- sembler-kääntäjä. Sen avulla kirjoitettiin kattavat testiohjelmat, joita käytettiin prosessorin toiminnan testaamiseksi ja todentamiseksi. Tässä työssä tutustuttiin myös prosessorin jatkokehittämiseen. Tarkastelussa olivat laitteistoon, ohjelmistotyökaluihin ja käytettävyyteen liittyvät kehitysideat. Prosessorin, grafiikkaohjaimen sekä testiohjelmien lähdekoodit on julkaistu MIT- lisenssillä ja ne ovat saatavilla osoitteessa: http://www.iki.fi/lauri.isola/asip38. Avainsanat ASIP, CPU, RTL, HDL, FPGA, SoC, ohjelmoitavat piirit, sulautetut järjestelmät 5 Preface I have done a number of electronics projects using a variety of microcontrollers. Although microcontrollers have generally served their job well, they have sometimes lacked features that would have been useful in those projects. The idea of making my own ASIP processor started to seriously interest me when small FPGAs became more affordable to be used in enthusiast-level projects. When using anASIP, the instruction set of the processor, as well as other features, can be specifically designed according to the project. This brings the projects to a whole new level. This thesis is a documentation of the results of my ASIP project. I would like to thank Aalto University especially for Computer Architecture and Digital Microelectronics I & II courses, which contained the basic knowledge of the topic. Thanks also to Nokia Networks for the interest in my ASIP processor. Finally, I would like to thank my family for supporting me during my studies. Espoo, 31.8.2019 Lauri Isola 6 Contents Abstract3 Abstract (in Finnish)4 Preface5 Contents6 Abbreviations9 1 Introduction 10 1.1 Thesis goals............................... 10 1.2 Thesis organization........................... 11 2 Embedded processor technology 12 2.1 Single-purpose processors........................ 12 2.2 General-purpose processors....................... 12 2.3 Application-specific processors..................... 14 3 Processor design 15 3.1 Design objectives............................ 15 3.2 Memory architecture.......................... 15 3.3 Datapath design............................. 16 3.3.1 Program counter........................ 16 3.3.2 Program stack.......................... 16 3.3.3 Registers............................. 17 3.3.4 Data bus............................. 18 3.3.5 Arithmetic logic unit...................... 18 3.3.6 Datapath organization..................... 20 3.4 Instruction set architecture....................... 21 3.4.1 Overview............................ 21 3.4.2 Instruction word........................ 22 3.4.3 Memory operations....................... 23 3.4.4 Accumulator operations.................... 24 3.4.5 Input/Output operations.................... 24 3.4.6 Control operations....................... 25 3.5 Instruction cycle............................ 27 3.5.1 Single-cycle approach...................... 27 3.5.2 Multi-cycle approach...................... 27 3.5.3 Pipelined approach....................... 29 7 3.6 Control unit............................... 29 3.6.1 Structure............................ 29 3.6.2 Control signals......................... 30 3.6.3 PC control............................ 32 4 VHDL implementation 33 4.1 FPGA design flow............................ 33 4.2 Artix-7 FPGA resources........................ 35 4.3 Top level system............................ 36 4.4 Required VHDL packages....................... 37 4.5 ASIP38................................. 37 4.5.1 Block RAM........................... 37 4.5.2 Program counter........................ 38 4.5.3 Program stack.......................... 38 4.5.4 ALU............................... 39 4.5.5 Instruction decode and control................. 39 4.6 Graphics controller........................... 40 4.7 Inputs.................................. 43 4.8 Top level entity............................. 44 4.9 Behavioral simulation.......................... 44 4.10 Synthesis................................. 45 4.11 Implementation............................. 46 5 Verification and testing 48 5.1 Hardware verification.......................... 48 5.2 Assembler................................ 48 5.3 Test programs.............................. 50 5.4 Board-level testing........................... 54 6 Analysis of results 55 6.1 Results of the design process...................... 55 6.2 Processor comparison.......................... 55 7 Future upgrades 58 7.1 Additional hardware.......................... 58 7.2 Software tools.............................. 59 7.3 Bus protocols.............................. 59 8 Conclusion 61 References 63 8 A Source codes 67 A.1 asip38.vhd................................ 67 A.2 display_control.vhd........................... 78 A.3 vga_sync.vhd.............................. 84 A.4 rgb_gen.vhd............................... 86 A.5 line_draw.vhd.............................. 91 A.6 ellipse_draw.vhd............................ 94 A.7 area_paint.vhd............................. 97 A.8 input.vhd................................ 101 A.9 top.vhd................................. 103 A.10 assembler.py............................... 107 9 Abbreviations 3D Three-dimensional AC Accumulator ALU Arithmetic Logic Unit ASIC Application-Specific Integrated Circuit ASIP Application-Specific Instruction Set Processor BRAM Block RAM CISC Complex Instruction Set Computer CPI Cycles Per Instruction CPU Central Processing Unit DSP Digital Signal Processing FF Flip-Flop FPGA Field-Programmable Gate Array FSM Finite State Machine HDL Hardware Description Language HLL High-Level Language I/O Input/Output IC Integrated Circuit IR Instruction Register ISA Instruction Set Architecture ISR Interrupt Service Routine IP Intellectual Property LUT Look-up Table NRE Non-Recurring Engineering PC Program Counter PLD Programmable Logic Device RAM Random Access Memory ROM Read-Only Memory RISC Reduced Instruction Set Computer RTL Register Transfer Level RTOS Real-Time Operating System SoC System-on-Chip SP Stack Pointer TOS Top Of Stack uC Microcontroller uP Microprocessor VHDL VHSIC Hardware Description Language VHSIC Very High Speed Integrated Circuit VGA Video Graphics Array WNS Worst Negative Slack 10 1 Introduction A soft processor
Recommended publications
  • MIPS Architecture
    Introduction to the MIPS Architecture January 14–16, 2013 1 / 24 Unofficial textbook MIPS Assembly Language Programming by Robert Britton A beta version of this book (2003) is available free online 2 / 24 Exercise 1 clarification This is a question about converting between bases • bit – base-2 (states: 0 and 1) • flash cell – base-4 (states: 0–3) • hex digit – base-16 (states: 0–9, A–F) • Each hex digit represents 4 bits of information: 0xE ) 1110 • It takes two hex digits to represent one byte: 1010 0111 ) 0xA7 3 / 24 Outline Overview of the MIPS architecture What is a computer architecture? Fetch-decode-execute cycle Datapath and control unit Components of the MIPS architecture Memory Other components of the datapath Control unit 4 / 24 What is a computer architecture? One view: The machine language the CPU implements Instruction set architecture (ISA) • Built in data types (integers, floating point numbers) • Fixed set of instructions • Fixed set of on-processor variables (registers) • Interface for reading/writing memory • Mechanisms to do input/output 5 / 24 What is a computer architecture? Another view: How the ISA is implemented Microarchitecture 6 / 24 How a computer executes a program Fetch-decode-execute cycle (FDX) 1. fetch the next instruction from memory 2. decode the instruction 3. execute the instruction Decode determines: • operation to execute • arguments to use • where the result will be stored Execute: • performs the operation • determines next instruction to fetch (by default, next one) 7 / 24 Datapath and control unit
    [Show full text]
  • MIPS IV Instruction Set
    MIPS IV Instruction Set Revision 3.2 September, 1995 Charles Price MIPS Technologies, Inc. All Right Reserved RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure of the technical data contained in this document by the Government is subject to restrictions as set forth in subdivision (c) (1) (ii) of the Rights in Technical Data and Computer Software clause at DFARS 52.227-7013 and / or in similar or successor clauses in the FAR, or in the DOD or NASA FAR Supplement. Unpublished rights reserved under the Copyright Laws of the United States. Contractor / manufacturer is MIPS Technologies, Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. R2000, R3000, R6000, R4000, R4400, R4200, R8000, R4300 and R10000 are trademarks of MIPS Technologies, Inc. MIPS and R3000 are registered trademarks of MIPS Technologies, Inc. The information in this document is preliminary and subject to change without notice. MIPS Technologies, Inc. (MTI) reserves the right to change any portion of the product described herein to improve function or design. MTI does not assume liability arising out of the application or use of any product or circuit described herein. Information on MIPS products is available electronically: (a) Through the World Wide Web. Point your WWW client to: http://www.mips.com (b) Through ftp from the internet site “sgigate.sgi.com”. Login as “ftp” or “anonymous” and then cd to the directory “pub/doc”. (c) Through an automated FAX service: Inside the USA toll free: (800) 446-6477 (800-IGO-MIPS) Outside the USA: (415) 688-4321 (call from a FAX machine) MIPS Technologies, Inc.
    [Show full text]
  • Comparative Architectures
    Comparative Architectures CST Part II, 16 lectures Lent Term 2006 David Greaves [email protected] Slides Lectures 1-13 (C) 2006 IAP + DJG Course Outline 1. Comparing Implementations • Developments fabrication technology • Cost, power, performance, compatibility • Benchmarking 2. Instruction Set Architecture (ISA) • Classic CISC and RISC traits • ISA evolution 3. Microarchitecture • Pipelining • Super-scalar { static & out-of-order • Multi-threading • Effects of ISA on µarchitecture and vice versa 4. Memory System Architecture • Memory Hierarchy 5. Multi-processor systems • Cache coherent and message passing Understanding design tradeoffs 2 Reading material • OHP slides, articles • Recommended Book: John Hennessy & David Patterson, Computer Architecture: a Quantitative Approach (3rd ed.) 2002 Morgan Kaufmann • MIT Open Courseware: 6.823 Computer System Architecture, by Krste Asanovic • The Web http://bwrc.eecs.berkeley.edu/CIC/ http://www.chip-architect.com/ http://www.geek.com/procspec/procspec.htm http://www.realworldtech.com/ http://www.anandtech.com/ http://www.arstechnica.com/ http://open.specbench.org/ • comp.arch News Group 3 Further Reading and Reference • M Johnson Superscalar microprocessor design 1991 Prentice-Hall • P Markstein IA-64 and Elementary Functions 2000 Prentice-Hall • A Tannenbaum, Structured Computer Organization (2nd ed.) 1990 Prentice-Hall • A Someren & C Atack, The ARM RISC Chip, 1994 Addison-Wesley • R Sites, Alpha Architecture Reference Manual, 1992 Digital Press • G Kane & J Heinrich, MIPS RISC Architecture
    [Show full text]
  • CS152: Computer Systems Architecture Pipelining
    CS152: Computer Systems Architecture Pipelining Sang-Woo Jun Winter 2021 Large amount of material adapted from MIT 6.004, “Computation Structures”, Morgan Kaufmann “Computer Organization and Design: The Hardware/Software Interface: RISC-V Edition”, and CS 152 Slides by Isaac Scherson Eight great ideas ❑ Design for Moore’s Law ❑ Use abstraction to simplify design ❑ Make the common case fast ❑ Performance via parallelism ❑ Performance via pipelining ❑ Performance via prediction ❑ Hierarchy of memories ❑ Dependability via redundancy But before we start… Performance Measures ❑ Two metrics when designing a system 1. Latency: The delay from when an input enters the system until its associated output is produced 2. Throughput: The rate at which inputs or outputs are processed ❑ The metric to prioritize depends on the application o Embedded system for airbag deployment? Latency o General-purpose processor? Throughput Performance of Combinational Circuits ❑ For combinational logic o latency = tPD o throughput = 1/t F and G not doing work! PD Just holding output data X F(X) X Y G(X) H(X) Is this an efficient way of using hardware? Source: MIT 6.004 2019 L12 Pipelined Circuits ❑ Pipelining by adding registers to hold F and G’s output o Now F & G can be working on input Xi+1 while H is performing computation on Xi o A 2-stage pipeline! o For input X during clock cycle j, corresponding output is emitted during clock j+2. Assuming ideal registers Assuming latencies of 15, 20, 25… 15 Y F(X) G(X) 20 H(X) 25 Source: MIT 6.004 2019 L12 Pipelined Circuits 20+25=45 25+25=50 Latency Throughput Unpipelined 45 1/45 2-stage pipelined 50 (Worse!) 1/25 (Better!) Source: MIT 6.004 2019 L12 Pipeline conventions ❑ Definition: o A well-formed K-Stage Pipeline (“K-pipeline”) is an acyclic circuit having exactly K registers on every path from an input to an output.
    [Show full text]
  • Overview of the MIPS Architecture: Part I
    Overview of the MIPS Architecture: Part I CS 161: Lecture 0 1/24/17 Looking Behind the Curtain of Software • The OS sits between hardware and user-level software, providing: • Isolation (e.g., to give each process a separate memory region) • Fairness (e.g., via CPU scheduling) • Higher-level abstractions for low-level resources like IO devices • To really understand how software works, you have to understand how the hardware works! • Despite OS abstractions, low-level hardware behavior is often still visible to user-level applications • Ex: Disk thrashing Processors: From the View of a Terrible Programmer Letter “m” Drawing of bird ANSWERS Source code Compilation add t0, t1, t2 lw t3, 16(t0) slt t0, t1, 0x6eb21 Machine instructions A HARDWARE MAGIC OCCURS Processors: From the View of a Mediocre Programmer • Program instructions live Registers in RAM • PC register points to the memory address of the instruction to fetch and execute next • Arithmetic logic unit (ALU) performs operations on PC registers, writes new RAM values to registers or Instruction memory, generates ALU to execute outputs which determine whether to branches should be taken • Some instructions cause Devices devices to perform actions Processors: From the View of a Mediocre Programmer • Registers versus RAM Registers • Registers are orders of magnitude faster for ALU to access (0.3ns versus 120ns) • RAM is orders of magnitude larger (a PC few dozen 32-bit or RAM 64-bit registers versus Instruction GBs of RAM) ALU to execute Devices Instruction Set Architectures (ISAs)
    [Show full text]
  • Quantum Chemical Computational Methods Have Proved to Be An
    34671 K. Immanuvel Arokia James et al./ Elixir Comp. Sci. & Engg. 85 (2015) 34671-34676 Available online at www.elixirpublishers.com (Elixir International Journal) Computer Science and Engineering Elixir Comp. Sci. & Engg. 85 (2015) 34671-34676 Outerloop pipelining in FFT using single dimension software pipelining K. Immanuvel Arokia James1 and M. J. Joyce Kiruba2 1Department of EEE VEL Tech Multi Tech Dr. RR Dr. SR Engg College, Chennai, India. 2Department of ECE, Dr. MGR University, Chennai, India. ARTICLE INFO ABSTRACT Article history: The aim of the paper is to produce faster results when pipelining above the inner most loop. Received: 19 May 2012; The concept of outerloop pipelining is tested here with Fast Fourier Transform. Reduction Received in revised form: in the number of cycles spent flushing and filling the pipeline and the potential for data reuse 22 August 2015; is another advantage in the outerloop pipelining. In this work we extend and adapt the Accepted: 29 August 2015; existing SSP approach to better suit the generation of schedules for hardware, specifically FPGAs. We also introduce a search scheme to find the shortest schedule available within the Keywords pipelining framework to maximize the gains in pipelining above the innermost loop. The FFT, hardware compilers apply loop pipelining to increase the parallelism achieved, but Pipelining, VHDL, pipelining is restricted to the only innermost level in nested loop. In this work we extend and Nested loop, adapt an existing outer loop pipelining approach known as Single Dimension Software FPGA, Pipelining to generate schedules for FPGA hardware coprocessors. Each loop level in nine Integer Linear Programming (ILP).
    [Show full text]
  • Design and Implementation of a Multithreaded Associative Simd Processor
    DESIGN AND IMPLEMENTATION OF A MULTITHREADED ASSOCIATIVE SIMD PROCESSOR A dissertation submitted to Kent State University in partial fulfillment of the requirements for the degree of Doctor of Philosophy by Kevin Schaffer December, 2011 Dissertation written by Kevin Schaffer B.S., Kent State University, 2001 M.S., Kent State University, 2003 Ph.D., Kent State University, 2011 Approved by Robert A. Walker, Chair, Doctoral Dissertation Committee Johnnie W. Baker, Members, Doctoral Dissertation Committee Kenneth E. Batcher, Eugene C. Gartland, Accepted by John R. D. Stalvey, Administrator, Department of Computer Science Timothy Moerland, Dean, College of Arts and Sciences ii TABLE OF CONTENTS LIST OF FIGURES ......................................................................................................... viii LIST OF TABLES ............................................................................................................. xi CHAPTER 1 INTRODUCTION ........................................................................................ 1 1.1. Architectural Trends .............................................................................................. 1 1.1.1. Wide-Issue Superscalar Processors............................................................... 2 1.1.2. Chip Multiprocessors (CMPs) ...................................................................... 2 1.2. An Alternative Approach: SIMD ........................................................................... 3 1.3. MTASC Processor ................................................................................................
    [Show full text]
  • In More Depth: the IBM/Motorola Powerpc Indexed Addressing
    In More Depth IMD 2.20-11 In More Depth: The IBM/Motorola PowerPC The PowerPC, made by IBM and Motorola and used in the Apple Macin- tosh, shares many similarities to MIPS: both have 32 integer registers, instructions are all 32 bits long, and data transfer is possible only with loads and stores. The primary difference is two more addressing modes plus a few operations. Indexed Addressing In the examples above we saw cases where we needed one register to hold the base of the array and the other to hold the index of the array. PowerPC provides an addressing mode, often called indexed addressing, that allows two registers to be added together. The MIPS code add $t0,$a0,$s3 # $a0 = base of array, $s3 = index lw $t1,0($t0) # reg $t1 gets Memory[$a0+$s3] could be replaced by the following single instruction in PowerPC: lw $t1,$a0+$s3 # reg $t1 gets Memory[$a0+$s3] Using the same notation as Figure 2.24 on page 101, Figure 2.1.1 shows indexed addressing. It is available with both loads and stores. Update Addressing Imagine the case of a code sequence marching through an array of words in memory, such as in the array version of clear1 on page 130. A frequent pair of operations would be loading a word and then incrementing the base reg- ister to point to the next word. The idea of update addressing is to have a new version of data transfer instructions that will automatically increment the base register to point to the next word each time data is transferred.
    [Show full text]
  • Notes-Cso-Unit-5
    Unit-05/Lecture-01 Pipeline Processing In computing, a pipeline is a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion; in that case, some amount of buffer storage is often inserted between elements. Computer-related pipelines include: Instruction pipelines, such as the classic RISC pipeline, which are used in central processing units (CPUs) to allow overlapping execution of multiple instructions with the same circuitry. The circuitry is usually divided up into stages, including instruction decoding, arithmetic, and register fetching stages, wherein each stage processes one instruction at a time. Graphics pipelines, found in most graphics processing units (GPUs), which consist of multiple arithmetic units, or complete CPUs, that implement the various stages of common rendering operations (perspective projection, window clipping, color and light calculation, rendering, etc.). Software pipelines, where commands can be written where the output of one operation is automatically fed to the next, following operation. The Unix system call pipe is a classic example of this concept, although other operating systems do support pipes as well. Pipelining is a natural concept in everyday life, e.g. on an assembly line. Consider the assembly of a car: assume that certain steps in the assembly line are to install the engine, install the hood, and install the wheels (in that order, with arbitrary interstitial steps). A car on the assembly line can have only one of the three steps done at once.
    [Show full text]
  • Design of the RISC-V Instruction Set Architecture
    Design of the RISC-V Instruction Set Architecture Andrew Waterman Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2016-1 http://www.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-1.html January 3, 2016 Copyright © 2016, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Design of the RISC-V Instruction Set Architecture by Andrew Shell Waterman A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor David Patterson, Chair Professor Krste Asanovi´c Associate Professor Per-Olof Persson Spring 2016 Design of the RISC-V Instruction Set Architecture Copyright 2016 by Andrew Shell Waterman 1 Abstract Design of the RISC-V Instruction Set Architecture by Andrew Shell Waterman Doctor of Philosophy in Computer Science University of California, Berkeley Professor David Patterson, Chair The hardware-software interface, embodied in the instruction set architecture (ISA), is arguably the most important interface in a computer system. Yet, in contrast to nearly all other interfaces in a modern computer system, all commercially popular ISAs are proprietary.
    [Show full text]
  • Computer Architectures an Overview
    Computer Architectures An Overview PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 25 Feb 2012 22:35:32 UTC Contents Articles Microarchitecture 1 x86 7 PowerPC 23 IBM POWER 33 MIPS architecture 39 SPARC 57 ARM architecture 65 DEC Alpha 80 AlphaStation 92 AlphaServer 95 Very long instruction word 103 Instruction-level parallelism 107 Explicitly parallel instruction computing 108 References Article Sources and Contributors 111 Image Sources, Licenses and Contributors 113 Article Licenses License 114 Microarchitecture 1 Microarchitecture In computer engineering, microarchitecture (sometimes abbreviated to µarch or uarch), also called computer organization, is the way a given instruction set architecture (ISA) is implemented on a processor. A given ISA may be implemented with different microarchitectures.[1] Implementations might vary due to different goals of a given design or due to shifts in technology.[2] Computer architecture is the combination of microarchitecture and instruction set design. Relation to instruction set architecture The ISA is roughly the same as the programming model of a processor as seen by an assembly language programmer or compiler writer. The ISA includes the execution model, processor registers, address and data formats among other things. The Intel Core microarchitecture microarchitecture includes the constituent parts of the processor and how these interconnect and interoperate to implement the ISA. The microarchitecture of a machine is usually represented as (more or less detailed) diagrams that describe the interconnections of the various microarchitectural elements of the machine, which may be everything from single gates and registers, to complete arithmetic logic units (ALU)s and even larger elements.
    [Show full text]
  • MIPS Architecture with Tomasulo Algorithm [12]
    CALIFORNIA STATE UNIVERSITY NORTHRIDGE TOMASULO ARCHITECTURE BASED MIPS PROCESSOR A graduate project submitted in partial fulfilment for the requirement Of the degree of Master of Science In Electrical Engineering By Sameer S Pandit May 2014 The graduate project of Sameer Pandit is approved by: ______________________________________ ____________ Dr. Ali Amini, Ph.D. Date _______________________________________ ____________ Dr. Shahnam Mirzaei, Ph.D. Date _______________________________________ ____________ Dr. Ramin Roosta, Ph.D., Chair Date California State University Northridge ii ACKNOWLEDGEMENT I would like to express my gratitude towards all the members of the project committee and would like to thank them for their continuous support and mentoring me for every step that I have taken towards the completion of this project. Dr. Roosta, for his guidance, Dr. Shahnam for his ideas, and Dr. Ali Amini for his utmost support. I would also like to thank my family and friends for their love, care and support through all the tough times during my graduation. iii Table of Contents SIGNATURE PAGE .......................................................................................................... ii ACKNOWLEDGEMENT ................................................................................................. iii LIST OF FIGURES .......................................................................................................... vii ABSTRACT .......................................................................................................................
    [Show full text]