CoreCentric Communication Protocol Introducing Open Core Protocol 2

  • Slides: 31
Download presentation
Core-Centric Communication Protocol Introducing Open Core Protocol 2. 0 Franck Seigneret, Texas Instruments France

Core-Centric Communication Protocol Introducing Open Core Protocol 2. 0 Franck Seigneret, Texas Instruments France OCP-IP GSC member

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation /

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation / Background The Open Core Protocol 2. 0 Basic OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion

Motivation: reuse without rework • SOC designers want to reuse IP cores to shorten

Motivation: reuse without rework • SOC designers want to reuse IP cores to shorten development schedules. • Problem: IP cores need to be re-adapted into each system design – 1000 s of cores, 10 s or 100 s of interconnects/buses – must understand lots of interfaces – overwhelming amount of adaptation work • Motivation: reuse without rework – Plug-and-play between cores and interconnects systems from different sources.

Solution: Core/System Protocol • What is needed is a standard, well-defined protocol for cores

Solution: Core/System Protocol • What is needed is a standard, well-defined protocol for cores to talk to a system interconnect. Core designers System integrator Core 1 Core 2 Core N core i/f System socket On-chip interconnect

Core/System Protocol Requirements • Clearly-specified contract between core developer and system integrator • Core-Centric

Core/System Protocol Requirements • Clearly-specified contract between core developer and system integrator • Core-Centric – Interconnect neutral (not some bus protocol) • Encompass entire core/system interface • Scalable and configurable • Process independent, synthesis/timing analysis friendly

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation /

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation / Background The Open Core Protocol 2. 0 Basic OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion

Open Core Protocol 2. 0 • Open Core Protocol (OCP) is a core-centric protocol

Open Core Protocol 2. 0 • Open Core Protocol (OCP) is a core-centric protocol under the governance of the OCP-IP association to enable true core plugand-play and re-use – This is an OPEN standard • OCP-IP is driven by a pool of key players in the semiconductor industry: Nokia, Texas Instruments, STMicroelectronics, UMC, MIPS, Philips, Sonics, EDA vendors… – Multiple working groups (specification, functional verification, System. C modeling…): make of OCP a “living” standard • Think of OCP as configurable core socket • OCP 2. 0 specification (and much more) can be freely downloaded from the OCP-IP web site: www. ocpip. org

Basic OCP Concepts • Point-to-point, uni-directional, synchronous – Easy physical implementation • Master/Slave, Request/Response

Basic OCP Concepts • Point-to-point, uni-directional, synchronous – Easy physical implementation • Master/Slave, Request/Response model – Well-defined, simple roles • Extensions – Added functionality to support cores with more complex interface requirements • Configurability – Match a core’s requirements exactly – Tailor design to required features only

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation /

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation / Background The Open Core Protocol 2. 0 Basic OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion

Basic OCP • Master / Slave • Split protocol • Multiple phases: – Request

Basic OCP • Master / Slave • Split protocol • Multiple phases: – Request phase – Response phase – Separate data handshake (optional) • System / Core

OCP commands • Idle… • Read transfer – Standard Read – Read. Ex, Read.

OCP commands • Idle… • Read transfer – Standard Read – Read. Ex, Read. Linked for exclusive access • Write transfer – With or without response – Posted (Write) or non posted (Write. Non. Post) semantics – Conditional (Write. Conditional) for exclusive access • Exclusive accesses – Locked synchronization • Atomic Read. Ex / Write pairs – Lazy synchronization • Non atomic Read. Linked / Write. Conditional pairs

Handshaking • Each phase starts when sender asserts the phase – for example, request

Handshaking • Each phase starts when sender asserts the phase – for example, request phase starts when master sends a non -idle command • Phase ends when receiver asserts handshake – for example, request phase ends when slave asserts the command accept signal • Handshaking allows both sides to assert flow control – sender can delay asserting the phase – receiver can delay asserting the handshake • Example: core can’t take a request every cycle – no need to add storage, just hold off on accepting requests if not ready

Handshake (Timing Diagram) 1 2 3 4 5 6 7 Clk MCmd 1 Cmd

Handshake (Timing Diagram) 1 2 3 4 5 6 7 Clk MCmd 1 Cmd 2 Cmd 3 MAddr 1 Addr 2 Addr 3 SCmd. Accept valid command Cmd 1 accepted Cmd 2 accepted

Ordering and Pipelining • An OCP transfer is a complete request/response interaction • For

Ordering and Pipelining • An OCP transfer is a complete request/response interaction • For longer latency operations would like pipelining – multiple requests can be sent before first response comes back – example: CPU core has multiple outstanding cache misses • OCP allows pipelining of transfers • Responses must be returned in the order of the requests • Requests and responses form a single ordered thread Master 1 2 3 4 Time Slave 1 2 3 4

OCP phases within a transfer

OCP phases within a transfer

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation /

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation / Background The Open Core Protocol 2. 0 Basic OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion

OCP Simple Extensions • Byte enables – Provide byte addressing capability on a multi-byte

