可共享缓冲器的网络接口卡与缓冲器共享方法

文档序号:6599853阅读:100来源:国知局
专利名称:可共享缓冲器的网络接口卡与缓冲器共享方法
技术领域
本发明是有关一种网络接口卡,特别是一种可共享缓冲器的网络接口卡与缓冲器共享方法。
背景技术
传统的网络接口卡(network interface controller,NIC),具有传送与接收的功能,可用以接收网络环境的数据,也可传送数据至网络环境。其中,传送端与接收端各自具有专属的缓冲器(buffer),分别为传送缓冲器(transmitting buffer)与接收缓冲器 (receiving buffer)0以传送端电路而言,当计算机装置有数据等待传送而通知网络接口卡时,网络接口卡便会自计算机装置的存储器中读取数据,并先储存至传送缓冲器,等经过适当处理后再将数据传送至网络上。另一方面,以接收端电路而言,当网络接口卡自网络上接收到数据时,会先将数据储存至接收缓冲器,确认数据无误后再将数据写入计算机装置的存储器中,并通知计算机装置有数据自网络送达。由上述说明可知,目前的网络环境,传送与接收的行为是各自独立,因此传送缓冲器与接收缓冲器采用分开设计,以避免彼此的数据互相干扰。然而,随着电子产品对省电要求的日益增加,使得计算机装置由省电模式回复到工作模式的时间越来越长。如此,将造成接收缓冲器需要更多的容量用以储存来自网络的数据,以避免计算机装置由省电模式回复到工作模式,而有能力响应网络接口卡的需求之前,接收缓冲器的容量即被网络数据所用罄,而造成数据的遗失。但,增加缓冲器的储存容量,相对地将产生成本提高的问题。

发明内容
有鉴于此,本发明提出一种可共享缓冲器的网络接口卡与缓冲器共享方法。通过本发明所提出的网络接口卡或方法,在不增加接收缓冲器储存容量的前提之下,利用闲置的传送缓冲器,以存放更多来自网络的数据,进而解决数据遗失的问题,并且不会增加额外成本的支出。本发明提出一种可共享缓冲器的网络接口卡,耦接于主机,且主机通过网络接口卡与网络连线,该网络接口卡包含传送缓冲器、传送控制器、接收缓冲器及接收控制器。传送缓冲器储存由主机所提供的传送数据。传送控制器耦接传送缓冲器,控制传送缓冲器将传送数据传送至网络。接收缓冲器储存由网络所接收的接收数据。接收控制器耦接接收缓冲器,控制接收缓冲器将接收数据传送至主机,并判断接收缓冲器的储存容量。其中,当储存容量小于设定值,接收控制器传送请求信号至传送控制器,传送控制器依据请求信号与对应于传送缓冲器的状态信号而产生响应信号,接收控制器依据响应信号控制接收数据是否储存于传送缓冲器。本发明亦提出一种缓冲器共享方法,应用于与网络连线的主机。缓冲器共享方法
4包含下列步骤提供传送缓冲器,用以储存由主机所提供的传送数据;控制传送缓冲器将传送数据传送至网络;提供接收缓冲器,用以储存由网络所接收的接收数据;控制接收缓冲器将接收数据传送至主机;判断接收缓冲器的储存容量;当储存容量小于设定值,传送请求信号;依据请求信号与对应于传送缓冲器的状态信号,产生响应信号;依据响应信号, 控制接收数据是否储存于传送缓冲器。本发明亦提出一种网络接口卡,包含一传送缓冲器,储存一传送数据;一传送控制器,耦接该传送缓冲器,控制该传送缓冲器将该传送数据传送至一网络;一接收缓冲器, 储存由该网络所接收的一接收数据;及一接收控制器,耦接该接收缓冲器,判断该接收缓冲器的一储存容量;其中,当该储存容量小于一设定值时,该接收控制器传送一请求信号至该传送控制器,该传送控制器依据该请求信号与对应于该传送缓冲器的一状态信号而产生一响应信号,该接收控制器依据该响应信号控制该接收数据是否储存于该传送缓冲器。有关本发明的较佳实施例及其功效,兹配合图式说明如后。


