Educational Computer Architecture Experimentation Tool Dr. Abdelhafid Bouhraoua.

Slides:



Advertisements
Similar presentations
EZ-COURSEWARE State-of-the-Art Teaching Tools From AMS Teaching Tomorrow’s Technology Today.
Advertisements

Chapter 8: Central Processing Unit
Chapter 3 Instruction Set Architecture Advanced Computer Architecture COE 501.
CPU Review and Programming Models CT101 – Computing Systems.
1 Lecture 3: Instruction Set Architecture ISA types, register usage, memory addressing, endian and alignment, quantitative evaluation.
1 ECE462/562 ISA and Datapath Review Ali Akoglu. 2 Instruction Set Architecture A very important abstraction –interface between hardware and low-level.
INTRODUCTION TO THE ARM PROCESSOR – Microprocessor Asst. Prof. Dr. Choopan Rattanapoka and Asst. Prof. Dr. Suphot Chunwiphat.
1/1/ /e/e eindhoven university of technology Microprocessor Design Course 5Z008 Dr.ir. A.C. (Ad) Verschueren Eindhoven University of Technology Section.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
1 Starting a Program The 4 stages that take a C++ program (or any high-level programming language) and execute it in internal memory are: Compiler - C++
Systems Software.
Chapter 8. Pipelining. Instruction Hazards Overview Whenever the stream of instructions supplied by the instruction fetch unit is interrupted, the pipeline.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Program Flow Charting How to tackle the beginning stage a program design.
Lec 17 Nov 2 Chapter 4 – CPU design data path design control logic design single-cycle CPU performance limitations of single cycle CPU multi-cycle CPU.
Choice for the rest of the semester New Plan –assembler and machine language –Operating systems Process scheduling Memory management File system Optimization.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
The Processor 2 Andreas Klappenecker CPSC321 Computer Architecture.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
CPEN Digital System Design Chapter 9 – Computer Design
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
ECE 353 ECE 353 Fall 2007 Lab 3 Machine Simulator November 1, 2007.
ECE 232 L1 Intro.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 1 Introduction.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 1 Introduction.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
COM181 Computer Hardware Ian McCrumRoom 5B18,
CS-2710 Computer Organization Dr. Mark L. Hornick web: faculty-web.msoe.edu/hornick – CS-2710 info syllabus, homework, labs… –
MIPS coding. SPIM Some links can be found such as:
Contract Specification of Pipelined Designs Alexander Kamkin Institute for System Programming of RAS
Automated Design of Custom Architecture Tulika Mitra
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use ECE/CS 352: Digital Systems.
Computer Design Basics
FPGA (Field Programmable Gate Array): CLBs, Slices, and LUTs Each configurable logic block (CLB) in Spartan-6 FPGAs consists of two slices, arranged side-by-side.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Array Synthesis in SystemC Hardware Compilation Authors: J. Ditmar and S. McKeever Oxford University Computing Laboratory, UK Conference: Field Programmable.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 12 Overview and Concluding Remarks.
Computer Architecture And Organization UNIT-II General System Architecture.
Module : Algorithmic state machines. Machine language Machine language is built up from discrete statements or instructions. On the processing architecture,
RISC and CISC. What is CISC? CISC is an acronym for Complex Instruction Set Computer and are chips that are easy to program and which make efficient use.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Computer Organization CDA 3103 Dr. Hassan Foroosh Dept. of Computer Science UCF © Copyright Hassan Foroosh 2002.
EKT 221 : Chapter 4 Computer Design Basics
1 chapter 1 Computer Architecture and Design ECE4480/5480 Computer Architecture and Design Department of Electrical and Computer Engineering University.
ECE 15B Computer Organization Spring 2011 Dmitri Strukov Partially adapted from Computer Organization and Design, 4 th edition, Patterson and Hennessy,
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Lecture 7: Overview Microprocessors / microcontrollers.
CPU Overview Computer Organization II 1 February 2009 © McQuain & Ribbens Introduction CPU performance factors – Instruction count n Determined.
EKT 221 : Digital 2 Computer Design Basics Date : Lecture : 2 hrs.
Copyright 2006 by Timothy J. McGuire, Ph.D. 1 MIPS Programming Model CS 333 Sam Houston State University Dr. Tim McGuire.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Topics to be covered Instruction Execution Characteristics
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
PROGRAMMABLE LOGIC CONTROLLERS SINGLE CHIP COMPUTER
Control Unit Lecture 6.
CS161 – Design and Architecture of Computer Systems
Introduction CPU performance factors
Morgan Kaufmann Publishers
CSCI/CMPE 3334 Systems Programming
Introduction to cosynthesis Rabi Mahapatra CSCE617
T Computer Architecture, Autumn 2005
Computer Architecture and Design Lecture 6
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
COMP541 Datapaths I Montek Singh Mar 18, 2010.
ARM Introduction.
Introduction to Computer Systems Engineering
Computer Architecture Assembly Language
Presentation transcript:

