CN1342287A - 控制计算机系统内自适应多路复用地址和数据总线的方法与设备 - Google Patents

控制计算机系统内自适应多路复用地址和数据总线的方法与设备 Download PDF

Info

Publication number
CN1342287A
CN1342287A CN99812600A CN99812600A CN1342287A CN 1342287 A CN1342287 A CN 1342287A CN 99812600 A CN99812600 A CN 99812600A CN 99812600 A CN99812600 A CN 99812600A CN 1342287 A CN1342287 A CN 1342287A
Authority
CN
China
Prior art keywords
bus
request
data
arbitration
multiplex
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.)
Granted
Application number
CN99812600A
Other languages
English (en)
Other versions
CN1265301C (zh
Inventor
T·库尔茨
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1342287A publication Critical patent/CN1342287A/zh
Application granted granted Critical
Publication of CN1265301C publication Critical patent/CN1265301C/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

一种用于控制计算机系统内的128位多路复用外部总线的设备,包括按外部总线上未完成的数据和/或监测事务处理的数量在竞争的地址请求与数据请求之间判优的判优逻辑。根据该判优的结果,选择逻辑把多路复用总线授权给地址请求或数据请求。判优逻辑在进行判优时可以将未完成的数据事务处理的数量与预定的数据阀值数作比较,该数据阀值数能被应用程序或操作系统动态地改变,以便在预定的条件下优化外部总线的通过量。

Description

控制计算机系统内自适应 多路复用地址和数据总线的方法与设备
本发明总体涉及计算机系统中的数据传输领域,更具体来说,涉及为提高数据通过量而控制计算机系统内的多路复用地址和数据总线的方法。
计算机系统内器件之间的通信一般是用一个或多个互连这类器件的总线进行的。这些总线可以是连接两个器件的专用总线,或者由许多部件和器件(即总线代理)多路复用的非专用总线。此外,计算机系统内的总线可以是专用于传输特定类型的信息的。例如,由设在美国加州Santa Clara的英特尔公司开发的x86微处理器体系结构,包含一个三总线体系,有地址、数据和控制总线,分别用于传输地址、数据和控制信号。
在采用先进体系结构和处理器(如Pentium Pro或Pentium II处理器)的计算机系统中,总线事务处理是按流水线方式进行的。具体来说,下一个存储器存取可以在上一个事务处理请求被发出之后开始,并且不要求在一个总线事务处理的所有成分或阶段都完成之后才能开始另一个总线事务处理。于是,任何时刻都可能有来自众多总线代理的请求在等待处理。总线事务处理的流水线因分离的数据总线和地址总线而变得更为简便。在地址总线上发送一个请求的地址的同时,可以在数据总线上返回与上一次在该地址总线上发出的地址相对应的数据(或信号)。
为了便于提高数据通过量,计算机系统可以推行突发式(burst)数据传输,其中,在地址总线上发出一个地址,从该编址位置以及-例如由英特尔突发式顺序方案(burst order scheme)所定义的-一些紧接其后的位置返回数据。例如,在突发式高速缓存传输期间,可以根据放置在地址总线上的一个地址,将高速缓冲存储器中的一整行数据(例如32个字节)放置在数据总线上。在许多计算机系统中,这种突发式高速缓存传输构成计算机系统内总线上的相当大部分的活动。在这些情况中,应当明白,相对于数据总线来说,地址总线使用率不足。
一种控制计算机系统内多路复用地址和数据总线的方法与设备包括在竞争使用多路复用总线的地址请求与数据请求之间判优的步骤。这个判优是按预定标准进行的。然后按判优结果将多路复用总线授权给地址请求或数据请求。
根据各附图和后文中的详细说明,本发明的其它特点将显而易见。
本发明是通过举例作说明的,不受附图中表示的限制,各附图中的同样的标注指示类似的成分。附图简介:
图1A和1B是能在其中实现本发明实施例的一个计算机系统的框图;
图2是表示一个连接一个处理器和另外一个外部总线代理的外部总线的框图;
图3是表示在一个外部总线事务处理中可能包含的六个阶段的时序图;
图4是表示示例性外部总线上一个背对背读行事务处理(back-to-back read line transaction)的信号转换的时序图;
图5是表示按照本发明一个实施例的一个自适应的128位多路复用总线与也是按照本发明一个实施例的、各含外部总线逻辑的一个处理器和一个外部总线相连的框图;
图6是表示可以在图5中所示外部总线逻辑中体现的、按照本发明一个实施例的电路的框图;
图7是表示按照本发明一个实施例的、在外部总线内的信号和在多路复用总线上的信号的转换的时序图;
图8是表示按照本发明一个实施例的、控制计算机系统内多路复用地址和数据总线的方法的流程图;
图9A-9C是表示可以在图8中所示方法中使用的、按照本发明的相应实施例的三个示例性判优方案的流程图。
现在来说明一种用于控制计算机系统内多路复用地址和数据总线的方法和设备。在以下说明中,为解释起见,陈述了许多具体细节,以利透彻地理解本发明。不过显然,对于本领域的熟练人员来说,即使没有这些具体细节也可以实践本发明。
计算机系统概述
图1A和1B是一个能在其中实现本发明一个实施例的计算机系统10的框图。计算机系统10包括一个或多个处理器12,每个处理器可以是个复杂指令集计算(CISC)微处理器,精简指令集计算(RISC)微处理器,甚长指令字(VILW)微处理器或任何其它处理器器件。在本发明的一个实施例中,每个处理器12可以是设在美国加州SantaClara的英特尔公司制造的Pentium Pro或Pentium II处理器。每个处理器12通过各自的外部总线接口15连接到一个外部总线14(也称“前面总线(FSB)”)。图中显示,另外一个包含外部总线接口19的代理17与外部总线14相连。
控制器16也通过该控制器16内含有的外部总线接口18与外部总线14相连。外部总线14与外部总线接口15和18可以按一个第一频率(即66或100Mhz)操作,并由此构成一个独特时钟域(clock domain)。图中显示,控制器16进一步包括一个主存储器接口20,控制器16由其与主存储器22相连。主存储器22和主存储器接口22可以包含一个独特时钟域,或者可以被集成在外部总线14和外部总线接口18的时钟域内。
控制器16进一步包括一个外围部件互连(PCI)接口24(如由1995年6月1日公布的PCI局部总线规范修订版2.1(PCI Local BusSpecification Revision 2.1)所定义的),控制器16由其与PCI总线26相连。在一个实施例中,PCI接口24和PCI总线26按33MHz的频率操作,并相应地构成另外一个独特时钟域。一个在示意性实施例中包含加速图形端口(AGP)接口18的专用图形接口,将控制器16连接到一个在示意性实施例中包含AGP总线30的图形总线。AGP总线30专用于在控制器16与专用图形处理器32之间的地址和数据信息的传输。AGP接口28按1996年8月10日公布的AGP接口规范修订版1.0工作。图形处理器32可以包含Intel i740图形加速器芯片。图形处理器32连接到专用的本地图形存储器34,并连接到一个可以包含计算机监视器或电视机的显示单元36。在一个示意性实施例中,AGP接口28和AGP总线30按66MHz的频率操作,并相应地构成另外一个独特时钟域。
控制器16的接口18、20、24和28可以各自驻留在不同的独特时钟域中。为了便于在各种接口在其内驻留的各时钟域之间的信号的传输,控制器16包含传输逻辑38。传输逻辑38包含用于同步对外部接口和AGP接口的时钟域计时的时钟信号的电路。
计算机系统10进一步包括一个方便在PCI总线26与老总线42之间的通信的桥接器40。老总线42可以是一个如ISA总线体系结构P996(ISA Bus Specification P996)所定义的工业标准体系结构(ISA-Industry Standard Architecture)总线。应当明白,老总线42或者也可以是诸如扩展工业标准体系结构(EISA-Extend ISA)总线或微通道体系结构(MCA-Micro Channel Architecture)总线的任何总线。图中显示,桥接器40进一步由通用串行总线(USB)44连接到USB器件46-后面这两个都符合1996年1月15日公布的USB规范修订版1.0。图中显示,桥接器40将一个集成器件电子(IDE-Integrated Device Electronics)器件48(通常是以磁盘驱动器为形式的海量存储器件)连接到计算机系统10。图中显示,PCI器件50和ISA器件52与相应的PCI总线26和ISA总线42相连。应当明白,可以将任意数量的PCI器件50和ISA器件52连接到相关的总线26和42,可以包含包括存储器件、输入器件、音频器件、显示器件或网络器件在内的许多外围设备的任何一个。
外部总线协议
图2的框图简单地表示外部总线14将处理器12连接到另外一个外部总线代理21,后者可以是另外一个处理器或者任何其它与外部总线14相连的器件。外部总线14符合Pentium Pro或Pentium II处理器外部总线规范,在这种情况下,外部总线14包含36位地址总线14a、36位数据总线16b和控制信号14c。处理器12和外部总线代理21各自包含外部总线逻辑(EBL)60-后者在(Fisch等人的)美国专利5,535,345号中有进一步的说明,这里引用该专利作为参考。处理器12和外部总线代理21中包含的外部总线逻辑60,提供相应器件与外部总线之间的物理和逻辑接口,以便能在外部总线14上进行外部总线事务处理。就本说明书而言,“事务处理”一词被定义为是一个与一个总线访问请求有关的总线活动。事务处理可以始于总线判优、断言(assertion)一个信号ADS#和传送一个事务处理地址。一个如英特尔体系结构(IA-Intel Architecture)规范所定义的事务处理可包括多达6个阶段,每个阶段用一个特定的信号集合来传送特定类型的信息。图3是两个事务处理(即事务处理1和事务处理2)的6个事务处理阶段的时序图。具体来说,每个事务处理包含下述阶段:
1.判优阶段72;
2.请求阶段74;
3.错误阶段76;
4.监测(snoop)阶段78;
5.响应阶段80;和
6.数据传输阶段82。
据图3显然可见,各事务处理是流水线化的,各事务处理的每一个的各种阶段重叠。当某请求代理不拥有总线时,事务处理始于判优阶段72-在判优阶段中,该请求代理(即处理器12或外部总线代理21)变成总线的所有者。然后,该事务处理进入请求阶段74,总线所有者在总线上传送请求和地址信息。当然,上述各阶段只不过是示意性的。任何一个阶段(例如错误阶段761)都可能在一个事务处理中被省略。
现在特别参看图4,该图表示的时序图90,显示了示例性外部总线14内一个全速背对背读行事务处理的信号转换。在时序图90中注解的信号包括时钟(CLK)信号92、地址选通(ADS#)信号94、请求信号96、命中修改的高速缓存行(HIT#)信号98、目标就绪(TRDY#)信号100、数据总线忙(DBSY#)信号102、数据(D[63∶0]#)信号104、数据就绪(DRDY#)信号和响应状态(RS[2∶0]#)信号108。
图3中所示的请求阶段74的持续时间是两个时钟周期-如图4中请求信号96的转换所示的那样。在请求阶段74的第一个时钟(例如T1)内,ADS#信号94降低,事务处理地址信息(即请求信号96)被放到地址总线14a上。这被表示为请求阶段A(REQA)。在第二个时钟(例如T2)内,另外的信息被放到地址总线14a上。这种另外的信息可包括字节循序信息、延迟ID信息和关于有关事务处理的长度的信息。这被表示为请求阶段B(REQB)。
错误阶段76指出任何由该请求引发的奇偶校验错误。每一个因为在错误阶段76中指出有错误而不被取消的事务处理都包含有关监测阶段78,监测阶段在请求阶段74开始后过4个或更多的时钟时发生。在监测阶段78内生成的结果被报告回外部总线逻辑60,该结果指出,为该事务处理发送的地址,定位的是任何总线代理高速缓存中的一个有效的高速缓存行还是一个修改过的(脏)行。监测阶段78也指出,某事务处理有可能要按以前发出的事务处理的顺序完成,要被取消后以后再试,还是被延迟-有可能不按顺序地被完成(如果所连接的处理器允许在总线上不按顺序地完成事务处理请求)。HIT#降低时指出示事务处理定位的总线高速缓存中的修改过的高速缓存行。
在响应阶段80,外部总线代理向总线逻辑60报告信息,指出事务处理是已经成功还是失败,是否能保证事务处理按顺序完成,事务处理的完成是否必须暂时延迟,事务处理是否将要重试,事务处理是否含有数据传输阶段82。如果事务处理不含数据传输阶段82(即,请求代理有要传输的写数据或者已经请求读数据),事务处理进入数据传输阶段82。
再次参看图4,在全速背对背读行事务处理期间,在每个四个连续时钟的持续时间内(即T7-T11),传输一块(即64位)数据。
由图4清楚地可见,在全速读行事务处理期间,一个两时钟的请求阶段74生成一个四时钟的数据传输阶段82,这在计算机系统内是经常发生的。所以,在请求阶段与请求阶段之间,地址总线利用率不足,出现带宽浪费,正如图4中110处所示的那样。
复用地址和数据总线
参看图5,图中显示,一对以处理器12和外部总线代理21为形式的外部总线代理,通过按照本发明一个实施例构造的一个多路复用地址和数据总线120相连。多路复用总线120是个128位的总线。不过,本发明的实质同样适合其它大小的总线,包括32位、64位和256位总线。处理器12和外部总线代理21各包含按照本发明一个实施例的外部总线逻辑(EBL)60,它们方便由相应的处理器12和外部总线代理21在多路复用总线120上进行通信。本发明提出将包括一个地址总线、一个数据总线和控制信号的外部总线(如图2中所示的总线14),替换成时分多路复用总线(如图5中所示的多路复用总线120-其中在任何给定时刻,多路复用总线120的全部128位基本上专用于某特定功能)。相应地,多路复用总线120的有些或全部位可以在不同时间传输不同信息类型(即地址、数据或控制信号),这与总线14不同-总线14的每个位专用于传输预定的数据类型。具体来说,本发明通过对多路复用总线120进行时分多路转换,使其以一种自适应的或智能的方式传输地址信息或数据信息,寻求解决如上结合图4所述的专用地址总线14a的利用率不足的问题。
图6所示框图所表示的电路,按照本发明一个实施例,可以体现在外部总线逻辑60中,用于以减少总线120的带宽的利用率不足的这样一种方式,时分多路转换多路复用总线120的功能。外部总线逻辑60可以被集成在任何与外部总线相连的总线代理(例如处理器、总线桥接器、控制器或任何其它外部总线代理)中。图中显示,外部总线逻辑60包含一对2对1的多路转换器(MUX)140a和140b。MUX 140a被连接得分别接收地址输出142a和数据输出144a。地址输出144a和数据输出142a可以使用多路复用总线120的整个带宽,由此-按照本发明一个实施例-占用128位。于是,如图4中所示的那样的原来需要一个两时钟的请求阶段74(即REQA和REQB)的包含事务处理地址在内的请求信号,可以在一个时钟周期内从外部总线逻辑60发送,因为这些请求信号不再限制在一个地址总线(如图2中所示的宽度只有32位的地址总线14a)。
类似地,在数据传输阶段82期间,外部总线逻辑60不再局限于-如图4中104处所示的那样-在64位数据总线14b上在4个连续时钟的持续时间内传输4个64位的数据块。具体来说,按照本发明,外部总线逻辑60可以在两个连续时钟周期内传送这4块数据。按照类似的方式,MUX 140b允许外部总线逻辑60接收用多路复用总线120的整个带宽传输的地址输入144b和数据输入142b。
通过断言(assertion)或去断言(deassertion)一个以方向(ADIR#)信号146为形式的选择信号,能控制MUX 140a在请求输出142a与数据输出144a之间进行选择。方向(ADIR#)信号146被包含判优逻辑150的选择逻辑148断言或去断言。选择逻辑148被连接得既能接收总线请求(BREQ#)信号152又能接收早期数据就绪(EARLY_READY#)信号154,它们的断言被选择逻辑148分别解释为地址总线请求和数据总线请求。
BREQ#信号152是一个对称代理总线主信号,对称外部总线代理据其对外部总线进行判优。具体来说,在包含4个外部总线代理的对称计算机系统中,一个专用的总线代理在专用输出线上断言一个BREQ#信号152,并接收来自其它三个代理的BREQ#信号作为输入。对称代理支持以循环机制为基础的总线判优。这四个对称总线代理用一个循环式ID来跟踪在下一个判优事件时优先级最低的代理。当其中一个对称总线代理在空闲总线上断言其BREQ#信号152时,或者当当前总线所有者为把总线所有权释放给新的总线所有者而去断言其BREQ#信号152时,发生一个判优事件。如图5中所示的那样由选择逻辑148接收的BREQ#信号152,是一个其中装有相关的外部总线逻辑60的总线代理的输出BREQ#信号152。相应地,BREQ#信号152的断言使选择逻辑148不仅能确定相关的总线请求控制外部多路复用总线120,还能确定在事务处理的判优阶段72之后,需要有一个请求阶段74(在该阶段中,将把地址信息放置到外部多路复用总线120上)。按照本发明一个实施例,BREQ#信号152的断言被选择逻辑148解释为一个地址总线访问请求。
EARLY_READY#信号154是一个可以被其中装有外部总线逻辑60的总线代理断言的早期数据就绪信号,表示该总线代理希望在外部多路复用总线120上放置有效数据。EARLY_READY#信号154的断言,表示总线代理希望进入事务处理的数据传输阶段82。按照本发明一个实施例,EARLY_READY#信号154的断言被选择逻辑148解释为一个数据总线访问请求。
图中显示,MUX 140a和140b每个也有一个使能输入,可以通过该输入或者使能或者禁止相应的MUX。图中显示,MUX 140a的“输出”是通过BREQ#信号152或EARLY_READY#信号154的断言而被选通的,这些断言表示包含外部总线逻辑60的器件希望发出一个数据输出或请求输出。另一方面,MUX 140b的“输入”是通过与能使用多路复用总线120的另一个器件相关联的BREQ#信号153或EARLY_READY#信号155的断言而被选通的,信号153或155的断言表示这样的另一个器件希望发出一个可能含有包含一个对包含外部总线逻辑60的器件的输入的请求输出或数据输出。
通过监视信号152和154,选择逻辑148于是能检测与外部总线逻辑60相关联的总线代理何时要求访问多路复用总线120,以及该访问的目的是要执行事务处理的一个请求阶段还是数据传输阶段(即服务地址访问请求还是数据访问请求)。
如果由BREQ#信号152或EARLY_READY#信号154的断言而检测到一个服务地址访问请求或者数据访问请求,并且没有产生在这样一个访问请求与一个相反类型的访问请求之间的竞争(即在地址总线请求与数据总线请求之间的竞争),选择逻辑148就把多路复用总线120授权给相关的访问请求。具体来说,选择逻辑148根据BREQ#信号152的断言,通过去断言ADIR#信号146(即通过驱动ADIR#信号146变成高电平),把多路复用总线120授权给请求输出142a和请求输入142b。或者,选择逻辑148根据EARLY_READY#信号154的断言,通过断言ADIR#信号146(即通过驱使ADIR#信号146变成低电平),把多路复用总线120授权给数据输出144a或数据输入144b。
另一方面,如果在地址总线访问请求与数据总线访问请求之间产生竞争,判优逻辑150就在这些竞争的总线访问请求之间判优。例如当BREQ#信号152和EARLY_READY#信号154同时被断言时,或者当有一种类型的未完成的总线访问请求,而在服务该正在等待处理的请求之前,收到一个相反类型的总线访问请求时,发生地址总线访问请求与数据总线访问请求之间的竞争。如果在发生竞争时一个(无论数据还是地址)总线事务处理正在进行。判优逻辑应当先允许该事务处理完成再进行判优处理。
图中显示,判优逻辑150连接到三个寄存器,即阀值寄存器156、请求计数寄存器158和监测计数寄存器160。请求计数寄存器158保存一个内部请求计数(例如由IA体系结构处理器所保存的“RCNT”值),以跟踪在多路复用总线120上未完成的事务处理的数量。当一个在任何总线代理起源的新事务处理进入请求阶段74时,内部请求计数被递增1。当一个未完成的事务处理完成响应阶段80时,或者在错误阶段76中被中断时,内部请求计数被递减1。在一个实施例中,内部请求计数在复位和总线初始化期间也被初始化为0,其值的范围可以是0至7,7是多路复用总线120上未完成的事务处理的最大数。
监测计数寄存器160保存一个内部监测计数(例如由IA体系结构处理器所保存的“SCNT”值),以跟踪在多路复用总线120上未完成的、仍然需要完成监测阶段78的事务处理的数量。内部监测计数在一个新的事务处理进入请求阶段74时被递增1,在一个未完成的事务处理完成监测阶段78时,或者在错误阶段76中被中断时,被递减1。在一个实施例中,内部监测计数在复位和总线初始化期间也被初始化为0,其值的范围可以是0至7。
阀值寄存器156存储一个或多个阀值,它们被判优逻辑150与存储在请求计数寄存器158和监测计数寄存器160中存储的内部请求计数值和内部监测计数值作比较,以便在竞争的地址总线访问请求与数据总线访问请求之间进行判优。在本发明一个实施例中,判优逻辑150可以将请求计数值(即多路复用总线上未完成的数据事务处理的数量)与阀值寄存器156中保存的数据阀值数比较。如果多路复用总线上未完成的数据事务处理的数量超过数据阀值数,则一个数据总线访问请求赢得判优事件。在本发明另外一个实施例中,判优逻辑150可以将监测计数寄存器160中保存的内部监测计数(即多路复用总线120上未完成的监测事务处理的数量)与阀值寄存器156中保存的监测阀值数比较。如果未完成的监测事务处理的数量超过监测阀值数,则一个数据总线访问请求再次赢得判优事件。非常容易理解的是,可以用许多其它的采用内部请求计数和内部监测计数的各种变换和组合的判优方案来在竞争的地址总线访问请求与数据总线访问请求之间判优。
尽管图中显示的寄存器156、158和160的位置是与判优逻辑分离的,这些寄存器中任何一个或全部都可以安装在判优逻辑150内。
阀值寄存器156进一步是可编程的,使得其中存储的各阀值(例如数据阀值数或监测阀值数)是动态可编程的。例如,阀值寄存器156内保存的阀值,可以由外部总线逻辑60能在其中工作的计算机系统中的操作系统或者应用程序来设置。例如,某应用程序可能希望对数据总线访问请求给予优先,在这种情况下,应用程序可以访问阀值寄存器156,在其中存储一个低的数据阀值数。另外,在寄存器156中存储的各阀值数,可以是在应用程序的执行期间能动态改变的或可编程的。例如,某应用程序可以根据应用程序在执行期间所监视的各种其它参数来改变存储在寄存器156内的一个或多个阀值。
在另一种形式的实施例中,判优逻辑150可以采用一种“静态”判优方案,其中,在执行中对一种请求类型的待处理访问请求(即,或者待处理的数据请求或地址请求)总是比另一个访问类型优先授予访问权。在这种情况下,请求计数值和监测计数值就被忽略,在判优过程中不起作用。
在本发明另外一个实施例中,外部总线逻辑60通过允许对选择逻辑148的有选择的禁止而便于全部与老总线(例如Pentium Pro总线)的全部兼容,其中对总线120的访问,不能通过MUX 140a和140b,而是通过在Pentium Pro内采用的接口。
图7是表示按照本发明一个实施例,在多处理器系统中的如图5中所示的外部总线逻辑和多路复用总线内的信号的转换的时序图。具体来说,图7中表示了一个外部总线时钟信号92,方向信号(ADIR)信号146、地址系统(ADS#)信号94、多路复用总线信号170和内部请求和监测信号172。
如174处所示,ADS#信号94(如图3中所示的那样的)断言定义一个事务处理的请求阶段74的开始,据此,外部总线逻辑60能同时地在多路复用总线120上发出如176处所示的两“组”请求信号(即REQAB1)。外部总线逻辑60能同时发出两“组”请求信号是可能的,因为多路复用总线120的整个128位带宽可供请求信号在请求阶段74期间使用。另外要注意到,在请求阶段74期间,ADIR#信号146不是断言的(即是高电平的)。回头参看图6将明白,请求输出142a被相应地由MUX140a选择,供在多路复用总线120上传送。在时钟周期T4的开始,选择逻辑148断言ADIR#信号146(如178处所示),该信号的断言表示数据传输阶段82的开始。在这个时刻,ADS#信号94被相应地去断言。再次参看图6,ADIR#信号146的断言导致MUX 140选择数据输入144,供在多路复用总线120上传送。
在多路复用总线120上发出(如176处所示的)两“组”请求信号(即REQAB1)后,可以在半个时钟内在多路复用总线120上放置一个以第一个128位的数据块为形式的数据响应(不必是响应176处所示的请求的),如180处所示。在182处,类似地在多路复用总线120上传送第二个128位的数据块。在180和182处所示的数据响应可以是因响应由一个与多路复用总线120相连的第一器件发出的一个在先事务处理而发出的。在184和186处,响应由一个与多路复用总线120上相连的第二器件(例如处理器)发出的一个在先事务处理,在多路复用总线120上传送另外两个以128位的数据块为形式的数据响应。可以在以后某个时刻以类似的方式在多路复用总线120上传送两个包含响应176处所示的请求的的数据的128位数据块(未予示出)。在182-186处所示的数据响应,响应的是由与多路复用总线120相连的一个或两个不同的器件在多路复用总线120上放置的类似于请求176的较早的请求(未予示出)。
进一步注意到,图中显示,“RCNT”内部请求计数值在发出176处的请求之后是“2”,这表示当前在多路复用总线120上两个事务处理是未完成的。
由于多路复用总线120的整个128位带宽可供在请求阶段74期间和在数据传输阶段82期间使用,本发明使请求阶段74的时间能被缩短到一个时钟周期,而不是由Pentium Pro微处理器所采用的外部总线协议中的两个时钟周期。数据传输阶段82被缩短成两个连续的时钟周期,而不是Pentium Pro外部总线协议内的四个连续时钟周期。尽管在一个总线上时分多路复用请求阶段和数据阶段减少了Pentium Pro微处理器所采用的外部总线的并行性(和流水线深度),相信本发明能导致总线通过量的增加-在全速事务处理主导的体系结构中尤其如此。
多路复用总线120可以通过把多路复用总线的线路[A3…A36]指定到线路[AD0…AD31]而实现与Pentium Pro处理器的外部总线协议的兼容。另外,可以将线路[REQ0…4]指定到线路[AD32…AD36],并可以将线路[D0…D64]指定到线路[AD64…AD127]。在这种情形中,MUX 140将只接收来自请求输出142a的输入,而数据输出144a则要被禁止。另外,ADIR#信号146要被禁止,地址按32位的双字发出。所以,常规的Pentium Pro事务处理是可以在多路复用总线120上发出的。这种兼容性必须要进一步在通电/复位时被配置,因为关于多路复用总线120的配置的芯片集和外部通知必须要发生。
图8是表示按照本发明一个实施例的一种控制计算机系统内多路复用地址和数据总线120的方法179的流程图。方法179在181开始,前进到步骤183,接收到一个多路复用总线访问请求(即地址总线访问请求或数据总线访问请求)。在本发明一个实施例中,总线访问请求的接收是由选择逻辑148通过监测到DREQ#信号152和EARLY_DRDY信号154之一的断言而确定的。在判断框158,判断是否存在在步骤183所接收的总线访问请求与相反类型的另外任何待处理的总线访问请求或同时接收到的总线访问请求之间的竞争。具体来说,判优逻辑150按若干方案中的一种方案来决定竞争的地址总线访问请求和数据总线访问请求中的哪个要被赋予优先权。在步骤192,将多路复用总线120的使用权授予占优势的总线访问请求。具体来说,选择逻辑148可以按判优方案的结果来断言或去断言ADIR#信号146。方法179然后在步骤194停止。
应当注意,方法179在运行的数据传输或地址传输期间是不执行的,ADIR#信号在数据传输或地址传输期间是不能被断言或去断言的。方法179最好在“请求”活动(例如请求阶段74)期间执行,持续时间可能只有一个时钟周期,就能确定总线120在下一个时钟周期期间的所有者。
图9A-9C是表示可以在图8中所示方法179中使用的三例判优方案的流程图。当然,静态判优也是可以采用的。首先参看图9A,判优方案190始于步骤200,然后前进到步骤202,对外部多路复用总线120上未完成的数据事务处理的数量进行确定。在一个实施例中,判优逻辑150通过读取请求计数寄存器158内保存的内部请求计数来确定未完成的数据事务处理的数量。
在步骤204,确定一个数据阀值数。在一个实施例中,可以读取阀值寄存器156内保存的数据阀值数。如上所述,这个数据阀值数是可以-例如由计算机系统内的操作系统或应用程序-动态改变的。
在判断框206,判优逻辑150判断未完成的事务处理的数量是否超过数据阀值数。如果是,这表示已经出现数据事务处理的一个备份(backup),现在应当对数据事务处理给予优先,以便清除这个备份。于是,在这种情况下,判优方案190前进到步骤208,将一个竞争的数据总线访问请求指定为占优势的数据访问请求。该方法在步骤210结束。
另一方面,如果在判断框206发现的结果是未完成的数据事务处理数(例如RCNT)不超过数据阀值数,判优方案190就前进到步骤212,将一个竞争的地址总线访问请求指定为占优势的数据访问请求。判优方案190然后从步骤212前进到步骤210。
图9B表示另一种形式的判优方案9A,它与图9C所示的方案基本相当,但不同的是,要确定未完成的监测事务处理的数量并与一个监测阀值数作比较,以确定将一对竞争的地址总线访问请求和数据总线访问请求中的哪一个指定为占优势的请求。
图9C表示判优方案190的另外一个实施例,它基本包含图9A中和图9B中所示的判优方案的组合。判优方案190从步骤240前进到步骤242,确定多路复用总线上未完成的数据事务处理和未完成的监测事务处理。然后在步骤244,确定数据阀值数和监测阀值数。在判断框246,首先判断未完成的数据事务处理数是否超过数据阀值数。如果是,该方法前进到步骤248,将一个竞争的数据总线访问请求指定为占优势的请求。
另一方面,如果在判断框246确定未完成的数据事务处理数不超过数据阀值数,判优方案前进到判断框252。判断未完成的监测事务处理数是否超过监测事务处理阀值数。如果是,判优方案190再次前进到步骤248,将一个竞争的数据总线访问请求指定为占优势的请求。另一方面,未完成的监测事务处理数不超过监测阀值数,判优方案190就从判断框252前进到步骤254,将一个竞争的地址总线访问请求指定为占优势的请求。判优方案然后在步骤250结束。
图9C中所示的判优方案190允许例如由应用程序对判优方案进行更高程度的调整和定制,以便为相关应用程序优化外部多路复用总线120的输出。对判优方案190的“调整”是通过设置为相关应用程序而优化过的数据和/或监测阀值数而进行的。
本发明推广到的另外的判优方案中,作为判优方案的预置结果而将数据请求或地址请求之一视为占优势的请求。在这些方案中,其它因素(例如未完成的总线事务处理数)不予考虑。
判优逻辑150进一步可以能执行以上讨论的判优方案的任何一个或多个,并且可编程的,以便能在可以执行的若干判优方案之间进行选择。对判优逻辑150所采用的判优方案的选择,可以由计算机系统内驻留的操作系统或应用程序来作出。
尽管是按针对外部总线进行实现的形式对本发明作描述的,本发明的原理也可以被应用于处理器与高速缓冲存储器之间的后面总线(back-side bus)。
这样,已经说明了一种控制计算机系统内多路复用地址和数据总线的方法与设备。尽管本发明是参照具体实施例作说明的,显然,在不偏离本发明更广义的精神和范围的情况下可以作出各种修改和改变。所以,说明书和附图应被视为是解释性的而不是限制性的。

Claims (36)

1.一种操作计算机系统内多路复用地址和数据总线的方法,该方法包含以下步骤:
按照预定标准在竞争对多路复用总线的使用的地址请求与数据请求之间判优;和
按照判优的结果把多路复用总线授权给地址请求或数据请求。
2.权利要求1的方法,其中,判优的步骤包含确定多路复用总线上未完成的数据事务处理的数目是否超过一个预定的阀值的步骤。
3.权利要求1的方法,其中,判优的步骤包含确定多路复用总线上未完成的监测事务处理的数目是否超过一个预定的阀值的步骤。
4.权利要求1的方法,其中,判优的步骤包含在判优步骤中不考虑其它因素就认为数据请求是占优势的请求。
5.权利要求1的方法,其中,判优的步骤包含在判优步骤中不考虑其它因素就认为地址请求是占优势的请求。
6.权利要求1的方法,包括修改预定标准的步骤。
7.权利要求6的方法,其中,预定标准被计算机系统内的操作系统修改。
8.权利要求6的方法,其中,预定标准被计算机系统内执行的应用程序修改。
9.权利要求6的方法,包含修改一个在判优步骤中将多路复用总线上的未完成的事务处理的数量与其作比较的阀值数的步骤。
10.一种与计算机系统内的多路复用总线相连的总线接口,该总线接口包含:
判优逻辑,用于按照预定标准在竞争对多路复用总线的使用的地址请求与数据请求之间判优;和
选择逻辑,用于按判优结果把多路复用总线授权给地址请求或数据请求。
11.权利要求10的总线接口,其中,判优逻辑能被配置得按照多个判优方案中的任何一个在地址请求与数据请求之间判优。
12.权利要求11的总线接口,其中,判优逻辑能被计算机系统的操作系统和/或应用程序设置。
13.权利要求10的总线接口,其中,判优逻辑要确定多路复用总线上未完成的数据事务处理的数目和一个数据阀值数,并且要确定该多路复用总线上未完成的数据事务处理数是否超过该数据阀值数。
14.权利要求10的总线接口,其中,判优逻辑要确定多路复用总线上未完成的监测事务处理的数目和一个监测阀值数,并且要确定该多路复用总线上未完成的监测事务处理数是否超过该监测阀值数。
15.权利要求10的总线接口,其中,判优逻辑要在判优步骤中不考虑其它因素就认为数据请求是占优势的请求。
16.权利要求10的总线接口,其中,判优逻辑要在判优步骤中不考虑其它因素就认为地址请求是占优势的请求。
17.权利要求10的总线接口,包括一个存储一个能被判优逻辑用来在地址请求与数据请求之间判优的阀值数的寄存器,该阀值数是能动态改变的。
18.一种与计算机系统内的多路复用总线相连的总线代理,该总线代理包括:
判优逻辑,用于按预定标准在竞争对多路复用总线的使用的地址请求与数据请求之间判优;和
选择逻辑,用于按判优结果把多路复用总线授予地址请求或数据请求。
19.权利要求18的总线代理,其中,判优逻辑要确定多路复用总线上未完成的数据事务处理的数量是否超过预定的数据阀值数。
20.权利要求18的总线代理,其中,判优逻辑要确定多路复用总线上未完成的监测事务处理的数量是否超过预定的监测阀值数。
21.权利要求18的总线代理,包括一个存储一个能被判优逻辑用来在地址请求与数据请求之间判优的阀值数的第一寄存器,该阀值数是能动态改变的。
22.权利要求18的总线代理,包括一个存储多路复用总线上未完成的事务处理的计数的第二寄存器。
23.权利要求22的总线代理,其中,第二寄存器要存储多路复用总线上未完成的数据事务处理的计数。
24.权利要求22的总线代理,其中,第二寄存器要存储多路复用总线上未完成的监测事务处理的计数。
25.权利要求18的总线代理,包含一个处理器。
26.权利要求18的总线代理,包含一个总线桥接器。
27.一种与计算机系统内的多路复用总线相连的总线接口,该总线接口包括:
判优装置,用于按预定标准在竞争对多路复用总线的使用的第一类请求与第二类请求之间判优;和
选择逻辑,用于按判优结果把多路复用总线授予第一类请求或第二类请求。
28.一种计算机系统,包括:
一个总线;
一个与总线相连的总线代理,总线代理包括:
判优逻辑,用于按预定标准在竞争对多路复用总线的使用的第一类请求与第二类请求之间判优,其中第一类请求和第二类请求是从总线代理发出的并且是不同的请求类型;和
选择逻辑,用于按判优结果把总线授予第一类请求或第二类请求。
29.权利要求28的计算机系统,其中,判优逻辑要确定多路复用总线上未完成的事务处理的数量是否超过预定的阀值数。
30.权利要求29的计算机系统,其中,判优逻辑要确定多路复用总线上未完成的第一类事务处理的数量是否超过预定的第一阀值数。
31.权利要求29的计算机系统,其中,判优逻辑要确定多路复用总线上未完成的第二类事务处理的数量是否超过预定的第二阀值数。
32.权利要求29的计算机系统,其中,总线代理包括一个存储一个能被判优逻辑用来在地址请求与数据请求之间判优的阀值数的寄存器,该阀值数能被计算机系统内驻留的应用程序或操作系统动态地改变。
33.权利要求28的计算机系统,其中,总线代理包含一个处理器。
34.权利要求28的计算机系统,其中,总线代理包含一个总线桥接器。
35.权利要求28的计算机系统,其中,总线包含一个外部总线。
36.权利要求28的计算机系统,其中,总线包含一个连接一个处理器和一个高速缓冲存储器资源的后面总线。
CNB998126004A 1998-08-28 1999-08-18 控制计算机系统内自适应多路复用地址和数据总线的方法与设备 Expired - Fee Related CN1265301C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/141,970 US6209053B1 (en) 1998-08-28 1998-08-28 Method and apparatus for operating an adaptive multiplexed address and data bus within a computer system
US09/141,970 1998-08-28

Publications (2)

Publication Number Publication Date
CN1342287A true CN1342287A (zh) 2002-03-27
CN1265301C CN1265301C (zh) 2006-07-19

Family

ID=22498027

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998126004A Expired - Fee Related CN1265301C (zh) 1998-08-28 1999-08-18 控制计算机系统内自适应多路复用地址和数据总线的方法与设备

Country Status (9)

Country Link
US (1) US6209053B1 (zh)
KR (1) KR100393168B1 (zh)
CN (1) CN1265301C (zh)
AU (1) AU5680799A (zh)
DE (1) DE19983506B3 (zh)
GB (1) GB2357870B (zh)
HK (1) HK1035046A1 (zh)
TW (1) TW455768B (zh)
WO (1) WO2000013092A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101568903B (zh) * 2006-12-21 2012-08-22 英特尔公司 Nand闪存的基于命令的控制
CN103853135A (zh) * 2012-12-06 2014-06-11 硅实验室公司 调节对从设备的访问
CN112527205A (zh) * 2020-12-16 2021-03-19 江苏国科微电子有限公司 一种数据安全防护方法、装置、设备及介质

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197589B1 (en) * 1999-05-21 2007-03-27 Silicon Graphics, Inc. System and method for providing access to a bus
CN1129071C (zh) * 1999-10-27 2003-11-26 盖内蒂克瓦尔有限公司 元件之间的通道传输结构及其传输方法
US7187741B2 (en) * 2001-10-31 2007-03-06 Nxp B.V. Clock domain crossing FIFO
US7062582B1 (en) 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
WO2006027791A1 (en) * 2004-09-08 2006-03-16 Centre For Development Of Telematics A novel architecture for a message bus
US7350051B2 (en) * 2005-02-09 2008-03-25 International Business Machines Corporation Method to optimize effective page number to real page number translation path from page table entries match resumption of execution stream
US7814253B2 (en) * 2007-04-16 2010-10-12 Nvidia Corporation Resource arbiter
US7673087B1 (en) * 2008-03-27 2010-03-02 Xilinx, Inc. Arbitration for an embedded processor block core in an integrated circuit
TWI397808B (zh) * 2009-07-16 2013-06-01 Via Tech Inc 多處理器系統及其動態省電方法
US8667197B2 (en) * 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9703711B2 (en) * 2015-08-19 2017-07-11 International Business Machines Corporation Managing cache coherence for memory caches
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10944694B2 (en) * 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
US11176038B2 (en) 2019-09-30 2021-11-16 International Business Machines Corporation Cache-inhibited write operations

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4449207A (en) 1982-04-29 1984-05-15 Intel Corporation Byte-wide dynamic RAM with multiplexed internal buses
US4766536A (en) * 1984-04-19 1988-08-23 Rational Computer bus apparatus with distributed arbitration
US5404482A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5347648A (en) * 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
US5278984A (en) * 1990-12-19 1994-01-11 Bull Hn Information Systems Inc. Method for managing requests by specifying time intervals for transmitting a minimum number of messages for specific destinations and priority levels
US5369651A (en) 1992-06-30 1994-11-29 Intel Corporation Multiplexed byte enable bus for partial word writes to ECC protected memory
US5568620A (en) 1993-06-30 1996-10-22 Intel Corporation Method and apparatus for performing bus transactions in a computer system
US5522054A (en) * 1993-09-13 1996-05-28 Compaq Computer Corporation Dynamic control of outstanding hard disk read requests for sequential and random operations
US5455915A (en) 1993-12-16 1995-10-03 Intel Corporation Computer system with bridge circuitry having input/output multiplexers and third direct unidirectional path for data transfer between buses operating at different rates
US5627991A (en) 1993-12-28 1997-05-06 Intel Corporation Cache memory having a multiplexor assembly for ordering output on a data chunk basis
US5535345A (en) 1994-05-12 1996-07-09 Intel Corporation Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed
US5606672A (en) 1995-01-27 1997-02-25 Intel Corporation Method and apparatus for multiplexing signals from a bus bridge to an ISA bus interface and an ATA bus interface
US5608892A (en) * 1995-06-09 1997-03-04 Alantec Corporation Active cache for a microprocessor
US5717876A (en) * 1996-02-26 1998-02-10 International Business Machines Corporation Method for avoiding livelock on bus bridge receiving multiple requests
US5978874A (en) * 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus
WO1997034237A2 (en) * 1996-03-15 1997-09-18 Sun Microsystems, Inc. Split transaction snooping bus and method of arbitration
US5829033A (en) * 1996-07-01 1998-10-27 Sun Microsystems, Inc. Optimizing responses in a coherent distributed electronic system including a computer system
US5954809A (en) * 1996-07-19 1999-09-21 Compaq Computer Corporation Circuit for handling distributed arbitration in a computer system having multiple arbiters
US5936960A (en) * 1997-03-07 1999-08-10 Advanced Micro Devices, Inc. Apparatus for and method of communicating among devices interconnected on a bus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101568903B (zh) * 2006-12-21 2012-08-22 英特尔公司 Nand闪存的基于命令的控制
CN103853135A (zh) * 2012-12-06 2014-06-11 硅实验室公司 调节对从设备的访问
CN112527205A (zh) * 2020-12-16 2021-03-19 江苏国科微电子有限公司 一种数据安全防护方法、装置、设备及介质

Also Published As

Publication number Publication date
WO2000013092A2 (en) 2000-03-09
AU5680799A (en) 2000-03-21
KR100393168B1 (ko) 2003-07-31
WO2000013092A3 (en) 2000-11-16
GB2357870B (en) 2003-04-09
CN1265301C (zh) 2006-07-19
DE19983506T1 (de) 2001-07-12
KR20010073009A (ko) 2001-07-31
GB2357870A (en) 2001-07-04
HK1035046A1 (en) 2001-11-09
DE19983506B3 (de) 2013-08-22
TW455768B (en) 2001-09-21
GB0104703D0 (en) 2001-04-11
US6209053B1 (en) 2001-03-27

Similar Documents

Publication Publication Date Title
CN1265301C (zh) 控制计算机系统内自适应多路复用地址和数据总线的方法与设备
US6496890B1 (en) Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters
US4937734A (en) High speed bus with virtual memory data transfer and rerun cycle capability
US8041869B2 (en) Method and system for bus arbitration
US5850530A (en) Method and apparatus for improving bus efficiency by enabling arbitration based upon availability of completion data
US5450551A (en) System direct memory access (DMA) support logic for PCI based computer system
US6073199A (en) History-based bus arbitration with hidden re-arbitration during wait cycles
EP0432978B1 (en) Apparatus for conditioning priority arbitration in buffered direct memory addressing
US5740380A (en) Method and system for apportioning computer bus bandwidth
EP0348654A2 (en) Method and apparatus for increasing system throughput
US5121487A (en) High speed bus with virtual memory data transfer capability using virtual address/data lines
US6282598B1 (en) PCI bus system wherein target latency information are transmitted along with a retry request
EP0524682A1 (en) A centralized backplane bus arbiter for multiprocessor systems
JPH08227392A (ja) 待ち時間及びシャドー・タイマを有するバス・システム
WO1997050039A1 (en) Parallel packetized intermodule arbitrated high speed control and data bus
NZ228785A (en) Microcomputer with cache subsystem: preempt signal limits access time of peripheral unit
JPH0743697B2 (ja) ディジタルコンピュータシステム
JPH08297632A (ja) 分割トランザクション・バス・プロトコルを可能にするバスに対するアービトレーション方法及び装置
US7191271B2 (en) Two level multi-tier system bus
US7035958B2 (en) Re-ordering a first request within a FIFO request queue to a different queue position when the first request receives a retry response from the target
EP0820018A2 (en) Circuit for handling distributed arbitration in a computer system having multiple arbiters
US6628662B1 (en) Method and system for multilevel arbitration in a non-blocking crossbar switch
CS304290A2 (en) Microprocessor stopping and blocking circuits
US5884052A (en) Smart retry mechanism to program the retry latency of a PCI initiator agent
US6748505B1 (en) Efficient system bus architecture for memory and register transfers

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
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: 20060719

Termination date: 20160818

CF01 Termination of patent right due to non-payment of annual fee