專(zhuān)利名稱(chēng):快取記憶體更新資料的結(jié)構(gòu)及方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種處理器內(nèi)部的快取記憶體更新資料的結(jié)構(gòu)及方法。
無(wú)限頻織網(wǎng)傳輸技術(shù)以節(jié)點(diǎn)對(duì)節(jié)點(diǎn)的方式做一對(duì)一或一對(duì)多的I/O讀寫(xiě)管理,某些節(jié)點(diǎn)可定義成子網(wǎng)絡(luò)(subnet),可以被授權(quán)來(lái)管理此節(jié)點(diǎn)底下的資料流向或組態(tài)。從規(guī)格來(lái)看,無(wú)限頻織網(wǎng)傳輸技術(shù)可以達(dá)到單一節(jié)點(diǎn)2.5Gbps傳輸速度,四個(gè)節(jié)點(diǎn)可達(dá)10Gbps,在最多12通道同時(shí)傳輸下,理論上最大的傳輸速率高達(dá)30Gbps。
無(wú)限頻織網(wǎng)傳輸技術(shù)的訊號(hào)傳輸原理,就是十字狀的線路交織、切換機(jī)制,可以同時(shí)應(yīng)用在銅線傳輸以及光纖傳導(dǎo)兩種介質(zhì),可連接的產(chǎn)品、應(yīng)用范圍,從伺服器、集線交換器(switch)、路由器(router)到相關(guān)介面卡,以及端點(diǎn)管理軟體等等。
請(qǐng)參閱
圖1,是顯示一種運(yùn)用于無(wú)限頻織網(wǎng)傳輸技術(shù)的封包接收結(jié)構(gòu)的方塊圖。如圖1所示,主要包含一主通道轉(zhuǎn)接器1,其硬件模組為支持兩個(gè)或多個(gè)實(shí)體層端口,以接收來(lái)自實(shí)體層2的封包、一主匯流排介面、兩個(gè)區(qū)域處理器介面以及一動(dòng)態(tài)隨機(jī)存取記憶4由區(qū)域處理器共享,該區(qū)域處理器分別為接收處理器5及傳送處理器8,并藉由一靜態(tài)隨機(jī)存取記憶體(SRAM)3當(dāng)做封包緩沖器,來(lái)做為主傳輸線介面(Host Lines interface)與網(wǎng)絡(luò)(Network)之間的封包傳輸及接收的儲(chǔ)存器。在此主通道轉(zhuǎn)接器1的硬件模組中,存在復(fù)數(shù)個(gè)直接存取記憶體(Direct Memory Access,DMA)引擎并由區(qū)域處理器下達(dá)指令以傳送資料于靜態(tài)隨機(jī)存取記憶體3和主記憶體(Host Memory)之間。每一個(gè)端口都對(duì)應(yīng)兩個(gè)硬件引擎(HardwareEngines),一個(gè)用于傳送而另一個(gè)則用于接收,此主通道轉(zhuǎn)接器1,舉例而言,是讓主中央處理單元(Host CPU)能夠連結(jié)到無(wú)限頻織網(wǎng)傳輸技術(shù)(Infiniband)的網(wǎng)絡(luò)上。
繼續(xù)參考圖1,當(dāng)封包源源不斷由實(shí)體層2經(jīng)由主通道轉(zhuǎn)接器1傳送到主記憶體(Host Memory)的過(guò)程中,會(huì)將完整的封包送進(jìn)靜態(tài)隨機(jī)存取記憶體3暫存,并同時(shí)復(fù)制一份封包標(biāo)頭(Packet header)至標(biāo)頭緩沖記憶體6暫存,以使接收處理器5不需經(jīng)由共享的動(dòng)態(tài)隨機(jī)存取記憶體4與靜態(tài)隨機(jī)存取記憶體3之間多次封包存取標(biāo)頭,而能快速取用封包的標(biāo)頭做快速的處理,而減輕靜態(tài)隨機(jī)存取記憶體3的存取載荷與減少動(dòng)態(tài)隨機(jī)存取記憶體4的負(fù)荷。
依習(xí)知技術(shù),接收處理器5欲存取封包標(biāo)頭時(shí),皆必須發(fā)一個(gè)指令周期至動(dòng)態(tài)隨機(jī)存取記憶體4,且一次只能存取一個(gè)位元,直到封包存取完畢,即所謂的非快取記憶體存取,因此雖然減少主記憶體到動(dòng)態(tài)隨機(jī)存取記憶體4之間封包搬運(yùn)的時(shí)間,但是存取的時(shí)間仍有待改善,使得接收處理器5處理封包的速度恐會(huì)影響整體的運(yùn)作。然而,一些內(nèi)嵌的接收處理器5使用內(nèi)部快取記憶體來(lái)存取標(biāo)頭緩沖記憶體6中進(jìn)入的封包標(biāo)頭,若無(wú)法偵測(cè)外部資料更新引起的快取失效(Invalidation)時(shí),會(huì)造成新的封包標(biāo)頭進(jìn)來(lái)使該標(biāo)頭緩沖記憶體6的內(nèi)容被更新后而未被載入內(nèi)部快取記憶體前或者是不在快取記憶體內(nèi),由于接收處理器5因每次所存取封包標(biāo)頭的地址相同,會(huì)發(fā)生快取擊中,此時(shí)接收處理器5所讀到的為先前的舊資料,故接收處理器5無(wú)法處理到資料更新的封包標(biāo)頭。
本發(fā)明的快取記憶體更新資料的結(jié)構(gòu),應(yīng)用于一區(qū)域處理器的快取系統(tǒng),以存取一主通道轉(zhuǎn)接器的接收資料,前述主通道轉(zhuǎn)接器讓一主中央處理單元能夠連結(jié)到無(wú)限頻織網(wǎng)傳輸網(wǎng)絡(luò)上,包含一緩沖記憶體,以暫存所接收的接收資料,且前述緩沖記憶體區(qū)分出若干緩沖區(qū)塊;一快取記憶體,設(shè)置于前述區(qū)域處理器內(nèi),藉由映射至一記憶體空間以定址到前述緩沖區(qū)塊;以及一資料載入機(jī)制,將每一前述緩沖區(qū)塊映射至前述記憶體空間的多個(gè)不同地址區(qū),藉由該區(qū)域處理器讀取有關(guān)于前述緩沖區(qū)塊的不同地址區(qū)時(shí),使該快取記憶體發(fā)生快取未中狀況,而載入該緩沖區(qū)塊的資料,以使前述快取記憶體獲得更新的接收標(biāo)頭。
本發(fā)明另一種快取記憶體更新資料的結(jié)構(gòu),應(yīng)用于一處理器的快取系統(tǒng),包含一外部記憶體,以暫存該處理器所接收的資料,前述外部記憶體區(qū)分出若干緩沖區(qū)塊;
一快取記憶體,設(shè)置于前述處理器內(nèi),藉由映射至一記憶體空間以定址到前述緩沖區(qū)塊;以及一資料載入機(jī)制,將每一前述緩沖區(qū)塊輪流映射至前述記憶體空間,藉由該處理器依序讀取前述記憶體空間的地址時(shí),使該快取記憶體發(fā)生快取未中狀況,而載入該緩沖區(qū)塊更新的接收資料。
本發(fā)明另一目的在于提供一種內(nèi)嵌處理器快取系統(tǒng)的更新資料的方法,利用記憶體空間強(qiáng)迫映射產(chǎn)生快取未中的影響,而自外部緩沖記憶體將更新的緩沖區(qū)塊載入快取記憶體中,以解決系統(tǒng)無(wú)法偵測(cè)外部資料更新引起的快取失效問(wèn)題。
本發(fā)明快取記憶體更新資料的方法,應(yīng)用于一處理器的快取系統(tǒng),包含區(qū)分前述處理器的外部記憶體為若干緩沖區(qū)塊,以暫存該處理器所接收的資料;定址一記憶體空間的不同地址區(qū)于前述外部記憶體的同一緩沖區(qū)塊;以及該處理器讀取前述不同地址區(qū)時(shí),使快取系統(tǒng)會(huì)發(fā)生快取未中的狀況,而依前述不同地址區(qū)的定址以載入前述外部記憶體的相同緩沖區(qū)塊,進(jìn)而獲得該緩沖區(qū)塊更新的資料。
本發(fā)明另一種快取記憶體更新資料的方法,應(yīng)用于一處理器的快取系統(tǒng),包含區(qū)分一外部記憶體為若干緩沖區(qū)塊,以暫存該處理器所接收的資料;輪流映射前述若干緩沖區(qū)塊至一記憶體空間;以及該處理器依序讀取前述記憶體空間時(shí),使快取系統(tǒng)會(huì)發(fā)生快取未中的狀況,輪流載入前述緩沖區(qū)塊的內(nèi)容,進(jìn)而獲得該緩沖區(qū)塊更新的資料。
本發(fā)明再一種快取記憶體更新資料的方法,應(yīng)用于一處理器的快取記憶體,包含
區(qū)分一外部記憶體為若干緩沖區(qū)塊,以暫存該處理器所接收的資料;輪流映射前述若干緩沖區(qū)塊至一記憶體地址范圍,該快取記憶體可定址前述記憶體地址范圍;以及該處理器依序讀取前述記憶體地址范圍時(shí),使快取記憶體會(huì)發(fā)生快取未中的狀況,輪流載入前述緩沖區(qū)塊的資料,進(jìn)而獲得該緩沖區(qū)塊更新的資料。
習(xí)知技術(shù)在高速傳輸網(wǎng)絡(luò)的區(qū)域處理器欲存取標(biāo)頭緩沖記憶體的封包標(biāo)頭時(shí),因區(qū)域處理器無(wú)法察覺(jué)快取記憶體內(nèi)部的資料是否有更新過(guò),所以區(qū)域處理器會(huì)讀到舊資料,而若采用非快取記憶體的方式,則處理封包的速度會(huì)變緩慢,而本發(fā)明道提供的快取系統(tǒng)的資料更新的結(jié)構(gòu),使一般內(nèi)嵌處理器的快取系統(tǒng)利用快取讀取控制的特性,將標(biāo)頭緩沖記憶體的封包標(biāo)頭強(qiáng)迫映射至一記憶體空間不同的地址,致使該處理器每次欲存取封包標(biāo)頭時(shí),皆發(fā)現(xiàn)為快取未中,進(jìn)而強(qiáng)迫其自外部緩沖記憶體輪流地要求新資料,故可提升其快取更新效能,且增加封包存取的速度。
圖2為本發(fā)明快取記憶體更新資料結(jié)構(gòu)的封包接收方塊圖。
圖3為本發(fā)明快取記憶體更新資料的示意圖。
圖4為本發(fā)明外部記憶體緩沖區(qū)塊映射的記憶體空間的地址示意圖。
標(biāo)號(hào)說(shuō)明1主通道轉(zhuǎn)接器 2實(shí)體層3靜態(tài)隨機(jī)存取記憶體 4動(dòng)態(tài)隨機(jī)存取記憶體5接收處理器 6標(biāo)頭緩沖記憶體7記憶體空間 8傳送處理器51快取記憶體61緩沖區(qū)塊具體實(shí)施方式
本發(fā)明提供一種快取記憶體更新資料的方法,應(yīng)用于一內(nèi)嵌處理器的快取系統(tǒng),該處理器內(nèi)部包含一快取記憶體以映射存取一外部記憶體的資料,該方法包含規(guī)劃區(qū)分該外部記憶體為若干緩沖區(qū)塊;定址一記憶體空間的不同地址區(qū)至該外部記憶體的同一緩沖區(qū)塊,使緩沖區(qū)塊的內(nèi)容同時(shí)映射至該不同地址區(qū)所定址的記憶體空間;以及,該處理器可讀取有關(guān)于同一緩沖區(qū)塊的前述不同地址區(qū),使快取系統(tǒng)發(fā)生快取未中的狀況,即讀取預(yù)期會(huì)發(fā)生快取未中的地址區(qū),是不在快取記憶體的映射區(qū)域內(nèi),迫使其快取系統(tǒng)自該緩沖區(qū)塊載入更新的內(nèi)容。
在本發(fā)明的一實(shí)施例中,如上述無(wú)限頻織網(wǎng)傳輸技術(shù)的封包接收環(huán)境中,請(qǐng)參閱圖2所示,具有快取系統(tǒng)的接收處理器5從主通道轉(zhuǎn)接器1的標(biāo)頭緩沖記憶體6載入接收的封包標(biāo)頭,本發(fā)明快取記憶體更新資料的方法包含區(qū)分標(biāo)頭緩沖記憶體6為若干緩沖區(qū)塊61以?xún)?chǔ)存接收的封包標(biāo)頭;定址一記憶體空間的不同地址區(qū)至標(biāo)頭緩沖記憶體6的同一緩沖區(qū)塊61,簡(jiǎn)言之,接收處理器5的快取記憶體51映射該記憶體空間的不同地址區(qū)可定址到標(biāo)頭緩沖記憶體6的同一緩沖區(qū)塊61;以及,當(dāng)該接收處理器5讀取一緩沖區(qū)塊61的封包標(biāo)頭時(shí),可藉由定址有關(guān)于該緩沖區(qū)塊61的不同地址區(qū),是不在快取記憶體51所映射的記憶體空間,使快取系統(tǒng)發(fā)生快取未中的狀況,進(jìn)而使快取系統(tǒng)自該緩沖區(qū)塊61載入更新的封包標(biāo)頭。
請(qǐng)參閱圖3所示,在本發(fā)明此一實(shí)施例中,標(biāo)頭緩沖記憶體6是區(qū)分出若干個(gè)緩沖區(qū)塊A、B,用以暫存所接收封包的標(biāo)頭,當(dāng)區(qū)域處理器5欲存取封包的標(biāo)頭時(shí),先至其內(nèi)部的快取記憶體51讀取,且藉由一資料載入機(jī)制,此機(jī)制將標(biāo)頭緩沖記憶體6的一緩沖區(qū)塊61強(qiáng)迫映射至一記憶體空間的多個(gè)不同地址區(qū),且該記憶體空間的地址區(qū)皆為接收處理器5可定址讀取的地址范圍,致使接收處理器5每次欲存取緩沖區(qū)塊61的封包標(biāo)頭,可藉由定址該緩沖區(qū)塊61不在快取記憶體51映射范圍的地址區(qū),使其快取系統(tǒng)皆發(fā)現(xiàn)為快取未中的狀態(tài),而強(qiáng)迫接收處理器5至主通道轉(zhuǎn)接器1中,向標(biāo)頭緩沖記憶體6的緩沖區(qū)塊A與緩沖區(qū)塊B輪流要求更新資料,致使接收處理器5的快取記憶體51能獲得更新。
上述所謂一資料載入機(jī)制,是將標(biāo)頭緩沖記憶體6的緩沖區(qū)塊61重復(fù)強(qiáng)迫映射至一記憶體空間7(如圖4所示)的不同地址,藉由該接收處理器5讀取前述不同地址時(shí),使該快取記憶體51會(huì)發(fā)生快取未中狀況,而依前述不同地址載入標(biāo)頭緩沖記憶體6的相同緩沖區(qū)塊61,以使快取記憶體51獲得更新的封包的標(biāo)頭;或是將一記憶體空間7的不同地址區(qū)定址于標(biāo)頭緩沖記憶體6的同一緩沖區(qū)塊61,藉由該區(qū)域處理器5讀取前述不同地址區(qū)的定址會(huì)載入標(biāo)頭緩沖記憶體6的相同緩沖區(qū)塊61,以使快取記憶體51獲得更新的封包的標(biāo)頭。
請(qǐng)參閱圖4并配合參閱圖3,顯示本發(fā)明快取記憶體更新資料結(jié)構(gòu)的一實(shí)施例映射的記憶體空間示意圖,其中假設(shè)已知記憶體空間7的地址范圍為地址1000至地址6000是為接收處理器5可定址讀取的地址范圍,則將標(biāo)頭緩沖記憶體6的緩沖區(qū)塊61的內(nèi)容強(qiáng)迫映射至該記憶體空間7的不同地址區(qū)。例如,緩沖區(qū)塊A的內(nèi)容同時(shí)強(qiáng)迫映射至該記憶體空間7的地址1000-2000以及地址3000-4000。當(dāng)封包由實(shí)體層2經(jīng)主通道轉(zhuǎn)接器1傳送至主記憶體的過(guò)程中,完整的封包將會(huì)傳送至靜態(tài)隨機(jī)存取記憶體3暫存,并同時(shí)復(fù)制此封包的標(biāo)頭至標(biāo)頭緩沖記憶體6的緩沖區(qū)塊A暫存,因此,接收處理器5定址地址1000或地址3000而皆可讀取緩沖區(qū)塊A的封包標(biāo)頭。
在接收處理器5讀取快取記憶體51所映射的地址區(qū)1000-2000時(shí),緩沖區(qū)塊A的封包標(biāo)頭已被載入快取記憶體51中,待新的封包標(biāo)頭進(jìn)來(lái)使該緩沖區(qū)塊A的內(nèi)容被更新后而未被載入內(nèi)部快取記憶體51前或者是不在快取記憶體51內(nèi),接收處理器5可藉由讀取地址區(qū)3000-4000,使快取系統(tǒng)發(fā)現(xiàn)為快取未中的狀態(tài),迫使接收處理器5至主通道轉(zhuǎn)接器1中,向標(biāo)頭緩沖記憶體6的緩沖區(qū)塊A要求更新封包標(biāo)頭資料。
如此,緩沖區(qū)塊A與緩沖區(qū)塊B輪流映射至地址1000-6000記憶體空間內(nèi)的不同地址區(qū),則接收處理器5依序讀取該地址范圍1000-6000的內(nèi)容,將促使快取記憶體51內(nèi)的資料被輪流更新,進(jìn)而獲得封包的快速處理。
本發(fā)明快取記憶體更新資料的結(jié)構(gòu)及方法將具有諸多優(yōu)點(diǎn)與特征,其中本發(fā)明利用快取控制的特性,已知某些地址為區(qū)域處理器存取時(shí)會(huì)發(fā)生快取未中的地址,則將標(biāo)頭緩沖記憶體的部分區(qū)塊強(qiáng)迫映射至一記憶體空間的多個(gè)不同地址區(qū),致使區(qū)域處理器處理該區(qū)塊的封包標(biāo)頭時(shí),籍由讀取預(yù)期會(huì)發(fā)生快取未中的不同地址區(qū),而定址到相同的記憶體區(qū)塊以載入到快取記憶體中,獲得更新的封包標(biāo)頭,使區(qū)域處理器能正確處理進(jìn)入的封包,故有效地增加封包的處理速度。
雖然本發(fā)明以較佳實(shí)施例描述如上,但熟悉本行的人士可修改在本文中所描述的發(fā)明,同時(shí)獲致本發(fā)明的功效。因此,了解以上的描述對(duì)熟悉本行技藝的人士而言為一廣泛的揭示,且其內(nèi)容不在于限制本發(fā)明。
權(quán)利要求
1.一種快取記憶體更新資料的結(jié)構(gòu),應(yīng)用于一區(qū)域處理器的快取系統(tǒng),以存取一主通道轉(zhuǎn)接器的接收資料,前述主通道轉(zhuǎn)接器讓一主中央處理單元能夠連結(jié)到無(wú)限頻織網(wǎng)傳輸網(wǎng)絡(luò)上,其特征在于包含一緩沖記憶體,以暫存所接收的接收資料,且前述緩沖記憶體區(qū)分出若干緩沖區(qū)塊;一快取記憶體,設(shè)置于前述區(qū)域處理器內(nèi),藉由映射至一記憶體空間以定址到前述緩沖區(qū)塊;以及一資料載入機(jī)制,將每一前述緩沖區(qū)塊映射至前述記憶體空間的多個(gè)不同地址區(qū),藉由該區(qū)域處理器讀取有關(guān)于前述緩沖區(qū)塊的不同地址區(qū)時(shí),使該快取記憶體發(fā)生快取未中狀況,而載入該緩沖區(qū)塊的資料,以使前述快取記憶體獲得更新的接收標(biāo)頭。
2.如權(quán)利要求1所述的快取記憶體更新資料的結(jié)構(gòu),其特征在于所述緩沖記憶體暫存的接收資料為封包標(biāo)頭。
3.如權(quán)利要求1所述的快取記憶體更新資料的結(jié)構(gòu),其特征在于所述緩沖記憶體的緩沖區(qū)塊輪流映射至前述記憶體空間。
4.如權(quán)利要求3所述的快取記憶體更新資料的結(jié)構(gòu),其特征在于所述區(qū)域處理器依序讀取所述記憶體空間的地址時(shí),使該快取記憶體發(fā)生快取未中狀況,而載入該緩沖區(qū)塊更新的接收資料。
5.一種快取記憶體更新資料的結(jié)構(gòu),應(yīng)用于一處理器的快取系統(tǒng),其特征在于包含一外部記憶體,以暫存該處理器所接收的資料,前述外部記憶體區(qū)分出若干緩沖區(qū)塊;一快取記憶體,設(shè)置于前述處理器內(nèi),藉由映射至一記憶體空間以定址到前述緩沖區(qū)塊;以及一資料載入機(jī)制,將每一前述緩沖區(qū)塊輪流映射至前述記憶體空間,藉由該處理器依序讀取前述記憶體空間的地址時(shí),使該快取記憶體發(fā)生快取未中狀況,而載入該緩沖區(qū)塊更新的接收資料。
6.如權(quán)利要求5所述的快取記憶體更新資料的結(jié)構(gòu),其特征在于所述外部記憶體的一緩沖區(qū)塊強(qiáng)迫映射至所述記憶體空間的多個(gè)不同地址區(qū)。
7.如權(quán)利要求6所述的快取記憶體更新資料的結(jié)構(gòu),其特征在于所述處理器讀取有關(guān)于所述緩沖區(qū)塊的不同地址區(qū),使該快取記憶體發(fā)生快取未中狀況,進(jìn)而載入該緩沖區(qū)塊更新的接收資料。
8.一種快取記憶體更新資料的方法,應(yīng)用于一處理器的快取系統(tǒng),包含區(qū)分前述處理器的外部記憶體為若干緩沖區(qū)塊,以暫存該處理器所接收的資料;定址一記憶體空間的不同地址區(qū)于前述外部記憶體的同一緩沖區(qū)塊;以及該處理器讀取前述不同地址區(qū)時(shí),使快取系統(tǒng)會(huì)發(fā)生快取未中的狀況,而依前述不同地址區(qū)的定址以載入前述外部記憶體的相同緩沖區(qū)塊,進(jìn)而獲得該緩沖區(qū)塊更新的資料。
9.一種快取記憶體更新資料的方法,應(yīng)用于一處理器的快取系統(tǒng),包含區(qū)分一外部記憶體為若干緩沖區(qū)塊,以暫存該處理器所接收的資料;輪流映射前述若干緩沖區(qū)塊至一記憶體空間;以及該處理器依序讀取前述記憶體空間時(shí),使快取系統(tǒng)會(huì)發(fā)生快取未中的狀況,輪流載入前述緩沖區(qū)塊的內(nèi)容,進(jìn)而獲得該緩沖區(qū)塊更新的資料。
10.一種快取記憶體更新資料的方法,應(yīng)用于一處理器的快取記憶體,包含區(qū)分一外部記憶體為若干緩沖區(qū)塊,以暫存該處理器所接收的資料;輪流映射前述若干緩沖區(qū)塊至一記憶體地址范圍,該快取記憶體可定址前述記憶體地址范圍;以及該處理器依序讀取前述記憶體地址范圍時(shí),使快取記憶體會(huì)發(fā)生快取未中的狀況,輪流載入前述緩沖區(qū)塊的資料,進(jìn)而獲得該緩沖區(qū)塊更新的資料。
全文摘要
本發(fā)明有關(guān)于區(qū)域處理器內(nèi)部快取記憶體更新資料的結(jié)構(gòu)及方法,利用一快取控制的特性,將標(biāo)頭緩沖器的封包標(biāo)頭強(qiáng)迫映射至一記憶體空間不同的地址,致使處理器每次欲存取其內(nèi)部的快取記憶體時(shí),皆發(fā)現(xiàn)為快取未中,而強(qiáng)迫其至主通道轉(zhuǎn)接器中向標(biāo)頭緩沖記憶體的緩沖區(qū)塊A與緩沖區(qū)塊B兩者輪流地要求資料,且將整個(gè)區(qū)塊載入快取記憶體中,故可提升其快取更新效能,且增加封包存取的速度。
文檔編號(hào)G06F12/08GK1405685SQ02146219
公開(kāi)日2003年3月26日 申請(qǐng)日期2002年10月16日 優(yōu)先權(quán)日2002年10月16日
發(fā)明者林志鋼, 陳維彬 申請(qǐng)人:威盛電子股份有限公司