一种提高数据传输效率的方法及装置的制作方法

文档序号:6578429阅读:250来源:国知局
专利名称:一种提高数据传输效率的方法及装置的制作方法
技术领域
本申请涉及计算机领域,特别涉及一种提高数据传输效率的方法及装置。
背景技术
现场可编程门阵列(Field Programmable Gate Array, FPGA)是一种集成 度很高的新型高性能可编程芯片,其内部电路功能是可编程的
(Programmable), 可以通过硬件描述语言(Hardware Description Language, HDL)和专用设计工具,在其内部灵活地实现极其复杂的电路功能,适用于高 速、高密度的高端数字逻辑电路设计领域。
FPGA芯片内部模块之间传输的数据帧,在数据格式上一般包含六个要素 帧操作时钟,帧起始信号、帧结束信号、帧数据信号、帧数据有效信号、数据 位使能信号。参阅图1所示,clk是帧操作时钟,信号在其上升沿触发翻转; sop是帧起始信号,表示帧数据开始传输;eop是帧结束信号,表示帧数据传 输结束;dval是帧数据有效信号,表示帧数据信号data有效;data为帧数据信 号,用于携带传输的数据;mod为数据位使能信号,用于表示帧数据信号data 中各个数据位的有效性;实际应用中,如果data的位宽为64位,那么mod的 位宽为3位,如表1所示,mod不同取值的具体意义如下
表l
mod[2:0]取值data[63:0〗含义
000data[63:0]有效
001data[7:0]有效
010data[15:0]有效
011data[23:0]有效
100data[31:0]有效
101data[39:0]有效
110data[47:0]有效
111data[55:0]有效
5数据帧在数据传输过程中的一个重要特点就是数据帧长的随机性。在以 太网帧传输过程中,最短帧为64字节,例如Pause帧;最长帧为9.6K字节, 例如Jumbo帧。通常情况下,以太网帧的长度在64字节和1522字节之间随才几 变化,而这种变化的随机性将给数据帧的多路传输均衡带来困难,如果处理不 好,将大大降低数据传输的效率。
数据帧的多路传输是数据传输中经常遇到的情况,多路数据帧在同 一个接 口或者同一个通道里传输。例如数据帧的集中存储、统计和帧交换等等,都 存在多路传输的情况。参阅图2所示,数据帧的多路传输的具体操作步骤如下
1、 前级功能模块的数据帧接收端接收上游数据,经过处理后发送给本模 块的数据帧发送端;
2、 前级功能模块的数据帧发送端根据数据帧所属端口,向N-1仲裁模块 发起数据帧传输请求;
3、 通过N-1仲裁,将N个端口中某一个端口的数据帧传输到公共通道;
4、 通过N-1仲裁,从公共通道中读取数据传输到后级功能模块的数据帧 接收端;
5、 后级功能模块的数据帧接收端接收到数据帧,经过处理后,发送给本 模块的数据帧发送端。
一般情况下,数据帧是数据传输操作的基本单位,即从一个功能模块的数 据帧发送端到公共通道,或者从公共通道到一个功能模块的数据帧接收端口 , 一次数据传输就是一个数据帧。
以端口 0和端口 1的数据帧为例,作如下々支设 前级功能模块的数据帧发送端各个端口的FIFO緩存为2M字节; 前级功能模块的数据帧发送端端口 0发送64字节帧长数据帧; 前级功能模块的数据帧发送端端口 1发送1024字节帧长数据帧; N-l仲裁模块采用较为合理的水线判定轮转仲裁机制进行端口仲裁。所谓 水线判定轮转仲裁机制,即是指FIFO緩存内的数据量处于高水线的端口优先响应,FIFO緩存内的数据量处于同一个水线的端口轮转响应。参阅图3所示, 所谓数据水线就是指某个存储体中的数据量的多少,类似于水库的蓄水量。采 用水线判定轮转仲裁机制时需执行的操作包括将各个端口緩存的数据水线进 行分档;仲裁优先响应緩存水线处于高档位的端口的数据传输请求;如果出现 緩存水线处于相同档位的端口 ,则轮转响应这些端口的数据传输请求。 假设,端口 0的数据帧和端口 1的数据帧带宽占用相同。 由于两个端口的数据帧带宽占用相同,则两个端口接收并保存至本地FIFO 緩存内的初始数据量将基本相近,也就是初始水线基本相同。那么在这种情况 下,N-l仲裁模块将轮流响应端口 0和端口 1的数据传输请求。当响应端口 0的数据传输请求时,端口 0发送一个数据帧,也就是64字 节;当响应端口 1的数据传输请求时,端口 l也发送一个数据帧,也就是1024 字节。可见一次轮转操作后,端口 0比端口 1少读出的字节数为 £)-1024-64 = 960字节那么经过T次轮转之后,发送端端口 0的FIFO緩存将溢出,T为T = '—=2184.53 2185(1024—64)字节这样,便可以得出结论如果端口的数据传输以数据帧为单位,那么,当 各个端口的数据帧长不一致时,在进行多路传输的过程中,将导致某些端口的 数据累积,从而导致端口的緩存溢出。为了避免FIFO緩存溢出,设计人员往 往设计这些端口不再接收帧数据,直到FIFO緩存内的数据量水线下降到低水 线,但是,这样做就P争低了数据传输效率。有鉴于此,需要提供一种新的数据传输方法,在避免端口緩存溢出的前提 下,提高数据传输效率。发明内容本申请实施例提供一种提高数据传输效率的方法及装置,用以在芯片内部实现多^lt据的均衡传输,以及提高数据传输效率。本申请提供的具体技术方案如下一种提高数据传输效率的方法,应用于内部具有若干端口模块的芯片,任 一端口模块向其他端口模块传输数据时,包括将接收的数据中包含的帧数据和帧信息统一保存在本地先入先出FIFO緩 存内;确定本地FIFO緩存内保存的帧数据和帧信息符合预设条件时,向仲裁方 发送用于请求传输数据的第一信号;在接收到仲裁方返回的用于指示允许传输数据的第二信号时,读取本地 FIFO緩存内保存的帧数据和帧信息,按照设定数据长度对其进行切割形成若 干数据片,并以数据片为单位进行数据传输;其中,每将一个数据片传输完毕,则在再次接收到仲裁方发送的第二信号时,传输下一个数据片。一种芯片,包含若干用于进行数据传输的端口模块,所述端口模块包括 接收单元,用于接收数据;先入先出FIFO緩存单元,用于将接收的数据中包含的帧数据和帧信息进 行统一保存;第一处理单元,用于在确定所述FIFO緩存单元内保存的帧数据和帧信息 符合预设条件时,向仲裁方发送用于请求传输数据的第一信号;第二处理单元,用于在接收到仲裁方返回的用于指示允许传输数据的第二 信号时,读取本地FIFO緩存单元内保存的帧数据和帧信息,釆用设定数据长 度对其进行切割形成若干数据片,并以所述数据片为单位进行数据传输;其中, 所述第二处理单元每将一个数据片传输完毕,则在再次接收到仲裁方发送的第 二信号时,传输下一个数据片。发送单元,用于将从FIFO緩存单元中读取出的数据发送至接收端。通过上述技术方案可以看出,本申请实施例中,在内部具有若干端口模块 的芯片中,任一端口才莫块向其他端口模块传输数据时,均以固定长度的数据片为操作单位进行数据传输,即在数据传输过程中,将长帧切割、将短帧合并, 以形成若干固定长度的数据片,并根据仲裁方的指令对数据片进行传输,其中, 每将一个数据片传输完毕,都在再次接收到仲裁方发送的指令时,发送下一个 数据片,这样,便形成了以数据流量为衡量标准的数据传输模型,令芯片内部 各端口模块的数据流量基本保持一致,从而在多路数据传输中,能够实现各路 数据均衡传输,避免出现数据阻塞而降低传输效率。


