技术 FAQs


概要 | OCP和其他技术的关系 | 突发模式 | 仿真&测试 | 线程&互连

突发模式

1. 什么是OCP传输?
2. 什么是OCP事务?
3. 什么是OCP的簇模型?
4. 递增突发模式和流线突发模式的区别是什么?
5. 这些触发代码意味着什么?
6. 是不是触发读时间图表定义传输的数量或者字节的数量?
7. 为什么触发代码不等于剩下的字的数量?
8. 主机怎么保证写突发模式在数据完全准备好之前已经提交给从机?
9. 该怎么选择突发模式大小?
10. 如果我的内核的突发模式代码大小与OCP的突发模式代码不匹配,该怎么办?
11. 能否传输超过8个OCP字的突发模式?
12. 可以提早终止突发模式传输吗?
13. OCP发起机在开始以后可以中断突发模式传输吗?
14. 为什么我要在我的初始器代码中激活触发?
15. 什么是单请求多数据(SRMD)burst?
16. 二维block burst序列是如何处理的?


1: 什么是OCP传输?
A: 在OCP1.0有两种OCP传输,写传输和读传输。

当OCP主机给从机发出一个写请求,指定了与请求相关的从机存储数据的地址。当从机接受到请求、数据和数据地址后,写传输就开始了。同样,当主机发出一个读请求,同样定义了与请求相关的读取数据的地址。当主机接受到数据后,读传输就开始了。最后,OCP定义了一个广播传输,与写传输类似,但它将请求广播给与接受从机接口相连的所有实体。

2: 什么是OCP事务?
A: 多个相同类型的请求传输可以组成为一个事务,也称为突发模式。需要注意的是它不是一个长传输(象PCI一样),而是一个连接在一起的单个传输序列。

3: 什么是OCP的簇模型?
A:

OCP1.0定义了两个簇地址序列模型,一个是给存储簇(递增),一个是给FIFO簇(流动)。它也允许两个额外的面向应用的簇模型。在上面四个模型的每一个模型中,一个簇代码将各自独立的传输和一次单独的簇事件联系在一起。OCP2.0在簇模型方面有了重要的改进,包括增加的簇地址序列模型,还有精确的簇和单请求多数据(SRMD)簇模型。另外,在簇地址数列模型的设置中加入了Wrapping, Exclusive-Or (XOR) and Unknown地址序列。OCP2.0提供了3种常规簇模型:使用OCP1.0的不精确簇模型,精确模型和单请求多数据(SRMD)簇模型。


4: 递增突发模式和流线突发模式的区别是什么?
A: 在增量突发模式中目标地址随着突发模式中的每个传输递增。增量值为OCP的字长。在流线(streaming)突发模式中,目标地址保持不变。无论哪种突发模式,OCP主机需要提供每个突发模式传输的正确地址,表明最后一个传输为LAST。

5: 这些触发代码意味着什么?
A:

在不精确簇的情况下,簇的代码只不过是从发起者到目的地的,指示一次簇事务处理多长时间的线索。最后一次簇传输有一个值为LAST的簇传输标签。这是唯一一个完全确定可以被解释的值。在精确簇的情况下,每一次传输都给出请求信息,但是整个事务处理过程中,簇的长度是固定的。


6: 是不是触发读时间图表定义传输的数量或者字节的数量?
A: 主设备簇长度定义包含在触发中的OCP字的数量,不是字节的数量。既然OCP接口能够被赋予1到16字节的任何值,那么这个触发代码指定了一个即将要被传输的触发的OCP字的数量。

7: 为什么触发代码不等于剩下的字的数量?
A:

在不精确簇的情况下,簇长度的代码仅仅代表一条线索。目标设备并不要求一定要使用线索。在精确簇的情况下,簇长度的代码是一个代表着簇事务的精确长度的常数。


8: 主机怎么保证写突发模式在数据完全准备好之前已经提交给从机?
A: 写数据的主机需要读回并检查写突发模式信号的正确性,以保证数据正确被写。

9: 该怎么选择突发模式大小?
A: 原则上可以任意选择突发模式的大小,然而,busrt会阻塞与该突发模式不相关的所有传输直到突发模式传输完成。但也有通过限制突发模式为OCP字的二进制幂长来获得性能优势。

10: 如果我的内核的突发模式代码大小与OCP的突发模式代码不匹配,该怎么办?
A: Burst只是个提示,不是保证。所以对除了最后一个传输外的所有传输,都可以用CONT的突发模式标志位,最后一个应用LAST标识。可以选择最大可用的突发模式大小,只要不超过突发模式长度的。例如,6个字的突发模式可以多次使用4个字的突发模式代码,直到剩余的字长小于4。

11: 能否传输超过8个OCP字的突发模式?
A: 能。见上。同样,传输可以继续设置突发模式标志位为8,只要剩余的传输数目超过8。

12: 可以提早终止突发模式传输吗?
A: 主机可以通过标志中间的传输为LAST来提前终止突发模式请求。然而,在提前终止突发模式后如果还需要进行另外的传输,应该对一些目标机进行逻辑清零。

13: OCP发起机在开始以后可以中断突发模式传输吗?
A: 只要把一个传输标志为LAST,就可以终止突发模式。这和中断突发模式又是不一样的。在OCP规范里,在传输开始后中断突发模式是不允许的。

14: 为什么我要在我的初始器代码中激活触发?
A: 在OCP内核可用的Burst信息类型主要用以表示从内存预取数据(读)或者保持内存体或页可写(写),另一个作用是资源锁定,一旦突发模式在OCP开始一个线程(端口),该线程(端口)只用于突发模式传输,同时锁住来自其他线程的所有命令直到突发模式完成。

15: 什么是单请求多数据(SRMD)burst?
A:

单请求多数据(SRMD)簇和精确簇一样,但是整个簇事务过程中只给出一次请求信息。这种SRMD 簇可以看做是“数据包”簇事务。


16: 二维block burst序列是如何处理的?
A:

在OCP2.2版本中,加入了新的二维模块簇地址序列。这种新的簇地址序列提供了详细指定的模块子序列的功能,每一个子序列遵循一般的递增簇地址序列模型。










概要 | OCP和其他技术的关系 | 突发模式 | 仿真&测试 | 线程&互连