專利名稱:用于可拆卸裝置的具有高速緩存和接口的數(shù)據(jù)處理電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理電路和執(zhí)行數(shù)據(jù)處理的方法。
背景技術(shù):
美國專利第5778431號披露了一種具有動(dòng)態(tài)可拆卸裝置的數(shù)據(jù)處理電路。數(shù)據(jù)處理電路的內(nèi)存空間的一部分與可拆卸裝置相關(guān)聯(lián)。數(shù)據(jù)處理電路具有高速緩沖存儲器。當(dāng)可拆卸裝置在操作過程中被拆卸時(shí),當(dāng)與可拆卸裝置的地址相對應(yīng)的數(shù)據(jù)存儲在高速緩沖存儲器中時(shí),可能會出現(xiàn)問題。拆卸后,從高速緩沖存儲器中寫回是不可能的,因此可能會出現(xiàn)前后不一致。因此,需要特別的方法高速緩存來自這樣的可拆卸裝置的數(shù)據(jù),。一種規(guī)避這個(gè)問題的方法是,避免與可拆卸設(shè)備相關(guān)地址的所有高速緩存數(shù)據(jù), 但是這降低了系統(tǒng)的性能。美國專利第5778431號公開了一種解決方案,其包括自動(dòng)寫回包含可拆卸裝置中地址的數(shù)據(jù)的高速緩存行(cache line)。提供了兩個(gè)寄存器,包含分別指示所述部分存儲器空間的起始地址和結(jié)束地址的數(shù)據(jù)。兩個(gè)比較器比較高速緩存數(shù)據(jù)的地址標(biāo)簽和寄存器中的數(shù)據(jù)。在拆卸裝置時(shí),所有高速緩存行的地址標(biāo)簽均與起始和結(jié)束地址進(jìn)行比較,并且使具有在起始和結(jié)束地址之間的地址標(biāo)簽的高速緩存行無效。但是,已經(jīng)發(fā)現(xiàn)這將導(dǎo)致過多的數(shù)據(jù)無效。
發(fā)明內(nèi)容
本發(fā)明的目的之一是提供一種數(shù)據(jù)處理電路,當(dāng)裝置在功能上從電路中拆卸時(shí), 無效的高速緩存數(shù)據(jù)較少,并且需要寫回可拆卸裝置的高速緩存數(shù)據(jù)較少。提供了根據(jù)權(quán)利要求1的一種數(shù)據(jù)處理電路。在本文中,高速緩存電路耦合在處理器和可拆卸裝置的接口之間。高速緩存電路包含配置為響應(yīng)于沖刷(flush)命令選擇性地寫回一部分高速緩存數(shù)據(jù)的高速緩存控制電路。在加載高速緩存行到高速緩沖存儲器時(shí),高速緩存控制電路測試高速緩存行是否具有分配給可拆卸裝置的地址范圍內(nèi)的地址, 并且如果是,它存儲覆蓋在沖刷中使用的高速緩存行的標(biāo)識。標(biāo)識可以覆蓋高速緩存行,例如因?yàn)樗甘靖咚倬彺嫘械牡刂坊虻刂凡糠郑蛘咭驗(yàn)闃?biāo)識表示包括高速緩存行的地址的地址范圍,或者因?yàn)槔绠?dāng)每一個(gè)高速緩存行存儲元件具有標(biāo)志時(shí),通過為加載了高速緩存行的高速緩存行存儲元件設(shè)置標(biāo)志,或通過存儲到存儲了高速緩存行的高速緩存行存儲元件的指針,標(biāo)識指示存儲高速緩存行的高速緩存行存儲元件。標(biāo)識使在沖刷命令執(zhí)行期間以較小的電路開銷快速寫回選擇的高速緩存行是可能的。在實(shí)施例中,使用地址范圍的表示(例如起始和結(jié)束地址,或起始地址和長度)來指示響應(yīng)沖刷命令被寫回的高速緩存行。當(dāng)加載被檢測到位于范圍之外但位于分配給可拆卸裝置的地址范圍內(nèi)的地址處的高速緩存行時(shí),將該范圍擴(kuò)大。已經(jīng)發(fā)現(xiàn),在許多情況下, 連續(xù)地址的高速緩存行被加載。作為結(jié)果,使用范圍的表示來選擇用于以較小電路開銷和最小的不必要寫回來進(jìn)行寫回的高速緩存行。在高速緩存電路中的寄存器可以用來表示所述范圍。
在一個(gè)實(shí)施例中,對于單一地址的存儲空間,可存儲標(biāo)識具有分配給可拆卸裝置的范圍內(nèi)的地址的一個(gè)單獨(dú)的高速緩存行的地址或地址部分??梢詫τ跇?biāo)識各個(gè)單獨(dú)的高速緩存行的多個(gè)單獨(dú)的地址或地址部分提供存儲空間。當(dāng)具有分配給可拆卸裝置的范圍內(nèi)的地址的高速緩存行比能在存儲空間內(nèi)存儲的數(shù)量多時(shí),高速緩存控制電路切換到搜索模式以搜索在接收到?jīng)_刷命令時(shí)將要寫回的高速緩存行。公共存儲空間可用于存儲適用于多個(gè)高速緩存電路的沖刷的高速緩存行的標(biāo)識。 這將減少開銷。
使用下列附圖,從典型實(shí)施例的描述中,這些和其它目標(biāo)和優(yōu)勢方面將是顯而易見的。圖1示出了具有高速緩存和可拆卸裝置的數(shù)據(jù)處理電路。圖2示出了具有多個(gè)處理器的數(shù)據(jù)處理電路。
具體實(shí)施例方式圖1示出了數(shù)據(jù)處理電路,包含處理器10,高速緩存電路12,通信電路14,存儲器電路16,可選的拆卸檢測器17和用于可拆卸裝置的接口 18。通過示例,示出了與設(shè)備接口 18相連的裝置19。所謂“可拆卸”是指該裝置19在操作過程中可以以任何方式在功能上拆卸,例如通過物理拆除,或移出無線通訊設(shè)備的接收范圍,或者到設(shè)備的電源被切斷或設(shè)備的操作模式被更改,從而它不再能夠從高速緩沖存儲器接收寫回?cái)?shù)據(jù)等。處理器10經(jīng)過高速緩存電路12耦合到通信電路14。經(jīng)過通信線路14,處理器10 和高速緩存電路12耦合到存儲器電路16和接口 18。高速緩存電路12包含高速緩沖存儲器120、高速緩存控制電路122和一組寄存器124。高速緩沖存儲器120具有耦合到處理器 10和通信電路14的端口。高速緩存控制電路122耦合到高速緩沖存儲器120、通信電路14 和一組寄存器124。拆卸檢測器17是可選的。當(dāng)使用它時(shí),它具有耦合到接口 18的輸入。 通過示例,描述了具有直接耦合到高速緩存控制電路122的輸出的拆卸檢測器17。拆卸檢測器17配置為檢測拆卸開始和產(chǎn)生指示即將來臨的拆卸的信號。在工作中,處理器10執(zhí)行包含訪問通過它的存儲空間內(nèi)的地址所尋址的數(shù)據(jù)的任務(wù)。例如該任務(wù)可以在特定的計(jì)算機(jī)程序任務(wù)的控制下執(zhí)行。當(dāng)它連接到接口 18時(shí),所述地址映射到存儲器電路16和可拆卸裝置19中的存儲位置。高速緩存電路12使用已知方式高速緩存至少部分這些地址的數(shù)據(jù)。當(dāng)處理器從 10從地址進(jìn)行讀取,并且該地址的數(shù)據(jù)被存儲在高速緩沖存儲器120中時(shí),高速緩存電路 12從高速緩沖存儲器120中返回?cái)?shù)據(jù)到處理器10。如果地址的數(shù)據(jù)不是存儲在高速緩沖存儲器120中,則高速緩沖存儲器120向高速緩存控制電路122報(bào)警,高速緩存控制電路122 經(jīng)過通信線路14發(fā)布地址或地址的一部分到存儲器電路16或可拆卸裝置19,以獲取該地址的數(shù)據(jù)提供給處理器10。高速緩存控制電路122控制高速緩沖存儲器120,以存儲與地址相關(guān)聯(lián)的返回?cái)?shù)據(jù)。這樣的與地址相關(guān)聯(lián)的存儲本身也是已知的。在實(shí)施例中,具有多個(gè)地址的數(shù)據(jù)的高速緩存行與相關(guān)聯(lián)的用于標(biāo)識在高速緩存行中的數(shù)據(jù)的部分地址的標(biāo)簽一起存儲。在其他實(shí)施例中,可以存儲單獨(dú)地址的地址標(biāo)簽。部分地址可以暗含在高速緩沖存儲器120中存儲數(shù)據(jù)的位置處。如有必要,高速緩存控制電路122 “驅(qū)逐”(使無效)在高速緩沖存儲器 120中的舊數(shù)據(jù),以騰出空間存儲新獲取的數(shù)據(jù)。一組寄存器IM包含保持標(biāo)識與可拆卸裝置19相關(guān)聯(lián)的地址范圍的信息的第一寄存器,和保持標(biāo)識用于存儲在高速緩沖存儲器120中的范圍內(nèi)的地址的高速緩存行的信息的至少一個(gè)寄存器。當(dāng)高速緩存控制電路122導(dǎo)致高速緩存行存儲在高速緩沖存儲器 120時(shí),基于在一組寄存器124中的寄存器中的信息,高速緩存控制電路122比較用于經(jīng)過通信電路14尋址高速緩存行(或其中的數(shù)據(jù))的地址與可拆卸裝置19相關(guān)聯(lián)的地址范圍。 如果高速緩存控制電路122檢測到用于高速緩存行的地址位于該范圍內(nèi),高速緩存控制電路122促使高速緩存行的標(biāo)識存儲到一組寄存器124的第二寄存器中。在接收到來自可拆卸裝置19的請求(沖刷命令),或可選地接收到來自拆卸檢測器17的即將拆卸信號時(shí),高速緩存控制電路122訪問寄存器組124的第二寄存器,以確定高速緩沖存儲器120是否包含具有為可拆卸裝置19定義的范圍內(nèi)的地址的高速緩存行。如果是,則高速緩存控制電路122選擇性地促使此高速緩存行被寫回。代替直接提供來自拆卸檢測器17的信號到高速緩存控制電路122,信號可以提供到處理器10,或其它電路(未示出),以觸發(fā)沖刷命令的生成。在實(shí)施例中,拆卸檢測器17配置為在拆卸發(fā)生后檢測拆卸。在此情況下,處理器10可配置為通過以下操作響應(yīng)來自拆卸檢測器17的信號測試寄存器組1 是否指示對于可拆卸裝置19中的至少一個(gè)地址的寫入數(shù)據(jù)在高速緩沖存儲器 120中,如果是,則在執(zhí)行寫回之前發(fā)布提示以重新連接可拆卸裝置。在實(shí)施例中,高速緩存控制電路122也可以響應(yīng)由來自拆卸檢測器17的請求或信號所指示的沖刷命令,使這些寫回的高速緩存行無效。這防止了高速緩存數(shù)據(jù)的進(jìn)一步使用??蛇x的,高速緩存控制電路122可以使數(shù)據(jù)有效,以使處理器能夠使用這些數(shù)據(jù)完成當(dāng)前任務(wù)。在此示例中,高速緩存控制電路122可以通過屏蔽對于這些高速緩存行的后續(xù)寫入來響應(yīng)沖刷命令。在第二寄存器中的高速緩存行的標(biāo)識可以采取地址或地址部分的形式。在此示例中,高速緩存控制電路122可以通過比較來自第二寄存器的地址標(biāo)簽和用于高速緩沖存儲器中的位置的地址標(biāo)簽,來選擇在高速緩沖存儲器120中存儲高速緩存行的位置。在一個(gè) η條路徑組相連的存儲器中,這可以包含使用來自第二寄存器的地址或地址部分,以識別存儲高速緩存行的組,和比較部分地址和對于不同路徑的標(biāo)簽,以識別存儲高速緩存行的路徑??蛇x地,第二寄存器可以包含直接高速緩沖存儲器地址,例如直接標(biāo)識一個(gè)組和一條路徑。如果第二寄存器僅能夠存儲針對一個(gè)高速緩存行的信息,當(dāng)在高速緩存中可能存在可拆卸裝置19的范圍內(nèi)的多于一個(gè)的高速緩存行時(shí),需要特別的方法。在實(shí)施例中,高速緩存控制電路122可以在寄存器組124中記錄在高速緩沖存儲器120中是否有多于一個(gè)這樣的高速緩存行。如果是,則在此實(shí)施例中,高速緩存控制電路 122可以切換到測試用于可拆卸裝置19的范圍內(nèi)的數(shù)據(jù)的高速緩沖存儲器120中的所有高速緩存行,并且寫回所有這些高速緩存行。在另一實(shí)施例中,寄存器組1 中的多個(gè)寄存器可以用來表示高速緩沖存儲器120中在可拆卸裝置19的范圍內(nèi)的高速緩存行的相應(yīng)地址。 在此實(shí)施例中,高速緩存控制電路122使用這些寄存器來針對所有這些地址選擇高速緩存行。如果可用寄存器的數(shù)量小于具有可拆卸裝置范圍內(nèi)的地址的高速緩存行的數(shù)量,高速緩存控制電路122可以寫回所有具有可拆卸裝置范圍內(nèi)的地址的高速緩存行。在另一實(shí)施例中,高速緩存控制電路122可以使用寄存器組124中的兩個(gè)第二寄存器以表示高速緩沖存儲器120的范圍中的高速緩存行的低地址和高地址。在此實(shí)施例中,高速緩存控制電路122可以寫回所有從低地址到高地址的地址的高速緩存行。高速緩存控制電路122根據(jù)載入到高速緩存中的高速緩存行的地址,更新這些寄存器的內(nèi)容。高速緩存控制電路122可以將載入的高速緩存行的這些地址,與分配給可拆卸裝置19的地址的范圍和由第二寄存器表示的范圍比較。高速緩存控制電路122擴(kuò)大了后者的范圍,以包括新加載的高速緩存行的地址,如果該地址是在分配給可拆卸裝置19的地址的范圍內(nèi),但在由第二寄存器表示的范圍外的話。寄存器組IM可以使用單獨(dú)的寄存器實(shí)現(xiàn),或通過輔助存儲器來實(shí)現(xiàn),其中寄存器是相應(yīng)存儲器位置。高速緩存控制電路122可以是可編程電路,其具有以固定程序執(zhí)行如所描述的功能的程序存儲器??蛇x地,在高速緩存控制電路122中可提供專用電路以執(zhí)行這些功能。圖2描述了具有多個(gè)處理器20 (通過示例展示了 2個(gè),但也可以使用更多個(gè))的數(shù)據(jù)處理電路的實(shí)施例,每一個(gè)處理器具有它自己的耦合在處理器20和通信電路14之間的高速緩存電路22。這里,公共寄存器組M被提供給所有的高速緩存電路22,以定義與可拆卸裝置19相關(guān)聯(lián)的地址范圍。在高速緩存電路22中,提供相應(yīng)的寄存器組沈,用于存儲關(guān)于相應(yīng)的高速緩存電路22中的該范圍內(nèi)的地址的高速緩存行的信息。在此實(shí)施例中,高速緩存電路22的高速緩存控制電路122使用公共寄存器組M,與新存儲在它們的高速緩沖存儲器120中的高速緩存行的地址相比較,以確定是否將關(guān)于那些高速緩存行的信息寫入到它們相應(yīng)的寄存器組26中。在接收到?jīng)_刷命令時(shí),公共寄存器組M可以用于控制從所有高速緩存電路22的寫回。可以提供公共控制模塊以控制從所有高速緩存電路的寫回。公共控制模塊可以實(shí)現(xiàn)為拆卸檢測器(未示出),或其它沖刷命令產(chǎn)生器,其耦合到可拆卸電路的接口和每一個(gè)處理器20的高速緩存電路22的高速緩存控制電路122??蛇x地,可以使用耦合到處理器20 之一的拆卸檢測器,或其它的沖刷命令產(chǎn)生器,所述處理器包含軟件沖刷控制模塊以通過發(fā)布沖刷命令到所有高速緩存電路來響應(yīng)拆卸信號。可以使用沖刷控制模塊的任何其它位置。在一個(gè)可選實(shí)施例中,定義與可拆卸裝置19相關(guān)聯(lián)的地址范圍的信息的備份可以存儲在每一個(gè)相應(yīng)的寄存器組沈中以供高速緩存控制電路122使用。通過學(xué)習(xí)附圖、披露文件和附加權(quán)利要求,本領(lǐng)域的技術(shù)人員在實(shí)踐所請求保護(hù)的發(fā)明時(shí)可以理解和實(shí)現(xiàn)對披露的實(shí)施例的其它變化。在權(quán)利要求中,詞語“包含”并不排除其他元件或步驟。一個(gè)單一處理器或其它單元可以滿足權(quán)利要求中敘述的幾個(gè)條目的功能。在互相不同且互相從屬的權(quán)利要求中敘述的確定的方法并不意味著,這些方法的組合不能用來使其更有利。一個(gè)計(jì)算機(jī)程序可以存儲/分布在合適的媒介中,如光學(xué)存儲介質(zhì)或與其它硬件一起或作為其它硬件的一部分的固態(tài)介質(zhì),但可以以其它的形式分布,如經(jīng)過互聯(lián)網(wǎng)或其它有線或無線通信系統(tǒng)。權(quán)利要求中的任何參考符號不應(yīng)解釋為限制發(fā)明的范疇。
權(quán)利要求
1.一種數(shù)據(jù)處理電路,包含處理器(10);用于功能上的可拆卸裝置(19)的接口 (18);和耦合在處理器(10)和所述接口(18)之間的高速緩存電路(12),所述高速緩存電路(12)包含-高速緩沖存儲器(120);和-高速緩存控制電路(122),配置為在將高速緩存行加載到高速緩沖存儲器(120)中時(shí),測試所述高速緩存行的地址是否在當(dāng)功能上的可拆卸裝置(19)耦合到所述接口(18) 時(shí)分配給所述功能上的可拆卸裝置的可拆卸裝置地址范圍內(nèi),并且如果所述高速緩存行的地址在所述可拆卸裝置地址范圍內(nèi),則存儲覆蓋所述高速緩存行的地址的標(biāo)識,高速緩存控制電路(12 進(jìn)一步配置為接收沖刷命令,并且通過選擇性地寫回一部分高速緩存的數(shù)據(jù)來響應(yīng)沖刷命令,所述一部分高速緩存的數(shù)據(jù)是在所存儲的標(biāo)識的控制下選擇的。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路,包含用于存儲必須寫回的數(shù)據(jù)的地址的更新范圍的邊界的表示的存儲空間(1 ),高速緩存控制電路(122)配置為當(dāng)高速緩存行的地址處于所述可拆卸裝置地址范圍內(nèi)但處于所述更新范圍之外時(shí),在將所述高速緩存行加載到高速緩沖存儲器(120)中時(shí),更新所存儲的表示,以擴(kuò)展所述更新范圍。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理電路,其中存儲空間(124)包含用于存儲更新范圍的起始地址或地址部分的第一寄存器,和用于存儲更新范圍的結(jié)束地址或地址部分或更新范圍的長度的表示的第二寄存器。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路,包含用于存儲第一高速緩存行的標(biāo)識和指示了需要對多于一個(gè)高緩存行進(jìn)行寫回的信息的存儲空間(1 ),高速緩存控制電路(122) 配置為-當(dāng)?shù)谝桓咚倬彺嫘芯哂锌刹鹦堆b置地址范圍內(nèi)的地址時(shí),在加載第一高速緩存行時(shí), 存儲第一高速緩存行的標(biāo)識,和-當(dāng)隨后的高速緩存行具有可拆卸裝置地址范圍內(nèi)的地址時(shí),在加載所述隨后的高速緩存行時(shí),存儲所述指示了需要對多于一個(gè)高速緩存行進(jìn)行寫回的信息,高速緩存控制電路(122)配置為-響應(yīng)于沖刷命令,在只基于第一高速緩存行的標(biāo)識進(jìn)行寫回與根據(jù)所述指示了需要對多于一個(gè)高速緩存行進(jìn)行寫回的信息而在可拆卸裝置地址范圍內(nèi)搜索高速緩存行之間切換。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理電路,其中存儲空間(124)包含用于存儲第一高速緩存行的地址或地址部分的寄存器。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路,其中高速緩沖存儲器(100)包含-相關(guān)聯(lián)的高速緩存行存儲元件,和-與相應(yīng)的存儲元件相關(guān)聯(lián)的存儲位置,高速緩存控制電路(12 配置為當(dāng)高速緩存行具有可拆卸裝置地址范圍內(nèi)的地址時(shí),在加載所述高速緩存行時(shí),在與存儲所述高速緩存行的高速緩存行存儲元件相關(guān)聯(lián)的存儲位置設(shè)置標(biāo)志。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路,其中高速緩沖存儲器(120)包含關(guān)聯(lián)高速緩存行存儲元件和標(biāo)志存儲位置,高速緩存控制電路配置為當(dāng)高速緩存行具有可拆卸裝置地址范圍內(nèi)的地址時(shí),在加載所述高速緩存行時(shí),在標(biāo)志存儲位置和存儲所述高速緩存行的高速緩存行存儲元件之間設(shè)置關(guān)聯(lián)。
8.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路,包含多個(gè)處理器(20),和多個(gè)高速緩存電路 (22),所述多個(gè)高速緩存電路0 耦合在所述用于可拆卸裝置(19)的接口(18)和相應(yīng)的處理器OO)之間,處理電路還包含用于存儲適用于所有高速緩存電路0 的所述標(biāo)識的公共存儲空間04)。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)處理電路,包含沖刷控制模塊,配置為通過促使多個(gè)高速緩存電路的每一個(gè)基于適用于所有高速緩存電路的所述標(biāo)識來選擇性地寫回高速緩存數(shù)據(jù),以響應(yīng)對于可拆卸裝置的沖刷命令。
10.一種使用耦合到功能上的可拆卸裝置(19)的處理器(10)處理數(shù)據(jù)的方法,其中具有高速緩沖存儲器(120)的高速緩存電路(1 耦合在處理器(10)和可拆卸裝置(19)之間,所述方法包含-將高速緩存行加載到高速緩沖存儲器(120)中;-在進(jìn)行所述加載時(shí),測試所述高速緩存行是否具有分配給可拆卸裝置(19)的可拆卸裝置地址范圍內(nèi)的地址;-如果地址處于可拆卸裝置地址范圍內(nèi),存儲覆蓋所述高速緩存行的標(biāo)識;-接收沖刷命令以選擇性地寫回一部分高速緩存數(shù)據(jù);-使用所述標(biāo)識來選擇用于所述寫回的高速緩存行。
全文摘要
一種使用高速緩存電路(12)處理數(shù)據(jù)的處理器(10)。處理器(20)經(jīng)過高速緩存電路(12)耦合到功能上的可拆卸裝置(19)。當(dāng)高速緩存行被載入高速緩存存儲器(120)時(shí),測試高速緩存行是否具有分配給可拆卸裝置(19)的可拆卸裝置地址范圍內(nèi)的地址。如果是,則存儲高速緩存行的標(biāo)識或包括高速緩存行的地址的地址范圍。當(dāng)接收到需要寫回高速緩存數(shù)據(jù)到可拆卸裝置的沖刷命令時(shí),使用標(biāo)識以選擇用于選擇性寫回到可拆卸裝置的高速緩存行。因此,當(dāng)裝置可從電路中功能上拆卸時(shí),需要無效的高速緩存數(shù)據(jù)較少。
文檔編號G06F12/08GK102197381SQ200980142904
公開日2011年9月21日 申請日期2009年10月12日 優(yōu)先權(quán)日2008年10月28日
發(fā)明者克蘭西·拉克希米 申請人:Nxp股份有限公司