INF5060: Multimedia data communication using network processors Memory

Size: px
Start display at page:

Download "INF5060: Multimedia data communication using network processors Memory"

Transcription

1 INF5060: Multimedia data communication using network processors Memory 10/9-2004

2 Overview!Memory on the IXP cards!kinds of memory!its features!its accessibility!microengine assembler!memory management

3 Kinds of Memory Microengine general purpose registers StrongARM instruction cache StrongARM data cache StrongARM mini cache Scratch(pad) Instruction store FlashROM SRAM SDRAM 128 registers 16 Kbytes 8 Kbytes 512 bytes 4 Kbytes 64 Kbytes 8 Mbytes 8 Mbytes 256 Mbytes On chip On chip On chip On chip On chip On chip

4 IXP Functional Units Host machine PCI-to-PCI bridge 64 bit/33mhz PCI Bus IXP Network Processor SDRAM (up to 256 MB) 64 bit/116mhz SDRAM Unit PCI Bus Unit StrongARM Core SRAM (up to 8 MB) 32 bit/116mhz SRAM Unit Various busses Flash ROM IX Bus Unit (up to 8 MB) Microengine Memory Mapped I/O devices 64 bit/104mhz IX Bus Ethernet MAC (other IX devices)

5 Kinds of Memory! Physical memory on the IXP1200 is contiguous! Memory in general is not byte-addressable! Memory units emulate byte addressing for the StrongARM! Big endian architecture! StrongARM: big endian mode! Microengines are big endian Memory type Scratch(pad) SRAM SDRAM Addressable data unit (bytes) Relative access time (cycles)

6 Terms!Careful! Inconsistencies!!Wording in Intel IXP manuals!word: 16 bit!longword: 32 bit!quadword: 64 bit!wording in StrongARM and other ARM manuals!halfword: 16 bit!word: 32 bit

7 Kinds of Memory FFFF FFFF C B A Device 6 SDRAM Unit Device 5 AMBA Translation Unit Device 4 Reserved Device 3 StrongARM Core System Device 2 Reserved Device 1 PCI Unit Device 0 SRAM Unit! Memory accessible to StrongARM! Mapped into a single address space SDRAM Scratchpad Microengine registers SRAM! Memory accessible to microengines! Individually mapped! Separate assembler instructions for each kind

8 Memory: memory, cache memory, registers!strongarm core caches!microengine registers!sdram!sram!ix Bus Unit: Scratch(pad) memory

9 StrongARM

10 StrongARM Core Features!A general purpose processor!with MMU!16 Kbytes instruction cache!round robin replacement!8 Kbytes data cache!round robin replacement!write-back cache, cache replacement on read, not on write!512 byte mini-cache for data that is used once and then discarded!to reduce flushing of the main data cache!instruction code stored in SDRAM

11 StrongARM Core Access SDRAM Unit SRAM Unit StrongARM Core PCI Bus Unit Microengine IX Bus Unit! Full access to! SDRAM Unit! SRAM Unit! incl. FlashROM! PCI Bus Unit! Access to microengine s! Program code! Status registers! Program counters! Access to IX bus unit s! Status registers! Scratch memory

12 Microengines

13 Microengine Features! 4 hardware contexts! 2K x 32 bit instruction control store! Every instruction is 32 bits long! No instruction cache! Instructions downloaded onto the microengine by the StrongARM! Not loaded from RAM on demand! 5-stage instruction pipeline! Blocks for reference operations! Deferred execution to reduce context switch penalty! 256 registers! 32 bit registers! Load and store architecture! Must bring data into registers, work, write to destination! Single cycle access in registers! Use reference command to fetch into registers! Yield/sleep during fetch execution

14 Microengine Access Microengine SDRAM Unit SRAM Unit PCI Bus Unit MicroEngine StrongARM Core IX Bus Unit! Full access to! SDRAM Unit! SRAM Unit! IX Bus Unit! Access to StrongARM! Interrupts! Trigger status register reads! Access to PCI bus unit! Initiate DMA with SDRAM! Access to other microengines! None! Access to self! Inter-thread signaling! No access to own instruction code

15 Microengine Registers From: IXP1200 Family Hardware Reference Manual

16 Microengine Registers! 256 registers! 128 general purpose registers! Arranged in two banks A and B! Instructions with 2 input registers! From different banks! Otherwise assembler warning! 128 transfer registers! Transfer registers are not general purpose registers! Ports to their neighboring functional unit! 64 SDRAM transfer registers! Transfer to and from SDRAM! 32 read / 32 write! 64 SRAM transfer registers! Transfer to and from everything but SDRAM! 32 read / 32 write! 4 busses can be used in parallel! By different threads! Loading transfer registers! 64 bytes at once from one functional unit to another! 128 bytes at once from the IX bus

17 SDRAM

18 General features! Recommended use! StrongARM instruction code! Large data structures! Packets during processing! 64-bit addressed (8 byte aligned, quadword aligned)! 256 Mbytes! 928 Mbytes/s peak bandwidth! Higher bandwidth than SRAM! Higher latency than SRAM! Access! StrongARM! Microengines! StrongARM takes precedence! PCI DMA on behalf of microengines! Direct access to IX Bus Unit s Transmit and Receive FIFO

19 Special features! Byte, word, longword access supported through a read-modifywrite access to quadwords! Speed penalty! Direct path from SDRAM to IX Bus Transmit and Receive FIFOs! Controlled by microengines! Up to 64 bytes transferable without microengine involvement! Byte aligner between SDRAM and IX Bus! For sending to the Transmit FIFO! Shift bytewise when e.g. header length has changed! Can only be used by microengines in the t_fifo_wr command

20 SRAM

21 General features! Recommended use! Lookup tables! Free buffer lists! Data buffer queue lists! 32-bit addressed (4 byte aligned, word aligned)! 8 Mbytes! 464 Mbytes/s peak bandwidth! Lower bandwidth than SDRAM! Lower latency than SDRAM! Access! StrongARM! Microengines! StrongARM takes precedence

22 Accessing SRAM! StrongARM access! Byte, word and longword access! Bit operations through SRAM Alias Address Space! Bit, byte, word write supported through read-modify-write! Microengine access! Bit and longword access only! Up to 8 longwords with one command! Bit write supported through read-modify-write! Bit operations within instructions

