201201018 六、發明說明: 【先前技術】 可期望提供具有明顯記憶體能力(包含大量記憶體、高 刼作速度及高頻寬之某一組合)之特定類型之特定應用積 體電路(ASIC)。提供此能力可能成問題。記憶體佔用空間 且消耗電力。在一ASIC*,可期望節約空間及電力資源。 多種因素對時脈速度給予實際限制。因此,增強記憶體效 2之其他手段較佳可為簡單增加時脈速度。增加記憶體之 里之潛在方法(其在實際上不將記憶體添加至ASIC設計 或不增加時脈速度之情況下可有效地用於asic)係提供外 部(亦即’晶片外)記憶體。然而’為了提供記憶體頻寬之 月頁增加,此等晶片外解決方案通常必須消耗大量電力 並且繫上大量ASIC輸入/輸出(1/〇)接針。應期望有效地增 加記憶體頻寬而不會不恰當地增加鞭中之記憶體量或時 脈速度或採取晶片外解決方案。 可猎由將Λ體記憶體劃分成稱為記憶體庫之若干邏 真:儲存器單元來增強記憶體效能之某些態樣。可在一 卢 …體庫方案以允許兩個或兩個以上 ΓΠ存取資料鍺存器。例如,在一記憶體庫系統 I位程序能夠在一第一記憶體庫中讀取-記憶 人-二=第二處理程序能夠在—第二記憶體庫中寫 理程序將嘗試同時存取干㈣降低了兩個處 頻寬。然而,為了 /之可尨性,糟此有效地增加 為了使錢體庫適當地作業,該系統必須提 J55468.doc 201201018 供用於解決潛在庫衝突(其中,一第一處理程序嘗試同時 存取與第二處理程序相同之庫)之某些構件。此潛在問題 之一已知解決方案係針對該系統隔開兩個記憶體存取使得 該兩個記憶體存取循序發生而非同時發生。 雙埠§己憶體係允許一單時脈循環期間之藉由兩個處理程 序之同時讀取及寫入存取之類型的記憶體裝置。即,在一 單時脈循環期間’一第一處理程序可寫入至記憶體或自該 記憶體讀#’同時-第二處理程序可獨立於該第—處理程 序而寫入至同一記憶體或自該同一記憶體讀取。然而,相 較於單埠記憶體,雙埠記憶體係相對不經濟,且在asic或 其他積體電路晶片上比單埠記憶體佔用明顯多的空間。亦 已知藉由增加時脈速度(例如,使時脈速度加倍)以允許一 讀取操作及-寫人操作彼此循序但在_單時脈循環中發生 來增強料記憶m藉此提供接近真實料記憶體之 同時性之一作用。 【發明内容】 本發明之貫把例係關於一種將一快取記憶體與複數個記 憶體庫-起使用之記憶體系統及方法,每一記憶體庫包括 一或多個科記憶體裝置以有效地實現平行寫人及讀取操 作。該系統亦包含儲存關於該快取記憶體之内容之資訊之 一標籤記憶體。 該系統在複數個連料脈循環之各者上處理一讀取請求 及-寫人請求^者。回聽寫人位關定指示哪個記憶體 庫對應於該寫人位址之-寫人庫。同樣地,回應於讀取位 155468.doc 201201018 址判疋心不哪個記憶體庫對應於該讀取位址之一讀取庫。 該系統進一步判定該讀取庫與該寫入庫之間是否存在一庫 衝犬。即’若該讀取庫及該寫入庫彼此相同,則存在一庫 衝犬。该系統亦讀取該標籤記憶體以判定對應於讀取位址 或寫入位址之資料是否存在於該快取記憶體中。 旦§亥系統已使用該讀取位址及該寫入位址作出此等判 疋,泫系統便執行一記憶體存取操作(亦即,一寫入操作 或一讀取操作),該操作可利用該快取記憶體。若存在一 庫衝犬或對應於該讀取位址及該寫入位址之一者之資料存 在於該快取記憶體中’則對該快取記憶體中之一儲存位置 執行違S己憶體存取操作。可將該系統執行此記憶體存取操 作之時脈循環稱為一記憶體存取時脈循環^儘管可利用快 取e憶體之記憶體存取操作係一寫入操作或一讀取操作, 然可在每一記憶體存取時脈循環期間執行一寫入操作及一 5賣取彳呆作兩者。 在其中一寫入操作係對快取記憶體執行之一情況下,該 系統可更新該標籤記憶體以指示該快取記憶體中新資料之 存在。在特定境況下’諸如在其中一寫入操作可使用相同 負料覆寫已在該快取記憶體中之資料(亦即,在寫入操作 之前’對應於寫入位址之資料係存在於該快取記憶體中) 之一實施例中,該系統無需更新該標籤記憶體。一旦被更 新°玄彳示戴3己憶體便指不資料存在於該快取記憶體中之對 應於該寫入位址之一儲存位置中。 在查看以下圖式及詳細描述之後,熟習此項技術者將明 155468.doc 201201018 、系.充方法、特徵及優點。希望所有此等額外系 統方法特徵及優點係包含於此描述中、本說明書之範 疇中且係受隨附專利申請範圍保護。 【實施方式】 參考以下圖式可更佳地瞭解本發明。該等圖式中之組件 不必按比例繪製,代替性地將重點放在清楚地圖解蘭釋本 發明之原理上。 如圖1中圖解闡釋般,在本發明之-圖解闡釋性或例示 陡實施例中,一記憶體系統1〇包含一記憶體控制器m記 憶體裝置14。記憶體裝置14包含複數個記憶體庫16、18、 20等。(可存在兩個或兩個以上之任意數目個記憶體庫, 為清楚起見,圖1中未展示但藉由省略符號(「…」)指示其 中一些記憶體庫)。記憶體裝置14亦包含一快取記憶體22 及一標籤記憶體24。記憶體裝置14係實際或實體裝置,而 記憶體庫16、18、20等、快取記憶體22及標籤記憶體川系 記憶體裝置14之邏輯群組,該等邏輯群組可獨立於記憶體 裝置14之其他此等邏輯群組而操作。 記憶體庫1 6 ' 1 8、20等之各者係由一或多個單埠記憶體 裝置或類似記憶體裝置組成。如此項技術中熟知般,此類 。己隐體裝置原本不能同時(亦即’平行或在同—時脈循環 上)進行讀取及寫入。相比之下,可同時(亦即,在同一時 脈循環上)自快取記憶體22及標籤記憶體24讀取及寫入至 快取記憶體22及標籤記憶體24。例如,快取記憶體22可包 括一或多個雙埠記憶體裝置或類似記憶體裝置。如此項技 155468.doc 201201018 ,中…、去⑩’雙埠記憶體裝置原*就能夠同時進行讀取及 寫入。標籤記憶體24可類似地包括—或多個雙崞記情 置。或者」標籤記憶體24可包括一或多個單崞記憶體裝 置’該等單璋記憶體裝置係以操作記憶體庫Μ、^、⑽ 之時脈速度的兩倍之時脈速度操作,相對於記憶體系統1〇 之剩餘部分,此有效地致使”單埠記憶體被同時讀取及 寫入。在例示性實施例中’標籤記憶體24包括兩個部分, 該兩個部分係以彼此相同之方式彼此刀 同資訊冗餘地儲存於各者中)使得可在同:二:: 用為-讀取操作所需之資訊及為—寫人操作所需之資訊。 為清楚起見’在本文中所引用的標籤記憶體24係呈單數形 式而非複數形式(「標籤記憶體(tag mem〇ries)」),即使在 例示性實施例中包括雙標籤記憶體。 在例示性實施例中,記憶體系統1〇係包含為一特定應用 積體電路(ASIC)26之部分1此,本文w述的記憶體系 統ίο之元件可根據熟習此項技術者所瞭解的ASic設計及製 造技術加以提供且因此在本文中不進行描述。應注意,此 ASIC設計及製造技術的結果係:記憶體系統1〇之諸元件係 形成於一半導體基板上且另外具有形成於一積體電路晶片 中之裝置之熟知特性。儘管在例示性實施例中,記憶體系 統10係包含為ASIC 26之部分,然在其他實施例中,此類 記憶體系統可包含為任何其他類型之裝置或其他系統之部 分。 記憶體控制器12產生對記憶體裝置14執行讀取及寫入操 155468.doc 201201018 作所需之所有信號,諸如位址信號、資料信號及控制信 號。因為此等信號及可產生此等信號之方式(例如,邏輯 電路)在此項技術中係熟知的,所以在本文中未描述此等 細節。記憶體控制器12回應於一處理系統28而操作,該處 理系統28亦可包含於ASIC 26中,或在其他實施例中,處 於ASIC 26或其中包含記憶體系統10之其他系統之外部。 處理系統28可為任何適當類型之處理系統,諸如包含微處 理器電路或類似電路之一系統。應瞭解,ASIC 26或其中 包含記憶體系統1 0之其他系統回應於一時脈信號而操作。 因為用於產生及利用此類時脈信號之電路在此項技術中係 熟知的,所以未進一步詳細展示或描述此電路。記憶體控 制器12產生以上提及之信號以回應於時脈信號執行讀取及 寫入操作。信號係透過一或多個匯流排3〇而在記憶體控制 器12、記憶體裝置14及處理系統28之間進行傳達。儘管資 料實際上係透過匯流排30進行傳達,然記憶體控制器12及 記憶體庫16、18、2G等之間的邏輯f料流在圖^係藉由 虛線箭頭加以指示。 處理系統28之一特性在於該處理系統28係其中操作至, 一寫入處理程序32及至少-讀取處理程序34之多處理, 統。在任-給定時脈循環上,寫人處理料㈣嘗試⑴ 至讀'體线10之—寫人操作之—處理程序,且讀取處沿 程序34係嘗試執行自記憶體㈣1()之—讀取操作之一處泡 _巾’寫人處理程序32僅請求寫 '、乍且讀取處理㈣34僅請求讀取操作,然應瞭解,在 I55468.doc 201201018 其實施例中,一單一處理程序或其他此類實體可在不同時 1青长凟取操作及寫入操作兩者。寫入處理程序32及讀取 處理私序34彼此平行操作,獨立於彼此且不彼此影響。 賓、駕與本發明相關之技術者將瞭解,寫入處理程序3 2及 4取處理程序34係邏輯實體而非實體且在圖4係展示為 概办地(藉由雲狀符號指示)駐留於處理系統28中以促進本 文中之描述。實際上,此等處理程序源自處理邏輯(例 如,微處理H電路或類似電路)對資料之操作。儘管為清 楚起見未展示處理系統28之細節(因為此等處理系統在此 項技術中係熟知)’·然處理系統28可包含除了此處理邏輯 之外之記憶體’且表示寫人處理程序32及讀取處理程序“ 之態樣之資料可儲存於此記憶體中並且可藉由該處理邏輯 對其進仃操作。在本發明之一些實施例之内容背景下,可 將處理程序稱為埠。如τ文進—步壯描述般,本發明允 許寫入處理程序32及讀取處理程序34在同—時脈循環期間 分別執行-寫入操作及一讀取操作,即使記憶體庫I =、20等僅係由其各者在該時脈循環期間可進行不多於一 單一寫入操作或替代性地—單—讀取操作之記憶體裝置紐 成。在例示性實施例中,寫人處理程㈣可在每_時脈循 環(亦即,時脈循環Ν、Ν+1、Ν+2等之各者)上引起—寫入 操作’且讀取處理程序34可在每—時脈循環上引起—讀 155468.doc 201201018 之各者大於2))定義記憶體庫16、18、2〇等之各者以及快取 S己憶體22。根據此項技術中熟知之ASIC設計原理,一护入 式動態隨機存取記憶體(eDRAM)或嵌入式靜態ram (URAM)巨集指令可在ASIC 26中提供此類記憶體塊。可 藉由索引(在零至A-1之範圍中)指示記憶體庫16、丨8、2〇 等之各者中之每一儲存位置。平行讀取及寫入操作係跨多 個記憶體庫16、18、20等而分佈,如藉由表示自—索引之 一讀取操作之水平條36及表示至另一索引之一 水平條38指示般。因為記憶體庫16、18、2〇等 寫入操作之 之各者獨立 於其他者而操作,所以平行讀取及寫入操作僅在其中寫入 操作及讀取操作嘗試存取記憶體庫16 ' 18、2〇等之同一者 之情況下受潛在阻礙。如下文所述,本發明之實施例包含 用以避免潛在地由此類庫衝突引起之問題之特徵。 記憶體控制器12包含記憶體邏輯40,該記憶體邏輯4〇控 制包含上文關於執行寫入及讀取操作所描述之該等操作之 操作。記憶體控制器12亦包含暫時資料儲存位置(包含一 讀取位址標籤儲存位置42、一寫入位址標籤儲存位置料及 一寫入位址快取資料儲存位置46)。 圖2中進一步詳細地圖解闡釋記憶體邏輯4〇。記憶體邏 輯40在一時脈循環N期間判定在時脈循環N+丨(亦即,下一 時脈循環)期間將發生什麼動作。在記憶體邏輯4〇之描述 之後,下文進一步詳細地描述此時序或管線態樣。當寫入 處理程序32發送將資料寫入至記憶體系統1〇之一請求時, 處理系統28(圖1)在匯流排3〇上產生包含一寫入位址48及寫 155468.doc •10- 201201018 待儲存於記憶體中之資料字組)信號。同樣 處理程序34發送自記憶體系統1〇讀取資料之— 請::,處理系統28在匯流排30上產生包含一讀取位址5。 在諸如圖1中展示之一庫式記憶體系統中,寫入 :立置似讀取位錢之某些位址位元(諸如,可被稱= 立址位疋之最高有效若干位元)可指示資料所定位之— 庫二且剩餘位址位元(可被稱為索引位址位元)可指示資料 所疋位之该庫中之索引。例如,在其中存在八個庫之一實 施例中,三個最高有效位元或最上位元可指示在一寫入操 作情況下待寫人-資料字組之庫或在—讀取操作情況下待 讀取一資料字組之-庫。因此,圖i中之水平條%表示至 在藉由記憶體庫16、18、辦之—者(其係藉由庫位址位 凡指中之索引位址位元指示之一索引處之一記憶體位 置之一寫入操作。可將所寫入之記憶體庫16、18、20等之 一者稱為寫入庫。同樣地,圖!中之水平條38表示自在藉 由記憶體庫16、18、2〇等之一者(其係藉由庫位址位元指 :)中之索引位址位元指示之一索引處之一記憶體位置之 一讀取操作。可將所讀取之記憶體庫16、18、2〇等之一者 稱為讀取庫。儘管使用一位址之最上位元來指示一庫係適 當的’然在其他實施例中可使用其他方法’諸如使資料更 均勻地分佈於記憶體庫中之一雜湊演算法。 使用快取記憶體22(圖丨)來避免潛在地由一庫衝突引起 之問題。如上所述,快取記憶體22係與記憶體庫16、18、 2〇等之各者大小(DxA位元)相同。因此,快取記憶體以中 155468.doc -11 - 201201018 =:儲存位置對應於記憶體庫16、18、料之各者中之 飞传:Γ置’此係因為相同索引指示快取記憶體22中之與 =庫16、18、20等之各者中之相對儲存位置相同之相 ::存位置。可將在快取記憶體22中之每一索引 =位置用以暫時儲存―資料字组,而非將資料字紐(非 =地m存於記憶體庫16、18、2G等之一者中之 引處。為方便描述’在本文中可將記憶體庫i6、i8、2。: =者(若不將暫時儲存於快取記憶體22中之—資料字组 儲存於快取記憶體22中, 、_ 庫 、]將3亥資料子組儲存於該記憶體 「语暫時儲存))稱為該資料字組之「原生庫」或 =始庫」。不暫時儲存於快取記憶體22中之 係原生儲存於記憶體庫16、18、2g等之—者中。予,、且 籤記憶體24係用以儲存指示儲存於快取記憶體22中之 資料字、、且之原生庫之資訊。可將一庫號碼與—「有 二二:元一起儲存於標籤記憶體24中之每-索引處。儲存 曰錢記憶體24中之—索引處之有效位元指示-資料字組 否存在於w取錢體22巾之該相同索引處之—儲存位置 中。如上所述,—眘赳今Λ 士 貝村子組存在於快取記憶體22中代巻 =即,暫時地)存在於其原生記憶體庫中或―資料字組除 在於,、原生3己憶體庫中之外亦存在於快取記憶體η :。「例如:若在標藏記憶體24中之—索引處之有效位元具 1」之-值’則—資料字組(亦即,一「有效」資料字 :)存在於快取記憶體22中之相同索引處之一储存位置 ,及若在標籤記憶體24巾之—索引處之有效位元具有 155468.doc 201201018 「〇」之一值,則—「 (有效」)資料字組不存在於快取記憶 Γ一 =處之一儲存位置中。若在標藏記憶體辦 |##22φ之有效位7示—有效資料字組存在於快取記 ,體中之該索引處’則儲存於標籤記憶體24中之該索引 處之庫號碼指示儲存於快取記憶體22中之該索引處之該 料字組之原生庫。 如圖2中圖解闡釋般,記憶體邏輯40包含判定對應於讀 取位址5〇之—資料字組是否存在於快取記憶體22中之讀取 索引命中邏輯52。如下文進一步詳細描述般,當讀取處理 寿序34(圖1)產生_讀取請求以起始一讀取操作時,記憶體 控制器12(其接收該讀取請求)讀取儲存於標籤記憶體24中 藉由讀取位址50之索引位址位元指示之索引處之資訊並且 將該資訊暫時儲存於讀取位址標籤儲存位置42中。讀取索 引命中邏輯52判定此資訊之有效位元部分是否指示一有效 資料字組存在於快取記憶體22中之該索引處。若一有效資 料字組存在於快取記憶體22中之該索引處之儲存位置中, 則可將該儲存位置稱為「被佔用」^讀取索引命中邏輯Μ 可回應於讀取位址50自該讀取位址5〇之庫位址位元判定一 讀取庫。讀取索引命中邏輯52進〜步判定自標籤記憶體Μ 讀取之資訊之庫號碼部分是否相同於藉由讀取位址5〇之庫 位址位兀指不之讀取庫。若藉由自標籤記憶體24讀取之資 訊之庫號碼部分指示之庫係相同於該讀取庫,且若快取記 憶體22中之儲存位置被佔用,則該索引處存在可稱為「命 中j之一條件。即,回應於讀取位址及自標籤記憶體24讀 155468.doc -J3- 201201018 取之資訊,讀取索引命中邏輯52判定是否存在「命中」 (亦即,判疋對應於該讀取位址之一有效資料字組是否存 在於快取S己憶體22中)。若讀取索引命中邏輯52判定存在 命中’則讀取索引命中邏輯52在_連接件54上輸出 輯-「1」信號。 記憶體邏輯40進—步包含狀對應於寫人位址48之一有 效資料字組是否存在於快取記憶體22中之寫入索引命中邏 輯56⑹下文進一步詳細描述般,當寫入處理程序叫圖^ 產生-寫入請求以起始一寫入操作時,記憶體控制器 12(其接收該寫入請求)讀取储存於標籤記憶體中藉由寫 入位址48之索引位址位元指示之索引處之資訊並且^該資 訊暫時儲存於寫入位址標籤儲存位置44 二 邏輯%判定此資訊之有效位元部分是否指干寫=引命中 刀疋甘ί日不一有效資料字 組存在於快取記憶體22中之該索引處(亦即,指示儲存位 置被有效資料佔用)。若該資訊之有效位元部分指示快取 s己憶體22中之該儲存位置被有效資料佔用, 中邏輯56在一連接件58上輸出一邏輯·「i 味’、引命 」號。(為、'主禁 目的而個別展示為此目的包含於寫入索引命中邏輯= 快取佔用邏輯59。因為讀取Μ命中邏㈣未輸出 快取佔用信號,所以讀取索引命中邏輯52中包八作 類似快取佔用邏輯。)寫入索引命中邏 ^ 3但未展示 可回應於寫入 位址则寫人位㈣之庫位址位元判庫 ^ 引命令邏輯56進一步判定藉由自標籤記憶體“讀取:索 之庫號碼部分指示之庫是否相同於該窝 資況 。若藉由自標 155468.doc -14· 201201018 籤記憶體24讀取之資訊之庫號碼部分指示之庫相同於該寫 入庫,且若快取記憶體22中之儲存位置被佔用,則在該索 引處存在命中。如上文關於讀取索引命中邏輯W所描述 般,一命中意謂在快取記憶體22中存在對應於讀取位址之 -有效資料字組。換言之,寫人索引命中邏輯56回應於寫 入位址及自標籤記憶體24讀取之資訊判定是否存在命中。 若寫入素引命中邏輯56判定存在命中,則寫人索引命中邏 輯56在一連接件60上輸出一邏輯_「i」信號。 記憶體邏輯4G進-步包含判定讀取庫及寫人庫是否彼此 相同之庫衝突邏輯62。可將此條件稱為-庫衝突。若存在 庫衝大則庫衝大邏輯62在一連接件64上輸出一邏輯· 「1」信號。 若存在—記憶庫衝突,則❹快取記㈣22。若在快取 。己隐體22中存在對應於寫入位址48、讀取位址%或兩者之 有效資料,則亦使用快取記憶體22。如上所述,在一時脈 循環N期間,記憶體邏輯的判定在下—時脈循環(n+⑽間 欲發生什麼動作。所發生的動作包含對對應於寫入位址48 之一儲存位置執行-寫人操作及對對應於讀取位址%之一 儲存位置執行—讀取操作。然而,若存在—庫衝突,或若 快取記憶體22中存在對應於寫人位㈣或讀取位址50之有 效資料,則可將寫人操作或讀取操作之—者稱為存取快取 2體22中之—儲存位置之—記憶體存取操作。若既不存 在=衝突’在快取記憶體22中也不存在對應於寫入位址 1取位址5〇之有效資料,則對記憶體庫16、18、20等 155468.doc •15· 201201018 對應於寫入位址48及||取位址5〇之儲存位置分別執行寫 操作及讀取操作。可包含於例示性實施例中以判定待發 生此等動作之哪一個動作之邏輯除了包含上述讀取索引命 k輯52寫入索引命中邏輯56及庫衝突邏輯62之外,亦 L 3匕括邏輯·及(八仙)閘66、68、7〇、υ、μ、%及78之 額外邏輯電路。 -當藉由讀取索引命中邏輯52輸出之信號係邏輯「〇」、 藉由寫入索引命中邏輯56輸出之信號係邏輯·「〇」且藉由 庫衝突邏輯62輸出之信號係邏輯-「0」時,邏輯-及閘 G、八有刀別連接至連接件54、64及6〇之三個反相輸入 端)輸出邏輯·「1」信號。即,當快取記憶體22中不存在 對應於讀取位址50之有效資料、快取記憶體22中不存在對 應於寫入位址48之有效資料且不存在庫衝突時,邏輯-及 閘66輸出一邏輯_「i」信號。 如圖2中所指*,在此等條件下,f己憶體控制器η在下 一時脈循環期間執行的動作包含執行自記憶體庫ΐ6、Μ、 0等之中之對應於讀取位址5〇之一儲存位置之一讀取 操作及執行至記憶體庫16、18、辦之—者中之對應於寫 入位址48之f堵存位置之一寫入操作。在寫入操作中寫入 之資料係記憶體控制器12自寫入處理程料接收之寫入資 料。在此等條件下不必執行其他操作(諸如,執行一回寫 操作(以下描述)或更新標籤記憶體24)。 邏輯-及閉68具有連接至連接件54之一第一反相輸入 知連接至連接件64之-第一非反相輸入端、連接至連接 155468.doc 201201018 件60之一第二反相輸入端以及連接至邏輯-及閘70之一第 一非反相輪入端及邏輯·及閘72之一第一非反相輸入端之 一輸出端《邏輯-及閘70之一第一反相輸入端係連接至連 接件58,且邏輯-及閘72之一第二非反相輸入端係連接至 連接件5 8。 根據上述邏輯電路’當藉由讀取索引命中邏輯52輸出之 信號係邏輯-「〇」、藉由寫入索引命中邏輯56輸出之信號 係邏輯-「0」、藉由庫衝突邏輯62輸出之信號係邏輯-「1」 且藉由快取佔用邏輯59輸出之信號係邏輯-「〇」時,邏輯_ 及閘7〇輸出一邏輯-「1」信號。即,當存在一庫衝突、快 取s己憶體22中不存在對應於讀取位址5〇之有效資料、快取 兄憶體22中不存在對應於寫入位址48之有效資料且在快取 記憶體22中之對應於寫入位址48之儲存位置中不存在有效 資料時,邏輯-及閘70輸出一邏輯-「i」信號。 如圖2中所指示,在此等條件下,記憶體控制器12在下 一時脈循環期間執行的動作包含執行自記憶體庫16、1 8、 20等之一者中之對應於讀取位址5〇之一儲存位置之一讀取 操作及執行至快取記憶體22中之對應於寫入位址48之一儲 存位置之一寫入操作。在寫入操作中寫入之資料係記憶體 控制器12自寫入處理程序34接收之寫入資料。未執行一回 寫操作(以下描述)。然而,藉由將對應於寫入位址48之記 憶庫號碼及一對應有效位元儲存於與快取記憶體22中之執 行寫入操作之儲存位置之索引相同之索引處之各自儲存位 置中(例如’儲存一邏輯-「1」)來更新標籤記憶體24。此 155468.doc • 17· 201201018 經儲存之有效位元指示-有效資料字組存在於快取記憶體 22中之在該索引處之儲存位置 T 經储存之庫號碼指示資 料字組對應於記憶體庫16、18、2〇等之哪一者或指示資料 子組對於記憶體庫16、18、2Q等之哪—者係原生的。 根據上述邏輯電路,當藉由讀取索引命中邏輯Μ輸出之 信號係邏輯·「〇」、藉由寫入索引命中邏輯56輸出之信號 係邏輯-「〇」、藉由庫衝突邏輯62輸出之信號係m 且藉由快取佔用邏輯59輸出之信號係邏輯· Γι」時邏輯· 及閉72輸出一邏輯-…信號。即,當存在-庫衝突、快 取5己憶體22中不存在對應於讀取位址5〇之有效資料、快取 «•己隐體22中不存在對應於寫人位址48之有效資料但在快取 記憶體22中之對應於寫入位址48之儲存位置中存在有效資 料時,邏輯-及閘72輸出一邏輯_「!」信號。 如圖2中所才曰不’在此等條件下,記憶體控制器1 2在下 一時脈循環期間執行的動作包含··執行自記憶體庫Μ、 :8、20等之一者中之對應於讀取位址5〇之一儲存位置之一 4取知作’執仃至快取記憶體22中之對應於寫入位址μ之 存位置t寫人操作;執行—回寫操作;及更新標藏 β It體24。因為在快取記憶體中之對應於寫入位址^之儲 存位置中存在有效資料(亦即,該儲存位置已被佔用且因 此不可用於暫時儲存),所以執行一回寫操作。 為了針對需要回寫操作之一條件之可能性做好準借,記 '。體控器12在每—時脈循環(N)於快取記憶體中之對 於寫入位址48之儲存位置處讀取(或「預讀取」)資料字 155468.doc •18· 201201018 組並且將該資料字組暫時儲存於寫入位址快取資料儲存位 置46(圖1)中。類似地,記憶體控制器12在每一時脈循環 (N)於標籤記憶體24中之對應於寫入位址48之儲存位置處 預讀取庫號碼資訊並且將該庫號碼資訊暫時儲存於寫入位 址標籤儲存位置44中。接著,在下一時脈循環(N+1),若 邏輯-及閘72之輸出指示待執行—回寫操作,則記憶體控 制器12將自寫入處理程序34接收之寫入資料儲存於快取記 憶體22中之對應於寫入位址48之一儲存位置中,且將暫時 儲存於寫人位址快取資料儲存位置辦之資料字組複製至 記憶體庫16、18、2〇等之—者中之對應於暫時儲存於寫入 位址標籤儲存位置44巾之庫號碼之-儲存位置。記憶體控 制器12亦藉由將對應於寫人位址48之庫號碼及—制有效 位元儲存於與快取記憶體22中之執行寫入操作之儲存位置 之索引相同之索引處之各自儲存位置中(例如,儲存一邏 輯「1」)來更新標籤記憶體24。此經儲存之有效 -有效資料字組存在於快取記憶體22中之在該索引處之儲 存位置中。經儲存之錢碼指示資料字組對應於記憶體庫 16、18、2G等之哪_者或指示資料字㈣於記憶體庫 18、20等之哪一者係原生的。 當藉由讀取索引命中邏輯52輸出之信號係邏輯·「〇」且 寫入索引命中邏輯56之輸出係邏輯_Γι」日夺,邏輯乂問 ^其具有連接至連接件54之—反相輸入端及連接至連接 件60之—非反相輸入端)輸出—邏輯-「1」信號U快 取記憶體22中不存在對應於讀取位址5〇之有效資料且,二 155468.doc •19· 201201018 。己隐體22中存在對應於寫入位址48之有效資料時,邏輯_ 及閘74輸出一邏輯_「丨」信號。是否存在或不存在一庫衝 突係不相關的(亦即,按數位邏輯說法之一「忽略」條 件),因為在此等條件下,快取記憶體22中之相關記憶體 位置之内容係不變的。 如圖2中所指示,在此等條件下,記憶體控制器丨2在下 一時脈循環期間執行的動作包含執行自記憶體庫1 6、1 8、 20等之一者中之對應於讀取位址50之一儲存位置之一讀取 操作及執行至快取記憶體22中之對應於寫入位址48之一儲 存位置之一寫入操作。在寫入操作中寫入之資料係記憶體 控制器12自寫入處理程序34接收之寫入資料。在此等條件 下不必執行回寫操作或標籤記憶體24之更新。 當藉由讀取索引命中邏輯52輸出之信號係邏輯-「i」且 寫入索引命中邏輯56之輸出係邏輯_「〇」時,邏輯及閘 76(其具有連接至連接件54之一非反相輸入端及連接至連 接件60之一反相輸入端)輸出一邏輯_「丨」信號。即,當快 取記憶體22中存在對應於讀取位址5〇之有效資料且快取記 憶體22中不存在對應於寫入位址48之有效資料時,邏輯_ 及閘76輸出一邏輯-「1」信號。是否存在或不存在一庫衝 大係不相關的,因為在此等條件下,快取記憶體22中之相 關記憶體位置之内容係不變的。 如圖2中所指示,在此等條件下,記憶體控制器η在下 一時脈循環期間執行的動作包含執行自快取記憶體22中之 對應於讀取位址50之一儲存位置之一讀取操作及執行至記 155468.doc -20- 201201018 憶體庫16、18、20等之一 存位置之一寫入操作。在 一者中之對應於寫入位址48之一儲 在寫入操作中寫入之資料係記憶體 控制器12自寫人處理程序34接收之寫人f料。在此等條件 下不必執行回寫操作或標籤記憶體24之更新。 當藉由讀取索引命中邏輯52輸出之信號係邏輯-「1」且 寫入索引命中邏輯56之輸出係邏輯_ r丨」時,邏輯·及閘 78(其具有連接至連接件54之一第一非反相輸入端及連接 至連接件60之一第二非反相輸入端)輸出一邏輯·「1」信 ^。即,當快取記憶體22中存在對應於讀取位址5〇之纽 貝料且快取記憶體22中亦存在對應於寫入位址銘之有效資 料時,邏輯-及閘78輸出-邏輯-Γι」信號。是否存在或不 存在-庫衝突係不相關的,因為在此等條件下,快取記憶 體22中之相關記憶體位置之内容係不變的。 一時脈循_間執行的乍包含執行自快取記 對應於讀取位i丨!· 5 η夕—At 士™ 如圖2中所才曰不’在此等條件下’記憶體控制器η在下
155468.doc -21 - 201201018 位置中。 在圓3中以真值表形式概述記憶體邏輯4〇之邏輯電路。 注意,採用快取記憶體22來避免由庫衝突引起之問題。 即,在真值表中闡述之所有邏輯條件下,一記憶體存取操 作(亦即,-些邏輯條件下之寫入操作或其他邏輯條件下 之讀取操作)係對快取記憶體22或記憶體庫16、18、2〇等 之-者中之-儲存位置執行。然而,惟若存在一庫衝突或 對應於讀取位址50及寫入位址48之一者之資料存在於快取 S己憶體22中’才對快取記憶體22中之-儲存位置執行該纪 憶體存取操作。 ° 圖4中圖解闡釋上述操作或動作之相對時序或管線。如 上所述,在例示性實施例中,寫入處理程序32及讀取處理 程序34在兩個或兩個以上連續時脈循環鍵期間之每一時脈 循環分別起始-寫入操作及一讀取操作。圖4中展示三個 例示性連續時脈循環n、n+1&n+2。 在此等時脈循環之各者(諸如時脈循環n)期間,記憶體 控制器12(1)自標籤記憶體24中對應於寫入位址μ及讀取 〇(圆2)之-儲存位置讀取標籤資訊並且將該標鐵資訊 暫時儲存於寫入位址標籤儲存位置44及讀取位址標籤儲存 置2中3己憶體控制器i 2亦自快取記憶體22中對應於寫 位址48之-儲存位置預讀取_資料字組並且將該資料字 組暫時儲存於寫入位址快取資料儲存位置辦。在相同於 -中"己隐體控制器12執行上述操作之時脈循環之時脈循環 (諸如時脈猶環N)期間’記憶體控制器12之記憶體邏輯 155468.doc -22· 201201018 4〇(圖2)對標籤資訊以及寫入位址48及讀取位址5〇進行操作 以判定在下一時脈循環N+1欲發生什麼動作。 /在下一時脈循環(諸如,關於藉由記憶體邏輯4〇在時脈 循環N期間判定之動作之時脈循環N+1)期間,記憶體控制 器12執行一讀取操作及一寫入操作。為描述此等記憶體存 取操之目的’可將此時脈循環稱為—記憶體存取時脈循 環。記憶體控制器12取決於記憶體邏輯4〇之上述輸出而對 快取記憶體22或記憶體庫16、18、㈣之—者執行讀取操 作。同樣地,記憶體控制器12取決於記憶體邏輯4〇之上述 輸出而對快取記憶體22或記憶體庫16、18、2〇等之一者執 行寫入操作。如上文亦描述般,在一些條件下,記憶體邏 輯40輸出執行-回寫操作之一指示,在此情況下,記憶體 控制器12在此下-時脈循環N+1期間亦執行一回寫操作。 如上文亦㈣般’在-些條件下,記憶體邏輯轉出更新 t籤5己憶體24之-指示,在此情況下,記憶體控制器叫 此I時脈循^N+1期間亦藉由將有效位元(邏輯_「〇」或 邏輯-1」)之一值及(在—些情況下)一經更新之庫號碼儲 t於標籤記憶體24中之相關儲存位置中。注意,在時脈循 衣鏈之每連續時脈循環期間(諸如,在此下__時脈循環 N+1期間)’ §己憶體控制器12亦執行上文關於時脈循環n所 描述之動作’ II此以管線式方式進行操作。如圖4中所示 ,在一記憶體延時週期(諸如,-時脈循環)之後之時脈循 %N+2期間發生般,由記憶體控制器η在如上述之時脈循 ^N+1期間自快取記憶體22或記憶體庫16、18、20等之一 155468.doc •23· 201201018 者讀取之資料變成可用於讀取處理程序34以透過匯流排3〇 傳送離開S己憶體系統1〇。圖4中圖解闡釋一時脈循環之一 。己隐體延時,但在其他實施例中,該記憶體延時可為— 個、兩個或兩個以上時脈循環。 可參考圖5之圖概述上述之記憶體系統1〇之操作。方塊 8〇、82、84、86、88、9〇、92、94及96表示上述操作或動 作f不=以可藉由圖5中之其等順序暗示之任何順序加以 執行。實情係’圖5中展示的順序意欲僅為圖解之目的。 可以任何適當的順序(除了如可藉由以上描述指示之順序 外)執行藉由方塊80、82、84、86、88、9〇、%、94及% 指示之操作。 如藉由方塊80指示般,在許多連續時脈循環之各者期 間,記憶體控制器12(圖1)分別自寫入處理程序32及讀取處 理程序34接收一寫入請求及一讀取請求兩者。該寫入請求 包含一寫入位址及寫入資料’且該讀取請求包含一讀取位 址。如藉由方塊82指示般,記憶體控制器12之記憶體邏輯 4〇回應於該寫入位址判定一寫入庫。如藉由方塊84指示 般,記憶體控制器12之記憶體邏輯40回應於該讀取位址判 定一讀取庫。如藉由方塊86指示般,記憶體控制器12之記 憶體邏輯40進一步判定一庫衝突是否存在。如藉由方塊88 才曰示般’記憶體控制器12之記憶體邏輯4〇回應於該讀取位 址及自標籤記憶體24讀取之資訊亦判定對應於該讀取位址 之有效資料是否存在於快取記憶體22中。類似地,如藉由 方塊90指示般,記憶體控制器12之記憶體邏輯4〇回應於該 155468.doc •24- 201201018 寫入位址及自標籤記憶體24讀取之#訊_ 入位址之資料是否存在於快取記憶體22中。…該寫 如藉由方塊92指示般,在下-時脈《或在上述 後,記憶體控制器12分別對對應於該寫入位址及該讀取位 址之一者之-儲存位置執行包括一寫入操作及—讀取操作 ^者之ά憶體存取操作。若存在—庫衝突或對應於該 :入位址及该讀取位址之—者之資料存在於快取記憶體。 t ’則㈣取記憶體22中之-儲存位置執行該記憶體存取 刼作。右不存在庫衝突且快取記憶體22中不存在對庫於 取位址或寫入位址之資料,則對原生庫(亦即,記_庫 16、18、20等之-者)執行該記憶體存取操作。 如藉由方塊94指示般,記憶體控制器⑽行讀取及寫入 操作之另-者’亦即’並非上文關於方塊”所描述之’「 隐體存取&作」之操作。注意,在連續時脈循環鏈之每— (「記憶體存取」)時脈循環期間,讀取操作及寫入操作 者係分別回應於該讀取請求及該寫入請求加以執行。在龙 中讀取操作係在記憶體存取時脈循環期間對快取記憶體: 所執行之記憶體存取操作之條件下,方塊94指示在該 體存取時脈循環期間對記憶體庫16、18、20等之—者執Γ 一寫入操作。在其中寫入操作係在記憶體存取時脈期二 快取記憶體22所執行之記憶體存取操作之條件下,方塊% 指不在該記憶體存取時脈循環期間對記憶體庫Μ、U、4 荨之一者執行一讀取操作。 如糟由方塊96指示般,在上述之特定條件下,記憶體控 155468.doc -25- 201201018 制器亦更新標籤記憶體24。更特定言之,若對快取記憶 體22中對應於該寫入位址之储存位置執行一寫入操作且若 在該寫入操作之前判定對應於該寫入位址之資料不存在於 快取記憶體22中,則使用一有效位元更新標鐵記憶體24以 指示有效資料是否存在於快取記憶㈣中對應於該寫入位 址之一儲存位置中並且使用庫號碼資訊更新標鐵記憶_ 以指示該儲存位置表示哪個庫。 〜方塊80至90廣泛地描述記憶體系統1〇之總體操 作’且在圓5中未展示可包含之其他操作(諸如,與上述回 寫操作相關之操作)。然而,可注意,回寫操作不是一額 外操作而是藉由方塊92指示之記憶體存取操作之-特殊情 况。即,在一回寫操作_,記憶體存取操作(方塊92)係對 ㈣記憶體22中之一儲存位置執行之-寫入操作,但存在 額外寫入操作’ s亥額外寫入操作將先前保存於快取記憶 體22中之—資料字組傳送回至其原生記憶體庫中。 上文已描述本發明之_或多個圖解闡釋性實施例。然 而應瞭解,本發明係藉由隨附申請專利範圍定義且不限 於所描述之特定實施例。 【圖式簡單說明】 圖係包s根據本發明之一例示性實施例之一記憶體系 統之一 ASIC之一方塊圖; 圖2係展示^之記憶體系統之記憶體邏輯部分之一圖; 圖3係圖2之記憶體邏輯之一真值表; 圖4係展不根據該例示性實施例之操作管線之一時序 155468.doc •26. 201201018 圖;及 圖5係圖解闡釋圖1之記憶體系統之一例示性操作方法之 一流程圖。 【主要元件符號說明】 10 記憶體系統 12 記憶體控制器 14 記憶體裝置 16 記憶體庫 18 記憶體庫 20 記憶體庫 22 快取記憶體 24 標籤記憶體 26 特定應用積體電路(ASIC) 28 處理系統 30 匯流排 32 寫入處理程序 34 讀取處理程序 36 水平條 38 水平條 40 記憶體邏輯 42 讀取位址標籤儲存位置 44 寫入位址標籤儲存位置 46 寫入位址快取資料儲存位置 48 寫入位址 155468.doc -27- 201201018 50 讀取位址 52 讀取索引命中邏輯 54 連接件 56 寫入索引命中邏輯 58 連接件 59 快取佔用邏輯 60 連接件 62 庫衝突邏輯 64 連接件 66 邏輯-及閘 68 邏輯-及閘 70 邏輯-及閘 72 邏輯-及閘 74 邏輯-及閘 76 邏輯-及閘 78 邏輯-及閘 155468.doc • 28 -