1 / 31

Motivation / Background The Open Core Protocol 2.0 Basic OCP OCP simple extensions Burst extension

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

tdickens
Download Presentation

Motivation / Background The Open Core Protocol 2.0 Basic OCP OCP simple extensions Burst extension

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Core-Centric Communication ProtocolIntroducing Open Core Protocol 2.0Franck Seigneret, Texas Instruments FranceOCP-IP GSC member

  2. 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

  3. 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.

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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

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

  11. OCP commands • Idle… • Read transfer • 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

  12. 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

  13. 1 2 3 4 5 6 7 Clk MCmd Cmd1 Cmd3 Cmd2 MAddr Addr1 Addr2 Addr3 SCmdAccept valid command Cmd2accepted Cmd1accepted Handshake (Timing Diagram)

  14. 1 2 3 4 Master Slave 1 2 3 4 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 Time

  15. OCP phases within a transfer

  16. 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

  17. 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… OCP Simple Extensions

  18. 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

  19. 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....

  20. 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.

  21. 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

  22. 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

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

  24. 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

  25. 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 areout-of-band with respect to data flow signals

  26. 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

  27. 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

  28. Master Master Master Master Open Protocol Core IP Core IP Core IP Core Slave Slave Slave Slave On-Chip Interconnect 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.

  29. 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

  30. 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

  31. 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

More Related