串流上下文的高速缓存系统的制作方法

文档序号:6582468阅读:298来源:国知局

专利名称::串流上下文的高速缓存系统的制作方法
技术领域
:本发明是有关一种通用串行总线(USB),特别是关于一种串流上下文(streamcontext)的高速緩存(cache)系统。
背景技术
:通用串行总线(UniversalSerialBus,以下筒称为USB)普遍使用于电子装置中,用以传送数据于主机(host)与外围装置(device)之间。USB版本1.0的数据传送速度为1.5兆位/秒(低速,lowspeed)及12兆位/秒(全速,ful1speed),USB版本2.0的数据传送速度为480兆位/秒(高速,highspeed)。目前更推出USB版本3.0,其数据传送速度为4.8千兆位/秒(超速,s叩erspeed),细节可参考"UniversalSerialBus3.0Specification,'。在USB系统中,主机和装置之间的数据传送是由主机控制器(hostcontroller)来控制的,而主机控制器和主机之间的通信则规范于主机控制器接口(hostcontrollerinterface,以下简称为HCI),例如"extensibleHostControllerInterfaceforUniversalSerialBus(xHCI),,。在xHCI规范的USB系统中,数据的传送是使用传送请求区块(transferrequestblock,以下简称为TRB)的凄t据结构。由多个TRB构成的TRB环(TRBring)或传送环(transferring),则用以传送数据于主机和USB装置之间。此外,xHCI还规范一种数据串流上下文(streamcontext,以下筒称为"串流上下文,,)的数据结构,其用以提供一指针(pointer)以指向数据串流当中的TRB环。换句话说,每一次读取TRB时,也必须传送串流上下文。传统TRB读取会有重复读取的情形,其细节可参考本发明申请人的另一件申请案,题为"传送请求区块的高速緩存系统及方法"。鉴于此,每一次传送数据时,主机控制器都必须从系统存储器中读取所需的串流上下文,造成时间的延迟、浪费及功率的消耗,因而降低系统整体效能。因此,亟需提出一种新颖机制,用以减少读取所花费时间,而得以提高系统效能及减少功率消耗。
发明内容鉴于上述发明背景中,传统USB系统的数据读取效能无法提升,因此本发明实施例的目的之一即在于提出一种串流上下文(streamcontext)的高速緩存(cache)系统,用以增进存取速度及减少功率消耗。根据本发明实施例所揭露的串流上下文(streamcontext)的高速緩存系统,其使用高速緩存(cache)以储存多个串流上下文,并使用映射表(mappingtable)以储存串流上下文位于系统存储器中的相应地址。每一地址还包含对应的一个有效位(validbit),用以代表相应的串流上下文是否为有效。使用一转换表,其使用索引函数将'串流上下文的地址转换为索引值,用以索引映射表所储存的相应地址,其中,索引值的位数目小于串流上下文地址的位数目。地址判断控制单元根据索引值以检视映射表的内容,以判断串流上下文是否已经储存于高速緩存。藉此,如果串流上下文已事先读取并储存于高速緩存中,则主机(host)即可直接从高速緩存取得串流上下文,不需再从系统存储器来读取。本发明提供了一种串流上下文的高速緩存系统,包含一高速緩存,用以储存多个串流上下文;及一映射表,用以储存该多个串流上下文位于一系统存储器中的相应地址;藉此,根据该映射表的内容,如果该串流上下文已事先读取并储存于该高速緩存中,则一主机即可直接从该高速緩存取得该串流上下文,不需再从该系统存储器来读取。本发明还提供了一种串流上下文的高速緩存系统,包含一高速緩存,用以储存多个串流上下文;一映射表,用以储存该多个串流上下文位于一系统存储器中的相应地址,每一该地址还包含对应的一个有效位,用以代表相应的该串流上下文是否为有效;一转换表,其使用一索引函数,将该串流上下文的地址转换为一索引值,用以索引该映射表所储存的相应地址,其中,该索引值的位数目小于该串流上下文地址的位数目;及一地址判断控制单元,其根据该索引值以检视该映射表的内容,以判断该串流上下文是否已经储存于该高速緩存;藉此,如果该串流上下文已事先读取并储存于该高速緩存中,则一主机即可直接从该高速緩存取得该串流上下文,不需再从该系统存储器来读取。图l显示本发明实施例的串流上下文的高速緩存系统。图2显示本实施例的映射表的架构。图3显示本实施例的上游串流写入(upstreamwrite)的流程图。图4显示本实施例的上游串流读取(upstreamread)的流程图。图5显示本实施例的MCU预取(pre-fetch)串流上下文的流程图。图6显示本实施例的MCU无效(invalid)所有串流上下文的流程图图7显示本实施例的MCU选择性无效串流上下文的流程图。[主要元件标号说明]11高速緩存1213转换表1415写入控制单元1617MCU控制单元1819向上控制器(upcontroller)31-3641-47(图4)步骤51-5961-62(图6)步骤71-75映射表地址判断控制单元读取控制单元仲裁器(图3)步骤(图5)步骤(图7)步骤具体实施方式'以下实施例虽以USB版本3.0为例,然而本发明也可适用于3.0以上的版本。再者,本实施例所使用的主机控制器接口(HCI)为xHCI(extensibleHostControllerInterfaceforUniversalSerialBus),但不限定于此。此外,本i兌明书所述的串流上下文(streamcontext)也可泛指其它HCI>见范的数据串流或类似数据结构。图1显示本发明实施例的串流上下文的高速緩存(cache)系统,其可设于主才几控制器(hostcontroller)内或其它地方。串流上下文的高速緩存系统主要包含一高速緩存11,例如静态随机存取存储器(SRAM),用以储存目前尚未用到,但以后可能会用到的串流上下文。藉此,当串流上下文已事先读取并储存于高速緩存ll中,则主机就不需再从系统存储器(未图)来读取,而是直接从高速緩存ll取得。因此,得以增进读取速度及减少功率消耗。在本实施例中,高速緩存11的大小为512字节(byte),总共可以储存32个串流上下文,其中每一个串流上下文的大小为16字节。映射表12用以储存这些串流上下文位于系统存储器中的相应地址。图2显示本实施例的映射表12的架构,其总共可储存32笔(entry)地址数据。此外,每一地址还相应有1个有效位(validbit)v,代表该串流上下文是否为有效。由于本实施例每一笔串流上下文的大小为16字节,因此位3及其以下位可以省略不予记录,因此每一笔地址数据仅需储存地址位[35:4]。在本实施例中,映射表12采2路组相联(2-waysetassociation)架构,其分为二3各(way):Aif各和B路,而每一路又包含16组(set)。鉴于映射表12所储存的地址的位数目很大,于运算处理或地址比较时将会花费很多时间,因此,在本实施例中使用一转换表13,其利用一索引函数,例如HASH(杂凑、哈希)函数,将冗长的串流上下文地址转换为简短的索引值。虽然本实施例中使用HASH函数转换表以产生索引值,然而,在其它实施例中,也可使用HASH函数以外的其它转换函数。由于串流上下文地址的位[18:4]同于高速緩存11行地址的位[18:4],因此,在本实施例中,转换表13取串流上下文地址[18:4]进行HASH函数运算后,产生5位HASH输出,用以索引映射表13中的相应地址数据。其中,HASH输出位[4:l]作为映射表13的索引值;而HASH输出位则用以选择映射表13当中的A路或B路,亦即,每一组(set)当中的一笔(entry)。详而言之,地址判断控制(addresscheckcontrol)单元144丸4亍i也址的比较,以判断串流上下文是否已经储存于高速緩存11,又称为命中(HIT);反之,如果未储存于高速緩存11,则为未命中(MISS)。在本实施例中,当地址A和地址B都命中或者都未命中时,HASH输出位[O]设为"0",亦即选择地址A。当仅有地址A命中时,HASH输出位[O]设为"0";当仅有地址B命中时,HASH输出位[O]设为"1"。图1所示的串流上下文的高速緩存系统中,主要执行三类操作上游串流写入(upstreamwrite)、上游串流读取(upstreamread)及微控制单元(MCU)相关控制。在xHCI规范中,上游(upstream)是指往主机方向的数据流向。上述三类操:作分别由以下单元控制写入控制(streamcontextwritecontrol)单元15、读耳又4空制(streamcontextreadcontrol)单元16及MCU4空制(streamcontextMCUcontrol)单元17。上述的微控制单元(MCU)相关控制则又包含MCU预取(pre-fetch)串流上下文、MCU无效(invalid)所有串流上下文及MCU选择性无效串流上下文。上述五种操作或者上述控制单元15/16/17是由仲裁器(arbitrator)18来调派控制。此外,本实施例还包含一向上控制器(叩controller)19,用于控制和系统存储器间的数据读写,以及和高速緩存11间的数据传送。以下将就上述五种操作逐一说明其流程步骤。图3显示本实施例的上游串流写入(upstreamwrite)的流程图。当获得允许(grant)后(步骤31),即进行HASH转换(步骤32)以得到相应索引值。接着,于步骤33,根据HASH输出以判定串流上下文是否已存在于高速緩存11。如果未存在于高速緩存ll(亦即,未命中),则将地址写至映射表12中(步骤34),将串流上下文写入高速緩存11(步骤35),并从总线项目(businstance,BI)将串流上下文写至系统存储器中(步骤36)。在xHCI规范中,总线项目(BI)是指各种数据传送速率的相应总线频宽。例如,高速(highspeed)总线项目(BI)代表480兆位/秒的频宽。如果经步骤33判断串流上下文已存在于高速緩存ll(亦即,命中),则将串流上下文写入高速緩存ll(步骤35)以更新其内容,并从总线项目(BI)将串流上下文写至系统存储器中(步骤36)。图4显示本实施例的上游串流读取(叩streamread)的流程图。当获得允许后(步骤41),即进行HASH转换(步骤42)以得到相应索引值。接着,于步骤43,根据HASH输出以判定串流上下文是否已存在于高速緩存ll。如果未存在于高速緩存ll(亦即,未命中),则将地址写至映射表12中(步骤44),从系统存储器读取串流上下文(步骤45),并将串流上下文写至高速緩存11及取出数据置入总线项目(BI)(步骤46)。如果经步骤43判断串流上下文已存在于高速緩存1U亦即,命中),则从高速緩存11直接取出串流上下文及置入总线项目(BI)(步骤47)。图5显示本实施例的MCU预取(pre-fetch)串流上下文的流程图。当获得允许后(步骤51),即进行HASH转换(步骤52)以得到相应索引值。接着,于步骤53,根据HASH输出以判定串流上下文是否已存在于高速緩存11。如果未存在于高速緩存ll(亦即,未命中),则将地址写至映射表12中(步骤54),从系统存储器读取串流上下文(步骤55),并将串流上下文写至高速緩存11(步骤56)。接着,从预取得到的串流上下文得到一离开队列指针(dequeuepointer)(步骤57),用以触发相关TRB的预取(步骤58)。关于TRB的预取可参考本发明申请人的另一件申请案,题为"传送请求区块的高速緩存系统及方法"。于xHCI规范中,离开队列指针(dequeuepointer)是指向即将接受主机控制器处理的TRB。如果经步骤43判断串流上下文已存在于高速緩存11(亦即,命中),则结束流程(步骤59)。图6显示本实施例的MCU无效(invalid)所有串流上下文的流程图。当获得允许后(步骤61),即将映射表12中所有的数据予以无效,亦即,将所有的有效位(validbit)变为"0"(步骤62)。图7显示本实施例的MCU选择性无效串流上下文的流程图。当获得允许后(步骤71),即进行HASH转换(步骤72)以得到相应索引值。接着,于步骤73,根据HASH输出以判定串流上下文是否已存在于高速緩存11。如果已存在于高速緩存ll(亦即,命中),则将映射表12中相应的数据予以无效,亦即,将相应的有效位(validbit)变为"0"(步骤74)。如果未存在于高速緩存ll(亦即,未命中),则结束流程(步骤75)。以上所述仅为本发明的较佳实施例而已,并非用以限定本发明的权利要求范围;凡其它未脱离发明所揭示的精神下所完成的等效改变或修饰,均应包含在上述的权利要求范围内。权利要求1.一种串流上下文的高速缓存系统,包含一高速缓存,用以储存多个串流上下文;及一映射表,用以储存该多个串流上下文位于一系统存储器中的相应地址;藉此,根据该映射表的内容,如果该串流上下文已事先读取并储存于该高速缓存中,则一主机即可直接从该高速缓存取得该串流上下文,不需再从该系统存储器来读取。2.根据权利要求1所述的串流上下文的高速緩存系统,其中上述映射表中,每一该地址还包含对应的一个有效位,用以代表相应的该串流上下文是否为有效。3.根据权利要求1所述的串流上下文的高速緩存系统,其中上述的映射表采2路组相联架构,其分为二路,而每一路包含多个组。4.根据权利要求1所述的串流上下文的高速緩存系统,还包含一转换表,其将该串流上下文的地址转换为一索引值,用以索引该映射表所储存的相应地址,其中上述的转换表使用一索引函数,用以将该串流上下文地址转换为该索引值,其中,该索引值的位数目小于该串流上下文地址的位数目。5.根据权利要求4所述的串流上下文的高速緩存系统,还包含一地址判断控制单元,其根椐该索引值以检视该映射表的内容,以判断该串流上下文是否已经储存于该高速緩存。6.根据权利要求1所述的串流上下文的高速緩存系统,其执行以下至少一类操作上游串流写入、上游串流读取及《效控制单元相关控制。7.根据权利要求6所述的串流上下文的高速援存系统,其中上述的微控制单元相关控制包含以下至少一操作MCU预取串流上下文、MCU无效所有串流上下文及MCU选^^性无效串流上下文。8.根据权利要求7所述的串流上下文的高速緩存系统,还包含写入控制单元,用以控制该上游串流写入操作;读取控制单元,用以控制该上游串流读取操作;及MCU控制单元,用以控制该微控制单元相关控制操作。9.根据权利要求8所述的串流上下文的高速緩存系统,还包含一仲裁器,用以调派控制该写入控制单元、该读取控制单元及该MCU控制单元。10.根据权利要求1所述的串流上下文的高速緩存系统,还包含一向上控制器,用于控制和该系统存储器间的数据读写,以及和该高速緩存间的数据传送。11.根据权利要求8所述的串流上下文的高速緩存系统,其中上述写入控制单元所执行的上游串流写入操作包含下列步骤判断该串流上下文是否已存在于该高速緩存;如果未存在,则将相应地址写至该映射表中,将该串流上下文写入该高速緩存,并从一总线项目将该串流上下文写至该系统存储器中;及如果存在,则将该串流上下文写入该高速緩存以更新其内容,并从该总线项目将该串流上下文写至该系统存储器中。12.根据权利要求8所述的串流上下文的高速緩存系统,其中上述读取控制单元所执行的上游串流读取操作包含下列步骤判断该串流上下文是否已存在于该高速緩存;如果未存在,则将相应地址写至该映射表中,从该系统存储器读取该串流上下文,并将该串流上下文写至该高速緩存及取出数据置入一总线项目;及如果存在,则从该高速緩存直接取出该串流上下文及置入该总线项目。13.根据权利要求8所述的串流上下文的高速緩存系统,其中上述MCU控制单元所执行的MCU预取串流上下文操作包含下列步骤判断该串流上下文是否已存在于该高速緩存;如果未存在,则将相应地址写至该映射表中,从该系统存储器读取该串流上下文,将该串流上下文写至该高速緩存,自该串流上下文得到一离开队列指针,用以触发相关TRB的预取;及如果存在,则结束操作。14.根据权利要求8所述的串流上下文的高速緩存系统,.其中上述MCU控制单元所执行的MCU无效所有串流上下文操作包含下列步骤将该映射表中所有的数据予以无效。15.根据权利要求8所述的串流上下文的高速緩存系统,其中上述MCU控制单元所执行的MCU选择性无效串流上下文操作包含下列步骤判断该串流上下文是否已存在于该高速緩存;如果存在,则将该映射表中相应的数据予以无效;及如果未存在,则结束操作。16.—种串流上下文的高速緩存系统,包含一高速緩存,用以储存多个串流上下文;一映射表,用以储存该多个串流上下文位于一系统存储器中的相应地址,每一该地址还包含对应的一个有效位,用以代表相应的该串流上下文是否为有效;一转换表,其使用一索引函数,将该串流上下文的地址转换为一索引值,用以索引该映射表所储存的相应地址,其中,该索引值的位数目小于该串流上下文地址的位数目;及一地址判断控制单元,其根据该索引值以检视该映射表的内容,以判断该串流上下文是否已经储存于该高速緩存;藉此,如果该串流上下文已事先读取并储存于该高速緩存中,则一主机即可直接从该高速緩存取得该串流上下文,不需再从该系统存储器来读取。全文摘要一种串流上下文(streamcontext)的高速缓存系统,其主要包含高速缓存(cache)及映射表(mappingtable)。其中,高速缓存储存多个串流上下文,而映射表则储存串流上下文位于系统存储器中的相应地址。藉此,根据映射表的内容,如果串流上下文已事先读取并储存于高速缓存中,则主机(host)即可直接从高速缓存取得串流上下文,不需再从系统存储器来读取。文档编号G06F12/08GK101667158SQ20091020402公开日2010年3月10日申请日期2009年9月30日优先权日2009年9月15日发明者惠志强,秦双双,瑾赖,郭秀丽申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1