1: 什么是OCP传输?
A: 在OCP1.0有两种OCP传输,写传输和读传输。当OCP主机给从机发出一个写请求,指定了与请求相关的从机存储数据的地址。当从机接受到请求、数据和数据地址后,写传输就开始了。同样,当主机发出一个读请求,同样定义了与请求相关的读取数据的地址。当主机接受到数据后,读传输就开始了。最后,OCP定义了一个广播传输,与写传输类似,但它将请求广播给与接受从机接口相连的所有实体。
2: 什么是OCP事务?
A: 多个相同类型的请求传输可以组成为一个事务,也称为突发模式。需要注意的是它不是一个长传输(象PCI一样),而是一个连接在一起的单个传输序列。
3: OCP的触发模型是什么?
A: OCP1.0定义了两个触发地址序列模型,存储器触发(增量)和FIFO触发(流)。它也允许两个额外的应用---定义触发模型。在四个模型当中的每一个模型,触发代码的各自传输都与信号触发交易相关联。OCP2.0针对触发模型有了显著的增强,包含物外的触发抵制序列模型,同时增加了精确的触发和单请求多数据(single-request multiple-data)触发模型。此外,封包,转悠的或(异或)和未知抵制序列都被增加到了一系列的触发地址序列模型当中。OCP2.0提供三个常用的触发模型:OCP1.0使用的非精确触发模型,精确的触发模型和单请求多数据触发(single-request multiple-data)模型。
4: 递增突发模式和流线突发模式的区别是什么?
A: 在增量突发模式中目标地址随着突发模式中的每个传输递增。增量值为OCP的字长。在流线(streaming)突发模式中,目标地址保持不变。无论哪种突发模式,OCP主机需要提供每个突发模式传输的正确地址,表明最后一个传输为LAST。
5: 这些触发代码意味着什么?
A: 在这些非精确触发的事例中,触发代码仅仅是来自于初始器的线索,以确认这个触发交易将持续多长时间。最后一个传输将与一个有LAST触发标签值的触发相关联。这是唯一能够非常明确说明的触发值。在精确触发的事例中,可以提供每个传输要求的信息,但是在一个完整的交易中触发长度是固定的。
6: 是不是触发读时间图表定义传输的数量或者字节的数量?
A: MBurstLength定义包含在触发中的OCP字的数量,不是字节的数量。既然OCP接口能够被赋予1到16字节的任何值,那么这个触发代码指定了一个即将要被传输的触发的OCP字的数量。
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) 触发?
A: 单请求多数据触发 (SRMD) 与精确触发一样,但请求信息在整个触发流程中只给出一次。这种SRMD触发可以被认为是一种“数据包”触发。
了解更多关于OCP在突发模式方面的知识,请访问http://www.ocpip.org/chinese/faqs/bursting。