一种不同速度总线间读传送的控制方法及系统技术方案

技术编号:4247961 阅读:176 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种不同速度总线间读传送的控制方法,包括下列步骤:桥设备B类总线侧接口发出B类总线上的设备要请求A类总线一侧的数据的B类总线读请求,并将所述B类总线读请求的地址和数据标识送入请求FIFO,并从读FIFO中读取请求的数据并返回给B类总线上的设备;桥设备A类总线侧的接口从所述请求FIFO看到所述B类总线读请求后将所述B类总线读请求取出并开始在A类总线上发起A类总线读请求,对所述B类总线读请求所请求的读数据进行两个阶段的数据预取,并将A类总线上返回的读数据送入读FIFO。

【技术实现步骤摘要】

本专利技术涉及计算机系统数据传输
,特别是涉及一种不同速度总线间读传送的控制方法及系统
技术介绍
计算机系统中通常使用一种叫做桥的芯片将不同的总线相互隔离。当一条总线上 的设备要请求其它总线上的资源时,由桥负责将这条总线上的操作转换为其所请求资源所 在总线上的操作。由于总线在物理和结构上的限制,每条总线上只能挂载数量有限的设备。 因此很多计算机系统在结构上使用多条相互隔离的总线来提供系统功能的扩展。这些相互 隔离的总线可以使用相同协议,也可以使用不同协议。不同总线间的协议转换由用来隔离 这些总线的桥负责完成。经过桥的转换,一条总线上的设备就可以和其它总线上的设备相 互交换数据。通常,桥对于与之相连的总线上的设备来说是透明的。在一条总线上的设备 看来,桥也是这条总线上的设备。总线上的设备是通过向桥发送读写请求来和与桥相连的 其它总线上的设备交换数据的。 美国专利号为6, 460, 108的专利中公开的方法,该方法的主要方案是在写传送 中,发起方总线的接口将数据写入写FIFO,目标方总线接口通过写FIFO的控制信号判断写 FIFO中是否有足够的数据在目标方总线上发起一次写操作,如果写FIFO中有足够的数据 就在目标方总线发起写操作;在读传送中,发起方总线接口向目标方总线接口提交请求后, 目标方总线接口在目标方总线上发起操作并将接收到的数据写入读FIFO,当读FIFO中的 数据量达到FIFO容量的一半(64字节)时,发起方总线接口开始在发起方总线上返回数 据;只要读FIFO未满,目标方总线接口就保持在目标方总线上得数据预取直到发起方总线 上返回了足够的数据。该方法的不足在于读FIFO和写FIFO需要比较复杂的控制逻辑表 明FIFO中的有效数据的长度,写数据需要在写FIFO中停留较长的时间,为了提高发起方总 线在数据传送时的总线效率需要较大深度的写FIFO和读FIFO。在处理长度较短的读传送 时,在目标方总线过度预取数据,进而对目标方总线的带宽造成较大浪费的缺点。 另外,中国专利号为ZL200510086446. 1的专利中公开的方法,该方法的主要方 案是在写传送中,发起方总线接口将写数据送入写FIFO进行时钟域的转换,目标方总线 接口看到写FIFO中的数据后利用写缓冲对写FIFO中的数据进行收集和格式转换后在目 标方总线提交写数据;在读传送中,发起方总线接口通过写FIFO向目标方总线接口提交 读请求,目标方总线接口在看到读请求后开始在目标方总线上开始对请求的数据进行预 取,预取的数据从目标方总线返回后经过读缓冲进行格式转换后进入读FIFO,发起方总线 接口从读FIFO看到有效数据后开始在发起方总线上返回数据,当目标方总线接口预取的 数据量达到设定值或者发起请求的设备结束取数时目标方总线接口停止在目标方总线上 的读数操作并将不需要的数据丢弃。该方法可以有效的减少不同速度的总线间发起读操 作时数据返回的延迟并降低不同速度的总线间发起写操作时达到相同总线效率时所需要 的写FIFO的深度以及写数据在总线上完成提交的延迟。上述两项专利中均存在相同的缺陷即不同速度的总线间发起读传送时存在过度预取数据的问题。此外,中国专利号为 ZL200510086446. 1的专利中公开的方法还存在不同速度的总线间发起读请求传送时总 线上能够出现的最长的单次数据传送的长度受限于读FIFO的深度的缺陷。
技术实现思路
本专利技术的目的在于提供一种不同速度总线间读传送的控制方法,其是一种自适应 的控制B类总线向A类总线发起读传送的方法,其通过在A类总线上对读数据进行两个阶 段的预取,可以使B类总线上单次读传送能够传送的数据长度摆脱读FIFO大小的限制的同 时减少过度预取对目标方总线带宽的浪费,实现快速高效地完成对A类总线的访问。 为实现本专利技术的目的而提供的一种不同速度总线间读传送的控制方法,包括下列 步骤 步骤A.桥设备B类总线侧接口发出B类总线上的设备要请求A类总线一侧的数 据的B类总线读请求,并将所述B类总线读请求的地址和数据标识送入请求FIFO,并从读 FIFO中读取请求的数据并返回给B类总线上的设备; 步骤B.桥设备A类总线侧的接口从所述请求FIFO看到所述B类总线读请求后将 所述B类总线读请求取出并开始在A类总线上发起A类总线读请求,对所述B类总线读请 求所请求的读数据进行两个阶段的数据预取,并将A类总线上返回的读数据送入读FIFO。 所述步骤A,包括下列步骤 步骤Al.桥设备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类总线读请求送入所述请求FIF0,然后执行步骤A7 ; 步骤A6.所述桥设备B类总线侧的接口等待读FIFO的非空信号,读FIFO的非空 信号有效则执行步骤A8 ;否则,执行步骤A7 ; 步骤A7.所述桥设备B类总线侧的接口执行PCI协议的重试操作,返回步骤A1 ; 步骤A8.所述桥设备B类总线侧的接口从读FIFO中读取数据并在B类总线上为 设备返回读数据。 所述读记录,用于记录所述已经提交的B类总线读请求的记录,包含一个用于记 录B类总线读请求地址的32位寄存器和一个标识B类总线读记录是否有效的1位寄存器。 步骤A8中,所述桥设备B类总线侧的接口在B类总线上每返回一个数据周期的数 据,就将读记录标识中32位的地址寄存器的值增加一个数据周期数据的长度。 所述桥设备B类总线侧接口每在B类总线上返回长度为vl的数据并且请求数据的B类总线上设备尚未读取其所需全部数据时,就向桥设备A类总线侧接口发送一次增加 预取信号;如果B类总线上当前读取数据的设备获得了其全部所需的数据,桥设备B类总线 侧接口在产生读传送终止信号的同时执行步骤Al 。 所述步骤B,包括下列步骤 步骤Bl.第一阶段数据预取桥设备A类总线侧的接口从所述请求FIFO的读端口看到B类总线读请求后,将B类总线读请求取出并开始在A类总线上对B类总线上设备所需的读数据进行长度最长为vO的读数据预取,并将返回的读数据送入读FIFO ; 步骤B2.第二阶段数据预取根据桥设备B类总线侧的接口对B类总线上已传送的读数据的计数,每传送长度为阈值vl的读数据并且B类总线上设备尚未完成当前B类总线读请求则桥设备B类总线侧的接口通知桥设备A类总线侧的接口增加预取长度为阈值vl的数据,同时将A类总线上返回的读数据送入读FIFO。 步骤B3. A类总线侧接口停止未完成的预取读数据操作并丢弃读数据通路上所有的读数据;随后返回步骤Bl本文档来自技高网
...

