Overheads for Computers as Components 2nd ed.

Slides:



Advertisements
Similar presentations
CPU Structure and Function
Advertisements

Lecture 6 Programming the TMS320C6x Family of DSPs.
May 12 th, 2002 Microprocessors. Introduction Motorola controls roughly 40% of the 32-bit embedded processor market ColdFire is the next generation 68K.
9/20/6Lecture 3 - Instruction Set - Al Instruction Set.
Computer Organization and Architecture
LC-3 Computer LC-3 Instructions
1 Hardware and Software Architecture Chapter 2 n The Intel Processor Architecture n History of PC Memory Usage (Real Mode)
Execution of an instruction
Memory - Registers Instruction Sets
Chapter 5 The LC-3 LC-3 Computer Architecture Memory Map
Computer System Overview
Chapters 5 - The LC-3 LC-3 Computer Architecture Memory Map
© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. TI C55x instruction set C55x programming model. C55x assembly language. C55x memory organization.
Unit -II CPU Organization By- Mr. S. S. Hire. CPU organization.
Chapters 4 & 5: LC-3 Computer Architecture Machine Instructions Assembly language Programming in Machine and Assembly Language.
Unit-1 PREPARED BY: PROF. HARISH I RATHOD COMPUTER ENGINEERING DEPARTMENT GUJARAT POWER ENGINEERING & RESEARCH INSTITUTE Advance Processor.
ARM Core Architecture. Common ARM Cortex Core In the case of ARM-based microcontrollers a company named ARM Holdings designs the core and licenses it.
1 Computer System Overview Chapter 1 Review of basic hardware concepts.
VAX-11/780 – A Virtual Address Extension to the DEC PDP-11 Family ( Author : W.D.Strecker ) By Padmaja chowti.
Programmer's view on Computer Architecture by Istvan Haller.
Chapter 5 The LC Instruction Set Architecture ISA = All of the programmer-visible components and operations of the computer memory organization.
Execution of an instruction
Lecture 14 Today’s topics MARIE Architecture Registers Buses
Overview of Super-Harvard Architecture (SHARC) Daniel GlickDaniel Glick – May 15, 2002 for V (Dewar)
Addressing Modes MTT CPU08 Core Motorola CPU08 ADDRESSING MODES.
DIGITAL SIGNAL PROCESSORS. Von Neumann Architecture Computers to be programmed by codes residing in memory. Single Memory to store data and program.
Topics covered: Instruction Set Architecture CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Assembly Language Programming of 8085 BY Prof. U. V. THETE Dept. of Computer Science YMA.
ECE 447 Fall 2009 Lecture 4: TI MSP430 Architecture and Instruction Set.
MICROPROCESSOR DETAILS 1 Updated April 2011 ©Paul R. Godin prgodin gmail.com.
Computer Organization Instructions Language of The Computer (MIPS) 2.
CPE 323 Introduction to Embedded Computer Systems: The MSP430X Architecture Instructor: Dr Aleksandar Milenkovic.
7-Nov Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Oct lecture23-24-hll-interrupts 1 High Level Language vs. Assembly.
F453 Module 8: Low Level Languages 8.1: Use of Computer Architecture.
Chapter 12 Processor Structure and Function. Central Processing Unit CPU architecture, Register organization, Instruction formats and addressing modes(Intel.
Gunjeet Kaur Dronacharya Group of institutions
Assembly Language Programming of 8085
Lecture Set 5 The 8051 Instruction Set.
Introduction of microprocessor
Microcomputer Programming
William Stallings Computer Organization and Architecture 8th Edition
Overview Introduction General Register Organization Stack Organization
Computer Organization and Design
Introduction to Micro Controllers & Embedded System Design Stored Program Machine Department of Electrical & Computer Engineering Missouri University.
Processor Organization and Architecture
Subject Name: Digital Signal Processing Algorithms & Architecture
Introduction to Assembly Language
SCHOOL OF ELECTRONICS ENGINEERING Electronics and Communication
DSP56800E System Architecture
BIC 10503: COMPUTER ARCHITECTURE
The TMS320C6x Family of DSPs
CS170 Computer Organization and Architecture I
Computer System Overview
Morgan Kaufmann Publishers Computer Organization and Assembly Language
CS 301 Fall 2002 Computer Organization
Chapter 8 Central Processing Unit
BIC 10503: COMPUTER ARCHITECTURE
Introduction to Micro Controllers & Embedded System Design
Overheads for Computers as Components 2nd ed.
Computer System Overview
Overheads for Computers as Components 2nd ed.
8051 ASSEMBLY LANGUAGE PROGRAMMING
Computer System Overview
Introduction to 5685x Series
Overheads for Computers as Components 2nd ed.
Intel 8086.
Chapter 11 Processor Structure and function
Copyright © 2013 Elsevier Inc. All rights reserved.
Presentation transcript:

Overheads for Computers as Components 2nd ed. TI C55x instruction set C55x programming model. C55x assembly language. C55x memory organization. C55x data operations. C55x flow of control. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. TI C55x overview Accumulator architecture: acc = operand op acc. Very useful in loops for DSP. C55x assembly language: MPY *AR0, *CDP+, AC0 Label: MOV #1, T0 C55x algebraic assembly language: AC1 = AR0 * coef(*CDP) © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. Intrinsic functions Compiler support for assembly language. Intrinsic function maps directly onto an instruction. Example: int_sadd(arg1,arg2) Performs saturation arithmetic addition. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x data types Data types: Word: 16 bits. Longword: 32 bits. Instructions are byte-addressable. Some instructions operate on register bits. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x registers Terminology: Register: any type of register. Accumulator: acc = operand op ac. Most registers are memory-mapped. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

C55x program counter and control flow registers PC is program counter. XPC is program counter extension. RETA is subroutine return address. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

C55x accumulators and status registers Four 40-bit accumulators: AC0, AC1, AC2, and AC3. Low-order bits 0-15 are AC0L, etc. High-order bits 16-31 are AC0H, etc. Guard bits 32-39 are AC0G, etc. ST0, ST1, PMST, ST0_55, ST1_55, ST2_55, ST3_55 provide arithmetic/bit manipulation flags, etc. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x stack pointers SP keeps track of user stack. SSP holds system stack pointer. SPH is extended data page pointer for both SP and SSP. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

C55x auxiliary registers and circular buffer pointers AR0-AR7 are auxiliary instructions. CDP points to coefficients for polynomial evaluation instructions. CDPH is main data page pointer. BK47 is used for circular buffer operations along with AR4-7. BK03 addresses circular buffers. BKC is size register for CDP. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

C55x block repeat registers BRC0 counts block repeat instructions. RSA0L and REA0L keep track of start and end points of blocks. BRC1 and BRS1 are used to repeat blocks of instructions. RSA0 and RSA1 are the start address registers for block repeats. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

C55x addressing mode and interrupt registers DP and DPH set base address for data access. PDP determines base address for I/O. IER0 and IER1 are interrupt mask registers. IFR0 and IFR1 keep track of currently pending registers. DBIER0 and DBIER1 are for debugging. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

C55x memory map 24-bit address space, 16 MB of memory. Data, program, I/O all mapped to same physical memory. Addressability: Program space address is 24 bits. Data space is 23 bits. I/O address is 16 bits. memory mapped registers main data page 0 main data page 1 main data page 2 … main data page 127 © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x addressing modes Three addressing modes: Absolute addressing supplies an address in an instruction. Direct addressing supplies an offset. Indirect addressing uses a register as a pointer. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x direct addressing DP addressing accesses data pages: ADP = DPH[22:15](DP+Doffset) SP addressing accesses stack values: ASP = SPH[22:15](SP+Soffset) Register-bit direcdt addressing accesses bits in registers. PDP addressing accesses data pages: APDP = PDP[15:6]PDPoffset © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

C55x indirect addressing AR indirect addressing uses auxiliary register to point to data. Dual AR indirect addressing allows two simultaneous accesses. CDP indirect addressing uses CDP to access coefficients. Coefficient indirect addressing is similar to CDP indirect but for instructions with 3 memory operands per cycle. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x stack operations Two stacks: data and system. Three different stack configurations: Dual 16-bit stack with fast return has independent data and system stacks. Dual 16-bit stack with slow return, independent data and system stacks but RETA and CFCT are not used for slow returns. 32-bit stack with slow return, SP and SSP are both modified by the same amount. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x data operations MOV moves data between registers and memory: MOV src, dst Varieties of ADDs: ADD src,dst ADD dual(LMEM),ACx,ACy Multiplication: MPY src,dst MAC AC,TX,ACy © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x flow of control Unconditional branch: B ACx B label Conditional branch: BCC label, cond Loops: Single-instruction repeat Block repeat © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. Efficient loops General rules: Don’t use function calls. Keep loop body small to enable local repeat (only forward branches). Use unsigned integer for loop counter. Use <= to test loop counter. Make use of compiler---global optimization, software pipelining. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Single-instruction repeat loop example STM #4000h,AR2 ; load pointer to source STM #100h,AR3 ; load pointer to destination RPT #(1024-1) MVDD *AR2+,*AR3+ ; move © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x subroutines Unconditional subroutine call: CALL target Conditional subroutine call: CALLCC adrs,cond Two types of return: Fast return gives return address and loop context in registers. Slow return puts return address/loop on stack. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.

Overheads for Computers as Components 2nd ed. C55x interrupts Handled using subroutine mechanism. Four step handling process: Receive interrupt. Acknowledge interrupt. Prepare for ISR by finishing current instruction, retrieving interrupt vector. Processing the interrupt service routine. 32 possible interrupt vectors, 27 priorities. © 2008 Wayne Wolf Overheads for Computers as Components 2nd ed.