OCP Simple Extensions • Byte enables – Provide byte addressing capability on a multi-byte interface • Multiple address spaces, mapped at non contiguous address ranges. Typically to: – Differentiate core registers from core memory space – Differentiate cores within a sub system • Custom in-band signaling – To any of the transfer phases: Request, response, datahandshake – Typical usage: Cache signaling, application/emulation qualifier, dynamic endianness qualifier…

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation /

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation / Background The Open Core Protocol 2. 0 Basic OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion

Burst extension • Multiple OCP transfers can be linked into a burst transaction –

Burst extension • Multiple OCP transfers can be linked into a burst transaction – Cores such as DRAM controllers can supply the second related piece of data much faster than the first – Bursts allow a target to know that there are more transfers coming, so it can pre-fetch • Bursts are linked together using a burst code that is supplied with every transfer – burst signaling supplies the burst address sequence, the burst length, the burst type, etc. .

The OCP burst flexibility • Ability to handle precise bursts (the length is known)

The OCP burst flexibility • Ability to handle precise bursts (the length is known) and un-precise bursts (the length is unknown). • Ability to specify standard address sequences (incrementing, wrapping, streaming, XOR) as well as custom address sequences. • Ability to support single request/multiple data transaction models. • Ability to define atomic sub-units within a burst for fine control of the request interleaving throughout the system interconnect. • Ability to add complete framing information with all transfer phases.

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation /

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation / Background The Open Core Protocol 2. 0 Basic OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion

Threading extension • Within an OCP thread, responses must return in the order of

Threading extension • Within an OCP thread, responses must return in the order of the requests. • For some cores, out-of-order responses are desirable – A multi-bank DRAM controller can return requests to an open bank faster than to a closed one – A DMA controller can handle multiple outstanding transactions from multiple channels on the same OCP port • An OCP interface can support multiple threads – Allows for concurrency and out-of-order returns – Each thread retains strict ordering semantics – BUT: there are is no ordering between transfers in different threads

Threads (illustrated) 1 A 1 B 2 A 2 B Master time Slave Thread

Threads (illustrated) 1 A 1 B 2 A 2 B Master time Slave Thread A Thread B 1 A 2 A 1 B 2 B • Golden rule – Strict ordering within a thread – No ordering between threads • Requests, data, responses are tagged with a thread. ID • Multithreading also helps reducing the number of wires, to limit the routing congestions

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation /

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation / Background The Open Core Protocol 2. 0 Basic OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion

Control and Test Signals • • • Reset Interrupt Transaction error reporting Core Flags

Control and Test Signals • • • Reset Interrupt Transaction error reporting Core Flags (core-to-core) Core Status/Control (system-to-core) Test: Scan chains and standard JTAG (IEEE 1149) • …and platform specific signals also known as Sideband Signals because they are out-of-band with respect to data flow signals

Configurability • OCP is configurable to tailor the interface exactly to the features required

Configurability • OCP is configurable to tailor the interface exactly to the features required by the core – Basic OCP is very simple – Many extensions exist for cores with more complex interface requirements • OCP is configured via a set of parameters – Control the presence of a set of signals • example: core makes use of byte enables – Control the width of a set of signals • example: address width is 14 bits – Control protocol features • example: core uses data handshaking to pipeline write data

OCP as IP Core Delivery Vehicle • OCP is not just a core/system interface

OCP as IP Core Delivery Vehicle • OCP is not just a core/system interface specification • OCP also specifies: – Precise description format for core interfaces – Precise description format for timing of core interfaces – Core performance information • Configuration information is in machine-readable TCL file format – Allows for automated processing, at both core and interconnect level • Core designer and system integrator’s job is greatly simplified

System Usage of Open Core Protocol • Can wrap any on-chip interconnect using OCP

System Usage of Open Core Protocol • Can wrap any on-chip interconnect using OCP – Yields system ready for plug-and-play with IP cores • Well-specified protocol allows interconnect wrappergeneration to be automated. Open Protocol Core IP Core Master Slave Master On-Chip Interconnect

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation /

Introducing OCP 2. 0…. 1. 2. 3. 4. 5. 6. 7. 8. Motivation / Background The Open Core Protocol 2. 0 Basic OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion

Related Work / Conclusion • Virtual Socket Interface Alliance (VSIA) has also putting forth

Related Work / Conclusion • Virtual Socket Interface Alliance (VSIA) has also putting forth the idea of a standard IP core socket – Virtual Component Interface (VCI) • VCI and OCP are completely aligned in terms of their goals – October 2003: VSIA endorses the OCP interface, OCP-IP becomes the first VSIA adoption group • The recently unveiled ARM AXI specification also refers to the same foundations, a well as many company in-house protocols… This re-enforces the pioneer role played by OCP. Today, only OCP can be presented as the de-facto industry standard for a core complete socket

THANK YOU ! For more information, please take a look at http: //www. ocpip.

THANK YOU ! For more information, please take a look at http: //www. ocpip. org/ and… stop at the OCP-IP booth in this conference center