CN1282339C - 一种用于以太网无源光网络的数据帧缓存设备和方法 - Google Patents

一种用于以太网无源光网络的数据帧缓存设备和方法 Download PDF

Info

Publication number
CN1282339C
CN1282339C CNB2003101168868A CN200310116886A CN1282339C CN 1282339 C CN1282339 C CN 1282339C CN B2003101168868 A CNB2003101168868 A CN B2003101168868A CN 200310116886 A CN200310116886 A CN 200310116886A CN 1282339 C CN1282339 C CN 1282339C
Authority
CN
China
Prior art keywords
frame
storage device
descriptor
signal
write
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.)
Expired - Fee Related
Application number
CNB2003101168868A
Other languages
English (en)
Other versions
CN1547358A (zh
Inventor
何岩
焦名圣
陈丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CNB2003101168868A priority Critical patent/CN1282339C/zh
Publication of CN1547358A publication Critical patent/CN1547358A/zh
Application granted granted Critical
Publication of CN1282339C publication Critical patent/CN1282339C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及一种用于以太网无源光网络的数据帧缓存设备和方法,本发明的缓存设备和方法采用了一种双先进先出结构,来实现对以太网这种类型的变长数据帧的存储和管理,首先检查进入缓存队列的数据帧,按照先进先出方式写入到数据帧存储装置,指向这个数据帧的一个指针被写入到描述符存储装置,同时该数据帧的长度信息也被写入到描述符存储装置的第二个域内,一个数据帧对应一个描述符,这些描述符又组成了一个先进先出队列,这样当某个指向数据帧存储结构指针在使用过程中发生混乱时,虽然导致数据帧发生错误,但再次使用下一个描述符先进先出队列的一项作为新指针,整个结构仍然可以根据新的地址得到恢复,从而维持了数据帧存储结构的完整性。

Description

一种用于以太网无源光网络的数据帧缓存设备和方法
技术领域
本发明涉及一种用于以太网无源光网络(EPON)的数据帧缓存设备和方法。具体而言,本发明用于实现EPON系统的二层介质访问控制(MAC)交换芯片中接收及转发的以太网可变长度数据帧的缓存设备和方法。
背景技术
根据802.3协议的规定,在标准的以太网帧中应该包含一组数据字节,它的组成具体有:7字节的前导码(preamble),1个字节的帧定界符(SFD),6个字节的源地址和6个字节目的地址,2个字节的长度/类型域,46-1500个字节的数据域,以及4个字节的帧校验系列。如果是半双工的工作模式,对于长度小于512字节的帧还需要增加载波扩展域,将长度增加到512字节,即以太网的帧的长度是从64字节到1518字节的变长帧。
以太网二层交换芯片通常需要缓存接收和转发的以太网包,根据交换的速率和缓存单元的定位不同,以太网帧的存储有多种实现方法。目前典型的方法有两种:链表存储和连续存储,以GALILEO公司的二层芯片GT-48360和SMSC公司的LAN91C111芯片为代表。
链表存储结构适用于异步转移模式(ATM)信元等定长数据帧的存储。它在公共内存(RAM)中管理多个队列,这种方法也叫“链表”。链表方法是在特定队列里的每个单元写入指针,每个指针指向内存(RAM)中的一个连续单元,从而允许将多个数据队列分段存储在一个公共RAM中。GT-48360芯片是个带有片内存储千兆以太网控制器。它对以太网包的存储就延续了定长数据格式。它将片内存储单元基本上按以太网的最长包(1516字节)的长度分成块(BLOCK),每块占用0X600个字节的地址,如果是1兆比特的存储单元就可以分成80块,也就可以存储80个以太网包。同时使用标识符队列技术,将每个以太网包的“特征”记录下来,特征包括:块地址、包长度、单播/多播标记等等。在接收帧的时候,存储帧内容,提取并记录特征值到标识符队列中;在转发帧的时候首先读取标识符队列中的特征值,再根据这些信息从缓存中取出以太网帧。
GT-48360芯片的这种以太网包的存储方式记录了存储数据帧的详细信息,在读数据的时候读指针的初值是块地址,它由标识符队列提供,而标识符队列读、写地址的变换间隔一帧的时间,并且读指针的初值与数据缓存中的前一次读地址指针没有直接关系,因此如果前一次读地址指针出错不会影响到这一次数据的读出。同样在写数据帧时,写地址也是块内地址,如果写指针出错不会影响到别的以太网帧。对于变长数据帧,而且处理速度要求较高的情况,这样的储存方式带来的好处是很明显的。而且对于不同优先级和不同转发目的地的以太网帧可以分不同的标识符队列,每个标识符队列存储相应特征的以太网帧的特征,而帧的内容可以存储在同样的存储单元中。但是如果发送的以太网包以较短的包长为主,那么这种存储结构对于存储单元的利用率就比较低。例如1兆的存储单元可以存储大约两千个长度为64字节的以太网包,而如果将1兆的存储单元以这样的结构存储数据帧,则只能存储80个数据帧,浪费了大部分的存储单元。
LAN91C111芯片带有8K字节片内缓存的快速以太网控制器,它对以太网包的存储采用连续存储方式,数据宽度为16比特。存储结构包括16比特的状态字,11比特的帧长度,64~1518字节的数据域,1字节的控制字和1字节的未位数据。接收帧的状态字包括帧队列错误,接收帧是否广播帧,接收帧的有无循环冗余校验(CRC)错误等等信息,发送帧的状态字包括芯片的工作模式、自协商处理等等信息。帧长度域保持以太网帧的长度除2的信息,这个数值恒为偶数,如果以太网帧的长度为奇数,则这个域的值比实际值小1。数据域为整个以太网包的信息。控制字包含奇偶信息和CRC信息,如果设置了奇偶信息为1,则在控制字之后的1字节的未位数据为有效的帧内容。
LAN91C111芯片的以太网包的存储方式在某些使用场合有效的利用了存储空间,同时由于加宽的数据总线,因而降低了读写时钟,提高了缓存工作效率。但是当某一时刻的读/写指针出错则不可避免的会影响后续帧的读/写操作,导致一系列的坏包,尤其对于处理速度要求高的系统,这种错误几乎是不可避免的,这样就可能需要附加一些控制电路来解决这一问题。并且如果需要实现分类别存储数据帧的情况,比如分优先级存储数据帧等,就需要使用多个同样的数据存储结构,同样有可能出现某些存储结构的利用率较低的问题,造成存储单元的浪费。
还有一种存储方式类似于GT-48360的存储方式,一般在计算机的网卡中使用。这种结构是按页存储,将存储RAM分页,256字节为一页,16位的RAM地址的高8位可以称为页码。比如16K的RAM地址从0X4000-0X7FFF,从页0X40到页0X7F,共有64页可用来接收和发送数据帧。一般将前12页存放发送数据帧,后52页存放接收数据帧,这可以根据需要有不同配置,但是配置的缓存单元必须能存储一个最长的以太网包。如果存储的数据帧比较短不满一页必须使用一页存储,下一个包用下一页存储,如果数据帧较长需要用多页来存储,即一定要按页存储。显然,这种存储结构不但具有GT-48360的存储方式的优点,而且提高了存储单元的利用率。,
对于EPON系统,由于上行的时分多址(TDMA)接入方式,因此尤其在远端光网络单元(ONU)设备的二层交换芯片中需要比一般二层交换芯片大的帧存储容量,如果存储容量不合适会增加远端ONU设备的丢包率,而增加存储容量就意味着增加成本,并增加管理的复杂度,因此使用怎样的存储结构,对于降低整个系统的成本和提高系统性能都至关重要。同时决定EPON系统性能好坏的另外一个重要的参数是上行带宽分配是否合理,即使用怎样的动态带宽分配策略,一些好的带宽分配策略往往要求提供更多更细致的用户数据的流动情况,因此可能会要求远端设备提供分类的数据队列情况,比如分业务或者分优先级等等。而上面所陈述的目前各以太网帧存储方式均不能很好的满足EPON系统的这些需要,因此在本发明中提出一种采用维持队列结构完整性的描述符先进先出(FIFO)队列,来管理可变包长队列的方法,以便符合EPON系统的包存储要求。
为解决上述现有技术所存在的技术问题,需要考虑如下方面:
首先,采用那种管理结构来对以太网这种类型的变长帧的存储和管理。
以太网二层交换芯片通常需要缓存接收和转发的以太网包,根据交换的速率和缓存单元的定位不同,以太网帧的存储有多种实现方法,目前典型的方法有两种:链表存储和连续存储。现已发现GALILEO和SMSC等公司采用的这些实现方法在实用中存在一些缺点:一)GALILEO公司的GT-48360中采用的存储方式适用于如ATM信元等定长数据帧的存储;二)SMSC公司的LAN91C111芯片在对以太网包的存储方面有效的利用了存储空间,但是当某一时刻的读/写指针出错则不可避免的会影响后续帧的读/写操作,导致一系列的坏包,尤其对于处理速度要求高的系统,这种错误几乎是不可避免的。本发明的主要贡献是采用了一种双先进先出(DFIFO)结构,来实现对以太网这种类型的变长帧的存储和管理,首先检查进入缓存队列的数据帧,将它按照先进先出的存储器写入到数据帧RAM,指向这个数据帧的一个指针被写入到描述符,同时该数据帧的包长也被写入到描述符的第二个域内,一个数据帧对应一个描述符,这些描述符又组成了一个先进先出队列。这样当存储结构指针DFIFO发生混乱时,整个结构仍然可以根据新的地址恢复。维持了数据帧的存储结构完整性。该主队列结构是双端口RAM,虽然也有需要写指针(MWA)和读指针(MRA),DFIFO的读指针是描述符队列产生和控制的,FIFO的写指针自己计数产生,但是头一个字节的地址信息应该被描述符队列所纪录。
其次,如何保证在异步读写时钟情况下的整个结构工作的稳定性、可靠性、高效性;
在本发明中,考虑将利用双口RAM来作为所需的存储结构。对于双口RAM的具体实现将采用IP核,并且由于硬件成本的原因导致,在设计时它的规模是绝对有限的,因此这样就要考虑RAM的当前状态是否允许新的一帧数据写入到RAM中,如果RAM为满,为了保证帧的完整性,它将不应该被写入;并且也要判断RAM中是否有一个完整的帧存在,如果有并且收到发送请求,这时读出整个完整的以太网帧。所以本发明另外要解决的一个技术问题是RAM的状态控制信号的产生(如FULL、EMPTY等握手信号),它们将影响整个装置的性能。
在本装置中的RAM状态控制信号的产生根据具体的应用场合,又可以分为两大类:一)装置中的读写时钟同步;二)装置中的读写时钟异步。在读写时钟同步的情况下,它的设计是很简单的,并且不存在专利的应用。但是在读写时钟异步的情况下,它的实现是要复杂的多,而且有些要涉及到其它的专利技术,如在Xilinx App Notes XAPP131、XAPP175和XAPP151中,已经涉及到一些RAM状态控制信号产生的方法,但是通过下一节的分析,将发现它们的方法在我们的这个场合不是很合适,它们主要适合于一些利用双口RAM来设计些小FIFO的场合。本发明的另外一个辅助贡献是采用了一种更加简单、方便的RAM状态控制信号产生方法。
发明内容
本发明目的是提供一种用于以太网无源光网络的数据帧缓存设备。
本发明另一个目的是提供一种用于以太网无源光网络的数据帧缓存方法。
本发明提供一种用于以太网无源光网络的数据帧缓存设备,其特征在于该设备包括:数据帧输入总线和数据帧输出总线,分别连接到数据帧存储装置的数据写入口和数据读出口;描述符写使能控制模块,产生对描述符存储装置的写使能信号;描述符写地址产生模块,产生将被写入的描述符在描述符存储装置中的地址;描述符读地址产生模块,产生将被读出的描述符在描述符存储装置中的地址;帧长加计数器,根据写使能信号产生数据帧长度信息,并将该信息写入到描述符存储装置的帧长度和奇偶指示部分中;帧长减计数器,初始值为描述符存储装置中的数据帧长度,当此计数器递减为0时表示完整的帧被读出;数据帧存储装置读使能控制模块,产生对数据帧存储装置的读使能控制信号;数据帧存储装置写地址产生模块,产生数据帧在数据帧存储装置中的初始地址,该初始地址同时被存储在描述符存储装置的首部地址部分;数据帧存储装置读地址产生模块,根据存储在描述符存储装置首部地址部分中的数据帧初始地址,产生该数据帧的读地址;数据帧奇偶指示模块,在数据帧存储装置的读使能信号有效期间,输出数据帧的奇偶指示信号;描述符存储装置,被分为首部地址部分和帧长度和奇偶指示部分,在首部地址部分中存储数据帧的初始地址,在帧长度和奇偶指示部分中存储数据帧的长度信息和奇偶交验信息;数据帧存储装置,数据帧被写入其中或被从中读取。
本发明的缓存设备中,还包括一个读写仲裁模块和一个状态产生模块,其中的状态产生模块包括:一个读地址编码器,一个写地址编码器,四个比较器,一个空判断模块,一个满判断模块,读地址编码器和写地址编码器将8421码的地址变成格雷码输入到四个比较器,由四个比较器产生四个状态控制信号,四个状态信号两个输入空判断模块、另两个输入满状态判断模块,分别产生空状态信号和满状态信号。
本发明的缓存设备中,所述数据帧存储装置为由双口随机存储器组成的先进先出存储器,所述描述符存储装置为由双口随机存储器组成的先进先出存储器。
本发明的缓存设备中,所述数据帧输入总线和数据帧输出总线的宽度均为16位。
本发明还提供一种用于以太网无源光网络的数据帧缓存方法,其特征在于该方法由缓存设备空间判断步骤、写入步骤、缓存设备中存在数据帧判断步骤、读出步骤组成,其中缓存设备空间判断步骤进一步包括:缓存设备收到新的数据帧,判断数据帧存储装置和描述符存储装置是否满,如果已经满则该数据帧被丢弃,如果未满,该数据帧被允许开始写入;写入步骤进一步包括:开始将数据帧写入到数据帧存储装置,记录该数据帧的初始地址,并且描述符存储装置的写地址加1,将该数据帧的初始地址写入描述符存储装置的首部地址部分,判断数据帧存储装置是否满,如果已经满,则该数据帧写入被终止,并且描述符存储装置写地址减1,数据帧存储装置写地址回复到该数据帧初始地址,如果数据帧存储装置未满,该数据帧写入继续,直到该帧写入结束,并且将该数据帧的长度信息写入描述符存储装置的帧长度和奇偶指示部分中;缓存设备中存在数据帧判断步骤进一步包括:缓存设备收到新的数据帧发送请求信号,判断描述符存储装置是否为空,如果为空,则继续等待,如果不为空,允许从数据帧存储装置读出一个数据帧;读出步骤进一步包括:描述符存储装置读地址加1,计数器清零,从描述符存储装置中读出数据帧的初始地址和帧长度信息,判断计数器值是否小于帧长度,如果小于则该数据帧被继续读出,并且计数器值加1,如果判断计数器值不小于帧长度,则该数据帧读出被终止;上述对数据帧存储装置和描述符存储装置的写入和读出均按照先入先出方式进行。
本发明的数据帧缓存方法,在所述写入步骤中还进一步包括产生两个描述符写控制信号的步骤,在第一个描述符写控制信号期间,将数据帧存储在数据帧存储装置中的初始地址存储在描述符存储装置的首部地址部分,在第二个描述符写控制信号期间将数据帧的帧长度信息和奇偶指示信息存储在描述符存储装置的长度和奇偶指示部分。
本发明的上述技术方案克服了现有变长以太网包的存储方式的缺点,例如以48360芯片为主的链表存储方式在存储的以太网包以较短的包长为主时,它对于存储单元的利用率比较低,例如1兆的存储单元采用本发明所描述的存储方法可以存储大约两千个长度为64字节的以太网包,而使用48360的存储方式则只能存储80个数据帧,浪费了大部分的存储单元。
同时由于EPON系统的运行速率在1.25Gbps,在这样高速的系统中如果采用LAN91C111芯片的以太网包的存储方式,当某一时刻电路出现异常情况导致读/写指针出错,则不可避免的会影响后续帧的读/写操作,导致一系列的坏包。而本发明则通过描述符FIFO的使用,将数据的存储信息另外保存,保证了一个帧的读写错误不会影响到别的帧正确的读出和写入。
并且当系统的动态带宽分配机制要求按优先级或者别的标准将以太网分多个队列存储时,只需要将本发明中的描述符队列分为多队列存储,则可以胜任此项业务,而且不会浪费数据的存储单元。
附图说明
图1是本发明双先入先出缓存设备结构的原理图;
图2是本发明的缓存设备顶层模块的示意图;
图3A是本发明的缓存设备中描述符存储装置结构的示意图;
图3B是本发明的缓存设备中描述符存储装置的帧长度和奇偶指示部分结构的示意图;
图4是本发明的缓存设备中数据帧存储装置存储结构的示意图;
图5是本发明的缓存设备总体结构的示意图;
图6是本发明的缓存设备写入仲裁流程图;
图7是本发明的缓存设备允许写入使能信号产生的时序图;
图8是本发明的缓存设备拒绝写入使能信号产生的时序图;;
图9是本发明的缓存设备写入描述符存储装置的时序图;
图10是本发明的缓存设备允许写入后终止时信号产生时序示意图;
图11是本发明的缓存设备写入操作流程图;
图12是本发明的缓存设备读出仲裁流程图;
图13是本发明的缓存设备读出使能信号产生的时序图;
图14是本发明的缓存设备读出使能信号产生的另一时序图;
图15是本发明的缓存设备读出操作流程图;
图16是本发明的缓存设备读出缓存信号的时序图;
图17是本发明的缓存设备所采用的格雷编码函数原理图;
图18是本发明的缓存设备中状态产生模块详细结构示意图;
图19是本发明的缓存设备读地址编码的流程图;
图20是本发明的缓存设备写地址编码的流程图;
图21是本发明的缓存设备的空状态输出流程图;
图22是本发明的缓存设备的满状态输出流程图;
图23是本发明的缓存设备用于以太网无源光网络中的示范方式。
具体实施方式
本发明装置采用DFIFO结构(原理见图(1)),这是比较容易实现的存储器管理结构。第一个FIFO的作用类似于描述符队列或者说链表,数据总线的宽度为16比特,主要记录被存储的以太网包起始地址指针,占16比特宽度,包的长度15比特宽度和包长的奇偶标记1比特宽度。第二个FIFO其主队列结构是双端口PAM,数据总线的宽度也是16比特,它用于连续存放以太网包的数据,由于每个以太网包的存储数据段的起始位置和长度都被记录,这样当某个数据帧的存储结构指针发生混乱时,根据存储结构的地址指针可以根据存储在FIFO中的特征值恢复。图1中DWA:描述符队列的写指针;DRA:描述符队列的读指针;MWA:数据缓存队列的写指针;MPA:数据缓存队列的读指针。
本发明装置通过采用以PAM为基础的DFIFO结构,在图(2)中它展示的是采用这种结构的顶层模块图。下面将沿着对这张图的依次分解来说明本装置的实现方法。由顶层图可知,本装置主要由两个顶层模块构成,一个是描述符FIFO模块;一个是数据缓存FIFO模块,每个模块又由存储实体和控制电路组成。
图2中整个装置与外部的信号如表(1)所示。
表(1)
  名称   I/O   宽度   描述
  WR_EN_IN   I   1   该装置的输入写使能信号,此信号有效,则表示该装置正在收到帧,但是是否写入到RAM中,还要根据读写仲裁模块来决定。当装置状态FULL有效时,该帧不写入到RAM中,反之写入到RAM中。
  RD_EN_IN   I   1   该装置的输入读使能信号,此信号有效,则表示该装置正在请求发送帧,是否响应这个请求,要根据读写仲裁模块来决定,当装置状态AV有效时,响应请求,从RAM中读出一个完整的以太网帧。反之不响应请求,继续等待直到Av有效。
  DATA_IN[15:0]   I   16   该装置的输入数据信号。
  FM_ODD_IN   I   1   用来说明当前接收到的数据帧的字节数为奇数还是偶数。
  WR_CLK   I   1   出缓存结构的写时钟,频率为62.5MHz。
  RD_CLK   I   1   读时钟,频率为62.5MHz,读写时钟可能不同源。
  AV   O   1   入缓存结构中是否至少有一个完整的数据帧可以读出的指示信号,有效则表示至少有一个完整的数据帧可以读出。
  FULL   O   1   入缓存结构满的状态指示信号,入缓存结构满表示入缓存结构的数据存储RAM中的剩余空间不足以存储一个最长的以太网包(1516字节),此信号有效则表示入缓存结构以满,它提供给仲裁模块,判断是否可以进行下一帧的写操作。
  EMPTY   O   1   入缓存结构空的状态指示信号,此信号有效表示数据存储RAM为空,目前只作为测试信号。
  FM_ODD_OUT   O   1   正在读出的数据帧的字节数的奇偶指示信号。
  DATA_OUT[15:0]   O   16   该装置的输出数据信号。
  FM_DV   O   1   读出的数据的定界信号,与读时钟同步,有效(“1”)表示数据总线DATA_OUT[15:0]正在传送有效数据。
