Behavioral ARM Processor Model Using System C. Dallas Webster IEEE Student Member No Texas Tech University 12/05/05

Size: px
Start display at page:

Download "Behavioral ARM Processor Model Using System C. Dallas Webster IEEE Student Member No Texas Tech University 12/05/05"

Transcription

1 Behavioral ARM Processor Model Using System C Dallas Webster IEEE Student Member No Texas Tech University 12/05/05

2 Table of Contents Abstract... 2 Introduction... 3 System C... 3 ARM Processors... 4 Load and Store Functions... 5 Digital Filter... 6 Bus Structure 7 Results..7 Conclusions... 9 Originality Acknowledgments.. 11 References Appendices

3 Abstract Advanced RISC Machines (ARM) are an example of a simple processor used to accomplish simple processing tasks in many of today s electronics. These processors have small instruction sets and basic processor architecture. SystemC is one of many high level programming languages used to write hardware descriptive code. This paper discusses the continuation of a project started by J.D. Chaparro and Jacob Day to model the behavior of an ARM processor using System C. It discusses the architecture of a basic ARM processor, SystemC as a language, and the implementation and testing of the processor model. 2

4 Introduction In today s world, technology is constantly striving to become faster, lighter, and smarter. Along with this comes the need for processors to become more powerful while becoming physically smaller in size. Design of these complex processors can become difficult at the transistor level, which introduces the need for hardware descriptive languages. Hardware descriptive languages (HDL) allow an engineer to describe the behavior desired in a processor with a high level language much faster than they would be able to design at the transistor level. These systems can then be tested for functionality before they are ever sent to fabrication. Verilog and VHDL are two types of hardware descriptive languages that are commonly used for this purpose, where hardware can be directly synthesized from the hardware description language. However, these languages are still fairly limited in their options, focusing on a register transfer level (RTL) type of design, and a higher level language is sometimes desired. System C is one such higher level language. System C attempts to bridge the gap between a software and hardware descriptive language. This allows a designer to design at a level higher than RTL, allowing more complex systems to be easily designed. After design, these systems can be reduced to lower levels of abstraction and eventually synthesized all the way down to hardware. System C is a useful aid to designing the complex processors that new technology requires. Advanced RISC Machine (ARM) processors are a type of processor that can be modeled using System C. ARM processors are very low level processors by today s standards, but still have many applications. ARM processors can be found in PDA s, mp3 players, and other portable electronic devices. The overall goal of this project was to behaviorally model an ARM processor using System C. The specific portion reported here was to complete the basic instruction set of the ARM processor, convert the behavioral model into a more realistic model, and then implement a program in the model similar to one found on a real ARM processor. System C System C is used to model the functionality, software, and hardware components of real systems. Four System C commands of particular importance are SC_MODULE, SC_THREAD, SC_METHOD, and SC_CTOR. SC_MODULE creates a module, such as an ARM processor, that can represent hardware. SC_CTOR is the constructor for that module can be made sensitive to a certain event. SC_METHOD and SC_THREAD behave similarly and are imbedded in the SC_CTOR. The event to trigger the module is created in the SC_METHOD or SC_THREAD (Day). When this event occurs it will trigger the module to react and go through the behavioral process, in this case the Instruction Fetch module will be sensitive to a clock. Figure 1. System C Module The above figure demonstrates the Instruction Fetch processor module. Clk is defined as a Boolean variable as a System C input, meaning it is an input to the module that can only have a true or false value. I_FETCH_FUNC() is similar to a function call in C++ and will be the function that is called when the module is activated by the input. This function will contain all the behavioral description of the Instruction Fetch stage in the ARM Processor. The next part of the module is the constructor. Inside this constructor the module is made sensitive to a positive 3

5 edge of the clock and upon this event the I_FETCH_FUNC() function is called. This is how the Instruction Fetch module of an ARM processor is represented in System C. From the example described above, it is obvious that System C has several differences from standard C++ code. One is the idea of inputs, outputs, and input/outputs. System C allows the designer to make a module sensitive to an input, similar to the way hardware would react. A table of SC variables is shown in the appendices. System C also introduces the idea of having unknown bits and high impedance bits in logic variables. These values are found in hardware all the time, but are not represented in software, where values must be either a 1 or a 0. All these additional functions of the System C libraries make it very convenient for modeling hardware behaviorally. Relatively complex processors can be described with ease using this high level language. ARM Processors As of the year 2000, there were 5 different versions of the ARM processor in the market, varying in complexity from the simplest (1) to the most complex (5). The ARM processor architecture is relatively simple. The basic processor consists of bit registers, a block of program memory, a block of user memory, a decoder, a preprocessor/shifter, and an ALU for execution. The block diagram for a behavioral ARM processor model is shown below. Figure 2. Behavioral ARM Block Diagram In the ARM processor, each instruction consists of a 32 bit word. Each instruction has a 4 bit CPSR (Current Program Status Register) that tells the processor which mode it is operating in, such as user, supervisor, interrupt, etc The remaining 28 bits vary depending on the instruction, but have an 8 bit opcode followed any combination of register addresses, shift operations, operands, and offsets. In most cases, the speed of a RISC processor is increased by pipelining its operation. Pipelining refers to a structure where an instruction is processed in stages. In a pipelined processor, an instruction can be decoded while the next instruction is fetched and the previous 4

