專利名稱:處理多層內存結構中不可分割操作的內存模塊及方法
技術領域:
本發明涉及一種不可分割操作(atomic operation),且特別涉及一種處理多層內存結構(multi-level memory structure, MLMS)中不可分割操作的內存模塊及方法。
背景技術:
不可分割操作為被結合成一執行流程的一組載入(load)與儲存(store)操作, 其不允許其他操作在載入與儲存操作間修改相關的數據。對被多個數據處理引擎(Data Processing Engine,DPE)分享的內存結構來說,處理不可分割操作的機制非常重要。其中各個數據處理引擎為通用目的處理器(general-purpose processor)或是特殊目的處理器 (special-purposeprocessor),例如數位信號處理器(Digital Signal Processor, DSP)。 藉由不可分割操作可確保數據處理引擎數據存取操作的正確性和一致性而不被其它的數據處理引擎所干擾。對分享內存系統來說,不可分割操作的實施非常重要。然而,傳統的技術僅解決在單層內存系統中實施不可分割操作的問題。在多層內存系統中實施不可分割操作的問題仍未被解決。
發明內容
因此,本發明提供一種用于處理多層內存結構中不可分割操作的內存模塊與方法。處理不可分割操作的內存模塊方法確保所有數據處理引擎分享多層內存結構時的不可分割操作執行的正確性、一致性以及有效性。本發明提出一種用于處理多層內存結構中多個不可分割操作的內存模塊,內存模塊包括一常規內存單元(Regular Memory Unit,RMU)、一不可分割操作標簽(Atomic Operation Tag,A0T)單元以及一不可分割操作邏輯單元(Atomic Operation Logic Unit, A0LU)。其中常規內存單元儲存內存模塊的數據。不可分割操作標簽單元儲存對應上述多個不可分割操作的多個不可分割操作標簽。不可分割操作邏輯單元耦接至常規內存單元與不可分割操作標簽單元,其中不可分割操作邏輯單元執行一處理流程以處理上述多個不可分割操作。前述處理流程包括下列步驟。接收來自一數據處理引擎或一上層內存模塊(Upper Level Memory Module, ULMM)的一個不可分割操作之一載入鎖定操作(Load-Locked Operation, LL0)。當一第一條件為真時,記錄此載入鎖定操作做為內存模塊中的一不可分割操作標簽。當一第二條件為真時,利用內存模塊轉送載入鎖定操作至一下層內存模塊。其中上層內存模塊連接在此內存模塊靠近數據處理引擎的一側,而下層內存模塊連接在此內存模塊遠離數據處理引擎的一側。在本發明的一實施例中,上述的第一條件為載入鎖定操作的可高速緩存性不允許內存模塊保持被載入鎖定操作存取的數據副本或載入鎖定操作的可高速緩存性關聯到內存模塊,且此載入鎖定操作不被記錄在不可分割操作標簽單元中;第二條件為載入鎖定操作的可高速緩存性不允許內存模塊保持被載入鎖定操作存取的數據副本。在本發明的另一實施例中,上述的第一條件為載入鎖定操作的可高速緩存性關聯到內存模塊,且載入鎖定操作不被記錄在不可分割操作標簽單元中;第二條件為載入鎖定操作的可高速緩存性不允許內存模塊保持被載入鎖定操作存取的數據副本。在本發明的另一實施例中,第一條件為被載入鎖定操作存取的數據被儲存至內存模塊或是將為了載入鎖定操作而被帶入內存模塊,且載入鎖定操作未被記錄于不可分割操作標簽單元中;第二條件為載入鎖定操作存取的數據未被儲存至內存模塊且不會為了載入鎖定操作而被帶入內存模塊。當常規內存單元中的數據由于高速緩存內存數據更換方案被無效化,不可分割操作邏輯單元無效化不可分割操作標簽單元中所有與被無效化數據的位址相合的不可分割操作標簽。在本發明的一實施例中,上述的不可分割操作邏輯單元執行的處理流程包括下列步驟。接收來自一數據處理引擎或一上層內存模塊的一個不可分割操作之一儲存條件操作 (Store-Conditional Operation, SCO)。當一第三條件為真時,無效化內存模塊中所有與儲存條件操作存取的內存位址相合的不可分割操作標簽、執行儲存條件操作的儲存操作,并傳回一成功狀態至數據處理引擎或上層內存模塊。當一第四條件為真時,禁止儲存條件操作的儲存操作并傳回一失敗狀態至數據處理引擎或上層內存模塊。當一第五條件為真時, 轉送儲存條件操作至一下層內存模塊并傳回下層內存模塊傳回的狀態至數據處理引擎或上層內存模塊。在本發明的另一實施例中,上述的第三條件為在不可分割操作標簽單元中有不可分割操作標簽具有與儲存條件操作的關鍵資訊相同的關鍵資訊,且儲存條件操作存取的數據儲存于內存模塊中。第四條件為在不可分割操作標簽單元中沒有不可分割操作標簽具有與儲存條件操作的關鍵資訊相同的關鍵資訊。第五條件為在不可分割操作標簽單元中有不可分割操作標簽具有與儲存條件操作的關鍵資訊相同的關鍵資訊,且儲存條件操作存取的數據未儲存于內存模塊中。在本發明的另一實施例中,上述的第三條件為儲存條件操作的可高速緩存性關聯到內存模塊,且在不可分割操作標簽單元中有不可分割操作標簽具有與儲存條件操作的關鍵資訊相同的關鍵資訊。第四條件為儲存條件操作的可高速緩存性關聯到內存模塊,且在不可分割操作標簽單元中沒有不可分割操作標簽具有與儲存條件操作的關鍵資訊相同的關鍵資訊。第五條件為儲存條件操作的可高速緩存性不允許內存模塊保持被儲存條件操作存取的一數據副本。在本發明的一實施例中,第三條件為在不可分割操作標簽單元中有不可分割操作標簽具有與儲存條件操作的關鍵資訊相同的關鍵資訊。第四條件為在不可分割操作標簽單元中沒有不可分割操作標簽具有與儲存條件操作的關鍵資訊相同的關鍵資訊,且儲存條件操作存取的數據儲存于內存模塊中。第五條件為在不可分割操作標簽單元中沒有不可分割操作標簽具有與儲存條件操作的關鍵資訊相同的關鍵資訊,且儲存條件操作存取的數據未儲存于內存模塊中。本發明亦提出一種用于處理多層內存結構中多個不可分割操作的方法,包括利用不可分割操作邏輯單元執行載入鎖定操作的處理流程。本發明還提出另一種用于處理多層內存結構中多個不可分割操作的方法,包括利
6用不可分割操作邏輯單元執行儲存條件操作的處理流程。為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。
圖1顯示為本發明一實施例的多層內存結構的示意圖。圖2顯示為圖1實施例的多層內存結構的內存模塊的方塊圖。圖3-圖9顯示為本發明一實施例的處理多層內存結構中不可分割操作的方法流程圖。附圖標記101 106 數據處理引擎121 125、210 內存模塊220 不可分割操作標簽單元230 不可分割操作邏輯單元240 常規內存單元251 253、261 洸2 界面310 350、410 470、510 550、610 670、710 750、810 870、910 930
處理多層內存結構中不可分割操作的方法步驟
具體實施例方式現將參照附圖來對本發明的實施方式進行詳細說明。以下的附圖的記載中,對相同或類似的部分附上相同或類似的參考符號。圖1顯示為本發明一實施例的多層內存結構的示意圖。圖1的多層內存結構包括 6個數據處理引擎101-106和5個內存模塊121-125。內存模塊121-125被串接在一起,以使各個內存模塊可提供或接受使用與上層內存模塊(Upper Level Memory Module, ULMM) 或數據處理引擎所發起的存取業務有關的數據。各個上層內存模塊121-123可為一高速緩存內存(cache memory)或一影子內存(shadow memory)。舉例來說,內存模塊121禾口 122 可分別像一個第一層(level 1)高速緩存內存和一個第二層(level 2)高速緩存內存一樣地運作。最低層的內存模塊1 和125為數據的真實副本(authentic copy)駐留的主要內存。上層內存模塊和下層內存模塊(Lower Level Memory Module, LLMM)的概念為相對的。對任何多層內存結構中的內存模塊來說,上層內存模塊為連接至較接近數據處理引擎一側的內存模塊,而下層內存模塊則為連接至較遠離數據處理引擎一側的內存模塊。舉例來說,內存模塊121為內存模塊122的上層內存模塊,而內存模塊IM和125為內存模塊 122的下層內存模塊。內存模塊122和123為內存模塊125的上層內存模塊。內存模塊121 和123沒有上層內存模塊。內存模塊IM和125沒有下層內存模塊。在多層內存結構中一內存模塊可將來自其上層內存模塊的內存存取業務轉送至其下層內存模塊。在本實施例中,不可分割操作包括一對相應的內存存取操作,亦即一載入指令和一儲存指令。其中不可分割操作的載入指令被稱為載入鎖定操作(Load-LockedOperation, LL0)。不可分割操作的儲存指令被命名為儲存條件操作(Store-Conditional Operation, SCO)。載入鎖定操作與儲存條件操作為圖1的數據處理引擎所發起。圖1中各個內存模塊可具有相同或不同的設計和結構,但至少包括一不可分割操作標簽(Atomic Operation Tag,A0T)單元和一不可分割操作邏輯單元(Atomic Operation Logic Unit, A0LU)o圖2顯示為本發明一實施例的內存模塊210的方塊圖。圖1中各個內存模塊121-125可以相同或不同的結構來實施,例如以圖2中至少具有一不可分割操作標簽單元和一不可分割操作邏輯單元的內存模塊210來實施。內存模塊210包括一不可分割操作標簽單元220、一不可分割操作邏輯單元230和一常規內存單元MO (Regular MemoryUnit,RMU)0另外,內存模塊210具有連接至其上層內存模塊的一組或多組界面(例如界面251-25 和連接至其下層內存模塊的一組或多組界面下層內存模塊(例如界面 261-262)。常規內存單元240包括用于數據儲存的內存胞陣列和常規內存單元存取控制邏輯。常規內存單元240儲存并提供內存模塊210的數據。不可分割操作標簽單元220儲存對應不可分割操作的不可分割操作標簽。不可分割操作邏輯單元230耦接至常規內存單元 240和不可分割操作標簽單元220。不可分割操作邏輯單元230將被內存模塊210接收的不可分割操作記錄成為在不可分割操作標簽單元220中的不可分割操作標簽。另外,不可分割操作邏輯單元230執行一處理流程以處理被內存模塊210所接收的不可分割操作。不可分割操作邏輯單元230管理不可分割操作標簽以處理不可分割操作的不可分割流程(atomicity process) 0各個不可分割操作標簽包括對應不可分割操作的關鍵資訊(key information)。關鍵資訊包括對應不可分割操作的辨識碼(identification,ID) 和/或內存位址。另外,各個不可分割操作標簽包括一有效位元。不可分割操作的辨識碼被發起不可分割操作的數據處理引擎所分派。一個或多個辨識碼可被一數據處理引擎使用。 若沿著此內存模塊的所有上層界面路徑僅有一數據處理引擎連接至此一內存模塊,而且只有一個不可分割操作的辨識碼被此數據處理引擎所使用,則此數據處理引擎所發起的不可分割操作的辨識碼可被省略。不可分割操作的內存位址亦可被省略。在此情形下,對應的不可分割操作標簽不具有內存位址且任何其它存取同一內存模塊的不可分割操作與前述不可分割操作標簽相合。不可分割操作標簽相合的概念將于稍后說明。不可分割操作的載入鎖定操作和儲存條件操作皆包括不可分割操作的辨識碼和內存位址。有效位元指示不可分割操作標簽是否有效。不可分割操作標簽單元220中無效的不可分割操作標簽被視為未使用的儲存空間且可被新的不可分割操作標簽條目寫入。不可分割操作邏輯單元230所執行的處理流程可如圖3 圖9所示。其中圖3與圖4顯示處理流程的第一種選擇。圖5與圖6顯示處理流程的第二種選擇。圖7與圖8顯示處理流程的第三種選擇。圖3顯示第一種選擇的載入鎖定操作的處理流程,而圖4顯示第一種選擇的儲存條件操作的處理流程。圖3中的流程開始于步驟310。首先,不可分割操作邏輯單元 230接收來自數據處理引擎或內存模塊210的上層內存模塊的不可分割操作的載入鎖定操作(步驟310)。接著,不可分割操作邏輯單元230檢查載入鎖定操作的可高速緩存性 (cacheability)是否不允許內存模塊210保持數據的副本以被該載入鎖定操作存取,或者載入鎖定操作的可高速緩存性是否關聯到(affiliate to)內存模塊210 (步驟320)。若載入鎖定操作的可高速緩存性允許內存模塊210保持數據的副本以被該載入鎖定操作存取且載入鎖定操作的可高速緩存性并未關聯到內存模塊210,不可分割操作邏輯單元230不執行任何動作且流程結束。否則,流程進入到步驟330。前述的可高速緩存性為被不可分割操作存取的內存位址的屬性。可高速緩存性定義內存模塊在多層內存結構中的哪一層位階被允許保持數據的副本被不可分割操作存取。可高速緩存性亦定義不可分割操作存取高速緩存內存的內存位址的寫入決策(writing policie),例如寫穿(write-through)或寫回(write-back)。可高速緩存屬性被包括在不可分割操作的載入鎖定操作和儲存條件操作中。可高速緩存關聯性(cacheability affiliation)的定義為,若一內存模塊為一不可分割操作的可高速緩存性所允許的可保持上述不可分割操作所存取的數據副本的內存模塊中最上層的內存模塊,則稱之為上述不可分割操作的可高速緩存性關聯到上述內存模塊接著,不可分割操作邏輯單元230檢查不可分割操作的載入鎖定操作是否被記錄在不可分割操作標簽單元中220中(步驟330)。若載入鎖定操作還未被紀錄,不可分割操作邏輯單元230在不可分割操作標簽單元220中記錄載入鎖定操作以做為一不可分割操作標簽(步驟340)。若載入鎖定操作已被記錄,不可分割操作邏輯單元230不重復記錄載入鎖定操作。如此流程將跳過步驟340并進入到步驟345。當不可分割操作邏輯單元230在步驟340中記錄載入鎖定操作,不可分割操作邏輯單元230分配不可分割操作標簽單元220中的前述不可分割操作標簽以記錄載入鎖定操作的關鍵資訊,然后藉由寫入預設值至不可分割操作標簽的有效位元設定不可分割操作標簽為有效。載入鎖定操作的關鍵資訊包括屬于載入鎖定操作的不可分割操作的辨識碼和/或內存位址。如上所述,辨識碼和內存位址可被省略。在步驟330中,不可分割操作邏輯單元230藉由比較不可分割操作標簽單元220中不可分割操作標簽的關鍵資訊與載入鎖定操作的關鍵資訊檢查載入鎖定操作是否被記錄。若關鍵資訊包括辨識碼和位址兩者, 當在不可分割操作標簽單元220中有不可分割操作標簽具有與載入鎖定操作相同的辨識碼和位址時,不可分割操作邏輯單元230在步驟330中判定載入鎖定操作已被記錄。若關鍵資訊包括辨識碼或位址,當在不可分割操作標簽單元220中有不可分割操作標簽具有與載入鎖定操作相同的辨識碼或位址時,不可分割操作邏輯單元230在步驟330中判定載入鎖定操作已被記錄。當比較載入鎖定操作的內存位址與不可分割操作標簽的內存位址時, 不可分割操作邏輯單元230可比較兩者位址的位址全長或特定的最高有效位元數(most significant bits,MSBs)。前述最高有效位元比的較使不可分割操作標簽可覆蓋內存位址的特定范圍。接著,在執行步驟330或340后,不可分割操作邏輯單元230檢查載入鎖定操作的可高速緩存性是否允許內存模塊210保持數據的副本以被該載入鎖定操作存取(步驟 345)。若載入鎖定操作的可高速緩存性不允許內存模塊210保持數據的副本以被該載入鎖定操作存取,不可分割操作邏輯單元230轉送載入鎖定操作至內存模塊210的下層內存模塊(步驟350)。否則,在不執行步驟350的情形下結束流程。載入鎖定操作包括載入內存數據至數據處理引擎或上層內存模塊發布載入鎖定操作的操作。在多層內存結構中載入內存數據為本發明領域中傳統的周知技術,因此不再贅述。
圖4顯示為對應圖3中載入鎖定操作處理流程的儲存條件操作處理流程。首先, 不可分割操作邏輯單元230接收來自數據處理引擎或內存模塊210的上層內存模塊的不可分割操作的儲存條件操作(步驟410)。接著,不可分割操作邏輯單元230比較不可分割操作標簽單元220中不可分割操作標簽的關鍵資訊與儲存條件操作的關鍵資訊以判定是否有相合的不可分割操作標簽(步驟420)。若無相合的不可分割操作標簽,不可分割操作邏輯單元230禁止儲存條件操作的儲存操作并傳回失敗狀態至數據處理引擎或上層內存模塊(步驟430)。若有相合的不可分割操作標簽,流程進入步驟440。有相合的不可分割操作標簽意指在不可分割操作標簽單元220中的不可分割操作標簽有與儲存條件操作的關鍵資訊相同的關鍵資訊。儲存條件操作的關鍵資訊可包括屬于儲存條件操作的不可分割操作的辨識碼和/或內存位址。不可分割操作邏輯單元230利用與不可分割操作邏輯單元 230比較不可分割操作標簽單元220中的不可分割操作標簽的關鍵資訊與載入鎖定操作的關鍵資訊相同的方式比較不可分割操作標簽的關鍵資訊與儲存條件操作的關鍵資訊。若有相合的不可分割操作標簽,不可分割操作邏輯單元230檢查是否有數據命中 (data hit)(步驟440)。數據命中意指被儲存條件操作存取的數據被儲存在內存模塊210 的常規內存單元240中。若無數據命中,不可分割操作邏輯單元230轉送儲存條件操作至下層內存模塊并傳回下層內存模塊傳回的狀態至數據處理引擎或上層內存模塊(步驟450)。 若有數據命中,不可分割操作邏輯單元230無效化不可分割操作標簽單元220中所有與儲存條件操作存取的內存位址相合的不可分割操作標簽(步驟460)。不論不可分割操作標簽的辨識碼是否與儲存條件操作的識別碼相同,不可分割操作邏輯單元230無效化每個具有相合位址的不可分割操作標簽。另外,在部分實施例中,不可分割操作邏輯單元更可發布無效化操作(invalidation operation)至其下層內存模塊以無效化具有相同位址的不可分割操作標簽。隨后所有具有相合位址的儲存條件操作皆將失敗,因為不會有可與其相合的不可分割操作標簽。接著,不可分割操作邏輯單元230執行儲存條件操作的儲存操作并傳回成功狀態至數據處理引擎或上層內存模塊(步驟470)。儲存條件操作的執行細節可隨儲存條件操作的可高速緩存性和不可分割操作邏輯單元230的實施方式而有所變化。若有數據命中,儲存條件操作的數據被直接儲存至內存模塊210的常規內存單元M0。當可高速緩存性指示寫穿方案或無數據命中時,儲存條件操作的數據可轉送至內存模塊210的下層內存模塊。多層內存結構中儲存數據的細節為本發明領域中傳統的周知技術,因此不再贅述。圖5和圖6顯示為不可分割操作邏輯單元230所執行的第二種選擇的處理流程示意圖。圖5顯示載入鎖定操作的處理流程,而圖6顯示儲存條件操作的處理流程。在載入鎖定操作處理流程中,首先不可分割操作邏輯單元230接收來自數據處理引擎或上層內存模塊的不可分割操作的載入鎖定操作(步驟510)。接著,不可分割操作邏輯單元230檢查載入鎖定操作的可高速緩存性(步驟520)。若載入鎖定操作的可高速緩存性不允許內存模塊210保持數據的副本以被該載入鎖定操作存取,不可分割操作邏輯單元230轉送載入鎖定操作至內存模塊210的下層內存模塊(步驟530)。若載入鎖定操作的可高速緩存性關聯到內存模塊210,不可分割操作邏輯單元230檢查載入鎖定操作是否已被記錄至不可分割操作標簽單元220中(步驟M0)。若載入鎖定操作已被記錄,不可分割操作邏輯單元230不執行任何動作且流程結束。若載入鎖定操作還未被記錄,不可分割操作邏輯單元230記錄載入鎖定操作做為不可分割操作標簽單元220中的不可分割操作標簽 (步驟550)。在儲存條件操作處理流程中,首先不可分割操作邏輯單元230接收來自數據處理引擎或上層內存模塊的不可分割操作的儲存條件操作(步驟610)。接著,不可分割操作邏輯單元230檢查儲存條件操作的可高速緩存性(步驟620)。若儲存條件操作的可高速緩存性不允許內存模塊210保持數據的副本以被該儲存條件操作存取,不可分割操作邏輯單元 230轉送儲存條件操作至內存模塊210的下層內存模塊并傳回下層內存模塊傳回的狀態至數據處理引擎或上層內存模塊(步驟630)。若儲存條件操作的可高速緩存性關聯到內存模塊210,不可分割操作邏輯單元230檢查是否有相合的不可分割操作標簽(步驟640)。若無相合的不可分割操作標簽,不可分割操作邏輯單元230禁止儲存條件操作的儲存操作并傳回失敗狀態至數據處理引擎或上層內存模塊(步驟650)。若有相合的不可分割操作標簽, 不可分割操作邏輯單元230無效化不可分割操作標簽單元220中所有與儲存條件操作存取的內存位址相合的不可分割操作標簽(步驟660)。接著,不可分割操作邏輯單元230執行儲存條件操作的儲存操作并傳回成功狀態至數據處理引擎或上層內存模塊(步驟670)。圖7和圖8顯示為不可分割操作邏輯單元230所執行的處理流程的第三種選擇的示意圖。圖7顯示載入鎖定操作的處理流程,而圖8顯示儲存條件操作的處理流程。在載入鎖定操作處理流程中,首先不可分割操作邏輯單元230接收來自數據處理引擎或上層內存模塊的不可分割操作的載入鎖定操作(步驟710)。接著,不可分割操作邏輯單元230檢查是否有數據命中或數據分配(dataallocaiton)(步驟720)。數據命中意指被載入鎖定操作存取的數據被儲存在內存模塊210的常規內存單元240中。數據分配意指被載入鎖定操作存取的數據將為了載入鎖定操作而被帶入內存模塊210的常規內存單元 240 中。若無數據命中且無數據分配,不可分割操作邏輯單元230轉送載入鎖定操作至內存模塊210的下層內存模塊(步驟730)。若有數據命中或無數據分配,不可分割操作邏輯單元230檢查載入鎖定操作是否已被記錄至不可分割操作標簽單元220中(步驟740)。若載入鎖定操作已被記錄,不可分割操作邏輯單元230不執行任何動作且流程結束。若載入鎖定操作還未被記錄,不可分割操作邏輯單元230記錄載入鎖定操作做為不可分割操作標簽單元220中的不可分割操作標簽(步驟750)。另外,當任何常規內存單元MO中的數據因為內存模塊210執行高速緩存內存更換方案而被無效化,不可分割操作邏輯單元230無效化操作標簽單元220中所有與無效化數據的內存位址相合的不可分割操作標簽。在儲存條件操作處理流程中,首先不可分割操作邏輯單元230接收來自數據處理引擎或內存模塊210的上層內存模塊的不可分割操作的儲存條件操作(步驟810)。接著, 不可分割操作邏輯單元230檢查不可分割操作標簽是否與儲存條件操作為相合的(步驟 820)。若有相合的不可分割操作標簽,不可分割操作邏輯單元230無效化不可分割操作標簽單元220中所有與儲存條件操作存取的內存位址相合的不可分割操作標簽(步驟830), 執行儲存條件操作的儲存操作,并傳回成功狀態至數據處理引擎或上層內存模塊(步驟 840)。若無相合的不可分割操作標簽,不可分割操作邏輯單元230檢查是否有數據命中(步驟850)。若有數據命中,不可分割操作邏輯單元230禁止儲存條件操作的儲存操作并傳回失敗狀態至數據處理引擎或上層內存模塊(步驟860)。若無數據命中,不可分割操作邏輯單元230轉送儲存條件操作至內存模塊210的下層內存模塊并傳回下層內存模塊傳回的狀態至數據處理引擎或上層內存模塊(步驟870)。上述處理流程的三種選擇具有不同的優點與缺點。圖3與圖4所示的第一種選擇將對應于不可分割操作的不可分割操作標簽儲存至直接連接數據處理引擎的第一層內存模塊到與可高速緩存性關聯的內存模塊中的各內存模塊。由于不可分割操作標簽的分布和第一種選擇的流程,當不可分割操作的儲存條件操作失敗時,數據處理引擎立即地接收來自第一層內存模塊傳回的失敗狀態。如此快速的反應縮短了數據處理引擎的等待時間并改善了效率。然而,不可分割操作標簽的重復儲存在不可分割操作標簽單元中為一種儲存空間的浪費,其可縮減內存模塊的不可分割操作的處理量。相對地,圖5與圖6所示的第二種選擇僅儲存一不可分割操作標簽在與可高速緩存性關聯的內存模塊中。類似地,圖7與圖 8所示的第三種選擇僅儲存一不可分割操作標簽在不可分割操作存取的數據駐留的內存模塊中。在儲存空間方面不可分割操作標簽的儲存在第二和第三選擇中為最有效率的。然而, 根據第二和第三選擇,發起儲存條件操作的數據處理引擎必須等待直到儲存條件操作到達儲存該不可分割操作標簽的內存模塊才得以接收傳回狀態。在上述處理流程中載入鎖定操作不傳回狀態。載入鎖定操作的執行總是成功的。 在本發明的部分實施例中,載入鎖定操作可傳回成功或失敗的狀態。圖9顯示為本發明一實施例的記錄載入鎖定操作的流程圖。圖3的步驟340、圖5的步驟550以及圖7的步驟 750可被圖9的流程替代。根據圖9的流程,當不可分割操作邏輯單元230需記錄載入鎖定操作做為不可分割操作標簽單元220中的不可分割操作標簽時,不可分割操作邏輯單元230檢查不可分割操作標簽單元220是否具有足夠的空間儲存新的不可分割操作標簽(步驟910)。若有足夠的空間儲存新的不可分割操作標簽,不可分割操作邏輯單元230記錄不可分割操作標簽單元220中的載入鎖定操作并傳回成功狀態至發起載入鎖定操作的數據處理引擎或上層內存模塊(步驟920)。若不可分割操作標簽單元220已滿而沒有空間給新的不可分割操作標簽儲存,不可分割操作邏輯單元230不記錄載入鎖定操作并傳回失敗狀態至數據處理引擎或上層內存模塊(步驟930)。在本發明的一實施例中,載入鎖定操作經由被數據處理引擎執行的指令所發布。數據處理引擎響應失敗狀態而重復執行指令直到數據處理引擎接收到成功狀態。在本發明的一實施例中,不可分割操作的儲存條件操作經由被數據處理引擎執行的一綜合儲存或分支條件指令(store-or-branch-conditional instruction)所發布。除了儲存條件操作原本必要的運算元之外,儲存或分支條件指令并指定一個分支目標位址。 當數據處理引擎接收內存模塊傳回的成功狀態時,數據處理引擎執行跟隨儲存或分支條件指令之后的指令。當數據處理引擎接收內存模塊傳回的失敗狀態時,數據處理引擎執行另一位于儲存或分支條件指令指定的目標位址的指令。或者,一個根據儲存條件操作的結果的分支指令可被執行以與儲存條件操作一起完成相同的功能。在本發明的部分實施例中,數據處理引擎可發布無效化操作 (invalidationoperation)至內存模塊。無效化操作包括對應的不可分割操作的關鍵資訊 (辨識碼和/或內存位址)。在收到無效化操作時,內存模塊的不可分割操作邏輯單元無效化所有不可分割操作標簽單元中與對應的不可分割操作的關鍵資訊相同的關鍵資訊。內存模塊可轉送無效化操作至下層內存模塊以無效化在較低層的不可分割操作標簽。另外,當執行不可分割操作的儲存條件操作時,內存模塊可發布無效化操作至下層內存模塊。例如, 當數據處理引擎正處于多工作業而從一任務轉換至另一任務時,若前一任務發布一載入鎖定操作而后一任務發布另一載入鎖定操作,數據處理引擎可發布無效化操作以清除對應前一載入鎖定操作的不可分割操作標簽,以確保在多層內存結構中不可分割操作標簽的一致性或在內存模塊的不可分割操作標簽單元中收集一些有用的儲存空間。在上述實施例中,不可分割操作邏輯單元執行三種選擇的處理流程。本發明并不要求所有內存模塊執行相同選擇的處理流程。以圖1所示的多層內存結構為例。內存模塊 121的不可分割操作邏輯單元可執行圖3和圖4所示的第一種選擇。內存模塊122的不可分割操作邏輯單元可執行圖5和圖6所示的第二種選擇。內存模塊123的不可分割操作邏輯單元可執行圖7和圖8所示的第三種選擇。多層內存結構可混合支援不可分割操作的內存模塊與不支援不可分割操作的內存模塊。換言之,多層內存結構中可彈性地僅具有一部分的內存模塊包含處理不可分割操作的不可分割操作邏輯單元和不可分割操作標簽單元。當特定的內存模塊包含不可分割操作標簽單元和不可分割操作邏輯單元時,所有特定的內存模塊的上層內存模塊也必須包含不可分割操作標簽單元和不可分割操作邏輯單元。否則不可分割操作將無法正確地工作。 當特定的內存模塊不包含不可分割操作標簽單元和不可分割操作邏輯單元時,因為下層內存模塊的不可分割操作標簽單元和不可分割操作邏輯單元將不會正確地工作,因此所有特定的內存模塊的下層內存模塊不須包含不可分割操作標簽單元和不可分割操作邏輯單元。雖然本發明已以實施例揭示如上,然其并非用以限定本發明,任何所屬技術領域的普通技術人員,當可作些許更動與潤飾,而不脫離本發明的精神和范圍。
權利要求
1.一種用于處理多層內存結構中多個不可分割操作的內存模塊,包括一常規內存單元,儲存該內存模塊的數據;一不可分割操作標簽單元,儲存對應所述不可分割操作的多個不可分割操作標簽;以及一不可分割操作邏輯單元,耦接至該常規內存單元與該不可分割操作標簽單元,其中該不可分割操作邏輯單元接收來自一數據處理引擎或一上層內存模塊的所述不可分割操作之其一的一載入鎖定操作;當一第一條件為真時,該不可分割操作邏輯單元記錄該載入鎖定操作做為該不可分割操作標簽單元中的一不可分割操作標簽;當一第二條件為真時, 該不可分割操作邏輯單元轉送該載入鎖定操作至一下層內存模塊。
2.根據權利要求1所述的內存模塊,其中該上層內存模塊連接至該內存模塊靠近該數據處理引擎的一側,而該下層內存模塊連接至該內存模塊遠離該數據處理引擎的一側。
3.根據權利要求1所述的內存模塊,其中該第一條件為該載入鎖定操作的一可高速緩存性不允許該內存模塊保持被該載入鎖定操作存取的一數據副本或該載入鎖定操作的可高速緩存性關聯到該內存模塊,且該載入鎖定操作不被記錄在該不可分割操作標簽單元中;該第二條件為該載入鎖定操作的該可高速緩存性不允許該內存模塊保持被該載入鎖定操作存取的該數據副本。
4.根據權利要求1所述的內存模塊,其中該第一條件為該載入鎖定操作的一可高速緩存性關聯到該內存模塊,且該載入鎖定操作不被記錄在該不可分割操作標簽單元中;該第二條件為該載入鎖定操作的該可高速緩存性不允許該內存模塊保持被該載入鎖定操作存取的一數據副本。
5.根據權利要求1所述的內存模塊,其中該第一條件為被該載入鎖定操作存取的數據被儲存至該內存模塊或是將為了該載入鎖定操作而被帶入該內存模塊,且該載入鎖定操作未被記錄于該不可分割操作標簽單元中;該第二條件為該載入鎖定操作存取的數據未被儲存至該內存模塊且不會為了該載入鎖定操作而被帶入該內存模塊。
6.根據權利要求5所述的內存模塊,其中當該常規內存單元中的數據由于更換方案被無效化,該不可分割操作邏輯單元無效化該不可分割操作標簽單元中所有與該無效化數據的位址相合的不可分割操作標簽。
7.根據權利要求1所述的內存模塊,其中該不可分割操作邏輯單元記錄該載入鎖定操作做為該不可分割操作標簽單元中的該不可分割操作標簽,該不可分割操作邏輯單元分配該不可分割操作標簽單元中的該不可分割操作標簽以記錄該載入鎖定操作的一關鍵資訊然后設定該不可分割操作標簽為有效;該關鍵資訊包括該載入鎖定操作的一辨識碼和/或該載入鎖定操作存取的一位址。
8.根據權利要求1所述的內存模塊,其中當一第三條件為真時,該不可分割操作邏輯單元記錄該載入鎖定操作做為該不可分割操作標簽單元中的該不可分割操作標簽并傳回一成功狀態至該數據處理引擎或該上層內存模塊;當該第三條件不為真時,該不可分割操作邏輯單元傳回一失敗狀態至該數據處理引擎或該上層內存模塊。
9.根據權利要求8所述的內存模塊,其中該第三條件為該不可分割操作標簽單元具有足夠的空間儲存該不可分割操作標簽。
10.根據權利要求8所述的內存模塊,其中該數據處理引擎執行的一指令發布該載入鎖定操作,且該數據處理引擎重復執行該指令以響應該失敗狀態。
11.根據權利要求1所述的內存模塊,其中該多層內存結構包括多個內存模塊且部分所述內存模塊包括一不可分割操作標簽單元與一不可分割操作邏輯單元;當所述內存模塊中的一特定內存模塊包括該不可分割操作標簽單元與該不可分割操作邏輯單元時,所述內存模塊的所有上層內存模塊亦包括該不可分割操作標簽單元與該不可分割操作邏輯單元; 當該特定內存模塊不包括該不可分割操作標簽單元與該不可分割操作邏輯單元時,所述內存模塊的所有下層內存模塊亦不包括該不可分割操作標簽單元與該不可分割操作邏輯單兀。
12.一種用于處理多層內存結構中多個不可分割操作的內存模塊,包括 一常規內存單元,儲存該內存模塊的數據;一不可分割操作標簽單元,儲存對應所述不可分割操作的多個不可分割操作標簽;以及一不可分割操作邏輯單元,耦接至該常規內存單元與該不可分割操作標簽單元,其中該不可分割操作邏輯單元接收來自一數據處理引擎或一上層內存模塊的所述不可分割操作之其一的一儲存條件操作;當一第一條件為真時,該不可分割操作邏輯單元無效化該不可分割操作標簽單元中所有與該儲存條件操作存取的內存位址相合的不可分割操作標簽、 執行該儲存條件操作的儲存操作,并傳回一成功狀態至該數據處理引擎或該上層內存模塊;當一第二條件為真時,該不可分割操作邏輯單元禁止該儲存條件操作的儲存操作并傳回一失敗狀態至該數據處理引擎或該上層內存模塊;當一第三條件為真時,該不可分割操作邏輯單元轉送該儲存條件操作至一下層內存模塊并傳回該下層內存模塊傳回的狀態至該數據處理引擎或該上層內存模塊。
13.根據權利要求12所述的內存模塊,其中該上層內存模塊連接至該內存模塊靠近該數據處理引擎的一側,而該下層內存模塊連接至該內存模塊遠離該數據處理引擎的一側。
14.根據權利要求12所述的內存模塊,其中該第一條件為在該不可分割操作標簽單元中有不可分割操作標簽具有與該儲存條件操作的關鍵資訊相同的關鍵資訊,且該儲存條件操作存取的數據儲存于該內存模塊中;該第二條件為在該不可分割操作標簽單元中沒有不可分割操作標簽具有與該儲存條件操作的關鍵資訊相同的關鍵資訊;該第三條件為在該不可分割操作標簽單元中有不可分割操作標簽具有與該儲存條件操作的關鍵資訊相同的關鍵資訊,且該儲存條件操作存取的數據未儲存于該內存模塊中。
15.根據權利要求12所述的內存模塊,其中該第一條件為該儲存條件操作的一可高速緩存性關聯到該內存模塊,且在該不可分割操作標簽單元中有不可分割操作標簽具有與該儲存條件操作的關鍵資訊相同的關鍵資訊;該第二條件為該儲存條件操作的該可高速緩存性關聯到該內存模塊,且在該不可分割操作標簽單元中沒有不可分割操作標簽具有與該儲存條件操作的關鍵資訊相同的關鍵資訊;該第三條件為該儲存條件操作的該可高速緩存性不允許該內存模塊保持被該儲存條件操作存取的一數據副本。
16.根據權利要求12所述的內存模塊,其中該第一條件為在該不可分割操作標簽單元中有不可分割操作標簽具有與該儲存條件操作的關鍵資訊相同的關鍵資訊;該第二條件為在該不可分割操作標簽單元中沒有不可分割操作標簽具有與該儲存條件操作的關鍵資訊相同的關鍵資訊,且該儲存條件操作存取的數據儲存于該內存模塊中;該第三條件為在該不可分割操作標簽單元中沒有不可分割操作標簽具有與該儲存條件操作的關鍵資訊相同的關鍵資訊,且該儲存條件操作存取的數據未儲存于該內存模塊中。
17.根據權利要求12所述的內存模塊,其中該數據處理引擎所執行的一儲存或分支條件指令發布的該儲存條件操作,且該數據處理引擎執行另一位于該儲存或分支條件指令指定的一目標位址的指令以響應該失敗狀態。
18.一種用于處理多層內存結構中多個不可分割操作的方法,該方法被該多層內存結構的一內存模塊所執行,該方法包括利用該內存模塊接收來自一數據處理引擎或一上層內存模塊的所述不可分割操作之其一的一載入鎖定操作;當一第一條件為真時,利用該內存模塊記錄該載入鎖定操作做為該內存模塊中的一不可分割操作標簽;以及當一第二條件為真時,利用該內存模塊轉送該載入鎖定操作至一下層內存模塊。
19.一種用于處理多層內存結構中多個不可分割操作的方法,該方法被該多層內存結構的一內存模塊所執行,該方法包括利用該內存模塊接收來自一數據處理引擎或一上層內存模塊的所述不可分割操作之其一的一儲存條件操作;當一第一條件為真時,利用該內存模塊無效化該內存模塊中所有與該儲存條件操作存取的內存位址相合的不可分割操作標簽、執行該儲存條件操作的儲存操作,并傳回一成功狀態至該數據處理引擎或該上層內存模塊;當一第二條件為真時,利用該內存模塊禁止該儲存條件操作的儲存操作并傳回一失敗狀態至該數據處理引擎或該上層內存模塊;以及當一第三條件為真時,該內存模塊轉送該儲存條件操作至一下層內存模塊并傳回該下層內存模塊傳回的狀態至該數據處理引擎或該上層內存模塊。
全文摘要
一種用于處理多層內存結構中不可分割操作的內存模塊及方法。內存模塊接收來自數據處理引擎或上層內存模塊不可分割操作的載入操作和儲存操作。內存模塊根據預設條件(例如可高速緩存性或數據命中的有無)記錄載入操作和/或轉送載入操作至下層內存模塊。另外,內存模塊根據預設條件(例如可高速緩存性、數據命中或是內存模塊中有無記錄相合的載入操作)執行、禁止或轉送儲存操作至下層內存模塊。內存模塊及其方法為所有分享多層內存結構的數據處理引擎確保不可分割操作執行的正確性、一致性和有效性。
文檔編號G06F12/08GK102567223SQ20111010686
公開日2012年7月11日 申請日期2011年4月27日 優先權日2010年12月22日
發明者溫尚志, 賴吉昌 申請人:晶心科技股份有限公司