欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

串流上下文的高速緩存系統(tǒng)的制作方法

文檔序號:6640147閱讀:349來源:國知局
串流上下文的高速緩存系統(tǒng)的制作方法【專利摘要】一種串流上下文(streamcontext)的高速緩存系統(tǒng),其主要包含高速緩存(cache)及映射表(mappingtable)。其中,高速緩存儲存多個串流上下文,而映射表則儲存串流上下文位于系統(tǒng)存儲器中的相應(yīng)地址。藉此,根據(jù)映射表的內(nèi)容,如果串流上下文已事先讀取并儲存于高速緩存中,則主機(host)即可直接從高速緩存取得串流上下文,不需再從系統(tǒng)存儲器來讀取。【專利說明】串流上下文的高速緩存系統(tǒng)[0001]本申請是以下發(fā)明專利申請的分案申請:[0002]申請?zhí)?200910204024.8[0003]申請日:2009年9月30日[0004]發(fā)明名稱:串流上下文的高速緩存系統(tǒng)【
技術(shù)領(lǐng)域
】[0005]本發(fā)明是有關(guān)一種通用串行總線(USB),特別是關(guān)于一種串流上下文(streamcontext)的高速緩存(cache)系統(tǒng)?!?br>背景技術(shù)
】[0006]通用串行總線(UniversalSerialBus,以下簡稱為USB)普遍使用于電子裝置中,用以傳送數(shù)據(jù)于主機(host)與外圍裝置(device)之間。USB版本1.0的數(shù)據(jù)傳送速度為1.5兆位/秒(低速,lowspeed)及12兆位/秒(全速,fullspeed),USB版本2.0的數(shù)據(jù)傳送速度為480兆位/秒(高速,highspeed)。目前更推出USB版本3.0,其數(shù)據(jù)傳送速度為4.8千兆位/秒(超速,superspeed),細(xì)節(jié)可參考“UniversalSerialBus3.0Specificat1n,,。[0007]在USB系統(tǒng)中,主機和裝置之間的數(shù)據(jù)傳送是由主機控制器(hostcontroller)來控制的,而主機控制器和主機之間的通信則規(guī)范于主機控制器接口(hostcontrollerinterface,以下簡稱為HCI),例如“extensibleHostControllerInterfaceforUniversalSerialBus(xHCI),,。[0008]在xHCI規(guī)范的USB系統(tǒng)中,數(shù)據(jù)的傳送是使用傳送請求區(qū)塊(transferrequestblock,以下簡稱為TRB)的數(shù)據(jù)結(jié)構(gòu)。由多個TRB構(gòu)成的TRB環(huán)(TRBring)或傳送環(huán)(transferring),則用以傳送數(shù)據(jù)于主機和USB裝置之間。此外,xHCI還規(guī)范一種數(shù)據(jù)串流上下文(streamcontext,以下簡稱為“串流上下文”)的數(shù)據(jù)結(jié)構(gòu),其用以提供一指針(pointer)以指向數(shù)據(jù)串流當(dāng)中的TRB環(huán)。換句話說,每一次讀取TRB時,也必須傳送串流上下文。[0009]傳統(tǒng)TRB讀取會有重復(fù)讀取的情形,其細(xì)節(jié)可參考本發(fā)明申請人:的另一件申請案,題為“傳送請求區(qū)塊的高速緩存系統(tǒng)及方法”。鑒于此,每一次傳送數(shù)據(jù)時,主機控制器都必須從系統(tǒng)存儲器中讀取所需的串流上下文,造成時間的延遲、浪費及功率的消耗,因而降低系統(tǒng)整體效能。因此,亟需提出一種新穎機制,用以減少讀取所花費時間,而得以提高系統(tǒng)效能及減少功率消耗?!?br/>發(fā)明內(nèi)容】[0010]鑒于上述發(fā)明背景中,傳統(tǒng)USB系統(tǒng)的數(shù)據(jù)讀取效能無法提升,因此本發(fā)明實施例的目的之一即在于提出一種串流上下文(streamcontext)的高速緩存(cache)系統(tǒng),用以增進(jìn)存取速度及減少功率消耗。[0011]根據(jù)本發(fā)明實施例所揭露的串流上下文(streamcontext)的高速緩存系統(tǒng),其使用高速緩存(cache)以儲存多個串流上下文,并使用映射表(mappingtable)以儲存串流上下文位于系統(tǒng)存儲器中的相應(yīng)地址。每一地址還包含對應(yīng)的一個有效位(validbit),用以代表相應(yīng)的串流上下文是否為有效。使用一轉(zhuǎn)換表,其使用索引函數(shù)將串流上下文的地址轉(zhuǎn)換為索引值,用以索引映射表所儲存的相應(yīng)地址,其中,索引值的位數(shù)目小于串流上下文地址的位數(shù)目。地址判斷控制單元根據(jù)索引值以檢視映射表的內(nèi)容,以判斷串流上下文是否已經(jīng)儲存于高速緩存。藉此,如果串流上下文已事先讀取并儲存于高速緩存中,則主機(host)即可直接從高速緩存取得串流上下文,不需再從系統(tǒng)存儲器來讀取。[0012]本發(fā)明提供了一種串流上下文的高速緩存系統(tǒng),包含:一高速緩存,用以儲存多個串流上下文;及一映射表,用以儲存該多個串流上下文位于一系統(tǒng)存儲器中的相應(yīng)地址;藉此,根據(jù)該映射表的內(nèi)容,如果該串流上下文已事先讀取并儲存于該高速緩存中,則一讀取控制單元即可直接從該高速緩存取得該串流上下文并置入一總線項目,不需再從該系統(tǒng)存儲器來讀取,如果該串流上下文未存在于該高速緩存中,則該讀取控制單元將相應(yīng)地址寫至該映射表中,從該系統(tǒng)存儲器中讀取該串流上下文,并將該串流上下文寫至該高速緩存及取出數(shù)據(jù)置入該總線項目。[0013]本發(fā)明還提供了一種串流上下文的高速緩存系統(tǒng),包含:一高速緩存,用以儲存多個串流上下文;一映射表,用以儲存該多個串流上下文位于一系統(tǒng)存儲器中的相應(yīng)地址,每一該地址還包含對應(yīng)的一個有效位,用以代表相應(yīng)的該串流上下文是否為有效;一轉(zhuǎn)換表,其使用一索引函數(shù),將該串流上下文的地址轉(zhuǎn)換為一索引值,用以索引該映射表所儲存的相應(yīng)地址,其中,該索引值的位數(shù)目小于該串流上下文地址的位數(shù)目;及一地址判斷控制單元,其根據(jù)該索引值以檢視該映射表的內(nèi)容,以判斷該串流上下文是否已經(jīng)儲存于該高速緩存;藉此,如果該串流上下文已事先讀取并儲存于該高速緩存中,則一讀取控制單元即可直接從該高速緩存取得該串流上下文并置入一總線項目,不需再從該系統(tǒng)存儲器來讀取,如果該串流上下文未存在于該高速緩存中,則該讀取控制單元將相應(yīng)地址寫至該映射表中,從該系統(tǒng)存儲器中讀取該串流上下文,并將該串流上下文寫至該高速緩存及取出數(shù)據(jù)置入該總線項目?!緦@綀D】【附圖說明】[0014]圖1顯示本發(fā)明實施例的串流上下文的高速緩存系統(tǒng)。[0015]圖2顯示本實施例的映射表的架構(gòu)。[0016]圖3顯示本實施例的上游串流寫入(upstreamwrite)的流程圖。[0017]圖4顯示本實施例的上游串流讀取(upstreamread)的流程圖。[0018]圖5顯示本實施例的MCU預(yù)取(pre-fetch)串流上下文的流程圖。[0019]圖6顯示本實施例的MCU無效(invalid)所有串流上下文的流程圖。[0020]圖7顯示本實施例的MCU選擇性無效串流上下文的流程圖。[0021][主要元件標(biāo)號說明][0022]11高速緩存12映射表[0023]13轉(zhuǎn)換表14地址判斷控制單元[0024]15寫入控制單元16讀取控制單元[0025]17MCU控制單元18仲裁器[0026]19向上控制器(upcontroller)31-36(圖3)步驟[0027]41-47(圖4)步驟51-59(圖5)步驟[0028]61-62(圖6)步驟71-75(圖7)步驟【具體實施方式】[0029]以下實施例雖以USB版本3.0為例,然而本發(fā)明也可適用于3.0以上的版本。再者,本實施例所使用的主機控制器接口(HCI)為xHCI(extensibleHostControllerInterfaceforUniversalSerialBus),但不限定于此。此外,本說明書所述的串流上下文(streamcontext)也可泛指其它HCI規(guī)范的數(shù)據(jù)串流或類似數(shù)據(jù)結(jié)構(gòu)。[0030]圖1顯示本發(fā)明實施例的串流上下文的高速緩存(cache)系統(tǒng),其可設(shè)于主機控制器(hostcontroller)內(nèi)或其它地方。串流上下文的高速緩存系統(tǒng)主要包含一高速緩存11,例如靜態(tài)隨機存取存儲器(SRAM),用以儲存目前尚未用到,但以后可能會用到的串流上下文。藉此,當(dāng)串流上下文已事先讀取并儲存于高速緩存11中,則主機就不需再從系統(tǒng)存儲器(未圖示)來讀取,而是直接從高速緩存11取得。因此,得以增進(jìn)讀取速度及減少功率消耗。在本實施例中,高速緩存11的大小為512字節(jié)(byte),總共可以儲存32個串流上下文,其中每一個串流上下文的大小為16字節(jié)。[0031]映射表12用以儲存這些串流上下文位于系統(tǒng)存儲器中的相應(yīng)地址。圖2顯示本實施例的映射表12的架構(gòu),其總共可儲存32筆(entry)地址數(shù)據(jù)。此外,每一地址還相應(yīng)有1個有效位(validbit)v,代表該串流上下文是否為有效。由于本實施例每一筆串流上下文的大小為16字節(jié),因此位3及其以下位可以省略不予記錄,因此每一筆地址數(shù)據(jù)僅需儲存地址位[35:4]ο在本實施例中,映射表12采2路組相聯(lián)(2-waysetassociat1n)架構(gòu),其分為二路(way):A路和B路,而每一路又包含16組(set)。[0032]鑒于映射表12所儲存的地址的位數(shù)目很大,于運算處理或地址比較時將會花費很多時間,因此,在本實施例中使用一轉(zhuǎn)換表13,其利用一索引函數(shù),例如HASH(雜湊、哈希)函數(shù),將冗長的串流上下文地址轉(zhuǎn)換為簡短的索引值。雖然本實施例中使用HASH函數(shù)轉(zhuǎn)換表以產(chǎn)生索引值,然而,在其它實施例中,也可使用HASH函數(shù)以外的其它轉(zhuǎn)換函數(shù)。由于串流上下文地址的位[18:4]同于高速緩存11行地址的位[18:4],因此,在本實施例中,轉(zhuǎn)換表13取串流上下文地址[18:4]進(jìn)行HASH函數(shù)運算后,產(chǎn)生5位HASH輸出,用以索引映射表13中的相應(yīng)地址數(shù)據(jù)。其中,HASH輸出位[4:1]作為映射表13的索引值;而HASH輸出位[0]則用以選擇映射表13當(dāng)中的A路或B路,亦即,每一組(set)當(dāng)中的一筆(entry)。[0033]詳而言之,地址判斷控制(addresscheckcontrol)單元14執(zhí)行地址的比較,以判斷串流上下文是否已經(jīng)儲存于高速緩存11,又稱為命中(HIT);反之,如果未儲存于高速緩存11,則為未命中(MISS)。在本實施例中,當(dāng)?shù)刂稟和地址B都命中或者都未命中時,HASH輸出位[0]設(shè)為“0”,亦即選擇地址A。當(dāng)僅有地址A命中時,HASH輸出位[0]設(shè)為“0”;當(dāng)僅有地址B命中時,HASH輸出位[0]設(shè)為“1”。[0034]圖1所示的串流上下文的高速緩存系統(tǒng)中,主要執(zhí)行三類操作:上游串流寫入(upstreamwrite)、上游串流讀取(upstreamread)及微控制單元(MCU)相關(guān)控制。在xHCI規(guī)范中,上游(upstream)是指往主機方向的數(shù)據(jù)流向。上述三類操作分別由以下單元控制:寫入控制(streamcontextwritecontrol)單元15、讀取控制(streamcontextreadcontrol)單元16及MCU控制(streamcontextMCUcontrol)單元17。上述的微控制單元(MCU)相關(guān)控制則又包含:MCU預(yù)取(pre-fetch)串流上下文、MCU無效(invalid)所有串流上下文及MCU選擇性無效串流上下文。上述五種操作或者上述控制單元15/16/17是由仲裁器(arbitrator)18來調(diào)派控制。此外,本實施例還包含一向上控制器(upcontroller)19,用于控制和系統(tǒng)存儲器間的數(shù)據(jù)讀寫,以及和高速緩存11間的數(shù)據(jù)傳送。以下將就上述五種操作逐一說明其流程步驟。[0035]圖3顯示本實施例的上游串流寫入(upstreamwrite)的流程圖。當(dāng)獲得允許(grant)后(步驟31),即進(jìn)行HASH轉(zhuǎn)換(步驟32)以得到相應(yīng)索引值。接著,于步驟33,根據(jù)HASH輸出以判定串流上下文是否已存在于高速緩存11。如果未存在于高速緩存11(亦艮口,未命中),則將地址寫至映射表12中(步驟34),將串流上下文寫入高速緩存11(步驟35),并從總線項目(businstance,BI)將串流上下文寫至系統(tǒng)存儲器中(步驟36)。在xHCI規(guī)范中,總線項目(BI)是指各種數(shù)據(jù)傳送速率的相應(yīng)總線頻寬。例如,高速(highspeed)總線項目(BI)代表480兆位/秒的頻寬。如果經(jīng)步驟33判斷串流上下文已存在于高速緩存11(亦即,命中),則將串流上下文寫入高速緩存11(步驟35)以更新其內(nèi)容,并從總線項目(BI)將串流上下文寫至系統(tǒng)存儲器中(步驟36)。[0036]圖4顯示本實施例的上游串流讀取(upstreamread)的流程圖。當(dāng)獲得允許后(步驟41),即進(jìn)行HASH轉(zhuǎn)換(步驟42)以得到相應(yīng)索引值。接著,于步驟43,根據(jù)HASH輸出以判定串流上下文是否已存在于高速緩存11。如果未存在于高速緩存11(亦即,未命中),則將地址寫至映射表12中(步驟44),從系統(tǒng)存儲器讀取串流上下文(步驟45),并將串流上下文寫至高速緩存11及取出數(shù)據(jù)置入總線項目(BI)(步驟46)。如果經(jīng)步驟43判斷串流上下文已存在于高速緩存11(亦即,命中),則從高速緩存11直接取出串流上下文及置入總線項目(BI)(步驟47)。[0037]圖5顯示本實施例的MCU預(yù)取(pre-fetch)串流上下文的流程圖。當(dāng)獲得允許后(步驟51),即進(jìn)行HASH轉(zhuǎn)換(步驟52)以得到相應(yīng)索引值。接著,于步驟53,根據(jù)HASH輸出以判定串流上下文是否已存在于高速緩存11。如果未存在于高速緩存11(亦即,未命中),則將地址寫至映射表12中(步驟54),從系統(tǒng)存儲器讀取串流上下文(步驟55),并將串流上下文寫至高速緩存11(步驟56)。接著,從預(yù)取得到的串流上下文得到一離開隊列指針(dequeuepointer)(步驟57),用以觸發(fā)相關(guān)TRB的預(yù)取(步驟58)。關(guān)于TRB的預(yù)取可參考本發(fā)明申請人:的另一件申請案,題為“傳送請求區(qū)塊的高速緩存系統(tǒng)及方法”。于xHCI規(guī)范中,離開隊列指針(dequeuepointer)是指向即將接受主機控制器處理的TRB。如果經(jīng)步驟43判斷串流上下文已存在于高速緩存11(亦即,命中),則結(jié)束流程(步驟59)。[0038]圖6顯示本實施例的MCU無效(invalid)所有串流上下文的流程圖。當(dāng)獲得允許后(步驟61),即將映射表12中所有的數(shù)據(jù)予以無效,亦即,將所有的有效位(validbit)變?yōu)椤?”(步驟62)。[0039]圖7顯示本實施例的MCU選擇性無效串流上下文的流程圖。當(dāng)獲得允許后(步驟71),即進(jìn)行HASH轉(zhuǎn)換(步驟72)以得到相應(yīng)索引值。接著,于步驟73,根據(jù)HASH輸出以判定串流上下文是否已存在于高速緩存11。如果已存在于高速緩存11(亦即,命中),則將映射表12中相應(yīng)的數(shù)據(jù)予以無效,亦即,將相應(yīng)的有效位(validbit)變?yōu)椤唉?步驟74)。如果未存在于高速緩存11(亦即,未命中),則結(jié)束流程(步驟75)。[0040]以上所述僅為本發(fā)明的較佳實施例而已,并非用以限定本發(fā)明的權(quán)利要求范圍;凡其它未脫離發(fā)明所揭示的精神下所完成的等效改變或修飾,均應(yīng)包含在上述的權(quán)利要求范圍內(nèi)?!緳?quán)利要求】1.一種串流上下文的高速緩存系統(tǒng),包含:一高速緩存,用以儲存多個串流上下文,所述多個串流上下文是從一系統(tǒng)存儲器讀取的;及一映射表,用以儲存該多個串流上下文位于該系統(tǒng)存儲器中的相應(yīng)地址;一MCU控制單元,用于執(zhí)行MCU預(yù)取串流上下文操作;其中,根據(jù)該映射表的內(nèi)容,判斷該串流上下文是否已存在于該高速緩存中,如果未存在,則該MCU控制單元將相應(yīng)地址寫至該映射表中,從該系統(tǒng)存儲器讀取該串流上下文,將該串流上下文寫至該高速緩存,自該串流上下文得到一離開隊列指針,用以觸發(fā)相關(guān)的傳送請求區(qū)塊的預(yù)取;及如果存在,則結(jié)束操作。2.根據(jù)權(quán)利要求1所述的串流上下文的高速緩存系統(tǒng),其中上述映射表中,每一該地址還包含對應(yīng)的一個有效位,用以代表相應(yīng)的該串流上下文是否為有效。3.根據(jù)權(quán)利要求1所述的串流上下文的高速緩存系統(tǒng),其中上述的映射表采2路組相聯(lián)架構(gòu),其分為二路,而每一路包含多個組。4.根據(jù)權(quán)利要求1所述的串流上下文的高速緩存系統(tǒng),還包含一轉(zhuǎn)換表,其將該串流上下文的地址轉(zhuǎn)換為一索引值,用以索引該映射表所儲存的相應(yīng)地址,其中上述的轉(zhuǎn)換表使用一索引函數(shù),用以將該串流上下文地址轉(zhuǎn)換為該索引值,其中,該索引值的位數(shù)目小于該串流上下文地址的位數(shù)目。5.根據(jù)權(quán)利要求4所述的串流上下文的高速緩存系統(tǒng),還包含一地址判斷控制單元,其根據(jù)該索引值以檢視該映射表的內(nèi)容,以判斷該串流上下文是否已經(jīng)儲存于該高速緩存。6.根據(jù)權(quán)利要求1所述的串流上下文的高速緩存系統(tǒng),還包含一向上控制器,用于控制和該系統(tǒng)存儲器間的數(shù)據(jù)讀寫,以及和該高速緩存間的數(shù)據(jù)傳送。7.根據(jù)權(quán)利要求1所述的串流上下文的高速緩存系統(tǒng),其中上述MCU控制單元還執(zhí)行MCU無效所有串流上下文操作,包含下列步驟:將該映射表中所有的數(shù)據(jù)予以無效。8.根據(jù)權(quán)利要求1所述的串流上下文的高速緩存系統(tǒng),其中上述MCU控制單元還執(zhí)行MCU選擇性無效串流上下文操作,包含下列步驟:判斷該串流上下文是否已存在于該高速緩存;如果存在,則將該映射表中相應(yīng)的數(shù)據(jù)予以無效?’及如果未存在,則結(jié)束操作。9.一種串流上下文的高速緩存系統(tǒng),包含:一高速緩存,用以儲存多個串流上下文,所述多個串流上下文是從一系統(tǒng)存儲器讀取的;一映射表,用以儲存該多個串流上下文位于該系統(tǒng)存儲器中的相應(yīng)地址,每一該地址還包含對應(yīng)的一個有效位,用以代表相應(yīng)的該串流上下文是否為有效;一轉(zhuǎn)換表,其使用一索引函數(shù),將該串流上下文的地址轉(zhuǎn)換為一索引值,用以索引該映射表所儲存的相應(yīng)地址,其中,該索引值的位數(shù)目小于該串流上下文地址的位數(shù)目;及一地址判斷控制單元,其根據(jù)該索引值以檢視該映射表的內(nèi)容,以判斷該串流上下文是否已經(jīng)存在于該高速緩存;其中,如果該串流上下文未存在于該高速緩存中,則一MCU控制單元將相應(yīng)地址寫至該映射表中,從該系統(tǒng)存儲器讀取該串流上下文,將該串流上下文寫至該高速緩存,自該串流上下文得到一離開隊列指針,用以觸發(fā)相關(guān)的傳送請求區(qū)塊的預(yù)??;及如果存在,則結(jié)束操作?!疚臋n編號】G06F12/08GK104461942SQ201410826076【公開日】2015年3月25日申請日期:2009年9月30日優(yōu)先權(quán)日:2009年9月15日【發(fā)明者】郭秀麗,賴瑾,惠志強,秦雙雙申請人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
玉山县| 合川市| 菏泽市| 安国市| 永吉县| 乐亭县| 兴义市| 河曲县| 阿拉善左旗| 瓦房店市| 文水县| 伊宁市| 项城市| 绵竹市| 尼勒克县| 克什克腾旗| 蓝田县| 益阳市| 石林| 长白| 宁乡县| 天镇县| 达拉特旗| 延吉市| 九龙城区| 临沂市| 安康市| 乐亭县| 博湖县| 新竹县| 新邵县| 封丘县| 新蔡县| 滦南县| 石门县| 华阴市| 霍林郭勒市| 行唐县| 行唐县| 嘉黎县| 中西区|