6 instruction is shifted. This allows several instructions to be processed at the same time with an instruction being completed with every clock cycle. The ARM processor is a pipelined processor and in this model the pipeline has five stages. The first stage in the pipeline is the Instruction Fetch. In the Instruction Fetch stage the processor goes to the address in the program memory that is pointed to by the program counter. This instruction is passed on to the next stage in the pipeline, the decode stage. The program memory is where all the instruction to be executed by the processor are stored, or in other words, the program. The Instruction Fetch stage is called once per clock cycle. The second stage in the pipeline is the Decode stage. In Decode the instruction is broken up into separate types of information and is interpreted to represent a particular instruction from the instruction set. The particular instruction is determined by an 8 bit opcode contained between bits 20 and 27. Once this information is sorted to into one of the 40 instructions, the rest of the instruction can be divided into register addresses and shift commands to be used in later stages of the processor. A sample instruction is shown below. Figure 3. Load Instruction (ARM Reference) The next stage in the pipeline is the preprocessor. The preprocessor performs shifts for functions that require them and calculates addresses for the load and store modes. This includes arithmetic, logical, and wrap around shifts. These addresses and shifted versions of operands are then passed on to the execute function in the block diagram for execution. Execute is the block where the function is actually performed. Arithmetic and logical functions are performed here. The execute block is basically the equivalent of the arithmetic logic unit or ALU in the processor. In order to read and write from memory the final stage in the process is called, the write back stage. The write back stage is the only stage where memory can be accessed. By modifying the write enable bit for memory, memory can be read or written in this final stage. Each of the above steps is implemented within its own module in SystemC. With each positive edge of the clock the modules are called to process an instruction. This allows the processor behavior to mimic the behavior of an actual pipelined processor. Load and Store Functions The first goal of this project was to complete the instructions in the instruction set. The specific instructions were LDR, STR, and their derivatives: LDRB, LDRBT, STRB, STRBT, LDRT, STRT, LDC, and STC. The B in the listed functions means that the operation is a byte operation and only the least significant 8 bits are used. The T means that the operation is translated and shifted in some way or another. The C bit means that the operation loads/stores to/from a bus. Each of these has up to 9 modes in which it can be executed as well. The chart for this is shown below. 5

7 Figure 4. Load and Store Types The first step in executing a Load or a Store function is recognizing the instruction as a call to Load or Store. This takes place in the decoder. The decode function is a simple if-else if structure, meaning that the ranges of the 8 bit opcode are compared to known values for each function. Once there is a match the rest of the instruction is divided and stored in variables to be passed on to other functions, in this case they are called *op. This is done for each different version of Load and Store. After the instruction is decoded and sorted into useful variables, the information is passed onto the preprocessor stage. In the Preprocessor stage the instruction is sorted between the nine different versions of Load, Store or their derivatives. If a shift, offset, or index is requested then this is also performed in the preprocessor so that only the address to actually be used is passed on to execute. The code to accomplish this is shown in the attached C++ files. After the preprocessing, the address has been calculated and is ready to be passed to the execute block. Relatively little is done in the Execute block for load and store functions because only the write back block has access to memory. In the case of a load nothing at all is done and in the case of a store the register and address information are placed on the bus and write enable bit for memory is made high. The rest of load and store take place in the write back block. In the write back block the actual transfer of information occurs between registers and memory or between a bus and memory. For a Load, the value of a register is replaced by the data in a memory location, and the opposite happens for a store. If a store is called then the write enable bit is also changed back to a low value before exiting the write back stage. For the byte versions of both, the value to be loaded or stored is bitwise AND ed with the hex value x000000ff to pass just the least significant 8 bits. Digital Filter After achieving a realistic model of an ARM processor in SystemC the goal of this project was to use the model to perform a task similar to one that could be done by a real ARM processor, like a digital filter. A digital filter takes noisy digital information and smoothes out the information to get rid of spikes. In this case, data is stored in memory similar to data that would come from an analog to digital converter recording the information from a noisy sine wave. The processor model gathers the data in groups of four points, takes an average, and then stores the new data point to memory. As the program increments through the data in memory, it averages the current point with the point after and two points before and then increments the address it is looking at. This effectively averages out the information stored in memory and performs a smoothing operation on the data, before branching back to load new points. 6

8 Bus Structure In addition to using the processor as a digital filter, a bus structure was implemented in the model so that it could be interfaced with various slave devices using a WISHBONE structure. In a wishbone structure there are several interrupt devices that are used to signal that a data transfer is requested. In this case a strobe input goes high when a peripheral requests a transfer. The strobe causes an interrupt in the ARM processor model that tells the processor to interact with the bus. The ARM processor leaves its main program and enters an interrupt vector where, depending on the read/write enable input, the processor will either take information from the bus or write to the bus. When the transaction is complete the model will send its own acknowledge signal that tells the external device that the transfer is complete and then the model will re-enter the program and continue as before. A very basic bus structure that accomplishes this is implemented in this processor model. Figure 5. Wishbone Interface Signals (WISHBONE) Results In order to test the Load and Store functions, instructions to call them were placed in the program memory. The data in the registers and in the memory were monitored and compared to the expected values to determine whether the functions would pass or fail. For this purpose, an output file is created when the code is run that describes what is happening in the processor, outputting the values stored in the registers and in memory, where appropriate. These values are compared to the expected values based on the instruction that are stored in a file called memorykey.txt. The functions were tested extensively and are fairly complicated, so only a single test is described in this paper. Load was tested in several ways, the first test was just to ensure that a value could be loaded from memory into a register with no offset. The instruction format for load was shown earlier in this paper and using this format the instructions below were selected. The output on top 7