23 Special features! Atomic push/pop operations! For maintaining lists! 8 entry push/pop register list! Microengines! Named commands! StrongARM! Dedicated memory addresses! Don t cache these memory areas! Atomic bit test, set and clear! For synchronized access! Microengine! Use a write transfer register! Specify bits to test, read, or write! Reading the bit changes the write transfer register! StrongARM! Special macros for read-modify-write operations! Blocks until operation is completed! Don t cache this memory

24 Special features! 8 entry CAM (content addressable memory) for read locks! For synchronized access! 8 concurrent locks on memory! Protect from StrongARM and microengines! Read, unlock and write_unlock! Microengines! sram assembler command! Waits until locks is released! StrongARM! 3 separate 8 MByte mapped memory regions! Failed locking is indicated by flags, read always successful! Don t cache these memory areas

25 Slow Port StrongARM Core Memory Map Command FIFO Test SRAM CSRs List 7 Pop operations F FFF FF FF FFFF FFFF FFFF C B A Device 6 SDRAM Unit Device 5 AMBA Translation Unit Device 4 Reserved Device 3 StrongARM Core System Device 2 Reserved List 6 Pop operations List 5 Pop operations List 4 Pop operations List 3 Pop operations List 2 Pop operations List 1 Pop operations List 0 Pop operations List 7 Push operations List 6 Push operations List 5 Push operations List 4 Push operations List 3 Push operations List 2 Push operations List 1 Push operations F FFFF FF FFFF F FFFF FF FFFF F FFFF FF FFFF F FFFF FF FFFF F FFFF FF FFFF F FFFF FF FFFF F FFFF FF FFFF Device 1 PCI Unit List 0 Push operations Bit Test & Set Bit Test & Clear Bit Write Set F FFFF FF FFFF F FFFF FF FFFF Device 0 SRAM Unit Bit Write Clear CAM Unlock Write Unlock F FFFF F FFFF F FFFF Read Lock F FFFF Read/Write F FFFF BootROM F FFFF

26 Memory Map for SRAM addresses Physical Device Function StrongARM Address Space (byte addressing) Microengine SRAM instruction command Microengine Address Space (longword addressing) SlowPort Slow Port F FFF read/write F FFFF SRAM CSRs SRAM CSRs read/write SRAM Pop operations FF FFFF pop F FFFF SRAM Push operations FF FFFF push F FFFF SRAM Bit Test & Set FF FFFF bit_wr (test_and_set_bits) F FFFF SRAM Bit Test & Clear F FFFF bit_wr (test_and_clear_bits) F FFFF SRAM Bit Write Set FF FFFF bit_wr (set_bits) F FFFF SRAM Bit Write Clear F FFFF bit_wr (clear_bits) F FFFF SRAM Unlock F FFFF unlock F FFFF SRAM Write Unlock F FFFF write_unlock F FFFF SRAM Read Lock F FFFF read_lock F FFFF SRAM Read/Write F FFFF read/write F FFFF BootROM BootROM F FFFF read/write F FFFF

27 IX Bus Unit

28 IX Bus Unit IXP Network Processor SDRAM Unit Microengines StrongARM IX Bus Unit FBI Engine Interface Receive FIFO Transmit FIFO Hash Units Status Registers Scratchpad IX Bus Ethernet MAC (other IX devices)

29 Scratch Memory: General Features!Recommended use!passing messages between processors and between threads!semaphores, mailboxes, other IPC!32-bit addressed (4 byte aligned, word aligned)!4 Kbytes!Has an atomic autoincrement instruction!only usable by microengines

30 StrongARM Core Memory Map FFFF FFFF C B A Device 6 SDRAM Unit Device 5 AMBA Translation Unit Device 4 Reserved Device 3 StrongARM Core System Device 2 Reserved Scratchpad Memory IX Bus Unit CSR ME5 Transfer Regs ME4 Transfer Regs ME3 Transfer Regs ME2 Transfer Regs ME1 Transfer Regs ME0 Transfer Regs ME5 CSR B B004 4FFF B B B B B B B B Device 1 PCI Unit ME4 CSR ME3 CSR ME2 CSR ME1 CSR B B B B Device 0 SRAM Unit ME0 CSR ME = microengine B

31 Microengine Assembler

32 Using Microengine Registers! Programming! Context-relative addressing! Each threads can have its own window of registers (one 4 th of the total), so they can t overwrite each other! Absolute addressing! Register is visible to all threads! Context-relative vs. absolute addressing! Decided on a per-instruction basis! Assembler! Supports symbolic names! Assigns registers from the different kinds! Programmer! must take care concerning the number of registers used! can hint the assembler to assign (transfer) registers contiguously! Context-relative addressing of the registers! Threads are only able to address their own register share! This is more typically used! Assembler notations! symbolic_register_name general purpose register! $symbolic_register_name SRAM transfer register! $$symbolic_register_name SDRAM transfer register! Absolute addressing! Threads can use more than their share of registers! Threads can communicate via registers! Assembler general purpose SRAM transfer SDRAM transfer register

33 Microengine Assembler! ALU! alu[dest_reg, A_operand, alu_op, B_operand]! Perform addition, subtraction, bit operations! dest_reg! transfer register (TR), general purpose register (GPR) or nothing! A_operand! TR, GPR, immediate data, or nothing! B_operand! TR, GPR, or immediate data! ALU_SHF! alu_shf[dest_reg, A_operand, alu_op, B_operand, B_op_shift_cnt]! Like ALU, but shift B_operand before evaluation! dest_reg! Context-relative TR, GPR, or nothing! A_operand! TR, GPR, immediate data, or nothing! B_operand! TR, GPR, or immediate data

