CN101616068B - 应用于通信系统的数据存取装置和方法 - Google Patents
应用于通信系统的数据存取装置和方法 Download PDFInfo
- Publication number
- CN101616068B CN101616068B CN2008101290415A CN200810129041A CN101616068B CN 101616068 B CN101616068 B CN 101616068B CN 2008101290415 A CN2008101290415 A CN 2008101290415A CN 200810129041 A CN200810129041 A CN 200810129041A CN 101616068 B CN101616068 B CN 101616068B
- Authority
- CN
- China
- Prior art keywords
- pointer
- length
- data access
- download
- indicator signal
- 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.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
Abstract
一种应用于通信系统的数据存取装置,适用于自一主机下载数据并将数据递送到网络接口,包含:一写入控制器,受该主机控制且输出一写入指针;一读取控制器,受该写入控制器控制且输出一读取指针;一下载判断器,包括一指针差计算器及一比较电路,该指针差计算器用以计算该写入指针与该读取指针的间距作为一指针差,该比较电路根据该指针差和一第一保留长度来发出一下载状态指示以改变该写入指针;及一传输缓冲器,根据该写入指针来下载资料,并根据该读取指针将资料递送出去。一种数据存取方法和一种网络接口控制器的数据存取装置也被揭露。
Description
技术领域
本发明是有关于一种数据存取装置及方法,特别是指一种应用于通信系统的数据存取装置和方法。
背景技术
在一般网络通信系统中,主机(host)藉由一网络接口控制器(NetworkInterface Controller,简称NIC)将存放于主机的主存储器的数据递送到网络上。
由于NIC在将数据由主机传送至网络前,需暂存该数据,因此NIC会包含一传输缓冲器(transmitting buffer),公知NIC是将其包含的传输缓冲器划分成一个或数个页面(page),以分别存放一个从主存储器下载的网络讯框分组(network frame packet)。当传输缓冲器划分为一个页面时,该页面存储所下载的分组数据,且是直到该页面存储一个完整分组,才开始将该分组递送到网络,因而导致吞吐率(throughput)不佳。当传输缓冲器划分为二个页面时,是由其中一个页面存储下载数据,且将已存放于另一页面的分组传递出去,如此可以提高吞吐率,但必须以较大的存储空间来实现。
公知技术等到NIC完整下载分组才会开始向外传送的原因是网络传送分组过程系一连续行为,若NIC尚未下载完整分组时即开始传送分组,当网络传输数据速率高于NIC自主机下载速率时,会导致传输缓冲器的存储数据被读空(empty),传送过程也因此中断。此外,公知技术的做法能够有效保留读取中分组的部分刚读取数据使其不被覆写,以因应网络传送过程中可能发生的碰撞(collision)问题,当碰撞发生时,传输缓冲器的读取指针(readpointer)可能会跳回先前读过的地址来重新递送该未成功传送的分组。
美国专利第5,434,872号提出一种提早启动数据传输(early initiationof data transmission)的方法,不等到分组被完整下载,便将数据传送出去。而本发明采用另一种实现方式来实现数据存取。
发明内容
因此,本发明的目的,即在提供一种应用于通信系统的数据存取装置和方法及网络接口控制器的数据存取装置,可以但不限于节省存储空间且无损吞吐率。
于是,本发明网络接口控制器的数据存取装置,用来将一主机所存储的数据传送至网络接口,该数据存取装置包含:一写入控制器,依据该主机所发出的一控制信号来决定一写入指针;一读取控制器,依据该写入指针来决定一读取指针;一下载判断器,用来依据该写入指针与该读取指针以判断是否从该主机接收数据,包括:一指针差计算器,用以计算该写入指针与该读取指针的间距以产生一指针差;以及一比较电路,用来根据该指针差和一预设长度来输出一指示信号,以指示该数据存取装置是否从该主机接收数据;以及一先进先出缓冲器,根据该写入指针从该主机接收数据,并根据该读取指针将数据传送至网络接口。
本发明应用于通信系统的数据存取方法,适用将一主机所存储的数据传送至一网络接口,该数据存取方法包含下列步骤:依据该主机所发出的一控制信号来决定一写入指针;依据该写入指针来决定一读取指针;计算该写入指针与该读取指针的间距以产生一指针差;根据该指针差和一预设长度来输出一指示信号,以指示是否从该主机接收数据;以及当该指示信号指示从该主机接收数据,则根据该写入指针从该主机接收数据,并根据该读取指针将数据传送至该网络接口。
附图说明
图1是一框图,说明本发明网络接口控制器的数据存取装置自一主机下载数据并将数据递送到网络;
图2是一框图,说明本发明应用于通信系统的数据存取装置的较佳实施例;
图3是一流程图,说明本发明应用于通信系统的数据存取方法的较佳实施例;
图4是一流程图,说明本较佳实施例中比较写入指针与读取指针,以决定下载分组数据的时机;
图5是一框图,说明本发明应用于通信系统的数据存取装置的另一实施例;及
图6是一示意图,说明写入指针与读取指针相对于传输缓冲器的关系。
主要组件符号说明
100数据存取装置
1写入控制器
2读取控制器
3传输缓冲器
4下载判断器
41指针差计算器
42裁决计算器
43比较电路
5直接存储器存取引擎
6主机
61主存储器
7 DMA缓冲控制器
81-84步骤
831-835子步骤
CMP1第一比较器
CMP2第二比较器
AND1第一与门
AND2第二与门
FF缓存器
MUX1第一多任务器
MUX2第二多任务器
W1累加器
W2多任务器
W3缓存器
具体实施方式
有关本发明的前述及其它技术内容、特点与功效,在以下配合参考图式的一个较佳实施例的详细说明中,将可清楚的呈现。
请参阅图1和图2,其为本发明应用于通信系统的数据存取装置的较佳实施例的应用示意图,本实施例中,该数据存取装置100整合于一以太网络接口控制器中,用来自一主机6的一主存储器61下载分组数据,并将分组数据经由一网络接口递送到以太网络(ethernet)上,但本发明不以以太NIC和以太网络为限。本较佳实施例包含一写入控制器1、一读取控制器2、一传输缓冲器3(即一先进先出缓冲器)、一下载判断器4及一直接存储器存取引擎(Direct Memory Access engine,简称DMA engine)5。该写入控制器1输出一写入指针,该读取控制器2输出一读取指针,而该下载判断器4包括一指针差计算器41、一裁决计算器42及一比较电路43。其中,该裁决计算器42会输出一第一保留长度(即一预设长度)和一第二保留长度。
该比较电路43具有一第一比较器CMP1、一第二比较器CMP2、一第一与门AND1、一第二与门AND2、一第一多任务器MUX1、一第二多任务器MUX2及一缓存器FF,其等耦接关系如图2中所示。请注意,该比较电路43仅为一较佳实施例,并非对本发明的限制,本技术领域具有通常知识者可轻易得知利用不同的电路设计来实现同样的逻辑运算,例如该比较电路亦可以一数字信号处理单元(Digital Signal Processing Unit)来实现。
该第一比较器CMP1比较指针差计算器41的输出是否不大于第一保留长度,该第二比较器CMP2比较指针差计算器41的输出是否大于第二保留长度。该缓存器FF会由输出一下载状态指示(即一指示信号,能指示该数据存取装置100是否从该主机6接收数据),并由输出一与其互补的互补状态指示。该第一与门AND1基于第一比较器CMP1的结果与前一互补状态指示来决定输出,该第二与门AND2基于该第二比较器CMP2的结果与前一下载状态指示来决定输出。该第一多任务器MUX1受该第一与门AND1的输出控制来选取一第一设定值SET_A或是前一下载状态指示。该第二多任务器MUX2受该第二与门AND2的输出控制来选取一第二设定值SET_B或是该第一多任务器MUX1的输出,以送往该缓存器FF。
其中,由于在该数据存取装置100启动初时,该写入指针与该读取指针所指相同,使得该传输缓冲器3具有最大可存储空间,因而将下载状态指示预设为代表可执行下载的0值,互补状态指示预设为1。随后在该数据存取装置100的运作期间,该传输缓冲器3会根据该写入指针从该主机6来下载分组资料,并根据该读取指针将分组数据递送到以太网络。
请参阅图3与图4,本发明应用于通信系统的数据存取装置100的较佳实施例所执行的数据存取方法包含以下步骤:
步骤81:该主机6发出一具有复数提示的待处理请求给该以太NIC,而每一次的提示用以通知其该主存储器61存有一笔待处理的分组数据。而以太NIC接收到提示后,会促使DMA引擎5向主机6发出一存取数据请求。
步骤82:该写入控制器1和该读取控制器2分别更新该写入指针和该读取指针,以将该二指针告知该下载判断器4。
步骤83:该下载判断器4比较该写入指针与该读取指针,以由图2所示的比较电路43来决定自该主存储器61下载分组数据的时机。
而步骤83包括以下子步骤:
子步骤831:该指针差计算器41计算该写入指针和该读取指针之间的距离而得到一指针差。
子步骤832:该裁决计算器42接收一当发生碰撞时被要求重传的重传长度B,并接收一保护带(guard band)长度G(可以是正整数或零值),以将两者相加得到第一保留长度。其中,保护带的作用在于增加写入指针与读取指针的安全距离。
本实施例中,为了避免该数据存取装置100过度频繁下载分组数据,该裁决计算器42更将第一保留长度加上一临界值,并将相加结果视为第二保留长度。其中,临界值可为零。在本发明另一实施例中,省略该第二保留长度的设计同样可达到前述临界值设为零的效果,亦即:移除图2及图5的第二比较器CMP2、第二与门AND2和第二多任务器MUX2,并删去第二设定值SET_B与裁决计算器42所送出的第二保留长度的信号,同时将第一多任务器MUX1的输出直接送到缓存器FF。
该裁决计算器42更接收该指针差,并将其扣除第一保留长度得到一最大下载长度,以指示该DMA引擎5所能下载的最大数据量。
子步骤833:该第一比较器CMP1比较该指针差是否不大于该第一保留长度。若比较结果为否,前一下载状态指示(0值)经由第一多任务器MUX1和第二多任务器MUX2传递到缓存器FF,因而造成缓存器FF维持0值的下载状态指示(可执行下载),接着跳到步骤84。
若比较结果为是,则第一设定值SET_A(1值)经由第一多任务器MUX1和第二多任务器MUX2传递到缓存器FF,因而造成缓存器FF将产生1值的下载状态指示(无法执行下载),接着跳到子步骤834。
子步骤834:该写入指针因为无法执行下载而保持不变,该读取控制器2受写入指针控制而更新读取指针,使释放出更多的可存储空间,为执行下载做准备。
子步骤835:该第二比较器CMP2比较该指针差是否大于该第二保留长度。若比较结果为否,前一下载状态指示(1值)经由第一多任务器MUX1和第二多任务器MUX2传递到缓存器FF,因而造成缓存器FF将维持1值(无法执行下载)的下载状态指示,接着跳回子步骤834。
若比较结果为是,则第二设定值SET_B(0值)经由第二多任务器MUX2传递到缓存器FF,因而造成致使缓存器FF产生0值的下载状态指示(可执行下载),接着跳到步骤84。
所以,由步骤83的说明可以理解到,当下载状态指示为0(可执行下载)时,该下载判断器4是直到指针差不大于第一保留长度,才将下载状态指示切换为1(无法执行下载)。而当下载状态指示为1(无法执行下载)时,该下载判断器4是直到指针差大于第二保留长度,才将下载状态指示切换为0(可执行下载)。
而在该临界值为零的状况下(或如前所述省略该第二保留长度的相关设计情形下),第一保留长度等于第二保留长度,此时,若是指针差大于第一保留长度,下载状态指示切换为0(可执行下载);若是指针差不大于第一保留长度,下载状态指示切换为1(无法执行下载)。
步骤84:主机6因为收到来自DMA引擎5的存取数据请求与呈现0值的下载状态指示,而发出一具有复数提示的写入请求(即一控制信号)给写入控制器1来更新写入指针,其中该写入请求的每一提示对应于该待处理请求的每一提示,用来表示该传输缓冲器3可进行处理该笔待处理数据。该DMA引擎5进一步根据来自该裁决计算器42的最大下载长度决定最大下载量,以进行数据下载动作。然后,跳回步骤81,等待主机6的下一次待处理请求的提示。
该写入控制器1的实施方式(如图2)可以是具有一累加器W1、一多任务器W2及一缓存器W3。该多任务器W2受写入请求控制而选取将缓存器W3的输出或是累加器W1的输出送往该缓存器W3。惟实施方式不以此为限。发明人希望保留W3/Q到W1的联机。
值得注意的是,本较佳实施例中,该DMA引擎5受存取数据请求与下载状态指示控制,而透过主机6发出该写入请求来控制写入控制器1;但在另一实施例(如图5)中,也可以是不以该下载状态指示来影响该DMA引擎5的作动,而是由该主机和该互补状态指示共同透过一DMA缓冲控制器7发出写入请求给该写入控制器1,使其更新该写入指针。当然,也可以其它实施方式来表现。在本发明另一实施例中,该比较电路43的缓存器FF可以省略,但比较电路43的架构则需有相对应的调整。
指针关系
请参阅图6,图6说明该写入指针与该读取指针相对于该传输缓冲器3的关系图。其显示该传输缓冲器3长度为S,已下载分组长度为P,而下载中分组的存储位置接续在已下载分组之后且已写入长度C。
利用读取指针对已下载分组进行读取,且已读取数据长度X,并为了可能发生的碰撞问题,对于刚读取部分保留了重传长度B和保护带长度G。另一方面,写入指针随下载中分组的下载进度而变化,且除了已下载分组的未读取部分(P-X)与保留部分(B+G)以及下载中分组的已写入部分(C),其余部分(S-((P-X)+(B+G)+C))均可视为可覆写区域,也就是该裁决计算器42提供的最大下载长度。此时,写入指针和读取指针间的指针差相当于(S-((P-X)+C))。
在该数据存取装置100启动初时,该传输缓冲器3内没有已下载分组(P=0),所以忽略已读取数据长度X、重传长度B和保护带长度G,此时传输缓冲器3具有最大存储空间S。而随着已写入部分(C)的增加,可覆写区域(S-C)将减少。
综上所述,本发明应用于通信系统的数据存取装置100藉由该比较电路43适时依据该写入指针与该读取指针的相对情形来下载分组数据,能节省传输缓冲器3的存储空间且无损吞吐率,故确实能达成本发明的目的。
以上所述仅为本发明的较佳实施例,当不能以此限定本发明实施的范围,即大凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,亦即只要依据写入指针与读取指针的距离来决定数据存取的时机,皆属本发明专利可能涵盖的范围。
Claims (9)
1.一种网络接口控制器的数据存取装置,用来将一主机所存储的数据传送至网络接口,该数据存取装置包含:
写入控制器,依据该主机所发出的控制信号来决定写入指针;
读取控制器,依据该写入指针来决定读取指针;
下载判断器,用来依据该写入指针与该读取指针以判断是否从该主机接收数据;以及
先进先出缓冲器,根据该写入指针从该主机接收数据,并根据该读取指针将数据传送至该网络接口,其中
所述下载判断器包括:
指针差计算器,用以计算该写入指针与该读取指针的间距以产生指针差;以及
比较电路,用来根据该指针差和预设长度来输出指示信号,以指示该数据存取装置是否从该主机接收数据,其中
所述数据存取装置更适用于接收临界值,其中,该下载判断器还包括裁决计算器,用以将该预设长度和该临界值相加,得到第二保留长度,并且
其中,当该指示信号为可执行下载时,该比较电路直到该指针差不大于该预设长度,才将该指示信号切换为无法执行下载;而当该指示信号为无法执行下载时,该比较电路是直到该指针差大于该第二保留长度,才将该指示信号切换为可执行下载。
2.依据权利要求1所述的数据存取装置,更适用于接收第一设定值,其中,该比较电路具有第一比较器、第一与门、第一多任务器及缓存器;该第一比较器比较该指针差与该预设长度;该缓存器输出该指示信号和与其互补的互补状态指示,该第一与门的输出决定于该第一比较器的结果与前一互补状态指示;该第一多任务器受该第一与门的输出控制来选取该第一设定值或是前一指示信号,以送往该缓存器。
3.依据权利要求2所述的数据存取装置,更适用于接收第二设定值,其中,该比较电路更具有第二比较器、第二与门及第二多任务器;该第二比较器比较该指针差与该第二保留长度;该第二与门的输出决定于该第二比较器的结果与前一指示信号;该第二多任务器受该第二与门的输出控制来选取该第二设定值或是该第一多任务器的输出,以送往该缓存器。
4.依据权利要求1所述的数据存取装置,其中,该裁决计算器接收该指针差,并将其扣除该预设长度得到指示最大下载量的最大下载长度。
5.依据权利要求1所述的数据存取装置,更包含直接存储器存取引擎,受该指示信号控制以透过该主机发出该控制信号给该写入控制器来更新该写入指针。
6.依据权利要求1所述的数据存取装置,由该主机和与该指示信号互补的信号共同发出该控制信号给该写入控制器来更新该写入指针。
7.依据权利要求1所述的数据存取装置,更适用于接收重传长度,其中,该下载判断器视该重传长度为该预设长度。
8.依据权利要求1所述的数据存取装置,更适用于接收重传长度及保护带长度,其中,该裁决计算器将该重传长度和该保护带长度相加得到该预设长度。
9.一种网络接口控制器的数据存取方法,用来将主机所存储的数据传送至网络接口,该方法包含:
依据该主机所发出的控制信号来决定写入指针;
依据该写入指针来决定读取指针;
计算该写入指针与该读取指针的间距以产生指针差;
根据该指针差和预设长度来输出指示信号,以指示是否从该主机接收数据;以及
当该指示信号指示从该主机接收数据,则根据该写入指针从该主机接收数据,并根据该读取指针将数据传送至该网络接口,其中
接收临界值,将该预设长度和该临界值相加,得到第二保留长度,并且
其中,当该指示信号为可执行下载时,直到该指针差不大于该预设长度,才将该指示信号切换为无法执行下载;而当该指示信号为无法执行下载时,直到该指针差大于该第二保留长度,才将该指示信号切换为可执行下载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101290415A CN101616068B (zh) | 2008-06-24 | 2008-06-24 | 应用于通信系统的数据存取装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101290415A CN101616068B (zh) | 2008-06-24 | 2008-06-24 | 应用于通信系统的数据存取装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101616068A CN101616068A (zh) | 2009-12-30 |
CN101616068B true CN101616068B (zh) | 2013-07-03 |
Family
ID=41495490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101290415A Active CN101616068B (zh) | 2008-06-24 | 2008-06-24 | 应用于通信系统的数据存取装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101616068B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI538425B (zh) * | 2014-04-14 | 2016-06-11 | 微晶片科技公司 | 藍牙介面的資料傳輸系統及傳輸方法 |
CN113535629B (zh) * | 2020-04-15 | 2024-03-15 | 瑞昱半导体股份有限公司 | 数据传输系统、电路与方法 |
CN112040502B (zh) * | 2020-08-31 | 2024-02-23 | 广东电网有限责任公司广州供电局 | 一种pdc测试数据传输方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1178986A (zh) * | 1996-08-07 | 1998-04-15 | 冲电气工业株式会社 | 存储装置及其控制方法 |
US6389489B1 (en) * | 1999-03-17 | 2002-05-14 | Motorola, Inc. | Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size |
CN1391227A (zh) * | 2001-06-07 | 2003-01-15 | 扬智科技股份有限公司 | 非同步fifo控制器 |
CN1205815C (zh) * | 2002-12-27 | 2005-06-08 | 北京华通为尔广视科技有限公司 | 有线电视网络监控系统和监控方法 |
-
2008
- 2008-06-24 CN CN2008101290415A patent/CN101616068B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1178986A (zh) * | 1996-08-07 | 1998-04-15 | 冲电气工业株式会社 | 存储装置及其控制方法 |
US6389489B1 (en) * | 1999-03-17 | 2002-05-14 | Motorola, Inc. | Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size |
CN1391227A (zh) * | 2001-06-07 | 2003-01-15 | 扬智科技股份有限公司 | 非同步fifo控制器 |
CN1205815C (zh) * | 2002-12-27 | 2005-06-08 | 北京华通为尔广视科技有限公司 | 有线电视网络监控系统和监控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101616068A (zh) | 2009-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2361895C (en) | Fifo-based network interface supporting out-of-order processing | |
US6246683B1 (en) | Receive processing with network protocol bypass | |
US5434872A (en) | Apparatus for automatic initiation of data transmission | |
US9390036B2 (en) | Processing data packets from a receive queue in a remote direct memory access device | |
CN111641566B (zh) | 数据处理的方法、网卡和服务器 | |
US6952739B2 (en) | Method and device for parameter independent buffer underrun prevention | |
CN107257329A (zh) | 一种数据分段卸载发送方法 | |
US7788437B2 (en) | Computer system with network interface retransmit | |
CN101616068B (zh) | 应用于通信系统的数据存取装置和方法 | |
US8990422B1 (en) | TCP segmentation offload (TSO) using a hybrid approach of manipulating memory pointers and actual packet data | |
US8745235B2 (en) | Networking system call data division for zero copy operations | |
CN110995507B (zh) | 一种网络加速控制器及方法 | |
US5533203A (en) | Start of packet receive interrupt for ethernet controller | |
US7539204B2 (en) | Data and context memory sharing | |
US9306793B1 (en) | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies | |
GB2567149A (en) | Managing data Compression | |
CA2307968A1 (en) | A memory management technique for maintaining packet order in a packet processing system | |
CN110750486A (zh) | Rdma数据流控方法、系统、电子设备及可读存储介质 | |
CN110912969B (zh) | 一种文件高速传输源节点、目的节点装置及系统 | |
EP4040735A1 (en) | Vehicle control device and data transfer control method | |
CN115604210A (zh) | 可扩展队列 | |
CN108897705A (zh) | 一种应用于通信系统的数据存取装置及方法 | |
US9350686B2 (en) | Data access device and method for communication system | |
CN118519729B (zh) | 一种报文调度方法、系统、存储介质和电子设备 | |
CN118519729A (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 |