9 with the first instruction represents a load with no offset as the last 12 bits are zeroes. The second instruction adds an offset of one resulting in a different memory location being loaded. Figure 6. Load/Store Results In the output shown in Figure 6, Load is shown as taking the value in register 11 (B) and using it as a memory address. The value 4 in that location points to memory address [0][2] in the two dimensional array. The data stored in this memory location is shown in the bottom right corner of the screenshot and is actually an instruction from program memory representing an BBL call, a branch. This value of xfa is then stored in register 12, (C) from the instruction, as the decimal number For the second instruction the only thing that changes is the address to load from. After the negative offset, the address to load changes from the 32 bit representation of 4 to 3. This means that the instruction before BBL, an AND, should be loaded into register 12 and on the result file it is obvious that register 12 now contains the decimal equivalent of that instruction. This test was repeated for each type of load and store and each passed successfully. After all the instructions were successfully tested, a program was written to perform the digital filter task. Thirty two bit representations of a sine wave were input into memory with several points modified to make the data noisy, so that it contained several spikes. The program was run on the data and the memory was checked to see the processors effect on the information. After graphing the two waves side by side it is obvious that information was filtered and smoothed. 8

10 Figure 7. Digital Filter Results The bus structure was also thoroughly tested in the processor model. Using the same program that was run for the digital filter, a testbench module was created to act as a peripheral device interfacing with the bus and the processor. In this case, the peripheral device requested a store from the bus at the 30 th clock cycle and a load to the bus at the 60 th clock cycle. The processor was able to read and write from the bus and then return to the program as expected and proved the bus functionality to be successful. The complete results and output of the overall program are available from the author. Conclusions System C is a very powerful developmental tool. It allows great modeling of behavioral systems and hardware way beyond that allowed by C++. The freedom allowed by the new data types and the modules with event sensitivity allow for convenient ways to simulate how hardware would react. Using SystemC a realistic behavioral model of an ARM processor was accomplished. ARM processors are known for executing a command in a single clock cycle or at least giving an answer every clock cycle. Originally in this model, instructions were executed unrealistically as fetch, decode, preprocess, and execute stages were done in the same clock cycle. In the second half of this project, the processor was fixed to be a pipelined RISC architecture, making the model more realistic. Now each of the above stages are executed independently with each clock cycle on different instructions. In addition, a memory module was added to behave more realistically like memory with a write enable bit and data and address busses. Finally a write back stage was added to the pipeline to allow the processor to interact with memory more realistically. The processor model is also now capable of running an actual program, such as the digital filter discussed above, and behaving like an ARM processor. The model is also capable of simulating an interface with a peripheral device through a bus structure. This model is very powerful in its representation of an actual processor and only scratches the surface of ideas that 9

11 could be implemented using SystemC to model hardware. More complex processors than a basic ARM can be implemented with this software with relative ease and can be tested before being brought down the register transfer level of a hardware description and eventually actual hardware. 10

12 Originality A System C model for an ARM processor has, to the author and advisor s knowledge, never been done. This is highly desirable for system level design. The specific tasks completed are described in the Conclusions of the paper. Acknowledgments The goal of this project was to behaviorally model an ARM processor using System C. The project was started by J.D. Chaparro and Jacob Day in the summer of Their goal was to complete basic level 3 implementation of an ARM processor, which included a processor with 40 instructions. At the point where Dallas Webster took over the project, all of the instructions had been completed except for the load and store functions and their derivatives. The goal part of the project as pertaining to Webster was to complete the basic instruction set of the ARM processor, convert the behavioral model into a more realistic model, and then implement a program in the model similar to one found on a real ARM processor. References 1. Day, Jacob, AESE System C ARM Processor, August 4, Chaparro, John, SystemC Behavior Description of an ARM processor, August 4, ARM Architecture Reference Manual, 4. SystemC Version 2.01, 5. Wishbone Interconnection Architecture, 2004, 6. Mano and Kime, Logic and Computer Design, 2004, Prentice Hall 11

13 Appendices Figure 8. Budget Figure 9. Gantt Chart 12

14 Figure 2. System C Installation (Chaparro) Figure 3. System C Variables Figure 4. Memory Management Module 13

15 Figure 5. Data In vs. Data Out Figure 6. Bus Activity 14

16 Figure 7. Program Model Figure 8. Sample Output 15

Job Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems

Job Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems Job Posting (Aug. 19) ECE 425 Microprocessor Systems TECHNICAL SKILLS: Use software development tools for microcontrollers. Must have experience with verification test languages such as Vera, Specman,

More information

Where Does The Cpu Store The Address Of The

Where Does The Cpu Store The Address Of The Where Does The Cpu Store The Address Of The Next Instruction To Be Fetched The three most important buses are the address, the data, and the control buses. The CPU always knows where to find the next instruction

More information

COMPUTER ARCHITECTURE AND ORGANIZATION Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital

COMPUTER ARCHITECTURE AND ORGANIZATION Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital hardware modules that accomplish a specific information-processing task. Digital systems vary in

More information

ARM processor organization

ARM processor organization ARM processor organization P. Bakowski bako@ieee.org ARM register bank The register bank,, which stores the processor state. r00 r01 r14 r15 P. Bakowski 2 ARM register bank It has two read ports and one

More information

Digital System Design Using Verilog. - Processing Unit Design

Digital System Design Using Verilog. - Processing Unit Design Digital System Design Using Verilog - Processing Unit Design 1.1 CPU BASICS A typical CPU has three major components: (1) Register set, (2) Arithmetic logic unit (ALU), and (3) Control unit (CU) The register

More information

DC57 COMPUTER ORGANIZATION JUNE 2013

DC57 COMPUTER ORGANIZATION JUNE 2013 Q2 (a) How do various factors like Hardware design, Instruction set, Compiler related to the performance of a computer? The most important measure of a computer is how quickly it can execute programs.

More information

Module 5 - CPU Design

