CN1556642A - Pos-phy总线与pci总线间的数据包转发的装置和方法 - Google Patents

Pos-phy总线与pci总线间的数据包转发的装置和方法 Download PDF

Info

Publication number
CN1556642A
CN1556642A CNA2003101176667A CN200310117666A CN1556642A CN 1556642 A CN1556642 A CN 1556642A CN A2003101176667 A CNA2003101176667 A CN A2003101176667A CN 200310117666 A CN200310117666 A CN 200310117666A CN 1556642 A CN1556642 A CN 1556642A
Authority
CN
China
Prior art keywords
packet
pci
pos
bus
phy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2003101176667A
Other languages
English (en)
Other versions
CN100375484C (zh
Inventor
王志忠
刘衡祁
易湘嵘
刘启明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB2003101176667A priority Critical patent/CN100375484C/zh
Publication of CN1556642A publication Critical patent/CN1556642A/zh
Application granted granted Critical
Publication of CN100375484C publication Critical patent/CN100375484C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的一种POS-PHY总线与PCI总线间的数据包转发的装置和方法,该装置为一桥接转换装置,其包括以下子模块:PCI总线接口模块、PCI主设备控制模块、PCI从设备控制模块、收发仲裁模块、PCI配置寄存器、PCI空间寄存器、数据接收模块、数据发送模块、POS-PHY接口模块;所述PCI总线接口模块外部连接PCI总线,所述POS-PHY接口模块外部连接POS-PHY总线。本发明的装置和方法完成数据包在POS-PHY总线和PCI总线之间进行转发,提出了一种数据包在PCI总线上高效传输的方法,并且在传输中数据包不容易丢失。

Description

POS-PHY总线与PCI总线间的数据包转发的装置和方法
技术领域
本发明涉及一种总线转换的方法,尤其涉及数据包在POS-PHY总线与PCI总线之间转发的方法与装置。
背景技术
随着城域网(MAN)的快速发展,同步光网(SONET)/同步数字分级结构(SDH,来自于Synchronous Digital Hierarchy)技术成为一种广泛使用的传输技术,它能提供低延迟恢复和弹性功能,并且利用分组传输技术提供宽带多工功能。很多网络设备都提供各种速率的SDH上的分组协议POS(Packet Over SDH)接口,在线路侧利用一片物理层(PHY)芯片完成三层以下处理功能,之后将数据包送到CPU或网络处理器进行三层以上的数据包处理。
目前只有一些专用CPU或网络处理器能够通过POS-PHY总线(PacketOver SONET PHYsical)直接与POS二层芯片接口,大多数的通用CPU(如motolora公司的MPC8240)和网络处理器(如intel公司的IXP1200)并不提供这样的接口,所以有必要将数据包从POS-PHY总线转换到PCI总线,以供CPU处理。
在PCI总线应用中,数据的传输性能是必须认真考虑的,不同的数据处理方式将对数据的传输性能产生很大的影响,DMA(Direct MemoryAccess直接存储器存取)方式是目前比较有效的传输方式,在这种方式下,CPU不需要主动发起数据存取的操作,只要作一些简单的控制即可,这样CPU的占用很少,提高了数据处理的速度。但是在高速的数据包传输系统中,如何充分利用DMA操作以及如何将CPU的占用降到最少,还有待研究。
在现有的数据包收发装置设计中,由于系统侧和线路侧的数据传输速率不一致,很容易在传输中出现上溢或下溢的情况,这样数据包在传输的过程中就会丢失,现有技术的方法很难将系统侧和线路侧的数据传输进行有效的协调,因此现有技术存在明显技术缺陷,而有待改进和发展。
发明内容
本发明的目的在于提供一种POS-PHY总线与PCI总线间的数据包转发的装置和方法,完成数据包在POS-PHY总线和PCI总线之间进行转发,完成数据包在二层处理模块与进行三层处理的CPU或网络处理器之间的转发,并提出一种数据包在PCI总线上高效传输的方法,有效解决现存方案中数据包容易丢失的问题。
本发明的技术方案如下:
一种POS-PHY总线与PCI总线间的数据包转发的装置,为一桥接转换装置,其包括以下子模块:PCI总线接口模块、PCI主设备控制模块、PCI从设备控制模块、收发仲裁模块、PCI配置寄存器、PCI空间寄存器、数据接收模块、数据发送模块、POS-PHY接口模块;所述PCI总线接口模块外部连接PCI总线,所述POS-PHY接口模块外部连接POS-PHY总线;以及
所述PCI主设备控制模块与所述PCI总线接口模块以及所述收发仲裁模块通讯连接,完成数据包的主动接收和发送,并通过直接存储器存取方式直接从内存中取包或收包;
所述PCI从设备控制模块与所述PCI总线接口模块以及分别与所述PCI配置寄存器和所述PCI空间寄存器通讯连接,完成所述CPU对该桥接转发装置的配置及控制;
所述收发仲裁模块还与所述数据接收模块和所述数据发送模块分别通讯连接,完成接收和发送两个操作的仲裁;
所述数据接收模块还与所述POS-PHY接口模块通讯连接,完成对POS_PHY的数据接收,并向PCI主设备控制模块发出接收数据请求;
所述数据发送模块还与所述POS-PHY接口模块通讯连接,从所述PCI总线接收数据,并将数据发送到所述POS-PHY总线;
所述PCI总线接口模块完成对所述PCI总线的地址数据线及控制线的处理,在地址期完成所述PCI总线的地址译码并作为相应的响应,在数据期将数据包按突发传输方式接收或发送数据包;
所述POS-PHY接口模块完成对POS-PHY数据和控制总线的处理,产生对物理层的控制信号;
所述从设备控制模块在PCI配置期,所述CPU对配置寄存器进行初始化,完成对PCI设备状态的识别;并对基地址寄存器进行初始化,完成PCI设备在内存中的地址映射,同时还通过PCI配置空间中的总线控制状态寄存器获取该桥接转发装置所支持的操作。
所述的装置,其中,所述桥接转换装置由一片现场可编程逻辑门阵列实现,其把一个带有POS-PHY总线的二层处理模块与三层处理模块连接起来,以实现数据包在这两个模块之间的双向转发。
所述的装置,其中,所述数据接收模块包括一个预定字节空间的上行异步FIFO,一上行读写控制逻辑包括上行FIFO输入控制和上行FIFO输出控制,一上行缓存描述符表处理模块四个子模块,该异步FIFO完成了数据包在两个时钟域的转换。
所述的装置,其中,所述数据发送模块包括一个预定字节空间的下行异步FIFO,一下行读写控制逻辑包括下行FIFO输入控制和下行FIFO输出控制,以及一下行缓存描述符表处理模块四个子模块,所述预定字节空间的异步FIFO完成数据包在两个时钟域的转换。
所述的方法,其中,所述预定字节空间大小为2K。
一种POS-PHY总线与PCI总线间的数据包转发的方法,该方法设置有上行及下行缓存描述链表,每一链表皆由缓存描述表构成环形链表,其包括对数据包的上行和下行处理:
所述对数据包的上行处理包括:
所述现场可编程逻辑门阵列收到64字节或一个小包,查询内存中上行缓存描述链表中第一个缓存描述表的内容,如果内存为空,则获取相应空闲内存的地址,并将数据包传到此内存中;
当完成一个整包的传送后,将所述缓存描述表置为有包状态,同时填入长度信息,上报有包中断即发起中断通知软件处理;同时缓存描述表地址加l,指向下一张缓存描述表;
如果所述现场可编程逻辑门阵列仍然有包就重复上述流程;如果发现内存已经用尽,则上报数据满的中断;
所述对数据包的下行处理包括:
当软件向所述内存中写一个数据包后,更新下行缓存描述链表,设置有包标志,填入数据包的地址,同时将所述现场可编程逻辑门阵列的下行启动寄存器写1;
所述现场可编程逻辑门阵列开始后,检查所述下行启动寄存器,一旦不为0,就开始读取下行缓存描述链表,如果该下行缓存描述链表的缓存描述表指示有包,就根据该缓存描述表中的包长度,启动直接存储器存取,开始收该内存中的整个数据包;
完毕后,将该缓存描述表的相应表项标志置空;接着对缓存描述表地址加1,检查下一张缓存描述表是否为空,如果不为空,即重复上述流程,如果为空,则依据下行启动寄存器是否大于0来决定是否收包;
下行数据包的处理采取整包模式,即所述现场可编程逻辑门阵列收到一个完整的包以后才会启动下行FIFO输出控制状态机。
所述的方法,其中,所述内存用尽时为防止不停地上报FIFO满中断,所述现场可编程逻辑门阵列停止查询所述缓存描述表,等待软件处理或者改为每隔256个时钟周期查询一次情况;一旦软件处理完内存的数据包,则由软件启动所述现场可编程逻辑门阵列上行端继续工作。
所述的方法,其中,所述下行启动寄存器为一个8位双向下行包计数器,当软件写一次,下行包计数器加1;当所述现场可编程逻辑门阵列完成一次收包后,包计数器减1。
本发明所提供的一种POS-PHY总线与PCI总线间的数据包转发的装置和方法,由于采用了缓存描述表实现CPU与总线转换器的通信,缓存描述表中描述了数据存放的地址、长度、数据包内容正确与否以及内存的占用情况等信息,而由缓存描述表组成的缓存描述链表存放于内存中,减少了CPU访问PCI总线的次数,而且减少了对FPGA资源的占用。
本发明的数据包的收发由总线转换器主动发起,总线转换器作为PCI传输的主设备,利用了内存作为缓存,使得软件有足够的时间来完成数据处理;上行数据包按分片的突发传输burst方式传送,即无须收到完整的数据包即可以向PCI总线发出数据,这样可以在PCI总线带宽下完全避免上溢错误的产生;而下行采用整包方式传送,可通过限制包的大小来避免传输中下溢错误的出现。
本发明合理地划分数据通道,在PCI主设备端分为地址通道和数据通道,在PCI从设备端分为PCI配置寄存器和PCI空间寄存器。所有数据及地址线的输出只经过一级多路选择开关及D触发器输出,降低信号的输出延迟及抖动。采用带循环优先的两级仲裁机制,分别对PCI主从设备操作、数据包上下行操作进行仲裁,保证数据包的上行和下行有相同的机会使用PCI总线。
附图说明
附图中,
图1为本发明的POS-PHY总线与PCI总线间的数据包转发的装置的总体结构框图;
图2示出的是本发明的POS-PHY总线与PCI总线间的数据包转发的装置中的所述数据接收模块的内部结构及外部连接;
图3示出的是本发明的POS-PHY总线与PCI总线间的数据包转发的装置中的所述数据发送模块的内部结构及外部连接;
图4A为本发明的POS-PHY总线与PCI总线间的数据包转发的方法中的上行现场可编程逻辑门阵列FPGA内部数据处理流程图;
图4B为本发明的POS-PHY总线与PCI总线间的数据包转发的方法中的上行现场可编程逻辑门阵列FPGA的驱动软件流程图;
图5A为本发明的POS-PHY总线与PCI总线间的数据包转发的方法中的下行现场可编程逻辑门阵列FPGA内部数据处理流程图;
图5B为本发明的POS-PHY总线与PCI总线间的数据包转发的方法中的下行现场可编程逻辑门阵列FPGA的驱动软件流程图;
图6为本发明的POS-PHY总线与PCI总线间的数据包转发的装置和方法中的缓存描述符表BD链表的结构示意图。
具体实施方式
以下通过对本发明的具体较佳实施例的详细描述,将使本发明的技术方案及其有益效果显而易见。
本发明的POS-PHY总线与PCI总线间的数据包转发的装置和方法,是通过一种总线间的桥接转发装置,亦可称为“总线转换器”,来完成数据包在POS-PHY总线和PCI总线间的双向转发,该装置由一片现场可编程逻辑门阵列FPGA实现,FPGA是一种大规模可编程器件。
本发明装置和方法中所有数据包的传输都通过DMA方式完成,这样CPU的利用较少,降低了系统的负担,提高了数据传输的速度。对于数据的上行和下行采用不同的突发传输(burst)方式。在上行方向,每收到64字节或一个小包(小于64字节的包定义为小包,下同)即发起一次burst传输,将数据写入内存;在下行方向,burst长度可以由软件配置,数据包可以只用一次burst完成整个包的传输,也可以分几次burst传输。
本发明装置和方法利用了一种缓存描述符表(Buffer Descriptor Table,通常简称为“BD表”)实现CPU与总线转换器的通信,缓存描述表中描述了数据存放的地址、长度、数据包内容正确与否以及内存的占用情况等信息。上行和下行各有一个包含有128个表项的缓存描述链表(BD Ring),缓存描述链表存放于内存中,总线转换器中只包含当前缓存描述表的相关信息,这样做减少了CPU访问PCI总线的次数,而且减少了对FPGA资源的占用。
数据包的收发都由总线转换器主动发起,总线转换器作为PCI传输的主设备,利用了内存作为缓存,使得软件有足够的时间来完成数据处理。上行数据包按分片的突发传输burst方式传送,即无须收到完整的数据包即可以向PCI总线发出数据,这样可以在PCI总线带宽下完全避免上溢错误的产生;而下行采用整包方式传送,可通过限制包的大小来避免传输中下溢错误的出现。
合理地划分数据通道,在PCI主设备端分为地址通道和数据通道,在PCI从设备端分为PCI配置寄存器和PCI空间寄存器。所有数据及地址线的输出只经过一级多路选择开关及D触发器输出,降低信号的输出延迟及抖动。只经过一级多路选择开关,可以减少信号在FPGA内部门电路之间的异步延迟,通过D触发器输出可以使所有同一时钟域的信号保持同步。
采用带循环优先的两级仲裁机制,分别对PCI主从设备操作、数据包上下行操作进行仲裁,保证数据包的上行和下行有相同的机会使用PCI总线。由于本发明装置与外部系统只有一套PCI总线,所以各个操作占用PCI总线之前必须经过仲裁,以获取对PCI总线的控制权,各种操作,包括PCI主设备操作、从设备操作,其中所述PCI主设备操作又包括数据包的上行和下行两种操作方式,各种操作以均等的机会占用PCI总线,这种仲裁方式称为循环优先的乒乓调度方法。
本发明中的总线桥接转换装置,即所述总线转换器,其总体结构框图如图1所示,共分为以下9个子模块:PCI总线接口模块101、PCI主设备控制模块102、PCI从设备控制模块103、收发仲裁模块104、PCI配置寄存器105、PCI空间寄存器106、数据接收模块107、数据发送模块108、POS-PHY接口模块109。整个装置由一片FPGA实现,其外部连接分别通过对应接口模块的是PCI总线和POS-PHY总线,该桥接转发装置可以把一个带有POS-PHY总线的二层处理模块与三层处理模块连接起来,实现数据包在这两个模块之间的双向转发。
所述PCI总线接口模块101主要完成对所述PCI总线的地址数据线及控制线的处理,在地址期完成所述PCI总线的地址译码并作为相应的响应,在数据期将数据包按burst方式接收或发送数据包。该模块同时还完成对所述PCI总线的进行奇偶校验并给出相应的信息。该模块以循环优先方式完成PCI_MASTER和PCI_SLAVE主从两种PCI操作的仲裁。
所述PCI主设备控制模块102主要完成数据包的接收和发送,所述数据包的接收和发送都是由本发明中的桥接转发装置主动发起的,通过DMA方式直接从内存中取包或收包。
所述PCI从设备控制模块103主要完成CPU对该桥接转发装置的配置及控制。在PCI配置期,CPU对配置寄存器进行初始化,完成对PCI设备状态的识别,由于所述配置寄存器还包括基地址寄存器和总线控制状态寄存器,所述CPU并对所述基地址寄存器进行初始化,完成PCI设备在内存中的地址映射,同时还通过PCI配置空间中的所述总线控制状态寄存器获取该桥接转发装置所支持的操作。除了完成PCI配置期间的操作,所述从设备控制模块103还接收该CPU发包的启动命令,该命令通过所述CPU发起的PCI memory写完成,并将此命令传送通知软件处理到PCI主设备控制模块102。
所述收发仲裁模块104完成接收和发送两个操作的仲裁。该仲裁模块采取乒乓调试算法,使得数据包的上行和下行均有相同的机会获得PCI总线,同时将PCI_MASTER成功与否的指示分别反馈给上、下行的请求。如果PCI操作失败,仍然给原申请方占用PCI_MASTER的机会,直到成功切换到另一方。
所述数据接收模块107完成POS_PHY的数据接收,并向PCI_MASTER模块发出接收数据请求。所述数据接收模块107的内部结构及外部连接如附图2所示,该数据接收模块107包括一个2K字节空间的上行异步FIFO201(first in first out,先进先出),一上行读写控制逻辑即上行FIFO输入控制202和上行FIFO输出控制203,一上行缓存描述表处理模块204四个子模块。该2K字节的异步FIFO完成了数据包在两个时钟域的转换。
须注意的是,在通常的包传输系统中,往往定义最大传输单元为2K字节,本发明的模块中的上行及下行FIFO都设为2K,是为了可以用来存放一个最大为2K字节的包。
所述数据发送模块108从所述PCI总线接收数据,根据FIFO的状态发送FIFO_RDY准备好的信号,并将FIFO中的数据发送到POS-PHY总线。数据发送模块的内部结构及外部连接如图3所示,其包括一个2K字节空间的下行异步FIFO 301,一下行读写控制逻辑即下行FIFO输入控制303和下行FIFO输出控制302,以及一下行缓存描述表处理模块304四个子模块。所述2K字节的异步FIFO完成了数据包在两个时钟域的转换。
以下为图2和图3中所示各接口的含义:
RENB:receive enable,接收使能;
RVAL:receive data valid,接收数据有效;
RPA:receive packet available,接收数据包有效;
RSOP:receive start of packet,接收侧包头;
REOP:receive end of packet,接收侧包尾;
RERR:receive error,接收错误;
POS_RDATA:pos_phy总线接收侧数据信号,接收FIFO的输入数据;
FIFO_DATA:接收FIFO的输出数据;
RxREQ:receive request接收请求;
RxGND:receive grant接收响应;
RxBD_data:接收BD表数据;
RxBD_addr:接收BD表地址;
RxPacket_addr:接收包地址;
RxBD_content:接收BD表内容;
TENB:transmit enable,发送使能;
TVAL:transmit data valid,发送数据有效;
TPA:transmit packet available,发送数据包有效;
TSOP:transmit start of packet,发送侧包头;
TEOP:transmit end ofpacket,发送侧包尾;
TERR:transmit error,发送错误;
POS_TDATA:pos_phy总线发送侧数据信号,发送FIFO的输出数据;
FIFO_DATA:发送FIFO的输入数据;
TxREQ;transmit request接收请求;
TxGND:transmit grant接收响应;
TxBD_data:发送BD表数据;
TxBD_addr:发送BD表地址;
TxPacket_addr:发送包地址;
TxBD_content:发送BD表内容;
FIFO_RDY:FIFO ready:表示FIFO准备好,可以用来存放数据;
RX_FIFO:接收FIFO,用来存放数据,相对应有TX_FIFO。
所述POS-PHY接口模块109完成对POS-PHY数据和控制总线的处理,产生对PHY的控制信号。
所述FPGA和软件通过缓存描述表(buffer descriptor)实现交互的收发包操作。128个缓存描述表组成一个缓存描述链表(BD ring),如图6所示的,该缓存描述链表采用环形链表的方式,上行和下行各有一个深度为128的缓存描述链表,用于在所述CPU和所述FPGA之间传递包缓存的信息,完成数据包的转发。其上行和下行各有一个缓存描述链表,缓存描述链表存放在内存中,每个缓存描述表项包含64位,由两个32位的数据构成,如下表所示。
缓存描述表格式
31     30      29:16      15:0
OWN    ERR                PACKET_LENTH
BUFFER_ADDR_INDEX
OWN:1表示有包,0表示无包。
ERR:表示此包是坏包还是好包。
PACKET_LENTH:包的长度。
BUFFER_ADDR_INDEX:包所在内存的地址。
以下描述本发明的POS-PHY总线与PCI总线间的数据包转发的方法中对数据包的上行处理步骤:
对数据包的上行处理时所述FPGA和软件的具体操作流程分别如图4A和图4B所示。
所述软件完成初始化,同时启动所述FPGA收包。所述FPGA收到64字节(或一个小包),以PCI_MASTER方式查询内存中上行缓存描述链表中第一个缓存描述表的内容,如果内存为空,则获取相应空闲内存的地址,并将数据包传到此内存中。
当完成一个整包的传送后,将缓存描述表OWN标志置为有包状态,同时填入长度信息,上报有包中断即发起中断通知软件处理,即所述FPGA发出一个PCI中断,用来通知系统软件已经有一个完整的数据包收到并已存放在内存中,系统软件收到这个中断以后将启动一个处理该数据包的程序。同时缓存描述表地址及上行处理计数器分别加1,即RX_WR_INDEX=RX_WR_INDEX+1,指向下一张缓存描述表。。
如果所述FPGA仍然有包就重复上述流程。如果发现内存已经用尽,则上报数据满即RX_FIFO满的中断。为防止不停地上报FIFO满中断,此时所述FPGA停止查询所述缓存描述表,等待软件处理或者改为每隔256个时钟周期查询一次情况;一旦软件处理完内存的数据包,则由软件启动所述FPGA上行端继续工作。
软件驱动流程是:软件对所述上行缓存描述链表进行初始化,将OWN标志设定为0,即无包标志,同时填上对应的内存地址;在软件收到上行有包中断后,即检查缓存描述表中是否有包,如无,则进行异常处理,可复位所述FPGA;如有则读取长度,完成包处理,并将缓存描述表OWN标志置为0无包状态,并检查下一个缓存描述表是否有数据,依次循环下去,直到处理完所有数据。为防止该进程独占任务队列,需要在处理完128个缓存描述表,重新申请一个进程加入到任务队列中。
以下描述本发明的POS-PHY总线与PCI总线间的数据包转发的方法中对数据包的下行处理:
对数据包的下行处理时所述FPGA和软件的具体操作流程如图5A和图5B所示。
当软件向所述内存中写一个数据包后,更新下行缓存描述链表,设置有包标志,填入数据包的地址,同时将所述FPGA的下行启动寄存器写1。
所述下行启动寄存器设计为一个8位双向下行包计数器,当软件写一次,下行包计数器加1;当所述FPGA完成一次收包后,包计数器减1。
所述FPGA开始后,检查所述下行启动寄存器,一旦不为0,就开始读取下行缓存描述链表,如果该下行缓存描述链表的缓存描述表指示有包即其缓存描述OWN=1,就根据该缓存描述表中的包长度,启动DMA,开始收该内存中的整个数据包。完毕后,将缓存描述表的相应表项OWN标志置空,即OWN=0。
接着对缓存描述表地址加1,以及下行处理计数器加1即TX_INDEX=TX_INDEX+1,检查下一张缓存描述表是否为空,如果不为空,即重复上述流程,如果为空,则依据下行启动寄存器是否大于0来决定是否收包。
下行数据包的处理采取整包模式,即所述FPGA收到一个完整的包以后才会启动下行FIFO输出控制状态机,状态机就是在所述可编程逻辑器件设计中的一种通用设计方法,用来控制各种输入输出信号的逻辑关系,这样可以避免出现下溢的现象。
所述软件驱动的流程是:软件启动后,首先初始化下行缓存描述链表,将其OWN标志设为0,同时填上对应的内存地址,并初始化所述FPGA的TX_INDEX;检查所述缓存描述表是否为空,如长时间为非空,则认为异常,发送异常报告;如为空,在此缓存描述表中写入数据包,通过PCI想所述FPGA的所述下行启动寄存器写1;修改所述缓存描述表,表示该内存有数据包,即设置其OWN=1并填入其长度;然后检查下一个缓存描述表是否为空,如空,则重复上述步骤;如长时间为非空,则认为异常,发送异常报告。
综上,本文明解决了数据包在POS-PHY总线与PCI总线之间进行双向转发的问题,可以把一个带有POS-PHY总线的二层处理模块与三层处理模块连接起来,实现数据包在这两个模块之间的双向转发。
应当理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其具体实施例进行等同的改变或替换,而所有这些改变或替换都应属于本发明所附权利要求的保护范围。

Claims (8)

1、一种POS-PHY总线与PCI总线间的数据包转发的装置,为一桥接转换装置,其包括以下子模块:PCI总线接口模块、PCI主设备控制模块、PCI从设备控制模块、收发仲裁模块、PCI配置寄存器、PCI空间寄存器、数据接收模块、数据发送模块、POS-PHY接口模块;所述PCI总线接口模块外部连接PCI总线,所述POS-PHY接口模块外部连接POS-PHY总线;以及
所述PCI主设备控制模块与所述PCI总线接口模块以及所述收发仲裁模块通讯连接,完成数据包的主动接收和发送,并通过直接存储器存取方式直接从内存中取包或收包;
所述PCI从设备控制模块与所述PCI总线接口模块以及分别与所述PCI配置寄存器和所述PCI空间寄存器通讯连接,完成所述CPU对该桥接转发装置的配置及控制;
所述收发仲裁模块还与所述数据接收模块和所述数据发送模块分别通讯连接,完成接收和发送两个操作的仲裁;
所述数据接收模块还与所述POS-PHY接口模块通讯连接,完成对POS_PHY的数据接收,并向PCI主设备控制模块发出接收数据请求;
所述数据发送模块还与所述POS-PHY接口模块通讯连接,从所述PCI总线接收数据,并将数据发送到所述POS-PHY总线;
所述PCI总线接口模块完成对所述PCI总线的地址数据线及控制线的处理,在地址期完成所述PCI总线的地址译码并作为相应的响应,在数据期将数据包按突发传输方式接收或发送数据包;
所述POS-PHY接口模块完成对POS-PHY数据和控制总线的处理,产生对物理层的控制信号;
所述从设备控制模块在PCI配置期,所述CPU对配置寄存器进行初始化,完成对PCI设备状态的识别;并对基地址寄存器进行初始化,完成PCI设备在内存中的地址映射,同时还通过PCI配置空间中的总线控制状态寄存器获取该桥接转发装置所支持的操作。
2、根据权利要求1所述的装置,其特征在于,所述桥接转换装置由一片现场可编程逻辑门阵列实现,其把一个带有POS-PHY总线的二层处理模块与三层处理模块连接起来,以实现数据包在这两个模块之间的双向转发。
3、根据权利要求2所述的装置,其特征在于,所述数据接收模块包括一个预定字节空间的上行异步FIFO,一上行读写控制逻辑包括上行FIFO输入控制和上行FIFO输出控制,一上行缓存描述符表处理模块四个子模块,该异步FIFO完成了数据包在两个时钟域的转换。
4、根据权利要求2所述的装置,其特征在于,所述数据发送模块包括一个预定字节空间的下行异步FIFO,一下行读写控制逻辑包括下行FIFO输入控制和下行FIFO输出控制,以及一下行缓存描述符表处理模块四个子模块,所述预定字节空间的异步FIFO完成数据包在两个时钟域的转换。
5、根据权利要求3或4所述的方法,其特征在于,所述预定字节空间大小为2K。
6、一种如权利要求1所述的POS-PHY总线与PCI总线间的数据包转发的方法,该方法设置有上行及下行缓存描述链表,每一链表皆由缓存描述表构成环形链表,其包括对数据包的上行和下行处理:
所述对数据包的上行处理包括:
所述现场可编程逻辑门阵列收到64字节或一个小包,查询内存中上行缓存描述链表中第一个缓存描述表的内容,如果内存为空,则获取相应空闲内存的地址,并将数据包传到此内存中;
当完成一个整包的传送后,将所述缓存描述表置为有包状态,同时填入长度信息,上报有包中断即发起中断通知软件处理;同时缓存描述表地址加1,指向下一张缓存描述表;
如果所述现场可编程逻辑门阵列仍然有包就重复上述流程;如果发现内存已经用尽,则上报数据满的中断;
所述对数据包的下行处理包括:
当软件向所述内存中写一个数据包后,更新下行缓存描述链表,设置有包标志,填入数据包的地址,同时将所述现场可编程逻辑门阵列的下行启动寄存器写1;
所述现场可编程逻辑门阵列开始后,检查所述下行启动寄存器,一旦不为0,就开始读取下行缓存描述链表,如果该下行缓存描述链表的缓存描述表指示有包,就根据该缓存描述表中的包长度,启动直接存储器存取,开始收该内存中的整个数据包;
完毕后,将该缓存描述表的相应表项标志置空;接着对缓存描述表地址加1,检查下一张缓存描述表是否为空,如果不为空,即重复上述流程,如果为空,则依据下行启动寄存器是否大于0来决定是否收包;
下行数据包的处理采取整包模式,即所述现场可编程逻辑门阵列收到一个完整的包以后才会启动下行FIFO输出控制状态机。
7、根据权利要求6所述的方法,其特征在于,所述内存用尽时为防止不停地上报FIFO满中断,所述现场可编程逻辑门阵列停止查询所述缓存描述表,等待软件处理或者改为每隔256个时钟周期查询一次情况;一旦软件处理完内存的数据包,则由软件启动所述现场可编程逻辑门阵列上行端继续工作。
8、根据权利要求6所述的方法,其特征在于,所述下行启动寄存器为一个8位双向下行包计数器,当软件写一次,下行包计数器加1;当所述现场可编程逻辑门阵列完成一次收包后,包计数器减1。
CNB2003101176667A 2003-12-31 2003-12-31 Pos-phy总线与pci总线间的数据包转发的装置 Expired - Fee Related CN100375484C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101176667A CN100375484C (zh) 2003-12-31 2003-12-31 Pos-phy总线与pci总线间的数据包转发的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101176667A CN100375484C (zh) 2003-12-31 2003-12-31 Pos-phy总线与pci总线间的数据包转发的装置

Publications (2)

Publication Number Publication Date
CN1556642A true CN1556642A (zh) 2004-12-22
CN100375484C CN100375484C (zh) 2008-03-12

Family

ID=34337912

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101176667A Expired - Fee Related CN100375484C (zh) 2003-12-31 2003-12-31 Pos-phy总线与pci总线间的数据包转发的装置

Country Status (1)

Country Link
CN (1) CN100375484C (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100432967C (zh) * 2005-06-15 2008-11-12 杭州华三通信技术有限公司 Pci设备之间进行通信的方法、设备以及计算机系统
CN100471156C (zh) * 2007-03-07 2009-03-18 今创集团有限公司 数据总线桥接器及其工作方法
CN100561456C (zh) * 2007-06-22 2009-11-18 中兴通讯股份有限公司 主备系统及主备系统间实现外部部件互连设备切换的方法
CN101202707B (zh) * 2007-12-03 2010-12-08 杭州华三通信技术有限公司 高速单板传输报文的方法、现场可编程门阵列及高速单板
CN102169470A (zh) * 2010-02-27 2011-08-31 比亚迪股份有限公司 一种ahb总线到bvci总线的转换桥
CN102207920A (zh) * 2010-03-30 2011-10-05 比亚迪股份有限公司 一种bvci总线到ahb总线的转换桥
CN102326363A (zh) * 2009-05-28 2012-01-18 密克罗奇普技术公司 具有使用缓冲器描述表的控制器区域网络模块的微控制器
CN104967580A (zh) * 2009-09-27 2015-10-07 中兴通讯股份有限公司 用于实现以太网报文发送的方法及装置
CN105320632A (zh) * 2015-09-23 2016-02-10 南京磐能电力科技股份有限公司 一种自主仲裁的高速差分总线实现方法
CN105939238A (zh) * 2016-04-14 2016-09-14 天津市德力电子仪器有限公司 一种基于SOC隔离Memory的10Gbps以太网实时数据采集方法
CN109582619A (zh) * 2018-12-04 2019-04-05 中国航空工业集团公司西安航空计算技术研究所 一种高速串行总线与低速串行总线数据传输和转换方法
CN110083461A (zh) * 2019-03-29 2019-08-02 郑州信大捷安信息技术股份有限公司 一种基于fpga的多任务处理系统及方法
CN111555800A (zh) * 2020-05-15 2020-08-18 北京光润通科技发展有限公司 一种千兆双光口服务器适配器
CN112559402A (zh) * 2020-12-23 2021-03-26 广东高云半导体科技股份有限公司 一种基于fpga的pci从接口控制电路及fpga
CN112765054A (zh) * 2019-11-01 2021-05-07 中国科学院声学研究所 一种基于fpga的高速数据采集系统及方法
CN113973039A (zh) * 2020-07-24 2022-01-25 深圳市中兴微电子技术有限公司 一种数据处理方法、装置、设备和存储介质
CN114500411A (zh) * 2021-12-30 2022-05-13 长园深瑞继保自动化有限公司 数据转发系统、方法、计算设备及可编程逻辑器件

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI689183B (zh) * 2018-11-05 2020-03-21 智易科技股份有限公司 適用於網狀網路之中繼器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642489A (en) * 1994-12-19 1997-06-24 International Business Machines Corporation Bridge between two buses of a computer system with a direct memory access controller with accessible registers to support power management
CN1426203A (zh) * 2001-12-11 2003-06-25 深圳市中兴通讯股份有限公司上海第二研究所 数据包在不同总线间转发的装置及方法
CN100463437C (zh) * 2001-12-25 2009-02-18 中兴通讯股份有限公司 解决数据包在不同总线间转发的装置及其转发方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100432967C (zh) * 2005-06-15 2008-11-12 杭州华三通信技术有限公司 Pci设备之间进行通信的方法、设备以及计算机系统
CN100471156C (zh) * 2007-03-07 2009-03-18 今创集团有限公司 数据总线桥接器及其工作方法
CN100561456C (zh) * 2007-06-22 2009-11-18 中兴通讯股份有限公司 主备系统及主备系统间实现外部部件互连设备切换的方法
CN101202707B (zh) * 2007-12-03 2010-12-08 杭州华三通信技术有限公司 高速单板传输报文的方法、现场可编程门阵列及高速单板
CN102326363A (zh) * 2009-05-28 2012-01-18 密克罗奇普技术公司 具有使用缓冲器描述表的控制器区域网络模块的微控制器
US8650356B2 (en) 2009-05-28 2014-02-11 Microchip Technology Incorporated Microcontroller with CAN module
CN102326363B (zh) * 2009-05-28 2014-10-29 密克罗奇普技术公司 具有使用缓冲器描述表的控制器区域网络模块的微控制器
CN104967580B (zh) * 2009-09-27 2019-01-11 中兴通讯股份有限公司 用于实现以太网报文发送的方法及装置
CN104967580A (zh) * 2009-09-27 2015-10-07 中兴通讯股份有限公司 用于实现以太网报文发送的方法及装置
CN102169470B (zh) * 2010-02-27 2014-01-29 比亚迪股份有限公司 一种ahb总线到bvci总线的转换桥
CN102169470A (zh) * 2010-02-27 2011-08-31 比亚迪股份有限公司 一种ahb总线到bvci总线的转换桥
CN102207920A (zh) * 2010-03-30 2011-10-05 比亚迪股份有限公司 一种bvci总线到ahb总线的转换桥
CN102207920B (zh) * 2010-03-30 2013-12-04 比亚迪股份有限公司 一种bvci总线到ahb总线的转换桥
CN105320632A (zh) * 2015-09-23 2016-02-10 南京磐能电力科技股份有限公司 一种自主仲裁的高速差分总线实现方法
CN105320632B (zh) * 2015-09-23 2018-05-29 南京磐能电力科技股份有限公司 一种自主仲裁的高速差分总线实现方法
CN105939238A (zh) * 2016-04-14 2016-09-14 天津市德力电子仪器有限公司 一种基于SOC隔离Memory的10Gbps以太网实时数据采集方法
CN105939238B (zh) * 2016-04-14 2019-01-11 天津市德力电子仪器有限公司 一种基于SOC隔离Memory的10Gbps以太网实时数据采集方法
CN109582619A (zh) * 2018-12-04 2019-04-05 中国航空工业集团公司西安航空计算技术研究所 一种高速串行总线与低速串行总线数据传输和转换方法
CN109582619B (zh) * 2018-12-04 2023-08-18 中国航空工业集团公司西安航空计算技术研究所 一种高速串行总线与低速串行总线数据传输和转换方法
CN110083461A (zh) * 2019-03-29 2019-08-02 郑州信大捷安信息技术股份有限公司 一种基于fpga的多任务处理系统及方法
CN112765054A (zh) * 2019-11-01 2021-05-07 中国科学院声学研究所 一种基于fpga的高速数据采集系统及方法
CN111555800A (zh) * 2020-05-15 2020-08-18 北京光润通科技发展有限公司 一种千兆双光口服务器适配器
CN111555800B (zh) * 2020-05-15 2021-07-20 北京光润通科技发展有限公司 一种千兆双光口服务器适配器
CN113973039A (zh) * 2020-07-24 2022-01-25 深圳市中兴微电子技术有限公司 一种数据处理方法、装置、设备和存储介质
CN112559402A (zh) * 2020-12-23 2021-03-26 广东高云半导体科技股份有限公司 一种基于fpga的pci从接口控制电路及fpga
CN114500411A (zh) * 2021-12-30 2022-05-13 长园深瑞继保自动化有限公司 数据转发系统、方法、计算设备及可编程逻辑器件

Also Published As

Publication number Publication date
CN100375484C (zh) 2008-03-12

Similar Documents

Publication Publication Date Title
CN1556642A (zh) Pos-phy总线与pci总线间的数据包转发的装置和方法
US11995028B2 (en) Scalable network-on-chip for high-bandwidth memory
US6721799B1 (en) Method for automatically transmitting an acknowledge frame in canopen and other can application layer protocols and a can microcontroller that implements this method
EP0990990B1 (en) Flow control in a fifo memory
US6526451B2 (en) Method and network device for creating circular queue structures in shared memory
US7337253B2 (en) Method and system of routing network-based data using frame address notification
US6717910B1 (en) Method and apparatus for controlling network data congestion
US6327615B1 (en) Method and system of controlling transfer of data by updating descriptors in descriptor rings
JPH0865334A (ja) マルチメディア通信装置及び方法
CN101046786A (zh) 一种实现高效dma传输的dma控制器及传输方法
CN1295633C (zh) 一种多cpu通信的方法
CN1263262C (zh) 用于处理带宽分配消息的系统和方法
EP1085423A2 (en) A CAN microcontroller that permits current access to different segments of a common memory
US7603488B1 (en) Systems and methods for efficient memory management
CN1494003A (zh) 一种实现接口转换的装置及方法
CN1293739C (zh) 高速数据链路控制协议发送处理模块及其数据处理方法
CN1925453A (zh) 报文转发方法和装置
US20130061247A1 (en) Processor to message-based network interface using speculative techniques
CN1191700C (zh) 通信控制方法及设备
CN111045817B (zh) 一种PCIe传输管理方法、系统和装置
CN117331881A (zh) 一种适用于宇航chiplet互联协议的数据传输系统
CN1589547A (zh) 采用动态滤波器分配的串行通信设备
US6493287B1 (en) Can microcontroller that utilizes a dedicated RAM memory space to store message-object configuration information
CN1125548C (zh) 依序转发包的输出排队方法
WO2023040683A1 (zh) 传输数据的方法和输入输出设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080312

Termination date: 20171231