图1为现有技术下FPGA芯片内部模块之间传输的数据帧数据格式示意图;图?为现有技术下数据帧多路传输模型示意图;图3为现有技术下水线判定轮转仲裁机制原理示意图;图4为现有技术下端口 n接收传送数据示意图;图5为本申请实施例中端口 n接收传送数据示意图; 图6为本申请实施例中数据片划分方式示意图; 图7为本申请实施例中端口 n接收上游数据流程图; 图8为本申请实施例中端口 n进行数据传输流程图; 图9为本申请实施例中芯片内端口模块功能结构示意图。
具体实施方式
为了在芯片内部实现多路数据的均衡传输,以及提高数据传输效率,本申 请实施例中,建立以下数据片传输模型在具有若千端口模块的芯片内部,任 一端口模块向其他端口模块传输数据时,将接收的数据中包含的帧数据和帧信 息统一保存在本地先入先出(First-In First-Out, FIFO)緩存内;并在确定本地 FIFO緩存内保存的帧数据和帧信息符合预设条件时,向仲裁方发送用于请求 传输数据的第一信号;以及在接收到仲裁方返回的用于指示允许传输数据的第二信号时,读取本地FIFO緩存内保存的帧数据和帧信息,按照设定数据长度 对其进行切割形成若干数据片,并以数据片为单位进行数据传输;其中,所述 端口模块每将一个数据片传输完毕,则在再次接收到仲裁方发送的第二信号 时,传输下一个数据片。通过使用这个数据片传输模型,可以节省片内存储资源,解决多#据传 输中的数据均衡问题,提高片外存储设备的带宽利用率,从而提高系统数据传 输的效率。下面结合附图对本申请优选的实施方式进行详细说明。本申请实施例中,数据片传输模型在硬件结构上保持了原有数据帧多路传 输模型的基本结构特点。例如,现有技术中,原有数据帧多路传输-漠型的第n 个端口的数据接口如图4所示;而本申请实施例中数据片传输模型的第n个端 口的数据接口如图5所示,其中,第n个端口中各个接口信号的定义如表2所 示。表2接口信号名定义freq[n]端口 n的数椐发送请求fwmark[n]端口 n的接收FIFO水线向量fgrant[n]N-l仲裁授权端口 n开始发送数据fbgn输出数据片开始标识fend输出数据片结束标识fsop输出数据帧开始标识feop输出数据帧结束标识fdval输出帧数据有效信号fdata输出帧数据信号fmod输出帧数据位有效信号us—sop上游输入数据帧开始标识us—eop上游输入数据帧结束标识us一dval上游输入帧数据有效信号us—data上游输入桢数据信号10上游输入帧数据字节有效信号如表2所示,fbgn和fend是本申请实施例中新增加的信号,用来标记数 据片的开始和结束,其作用将在以下实施例中进行详细介绍。基于上述硬件结构,本申请实施例中,在数据片传输才莫型的软件算法上进 行了较大的改进,包括1、在数据结构上进行改进。参阅图4和图5所示,原有的数据帧多路传输模型中,对帧数据(如,帧 数据信号us_data和帧数据有效信号us—dval )和帧信息(如,帧起始信号us_sop, 帧结束信号us—eop和数据位使能信号i^mod)分别进行緩存,这样,在读取 数据时,需要从不同的存储区域分别获得帧数据和帧信息,再进行合并。而本 申请实施例中,数据片传输模型将帧数据和帧信息緩存在一处,这样,在读取 数据时,在统一的存储区域便可同时获得帧数据和帧信息,从而提高了数据读 取效率;其具体方式如下参阅图5所示,在端口 n FIFO緩存输入端(fifo—din,位宽为72位),写 入的数据不仅是帧数据,还包含帧信息。fifo—din处写入的数据采用公式1 (仅 为举例)来表示</|/b — <i/w[63:0] = — cb/a[63:0]— d/w[64〗=一 so/ y^/b — <i/"[65] = us — eop y^/b _ W"[68:66] = — mod—力"[70:69〗=保留 ^Z^ _ d/"[71] = w s — t/va/ 公式1基于上述fifo—din处写入的数据,参阅图5所示,在端口 nFIFO緩存输出 端(fifo_dout,位宽为72位),读出的数据中便会包含帧开始信号fsop、帧结 束信号feop、帧数据有效信号fdval、帧数据信号fdata和帧数据位有效信号 fmod。 fifo dout处读出的数据采用公式2 (仅为举例)来表示iiy2/ato = y^/b — dowf[63 :0] 力o/ = ^/^ 一 dow/[64]/ mod = y^/b — doW[68:66]公式22、在传输算法上进行改进。原有的数据帧多路传输模型中,以数据帧为单位进行数据传输;而本申请 实施例中,数据片传输模型则以数据片为单位进行数据传输,数据片的长 度可根据具体的应用环境进行规定。如,基于上述公式2,在fifo一dout处便可 以对输出数据(包括帧数据和帧信息)进行切割操作,形成定长的数据片;以 数据片形式对数据进行切割并不损坏原先帧数据和帧信息,从而在接收端很容 易恢复原有的帧数据和帧信息。参阅图6所示, 一个数据片的fsop和feop信号保留了原来us_sop和us_eop 所表示的帧开始和帧结束标识;而fbgn和fend信号则表示了数据片的开始和 结束。从图6中可以看出,数据片是定长为L字节的,例如,L=256,那么对 于帧长随机的数据流来说,就有可能出现跨数据帧的数据片,即一个数据片包 含第n-l帧的部分内容和结束部分,也包含第n帧的部分内容和开始部分。这 是数据片的一个重要特点。实际应用中,数据片长度L的设定与数据总线 (fdata)位宽有关,例如,fdata的位宽为64比特,也就是8个字节,则L必 须是8的整倍数,也就是其对应的二进制地址的低三位为0,这样L才是每一 次读取的数据的数据长度的整数倍。同时,较佳地,L的值要大于最小帧长度, 以避免形成过于瑣碎的数据片,例如,对于以太网帧来说,L要大于64字节。基于上述数据片传输模型,本申请实施例中,首先,各个端口按照公式l 将上游帧数据和帧信息合并写入本端口的FIFO緩存中,并统计数据量水线; 其次,各端口在指定时刻设置本端口的freq信号为高电平,并通过freq请求信 号向端口仲裁模块请求进行数据传输,同时还需要将统计的数据量水线通过 fwmark水线信号通知端口仲裁模块,以作为端口仲裁的依据;其中,所谓指 定时刻可以为FIFO緩存内的数据量达到一定水线;或者,FIFO緩存内部保存有带有帧结束标识的l丈据。
再次,端口仲裁模块根据各个端口的freq请求信号和fWmark水线信号, 采用水线判定轮转仲裁机制进行端口仲裁,选择最合适的端口,并向选定的端 口其发送fgrant授权信号脉沖。
最后,若某端口接收到fgrant授权信号,则表示可以向公共通道发送帧数 据,这时,该端口根据公式2从本端口的FIFO緩存中读出数据,并按照定长 并发送一个数据片。
下面以端口 n为例进行介绍,本实施例中,端口 n在fifo一din处接收上游 数据(包含帧数据和帧信息),并按照公式1将接收的上游数据写入端口 n的 FIFO緩存内;那么,参阅图7所示,本申请实施例中,端口n对接收的上游 数据进行处理的详细流程如下
步骤710:将端口 n的freq信号初始化为低电平,即置freq[n]-O。
步骤720:判断FIFO緩存内保存的帧数据和帧信息是否满足进行数据传 输的条件,若是,则进行步骤740;否则,执行步骤730。
本申请实施例中,所谓满足进行数据传输的条件是指满足以下任意一种 条件,或者,两种条件同时满足,即
1 、 FIFO緩存内的帧数据和帧信息的数据量水线达到设定阈值。
例如,假设数据片的长度为L字节,而FIFO緩存内的数据量水线大于等 于L,则说明此时FIFO緩存内保存有至少L字节的数据,满足一个数据片的 长度,那么便可以进行数据传输。
或/和
2、 FIFO緩存内保存有带有帧结束标识的数据,即保存的帧信息中包含帧 结束标识。
例如,检测到带有us—eop信号的数据,这说明FIFO緩存内部保存有帧尾 数据,那么,便可以进行数据传输。
步骤730:等待设定时长,返回步骤720。实际应用中,也可以不等待设定时长,而是一直对FIFO緩存空间内保存 的帧数据和帧信息的状态进行监测,直到满足传输条件为止,在此不再赘述。
步骤740:将端口 n的数据传输请求信号freq[n]置为高电平,即使freq[n] -1,以此向端口仲裁模块请求传输数据。
在将freq[n]置为高电平的同时,端口 n还应该将本端口緩存FIFO内的数