Module 5 - CPU Design Module 5 - CPU Design Lecture 1 - Introduction to CPU The operation or task that must perform by CPU is: Fetch Instruction: The CPU reads an instruction from memory. Interpret Instruction: The instruction

More information

Chapter 4. MARIE: An Introduction to a Simple Computer. Chapter 4 Objectives. 4.1 Introduction. 4.2 CPU Basics

Chapter 4. MARIE: An Introduction to a Simple Computer. Chapter 4 Objectives. 4.1 Introduction. 4.2 CPU Basics Chapter 4 Objectives Learn the components common to every modern computer system. Chapter 4 MARIE: An Introduction to a Simple Computer Be able to explain how each component contributes to program execution.

More information

The von Neumann Architecture. IT 3123 Hardware and Software Concepts. The Instruction Cycle. Registers. LMC Executes a Store.

The von Neumann Architecture. IT 3123 Hardware and Software Concepts. The Instruction Cycle. Registers. LMC Executes a Store. IT 3123 Hardware and Software Concepts February 11 and Memory II Copyright 2005 by Bob Brown The von Neumann Architecture 00 01 02 03 PC IR Control Unit Command Memory ALU 96 97 98 99 Notice: This session

More information

Chapters 5. Load & Store. Embedded Systems with ARM Cortex-M. Updated: Thursday, March 1, 2018

Chapters 5. Load & Store. Embedded Systems with ARM Cortex-M. Updated: Thursday, March 1, 2018 Chapters 5 Load & Store Embedded Systems with ARM Cortex-M Updated: Thursday, March 1, 2018 Overview: Part I Machine Codes Branches and Offsets Subroutine Time Delay 2 32-Bit ARM Vs. 16/32-Bit THUMB2 Assembly

More information

ARM ARCHITECTURE. Contents at a glance:

ARM ARCHITECTURE. Contents at a glance: UNIT-III ARM ARCHITECTURE Contents at a glance: RISC Design Philosophy ARM Design Philosophy Registers Current Program Status Register(CPSR) Instruction Pipeline Interrupts and Vector Table Architecture

More information

FPGA IMPLEMENTATION OF A PROCESSOR THROUGH VERILOG

FPGA IMPLEMENTATION OF A PROCESSOR THROUGH VERILOG FPGA IMPLEMENTATION OF A PROCESSOR THROUGH VERILOG Overview and tutorial by Sagnik Nath Objective 1 About the single cycle ARM microarchitecture 1 Design Process 2 Creating Flow for Instruction set 3 LDR

More information

Microcontroller Systems

Microcontroller Systems µcontroller systems 1 / 43 Microcontroller Systems Engineering Science 2nd year A2 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/2co Michaelmas 2014 µcontroller

More information

CAD for VLSI 2 Pro ject - Superscalar Processor Implementation

CAD for VLSI 2 Pro ject - Superscalar Processor Implementation CAD for VLSI 2 Pro ject - Superscalar Processor Implementation 1 Superscalar Processor Ob jective: The main objective is to implement a superscalar pipelined processor using Verilog HDL. This project may

More information

CS 101, Mock Computer Architecture

CS 101, Mock Computer Architecture CS 101, Mock Computer Architecture Computer organization and architecture refers to the actual hardware used to construct the computer, and the way that the hardware operates both physically and logically

More information

ELEC 2200 Digital Logic Circuits

ELEC 2200 Digital Logic Circuits ELEC 22 Digital Logic Circuits Charles E. Stroud, Professor Dept. of Electrical & Computer Engineering Office: 325 Broun Hall Email: cestroud@eng.auburn.edu Text: Digital Logic Circuit Analysis & Design

More information

Chapter 4 The Von Neumann Model

Chapter 4 The Von Neumann Model Chapter 4 The Von Neumann Model The Stored Program Computer 1943: ENIAC Presper Eckert and John Mauchly -- first general electronic computer. (or was it John V. Atanasoff in 1939?) Hard-wired program --

More information

Microcontrollers. Microcontroller

Microcontrollers. Microcontroller Microcontrollers Microcontroller A microprocessor on a single integrated circuit intended to operate as an embedded system. As well as a CPU, a microcontroller typically includes small amounts of RAM and

More information

Digital IP Cell 8-bit Microcontroller PE80

Digital IP Cell 8-bit Microcontroller PE80 1. Description The is a Z80 compliant processor soft-macro - IP block that can be implemented in digital or mixed signal ASIC designs. The Z80 and its derivatives and clones make up one of the most commonly

More information

ECE 486/586. Computer Architecture. Lecture # 7

ECE 486/586. Computer Architecture. Lecture # 7 ECE 486/586 Computer Architecture Lecture # 7 Spring 2015 Portland State University Lecture Topics Instruction Set Principles Instruction Encoding Role of Compilers The MIPS Architecture Reference: Appendix

More information

CISC Processor Design

CISC Processor Design CISC Processor Design Virendra Singh Indian Institute of Science Bangalore virendra@computer.org Lecture 3 SE-273: Processor Design Processor Architecture Processor Architecture CISC RISC Jan 21, 2008

More information

Outcomes. Lecture 13 - Introduction to the Central Processing Unit (CPU) Central Processing UNIT (CPU) or Processor

Outcomes. Lecture 13 - Introduction to the Central Processing Unit (CPU) Central Processing UNIT (CPU) or Processor Lecture 13 - Introduction to the Central Processing Unit (CPU) Outcomes What is a CPU? How are instructions prepared by the CPU before execution? What registers and operations are involved in this preparation

More information

EE 3170 Microcontroller Applications

