專利名稱:具有高訪問(wèn)存儲(chǔ)帶寬的高速緩沖存儲(chǔ)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種高速緩沖存儲(chǔ)器以及用于在其上存儲(chǔ)和載入數(shù) 據(jù)的方法。更具體地說(shuō),本發(fā)明針對(duì)利用了具有位寫(xiě)功能的單端口
SRAM的高速緩沖存儲(chǔ)器裝置和系統(tǒng)結(jié)構(gòu),該位寫(xiě)功能能夠在支持多 路存儲(chǔ)操作或支持至少一個(gè)存儲(chǔ)操作的同時(shí)還支持一個(gè)在高速緩沖 數(shù)據(jù)存儲(chǔ)器上的載入操作。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例包括一種高速緩沖存儲(chǔ)器系統(tǒng)。該髙速緩沖存 儲(chǔ)器系統(tǒng)包括用于存儲(chǔ)高速緩沖數(shù)據(jù)的高速緩沖數(shù)據(jù)存儲(chǔ)器以及兩 個(gè)或更多個(gè)用于存儲(chǔ)高速緩沖標(biāo)記和有效位的高速緩沖標(biāo)記存儲(chǔ)器。 存儲(chǔ)槽(0)地址計(jì)算邏輯計(jì)算存儲(chǔ)操作地址。存儲(chǔ)槽(0)標(biāo)記判別 器接收來(lái)自存儲(chǔ)槽(o)地址計(jì)算邏輯的地址信息,并且利用該信息 來(lái)訪問(wèn)存儲(chǔ)槽(0)標(biāo)記SRAM。高速緩沖寫(xiě)緩沖區(qū)為高速緩沖數(shù)據(jù)存 儲(chǔ)器接收并存儲(chǔ)待保存的數(shù)據(jù)。同樣,存儲(chǔ)槽(1)地址邏輯電路用 來(lái)為存儲(chǔ)槽(1)標(biāo)記SRAM計(jì)算存儲(chǔ)操作地址,并為高速緩沖數(shù)據(jù)載 入操作地址。存儲(chǔ)槽(1)標(biāo)記判別器從存儲(chǔ)槽(1)地址計(jì)算邏輯接 收地址信息,并嘗試訪問(wèn)該存儲(chǔ)槽(1)標(biāo)記SRAM。存儲(chǔ)槽(0)標(biāo) 記SRAM、存儲(chǔ)槽(1)標(biāo)記SRAM和高速緩沖寫(xiě)緩沖區(qū)被組合用來(lái)向 高速緩沖數(shù)據(jù)存儲(chǔ)器執(zhí)行兩個(gè)幾乎同時(shí)的存儲(chǔ)操作。在本發(fā)明的其它 實(shí)施例中,高速緩沖數(shù)據(jù)存儲(chǔ)器由一個(gè)單端口 SR細(xì)存儲(chǔ)器裝置組成。 同時(shí),本發(fā)明的其它實(shí)施例允許分別通過(guò)存儲(chǔ)槽(0)和存儲(chǔ)槽(1) 地址來(lái)在高速緩沖數(shù)據(jù)存儲(chǔ)器中同時(shí)載入和存儲(chǔ)數(shù)據(jù)。然而本發(fā)明的 其它實(shí)施例提供一種使用多個(gè)SRAM裝置的高速緩沖數(shù)據(jù)存儲(chǔ)器。所 述高速緩沖數(shù)據(jù)存儲(chǔ)器內(nèi)的所述多個(gè)SR認(rèn)裝置提供了一種方式用于 基于存儲(chǔ)器地址的高速緩沖數(shù)據(jù)的交叉存取(interleaving)。這種交叉存取允許數(shù)據(jù)流帶寬超過(guò)在高速緩沖數(shù)據(jù)存儲(chǔ)器中未使用多分 離單端口 SR細(xì)存儲(chǔ)器裝置的那些高速緩沖數(shù)據(jù)存儲(chǔ)器。
本發(fā)明的另一實(shí)施例為一種高速緩沖存儲(chǔ)器系統(tǒng),該系統(tǒng)被認(rèn) 為是一種偽多端口 (pseudo-multi-ported)高速緩沖存儲(chǔ)器系統(tǒng)。 這樣一種高速緩沖存儲(chǔ)器系統(tǒng)與類似的具有多端口 SR認(rèn)存儲(chǔ)器的高 速緩沖存儲(chǔ)器系統(tǒng)相比,需要較小的空間量。
同樣在本發(fā)明的其它實(shí)施例中,多個(gè)標(biāo)記SRAM存儲(chǔ)器可以被添 加到該高速緩沖存儲(chǔ)器系統(tǒng),由此允許在高速緩沖存儲(chǔ)器中執(zhí)行額外 的同時(shí)存儲(chǔ)功能。也就是說(shuō),兩個(gè)或更多的標(biāo)記SRAM存儲(chǔ)器能允許 兩個(gè)或更多個(gè)存儲(chǔ)槽(達(dá)到N個(gè)存儲(chǔ)槽,其中N為正整數(shù))同時(shí)進(jìn)行 對(duì)于每個(gè)存儲(chǔ)槽將數(shù)據(jù)存儲(chǔ)在高速緩沖存儲(chǔ)器系統(tǒng)的高速緩沖數(shù)據(jù) 存儲(chǔ)器中。
本發(fā)明另一實(shí)施例提供了一種方法,該方法使用了一種偽多端 口高速緩沖存儲(chǔ)器系統(tǒng),其中存儲(chǔ)槽(0)存儲(chǔ)數(shù)據(jù)被存儲(chǔ)在一個(gè)高 速緩沖數(shù)據(jù)存儲(chǔ)器中,幾乎同時(shí),存儲(chǔ)槽(1)存儲(chǔ)數(shù)據(jù)也被完全同 時(shí)存儲(chǔ)在相同的高速緩沖數(shù)據(jù)存儲(chǔ)器中。
本發(fā)明的以上總結(jié)并沒(méi)有試圖闡述每一個(gè)實(shí)施例或本發(fā)明的每 一個(gè)方面。
通過(guò)參考下面的詳細(xì)說(shuō)明并結(jié)合附圖,可以獲得對(duì)本發(fā)明的方 法和裝置更完整的了解。
圖1是直接映射高速緩沖存儲(chǔ)器設(shè)計(jì)的方框圖2是根據(jù)本發(fā)明的支持多個(gè)同時(shí)存儲(chǔ)操作和一個(gè)同時(shí)載入操 作的示意性的偽多端口高速緩沖存儲(chǔ)器的方框圖和流程圖;以及
圖3是根據(jù)本發(fā)明的增加向高速緩沖存儲(chǔ)器結(jié)構(gòu)的數(shù)據(jù)流的有 效帶寬的高速緩沖數(shù)據(jù)存儲(chǔ)器的示意性實(shí)施例的方框圖。
具體實(shí)施例方式
高速緩沖存儲(chǔ)器已經(jīng)被使用很多年了。而且,使用了許多設(shè)計(jì)技術(shù)來(lái)開(kāi)發(fā)存儲(chǔ)器地址引用的時(shí)間和空間位置。在微處理器和其它處 理器設(shè)計(jì)中頻繁地使用高速緩沖存儲(chǔ)器?,F(xiàn)今的處理器典型地具有
16、 32或64位的存儲(chǔ)器地址空間。這樣的存儲(chǔ)器地址空間導(dǎo)致在存 儲(chǔ)器空間中216、 232或264的可獨(dú)立尋址的數(shù)據(jù)單元。為了處理這 樣大量的地址空間,針對(duì)存儲(chǔ)器地址引用的位置開(kāi)發(fā)了一種存儲(chǔ)器分 層的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),這種結(jié)構(gòu)典型地支持這種處理器。通常,緊鄰處 理器的存儲(chǔ)器存儲(chǔ)結(jié)構(gòu)(即,Ll存儲(chǔ)器)允許該結(jié)構(gòu)內(nèi)存儲(chǔ)單元的 快速訪問(wèn)。這樣的緊鄰處理器的存儲(chǔ)結(jié)構(gòu)通常具有相對(duì)小的存儲(chǔ)容 量。這種較小的存儲(chǔ)容量通常不夠大來(lái)捕獲處理器地址空間內(nèi)所有的 可獨(dú)立尋址的存儲(chǔ)單元。位置距離處理器更遠(yuǎn)的存儲(chǔ)結(jié)構(gòu)(即L2存 儲(chǔ)器)通常具有與緊鄰處理器的存儲(chǔ)結(jié)構(gòu)相比較慢的訪問(wèn)時(shí)間。距離 處理器更遠(yuǎn)的存儲(chǔ)結(jié)構(gòu)通常具有與緊鄰處理器的存儲(chǔ)結(jié)構(gòu)相比較大
的存儲(chǔ)容量。較好平衡的存儲(chǔ)器層次試圖提供對(duì)處理器所需的所有存 儲(chǔ)單元的快速訪問(wèn)。由于一種高速緩沖存儲(chǔ)器結(jié)構(gòu)試圖開(kāi)發(fā)存儲(chǔ)器地
址引用中的位置,所以通過(guò)處理器的快速訪問(wèn)可以通過(guò)將一種高速緩 沖存儲(chǔ)器設(shè)計(jì)應(yīng)用到更靠近處理器的存儲(chǔ)結(jié)構(gòu)中來(lái)實(shí)現(xiàn)。
下面是對(duì)現(xiàn)有技術(shù)中直接映射高速緩沖存儲(chǔ)器設(shè)計(jì)10的簡(jiǎn)短說(shuō) 明(盡管還存在相關(guān)的高速緩沖存儲(chǔ)器,但其保護(hù)范圍與本發(fā)明的實(shí) 施例不同)。
現(xiàn)在參考圖l,其中描述了現(xiàn)有技術(shù)中的直接映射高速緩沖存儲(chǔ) 器設(shè)計(jì)10。假設(shè)32位的存儲(chǔ)器地址空間。32位的存儲(chǔ)器地址空間可 以獨(dú)立尋址總共232或4G的數(shù)據(jù)單元。為了簡(jiǎn)化討論,我們將討論 字節(jié)而不是數(shù)據(jù)單元。而且假設(shè)例如高速緩沖存儲(chǔ)器裝置10具有64K 字節(jié)(216字節(jié))的存儲(chǔ)容量以及32字節(jié)的高速緩沖存儲(chǔ)器模塊尺 寸(也稱為線尺寸)。高速緩沖存儲(chǔ)器模塊12是在高速緩沖存儲(chǔ)器 10與分層存儲(chǔ)器30中的其它存儲(chǔ)結(jié)構(gòu)之間的作為單個(gè)數(shù)據(jù)實(shí)體而被
傳輸?shù)囊唤M連續(xù)的字節(jié)。為了使存儲(chǔ)器地址引用地址空間中的一個(gè)字 節(jié),存儲(chǔ)器地址被表示為32位值A(chǔ)[31: O],其中第31位是地址的 最高有效位,而第O位是地址的最低有效位。使用地址A來(lái)訪問(wèn)高速 緩沖存儲(chǔ)器IO。在圖l的實(shí)例中, 一個(gè)具有32字節(jié)模塊尺寸的64K字節(jié)的高速緩沖存儲(chǔ)器,其第31至第16位被用作一個(gè)標(biāo)記,第15 至第5位被用作模塊地址(也被稱為線或組地址),而第4至第0 位被用作字節(jié)索引。模塊地址被用來(lái)索引高速緩沖存儲(chǔ)器結(jié)構(gòu)16中 的高速緩沖存儲(chǔ)器的標(biāo)記存儲(chǔ)器20以及數(shù)據(jù)存儲(chǔ)器18。將從標(biāo)記存 儲(chǔ)器20獲取的標(biāo)記與作為地址A —部分的標(biāo)記作比較。通過(guò)比較來(lái) 決定引用的模塊是否出現(xiàn)在高速緩沖存儲(chǔ)器10中。來(lái)自數(shù)據(jù)存儲(chǔ)器 18的獲取模塊被用于選擇引用字節(jié)單元。通過(guò)利用地址A的字節(jié)索 引值來(lái)選擇引用字節(jié)單元。
仍然參考圖1,現(xiàn)有技術(shù)中的高速緩沖存儲(chǔ)器設(shè)計(jì)10使用具有 位寫(xiě)功能的單端口 SRAM。換言之,存儲(chǔ)器允許對(duì)存儲(chǔ)器位置中某些 位選擇更新而像由位掩碼識(shí)別一樣。這一功能允許通過(guò)選擇性的更新 使一存儲(chǔ)器位置的數(shù)據(jù)進(jìn)行選擇性的融合,而不需要首先獲取該位置 的數(shù)據(jù)。
仍然參考圖1,提供通過(guò)高速緩沖存儲(chǔ)器流水線的存儲(chǔ)操作和載 入操作的流程。在階段A由地址計(jì)算電路22計(jì)算存儲(chǔ)操作的地址。 在階段B,通過(guò)標(biāo)記判別器26請(qǐng)求對(duì)標(biāo)記存儲(chǔ)器結(jié)構(gòu)20的訪問(wèn)。根 據(jù)存儲(chǔ)操作相關(guān)的存儲(chǔ)槽來(lái)訪問(wèn)標(biāo)記存儲(chǔ)器結(jié)構(gòu)。應(yīng)理解存儲(chǔ)操作不 需要訪問(wèn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)18,因?yàn)樵诖鎯?chǔ)操作期間不需要從高速緩 沖存儲(chǔ)器結(jié)構(gòu)中獲取數(shù)據(jù)。在階段C,訪問(wèn)標(biāo)記存儲(chǔ)器結(jié)構(gòu)16的標(biāo) 記存儲(chǔ)器部分20。標(biāo)記比較邏輯34分離出高速緩沖存儲(chǔ)器命中信號(hào) (如果有命中的話),以及其它控制信息。在階段D,操作控制狀態(tài) 機(jī)32按照由標(biāo)記比較邏輯34提供的控制信息來(lái)運(yùn)行。在高速緩沖存 儲(chǔ)器沒(méi)有命中的情況下,分配一個(gè)高速緩沖存儲(chǔ)器線(line)。在高速 緩沖存儲(chǔ)器命中的情況下,要存儲(chǔ)在高速緩沖存儲(chǔ)器結(jié)構(gòu)16的高速 緩沖存儲(chǔ)器18部分中的數(shù)據(jù)(存儲(chǔ)數(shù)據(jù))被發(fā)送給高速緩沖存儲(chǔ)器 寫(xiě)緩沖區(qū)(CWB) 28。 一個(gè)周期之后,該存儲(chǔ)數(shù)據(jù)出現(xiàn)在CWB28,并 且CWB28請(qǐng)求訪問(wèn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)18。當(dāng)允許訪問(wèn)高速緩沖數(shù)據(jù)存 儲(chǔ)器結(jié)構(gòu)18時(shí),該存儲(chǔ)數(shù)據(jù)在接下來(lái)一個(gè)周期被放入高速緩沖數(shù)據(jù) 存儲(chǔ)器結(jié)構(gòu)18中。當(dāng)不允許訪問(wèn)高速緩沖數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)18時(shí),該 存儲(chǔ)數(shù)據(jù)27更新為存儲(chǔ)器結(jié)構(gòu)16,更具體地說(shuō),更新為高速緩沖數(shù)據(jù)存儲(chǔ)器18被推遲到CWB28被允許訪問(wèn)該結(jié)構(gòu)的另一個(gè)時(shí)間點(diǎn)。同 時(shí),存儲(chǔ)數(shù)據(jù)27在CWB 28中保持待處理狀態(tài),CWB 28提供多達(dá)6 個(gè)待處理存儲(chǔ)的存儲(chǔ)容量。
載入操作具有在階段A中由地址計(jì)算電路22計(jì)算的地址。在階 段B中,分別通過(guò)標(biāo)記訪問(wèn)判別器26和數(shù)據(jù)存儲(chǔ)器訪問(wèn)判別器24 請(qǐng)求對(duì)標(biāo)記存儲(chǔ)器結(jié)構(gòu)20和數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)18的訪問(wèn)。在階段C, 訪問(wèn)存儲(chǔ)器結(jié)構(gòu)16。即訪問(wèn)高速緩沖數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)18以及標(biāo)記存 儲(chǔ)器結(jié)構(gòu)20。高速緩沖數(shù)據(jù)存儲(chǔ)器18為數(shù)據(jù)線路(data way) 12提供 數(shù)據(jù)。而且,在載入對(duì)準(zhǔn)器和符號(hào)擴(kuò)展電路30中識(shí)別與之前的處于 階段D操作中或CWB 28中的存儲(chǔ)操作沖突的載入地址??刂茽顟B(tài)機(jī) 32按照從標(biāo)記比較邏輯34分離出的被提供的控制信息來(lái)進(jìn)行操作。 在高速緩沖存儲(chǔ)器沒(méi)有命中的情況下,通過(guò)重填(refill)單元線36 (重填單元在圖中沒(méi)有示出)由一個(gè)重填單元從存儲(chǔ)器獲取高速緩沖 存儲(chǔ)器線。在地址與之前存儲(chǔ)操作沖突的情況下,存儲(chǔ)數(shù)據(jù)被放入數(shù) 據(jù)存儲(chǔ)器結(jié)構(gòu)16,并且載入操作被再次執(zhí)行。
正如從圖1以及通過(guò)現(xiàn)有技術(shù)中高速緩沖存儲(chǔ)器流水線10的存 儲(chǔ)和載入操作的流程說(shuō)明中理解的那樣,可以總結(jié)出只有載入操作要 求數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)16的立即可用性。載入操作通常具有固定的操作 延時(shí)(在該示例實(shí)施例中為4)。然而,存儲(chǔ)操作不具有操作延時(shí), 并且它們的數(shù)據(jù)更新可被推遲到之后的數(shù)據(jù)結(jié)構(gòu)16變得可用的時(shí)間 占。<formula>formula see original document page 9</formula>
現(xiàn)有技術(shù)高速緩沖存儲(chǔ)器流水線10系統(tǒng)的標(biāo)記和存儲(chǔ)器結(jié)構(gòu) (18, 20)典型地由單端口 SRAM存儲(chǔ)器來(lái)建立。即,數(shù)據(jù)SRAM 20 和標(biāo)記SRAM 18都由單端口 SRAM存儲(chǔ)器組成。使用這些單端口 SRAM 存儲(chǔ)器是因?yàn)樗鼈兞畠r(jià)、需要小量的電路面積、并被認(rèn)為是快速存儲(chǔ) 器電路。然而,它們的單端口本質(zhì)對(duì)它們的使用構(gòu)成限制。確實(shí)現(xiàn)在 已經(jīng)可以使用多端口 SRAM,但是多端口 SRAM相對(duì)昂貴而且在硅片上 需要較多的引腳或面積。而且,多端口 SRAM比它們的對(duì)手單端口 SR認(rèn) 要慢。因此,由于需要的硅片面積的大小和它們運(yùn)行的時(shí)鐘頻率較慢, 支持具有多端口 SR認(rèn)設(shè)計(jì)的多個(gè)同時(shí)載入和存儲(chǔ)操作不被采用?,F(xiàn)有技術(shù)中產(chǎn)生了替代的高速緩沖存儲(chǔ)器方式。這些方式典型地使用
"偽雙端口" SRAM裝置。這種由偽雙端口 SR屈裝置制作的高速緩沖 存儲(chǔ)器系統(tǒng)可支持多個(gè)同時(shí)載入和存儲(chǔ)操作,但是性能會(huì)降低,因?yàn)?它們的"偽"本質(zhì)不能支持不帶有性能損失的同時(shí)操作。因此,需要 這樣的高速緩沖存儲(chǔ)器,其可運(yùn)行在高帶寬,但不會(huì)在執(zhí)行多個(gè)同時(shí) 載入和/或存儲(chǔ)操作時(shí)遭受性能降低。
在本發(fā)明的實(shí)施例中,提供的偽多端口高速緩沖存儲(chǔ)器支持多 個(gè)同時(shí)存儲(chǔ)操作和單個(gè)載入操作,而只需要在硅片面積或引腳上付出 很小的額外成本。圖1的流程為通過(guò)使用利用了單端口或偽雙端口 SRAM結(jié)構(gòu)的現(xiàn)有高速緩沖存儲(chǔ)器流水線的現(xiàn)有技術(shù)存儲(chǔ)和載入操 作,在仔細(xì)回顧之后,注意到僅僅載入操作要求數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)的直 接可用性。載入操作具有固定為4的操作延時(shí),這是由編譯器操作調(diào) 度來(lái)決定的。然而,存儲(chǔ)操作沒(méi)有操作延時(shí),并且它們的數(shù)據(jù)更新功 能可以被推遲到數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)變得可用的稍后的時(shí)間點(diǎn)。
本發(fā)明的實(shí)施例能夠通過(guò)僅僅將現(xiàn)有技術(shù)結(jié)構(gòu)的標(biāo)記存儲(chǔ)器加 倍來(lái)提供對(duì)兩個(gè)不受限存儲(chǔ)操作的支持。如果希望兩個(gè)不受限載入操 作,則必須加倍數(shù)據(jù)存儲(chǔ)器的面積和存儲(chǔ)器大小(與圖1所示的現(xiàn)有 技術(shù)高速緩沖存儲(chǔ)器系統(tǒng)相比)。由于將數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)中的存儲(chǔ)器 加倍比將標(biāo)記存儲(chǔ)器結(jié)構(gòu)中的存儲(chǔ)器加倍更昂貴,并且由于高速緩沖 存儲(chǔ)器線標(biāo)記入口與高速緩沖存儲(chǔ)器數(shù)據(jù)線結(jié)構(gòu)相比需要明顯較少 的位數(shù),很明顯,對(duì)于本發(fā)明的實(shí)施例加倍標(biāo)記存儲(chǔ)器更加有利。
現(xiàn)在參考圖2,描述根據(jù)本發(fā)明實(shí)施例的高速緩沖存儲(chǔ)器結(jié)構(gòu) 40。在這個(gè)示例實(shí)施例中為每個(gè)額外的發(fā)布存儲(chǔ)槽(issue slot)增加 了支持存儲(chǔ)操作的額外的標(biāo)記存儲(chǔ)器結(jié)構(gòu)。即,圖2描述了支持兩個(gè) 同時(shí)存儲(chǔ)操作或與一個(gè)載入操作同時(shí)的存儲(chǔ)操作的示例高速緩沖存 儲(chǔ)器系統(tǒng)40的實(shí)例。兩個(gè)存儲(chǔ)操作都可使用兩個(gè)發(fā)布存儲(chǔ)槽,存儲(chǔ) 槽(0) 42和存儲(chǔ)槽(1) 44。然而,載入操作只能在第二發(fā)布存儲(chǔ) 槽,即存儲(chǔ)槽(1) 44中被發(fā)布。
首先,討論存儲(chǔ)操作,在階段A中,分別在地址計(jì)算盒46和48 中為存儲(chǔ)槽(0) 42和存儲(chǔ)槽(1) 44計(jì)算地址。在階段B,分別通過(guò)訪問(wèn)判別器50和52向標(biāo)記存儲(chǔ)器請(qǐng)求對(duì)標(biāo)記存儲(chǔ)器結(jié)構(gòu)54和56 的訪問(wèn)。記住,任何存儲(chǔ)操作都不需要訪問(wèn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58中的 數(shù)據(jù),因?yàn)闆](méi)有從高速緩沖存儲(chǔ)器結(jié)構(gòu)58中獲取任何數(shù)據(jù)。在階段 C,訪問(wèn)針對(duì)存儲(chǔ)數(shù)據(jù)的合適存儲(chǔ)槽(0或1)的標(biāo)記結(jié)構(gòu)。這樣,對(duì) 于存儲(chǔ)槽0,標(biāo)記存儲(chǔ)器結(jié)構(gòu)54被訪問(wèn),并且如果完成一次命中的 話,標(biāo)記比較邏輯60分離出高速緩沖存儲(chǔ)器命中信號(hào)以及其它控制 信息。在高速緩沖存儲(chǔ)器沒(méi)有命中的情況下, 一個(gè)高速緩沖存儲(chǔ)器線 被配置。在高速緩沖存儲(chǔ)器命中的情況下,要被存儲(chǔ)的數(shù)據(jù)被發(fā)送到 高速緩沖存儲(chǔ)器寫(xiě)緩沖區(qū)(CWB) 64。 一個(gè)寫(xiě)周期之后,數(shù)據(jù)出現(xiàn)在 CWB 64中,并且該緩沖區(qū)要求訪問(wèn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58。當(dāng)允許CWB 64 訪問(wèn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)時(shí),在接下來(lái)一個(gè)周期存儲(chǔ)數(shù)據(jù)被放入數(shù)據(jù)存儲(chǔ) 器結(jié)構(gòu)58。當(dāng)不允許訪問(wèn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)時(shí),存儲(chǔ)器結(jié)構(gòu)中存儲(chǔ)數(shù) 據(jù)的更新被推遲到稍后的CWB 64被允許訪問(wèn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58的時(shí) 間點(diǎn)。同時(shí),存儲(chǔ)數(shù)據(jù)保持待處理狀態(tài)。CWB 64提供多達(dá)6個(gè)待處 理存儲(chǔ)的存儲(chǔ)容量。CWB可執(zhí)行兩個(gè)從CWB到數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)的同時(shí) 存儲(chǔ)數(shù)據(jù)的更新。該同時(shí)更新在一些情況受到限制,在這些情況中更 新不與結(jié)構(gòu)請(qǐng)求的SRAM存儲(chǔ)器相沖突。具有同時(shí)存儲(chǔ)能力的CWB64 具有對(duì)要存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器58中的數(shù)據(jù)進(jìn)行存儲(chǔ)的較小的瓶頸,因 為每個(gè)周期可以在數(shù)據(jù)存儲(chǔ)器58中存儲(chǔ)更多的存儲(chǔ)數(shù)據(jù)。
同時(shí),在存儲(chǔ)槽(1)中可執(zhí)行另一個(gè)存儲(chǔ)功能,其中在地址計(jì) 算電路模塊48中執(zhí)行地址計(jì)算并且進(jìn)而使用計(jì)算得到的地址來(lái)通過(guò) 存儲(chǔ)槽(l)標(biāo)記訪問(wèn)判別器52訪問(wèn)存儲(chǔ)槽(1)標(biāo)記存儲(chǔ)器56。在模 塊62中進(jìn)行標(biāo)記比較,并且決定一個(gè)高速緩沖存儲(chǔ)器命中或沒(méi)有命 中,這一信息連同額外的控制信息被提供給存儲(chǔ)槽1控制狀態(tài)機(jī)72。 如果存儲(chǔ)槽(0)中的一個(gè)高速緩沖存儲(chǔ)器命中被提供,則要被存儲(chǔ) 進(jìn)高速緩沖數(shù)據(jù)存儲(chǔ)器58中的數(shù)據(jù)被發(fā)送到CWB 64。一個(gè)周期以后, 要被存儲(chǔ)的數(shù)據(jù)出現(xiàn)在CWB 64中,并且CWB 64請(qǐng)求訪問(wèn)數(shù)據(jù)存儲(chǔ)器 結(jié)構(gòu)58。當(dāng)對(duì)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58的訪問(wèn)被允許時(shí),在下一個(gè)周期, 要被存儲(chǔ)的數(shù)據(jù)(存儲(chǔ)數(shù)據(jù))被放入數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58。當(dāng)訪問(wèn)不 被允許時(shí),對(duì)存儲(chǔ)器結(jié)構(gòu)58中的存儲(chǔ)數(shù)據(jù)的更新被延遲到稍后CWB64被允許訪問(wèn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58的時(shí)間點(diǎn)。同時(shí),在CWB 64中的 存儲(chǔ)數(shù)據(jù)保持待處理狀態(tài)。正如上面所討論的,在這個(gè)實(shí)施例中CWB 64提供多達(dá)大約6個(gè)待存儲(chǔ)的存儲(chǔ)容量。通過(guò)使用兩個(gè)標(biāo)記存儲(chǔ)器, 兩個(gè)同時(shí)存儲(chǔ)操作能夠在同一時(shí)鐘周期發(fā)生。
本發(fā)明的實(shí)施例也能在同一個(gè)時(shí)鐘周期執(zhí)行一個(gè)同時(shí)的存儲(chǔ)和 載入操作。在這個(gè)實(shí)施例中,載入操作只能在存儲(chǔ)槽(1) 44中執(zhí)行。 因此存儲(chǔ)操作在存儲(chǔ)槽(0) 42中執(zhí)行。如上面描述的,存儲(chǔ)操作在 存儲(chǔ)槽(0)中執(zhí)行。同時(shí),在存儲(chǔ)槽(1)中,載入操作將在階段A 中的地址計(jì)算邏輯電路48中計(jì)算它的地址。在階段B,請(qǐng)求對(duì)標(biāo)記 和數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)56和58的訪問(wèn)。在階段C,存儲(chǔ)器結(jié)構(gòu)被通過(guò)用 于數(shù)據(jù)存儲(chǔ)器的訪問(wèn)判別器66來(lái)訪問(wèn),并通過(guò)存儲(chǔ)槽(1)標(biāo)記訪問(wèn) 判別器52來(lái)訪問(wèn)存儲(chǔ)槽(1)標(biāo)記存儲(chǔ)器56。數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58提 供位于塊尺寸地址的高速緩沖存儲(chǔ)器線。而且,還處于之前的階段D 或CWB 64中的存儲(chǔ)操作的地址沖突被識(shí)別。用于存儲(chǔ)槽(1) 72的 控制狀態(tài)機(jī)按照所提供的控制信息進(jìn)行操作,例如,該控制信息從標(biāo) 記比較邏輯62分離出。在高速緩沖存儲(chǔ)器沒(méi)有命中的情況下,高速
緩沖存儲(chǔ)器線通過(guò)重填單元從存儲(chǔ)器獲取。如果之前的或同時(shí)的存儲(chǔ) 操作有一個(gè)地址沖突,存儲(chǔ)數(shù)據(jù)首先被放入數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58,然
后載入操作被再次執(zhí)行。
從另一個(gè)方面來(lái)討論,CWB 64能為兩個(gè)從CWB 64到數(shù)據(jù)存儲(chǔ)器 結(jié)構(gòu)58的同時(shí)(即在同一個(gè)時(shí)鐘周期)存儲(chǔ)數(shù)據(jù)更新提供存儲(chǔ)數(shù)據(jù)。 這一同時(shí)更新受到一些限制,在這些限制中,更新不與結(jié)構(gòu)的請(qǐng)求 SRAM存儲(chǔ)器相沖突。由此,兩個(gè)CTO數(shù)據(jù)存儲(chǔ)入口在同一時(shí)間幀和/ 或在一個(gè)單一的周期訪問(wèn)中被移至數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)。這一方式稱為存
儲(chǔ)組合,在高速緩沖存儲(chǔ)器設(shè)計(jì)示例中,可以阻止CWB 64成為性能 瓶頸。
當(dāng)多組SRAM存儲(chǔ)器裝置被用來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)58時(shí),如 圖3所示,基于地址的高速緩沖存儲(chǔ)器數(shù)據(jù)交叉存取允許從CWB 64 到存儲(chǔ)器結(jié)構(gòu)58的同時(shí)訪問(wèn),以及被發(fā)布的操作。交叉存取也增加 了到存儲(chǔ)器結(jié)構(gòu)的有效帶寬。例如,在圖3中由四組SRAM58A、 58B、58C和58D來(lái)實(shí)現(xiàn)(也可以使用多于四組的分離SRAM裝置)。在這 個(gè)實(shí)施例中的SRAM分配是基于地址的第3和第2位。也就是說(shuō),所 有共享相同地址第3和第2位(00, 01, 10, 11)的字節(jié)單元存貯在 相同的SRAM中。由此,高速緩沖存儲(chǔ)器線字節(jié)在每四個(gè)字節(jié)單元的 間隔尺寸進(jìn)行SRAM交叉存取。因此,在對(duì)SRAM "00" 58a進(jìn)行CWB 訪問(wèn)的同時(shí),可以對(duì)SRAM"01" 58b進(jìn)行載入操作訪問(wèn)。當(dāng)這種對(duì)存 儲(chǔ)器裝置58的同時(shí)訪問(wèn)以實(shí)施例中使用SRAM配置的實(shí)現(xiàn)方式來(lái)提供 時(shí),訪問(wèn)裁決必須在單獨(dú)SR認(rèn)的級(jí)別執(zhí)行,而不是將數(shù)據(jù)存儲(chǔ)器結(jié) 構(gòu)作為一個(gè)整體。如圖3所示,四個(gè)訪問(wèn)判別器被用來(lái)使能單獨(dú)SRAM 的訪問(wèn)。
在本發(fā)明的另一個(gè)實(shí)施例中,在高速緩沖存儲(chǔ)器系統(tǒng)和流水線 中N個(gè)同時(shí)存儲(chǔ)操作被執(zhí)行。N是大于或等于2的整數(shù)。再參考圖2, 第n個(gè)存儲(chǔ)槽80在階段A將執(zhí)行地址計(jì)算82,訪問(wèn)裁決將在階段B 執(zhí)行。在階段C,存儲(chǔ)槽(N)標(biāo)記86將被訪問(wèn),并且將執(zhí)行標(biāo)記比 較功能88來(lái)確定命中或沒(méi)有命中。實(shí)質(zhì)上,第n個(gè)存儲(chǔ)槽80將以存 儲(chǔ)槽0或1的相同方式執(zhí)行存儲(chǔ)操作。因此,本發(fā)明的實(shí)施例將允許 N個(gè)同時(shí)存儲(chǔ)操作,或者在N-1個(gè)同時(shí)存儲(chǔ)功能的同時(shí)進(jìn)行一個(gè)載入 功能。這一功能是通過(guò)增加高速緩沖存儲(chǔ)器的標(biāo)記存儲(chǔ)器尺寸來(lái)完成 的,這與增加高速緩沖存儲(chǔ)器的高速緩沖數(shù)據(jù)存儲(chǔ)器的尺寸相比占用 較小的空間。
對(duì)于本領(lǐng)域的普通技術(shù)人員應(yīng)該理解和評(píng)估在本發(fā)明具體實(shí)施 方式中描述的與多個(gè)同時(shí)存儲(chǔ)高速緩沖存儲(chǔ)器或多個(gè)存儲(chǔ)和載入高 速緩沖存儲(chǔ)器相關(guān)的多種變化。因此,本發(fā)明只描述了幾種推薦的實(shí) 施例。應(yīng)該理解本發(fā)明并不限于公開(kāi)的實(shí)施例,它可以進(jìn)行額外的重 組、修改和置換而不背離本發(fā)明說(shuō)明書(shū)和權(quán)利要求書(shū)的內(nèi)容。相應(yīng)地, 應(yīng)該理解本發(fā)明的保護(hù)范圍包括所有這些組合,而不僅限于權(quán)利要求 書(shū)。
權(quán)利要求
1.一種高速緩沖存儲(chǔ)器系統(tǒng)(40),包括高速緩沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(58),用于存儲(chǔ)高速緩沖存儲(chǔ)器數(shù)據(jù);存儲(chǔ)槽(0)地址計(jì)算邏輯電路(46),用于計(jì)算存儲(chǔ)操作地址;存儲(chǔ)槽(0)標(biāo)記判別器(50),用于接收來(lái)自所述存儲(chǔ)槽(0)地址計(jì)算邏輯電路(46)的地址信息;存儲(chǔ)槽(0)標(biāo)記SRAM(54),其可由所述存儲(chǔ)槽0標(biāo)記判別器(50)訪問(wèn);高速緩沖存儲(chǔ)器寫(xiě)緩沖區(qū)(64),用于接收和保存將被存入所述高速緩沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(58)的待處理存儲(chǔ)數(shù)據(jù);存儲(chǔ)槽(1)地址計(jì)算邏輯電路(48),用于計(jì)算存儲(chǔ)操作地址;存儲(chǔ)槽(1)標(biāo)記判別器(52),用于從所述存儲(chǔ)槽(1)地址計(jì)算邏輯電路(48)接收地址信息;存儲(chǔ)槽(1)標(biāo)記SRAM(56),其通過(guò)所述存儲(chǔ)槽(1)標(biāo)記判別器(52)來(lái)訪問(wèn);所述存儲(chǔ)槽(0)標(biāo)記SRAM(54)、所述存儲(chǔ)槽(1)標(biāo)記SRAM(56)和所述高速緩沖存儲(chǔ)器寫(xiě)緩沖區(qū)(64)的組合執(zhí)行兩個(gè)基本上同時(shí)的存儲(chǔ)操作,其中來(lái)自所述高速緩沖存儲(chǔ)器寫(xiě)緩沖區(qū)(64)的存儲(chǔ)槽(0)存儲(chǔ)數(shù)據(jù)和存儲(chǔ)槽(1)存儲(chǔ)數(shù)據(jù)被提供到所述高速緩沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(58)。
2. 如權(quán)利要求1所述的高速緩沖存儲(chǔ)器系統(tǒng),其中所述存儲(chǔ)槽 (0)標(biāo)記SRAM、所述存儲(chǔ)槽(1)標(biāo)記SR認(rèn)和所述高速緩沖存儲(chǔ)器寫(xiě)緩沖區(qū)的所述組合在基本上相同的時(shí)間執(zhí)行存儲(chǔ)槽(0)存儲(chǔ)操作 和存儲(chǔ)槽(1)載入操作。
3. 如權(quán)利要求l所述的高速緩沖存儲(chǔ)器系統(tǒng),其中所述高速緩 沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器由多個(gè)SRAM裝置(58a-58d)組成,并且使用基 于存儲(chǔ)器地址的高速緩沖存儲(chǔ)器數(shù)據(jù)交叉存取來(lái)將存儲(chǔ)數(shù)據(jù)存儲(chǔ)在所述高速緩沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(58)中。
4. 如權(quán)利要求3所述的高速緩沖存儲(chǔ)器系統(tǒng),其中所述高速緩沖存儲(chǔ)器寫(xiě)緩沖區(qū)對(duì)所述高速緩沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器的訪問(wèn)與對(duì)所 述高速緩沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器的一個(gè)載入操作基本上同時(shí)進(jìn)行。
5. 如權(quán)利要求1所述的高速緩沖存儲(chǔ)器系統(tǒng),其中所述高速緩 沖存儲(chǔ)器系統(tǒng)不是多端口高速緩沖存儲(chǔ)器系統(tǒng)。
6. 如權(quán)利要求1所述的高速緩沖存儲(chǔ)器系統(tǒng),其中所述高速緩 沖存儲(chǔ)器系統(tǒng)是一種偽多端口高速緩沖存儲(chǔ)器系統(tǒng)。
7. 如權(quán)利要求l所述的高速緩沖存儲(chǔ)器系統(tǒng),還包括達(dá)到N個(gè) 存儲(chǔ)槽(N)標(biāo)記SRAM,其被連接以支持在所述的高速緩沖存儲(chǔ)器數(shù) 據(jù)存儲(chǔ)器中的N個(gè)基本上同時(shí)的存儲(chǔ)操作。
8. 如權(quán)利要求7所述的高速緩沖存儲(chǔ)器系統(tǒng),其中所述高速緩 沖存儲(chǔ)器系統(tǒng)在基本上相同的時(shí)間在所述的高速緩沖存儲(chǔ)器數(shù)據(jù)存 儲(chǔ)器中執(zhí)行N-1個(gè)基本上同時(shí)的存儲(chǔ)操作和一個(gè)載入操作。
9. 一種使用偽多端口高速緩沖存儲(chǔ)器系統(tǒng)(40)的方法,所述 方法包括步驟基于存儲(chǔ)槽(0)標(biāo)記來(lái)將存儲(chǔ)槽(0)存儲(chǔ)數(shù)據(jù)存儲(chǔ)在高速緩 沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(58)中;在與所述存儲(chǔ)存儲(chǔ)槽(0)存儲(chǔ)數(shù)據(jù)基本上相同的時(shí)間,基于存 儲(chǔ)槽(1)標(biāo)記來(lái)將存儲(chǔ)槽(1)存儲(chǔ)數(shù)據(jù)存儲(chǔ)在高速緩沖存儲(chǔ)器數(shù)據(jù) 存儲(chǔ)器(58)中。
10. 如權(quán)利要求9所述的方法,進(jìn)一步包括在進(jìn)行一個(gè)或多 個(gè)所述存儲(chǔ)步驟的基本上同時(shí),從所述高速緩沖存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(58)執(zhí)行一個(gè)載入操作。
11. 如權(quán)利要求9所述的方法,進(jìn)一步包括在基本上相同的時(shí)間將存儲(chǔ)槽(0)至存儲(chǔ)槽(n)存儲(chǔ)數(shù)據(jù)存儲(chǔ)在所述偽多端口高速 緩沖存儲(chǔ)器系統(tǒng)(40)中。
12. 如權(quán)利要求9所述的方法,其中所述高速緩沖存儲(chǔ)器數(shù)據(jù) 存儲(chǔ)器(58)包括多個(gè)獨(dú)立SRAM (58a-58d),并且所述存儲(chǔ)步驟是 使用交叉存取存儲(chǔ)方法來(lái)執(zhí)行的。
全文摘要
提供了一種通過(guò)使用多個(gè)標(biāo)記存儲(chǔ)器以支持多路同時(shí)存儲(chǔ)操作的高速緩沖存儲(chǔ)器系統(tǒng)及方法。該高速緩沖存儲(chǔ)器數(shù)據(jù)系統(tǒng)還提供多個(gè)多路同時(shí)高速緩沖存儲(chǔ)器存儲(chǔ)功能,以及與該存儲(chǔ)功能同時(shí)進(jìn)行的單個(gè)高速緩沖存儲(chǔ)器載入功能。實(shí)施例生成了一種高速緩沖存器,其中在向高速緩沖存儲(chǔ)器系統(tǒng)或裝置執(zhí)行數(shù)據(jù)存儲(chǔ)操作時(shí),高速緩沖存儲(chǔ)器寫(xiě)緩沖區(qū)的操作不會(huì)成為瓶頸。
文檔編號(hào)G06F12/08GK101292227SQ200680038522
公開(kāi)日2008年10月22日 申請(qǐng)日期2006年10月18日 優(yōu)先權(quán)日2005年10月19日
發(fā)明者卡洛斯·H·M·V·巴斯托, 揚(yáng)-威廉·范德韋爾特 申請(qǐng)人:Nxp股份有限公司