CN101026540A - 智能多缓冲区管理的集中调度控制器和动态调度方法 - Google Patents
智能多缓冲区管理的集中调度控制器和动态调度方法 Download PDFInfo
- Publication number
- CN101026540A CN101026540A CNA2006101481625A CN200610148162A CN101026540A CN 101026540 A CN101026540 A CN 101026540A CN A2006101481625 A CNA2006101481625 A CN A2006101481625A CN 200610148162 A CN200610148162 A CN 200610148162A CN 101026540 A CN101026540 A CN 101026540A
- Authority
- CN
- China
- Prior art keywords
- buffering area
- data
- access
- allocation table
- buffer
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明属微电子技术领域,具体公开了一种智能多缓冲区管理的集中调度控制器和动态调度方法。本发明通过多缓冲区设置共享存储单元,以及缓冲区使用时动态分配和使用后实时回收的方法,极大地提高了缓冲区的性能。多个缓冲区在硬件上由一块共享的存储单元实现,由访问仲裁器和缓冲区分配表统一进行管理,用以提供给缓冲区访问单元高性能的多缓冲区服务。当被请求访问缓冲区时,访问仲裁器首先根据分配表判断是否可以分配空间给被请求的缓冲区,如果请求被允许,则访问被授权,同时缓冲区分配表做相应的更新。当某个缓冲区中的数据被使用完后,对应的缓冲区被回收,用以提供空间给其它被请求的缓冲区。本发明有效地提高了整个存储单元的利用率,也提高了单个缓冲区服务的实时性和缓冲区的吞吐量。
Description
技术领域
本发明属微电子技术领域,具体涉及一种多缓冲区管理的集中调度控制器,尤其涉及一种智能多缓冲区管理的集中调度与性能优化的动态调度方法。
背景技术
在传统的数据通信系统中,一般都会有多个发送和接收缓冲区。发送缓冲区用以暂存待发送的数据,在发送器发完上一笔数据后,可以马上从发送缓冲区取得数据进行发送,而不必等待数据源提供数据,若发送缓冲区为空,则表示当前没有数据需要发送。接收缓冲区则暂存数据接收装置接收到的数据,提供快速的存储空间,因为取走数据往往需要相比接收数据更长的时间,如果接收到的数据不能及时暂存,则接收装置无法继续接收数据,将导致信息的丢失和传输效率的损失。
由于在数据通信系统中,往往有不同类型的数据在交互,所以一般都需要有多个发送和接收的缓冲区,如在USB通信模型中,就可支持最高达16个发送和接收缓冲区,用以处理不同类型的数据包。典型的缓冲区控制系统如图1所示。
典型数据缓冲系统的工作流程为,在接收通路中,接收器(101)从外部收到数据,通过数据总线(102)存入到接收缓冲区(103)中,功能单元(105)是数据的使用者,它检测到有数据存储在缓冲区中时,通过数据总线(104)将数据从缓冲区中读走。在发送通路中,数据源(110)提供数据,通过数据总线(109)向发送缓冲区(108)写入数据,发送器(106)检测到有数据被写入缓冲区时,则将数据通过数据总线(107)从缓冲区中读出来,发往外部设备。
在这种典型的数据缓冲系统中,我们从图中可以看到,一般都使用了多个发送和接收的缓冲区,但是在实际工作时,同一时刻往往只有一个发送或接收缓冲区被使用,其它未被使用的缓冲存储单元将被闲置。这就导致存储单元的利用率很低,并且由于这种结构下单个缓冲区的容量不可能很大,所以通信系统的吞吐量也受到限制。当系统中存在的缓冲区数较多时,系统的吞吐量将严重受到影响。
在现在的SOC系统中,数据通信部分一般都存在有多个缓冲区,典型的缓冲区方案已经不能适应现有系统的需求。
发明内容
本发明的目的在于提供一种应用于有多个缓冲区的数据通信系统中的智能多缓冲区管理的集中调度控制器,以及一种对多缓冲区进行集中调度并对其性能进行优化的动态调度方法,以提高系统通信过程中的吞吐量和存储资源利用率,减少缓冲区的不能响应时间,保证数据传输的带宽要求,最大化提高系统芯片的整体性能。
本发明提供的智能多缓冲区管理的集中调度控制器,包括:
一个多缓冲区共享的数据写入接口,用于在多个缓冲区中切换,接收针对目的缓冲区的数据写入请求与数据;
一个多缓冲区共享的数据读出接口,用于在多个缓冲区中切换,接受针对目的缓冲区的数据读出请求并提供数据输出;
两个不同缓冲区访问请求的切换控制单元,用于选择指定缓冲区,以进行数据读写操作;
多个与各控制模块和存储器相连的控制信号线,配合传输数据对各设备通信模块进行控制。
本发明所述智能多缓冲区管理的集中调度控制器中的控制模块和存储器具体如下:
一个访问仲裁器,可用于仲裁对不同缓冲区的访问请求,决定是否授权或者拒绝访问。在授权访问的时候检查并更新缓冲区分配表,在缓冲区被用过后通过更新分配表的方式回收存储空间;
一个缓冲区分配表,采用链表指针的方式记录存储单元放配给各个缓冲区的情况,每个缓冲区块在分配表里对应一个条目,由访问仲裁器来进行管理;
一个地址指针保持单元,动态的保持不同缓冲区的起始地址,当对某个缓冲区的访问被授权时,从该单元获得该缓冲区在存储器中的首地址。
一个动态调度缓冲区的存储器分配单元,当要给某缓冲区分配新的存储空间时,由该单元检查可用的存储空间地址,通知仲裁器对访问进行授权,并更新相应的存储区分配表;
一个动态回收使用过的缓冲区的存储单元收集器,当缓冲区部分或全部数据被读出后,该单元更新对应的存储区分配表的数据,并通知仲裁器这些存储区可被重新分配使用。
一个所有缓冲区共享的支持两个通道同时访问的集中式存储区,用于存储实际的数据,数据组织方式严格按照分配表所指示的链式结构存储;
一种利用上述焦距调度控制器对多缓冲区进行集中调度并对其性能进行优化的动态调度方法,以缓冲区分配表为处理核心,在工作时自动进行存储区的调度分配和回收,其特征在于,包括如下步聚:
首先访问端发起对某个缓冲区的写数据请求;
然后访问仲裁器查询当前存储区分配表的情况,根据各端点的访问优先级决定是否授权访问;
访问仲裁器对于已经授权的访问,为其分配新的存储器地址,并更新对应的缓冲区分配表;
当某缓冲区被读出,访问仲裁器马上收回该块存储区域,将对应的缓冲区分配表清空,以留出空间给其它缓冲区使用;
缓冲区分配表内的数据结构为多分支的链式结构,每个缓冲区对应一个链表;
由于每个缓冲区由分配表来管理,因此单个缓冲区的地址不需要连续,可以是分离的,只要分配表里的指向管理好,因此可以最大限度的利用存储器空间。
本发明的独到优势在于:智能多缓冲区管理的集中调度控制器可以自动的对缓冲区访问请求进行仲裁,由访问仲裁器和缓冲区分配表统一进行管理,用以提供给缓冲区访问单元高性能的多缓冲区服务,以提高系统通信过程中的吞吐量和存储资源利用率,减少缓冲区的不能响应时间,保证数据传输的带宽要求,最大化提高系统芯片的整体性能。
附图说明
图1为传统的缓冲区管理单元控制器接收通路的系统结构示意图;
图2为传统的缓冲区管理单元控制器发送通路的系统结构示意图;
图3为本文的智能缓冲区管理单元的系统结构示意图;
图4为图3中所述存储分配表的例子。
图5为本发明集中调度控制器的数据传输方式流程图示。
图中标号:101为接收器,102为连接总线,103为缓冲区组,104为连接总线,105为数据处理单元,106为数据发送模块(如USB),107为连接总线,108为缓冲区组,109为连接总线,110为系统数据源。301为外部数据接收和发送单元,302为集中调度控制器,303为内部数据发送单元,401为数据收发模块写请求,402为当前空间判断,403为是否给该缓冲区分配空间判断,404为写操作,405为更新存储区分配表,406为是否有数可读取判断,407为更新存储区分配表。
具体实施方式
以下参照附图详细描述本发明的具体实施方式。
图3为本发明的智能多缓冲区管理的集中调度控制器与系统其它模块连接的系统结构图,集中调度控制器(302)与系统各个模块的连接关系如下:
与外部数据接收和发送单元(301):外部数据接收和发送单元可以向集中调度控制器发送读取或者写入的访问请求,外部数据接收发送单元的请求被授权后可以通过端点输入指明其所要访问的缓冲区;
与内部数据收发单元(303):内部数据接收和发送单元可以向集中调度控制器发送读取或者写入的访问请求,内部数据接收发送单元的请求被授权后可以通过端点输入指明其所要访问的缓冲区;
在本发明中,智能多缓冲区管理的集中调度控制器包含一个多缓冲区共享的数据写入接口,用于在多个缓冲区中切换,接收针对目的缓冲区的数据写入请求与数据;
在本发明中,智能多缓冲区管理的集中调度控制器包含一个多缓冲区共享的数据读出接口,用于在多个缓冲区中切换,接受对目的缓冲区的数据读出请求并提供数据输出;
在本发明中,智能多缓冲区管理的集中调度控制器包含两个不同缓冲区访问请求的切换控制单元,用于选择指定缓冲区,以进行数据读写操作;
在本发明中,智能多缓冲区管理的集中调度控制器包含多个与各控制模块和存储器相连的控制信号线,配合传输数据对各设备通信模块进行控制。
在本发明中,智能多缓冲区管理的集中调度控制器包含一个访问仲裁器,用于仲裁对不同缓冲区的访问请求,决定是否授权或者拒绝访问。在授权访问的时候检查并更新缓冲区分配表,在缓冲区被用过后通过更新分配表的方式回收存储空间;
在本发明中,智能多缓冲区管理的集中调度控制器包含具有一个缓冲区分配表,采用链表指针的方式记录存储单元放配给各个缓冲区的情况,每个缓冲区块在分配表里对应一个条目,由访问仲裁器来进行管理;
在本发明中,智能多缓冲区管理的集中调度控制器包含具有一个地址指针保持单元,动态的保持不同缓冲区的起始地址,当对某个缓冲区的访问被授权时,从该单元获得该缓冲区在存储器中的首地址。
在本发明中,智能多缓冲区管理的集中调度控制器包含一个动态调度缓冲区的存储器分配单元,当要给某缓冲区分配新的存储空间时,由该单元检查可用的存储空间地址,通知仲裁器对访问进行授权,并更新相应的存储区分配表;
在本发明中,智能多缓冲区管理的集中调度控制器包含一个动态回收使用过的缓冲区的存储单元收集器,当缓冲区部分或全部数据被读出后,该单元更新对应的存储区分配表的数据,并通知仲裁器这些存储区可被重新分配使用。
在本发明中,智能多缓冲区管理的集中调度控制器包含一个所有缓冲区共享的支持两个通道同时访问的集中式存储区,用于存储实际的数据,数据组织方式严格按照分配表所指示的链式结构存储;
图4为图3所述存储区分配表的范例,指示了多个缓冲区如何由一个缓冲区分配表来管理,用图示的方式标明了本发明使用的链表连接关系。
图5为本发明的智能多缓冲区管理的集中调度控制器控制的数据传输方式流程图,其工作的步骤如下:
401:访问仲裁器收到向某个缓冲区的写请求,这通过控制器与数据收发单元之间专门的控制线来完成;
402:控制器判断当前分配给该端点的未使用空间是否足够接收一个完整的该端点最大包长度的包,如果足够,则授权正常访问,并维持原来的分配表条目内容不变。
403:如果控制器发现当前分配给该端点的空间不够进行一次传输或尚未分配空间,则判断是否要给该端点分配新的空间。如果有更高优先级的写访问争夺资源,为了最大化吞吐量,在资源不足的情况下,将拒绝该次写访问,给出缓冲区满的信号。
404:缓冲区写请求顺利通过仲裁并请求到资源后,按照地址指针产生单元指示的地址开始进行写入操作;
405:访问仲裁器通知存储区分配表模块对相应的条目进行更新,将它们的最高位置为1,低7位则按顺序写入连续的下一个RAM块的区号,形成一个链式结构。
406:访问仲裁器收到向某个缓冲区的读请求,查看当前端点的空间分配情况和对应的读写指针,看是否有数据可被读出。如果读写指针相等,表明该缓冲区内无数据,返回缓冲区空信号;若不等,则进行包的读取操作。
407:在读操作过程中,要进行存储区的回收,每读走一个完整的存储区的内容,即读指针离开原来指向的分配表条目对应的内存区域,访问仲裁器就通知存储区分配表收回该条目,把其最高位置为0,以释放出RAM空间供其它端点使用。
Claims (2)
1、一种智能多缓冲区管理的集中调度控制器,其特征在于,包括:
一个多缓冲区共享的数据写入接口,用于在多个缓冲区中切换,接收针对目的缓冲区的数据写入请求与数据;
一个多缓冲区共享的数据读出接口,用于在多个缓冲区中切换,接受针对目的缓冲区的数据读出请求并提供数据输出;
两个不同缓冲区访问请求的切换控制单元,用于选择指定缓冲区,以进行数据读写操作;
多个与各控制模块和存储器相连的控制信号线,配合传输数据对各设备通信模块进行控制;
所述的控制模块和存储器具体如下:
一个访问仲裁器,用于仲裁对不同缓冲区的访问请求,决定是否授权或者拒绝访问;在授权访问的时候检查并更新缓冲区分配表,在缓冲区被用过后通过更新分配表的方式回收存储空间;
一个缓冲区分配表,采用链表指针的方式记录存储单元放配给各个缓冲区的情况,每个缓冲区块在分配表里对应一个条目,由访问仲裁器来进行管理;
一个地址指针保持单元,动态的保持不同缓冲区的起始地址,当对某个缓冲区的访问被授权时,从该单元获得该缓冲区在存储器中的首地址;
一个动态调度缓冲区的存储器分配单元,当要给某缓冲区分配新的存储空间时,由该单元检查可用的存储空间地址,通知仲裁器对访问进行授权,并更新相应的存储区分配表;
一个动态回收使用过的缓冲区的存储单元收集器,当缓冲区部分或全部数据被读出后,该单元更新对应的存储区分配表的数据,并通知仲裁器这些存储区可被重新分配使用;
一个所有缓冲区共享的支持两个通道同时访问的集中式存储区,用于存储实际的数据,数据组织方式严格按照分配表所指示的链式结构存储。
2、一种使用如权利要求1所述的智能多缓冲区管理的集中调度控制器对多缓冲区进行集中动态调度的方法,以缓冲区分配表为处理核心,在工作时自动进行存储区的调度分配和回收,其特征在于,包括如下步聚:
(1)访问端发起对某个缓冲区的写数据请求;
(2)访问仲裁器查询当前存储区分配表的情况,根据各端点的访问优先级决定是否授权访问;
(3)访问仲裁器对于已经授权的访问,为其分配新的存储器地址,并更新对应的缓冲区分配表;
(4)当某缓冲区被读出,访问仲裁器马上收回该块存储区域,将对应的缓冲区分配表清空,以留出空间给其它缓冲区使用;
(5)缓冲区分配表内的数据结构为多分支的链式结构,每个缓冲区对应一个链表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101481625A CN100505676C (zh) | 2006-12-28 | 2006-12-28 | 智能多缓冲区管理的集中调度控制器和动态调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101481625A CN100505676C (zh) | 2006-12-28 | 2006-12-28 | 智能多缓冲区管理的集中调度控制器和动态调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101026540A true CN101026540A (zh) | 2007-08-29 |
CN100505676C CN100505676C (zh) | 2009-06-24 |
Family
ID=38744460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101481625A Expired - Fee Related CN100505676C (zh) | 2006-12-28 | 2006-12-28 | 智能多缓冲区管理的集中调度控制器和动态调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100505676C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252519B (zh) * | 2008-03-21 | 2010-10-27 | 华为技术有限公司 | 一种数据调度的方法及装置 |
CN101287177B (zh) * | 2008-06-05 | 2011-06-15 | 北京佳讯飞鸿电气股份有限公司 | 多媒体调度台漏话短信提示的方法 |
CN102243755A (zh) * | 2010-05-13 | 2011-11-16 | 联发科技股份有限公司 | 图像处理方法及图像处理装置 |
CN101609438B (zh) * | 2008-06-19 | 2012-03-14 | 索尼株式会社 | 存储器系统、其访问控制方法和计算机程序 |
CN102739818A (zh) * | 2012-06-21 | 2012-10-17 | 华为技术有限公司 | 一种地址调度方法、装置及系统 |
CN103259745A (zh) * | 2013-05-31 | 2013-08-21 | 东蓝数码股份有限公司 | 一种用于网络编程中提高缓冲区内存使用率的设计方法 |
CN106469126A (zh) * | 2015-08-12 | 2017-03-01 | 北京忆恒创源科技有限公司 | 处理io请求的方法及其存储控制器 |
CN107888512A (zh) * | 2017-10-20 | 2018-04-06 | 深圳市楠菲微电子有限公司 | 动态共享缓冲存储器及交换机 |
CN108153679A (zh) * | 2016-12-05 | 2018-06-12 | 腾讯科技(深圳)有限公司 | 一种数据加载、数据处理的方法、装置及设备 |
CN111259375A (zh) * | 2020-01-09 | 2020-06-09 | 青岛海尔科技有限公司 | 应用于物联网操作系统的访问请求的处理方法及装置 |
CN113032302A (zh) * | 2021-04-07 | 2021-06-25 | 杭州共有科技有限公司 | 一种提高链式数据仲裁性能的方法 |
WO2022002128A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 一种读数据的方法、写数据的方法、设备和系统 |
-
2006
- 2006-12-28 CN CNB2006101481625A patent/CN100505676C/zh not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252519B (zh) * | 2008-03-21 | 2010-10-27 | 华为技术有限公司 | 一种数据调度的方法及装置 |
CN101287177B (zh) * | 2008-06-05 | 2011-06-15 | 北京佳讯飞鸿电气股份有限公司 | 多媒体调度台漏话短信提示的方法 |
CN101609438B (zh) * | 2008-06-19 | 2012-03-14 | 索尼株式会社 | 存储器系统、其访问控制方法和计算机程序 |
CN102243755A (zh) * | 2010-05-13 | 2011-11-16 | 联发科技股份有限公司 | 图像处理方法及图像处理装置 |
CN102243755B (zh) * | 2010-05-13 | 2013-03-20 | 联发科技股份有限公司 | 图像处理方法及图像处理装置 |
CN102739818A (zh) * | 2012-06-21 | 2012-10-17 | 华为技术有限公司 | 一种地址调度方法、装置及系统 |
CN102739818B (zh) * | 2012-06-21 | 2015-05-27 | 华为技术有限公司 | 一种地址调度方法、装置及系统 |
CN103259745A (zh) * | 2013-05-31 | 2013-08-21 | 东蓝数码股份有限公司 | 一种用于网络编程中提高缓冲区内存使用率的设计方法 |
CN106469126A (zh) * | 2015-08-12 | 2017-03-01 | 北京忆恒创源科技有限公司 | 处理io请求的方法及其存储控制器 |
CN106469126B (zh) * | 2015-08-12 | 2020-07-07 | 北京忆恒创源科技有限公司 | 处理io请求的方法及其存储控制器 |
CN108153679A (zh) * | 2016-12-05 | 2018-06-12 | 腾讯科技(深圳)有限公司 | 一种数据加载、数据处理的方法、装置及设备 |
CN107888512A (zh) * | 2017-10-20 | 2018-04-06 | 深圳市楠菲微电子有限公司 | 动态共享缓冲存储器及交换机 |
CN107888512B (zh) * | 2017-10-20 | 2021-08-03 | 常州楠菲微电子有限公司 | 动态共享缓冲存储器及交换机 |
CN111259375A (zh) * | 2020-01-09 | 2020-06-09 | 青岛海尔科技有限公司 | 应用于物联网操作系统的访问请求的处理方法及装置 |
WO2022002128A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 一种读数据的方法、写数据的方法、设备和系统 |
CN113032302A (zh) * | 2021-04-07 | 2021-06-25 | 杭州共有科技有限公司 | 一种提高链式数据仲裁性能的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100505676C (zh) | 2009-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100505676C (zh) | 智能多缓冲区管理的集中调度控制器和动态调度方法 | |
CN1049059C (zh) | 实时数据图象网络系统及操作该系统的方法 | |
KR100775406B1 (ko) | Dma 데이터 전송 장치 및 dma 데이터 전송 방법 | |
CN101887382A (zh) | 动态优先级的仲裁方法及装置 | |
CN113259006B (zh) | 一种光纤网络通信系统、方法及装置 | |
WO2006084417A1 (fr) | Méthode de gestion de tampon basée sur une table de bitmap | |
CN110083461A (zh) | 一种基于fpga的多任务处理系统及方法 | |
CN101150485A (zh) | 一种零拷贝缓冲区队列网络数据发送的管理方法 | |
CN108984280B (zh) | 一种片外存储器的管理方法和装置、计算机可读存储介质 | |
CN101877666B (zh) | 基于零拷贝方式的多应用程序报文接收方法和装置 | |
CN103647726A (zh) | 一种报文调度方法及装置 | |
CN110716691B (zh) | 调度方法、装置、闪存设备和系统 | |
CN101707565A (zh) | 零拷贝网络报文发送、接收方法和装置 | |
CN103353851A (zh) | 一种管理任务的方法和设备 | |
CN102402422B (zh) | 处理器组件及该组件内存共享的方法 | |
CN104717160A (zh) | 交换机及调度算法 | |
CN108462649A (zh) | 降低onu中拥塞状态下高优先级数据传输时延的方法和装置 | |
CN206946471U (zh) | 一种多通道共享读写sdram的电路装置 | |
EP1970815A1 (en) | Data transfering apparatus and information processing system | |
CN102143053B (zh) | 传输数据的方法、装置和系统 | |
CN100539538C (zh) | 具有链表处理器的存储器管理系统 | |
CN100547572C (zh) | 动态建立直接内存访问通路的方法及系统 | |
CN104461966A (zh) | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 | |
CN112181887A (zh) | 数据传输方法及装置 | |
CN1965550A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090624 Termination date: 20111228 |