EE 3170 Microcontroller Applications EE 3170 Microcontroller Applications Lecture 4 : Processors, Computers, and Controllers - 1.2 (reading assignment), 1.3-1.5 Based on slides for ECE3170 by Profs. Kieckhafer, Davis, Tan, and Cischke Outline

More information

Chapter 4 The Von Neumann Model

Chapter 4 The Von Neumann Model Chapter 4 The Von Neumann Model The Stored Program Computer 1943: ENIAC Presper Eckert and John Mauchly -- first general electronic computer. (or was it John V. Atanasoff in 1939?) Hard-wired program --

More information

ECE260: Fundamentals of Computer Engineering

ECE260: Fundamentals of Computer Engineering Datapath for a Simplified Processor James Moscola Dept. of Engineering & Computer Science York College of Pennsylvania Based on Computer Organization and Design, 5th Edition by Patterson & Hennessy Introduction

More information

Single cycle MIPS data path without Forwarding, Control, or Hazard Unit

Single cycle MIPS data path without Forwarding, Control, or Hazard Unit Single cycle MIPS data path without Forwarding, Control, or Hazard Unit Figure 1: an Overview of a MIPS datapath without Control and Forwarding (Patterson & Hennessy, 2014, p. 287) A MIPS 1 single cycle

More information

Chapter 4 The Von Neumann Model

Chapter 4 The Von Neumann Model Chapter 4 The Von Neumann Model The Stored Program Computer 1943: ENIAC Presper Eckert and John Mauchly -- first general electronic computer. (or was it John V. Atananasoff in 1939?) Hard-wired program

More information

These actions may use different parts of the CPU. Pipelining is when the parts run simultaneously on different instructions.

These actions may use different parts of the CPU. Pipelining is when the parts run simultaneously on different instructions. MIPS Pipe Line 2 Introduction Pipelining To complete an instruction a computer needs to perform a number of actions. These actions may use different parts of the CPU. Pipelining is when the parts run simultaneously

More information

Computer Architecture Prof. Mainak Chaudhuri Department of Computer Science & Engineering Indian Institute of Technology, Kanpur

Computer Architecture Prof. Mainak Chaudhuri Department of Computer Science & Engineering Indian Institute of Technology, Kanpur Computer Architecture Prof. Mainak Chaudhuri Department of Computer Science & Engineering Indian Institute of Technology, Kanpur Lecture - 7 Case study with MIPS-I So, we were discussing (Refer Time: 00:20),

More information

FPGA Based Implementation of Pipelined 32-bit RISC Processor with Floating Point Unit

FPGA Based Implementation of Pipelined 32-bit RISC Processor with Floating Point Unit RESEARCH ARTICLE OPEN ACCESS FPGA Based Implementation of Pipelined 32-bit RISC Processor with Floating Point Unit Jinde Vijay Kumar 1, Chintakunta Swapna 2, Boya Nagaraju 3, Thogata Ramanjappa 4 1,2Research

More information

Chapter 1 : Introduction

Chapter 1 : Introduction Chapter 1 Introduction 1.1 Introduction A Microprocessor is a multipurpose programmable, clock driven, register based electronic device that reads binary instructions from a storage device called memory,

More information

Computer Systems. Binary Representation. Binary Representation. Logical Computation: Boolean Algebra

Computer Systems. Binary Representation. Binary Representation. Logical Computation: Boolean Algebra Binary Representation Computer Systems Information is represented as a sequence of binary digits: Bits What the actual bits represent depends on the context: Seminar 3 Numerical value (integer, floating

More information

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Departamento de Engenharia Informática Architectures for Embedded Computing MEIC-A, MEIC-T, MERC Lecture Slides Version 3.0 - English Lecture 05

More information

COSC 122 Computer Fluency. Computer Organization. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 122 Computer Fluency. Computer Organization. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 122 Computer Fluency Computer Organization Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Key Points 1) The standard computer (von Neumann) architecture consists

More information

Lecture1: introduction. Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit

Lecture1: introduction. Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit Lecture1: introduction Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit 1 1. History overview Computer systems have conventionally

More information

Definitions. Key Objectives

Definitions. Key Objectives CHAPTER 2 Definitions Key Objectives & Types of models & & Black box versus white box Definition of a test Functional verification requires that several elements are in place. It relies on the ability

More information

COSC121: Computer Systems: Review

COSC121: Computer Systems: Review COSC121: Computer Systems: Review Jeremy Bolton, PhD Assistant Teaching Professor Constructed using materials: - Patt and Patel Introduction to Computing Systems (2nd) - Patterson and Hennessy Computer

More information

Universiteit Leiden Opleiding Informatica

Universiteit Leiden Opleiding Informatica Universiteit Leiden Opleiding Informatica Design, Analysis, and Optimization of an Embedded Processor Name: Ruben Meerkerk Studentnr: s1219677 Date: 31/08/2016 1st supervisor: Dr. T.P. Stefanov 2nd supervisor:

More information

MARIE: An Introduction to a Simple Computer

MARIE: An Introduction to a Simple Computer MARIE: An Introduction to a Simple Computer 4.2 CPU Basics The computer s CPU fetches, decodes, and executes program instructions. The two principal parts of the CPU are the datapath and the control unit.

More information

CPU Structure and Function

CPU Structure and Function CPU Structure and Function Chapter 12 Lesson 17 Slide 1/36 Processor Organization CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data Lesson 17 Slide 2/36 CPU With Systems

More information

LC-3 Architecture. (Ch4 ish material)

LC-3 Architecture. (Ch4 ish material) LC-3 Architecture (Ch4 ish material) 1 CISC vs. RISC CISC : Complex Instruction Set Computer Lots of instructions of variable size, very memory optimal, typically less registers. RISC : Reduced Instruction

More information

