数据通信流控制装置及其方法

文档序号:6455146阅读:144来源:国知局
专利名称:数据通信流控制装置及其方法
技术领域
本发明一般涉及数据通信,更具体而言,涉及数据通信的流控制。
背景技术
在诸如计算机网络的通信系统中的装置可接收大量的数据。通
常,通信系统中的接收装置不能看到将要从一个或多个传输装置接收多少信息。例如,在以太网络中,接收装置不能在物理和数据链路层看到将要接收多大的数据包,更不能看到下一数据包将是多大的,这将导致在接收装置处可能发生数据溢出和传输数据的丢失。要求通过数据处理源对所接收的数据进行即刻的处理通常将对该装置的中央处
理单元(CPU)或其他处理模块造成不希望的负担。同样,如果可能,要求在数据链路层处的存储器FIFO足够大以保证在其被卸载至应用程序之前不会丢失传输的数据,但这是昂贵的。因此,小型存储器FIFO能被用来在发送所接收的数据给数据緩冲区之前快速临时存储少量所接收的数据。
然而,在一些情况下,比应用程序从数据緩冲区去除和处理数据更快地接收数据是可能的。这将导致数据緩沖区的溢出和不期望的接收数据的丢失。尽管通过使用大接收队列或数据緩冲区可以减少数据緩冲区溢出的可能性,但是,这样的存储器的尺寸和成本对于很多通信系统而言是不期望的。因此,用于控制数据通信流的改进装置是有利的。


