Frequently Asked Questions

All FAQs | Organizational | General Technical
Specification Version | Relationship to Other Technologies | Bursting
Simulation & Test | Threads & Connections | Participant Membership/VSIA Status

Specification Version

1. What is the current standard?
2. What differs between the 1.0 and 2.0 versions of the OCP Specification?
3. What differs between the 2.0 and 2.1 versions of the OCP Specification?
4. What differs between the 2.1 and 2.2 versions of the OCP Specification?
5. What differs between the 2.2 and 3.0 versions of the OCP Specification?
6. What is the purpose of lazy synchronization?
7. Which version of the OCP Specification should I use?
8. 2.0 has been referred to as allowing a "minimalist" interface. What does that mean?
9. What parameter controls have responses for write commands?
10. What will be the behavior of an OCP master in the case where the slave generates the response phase for write commands (in posted write model)?
11. How are the master and slave reset signals asserted in different OCP versions?




1: What is the current standard?
A: The current standard of record is OCP 3.0, which is fully available with software and technical support. The OCP 2.2 and earlier versions of the specification are still available and will continue to be supported.



2: What differs between the 1.0 and 2.0 versions of the OCP Specification?
A: Actually, there are significant technical advancements for ease of use for the 2.0 version of the OCP Specification over the 1.0 version. The 2.0 specification includes enhancements to the burst model, write response, endianess, system-level design protocol subset, explicit parameter default and tie-off values, in-band signaling, dual reset, exact threadbusy and lazy synchronization.


3: What differs between the 2.0 and 2.1 versions of the OCP Specification?
A: Additional technical advancements have been implemented in the 2.1 version of the OCP Specification to provide enhanced use. The 2.1 specification includes the addition of tagging features and accompanying signals, a chapter to describe the profiles which serve as templates, and incorporation of the 2.0 specification errata.

4: What differs between the 2.1 and 2.2 versions of the OCP Specification?
A: The 2.2 specification includes a number of enhancements, including direct support for associated security levels with requests, as well as two-dimensional block burst sequences. The clocking and reset signaling was enhanced by adding an EnableClk signal to dynamically control clocking, and also allow resets to be asserted asynchronously. Additional flow control options for the threadbusy signals were provided. Finally, several chapters containing detailed information on verification (including verification checklists) was added to the OCP Specification.


5: What differs between the 2.2 and 3.0 versions of the OCP Specification?
A: The OCP 3.0 Specification includes a number of major enhancements, including support for system-level cache coherency for multi-processor systems. In addition, a disconnect mechanism was added to support the application of power management techniques to individual cores in a system. Finally, three new OCP Profiles (Simple Slave, High-Speed and Advanced High-Speed) were added to the OCP Specification.

6: What is the purpose of lazy synchronization?
A: Lazy synchronization is an enhancement to the protocol featured in 2.0. It recognizes existing microprocessor synchronization practices and eases the problems in synchronizing multiprocessor SoC designs. The 2.0 enhancement adds a non-blocking semaphore command in addition to the existing blocking semaphore command in recognition of non-blocking capability in some existing embedded processors.

7: Which version of the OCP Specification should I use?
A: Generally, if you are starting a new design, you should use OCP 3.0. This is the direction of OCP, and it includes a number of improvements based upon real user experiences. Understanding 3.0 is always helpful, as it helps you utilize previous specification features in a way that is forward compatible.

8: 2.0 has been referred to as allowing a "minimalist" interface. What does that mean?
A: By "minimalist", we simply mean using very few wires. The minimum OCP 1.0 interface has six required fields: ocp_clock, MCmd, MAddr, MData, SData, and SResp. That's pretty frugal. But, the minimum OCP 2.0 interface has only two required fields: ocp_clock and MCmd. That's minimalist.

9: What parameter controls have responses for write commands?
A: Please note that the capability of non-posted writes is not actually in the OCP Specification version 1.0. The capability of non-posted writes is in version 2.0 of the OCP Specification. In the 1.0 version of the specification, all writes are required to be posted writes. However in the OCP 2.0 Specification, the "writeresp_enable" parameter will be used to indicate that responses should be generated for write commands, so that non-posted write semantics can be supported.

10: What will be the behavior of an OCP master in the case where the slave generates the response phase for write commands (in posted write model)?
A: In the case of the version 1.0 specification, it would not be legal for the slave to generate a response to the write operation, since all writes are required to be posted writes. Thus, this would actually be a violation of the OCP protocol. However, this would be allowed in the 2.0 version of the specification.

11: How are the master and slave reset signals asserted in different OCP versions?
A: In the OCP 2.2 versions, reset signals for the master and slave can be asserted either synchronously or asynchronously. In earlier versions, all resets were required to be asserted synchronously. Note that in OCP version 1.0, there was only a single reset signal; the provision for separate master and slave reset signals was provided in OCP version 2.0.

All FAQs | Organizational | General Technical
Specification Version | Relationship to Other Technologies | Bursting
Simulation & Test | Threads & Connections | Participant Membership/VSIA Status