Chapter 5. Computer Architecture Organization and Design. Computer System Architecture Database Lab, SANGJI University

Chapter 5. Computer Architecture Organization and Design. Computer System Architecture Database Lab, SANGJI University Chapter 5. Computer Architecture Organization and Design Computer System Architecture Database Lab, SANGJI University Computer Architecture Organization and Design Instruction Codes Computer Registers

More information

PESIT Bangalore South Campus

PESIT Bangalore South Campus INTERNAL ASSESSMENT TEST I Date: 30/08/2017 Max Marks: 40 Subject & Code: Computer Organization 15CS34 Semester: III (A & B) Name of the faculty: Mrs.Sharmila Banu.A Time: 8.30 am 10.00 am Answer any FIVE

More information

The PAW Architecture Reference Manual

The PAW Architecture Reference Manual The PAW Architecture Reference Manual by Hansen Zhang For COS375/ELE375 Princeton University Last Update: 20 September 2015! 1. Introduction The PAW architecture is a simple architecture designed to be

More information

Processor design - MIPS

Processor design - MIPS EASY Processor design - MIPS Q.1 What happens when a register is loaded? 1. The bits of the register are set to all ones. 2. The bit pattern in the register is copied to a location in memory. 3. A bit

More information

CC411: Introduction To Microprocessors

CC411: Introduction To Microprocessors CC411: Introduction To Microprocessors OBJECTIVES this chapter enables the student to: Describe the Intel family of microprocessors from 8085 to Pentium. In terms of bus size, physical memory & special

More information

csitnepal Unit 3 Basic Computer Organization and Design

csitnepal Unit 3 Basic Computer Organization and Design Unit 3 Basic Computer Organization and Design Introduction We introduce here a basic computer whose operation can be specified by the resister transfer statements. Internal organization of the computer

More information

Introduction. Why Use HDL? Simulation output. Explanation

Introduction. Why Use HDL? Simulation output. Explanation Introduction Verilog HDL is a Hardware Description Language (HDL) HDL is a language used to describe a digital system, for example, a computer or a component of a computer. Most popular HDLs are VHDL and

More information

Chapter 4. The Processor

Chapter 4. The Processor Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware 4.1 Introduction We will examine two MIPS implementations

More information

UNIT- 5. Chapter 12 Processor Structure and Function

UNIT- 5. Chapter 12 Processor Structure and Function UNIT- 5 Chapter 12 Processor Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data CPU With Systems Bus CPU Internal Structure Registers

More information

Topic 10: Instruction Representation

Topic 10: Instruction Representation Topic 10: Instruction Representation CSE 30: Computer Organization and Systems Programming Summer Session II Dr. Ali Irturk Dept. of Computer Science and Engineering University of California, San Diego

More information

Register Transfer and Micro-operations

Register Transfer and Micro-operations Register Transfer Language Register Transfer Bus Memory Transfer Micro-operations Some Application of Logic Micro Operations Register Transfer and Micro-operations Learning Objectives After reading this

More information

Chapter 12. CPU Structure and Function. Yonsei University

Chapter 12. CPU Structure and Function. Yonsei University Chapter 12 CPU Structure and Function Contents Processor organization Register organization Instruction cycle Instruction pipelining The Pentium processor The PowerPC processor 12-2 CPU Structures Processor

More information

THE MICROPROCESSOR Von Neumann s Architecture Model

THE MICROPROCESSOR Von Neumann s Architecture Model THE ICROPROCESSOR Von Neumann s Architecture odel Input/Output unit Provides instructions and data emory unit Stores both instructions and data Arithmetic and logic unit Processes everything Control unit

More information

Introduction to Computer Engineering. CS/ECE 252 Prof. Mark D. Hill Computer Sciences Department University of Wisconsin Madison

Introduction to Computer Engineering. CS/ECE 252 Prof. Mark D. Hill Computer Sciences Department University of Wisconsin Madison Introduction to Computer Engineering CS/ECE 252 Prof. Mark D. Hill Computer Sciences Department University of Wisconsin Madison Chapter 4 The Von Neumann Model The Stored Program Computer 1943: ENIAC Presper

More information

CPE300: Digital System Architecture and Design

CPE300: Digital System Architecture and Design CPE300: Digital System Architecture and Design Fall 2011 MW 17:30-18:45 CBC C316 Pipelining 11142011 http://www.egr.unlv.edu/~b1morris/cpe300/ 2 Outline Review I/O Chapter 5 Overview Pipelining Pipelining

More information

ARM Shift Operations. Shift Type 00 - logical left 01 - logical right 10 - arithmetic right 11 - rotate right. Shift Amount 0-31 bits

ARM Shift Operations. Shift Type 00 - logical left 01 - logical right 10 - arithmetic right 11 - rotate right. Shift Amount 0-31 bits ARM Shift Operations A novel feature of ARM is that all data-processing instructions can include an optional shift, whereas most other architectures have separate shift instructions. This is actually very

More information

CHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle

CHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle CS 224: Computer Organization S.KHABET CHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle Memory Reference Instructions

More information

Blog -

Blog - . Instruction Codes Every different processor type has its own design (different registers, buses, microoperations, machine instructions, etc) Modern processor is a very complex device It contains Many

More information

Summary of Computer Architecture

Summary of Computer Architecture Summary of Computer Architecture Summary CHAP 1: INTRODUCTION Structure Top Level Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output

More information

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle

More information

UNIT 2 (ECS-10CS72) VTU Question paper solutions

UNIT 2 (ECS-10CS72) VTU Question paper solutions UNIT 2 (ECS-10CS72) VTU Question paper solutions 1. Differentiate between Harvard and von Neumann architecture. Jun 14 The Harvard architecture is a computer architecture with physically separate storage

