发明名称 一种控制两种不同速度总线间数据传送的方法
摘要 本发明公开了一种控制两种不同速度总线间数据传送的方法。该方法包含:传送不同方向数据用的读FIFO和写FIFO、用于从写FIFO中收集写数据的写缓冲区0和写缓冲区1、用于在另外一条总线的数据进入读FIFO前缓冲数据的读缓冲区。本发明的优点有:1)读、写FIFO的控制逻辑相对简单;2)以较小的写FIFO深度就可以在发起方总线上获得理想的效率;3)写数据在写FIFO中停留的时间短,可以尽早地在目标方总线上发起写操作;4)以流水的方式处理读数据地传送;5)通过目标方总线接口地读写缓冲区处理发起方总线和目标方总线宽度不一致地情况。本发明可应用于控制两种不同速度总线间数据传送的桥接芯片的设计中。
申请公布号 CN100414524C 申请公布日期 2008.08.27
申请号 CN200510086446.1 申请日期 2005.09.20
申请人 中国科学院计算技术研究所 发明人 蔡飞;胡明昌;曾洪博;唐志敏
分类号 G06F13/38(2006.01) 主分类号 G06F13/38(2006.01)
代理机构 北京泛华伟业知识产权代理有限公司 代理人 高存秀
主权项 1. 一种控制两种不同速度总线间数据传送的方法,其中第二总线有比第一总线更宽的数据宽度和更高的频率;对于写数据过程,包括如下步骤:a)桥设备第一总线侧的接口发现该第一总线上的设备要将数据发送给第二总线;b)桥设备接收第一总线上设备的写请求并把所写的地址和数据依次写入写FIFO;c)桥设备第二总线侧的接口只要发现写FIFO非空就将写FIFO中的数据读入第一写缓冲区中直至第一写缓冲区被写满或读入第一总线设备写入的最后一个数据;d)桥设备第二总线侧的接口将第一写缓冲区中准备好的数据读取到第二总线上直至读完第一写缓冲区中的数据,在将第一写缓冲区的数据读取到第二总线上的同时,桥设备第二总线侧的接口继续将写FIFO中的数据写入第二写缓冲区中直至第一写缓冲区中的数据全部在第二总线上传送完或者第二写缓冲区满或者第一总线一侧设备写入的最后一个数据进入第二写缓冲区;e)判断第二写缓冲区是否准备好,如果是,执行下一步骤f);如果否,继续从写FIFO中读取数据到第二写缓冲区中直至第二写缓冲区准备好,然后执行步骤f);f)交换第二写缓冲区和第一写缓冲区的位置;g)重复步骤c)-e)直到第一总线设备的最后一个写数据传送到第二总线上;对于读数据过程,包括如下步骤:1)桥设备第一总线侧的接口发现第一总线上的设备要请求第二总线一侧的数据;2)桥设备接收第一总线上设备的读请求并把所请求的地址和相应的数据标识写入写FIFO;3)桥设备第二总线侧的接口将从写FIFO中读到的读请求转换为第二总线上的读请求;4)当第二总线上的第一个数据返回时,如果第一总线侧设备读请求的地址和在第二总线上发送的请求的地址不对齐,则第二总线侧的接口先将第一总线侧设备请求的数据直接写入读FIFO;5)第二总线侧的接口继续在向第二总线上请求随后的数据并将得到的数据放入读缓冲区直至读缓冲区满或者第一总线侧的设备已经读到其期望的最后一个数据或者已经读到的数据量达到了阈值;6)当读缓冲区满时,暂停在第二总线上的请求直到读缓冲区空闲的项数达到半满;7)第二总线侧的接口在读缓冲区中有数据并且第一总线侧的数据还未读到其期望的最后一个数据时将读缓冲区中的数据导入读FIFO中;8)当第一总线侧的设备在请求数据时,如果第一总线侧的接口看到读FIFO非空就将读FIFO中的数据返回给请求第一总线侧请求数据的设备直到读FIFO变空或者设备读到其期望的最后一个数据或者返回的数据已经达到阈值;9)重复步骤5)-8)直到第一总线侧的设备已经读到其期望的最后一个数据或者返回给设备的数据长度已经达到阈值。
地址 100080北京市海淀区中关村科学院南路6号