【技术保护点】
一种不同速度总线间读传送的控制方法,其特征在于,所述方法,包括下列步骤:    步骤A.桥设备B类总线侧接口发出B类总线上的设备要请求A类总线一侧的数据的B类总线读请求,并将所述B类总线读请求的地址和数据标识送入请求FIFO,并从读FIFO中读取请求的数据并返回给B类总线上的设备;    步骤B.桥设备A类总线侧的接口从所述请求FIFO看到所述B类总线读请求后将所述B类总线读请求取出并开始在A类总线上发起A类总线读请求,对所述B类总线读请求所请求的读数据进行两个阶段的数据预取,并将A类总线上返回的读数据送入读FIFO。

【技术特征摘要】
一种不同速度总线间读传送的控制方法,其特征在于,所述方法,包括下列步骤步骤A.桥设备B类总线侧接口发出B类总线上的设备要请求A类总线一侧的数据的B类总线读请求,并将所述B类总线读请求的地址和数据标识送入请求FIFO,并从读FIFO中读取请求的数据并返回给B类总线上的设备;步骤B.桥设备A类总线侧的接口从所述请求FIFO看到所述B类总线读请求后将所述B类总线读请求取出并开始在A类总线上发起A类总线读请求,对所述B类总线读请求所请求的读数据进行两个阶段的数据预取,并将A类总线上返回的读数据送入读FIFO。2. 根据权利要求1所述的不同速度总线间读传送的控制方法,其特征在于,所述步骤 A,包括下列步骤步骤Al.桥设备B类总线侧接口等待B类总线上的设备提交读请求,在接收到B类总 线上的设备的B类总线读请求时,桥设备B类总线侧的接口在其接口内部的读记录中,记录 已经提交的B类总线读请求;步骤A2.桥设备B类总线侧的接口发现B类总线上的设备要请求A类总线一侧的数据 的B类总线读请求后,桥设备B类总线侧的接口检查所述读记录,判断所述读记录的标识位 是否有效,若是,则执行步骤A4 ;否则,执行步骤A3 ;步骤A3.判断所述请求FIF0是否已满,若是,则执行步骤A7 ;否则,执行步骤A5 ;步骤A4.判断所述B类总线读请求的地址和所述读记录中记录的地址是否相符,若是, 则执行步骤A6 ;否则,执行步骤A7 ;步骤A5.所述桥设备B类总线侧的接口在所述读记录中记录当前B类总线读请求并将 该B类总线读请求送入所述请求FIF0,然后执行步骤A7 ;步骤A6.所述桥设备B类总线侧的接口等待读FIFO的非空信号,读FIFO的非空信号 有效则执行步骤A8 ;否则,执行步骤A7 ;步骤A7.所述桥设备B类总线侧的接口执行PCI协议的重试操作,返回步骤A1 ;步骤A8.所述桥设备B类总线侧的接口从读FIFO中读取数据并在B类总线上为设备 返回读数据。3. 根据权利要求2所述的不同速度总线间读传送的控制方法,其特征在于,所述读记 录,用于记录所述已经提交的B类总线读请求的记录,包含一个用于记录B类总线读请求地 址的32位寄存器和一个标识B类总线读记录是否有效的1位寄存器。4. 根据权利要求2所述的不同速度总线间读传送的控制方法,其特征在于,步骤A8中, 所述桥设备B类总线侧的接口在B类总线上每返回一个数据周期的数据,就将读记录标识 中32位的地址寄存器的值增加一个数据周期数据的长度。5. 根据权利要求2所述的不同速度总线间读传送的控制方法,其特征在于,所述桥设 备B类总线侧接口每在B类总线上返回长度为vl的数据并且请求数据的B类总线上设备 尚未读取其所需全部数据时,就向桥设备A类总线侧接口发送一次增加预取信号;如果B类 总线上当前读取数据的设备获得了其全部所需的数据,桥设备B类总线侧接口在产生读传 送终止信号的同时执行步骤Al 。6. 根据权利要求2所述的不同速度总线间读传送的控制方法,其特征在于,所述步骤 B,包括下列步骤步骤Bl.第一阶段数据预取桥设备A类总线侧的接口从所述请求FIFO的读端口看到B类总线读请求后,将B类总线读请求取出并开始在A类总线上对B类总线上设备所需的读 数据进行长度最长为v0的读数据预取,并将返回的读数据送入读FIFO ;步骤B2.第二阶段数据预取根据桥设备B类总线侧的接口对B类总线上已传送的读 数据的计数,每传送长度为阈值vl的读数据并且B类总线上设备尚未完成当前B类总线读 请求则桥设备B类总线侧的接口通知桥设备A类总线侧的接口增加预取长度为阈值vl的 数据,同时将A类总线上返回的读数据送入读FIFO。步骤B3. A类总线侧接口停止未完成的预取读数据操作并丢弃读数据通路上所有的读 数据;随后返回步骤Bl。7. 根据权利要求6所述的不同速度总线间读传送的控制方法,其特征在于,所述步骤 Bl,包括下列步骤步骤Bl 1.桥设备A类总线侧接口检查所述请求FIFO中是否有B类总线侧接口提交的 新的读请求,若是,则执行步骤B12,否则保持步骤Bll ;步骤B12.桥设备A类总线侧的接口从所述请求FIFO中将B类总线读请求的地址载入 所述桥设备A类总线侧的接口中的地址计数器,同时将所述桥设备A类总线侧的接口中的 预取数据计数器的值设为阈值v0,随后执行步骤B13 ;步骤B13.判断是否收到B类总线侧接口发送的读传送终止信号,若是,则执行步骤B3 ; 否则,执行步骤B14;步骤B14.判断是否满足预取数据计数器的值等于0或者收到B类总线侧接口发送的 增加预取信号二者其一,若任何一个得到满足,则执行步骤B2,进行第二阶段数据预取;否 则执行步骤B15 ;步骤B15. A类总线侧接口在A类总线上每发送一个A类总线读请求,预取数据计数器 的值减去这个A类总线读请求在A类总线上读取数据的长度值,A类总线侧的接口上的待 返回数据计数器的值增加当前A类总线读请求所请求的读数据的长度值;同时当读数据返 回时,将预取的数据送入所述读FIFO, A类总线侧的接口上的待返回数据计数器的值减去 当前返回的读数据的长度值;A类总线侧接口在A类总线上完成一次读请求的发送后,返回 步骤B13。8. 根据权利要求6所述的不同速度总线间读传送的控制方...

【专利技术属性】
技术研发人员:蔡飞沈海华
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1