发明名称 一种不同速度总线间读传送的控制方法及系统
摘要 本发明公开了一种不同速度总线间读传送的控制方法,包括下列步骤:桥设备B类总线侧接口发出B类总线上的设备要请求A类总线一侧的数据的B类总线读请求,并将所述B类总线读请求的地址和数据标识送入请求FIFO,并从读FIFO中读取请求的数据并返回给B类总线上的设备;桥设备A类总线侧的接口从所述请求FIFO看到所述B类总线读请求后将所述B类总线读请求取出并开始在A类总线上发起A类总线读请求,对所述B类总线读请求所请求的读数据进行两个阶段的数据预取,并将A类总线上返回的读数据送入读FIFO。
申请公布号 CN101694646B 申请公布日期 2012.04.18
申请号 CN200910235308.3 申请日期 2009.09.30
申请人 中国科学院计算技术研究所 发明人 蔡飞;沈海华
分类号 G06F13/40(2006.01)I 主分类号 G06F13/40(2006.01)I
代理机构 北京律诚同业知识产权代理有限公司 11006 代理人 祁建国;梁挥
主权项 一种不同速度总线间读传送的控制方法,其特征在于,所述方法,包括下列步骤:步骤A.桥设备B类总线侧接口发出B类总线上的设备要请求A类总线一侧的数据的B类总线读请求,并将所述B类总线读请求的地址和数据标识送入请求FIFO,并从读FIFO中读取请求的数据并返回给B类总线上的设备;步骤B.桥设备A类总线侧的接口从所述请求FIFO看到所述B类总线读请求后将所述B类总线读请求取出并开始在A类总线上发起A类总线读请求,对所述B类总线读请求所请求的读数据进行两个阶段的数据预取,并将A类总线上返回的读数据送入读FIFO;其中A类总线为将采用接收方在接收到数据请求时知道当前数据请求传送数据长度并且读请求和读数据分离的总线协议的总线;B类总线为将采用接收方在接收到数据请求时不知道当前数据请求传送数据长度并且读请求和读数据不分离的总线协议的总线;所述步骤A,包括下列步骤:步骤A1.桥设备B类总线侧接口等待B类总线上的设备提交读请求,在接收到B类总线上的设备的B类总线读请求时,桥设备B类总线侧的接口在其接口内部的读记录中,记录已经提交的B类总线读请求;步骤A2.桥设备B类总线侧的接口发现B类总线上的设备要请求A类总线一侧的数据的B类总线读请求后,桥设备B类总线侧的接口检查所述读记录,判断所述读记录的标识位是否有效,若是,则执行步骤A4;否则,执行步骤A3;步骤A3.判断所述请求FIFO是否已满,若是,则执行步骤A7;否则,执行步骤A5;步骤A4.判断所述B类总线读请求的地址和所述读记录中记录的地址是否相符,若是,则执行步骤A6;否则,执行步骤A7;步骤A5.所述桥设备B类总线侧的接口在所述读记录中记录当前B类总线读请求并将该B类总线读请求送入所述请求FIFO,然后执行步骤A7;步骤A6.所述桥设备B类总线侧的接口等待读FIFO的非空信号,读FIFO的非空信号有效则执行步骤A8;否则,执行步骤A7;步骤A7.所述桥设备B类总线侧的接口执行PCI协议的重试操作,返回步骤Al;步骤A8.所述桥设备B类总线侧的接口从读FIFO中读取数据并在B类总线上为设备返回读数据;所述步骤B,包括下列步骤:步骤B1.第一阶段数据预取:桥设备A类总线侧的接口从所述请求FIFO的读端口看到B类总线读请求后,将B类总线读请求取出并开始在A类总线上对B类总线上设备所需的读数据进行长度最长为v0的读数据预取,并将返回的读数据送入读FIFO;步骤B2.第二阶段数据预取:根据桥设备B类总线侧的接口对B类总线上已传送的读数据的计数,每传送长度为阈值v1的读数据并且B类总线上设备尚未完成当前B类总线读请求则桥设备B类总线侧的接口通知桥设备A类总线侧的接口增加预取长度为阈值v1的数据,同时将A类总线上返回的读数据送入读FIFO。步骤B3.A类总线侧接口停止未完成的预取读数据操作并丢弃读数据通路上所有的读数据;随后返回步骤Bl。
地址 100080 北京市海淀区中关村科学院南路6号