Behavioral ARM Processor Model Using System C. Dallas Webster IEEE Student Member No Texas Tech University 12/05/05
|
|
- Chastity Johnston
- 5 years ago
- Views:
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 Microprocessor Systems TECHNICAL SKILLS: Use software development tools for microcontrollers. Must have experience with verification test languages such as Vera, Specman,
More informationWhere 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 informationCOMPUTER 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 informationARM 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 informationDigital 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 informationDC57 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 informationModule 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 informationChapter 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 informationThe 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 informationChapters 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 informationARM 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 informationFPGA 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 informationMicrocontroller 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 informationCAD 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 informationCS 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 informationELEC 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 informationChapter 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 informationMicrocontrollers. 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 informationDigital 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 informationECE 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 informationCISC 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 informationOutcomes. 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 informationEE 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 informationChapter 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 informationECE260: 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 informationSingle 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 informationChapter 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 informationThese 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 informationComputer 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 informationFPGA 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 informationChapter 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 informationComputer 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 informationINSTITUTO 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 informationCOSC 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 informationLecture1: 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 informationDefinitions. 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 informationCOSC121: 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 informationUniversiteit 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 informationMARIE: 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 informationCPU 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 informationLC-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 informationChapter 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 informationPESIT 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 informationThe 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 informationProcessor 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 informationCC411: 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 informationcsitnepal 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 informationIntroduction. 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 informationChapter 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 informationUNIT- 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 informationTopic 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 informationRegister 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 informationChapter 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 informationTHE 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 informationIntroduction 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 informationCPE300: 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 informationARM 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 informationCHAPTER 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 informationBlog -
. 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 informationSummary 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 informationCOMPUTER 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 informationUNIT 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 informationArm 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 informationCS31001 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 informationChapter 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 information2.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 informationChapter 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 informationCOMPUTER 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 informationSingle 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 informationCS 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 informationComputer 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 informationEmbedded 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 informationCHAPTER 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 informationChapter 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 informationare 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 informationCPE300: 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 informationWilliam 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 informationIntroduction 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 informationComputer 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 informationComputer 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 informationWednesday, 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 information5 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 informationSAE5C 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 informationASSEMBLY 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 )
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 informationVisualizing 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 informationEECS 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 informationChapter 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 informationAdvanced 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 informationThe 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 informationComparison 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 informationARM 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 informationEmbedded 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 informationDec 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 informationCS 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 information1. 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 informationCN310 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 informationIntroduction 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 informationArchitectures & 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 informationWilliam 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