整个装置内部模块之间的信号如表(2)所示。
表(2)
  名称   宽度   描述
  add_in[15:0]   16   此信号由数据存储FIFO写地址产生模块生成,用于记录当前写入帧在数据RAM中的初始地址。它被送入到描述符FIFO的初始地址数据。
  add_out[15:0]   16   当数据存储FIFO中有完整的帧可以读出时,在读控制信号控制下,读出的描述符FIFO中的初始地址,用来作为数据存储FIFO读指针的初始值。
  Length_in[15:0]   16   此信号由数据存储FIFO的写地址产生模块生成,用于记录当前写入帧在数据存储FIFO中的占用地址空间数。它作为描述符FIFO中的帧长度信息,并且其中的最高位length_in[15]表示帧的奇偶信息。
  Length_out[15:0]   16   当数据存储FIFO中有完整的帧可以读出时,在读控制信号控制下,从描述符FIFO中读出的长度值,用来控制整个帧的读出。
图(3)是描述符FIFO模块的存储实体结构图,它由包含地址和帧长度和奇偶指示等信息的数据组成;它通过add_in[15:0]、add_out[15:0]、length_in[15:0]、length_out[15:0]这些内部信号和数据存储FIFO模块联系上。对于写入数据FIFO模块的一个帧的相关信息:初始地址、帧长度和奇偶指示在描述符FIFO模块中是对应于同样一个存储地址。
图(4)是数据存储FIFO的结构图,它利用一个双口RAM来实现,一边写一边可以读。以太网帧在数据存储FIFO中是连续存储的,在写入每一帧时记录该帧初始写入指针,并且在写入结束时记录下该帧的长度信息。如果在写的过程中,出现了数据RAM已经满的情况,写入过程将结束,并且在数据RAM中下一将写入帧的写入指针回到当前帧的初始值,并且描述符FIFO模块的地址、帧长度和奇偶指示的写地址也将是当前帧的存储地址,而当前帧将丢弃。
下面对本发明实施例的工作过程作进一步说明。
图(5)是整个装置的组成子模块结构图,其中灰色标记的模块实现描述符FIFO的功能,其余用于实现数据缓存FIFO。本装置包含13个子模块,各子模块功能描述如下。
读写仲裁:根据状态指示信号(FULL和AV)给出读使能和写使能的控制信号,具体的操作流程和时序见图(6)~图(8);
状态产生逻辑:满(FULL)、空(EMPTY)、在数据缓存RAM中至少有一个完整的帧指示信号(AV)等状态产生逻辑电路,实现原理见5.4节中图(17)~图(22)的描述;
DWR控制:描述符FIFO写使能控制逻辑;
DWA产生:描述符FIFO写地址产生逻辑;
DRA产生:描述符FIFO读地址产生逻辑;
FL+计数器:帧长加计数器,根据写使能信号产生以太网帧的长度信息,当作描述符FIFO的输入数据;
FL-计数器:帧长减计数器,初始值为描述符FIFO中读出的帧长度,当减计数器为0时,表示完整的帧读出;
MRD控制:数据RAM的读使能控制逻辑;
MWA产生:数据RAM的写地址产生模块;
MRA产生:数据RAM的读地址产生逻辑;
ODD指示:帧奇偶指示逻辑;
描述符RAM:描述符FIFO的存储实体;
数据存储RAM:数据存储FIFO的存储实体。
帧的写入操作的实现模块包括:读写仲裁、状态产生逻辑、DWR控制、DWA产生、FL+计数器、MWA产生、描述符RAM、数据存储RAM,具体的实现流程图和时序见图(9)~图(11)。
帧写入的工作原理为:当仲裁模块给出的WR_EN_OUT信号有效,表明此时DATA_IN[15:0]数据信号线上正在传送的数据需要存储,而且如果此时装置的状态信号FULL显示无效,表示有数据空间存储数据,也有描述符空间去存储新的一帧的帧信息,根据WR_EN_OUT信号来产生数据RAM的写控制信号和地址信号,同时根据WR_EN_OUT信号来产生描述符RAM的写控制信号和地址信号。数据RAM模块中的写使能信号就使用仲裁模块给出的WR_EN_OUT信号,它在数据存储的过程中一直为有效状态,直到一个数据帧的最后一个字节被储存或者一个写入过程强制终止,而描述符RAM中的写指针计数器的使能信号只在写每个数据帧的开始一个时隙,以及数据帧储存完毕,而长度计数器停止计数之后的第一个时钟周期有效,描述符RAM就可以在两个写使能有效时,分别写入数据帧存储的初始地址以及它的长度信息和奇偶指示信息,因此,描述符RAM的写使能信号,是仲裁模块给出的WR_EN_OUT信号经过“写控制”逻辑处理之后再使用,描述符RAM在其写使能信号的第一个有效期写入数据帧的起始地址,第二个有效期写入数据帧的长度信息和奇偶信息(FM_ODD_IN),数据RAM在其写使能信号有效时将数据写入双口RAM中。
帧读出操作的实现模块包括:读写仲裁、状态产生逻辑、DRA产生、FL-计数器、MRD控制、MRA产生、描述符RAM、数据存储RAM。具体的实现流程图和时序见图(12)~图(16)。
帧读出的工作原理为:当仲裁模块给出的读使能信号RD_EN_OUT有效时,则表示此时发送过程正在“空闲”,已经响应了一个发送请求,可以发送一个新数据帧,并且此时该装置的状态控制信号AV有效,即装置中至少存在一个数据帧可以被读出,RD_EN_OUT信号为1个时钟周期的宽度。将RD_EN_OUT直接输入描述符RAM子模块中作为其读指针产生单元的使能信号,在这个时钟周期内同时读出数据帧的初始地址信息、长度信息和奇偶指示信息,并将初始地址信息传送到RAM模块中的读指针产生单元中,作为读指针计数器的初值,而长度信息传送到长度减计数器中,作为此计数器的初值,同时将长度信息中的奇偶指示位(第15BIT)维持在寄存器中。同时RD_EN_OUT信号还输入到数据RAM子模块中的“读控制”逻辑,产生一个RAM的读使能信号,使得在这两个动作完成,数据存储RAM的读使能信号立即有效,开始读出数据帧,同时使能长度减计数器在每读出一个16BIT的数据就进行减“1”操作。当长度减计数器的值减到“0”,输出一个指示信号Fm_end,表示一个数据帧已经完整的读出,将此信号反馈给“读控制”逻辑,使RAM的读信号无效,这样来控制数据的读出是以帧为单位,一帧一帧的读出,这个RAM的读信号同时输出作为读出的数据帧的定界信号。同时当数据RAM的读使能信号有效时,则同时触发奇偶指示寄存器,输出奇偶指示信号FM_ODD_OUT。
图(6)是写入仲裁流程图,当本装置收到一个新的以太网帧时,首先要判断数据RAM或描述符RAM是否满,如果已经为满这个新的帧将被拒绝写入到本存储装置中,当还没有满时,这个写入请求被接受,图(7)和图(8)是本流程图的时序说明,图(7)表示接受写入,图(8)表示拒绝写入。
当写入请求被接受时,将进入到写入操作流程图,见图(6)。帧在开始写入到数据RAM中时,把初始地址写入到地址RAM中,当这帧在写入数据RAM过程中,如果发现数据RAM已经满了,则这帧将被终止,并且下帧的写入地址还是当前帧写入时的那个初始地址,这个过程见图(11)和图(10)的时序图描述。通过采用这个方法,可以减少那些不完整的帧在数据RAM中的存储,提高了数据RAM的存储效率。
图(9)是写入描述符RAM的时序图,其中WR_EN_OUT信号是从仲裁逻辑得到,数据存储RAM自模块的写使能信号,其实也是数据帧的定界信号。而FIFO_WR_EN信号是WR_EN_OUT信号经过“写控制”逻辑变换而得到的。
图(12)是读出仲裁流程图,当本装置收到一个新的发送请求时,首先要判断描述符RAM是否空,如果已经为空这个新的请求将不被响应,直到本存储装置中至少存储了一个完整的帧,即描述符RAM不为空,这时这个读出请求被接受,图(13)和图(14)是本流程图的时序说明,图(13)表示立即响应请求,图(14)表示先等待直到响应请求条件满足时再响应请求。
当有响应请求且响应请求条件满足时,装置进入读出操作流程图,见图(15)。当发起读操作时,从描述符RAM中读出当前帧的写入初始地址、长度和奇偶指示信息,利用这些参数从数据RAM中读出一个完整的帧。
图(16)是读出操作时序,其中RD_EN_OUT信号是由仲裁逻辑得到的,用于将描述符队列中的地址和长度信息读出,只需要一个时钟周期,Fm_end信号是长度减计数器的值减到“0”时输出的指示信号。EN_OUT信号是RD_EN_OUT信号和Fm_end信号经过“读控制”逻辑得到的,用于数据RAM模块的读使能,实际上也是读出数据帧的定界信息。FM_ODD_OUT信号表示读出帧的奇偶字节数指示。
在本发明中,考虑将利用双口RAM来作为所需的存储结构。对于双口RAM的具体实现将采用IP核,但是由于硬件成本的原因导致,在设计时它的规模是绝对有限的,因此这样就要考虑RAM的当前状态是否允许新的一帧数据写入到RAM中,如果RAM为满,为了保证帧的完整性,它将不应该被写入;并且也要判断RAM中是否存在一个完整的帧存在,如果有并且收到发送请求,这时读出整个完整的以太网帧。所以本发明另外要解决的一个技术问题是RAM的状态控制信号的产生(如FULL、EMPTY等信号),无论是在写操作中,还是在读操作中,其中起着关键作用的是装置的状态控制信号,它对整个装置的工作效率、稳定性等起着重要的作用,它们设计的好坏将影响整个装置的性能,
对于如何产生好的状态控制信号,其实可以根据读写时钟把这个装置分为两类:同步和异步结构。同步结构是指相同的时钟控制该装置的读和写,异步结构是指用单独的时钟去控制该装置的读和写。对于同步结构的状态控制信号设计相对要简单一些,不存在专利的应用,并且能够保证状态控制信号的产生很方便、性能稳定。但是对于异步结构就很难方便实现,所以下面主要是分析异步结构,在Xilinx App Notes XAPP131、XAPP175和XAPP151中,已经有一些RAM状态控制信号产生的方法,但是通过分析,它的方法在本发明中的这个场合不是很合适,它们主要适合于一些利用双口RAM来设计些小FIFO的场合,但是本装置由于要装载较多个以太网帧,它的地址范围很大,所以那些方法不太合理。但是有些思想可以借鉴,下面首先分析一下格雷编码的一些理论和应用,它是本装置的状态产生模块逻辑简化的主要依据。
在数字逻辑设计中,由于信号在芯片中的器件和连线上,都有一定的延时。延时的大小和连线的长短、逻辑单元的数目、制造工艺、工作电压、温度等条件影响有关。由于受到这些因素的作用,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,这样往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。如果一个组合逻辑电路中有“毛刺”出现,就说明电路存在“冒险”。冒险往往会影响到逻辑电路的稳定性,就像在本专利中的状态产生电路,它对于整个系统的性能起着关键的作用,由于它的设计将要利用到输入信号比较多的一些组合逻辑,所以在考虑整个装置的性能时,这块电路将是一个关键。并且在“脉冲和数字电路”这方面的书籍和文章中,已经有很多方法能够用来判断一个逻辑电路是否存在“冒险”,如通过逻辑函数的卡诺图、逻辑函数表达式。对于“冒险”问题的解决,一个好的方法是,采用格雷码计数器取代普通的二进制计数器,因为格雷码的输出每次只有一位的跳变,这样就能很好的避免毛刺的产生。图(17)是格雷编码togray函数的原理图,Din为输入地址信号,dout为输出地址信号。注:下面将介绍的几个图的分析都是利用VHDL语言来进行说明的。
图(18)是本发明装置采用的状态指示信号生成模块图,它也采用了格雷码,但是它采用了不同的方法进行状态信号的产生。在图中可以看到由三级来完成,读写地址先经过地址编码模块,把8421码的地址变成格雷码,并且产生一些需要的相关格雷编码信号,详细见图(19)读地址编码和图(20)写地址编码。读写地址编码模块的输出信号如图(18)中1-5数字所示,再把这些编码后的信号通过比较器比较初步得到状态控制信号,emptyg信号、almostemptyg信号;almostfullg信号、fullg信号。emptyg信号和almostemptyg信号和读时钟、读使能信号输入到empty判断模块中进行empty状态信号的产生。almostfullg信号、fullg信号和写时钟、写使能信号输入到full判断模块中进行full状态信号的产生。
图18中各路信号的具体含义如下:
1代表rd_addr_gray1信号;2代表rd_addr_gray2信号;
3代表rd_addr_gray3信号;4代表wr_addr_gray1信号;
5代表wr_addr_gray2信号;6代表emptyg信号;
7代表almostemptyg信号;8代表almostfullg信号;
9代表fullg信号。
图(19)和图(20)是读和写地址编码流程图,当复位信号有效时,在图(19)中先把rd_addr_gray1信号,rd_addr_gray2信号,rd_addr_gray3信号和rd_addr信号赋初值。在图(20)中wr_addr_gray1信号,wr_addr_gray2信号和wr_addr信号赋初值;在时钟信号沿变时,依次把读写地址进行格雷编码,并且把rd_addr_gray1信号分别进行延一个时钟和两个时钟周期为rd_addr_gray2信号和rd_addr_gray3信号。并且把wr_addr_gray1信号进行延一个时钟为wr_addr_gray2信号。
在rd_addr_gray1信号、rd_addr_gray2信号、rd_addr_gray3信号和wr_addr_gray1信号、wr_addr_gray2信号已经产生后,送入到比较器中,这个比较器实现对输入的两个信号的比较,相等输出1,不等输出0。一共用到四个相同的比较器,它们的实现用VHDL语言来描述如下:
emptyg      <=′1′when wr_addr_gray2=rd_addr_gray2 else′0′;
almostemptyg<=′1′when wr_addr_gray2=rd_addr_gray1 else′0′;
fullg       <=′1′when wr_addr_gray2=rd_addr_gray3 else′0′;
almostfullg <=′1′when wr addr gray1=rd addr gray3 else′0′;
图(21)和图(22)是empty状态输出和full状态输出的流程图,由于和full状态相关的是装置的写入操作,所以在需要将full状态和写时钟同步。并且和empty状态相关的是装置的读出操作,所以也需要将empty状态和读时钟同步。
图(23)是本发明装置在EPON系统芯片中的一个具体应用的示范性实例。EPON系统由局端设备OLT和远端设备ONU组成,在图(23)中的描述的是OLT侧芯片的一个总体框图。它由接口单元、缓存结构单元、MPCP上行处理、MPCP下行处理、控制客户、复用、解析、MAC层、RS层等模块单元组成。
在发送方向上整个电路的工作流程是,从接口送来的信号,在接口模块中先进行一些处理,如数据宽度8bit到16bit的转换等。由于在EPON系统中需要插入一些MPCP协议帧,利用缓存结构单元把接收到的帧先缓存下来,当不发送MPCP协议帧时,再从缓存结构中把帧读出,这样在完成帧的复接后,进入MAC层、RS层,实现IEEE 802.3协议功能。
在接收方向上,从RS层、MAC层来到的数据,通过解析把MPCP协议帧找出,并送入到MPCP上行处理模块中,并把其余的帧送入到缓存结构单元中,在接口单元空闲时把帧读出。
由上面的工作流程可以看到,在EPON系统中通过采用本发明的缓存结构单元使得就方便地实现了MPCP帧的插入和解析,并且保证了整个系统的高效、稳定性。
另外,本发明装置也可以方便的应用到其它的一些应用场合中,如二层以太网控制器等等。

