CN1328659C - 具有共享存储器的改进结构 - Google Patents

具有共享存储器的改进结构 Download PDF

Info

Publication number
CN1328659C
CN1328659C CNB028268180A CN02826818A CN1328659C CN 1328659 C CN1328659 C CN 1328659C CN B028268180 A CNB028268180 A CN B028268180A CN 02826818 A CN02826818 A CN 02826818A CN 1328659 C CN1328659 C CN 1328659C
Authority
CN
China
Prior art keywords
processor
memory
memory bank
storer
processors
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
CNB028268180A
Other languages
English (en)
Other versions
CN1613060A (zh
Inventor
R·弗伦策尔
C·霍拉克
R·K·雅因
M·特尔施卢泽
S·乌勒曼
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1613060A publication Critical patent/CN1613060A/zh
Application granted granted Critical
Publication of CN1328659C publication Critical patent/CN1328659C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing

Abstract

一种具有多个处理器共享单个存储模块而不具有显著的性能劣化的系统。该存储模块分成n个单独可寻址的存储体,该n至少为2,且对该存储模块映射,以在各存储体之间轮换连续的地址。这样的映射使得连续数据字节存储于交替的存储体中。每个存储体可进一步分成多个区块。通过交错或同步处理器来执行计算机程序,以使每个处理器在相同的周期访问不同的区块,处理器能够同时访问存储器。

Description

具有共享存储器的改进结构
本申请声明享有US序列号为60/333220、于2001年11月6日申请的临时专利申请的优先权,在此引用其全文作为参考。
技术领域
本发明通常涉及集成电路(IC)。特别的,本发明涉及一种具有共享存储器的改进结构。
背景技术
图1显示了一种传统SOC 100的一部分的框图,如一种数字信号处理器(DSP)。如图所示,该SOC包括一个通过一总线180与一存储模块耦合的处理器110。该存储模块存储一包括多个指令的计算机程序。在SOC操作期间,处理器从存储器查询并执行该计算机指令,以执行所要求的功能。
一个SOC可具有例如执行相同程序的多个处理器。取决于应用程序,处理器可能执行不同的程序或共享相同的程序。通常,为提高性能,每一处理器与其自身的存储模块相联系,因为在每一时钟周期内,一个存储模块只能被一个处理器访问。由此,使用其自身的存储器,处理器无须等待至存储器空闲,因为它是唯一访问其相联系的存储模块的处理器。然而,由于对于每一处理器,需要双倍的存储模块,性能的改进是以牺性芯片尺寸为代价的。
从上述的讨论可以证明,迫切需要提供这样一种系统,其中各处理器可以共享一个存储模块以减小芯片尺寸,而不破传统结构的性能。
发明内容
本发明的一个实施例中涉及了一种在多个处理器之间共享一存储模块的方法。将存储模块分成n个存储体,该n至少是2。每一存储体可由一个或更多的处理器在任何时间访问。将该存储模块映射以分配连续地址至存储器的交替存储体,基于存储器的映射而在交替存储单元中存储连续数据。在一个实施例中,将存储单元分成x个区块,x至少是1,其中每一区块可由多个处理器中的一个在任何时间访问。而另一实施例中,该方法进一步包括同步各处理器以在任一时间访问不同的区块。
附图说明
图1显示了传统SOC的框图;
图2显示了根据本发明的一个实施例的一个系统;
图3-5显示了根据本发明的不同实施例的一FCU的流程;及
图6-7显示了根据本发明的各个实施例的存储模块。
具体实施方式
图2显示了根据本发明的一个实施例的一系统200的一部分的框图。该系统例如包括用于在一单个芯片上的多端口数字用户线(DSL)应用的多个数字信号处理器(DSP)。该系统包括m个处理器210,该m是等于或大于2的整数。更具体的,该系统包括第一和第二处理器210a-b(m=2)。在该系统中提供多于两个的存储器也是用效的。
各处理器通过各自的存储总线218a和218b耦合于一存储模块260。存储总线例如是16位宽的总线。取决于每一数据字节的宽度,也可以使用其它尺寸的总线。由处理器访问的数据字节存储于存储模块。在一个实施例中,该数据字节包括程序指令,由此处理器从存储模块中取出指令用以执行。
根据本发明的一个实施例,在各处理器之间共享存储模块,而没有出现可观的性能劣化,也无需对于每个处理器提供双倍的存储模块。可观的性能劣化的防止是通过将存储模块分成n个独立操作的存储体265,该n是一等于或大于2的整数。优选n=系统中处理器的数目(即n=m)。由于各存储体独立操作,各处理器可以在相同的时钟周期内同时访问存储模块的不同存储体。
在另一实施例中,将一存储体再分成x个可单独访问的区块275a-p,该x是一大于或等于1的整数。在一个实施例中,将每个存储体再分成8个可单独访问的区块。通常,区块的数目越大,争用的概率越低。在一个实施例中,选择区块的数目以优化性能及减少争用。
在一个实施例中,每个处理器(210a或210b)都有一耦合于每个存储体的总线(218a或218b)。存储阵列的区块的每一个具有例如控制线路278,以将总线上的数据合适地放置至处理器。该控制电路包括例如多路复用电路或三态缓存器,以将数据导向正确的处理器。每个存储体例如再分成8个区块。通过在一个存储体内提供独立区块,处理器可以不管是否来自于同一存储单元而访问不同的区块,这是有利的。通过减少了处理器之间的潜在冲突,其还提高了系统性能。
而且,对存储器映射,以在不同的存储器存储体之间轮换连续的存储地址。例如,在一双存储体存储模块中(如存储体0和存储体1),会对一个存储体(存储体0)分配偶数地址,而对另一个存储体(存储体1)分配奇数地址。这将使得在连续地址中的数据字节存储于交替的存储体,如在存储体0中的数据字节1、在存储体1中的数据字节2、在存储体0中的数据字节3等等。在一个实施例中,数据字节包括程序中的指令。由于程序指令的执行是除跳转(例如:分支及循环指令)之外按次序执行的,一处理器通常会在程序执行期间、每个周期之后访问存储模块的不同存储体。通过同步或交错处理器来执行程序,以使各处理器在相同的周期访问不同的存储体,多个处理器可以同时执行存储于存储模块260中的相同程序。
一流程控制单元(FCU)245同步处理器访问不同的存储区块,以防止存储冲突或争用。在一存储冲突事件(如两个处理器同时访问相同的区块)中,该FCU锁定处理器中的一个(如插入一等待状态或周期),而使另一处理器访问该存储器。这将会同步处理器以在下一时钟周期访问不同的存储体。一旦同步了之后,两个处理器在相同时钟周期内都可以访问该存储模块,直至例如由跳转指令导致的存储冲突出现。如果两个处理器(210a和210b)都试图在相同的周期访问区块275a,则例如在一个周期中在处理器210b中插入等待状态,使处理器210a先访问区块275a。在下一时钟周期中,处理器210a访问区块275b而处理器210b访问区块275a。因此处理器210a和210b被同步从而在随后的时钟周期中访问不同的存储体。
可选的,各处理器可具有各自的临界存储模块215。该临界存储模块例如小于主存储模块260并用于存储由处理器频繁访问的程序或子程序(如MIPS临界)。通过不显著增加芯片尺寸而减少存储冲突,临界存储模块的使用增强了系统性能。提供一种控制电路214。该控制电路耦合于总线217和218,以从存储模块260或临界存储模块215适当地多路传输数据。在一个实施例中,该控制电路包括三态缓存器,用以将合适的总线解耦或耦合于该处理器。
在一个实施例中,FCU作为一个状态机实现。图3显示了根据本发明的一个实施例的一FCU状态机的普通工作流程。如图所示,该FCU控制处理器的访问(例如A或B)。在步骤310处,初始化该FCU。在操作期间,处理器相应于在下一时钟周期中存储器访问,发出各自的存储地址(AAdd或BAdd)。FCU在步骤320比较AAdd和BAdd,以确定是否存在一存储冲突(例如各处理器访问相同的还是不同的存储区块)。在一个实施例中,FCU检查地址以确定是否访问了任何临界存储模块(未示出)。如果,或者处理器A,或处理器B正在访问其各自的本地临界存储器,则不出现冲突。
如果没有冲突存在,在步骤340,各处理器在相同的周期内访问该存储模块。如果冲突存在,FCU在步骤350确定处理器的访问优先级。如果处理器A具有一更高的优先级,该FCU允许处理器A访问该存储器,而处理器B在步骤360执行一等待状态。如果处理器B具有一更高的优先级,则处理器B访问该存储器,而处理器A在步骤370执行一等待状态。在步骤340、360或370之后,FCU返回到步骤320以比较由处理器访问的下一存储器的地址。例如,如果存在一冲突,如在步骤360处,则对于处理器B插入一等待状态,而处理器A访问在地址AAdd处的存储器。因此,两个处理器都被同步以在接下来的周期中访问不同的存储区块。
图4显示了根据本发明的另一个实施例的一FCU的一工作流程401。在冲突的情况下,该FCU在步骤460处通过检测处理器A来确定是否它已执行了一个跳转,以分配访问的优先级。在一个实施例中,如果处理器B已执行了一个跳转,则锁定处理器B(例如执行一等待状态)而授予处理器A以访问优先级。反之,则锁定处理器A而授予处理器B以访问优先级。
在一个实施例中,FCU在步骤440中比较处理器A和处理器B的地址来确定是否处理器正在访问同一个存储区块。在处理器正在访问不同的存储区块的事件中(即没有冲突),在步骤430,FCU允许两个处理器都能同时访问存储器。如果存在一冲突,在步骤460,FCU例如比较处理器A的当前和在前地址的最低位以确定访问优先级。如果最低位不相等(即当前和在前地址是连续的),处理器B可能已经通过执行一跳转而导致了冲突。由此,FCU前进到步骤470,锁定处理器B而允许处理器A访问该存储器。如果该最低位相等,则在步骤480中锁定处理器A而允许处理器B访问该存储器。
图5显示了根据本发明的一个另一变化实施例的FCU 501。在操作之前,在步骤510初始化该FCU。在步骤520,该FCU比较处理器的地址来确定它们是否访问不同的存储区块。如果处理器正在访问不同的存储区块,则在步骤530允许两个处理器都能访问。然而,如果处理器正在访问相同的存储区块,则存在冲突。在冲突期间,该FCU确定哪个处理器导致了该冲突,例如通过执行了跳转而导致的。在一个实施例中,在步骤550和555,比较处理器的当前和在前地址的最低位。如果是处理器A导致了跳转(例如处理器A的当前和在前地址的最低位相等而处理器B的当前和在前地址的最低位不相等),则FCU前进到步骤570。在步骤570,FCU锁定处理器A并允许处理器B在步骤570中访问该存储器。如果是处理器B导致了跳转,则在步骤560,FCU锁定处理器B允许处理器A访问该存储器。
可能存两个处理器都执行了一跳转的状况。在这种情况下,FCU前进到步骤580并检测一优先级寄存器,其包含表示哪一处理器具有优先级的信息。在一个实施例中,触发该优先级寄存器以在处理器之间的交替优选级。如图5所示,在步骤580,FCU在确定哪一处理器具有优先级之前触发该优先级寄存器。另一可选的,可以在确定了优先级之后触发优先级寄存器。在一个实施例中,在优先级寄存器中的1表示处理器A具有优先级(步骤585),而在优先级寄存器中的0表示处理器B具有优先级(步骤590)。使用1来表示B具有优先极,0表示A具有优先级也是可以的。在没有处理器执行跳转(例如处理器A或处理器B的当前和在前地址的最低位不相同)时出现冲突的事件中也能够执行相同的方法。
在另一变化实施例中,FCU也可采用其它类型的判断机制来同步处理器。在一个实施例中,可分配处理器相对于另一处理器或其它处理器的具有特定优先级水平。
图6-7说明了根据本发明的不同实施例的存储器映射。参照图6,显示了将具有2个存储体(存储体0和存储体1)的存储模块260,2个存储体分别再分成8个区块(区块0-7)。更具体的,假定存储模块包括16位宽度的512Kb存储区,将每个区块分配2K可寻址的位置(2K×16位×16区块)。在一个实施例中,分配偶数地址至存储体0(即0,2,4...32K-2),而分配奇数地址到存储体1(即1,3,5...32K-1)。存储体0的区块0将具有地址0,2,4...4K-2;存储体1的区块1将具有地址1,3,5...4K-1。
参照图7,显示了具有4个存储体(存储体0-3)的存储模块,每一个存储体都分别再分成8个区块(区块0-7)。假定存储模块包括16位宽度的512Kb存储区,将每个区块分配1K可寻址的位置(1K×16位×32区块)。在存储模块包括4个存储体的情况中,如图5所示,将如下分配地址:
存储体0:从0开始的每第四地址(即0,4,8等等)
存储体1:从1开始的每第四地址(即1,5,9等等)
存储体2:从2开始的每第四地址(即2,6,10等等)
存储体3:从3开始的每第四地址(即3,7,11等等)
对n个存储体,可以如下建立存储映射:
存储体0:从0开始的每第n地址(即0,n,2n,3n等等)
存储体1:从1开始的每第n地址(即1,1+n,1+2n,1+3n等等)
存储体n-1:从n-1开始的每第n地址(即n-1,n-1+n,n-1+2n等等)
尽管已参照不同的实施例特定的显示和描述了本发明,在不脱离本发明的主旨和范围的情况下,本领域技术人员可以对本发明作各种改进和变化。因此本发明的范围不应当参照上面的描述来确定,而应当参照所附的权利要求连同其所有等价物的范围来确定。

Claims (6)

1.一种在多个处理器之间共享一存储模块的方法,包括:
将所述存储模块分成n个存储体,该n至少是2,其中每个存储体可以由一个或多个处理器在任何一个时刻访问;
将每一个存储体分成x个区块,该x至少是1,其中每个区块可由所述多个处理器的其中一个在任何一个时刻访问;
映射所述存储模块,以将连续地址分配至所述存储器的交替的存储体;
在存储器中存储数据字节,其中所述在连续地址中的数据字节依据存储器的映射存储于交替的存储体中;
确定是否出现了存储器的访问冲突,其中两个或多个处理器在任何一个时刻正在访问相同的区块;
当出现存储器的访问冲突时,通过确定各处理器的访问优先级而对在任何一个时刻访问不同区块的处理器进行同步,其中确定访问优先级包括通过执行一个跳转而对导致存储器冲突的处理器分配较低的访问优先级。
2.如权利要求1所述的方法,其中确定访问优先级的步骤包括比较所述处理器的当前和在前地址的至少最高位,以用于确定一个跳转。
3.如权利要求1所述的方法,其中同步所述处理器的步骤包括当出现存储器的访问冲突时将带有较低优先权的处理器锁定一个或多个周期。
4.一种系统,包括:
多个处理器;
一包括n个存储体的存储模块,该n至少是2,每一个存储体分成x个区块,该x至少是1,其中每个存储体和每个区块可由所述多个处理器的其中一个在任何一个时刻访问;
一存储器映射,用于将连续地址分配至所述存储模块的交替存储体;
存储在存储器中的数据字节,其中所述在连续地址中的数据字节依据所述存储器映射存储于交替的存储体中;
一先权寄存器,用于存储每个处理器的访问优先级;
一流程控制单元,它适于执行前述权利要求的其中任一个的方法,用于同步所述处理器以在任何一个时刻访问不同的区块。
5.如权利要求4所述的系统,其中所述数据字节包括程序指令。
6.如权利要求4所述的系统,其中还包括多个临界存储模块,用于为每个处理器存储多个数据字节,从而减少存储器的访问冲突。
CNB028268180A 2001-11-06 2002-11-06 具有共享存储器的改进结构 Expired - Fee Related CN1328659C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US33322001P 2001-11-06 2001-11-06
US60/333,220 2001-11-06
US10/117,668 2002-04-04
US10/117,668 US20030088744A1 (en) 2001-11-06 2002-04-04 Architecture with shared memory

Publications (2)

Publication Number Publication Date
CN1613060A CN1613060A (zh) 2005-05-04
CN1328659C true CN1328659C (zh) 2007-07-25

Family

ID=26815507

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028268180A Expired - Fee Related CN1328659C (zh) 2001-11-06 2002-11-06 具有共享存储器的改进结构

Country Status (3)

Country Link
US (1) US20030088744A1 (zh)
CN (1) CN1328659C (zh)
WO (1) WO2003041119A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6806883B2 (en) * 2002-03-11 2004-10-19 Sun Microsystems, Inc. System and method for handling display device requests for display data from a frame buffer
DE60316197T2 (de) * 2002-04-04 2008-04-10 Infineon Technologies Ag Verfahren und System zum Teilen eines Speichermoduls
US7346746B2 (en) * 2002-04-26 2008-03-18 Infineon Technologies Aktiengesellschaft High performance architecture with shared memory
JP2004157695A (ja) * 2002-11-06 2004-06-03 Matsushita Electric Ind Co Ltd 情報処理方法および情報処理装置
US7634622B1 (en) * 2005-06-14 2009-12-15 Consentry Networks, Inc. Packet processor that generates packet-start offsets to immediately store incoming streamed packets using parallel, staggered round-robin arbitration to interleaved banks of memory
KR100740635B1 (ko) * 2005-12-26 2007-07-18 엠텍비젼 주식회사 휴대형 단말기 및 휴대형 단말기에서의 공유 메모리 제어방법
US20070156947A1 (en) * 2005-12-29 2007-07-05 Intel Corporation Address translation scheme based on bank address bits for a multi-processor, single channel memory system
KR100684553B1 (ko) * 2006-01-12 2007-02-22 엠텍비젼 주식회사 듀얼 포트 메모리와 결합되는 마이크로 프로세서
US7941604B2 (en) * 2006-02-01 2011-05-10 Infineon Technologies Ag Distributed memory usage for a system having multiple integrated circuits each including processors
KR100748191B1 (ko) * 2006-04-06 2007-08-09 엠텍비젼 주식회사 공유 메모리를 구비한 장치 및 공유 메모리 억세스 상태정보 제공 방법
KR100855701B1 (ko) * 2007-01-26 2008-09-04 엠텍비젼 주식회사 복수의 프로세서 코어가 통합된 칩 및 데이터 처리 방법
US9373362B2 (en) * 2007-08-14 2016-06-21 Dell Products L.P. System and method for implementing a memory defect map
US8914612B2 (en) 2007-10-29 2014-12-16 Conversant Intellectual Property Management Inc. Data processing with time-based memory access
CN103678013A (zh) * 2013-12-18 2014-03-26 哈尔滨工业大学 多核处理器操作系统级进程的冗余检测系统
CN105426324B (zh) * 2014-05-29 2018-04-27 展讯通信(上海)有限公司 终端设备的内存访问控制方法与装置
CN105446935B (zh) * 2014-09-30 2019-07-19 深圳市中兴微电子技术有限公司 共享存储并发访问处理方法及装置
CN105071973B (zh) * 2015-08-28 2018-07-17 迈普通信技术股份有限公司 一种报文接收方法及网络设备
CN112965663A (zh) * 2021-03-05 2021-06-15 上海寒武纪信息科技有限公司 对数据块的存储空间进行复用的方法和相关产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3931613A (en) * 1974-09-25 1976-01-06 Data General Corporation Data processing system
US5857110A (en) * 1991-03-19 1999-01-05 Hitachi, Ltd. Priority control with concurrent switching of priorities of vector processors, for plural priority circuits for memory modules shared by the vector processors

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
US5412788A (en) * 1992-04-16 1995-05-02 Digital Equipment Corporation Memory bank management and arbitration in multiprocessor computer system
US5895496A (en) * 1994-11-18 1999-04-20 Apple Computer, Inc. System for an method of efficiently controlling memory accesses in a multiprocessor computer system
US5875470A (en) * 1995-09-28 1999-02-23 International Business Machines Corporation Multi-port multiple-simultaneous-access DRAM chip
US6081873A (en) * 1997-06-25 2000-06-27 Sun Microsystems, Inc. In-line bank conflict detection and resolution in a multi-ported non-blocking cache
US6370073B2 (en) * 1998-10-01 2002-04-09 Monlithic System Technology, Inc. Single-port multi-bank memory system having read and write buffers and method of operating same
US6622225B1 (en) * 2000-08-31 2003-09-16 Hewlett-Packard Development Company, L.P. System for minimizing memory bank conflicts in a computer system
US20020169935A1 (en) * 2001-05-10 2002-11-14 Krick Robert F. System of and method for memory arbitration using multiple queues

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3931613A (en) * 1974-09-25 1976-01-06 Data General Corporation Data processing system
US5857110A (en) * 1991-03-19 1999-01-05 Hitachi, Ltd. Priority control with concurrent switching of priorities of vector processors, for plural priority circuits for memory modules shared by the vector processors

Also Published As

Publication number Publication date
WO2003041119A2 (en) 2003-05-15
US20030088744A1 (en) 2003-05-08
CN1613060A (zh) 2005-05-04
WO2003041119A3 (en) 2004-01-29

Similar Documents

Publication Publication Date Title
CN1328659C (zh) 具有共享存储器的改进结构
US6944731B2 (en) Dynamic random access memory system with bank conflict avoidance feature
AU598857B2 (en) Move-out queue buffer
US6317819B1 (en) Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
US6772268B1 (en) Centralized look up engine architecture and interface
US20080147714A1 (en) Efficient bloom filter
CN102834813B (zh) 用于多通道高速缓存的更新处理机
CN1328660C (zh) 具有共享存储器的改进结构
CN104699631A (zh) Gpdsp中多层次协同与共享的存储装置和访存方法
US20030121030A1 (en) Method for implementing dual link list structure to enable fast link-list pointer updates
CN103365795A (zh) 分布式重排序缓冲器
JPH10214223A (ja) 情報処理システム
US6845429B2 (en) Multi-port cache memory
EP0570164B1 (en) Interleaved memory system
CN1221919A (zh) 在处理器单元之间交换数据的系统
US6473821B1 (en) Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
US6094710A (en) Method and system for increasing system memory bandwidth within a symmetric multiprocessor data-processing system
US10289331B2 (en) Acceleration and dynamic allocation of random data bandwidth in multi-core processors
EP1588276B1 (en) Processor array
US5889969A (en) Logical bus structure including plural physical busses for a multiprocessor system with a multi-level cache memory structure
US7346746B2 (en) High performance architecture with shared memory
US20050071574A1 (en) Architecture with shared memory
JPH03238539A (ja) メモリアクセス制御装置
US20020056032A1 (en) Pipelined multi-access memory apparatus and method
CN1174317C (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: 20070725

Termination date: 20091207