CN1307557C - 动态控制先进先出内存存取流程的方法及系统 - Google Patents
动态控制先进先出内存存取流程的方法及系统 Download PDFInfo
- Publication number
- CN1307557C CN1307557C CNB2004100052958A CN200410005295A CN1307557C CN 1307557 C CN1307557 C CN 1307557C CN B2004100052958 A CNB2004100052958 A CN B2004100052958A CN 200410005295 A CN200410005295 A CN 200410005295A CN 1307557 C CN1307557 C CN 1307557C
- Authority
- CN
- China
- Prior art keywords
- data item
- pointer
- address
- triangle
- out device
- 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 - Lifetime
Links
- 230000015654 memory Effects 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000009471 action Effects 0.000 claims description 17
- 239000000872 buffer Substances 0.000 claims description 15
- 230000004913 activation Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 9
- 238000007689 inspection Methods 0.000 claims description 3
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 1
- 230000000875 corresponding effect Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 102100038026 DNA fragmentation factor subunit alpha Human genes 0.000 description 4
- 102100038023 DNA fragmentation factor subunit beta Human genes 0.000 description 4
- 101100277639 Homo sapiens DFFB gene Proteins 0.000 description 4
- 101000950906 Homo sapiens DNA fragmentation factor subunit alpha Proteins 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 238000004886 process control Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004540 process dynamic Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种动态控制先进先出内存存取流程的方法及系统。该先进先出(FIFO)内存存取流程数据流动态控制电路检测一先进先出(FIFO)内存中一或多个丢弃项、取得该下一有效读取指针的地址、并在下一读取动作进行时自该取得的地址进行读取。也因此借着将读取地址跳至下一有效数据项而不读取丢弃的数据项,以节省读取周期。
Description
技术领域
本发明关于计算机系统,尤其是关于一种流程控制电路先进先出数据流动态控制的方法及系统,其能以动态方式检测并避免对一先进先出(FIFO)内存中需丢弃的数据项进行读取动作的出现。
背景技术
在多数计算机系统中,数据的传输通常进行于一传送元件及一接收元件间,并根据一控制信号与参数交换(handshake)协议方式完成。在计算机系统中,数据通常由传送组件端以一大于接收组件所能实际处理的速度传出,故常运用高速缓冲器,如先进先出(FIFO)内存装置等,使传送组件及接收组件间的数据通讯得以顺利进行。
一般而言,一先进先出(FIFO)装置通常包含多个串行相接的储存单位(或内存位置),其中数据依序被写入该处或自该处读出。一写入地址指针保有储存单位的写入二进制地址,供下一写入动作时将数据写进该储存单位中;一读取地址指针保有该储存单位的读取二进制地址,供下一读取动作时将数据自该储存单位中读出。
图1所示为一传统先进先出(FIFO)装置100,其至少包含一先进先出(FIFO)内存101、一写入地址电路103、一写入多任务器105、一读取地址电路107、及一读取多任务器109。再有,先进先出(FIFO)内存101可为随机存取内存(RAM),使数据的写入及读取动作可同时在其中进行,且其容量为N个字组。当一读取允许信号(RE)发出时,数据(DATA)自一读取地址(RADR)所指定的地址中读出,依一时脉信号(CLK)的脉波以逐个字组方式读出;同样地,当一写入允许信号(WE)发出时,数据(DATA)写入一写入地址(WADR)所指定的地址中,依该时脉信号CLK的脉波以逐个字组方式写入。
读取地址电路107接收该时脉信号CLK及读取允许信号(RE)。当读取允许信号(RE)发出时,读取地址电路107随该时脉(clock)信号CLK的时脉将该读取地址(RADR)加一。
写入地址电路103接收该时脉信号CLK及写入允许信号(WE)。当写入允许信号(WE)发出时,写入地址电路103随该时脉信号CLK的时脉将该写入地址(WADR)加一。
图1所示传统先进先出(FIFO)装置100可用以助于改善传送组件及接收组件间的数据速率差。不过,该种传统先进先出(FIFO)装置100不检测或丢弃存于该先进先出(FIFO)内存101中的该丢弃数据,因此需要额外读取周期来处理不需读取的该丢弃数据。
发明内容
鉴于上述公用装置的缺陷,本发明提出一种动态控制先进先出(FIFO)内存存取流程的系统、及一种执行该动态控制的方法。在本发明一实施例中,流程控制电路检查下一或更多先进先出(FIFO)内存中所含的丢弃数据,其并于一缓存器中储存下一有效读取地址;接着,该下一有效读取地址由缓存器载出,并在下一读取动作进行时读取该下一数据项。
也就是说,本发明提供一种动态控制先进先出内存存取流程的方法,其运用一连接该第一先进先出装置的控制电路,且该方法包含下列步骤:a)检测该第一先进先出装置中发出的读取激活信号,其中一第一读取指针存有该第一先进先出装置中被读取的数据项于一第一先进先出内存中的地址;b)检测该第一先进先出装置中发出的写入激活信号,其中一第一写入指针中存有一待被写进该第一先进先出内存中的地址;c)检测一或多丢弃数据项,且这些丢弃数据项的地址始于该第一读取指针所存的地址;d)将该下一有效数据项的地址载进该第一读取指针中;e)由该控制电路接收与图形有关的一有效数据项,其中该有效数据项至少包含一有效位、一表头位、一最后位、一辨识部份及一记作数据/表头的酬载部份;f)判断该接收的有效数据项是否为一表头项:当判定该有效数据项为一表头项时,执行下一步骤g,其中该表头项包含一辨识卷标,用以辨识三角形;g)写入该表头项至一第二先进先出装置、送出该表头项的表头数据至一算术逻辑单元、设定一存于一正反器的位为逻辑0、以及送出该辨识卷标至一连接至该算术逻辑单元的控制器,其中该正反器对应于该三角形,该算术逻辑单元包含于该控制电路中;h)处理该送至该算术逻辑单元的表头数据;以及i)设定一缓存器中一位为逻辑1,其中该缓存器连接至该算术逻辑单元,且该位对应于该三角形。
本发明还提供一种动态控制先进先出内存存取流程的系统,其至少包含:一第一先进先出(FIFO)装置,具有一第一先进先出内存一第一写入指针及一第一读取指针,其中该第一写入指针存有一第一写入地址,而该第一读取指针存有一第一读取地址;一第二先进先出装置,连接至该第一先进先出装置,该第二先进先出装置具有一第二先进先出内存、一第二写入指针及一第二读取指针,其中该第二写入指针存有一第二写入地址,该第二读取指针则存有一第二读取地址;一控制器,通过一第一输入及一第三输入连接至该第一先进先出装置,以及通过第五输入连接至该第二先进先出装置,其中该第一输入指出下一或数个起始于该第一读取地址的数据项为该丢弃,该第三输入至少包含一第一读取激活信号,用以告知一读取动作要求,该第五输入至少包含一第二读取激活信号,用以指出一读取动作请求;以及一第三先进先出装置,连接至该控制器及通过一第二输入以及一第四输入连接至该第一先进先出装置,并该第三先进先出装置具有一第三先进先出内存、一第三写入指针及一第三读取指针,其中该第三写入指针存有一第三写入地址,而该第三读取指针存有一第三读取地址,该第二输入包含写进该第一先进先出内存的数据,该第四输入至少包含一第一写入激活信号,用以指出一写入动作请求。
本发明的动态控制先进先出内存存取流程的方法及系统令FIFO内存中丢弃数据项的检测得以进行,也因此借着将读取地址跳至下一有效数据项而不读取丢弃的数据项,以节省读取周期。
以下附图及详细说明附于本发明的实施例详细说明书中,并构其之部份,用以说明本发明的原理。
附图说明
图1为一传统先进先出(FIFO)装置的结构图。
图2为根据本发明的先进先出(FIFO)内存存取流程动态控制电路的结构图。
图3为根据本发明的实施例中一先进先出(FIFO)内存存取流程控制电路的一读取周期的流程图。
图4为一控制电路的结构图,该控制电路包含一先进先出(FIFO)装置,该先进先出(FIFO)装置与一三角形指针先进先出内存(TRI_PTR FIFO)及一表头先进先出内存(Header FIFO)共同工作,藉以检测并避免丢弃数据的读取。
图5为本发明一实施例的一三角形指针先进先出内存(TRI_PTR FIFO)的示意图,其包含五个地址指针。
图6为本发明另一实施例的一三角形指针先进先出内存(TRI_PTRFIFO)的示意图,其包含三个地址指针。
图7为说明如图4所示的结构图中一根据本发明的实施例中的详细写入动作的流程图。
图8为说明如图4所示的结构图中一根据本发明的实施例中的详细读取动作的流程图。
其中,附图标记说明如下:
200先进先出装置 201先进先出内存
202A写入控制电路 202B读取控制电路
203写入地址电路 205写入多任务器
206第二多任务器 207读取地址电路
209第一多任务器 401算术逻辑单元
415多任务器 417有效项
419表头处理缓存器 421比较器
423正反器 425表头先进先出内存(Header FIFO)
427三角形指针先进先出内存(TRI_PTR FIFO)
429控制器 431输出制台
433拒绝/剔除缓存器
具体实施方式
以下叙述用以使本领域的普通技术人员得以制造或使用本发明。这些再有,本领域的普通技术人必可轻易加以不同的修改,且本发明中的技术方案一般性原则可用于其它实施例中。因此,本发明并不限于此处所描述的特定
实施例。
图2所示为本发明一实施例中的一先进先出(FIFO)装置200,其至少包含一先进先出(FIFO)内存201、一写入控制电路202A、及一读取控制电路202B。其中,先进先出(FIFO)内存201可为一随机存取内存(RAM),该RAM中可同时进行数据的读取及写入工作,且其容量为N个字组。
写入控制电路202A还包含一写入地址电路203及一写入多任务器205。当一写入允许信号(WE)发出时,数据(WDATA)被写进一写入地址(WADR)所指定的地址中,依一时脉信号CLK的时脉以逐个字组的方式写入。
在一写入动作进行时,写入控制电路202A接收时脉信号CLK及写入允许信号(WE)。当写入允许信号(WE)发出时,写入地址电路203依时脉信号CLK的时脉对写入地址(WADR)加一。而且,当写入允许信号(WE)及时脉信号CLK发出时,写入多任务器205选择输入“1”,用以使写入地址(WADR)加一。
读取控制电路202B还包含一读取地址电路207、一第一多任务器209及一第二多任务器206。当一读取允许信号(RE)发出时,数据(RDATA)由一读取地址(RADR)所指定的地址中读出,依时脉信号CLK的时脉以逐个字组的方式读取。
再有,读取控制电路202B以两种模式工作,且该两种模式以第二多任务器206调节。图3所示为读取控制202B的功能步骤。在步骤301时,RE及CLK信号发出,表示一读取动作的要求已发生。在步骤303时,检查一clean_act信号(显示于图2中)是否已发出,该信号用以指出将被读取的下一或多数据项为丢弃数据项,如图2的ODATA1、ODATA2及ODATA3等。因此,若clean_act信号发出时,一next_valid(显示于图2中)指针即被选定(步骤305),接着加载由next_valid指针所指示的一下一有效数据项的地址,并记成RADR信号(步骤307)。现请再往回参阅步骤303,若clean_act信号未被发出,则一读取动作便发生在读取地址RADR上(步骤306),且RADR接着加一(步骤308)。也就是说,当读取允许信号(RE)及时脉信号CLK发出时,第一多任务器209选择输入“1”,藉以将读取地址(RADR)加一。
图4为一控制电路的结构图,其中该电路至少包含一先进先出(FIFO)装置,如先进先出(FIFO)装置200(即,第一先进先出装置)。在本发明一实施例中,该先进先装(FIFO)装置200与三角形指针先进先出内存(TRI_PTRFIFO)427(即,第三先进先出装置)及表头先进先出内存(Header FIFO)425(即,第二先进先出装置)两传统先进先出(FIFO)装置共同工作。图4说明的零件包含:一算术逻辑单元(ALU)401、一控制器429、一拒绝/剔除缓存器433、一表头处理缓存器419、一第一正反器DFFO、一第二正反器DFF1、一第三正反器DFF2、一第四正反器DFF3、一第五正反器DFF4、一第六正反器DFF5、一多任务器415、一有效项417、一先进先出(FIFO)装置200(如图2所示)、一三角形指针先进先出内存(TRI_PTR FIFO)427、一比较器421、一正反器423及一表头先进先出内存(Header FIFO)425。
三角形指针先进先出内存(TRI_PTRFIFO)427及表头先进先出内存(Header FIFO)425与先进先出(FIFO)装置200并用,用以检测及避免先进先出(FIFO)装置200中该丢弃数据的读取。再有,三角形指针先进先出内存(TRI_PTR FIFO)427、表头先进先出内存(Header FIFO)425及先进先出(FIFO)装置200间的互动关系将详细说明于后文对图5,图6,图7及图8的描述中。
先进先出(FIFO)装置200可以储存多种数据。在图4所示的实施例中,先进先出(FIFO)装置200接收并储存图形相关的数据项,此时影像得以多种像素(graphics primitives)表示,如三角形等。再有,每一三角形可以顶点表示,其中每一顶点皆有坐标(X、Y、Z、W)、颜色特性(如反射、ARGB、散射ARGB等)及材质参数(U、V)。每一三角形的坐标、特性及材质参数等顶点数据分作数个数据项部份,并存入先进先出(FIFO)装置200中,其中这些分开的数据项可如有效项417(输入数据项)。
对每一三角形而言,其一表头项皆经处理,且三角形可根据表头格中的表头数据而被拒绝或剔除;不过,由于管线延迟等各种延迟之故,在表头被处理前,一或多个被拒绝或剔除的三角形相关的数据项,例如特性数据项或材质数据项等,可能已经被储存于先进先出(FIFO)装置200中。图4所示控制电路随时追踪每一三角形的数据项的基底地址,藉以避免读取已经被拒绝或剔除的数据项。
在图4所示实施例中,一后续的有效数据项被分作数部份。图中,以后续有效数据项417为例,其至少包含一有效位(valid bit)用以指出该后续数据的有效性、一is_header位用以分辨是否为一表头有效数据或是一特性或材质有效项、一is_last_entry位用以辨认每一三角形的最后有效项、一TRI_ID部份用以辨认不同三角形的数据项、及一记作data/header的酬载部份包含三角形数据,如表头数据或特性数据等。
图7为图4的控制电路的写入动作的流程图。步骤701中,一有效项被有如图4的一控制电路接收。步骤703中,该有效项的表头状态根据该有效项的一部份决定,如图4所示的is_header位。若该有效项包含有效表头数据,那么于步骤705中,该有效项被写入一传统先进先出(FIFO)内存中,如写进表头先进先出内存425中。该写入传统先进先出(FIFO)内存中的表头项(header entry)至少包含数据/表头(data/header)部份及辨识部份,其中辨识部份如TRI_ID、is_header、is_last等。该表头项利用如激活图4所示的一写入激活信号Header_WE,以写进表头先进先出内存425(Header FIFO)。再有,于步骤705中,该表头项的data/header部份由表头先进先出内存425(Header FIFO)处读进一算术逻辑单元中,如图4所示的算术逻辑单元(ALU)401,另一如TRI_ID的辨识卷标由表头先进先出内存425(HeaderFIFO)中读进一控制器中,如控制器429。数据及便识卷标藉激活一如图4所示的读取激活信号Header_RE,以自表头先进先出内存425(Header FIFO)中读出。
三角形数目及其存于先进先出(FIFO)装置200中的相关数据依输进先进先出(FIFO)装置200中的管道数而定。TRI_ID负责辨识三角形相关的每一后续数据项,控制器429排定算术逻辑单元401(ALU)处理该算术逻辑单元401(ALU)接收数据的顺序。举例而言,若算术逻辑单元401(ALU)自先进先出(FIFO)装置200接收数据(RDATA)、并同时自表头先进先出内存425(Header FIFO)接收表头数据,那么控制器429可决定表头数据较接收数据(RDATA)优先处理,并通知算术逻辑单元401(ALU)优先处理表头数据后再处理接收数据RDATA。控制器429送出一模式(Mode)信号至算术逻辑单元401(ALU)中,以指出算术逻辑单元401(ALU)所接收的数据究竟为何种类型(即表头、特性等)。
在图4所示实施例中,有六条管线与先进先出(FIFO)装置200并用,另亦有六个不同三角形相关的数据可同时由算术逻辑单元401(ALU)处理。再有,每一三角形可予着色或拒绝/剔除;若一三角形被拒绝/剔除,那么一存于一正反器(相对于该三角形)的位被设成逻辑1。在图4所示实施例中,六个不同三角形可同时由算术逻辑单元401(ALU)处理,且六个三角形各分别对应于正反器DFF0、DFF1、DFF2、DFF3、DFF4及DFF5,其中每一正反器皆储存一用以指出该对应三角形被拒绝/剔除与否的位。请往回再参阅步骤705,除将表头数据写至表头先进先出内存425(Header FIFO)及算术逻辑单元401(ALU)外,一存于该三角形对应的正反器中的位设成逻辑00,用以指出该三角形未被拒绝或剔除。再有,该对应的正反器有其辨识方式,即藉由对图4中TRI_ID的信息部份与DFF0、DFF1、DFF2、DFF3、DFF4及DFF5的其中一个进行比较的方式达到。
在步骤707中,表头在算术逻辑单元401(ALU)中处理,且一位于表头处理缓存器419(对应于有效项TRI_ID)中的位在表头数据处理时设成逻辑1(步骤709)。接着于步骤711中,算术逻辑单元401(ALU)利用表头数据判定三角形是否需加拒绝或剔除;若该三角形被判定需加拒绝或剔除(亦即将不予着色),算术逻辑单元401(ALU)将一存于拒绝/剔除缓存器433中的一剔除位设成1,其中该位对应于该拒绝/剔除三角形。再有,剔除位触发对应于该拒绝/剔除三角形的正反器,以将其内容设成逻辑1(步骤713)。在一实施例中,算术逻辑单元401(ALU)处理三角形triangle0的表头,并决定三角形triangle0是否当被拒绝/剔除。接着算术逻辑单元401(ALU)将存于缓存器433中的剔除位culled0设成1,剔除位culled0触发DFF0并将其内容设成1,用以指出该三角形被拒绝/剔除。反之,若三角形未被拒绝或剔除,那么存于该三角形对应的正反器中的位设成0(步骤717)。
现请再参阅图7的步骤703。当该有效项并非为一表头时,存于一对应于该有效项417中TRI_ID的正反器中的位需加以检查(步骤706),用以判定该有效项对应的三角形是否需加拒绝或剔除。若对应于该有效项的三角形被拒绝或剔除,于步骤708中得避免被将该有效项写入先进先出(FIFO)装置200中。
相反地,若对应于该有效数据的三角形未被拒绝或剔除,那么于步骤710中,目前的TRI_ID便与前一有效项的TRI_ID比较,藉以判定是否有一新三角形的相关数据正被写入先进先出(FIFO)装置200中。比较器421有两输入,TRI_ID为其中一个;目前TRI_ID亦连接至一正反器423,正反器423的输出(即在前一时脉周期中处理的有效项的TRD_ID)则连接至比较器421的另一输入。比较器421对目前三角形的TRD_ID与前一三角形的TRD_ID进行比较,并因此输出一信号至三角形指针先进先出内存427(TRI_PTRFIFO)中,其中该信号指出是否有一新三角形正被写入该先进先出(FIFO)装置200中。
现请往回参阅图7的步骤710。若比较器421的输出指出目前三角形TRD_ID等于前一三角形TRD_ID时(即目前有效项及前一有效项的相关三角形为相同),那么该有效项的数据部份及其它如TRI_ID和is_last_entry等参数信息接着写进先进先出(FIFO)装置200中(步骤714)。
若比较器421的输出指出一新三角形的相关数据正写入先进先出(FIFO)装置200中,那三角形指针先进先出内存427(TRI_PTR FIFO)便被更新,有效项的数据部份及其它TRI_ID和is_last_entry等参数信息则被写进先进先出(FIFO)装置200中(步骤712)。
三角形指针先进先出内存427(TRI_PTR FIFO)为一传统先进先出(FIFO)装置,其包含M个字组的容量,其中M等于所用的管线数。以图5为例,三角形指针先进先出内存427(TRI_PTR FIFO)包含六个数据字组的储存容量。再有,当三角形指针先进先出内存427(TRI_PTR FIFO)如图7的步骤712中更新,那么新三角形的基地址base-addr被写进写入指针WP(如图5所示)所指示的地址中,接着将写入指针WP加一以指向下一数据字组。
在本发明示于图5的实施例中,三角形指针先进先出内存427(TRI_PTRFIFO)包含五个数据项,其中每一数据项包含一地址,且该五地址分别对应于三角形TR1、TR2、TR3、TR4及TR5的基地址。图5的三角形指针先进先出内存427(TRI_PTR FIFO)指出若非六个三角形全数将被着色(即不受到拒绝/剔除),那么就是于表头被处理之前,某些相关于一或多个拒绝/剔除的三角形的数据项被写进先进先出(FIFO)装置200中。
在本发明图6所示另一不同实施例中,三角形指针先进先出内存427(TRI_PTR FIFO)仅包含三个数据项,其中每一数据项包含一地址,且这些地址分别对应于三角形TR2、TR3及TR5的基地址。图6所示三角形指针先进先出内存427(TRI_PTR FIFO)指出至少TR1及TR4为受拒绝/剔除,且对应表头的处理发生于任一三角形相关的数据被写入先进先出(FIFO)装置200前。
图8为说明图4的控制电路的读取动作功能步骤流程图。在步骤801中,控制电路取出待读出数据项的身份,该身份可为一ID卷标,如与数据共同存于先进先出(FIFO)装置200中的TRI_ID等。再有,步骤801所取出的身份信息得辨认数据项所相关的三角形。
步骤803中,一对应于表头处理缓存器419中取出三角形ID(亦即TRI_ID)的位被加以检查,并与一位于对应三角形ID(亦即TRI_ID)的正反器中的位一起接受检查,其中该缓存器可为如图4的表头处理缓存器419。举例而言,若TRI_ID为0时,HP0及存于DFF0中位于步骤803时受检。若表头处理缓存器419中对应位指出三角形的表头尚未被算术逻辑单元401(ALU)处理(即header_processed位为逻辑0),那么读取动作便不执行(步骤805),且步骤803重复至对应表头受处理为止。若表头已在步骤803中受处理,且三角形由对应正反器中储存位指出受拒绝/剔除(步骤807),那么控制器429便激活(即设成逻辑1)两信号clean_act(示于图2及图4中)及last_read_clean_act(示于图4中)(步骤809)。
步骤811中,读取指针RP(图5)中读取地址RADR值加一,且读取地址RADR(示于图2及图4)设成next_valid(示于图2及图4)指针中所存地址。当信号last_read_clean_act被激活时,三角形指针先进先出内存427(TRI_PTR FIFO)增加其下一读取地址值,且该值为存于一读取指针RP(如图6所示)中。再有,当clean_act信号被激活时,三角形指针先进先出内存427(TRI_PTR FIFO)执行一读取动作,并输出该读取数据至next_valid指针(如图2及图4所示)中。
现请参阅步骤807。若三角形在表头于算术逻辑单元401(ALU)中处理后被判定为未受拒绝或剔除,那么一确认信号被发出以检查该被读取数据项为与该数据项相关的三角形的最后一项(步骤801)。若数据项的读取不是数据项相关的三角形的最后一项,那么步骤816中便在先进先出(FIFO)装置200中进行一读取动作,且读取地址RADR(如图2所示)的值增加一(步骤818)。数据(RDATA)自先进先出(FIFO)装置200读取出被输出至算术逻辑单元401(ALU),且TRI_ID、is_header及is_last_entry等辨识卷标输出至控制器429,且该输出经由图4中的输出431完成。
相反地,若数据项的读取为其相关三角形的最后项,那么一读取动作便于步骤812时于先进先出(FIFO)装置200装置中进行,且控制器429激活(即设定成逻辑1)信号last_read_clean_act(如图4所示)。先进先出(FIFO)装置200所读取的数据输出至算术逻辑单元401(ALU),且TRI_ID、is_header及is_last_entry输出至控制器429,且该输出经由图4的输出431完成。再有,当信号last_read_clean_act被致动时,三角形指针先进先出内存427(TRI_PTRFIFO)对其下一数据项的读取地址增加一值,且该值存于读取指针RP(示于图6中)之中。接着,读取地址RADR(如图2所示)及读取指针RP(如图5所示)所存读取地址在步骤814中各加一。
上述关于本发明特定实施例的叙述仅用于说明,非用以限定本发明仅限于这些实施例。本领域的普通技术人员在阅读过上述实施例的说明后可轻易加以变更而得不同实施例。故,上述实施例的提出用以使本领域的普通技术人员得以实施本发明。
举例而言,图7所示为一单一写入动作,但本发明的另一实施例中管线得与一如图4的控制电路并用,且数个数据项得于同时存于不同执行线程(threads)中,数据项的处理顺序由一控制器决定,如由控制器429决定。
再有,图4所示有效项417包含五个部份。在本发明另一实施例中,有效项得依所选设计参数分成较多或较少部份。图4所示的管线数为六个,但在另一实施例中该数目亦可设以较多或较少。
Last_read_clean_act、is_header、is_last_entry、valid、clean_act等位信号、存于header_processed缓存器中的位、及存于DFF0、DFF1、DFF2、DFF3、DFF4及DFF5设成逻辑1,用以对应一真(TRUE)状态;并可设成逻辑0,用以对应一假(FALSE)状态,该两状态的各种不同表示法皆可使用,且不改变本发明的思想。
Claims (16)
1、一种动态控制先进先出内存存取流程的方法,其中运用一连接该第一先进先出装置的控制电路,且该方法包含下列步骤:
a)检测该第一先进先出装置中发出的读取激活信号,其中一第一读取指针存有该第一先进先出装置中被读取的数据项于一第一先进先出内存中的地址;
b)检测该第一先进先出装置中发出的写入激活信号,其中一第一写入指针中存有一待被写进该第一先进先出内存中的地址;
c)检测一或多丢弃数据项,且这些丢弃数据项的地址始于该第一读取指针所存的地址;
d)将下一有效数据项的地址载进该第一读取指针中;
e)由该控制电路接收与图形有关的一有效数据项,其中该有效数据项至少包含一有效位、一表头位、一最后位、一辨识部份及一记作数据/表头的酬载部份;
f)判断该接收的有效数据项是否为一表头项:当判定该有效数据项为一表头项时,执行下一步骤g,其中该表头项包含一辨识卷标,用以辨识三角形;
g)写入该表头项至一第二先进先出装置、送出该表头项的表头数据至一算术逻辑单元、设定一存于一正反器的位为逻辑0、以及送出该辨识卷标至一连接至该算术逻辑单元的控制器,其中该正反器对应于该三角形,该算术逻辑单元包含于该控制电路中;
h)处理该送至该算术逻辑单元的表头数据;以及
i)设定一缓存器中一位为逻辑1,其中该缓存器连接至该算术逻辑单元,且该位对应于该三角形。
2、如权利要求1所述的方法,其特征在于,其中该设定步骤i还包含:
判断该三角形是否为被拒绝或剔除;
当判定该三角形为被拒绝或剔除时,设定存于该三角形相关的正反器中的位为逻辑1;以及
当判定该三角形为未被拒绝或剔除时,设定存于该三角形相关的正反器中的位为逻辑0。
3、如权利要求1所述的方法,其特征在于,其中该判断步骤f中,当判定该有效数据项非为一表头项时,还包括下列步骤:
判断该三角形是否为被拒绝或剔除;
当判定该三角形为被拒绝或剔除时,该有效数据项未被写进该第一先进先出装置中,该有效数据项至少包含一第一辨识卷标,用以辨识该接收的有效数据项相关的三角形,以及一第二辨识卷标,用以分辨与该三角形相关的最后有效数据项;及
当判定该三角形并未被拒绝或剔除时,判断一新三角形是否正写入该第一先进先出装置中。
4、如权利要求3所述的方法,其特征在于,其中判断新三角形是否正写入该第一先进先出装置中的步骤还包含比较该目前有效数据项的第一辨识卷标与一该前一有效数据项的第三辨识卷标,该第三辨识卷标用以辨识该先前收到的有效数据项的三角形,当判定该新三角形正写入该第一先进先出装置时,还包含:
将该目前有效数据项写进该第一先进先出内存的第一写入指针所存地址、及更新一第三先进先出装置,该第三先进先出装置连接至该第一先进先出装置。
5、如权利要求4所述的方法,其特征在于,该更新步骤还包含写入该第一写入指针所存地址至该第三先进先出装置、及以一增加一第三写入指针的步骤,其中该第三写入指针存有一等待被写入至该第三先进先出装置之中一第三先进先出内存的地址。
6、如权利要求3所述的方法,其特征在于,当判定该新三角形未写进该第一先进先出装置中时,还包含写入该前一有效数据项至该第一先进先出内存中第一写入指针所存地址的步骤。
7、如权利要求1所述的方法,其特征在于该检测步骤a与步骤b之间还包含:
检查该有效数据项的一第一辨识卷标的步骤,该有效数据项的第一辨识卷标用以辨识该三角形;以及
检查一对应于一缓存器中该三角形的位,确认该三角形的一表头项是否被处理:若该三角形的表头项已被处理,则执行判断该三角形是否为被拒绝或剔除的步骤;若该三角形的表头项尚未被处理,则重复上述检查对应于该缓存器中该三角形的位的步骤,直到该三角形的一表头项被处理为止。
8、如权利要求7所述的方法,其特征在于,其中该判断该三角形是否为被拒绝或剔除的步骤中,当判定该三角形为被拒绝或剔除时,还包含:
设定一第一信号为逻辑1,其中该第一信号用以向该第一先进先出装置指出下一或数个数据项为丢弃;
执行一读取动作于一与该第一先进先出装置连接的第三先进先出装置中,其中该读取动作的输出被载至该第一先进先出装置的第一读取指针中;以及
以一增加一第三读取指针所存地址,其中该第三读取指针存有该第三先进先出装置中的一地址。
9、如权利要求7所述的方法,其特征在于,其中该判断该三角形是否为被拒绝或剔除的步骤中,当判定该三角形为未被拒绝或剔除时,还包含:
判断这些数据项是否为该三角形的最后有效数据项;以及
检查该数据项的一第二辨识卷标的步骤,其中该第二辨识卷标用以区别该三角形的最后有效数据项。
10、如权利要求9所述的方法,其特征在于,其中该判断这些数据项是否为该三角形的最后有效数据项的步骤中,当判定这些数据项为该三角形的最后有效数据项时,还包含:
自该第一先进先出内存中该第一读取指针所存地址读取该数据项;以及
以一增加该第一读取指针中所存地址、及以一增加一第三读取指针所存地址的步骤,其中该第三读取指针存有一与该第一先进先出装置连接的第三先进先出装置的地址。
11、如权利要求9所述的方法,其特征在于,其中该判断这些数据项是否为该三角形的最后有效数据项的步骤中,当判定该些数据项非为该三角形的最后有效数据项时,还包含:
自该第一先进先出内存的第一读取指针所存地址中读取数据项,其中该数据项的数据被读进该控制电路中一算术逻辑单元中,且该数据项的辨识卷标被读进一与该算术逻辑单元连接的控制器中;以及
以一增加该第一读取指针中所存地址。
12、一种动态控制先进先出内存存取流程的系统,其中至少包含:
一第一先进先出装置,具有一第一先进先出内存、一第一写入指针及一第一读取指针,其中该第一写入指针存有一第一写入地址,而该第一读取指针存有一第一读取地址;
一第二先进先出装置,连接至该第一先进先出装置,该第二先进先出装置具有一第二先进先出内存、一第二写入指针及一第二读取指针,其中该第二写入指针存有一第二写入地址,该第二读取指针则存有一第二读取地址;
一控制器,通过一第一输入及一第三输入连接至该第一先进先出装置,以及通过一第五输入连接至该第二先进先出装置,其中该第一输入指出下一或数个起始于该第一读取地址的数据项为该丢弃,该第三输入至少包含一第一读取激活信号,用以告知一读取动作要求,该第五输入至少包含一第二读取激活信号,用以指出一读取动作请求;以及
一第三先进先出装置,连接至该控制器及通过一第二输入以及一第四输入连接至该第一先进先出装置,并且该第三先进先出装置具有一第三先进先出内存、一第三写入指针及一第三读取指针,其中该第三写入指针存有一第三写入地址,而该第三读取指针存有一第三读取地址,该第二输入包含写进该第一先进先出内存的数据,该第四输入至少包含一第一写入激活信号,用以指出一写入动作请求。
13、如权利要求12所述的系统,其特征在于,还包含一第一数据连接,该第一数据连接自该第二先进先出装置连接至该第一先进先出装置,并至少包含一该第一先进先出装置中下一有效数据项的地址。
14、如权利要求12所述的系统,其特征在于还包含一第一输出,该第一输出连接至该第一先进先出装置,且该第一输出至少包含自该第一先进先出内存读取动作读出的数据。
15、如权利要求12所述的系统,其特征在于,还包含一第二数据连接,该第二数据连接自该第一先进先出装置连接至该第二先进先出装置,其中该第二数据连接至少包含在写入动作进行中写进该第二先进先出内存的数据。
16、如权利要求12所述的系统,其特征在于,还包含
一第六输入,该第六输入连接至该第二先进先出装置,其中该第六输入至少包含一第二写入激活信号,用以指出一写入动作请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/436,790 | 2003-05-13 | ||
US10/436,790 US7467242B2 (en) | 2003-05-13 | 2003-05-13 | Method and system for dynamic FIFO flow control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1550991A CN1550991A (zh) | 2004-12-01 |
CN1307557C true CN1307557C (zh) | 2007-03-28 |
Family
ID=33449719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100052958A Expired - Lifetime CN1307557C (zh) | 2003-05-13 | 2004-02-18 | 动态控制先进先出内存存取流程的方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7467242B2 (zh) |
CN (1) | CN1307557C (zh) |
TW (1) | TWI231422B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080022140A (ko) * | 2005-05-30 | 2008-03-10 | 엔엑스피 비 브이 | 데이터 파이프라인 관리 시스템, 데이터 파이프라인 관리시스템을 이용하기 위한 방법, 컴퓨터 프로그램, 컴퓨터장치 및 컴퓨터 판독가능 매체 |
US7536662B2 (en) * | 2006-06-27 | 2009-05-19 | Atrenta, Inc. | Method for recognizing and verifying FIFO structures in integrated circuit designs |
TWI437411B (zh) | 2011-03-14 | 2014-05-11 | Realtek Semiconductor Corp | 用於時脈樹轉換處的先入先出(fifo)裝置與方法 |
CN104636087B (zh) * | 2015-02-09 | 2018-06-26 | 华为技术有限公司 | 读取数据的控制方法和装置 |
US10916293B1 (en) * | 2020-01-21 | 2021-02-09 | Elite Semiconductor Memory Technology Inc. | Target row refresh mechanism capable of effectively determining target row address to effectively mitigate row hammer errors without using counter circuit |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5335326A (en) * | 1992-10-01 | 1994-08-02 | Xerox Corporation | Multichannel FIFO device channel sequencer |
US5365485A (en) * | 1993-11-22 | 1994-11-15 | Texas Instruments Incorporated | Fifo with fast retransmit mode |
CN1147676A (zh) * | 1994-08-05 | 1997-04-16 | 美国电报电话公司 | 先进先出存储器 |
US5907716A (en) * | 1996-05-02 | 1999-05-25 | Fujitsu Limited | Fifo buffer capable of partially erasing data set held therein |
-
2003
- 2003-05-13 US US10/436,790 patent/US7467242B2/en active Active
- 2003-12-05 TW TW092134489A patent/TWI231422B/zh not_active IP Right Cessation
-
2004
- 2004-02-18 CN CNB2004100052958A patent/CN1307557C/zh not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5335326A (en) * | 1992-10-01 | 1994-08-02 | Xerox Corporation | Multichannel FIFO device channel sequencer |
US5365485A (en) * | 1993-11-22 | 1994-11-15 | Texas Instruments Incorporated | Fifo with fast retransmit mode |
CN1147676A (zh) * | 1994-08-05 | 1997-04-16 | 美国电报电话公司 | 先进先出存储器 |
US5907716A (en) * | 1996-05-02 | 1999-05-25 | Fujitsu Limited | Fifo buffer capable of partially erasing data set held therein |
Also Published As
Publication number | Publication date |
---|---|
TWI231422B (en) | 2005-04-21 |
US20040240482A1 (en) | 2004-12-02 |
CN1550991A (zh) | 2004-12-01 |
TW200424848A (en) | 2004-11-16 |
US7467242B2 (en) | 2008-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6181705B1 (en) | System and method for management a communications buffer | |
US5313582A (en) | Method and apparatus for buffering data within stations of a communication network | |
US5448702A (en) | Adapters with descriptor queue management capability | |
CA2309820C (en) | Content addressable memory (cam) engine | |
US4494190A (en) | FIFO buffer to cache memory | |
US5940866A (en) | Information handling system having a local address queue for local storage of command blocks transferred from a host processing side | |
US20040034743A1 (en) | Free list and ring data structure management | |
US20050138230A1 (en) | Method, apparatus and program product for low latency I/O adapter queuing in a computer system | |
JPS63168732A (ja) | ノン・ロツキング待ち行列機構 | |
US20030110322A1 (en) | Command ordering | |
CN1825296A (zh) | 介接不同宽度总线的接口电路、系统及方法 | |
US4151598A (en) | Priority assignment apparatus for use in a memory controller | |
US6237067B1 (en) | System and method for handling storage consistency conflict | |
JPS6217876Y2 (zh) | ||
US7631132B1 (en) | Method and apparatus for prioritized transaction queuing | |
CN1307557C (zh) | 动态控制先进先出内存存取流程的方法及系统 | |
CN116661703B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
US20030193892A1 (en) | Credit initialization in systems with proactive flow control | |
US5283890A (en) | Cache memory arrangement with write buffer pipeline providing for concurrent cache determinations | |
EP1629645A1 (en) | Method and system for maintaining partial order of packets | |
US6694410B1 (en) | Method and apparatus for loading/storing multiple data sources to common memory unit | |
US6735677B1 (en) | Parameterizable queued memory access system | |
CN105721338A (zh) | 一种接收数据的处理方法及装置 | |
US4758947A (en) | List processing method and apparatus | |
US7035908B1 (en) | Method for multiprocessor communication within a shared memory architecture |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20070328 |
|
CX01 | Expiry of patent term |