34 Microengine Assembler!BR_BCLR, BR_BSET!br_bclr[reg, bit_position, label#]!branch if the given bit (0-32) in register reg is cleared or set, respectively!reg!context-relative TR or GPR!BR=BYTE, BR!=BYTE!Br=byte[reg, byte_spec, byte_compare_value, label#]!ranch if the indicated byte (0-3) of register reg is of the constant value byte_compare_value, or not, respectively!reg!context-relative TR or GPR

35 Microengine Acess to SDRAM! Read, write, Receive FIFO read, Transmit FIFO write! sdram[sdram_cmd, $$sdram_xfer_reg, source_op_1, source_op_2, ref_count], optional_token! Parameters! sdram_cmd! read: read from SDRAM to TRs! write: write from TRs to SDRAM! r_fifo_rd: read from Receive FIFO to SDRAM! t_fifo_wr: write to Transmit FIFO from SDRAM! $$sdram_xfer_reg! The first of a set of contiguous TRs for read and write operations! One ref_count requires to TRs! source_op_1/2! Specifies the address to read from or to write to! ref_count! Values between 1 and 8 are valid! optional_token! ctx_arb allows other threads to run until memory operation is complete! ctx_swap switches context to the next thread! The (complicated) indirect_ref option must be used r_fifo_rd and t_fifo_wr

36 Microengine Access to SRAM (1/2)! Read, write, read and lock, write and unlock, unlock,! sram[sram_cmd, $sram_xfer_reg, source_op_1, source_op_2, ref_count] optional_token! sram_cmd! Read or write! $sram_xfer_reg! the first of ref_count contiguous TRs! source_op_1+source_op_2! Specifies the address to read from or to write to! ref_count! The number of longwords read or written! sram[read_lock, $sram_xfer_reg, source_op_1, source_op_2, ref_count] optional_token! Like sram[read, ]! But lock the address source_op_1+source_op_2! sram[write_unlock, $sram_xfer_reg, source_op_1, source_op_2, 1] optional_token! Write one TR to source_op_1+source_op_2 and unlock the address! sram[unlock, --, source_op_1, source_op_2, 1] optional_token! Unlock the address specified by souce_op_1+source_op_2

37 Microengine Access to SRAM (2/2)!, bit operations, push, pull! sram[bit_wr, $bit_mask, source_op_1, source_op_2, bit_op] optional_token! As with scratch memory but with the larger address space! $bit_mask is a write TR holds mask on input and optional results! sram[push, --, source_op_1, source_op_2, queue_num] optional_token! Add source_op_1 and source_op_2 to get an address! Push the address onto queue queue_num! sram[pop, $popped_list, --, --, queue_num] optional_token! Pop an address from queue queue_num! Store the pointer in the TR $popped_list

38 Microengine Access to Scratch Memory! Read, write, bit operations, in-place increment! scratch[bit_wr, $sram_xfer_reg, source_op_1, source_op_2, bit_op], optional_token! Bit operations! scratch[read, $sram_xfer_reg, source_op_1, source_op_2, ref_count], optional_token! Read into transfer registers! scratch[write, $sram_xfer_reg, source_op_1, source_op_2, ref_count], optional_token! Write from transfer registers! scratch[incr, --, source_op_1, source_op_2, 1], optional_token! In-place increment by 1! Parameters! source_op1/2! Context-relative transfer registers (TRs) or immediate values! Sum between 0 and 1023! $sram_xfer_reg! For read and write: the first of a set of contiguous TRs to be read or written! For bit_wr: a TR containing a bit mask! ref_count! Number of longwords read or written! Between 1 and 8! bit_op! set_bits, clear_bits, test_and_set_bits, test_and_clear_bits! For the test_ operations, the write TR is modified

39 Microengine Assembler!Ordering problems!example immed[$$temp, 0x1234] sdram[write,$$temp,base,0,1], ctx_swap, defer[1] immed[$$temp,0x5678]!the wrong value may be written!writing and context swapping are deferred!the register modification may overtake!address of a register!it is possible to determine the address of a register!.local a_gp_reg!immed[a_gp_reg,&$an_sram_reg]!.endlocal

40 Memory Management

41 !Task Resource Manager!Used by StrongARM code!for microaces and microace applications to interface with microengines!api!load code into microengines!enable/disable microengines!get/set microengine configuration and resource assignment!send and receive packets to and from microcode blocks!allocate and access uncached SRAM, SDRAM and Scratch memory

42 Resource Manager!Data structures!rmmemoryhandle!opaque handle identifying memory allocated by the resource manager!typedef int RmMemoryHandle

43 Resource Manager! RmMalloc! Allocate a particular kind of memory! RM_SRAM! RM_SDRAM! RM_SCRATCH! Some SRAM and SDRAM is already used by the ASL, some SDRAM is used by Linux, the rest can be used freely by microaces for data structures of its choosing! The memory is not cached! The memory is not protected by an MMU, and the virtual address is the same for all processes! Returned pointers are always aligned (SDRAM to 8 bytes, SRAM and Scratch to 4 bytes)! Requested sizes are rounded to alignment! This allocation is not efficient! microaces should allocate all memory they need at once and manage it themselves! ix_error RmMalloc( RmMemoryType in_memory_type, unsigned char* out_mem_handle_ptr, int in_size_in_bytes );! RmFree! Released memory allocated by RmMalloc! ix_error RmFree( unsigned char* ptr );

44 Resource Manager! Translating between virtual and physical addresses! The microengines map memory differently into their address space then the StrongARM! StrongARM addresses make no sense and have to be translated to offsets from the start of each particular kind of memory (and back)! RmGetPhysOffset! ix_error RmGetPhysOffset( RmMemoryType in_memory_type, unsigned char* in_data_ptr, unsigned int* out_offset );! Translate address in_data_ptr in RmAlloc d memory to its offset from the given memory type! The offset is in words (4 byte units) for SRAM and Scratch, and in quadwords (8 byte units) for SDRAM! RmGetVirtualAddress! ix_error RmGetVirtualAddress( RmMemoryType in_memory_type, unsigned char** out_buffer_ptr, unsigned int in_offset);! Take the physical offset from the base of the given memory type and translate it into a virtual address valid for the StrongARM

45 Summary!Memory on the IXP cards!kinds of memory!its features!its accessibility!microengine assembler!resource Manager functionsstrong

Intel IXP1200 Network Processor Family

Intel IXP1200 Network Processor Family Intel IXP1200 Network Processor Family Hardware Reference Manual December 2001 Part Number: 278303-009 Revision History Revision Date Revision Description 8/30/99 001 Beta 1 release. 10/29/99 002 Beta

More information

Advanced IXP1200 Microengine Programming

Advanced IXP1200 Microengine Programming Advanced IXP1200 Microengine Programming IXP1200 Network Processor IDF Spring 2001 Corporation Copyright 2001 Corporation. Agenda! Intro Programming Assignment! What is the IXP Macro Library?! Some Macro

More information

Workload Characterization and Performance for a Network Processor

Workload Characterization and Performance for a Network Processor Workload Characterization and Performance for a Network Processor Mitsuhiro Miyazaki Princeton Architecture Laboratory for Multimedia and Security (PALMS) May. 16. 2002 Objectives To evaluate a NP from

More information

Intel IXP1250 Network Processor

Intel IXP1250 Network Processor Product Features Datasheet The Intel IXP1250 Network Processor delivers high-performance processing power and flexibility to a wide variety of LAN and telecommunications products. Distinguishing features

More information

Introduction to Network Processors: Building Block for Programmable High- Speed Networks. Example: Intel IXA

Introduction to Network Processors: Building Block for Programmable High- Speed Networks. Example: Intel IXA Introduction to Network Processors: Building Block for Programmable High- Speed Networks Example: Intel IXA Shiv Kalyanaraman Yong Xia (TA) shivkuma@ecse.rpi.edu http://www.ecse.rpi.edu/homepages/shivkuma

More information

Topic & Scope. Content: The course gives

Topic & Scope. Content: The course gives Topic & Scope Content: The course gives an overview of network processor cards (architectures and use) an introduction of how to program Intel IXP network processors some ideas of how to use network processors

More information

The Nios II Family of Configurable Soft-core Processors

The Nios II Family of Configurable Soft-core Processors The Nios II Family of Configurable Soft-core Processors James Ball August 16, 2005 2005 Altera Corporation Agenda Nios II Introduction Configuring your CPU FPGA vs. ASIC CPU Design Instruction Set Architecture

More information

This section covers the MIPS instruction set.

This section covers the MIPS instruction set. This section covers the MIPS instruction set. 1 + I am going to break down the instructions into two types. + a machine instruction which is directly defined in the MIPS architecture and has a one to one

More information

UNIT II PROCESSOR AND MEMORY ORGANIZATION

UNIT II PROCESSOR AND MEMORY ORGANIZATION UNIT II PROCESSOR AND MEMORY ORGANIZATION Structural units in a processor; selection of processor & memory devices; shared memory; DMA; interfacing processor, memory and I/O units; memory management Cache

More information

Department of Computer Science, Institute for System Architecture, Operating Systems Group. Real-Time Systems '08 / '09. Hardware.

Department of Computer Science, Institute for System Architecture, Operating Systems Group. Real-Time Systems '08 / '09. Hardware. Department of Computer Science, Institute for System Architecture, Operating Systems Group Real-Time Systems '08 / '09 Hardware Marcus Völp Outlook Hardware is Source of Unpredictability Caches Pipeline

More information

CS 152 Computer Architecture and Engineering. Lecture 7 - Memory Hierarchy-II

CS 152 Computer Architecture and Engineering. Lecture 7 - Memory Hierarchy-II CS 152 Computer Architecture and Engineering Lecture 7 - Memory Hierarchy-II Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~krste

More information

BASIC COMPUTER ORGANIZATION. Operating System Concepts 8 th Edition

BASIC COMPUTER ORGANIZATION. Operating System Concepts 8 th Edition BASIC COMPUTER ORGANIZATION Silberschatz, Galvin and Gagne 2009 Topics CPU Structure Registers Memory Hierarchy (L1/L2/L3/RAM) Machine Language Assembly Language Running Process 3.2 Silberschatz, Galvin

More information

Road Map. Road Map. Motivation (Cont.) Motivation. Intel IXA 2400 NP Architecture. Performance of Embedded System Application on Network Processor

Road Map. Road Map. Motivation (Cont.) Motivation. Intel IXA 2400 NP Architecture. Performance of Embedded System Application on Network Processor Performance of Embedded System Application on Network Processor 2006 Spring Directed Study Project Danhua Guo University of California, Riverside dguo@cs.ucr.edu 06-07 07-2006 Motivation NP Overview Programmability

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

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

Assembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam

Assembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam Assembly Language Lecture 2 - x86 Processor Architecture Ahmed Sallam Introduction to the course Outcomes of Lecture 1 Always check the course website Don t forget the deadline rule!! Motivations for studying

More information

Mark II Aiken Relay Calculator

Mark II Aiken Relay Calculator Introduction to Embedded Microcomputer Systems Lecture 6.1 Mark II Aiken Relay Calculator 2.12. Tutorial 2. Arithmetic and logical operations format descriptions examples h 8-bit unsigned hexadecimal $00

More information

(12) United States Patent (10) Patent No.: US 6,629,237 B2. Wolrich et al. (45) Date of Patent: Sep. 30, 2003

(12) United States Patent (10) Patent No.: US 6,629,237 B2. Wolrich et al. (45) Date of Patent: Sep. 30, 2003 USOO6629237B2 (12) United States Patent (10) Patent No.: Wolrich et al. (45) Date of Patent: Sep. 30, 2003 (54) SOLVING PARALLEL PROBLEMS (52) U.S. Cl.... 712/228; 712/1; 712/34; EMPLOYING HARDWARE MULTI-

More information

Final Exam. 11 May 2018, 120 minutes, 26 questions, 100 points

Final Exam. 11 May 2018, 120 minutes, 26 questions, 100 points Name: CS520 Final Exam 11 May 2018, 120 minutes, 26 questions, 100 points The exam is closed book and notes. Please keep all electronic devices turned off and out of reach. Note that a question may require

More information

Cache Memory COE 403. Computer Architecture Prof. Muhamed Mudawar. Computer Engineering Department King Fahd University of Petroleum and Minerals

Cache Memory COE 403. Computer Architecture Prof. Muhamed Mudawar. Computer Engineering Department King Fahd University of Petroleum and Minerals Cache Memory COE 403 Computer Architecture Prof. Muhamed Mudawar Computer Engineering Department King Fahd University of Petroleum and Minerals Presentation Outline The Need for Cache Memory The Basics

More information

CEC 450 Real-Time Systems

CEC 450 Real-Time Systems CEC 450 Real-Time Systems Lecture 6 Accounting for I/O Latency September 28, 2015 Sam Siewert A Service Release and Response C i WCET Input/Output Latency Interference Time Response Time = Time Actuation

More information

Computer Systems Architecture I. CSE 560M Lecture 3 Prof. Patrick Crowley

Computer Systems Architecture I. CSE 560M Lecture 3 Prof. Patrick Crowley Computer Systems Architecture I CSE 560M Lecture 3 Prof. Patrick Crowley Plan for Today Announcements Readings are extremely important! No class meeting next Monday Questions Commentaries A few remaining

More information

Multilevel Memories. Joel Emer Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology

Multilevel Memories. Joel Emer Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology 1 Multilevel Memories Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology Based on the material prepared by Krste Asanovic and Arvind CPU-Memory Bottleneck 6.823

More information

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info.

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info. A FPGA based development platform as part of an EDK is available to target intelop provided IPs or other standard IPs. The platform with Virtex-4 FX12 Evaluation Kit provides a complete hardware environment

More information

5 MEMORY. Figure 5-0. Table 5-0. Listing 5-0.

5 MEMORY. Figure 5-0. Table 5-0. Listing 5-0. 5 MEMORY Figure 5-0 Table 5-0 Listing 5-0 The processor s dual-ported SRAM provides 544K bits of on-chip storage for program instructions and data The processor s internal bus architecture provides a total

More information

INTEL Architectures GOPALAKRISHNAN IYER FALL 2009 ELEC : Computer Architecture and Design

INTEL Architectures GOPALAKRISHNAN IYER FALL 2009 ELEC : Computer Architecture and Design INTEL Architectures GOPALAKRISHNAN IYER FALL 2009 GBI0001@AUBURN.EDU ELEC 6200-001: Computer Architecture and Design Silicon Technology Moore s law Moore's Law describes a long-term trend in the history

More information

Assembly Language. Lecture 2 x86 Processor Architecture

Assembly Language. Lecture 2 x86 Processor Architecture Assembly Language Lecture 2 x86 Processor Architecture Ahmed Sallam Slides based on original lecture slides by Dr. Mahmoud Elgayyar Introduction to the course Outcomes of Lecture 1 Always check the course

More information

Latches. IT 3123 Hardware and Software Concepts. Registers. The Little Man has Registers. Data Registers. Program Counter

Latches. IT 3123 Hardware and Software Concepts. Registers. The Little Man has Registers. Data Registers. Program Counter IT 3123 Hardware and Software Concepts Notice: This session is being recorded. CPU and Memory June 11 Copyright 2005 by Bob Brown Latches Can store one bit of data Can be ganged together to store more

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

1. PowerPC 970MP Overview

1. PowerPC 970MP Overview 1. The IBM PowerPC 970MP reduced instruction set computer (RISC) microprocessor is an implementation of the PowerPC Architecture. This chapter provides an overview of the features of the 970MP microprocessor

More information

Keystone Architecture Inter-core Data Exchange

Keystone Architecture Inter-core Data Exchange Application Report Lit. Number November 2011 Keystone Architecture Inter-core Data Exchange Brighton Feng Vincent Han Communication Infrastructure ABSTRACT This application note introduces various methods

More information

CS/EE National Semiconductor CR16 Compact RISC Processor Baseline ISA and Beyond. CR16 Architecture

CS/EE National Semiconductor CR16 Compact RISC Processor Baseline ISA and Beyond. CR16 Architecture CS/EE 3710 National Semiconductor CR16 Compact RISC Processor Baseline ISA and Beyond CR16 Architecture Part of a microcontroller family from National Semiconductor 16-bit embedded RISC processor core

More information

Computer Systems Architecture I. CSE 560M Lecture 19 Prof. Patrick Crowley

Computer Systems Architecture I. CSE 560M Lecture 19 Prof. Patrick Crowley Computer Systems Architecture I CSE 560M Lecture 19 Prof. Patrick Crowley Plan for Today Announcement No lecture next Wednesday (Thanksgiving holiday) Take Home Final Exam Available Dec 7 Due via email

More information

Contents. Memory System Overview Cache Memory. Internal Memory. Virtual Memory. Memory Hierarchy. Registers In CPU Internal or Main memory

Contents. Memory System Overview Cache Memory. Internal Memory. Virtual Memory. Memory Hierarchy. Registers In CPU Internal or Main memory Memory Hierarchy Contents Memory System Overview Cache Memory Internal Memory External Memory Virtual Memory Memory Hierarchy Registers In CPU Internal or Main memory Cache RAM External memory Backing

More information

Moodle WILLINGDON COLLEGE SANGLI (B. SC.-II) Digital Electronics

Moodle WILLINGDON COLLEGE SANGLI (B. SC.-II) Digital Electronics Moodle 4 WILLINGDON COLLEGE SANGLI (B. SC.-II) Digital Electronics Advanced Microprocessors and Introduction to Microcontroller Moodle developed By Dr. S. R. Kumbhar Department of Electronics Willingdon

More information

CS399 New Beginnings. Jonathan Walpole

CS399 New Beginnings. Jonathan Walpole CS399 New Beginnings Jonathan Walpole Memory Management Memory Management Memory a linear array of bytes - Holds O.S. and programs (processes) - Each cell (byte) is named by a unique memory address Recall,

More information

MONTEREY, CALIFORNIA THESIS NETWORK PROCESSORS AND UTILIZING THEIR FEATURES IN A MULTICAST DESIGN. Timur DILER. March Thesis Co-Advisor:

MONTEREY, CALIFORNIA THESIS NETWORK PROCESSORS AND UTILIZING THEIR FEATURES IN A MULTICAST DESIGN. Timur DILER. March Thesis Co-Advisor: MONTEREY, CALIFORNIA THESIS NETWORK PROCESSORS AND UTILIZING THEIR FEATURES IN A MULTICAST DESIGN by Timur DILER March 2004 Thesis Advisor: Thesis Co-Advisor: Su WEN Jon BUTLER Approved for public release;

More information

Universität Dortmund. ARM Architecture

Universität Dortmund. ARM Architecture ARM Architecture The RISC Philosophy Original RISC design (e.g. MIPS) aims for high performance through o reduced number of instruction classes o large general-purpose register set o load-store architecture

More information

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY CHAPTER 5 : Introduction to Intel 8085 Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY The 8085A(commonly known as the 8085) : Was first introduced in March 1976 is an 8-bit microprocessor with 16-bit address

More information

ECE 571 Advanced Microprocessor-Based Design Lecture 3

ECE 571 Advanced Microprocessor-Based Design Lecture 3 ECE 571 Advanced Microprocessor-Based Design Lecture 3 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 30 January 2018 Homework #1 was posted Announcements 1 Microprocessors Also

More information

Product Technical Brief S3C2413 Rev 2.2, Apr. 2006

Product Technical Brief S3C2413 Rev 2.2, Apr. 2006 Product Technical Brief Rev 2.2, Apr. 2006 Overview SAMSUNG's is a Derivative product of S3C2410A. is designed to provide hand-held devices and general applications with cost-effective, low-power, and

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

Description of the Simulator

Description of the Simulator Description of the Simulator The simulator includes a small sub-set of the full instruction set normally found with this style of processor. It includes advanced instructions such as CALL, RET, INT and

More information

ARM Cortex-M4 Programming Model

ARM Cortex-M4 Programming Model ARM Cortex-M4 Programming Model ARM = Advanced RISC Machines, Ltd. ARM licenses IP to other companies (ARM does not fabricate chips) 2005: ARM had 75% of embedded RISC market, with 2.5 billion processors

More information

Main Points of the Computer Organization and System Software Module

Main Points of the Computer Organization and System Software Module Main Points of the Computer Organization and System Software Module You can find below the topics we have covered during the COSS module. Reading the relevant parts of the textbooks is essential for a

More information

CPE 323 MSP430 INSTRUCTION SET ARCHITECTURE (ISA)

CPE 323 MSP430 INSTRUCTION SET ARCHITECTURE (ISA) CPE 323 MSP430 INSTRUCTION SET ARCHITECTURE (ISA) Aleksandar Milenković Email: milenka@uah.edu Web: http://www.ece.uah.edu/~milenka Objective Introduce MSP430 Instruction Set Architecture (Class of ISA,

More information

Network Processors. Douglas Comer. Computer Science Department Purdue University 250 N. University Street West Lafayette, IN

Network Processors. Douglas Comer. Computer Science Department Purdue University 250 N. University Street West Lafayette, IN Network Processors Douglas Comer Computer Science Department Purdue University 250 N. University Street West Lafayette, IN 47907-2066 http://www.cs.purdue.edu/people/comer Copyright 2003. All rights reserved.

More information

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture 1 Last class: Course administration OS definition, some history Today: Background on Computer Architecture 2 Canonical System Hardware CPU: Processor to perform computations Memory: Programs and data I/O

More information

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006 Product Technical Brief S3C2412 Rev 2.2, Apr. 2006 Overview SAMSUNG's S3C2412 is a Derivative product of S3C2410A. S3C2412 is designed to provide hand-held devices and general applications with cost-effective,

More information

Lecture 16: Cache in Context (Uniprocessor) James C. Hoe Department of ECE Carnegie Mellon University

Lecture 16: Cache in Context (Uniprocessor) James C. Hoe Department of ECE Carnegie Mellon University 18 447 Lecture 16: Cache in Context (Uniprocessor) James C. Hoe Department of ECE Carnegie Mellon University 18 447 S18 L16 S1, James C. Hoe, CMU/ECE/CALCM, 2018 Your goal today Housekeeping understand

More information

Computer and Digital System Architecture

Computer and Digital System Architecture Computer and Digital System Architecture EE/CpE-517-A Bruce McNair bmcnair@stevensedu Stevens Institute of Technology - All rights reserved 1-1/68 Week 9 Hierarchical organization of system memory Furber

More information

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

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 13 Virtual memory and memory management unit In the last class, we had discussed

More information

Cache memories are small, fast SRAM-based memories managed automatically in hardware. Hold frequently accessed blocks of main memory

Cache memories are small, fast SRAM-based memories managed automatically in hardware. Hold frequently accessed blocks of main memory Cache Memories Cache memories are small, fast SRAM-based memories managed automatically in hardware. Hold frequently accessed blocks of main memory CPU looks first for data in caches (e.g., L1, L2, and

More information

virtual memory Page 1 CSE 361S Disk Disk

virtual memory Page 1 CSE 361S Disk Disk CSE 36S Motivations for Use DRAM a for the Address space of a process can exceed physical memory size Sum of address spaces of multiple processes can exceed physical memory Simplify Management 2 Multiple

More information

I/O Buffering and Streaming

I/O Buffering and Streaming I/O Buffering and Streaming I/O Buffering and Caching I/O accesses are reads or writes (e.g., to files) Application access is arbitary (offset, len) Convert accesses to read/write of fixed-size blocks

More information

Section 6 Blackfin ADSP-BF533 Memory

Section 6 Blackfin ADSP-BF533 Memory Section 6 Blackfin ADSP-BF533 Memory 6-1 a ADSP-BF533 Block Diagram Core Timer 64 L1 Instruction Memory Performance Monitor JTAG/ Debug Core Processor LD0 32 LD1 32 L1 Data Memory SD32 DMA Mastered 32

More information

ELC4438: Embedded System Design ARM Cortex-M Architecture II

ELC4438: Embedded System Design ARM Cortex-M Architecture II ELC4438: Embedded System Design ARM Cortex-M Architecture II Liang Dong Electrical and Computer Engineering Baylor University Memory system The memory systems in microcontrollers often contain two or more

More information

Memory hierarchy and cache

Memory hierarchy and cache Memory hierarchy and cache QUIZ EASY 1). What is used to design Cache? a). SRAM b). DRAM c). Blend of both d). None. 2). What is the Hierarchy of memory? a). Processor, Registers, Cache, Tape, Main memory,