More information

Arm Architecture. Enrique Secanechia Santos, Kevin Mesolella

Arm Architecture. Enrique Secanechia Santos, Kevin Mesolella Arm Architecture Enrique Secanechia Santos, Kevin Mesolella Outline History What is ARM? What uses ARM? Instruction Set Registers ARM specific instructions/implementations Stack Interrupts Pipeline ARM

More information

CS31001 COMPUTER ORGANIZATION AND ARCHITECTURE. Debdeep Mukhopadhyay, CSE, IIT Kharagpur. Instructions and Addressing

CS31001 COMPUTER ORGANIZATION AND ARCHITECTURE. Debdeep Mukhopadhyay, CSE, IIT Kharagpur. Instructions and Addressing CS31001 COMPUTER ORGANIZATION AND ARCHITECTURE Debdeep Mukhopadhyay, CSE, IIT Kharagpur Instructions and Addressing 1 ISA vs. Microarchitecture An ISA or Instruction Set Architecture describes the aspects

More information

Chapter 4. The Processor

Chapter 4. The Processor Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware We will examine two MIPS implementations A simplified

More information

2.2 THE MARIE Instruction Set Architecture

2.2 THE MARIE Instruction Set Architecture 2.2 THE MARIE Instruction Set Architecture MARIE has a very simple, yet powerful, instruction set. The instruction set architecture (ISA) of a machine specifies the instructions that the computer can perform

More information

Chapter 4. Instruction Execution. Introduction. CPU Overview. Multiplexers. Chapter 4 The Processor 1. The Processor.

Chapter 4. Instruction Execution. Introduction. CPU Overview. Multiplexers. Chapter 4 The Processor 1. The Processor. COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition Chapter 4 The Processor The Processor - Introduction

More information

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition Chapter 4 The Processor COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition The Processor - Introduction

More information

Single Cycle Datapath

Single Cycle Datapath Single Cycle atapath Lecture notes from MKP, H. H. Lee and S. Yalamanchili Section 4.-4.4 Appendices B.7, B.8, B.,.2 Practice Problems:, 4, 6, 9 ing (2) Introduction We will examine two MIPS implementations

More information

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016 CS 31: Intro to Systems Digital Logic Kevin Webb Swarthmore College February 2, 2016 Reading Quiz Today Hardware basics Machine memory models Digital signals Logic gates Circuits: Borrow some paper if

More information

Computer Architecture V Fall Practice Exam Questions

Computer Architecture V Fall Practice Exam Questions Computer Architecture V22.0436 Fall 2002 Practice Exam Questions These are practice exam questions for the material covered since the mid-term exam. Please note that the final exam is cumulative. See the

More information

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institution of Technology, Delhi

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institution of Technology, Delhi Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institution of Technology, Delhi Lecture - 34 Compilers for Embedded Systems Today, we shall look at the compilers, which

More information

CHAPTER SIX BASIC COMPUTER ORGANIZATION AND DESIGN

CHAPTER SIX BASIC COMPUTER ORGANIZATION AND DESIGN CHAPTER SIX BASIC COMPUTER ORGANIZATION AND DESIGN 6.1. Instruction Codes The organization of a digital computer defined by: 1. The set of registers it contains and their function. 2. The set of instructions

More information

Chapter 4. The Processor Designing the datapath

Chapter 4. The Processor Designing the datapath Chapter 4 The Processor Designing the datapath Introduction CPU performance determined by Instruction Count Clock Cycles per Instruction (CPI) and Cycle time Determined by Instruction Set Architecure (ISA)

More information

are Softw Instruction Set Architecture Microarchitecture are rdw

are Softw Instruction Set Architecture Microarchitecture are rdw Program, Application Software Programming Language Compiler/Interpreter Operating System Instruction Set Architecture Hardware Microarchitecture Digital Logic Devices (transistors, etc.) Solid-State Physics

More information

CPE300: Digital System Architecture and Design

CPE300: Digital System Architecture and Design CPE300: Digital System Architecture and Design Fall 2011 MW 17:30-18:45 CBC C316 Arithmetic Unit 10032011 http://www.egr.unlv.edu/~b1morris/cpe300/ 2 Outline Recap Chapter 3 Number Systems Fixed Point

More information

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 12 Processor Structure and Function

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 12 Processor Structure and Function William Stallings Computer Organization and Architecture 8 th Edition Chapter 12 Processor Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data

More information

Introduction to Computers - Chapter 4

Introduction to Computers - Chapter 4 Introduction to Computers - Chapter 4 Since the invention of the transistor and the first digital computer of the 1940s, computers have been increasing in complexity and performance; however, their overall

More information

Computer Organization

Computer Organization Objectives 5.1 Chapter 5 Computer Organization Source: Foundations of Computer Science Cengage Learning 5.2 After studying this chapter, students should be able to: List the three subsystems of a computer.

More information

Computer Organization and Technology Processor and System Structures

Computer Organization and Technology Processor and System Structures Computer Organization and Technology Processor and System Structures Assoc. Prof. Dr. Wattanapong Kurdthongmee Division of Computer Engineering, School of Engineering and Resources, Walailak University

More information

Wednesday, February 4, Chapter 4

Wednesday, February 4, Chapter 4 Wednesday, February 4, 2015 Topics for today Introduction to Computer Systems Static overview Operation Cycle Introduction to Pep/8 Features of the system Operational cycle Program trace Categories of

More information

5 Computer Organization

5 Computer Organization 5 Computer Organization 5.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: List the three subsystems of a computer. Describe the

More information

SAE5C Computer Organization and Architecture. Unit : I - V