Educational Computer Architecture Experimentation Tool Dr. Abdelhafid Bouhraoua

Needs COE-308 course material is mainly centered around ISA and Design. COE-308 course material focuses on: Performance issues around the ISA. Design of the Datapath and Control Simple Memory Architecture Existing tools are mainly assemblers Need an ISA/Datapath/Memory Experimentation tool

Existing Capabilities MIPS Instruction Set Assembler SPIM, DLX and others SPIM and DLX Enable programming assignments only No support for ISA modification No Performance Measurement No Datapath design trade-offs experimentation capabilities Others Very advanced research tools that are less suitable for entry-level education purpose

General Requirements Ability to fully define ISAs Hardware elements Instruction Sets Ability to describe instruction execution flow. Ability to define internal datapath blocks Ability to simulate execution of sample programs Ability to measure performances metrics (execution time)

Defining ISAs Define Hardware elements and characteristics visible at the programmer level Registers Operations Execution flow Define Instruction Set Instructions Instruction Description Automatic Generation of the Assembler and Simulator for the target machine Includes syntax check Includes execution traces Includes measurement of certain metrics and execution statistics

Fixed Choices Single Execution Unit No Floating Point Unit (at the beginning) Two separate Instructions and Data Memory Access Buses Single Execution Mode No privileged/supervisor mode support Single Instruction Set No Dual instruction set support Single Hardware Interrupt

Organization Organized as Several Areas: Objects Area Instruction Set Area Datapath Area Assembler Area Simulator Area Each Area is linked to the others through the use of its defined parameters in the definition of the other area parameters Example: A Register, defined in the Objects area can be referenced in the definition of an instruction in the Instruction Set Area

Defining the Objects Execution Unit Clock Cycles per Instruction Single Clock Cycle per Instruction Multiple Clock Cycles per Instruction Pipelined/non-pipelined Pipeline stages Number of Operands per instruction 1, 2 or 3 operands per instruction Registers Single or Array If Array define its indexes (From k to n+k) Size (number of bits) Label Operations Select Operations used by Instruction Set from a set of predefined operations (+, -, x, shift, and, or, …) Define new operations as combination of existing operations

Defining the Instruction Set Mnemonics Label Number of Variants Addressing Modes Addressing mode selection for every variant Possible Operands Selection for every operand from the list of already defined registers or addressing modes Description Cycle per Cycle Select operation (from list of defined operations) Use non-visible (to the programmer) temporary registers or hardware functional blocks (defined in datapath area) in description

Defining the Datapath Use Existing Hardware Blocks from Library ALU Register File Muxes Customize the blocks Size Define new blocks using hierarchical definitions Define block Connections Text Definition Possible Definition of Buses Buses can be Tristate Map Objects to Hardware Blocks

The Assembler Choose the Syntax for representing Instruction line Comment Data Definition Static Memory Allocation Every Addressing Mode used in the ISA Choose Policy for Program location in Memory Editor for writing programs Assembler translates text programs into object code referencing Instruction Descriptions of Instruction Variants

The Simulator Executes object code Uses a flat memory model Define Address Boundaries (for debugging) Detects (during execution) Structural Conflicts Dependencies Contradictory Definitions Integrates measurement of important metrics Code density Execution Time Program Size

Summary Provides the students with a powerful experimentation tool Designed to Show the dependencies that exist between: The Instruction Set The Operations The Hardware Elements The Datapath Suitable for Pipelined and Non-pipelined Architectures COE-308 and COE-205 (Computer Organization) as well

Usage Assignments can be: Given an Instruction set; define a possible implementation (with provided guidelines) Given a given datapath; define a suitable instruction set Evaluate the performances of two different implementations of the same Instruction Set

Aspect Toolset composed of multiple interacting independent software module Some are GUI-based Some are Text/Command Line based Define/Use Existing language to describe: Instruction Set (Assembly side) Datapath Data Entry Probes

Extension of Usage Extra module for Verilog/VHDL generation Generation of Datapath Unit Verilog model Generation of Control Unit Verilog model Generation of Testbench Verilog Model Generation of Memory Verilog model (to accept programs) Interface between assembler and Verilog Model

Conclusion Computer Architecture Experimentation Toolset for ISA/Processor Design and Education. Easily Realizable if developed in modules (each module developed as a Senior Project) If Possible: Collaboration with ICS department (software intensive) project. Web-based Interface ?