`Software Compatibility
`
`User’s Guide
`
`1995
`
`Digital Signal Processing Products
`
`Apple Inc. v. Parthenon
`Ex. 1019 / Page 1 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 1
`
`
`
`Printed in U.S.A., November, 1995
`M418017-9741 revision *
`
`SPRU154
`
`Ex. 1019 / Page 2 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 2
`
`
`
`TMS320C80 to TMS320C82
`Software Compatibility
`User’s Guide
`
`SPRU154
`November 1995
`
`Printed on Recycled Paper
`
`Ex. 1019 / Page 3 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 3
`
`
`
`IMPORTANT NOTICE
`
`Texas Instruments (TI) reserves the right to make changes to its products or to discontinue any
`semiconductor product or service without notice, and advises its customers to obtain the latest
`version of relevant information to verify, before placing orders, that the information being relied
`on is current.
`
`TI warrants performance of its semiconductor products and related software to the specifications
`applicable at the time of sale in accordance with TI’s standard warranty. Testing and other quality
`control techniques are utilized to the extent TI deems necessary to support this warranty.
`Specific testing of all parameters of each device is not necessarily performed, except those
`mandated by government requirements.
`
`Certain applications using semiconductor products may involve potential risks of death,
`personal injury, or severe property or environmental damage (“Critical Applications”).
`
`TI SEMICONDUCTOR PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED, OR
`WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT APPLICATIONS, DEVICES
`OR SYSTEMS OR OTHER CRITICAL APPLICATIONS.
`
`Inclusion of TI products in such applications is understood to be fully at the risk of the customer.
`Use of TI products in such applications requires the written approval of an appropriate TI officer.
`Questions concerning potential risk applications should be directed to TI through a local SC
`sales office.
`
`In order to minimize risks associated with the customer’s applications, adequate design and
`operating safeguards should be provided by the customer to minimize inherent or procedural
`hazards.
`
`TI assumes no liability for applications assistance, customer product design, software
`performance, or infringement of patents or services described herein. Nor does TI warrant or
`represent that any license, either express or implied, is granted under any patent right, copyright,
`mask work right, or other intellectual property right of TI covering or relating to any combination,
`machine, or process in which such semiconductor products or services might be or are used.
`
`Copyright 1995, Texas Instruments Incorporated
`
`Ex. 1019 / Page 4 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 4
`
`
`
` How to Use This Manual
`
`Preface
`
`Read This First
`
`About This Manual
`
`The TMS320C80 and the TMS320C82 are the first two members
`of the ’C8x family of high-performance DSP devices. This guide
`explains how to port software developed for one of these devices
`to the other. It also presents a set of software compatibility guide-
`lines for developing software that will run on either device.
`
`How to Use This Manual
`
`This document contains three chapters that deal with different is-
`sues related to compatibility:
`
`- Chapter 1 discusses software-related differences between
`the ’C80 and the ’C82.
`
`- Chapter 2 discusses guidelines and techniques for develop-
`ing software that can run on both the ’C80 and the ’C82.
`
`- Chapter 3 discusses guidelines and techniques for prototyp-
`ing ’C82 software using a ’C80.
`
`If you need background information about the differences be-
`tween the ’C80 and the ’C82, read Chapter 1 before going on to
`Chapter 2 and Chapter 3.
`
`If you already understand the differences between the ’C80 and
`the ’C82, then you can go directly to Chapter 2 and use Chapter 1
`as reference material.
`
`This user’s guide contains information at a general level to guide
`you in completing programs. It does not discuss all issues related
`to the ’C80 and the ’C82; use your best judgement in applying the
`methods discussed in Chapter 2 and Chapter 3 to your applica-
`tion.
`
`Ex. 1019 / Page 5 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 5
`
`
`
`Related Documentation From Texas Instruments
`
`Related Documentation From Texas Instruments
`
`The following books describe the TMS320C8x and related support
`tools. To obtain a copy of any of these TI documents, call the Tex-
`as Instruments Literature Response Center at (800) 477–8924.
`When ordering, please identify the book by its title and literature
`number.
`
`TMS320C80 Multimedia Video Processor Data Sheet
`(literature number SPRS023) describes the features of the
`’C80 device and provides pinouts, electrical specifications,
`and timings for the device.
`
`TMS320C8x System-Level Synopsis
`(literature number
`SPRU113) describes the ’C8x features, development
`environment, architecture, memory organization, and
`communication network (the crossbar).
`
`TMS320C80 C Source Debugger User’s Guide (literature
`number SPRU107) describes the ’C8x master processor
`and parallel processor C source debuggers. This manual
`provides information about the features and operation of the
`debuggers and the parallel debug manager; it also includes
`basic information about C expressions and a description of
`progress and error messages.
`
`TMS320C80 Code Generation Tools User’s Guide (literature
`number SPRU108) describes the ’C8x code generation
`tools. This manual provides information about the features
`and operation of the linker, the master processor (MP) C
`compiler and assembler, and the parallel processor (PP) C
`compiler and assembler. It also describes the common
`object file format (COFF) and shows you how to link MP and
`PP code.
`
`TMS320C80 Master Processor User’s Guide (literature
`number SPRU109) describes the ’C8x master processor
`(MP). This manual provides information about the MP
`features, architecture, operation, and assembly language
`instruction set; it also includes sample applications that
`illustrate various MP operations.
`
`TMS320C80 Multitasking Executive User’s Guide (literature
`number SPRU112) describes the ’C8x multitasking execu-
`tive software. This manual provides information about the
`multitasking executive’s software features, operation, and
`interprocessor communications. It also includes a list of task
`error codes.
`
`iv
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 6 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 6
`
`
`
` Related Documentation From Texas Instruments / If You Need Assistance
`
`TMS320C80 Parallel Processor User’s Guide (literature num-
`ber SPRU110) describes the ’C8x parallel processor (PP).
`This manual provides information about the PP features, ar-
`chitecture, operation, and assembly language instruction
`set. It also includes software applications and optimizations.
`
`TMS320C80 Transfer Controller User’s Guide (literature num-
`ber SPRU105) describes the ’C80 transfer controller (TC).
`This manual provides information about the TC features,
`functional blocks, and operation. It also includes examples
`of block-write operations for big- and little-endian modes.
`
`TMS320C80 Video Controller User’s Guide (literature number
`SPRU111) describes the ’C80 video controller (VC). This
`manual provides information about the VC features, archi-
`tecture, and operation. It also includes procedures and ex-
`amples for programming the serial register transfer (SRT)
`controller and the frame timer registers.
`
`If You Need Assistance...
`
`If you want to. . .
`Request more information
`about Texas Instruments
`Digital Signal Processing
`(DSP) products
`
`Do this. . .
`Call the CRC† hotline:
`(800) 336–5236
`Or write to:
`Texas Instruments Incorporated
`Market Communications Manager, MS 736
`P.O. Box 1443
`Houston, Texas 77251–1443
`Call the CRC† hotline:
`(800) 336–5236
`Call the DSP hotline:
`(713) 274–2320
`
`Order Texas Instruments
`documentation
`Ask questions about product
`operation or report suspected
`problems
`Report mistakes in this
`document or any other TI
`documentation
`
`Fill out and return the reader response
`card at the end of this book, or send your
`comments to:
`Texas Instruments Incorporated
`Technical Publications Manager, MS 702
`P.O. Box 1443
`Houston, Texas 77251–1443
`†Texas Instruments Customer Response Center
`
` Read This First
`
`v
`
`Ex. 1019 / Page 7 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 7
`
`
`
`vi
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 8 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 8
`
`
`
` Contents
`
`Contents
`
`1-1
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1 Comparison of the ’C80 and ’C82
`Describes differences between the ’C80 and ’C82 that affect software compatibility.
`1.1
`Overview of ’C80 and ’C82 Features
`. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-2
`1.2
`Parallel Processor Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-3
`1.3
`Transfer Controller Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-4
`1.3.1 Number of Externally Initiated Packet Transfer Requests
`. . .
`1-4
`1.3.2 RAM Bank Configuration Mechanisms
`. . . . . . . . . . . . . . . . . . .
`1-4
`Video Controller Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1.4
`1-5
`1.5 Memory Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-6
`1.5.1 Data RAMs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-6
`1.5.2 Parameter RAMs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-8
`1.5.3 Caches
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-13
`
`2.3
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2 Programming for Compatibility
`Provides techniques for programming ’C80/’C82-compatible software.
`2.1
`Programming Considerations
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.2
`Obtaining Device-Specific Information
`. . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.2.1 Determining the Device that is Executing your Software (MP)
`.
`2.2.2 Determining the Device that is Executing your Software (PP)
`. .
`2.2.3
`Initializing a PP’s Stack Pointer
`. . . . . . . . . . . . . . . . . . . . . . . . . .
`2.2.4 Counting the Number of PPs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`Technique #1: Using Only Common RAM
`. . . . . . . . . . . . . . . . . . . . . . . .
`2.3.1 Advantages of Technique #1
`. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.3.2 Disadvantages of Technique #1
`. . . . . . . . . . . . . . . . . . . . . . . . .
`2.3.3
`Implementing Technique #1
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.3.4 Considerations When Using Technique #1
`. . . . . . . . . . . . . . . .
`Technique #2: Using Pointers to Allocate RAM
`. . . . . . . . . . . . . . . . . . .
`2.4.1 Advantages of Technique #2
`. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.4.2 Disadvantages of Technique #2
`. . . . . . . . . . . . . . . . . . . . . . . . .
`2.4.3
`Implementing Technique #2
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.4.4 Considerations When Using Technique #2
`. . . . . . . . . . . . . . . .
`
`2.4
`
`2-1
`
`2-2
`2-3
`2-3
`2-3
`2-4
`2-5
`2-6
`2-6
`2-6
`2-6
`2-7
`2-8
`2-8
`2-8
`2-8
`2-9
`
` Contents
`
`vii
`
`Ex. 1019 / Page 9 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 9
`
`
`
`Contents
`
`3-1
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3 Prototyping ’C82 Code on the ’C80
`Describes techniques for emulating the ’C82’s RAM with the ’C80’s RAM.
`3.1
`Overview
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-2
`3.2
`Emulating the ’C82’s Data RAMs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-3
`3.2.1 Emulating the ’C82’s PP0 Data RAM 0 and PP1 Data RAM 0
`.
`3-3
`3.2.2 Emulating the ’C82’s PP0 Data RAM 1 and PP1 Data RAM 1
`.
`3-3
`Emulating the ’C82’s Parameter RAMs
`. . . . . . . . . . . . . . . . . . . . . . . . . .
`3-4
`3.3.1 Emulating the PP Parameter RAMs
`. . . . . . . . . . . . . . . . . . . . . .
`3-4
`3.3.2 Emulating the MP Parameter RAM
`. . . . . . . . . . . . . . . . . . . . . .
`3-5
`Prototyping Code Using Linker Command Files
`. . . . . . . . . . . . . . . . . .
`3-6
`3.4.1 PP-Relative Addressing
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-6
`3.4.2 Map Files
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-7
`3.4.3
`Linking Your ’C82 Code for Prototyping on a ’C80
`. . . . . . . . .
`3-7
`3.4.4
`Linking your Code for a ’C82
`. . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-11
`3.4.5 MP Linker Command Files
`. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-14
`3.4.6 Considerations when Using Linker Command Files
`3-15
`. . . . . . .
`
`3.3
`
`3.4
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`A The ’C80 and ’C82 Memory Maps
`Provides ’C80 and ’C82 memory maps.
`
`A-1
`
`viii
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 10 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 10
`
`
`
` Contents
`
`Figures
`
`. . . . . . . . . . . . . . . . . . . . . .
`’C80 and ’C82 Data RAMs in the Memory Map
`1-7
`1–1
`’C80 and ’C82 Parameter RAMs in the Memory Map
`. . . . . . . . . . . . . . . . .
`1-9
`1–2
`’C80 and ’C82 MP Parameter RAM Block Diagram
`. . . . . . . . . . . . . . . . .
`1-10
`1–3
`’C80 and ’C82 PP Parameter RAM Block Diagram
`1-11
`. . . . . . . . . . . . . . . . . .
`1–4
`1–5 PP State Information on the Stack at Reset
`. . . . . . . . . . . . . . . . . . . . . . . .
`1-12
`2–1
`The Type Field in the MP config Register
`. . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-3
`2–2
`The PP’s comm Register
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-3
`2–3 Structure of a PP Command Buffer
`2-9
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`A–1 TMS320C80 Memory Map
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`A-2
`A–2 TMS320C82 Memory Map
`A-4
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
` Contents
`
`ix
`
`Ex. 1019 / Page 11 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 11
`
`
`
`Contents
`
`Examples
`
`. . . . . . . . . . . . . . . . .
` 2–1 Initializing a PP’s Stack Pointer and Comm registers
`2-4
` 2–2 MP C Function for Counting the Number of PPs
`. . . . . . . . . . . . . . . . . . . . .
`2-5
` 3–1 Sample PP C Program
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-8
` 3–2 ’C80 PP Linker Command File for example.c
`. . . . . . . . . . . . . . . . . . . . . .
`3-10
` 3–3 ’C80 Map File Lines for Vector A and Vector B
`3-11
`. . . . . . . . . . . . . . . . . . . . .
` 3–4 ’C82 PP Linker Command File
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-12
` 3–5 ’C82 Map File Lines for Vector A and Vector B
`3-13
`. . . . . . . . . . . . . . . . . . . . .
` 3–6 ’C80 MP Linker Command File
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-14
` 3–7 ’C82 MP Linker Command File
`3-15
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
` 3–8 Sample PP C Program With an Assembly Language Function
`3-17
`. . . . . . . .
` 3–9 Assembly Language Function to Calculate the Dot Product of
`3-18
`. . . . . . . .
`Two Vectors
`
`x
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 12 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 12
`
`
`
` Running Title—Attribute Reference
`
`Contents
`
`1-1
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`4 Comparison of the ’C80 and ’C82
`Describes differences that affect compatibility in the ’C80 and ’C82.
`1-2
`1.1
`Overview of ’C80 and ’C82 Features
`. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-3
`1.2
`Parallel Processor Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-4
`1.3
`Transfer Controller Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1.3.1 Number of Externally Initiated Packet Transfer (XPT) Requests 1-
`4
`. . . . . . . . . . . . . . . . . . .
`1.3.2 RAM Bank Configuration Mechanisms
`1-4
`Video Controller Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1.4
`1-5
`1.5 Memory Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-6
`1.5.1 Data RAMs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-6
`1.5.2 Parameter RAMs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-8
`1.5.3 Caches
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1-13
`
`2-1
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5 Programming for Compatibility
`Provides techniques for programming ’C80/’C82-compatible software.
`2-2
`2.1
`Programming Considerations
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-3
`2.2
`Obtaining Device-Specific Information
`. . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.2.1 Determining the Device that is Executing your Software (MP) 2-3
`2.2.2 Determining the Device that is Executing your Software (PP) 2-3
`2.2.3
`Initializing a PP’s Stack Pointer
`. . . . . . . . . . . . . . . . . . . . . . . . . .
`2-4
`2.2.4 Counting the Number of PPs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-5
`Technique #1: Using Only Common RAM
`2-6
`. . . . . . . . . . . . . . . . . . . . . . . .
`2.3.1 Advantages
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-6
`2.3.2 Disadvantages
`2-6
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.3.3
`Implementing Technique #2
`2-6
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.3.4 Considerations
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-7
`Technique #2: Using Pointers to Allocate RAM
`2-8
`. . . . . . . . . . . . . . . . . . .
`2.4.1 Advantages
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-8
`2.4.2 Disadvantages
`2-8
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.4.3
`Implementing Technique #2
`2-8
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.4.4 Considerations
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-9
`
`2.3
`
`2.4
`
` Chapter Title—Attribute Reference
`
`xi
`
`Ex. 1019 / Page 13 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 13
`
`
`
`Contents
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`6 Prototyping ’C82 Code on the ’C80
`Describes techniques for emulating the ’C82’s RAM with the ’C80’s RAM.
`3-2
`3.1
`Overview
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-3
`3.2
`Emulating the ’C82’s Data RAMs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-3
`3.2.1 Emulating the ’C82’s Data RAM 0
`. . . . . . . . . . . . . . . . . . . . . . .
`3.2.2 Emulating the ’C82’s PP0 Data RAM 1 and PP1 Data RAM 1 3-3
`Emulating the ’C82’s Parameter RAMs
`. . . . . . . . . . . . . . . . . . . . . . . . . .
`3-4
`3.3.1 Emulating the PP Parameter RAMs
`3-4
`. . . . . . . . . . . . . . . . . . . . . .
`3.3.2 Emulating the MP Parameter RAM
`3-5
`. . . . . . . . . . . . . . . . . . . . . .
`3.3.3 Managing Pointers
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3-5
`
`3-1
`
`3.3
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`B The ’C80 and ’C82 Memory Maps
`Provides the memory maps of the ’C80 and ’C82.
`
`A-1
`
`xii
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 14 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 14
`
`
`
` Running Title—Attribute Reference
`
`Figures
`
`. . . . . . . . . . . . . . . . . . . . . .
`’C80 and ’C82 Data RAMs in the Memory Map
`1-7
`1–1
`’C80 and ’C82 Parameter RAMs in the Memory Map
`. . . . . . . . . . . . . . . . .
`1-9
`1–2
`’C80 and ’C82 MP Parameter RAM Block Diagram
`. . . . . . . . . . . . . . . . .
`1-10
`1–3
`’C80 and ’C82 PP Parameter RAM Block Diagram
`1-11
`. . . . . . . . . . . . . . . . . .
`1–4
`1–5 PP State Information on the Stack at Reset
`. . . . . . . . . . . . . . . . . . . . . . . .
`1-12
`2–1
`The Type Field in the MP config Register
`. . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-3
`2–2
`The PP’s comm Register
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2-3
`2–3 Structure of a PP Command Buffer
`2-9
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3–1 Structure of a PP Command Buffer
`3-5
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`A–1 TMS320C80 Memory Map
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`A-2
`A–2 TMS320C82 Memory Map
`A-4
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
` Contents
`
`xiii
`
`Ex. 1019 / Page 15 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 15
`
`
`
`xiv
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 16 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 16
`
`
`
`Comparison of the ’C80 and ’C82
`
`
`
`Chapter 1
`
`There are several differences between the ’C80 and the ’C82. As
`a programmer, you must be aware of these differences to effec-
`tively write code that runs on both the ’C80 and the ’C82. This
`chapter describes important differences to prepare you for the
`software-related discussions in Chapter 2 and Chapter 3.
`
`In this chapter, you will find information that will help you:
`
`- Understand general differences between the ’C80 and ’C82.
`
`- Understand memory differences between the ’C80 and ’C82.
`
`- Understand the basis for the information in Chapter 2 and
`Chapter 3.
`
`Topics
`
`1.1
`1.2
`1.3
`1.4
`1.5
`
`. . . . . . . . . . . . . .
`Overview of ’C80 and ’C82 Features
`Parallel Processor Differences
`. . . . . . . . . . . . . . . . . . .
`Transfer Controller Differences
`. . . . . . . . . . . . . . . . . . .
`Video Controller Differences
`. . . . . . . . . . . . . . . . . . . . .
`Memory Differences
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`1-2
`1-3
`1-4
`1-5
`1-6
`
` Chapter Title—Attribute Reference
`
`1-1
`
`Ex. 1019 / Page 17 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 17
`
`
`
`Overview of ’C80 and ’C82 Features
`
`1.1 Overview of ’C80 and ’C82 Features
`The ’C80 offers processing power equivalent to up to 2 billion
`RISC operations/second. The ’C82 is a low-cost implementation
`of the ’C8x architecture that provides high levels of processing
`power for cost-sensitive applications.
`
`The ’C80 and the ’C82 are very similar in design. They have sev-
`eral features in common, including a crossbar network, parallel
`processors, a master processor, a transfer controller, and on-
`chip RAM. The processors are binary compatible and can run
`each other’s software if the software is written for compatibility.
`Four main differences relate to compatibility:
`
`- The ’C80 has four parallel processors; the ’C82 has two.
`
`- The on-chip RAM of the ’C80 is divided into 25 2-KB blocks;
`the on-chip RAM of the ’C82 is divided into 11 4-KB blocks.
`
`- The ’C80 transfer controller has 7 externally initiated packet
`transfer (XPT) requests; the ’C82 transfer controller has 15.
`
`- The ’C80 has an on-chip video controller; the ’C82 has none.
`
`Table 1–1 compares the features of the ’C80 and the ’C82.
`
`Table 1–1. ’C80 and ’C82 Features
`
`Feature
`
`Number of PPs
`
`On-chip video controllers
`
`Total on-chip RAM
`
`Local data RAM per PP
`
`Parameter RAM per PP
`
`PP instruction cache size
`
`MP parameter RAM size
`
`MP data cache size
`
`MP instruction cache size
`
`’C80
`
`4
`
`1
`
`50 KB
`
`6 KB
`
`2 KB
`
`2 KB
`
`2 KB
`
`4 KB
`
`4 KB
`
`’C82
`
`2
`
`None
`
`44 KB
`
`8 KB
`
`4 KB
`
`4 KB
`
`4 KB
`
`4 KB
`
`4 KB
`
`1-2
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 18 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 18
`
`
`
` Parallel Processor Differences
`
`1.2 Parallel Processor Differences
`The most important difference related to the parallel processors
`(PPs) is the number of PPs per chip: the ’C80 has four PPs and
`the ’C82 has two.
`
`Since the ’C82 has two PPs, software written to execute on both
`the ’C80 and ’C82 must not require more than two PPs. Software
`that can use up to four PPs but that requires only two PPs will run
`on both devices.
`
`The number of PPs on a chip can be counted through software.
`This allows you to optimize your software’s use of available PPs.
`See subsection 2.2.4, Counting the Number of PPs, for a descrip-
`tion of how your software can determine the number of available
`PPs.
`
` Comparison of the ’C80 and the ’C82
`
`1-3
`
`Ex. 1019 / Page 19 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 19
`
`
`
`Transfer Controller Differences
`
`1.3 Transfer Controller Differences
`The differences between the transfer controllers (TCs) on the
`’C80 and ’C82 are hardware differences. Generally, these differ-
`ences have a negligible impact on how you write your software.
`
`The ’C82 and ’C80 TCs differ in two main ways:
`
`- The ’C80 TC supports 7 XPT requests, but the ’C82 TC sup-
`ports 15 XPT requests.
`
`- The ’C80 TC uses dedicated pins for obtaining memory con-
`figuration information, but the ’C82 TC uses a configuration
`cache.
`
`1.3.1 Number of Externally Initiated Packet Transfer Requests
`
`The number of XPT requests handled by the ’C80 and ’C82 is dif-
`ferent. However, because XPT requests are driven by external
`devices, the seven XPT requests shared by the ’C80 and ’C82
`generally aren’t used to emulate each other in different systems
`with different peripherals. For example, the likelihood is small
`that the peripheral connected to XPT1 on the ’C80 software de-
`velopment board (SDB) is the same as the peripheral connected
`to XPT1 on a target ’C82 board. XPTs are normally handled
`through software drivers that are written for each application. The
`drivers for the SDB will almost always differ from the drivers used
`in an actual application.
`
`1.3.2 RAM Bank Configuration Mechanisms
`
`The special RAM bank configuration pins on the ’C80 and the
`configuration cache on the ’C82 are hardware features that have
`a negligible impact on software.
`
`1-4
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 20 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 20
`
`
`
` Video Controller Differences
`
`1.4 Video Controller Differences
`The ’C80 has an on-chip video controller, but the ’C82 does not.
`If the chips are to be used in video applications, the portion of
`your software that sets up the video timing registers needs to be
`written so that an external video controller can be used with the
`’C82. This is usually just a matter of switching video drivers, de-
`pending on the chip being used.
`
` Comparison of the ’C80 and the ’C82
`
`1-5
`
`Ex. 1019 / Page 21 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 21
`
`
`
`Memory Differences
`
`1.5 Memory Differences
`The ’C80 has 50 KB of on-chip RAM, and the ’C82 has 44 KB of
`on-chip RAM. On-chip RAM is used as data RAM, as parameter
`RAM, and as instruction and data caches.
`
`The ’C80’s RAM is partitioned into 25 individual 2-KB modules.
`In contrast, the ’C82’s RAM is partitioned into 11 individual 4-KB
`modules. Modules can be accessed in parallel over the crossbar
`during the same clock cycle without contention. However, since
`RAM organization is not identical in the ’C80 and ’C82, conten-
`tion may occur in one device without occurring in the other if your
`program does not compensate for this difference.
`
`For your reference, the memory maps of the ’C80 and ’C82 are
`described in Appendix A.
`
`1.5.1 Data RAMs
`
`Data RAMs are standard read/write memory with no caching or
`special features. They are the main areas in which the PPs store
`the data they are processing. Any transfer of data to or from data
`RAMs is done explicitly by the processors, either by a direct read
`from or write to memory, or by a request to the TC to transfer the
`data through packet transfers.
`
`As Figure 1–1 illustrates, all data RAM locations corresponding
`to PP0 and PP1 on the ’C80 are populated with data RAM on the
`’C82. Thus, the ’C82’s data-RAM map for PP0 and PP1 is a su-
`perset of the ’C80’s. The last half of each of the 4-KB memory
`spaces occupied by the ’C82’s PP0 data RAM 1 and PP1 data
`RAM 1 is unpopulated on the ’C80. The memory locations occu-
`pied by the ’C80’s data RAMs for PP2 and PP3 are unpopulated
`on the ’C82.
`
`1-6
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 22 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 22
`
`
`
`Figure 1–1. ’C80 and ’C82 Data RAMs in the Memory Map
`
` Memory Differences
`
`’C82 Block
`
`PP0 data RAM 0
`(4096 bytes)
`
`PP1 data RAM 0
`(4096 bytes)
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`(4096 bytes)
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`(4096 bytes)
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`
`’C80 Block
`
`PP0 data RAM 0
`
`PP0 data RAM 1
`
`PP1 data RAM 0
`
`PP1 data RAM 1
`
`PP2 data RAM 0
`
`PP2 data RAM 1
`
`PP3 data RAM 0
`
`PP3 data RAM 1
`
`Address
`(Hex)
`0000 0000
`0000 07FF
`0000 0800
`0000 0FFF
`0000 1000
`0000 17FF
`0000 1800
`0000 1FFF
`0000 2000
`0000 27FF
`0000 2800
`0000 2FFF
`0000 3000
`0000 37FF
`0000 3800
`0000 3FFF
`
`0000 8000
`0000 87FF
`0000 8800
`0000 8FFF
`0000 9000
`
`0000 97FF
`0000 9800
`
`0000 9FFF
`0000 8000
`
`0000 87FF
`0000 8800
`
`0000 8FFF
`0000 8000
`0000 87FF
`0000 8800
`0000 8FFF
`
`PP0 data RAM 2
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`PP1 data RAM 2
`
`PP0 data RAM 1
`(4096 bytes)
`
`PP1 data RAM 1
`(4096 bytes)
`
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`PP2 data RAM 2
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`(4096 bytes)
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`Reserved
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`PP3 data RAM 2
`Reserved
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`(4096 bytes)
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`Reserved
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`
` Comparison of the ’C80 and the ’C82
`
`1-7
`
`Ex. 1019 / Page 23 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 23
`
`
`
`Memory Differences
`
`1.5.2 Parameter RAMs
`
`A parameter RAM is associated with each processor on a ’C8x
`device. A portion of this RAM is dedicated to hardware parame-
`ters, such as the state of suspended packet transfers, buffers for
`external-to-external packet transfers, and interrupt vectors. The
`remainder of each parameter RAM is available to software for
`general-purpose data storage.
`
`Figure 1–2 contrasts the memory maps for the on-chip parame-
`ter RAM on the ’C80 and ’C82. All ’C80 memory locations occu-
`pied by parameter RAM for PP0, PP1, and the MP are also popu-
`lated on the ’C82. The memory locations occupied by the ’C80’s
`parameter RAMs for PP2 and PP3 are unpopulated on the ’C82.
`Each of the ’C82’s parameter RAMs is 4096 bytes long, which is
`twice the size of each parameter RAM on the ’C80. The second
`half of each of the corresponding memory spaces is unpopulated
`on the ’C80.
`
`Note:
`In the ’C80, the MP parameter RAM can be accessed only by
`the MP and TC. However, in the ’C82, the MP parameter RAM
`can be accessed by the MP, TC, and PPs.
`
`1-8
`
`TMS320C80 to TMS320C82 Software Compatibility User’s Guide
`
`Ex. 1019 / Page 24 of 64
`
`Petitioners HTC Corp. & HTC America, Inc. - Ex. 1019, p. 24
`
`
`
`Figure 1–2. ’C80 and ’C82 Parameter RAMs in the Memory Map
`
` Memory Differences
`
`Address
`(Hex)
`0100 0000
`0100 07FF
`0100 0800
`0100 0FFF
`0100 1000
`
`0100 17FF
`0100 1800
`
`0100 1FFF
`0100 2000
`0100 27FF
`0100 2800
`0100 2FFF
`0100 3000
`0100 37FF
`0100 3800
`0100 3FFF
`
`’C80 Block
`
`’C82 Block
`
`PP0 parameter RAM
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`ÉÉÉÉÉÉÉÉÉÉ
`
`PP0 parameter RAM
`(4096 bytes)
`
`PP1 parameter RAM
`(4096 bytes)
`
`PP1 parameter RAM
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`PP2 parameter RAM
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`(4096 bytes)
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`Reserved
`ÉÉÉÉÉÉÉÉÉÉ
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`PP3 parameter RAM
`Reserved
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`(4096 bytes)
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`Reserved
`
`ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ
`
`0101 0000
`0101 07FF
`0101 0800
`0101 0FFF
`
`MP parameter RAM
`(4096 bytes)
`
`MP parameter RAM
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`Reserved
`ÉÉÉÉÉÉÉÉÉÉ
`ÉÉÉÉÉÉÉÉÉÉ
`Figure 1–3 shows the MP parameter RAM in the ’C80 and ’C82.
`The memory maps of the hardware-dedicated areas in the first
`672 bytes are nearly identical in the ’C80 and