量水线的状态通过^vmark[n]信号通知端口仲裁模块。
步骤750:判断是否检测到fgrant[n]高电平脉沖,即是否检测到fgrant[n]-l, 若是,说明端口仲裁模块允许端口 n进行数据传输,则执行步骤770;否则, 执行步骤760。
步骤760:等待设定时长,返回步骤750。
同理,实际应用中,也可以不等待设定时长,而是一直对fgrant[n]的信号 状态进行监测,直到满足传输条件为止,在此不再赘述。
步骤770:按照公式2从FIFO緩存内读取保存的帧数据和帧信息,并采 用设定数据长度对其进行切割,形成若干数据片,以及以数据片为单位在数据 公共传输通道上将数据传输至接收端,即触发数据传输流程,接着,返回步骤 710。
基于上述实施例,参阅图8所示,端口n以数据片为单位,在数据公共传 输通道上发送数据的详细流程如下
步骤800:将设置的重传计数器(Retransmission Counter, RC)计数器初 始化清零。
本申请实施例中,RC计数器用于统计从FIFO緩存中读取数据的次数,每 读取一次数据,RC计数器的取值累加1。
步骤801:从FIFO緩存内读取出数据(fifo—dout,位宽为72位),并将 RC计数器的取值累加1,即执行RC = RC+1 。
步骤802:判断RC计数器的取值是否为1,若是,则进行步骤803;否则,进行步骤804。
步骤803:将数据片开始信号fbgn设置为高电平,即使fbgn-l,并将读 取的数据传输至接收端;其中,fbgn=l,表示当前读取的数据是数据片的头 数据,意味着一个数据片开始传输,接着,执行步骤805。
步骤804:将数据片开始信号fbgn设置为低电平,即使fbgn-O,并将读 取的数据传输至接收端,其中,fbgn-O,表示当前传输的数据不是数据片的头 数据;接着,执行步骤805。
步骤805:判断RC计数器的取值是否为K,K为数据片的数据长度与FIFO 緩存数据总线位宽的比值,若是,则执行步骤807;否则,执行步骤806。
步骤806:将数据片结束信号fend设置为低电平,即使fend-0,并将读 取的数据传输至接收端,其中,fend-0,表示当前读取的数据不是数据片的尾 数据,意味着一个数据片正在传输,接着,返回步骤801。
步骤807:判断FIFO緩存内的数据是否已被读空,若是,则执行步骤810; 否则,执行步骤808。
步骤808:将数据片结束信号fend设置为高电平,即使fend-l,并将读 取的数据传输至接收端,其中,fend-l,表示当前读取的数据是数据片的尾数 据,意味着一个数据片结束传输。
步骤809:继续检测fgrant[n]的信号状态,判断是否fgrant[n] = 1 若是, 则返回步骤800;否则,再次执行步骤809。
本申请实施例中,由于各端口是以数据片为单位进行数据传输的,因此,
每将一个数据片传输完毕,端口仲裁模块都需要根据各端口当前的数据量水线 进行重新仲裁,以确定下一个被授^^送数据片的端口,如,本申请实施例中, 端口 n每发送完毕一个数据片,都需要再次对fgrant[n]的信号状态进行检测, 直到再次检测到fgrant[n] = 1时,再向接收端发送下一个数据片。
步骤810:将数据片结束信号fend设置为高电平,即使fend = 1,并将读 取的数据传输至接收端,其中,fend-l,表示当前读取的数据是数据片的尾数
15据,意味着一个数据片结束传输,接着,将RC计数器清零,并确认数据传输 流程结束。
基于上述实施例,接收端接收到端口n发送的数据后,按照公式2抽取其 中携带的帧信息(如,fsop, feop和finod);然后根据抽取的帧信息以及帧数 据,恢复出原有的帧结构。例如当发现fsop-l时,就表示当前的数据是帧 头数据,是一个数据帧的开始;当发现feop-l时,就表示当前的数据是帧尾 数据,是一个数据帧的结束。
实际应用中,芯片内部包含若干用于进行数据传输的端口模块(如,端口 0~端口 n,)参阅图9所示,本申请实施例中,端口模块包括接收单元10、 FIFO 緩存单元ll、第一处理单元12、第二处理单元13和发送单元14,其中
接收单元IO,用于接收数据;
FIFO緩存单元11 ,用于将接收的数据中包含的帧数据和帧信息进行统一 保存;
第一处理单元12,用于在确定FIFO緩存单元11内保存的帧数据和帧信 息符合预设条件时,向仲裁方发送用于请求传输数据的第一信号;
第二处理单元13,用于在接收到仲裁方返回的用于指示允许传输数据的第 二信号时,读取本地FIFO緩存单元11内保存的帧数据和帧信息,采用设定数 据长度对其进行切割形成若干数据片,并以所述数据片为单位进行数据传输; 其中,所述第二处理单元13每将一个数据片传输完毕,则在再次接收到仲裁 方发送的第二信号时,传输下一个数据片。
发送单元14,用于将从FIFO緩存单元11中读取出的数据发送至接收端。
综上所述,本申请实施例所描述的数据传输模型,运用于FPGA芯片内部 各个端口模块之间的数据传输,任一端口模块向其他端口模块传输数据时,均
以固定长度的数据片为操作单位进行数据传输,即在数据传输过程中,将长帧 切割、将短帧合并,以形成若干固定长度的数据片,并根据仲裁方的指令对数 据片进行传输,其中,每将一个数据片传输完毕,都在再次接收到仲裁方发送的指令时,发送下一个数据片,这样,便形成了以数据流量为衡量标准的数据
传输模型,令芯片内部各端口模块的数据流量基本保持一致,从而在多M:据 传输中,能够实现各路数据均衡传输,避免出现数据阻塞而降低传输效率。
其次,有利于节省FPGA芯片内部为数不多的緩存资源。例如以太网的 Jumbo帧大小为9.6K字节,如果以数据帧为基本操作单位进行数据传输,则 芯片内至少要设置有19.2K字节的FIFO緩存;而如果以固定长度为L字节的 数据片为基本操作单位进行数据传输,则理论上芯片片内只要设置有2L字节 的FIFO緩存即可。
再次,有利于减小长帧的传输延时。因为各个端口传输长帧时,不需要緩 存整个数据帧后再发起数据传输,而只需要緩存一个数据片,就可以发起数据 传输,由接收端根据接收到的数据片,以及数据片内携带的帧信息对原始的数 据帧进行恢复,因此,有效减小了长帧的传输延时。
最后,有利于提高片外存储设备的带宽利用率。如果在系统设计中需要用 到片外存储设备(如,DDRSDRam或者DDR2 SDRam等等),那么采用本申 请实施例中描述数据片传输模型将有利于提高这些存储设备的带宽利用率,因 为存储设备控制器每次发起的是固定长度的数据片读写操作,避免了频繁进行 短帧操作而造成的带宽浪费。
另一方面,在实际应用中,步骤700-步骤770和步骤800-步骤880记 载的数据片传输模型,可以实现在FPGA芯片内部,也可以实现在复杂可编程 逻辑器件(Complex Programmable Logic Device, CPLD)芯片内部和专用集成 电路(Application Specific Intergrated Circuits, ASIC)芯片内部,用于CPLD 芯片和ASIC芯片内部各个功能模块之间的数据传输,也可以达到提高数据传 输效率的技术效果,在此不再赘述。
显然,本领域的技术人员可以对本申请中的实施例进行各种改动和变型而 不脱离本申请的精神和范围。这样,倘若本申请实施例中的这些修改和变型属 于本申请权利要求及其等同技术的范围之内,则本申请中的实施例也意图包含
17这些改动和变型在内。
权利要求
1、一种提高数据传输效率的方法,应用于内部具有若干端口模块的芯片,其特征在于,任一端口模块向其他端口模块传输数据时,包括将接收的数据中包含的帧数据和帧信息统一保存在本地先入先出FIFO缓存内;确定本地FIFO缓存内保存的帧数据和帧信息符合预设条件时,向仲裁方发送用于请求传输数据的第一信号;在接收到仲裁方返回的用于指示允许传输数据的第二信号时,读取本地FIFO缓存内保存的帧数据和帧信息,按照设定数据长度对其进行切割形成若干数据片,并以数据片为单位进行数据传输;其中,每将一个数据片传输完毕,则在再次接收到仲裁方发送的第二信号时,传输下一个数据片。
2、 如权利要求1所述的方法,其特征在于,包括所述帧数据和帧信息 符合预设条件,包括所述帧数据和帧信息的数据量水线达到设定阈值;或/和,所述帧信息内包 含帧结束信号。
3、 如权利要求1所述的方法,其特征在于,所述以数据片为单位进行数 据传输,包括设置重传RC计数器;读取FIFO緩存内保存的数据并将其传输至接收端,以及通过所述RC计 数器对读取次数进行累积;根据所述RC计数器的累积值获知数据片的传输状态,每确定一数据片传 输完毕,将RC计数器清零以开始重新计数。
4、 如权利要求3所述的方法,其特征在于,根据所述RC计数器的累积 值获知数据片的传输状态,包括获知所述RC计数器的累积值为1时,确定一数据片开始传输;8获知所述RC计数器的累积值为K时,确定所述数据片结束传输, 其中,K为数据片的数据长度与FIFO緩存数据总线位宽的比值。
5、 如权利要求3所述的方法,其特征在于,将所述RC计数器清零后, 进一步判断所述FIFO緩存是否已读空,若是,则确认数据传输流程结束,否 则,在再次接收到仲裁方发送的第二信号时,继续从所述FIFO緩存内读取数 据,以传输下一数据片。
6、 如权利要求l-5任一项所述的方法,其特征在于,所述芯片为现场可 编程门阵列FPGA芯片、复杂可编程逻辑器件CPLD芯片或专用集成电路 ASIC芯片。
7、 一种芯片,包含若干用于进行数据传输的端口模块,其特征在于,所 述端口模块包括接收单元,用于接收数据;先入先出FIFO緩存单元,用于将接收的数据中包含的帧数据和帧信息进 行统一保存;第一处理单元,用于在确定所述FIFO緩存单元内保存的帧数据和帧信息 符合预设条件时,向仲裁方发送用于请求传输数据的第一信号;第二处理单元,用于在接收到仲裁方返回的用于指示允许传输数据的第二 信号时,读取本地FIFO緩存单元内保存的帧数据和帧信息,采用设定数据长 度对其进行切割形成若干数据片,并以所述数据片为单位进行数据传输;其中, 所述第二处理单元每将一个数据片传输完毕,则在再次接收到仲裁方发送的第 二信号时,传输下一个数据片;发送单元,用于将从FIFO緩存单元中读取出的数据发送至接收端。
8、 如权利要求7所述的芯片,其特征在于,所述第一处理单元获知所述 帧数据和帧信息的数据量水线达到设定阈值,或/和,所述帧信息内包含帧结束 信号时,确定所述FIFO緩存内保存的帧数据和帧信息符合预设条件。
9、 如权利要求7所述的芯片,其特征在于,所述第二处理单元以数据片为单位进行数据传输时,设置一重传RC计数器,读取FIFO緩存内保存的数 据并将其传输至接收端,以及通过所述RC计数器对读取次数进行累积,并根 据所述RC计数器的累积值获知数据片的传输状态,每确定一数据片传输完毕, 将RC计数器清零以开始重新计数。
10、如权利要求9所述的芯片,其特征在于,所述第二处理单元将所述 RC计数器清零后,进一步判断所述FIFO緩存是否已读空,若是,则确认数据 传输流程结束,否则,在再次接收到仲裁方发送的第二信号时,继续从所述FIFO 緩存内读取数据,以传输下一数据片。
全文摘要
本申请公开了一种提高数据传输效率的方法,应用于内部具有若干端口模块的芯片,任一端口模块向其他端口模块传输数据时,将接收的数据中包含的帧数据和帧信息保存在本地FIFO缓存内;确定保存的帧数据和帧信息符合预设条件时,向仲裁方请求传输数据;在接收到仲裁方允许传输数据的指示时,读取保存的帧数据和帧信息,按照设定数据长度对其进行切割形成若干数据片,并以数据片为单位进行数据传输;其中,每将一个数据片传输完毕,则在再次接收到仲裁方发送的第二信号时,传输下一个数据片。这样,便令芯片内部各模块中的若干端口的数据流量保持基本一致,从而实现多路数据的均衡传输。本申请同时公开了一种芯片。
文档编号G06F13/38GK101645053SQ200910142280
公开日2010年2月10日 申请日期2009年6月29日 优先权日2009年6月29日
发明者彭少宁, 彭鼎祥 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1