SAE5C Computer Organization and Architecture. Unit : I - V SAE5C Computer Organization and Architecture Unit : I - V UNIT-I Evolution of Pentium and Power PC Evolution of Computer Components functions Interconnection Bus Basics of PCI Memory:Characteristics,Hierarchy

More information

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

ASSEMBLY LANGUAGE MACHINE ORGANIZATION ASSEMBLY LANGUAGE MACHINE ORGANIZATION CHAPTER 3 1 Sub-topics The topic will cover: Microprocessor architecture CPU processing methods Pipelining Superscalar RISC Multiprocessing Instruction Cycle Instruction

More information

( input = α output = λ move = L )

( input = α output = λ move = L ) basicarchitectures What we are looking for -- A general design/organization -- Some concept of generality and completeness -- A completely abstract view of machines a definition a completely (?) general

More information

Visualizing Data Flow and Control Signaling Inside the Microprocessor

Visualizing Data Flow and Control Signaling Inside the Microprocessor Visualizing Data Flow and Control Signaling Inside the Microprocessor Ms. Isha Sharma 1, Mrs. Neha Sharma 2, Mr. Jitender Chhabra 3 1 M.Tech. Scholar, SGTIET, Gurgaon. 2 Asst. Professor, SGTIET, Gurgaon

More information

EECS 151/251 FPGA Project Report

EECS 151/251 FPGA Project Report EECS 151/251 FPGA Project Report GSI: Vighnesh Iyer Team Number: 6 Partners: Ashwinlal Sreelal and Zhixin Alice Ye Due Date: Dec 9, 2016 Part I: Project Description The aims of this project were to develop

More information

Chapter 1 Microprocessor architecture ECE 3120 Dr. Mohamed Mahmoud http://iweb.tntech.edu/mmahmoud/ mmahmoud@tntech.edu Outline 1.1 Computer hardware organization 1.1.1 Number System 1.1.2 Computer hardware

More information

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015 Advanced Parallel Architecture Lesson 3 Annalisa Massini - 2014/2015 Von Neumann Architecture 2 Summary of the traditional computer architecture: Von Neumann architecture http://williamstallings.com/coa/coa7e.html

More information

The Processor: Datapath and Control. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

The Processor: Datapath and Control. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University The Processor: Datapath and Control Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Introduction CPU performance factors Instruction count Determined

More information

Comparison InstruCtions

Comparison InstruCtions Status Flags Now it is time to discuss what status flags are available. These five status flags are kept in a special register called the Program Status Register (PSR). The PSR also contains other important

More information

ARM Processors for Embedded Applications

ARM Processors for Embedded Applications ARM Processors for Embedded Applications Roadmap for ARM Processors ARM Architecture Basics ARM Families AMBA Architecture 1 Current ARM Core Families ARM7: Hard cores and Soft cores Cache with MPU or

More information

Embedded Soc using High Performance Arm Core Processor D.sridhar raja Assistant professor, Dept. of E&I, Bharath university, Chennai

Embedded Soc using High Performance Arm Core Processor D.sridhar raja Assistant professor, Dept. of E&I, Bharath university, Chennai Embedded Soc using High Performance Arm Core Processor D.sridhar raja Assistant professor, Dept. of E&I, Bharath university, Chennai Abstract: ARM is one of the most licensed and thus widespread processor

More information

Dec Hex Bin ORG ; ZERO. Introduction To Computing

Dec Hex Bin ORG ; ZERO. Introduction To Computing Dec Hex Bin 0 0 00000000 ORG ; ZERO Introduction To Computing OBJECTIVES this chapter enables the student to: Convert any number from base 2, base 10, or base 16 to any of the other two bases. Add and

More information

CS 61C: Great Ideas in Computer Architecture Datapath. Instructors: John Wawrzynek & Vladimir Stojanovic

CS 61C: Great Ideas in Computer Architecture Datapath. Instructors: John Wawrzynek & Vladimir Stojanovic CS 61C: Great Ideas in Computer Architecture Datapath Instructors: John Wawrzynek & Vladimir Stojanovic http://inst.eecs.berkeley.edu/~cs61c/fa15 1 Components of a Computer Processor Control Enable? Read/Write

More information

1. Internal Architecture of 8085 Microprocessor

1. Internal Architecture of 8085 Microprocessor 1. Internal Architecture of 8085 Microprocessor Control Unit Generates signals within up to carry out the instruction, which has been decoded. In reality causes certain connections between blocks of the

More information

CN310 Microprocessor Systems Design

CN310 Microprocessor Systems Design CN310 Microprocessor Systems Design Micro Architecture Nawin Somyat Department of Electrical and Computer Engineering Thammasat University 28 August 2018 Outline Course Contents 1 Introduction 2 Simple

More information

Introduction to Microprocessor

Introduction to Microprocessor Introduction to Microprocessor The microprocessor is a general purpose programmable logic device. It is the brain of the computer and it performs all the computational tasks, calculations data processing

More information

Architectures & instruction sets R_B_T_C_. von Neumann architecture. Computer architecture taxonomy. Assembly language.

Architectures & instruction sets R_B_T_C_. von Neumann architecture. Computer architecture taxonomy. Assembly language. Architectures & instruction sets Computer architecture taxonomy. Assembly language. R_B_T_C_ 1. E E C E 2. I E U W 3. I S O O 4. E P O I von Neumann architecture Memory holds data and instructions. Central

More information

William Stallings Computer Organization and Architecture. Chapter 11 CPU Structure and Function

William Stallings Computer Organization and Architecture. Chapter 11 CPU Structure and Function William Stallings Computer Organization and Architecture Chapter 11 CPU Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data Registers

More information