Core-Centric Communication Protocol Introducing Open Core Protocol 2 Core-Centric Communication Protocol Introducing Open Core Protocol 2.0 Franck Seigneret, Texas Instruments France OCP-IP GSC member
Introducing OCP 2.0…. Motivation / Background The Open Core Protocol 2.0 Basic OCP 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 development schedules. Problem: IP cores need to be re-adapted into each system design 1000s of cores, 10s or 100s 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 to talk to a system interconnect. On-chip interconnect Core 1 core i/f System socket Core 2 Core N Core designers System integrator
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…. Motivation / Background The Open Core Protocol 2.0 Basic OCP 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 under the governance of the OCP-IP association to enable true core plug-and-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, SystemC 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 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…. Motivation / Background The Open Core Protocol 2.0 Basic OCP OCP simple extensions Burst extension Threading extension OCP as a system socket Related work / conclusion
Basic OCP Master / Slave Split protocol Multiple phases: System / Core Request phase Response phase Separate data handshake (optional) System / Core
OCP commands Idle… Read transfer Write transfer Exclusive accesses Standard Read ReadEx, ReadLinked for exclusive access Write transfer With or without response Posted (Write) or non posted (WriteNonPost) semantics Conditional (WriteConditional) for exclusive access Exclusive accesses Locked synchronization Atomic ReadEx / Write pairs Lazy synchronization Non atomic ReadLinked / WriteConditional pairs
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 Cmd1 Cmd2 Cmd3 Clk MCmd MAddr SCmdAccept Addr1 Addr2 valid command Cmd1 accepted Cmd2 accepted Addr3
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 1 2 3 4 Master Slave 1 2 3 4 Time
OCP phases within a transfer
Introducing OCP 2.0…. Motivation / Background The Open Core Protocol 2.0 Basic OCP 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 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…. Motivation / Background The Open Core Protocol 2.0 Basic OCP 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 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) 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…. Motivation / Background The Open Core Protocol 2.0 Basic OCP 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 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) 1B 2A 2B Master time Slave 1A 2A 1B 2B Thread A Thread B Golden rule Strict ordering within a thread No ordering between threads Requests, data, responses are tagged with a threadID Multithreading also helps reducing the number of wires, to limit the routing congestions
Introducing OCP 2.0…. Motivation / Background The Open Core Protocol 2.0 Basic OCP 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 (core-to-core) Core Status/Control (system-to-core) Test: Scan chains and standard JTAG (IEEE1149) …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 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 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 Yields system ready for plug-and-play with IP cores Well-specified protocol allows interconnect wrapper-generation to be automated. IP Core On-Chip Interconnect Slave Master Open Protocol Core
Introducing OCP 2.0…. Motivation / Background The Open Core Protocol 2.0 Basic OCP 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 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 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