CN100418052C - 使用循环计数实现增强循环队列的方法和装置 - Google Patents
使用循环计数实现增强循环队列的方法和装置 Download PDFInfo
- Publication number
- CN100418052C CN100418052C CNB2005101203856A CN200510120385A CN100418052C CN 100418052 C CN100418052 C CN 100418052C CN B2005101203856 A CNB2005101203856 A CN B2005101203856A CN 200510120385 A CN200510120385 A CN 200510120385A CN 100418052 C CN100418052 C CN 100418052C
- Authority
- CN
- China
- Prior art keywords
- input item
- stem
- round
- robin queue
- pointer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
一种方法、装置和计算机程序产品,用于使用循环计数来实现增强的循环队列以用于命令处理。循环队列包括多个用于存储命令的输入项。当在队列的首部向队列添加命令输入项时,采用每个命令输入项存储首部循环计数。首部指针被更新到队列的首部。当首部指针从最后队列输入项换行到第一队列输入项时,首部循环计数递增。尾部指针指向最老的命令输入项,并且在执行最老的命令输入项时被更新。当尾部指针推进并从最后的队列输入项换行到第一队列输入项时,尾部指针循环计数递增。
Description
技术领域
本发明一般地涉及数据处理领域,具体涉及在计算机系统中使用循环计数来实现增强的循环队列以用于命令处理的方法、装置和计算机程序产品。
背景技术
在传统的结构中,使得一些输入项无序地被执行的循环队列将导致位于首部和尾部输入项之间的空闲并因此不能被使用的队列输入项。这意味着当在队列中实际上存在小于其容量的输入项时,循环队列全部出现。
例如,图2图解了如何使用循环队列的传统结构来将输入项排队和解除排队。在图2中,所述循环队列包括8个输入项和指示正在使用一个队列输入项的X。如图2所示,输入项被添加到队列的首部,并且以任何顺序从所述队列去除。尾部指针指示在队列中的最老的输入项。
首先,循环队列开始是空的,并且首部和尾部指针指向第一输入项。首部指针指向队列的首部,尾部指针指向在队列中的最老的输入项。
接着,在已接收到7个命令后,示出了循环队列。在已经接收到7个命令后,尾部指针指向第一输入项,首部指针指向最后的输入项。
然后,在已经以任何顺序执行了5个命令后,示出了循环队列。在已经执行了5个命令后,尾部指针指向仍然作为在队列中的最老输入项的第一输入项,并且首部指针指向最后的输入项。
接着,在已经接收到另一个命令并且将其添加到在队列中的最后输入项后示出循环队列。然后,首部指针换行(wrap)以便指向第一输入项,而尾部指针仍然指向第一输入项。在接收到所示的最后命令后,即使5个输入项没有,队列也全部出现。
可以使用避免这样的问题的链接列表来取代循环队列。但是,链接列表将比循环队列需要明显更多的硬件。
需要一种实现循环队列的有效的机制,它能够以任何顺序处理排队的命令,并且能够使用在使用传统的循环队列配置时不能获得的、空闲的队列输入项。期望提供这样的机制,它能够有效地使用循环队列,而不需要附加的硬件并且没有链接列表的复杂性。
发明内容
本发明的主要方面提供一种方法、装置和计算机程序产品,用于在诸如存储控制器之类的计算机系统中使用循环计数来实现增强的循环队列。本发明的其他重要方面提供这样的方法、装置和计算机程序产品,用于使用循环计数来实现增强的循环队列,而基本上没有副作用,并且克服了现有技术结构的许多缺陷。
简而言之,提供了一种方法、装置和计算机程序产品,用于使用循环计数来实现增强的循环队列以用于命令处理。循环队列包括多个用于存储命令的输入项。当在队列的首部向队列增加命令输入项时,采用每个被添加的命令输入项存储首部循环计数。首部指针被更新到具有每个被添加的命令输入项的队列的首部。当首部指针从最后队列输入项换行到第一队列输入项时,首部循环计数递增。尾部指针指向最老的命令输入项,并且在执行最老的命令输入项时被更新。当尾部指针推进并从最后的队列输入项换行到第一队列输入项时,尾部指针循环计数递增。
一方面,按照本发明的实现用于命令处理的增强循环队列的方法,包括步骤:提供包括用于存储命令的多个输入项的循环队列;向所述循环队列的首部输入项增加命令输入项,并且采用被添加到所述循环队列的命令输入项存储首部循环计数;更新用于指向在循环队列中的下一个首部输入项的首部指针;并且响应于首部指针从最后的队列输入项换行到第一队列输入项而使得所述首部循环计数递增;提供用于指向最老的命令输入项的尾部指针,并且在每个最老的命令输入项被执行时推进尾部指针;响应于尾部指针从最后的队列输入项换行到第一队列输入项而使得所述尾部指针的尾部循环计数递增;将所更新的首部指针与尾部指针相比较,以识别完整的循环队列。
另一方面,按照本发明的实现用于命令处理的增强循环队列的装置包括:循环队列,包括用于存储命令的多个输入项;存储控制器,藕接到用于存储命令的所述循环队列;所述存储控制器在所述循环队列的首部输入项处增加命令输入项,并且采用被添加到所述循环队列增加命令输入项存储首部循环计数;所述存储控制器更新用于指向在循环队列中的下一个首部输入项的首部指针;并且响应于首部指针从最后的队列输入项换行到第一队列输入项而使得所述首部循环计数递增;所述存储控制器提供用于指向最老的命令输入项的尾部指针,并且在每个最老的命令输入项被执行时推进尾部指针;响应于尾部指针从最后的队列输入项换行到第一队列输入项而使得所述尾部指针的尾部循环计数递增;所述存储控制器还将所更新的首部指针与尾部指针相比较以识别所述循环队列的完整状态。
按照本发明的特征,循环计数的使用实现了无序命令的处理并能有效使用在循环队列中的所有可用输入项。
附图说明
通过下面详细说明在附图中图解的本发明的优选实施例,可以更好地理解本发明以及上述和其他目的和优点,其中:
图1是图解按照所述优选实施例的、使用循环计数来实现增强的循环队列的计算机系统的方框图图示;
图2图解了包括初始空队列的现有技术的循环队列结构以及如何无序地对输入项进行排队和解除排队而导致不能使用的在首部和尾部输入项之间的空闲队列输入项;
图3图解了在图1的网络处理器系统中的、按照所述优选实施例的、用于使用循环计数来实现增强的循环队列的示例性队列序列;
图4是在图1的计算机系统中的、按照所述优选实施例的、使用循环计数来实现增强的循环队列的示例性队列结构的替代图示,如图3所示的示例性队列序列那样,它表示出了在接收到最后4个命令后的这个队列结构;
图5是图解用于在图1的计算机系统中、按照所述优选实施例来使用循环计数实现增强的循环队列的示例性步骤的流程图;以及
图6是图解按照优选实施例的计算机程序产品的方框图。
具体实施方式
现在参见附图,在图1中,示出了总体采用附图标号100指示的计算机系统,用于按照所述优选实施例使用循环计数来实现增强的循环队列。计算机系统100包括处理器102或中央处理器单元(CPU)102,它通过系统总线106藕接到存储器管理单元(MMU)108和系统存储器,所述系统存储器包括动态随机存取存储器(DRAM)110、非易失性随机存取存储器(NVRAM)112和快闪存储器114。藕接到系统总线106和MMU 108的存储控制器116的海量存储接口118将直接存取存储器件(DASD)120和CD-ROM驱动器122连接到处理器102。按照所述优选实施例,存储控制器116使用循环计数对循环队列200中的命令进行排队和解除排队。
以足够明白本发明的简单形式表示计算机系统100。所示的计算机系统100不意欲暗示结构或功能的限制。本发明可以用于各种硬件实现方式和系统以及各种其它内部硬件器件。应当明白,本发明不限于用于所示的计算机系统100,各种处理器系统都可以提供其中能有利于实现本发明的优选实施例的方法和增强的循环队列结构的计算机环境。
按照所述优选实施例的特征,按照所述优选实施例使用循环计数在循环队列200中对命令进行排队和解除排队,以便能以任何顺序执行命令,同时使得在循环队列200中的所有空闲队列输入项都可以用于存储新命令。
按照所述优选实施例的特征,当命令输入项在队列首部处被添加到队列时,采用每个命令输入项存储首部循环计数。首部指针被更新到队列的首部。当首部指针从最后的队列输入项换行到第一队列输入项时,首部循环计数递增。尾部指针指向最老的命令输入项,并且在执行最老的命令输入项时被更新。当尾部指针推进并从最后的队列输入项换行到第一队列输入项时,尾部指针循环计数递增。将具有首部循环计数值的首部指针与具有尾部循环计数值的尾部指针相比较,以识别循环队列200的完全状态,并且当首部循环指针需要前进到具有用于该首部和尾部指针的匹配循环计数的尾部循环指针时,认为所述队列完整。
现在参见图3和图4,示出了示例性队列图,用于图解按照所述优选实施例的使用循环计数的命令队列输入项处理。
图3图解了按照所述优选实施例的、在处理器系统100中的示例性初始队列结构,它总体上采用附图标号200指示。如图所示,初始队列结构200包括8个空输入项0-7,并且首部和尾部指针指向第一输入项0,首部和尾部指针具有循环计数0。首部指针指向队列的首部,并且尾部指针指向在队列中的最老的输入项。由多位值来表示循环计数。例如,所述循环计数包括用于通过循环队列200的8个循环的3位、或用于通过循环队列200的4个循环的2位。
接着,示出了在已经接收和向循环队列200添加7个命令后的循环队列200。在队列输入项0-6中所示的编号0指示队列输入项0-6在使用,并且编号0指示循环计数值。在已经接收到7个命令后,尾部指针指向用于指示最老的命令的第一输入项0,并且首部指针被更新并指向用于增加下一个命令的最后的输入项7。
然后,示出了已经执行了5个命令后的循环队列200。在已经执行了所述5个命令后,尾部指针指向第一输入项,并且首部指针指向最后的输入项。
接着,示出了在已经接收到另一个命令并且将其添加到由首部指针指向的最后输入项7后的循环队列200。然后,首部指针被更新,并且首部指针换行而指向第一输入项,并且尾部指针指向第一输入项。当首部指针从最后队列输入项换行前进到第一输入项时,首部循环计数值递增。首部循环计数值递增到1,如首部指针所示,同时尾部指针循环计数值保持为0。在接收到这个命令后,循环队列200并不像传统命令循环队列那样呈现完整。通过比较首部指针和尾部指针的计数值,剩余的5个空闲输入项1、2、3、5和6现在没有被使用。
如在图3的所示序列的底部所示,示出了在添加另外4个命令后的循环队列200。这4个命令被依序添加到剩余的5个空闲输入项的前4个1、2、3和5。首部指针(首部循环计数值1)被更新,并且指向用于添加下一个命令的单个剩余空闲输入项6。尾部指针(循环计数0)指示在队列中的最老的命令输入项1。
图4提供了一个示例性队列结构的替代表示,所述示例性队列结构总体上由参考标记400指示,用于在图3的示例性队列200的所示序列中接收最后4个命令后在计算机系统100中、按照所述优选实施例使用循环计数实现增强的循环队列。如图4所示,循环队列200被表示为具有32个输入项——或8个输入项乘以四个循环0-3——的一个大队列结构400。如图4所示,队列结构400包括用于每个循环0-3的8个输入项。如图4所示,首部指针指向用于添加下一个命令的队列的首部,尾部指针指示在队列中的最老输入项。如图4所示,该队列结构400使得队列输入项0-7可被用于唯一的循环0-3。X指示队列输入项正在被使用,而“-”指示队列输入项因为只有一个缝隙可用于所有的循环0-3而被阻止。
现在参见图5,示出了在方框500开始的示例性步骤,用于在计算机系统100中按照所述优选实施例使用循环计数来实现增强的循环队列。如在确定方框502中所示,当接收到命令时,如在确定方框504中所示,对包括首部循环计数值的首部指针与具有尾部循环计数值的尾部指针进行比较以识别循环队列200的全部状态。当首部循环指针需要推进到具有用于首部和尾部指针的匹配循环计数的尾部循环指针并且在确定方框504识别完整的队列的时候,那么,如在方框506中所示,所接收的命令则被拒绝。
当队列不是完整时,则所接收的命令被添加到队列首部输入项,并且使用在方框508中指示的命令来将首部循环计数存储在该队列输入项中。首部指针被更新来指向用于下一个命令的队列首部输入项,如在方框510中所示。如在确定方框512中所示,核查首部指针是否换行或推进通过最后的队列输入项和第一队列输入项。如在方框514中所示,当首部指针换行时,用于下一个队列首部输入项和首部指针的循环计数递增。
当在确定方框502未识别所接收的命令时,然后如确定方框516所示执行对于被执行的命令的核查。当在确定方框516识别被执行的命令时,当所执行的命令是最老的命令输入项时将尾部输入项指针推进。如在确定方框518中所示,执行核查尾部输入项指针是否换行。如在方框520所示,当尾部输入项指针换行时,尾部输入项指针的循环计数递增。然后,序列步骤返回,如在方框522中所示。
尽管已经描述的本发明是将队列输入添加到队列的首部以及尾部指针指向最老的命令输入项,但是,应当明白,按照本发明,队列输入项可以添加到队列的尾部并且首部指针指向最老的命令输入项。
现在参见图6,图解了本发明的制造产品或计算机程序产品600。计算机程序产品600包括诸如软盘的记录介质602、光可读致密盘或CD-ROM形式的高容量只读存储器、存储带、诸如数字或模拟通信链路的传输式媒体、或类似的计算机程序产品。记录介质602在介质602上存储程序装置604、606、608、610,用于执行方法,所述方法用于在图1的计算机100中实现所述优选实施例的用于命令处理的增强循环队列。
程序指令序列或由所记录的程序装置604、606、608、610限定的一个或多个相互相关的模块的逻辑组合引导计算机系统100,以实现所述优选实施例的用于命令处理的增强循环队列。
虽然已经参照在附图中所示的本发明的实施例的细节而说明了本发明,但是这些细节不意欲限制在所附的权利要求中给出的本发明的范围。
Claims (4)
1. 一种实现用于命令处理的增强循环队列的方法,包括步骤:
提供包括用于存储命令的多个输入项的循环队列;
向所述循环队列的首部输入项增加命令输入项,并且采用被添加到所述循环队列的命令输入项存储首部循环计数;
更新用于指向在循环队列中的下一个首部输入项的首部指针;并且响应于首部指针从最后的队列输入项换行到第一队列输入项而使得所述首部循环计数递增;
提供用于指向最老的命令输入项的尾部指针,并且在每个最老的命令输入项被执行时推进尾部指针;响应于尾部指针从最后的队列输入项换行到第一队列输入项而使得所述尾部指针的尾部循环计数递增;
将所更新的首部指针与尾部指针相比较,以识别完整的循环队列。
2. 按照权利要求1的实现用于命令处理的增强循环队列的方法,其中,采用命令输入项存储首部循环计数包括步骤:存储多位值以表示所述首部循环计数。
3. 一种实现用于命令处理的增强循环队列的装置,包括:
循环队列,包括用于存储命令的多个输入项;
存储控制器,耦接到用于存储命令的所述循环队列;所述存储控制器在所述循环队列的首部输入项处增加命令输入项,并且采用被添加到所述循环队列增加命令输入项存储首部循环计数;
所述存储控制器更新用于指向在循环队列中的下一个首部输入项的首部指针;并且响应于首部指针从最后的队列输入项换行到第一队列输入项而使得所述首部循环计数递增;
所述存储控制器提供用于指向最老的命令输入项的尾部指针,并且在每个最老的命令输入项被执行时推进尾部指针;响应于尾部指针从最后的队列输入项换行到第一队列输入项而使得所述尾部指针的尾部循环计数递增;
所述存储控制器还将所更新的首部指针与尾部指针相比较以识别所述循环队列的完整状态。
4. 按照权利要求3的实现用于命令处理的增强循环队列的装置,其中,所述存储控制器在每个命令输入项中存储多位值以表示所述首部循环计数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/988,232 US7266650B2 (en) | 2004-11-12 | 2004-11-12 | Method, apparatus, and computer program product for implementing enhanced circular queue using loop counts |
US10/988,232 | 2004-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1773449A CN1773449A (zh) | 2006-05-17 |
CN100418052C true CN100418052C (zh) | 2008-09-10 |
Family
ID=36387618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101203856A Expired - Fee Related CN100418052C (zh) | 2004-11-12 | 2005-11-11 | 使用循环计数实现增强循环队列的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7266650B2 (zh) |
CN (1) | CN100418052C (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1925530B (zh) * | 2006-09-06 | 2011-01-05 | 华为技术有限公司 | 记录话单的系统及方法 |
WO2008057557A2 (en) * | 2006-11-06 | 2008-05-15 | Rambus Inc. | Memory system supporting nonvolatile physical memory |
US20090259806A1 (en) * | 2008-04-15 | 2009-10-15 | Adtron, Inc. | Flash management using bad page tracking and high defect flash memory |
US8185778B2 (en) * | 2008-04-15 | 2012-05-22 | SMART Storage Systems, Inc. | Flash management using separate metadata storage |
US8180954B2 (en) * | 2008-04-15 | 2012-05-15 | SMART Storage Systems, Inc. | Flash management using logical page size |
US8566505B2 (en) * | 2008-04-15 | 2013-10-22 | SMART Storage Systems, Inc. | Flash management using sequential techniques |
US8028123B2 (en) * | 2008-04-15 | 2011-09-27 | SMART Modular Technologies (AZ) , Inc. | Circular wear leveling |
US8976609B1 (en) | 2014-06-16 | 2015-03-10 | Sandisk Enterprise Ip Llc | Low-test memory stack for non-volatile storage |
US9653184B2 (en) | 2014-06-16 | 2017-05-16 | Sandisk Technologies Llc | Non-volatile memory module with physical-to-physical address remapping |
US9613715B2 (en) | 2014-06-16 | 2017-04-04 | Sandisk Technologies Llc | Low-test memory stack for non-volatile storage |
US10310923B1 (en) | 2014-08-28 | 2019-06-04 | Seagate Technology Llc | Probabilistic aging command sorting |
US10831403B2 (en) | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
US20220413732A1 (en) * | 2021-06-28 | 2022-12-29 | Advanced Micro Devices, Inc. | System and method for transferring data from non-volatile memory to a process accelerator |
US20230168934A1 (en) * | 2021-12-01 | 2023-06-01 | Fungible, Inc. | Predictable and adaptive quality of service for storage |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131113A (en) * | 1998-02-24 | 2000-10-10 | International Business Machines Corporation | Managing a shared resource in a multi-processor system |
CN1149483C (zh) * | 1995-03-22 | 2004-05-12 | 艾利森电话股份有限公司 | 控制设置在数字缓冲存储器内的数字缓冲器的控制方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6988186B2 (en) * | 2001-06-28 | 2006-01-17 | International Business Machines Corporation | Shared resource queue for simultaneous multithreading processing wherein entries allocated to different threads are capable of being interspersed among each other and a head pointer for one thread is capable of wrapping around its own tail in order to access a free entry |
US6785862B1 (en) * | 2001-08-14 | 2004-08-31 | Mindspeed Technologies, Inc. | Convolutional interleaver employing an efficient memory scheme |
US6782461B2 (en) * | 2002-02-25 | 2004-08-24 | Intel Corporation | Dynamically adjustable load-sharing circular queues |
US7219198B2 (en) * | 2004-06-22 | 2007-05-15 | International Business Machines Corporation | Facilitating communication within shared memory environments using lock-free queues |
-
2004
- 2004-11-12 US US10/988,232 patent/US7266650B2/en not_active Expired - Fee Related
-
2005
- 2005-11-11 CN CNB2005101203856A patent/CN100418052C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1149483C (zh) * | 1995-03-22 | 2004-05-12 | 艾利森电话股份有限公司 | 控制设置在数字缓冲存储器内的数字缓冲器的控制方法 |
US6131113A (en) * | 1998-02-24 | 2000-10-10 | International Business Machines Corporation | Managing a shared resource in a multi-processor system |
Also Published As
Publication number | Publication date |
---|---|
US7266650B2 (en) | 2007-09-04 |
US20060106749A1 (en) | 2006-05-18 |
CN1773449A (zh) | 2006-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100418052C (zh) | 使用循环计数实现增强循环队列的方法和装置 | |
CN101432702B (zh) | 在事务处理码内对存储器分配和解除分配的系统和方法 | |
US6901461B2 (en) | Hardware assisted ATA command queuing | |
US5107457A (en) | Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack | |
CN101183304B (zh) | 并发非阻塞无锁队列及其实施方法和装置 | |
US20060015510A1 (en) | Method for sorting a data structure | |
CN105684020B (zh) | 硬件平台中的订单账簿管理设备 | |
CN107656813A (zh) | 一种负载调度的方法、装置及终端 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN109800558B (zh) | 密码服务板卡以及密码服务装置 | |
CN111399750B (zh) | 闪存数据写入方法及计算机可读取存储介质 | |
CN101135998A (zh) | 用于调度总线上的命令的方法和装置 | |
CN113704301B (zh) | 异构计算平台的数据处理方法、装置、系统、设备及介质 | |
CN103345429B (zh) | 基于片上ram的高并发访存加速方法、加速器及cpu | |
CN108664213A (zh) | 基于分布式缓存的原子写命令处理方法与固态存储设备 | |
CN106372008A (zh) | 一种数据缓存方法及装置 | |
CN110674052A (zh) | 内存管理方法、服务器及可读存储介质 | |
CN107861878A (zh) | Java应用程序性能问题定位的方法、装置和设备 | |
CN108664214A (zh) | 用于固态存储设备的分布式缓存的掉电处理方法与装置 | |
US20110106815A1 (en) | Method and Apparatus for Selectively Re-Indexing a File System | |
CN117076353B (zh) | 描述符的配置方法和描述符的配置装置 | |
US20080276045A1 (en) | Apparatus and Method for Dynamic Cache Management | |
US20080154934A1 (en) | Apparatus, system, and method for efficient adaptive parallel data clustering for loading data into a table | |
CN108563399A (zh) | 存储设备的数据读取方法、装置、终端设备和存储介质 | |
CN109213425A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080910 Termination date: 20111111 |