Claims (6)

1.一种用于以太网无源光网络的数据帧缓存设备,其特征在于该设备包括:
数据帧输入总线和数据帧输出总线,分别连接到数据帧存储装置的数据写入口和数据读出口;
描述符写使能控制模块,产生对描述符存储装置的写使能信号;
描述符写地址产生模块,产生将被写入的描述符在描述符存储装置中的地址;
描述符读地址产生模块,产生将被读出的描述符在描述符存储装置中的地址;
帧长加计数器,根据写使能信号产生数据帧长度信息,并将该信息写入到描述符存储装置的帧长度和奇偶指示部分中;
帧长减计数器,初始值为描述符存储装置中的数据帧长度,当此计数器递减为0时表示完整的帧被读出;
数据帧存储装置读使能控制模块,产生对数据帧存储装置的读使能控制信号;
数据帧存储装置写地址产生模块,产生数据帧在数据帧存储装置中的初始地址,该初始地址同时被存储在描述符存储装置的首部地址部分;
数据帧存储装置读地址产生模块,根据存储在描述符存储装置首部地址部分中的数据帧初始地址,产生该数据帧的读地址;
数据帧奇偶指示模块,在数据帧存储装置的读使能信号有效期间,输出数据帧的奇偶指示信号;
描述符存储装置,被分为首部地址部分和帧长度和奇偶指示部分,在首部地址部分中存储数据帧的初始地址,在帧长度和奇偶指示部分中存储数据帧的长度信息和奇偶校验信息;
数据帧存储装置,数据帧被写入其中或被从中读取。
2.根据权利要求1的缓存设备,其特征在于该设备还包括一个读写仲裁模块和一个状态产生模块,其中的状态产生模块包括:一个读地址编码器,一个写地址编码器,四个比较器,一个空判断模块,一个满判断模块,读地址编码器和写地址编码器将8421码的地址变成格雷码输入到四个比较器,由四个比较器产生emptyg信号、almostemptyg信号、almostfullg信号、fullg信号共四个状态控制信号,四个状态控制信号中emptyg信号、almostemptyg信号两个信号输入空判断模块以产生空状态信号,四个状态控制信号中almostfullg信号、fullg信号两个信号输入满判断模块以产生满状态信号。
3.根据权利要求1的缓存设备,其特征在于所述数据帧存储装置为由双口随机存储器组成的先进先出存储器,所述描述符存储装置为由双口随机存储器组成的先进先出存储器。
4.根据权利要求1的缓存设备,其特征在于所述数据帧输入总线和数据帧输出总线的宽度均为16位。
5.一种用于以太网无源光网络的数据帧缓存方法,其特征在于该方法由缓存设备空间判断步骤、写入步骤、缓存设备中存在数据帧判断步骤、读出步骤组成,
其中缓存设备空间判断步骤进一步包括:
缓存设备收到新的数据帧,判断数据帧存储装置和描述符存储装置是否满,如果已经满则该数据帧被丢弃,如果未满,该数据帧被允许开始写入;
写入步骤进一步包括:
开始将数据帧写入到数据帧存储装置,记录该数据帧的初始地址,并且描述符存储装置的写地址加1,将该数据帧的初始地址写入描述符存储装置的首部地址部分,判断数据帧存储装置是否满,如果已经满,则该数据帧写入被终止,并且描述符存储装置写地址减1,数据帧存储装置写地址回复到该数据帧初始地址,如果数据帧存储装置未满,该数据帧写入继续,直到该帧写入结束,并且将该数据帧的长度信息写入描述符存储装置的帧长度和奇偶指示部分中;
缓存设备中存在数据帧判断步骤进一步包括:
缓存设备收到新的数据帧发送请求信号,判断描述符存储装置是否为空,如果为空,则继续等待,如果不为空,允许从数据帧存储装置读出一个数据帧;
读出步骤进一步包括:
描述符存储装置读地址加1,计数器清零,从描述符存储装置中读出数据帧的初始地址和帧长度信息,
判断计数器值是否小于帧长度,如果小于则该数据帧被继续读出,并且计数器值加1,如果判断计数器值不小于帧长度,则该数据帧读出被终止;
上述对数据帧存储装置和描述符存储装置的写入和读出均按照先入先出方式进行。
6.根据权利要求5的数据帧缓存方法,其特征在于在所述写入步骤中还进一步包括产生两个描述符写控制信号的步骤,在第一个描述符写控制信号期间,将数据帧存储在数据帧存储装置中的初始地址存储在描述符存储装置的首部地址部分,在第二个描述符写控制信号期间将数据帧的帧长度信息和奇偶指示信息存储在描述符存储装置的长度和奇偶指示部分。
CNB2003101168868A 2003-12-02 2003-12-02 一种用于以太网无源光网络的数据帧缓存设备和方法 Expired - Fee Related CN1282339C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101168868A CN1282339C (zh) 2003-12-02 2003-12-02 一种用于以太网无源光网络的数据帧缓存设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101168868A CN1282339C (zh) 2003-12-02 2003-12-02 一种用于以太网无源光网络的数据帧缓存设备和方法

