专利摘要:
一種可移位記憶體被運用在一系統及一方法中,以將在該可移位記憶體中所儲存資料的一連續子集合移位。該可移位記憶體包括具有內建移位能力之一記憶體,以將被該記憶體所儲存資料的一子集合從該記憶體中之一第一位置移位到一第二位置。連續子集合具有較該記憶體整體尺寸更小的尺寸。該系統進一步包括一處理器來提供該連續子集合的一位址和長度。該方法包括選擇資料的連續子集合並移位該選定的連續子集合。
公开号:TW201306038A
申请号:TW101116488
申请日:2012-05-09
公开日:2013-02-01
发明作者:Terence P Kelly;Alan L Davis;Matthew D Pickett
申请人:Hewlett Packard Development Co;
IPC主号:G11C7-00
专利说明:
可移位記憶體 發明領域
本發明係有關一種可移位記憶體之技術領域。 發明背景
現代電腦與相關處理系統典型上包括一處理器與某些記憶體類型。處理器通常負責執行各種電腦的計算工作,而記憶體儲存該計算工作中使用及產生的資料。近乎整個歷史中由處理器進行處理而記憶體進行資料存儲這樣的架構分配證實了這類系統的成功。
舉例來說,一傳統的多用途電腦通常包括一中央處理單元(CPU)以及藉由一或更多通訊通道(例如,資料、命令、與位址匯流排)彼此通訊的一主記憶體。傳統上,CPU提供用來執行各種數值與邏輯運算的能力,以提供運作順序以及控制多用途電腦的各層面。舉例來說,實質上所有的CPU都提供下列功能或運作:從記憶體讀取資料、將資料寫至記憶體、以及執行包含一組運用資料來執行預設工作之指令的程式。另外,CPU可處理允許與週邊設備以及多用途電腦外部子系統通訊之輸入/輸出(I/O)。CPU甚至可提供圖形處理來處理產生和更新圖形顯示器單元(例如,一監視器),在一些範例中。
相反的,現代電腦的主記憶體可包括一或更多靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、唯讀記憶體(ROM)、可程式規劃ROM(PROM)、快閃記憶體、以及其他各式各樣記憶體類型,傳統上包括一相對較窄的能力。這些能力的原則係儲存被CPU執行和使用的電腦程式和資料。其他可發現的有限能力或經常與主現代電腦之主記憶體相關聯的是某些記憶體管理功能。舉例來說,主記憶體之DRAM記憶體子系統可處理用於自動更新其中所儲存資料的電路。
然而,歷來在處理器中處理而在記憶體存儲的架構分配確實存在某些隨時間越來越明顯的問題。特別是,傳統架構分配將所有的處理集中在CPU而將主記憶體賦予儲存的責任確實造成問題,尤其是當被處理的資料量增大時。舉例來說,在處理或操縱一組大量資料時,典型上所有資料必須經由資料匯流排在CPU和記憶體間被來回運送數次。即使藉由複雜的快取和預先快取方案,資料匯流排在整個處例效能上仍會出現一顯著的瓶頸,舉例來說。 發明概要 圖式簡單說明
依據本說明書所述之原則的各種範例特性將可參考下列伴隨附圖的詳細說明而更容易瞭解,其中相同的元件編號代表相同的結構元件,其中:
第1A圖繪示將儲存在一移位記憶體中之一線性陣列的一連續資料子集合下移位的範例,依據本說明書中所述原則之一範例。
第1B圖繪示將儲存在一移位記憶體中之一線性陣列的一連續資料子集合上移位的範例,依據本說明書中所述原則之一範例。
第2圖繪示一移位記憶體之一方塊圖,依據本說明書中所述原則之一範例。
第3圖繪示一增加解碼器之一真值表,依據本說明書中所述原則之一範例。
第4圖繪示一增加解碼器之一部分的一示意圖,依據本說明書中所述原則之一範例。
第5A圖繪示一移位記憶體的一示意圖,依據本說明書中所述原則之一範例。
第5B圖繪示一移位記憶體的一示意圖,依據本說明書中所述原則之另一範例。
第6圖繪示一移位記憶體系統的一示意圖,依據本說明書中所述原則之一範例。
第7圖繪示移位記憶體之方法之一流程圖,依據本說明書中所述原則之一範例。
某些範例具有前列圖式中所繪示的部分或其他特性。這些及其他特性在下面將參考前述圖式有細節的說明。 較佳實施例之詳細說明
依據本說明書中所述原則之範例提供記憶體中之一資料移位能力。特別是,資料移位能力實質上係內建於記憶體,依據本說明書中所述原則之諸多範例。內建資料移位能力提供儲存在記憶體中之一連續資料子集合的一徑向平移或移位。舉例來說,所儲存資料的連續子集合可在記憶體中被從一第一位置移位至一第二位置。所儲存資料在被移置第二位置時保留在連續子集合中的一順序關係。此外,依據諸多範例,移位在記憶體中完全取代。特別是,移位的時現通常不使用譬如在記憶體外部的一處理器且不涉及在處理器和記憶體之間將被移動的資料。因此,具有內建移位能力的記憶體在本文中稱做「移位記憶體」。
依據一些範例,本文中移位記憶體所提供的移位可被用來「打開」記憶體中的一位置,這是資料可被插入的地方。特別是,當所儲存資料之連續子集合藉由移位記憶體內移位而被移動時不論在所儲存資料連續子集合之上或下的記憶體位置可供資料插入。依據其他範例,移位可被用來刪除或「覆寫」在連續子集合之一起始上或連續子集合之一起始結尾下的其中一所儲存資料。特別是,當連續資料被移位記憶體移位時,儲存在連續子集合之上或之下的資料可被其本身的一部分連續子集合所覆寫。舉例來說,若所儲存資料之連續子集合是移位記憶體中一大量資料結構的一部分,移位可能會有刪除在大資料結構中一部份資料的效果。依據一些範例,將資料移位以在移位記憶體中插入資料或刪除資料可以比平常沒有使用移位記憶體用更少的時間來實現,在一些範例中甚至是相當少的時間。事實上,依據一些範例,使用移位記憶體可以實質上恆定的時間來實現移位。
反之,舉例來說,仰賴一處理器之傳統記憶體要執行一移位通常需要正比於資料位移量的大量時間。舉例來說,在傳統記憶體中移位資料典型上涉及處理器讀取將被移位的資料然後將資料寫回記憶體中另一個位置。舉例來說,讀取和寫入可藉由處理器基於記憶體的結構和功能根據字組乘字組的基礎來執行。由於將被移位的資料中每一資料字組必須被處理器從傳統記憶體中讀取然後寫回到傳統記憶體,移位資料的時間通常與將被移位的資料長度量成比例(例如,資料字組數),舉例來說。資料量越大,移位操作時間越長。
此外,傳統記憶體仰賴傳統記憶體外的一資源(例如,處理器)來執行移位資料時的讀取和寫入。由於執行移位之資源在傳統記憶體外部,涉及移位的每一資料字組必須經由某些形式的資料匯流排或類似的通訊通道通過外部資源與傳統記憶體之間。資料匯流排或類似的通訊通道實質上會限制一讀寫操作的速度,且因此限制一整體移位速度。所以,由於利用傳統記憶體執行一移位時資料匯流排速度和相對時間層面中一或二者,就處理時間來說移位大量的資料子集合會變得過份昂貴。
依據本說明書中所述原則,移位記憶體具有內建移位能力,使得在執行一移位時資料不必被讀取然後寫入,舉例來說。所儲存資料之連續子集合被識別為移位記憶體(例如,利用一位址和一長度)而移位記憶體被指示為移位連續子集合。移位於是被實現然後完全在移位記憶體中發生。依據本說明書中所述原則的範例,與轉移資料至一外部資源以及從一外部資源轉移資料相關聯的速度限制實質上被移位記憶體消除。此外,舉例來說,用來移位的時間實質上可獨立於連續子集合的長度。
特別是,在移位記憶體中移位可利用移位記憶體本身的電路來實現,舉例來說。因此,使用移位記憶體的移位不需要連續讀寫連續子集合之每一資料字組,依據一些範例。舉例來說,使用移位記憶體的移位可以一實質上同步的方式移位連續子集合中所有所儲存資料。因此,移位記憶體可以實質上獨立於連續子集合長度的時間來實現連續子集合之移位。
在一些範例中,移位記憶體可以實質上固定的時間來執行移位,依據所述原則。「固定的時間」意味不論一連續子集合長度移位所儲存資料之連續子集合所需要的一實質上等量的時間。舉例來說,一任意長度連續子集合可在單一時鐘週期內被移位,依據一些範例。在另一範例中,一較短的連續子集合可能只需要單一時鐘週期然而一較長的連續子集合可能需要兩個以上的時鐘週期。然而,儘管移位記憶體可能對於較長的子集合會使用比相對較短之子集合更多的時間,移位仍然以實質上固定的時間在執行,因為所需的時間不限為與連續子集合長度成比例。
本文中,「記憶體」一詞指任何種類可以接收和儲存資料的記憶體。此記憶體通常與被一電腦處理器所運用或在一電腦系統中之記憶體一致,舉例來說。特別是,根據本文的定義,記憶體指任何種類可在運用記憶體之電腦操作期間被讀寫之記憶體。舉例來說,記憶體可包含隨機存取記憶體(RAM)。舉例來說,隨機存取記憶體可為靜態RAM(SRAM)。其他類型的記憶體包括,但不限為,動態隨機存取記憶體(DRAM),可在電腦操作期間寫入的快閃與類似的非依電型記憶體,各種光學記憶體(例如,可重寫光碟),磁性記憶體(例如,電腦硬碟)以及各種閂式記憶體結構,正反器和其他雙穩定結構。
又,一記憶體可包含排成陣列之記憶體胞元。舉例來說,陣列可為一線性陣列。在另一範例中,記憶體胞元被排成一個二維(2-D)陣列。更高級數(例如,三以上之維度)陣列亦可被運用。一些範例中,一較低級數的陣列(例如,一線性陣列)被以一較大級數的維度定義在一陣列上(例如,2-D陣列)。舉例來說,一線性陣列可被記憶體胞元之一矩形2-D陣列上的一定址配置定義。另外,陣列可被分成子陣列。舉例來說,一2-D陣列可被分成象限作為四個子陣列。依據諸多範例,陣列可為一實體陣列或一邏輯陣列。一實體陣列包含依據陣列或如陣列所定義的實體經組織或相對於彼此配置的記憶體胞元。一邏輯陣列包含做為一陣列的一記憶體胞元之邏輯配置。舉例來說,在一邏輯陣列中,記憶體胞元之一實體配置可能與陣列定義的邏輯配置不同。舉例來說,邏輯陣列可利用位址間接來定義。
一記憶體胞元,本文中亦稱一「記憶體暫存器」或簡稱一「暫存器」,如本文中所定義與使用的是一電路或保留或儲存資料的相關結構。再者,一本文的定義,記憶體胞元或暫存器可儲存一起定義一資料字組的一或更多資料「位元」。舉例來說,位元可為一二進位值(例如,「0」或「1」)而記憶體胞元可保留一單一位元。在另一範例中,記憶體胞元或暫存器可保留多數個二進位值位元。特別是,記憶體胞元或暫存器可保留或儲存一完整的包含多個位元的資料字組,如本文中所定義。舉例來說,一記憶體胞元或暫存器可保留構成一特定電腦系統資料字組織4、8、16、32或64二進制位元。又另一範例中,記憶體胞元或暫存器可以另一種型式保留資料(例如,一十進位值,一類比值,等)。特別是,記憶體胞元和暫存器,如本文中所定義,並不限於用一二進位格式儲存資料,但在一些範例中,用一二進位格式保留或儲存一任意資料建構。然而,本文中為了討論,二進位資料在全文中廣泛的被用作範例,但無限制意涵,除非特別規定。
記憶體胞元或暫存器在本文中通常也是指「記憶體位置」。嚴格來說,一記憶體位置係一記憶體胞元或胞元在記憶體中的一位置,位置被一位址指定或被識別。記憶體胞元或記憶體位置利用位址被存取,舉例來說。然而,在本文中為便於討論,記憶體胞元或記憶體暫存器通常是指具有或是為一位址。位址可與記憶體之一可移位單元相關聯(例如,一字組),舉例來說。
如本文中所定義,一「移位暫存器」是多數個互聯的記憶體胞元,其被組配來移位多數個相鄰記憶體胞元之間的資料。資料移位可為單向性的(例如,上移位或一下移位其中一種)或雙向性的(例如,可動態選擇為一上移位或一下移位)。相鄰記憶體胞元可為實體相鄰(即,一個設在一個隔壁)或邏輯相鄰,根據本文的定義。邏輯相鄰可由一覆蓋邏輯記憶體結構(例如,利用單向性)建立,依據一些範例。舉例來說,邏輯相鄰記憶體胞元可藉由運用交錯技術的一覆蓋記憶體結構而實體地彼此分離。同樣的,連續子集合可為實體連續的(即,位在實體相鄰記憶體胞元中)或邏輯連續的。特別是,連續資料子集合在儲存於移位暫存器相鄰記憶體胞元時獲得類似記憶體胞元(例如,移位暫存器)鄰近且被記憶體胞元鄰近支配的一連續性,如本文中所定義。
在一些範例中,一移位暫存器可利用正反器來實施。舉例來說,所謂的資料或「D」正反器可被用來實現移位暫存器之記憶體胞元。然而,根據本文的定義,移位暫存器並不限為用於利用傳統正反器之實施。舉例來說,SRAM胞元可與邏輯電路互聯來實施一移位暫存器,依據本說明書中所述原則之諸多範例。另外,移位記憶體中使用的移位暫存器可提供平行讀取或平行寫入的一或兩種能力,根據本文的定義。特別是,一移位暫存器之一記憶體胞元或記憶體胞元可經由一平行寫入至移位暫存器被載以或規劃以外部資料,依據一些範例。一平行讀取可被運用來取樣儲存在移位暫存器之一或更多記憶體胞元的資料,舉例來說。
本文中進一步且如前述中所強調的,移位記憶體所執行的一移位被定義為儲存在一連續資料子集合之記憶體中的一徑向平移,除非另有規定。特別是,根據本文的定義,利用移位記憶體之一移位構成記憶體之連續子集合中所儲存資料從一第一位置至一第二位置的徑向平移(例如,上或下一陣列)。又,當移位施用到所儲存資料之連續子集合時,轉移所有連續子集合中之儲存資料。此外,移位記憶體造成的移位不會造成資料之子集合外部資料一徑向平移或移位,根據本文的定義。一般而言,移位可將資料移動一或更多記憶體胞元或位置的一個距離。舉例來說,移位可將記憶體中資料上移或下移一個單一記憶體位置。
此處,方向「上」定義為移位記憶體中記憶體位置朝向具有較小位址之位置的一方向。方向「下」定義為朝向具有較大位址之位置的一方向。因此,一「上移位」被定義為將資料移位到具有一較第一或起始位置之位址小的位址的一第二位置。相反地,一「下移位」造成資料從具有較小位址的一第一位置移至具有較大位址之一第二位置。然而依據一些範例,可控制或可選擇,移位方向(例如,往上或往下)可為完全任意的,如本文中所運用者。此外,本文中特別使用「上移位」和「下移位」純是為了論述而無意限制。
第1A圖繪示將儲存在一移位記憶體中之一線性陣列的一連續資料子集合下移位的範例。特別是,第1A圖繪示多數個記憶體胞元,其各自能夠儲存一單一二進位值或位元(例如,一「1」或「0」)。進一步如圖所示,每一所繪示之記憶體胞元由範圍從00到11的位址辨識。第1A圖左邊繪示下移位前的多數個記憶體胞元而右邊繪示下移位後的同樣多數個記憶體胞元。
如圖所示,範例的移位記憶體下移位包含選擇一所儲存資料之連續子集合,其始於位址04的一記憶體胞元而終於位址08之一記憶體胞元,舉例來說。在所繪範例中選定連續子集合含有位元{11001}。移位記憶體接著藉由將選定連續子集合中所儲存資料向下移動一個位址位置來下移位選定連續子集合,如第1A圖右側所繪示。下移位保持連續子集合中的一位元順序並保存記憶體胞元中之連續子集合於位址05和位址09間。下移位所儲存資料會覆寫在連續子集合正下方之一記憶體胞元之內容(即,在位址09)並取代具有被下移位之連續子集合之最後一位元(即,「1」)的記憶體胞元的內容。又,原本持有連續子集合之第一資料值的在位址04處的記憶體胞元被呈現為不確定的而被標以「X」。依據諸多範例,在位址04的記憶體胞元可保留一複製資料值(例如,「1」),其出現在下移位之前或可在下移位後被清除(例如,設為「0」)。在一些範例中,在位址04之記憶體胞元可被用來從一外部來源插入資料,舉例來說。
第1B圖繪示將儲存在一移位記憶體中之一線性陣列的一連續資料子集合上移位的範例,依據本說明書中所述原則之一範例。特別是,第1B圖繪示多數個記憶體胞元,其各儲存多數個資料值或資料字組(例如,「abc」、「def」等)。進一步如圖所示,所繪示的每一記憶體胞元被範圍從00到11的一位址所識別。第1B圖的左邊繪示上移位之前的多數個記憶體胞元而右邊則繪示上移位後的同樣多數個記憶體胞元。
如第1B圖中所繪示,移位記憶體中之上移位包含選擇所儲存資料始於位址03的一記憶體胞元而終於位址06的一記憶體胞元之連續子集合,舉例來說。移位記憶體接著藉由將選定連續子集合中所儲存資料往上移動一個位址來上移位選定連續子集合位置,如第1B圖之右側所繪示。上移位維持連續子集合中之一字組順序並將記憶體胞元中之連續子集合設置在位址02和位址05之間。上移位所儲存資料會覆寫在連續子集合正上方的一記憶體胞元之內容(即,在位址02),以被上移位連續子集合之一第一字組(即,「jkl」)取代該記憶體胞元的內容。又,位址06處原本保有連續子集合之最後一字組之記憶體胞元被設為不確定而以「X」標示。依據一些範例,位址06處之記憶體胞元可保留一複製資料值(例如,「stu」),其出現在上移位之前或可在上移位之後被清除(例如,設為「000」)。在一些範例中,位址06處之記憶體胞元可被用來從一外部資源插入資料,舉例來說。
依據諸多範例,移位記憶體可為一多用途電腦系統之一主記憶體的一部分。移位記憶體可表現為構成主記憶體之記憶體子集合,舉例來說。又依據諸多範例,移位記憶體不同於記憶體胞元、快取記憶體、和其他通常與其他構建一起整合在一微處理器中的一相對較小的記憶體結構(例如,一運算邏輯電路單元、控制器等),舉例來說。特別是,移位記憶體再本文的定義中是主記憶體的一部分,因而,與多用途電腦系統或相關處理系統之處理器是分開的,依據諸多範例。另外,移位記憶體傳統上含有比出現在處理器中大量或更多的記憶體存儲空間,依據一些範例。舉例來說,移位記憶體可包括數百萬位元組或甚至數十億位元組的記憶體存儲空間,然而處理器記憶體存儲空間傳統上可被限制為小於一幾十位元組(例如,處理器暫存器)至幾百萬位元組(例如,L1快取記憶體,L2快取記憶體等)。依據一些範例,移位記憶體可為主記憶體或其子系統的一專用分隔。
又,本說明書中使用的辭彙中,「一」意指專利領域中的一般意義,即「一或更多」。舉例來說,「一記憶體胞元」表示一或更多記憶體胞元,因而,「該記憶體胞元」表示「該記憶體胞元(可為複數)」。此外,本文中任何述及「頂」、「底」、「較高」、「較低」、「上」、「下」、「前」,後」、「左」、或「右」等辭,並無意為界定上的限制。本文中,當對一值加上「約」一字時一般表示加減10%,除非額外定義。此外,本文中的範例僅為示範且為討論之用途,無限制之意涵。
第2圖繪示依據本說明書中所述原則之一範例之一移位記憶體100之一方塊圖。移位記憶體100提供移位儲存在移位記憶體100之一連續資料子集合。進一步,資料之移位僅移位連續子集合而非其他所儲存資料。特別是,當移位記憶體100執行連續子集合之一移位時,不會移位其他位在連續子集合外部的儲存資料。再者,移位會在不改變甚或不影響連續子集合中所儲存資料之順序的情況下移動所儲存資料之連續子集合,依據一些範例。移位記憶體100所提供的移位可被用在:將新資料插入移位記憶體100、或刪除儲存其中之資料的其中一或兩者,舉例來說。
一外部資源(例如,一處理器)經由一資料匯流排(資料I/O)102通訊來去移位記憶體100之資料,依據一些範例。一連續子集合之位址及長度可利用一位址匯流排(ADDR)104和一長度匯流排(LEN)106被通訊至移位記憶體100,舉例來說。載有位址和長度二者或是一對位址的一位址匯流排可運用在另一範例中(未示)。
如圖所示,移位記憶體100包含一移位暫存器110。移位暫存器110包含多數個用來儲存資料之記憶體胞元112。在一些範例中,記憶體胞元112被組配來儲存二進位資料。在一些範例中,每一記憶體胞元112係被組配來儲存二進位資料之一單一位元(例如,「1」或「0」)。在其他範例中,每一記憶體胞元112係被組配來儲存多數個二進位資料位元。舉例來說,每一記憶體胞元112可儲存一資料字組。特別是,依據一些範例,每一記憶體胞元112包含多數個組配呈聚合體的記憶體位置以儲存對應於資料字組之資料位元。資料字組之多數個資料位元定義移位記憶體胞元112的一寬度。在其他範例中,記憶體胞元112可以一或更多二進位位元的形式儲存資料。
依據諸多範例,移位暫存器110可利用實質上任何記憶體技術來實施。舉例來說,移位暫存器110之記憶體胞元112可利用靜態隨機存取記憶體(SRAM)來實施。在另一範例中,一或更多正反器,譬如,但不限為,一D型正反器,可被用來實施記憶體胞元112。在其他範例中,又另一種記憶體技術(例如,DRAM,等)可用來實施移位暫存器110之記憶體胞元112。
第2圖中繪示的移位記憶體100進一步包含一控制器120。控制器120係被組配來選擇所儲存資料之連續子集合。控制器120進一步被組配來將移位暫存器110中選定連續子集合從一第一位置移位至一第二位置。選定連續子集合具有小於移位暫存器110總長度之一長度,依據本說明書中所述原則之諸多範例。控制器120可藉由利用一或更多控制信號指示移位暫存器110執行移位來移位選定連續子集合,舉例來說。
許多範例中,移位記憶體100促成所儲存資料之連續子集合的一上移位和一下移位之一或二者。特別是,移位暫存器110中第二位置的一記憶體胞元112可根據一移位方向位在第一位置之一對應記憶體胞元112之上或下。在一些範例中,第二位置之記憶體胞元112係遠離第一位置之該對應記憶體胞元112的一單一記憶體胞元(或記憶體位置)。換言之,移位表示所儲存資料之連續子集合的一單一記憶體位置或位址上移動。在其他範例中,第二位置表示一個以上的單一記憶體胞元112的移動。舉例來說,資料字組可儲存為移位記憶體中位元的一線性陣列而移位可為等於位元中資料字組一長度之一組位元。
在一些範例中,選定連續子集合係由連續子集合之一第一記憶體胞元112的一位址和連續子集合中最後一記憶體胞元112的一位址來指定。舉例來說,第一記憶體胞元位址和最後一記憶體胞元位址被通訊到控制器120(例如,經由一位址匯流排)以幫助選擇連續子集合。第一記憶體胞元位址和最後一記憶體胞元位址或可透過一單一匯流排(例如,ADDR104)以一第一位址接著一第二位址連續通訊,舉例來說。另外,第一和最後一位址可被平行通訊為兩個同步的位址,透過兩個匯流排或是透過一單一寬匯流排的兩部分,舉例來說。
在另一範例中,選定連續子集合係由第一記憶體胞元112之一位址和一連續子集合長度(例如,經由ADDR104與LEN106,如圖所示)所指定。這些範例中,長度可為連續子集合長度加上第一記憶體胞元112,使得最後一記憶體胞元位址為第一記憶體胞元位址和長度的加總。在其他範例中,長度包括第一記憶體胞元112,使得最後一記憶體胞元位址為第一記憶體胞元位址加長度減1。其他範例中則可指定最後一記憶體胞元位址加上最後一記憶體胞元前之連續子集合長度,舉例來說。
在一些範例中,控制器120包含一增加解碼器122。增加解碼器122運用有關位址和長度(或第一和最後一記憶體胞元之位址)之資訊來選擇所儲存資料之連續子集合。在一些範例中,增加解碼器122利用資訊(例如,位址和連續子集合長度)來確立一輸出對應於移位暫存器110中選定連續子集合之每一記憶體胞元112。確立一輸出可包含在增加解碼器122與移位暫存器110間的一連接路徑或線(例如,一字組線)輸出一邏輯電路「1」,舉例來說。因此,增加解碼器122可輸出一邏輯電路「1」於移位暫存器110的多數個字組線上,該等字組線對應於含有選定連續子集合所儲存資料之記憶體胞元112。字組線可被連接至記憶體胞元112之一可載入(LE)或一選擇(SEL)輸入,舉例來說。在其他範例中,確立一輸出包含輸出一邏輯電路「0」。確立一邏輯電路「0」可在記憶體胞元119具有一「不」可載入()或一「不」選擇()輸入時使用,舉例來說。
在一些範例中,增加解碼器122進一步被組配來確立對應於相鄰於選定連續子集合且在選定連續子集合正上方之一記憶體胞元112或相鄰於選定連續子集合且在選定連續子集合正下方之一記憶體胞元112之其中一者的一額外輸出。舉例來說,當移位暫存器110中所儲存資料被上移位時對應於在選定連續子集合正上方之記憶體胞元112之額外輸出可被確立。當移位暫存器110中所儲存資料將被下移位時對應於在選定連續子集合正下方之記憶體胞元112之額外輸出可被確立,舉例來說。特別是,額外輸出可被用來致用記憶體胞元112從連續資料子集合之第一記憶體胞元112或最後一記憶體胞元112接收所儲存資料。
第3圖繪示依據本說明書中所述原則之一範例之一增加解碼器122之一真值表。特別是,對應於所繪示真值表之增加解碼器122係被組配來選擇在具有八個記憶體胞元112之一範例移位暫存器110中之連續子集合。真值表具有三個位址輸入(ADDR)、一長度(LEN)輸入、以及八個字組線W(即,W 0-W 7)。八個字組線W可對應於範例移位暫存器110中八個記憶體胞元112之可載入(LE)輸入,舉例來說。如真值表中可見,就一等於「00」之LEN值,增加解碼器122實質上作用如一傳統解碼器(即,一次只有一個字組線W被確立)。然而,多數個字組線W針對所有LEN的其他值被確立有助於同步令保留或儲存選定所儲存資料之連續子集合的一對應多數個記憶體胞元112被移位。
在一些範例中,增加解碼器122可利用一唯讀記憶體(ROM)來實施。ROM以指定增加解碼器122之功能的一真值表來規劃。ROM的一解碼器解碼一輸入(例如,ADDR和LEN),而ROM中規劃的連接增加ROM解碼器之輸出來產生增加解碼器122之功能性,舉例來說。在另一範例中,一傳統解碼器除了規劃的連接外可加上一輸出電路來實施增加解碼器122。
第4圖繪示依據本說明書中所述原則之一範例的一增加解碼器200之一部分的一示意圖。舉例來說,增加解碼器200可用作控制器120之增加解碼器122(例如,第2圖中所繪示)。特別是,如第4圖中所繪示,增加解碼器200包含一傳統解碼器210與一輸出電路220。輸出電路220實施一漣波串聯。輸出電路220包含一第一多數個閂222和一第二多數個閂224。第一多數個和第二多數個閂222、224可為簡單的設定-重設(S-R)閂,舉例來說。第一多數個閂222,第4圖中標為「開始」,用來設定在增加解碼器200之一輸出的漣波串聯之一開始點。開始點對應於將被確立的一第一字組線W。第二多數個閂224,在第4圖中標為「停止」,被用來設定在增加解碼器200之一輸出的漣波串聯之一停止點,其對應於將被確立的最後一字組線。
輸出電路220進一步包含多數個AND閘226,其連接傳統解碼器210之輸出至閂222,224。輸出電路220進一步包含多數個OR閘228和另一多數個AND閘229。多數個OR閘228建立漣波串聯以驅動AND閘229。AND閘229,接著,驅動經確立的字組線W。
增加解碼器200係被組配來接收對應於選定連續子集合之一開始位址和停止位址的輸入。舉例來說,增加解碼器200可接收對應於開始位址的一輸入,稍後接著對應於一停止位址之一第二輸入。傳統解碼器210解碼接收的第一輸入並確立對應於開始位址之一輸出線。在被確立時,經確立輸出線依據多數個AND閘226之操作設定第一多數個閂中其中一閂222。傳統解碼器210接著解碼接收的第二輸入並確立對應於停止位址之一輸出線。當被確立,經確立的輸出線依據多數個AND閘226之操作設定第二多數個閂中其中一閂224。因此,確立會閂上(即,設定)漣波串聯之開始點而確立會閂上(即,設定)停止點。
第一多數個閂222中被「設定」或被閂上的閂建立漣波串聯開始點藉由確立該經設定之閂222的一輸出Q。同樣地,漣波串聯停止點係藉由「設定」或閂上第二多數個閂224確立該經設定之閂224之一輸出Q。設定閂222和224的經確立輸出Q在對應於閂222、224之兩個經確立輸出Q之OR閘228間往上和往下傳播或「漣波」多數個OR閘228。當傳播結束,與該對應OR閘228通訊的AND閘229確立在對應於開始位址之輸出和對應於停止位址之位址之間增加解碼器200的所有輸出。一輸入可被用來重設或清除設定閂222、224。
依據一些範例,移位暫存器110之記憶體胞元112包含一靜態隨機存取記憶體(SRAM)胞元和一邏輯電路。邏輯電路係被組配來在將被邏輯電路應用於一特定記憶體胞元112之SRAM胞元的一資料輸入的多數個輸入間選擇。多數個輸入包括當外部資料將被寫至一特定記憶體胞元112之SRAM胞元並被儲存時將被邏輯電路選擇之一外部資料、當在移位暫存器110中所儲存資料被上移位時將被邏輯電路選定之在特定記憶體胞元112之SRAM胞元正下方的一相鄰SRAM胞元之一輸出、以及當在移位暫存器110中所儲存資料被下移位時將被邏輯電路選定之在特定記憶體胞元112之SRAM胞元正上方的另一相鄰SRAM胞元之一輸出。
第5A圖繪示依據本說明書中所述原則之一範例的一移位記憶體300的一示意圖。如圖所示,移位記憶體300包含多數個連接一增加解碼器320的記憶體胞元310。多數個記憶體胞元310被垂直配置,各個記憶體胞元310各連接一個來自增加解碼器320之不同的字組線W(例如,W n ,W n+1 ,等)。連同多數個記憶體胞元310形成一實質上等同前述相對於移位記憶體100之移位暫存器110之移位暫存器。依據一些範例,增加解碼器320,組合額外邏輯電路(未示),作用為移位記憶體300之控制器。控制器實質上等同前述相對於移位記憶體100之控制器120,依據一些範例。事實上,依據一些範例,增加解碼器320實質上等同增加解碼器112。此外,移位記憶體300表示前述移位記憶體100之一範例實施。
如第5A圖中所繪示,移位記憶體300的每一記憶體胞元310包含多數個SRAM胞元312,邏輯電路314,以及三相緩衝器316。每一記憶體胞元310中的多數個SRAM胞元312可一起被使用來儲存包含多數個二進位位元的一資料字組,舉例來說。外部資料利用資料線d(例如,d 0,d 1,等)被寫入記憶體胞元310。記憶體胞元310所儲存之資料可利用輸出線q(例如,q 0,q 1,等)被存取和讀取。在一些範例中(未示),資料線和輸出線被多工以連至一共用資料匯流排(例如,第2圖中繪示的資料I/O 102)。
三相緩衝器316連接在各個SRAM胞元312之一輸出Q和一對應輸出資料線q之間。藉由確立一IO輸入,三相緩衝器316被致用來讀取資料,如圖所示。當IO輸入未被確立時,SRAM胞元312之輸出Q被與輸出資料線q隔絕。各個記憶體胞元310之字組線被並聯連接至記憶體胞元310之每一SRAM胞元312的一可載入LE。可載入LE被用來將資料載入SRAM胞元312。每一SRAM胞元312之一時鐘線C/k被共連接至SRAM胞元312之一時鐘輸入C/k。
每一SRAM胞元312具有一相關聯的邏輯電路314,其於邏輯電路314之一輸出連接SRAM胞元312之一資料輸入D。相關聯的邏輯電路314具有三個輸入,它們各自被連接至對應於SRAM胞元312之一外部資料線d(例如,d 0,d 1,等)、在SRAM胞元312正下方之記憶體胞元310之一對應SRAM胞元312的一輸出Q、以及在SRAM胞元312正上方之記憶體胞元310之另一對應SRAM胞元312的一輸出Q。邏輯電路314係被組配來當外部資料被寫入SRAM胞元312且被其儲存時選擇外部資料線d。邏輯電路314係被組配來當在移位記憶體300之移位暫存器中所儲存資料被上移位時選擇在SRAM胞元312正下方之對應SRAM胞元312的輸出Q。邏輯電路314進一步被組配來當所儲存資料在移位暫存器中被下移位時選擇在SRAM胞元312正上方之該對應SRAM胞元312的該輸出Q。
舉例來說,對邏輯電路314之選擇的控制可藉由一控制輸入UP//Data來提供,如圖所示。特別是,當UP被確立時,移位記憶體300之記憶體胞元310中所儲存資料被上移位,而當UP未被確立時(即,當被確立)所儲存資料被下移位。一第一記憶體胞元310以及參與上移位或下移位之一範圍的記憶體胞元310由增加解碼器320所提供的位址(A 0,...,A m )和長度(L 0,...,L k )之一組合所控制,舉例來說。確立Data會將一移位記憶體300置於一寫入模式,類似一傳統SRAM允許外部資料被寫入增加解碼器320之字組線W根據輸入位址(A 0,...,A m )選定的一記憶體胞元310,依據一些範例。
在一些範例中,邏輯電路314包含一多工器電路。舉例來說,多工器電路可為一個三輸入多工器,其被組配來選擇前述定義中應用於SRAM胞元312之資料輸入D的三個輸入中的其中一個。在其他範例中,邏輯電路314可包含多數個三相緩衝器,每三個邏輯電路314之定義輸入對一個三相緩衝器。又在其他例子中,邏輯電路314可包含一或更多多工器(例如,一個雙輸入多工器)、一或更多三相緩衝器以及各種其他邏輯電路閘之組合。
第5B圖繪示依據本說明書中所述原則的另一範例之一移位記憶體400的一示意圖。特別是,如圖所示,移位記憶體400之記憶體胞元410各包含一D型正反器412和一多工器414。多工器414係被組配來在4個輸入中選擇1個來施用到D型正反器412之一資料輸入D。在四各輸入中選擇係依據一Se/ect輸入(例如,Se/ect n ,Se/ect n+1 ,Se/ect n+2 ,等)。Se/ect輸入可由一控制器(未示)來提供,舉例來說。再者,有些解碼,譬如利用三相緩衝器(未示),在經由一資料匯流排寫入至移位記憶體400和自移位記憶體400讀取時,可運用外部資料輸入d(例如,d n ,d n+1 ,d n+2 ,等)以及資料輸出q(例如,q n ,q n+1 ,q n+2 ,等)。注意,第5B圖中所繪之外部資料輸入d和資料輸出q並不全然對應於第5A圖中所繪示的相同命名的資料輸入與輸出。
再次參考第5B圖,多工器414之四個可選擇輸入中的第一個被連接至外部資料輸入d的個別一者。第一可選擇輸入在外部資料將被寫入D型正反器412並被其儲存時被選定。四個可選擇輸入中的第二者被連接至在該D型正反器412正上方之一位址之一相鄰D型正反器412的一輸出Q(即,繪示在D型正反器412左側)。當所儲存資料將被下移位時第二可選擇輸入被多工器414選定。四個可選擇輸入中之第三這被連接至在該D型正反器412正下方之一位址之一相鄰D型正反器412的一輸出(即,繪示在D型正反器412右側)。當所儲存資料將被上移位時第三可選擇輸入被多工器414選定。四個可選擇輸入中之第四者被連接至D型正反器410本身的一輸出。當所儲存資料將被保留而不會被D型正反器412移位時第四可選擇輸入被多工器414選定。
舉例來說,當一特定D型正反器412不是儲存連續子集合資料之記憶體胞元410中其一時,所儲存資料可被保留而不被移位。特別是,多工器414可選擇第四可選擇輸入來停用D型正反器412之移位。多工器414可為一實際的多工器或可為作用如一多工器(例如,以三相緩衝器實施者、切換器,等)的一邏輯電路,依據諸多範例。
第5B圖中所繪移位記憶體400進一步包含一控制器(未示)。控制器可包含實質上等同前文所述相對於移位記憶體100之增加解碼器122的一增加解碼器。特別是,控制器提供輸出來選擇參與一上移位或一下移位之個別記憶體胞元410的Se/ect n (例如,用以控制多工器414)。參與係由將被移位之所儲存資料之連續子集合一位址(ADDR)和一長度(LEN)來判定,舉例來說。同樣的,控制器提供輸出來選擇那些未參與上移位或下移位之記憶體胞元之多工器414的第四輸入。移位記憶體400可呈現前所述移位記憶體100實施的另一種範例。特別是,第5B圖繪示的移位記憶體400具有一單一位元字組,其儲存單一位元字組於個別的D型正反器412中,舉例來說。
第6圖繪示依據本說明書中所述原則之一範例的一移位記憶體系統500的方塊圖。移位記憶體系統500包含多數個在一陣列中彼此相鄰配置之記憶體胞元510。每一記憶體胞元510可被組配來儲存對應於一資料字組的一或更多資料位元。依據一些範例,排成陣列的胞元510實質上可類似先前所述移位記憶體100之移位暫存器110的記憶體胞元112。特別是,記憶體胞元510可包含一或更多被排置來儲存資料字組的靜態隨機存取記憶體(SRAM)胞元,舉例來說。
如第6圖中所繪示,移位記憶體系統500進一步包含一控制器520。控制器520被組配來選擇和移位陣列中一連續資料子集合字組。連續子集合具有小於陣列的一總長度的一長度。移位表示陣列中選定連續子集合的一上移位或一下移位。移位選定連續子集合不會造成位在選定連續子集合外部的其它資料字組移位。在一些範例中,控制器520實質上可類似前文所述相對於移位記憶體100的控制器120。
特別是,控制器520可包含一增加解碼器(未示),用以確立一可載入狀態、或從選定連續資料子集合字組之一起始至一結尾選擇每一記憶體胞元510,依據一些範例。選定連續子集合之起始可對應於位址而結尾可對應於位址和接收長度的加總,舉例來說。控制器520可進一步被組配根據陣列中的一移位方向來確立一可載入字組線、或等效的對應於下列其中至少一者:在一連續子集合起始之記憶體胞元510正上方的一記憶體胞元510、以及在一連續子集合結尾之記憶體胞元510正下方的一記憶體胞元510。
移位記憶體系統500進一步包含一處理器530。處理器530係被組配來提供連續資料子集合字組之位址和長度。處理器530可經由一位址匯流排(位址)532與控制器520通訊。舉例來說,處理器530可包括位址和長度,其等直接作為對應於一連續資料子集合之起始的一記憶體胞元510之位址以及判定一記憶體胞元510對應於一連續資料子集合之結尾之長度。在另一範例中,對應於起始之記憶體胞元510的一第一位址和對應於連續資料子集合之結尾的一第二位址可由處理器530提供。在此範例中,所提供長度可從第一和第二位址間之一差異來推測。此外,處理器530可利用一資料匯流排(資料I/O)534與記憶體胞元510通訊。舉例來說,資料匯流排534可被處理器530用來將資料寫入記憶體胞元510。同樣地,記憶體胞元510儲存的資料可利用資料匯流排534被處理器530讀取,舉例來說。
依據一些範例,處理器530可為一運用移位記憶體系統500之多用途電腦的一中央處理器(例如,一CPU,一微處理器),舉例來說。然而,多個記憶體胞元510與控制器520與處理器530是有差異也分開的,依據諸多範例。舉例來說,多個記憶體胞元510與控制器520可為一記憶體系統中處理器530專用的一部分(例如,RAM)。特別是,記憶體胞元510和控制器520並非處理器530之傳統移位暫存器,舉例來說。第6圖中的虛線繪示處理器530與記憶體胞元510和控制器520間的實體區隔。
第7圖繪示在一移位記憶體中移位資料之一方法600的流程圖,依據本說明書中所述原則之一範例。如圖所示,在一移位記憶體中移位資料之一方法600包含選擇610儲存在具有內建移位能力之一記憶體的記憶體胞元中的一連續資料子集合。選定610連續資料子集合之大小或長度少於記憶體的總大小或長度。在一些範例中,選擇610包含提供選定610連續資料子集合的一位址與長度。位址指定記憶體中對應於連續資料子集合之一起始的一記憶體胞元,而位址和長度的一加總指定記憶體中對應於連續資料子集合之一結尾的一記憶體胞元,舉例來說。在其他範例中,選擇610一連續資料子集合包含提供一開始位址和一結束位址。開始位址係對應於連續資料子集合之起始的位址而結束位址係對應於連續資料子集合之結尾的位址,舉例來說。
在一移位記憶體中一位資料之方法600進一步包含將選定連續資料子集合從記憶體中之一第一位置移位620至一第二位置。然而,當選定的連續子集合被移位時620,移位620完全發生於記憶體內。此外,移位620選定連續子集合併不會移位其他位在選定連續子集合外部的儲存資料。
在一些範例中,移位記憶體之方法600進一步包含在移位620資料之連續資料子集合後將資料寫入記憶體以提供所儲存資料或從記憶體讀取資料其中一者。依據諸多範例,移位一移位記憶體中之資料的方法600的實施可利用先前所述的一或更多移位記憶體100以及移位記憶體系統500和移位記憶體300和移位記憶體400。
因此,前文中已說明了用來移位在移位記憶體中之一所儲存資料之連續子集合的一移位記憶體、一移位記憶體系統以及一移位記憶體方法。理應瞭解的是前述範例僅式說明諸多呈現本文所述原則的具體例子中的一些。很清楚地,熟悉此技術領域者可輕易地不脫離由下面申請專利範圍所要求限定的範圍的情況下設計出許多其他的安排。
100‧‧‧移位記憶體
102‧‧‧資料匯流排(資料I/O)
104‧‧‧位址匯流排(ADDR)
106‧‧‧長度匯流排(LEN)
110‧‧‧移位暫存器
112‧‧‧記憶體胞元
120‧‧‧控制器
122‧‧‧增加解碼器
200‧‧‧增加解碼器
210‧‧‧傳統解碼器
220‧‧‧輸出電路
222‧‧‧閂
224‧‧‧閂
226‧‧‧AND閘
228‧‧‧OR閘
229‧‧‧AND閘
300‧‧‧移位記憶體
310‧‧‧記憶體胞元
312‧‧‧SRAM胞元
314‧‧‧邏輯電路
316‧‧‧三相緩衝器
320‧‧‧增加解碼器
400‧‧‧移位記憶體
410‧‧‧記憶體胞元
412‧‧‧D型正反器
414‧‧‧多工器
510‧‧‧記憶體胞元
520‧‧‧控制器
530‧‧‧處理器
532‧‧‧位址匯流排(位址)
534‧‧‧資料匯流排
600‧‧‧方法
610‧‧‧選擇(步驟)
620‧‧‧移位(步驟)
第1A圖繪示將儲存在一移位記憶體中之一線性陣列的一連續資料子集合下移位的範例,依據本說明書中所述原則之一範例。
第1B圖繪示將儲存在一移位記憶體中之一線性陣列的一連續資料子集合上移位的範例,依據本說明書中所述原則之一範例。
第2圖繪示一移位記憶體之一方塊圖,依據本說明書中所述原則之一範例。
第3圖繪示一增加解碼器之一真值表,依據本說明書中所述原則之一範例。
第4圖繪示一增加解碼器之一部分的一示意圖,依據本說明書中所述原則之一範例。
第5A圖繪示一移位記憶體的一示意圖,依據本說明書中所述原則之一範例。
第5B圖繪示一移位記憶體的一示意圖,依據本說明書中所述原則之另一範例。
第6圖繪示一移位記憶體系統的一示意圖,依據本說明書中所述原則之一範例。
第7圖繪示移位記憶體之方法之一流程圖,依據本說明書中所述原則之一範例。
100‧‧‧移位記憶體
102‧‧‧資料匯流排(資料I/O)
104‧‧‧位址匯流排(ADDR)
106‧‧‧長度匯流排(LEN)
110‧‧‧移位暫存器
112‧‧‧記憶體胞元
120‧‧‧控制器
122‧‧‧增加解碼器
权利要求:
Claims (15)
[1] 一種移位記憶體,其包含:具有內建移位能力之一記憶體,以將被該記憶體所儲存資料的一子集合從該記憶體中之一第一位置移位到一第二位置,該連續子集合具有較該記憶體之一整體尺寸更小的一尺寸,其中儲存在該記憶體中但在該連續子集合之外的資料在該連續子集合被位移時不會被位移。
[2] 如申請專利範圍第1項之移位記憶體其中具有內建移位能力之該記憶體包含:具有多數個記憶體胞元以儲存包括該連續子集合之資料的一移位暫存器;以及用來選擇被該移位暫存器所儲存之資料的該連續子集合以及用來指引該移位暫存器將該選定的連續子集合從該移位暫存器中之該第一位置移位到該第二位置的一控制器,該選定的連續子集合具有較該移位暫存器之一總長度短的一長度,其中該移位完全發生在該移位暫存器內。
[3] 如申請專利範圍第2項之移位記憶體,其中該移位暫存器之每一記憶體胞元包含多數個記憶體位置,用來儲存對應於一資料字組之資料位元,多數個該等資料位元定義該移位暫存器之一寬度。
[4] 如申請專利範圍第1項之移位記憶體,其中該記憶體中之該第二位置係位在該第一位置之上面或下面。
[5] 如申請專利範圍第2項之移位記憶體,其中該控制器包含一增加解碼器,用以判定對應於該移位暫存器中該選定連續子集合之每一該記憶體胞元的一輸出。
[6] 如申請專利範圍第5項之移位記憶體,其中該增加解碼器用以進一步判定一額外輸出對應於相鄰且在該選定連續子集合之正上方或在該選定連續子集合之正下方的其中一種記憶體胞元:當該所儲存之資料在該移位暫存器中被上移位時該額外輸出被判定對應於在該選定連續子集合之正上方之該記憶體胞元,而當該所儲存之資料在該移位暫存器中被下移位時該額外輸出被判定對應於在該選定連續子集合之正下方之該記憶體胞元。
[7] 如申請專利範圍第2項之移位記憶體,其中該移位暫存器之該記憶體胞元包含一靜態隨機存取記憶體(SRAM)胞元與一邏輯電路,該邏輯電路用以在多數個輸入之間選擇會被該邏輯電路用於該移位暫存器之一特定記憶體胞元之該SRAM胞元的一資料輸入者,該等多個輸入包含當外部資料將被寫至該特定記憶體胞元之該SRAM胞元並被儲存時會被該邏輯電路選擇的一外部資料輸入、在當所儲存資料在該移位暫存器中被上移位時將被該邏輯電路選擇的該特定記憶體胞元之該SRAM胞元正下方之一相鄰SRAM胞元的一輸出、以及在當所儲存資料在該移位暫存器中被下移位時將被該邏輯電路選擇的該特定記憶體胞元之該SRAM胞元正上方之另一相鄰SRAM胞元的一輸出。
[8] 如申請專利範圍第2項之移位記憶體,其中該移位暫存器之該記憶體胞元包含一D型正反器與一多工器,該多工器用來在將被用於該D型正反器之一資料輸入之四個輸入中選擇其中一個,該等四個輸入對應於:當外部資料將被寫至該D型正反器並被其儲存時會被該多工器選擇的一資料輸入、當在該移位暫存器中所儲存資料將被下移位時會被該多工器選擇的該D型正反器正上方之一位址處的一相鄰D型正反器之一輸出、當在該移位暫存器中所儲存資料將被上移位時會被該多工器選擇的該D型正反器正下方之一位址處的一相鄰D型正反器之一輸出、以及當所儲存資料將被該D型正反器保留而不被移位時將被選擇的該D型正反器之一輸出。
[9] 一種移位記憶體系統,其包含:在一陣列中彼此相鄰配置的多數個記憶體胞元,一記憶體胞元用來儲存對應於一資料字組的一或更多資料位元;用來選擇並移位該陣列中一資料字組之連續子集合的一控制器,該連續子集合具有小於該陣列之一總長度的一長度,移位表示只有被該控制器選定的該陣列中之該資料字組之連續子集合的上移位或下移位;以及用來提供一位址與該資料字組連續子集合之該長度的一處理器。
[10] 如申請專利範圍第9項之移位記憶體系統,其中該控制器包含一增加解碼器,其用來確立該資料字組之選定連續子集合從起始到結束的每一記憶體胞元的一可載入狀態,該起始對應於該位址而該結束對應於接收自該處理器之該位址與該長度之一總和,該增加解碼器更進一步根據該陣列中之位移方向來確立對應於該連續子集合之起始記憶體胞元正上方之至少其中一記憶體胞元以及對應於該連續子集合之結束記憶體胞元正下方之一記憶體胞元的一可載入狀態。
[11] 如申請專利範圍第9項之移位記憶體系統,其中該記憶體胞元包含被配置來儲存該資料字組之一或更多靜態隨機存取記憶體(SRAM)胞元。
[12] 如申請專利範圍第9項之移位記憶體系統,其進一步包含在該等相鄰的記憶體胞元間的一邏輯電路,該邏輯電路用來在多數個輸入間選擇出將被施用於該記憶體胞元之一資料輸入,該等多個輸入包括當一外部資料字組將被寫入該記憶體胞元並被其儲存時會被該邏輯電路選擇的一資料輸入、當一資料字組將在該陣列中被上移位時會被該邏輯電路選擇的該記憶體胞元正下方之一位址的一相鄰記憶體胞元的一輸出、以及當一資料字組將在該陣列中被下移位時會被該邏輯電路選擇的該記憶體胞元正上方之一位址的一相鄰記憶體胞元的一輸出。
[13] 一種在一移位記憶體移位資料之方法,該方法包含下列步驟:選擇儲存在具有內建移位能力之一記憶體的記憶體胞元中的一連續資料子集合,該選定連續資料子集合之尺寸小於該記憶體的一總尺寸;將該選定連續資料子集合從該記憶體中之一第一位置移位到一第二位置,其中當該選定連續子集合被移位,該移位完全在該記憶體內發生而不會移位位在該選定連續子集合外部的其他儲存資料。
[14] 如申請專利範圍第13項之在一移位記憶體中移位資料之方法,其中選擇一連續子集合之步驟包含提供一位址與該長度,該位址指定在該記憶體中對應於該連續資料子集合之一起始之一記憶體胞元,而該位址與該長度之一總和指定該記憶體中對應於一連續資料子集合結束的一記憶體胞元。
[15] 如申請專利範圍第13項之在一移位記憶體中移位資料之方法,其進一步包含在移位該選定連續資料子集合後將資料寫至該記憶體以提供該儲存資料以及自該記憶體讀取資料之其中一步驟。
类似技术:
公开号 | 公开日 | 专利标题
TWI524353B|2016-03-01|可移位記憶體及記憶體系統、以及在可移位記憶體中移位資料之方法
US9542307B2|2017-01-10|Shiftable memory defragmentation
US8819376B2|2014-08-26|Merging arrays using shiftable memory
US9846565B2|2017-12-19|Shiftable memory employing ring registers
US20140247673A1|2014-09-04|Row shifting shiftable memory
CN104571949B|2017-07-07|基于忆阻器实现计算与存储融合的处理器及其操作方法
US9576619B2|2017-02-21|Shiftable memory supporting atomic operation
US9431074B2|2016-08-30|Shiftable memory supporting bimodal storage
US9606746B2|2017-03-28|Shiftable memory supporting in-memory data structures
US9466352B2|2016-10-11|Dynamic/static random access memory |
JP4451733B2|2010-04-14|半導体装置
US8862836B2|2014-10-14|Multi-port register file with an input pipelined architecture with asynchronous reads and localized feedback
US7778105B2|2010-08-17|Memory with write port configured for double pump write
US8862835B2|2014-10-14|Multi-port register file with an input pipelined architecture and asynchronous read data forwarding
WO2003067599A1|2003-08-14|Multiple write-port memory
同族专利:
公开号 | 公开日
US9390773B2|2016-07-12|
EP2727114B1|2020-04-22|
KR20140014299A|2014-02-05|
US20140126309A1|2014-05-08|
EP2727114A4|2015-03-04|
KR101667097B1|2016-10-17|
WO2013002772A1|2013-01-03|
TWI524353B|2016-03-01|
EP2727114A1|2014-05-07|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US9740607B2|2014-09-03|2017-08-22|Micron Technology, Inc.|Swap operations in memory|US3593310A|1969-05-14|1971-07-13|Dick Co Ab|Display system|
US3708690A|1971-02-22|1973-01-02|Mos Technology Inc|Shift register|
JPS5130978B1|1971-03-05|1976-09-03|||
US3670313A|1971-03-22|1972-06-13|Ibm|Dynamically ordered magnetic bubble shift register memory|
US3893088A|1971-07-19|1975-07-01|Texas Instruments Inc|Random access memory shift register system|
US3838396A|1972-05-18|1974-09-24|Little Inc A|Data processor with buffer memory|
US3797002A|1972-11-16|1974-03-12|Ibm|Dynamically double ordered shift register memory|
US3812336A|1972-12-18|1974-05-21|Ibm|Dynamic address translation scheme using orthogonal squares|
US3916388A|1974-05-30|1975-10-28|Ibm|Shifting apparatus for automatic data alignment|
US4037205A|1975-05-19|1977-07-19|Sperry Rand Corporation|Digital memory with data manipulation capabilities|
JPS5652391B2|1976-12-03|1981-12-11|||
US4322635A|1979-11-23|1982-03-30|Texas Instruments Incorporated|High speed serial shift register for MOS integrated circuit|
DE3021299A1|1980-06-06|1982-01-07|Basf Ag, 6700 Ludwigshafen|Verfahren zur herstellung von isocyanaten|
US4504925A|1982-01-18|1985-03-12|M/A-Com Linkabit, Inc.|Self-shifting LIFO stack|
US4521874A|1982-09-28|1985-06-04|Trw Inc.|Random access memory device|
US4532606A|1983-07-14|1985-07-30|Burroughs Corporation|Content addressable memory cell with shift capability|
JPH0754638B2|1986-02-18|1995-06-07|松下電子工業株式会社|シフトレジスタ|
US4813015A|1986-03-12|1989-03-14|Advanced Micro Devices, Inc.|Fracturable x-y storage array using a ram cell with bidirectional shift|
US4864544A|1986-03-12|1989-09-05|Advanced Micro Devices, Inc.|A Ram cell having means for controlling a bidirectional shift|
JPS63231798A|1987-03-20|1988-09-27|Fujitsu Ltd|Two-dimensional shift register|
US5050067A|1987-08-20|1991-09-17|Davin Computer Corporation|Multiple sliding register stacks in a computer|
US4903240A|1988-02-16|1990-02-20|Tektronix, Inc.|Readout circuit and method for multiphase memory array|
US4873665A|1988-06-07|1989-10-10|Dallas Semiconductor Corporation|Dual storage cell memory including data transfer circuits|
US5153846A|1990-07-30|1992-10-06|At&T Bell Laboratories|Digital shift register using random access memory|
US5612964A|1991-04-08|1997-03-18|Haraszti; Tegze P.|High performance, fault tolerant orthogonal shuffle memory and method|
WO1993014459A1|1992-01-17|1993-07-22|Caelum Research Corporation|Modular parallel processing system|
US5313433A|1992-09-11|1994-05-17|Micron Technology, Inc.|Windowed flash write circuit|
TW207013B|1993-02-19|1993-06-01|Nat Science Committee|Architecture of optimal high-speed sorter|
US5677864A|1993-03-23|1997-10-14|Chung; David Siu Fu|Intelligent memory architecture|
JP2970389B2|1994-03-30|1999-11-02|日本電気株式会社|フリップ・フロップ回路|
US5860104A|1995-08-31|1999-01-12|Advanced Micro Devices, Inc.|Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates|
US5698997A|1995-09-28|1997-12-16|Mayo Foundation For Medical Education And Research|Resonant tunneling diode structures for functionally complete low power logic|
US6331856B1|1995-11-22|2001-12-18|Nintendo Co., Ltd.|Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing|
DE69719264T2|1996-08-26|2003-11-06|Texas Instruments Inc|Schieberegister mit negativen Widerstandselementen|
JP3284491B2|1997-07-08|2002-05-20|達治 増田|Srフリップ・フロップ|
US5930323A|1997-08-26|1999-07-27|Texas Instruments Incorporation|Ultra fast shift register using resonant tunnel diodes|
US6785888B1|1997-08-29|2004-08-31|International Business Machines Corporation|Memory allocator for a multiprocessor computer system|
JP3157753B2|1997-09-30|2001-04-16|日本電気アイシーマイコンシステム株式会社|半導体記憶回路|
JPH11328947A|1998-05-18|1999-11-30|Nec Corp|大規模fifo回路|
US6526505B1|1998-07-20|2003-02-25|Koninklijke Philips Electronics N.V.|DES encryption system|
US6061417A|1998-12-03|2000-05-09|Xilinx, Inc.|Programmable shift register|
DE19917016A1|1999-04-15|2000-10-19|Philips Corp Intellectual Pty|Schaltungsanordnung zur Parallel/Seriell-Umsetzung|
US6362660B1|1999-07-13|2002-03-26|Texas Instruments Incorporated|CMOS latch and register circuitry using quantum mechanical tunneling structures|
US6327175B1|1999-09-13|2001-12-04|Cypress Semiconductor Corporation|Method and apparatus for controlling a memory array with a programmable register|
JP3744285B2|1999-10-29|2006-02-08|日本電気株式会社|シフトレジスタ及びその制御方法|
US6560696B1|1999-12-29|2003-05-06|Intel Corporation|Return register stack target predictor|
JP2002014809A|2000-06-28|2002-01-18|Mitsubishi Electric Corp|マイクロプロセッサ並びにアセンブラ、その方法およびそのプログラムを記録した記録媒体|
US6678806B1|2000-08-23|2004-01-13|Chipwrights Design, Inc.|Apparatus and method for using tagged pointers for extract, insert and format operations|
US6625057B2|2000-11-17|2003-09-23|Kabushiki Kaisha Toshiba|Magnetoresistive memory device|
US6725347B2|2001-01-16|2004-04-20|Sun Microsystems, Inc.|Spin-wheel SDRAM access scheduler for high performance microprocessors|
US20040019715A1|2001-02-06|2004-01-29|Raphael Apfeldorfer|Multirate circular buffer and method of operating the same|
US6820186B2|2001-03-26|2004-11-16|Sun Microsystems, Inc.|System and method for building packets|
US7051153B1|2001-05-06|2006-05-23|Altera Corporation|Memory array operating as a shift register|
JP2003006003A|2001-06-18|2003-01-10|Mitsubishi Electric Corp|Dmaコントローラおよび半導体集積回路|
GB2390179A|2001-12-24|2003-12-31|Vulcan Machines Ltd|Improved stack architecture|
JP3765273B2|2002-02-06|2006-04-12|日本電気株式会社|シフトレジスタ|
CN100334735C|2002-04-30|2007-08-29|独立行政法人科学技术振兴机构|固体电解质开关元件及使用其的fpga、存储元件及其制造方法|
KR100481175B1|2002-08-08|2005-04-07|삼성전자주식회사|시프트 리던던시 회로들을 가지는 반도체 메모리 장치|
US7093084B1|2002-12-03|2006-08-15|Altera Corporation|Memory implementations of shift registers|
JP2005005663A|2003-02-26|2005-01-06|Sony Corp|量子カオス装置および量子カオスの制御方法|
DE602004024177D1|2003-03-14|2009-12-31|Nxp Bv|Zweidimensionaler datenspeicher|
JP2004287165A|2003-03-24|2004-10-14|Seiko Epson Corp|表示ドライバ、電気光学装置、電子機器及び表示駆動方法|
JP2004296040A|2003-03-28|2004-10-21|Renesas Technology Corp|半導体記憶装置|
US6834005B1|2003-06-10|2004-12-21|International Business Machines Corporation|Shiftable magnetic shift register and method of using the same|
CA2435148A1|2003-07-15|2005-01-15|Robert J. Blainey|System and method for lock caching for compound atomic operations on shared memory|
JP4350459B2|2003-08-26|2009-10-21|株式会社ルネサステクノロジ|不揮発性半導体記憶装置|
US7293132B2|2003-10-08|2007-11-06|Samsung Electronics Co., Ltd.|Apparatus and method for efficient data storage using a FIFO memory|
US7260757B2|2003-11-25|2007-08-21|International Business Machines Corporation|System and method for testing electronic devices on a microchip|
TWI244033B|2003-11-26|2005-11-21|Sunplus Technology Co Ltd|Processor capable of cross-boundary alignment of a plurality of register data and method of the same|
DE10356851B4|2003-12-05|2006-02-02|Infineon Technologies Ag|Schieberegister zum sicheren Bereitstellen eines Konfigurationsbits|
JP2005268578A|2004-03-19|2005-09-29|Toudai Tlo Ltd|サーミスタ素子|
US7330369B2|2004-04-06|2008-02-12|Bao Tran|NANO-electronic memory array|
KR100609699B1|2004-07-15|2006-08-08|한국전자통신연구원|급격한 금속-절연체 전이 반도체 물질을 이용한 2단자반도체 소자 및 그 제조 방법|
US7570611B2|2004-12-30|2009-08-04|Intel Corporation|Parallel processing data transfer arrangements|
US20060274585A1|2005-06-03|2006-12-07|Jung Chang H|Memory device with row shifting for defective row repair|
US7502896B2|2005-06-07|2009-03-10|Stmicroelectronics Pvt. Ltd.|System and method for maintaining the integrity of data transfers in shared memory configurations|
KR101102157B1|2005-09-16|2012-01-02|삼성전자주식회사|금속 나노 입자를 이용한 휘발성 음저항 소자|
KR100719310B1|2005-09-23|2007-05-17|한국과학기술원|셋/리셋 래치 회로, 시미트 트리거 회로 및 셋/리셋 래치회로를 이용한 모바일 기반의 d형 플립 플롭 회로와주파수 분배기 회로|
KR101359834B1|2005-10-06|2014-02-07|레드 밴드 리미티드|압축 버전을 포함하는 내용을 업데이트하는 방법 및시스템들|
US7746682B2|2005-11-03|2010-06-29|Agata Logic Inc.|SEU hardened latches and memory cells using programmable resistance devices|
US7463056B1|2005-12-12|2008-12-09|Xilinx, Inc.|Writeable shift register lookup table in FPGA with SRAM memory cells in lookup table reprogrammed by writing after initial configuration|
JP4950490B2|2005-12-28|2012-06-13|株式会社東芝|不揮発性スイッチング素子およびその製造方法ならびに不揮発性スイッチング素子を有する集積回路|
US7653895B1|2006-01-20|2010-01-26|Xilinx, Inc.|Memory arrangement for message processing by a plurality of threads|
DE102006007023B3|2006-02-15|2007-03-22|Infineon Technologies Ag|Halbleiterspeicher-Vorrichtung mit einer Wortleitungsansteuerung|
JP4782191B2|2006-03-23|2011-09-28|シャープ株式会社|表示装置およびその駆動方法|
KR101390011B1|2006-05-22|2014-04-29|삼성전자주식회사|유기 메모리 소자 및 그의 제조방법|
JP4229140B2|2006-06-16|2009-02-25|ソニー株式会社|集積回路チップ、データ読み出し方法、データ書き込み方法、icカード、および携帯電話機|
US7450413B2|2006-08-11|2008-11-11|International Business Machines Corporation|Configurable SRAM system and method|
US8700579B2|2006-09-18|2014-04-15|Infobright Inc.|Method and system for data compression in a relational database|
KR100864827B1|2006-11-02|2008-10-23|한국전자통신연구원|Mit 소자를 이용한 논리회로|
JP4221613B2|2006-11-20|2009-02-12|インターナショナル・ビジネス・マシーンズ・コーポレーション|ダイナミック半導体記憶装置及びその動作方法|
US7508701B1|2006-11-29|2009-03-24|The Board Of Trustees Of The Leland Stanford Junior University|Negative differential resistance devices and approaches therefor|
JP5066921B2|2007-01-17|2012-11-07|横浜ゴム株式会社|空気入りタイヤ|
CN101162471B|2007-11-15|2010-12-15|华为技术有限公司|一种插入排序的方法和装置|
US20090193384A1|2008-01-25|2009-07-30|Mihai Sima|Shift-enabled reconfigurable device|
US7983068B2|2008-02-12|2011-07-19|Qimonda Ag|Memory element with positive temperature coefficient layer|
US8341362B2|2008-04-02|2012-12-25|Zikbit Ltd.|System, method and apparatus for memory with embedded associative section for computations|
US8283730B2|2008-05-27|2012-10-09|Shu-Lu Chen|Negative differential resistance device with high PVCR and fast switching speed and memory using the same|
US7751266B2|2008-06-26|2010-07-06|International Business Machines Corporation|High performance read bypass test for SRAM circuits|
US20100023730A1|2008-07-24|2010-01-28|Vns Portfolio Llc|Circular Register Arrays of a Computer|
US7961502B2|2008-12-04|2011-06-14|Qualcomm Incorporated|Non-volatile state retention latch|
JP2010160653A|2009-01-07|2010-07-22|Renesas Electronics Corp|リングバッファ回路及びその制御回路|
US9442846B2|2009-03-17|2016-09-13|Cisco Technology, Inc.|High speed memory systems and methods for designing hierarchical memory systems|
CN101594319B|2009-06-26|2011-09-14|华为技术有限公司|表项查找方法和装置|
FR2948811A1|2009-07-28|2011-02-04|St Microelectronics Sa|Dispositif de memoire statique a cinq transistors et procede de fonctionnement|
US7940550B2|2009-09-14|2011-05-10|Synopsys, Inc.|Systems and methods for reducing memory array leakage in high capacity memories by selective biasing|
US8218378B2|2009-10-14|2012-07-10|International Business Machines Corporation|Word-line level shift circuit|
US8275728B2|2009-11-05|2012-09-25|The United States Of America As Represented By The Secretary Of The Air Force|Neuromorphic computer|
WO2011102864A2|2009-11-19|2011-08-25|University Of Pittsburgh -- Of The Commonwealth System Of Higher Education|On-demand nanoelectronics platform|
US20120104346A1|2010-10-29|2012-05-03|Wei Yi|Semiconductor device for providing heat management|
US8525146B2|2010-12-06|2013-09-03|Hewlett-Packard Development Company, L.P.|Electrical circuit component|
KR101667097B1|2011-06-28|2016-10-17|휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피|시프트 가능 메모리|
GB2509423B|2011-10-27|2016-03-09|Hewlett Packard Development Co|Shiftable memory supporting in-memory data structures|
GB2509661B|2011-10-27|2015-10-07|Hewlett Packard Development Co|Shiftable memory employing ring registers|
KR20140065477A|2011-10-27|2014-05-29|휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.|원자적 동작을 지원하는 시프트 가능형 메모리|
US8854860B2|2011-10-28|2014-10-07|Hewlett-Packard Development Company, L.P.|Metal-insulator transition latch|
KR101564524B1|2012-01-30|2015-10-29|휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.|동적/정적 랜덤 액세스 메모리|
WO2013130109A1|2012-03-02|2013-09-06|Hewlett-Packard Development Company L.P.|Shiftable memory defragmentation|
WO2013130108A1|2012-03-02|2013-09-06|Hewlett-Packard Development Company , L. P.|Shiftable memory supporting bimodal storage|
US8819376B2|2012-04-23|2014-08-26|Hewlett-Packard Development Company, L. P.|Merging arrays using shiftable memory|
US8717831B2|2012-04-30|2014-05-06|Hewlett-Packard Development Company, L.P.|Memory circuit|
US8972630B1|2013-09-25|2015-03-03|Netronome Systems, Incorporated|Transactional memory that supports a put with low priority ring command|KR101667097B1|2011-06-28|2016-10-17|휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피|시프트 가능 메모리|
GB2509423B|2011-10-27|2016-03-09|Hewlett Packard Development Co|Shiftable memory supporting in-memory data structures|
KR20140065477A|2011-10-27|2014-05-29|휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.|원자적 동작을 지원하는 시프트 가능형 메모리|
GB2509661B|2011-10-27|2015-10-07|Hewlett Packard Development Co|Shiftable memory employing ring registers|
WO2013115779A1|2012-01-30|2013-08-08|Hewlett-Packard Development Company, L.P.|Word shift static random access memory |
WO2013130109A1|2012-03-02|2013-09-06|Hewlett-Packard Development Company L.P.|Shiftable memory defragmentation|
WO2013130108A1|2012-03-02|2013-09-06|Hewlett-Packard Development Company , L. P.|Shiftable memory supporting bimodal storage|
CN104246892B|2012-07-10|2017-04-12|慧与发展有限责任合伙企业|列表排序静态随机存取存储器|
US10296580B1|2015-09-18|2019-05-21|Amazon Technologies, Inc.|Delivering parsed content items|
US10127210B1|2015-09-25|2018-11-13|Amazon Technologies, Inc.|Content rendering|
US10601894B1|2015-09-28|2020-03-24|Amazon Technologies, Inc.|Vector-based encoding for content rendering|
US10691750B1|2015-09-28|2020-06-23|Amazon Technologies, Inc.|Browser configured to efficiently store browsing session state|
US10341345B1|2015-12-15|2019-07-02|Amazon Technologies, Inc.|Network browser configuration|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
PCT/US2011/042223|WO2013002772A1|2011-06-28|2011-06-28|Shiftable memory|
[返回顶部]