图l是通信系统的特定实施例的框图;图2是通信系统的通信控制器的特定实施例的框图; 图3是示出根据本说明书的特定实施例的通信系统的各种存储器 元件的关系的示意图4是与数据緩冲区相关联的緩沖区描述符的特定实施例的示意
图5是通信控制器的溢出检测模块的特定实施例的框图; 图6是在集成电路装置处管理数据通信流的方法的特定实施例的 流程图。
具体实施例方式
披露了用于控制到集成电路的数据緩沖区的数据通信流的装置。 在一个实施例中,该装置接收从传输装置传送的数据。所接收的数据 被放置在存储器的数据緩冲区中。通过一组緩沖区描述符来限定该数 据緩冲区,从而,该组緩冲区描述符中的空闲援冲区描述符的数量表 示数据緩沖区中的空闲空间的量。该装置包括用于从该传输装置接收 信息、并访问表示用于数据緩沖区的空闲緩冲区描述符的数量的信息 的通信控制器。通信控制器通过确定该空闲緩沖区描述符的数量何时 移至阈值水平(水位标记)之下来确定数据緩沖区是否可能溢出。该 通信控制器发送请求给传输装置,以响应于确定数据緩冲区可f ,于 表示数据緩沖区基本上满了的溢出状态来停止传输数据。当数据緩冲 区接近其容量时,通过停止接收的数据流,通信控制器降低了在接收 装置处丢失数据的可能性。
参看图1,示出了通信系统100的框图。通信系统100包括传输 装置170、接收装置181和网络150。该网络150可以是局域网、广 域网或其它合适的通信网络,或其组合。
在工作期间,传输装置170通过网络150向接收装置181传输数 据。接收装置181在存储器120处在数据緩冲区中存储所接收的数 据。数据緩冲区由一组緩冲区描述符定义。因此,该组緩冲区描述符 中的每个空闲緩冲区描述符标识了该数据緩冲区中还没有包含任何数据并被认为是空闲的部分。与该数据緩冲区中包含接收数据的一部分 相关联的緩冲区描述符被认为不是空闲的。当与緩冲区描述符相关的 数据緩沖区的已占用部分中的所有数据被去除或者被用完时,相关的 緩冲区描述符被认为是用过的(即被释放),并再次被认为是空闲的 緩冲区描述符。因此,与释放的緩冲区描述符相关的存储器中的一部 分数据緩冲区现在可用于接收更多的数据。
接收装置181跟踪緩沖区描述符组中的空闲緩冲区描述符的数 量。当数据被写入数据緩冲区时,如果该数量跌至表示数据緩冲区可 能溢出的水位标记(阈值)水平之下,则接收装置181向传输装置 170发出请求,以停止传输数据。该停止请求可以是以太网暂停帧或 者是其他适当的暂停请求。通过使传输装置停止传输数据一段时间, 就给了接收装置181 —段时间来释放一些緩冲区描述符,从而降低了 緩冲区溢出的可能性。
考虑传输装置170和接收装置181之间的任意通信延迟而设置由 接收装置181维持的水位标记水平,所述延迟可导致数据緩冲区的溢 出。例如,在接收装置处发出停止请求的时间和传输装置能够停止传 输数据的时间之间可能存在延迟。因此,在停止请求已经被发出后, 将持续接收数据一段时间。水位标记水平可被选择为使足够的空闲緩 冲区描述符存在,以保证相关的数据緩冲区能够容纳在停止请求被发 出的时间和传输装置能够停止传输数据的时间之间接收的数据。例 如,水位标记水平可以基于所接收的数据的最大帧的大小和需要用来 停止数据传输的最大延迟。
图1的实施例中的接收装置181被示出为包括连接至存储器 120、装置130、和装置140的集成电路装置110。装置140表示连接 至网络150以提供通信控制器110和网络150之间的接口的物理通信 模块140。装置130可以是主/从装置,诸如CPU、存储器控制器、 或其他外围装置。存储器120可包括读/写随机存取存储器。在一个 实施例中,存储器120是用来存储用于系统100的CPU的一个或多 个指令、视频信息等的系统存储器。物理通信模块140提供通信控制
8器110和网络150之间的接口。物理通信才莫块140可实现以太网
PHY层或其他适当的物理通信功能。应当理解,尽管已经将存储器
120、装置130、和物理通信模块140描述为在集成电路110的外
部,但是一个或多个这样的模块也可以与集成电路110集成。还应当
理解,通信系统可被实现为没有物理通信模块140。
集成电路110包括连接至物理通信模块140和连接至系统总线
125的通信控制器111。在特定实施例中,通信控制器是链路层控制
器,诸如以太网媒体访问控制器(MAC),或其他基于标准或适当
的链路层控制器。集成电路装置110还包括连接至总线125的装置
112、 113、和114。装置112-114可以是主或从装置,在特定实施例
中,装置113是CPU,以及装置114可以是总线和总线126之间的 总线接口单元。
在工作期间,物理通信模块140从传输装置170接收信号,且执 行适当的处理以提供数据给通信模块111。在特定实施例中,通信控 制器111将所接收的数据放置到通信控制器111处的先进先出
(FIFO)存储器队列(存储器FIFO)(未示出)。FIFO存储器中 的数据被传送给数据緩冲区,其能够被存储在存储器120中。
在数据緩冲区中存储的数据,通常被存取应用程序以先进先出
(FIFO)的方式从数据緩冲区中移除,从而释放存储数据的数据緩 冲区部分。例如,存取应用程序可处理存储在数据緩冲区中的打包信 息,并将打包数据转换成合适的格式以供其他应用程序访问。请注 意,存取数据緩冲区中的数据的应用程序可以是基于应用程序的硬件 或软件。
在特定实施例中,数据緩沖区由一组緩冲区描述符定义。例如, 一组緩冲区描述符可形成緩冲区描述符环,其中每个緩冲区描述符与 存储在存储器120中的数据緩冲区的一部分相关。例如,每个緩沖区 描述符可包含指向存储器120中与数据緩冲区部分相关的存储器位置 的指针。当数据被写入一部分数据緩沖区中时,与该部分数据緩沖区 相关的緩冲区描述符被标识为使用或不再空闲。 一旦存储在数据緩冲区中的特定緩冲区描述符处的数据被处理,且由此从数据緩冲区中移 除该数据,则緩沖区描述符被释放并被标识为空闲。因此,空闲緩冲 区描述符的数量表示通倌控制器111可用的数据緩冲区中的空闲空间 量。
通信控制器111监控緩沖区描述符组中空闲緩冲区描述符的数 量。管理定义系统存储器的緩冲区描述符的数据处理源可以提供与空 闲緩冲区的数量有关的信息。这样的源可以是诸如用户应用程序、驱 动器等类似物的硬件源或软件源。例如,更新与緩沖区描述符组中的 緩冲区描述符的可用性相关的信息的源也可以向通信控制器111可访 问的集成电路装置或其他位置提供可用性信息。可以通过系统总线
125来提供信息。在常规系统中,与释放緩冲区描述符有关的信息没 有被提供给诸如通信控制器111的链路层控制器,并且对这样由链路 层控制器进行释放的访问可能会花费不期望的时间和系统资源。此 外,可以在通信控制器lll中计算与被使用或未空闲的緩沖区描述符 相关的信息。注意,根据本发明,在集成电路装置处更新与緩冲区描 述符的可用性有关的信息的源不需要实时更新信息。因此,在特定实 施例中,在緩沖区中可以具有比由空闲緩冲区描述符信息所指示的更 多或更少的空闲空间。可以考虑何时对緩冲区描述符的可用性进行更 新来设置水位标记。
通信控制器lll访问表示空闲緩冲区描述符的期望数量的水位标 记。如果与数据緩沖区相关的空闲緩沖区描述符的数量跌落至基于水 位标记的值之下或与其相等,则指示数据緩冲区可能溢出。因此,相 应于可能的溢出状态,通信控制器111向传输装置170发出停止请 求,从而停止传输数据。
停止请求可以例如使用以太网暂停命令来暂时延迟来自传输装置
的数据传输,或终止来自传输装置的数据传输。因此,在特定实施例 中,在已经释放了足够数量的緩冲区描述符之后,通信控制器可以通 知传输装置170可以恢复数据传输。在特定实施例中,通信控制器可 以提供指示传输装置是否应当传输数据的控制信号。通过设置控制信号的状态,通信控制器可以控制数据的传输。
在可选实施例中,通信控制器111向传输装置170发出一系列暂 停请求。每个暂停请求停止传输数据一个暂停间隔。在已经释放了足 够数量的緩冲区描述符之后,通信控制器lll停止发出暂停请求,并 在经过了挂起的暂停间隔之后,传输装置170恢复数据的传输。
参考图2,图2示出了通信控制器211的特定实施例的框图。通 信控制器211是图1所示的通信控制器111的特定实施例。通信控制 器211包括接口控制器220、接收FIF0 230、传输FIFO 240、 DMA (直接内存存取)控制器250、以及溢出检测模块260。在特定实施 例中,接收FIFO 230是SRAM接收FIFO。接口控制器220包括连 接至物理通信模块的输出端和输入端。接收FIFO包括连接至接口控 制器220的输出端的输入端,以及连接至DMA控制器250的输入端 的输出端。接收FIFO包括连接至接口控制器220的输入端的输出 端,以及连接至DMA控制器250的输出端的输入端。溢出检测模块 260具有连接至接口控制器220的输入端的输出端。通过由连接225 表示的一个或多个连接来提供各模块之间的控制信号。注意,溢出检 测模式260也可以连接至连接225以接收与溢出检测相关的信息。
在工作过程中,接口控制器220从物理通信模块140接收数据以 及将数据提供给物理通信模块140。所接收的数据被存储在接收 FIFO 230中并经由DMA才莫块250被传送至数据緩冲区。溢出检测 模块260监控将数据緩沖区定义为数据緩沖区充满度的指示的空闲緩 沖区描述符的数量,从而确定是否存在可能的溢出状态。溢出检测模 块也可以监控其他系统源以确定是否存在实际或可能的溢出。例如, 溢出检测模块260可以监控接收FIFO 230的充满度以确定在接收 FIFO 230处是否存在可能的溢出状态。如果发生溢出状态,溢出检 测模块260声明了 ( assert) OVERFLOW INDICATOR信号。作为 响应,流控制模块270向传输装置发出请求以停止传输数据,从而减 少在数据緩冲区或接收FIFO 230中的溢出的可能性。
传输FIFO 240接收由接口控制器220访问的数据。该接口控制
ii器220将来自传输FIFO的数据提供至物理接口模块。
参考图3,示出了组成数据緩冲区的方案的特定实施例的示意 图。该示意图示出了一组寄存器330。该组寄存器330存储与緩冲区 描述符组322有关的地址和其他信息。緩冲区描述符组322表示定义 了数据緩冲区321的緩冲区描述符环。该緩冲区描述符组322和数据 緩冲区321可以驻留存储在存储器320中,例如图1中的存储器 120。该组寄存器330可以位于集成电路装置处,以及可以特别地驻 留在通信控制器lll中。
如图所示,该緩冲区描述符组322包括多个緩冲区描述符。每个 緩冲区描述符包括指向存储器320的地址的指针,标识了与数据緩冲 区321相关的存储器320的一部分。包括在每个緩冲区描述符中的指 针可以在系统初始化的过程中或其他适当时间被初始化。应当理解, 緩冲区描述符不需要指向存储器320的物理上连续的部分。
该组寄存器330包括基址寄存器331、头指针寄存器332、尾指 针寄存器333、环长寄存器334、以及水位标记寄存器335。基址寄 存器331存储表示用于緩冲区描述符组322中的第一緩冲区描述符的 存储器地址的值(RBASE)。头指针寄存器332存储表示用于与数 据緩沖区321的下一可用部分相关的緩冲区描述符的存储器地址的值 (HPOINTER),该值在数据被存储在新的緩冲区描述符位置时被 通信控制器lll更新。
在特定实施例中,该緩沖区描述符组322被配置为在写入数据时 回绕的緩沖区描述符环。HPOINTER的值被管理緩冲区描述符环的 源设置为RBASE的值,使得HPOINTER表示数据将被存储在緩冲 区描述符环的第一緩冲区描述符处。
尾指针寄存器333存储表示与数据緩冲区321的最近的使用 (service )或释放的部分相关的緩沖区描述符的值 (TPOINTER)。因此,当处理应用程序将数据移出数据緩冲区321 时,即存储器分配解除,TPOINTER值被管理环緩冲区的源更新以 识别与将被使用的数据緩沖区321的最新部分有关的緩冲区描述符。
12如果该緩冲区描述符組322被配置为緩沖区描述符环,则 TPOINTER以环的方式移动并指向緩沖区描述符环的"尾"。
应该理解,可以基于緩冲区描述符环的头和尾的位置确定空闲緩 冲区描述符的数量。空闲緩冲区描述符的数量提供了通信控制器111 可用的数据緩冲区321的充满度的测量标准。在特定实施例中,空闲 緩冲区描述符的数量可以根据下面公式计算
当TPOINTER小于HPOINTER时,根据公式 /^££幼=7TO鮮W -朋證,十朋D丄五M JH
以及当TPOINTER大于或等于HPOINTER时,根据公式
F舰肪=r尸,濯-朋cw歷
值RBDLENGTH表示緩冲区描述符环的长度,并存储在寄存器 组330的寄存器334中。在特定实施例中,HPOINTER 、 TPOINTER和RBDLENGTH代表緩沖区描述符的索引值。
水位标记寄存器335存储值PBDWM,其表示在緩沖区描述符 组322中空闲緩冲区描述符的期望最小数量。如果緩冲区描述符组 322中的空闲緩冲区描述符的数量小于该期望值,则在数据緩冲区 321中存在可能的溢出。因此,PBDWM值可以与緩冲区描述符组 322中的空闲緩冲区描述符的数量相比较,以识别数据緩冲区321的 可能的溢出。
参考图4,图4示出了緩沖区描述符400的特定实施例的示意 图。緩冲区描述符400包括地址指针字段402、数据长度字段404、 以及状态和控制字段406。识别例如数据緩冲区321的数据緩冲器的 一部分的基地址的地址指针字段406与緩冲区描述符400有关。数据 长度字段404存储如下的值,该值表示在与緩冲区描述符400有关的 数据緩冲区的一部分中的数据量。管理对与緩冲区描述符相对应的数 据緩冲区进行访问的源可以使用该数据长度字段来识别有多少数据緩 冲区与特定緩冲区描述符相关。状态和控制字段406存储状态和控制 信息,例如系统存储器中的头和尾信息、緩冲区是否空闲、以及緩冲 区描述符400是否为緩沖区描述符环中的最后的緩冲区描述符。参考图5,示出了溢出检测模块260的特定实施例的框图。溢出 检测模块260连接到寄存器组330。溢出检测模块260包括緩沖区描 述符流控制模块502、接收FIFO流控制模块506、暂停计数器 508、暂停间隔寄存器510、以及或门504。緩冲区描述符流控制^=莫块 包括连接至寄存器组330的第一输入端,接收信号RECHECK的第 二输入端,以及提供信号BDPAUSE以指示在数据緩冲区处的可能 的溢出状态的输出端。接收FIFO流控制模块506具有提供信号 MFPAUSE信号以指示在接收FIFO处的可能的溢出状态的输出端。 暂停计数器508包括连接到緩沖区描述符流控制模块以提供信号 RECHECK的输出端、接收信号BDPAUSE的第一输入端、以及第 二输入端。暂停间隔寄存器510包括连接到暂停计数器508的第二输 入端的输出端。或门504具有多个输入端,包括连接到緩冲区描述符 流控制模块502的输出的输入,以及连接到接收FIFO流控制4莫块 506的输出端的输入端,以及提供信号OVERFLOW INDICATOR 的输出端。
在操作期间,緩冲区描述符流控制模块502访问寄存器组330以 确定在数据緩冲区中是否存在可能的溢出。在特定实施例中,如图3 所述,緩冲区描述符流控制模块502通过确定与数据緩冲区相关的空 闲緩冲区描述符的数量并将该数量与水位标记PBDWM相比较来检 测可能的溢出。如果緩冲区描述符流控制模块502检测到可能的溢 出,则声明信号BDPAUSE,导致声明OVERFLOW INDICATOR 信号。响应于该信号的声明,通信控制器lll将向传输装置发出停止 请求,从而减少在数据緩冲区中的溢出的可能性。
接收FIFO流控制模块506检测接收FIFO 230中的可能的溢 出。如果检测到可能的溢出,则声明信号MFPAUSE,导致声明信号 OVERFLOW INDICATOR信号并保证暂停请求。因此,溢出检测 模块260能够检测到包括接收FIFO 230和数据緩冲区的多个位置中 的可能的溢出,从而减少数据丟失的可能性。
暂停计数器508可以用于保持基于数据传输已经停止的时间的长度值,使得溢出检测模块260维持溢出指示直到不再存在可能的溢 出,或者在预定时长后去除溢出指示。在应用以太网协议的一个实施 例中,BDPAUSE信号将使暂停计数器被设置为一个基于与暂停命令 一起发送的暂停间隔的值。暂停间隔值是存储在寄存器510中的值 PAUSE INTERVAL值,并且表示在由通信控制器111发出停止请求 之后暂停命令将使数据传输停止的时间的长度。暂停计数器508从 PAUSE INTERVAL值向下计数直到达到阈值。在特定实施例中,阈 值是PAUSE INTERVAL值的 一 半。当达到阈值时,声明 RECHECK信号,并且緩冲区描述符流控制模块重新检查存储在寄 存器组(register bank,寄存器体)330中的值,以确定在数据緩冲 区中是否依然存在可能的溢出。如果仍然存在可能的溢出,则再次声 明信号BDPAUSE,使另一停止请求被发送至传输装置。
参考图6,示出了控制至数据緩沖区的数据流的方法的特定实施 例的流程图。该方法可以在通信控制器中实现,例如图l中的通信控 制器111。在块611,确定与数据緩冲区相关的空闲緩冲区描述符的 数量。空闲緩冲区描述符的数量表示通信控制器或类似装置可用的数 据緩沖区中的空闲空间量,并因此而表示数据溢出的可能性。在判断 块612,确定空闲緩沖区描述符的数量是否小于或等于水位标记值。 水位标记值表示为了避免或减少在数据緩冲区中的溢出的可能性而期 望的空闲緩冲区描述符的数量。如果緩冲区描述符的数量大于水位标 记,则该方法流程进行到块611。如果緩沖区描述符的数量小于或等 于水位标记,则该方法流程进行到块613并将停止数据传输的请求发 送到数据传输装置。这就使系统在数据緩沖区中清理出足够的空间以 减少溢出的可能性。
方法流程进行到块614并且存储在计数器中的值减少。计数器表 示数据传输将被停止的时间量。在判断块615,确定计数器是否已经 达到阈值。如果没有达到,则方法流程返回到块614,并且计数器继 续被减少直到达到阈值。 一旦达到阈值,方法流程返回到块611以确 定在数据緩冲区中是否仍然存在可能的溢出。这样,该方法继续发出停止请求直到在数据緩冲区中已经清理出足够的空间来减少溢出的可 能性。
结合特定实施例已经描述了本公开。然而,应该理解在不背离在 后面的权利要求中阐述的本公开的范围的情况下,可以进行各种修改 和改变。例如,在此描述的通信系统可以被实施为接收固定大小而不 是变化大小的包。此外,在此描述的通信控制器可以访问具有相关的 緩冲区描述符组的多个数据緩冲区。每个緩沖区描述符可以与不同的 水位标记相关。这样,每个数据緩冲区可以与不同的业务性质相关, 而业务质量至少部分地取决于相关的水位标记。此外,与緩冲区描述 符组有关的信息,例如指向緩冲区描述符环的头和尾的指针,可以被 存储在通信控制器处、集成电路中的其他地方、或集成电路的外部。 因此,说明书和附图应被看作为示例性的,而不是限制性的,并且所 有这样的修改都应包括在本公开的范围内。
公开了管理数据流的方法。在特定实施例中,该方法包括在第一 时间接收表示緩冲区描述符组中的第一緩冲区描述符的第一值,緩冲 区描述符组包括用于限定存储器緩冲区的多个緩沖区描述符,其中,
第一緩冲区描述符是空闲緩冲区描述符;以及根据第一值确定停止在 集成电路装置处从传输装置接收数据。在特定方面,该方法包括在集 成电路装置处接收第二值,该第二值表示緩冲区描述符组中的緩冲区 描述符不再空闲;在集成电路装置处接收水位标记值,该水位标记值 表示緩沖区描述符组中的期望的空闲緩冲区描述符数量;以及进一步 根据第一值、第二值和水位标记值确定停止在集成电路装置处从传输 装置接收数据。
在另一特定方面,该方法包括在集成电路装置处接收表示緩冲区 描述符组的总数量的长度值;以及进一步基于该长度值,确定停止在 集成电路装置处从传输装置接收数据。在另一特定方面,緩冲区描述 符组被设置为緩冲区描述符环。在又一特定方面,基于小于水位标记 的第二值和第一值之间的关系来确定停止在集成电路装置处从传输装 置接收数据。在一特定方面,该方法包括提供停止指示符,停止指示符表明在
集成电路装置处接收数据将被停止的持续时间;以及在持续时间期 间,确定应当继续停止从传输装置接收数据。在另一特定方面,第一 值是从数据处理源接收到的,该数据处理源从存储器緩沖区获取信 息;以及响应于提供信息给存储器緩冲区,在集成电路装置处计算第 二值。在特定方面,数据处理源在集成电路装置的外部。
在特定实施例中,该方法包括在物理接口处接收以太网包;向在 集成电路装置的链路层模块处的接收FIFO队列提供与以太网包相关 的信息;从FIFO队列向存储器緩冲区发送包信息;接收第一尾指示 符值,第一尾指示符值表示用于限定緩冲区描述符环的第一多个緩沖 区描述符中的第一空闲緩冲区描述符,其中,緩冲区描述符环限定存 储器緩沖区;以及根据第一尾指示符值,发送第一暂停命令,其中第 一暂停命令用于停止在所述集成电路装置的所述物理接口处接收数据 流一段时间。
在特定方面,该发明包括接收头指示符值,该头指示符值表示多 个緩冲区描述符中的下一可用的緩冲区描述符;以及接收水位标记 值。在特定方面,进一步基于所述头指示符值和所述水位标记值发送 所述第一停止命令。在另一特定方面,基于小于所述水位标记值的所 述尾指示符值和所述头指示符值之间的关系发送所述第一停止命令。
在另一特定方面,该方法包括接收表示多个緩冲区描述符中的緩 沖区描述符的数量的长度值;以及进一步基于所述长度值发送所述第 一停止命令。在另一特定方面,该方法包括接收表示緩冲区描述符环 的基地址的緩冲区描述符基值;以及进一步基于该緩冲区描述符基值 发送第一停止命令。
在另一特定方面,该方法包括接收第二尾指示符值,笫二尾指示 符值表示第二多个緩冲区描述符中的最近释放的緩冲区描述符;以及 根据第一尾指示符值发送第二停止命令,其中,第二暂停命令用于限 制在集成电路装置的物理接口处接收数据流。
公开了一种用于控制数据流的装置。在特定实施例中,该装置包括在集成电路装置处的系统总线和耦合到系统总线的集成电路装置处 的通信控制器。在特定方面,通信控制器包括存储水位标记的水位标 记寄存器,其中水位标记值表示用于存储器緩冲区的緩冲区描述符组
的期望的空闲緩沖区描述符的最小数量;溢出检测模块,包括第一 输入端,耦合至水位标记寄存器;以及输出端,基于水位标记值提供 声明信号,以指示存储器緩冲区的可能的溢出;以及接口模块,包 括输入端,耦合至溢出检测模块的输出端;输出端,用于在溢出检 测模块处的信号指示可能的溢出时向传输装置发送请求,该请求用于 停止向接口模块传输信息。
在另一方面,通信控制器进一步包括头寄存器,用于存储指向 緩冲区描述符组的第一緩沖区描述符的第一指针;尾寄存器,用于存 储指向緩冲区描述符组的第二緩沖区描述符的第二指针;以及溢出检 测模块进一步包括第二输入端,耦合至头寄存器;第三输入端,耦 合至尾寄存器;其中,声明信号进一步基于第一指针和第二指针。在 另一方面,通信控制器进一步包括环长寄存器,用于存储表示緩冲区 描述符组的緩沖区描述符的总数量的环长值,以及声明信号进一步基 于环长值。在特定方面,在集成电路装置处计算第一指针,以及集成 电路装置包括输入端,用于从集成电路装置外部的装置接收第二指 针。在另一特定方面,发送第一停止命令是基于低于水位标记值的尾 指示符值和头指示符值之间的关系。
在另一特定方面,通信控制器进一步包括暂停长度寄存器,用于 存储表示暂停间隔的暂停长度值,在暂停间隔期间,传输装置响应于 请求停止传输信息。在另一特定方面,通信控制器进一步包括计数 器,包括输入端,耦合至暂停长度寄存器,以及输出端,用于提供 声明的重新发出信号;以及溢出检测模块,进一步包括耦合至计数器 的输出端的第四输入端,以及其中声明信号进一步基于重新发出信 号。
在另一特定方面,接口模块包括以太网媒体访问控制器。在另一 特定方面,该装置包括在集成电路装置处的接收存储器FIFO队列,该接收存储器FIFO队列与通信控制器相关。该接收存储器FIFO队 列包括输出端,用于根据存储器FIFO队列的充满度来向所述溢出检 测模块提供声明的FIFO溢出信号,以指出所述接收存储器FIFO队 列的可能的溢出。
上面描述了特定实施例的益处、其他优点和解决问题的方案。然 而,益处、优点、解决问题的方案、以及可以使任何益处、优点、解 决问题的方案发生或更显然的任何元素不应被解释为任何或所有权利 要求的关键的、必需的、或必须的特征或元素。因此,本公开不旨在 用于限制在此阐述的特例,相反,旨在覆盖可以合理地包括在本公开 的精神和范围内的替换物、修改物和等同物等。
权利要求
1. 一种方法,包括在第一时间接收第一值,所述第一值表示在缓冲区描述符组中的第一缓冲区描述符,所述缓冲区描述符组包括用于限定存储器缓冲区的多个缓冲区描述符,其中,所述第一缓冲区描述符是空闲的缓冲区描述符;以及根据所述第一值确定停止从传输装置接收数据。
2. 根据权利要求l所述的方法,进一步包括 接收第二值,所述第二值表示所述緩沖区描述符组中不再空闲的緩冲区描述符;接收水位标记值,所述水位标记值表示所述緩冲区描述符组中的 空闲的緩沖区描述符的期望数量;以及进一步根据所述第一值、所述第二值和所述水位标记值确定停止 在集成电路装置处从传输装置接收数据。
3. 根据权利要求2所述的方法,其中,基于小于所述水位标记 值的所述第二值和所述第一值之间的关系,确定停止在所述集成电路 装置处从传输装置接收数据。
4. 根据权利要求2所述的方法,其中,从数据处理源接收所述 第一值,所述数据处理源用于从所述存储器緩冲区获取信息,以及响 应于向所述存储器緩冲区提供信息,在集成电路装置处计算所述第二 值。
5. 根据权利要求4所述的方法,其中,所述数据处理源在所述 集成电路装置的外部。
6. 根据权利要求2所述的方法,进一步包括 在所述集成电路装置处接收表示所述緩冲区描述符组的总数量的长度值;以及进一步基于所述长度值,确定停止在所述集成电路装置处从传输 装置接收数据。
7. 根据权利要求1所述的方法,进一步包括 提供停止指示符,所述停止指示符表明在所述集成电路装置处接收数据将被停止的持续时间;以及在所述持续时间期间,确定应继续停止从所述传输装置接收数据。
8. 根据权利要求1所述的方法,其中,所接收的数据与以太网 协议相关。
9. 一种方法,包括 在物理接口处接收数据包;向在集成电路装置的链路层模块处的接收FIFO队列提供与所述 数据包相关的信息;从所述FIFO队列向存储器緩冲区发送所述包信息;接收第一尾指示符值,所述第一尾指示符值表示用于限定緩冲区 描述符环的第一多个緩冲区描述符中的第一空闲的緩冲区描述符,其 中,所述緩冲区描述符环限定所述存储器緩冲区;以及根据所述第一尾指示符值,发送第一暂停命令,其中所述第一暂 停命令用于停止在所述集成电路装置的所述物理接口处接收数据流一 段时间。
10. 根据权利要求9所述的方法,进一步包括 接收头指示符值,所述头指示符值表示所述多个緩冲区描述符中的下一可用的緩冲区描述符; 接收水位标记值;以及其中,进一步基于所述头指示符值和所述水位标记值发送所述笫 一停止命令。
11. 根据权利要求10所述的方法,其中,基于小于所述水位标 记值的所述尾指示符值和所述头指示符值之间的关系发送所述第一停 止命令。
12. 根据权利要求IO所述的方法,进一步包括 接收表示所述多个緩冲区描述符中的緩冲区描述符数量的长度值;以及其中进一步基于所述长度值发送所述第 一停止命令。
13. 根据权利要求9所述的方法,进一步包括 接收第二尾指示符值,所述第二尾指示符值表示第二多个緩沖区描述符中的最近释放的緩冲区描述符;根据所述第一尾指示符值发送第二停止命令,其中,所述第二暂 停命令用于限制在所述集成电路装置的所述物理接口处接收的数据 流。
14. 一种通信控制器,包括水位标记寄存器,用于存储水位标记值,其中,所述水位标记值 表示用于存储器緩冲区的緩冲区描述符组的期望的空闲的緩冲区描述 符的最小数量;溢出检测模块,包括第一输入端,耦合至所述水位标记寄存 器;以及输出端,用于基于所述水位标记值提供声明信号,以指出所 述存储器緩沖区的可能的溢出;以及接口模块,包括输入端,耦合至所述溢出检测模块的所述输出 端;输出端,用于在所述溢出检测模块处的所述信号指出所述可能的 溢出时向传输装置发送请求,所述请求用于停止向所述接口模块传输 信息。
15. 根据权利要求14所述的通信控制器,进一步包括 头寄存器,用于存储指向所述緩冲区描述符組的第一緩冲区描述符的第一指针;尾寄存器,用于存储指向所述緩冲区描述符组的第二緩冲区描述 符的第二指针;以及所述溢出检测模块进一步包括第二输入端,耦合至所述头寄存器;第三输入端,耦合至所述尾寄存器;其中,所述声明信号是进一步基于所述第 一指针和所述第二指针的。
16. 根据权利要求15所述的通信控制器,其中所述声明信号是 基于低于所述水位标记值的所述第二指针和所述第一指针之间的关系的。
17. 根据权利要求15所述的装置,其中在集成电路装置处计算 所述第一指针,所述集成电路装置包括输入端,用于从所述集成电路 装置外部的装置接收所述第二指针。
18. 根据权利要求15所述的通信控制器,其中所述通信控制器 进一步包括环长寄存器,用于存储表示所述緩冲区描述符組的緩冲区 描述符的总数量的环长值,以及其中,所述声明信号进一步基于所述 环长值。
19. 根据权利要求15所述的通信控制器,其中所述通信控制器 进一步包括暂停长度寄存器,用于存储表示暂停间隔的暂停长度值, 在所述暂停间隔期间,所述传输装置响应于所述请求停止传输信息。
20. 根据权利要求19所述的通信控制器,其中所述通信控制器 进一步包括计数器,包括输入端,耦合至所述暂停长度寄存器;以及输出 端,用于提供声明的重新发出信号;以及所述溢出检测模块,进一步包括耦合至所述计数器的所述输出端 的第四输入端,以及其中所述声明信号进一步基于所述重新发出信 号。
21. 根据权利要求14所述的通信控制器,进一步包括在所述集 成电路装置处的接收存储器FIFO队列,所述接收存储器FIFO队列 与所述通信控制器相关,所述接收存储器FIFO队列包括输出端,用 于根据所述接收存储器FIFO队列的充满度来向所述溢出检测模块提 供声明的FIFO溢出信号,以指出所述接收存储器FIFO队列的可能 的溢出。
全文摘要
披露了一种用于控制至集成电路的数据缓冲区的数据通信流的装置。该装置接收传输装置(170)传送的数据。所接收的数据被放置在存储器(120)的数据缓冲区中。该数据缓冲区通过缓冲区描述符组来限定,从而,该缓冲区描述符组中的空闲缓冲区描述符的数量表示数据缓冲区中的空闲空间的量。通信控制器(111)通过确定空闲缓冲区描述符的数量何时移至阈值水平(水位标记)之下来确定数据缓冲区是否可能溢出。该通信控制器发送请求给传输装置,以响应于数据缓冲区可能处于表示数据缓冲区基本上满了的溢出状态来停止传输数据。
文档编号G06F3/00GK101460912SQ200780021020
公开日2009年6月17日 申请日期2007年4月5日 优先权日2006年6月5日
发明者D·W·托德, I·阿梅德, J·E·伊尼斯, M·J·泰勒 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1