專利名稱:寄存器文件裝置和利用檢測單元阻止寫后讀的方法
技術(shù)領(lǐng)域:
本發(fā)明總的涉及寄存器文件存取控制電路,具體地說涉及具有自動寫后讀阻止功能的寄存器文件。
背景技術(shù):
寄存器文件一般用于在數(shù)字電路中、尤其是在要求以很低的存取延遲快速存取相當少量數(shù)據(jù)的處理系統(tǒng)部件中建立程序塊。使用寄存器文件的例子包括處理器中的寄存器陣列、高速緩沖存儲器中的緩存目錄。
與靜態(tài)隨機存取存儲器(SRAM)單元相反,通常在相同的時鐘周期內(nèi)寫入寄存器文件單元然后從中讀出。對于其中寄存器文件存儲機器狀態(tài)信息的處理器核心元件來說,在同一個時鐘周期內(nèi)寄存器文件幾乎總是在被寫入之后立即讀出。這樣的寄存器文件對于確定處理器速度是關(guān)鍵的,同樣精巧地調(diào)整了寫到讀(the write to read)的延遲以提供在時鐘脈沖相位差(skew)變化、電壓變化及其它可能導致讀取錯誤或不穩(wěn)定數(shù)據(jù)的因素范圍內(nèi)可能得到的最佳性能。
寄存器文件寫后讀時序的典型設(shè)計余量由于一直等到寫周期結(jié)束而可能最大浪費30%的時鐘周期。但是這樣的余量在上述操作變量的典型范圍內(nèi)以及用于實施寄存器文件單元和控制邏輯的電流電路中是必要的。
因此,希望進一步降低寫后讀余量來改善寄存器文件性能和使用寄存器文件存儲值和狀態(tài)信息的處理器的性能。
發(fā)明內(nèi)容本發(fā)明的方面包括一種寄存器文件裝置和用于操作寄存器文件裝置的方法,它們能達到期望的寄存器文件性能和處理器性能。該寄存器文件內(nèi)的一個或多個單元專門用作檢測機構(gòu),用于確定寫入周期是否已經(jīng)結(jié)束。整個陣列可以使用一個單元,可為該寄存器文件陣列中的每一行分配一個單元,或者為多行構(gòu)成的組分配多個單元。
可以連接所述檢測單元,從而這些單元的值在每次寫入操作時更改,并且有效檢測單元的值用于控制邏輯,以阻止在該有效檢測單元改變狀態(tài)之前讀取寄存器文件行??商鎿Q的,可以這樣配置檢測單元,使得在寫周期開始之前設(shè)置第一狀態(tài),然后通過該寫操作用對應于相反狀態(tài)的值寫檢測單元。
檢測單元狀態(tài)改變的指示可用于截斷讀取被該寫入影響的存儲單元的下個讀取選通信號的前沿,或者用在存取控制邏輯內(nèi)以延遲導致對被影響的單元進行讀取的讀取選通信號的產(chǎn)生。
本發(fā)明的一個方面提供一種用于降低寄存器文件電路中的寫后讀延遲的方法。該方法包括向所述寄存器文件電路內(nèi)的寄存器寫入一個或多個值;基本上與所述寫入同時地觸發(fā)所述寄存器文件電路內(nèi)的至少一個專用檢測單元的狀態(tài)改變;在所述寫入開始時阻止對所述寄存器的讀取訪問并直到取消該阻止為止;檢測作為所述觸發(fā)的結(jié)果所述至少一個檢測單元何時改變了狀態(tài);以及取消所述阻止,由此可以讀取所述寄存器。
本發(fā)明的另一個方面提供一種寄存器文件陣列,包括多個存儲單元,用于存儲位值并按照邏輯行和列排列;至少一個檢測單元,配置為響應對多個存儲單元的一行寫入而改變狀態(tài);以及時鐘控制邏輯,用于通過檢測所述至少一個檢測單元的狀態(tài)變化防止在所述至少一個檢測單元的輸出狀態(tài)變化之前對所述行的讀取訪問。
本發(fā)明的另一個方面提供一種寄存器文件陣列,包括多個存儲單元,用于存儲位值并按照邏輯行和列排列;至少一個檢測單元,配置為響應對多個存儲單元的一行寫入而改變狀態(tài),其中所述至少一個檢測單元是包括鎖存器和檢測存儲單元的可掃描存儲單元,其中所述掃描鎖存器的反相輸出與所述檢測存儲單元的輸入耦合,所述掃描鎖存器的輸入與所述檢測存儲單元的輸出耦合,其中所述掃描鎖存器的掃描時鐘輸入與所述寄存器文件陣列的寫入選通信號耦合,并響應于所述寫入選通信號的解除狀態(tài),由此在多個寫入之間存儲所述至少一個檢測單元的狀態(tài);以及時鐘控制邏輯,用于通過檢測所述至少一個檢測單元的狀態(tài)變化防止在所述至少一個檢測單元的輸出狀態(tài)變化之前對所述行的讀取訪問,其中所述時鐘控制邏輯與所述掃描鎖存器的檢測輸出和所述檢測存儲單元的所述輸出耦合,其中所述防止一直保持到所述掃描鎖存器的所述檢測輸出和所述檢測存儲單元的所述輸出為不同的邏輯值為止。
本發(fā)明的上述和其它特征和優(yōu)點由下面對附圖中示出的本發(fā)明的優(yōu)選實施例的描述而變得明顯。
下面參照附圖通過舉例詳細描述本發(fā)明的實施例。
圖1是按照本發(fā)明實施例的寄存器文件的框圖。
圖2A是可用于圖1的寄存器文件的檢測單元和相關(guān)的控制邏輯的框圖。
圖2B是可用于圖1的寄存器文件的另一種檢測單元和相關(guān)控制邏輯的框圖。
圖3是描繪圖1的寄存器文件內(nèi)的信號關(guān)系的時序圖。
圖4是按照本發(fā)明的替換實施例的描繪圖1的寄存器文件內(nèi)的控制邏輯的框圖。
圖5是描繪可用于圖2B的電路中的動態(tài)控制邏輯細節(jié)的示意圖。
圖6是描繪可用于圖2A的電路中的動態(tài)控制邏輯細節(jié)的示意圖。
具體實施方式現(xiàn)在參照附圖,尤其是參照圖1,其示出了體現(xiàn)本發(fā)明方法和裝置的寄存器文件電路的框圖。
存儲單元12的陣列在橫跨圖1排列的行中存儲字。字中的每一位形成上下排列的列。存儲單元12的物理布局一般模仿所示出的布局,不同之處可能在于,例如行可分為兩個或更多的單位,在這種情況下一部分行的布局可能模仿該圖中的那一部分,而寄存器文件的整個布局可被拆分。存儲單元12與提供選通信號的控制邏輯10耦合,該選通信號控制單個存儲單元12以便在寄存器文件內(nèi)對寄存器(行)執(zhí)行讀和寫功能。應當理解行和列可在特定的寄存器文件設(shè)計中互換,而且在此以及在權(quán)利要求
書中使用術(shù)語“行”是為了指明對應于可以是任意位寬度的單個存儲“字”的存儲單元組??刂七壿?0也可以與掃描邏輯16耦合,以通過產(chǎn)生與存儲單元12和檢測單元14的特殊功能性/掃描時鐘關(guān)系來測試寄存器文件電路的性能。數(shù)據(jù)輸入和輸出緩沖器/鎖存器18用于輸入和輸出來自存儲單元12的數(shù)據(jù)。
圖1公開的寄存器文件的獨特性在于增加了一個或多個檢測單元14(和/或檢測單元14A和14Z)。這些檢測單元用于提供這樣一種信號,其指示包含在給定寫操作中的所有存儲單元12都采取由寫入存儲單元12的數(shù)據(jù)指示的狀態(tài)的時刻。該檢測通過使用具有與存儲單元12匹配的特征的單元來執(zhí)行,從而在諸如時鐘脈沖相位差、電源電壓、溫度變化和過程變化的工作變化期間,寫選通信號和存儲單元12中數(shù)據(jù)的實際變化之間的延遲將與產(chǎn)生檢測單元14(和/或14A和14Z)中狀態(tài)變化的延遲匹配。
檢測單元的數(shù)量和位置可以根據(jù)本發(fā)明的實施例變化。檢測單元14代表其中每一行都包括檢測單元并且其位于每行末端的物理和邏輯設(shè)置。應當理解相對于術(shù)語“行”使用的術(shù)語“末端”指示相對于時鐘(選通信號)分布網(wǎng)絡(luò)的遠端。換句話說,行中的末端單元是最后一個接收選通轉(zhuǎn)變的單元。由此檢測單元14的使用向每一行提供了這樣的信號,其可以表明對該行的寫入應當導致位于該行內(nèi)的任意存儲單元發(fā)生完全的狀態(tài)變化的時刻??商鎿Q的,一列檢測單元可以位于遠離行末端的其它位置,這在將檢測單元狀態(tài)變化的延遲調(diào)整為讀取阻止延遲中特別有用。其它多重檢測單元設(shè)置也是可以的,如每隔一行提供一個檢測單元14。
可替換的,可采用一個檢測單元14A或14Z來提供表明寫入完成的信號。(或者對于拆分的陣列,對該陣列的每一部分可以使用一個檢測單元)。檢測單元14Z表明對應于該陣列最后一行的末端的一個單元的位置,其中“最后”是以類似于上述“末端”的方式來定義的,表明不管是行還是列該單元都位于時鐘分布的遠端。因此檢測單元14Z指明寫入所涉及的所有其它單元都應當已經(jīng)完成了其狀態(tài)變化。為了保證狀態(tài)變化確實已經(jīng)發(fā)生,控制邏輯10在使寫后讀可以發(fā)生之前提供一些延遲以提供可靠余量。此外,在其它位置上的檢測單元如檢測單元14A的位置需要向?qū)懭胪瓿尚盘栐黾友舆t,以補償其它單元預期比檢測單元14A更晚發(fā)生狀態(tài)變化這個事實。
總的來說,本發(fā)明針對包括一個或多個檢測單元的寄存器文件電路,該檢測單元提供寫入完成指示,從而可以阻止早于寫選通信號周期的結(jié)束而發(fā)生的讀取,或者在確認存儲單元12中的數(shù)據(jù)是穩(wěn)定的之前不產(chǎn)生這樣的讀取。檢測單元(14,14Z)可以直接提供這樣的指示,其中控制電路10僅包括這種可靠余量所需要的附加延遲?;蛘咧T如檢測單元14A的檢測單元可以提供具有通過控制邏輯或者通過發(fā)布給控制邏輯的指示加入的延遲的早期指示,從而達到該可靠余量。上述操作的優(yōu)點是不必控制讀選通信號的時序和脈沖相位差,從而知道寫入將完成,這通常在現(xiàn)有技術(shù)中是通過將讀選通信號一直延遲到寫選通信號被解除為止來實現(xiàn)的。在一些動態(tài)電路設(shè)計中,在寫選通信號開始之后加入固定的余量,并且該余量用于啟動下一次讀取。
應用本發(fā)明技術(shù)的結(jié)果是改善了寄存器文件電路的吞吐量方面的性能。此外,該電路實現(xiàn)了根據(jù)工作參數(shù)伸縮的更好的延遲,允許工作頻率增加,并且允許其中不必大范圍地計算上述余量的設(shè)計。另一個結(jié)果是提供了異步讀取操作,從而在由于寫入周期的完成而導致狀態(tài)變化之前不會對同一行進行讀選通。
下面參照圖2A,連接示例性控制邏輯10A的檢測單元24A可用在圖1的控制邏輯10電路內(nèi)。檢測單元24A是經(jīng)過修改的存儲單元,具有通過傳輸門TG1和TG2(或者使用一個導通晶體管的導通門)耦合到緩沖器B1的兩個輸入,其中在緩沖器B1的輸入端上有存儲器。一個傳輸門TG1輸入連接到邏輯高值,而另一個輸入(TG2)連接到邏輯低值。當“寫入行”激活時(邏輯高),存儲單元24A事先由于傳輸門TG2的激活的低使能輸入連接到“寫入行”信號而處于邏輯低狀態(tài)下,并且僅在施加“寫入行”之后以及在檢測單元24A固有的時鐘-狀態(tài)變化(clock-to-state-change)延遲過去之后才變換到邏輯高狀態(tài)。通過在施加“寫入行”信號時激活傳輸門TG1來設(shè)置檢測單元24A的邏輯高狀態(tài)。
檢測單元24A的輸出通過可選擇的延遲D2提供給控制邏輯10A,如上所述該延遲可被調(diào)整為補償檢測單元24A的位置并且還可以與到控制邏輯10A的路徑延遲和控制邏輯10A的內(nèi)部延遲一起提供期望的可靠余量。在控制邏輯10A內(nèi),邏輯與門27限定行讀選通信號“行讀選通”以產(chǎn)生提供給存儲單元12的讀取輸入端的“讀取行”信號,從而在檢測單元24A指明寫入狀態(tài)發(fā)生變化之前不會對行存儲單元12進行讀取。在與門27輸入端的“寫完成”信號由組合了靜態(tài)和動態(tài)功能的邏輯電路提供。下面將在圖6及相關(guān)描述中詳細解釋在動態(tài)與門內(nèi)包括的具有靜態(tài)功能的特殊電路。由反相器I1代表的動態(tài)多米諾(domino)電路的求和節(jié)點與靜態(tài)邏輯與非門29的輸入端連接。反相器I1的預充電輸入端與“寫入行”信號連接,從而在對行開始寫入之前,反相器I1的輸出在邏輯高狀態(tài)下。因此在施加“寫入行”信號時,邏輯與非門29的兩個輸入都是邏輯高值,該值禁止在檢測單元24A固有的時鐘-狀態(tài)變化延遲以及由延遲D2導致的任何附加延遲過去之前通過與門27輸入“行讀選通”信號。
當檢測單元24A固有的時鐘-狀態(tài)變化延遲以及由延遲D2導致的任何附加延遲過去之后,反相器I1進行求值,從而在與非門29的輸入端提供邏輯低值。然后與非門29的輸出將采取邏輯高狀態(tài),使得可以通過與門27輸入“行讀選通”信號。反相器I1將繼續(xù)在與非門29的輸入端提供邏輯低值直到解除“寫入行”信號為止。在解除“寫入行”信號之后,為下一次求值對反相器I1進行預充電,但“寫入行”信號與與非門29的連接保證在下次寫入行開始之前與非門29的輸出將繼續(xù)使“行讀選通”信號有效,這防止了“讀取行”周期被“寫入行”信號的解除截斷。
雖然該圖示出在單獨的控制邏輯10A(是圖1的控制邏輯10的一部分)中存在的門控功能,應當理解該門控功能的物理位置可以在每個行單元局部提供或者由位于該行內(nèi)的一個門提供,其中檢測單元14的輸出沿著行線分布。
下面參照圖2B,示出另一種檢測單元電路和相關(guān)的控制邏輯10B,該電路在具有可掃描體系結(jié)構(gòu)的寄存器文件電路中特別有利。在所示電路中,檢測單元24B與通常用于存儲檢測單元24B中用于掃描測試的值的掃描鎖存器22連接。但是與檢測單元24B連接的掃描鎖存器22在功能(工作)模式下用于另一目的。“寫入行”信號與檢測單元24B(是標準的存儲單元)的允許輸入端連接,并且通過反相器I2向掃描鎖存器22提供反相的“寫入行”信號。將掃描鎖存器22的反相的輸出提供到存儲單元24B的寫數(shù)據(jù)輸入端,從而存儲在檢測單元24B的邏輯值在每個寫選通信號時交替。由于掃描鎖存器22中的值在解除“寫入行”信號之前沒有更新,因此剛開始掃描鎖存器22和存儲單元24B的值是相同的,并且在施加“寫入行”信號以及檢測單元24B固有的時鐘-狀態(tài)變化延遲過去之前繼續(xù)保持相同。
控制邏輯10B檢查檢測單元24B和掃描鎖存器22的輸出何時變?yōu)椴煌?,如上所述向圖2A的電路提供的指示,可選擇將該指示由延遲D2延遲,該延遲D2延遲檢測單元24B的輸出變化并由此通過動態(tài)異或非門和靜態(tài)與非門29提供寫完成(WriteComp)信號。下面在圖5和相關(guān)描述中詳細示出包括靜態(tài)與非功能的動態(tài)異或非電路。
動態(tài)異或非門25的當前輸入與“寫入行”信號連接,從而除了在施加“寫入行”信號之后以及在檢測單元24B的可選擇延遲的輸出由于寫入周期而改變了狀態(tài)之前,異或非門25的輸出保留在預充電狀態(tài)下。在施加“寫入行”信號時,與非門29的兩個輸入都采取邏輯高值,由于異或非門25的輸入此時相等,因此阻止異或非門25進行求值。與非門29的輸出因此將處于邏輯低電平,這阻止了在由于寫入周期而發(fā)生狀態(tài)變化之前就到達的任何“行讀選通”。在檢測單元24B固有的時鐘-狀態(tài)變化延遲以及由于延遲D2的任何附加延遲過去之后,動態(tài)異或非門25進行求值,由此在與異或非門25連接的與非門29的輸入端提供邏輯低值。然后與非門29的輸出變成邏輯高值,使得可以通過與門27輸入“行讀選通”信號。動態(tài)異或非門25在解除“寫入行”信號和異或非門25預充電之前繼續(xù)在與非門29的輸入端提供邏輯低值。將“寫入行”信號提供給與非門29的另一個輸入端,從而與非門29的輸出一直保持到下一次對行的寫周期為止,這防止了在掃描鎖存器22的輸出改變狀態(tài)時“讀取行”周期被“寫入行”信號的解除截斷。
現(xiàn)在參照圖3,示出說明在圖1的寄存器文件電路內(nèi)的圖2B的電路操作的時序圖。對于圖2A的電路來說,每個周期的操作都類似于圖3所示的第一周期(左手邊),因為圖2A中的檢測單元的初始值不會在周期之間交替。在接收“寫入行”信號之時及之前,檢測單元輸出(DetstorageCell)與掃描鎖存器輸出(DetScanLatch)匹配,而寫完成信號為低。當檢測單元24B固有的時鐘-狀態(tài)變化延遲過去之后,DetStorageCell變成與DetScanLatch相反的值(由于掃描鎖存器22的輸出反相后連接到檢測單元24B的輸入端),異或非門25轉(zhuǎn)變?yōu)檫壿嫺咧?,由此提供限定行讀選通信號行讀取的寫完成信號,從而向存儲單元12提供驅(qū)動行讀選通信號的讀取行信號。因此正如可以從圖3中看出的,讀取行信號在延遲結(jié)束之前被行讀取信號截斷。同時在該圖中還示出,向調(diào)整的延遲添加了單元延遲(即引起狀態(tài)變化延遲的固有的檢測單元寫選通信號),這包括可靠余量以及調(diào)整不能保證是在寫入操作時轉(zhuǎn)變的最后一個單元的檢測單元而需要的任何延遲。
現(xiàn)在參照圖4,以可能用在圖1寄存器文件電路內(nèi)的其它控制邏輯10C的形式示出其它塊機制??刂七壿?0C在地址單元44接收寫完成信號,該地址單元44將下個讀取地址與上個寫入地址相比較以確定對行的讀取訪問是否需要被阻止到檢測出檢測單元14由于上次寫入而發(fā)生了狀態(tài)變化為止。如果不需要,則行讀選通信號的產(chǎn)生一直推遲到接收了寫完成指示為止。此時,選通信號發(fā)生器/線程緩沖器42提供合適的讀取選通信號。
現(xiàn)在參照圖5,示出可用于實施圖2B的控制邏輯10B的特殊電路。所示電路的優(yōu)點在于為了提供與非功能,在標準動態(tài)異或門上只需要添加少量的器件,由此實現(xiàn)了動態(tài)異或非25和與非29的組合。邏輯異或非功能在內(nèi)部求和節(jié)點Node0由兩個N器件樹提供,其中晶體管N60和N61形成第一棵樹,晶體管N62和N63形成第二棵樹。晶體管N61和N63的柵極分別由掃描鎖存器22的輸出和由反相器I61提供的互補輸出驅(qū)動。類似的,晶體管N60和N62分別由檢測單元24B的輸出和由反相器I60提供的互補輸出驅(qū)動。產(chǎn)生的功能是在節(jié)點0的動態(tài)異或非功能,包括完成動態(tài)電路功能的預充電晶體管P60和底部晶體管N64。半鎖存器HL60提供以下特性在沒有預充電信號的情況下在求值發(fā)生之前和之后都一直保持內(nèi)部節(jié)點Node0的狀態(tài)。反相器I62轉(zhuǎn)換內(nèi)部節(jié)點信號Node0,從而在寫完成的輸出端提供傳統(tǒng)的異或功能,但是為底部晶體管N65和上拉晶體管P61的輸出提供的。當/預充電輸入(在這種情況下是寫入行)信號為邏輯低狀態(tài)時(在沒有寫選通信號期間),底部晶體管N65關(guān)閉,從而通過抑制反相器I62而禁止了異或操作。同樣,晶體管P61接通,由此導致該電路的輸出被強制為邏輯高值,同時/預充電輸入被激活(因此為了防止通過反相器I62短路上拉輸出而需要晶體管N65)。上述電路的操作是違反直覺的,因為在典型的動態(tài)邏輯門中從預充電狀態(tài)變化的輸出狀態(tài)反映了內(nèi)部求和節(jié)點的求值后狀態(tài)。但在所示電路中,輸出狀態(tài)變化是在解除/預充電信號時進行的,并且一直保持到該電路求值了為止。因此所示電路特別適用于本發(fā)明的操作,其中希望產(chǎn)生能指示在初始化行寫入與由于固有的檢測單元延遲結(jié)束而在控制邏輯輸入中發(fā)生的改變之間的時間的信號。
現(xiàn)在參照圖6,示出可用于實施圖2A的控制邏輯10A的特殊電路。所示電路是圖5中電路的簡化,因此只描述不同之處。所示電路在圖2A的電路中提供動態(tài)反相器I1和與非門29的組合操作。由于只需要檢測單元輸出以提供用于產(chǎn)生寫完成信號以及用作預充電信號的寫入行信號的狀態(tài)變化,因此對于求值樹只需要晶體管N62,并且內(nèi)部求和節(jié)點代表檢測單元輸出的動態(tài)邏輯相反值(即僅在電路沒有在預充電條件下而且檢測單元輸出在邏輯高條件下時該求和節(jié)點才為邏輯低值)。該電路的平衡如針對圖5電路所描述的那樣運行,其中對一個與非輸入是/預充電信號的內(nèi)部求和節(jié)點的狀態(tài)施加與非功能。當解除該/預充電信號時,內(nèi)部求和節(jié)點的預充電狀態(tài)將導致所示電路的輸出轉(zhuǎn)變?yōu)檫壿嫷蜖顟B(tài)(在預充電周期期間一直由晶體管P61保持之后)。當檢測單元輸出轉(zhuǎn)變?yōu)檫壿嫺郀顟B(tài)時,所示電路的輸出將回到邏輯高狀態(tài)。
雖然參照本發(fā)明的優(yōu)選實施例特別示出和描述了本發(fā)明,本領(lǐng)域的技術(shù)人員應當理解在不脫離本發(fā)明的精神和范圍的情況下可以在形式和細節(jié)上進行上述和其它改變。
權(quán)利要求
1.一種用于減少寄存器文件電路中的寫后讀延遲的方法,包括向所述寄存器文件電路內(nèi)的寄存器寫入一個或多個值;基本上與所述寫入同時地觸發(fā)所述寄存器文件電路內(nèi)的至少一個專用檢測單元的狀態(tài)改變;在所述寫入開始時阻止對所述寄存器的讀取訪問并直到取消該阻止為止;作為所述觸發(fā)的結(jié)果檢測所述至少一個檢測單元何時改變狀態(tài);以及取消所述阻止,由此可以讀取所述寄存器。
2.根據(jù)權(quán)利要求
1所述的方法,其中所述觸發(fā)包括向所述至少一個檢測單元寫入對應于所述至少一個檢測單元的當前狀態(tài)的相反狀態(tài)的值。
3.根據(jù)權(quán)利要求
2所述的方法,其中所述至少一個檢測單元是可掃描寄存器文件單元,其中所述方法還包括在所述寫入之前將所述當前狀態(tài)存儲在所述可掃描寄存器文件單元的掃描鎖存器中,并且其中所述觸發(fā)包括響應所述寫入而向所述至少一個檢測單元寫入掃描鎖存器當前值的互補值。
4.根據(jù)權(quán)利要求
1至3中任一項所述的方法,其中所述觸發(fā)包括向所述至少一個檢測單元寫入預定值,并且其中所述方法還包括在所述寫入之前將所述至少一個檢測單元重新設(shè)置為該預定值的相反值,由此響應所述寫入而發(fā)生從所述相反值到所述預定值的狀態(tài)變化。
5.根據(jù)權(quán)利要求
1至4中任一項所述的方法,其中所述至少一個檢測單元是處于這樣位置的一個單元,所述狀態(tài)改變在所述寄存器中的任意其它單元響應所述寫入而改變值之后發(fā)生,并且其中所述取消是響應所述檢測而立即執(zhí)行的。
6.根據(jù)權(quán)利要求
1至4中任一項所述的方法,其中所述至少一個檢測單元是處于這樣位置的一個單元,所述狀態(tài)改變在所述寄存器中的另一個單元響應所述寫入而改變值之前發(fā)生,并且其中所述方法還包括將所述檢測的結(jié)果延遲預定時間,其中響應所述延遲的結(jié)束而執(zhí)行取消。
7.根據(jù)權(quán)利要求
1至4中任一項所述的方法,其中所述至少一個檢測單元包括多個檢測單元,一個檢測單元用于所述寄存器文件電路中的每個寄存器,其中所述方法還包括響應所述寫入而選擇與所述寄存器相關(guān)的特定檢測單元,由此所述觸發(fā)只在所述特定檢測單元中觸發(fā)所述狀態(tài)改變。
8.一種寄存器文件陣列,包括多個存儲單元,用于存儲位值并按照邏輯行和列排列;至少一個檢測單元,配置為響應對多個存儲單元的行寫入而改變狀態(tài);以及時鐘控制邏輯,用于通過檢測所述至少一個檢測單元的狀態(tài)變化防止在所述至少一個檢測單元的輸出狀態(tài)變化之前對所述行的讀取訪問。
9.根據(jù)權(quán)利要求
8所述的寄存器文件陣列,還包括具有與所述至少一個檢測單元的輸入端耦合的反相輸出端和與至少一個檢測單元的輸出端耦合的輸入端的存儲寄存器,并且還包括用于響應所述寫入而向所述至少一個檢測單元寫入所述存儲寄存器的值的控制邏輯,由此在每次對所述行進行寫入訪問時存儲在所述至少一個檢測單元內(nèi)的值改變狀態(tài)。
10.根據(jù)權(quán)利要求
9所述的寄存器文件陣列,其中所述至少一個檢測單元是可掃描存儲單元,并且其中所述存儲寄存器是與所述可掃描存儲單元相關(guān)的掃描鎖存器。
11.根據(jù)權(quán)利要求
8所述的寄存器文件陣列,還包括用于在所述寫入開始之前將所述至少一個檢測單元設(shè)置為預定狀態(tài)的控制邏輯,并且其中所述至少一個檢測單元配置為響應所述寫入而變成與所述預定狀態(tài)值相反的第二狀態(tài),其中所述時鐘控制邏輯通過檢測到所述至少一個檢測單元處于所述第二狀態(tài)來檢測所述狀態(tài)改變。
12.根據(jù)權(quán)利要求
8所述的寄存器文件陣列,其中所述至少一個檢測單元的數(shù)量等于所述邏輯行的數(shù)量,其中與所述至少一個檢測單元連接的寫選通信號是針對相關(guān)行的寫使能輸入,并且其中所述時鐘控制邏輯在該相關(guān)檢測單元改變狀態(tài)之前一直防止對所述相關(guān)行的讀取訪問。
13.根據(jù)權(quán)利要求
12所述的寄存器文件陣列,其中所述邏輯行和列按照物理行和列排列,其中每個所述檢測單元位于所述列中的一個預定列中,由此所述狀態(tài)改變的時間發(fā)生在與結(jié)束對所述行的所述寫入成預定關(guān)系的時間。
14.根據(jù)權(quán)利要求
13所述的寄存器文件陣列,其中所述邏輯行和列按照物理行和列排列,其中每個所述檢測單元基本上位于所述相關(guān)行的中心,由此所述狀態(tài)改變的時間接近在所述存儲單元由于對所述行的所述寫入而發(fā)生的狀態(tài)改變結(jié)束的中間時間。
15.根據(jù)權(quán)利要求
14所述的寄存器文件陣列,還包括延遲電路,用于提供預定延遲并具有與所述至少一個檢測單元的所述輸出端耦合的輸入端以及與所述時鐘控制邏輯耦合的輸出端,由此所述時鐘控制邏輯僅在所述狀態(tài)改變發(fā)生之后以及所述預定延遲結(jié)束之后才停止防止讀取訪問。
16.根據(jù)權(quán)利要求
8所述的寄存器文件陣列,其中所述至少一個檢測單元是一個檢測單元。
17.根據(jù)權(quán)利要求
16所述的寄存器文件陣列,還包括延遲電路,用于提供預定延遲并具有與所述至少一個檢測單元的所述輸出端耦合的輸入端以及與所述時鐘控制邏輯耦合的輸出端,由此所述時鐘控制邏輯僅在所述狀態(tài)改變發(fā)生之后以及所述預定延遲結(jié)束之后才停止防止讀取訪問。
18.根據(jù)權(quán)利要求
17所述的寄存器文件陣列,其中所述邏輯行和列按照物理行和列排列,并且其中所述至少一個檢測單元基本上位于所述物理行和列的中心,由此所述狀態(tài)改變的時間接近對所述寄存器文件的任何寫入結(jié)束的中間時間,其中所述預定延遲足以延遲對所述防止的所述停止,使得任何寫入結(jié)束所述多個存儲單元中任何被影響單元的狀態(tài)改變。
19.根據(jù)權(quán)利要求
16所述的寄存器文件陣列,其中所述邏輯行和列按照物理行和列排列,并且其中所述至少一個檢測單元是位于所述物理行和列末端的檢測單元,由此所述狀態(tài)改變的時間在所述存儲單元由于對任意行的寫入而發(fā)生的狀態(tài)改變結(jié)束之后才發(fā)生。
20.根據(jù)權(quán)利要求
8所述的寄存器文件陣列,其中所述時鐘控制邏輯與所述寄存器文件陣列的存取控制邏輯集成在一起,并且在從所述檢測單元接收到所述狀態(tài)改變已發(fā)生了的指示之前一直阻止對所述行的讀取選通信號的產(chǎn)生。
21.根據(jù)權(quán)利要求
20所述的寄存器文件陣列,其中所述指示提供給所述存取控制邏輯的地址單元,其中所述地址單元包含地址比較器,用于將所述行的地址與關(guān)聯(lián)于所述讀取訪問的下一行的地址相比較,其中僅當所述下一行的所述地址等于所述行的所述地址時所述存取控制邏輯才延遲所述讀取選通信號的產(chǎn)生。
22.一種寄存器文件陣列,包括多個存儲單元,用于存儲位值并按照邏輯行和列排列;至少一個檢測單元,配置為響應對所述多個存儲單元的行寫入而改變狀態(tài),其中所述至少一個檢測單元是包括掃描鎖存器和檢測存儲單元的可掃描存儲單元,其中所述掃描鎖存器的反相輸出與所述檢測存儲單元的輸入耦合,所述掃描鎖存器的輸入與所述檢測存儲單元的輸出耦合,其中所述掃描鎖存器的掃描時鐘輸入與所述寄存器文件陣列的寫選通信號耦合,并響應于所述寫選通信號的解除狀態(tài),由此在寫入之間存儲所述至少一個檢測單元的狀態(tài);以及時鐘控制邏輯,用于通過檢測所述至少一個檢測單元的狀態(tài)變化防止在所述至少一個檢測單元的輸出狀態(tài)變化之前對所述行的讀取訪問,其中所述時鐘控制邏輯與所述掃描鎖存器的檢測輸出和所述檢測存儲單元的所述輸出耦合,并且其中所述防止一直保持到所述掃描鎖存器的檢測輸出和所述檢測存儲單元的所述輸出為不同的邏輯值為止。
23.一種用于減少寄存器文件電路中的寫后讀延遲的方法,包括向所述寄存器文件電路內(nèi)的寄存器寫入一個或多個值;響應所述寫入,觸發(fā)所述寄存器文件電路內(nèi)的至少一個專用檢測單元的狀態(tài)改變;在所述寫入開始時阻止對所述寄存器的讀取訪問并直到取消該阻止為止;作為所述觸發(fā)的結(jié)果檢測所述至少一個檢測單元何時改變了狀態(tài);以及取消所述阻止,由此可以讀取所述寄存器。
專利摘要
本發(fā)明公開一種寄存器文件裝置和利用檢測單元(14)阻止寫后讀的方法,在高性能的寄存器文件中提供改善了的讀取訪問時間。與寄存器文件單元相同并位于寄存器文件陣列中的一個或多個檢測單元(14)用于通過在每次寫入時將檢測單元(14)配置為替換值或者在寫入之后改變?yōu)樘囟ㄖ?、然后通過檢測有效檢測單元(14)的狀態(tài)改變來檢測該寫入何時結(jié)束,控制寄存器文件中的讀取操作。狀態(tài)改變檢測可用于延遲讀選通信號的前沿,或者在存取控制邏輯(10)中用于延遲下個讀選通信號的產(chǎn)生。因此該寄存器文件提供了不必針對每個應用而調(diào)整并且跟蹤電壓和時鐘脈沖相位差變化的可伸縮設(shè)計。
文檔編號G11C7/22GK1998051SQ200580023208
公開日2007年7月11日 申請日期2005年8月19日
發(fā)明者朱杰生, 彼得·J.·克里姆, 邁克爾·J.·H.·李, 約瑟·A.·帕里德斯 申請人:國際商業(yè)機器公司導出引文BiBTeX, EndNote, RefMan