More information

PCI to SH-3 AN Hitachi SH3 to PCI bus

PCI to SH-3 AN Hitachi SH3 to PCI bus PCI to SH-3 AN Hitachi SH3 to PCI bus Version 1.0 Application Note FEATURES GENERAL DESCRIPTION Complete Application Note for designing a PCI adapter or embedded system based on the Hitachi SH-3 including:

More information

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Introduction All processors offer some form of instructions to add, subtract, and manipulate data.

More information

Design Overview of the FreeBSD Kernel CIS 657

Design Overview of the FreeBSD Kernel CIS 657 Design Overview of the FreeBSD Kernel CIS 657 Organization of the Kernel Machine-independent 86% of the kernel (80% in 4.4BSD) C code Machine-dependent 14% of kernel Only 0.6% of kernel in assembler (2%

More information

Design Overview of the FreeBSD Kernel. Organization of the Kernel. What Code is Machine Independent?

Design Overview of the FreeBSD Kernel. Organization of the Kernel. What Code is Machine Independent? Design Overview of the FreeBSD Kernel CIS 657 Organization of the Kernel Machine-independent 86% of the kernel (80% in 4.4BSD) C C code Machine-dependent 14% of kernel Only 0.6% of kernel in assembler

More information

Assembly Language for Intel-Based Computers, 4 th Edition. Kip R. Irvine. Chapter 2: IA-32 Processor Architecture

Assembly Language for Intel-Based Computers, 4 th Edition. Kip R. Irvine. Chapter 2: IA-32 Processor Architecture Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 2: IA-32 Processor Architecture Chapter Overview General Concepts IA-32 Processor Architecture IA-32 Memory Management Components

More information

The Instruction Set. Chapter 5

The Instruction Set. Chapter 5 The Instruction Set Architecture Level(ISA) Chapter 5 1 ISA Level The ISA level l is the interface between the compilers and the hardware. (ISA level code is what a compiler outputs) 2 Memory Models An

More information

Motivations for Virtual Memory Virtual Memory Oct. 29, Why VM Works? Motivation #1: DRAM a Cache for Disk

Motivations for Virtual Memory Virtual Memory Oct. 29, Why VM Works? Motivation #1: DRAM a Cache for Disk class8.ppt 5-23 The course that gives CMU its Zip! Virtual Oct. 29, 22 Topics Motivations for VM Address translation Accelerating translation with TLBs Motivations for Virtual Use Physical DRAM as a Cache

More information

Virtual File System -Uniform interface for the OS to see different file systems.

Virtual File System -Uniform interface for the OS to see different file systems. Virtual File System -Uniform interface for the OS to see different file systems. Temporary File Systems -Disks built in volatile storage NFS -file system addressed over network File Allocation -Contiguous

More information

Page 1. Multilevel Memories (Improving performance using a little cash )

Page 1. Multilevel Memories (Improving performance using a little cash ) Page 1 Multilevel Memories (Improving performance using a little cash ) 1 Page 2 CPU-Memory Bottleneck CPU Memory Performance of high-speed computers is usually limited by memory bandwidth & latency Latency

More information

CHAPTER ASSEMBLY LANGUAGE PROGRAMMING

CHAPTER ASSEMBLY LANGUAGE PROGRAMMING CHAPTER 2 8051 ASSEMBLY LANGUAGE PROGRAMMING Registers Register are used to store information temporarily: A byte of data to be processed An address pointing to the data to be fetched The vast majority

More information

WEEK 7. Chapter 4. Cache Memory Pearson Education, Inc., Hoboken, NJ. All rights reserved.

WEEK 7. Chapter 4. Cache Memory Pearson Education, Inc., Hoboken, NJ. All rights reserved. WEEK 7 + Chapter 4 Cache Memory Location Internal (e.g. processor registers, cache, main memory) External (e.g. optical disks, magnetic disks, tapes) Capacity Number of words Number of bytes Unit of Transfer

More information

L2 - C language for Embedded MCUs

L2 - C language for Embedded MCUs Formation C language for Embedded MCUs: Learning how to program a Microcontroller (especially the Cortex-M based ones) - Programmation: Langages L2 - C language for Embedded MCUs Learning how to program

More information

William Stallings Computer Organization and Architecture 8th Edition. Cache Memory

William Stallings Computer Organization and Architecture 8th Edition. Cache Memory William Stallings Computer Organization and Architecture 8th Edition Chapter 4 Cache Memory Characteristics Location Capacity Unit of transfer Access method Performance Physical type Physical characteristics

More information

Modern Virtual Memory Systems. Modern Virtual Memory Systems

Modern Virtual Memory Systems. Modern Virtual Memory Systems 6.823, L12--1 Modern Virtual Systems Asanovic Laboratory for Computer Science M.I.T. http://www.csg.lcs.mit.edu/6.823 6.823, L12--2 Modern Virtual Systems illusion of a large, private, uniform store Protection

More information

Virtual Memory Oct. 29, 2002

Virtual Memory Oct. 29, 2002 5-23 The course that gives CMU its Zip! Virtual Memory Oct. 29, 22 Topics Motivations for VM Address translation Accelerating translation with TLBs class9.ppt Motivations for Virtual Memory Use Physical

More information

The Alpha Microprocessor: Out-of-Order Execution at 600 Mhz. R. E. Kessler COMPAQ Computer Corporation Shrewsbury, MA

The Alpha Microprocessor: Out-of-Order Execution at 600 Mhz. R. E. Kessler COMPAQ Computer Corporation Shrewsbury, MA The Alpha 21264 Microprocessor: Out-of-Order ution at 600 Mhz R. E. Kessler COMPAQ Computer Corporation Shrewsbury, MA 1 Some Highlights z Continued Alpha performance leadership y 600 Mhz operation in

More information

CS Computer Architecture

CS Computer Architecture CS 35101 Computer Architecture Section 600 Dr. Angela Guercio Fall 2010 An Example Implementation In principle, we could describe the control store in binary, 36 bits per word. We will use a simple symbolic

More information

Mark Redekopp, All rights reserved. EE 352 Unit 10. Memory System Overview SRAM vs. DRAM DMA & Endian-ness

Mark Redekopp, All rights reserved. EE 352 Unit 10. Memory System Overview SRAM vs. DRAM DMA & Endian-ness EE 352 Unit 10 Memory System Overview SRAM vs. DRAM DMA & Endian-ness The Memory Wall Problem: The Memory Wall Processor speeds have been increasing much faster than memory access speeds (Memory technology

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

6x86 PROCESSOR Superscalar, Superpipelined, Sixth-generation, x86 Compatible CPU

6x86 PROCESSOR Superscalar, Superpipelined, Sixth-generation, x86 Compatible CPU 1-6x86 PROCESSOR Superscalar, Superpipelined, Sixth-generation, x86 Compatible CPU Product Overview Introduction 1. ARCHITECTURE OVERVIEW The Cyrix 6x86 CPU is a leader in the sixth generation of high

More information

Migrating RC3233x Software to the RC32434/5 Device

Migrating RC3233x Software to the RC32434/5 Device Migrating RC3233x Software to the RC32434/5 Device Application Note AN-445 Introduction By Harpinder Singh and Nebojsa Bjegovic Operating system kernels, board support packages, and other processor-aware

More information

ROB IN Performance Measurements

ROB IN Performance Measurements ROB IN Performance Measurements I. Mandjavidze CEA Saclay, 91191 Gif-sur-Yvette CEDEX, France ROB Complex Hardware Organisation Mode of Operation ROB Complex Software Organisation Performance Measurements

More information

1/5/2012. Overview of Interconnects. Presentation Outline. Myrinet and Quadrics. Interconnects. Switch-Based Interconnects

1/5/2012. Overview of Interconnects. Presentation Outline. Myrinet and Quadrics. Interconnects. Switch-Based Interconnects Overview of Interconnects Myrinet and Quadrics Leading Modern Interconnects Presentation Outline General Concepts of Interconnects Myrinet Latest Products Quadrics Latest Release Our Research Interconnects

More information

Do-While Example. In C++ In assembly language. do { z--; while (a == b); z = b; loop: addi $s2, $s2, -1 beq $s0, $s1, loop or $s2, $s1, $zero

Do-While Example. In C++ In assembly language. do { z--; while (a == b); z = b; loop: addi $s2, $s2, -1 beq $s0, $s1, loop or $s2, $s1, $zero Do-While Example In C++ do { z--; while (a == b); z = b; In assembly language loop: addi $s2, $s2, -1 beq $s0, $s1, loop or $s2, $s1, $zero 25 Comparisons Set on less than (slt) compares its source registers

More information

PROGRAM CONTROL UNIT (PCU)

PROGRAM CONTROL UNIT (PCU) nc. SECTION 5 PROGRAM CONTROL UNIT (PCU) MOTOROLA PROGRAM CONTROL UNIT (PCU) 5-1 nc. SECTION CONTENTS 5.1 INTRODUCTION........................................ 5-3 5.2 PROGRAM COUNTER (PC)...............................

More information

EE414 Embedded Systems Ch 5. Memory Part 2/2

EE414 Embedded Systems Ch 5. Memory Part 2/2 EE414 Embedded Systems Ch 5. Memory Part 2/2 Byung Kook Kim School of Electrical Engineering Korea Advanced Institute of Science and Technology Overview 6.1 introduction 6.2 Memory Write Ability and Storage

More information

William Stallings Computer Organization and Architecture 10 th Edition Pearson Education, Inc., Hoboken, NJ. All rights reserved.

William Stallings Computer Organization and Architecture 10 th Edition Pearson Education, Inc., Hoboken, NJ. All rights reserved. + William Stallings Computer Organization and Architecture 10 th Edition 2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved. 2 + Chapter 4 Cache Memory 3 Location Internal (e.g. processor registers,

More information

CEC 450 Real-Time Systems

CEC 450 Real-Time Systems CEC 450 Real-Time Systems Lecture 10 Device Interface Drivers and MMIO October 29, 2015 Sam Siewert MMIO Interfacing to Off-Chip Devices Sam Siewert 2 Embedded I/O (HW View) Analog I/O DAC analog output:

More information

Reducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip

Reducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip Reducing Hit Times Critical Influence on cycle-time or CPI Keep L1 small and simple small is always faster and can be put on chip interesting compromise is to keep the tags on chip and the block data off

More information

Internal architecture of 8086

Internal architecture of 8086 Case Study: Intel Processors Internal architecture of 8086 Slide 1 Case Study: Intel Processors FEATURES OF 8086 It is a 16-bit μp. 8086 has a 20 bit address bus can access up to 220 memory locations (1

More information

Input/Output Programming

Input/Output Programming Input/Output Programming Chapter 3: Section 3.1, 3.2 Input and output (I/O) programming Communicating with I/O devices Busy-wait I/O Interrupt-driven I/O I/O devices Devices may include digital and non-digital

More information

IA-32 Architecture COE 205. Computer Organization and Assembly Language. Computer Engineering Department

IA-32 Architecture COE 205. Computer Organization and Assembly Language. Computer Engineering Department IA-32 Architecture COE 205 Computer Organization and Assembly Language Computer Engineering Department King Fahd University of Petroleum and Minerals Presentation Outline Basic Computer Organization Intel

More information

08 - Address Generator Unit (AGU)

08 - Address Generator Unit (AGU) October 2, 2014 Todays lecture Memory subsystem Address Generator Unit (AGU) Schedule change A new lecture has been entered into the schedule (to compensate for the lost lecture last week) Memory subsystem

More information

Emulation 2. G. Lettieri. 15 Oct. 2014

Emulation 2. G. Lettieri. 15 Oct. 2014 Emulation 2 G. Lettieri 15 Oct. 2014 1 I/O examples In an emulator, we implement each I/O device as an object, or a set of objects. The real device in the target system is connected to the CPU via an interface

More information

Review: Hardware user/kernel boundary

Review: Hardware user/kernel boundary Review: Hardware user/kernel boundary applic. applic. applic. user lib lib lib kernel syscall pg fault syscall FS VM sockets disk disk NIC context switch TCP retransmits,... device interrupts Processor

More information

Digital Semiconductor Alpha Microprocessor Product Brief

Digital Semiconductor Alpha Microprocessor Product Brief Digital Semiconductor Alpha 21164 Microprocessor Product Brief March 1995 Description The Alpha 21164 microprocessor is a high-performance implementation of Digital s Alpha architecture designed for application

More information

STM32 MICROCONTROLLER

STM32 MICROCONTROLLER STM32 MICROCONTROLLER Lecture 2 Prof. Yasser Mostafa Kadah Harvard and von Neumann Architectures Harvard Architecture a type of computer architecture where the instructions (program code) and data are

More information

Complex Instruction Sets

Complex Instruction Sets Complex Instruction Sets CSE 410, Spring 2004 Computer Systems http://www.cs.washington.edu/education/courses/410/04sp/ 5-May-2004 cse410-16-cisc 2004 University of Washington 1 Reading Readings and References»

More information

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC Multi-core microcontroller design with Cortex-M processors and CoreSight SoC Joseph Yiu, ARM Ian Johnson, ARM January 2013 Abstract: While the majority of Cortex -M processor-based microcontrollers are

More information

Operating Systems Design Exam 2 Review: Fall 2010

Operating Systems Design Exam 2 Review: Fall 2010 Operating Systems Design Exam 2 Review: Fall 2010 Paul Krzyzanowski pxk@cs.rutgers.edu 1 1. Why could adding more memory to a computer make it run faster? If processes don t have their working sets in

More information

The Alpha Microprocessor: Out-of-Order Execution at 600 MHz. Some Highlights

The Alpha Microprocessor: Out-of-Order Execution at 600 MHz. Some Highlights The Alpha 21264 Microprocessor: Out-of-Order ution at 600 MHz R. E. Kessler Compaq Computer Corporation Shrewsbury, MA 1 Some Highlights Continued Alpha performance leadership 600 MHz operation in 0.35u

More information

Chapter 5 - Input / Output

Chapter 5 - Input / Output Chapter 5 - Input / Output Luis Tarrataca luis.tarrataca@gmail.com CEFET-RJ L. Tarrataca Chapter 5 - Input / Output 1 / 90 1 Motivation 2 Principle of I/O Hardware I/O Devices Device Controllers Memory-Mapped

More information