图1为可共享缓冲器的网络接口卡一实施例的示意图。图2为接收缓冲器一实施例写入流程图。图3为接收缓冲器一实施例读取流程图。图4为传送缓冲器一实施例写入流程图。图5为传送缓冲器一实施例读取流程图。[主要元件标号说明]1:网络接口卡2:主机3:网络10:传送缓冲器20:传送控制器30:接收缓冲器40 接收控制器
具体实施例方式请参照「图1」,该图所示为可共享缓冲器的网络接口卡第一实施例的示意图。本发明所提出的网络接口卡1耦接于主机2,且主机2通过网络接口卡1而与网络3连线。网络接口卡1包含传送缓冲器10、传送控制器20、接收缓冲器30及接收控制器40。网络接口卡1可接收来自网络3的数据,也可传送主机(host) 2的数据至网络3。 因此,网络接口卡1具有传送与接收两种功能。传送缓冲器10储存由主机2所提供的传送数据。传送控制器20耦接传送缓冲器10,控制传送缓冲器10将传送数据传送至网络3。上述的传送缓冲器10与传送控制器20,即为与传送相关的元件。另一方面,与接收相关的元件如下所示。接收缓冲器40储存由网络3所接收的接收数据。接收控制器40耦接接收缓冲器30,控制接收缓冲器30将接收数据传送至主机2, 并判断接收缓冲器30的储存容量。其中,当接收缓冲器30的储存容量小于一设定值时,此设定值可依需求而定,接收控制器40传送请求信号至传送控制器20,传送控制器20依据请求信号与对应于传送缓冲器的状态信号而产生响应信号,接收控制器40再依据响应信号控制接收数据是否储存于传送缓冲器10。上述的状态信号包含传送缓冲器10的第一使用状态,及主机2与传送缓冲器10 间的第二使用状态。当第一使用状态为传送缓冲器10中未储存传送数据,或第二使用状态为主机2未有传送数据等待传送至传送缓冲器10,此时表示传送缓冲器10为闲置的状态, 而可借予接收端使用,因此响应信号便会准予接收控制器40控制接收数据储存于传送缓冲器10中。当接收数据改为储存于传送缓冲器10时,接收控制器40会在接收缓冲器30设置断点(break point),如此可依据断点而得知接收数据所储存的位置。也就是说,当接收缓冲器30中所储存的数据被读取时,若读取指针(readpointer)读取到断点时,便知道下一笔的接收数据所存放的位置改存放在传送缓冲器10中,因此读取指针便会至传送缓冲器 10读取下一笔的接收数据。此外,为了避免接收控制器40长时间的占用传送缓冲器10,而造成传送缓冲器10 迟迟无法储存传送数据,导致主机2的传送数据无法传送至网络3的情况发生。因此,传送控制器20还可依据断点的数目而产生响应信号。当断点的数目大于等于1时,表示之前接收控制器40已请求过将接收数据存放于传送缓冲器10中,并且尚未读取完存放于传送缓冲器10中的接收数据。此时,若接收控制器40再次发出请求信号,传送控制器20产生的响应信号便会不准予接收控制器40控制接收数据再次储存于传送缓冲器10中。然而,若主机2可容忍较长的等待时间,那么即便传送缓冲器10中仍存有接收数据,传送控制器20也会准予接收控制器40再次将接收数据储存于传送缓冲器10中,此时, 接收控制器40会在接收缓冲器30中再设置一个断点,因此断点的数目会大于1。底下分别以接收缓冲器30与传送缓冲器10的立场,说明写入与读取的运作流程。请参照「图2」为接收缓冲器一实施例写入流程图。首先,步骤201、202,观察是否收到网络所传来的有效接收数据。步骤203、204,自网络取得接收数据,并判断写入的目的地是传送缓冲器或接收缓冲器。若写入的目的地是接收缓冲器,则进行步骤205,判断接收缓冲器的储存容量是否已满。若否,则进行步骤206、207,将自网络取得的接收数据写入接收缓冲器,并将写入指针(write pointer)加1。再进行步骤208,判断接收数据是否为最后一笔数据。若是,则进行步骤209,通知主机有接收数据等待上传。若否,则回到步骤203, 继续写入接收数据。上述步骤205,若判断接收缓冲器已满时,则进行步骤210,判断是否已有断点。若否,则进行步骤211,接收控制器向传送控制器请求借调传送缓冲器的使用权。传送控制器会依据现行的使用状态,决定是否同意借出传送缓冲器。一实施例,传送控制器会在传送缓冲器是空的且主机没有传送数据等待传送时,才会同意借出传送缓冲器。步骤212,接收控制器判断传送控制器是否同意借调传送缓冲器。若否,则进行步骤216,由于此时接收缓冲器已满,且传送控制器又不同意借调传送缓冲器,因此舍弃此笔接收数据。相对地,若是(同意借调传送缓冲器),则设定接收数据的写入目的地改为传送缓冲器。同时把现在的接收缓冲器的写入指针存为有效的断点,并将断点的数目加1。如此,当之后读取指针遇到断点时,便可了解下一笔接收数据改存放在传送缓冲器中。接着进行步骤218、219,将自网络取得的接收数据写入传送缓冲器,并将写入指针加1,并回到步骤 208。
上述步骤204中,若判断存放的目标为传送缓冲器时,则进行步骤217,判断写入指针是否遇到断点。若否,则进行上述的步骤218。若是,表示此时的传送缓冲器空间已满, 则进行步骤220,将存放目标改设定回原来的接收缓冲器,并进行步骤221,判断接收缓冲器的储存容量是否已满。若是,表示此时传送缓冲器与接收缓冲器的空间皆已满,则只好进行步骤216,舍弃接收数据。若否,则设定接收数据的写入目的地为接收缓冲器,并回到步骤 206。此外,当上述步骤210判断出已有断点时,表示传送缓冲器内已经存有接收数据, 因此进行步骤214,判断是否需有较好的传送缓冲器表现。若是,表示为避免接收控制器长时间占用传送缓冲器,而影响到传送缓冲器原本传送功能的表现,因此进行步骤216,直接舍弃接收数据,以得到较佳的传送缓冲器表现。相对地,若否,表示传送缓冲器不需较好的表现,则进行步骤215,判断传送缓冲器是否已满,若传送缓冲器还有空间,则再次执行步骤 213。请参照「图3」为接收缓冲器一实施例读取流程图。于此,说明接收控制器返还向传送控制器借来的传送缓冲器的控制权。首先,步骤301、302,等待接收数据已准备完成。 步骤303、304,向主机要求上传接收数据。接着步骤305判断待读取的接收数据是来自传送缓冲器或接收缓冲器。若为接收缓冲器,则进行步骤306、307,自接收缓冲器读取接收数据并上传至主机,然后将读取指针加1。步骤308,判断读取指针是否遇到断点。若是,则进行步骤310,将下一个待读取的接收数据来源设定为传送缓冲器。另一方面,若否,则进行步骤309,判断是否为接收数据中的最后一笔数据。若是,则结束。若否,则回到步骤305。上述步骤305中,若判断接收数据是来自传送缓冲器时,则进行步骤311、312,自传送缓冲器读取接收数据,并上传至主机,然后将读取指针加1。之后,进行步骤313,判断传送缓冲器是否是空的,判断方法可为判断读取指针是否等于写入指针或断点,若是,则表示传送缓冲器是空的。当传送缓冲器是空的,表示原本储存于传送缓冲器中的接收数据,已经完全读取出来了,因此进行步骤314,将下一个待读取的接收数据的来源目的地设为接收缓冲器,同时将此断点失效,也就是断点数目减1。 若断点数目等于零时,即表示返还传送缓冲器的控制权给传送控制器。若步骤313的判断结果为传送缓冲器不是空,则回到步骤309。请参照「图4」为传送缓冲器一实施例写入流程图。于此,说明传送控制器依据主机及传送缓冲器的状态,而决定是否释出传送缓冲器的控制权以提供接收控制器使用。于此实施例,当主机无传送数据等待传送,且传送缓冲器中未储存传送数据时,便会同意接收控制器请求使用传送缓冲器的控制权,且传送控制器持续等待接收控制器返还传送缓冲器的控制权。首先,步骤401、402,询问主机是否有传送数据的需求。若是,表示会先将传送数据储存至传送缓冲器中,因此先进行步骤403,判断传送缓冲器的空间是否足够。若否,进行步骤404,更新传送缓冲器的读取指针,等待传送缓冲器内的传送数据被传送,而有新的储存空间产生。若传送缓冲器的空间足够,进行步骤405,由主机下载传送数据,并写入传送缓冲器。接着,进行步骤406,判断传送数据是否下载完成。若否,回到步骤405继续下载。 若是,进行步骤407,设定传送缓冲器中的传送数据已准备好,可传送至网络。
上述步骤402,若判断主机没有传送数据的需求时,进行步骤408,判断接收控制器是否有借用传送缓冲器的需求。若没有需求,则回到步骤401。若有需求,则进行步骤 409,更进一步判断传送缓冲器是不是空的。若否,一样无法出借传送缓冲器,则回到步骤 401。若是,则进行步骤410,回复接收控制器可设置存放目标为传送缓冲器,即表示同意出借传送缓冲器。当同意出借传送缓冲器时,表示传送缓冲器由接收控制器所控制,而进行步骤411 的判断,当没有断点时,表示接收控制器已返还传送缓冲器的控制权予传送控制器,因此再回到步骤401。请参照「图5」为传送缓冲器一实施例读取流程图。首先,步骤501、502,询问传送数据是否准备完成。若是,则进行步骤503,传送传送缓冲器中的传送数据。接着,进行步骤 504,判断传送数据是否结束。若否,则回到步骤503,继续传送。若是,则结束。上述步骤502中,若判断结果为没有传送数据已准备好要传送,也就是说,主机并没有传送数据等待传送,则进行步骤505,于此状态下,判断传送控器是否同意借出传送缓冲器。若否,则回到步骤501。若是,表示传送缓冲器改由接收控制器所控制,则进行步骤 506,当判断没有断点时,表示接收控制器已返还传送缓冲器的控制权予传送控制器,因此再回到步骤501。由上述说明可知,接收控制器40于接收缓冲器30的储存容量即将被存满之际,且在传送缓冲器10处于闲置的期间,而将接收数据改存放于传送缓冲器10中,并同时暂停传送控制器20的运作。等待主机2由省电状态回复到正常工作状态后,接收控制器40即可将暂存于传送缓冲器10的接收数据写入主机2本身具有的存储器中,并将传送缓冲器10 的使用权归还给传送控制器20,以恢复网络接口卡1传送功能的正常运作。如此,不需增加接收缓冲器的储存容量,故不需增加额外的成本支出,即可存放更多来自网络的数据,进而解决先前技术中接收数据遗失的问题。虽然本发明的技术内容已经以较佳实施例揭露如上,然其并非用以限定本发明, 任何本领域技术人员,在不脱离本发明的精神所作些许的更动与润饰,皆应涵盖于本发明的范畴内,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
权利要求
1.一种可共享缓冲器的网络接口卡,耦接于一主机,该主机通过该网络接口卡与一网络连线,该网络接口卡包含一传送缓冲器,储存由该主机所提供的一传送数据;一传送控制器,耦接该传送缓冲器,控制该传送缓冲器将该传送数据传送至该网络; 一接收缓冲器,储存由该网络所接收的一接收数据;及一接收控制器,耦接该接收缓冲器,控制该接收缓冲器将该接收数据传送至该主机,并判断该接收缓冲器的一储存容量;其中,当该储存容量小于一设定值,该接收控制器传送一请求信号至该传送控制器,该传送控制器依据该请求信号与对应于该传送缓冲器的一状态信号而产生一响应信号,该接收控制器依据该响应信号控制该接收数据是否储存于该传送缓冲器。
2.根据权利要求1的可共享缓冲器的网络接口卡,其中该状态信号包含该传送缓冲器的一第一使用状态,及该主机与该传送缓冲器间的一第二使用状态。
3.根据权利要求2的可共享缓冲器的网络接口卡,其中当该第一使用状态为该传送缓冲器中未储存该传送数据,或该第二使用状态为该主机未有该传送数据等待传送至该传送缓冲器时,该响应信号准予该接收控制器控制该接收数据储存于该传送缓冲器。
4.根据权利要求3的可共享缓冲器的网络接口卡,其中当该接收数据储存于该传送缓冲器时,该接收控制器设置一断点于该接收缓冲器,并依据该断点得知该接收数据所储存的位置。
5.根据权利要求4的可共享缓冲器的网络接口卡,其中该传送控制器还依据该断点的数目而产生该响应信号。
6.根据权利要求5的可共享缓冲器的网络接口卡,其中当该断点的数目大于等于1时, 该响应信号不准予该接收控制器控制该接收数据储存于该传送缓冲器。
7.一种缓冲器共享方法,应用于与一网络连线的一主机,该缓冲器共享方法包含下列步骤提供一传送缓冲器,用以储存由该主机所提供的一传送数据; 控制该传送缓冲器将该传送数据传送至该网络; 提供一接收缓冲器,用以储存由该网络所接收的一接收数据; 控制该接收缓冲器将该接收数据传送至该主机; 判断该接收缓冲器的一储存容量; 当该储存容量小于一设定值,传送一请求信号; 依据该请求信号与对应于该传送缓冲器的状态信号,产生响应信号;及依据该响应信号,控制该接收数据是否储存于该传送缓冲器。
8.根据权利要求7的缓冲器共享方法,其中该状态信号包含该传送缓冲器的一第一使用状态,及该主机与该传送缓冲器间的一第二使用状态。
9.根据权利要求8的缓冲器共享方法,还包含下列步骤当该第一使用状态为该传送缓冲器中未储存该传送数据,或该第二使用状态为该主机未有该传送数据等待传送至该传送缓冲器时,产生准予储存的该响应信号;及控制该接收数据储存于该传送缓冲器。
10.根据权利要求9的缓冲器共享方法,还包含下列步骤当该接收数据储存于该传送缓冲器时,设置一断点于该接收缓冲器中;及依据该断点,得知该接收数据所储存的位置。
11.根据权利要求10的缓冲器共享方法,其中产生该响应信号的步骤,包含 还依据该断点的数目,产生该响应信号。
12.根据权利要求11的缓冲器共享方法,还包含下列步骤 当该断点的数目大于等于1时,产生不准予储存的该响应信号。
13.一种网络接口卡,包含 一传送缓冲器,储存一传送数据;一传送控制器,耦接该传送缓冲器,控制该传送缓冲器将该传送数据传送至一网络; 一接收缓冲器,储存由该网络所接收的一接收数据;及一接收控制器,耦接该接收缓冲器,判断该接收缓冲器的一储存容量; 其中,当该储存容量小于一设定值时,该接收控制器传送一请求信号至该传送控制器, 该传送控制器依据该请求信号与对应于该传送缓冲器的一状态信号而产生一响应信号,该接收控制器依据该响应信号控制该接收数据是否储存于该传送缓冲器。
14.根据权利要求13的网络接口卡,其中该状态信号包含该传送缓冲器的一第一使用状态,及一主机与该传送缓冲器间的一第二使用状态。
15.根据权利要求14的网络接口卡,其中当该第一使用状态为该传送缓冲器中未储存该传送数据,或该第二使用状态为该主机未有该传送数据等待传送至该传送缓冲器时,该响应信号准予该接收控制器控制该接收数据储存于该传送缓冲器。
16.根据权利要求15的网络接口卡,其中当该接收数据储存于该传送缓冲器时,该接收控制器设置一断点于该接收缓冲器,并依据该断点得知该接收数据所储存的位置。
17.根据权利要求16的网络接口卡,其中该传送控制器还依据该断点的数目而产生该响应信号。
18.根据权利要求17的网络接口卡,其中当该断点的数目大于等于1时,该响应信号不准予该接收控制器控制该接收数据储存于该传送缓冲器。
全文摘要
一种可共享缓冲器的网络接口卡,耦接于主机,且主机通过网络接口卡与网络连线。网络接口卡包含传送缓冲器、传送控制器、接收缓冲器及接收控制器。传送缓冲器储存由主机所提供的传送数据。传送控制器控制传送缓冲器将传送数据传送至网络。接收缓冲器储存由网络所接收的接收数据。接收控制器控制接收缓冲器将接收数据传送至主机,并判断接收缓冲器的储存容量。其中,当储存容量小于设定值,接收控制器传送请求信号至传送控制器,传送控制器依据请求信号与对应于传送缓冲器的状态信号而产生响应信号,接收控制器依据响应信号控制接收数据是否储存于传送缓冲器。
文档编号G06F13/16GK102195783SQ20101013425
公开日2011年9月21日 申请日期2010年3月11日 优先权日2010年3月11日
发明者施彦旭, 杨国男, 邱佳颍, 郑凯文 申请人:瑞昱半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1