CN102025694A - 基于dsp阵列实现以太网数据发送的装置及方法 - Google Patents
基于dsp阵列实现以太网数据发送的装置及方法 Download PDFInfo
- Publication number
- CN102025694A CN102025694A CN2009101729605A CN200910172960A CN102025694A CN 102025694 A CN102025694 A CN 102025694A CN 2009101729605 A CN2009101729605 A CN 2009101729605A CN 200910172960 A CN200910172960 A CN 200910172960A CN 102025694 A CN102025694 A CN 102025694A
- Authority
- CN
- China
- Prior art keywords
- dsp
- time slice
- data
- sending
- dma
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 235000019800 disodium phosphate Nutrition 0.000 claims abstract description 73
- 238000012545 processing Methods 0.000 claims abstract description 17
- 230000005540 biological transmission Effects 0.000 claims description 82
- 238000003491 array Methods 0.000 claims description 19
- 238000012546 transfer Methods 0.000 claims description 15
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000011664 signaling Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 7
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 102000010954 Link domains Human genes 0.000 description 2
- 108050001157 Link domains Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100388212 Arabidopsis thaliana DSP3 gene Proteins 0.000 description 1
- 101150115013 DSP1 gene Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Images
Landscapes
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Abstract
本发明披露了基于DSP阵列实现以太网数据发送的装置及方法,装置包括:逻辑处理单元和DSP阵列,其中,DSP阵列中的DSP根据业务类型被划分为一个或多个DSP子阵列;逻辑处理单元的多个输出端口分别与DSP阵列中的每一DSP的输入端口相连,用于为DSP阵列中的每一DSP子阵列产生相应的时间片,并控制属于同一时间片的DSP传输报文数据到以太网控制器。本发明在不降低DSP阵列上行通信端口流量的前提下,避免产生突发流量。且采用中断方式使每个DSP通过DMA以最大能力实现线速发送,由此提高了数据发送效率。
Description
技术领域
本发明涉及基于数字信号处理器(DSP,Digital Signal Processor)的以太网技术,尤其涉及基于DSP阵列实现以太网数据发送的装置和方法。
背景技术
以太网是当今局域网最通用的通信协议标准,该标准定义了局域网中采用的电缆类型和信号处理方法。以太网在互联设备之间的传输速率可以达到10Mbps、100Mbps、1000Mbps以及10Gbps。
以太网交换芯片可以提供多个不同传输速率的端口,通常在片内采用同步随机存储器SRAM,或者外置同步动态随机存储器SDRAM、双倍数据速率(DDR,Double Data Rate)SDRAM等介质作为包缓存。以太网交换芯片采用存储转发原理,当一个输入端口(Ingress)收到一个以太网数据帧后,会向包缓存申请缓存空间存储该以太网数据帧,然后将以太网数据帧的描述符作为指向申请的缓存空间的指针转交给队列管理器决策转发至输出端口(egress)的发送队列,当以太网数据帧发送出去后再释放此描述符所指的缓存空间。
以太网交换芯片通常分为HUB型(简称HUB)和SWITCH型(简称SWITCH),主要差异在于,HUB提供的端口数量少,片内包缓存容量小,且只支持二层转发;SWITCH提供的端口数量多,外置大容量包缓存,且支持二层、三层转发、需要软件实现丰富的协议栈。HUB和SWITCH均可以各自独立使用,也可以二者组合使用;若二者组合使用,则HUB通常是起到一个集线器的作用。
DSP是一种用于实时数字信号处理的专用微处理器,具有高速的运算能力,可对复杂的控制算法进行实时运算,还提供丰富的外设接口,以便用户根据实际工程需要搭建各种信号处理系统。随着以太网技术的普及,DSP大都提供了以太网接口,通常为了提高发送效率及节省开销,DSP内部也都提供了直接存储器存取控制器(DMA,Direct Memory Access),可以自动将内存中的以太网数据帧传入以太网控制器的先进先出(FIFO,First-InFirst-Out)队列完成DSP的数据发送。
由于单个DSP的处理能力有限,往往不能满足复杂系统的需求,故通常采用多个DSP构成功能强大的DSP阵列。如图1所示为一种常见的DSP阵列架构,多个DSP通过一个多端口(FE1~FEn)HUB构成一个DSP阵列,HUB提供一个公共端口FEn+1作为所有DSP对外的上行通信通道,再通过SWITCH连接多个DSP阵列(1#DSP阵列~n#DSP阵列)形成更大规模的DSP阵列。
虽然该架构保证了一个子网内部信息不经其它子网以及子网之间的通信,且极大地减少了以太网结点,并通过HUB的缓存转发减小了冲突和碰撞的几率,但由于该架构所有端口只能共享上行通信端口(FEn+1)的带宽,假设每个端口的带宽都是100Mbps,子网有10个端口,则每个端口的平均带宽只能为10Mbps;即使每个DSP都按照平均流量10Mbps同时向上行通信端口发送以太网数据帧,也仍然会造成突发流量的情况,使上行通信端口出现拥塞,不能及时释放缓存空间。由于HUB的包缓存数量有限,空闲缓存会越来越少直至耗尽,导致其它端口无法继续申请到缓存,最终会把接收到的以太网数据帧丢掉。
为了避免突发流量,一种常见的DSP发送方法是,在时间T内发出n个以太网数据帧,即把时间T等分为n个时间片t1,t2,...,tn,如图2所示,每个时间片ti(i=1,...,n)发出一个以太网数据帧。图2为所有DSP发送以太网数据帧的时序图,其中横坐标表示时间片(ti),纵坐标表示发送流量(bps,即bit/s)。每个时间片ti只发送一个以太网数据帧,粗实线代表实际发送的时间,细虚线代表软件延时时间。
该架构的DSP阵列发送数据的主要流程如下:
(1)向以太网控制器发送FIFO申请,申请空闲FIFO队列;
(2)启动DMA通道将内存中的数据传输到以太网控制器的FIFO发送队列;
(3)等待DMA通道返回数据传输完成标志;
(4)如果在规定时间内收到DMA返回的数据传输完成标志,继续下一步操作;否则返回超时信号;
(5)启动以太网控制器发送以太网数据帧;
(6)根据以太网数据帧长度估算发送时间,不足时间片的,补充软件延时;
(7)继续发送下一个以太网数据帧。
此DSP阵列发送数据的方法虽然能减缓以太网数据帧占用HUB缓存的速度,但由于采用延时等待DMA完成数据传输,并通过软件延时产生时间片,在等待过程中会占用大量的CPU时间,因此不能充分利用DMA的功用以及以太网口的带宽。由图2可见,由于各DSP之间没有关联,各DSP数据发送的时间间隔无法错开,因此同一时间片仍然会出现多个端口向一个端口发送的情况,且每个以太网数据帧的长度不一样,帧间隔参差不齐,从上行口FEn+1仍可能会在某一时刻产生突发流量而另一时刻又没有流量的情况,即发出的数据流量极不均匀。
发明内容
本发明所要解决的技术问题是提供一种基于DSP阵列实现以太网通信的数据发送装置和方法,能够避免DSP阵列上行通信端口产生突发流量。
为了解决上述技术问题,本发明提供了一种基于DSP阵列实现以太网数据发送的装置,包括逻辑处理单元和DSP阵列,其中:
DSP阵列中的DSP根据业务类型被划分为一个或多个DSP子阵列;
逻辑处理单元,其多个输出端口分别与DSP阵列中的每一DSP的输入端口相连,用于为DSP阵列中的每一DSP子阵列产生相应的时间片,并控制属于同一时间片的DSP传输报文数据到以太网控制器。
进一步地,逻辑处理单元包括依次连接的时钟逻辑单元以及控制命令单元;其中:
时钟逻辑单元,用于产生固定频率的时钟信号输出到控制命令单元;
控制命令单元,用于时钟信号的控制下输出控制命令字到多个输出端口,控制分别与输出端口连接且属于同一时间片的DSP的IRQ中断输入端口产生时间片中断,以触发相应的DSP传输报文数据。
进一步地,控制命令单元包括时间片触发单元和控制命令输出单元,其中:
时间片触发单元,用于在时钟信号的控制下触发切换时间片,并将切换值作为一个时间片标识输出给控制命令输出单元;
控制命令输出单元,用于根据输入的时间片标识输出一控制命令字到多个输出端口,以控制属于同一时间片的DSP产生时间片中断。
进一步地,
时间片触发单元根据DSP阵列被划分的DSP子阵列数目,设置时间片数量的门限;切换值在初始化时或等于所述门限时被置为初值,该初值作为第一个时间片标识被输出给控制命令输出单元。
进一步地,DSP包括DSP发送调度单元和直接存储器存取控制器(DMA)传输调度单元,其中:
DSP发送调度单元,用于在一发送队列不为满时,将缓存待传输数据的数据区的首地址和长度填入发送队列中;
DMA传输调度单元,用于在时间片中断的触发下,启动DMA在累计的发送数据字节未超出预设的发送门限的情况下,根据发送队中的首地址和长度将读取的数据区中的数据发送到以太网控制器,并在传输完成触发DMA传输完成中断,释放发送队列,并通知DSP发送调度单元DMA传输完成。
为了解决上述技术问题,本发明提供了一种基于DSP阵列实现以太网数据发送的方法,包括:
根据业务类型将DSP阵列中的DSP划分为一个或多个DSP子阵列;
为DSP阵列中的每一DSP子阵列产生相应的时间片,并控制属于同一时间片的DSP传输报文数据至以太网控制器。
进一步地,
通过一固定频率的时钟信号控制为DSP子阵列产生相应的时间片,并通过控制属于同一时间片的DSP产生时间片中断来触发相应的DSP传输报文数据。
进一步地,该方法还包括:
DSP在传输报文数据之前若判断一发送队列不为满,将存储待传输数据的数据区的首地址和长度填入该发送队列中;
控制属于同一时间片的DSP产生时间片中断来触发相应的DSP传输报文数据,具体包括:
通过时间片中断启动直接存储器存取控制器(DMA)将发送队列中的首地址和长度所指示的数据区的数据传输到以太网控制器;
通过DMA传输完成中断通知DMA数据传输结束,并释放发送队列。
进一步地,通过时间片中断启动DMA将发送队列中的首地址和长度所指示的数据区的数据传输到以太网控制器,具体包括:
在时间片中断触发时,发出一同步信号量,并触发DMA数据传输操作;
进入DMA数据传输操作时,获取到相应的同步信号量;若判断发送队列不为空,且累计的发送数据字节未超出时间片内的发送门限,则根据发送队中的首地址和长度将从数据区读取的数据通过DMA发送出去,直至发送队列为空,便清零数据字节计数;若判断发送队列为空,或累计的发送数据字节已超出发送门限,则清零发送数据字节计数。
进一步地,
时间片内的发送门限=T*L/M*N;
其中,
T为时间片的时长;
M为访问一次以太网控制器所占用的CPU时钟数;
N为以太网控制器的数据线宽度,以字节为单位;
L为以太网数据帧的长度,以字节为单位。
本发明与现有技术相比,通过控制在一时间片内只有部分的DSP占用上行通信端口的带宽进行数据发送,故在不降低DSP阵列上行通信端口流量的前提下,避免所有DSP同时发送数据而产生突发流量。由于采用硬件定时中断方式产生时间片,每个DSP通过DMA以最大能力实现线速发送,由此充分利用了DSP以太网控制器的发送能力,提高了其发送效率。通过动态控制各DSP发送以太网数据帧的数量,避免对其它DSP发送周期内上行通信端口带宽的继续占用。
本发明非常适合于应用高性能DSP和小缓存HUB组合的设计。
附图说明
图1是常见的DSP阵列通过以太网交换芯片进行通信的连接示意图;
图2是现有的DSP阵列发送以太网数据帧的时序图;
图3是本发明的基于DSP阵列实现以太网通信的数据发送装置实施例的结构框图;
图4是图3所示逻辑处理单元产生时间片发送以太网数据帧的时序图;
图5是本发明的单个DSP发送以太网数据帧的流程图;
图6是本发明的DSP内数据发送DMA实施例的结构框图。
具体实施方式
本发明的基于DSP阵列实现以太网通信的数据发送装置及方法,其发明构思是,通过选择合适的时间片T,协调不同DSP之间的数据发送节奏,使同一时间片内只有部分的DSP占用上行通信端口的带宽进行数据发送;每一个DSP均通过中断方式启动DMA传输以硬件最大能力线速发送太网数据帧,并动态控制数据帧的发送数量,由此避免每个DSP在其它DSP发送周期内继续占用上行通信端口带宽。
以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。以下实施例仅仅用于说明和解释本发明,而不构成对本发明技术方案的限制。
本发明的关键在于选择合适的时间片T。由于同一时间片T内只能有部分DSP在发送,其它DSP必须处于等待;如果T过长,将会导致其它DSP的缓存积压报文,引入时延;如果T过短,又会使每个DSP发送报文的个数受到限制,由此频繁地中断也会加重DSP的开销与负担。因此,设计本发明的装置和方法必须根据实际业务模型来选择相应的时间片T,需要考虑以下因素:
1)DSP阵列中所包含的DSP个数N;
2)单个DSP硬件所能支持的最大数据发送能力S(单位:bps);
3)业务模型要求的单个DSP的性能指标P(单位:bps);
4)集线器HUB包缓存容量Y(单位:字节);
根据2)和3)可以推算出单个DSP最短需要P/S(秒)能够满足业务要求的发送能力,这个时间就作为时间片T;
根据2)和4)可以推算出每一DSP阵列在同一时间片内最多允许8*Y/S个DSP同时向上行通信端口发送数据帧而不会丢包;
根据1)决定每一DSP阵列发送以太网数据帧需要划分为N*S/8*Y个时间片。
本发明另一个关键在于要求DSP必须以最短的时间发送业务要求的流量,即尽可能的减少数据发送的软件开销和负担,以硬件最大能力线速发送数据。
如图3所示,是本发明的基于DSP阵列实现以太网通信的数据发送装置一实施例,该装置包括逻辑处理单元100和DSP阵列子卡200,其中:
逻辑处理单元100,其多个输出端口分别与DSP阵列子卡200中每一个DSP的输入端口相连,用于为DSP阵列子卡200上划分的每一DSP子阵列定时产生相应的时间片,并控制属于同一时间片的所有DSP传输报文数据;
DSP阵列子卡200,用于根据业务类型将DSP阵列划分为一个或多个DSP子阵列。
每一个DSP阵列子卡200如同图1所示,含有8个DSP。DSP阵列子卡200最多划分为8个子阵列,最少1个DSP阵列;划分为8个子阵列时,每个子阵列中的每一个DSP属于单独的一个时间片;划分为一个子阵列时,该子阵列中所有DSP属于同一个时间片。
譬如,根据业务类型希望选择2个时间片,每个时间片内有4个DSP发送数据,则主要配置为:将DSP阵列子卡200划分为2个DSP子阵列,前4个DSP属于DSP子阵列A1,后4个DSP属于DSP子阵列A2。或者,奇数的DSP(DSP201、203、205、207)属于DSP子阵列A1,偶数的DSP(DSP202、204、206、208)属于DSP子阵列A2,等等。
图3所示的逻辑处理单元100进一步包括依次连接的时钟逻辑单元101以及控制命令单元102;其中:
时钟逻辑单元101,用于产生固定频率的时钟信号CLK输出给控制命令单元102;
控制命令单元102,用于在时钟信号CLK的控制下发出控制命令字,通过多个输出端口(O1~O8)触发所连接的且属于同一时间片的DSP的IRQ中断输入端口产生中断,以触发相应的DSP将报文数据传输到以太网控制器。
时钟逻辑单元101每输出一个时钟信号CLK,代表一个时间片T的产生。在每一个时间片域内,控制命令单元102便会为一个DSP子阵列输出一个控制命令字。对于DSP阵列子卡200,当最多划分为8个DSP子阵列,则会有8个控制命令字周而复始地输出,......,当最少划分为1个DSP子阵列,则只有1个控制命令字而复始地输出。控制命令字每个bit对应一个DSP,bit值填1表示对应的DSP属于此时间片。例如bit流B00000101表示DSP1和DSP3属于此时间片。
控制命令字中的bit值“1”表示为高电平信号,bit值为“0”表示为低电平信号;或者相反,即bit值“1”表示为低电平信号,bit值为“0”表示为高电平信号。假设为前者,则控制命令单元102的任意一个端口由低电平变为高电平时的上升沿触发相应的DSP的IRQ中断。
控制命令单元102进一步包括时间片触发单元1021和控制命令输出单元1022,其中:
时间片触发单元1021,用于在时钟信号的控制下触发切换时间片,并将切换值作为一个时间片标识输出给控制命令输出单元1022;
时间片触发单元1021譬如作为一个累加器在时钟信号的控制下进行累加操作,并将累加值作为一个时间片标识输出。当然,除此之外还可以有其它方式,譬如根据时间片数量配置一个译码器实现切换(时间片数量为2,可配置一个1bit的译码器实现切换;时间片数量为8,可配置一个3-8译码器实现切换)。
控制命令输出单元1022,用于根据输入的时间片标识输出一控制命令字到其多个输出端口,以控制属于同一时间片的DSP产生中断。
时间片触发单元1021根据DSP阵列子卡划分的DSP子阵列数目,设置时间片数量的门限;切换值在初始化时或切换值等于该门限时被置为初值,该初值作为第一个时间片标识被输出给控制命令输出单元1022。
譬如上述划分为2个DSP子阵列的DSP阵列子卡200,需配置两个时间片域,时间片触发单元1021将时间片数量的门限设置为2,即时间片触发单元1021在时钟信号CLK的控制下其切换值为0(初值)时标识第一个时间片,选择控制命令输出单元1022输出一个值为B00001111的控制命令字到O1~O8端口;时间片触发单元1021在时钟信号CLK的控制下其切换值为1时标识第二个时间片,选择控制命令输出单元1022输出一个值为B11110000的控制命令字到O1~O8端口;时间片触发单元1021在时钟信号CLK的控制下其切换值为2时被自动清0,则重新标识第一个时间片,......,如此控制命令单元102便周而复始地输出2个控制字,分别控制DSP阵列子卡200的2个子阵列产生中断,从而控制子阵列中的DSP将其数据传输到以太网控制器。
在DSP的IRQ中断被触发时,通过DSP内的DMA(图中未示)将DSP中发送队列中的数据传输到以太网控制器,并在传输结束时,由DMA触发一个传输结束中断,由此通知DSP释放发送队列。
图4是图3所示的逻辑处理单元100针对划分为2个DSP子阵列的DSP阵列子卡200产生2个时间片的时序图。其中,横坐标表示时间片,t1为第一个时间片,t2为第二个时间片;纵坐标表示发送流量,在t1内DSP子阵列A1从FE1~FE4线速地向FE9发送数据,在t2内DSP子阵列A2从FE5~FE8向FE9线速地发送数据。粗实线代表每个以太网数据帧的实际发送时间。
图4与图2相比,在每个时间片内,最多只有4个DSP发送,由此有效地避免了对FE9端口造成突发流量。并且,由于每个DSP以硬件最大能力线速发送,帧间隔更加紧凑,从FE9发出的流量非常均匀。
本发明实施例的基于DSP阵列实现以太网的数据发送方法,包括:
根据业务类型将DSP阵列划分为一个或多个DSP子阵列;
根据DSP阵列的划分为每一DSP子阵列定时产生相应的时间片,并控制属于同一时间片的所有DSP将报文数据传输至以太网控制器。
其中,控制属于同一时间片的DSP发送报文数据,是通过控制触发属于同一时间片的DSP中断实现的,具体包括:
(1)在判断发送队列不未满时,由DSP发送调度将存储待传输数据的数据区的首地址和长度填入发送队列中;
在DSP发送调度和DMA的传输调度之间增加一级发送队列,且发送调度不直接操作DMA的数据传输,只是把要传输的数据的相关参数(数据区的首地址和长度)参数填入空闲的发送队列中,其流程如图5左边的流程1所示。
该发送队列为环形队列,DSP发送调度完成上述操作后修改写指针,为后面的DMA数据传输流程做准备。
(2)通过时间片定时中断启动DMA的传输调度执行DMA数据传输;
时间片定时中断流程如图5所示的例程2,其操作仅仅是发出用于进行DAM数据传输的同步信号量。这是因为在时间片定时中断处理例程中不能做耗时操作,只能做简单的发出同步信号量的操作,而具体的DMA数据传输操作要通过与该同步信号量的联系而被置于中断外进行。
(3)由DSP传输调度通过执行DMA数据传输流程将发送队列中的首地址所指数据区的数据传输到以太网控制器;
DMA数据传输流程如图5所示的流程3,首先获取到相应的同步信号量,即通过上述时间片定时中断所发出的同步信号量;然后若判断发送队列不为空,即其中有首地址指向要发送的数据,则根据首地址和长度读取数据区中的数据,在确定出累计的发送字节未超出发送门限后,将读取的数据通过配置的DMA链表发送出去,直至发送队列为空(即其中的首地址指为空)为止,便清零发送字节计数;如果确定出累计的发送字节已超出发送门限,则也执行清零发送字节的操作,待该DSP子阵列的下一时间片到时再进行数据的读取及传输。
在此流程中,根据DMA传输时间计算在一个时间片内的发送门限,以此控制每个DSP在每个时间片发送的以太网数据帧的个数,避免DSP占用其它DSP时间片的上行通信端口带宽。
发送门限是指时间片T内DSP允许发送的数据最大字节数,取决于DMA通道向以太网控制器FIFO队列传输数据的硬件开销。计算发送门限的方法如下:
假设读写一次以太网控制器占用M个CPU时钟,以太网控制器数据线宽度为N个字节;
发送长度为L字节的以太网数据帧,需要M*L/N个CPU时钟;
在时间片T内的发送门限为T*L/M*N。
(4)通过DMA传输完成中断来通知DSP发送调度DMA传输结束,并释放发送队列。
DMA传输调度通过比较读指针和写指针(由DSP发送调度修改)的位置判断发送队列是否为空,在完成数据传输时修改该读指针。
由此,触发一次DMA数据传输后不再像以往那样需要软件查询等待传输完成,而是通过DMA传输结束产生的中断来释放发送队列,使以太网数据帧之间的帧间隔最短;同时减少了软件延时,使以太网数据帧以最快的速度发送出去。
图7所示为本发明DSP内数据发送DMA实施例的构成,数据发送DMA通过三个DMA通道组成链表,其中:
DMA通道1,用于向以太网控制器发送申请FIFO队列的请求;
其源地址为DSP发送队列的长度域,长度固定为以太网控制器FIFO控制寄存器宽度;其目的地址固定为FIFO队列控制寄存器地址;其Link域指向通道2的首地址,表示通道1数据发送完成后自动启动通道2。
DMA通道1每次数据传输只需要修改通道1的源地址,即修改为下一发送队列的长度域。
DMA通道2,用于将发送队列中的首地址、长度指示的数据区的数据传输到以太网控制器的FIFO队列中;
其源地址为数据区的首地址、长度域,该长度为发送队列的长度;其目的地址固定为以太网控制器的FIFO队列的首地址;其Link域指向通道3的首地址,表示通道2数据传输完成后自动启动通道3。
DMA通道2每次数据传输需要修改源地址,即修改为下一发送队列中的首地址、长度域。
DMA通道3,用于使能以太网数据传输。
使能以太网控制器的传输寄存器的操作码固定保存在一个全局变量中,故源地址为此全局变量的地址,长度为以太网控制器传输使能寄存器宽度;其目的地址为传输使能寄存器的地址;其Link域指向空地址,表示DMA链表传输结束。
DMA通道3每次数据传输不需要修改配置参数。
该DMA链表的数据传输只需要启动通道1的数据传输,通道2和通道3的数据传输将自动执行。在3个通道全部完成数据传输后,才产生DMA传输完成中断。
综上所述,本发明提出了一种基于DSP阵列实现以太网通信的数据发送装置和方法,在不降低DSP阵列整体性能的前提下,克服此类系统中高性能DSP发送流量大和小缓存HUB突发能力差的矛盾。本发明在实际应用中,可以根据业务需要灵活搭建更多类型的DSP阵列。虽然每个DSP都采用以太网数据帧通信,但是可以承载不同的业务,特别适合实现3G移动通信系统中协议处理、语音编解码等功能。
以上所述仅是本发明的一种实现方式,凡在本发明精神和范围内的所有修改和变化都在本发明的保护范围内。
Claims (10)
1.一种基于DSP阵列实现以太网数据发送的装置,包括逻辑处理单元和DSP阵列,其中:
所述DSP阵列中的DSP根据业务类型被划分为一个或多个DSP子阵列;
所述逻辑处理单元,其多个输出端口分别与所述DSP阵列中的每一DSP的输入端口相连,用于为所述DSP阵列中的每一DSP子阵列产生相应的时间片,并控制属于同一时间片的DSP传输报文数据到以太网控制器。
2.按照权利要求1所述的装置,其特征在于,所述逻辑处理单元进一步包括依次连接的时钟逻辑单元以及控制命令单元;其中:
所述时钟逻辑单元,用于产生固定频率的时钟信号输出到所述控制命令单元;
所述控制命令单元,用于在所述时钟信号的控制下输出控制命令字到所述多个输出端口,控制分别与所述输出端口连接且属于同一时间片的DSP的IRQ中断输入端口产生时间片中断,以触发相应的DSP传输所述报文数据。
3.按照权利要求2所述的装置,其特征在于,所述控制命令单元进一步包括时间片触发单元和控制命令输出单元,其中:
所述时间片触发单元,用于在所述时钟信号的控制下触发切换时间片,并将切换值作为一个时间片标识输出给所述控制命令输出单元;
所述控制命令输出单元,用于根据输入的时间片标识输出一控制命令字到所述多个输出端口,以控制所述属于同一时间片的DSP产生所述时间片中断。
4.按照权利要求3所述的装置,其特征在于,
所述时间片触发单元根据所述DSP阵列被划分的DSP子阵列数目,设置所述时间片数量的门限;所述切换值在初始化时或等于所述门限时被置为初值,所述初值作为第一个时间片标识被输出给所述控制命令输出单元。
5.按照权利要求2至4任一项所述的装置,其特征在于,所述DSP包括DSP发送调度单元和直接存储器存取控制器(DMA)传输调度单元,其中:
所述DSP发送调度单元,用于在一发送队列不为满时,将缓存待传输数据的数据区的首地址和长度填入所述发送队列中;
所述DMA传输调度单元,用于在所述时间片中断的触发下,启动DMA在累计的发送数据字节未超出预设的发送门限的情况下,根据所述发送队中的所述首地址和长度将读取的所述数据区中的数据发送到所述以太网控制器,并在传输完成触发DMA传输完成中断,释放所述发送队列,并通知所述DSP发送调度单元DMA传输完成。
6.一种基于DSP阵列实现以太网数据发送的方法,包括:
根据业务类型将DSP阵列中的DSP划分为一个或多个DSP子阵列;
为所述DSP阵列中的每一DSP子阵列产生相应的时间片,并控制属于同一时间片的DSP传输报文数据至以太网控制器。
7.按照权利要求6所述的方法,其特征在于,
通过一固定频率的时钟信号控制为所述DSP子阵列产生相应的时间片,并通过控制属于同一时间片的DSP产生时间片中断来触发相应的DSP传输报文数据。
8.按照权利要求7所述的方法,其特征在于,还包括:
所述DSP在传输所述报文数据之前若判断一发送队列不为满,将存储待传输数据的数据区的首地址和长度填入所述发送队列中;
控制属于同一时间片的DSP产生时间片中断来触发相应的DSP传输报文数据,具体包括:
通过所述时间片中断启动直接存储器存取控制器(DMA)将所述发送队列中的所述首地址和长度所指示的数据区的数据传输到所述以太网控制器;
通过DMA传输完成中断通知所述DMA数据传输结束,并释放所述发送队列。
9.按照权利要求8所述的方法,其特征在于,通过所述时间片中断启动所述DMA将所述发送队列中的所述首地址和长度所指示的数据区的数据传输到以太网控制器,具体包括:
在所述时间片中断触发时,发出一同步信号量,并触发所述DMA数据传输操作;
进入所述DMA数据传输操作时,获取到相应的所述同步信号量;若判断所述发送队列不为空,且累计的发送数据字节未超出所述时间片内的发送门限,则根据所述发送队中的所述首地址和长度将从所述数据区读取的数据通过所述DMA发送出去,直至所述发送队列为空,便清零所述发送数据字节计数;若判断所述发送队列为空,或累计的发送数据字节已超出所述发送门限,则清零所述发送数据字节计数。
10.按照权利要求9所述的方法,其特征在于,
所述时间片内的发送门限=T*L/M*N;
其中,
所述T为所述时间片的时长;
所述M为访问一次所述以太网控制器所占用的CPU时钟数;
所述N为所述以太网控制器的数据线宽度,以字节为单位;
所述L为以太网数据帧的长度,以字节为单位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910172960.5A CN102025694B (zh) | 2009-09-11 | 2009-09-11 | 基于dsp阵列实现以太网数据发送的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910172960.5A CN102025694B (zh) | 2009-09-11 | 2009-09-11 | 基于dsp阵列实现以太网数据发送的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102025694A true CN102025694A (zh) | 2011-04-20 |
CN102025694B CN102025694B (zh) | 2014-07-02 |
Family
ID=43866557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910172960.5A Active CN102025694B (zh) | 2009-09-11 | 2009-09-11 | 基于dsp阵列实现以太网数据发送的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102025694B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970246A (zh) * | 2012-11-23 | 2013-03-13 | 上海寰创通信科技股份有限公司 | 一种以太网报文流量控制方法 |
CN105446798A (zh) * | 2014-07-31 | 2016-03-30 | 展讯通信(上海)有限公司 | 一种多核处理系统及方法以及移动终端 |
CN106101021A (zh) * | 2016-05-31 | 2016-11-09 | 河南理工大学 | 一种以太网系统功能块的实时执行调度方法 |
CN106209678A (zh) * | 2016-06-30 | 2016-12-07 | 华南理工大学 | 用于dsp/bios的modbus消息帧接收方法 |
CN107329897A (zh) * | 2017-06-30 | 2017-11-07 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于千兆以太网的dsp阵列开发平台 |
CN113556619A (zh) * | 2021-07-15 | 2021-10-26 | 广州市奥威亚电子科技有限公司 | 一种链路传输的设备与方法、链路接收的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863136A (zh) * | 2005-05-12 | 2006-11-15 | 中兴通讯股份有限公司 | 以太网数据包与多个dsp串口数据转发的方法和系统 |
CN1956411A (zh) * | 2005-10-28 | 2007-05-02 | 中兴通讯股份有限公司 | 一种防止数据流拥塞的方法 |
CN1971710A (zh) * | 2006-12-08 | 2007-05-30 | 中兴通讯股份有限公司 | 一种基于单芯片的多通道多语音编解码器的调度方法 |
-
2009
- 2009-09-11 CN CN200910172960.5A patent/CN102025694B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863136A (zh) * | 2005-05-12 | 2006-11-15 | 中兴通讯股份有限公司 | 以太网数据包与多个dsp串口数据转发的方法和系统 |
CN1956411A (zh) * | 2005-10-28 | 2007-05-02 | 中兴通讯股份有限公司 | 一种防止数据流拥塞的方法 |
CN1971710A (zh) * | 2006-12-08 | 2007-05-30 | 中兴通讯股份有限公司 | 一种基于单芯片的多通道多语音编解码器的调度方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970246A (zh) * | 2012-11-23 | 2013-03-13 | 上海寰创通信科技股份有限公司 | 一种以太网报文流量控制方法 |
CN102970246B (zh) * | 2012-11-23 | 2017-12-22 | 上海寰创通信科技股份有限公司 | 一种以太网报文流量控制方法 |
CN105446798A (zh) * | 2014-07-31 | 2016-03-30 | 展讯通信(上海)有限公司 | 一种多核处理系统及方法以及移动终端 |
CN106101021A (zh) * | 2016-05-31 | 2016-11-09 | 河南理工大学 | 一种以太网系统功能块的实时执行调度方法 |
CN106101021B (zh) * | 2016-05-31 | 2019-06-14 | 河南理工大学 | 一种以太网系统功能块的实时执行调度方法 |
CN106209678A (zh) * | 2016-06-30 | 2016-12-07 | 华南理工大学 | 用于dsp/bios的modbus消息帧接收方法 |
CN107329897A (zh) * | 2017-06-30 | 2017-11-07 | 中国航空工业集团公司雷华电子技术研究所 | 一种基于千兆以太网的dsp阵列开发平台 |
CN113556619A (zh) * | 2021-07-15 | 2021-10-26 | 广州市奥威亚电子科技有限公司 | 一种链路传输的设备与方法、链路接收的方法 |
CN113556619B (zh) * | 2021-07-15 | 2024-04-19 | 广州市奥威亚电子科技有限公司 | 一种链路传输的设备与方法、链路接收的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102025694B (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102025694B (zh) | 基于dsp阵列实现以太网数据发送的装置及方法 | |
US9800513B2 (en) | Mapped FIFO buffering | |
US7391786B1 (en) | Centralized memory based packet switching system and method | |
US8310934B2 (en) | Method and device for controlling information channel flow | |
CN111651377B (zh) | 一种用于片内报文处理的弹性共享缓存器 | |
US6393457B1 (en) | Architecture and apparatus for implementing 100 Mbps and GBPS Ethernet adapters | |
CN101841420B (zh) | 面向片上网络的低延迟路由器结构 | |
WO2014063599A1 (zh) | 一种用于以太网设备的数据缓存系统及方法 | |
CN114531488B (zh) | 一种面向以太网交换器的高效缓存管理系统 | |
CN103885840A (zh) | 一种基于AXI4总线的FCoE协议加速引擎IP核 | |
CN108614792B (zh) | 1394事务层数据包存储管理方法及电路 | |
EP2477366B1 (en) | Data transmission method, apparatus and system | |
WO2008003267A1 (fr) | Système de transmission de paquets en rafales basé sur un réseau à commutation optique de rafales, et procédé correspondant | |
US8732325B2 (en) | System and method for transmitting data | |
CN116303221B (zh) | 一种多核处理器片上网络系统的数据传输方法 | |
JP2000183886A (ja) | 通信装置 | |
WO2012106905A1 (zh) | 报文处理方法及装置 | |
US20140207948A1 (en) | Network interface on a chip with an adaptive system to trigger data forwarding | |
CN116346720A (zh) | 一种传输信息的装置和方法 | |
CN110519181B (zh) | 基于跨频段时间触发通信的交换方法 | |
CN102984088A (zh) | 应用于afdx交换机确保帧转发顺序一致性的方法 | |
JP4349636B2 (ja) | パケット処理装置およびプログラム | |
WO2023040650A1 (zh) | 一种报文周期的确定方法及其相关装置 | |
CN113645148B (zh) | 一种时间敏感网络的流量整形器令牌更新系统及方法 | |
KR20040028776A (ko) | 버스 적응 방법 및 버스 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191219 Address after: 314400 No.11, Weisan Road, Nongfa District, Chang'an Town, Haining City, Jiaxing City, Zhejiang Province Patentee after: Haining hi tech Zone Science and Innovation Center Co., Ltd Address before: 210012, Bauhinia Road, Yuhua District, Jiangsu, Nanjing 68, China Patentee before: ZTE Communications Co., Ltd. |