Publications (2)

Publication Number Publication Date
CN1547358A CN1547358A (zh) 2004-11-17
CN1282339C true CN1282339C (zh) 2006-10-25

Family

ID=34337654

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101168868A Expired - Fee Related CN1282339C (zh) 2003-12-02 2003-12-02 一种用于以太网无源光网络的数据帧缓存设备和方法

Country Status (1)

Country Link
CN (1) CN1282339C (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150589B (zh) * 2006-09-21 2010-08-18 中兴通讯股份有限公司 一种用于链路层的数据转换方法和装置
CN101175228B (zh) * 2006-11-03 2010-05-12 中兴通讯股份有限公司 一种在智能网中支持变长数据结构的实现方法
CN101335667B (zh) * 2007-06-26 2010-12-29 中兴通讯股份有限公司 数据传输方法
CN101110779B (zh) * 2007-07-13 2011-03-16 中兴通讯股份有限公司 一种经快速输入输出端口到以太网端口数据传输的方法
CN101184048B (zh) * 2007-12-11 2010-12-08 华为技术有限公司 一种数据帧传输的合路控制方法和设备
CN101478473B (zh) * 2008-01-02 2011-05-11 中兴通讯股份有限公司 用于gpon olt的mac上行调度方法和装置
CN101605090B (zh) * 2008-06-14 2013-01-16 中兴通讯股份有限公司 无源光网络中动态主机配置协议二层中间代理的实现方法
CN102347882B (zh) * 2010-07-29 2014-06-11 高通创锐讯通讯科技(上海)有限公司 Atm信元重组共享缓存系统及其实现方法
CN102377660B (zh) * 2010-08-20 2015-06-03 中兴通讯股份有限公司 信元传输方法及装置
CN102780626B (zh) * 2012-07-27 2015-08-19 福建星网锐捷网络有限公司 一种数据转发方法、装置及网络设备
CN103023613B (zh) 2012-12-14 2018-06-01 中兴通讯股份有限公司 一种对数据帧长度进行校验的方法及装置
CN103067796B (zh) * 2013-01-25 2015-04-29 烽火通信科技股份有限公司 一种在分组光传输系统芯片中防止再生碎帧的方法
CN104407367B (zh) * 2014-12-19 2016-11-16 中国科学院重庆绿色智能技术研究院 提高卫星导航终端接收机基带信号处理能力的装置与方法
CN107592248A (zh) * 2016-07-08 2018-01-16 成都夸克光电技术有限公司 一种基于以太网总线不规则数据的高效传输控制方法
CN108062235B (zh) * 2016-11-07 2021-10-29 杭州海康威视数字技术股份有限公司 数据处理方法及装置
CN108108148B (zh) * 2016-11-24 2021-11-16 舒尔电子(苏州)有限公司 一种数据处理方法和装置
CN106789734B (zh) * 2016-12-21 2020-03-13 中国电子科技集团公司第三十二研究所 在交换控制电路中巨帧的控制系统及方法
CN108777596B (zh) * 2018-05-30 2022-03-08 上海惠芽信息技术有限公司 一种基于声波的通信方法、通信系统及计算机可读存储介质
CN110012367B (zh) * 2019-03-27 2021-10-19 烽火通信科技股份有限公司 用于gpon olt的omci组帧装置及组帧方法
CN112839231B (zh) * 2021-01-15 2022-06-07 苏州浪潮智能科技有限公司 一种视频压缩传输方法和系统
CN113835891B (zh) * 2021-09-24 2023-05-23 哲库科技(北京)有限公司 资源分配方法、装置、电子设备及计算机可读存储介质
CN114153758B (zh) * 2021-11-19 2022-12-20 中国电子科技集团公司第三十四研究所 具有帧计数功能的跨时钟域数据处理方法
CN113866502B (zh) * 2021-12-02 2022-02-22 深圳市鼎阳科技股份有限公司 频谱分析仪及其数据扫描和处理方法
CN115203075B (zh) * 2022-06-27 2024-01-19 威胜能源技术股份有限公司 一种分布式动态映射缓存设计方法
CN115002052B (zh) * 2022-07-18 2022-10-25 井芯微电子技术(天津)有限公司 一种分层的缓存控制器、控制方法及控制设备
CN115328822B (zh) * 2022-08-19 2023-05-05 扬州宇安电子科技有限公司 一种基于ddr3的读写控制动态调度方法及其存储介质

Also Published As

Publication number Publication date
CN1547358A (zh) 2004-11-17

Similar Documents

Publication Publication Date Title
CN1282339C (zh) 一种用于以太网无源光网络的数据帧缓存设备和方法
WO2016011811A1 (zh) 一种内存管理方法、装置及存储介质
CN101039270A (zh) 支持多通道数据传输的数据传输装置及方法
CN1949695A (zh) 一种帧数据传输中错帧丢弃的方法和系统
CN1866845A (zh) 一种组播转发表输出端口的虚拟标识方法
CN1728629A (zh) 多路物理层接口复用传输装置
CN1298593A (zh) 电信转接器中的ampic dram系统
CN1292568C (zh) 一种多队列数据分组连续转发的装置和方法
CN1863132A (zh) 一种缓存管理系统与方法
CN101064697A (zh) 一种实现异步传输模式网络服务质量控制的装置和方法
CN1818893A (zh) 外围设备的lpc总线接口时序转换方法及转换装置
CN1166134C (zh) 用于atm交换结构中的流水线式共享存储器读写方法
CN1816009A (zh) 一种数据帧组播复制的方法及系统
CN1165142C (zh) 网络数据包的输出队列方法
CN1738224A (zh) Tdm数据与帧格式转换的电路及方法、传输交换系统及方法
CN1529476A (zh) 以太网与atm层对接数据转换校验装置及方法
CN1471264A (zh) 基于动态包传输的动态随机存储器队列调度方法
CN1633101A (zh) 一种数据包存储的管理方法和装置
CN108616570A (zh) 一种基于fpga非对称门限服务轮询系统
CN101848091B (zh) 数据查找处理方法及系统
CN1121648C (zh) 边进边出的寄存器队列装置及其方法
CN1462118A (zh) 虚级联中序列号排序的处理方法
CN1531283A (zh) 具有有效分组管理单元的分组转发系统及其操作方法
CN1976237A (zh) 用于数据可靠存储或传输的编码和解码方法及应用
CN101207625A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061025

Termination date: 20151202

EXPY Termination of patent right or utility model