TWI783510B - 存取依電性記憶體之技術 - Google Patents
存取依電性記憶體之技術 Download PDFInfo
- Publication number
- TWI783510B TWI783510B TW110120817A TW110120817A TWI783510B TW I783510 B TWI783510 B TW I783510B TW 110120817 A TW110120817 A TW 110120817A TW 110120817 A TW110120817 A TW 110120817A TW I783510 B TWI783510 B TW I783510B
- Authority
- TW
- Taiwan
- Prior art keywords
- volatile memory
- instruction
- memory
- integrated circuit
- physical interface
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/109—Control signal input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1096—Write circuits, e.g. I/O line write drivers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Fire-Detection Mechanisms (AREA)
- Debugging And Monitoring (AREA)
- Manufacturing Of Electric Cables (AREA)
Abstract
說明一種電子裝置,其可包括一積體電路、耦合至該積體電路之一依電性記憶體、耦合至該積體電路之一非依電性記憶體控制器、以及耦合至該非依電性記憶體控制器之一非依電性記憶體。在一些實例中,該積體電路是要經由一第一儲存存取實體介面以一第一頻率接收一第一指令、以及經由一第二儲存存取實體介面以一第二頻率接收一第二指令,其中該第一指令及該第二指令係依電性記憶體存取指令。該積體電路亦可用來基於該第一指令及該第二指令仲裁對該依電性記憶體之存取,以及回應於對該依電性記憶體之該存取,經由該非依電性記憶體控制器將該依電性記憶體之內容與該非依電性記憶體同步化,以使該依電性記憶體與該非依電性記憶體之間維持資料一致性。
Description
本揭示係有關於存取依電性記憶體之技術。
運算裝置可包括許多不同儲存裝置。舉例而言,運算裝置可包括NOR快閃儲存電路、NAND快閃儲存電路、隨機存取記憶體、唯讀記憶體等。這些及其他儲存裝置可根據多種不同技術或架構來實施。
依據本發明之一實施例,係特地提出一種電子裝置,其包含:一晶片組;以及一儲存電路,其耦合至該晶片組,並且包含一依電性記憶體及一積體電路,該積體電路進行下列動作:經由一第一實體介面從該晶片組接收指令,以供將第一資料寫入至該儲存電路;經由一第二實體介面從該晶片組接收指令,以供將第二資料寫入至該儲存電路;將一第一位址空間中之一第一位址映射至該依電性記憶體之一第二位址空間,其中該第一位址係經由該第一實體介面來接收,並且其中該第二位址空間包括該第一位址空間;將該第一位址空間中之一第二位址映射至該第二位址空間,其中該第二位址係經由該第二實體介面來接收;以及基於該第一位址及該第二位址之該位址映射來存取該依電性記憶體以將該第一資料及該第二資料寫入至該依電性記憶體。
諸如筆記型電腦及智慧型手機之運算裝置包括多個分立儲存裝置。這些儲存裝置中有一些儲存裝置相比於這些儲存裝置中之其他儲存裝置,每單位資料具有一更高成本,但是這些儲存裝置中每單位資料具有一更低成本之其他裝置可比每單位資料具有更高成本之儲存裝置具有更慢之讀取及/或寫入時間。舉例而言,串列週邊介面(SPI) NOR快閃儲存裝置通常提供高階效能(例如:速度),但其成本通常也隨著儲存容量而近似線性地調整比例。至少基於這個理由,一些運算裝置在SPI NOR快閃記憶體之儲存容量、或代替SPI NOR快閃記憶體之另一類儲存裝置之實作態樣方面設計取得平衡,以犧牲使用者體驗來降低成本。
本揭露說明以相比於NOR快閃記憶體每單位資料更少之一成本,在效能方面模擬NOR快閃記憶體之一儲存裝置之各種實例。在一些實例中,儲存裝置包括可現場規劃閘陣列(FPGA)或特定應用積體電路(ASIC)、一隨機存取記憶體(RAM)電路、一NAND快閃記憶體電路、以及一NAND快閃記憶體控制器。在至少一些實例中,NAND快閃記憶體控制器係一數位電路,其在FPGA與NAND快閃記憶體電路之間進行介接並提供通訊。FPGA或ASIC實施多種不同儲存存取實體介面,用於從儲存裝置讀取資料及向儲存裝置寫入資料。FPGA或ASIC亦實施一RAM控制器,以供在減少延遲可有益之情況中使用,諸如RAM在模擬NOR快閃記憶體時之操作。非依電性資料係儲存在NAND快閃記憶體電路中,藉由NAND快閃記憶體控制器來控制。NAND快閃記憶體控制器管理NAND快閃記憶體電路,以促進資料回復力及NAND快閃記憶體電路耐久性。
對於一給定之記憶體大小,諸如約128百萬位元組或更大,為了維持比NOR快閃記憶體實作態樣每單位資料更低之一成本,儲存裝置可包括單一RAM電路,而不是每個儲存存取實體介面均包括一RAM電路。為了促進單一RAM電路用於多個儲存存取實體介面,FPGA或ASIC可操作為一資料轉移仲裁器。在一些實例中,FPGA或ASIC接收並處理來自儲存存取實體介面之傳入命令,以確定對應之命令並予以發送至RAM。FPGA或ASIC亦將位址從儲存存取實體介面映射至RAM內之區域、從儲存存取實體介面捕獲資料、以及基於所捕獲資料來更新RAM。FPGA或ASIC進一步經由儲存存取實體介面將資料從RAM寫入至佇列以供輸出,並且基於RAM之內容來更新NAND快閃記憶體電路,以維持RAM與NAND快閃記憶體電路之間的一致性。
圖1係一方塊圖,其繪示一例示性電子裝置100。在一些實例中,根據各種實例,電子裝置100係用以基於多個實體介面對一儲存電路之一依電性記憶體進行存取之一電子裝置。在至少一些實例中,電子裝置100包括一晶片組102及一儲存電路104。在至少一些實例中,晶片組102使一中央處理單元(圖未示)或其他處理器能夠與週邊裝置互動,例如儲存電路104。儲存電路104之至少一些實作態樣包括一積體電路106、一依電性記憶體108、一非依電性記憶體控制器110、以及一非依電性記憶體112。在各種實例中,積體電路106可以是一FPGA或一ASIC。在至少一些實例中,可提高儲存電路104之一操作速度,以將積體電路106實施為無需軟體即可處理資料及/或提出請求之一裝置(諸如將積體電路106實施為有別於一處理器之一組件)。舉例而言,積體電路106可處理資料而不要求符碼在運行時間執行,以指導積體電路106要執行什麼指令、程式、程序、例行程序等來處理資料。依此作法,積體電路106可以是一硬體裝置(例如:一邏輯裝置或數位邏輯結構),而不是執行軟體之一處理器,當相較於一處理器執行軟體來處理資料時,促進積體電路106以更快效能處理資料。
在一些實例中,將積體電路106實施為一FPGA促進積體電路106之一硬體架構之一可規劃性,舉例而言,用以適應來自晶片組102及/或圖未示之其他晶片組之不同類型之儲存存取實體介面、或更單純之實體介面。在至少一些實例中,非依電性記憶體控制器110係一數位電路,其在非依電性記憶體112與積體電路106之間進行介接並提供通訊。在至少一些實例中,非依電性記憶體112係一非暫時性電腦可讀媒體,其中「非暫時性」一詞不含括暫時性傳播信號。
一儲存存取實體介面、或實體介面係一種通訊協定,通訊藉以在晶片組102與儲存電路104之間流動。此類儲存存取實體介面、或實體介面之一些實例包括串列週邊介面(SPI)、內部整合電路(I2C)、快速週邊組件互連(PCIe)、以及序列先進技術附接(SATA)。如電子裝置100中所示,積體電路106實施實體介面114、116、118及120。實體介面114及120根據包括晶片組102與儲存電路104之間的交握在內之協定促進通訊,並且實體介面116及118根據不包括晶片組102與儲存電路104之間的交握在內之協定促進通訊。實體介面114、116、118及120可在本文中統稱為藉由積體電路106實施之實體介面。
依電性記憶體108及非依電性記憶體控制器110係耦合至積體電路106。非依電性記憶體112係耦合至非依電性記憶體控制器110。在各種實作態樣中,依電性記憶體108係一RAM組件,諸如動態RAM (DRAM)或靜態RAM (SRAM),並且非依電性記憶體112係一NAND快閃記憶體組件或其他高密度儲存器,諸如一自旋磁盤硬碟機。非依電性記憶體控制器110可基於實施為非依電性記憶體112之一裝置類型而採取各種形式。舉例而言,非依電性記憶體控制器110在非依電性記憶體控制器110係一NAND快閃記憶體組件時可以是一NAND快閃記憶體控制器,在非依電性記憶體控制器110係一自旋磁盤硬碟機時可以是一硬碟機控制器等。
在至少一些實例中,儲存電路104模擬或虛擬化複數個分立、或分離之儲存裝置。在積體電路106包括X個實體介面(舉例而言,根據X種不同通訊協定與晶片組102通訊)之至少一些實例中,儲存電路104以X個分立或分離之儲存裝置向晶片組102呈現本身。舉例而言,儲存電路104之一些實作態樣模擬複數個NOR快閃儲存裝置,其中藉由積體電路106實施之各實體介面以一單獨、分立之NOR快閃儲存裝置向晶片組102顯現。
當儲存電路104退出一重設狀態、或電力開啟時,非依電性記憶體控制器110從非依電性記憶體112載入機器可讀指令以供其操作。在一些實例中,非依電性記憶體控制器110接著從非依電性記憶體112載入機器可讀指令以供積體電路106之操作,並且積體電路106從非依電性記憶體控制器110載入機器可讀指令以供其操作。隨後,積體電路106請求非依電性記憶體控制器110從非依電性記憶體112向積體電路106提供資料。在一些實例中,諸如當儲存電路104模擬多個NOR快閃記憶體裝置時,積體電路106請求之資料係非依電性記憶體112之已模擬NOR快閃記憶體內容。在藉由積體電路106接收之後,資料係藉由積體電路106儲存在依電性記憶體108中。在至少一些實例中,此一將資料從非依電性記憶體112快取緩存至依電性記憶體108之過程促進晶片組102經由依電性記憶體108更快之資料存取,比經由非依電性記憶體112之存取更快。
如上述,藉由積體電路106實施之各實體介面以一單獨、分立之儲存裝置向晶片組102顯現。因此,晶片組102可向儲存電路104提供請求以同時、或在處理一先前所接收請求之前、或針對該先前所接收請求已完成,將資料寫入至、或將資料讀取自這些分立儲存裝置中之多個儲存裝置。為了適應此類可能性,積體電路106經由藉由積體電路106所實施之實體介面來仲裁從晶片組102接收之資料讀取及寫入請求。舉例而言,對於諸如PCIe、SATA、或包括交握以控制資料流之其他通訊協定等實體介面,積體電路106可基於儲存電路104中發生之其他過程來請求晶片組102等待以讀取或寫入資料。然而,諸如SPI或I2C之實體介面可不能夠進行交握(舉例如根據那些通訊協定及標準經由設計選擇進行之交握),而是期望實質可依需求進行資料讀取或寫入操作。
在至少一些實例中,積體電路106包括快取或緩衝區,諸如先進先出(FIFO)快取122、124。快取122及124可儲存與藉由積體電路106實施之實體介面相關聯之資料,其不包括使積體電路106能夠請求晶片組102等待以將資料寫入至、或將資料讀取自儲存電路104之交握或其他協定。舉例而言,快取122可儲存與實體介面114相關聯之資料,並且快取124可儲存與實體介面116相關聯之資料。雖然圖1中未示出,積體電路106之一些實作態樣仍包括用於各實體介面之多個快取,諸如一資料讀取快取及一資料寫入快取。為求論述,本文中論述實體介面116及快取122。然而,類似功能可適用於實體介面118及快取124、以及積體電路106之其他實體介面及快取。
當積體電路106經由實體介面116從晶片組102接收資料時,資料係快取緩存在快取122中。回應於快取122變滿或達到一已規劃或按其他方式指定之快取資料量,積體電路106執行與快取122中之資料相關聯之一指令或請求。在至少一些實例中,執行指令包括將資料從快取122寫入至依電性記憶體108。舉例而言,快取122可具有足以在溢出之前儲存一特定資料量之一容量。積體電路106可判斷快取122中快取緩存之一資料量何時達到一閾值量,並且可排程與快取122中之資料相關聯之指令或請求的執行,以降低快取122溢出之一機會,諸如基於與實體介面116相關聯之一速度、頻寬、資料流及/或其他特性、及/或與依電性記憶體108相關聯之一速度、頻寬及/或其他特性來降低。
類似的是,當積體電路106經由實體介面116從晶片組102接收資料讀取請求時,積體電路106可將資料列從依電性記憶體108快取緩存至積體電路106之一資料讀取快取(圖未示)。依此作法,積體電路106可經由實體介面116及實體介面118同時為實質接收之資料讀取請求提供服務,利用從依電性記憶體108快取緩存之資料來為該等資料讀取請求之一提供服務,同時從依電性記憶體108取得用於第二讀取請求之資料。
附加設計複雜度可導因於模擬多個分立裝置之儲存電路104。舉例而言,晶片組102在經由實體介面116與儲存電路104互動時,可期望[A:B]之一記憶體位址空間。類似的是,晶片組102在經由實體介面118與儲存電路104互動時,亦可期望[A:B]之一記憶體位址空間。這可導因於晶片組102將藉由積體電路106實施之各實體介面視為一單獨之實體裝置。因為儲存電路104模擬多個裝置,在至少一些實例中,積體電路106將接收自晶片組102之記憶體位址空間變換及映射至依電性記憶體108之一記憶體位址空間。舉例而言,依電性記憶體108可具有[A:Z]之一記憶體位址空間。如果積體電路106憑藉包括在請求中之一記憶體位址空間(例如:[A:B])來為接收自晶片組102之各記憶體寫入請求提供服務,則根據資料寫入請求中之一第一受處置者寫入至依電性記憶體108之資料可在各資料寫入請求參考相同記憶體位址空間時,藉由資料寫入請求中之一第二受處置者來至少部分地覆寫。
因此,在至少一些實例中,積體電路106變換並映射經由藉由積體電路106實施之實體介面所接收之記憶體位址空間,以降低該等實體介面中之一特定實體介面將與該等實體介面中之一不同實體介面相關聯之資料覆寫之一可能性,諸如由於記憶體位址重疊或記憶體位址空間重疊而覆寫。舉例而言,當晶片組102在實體介面116及118兩者上都提供用於記憶體位址空間[A:B]之指令時,積體電路106可將經由實體介面116接收之記憶體位址空間[A:B]用之指令映射至依電性記憶體108之記憶體位址空間[A:B]。積體電路106亦可將經由實體介面116接收之記憶體位址空間[A:B]用之指令映射至依電性記憶體108之記憶體位址空間[B:C] (或任何其他適合的記憶體位址空間),藉此降低經由實體介面116及118接收之記憶體讀取或寫入指令之間發生衝突之一可能性。雖然圖1中未示出,在至少一些實例中,儲存電路104可包括多個依電性記憶體。在此類實例中,積體電路106可維持知道藉由積體電路106實施之實體介面之記憶體位址空間之間的映射以及哪些資料區域儲存在哪些依電性記憶體中。
再者,在至少一些實例中,藉由積體電路106實施之一些實體介面可在差異時脈速度下操作。舉例而言,可在一第一時脈頻率下接收經由藉由積體電路106實施之實體介面中之一第一者所接收之指令,並且可在一第二時脈頻率下接收經由藉由積體電路106實施之實體介面中之一第二者所接收之指令。積體電路106可確定藉由積體電路106實施之第一及第二實體介面用之延遲,並且基於那些計算之延遲,為藉由積體電路106實施之第一或第二實體介面中之一者,相對於另一者優先化對依電性記憶體108之存取。
舉例而言,假設藉由積體電路106實施之一第一實體介面係以一20百萬赫茲(SPI1)頻率操作之一第一SPI介面,並且藉由積體電路106實施之一第二實體介面係以一60百萬赫茲(SPI2)頻率操作之一第二SPI介面。積體電路106可與SPI1之20百萬赫茲及SPI2之60百萬赫茲兩者都相容,並且可計算將經由SPI1及SPI2接收資料之一速率。舉例而言,積體電路106可確定可經由SPI1每33.3奈秒及經由SPI2每100奈秒接收一個位元組之資料。基於此時序,積體電路106可確定其對於經由SPI2接收及提供服務之各一個位元組之資料,可為經由SPI1接收之三個位元組之資料提供服務。在一些實例中,使用這些確定之時序,積體電路106可降低正在對經由SPI1及/或SPI2接收之資料進行快取緩存之一快取之一溢出之一可能性。經由SPI1及/或SPI2接收資料之一頻率可在電子裝置100之操作期間改變,並且積體電路106可回應於頻率改變而重新計算與經由SPI1及/或SPI2接收之資料有關之時序。
當積體電路106與依電性記憶體108之間存在之一資料匯流排閒置時,諸如在積體電路106處經由藉由積體電路106實施之實體介面中之至少一者接收之資料讀取或寫入請求完成之後,可將依電性記憶體108之資料變化排清至非依電性記憶體112。舉例而言,積體電路106可讀取依電性記憶體108之內容,並且將依電性記憶體108之讀取內容寫入至非依電性記憶體控制器110,其進而將依電性記憶體108之讀取內容寫入至非依電性記憶體112。這維持依電性記憶體108與非依電性記憶體112之間的一致性,並為儲存電路104所儲存之資料提供資料回復力及/或永續性,諸如當儲存電路104可能斷電且從而遺失在依電性記憶體108中或藉由依電性記憶體108儲存之資料時提供。
圖2係一流程圖,其繪示一方法200。在一些實例中,方法200係基於多個實體介面與一儲存電路互動之一方法。在至少一些實例中,方法200係藉由圖1之電子裝置100之積體電路106來實施。因此,圖2參照圖1之組件,但圖1之那些組件未在本文中單獨針對圖2作說明。實施方法200以例如將資料接收及寫入至一儲存電路,諸如儲存電路104,其模擬多個分立儲存裝置,各分立儲存裝置對應於單獨或不同之實體介面。在一些實例中,積體電路106基於積體電路106之一硬體架構來實施方法300之操作,其可屬於可規劃(諸如當積體電路106係一FPGA時)或不可規劃(諸如當積體電路106係一ASIC時)。
於操作202,該積體電路經由一第一實體介面從一晶片組接收指令,以供將第一資料寫入至該儲存電路。在至少一些實例中,第一實體介面對應於藉由儲存電路模擬之一第一模擬儲存裝置。在至少一些實例中,用於將第一資料寫入至儲存電路之指令係用於將該等指令寫入至該儲存電路之一第一位址空間、或第一記憶體位址空間。
於操作204,該積體電路經由一第二實體介面從一晶片組接收指令,以供將第二資料寫入至該儲存電路。在至少一些實例中,第二實體介面對應於藉由儲存電路模擬之一第二模擬儲存裝置。在至少一些實例中,用於將第二資料寫入至儲存電路之指令係用於將該等指令寫入至該儲存電路之第一位址空間、或第一記憶體位址空間。
於操作206,積體電路將一第一位址空間中之一第一位址映射至依電性記憶體之一第二位址空間。在一些實例中,第一位址係在用於將第一資料寫入至儲存電路之指令中經由第一實體介面來接收。在至少一些實例中,第二位址空間包括第二位址空間。舉例而言,當第一位址空間開始於位址A並結束於位址B時,第二位址空間可開始於位址A並結束於位址C (或任何其他適合的位址)。
於操作208,積體電路將第一位址空間中之一第二位址映射至依電性記憶體之第二位址空間。在一些實例中,第二位址係在用於將第二資料寫入至儲存電路之指令中經由第二實體介面來接收。
於操作210,積體電路基於該第一位址及該第二位址之該位址映射將該第一資料及該第二資料寫入至一依電性記憶體。在至少一些實例中,依電性記憶體係模擬多個分立儲存裝置,諸如多個NOR快閃記憶體裝置,之儲存電路之一RAM。
圖3係一流程圖,其繪示一方法300。在一些實例中,方法300係基於多個實體介面與一儲存電路互動之一方法。在至少一些實例中,方法300係藉由圖1之電子裝置100之積體電路106來實施。因此,圖3參照圖1之組件,但圖1之那些組件未在本文中單獨針對圖3作說明。實施方法300以例如將資料接收及寫入至一儲存電路,其模擬多個分立儲存裝置,各分立儲存裝置對應於單獨或不同之實體介面。在一些實例中,積體電路106基於積體電路106之一硬體架構來實施方法300之操作,其可屬於可規劃(諸如當積體電路106係一FPGA時)或不可規劃(諸如當積體電路106係一ASIC時)。
於操作302,積體電路經由一第一儲存存取實體介面以一第一頻率接收一第一指令。在一些實例中,第一指令係將資料寫入至一記憶體之一指令或從該記憶體讀取資料之一指令。在至少一些實例中,第一指令所參考之記憶體係一分立記憶體(例如:對第一儲存存取實體介面具有獨特性之一記憶體)。在至少一些實例中,積體電路將第一指令映射至與一依電性記憶體相關聯之操作。
於操作304,積體電路經由一第二儲存存取實體介面以一第二頻率接收一第二指令,其中該第一指令及該第二指令係依電性記憶體存取指令。在一些實例中,第二指令係將資料寫入至一第二記憶體之一指令或從該第二記憶體讀取資料之一指令。在至少一些實例中,第二指令所參考之第二記憶體係一分立記憶體(例如:對第二儲存存取實體介面具有獨特性之一記憶體)。在至少一些實例中,積體電路將第二指令映射至與依電性記憶體相關聯之操作。
於操作306,積體電路基於該第一指令及該第二指令仲裁對該依電性記憶體之存取。在一些實例中,第一指令與第二指令之態樣有衝突。舉例而言,第一或第二指令中之一者可請求資料操作,而另一指令之資料操作正在接受服務。類似的是,第一指令及第二指令可參考同一記憶體位址空間、或相同記憶體位址,因此依電性記憶體中有衝突或重疊。又再者,在一些實例中,可在不同時脈頻率接收第一指令及第二指令,並且積體電路可基於根據不同時脈頻率所確定之延遲來優先化對依電性記憶體之存取。
積體電路之至少一些實作態樣藉由仲裁對依電性記憶體之存取來補償第一與第二指令之間的這些衝突。舉例而言,藉由優先化對依電性記憶體之存取、快取緩存與第一或第二指令其中一者相關聯之資料、及/或將第一或第二指令其中一者之一位址空間重映射至依電性記憶體之一位址空間,積體電路基於第一及第二指令來存取依電性記憶體。
於操作308,回應於對該依電性記憶體之該存取,該積體電路經由該非依電性記憶體控制器將該依電性記憶體之內容與該非依電性記憶體同步化,以使該依電性記憶體與該非依電性記憶體之間維持資料一致性。在至少一些實例中,積體電路藉由將依電性記憶體排清至非依電性記憶體來將依電性記憶體之內容與非依電性記憶體同步化。將依電性記憶體排清至非依電性記憶體於本文中使用時,包括將依電性記憶體之內容複製到非依電性記憶體,在一些實例中,其可包括依電性記憶體之一位址空間與非依電性記憶體之位址空間之間的一位址變換或重映射。
圖4係一流程圖,其繪示一方法400。在一些實例中,方法400係基於多個實體介面與一儲存電路互動之一方法。在至少一些實例中,方法400係藉由圖1之電子裝置100之積體電路106來實施。因此,圖4參照圖1之組件,但圖1之那些組件未在本文中單獨針對圖4作說明。實施方法400以例如將資料接收及寫入至一儲存電路,其模擬多個分立儲存裝置,各分立儲存裝置對應於單獨或不同之實體介面。在至少一些實例中,將方法400儲存為可執行指令、或可執行碼,諸如儲存在儲存電路104之非依電性記憶體112中,其係轉移至積體電路106以供執行。在其他實例中,在非依電性記憶體112中將方法400儲存為可執行碼或指令,當將其提供至積體電路106時,造成積體電路106具有一特定硬體架構。
於操作402,積體電路經由一第一實體介面以一第一頻率接收一第一指令以供存取一依電性記憶體。在一些實例中,第一指令係將資料寫入至一記憶體之一指令或從該記憶體讀取資料之一指令。在至少一些實例中,第一指令所參考之記憶體係一分立記憶體(例如:對第一儲存存取實體介面具有獨特性之一記憶體)。在至少一些實例中,積體電路將第一指令映射至與一依電性記憶體相關聯之操作。
於操作404,積體電路經由一第二實體介面以一第二頻率接收一第二指令以供存取依電性記憶體。在一些實例中,第二指令係將資料寫入至一第二記憶體之一指令或從該第二記憶體讀取資料之一指令。在至少一些實例中,第二指令所參考之第二記憶體係一分立記憶體(例如:對第二儲存存取實體介面具有獨特性之一記憶體)。在至少一些實例中,積體電路將第二指令映射至與依電性記憶體相關聯之操作。
於操作406,該積體電路藉由仲裁該第一指令及該第二指令以建立該第一指令及該第二指令之命令之一優先權排序,基於該第一指令及該第二指令來存取該依電性記憶體。舉例而言,積體電路可基於與第一指令或第二指令相關聯之延遲、第一及第二時脈頻率、根據第一指令或第二指令要存取之依電性記憶體之一部分、或任何其他適合的考量因素來建立優先權排序。
於操作408,回應於存取該依電性記憶體,該積體電路經由一非依電性記憶體控制器將該依電性記憶體之內容與一非依電性記憶體同步化,以使該依電性記憶體與該非依電性記憶體之間維持資料一致性。在至少一些實例中,積體電路藉由將依電性記憶體排清至非依電性記憶體來將依電性記憶體之內容與非依電性記憶體同步化。在至少一些實例中,維持依電性記憶體與非依電性記憶體之間的一致性使藉由依電性記憶體及非依電性記憶體儲存之資料之回復力提升。
以上之論述意在說明本揭露之原理及各種實例。一旦完全了解以上揭露,所屬技術領域中具有通常知識者將會清楚明白許多變化及修改。以下請求項意欲解釋為囊括所有此類變化及修改。
100:電子裝置
102:晶片組
104:儲存電路
106:積體電路
108:依電性記憶體
110:非依電性記憶體控制器
112:非依電性記憶體
114~120:實體介面
122,124:快取
200,300,400:方法
202~210,302~308,402~408:操作
各種實例將會在下文中參照以下圖式作說明:
圖1根據各種實例,係用以基於多個實體介面對一儲存電路之一依電性記憶體進行存取之一電子裝置。
圖2根據各種實例,係用於基於多個實體介面與一儲存電路互動之一方法的一流程圖。
圖3根據各種實例,係用於基於多個實體介面與一儲存電路互動之一方法的一流程圖。
圖4根據各種實例,係用於基於多個實體介面與一儲存電路互動之一方法的一流程圖。
100:電子裝置
102:晶片組
104:儲存電路
106:積體電路
108:依電性記憶體
110:非依電性記憶體控制器
112:非依電性記憶體
114~120:實體介面
122,124:快取
Claims (15)
- 一種電子裝置,其包含:一晶片組;以及一儲存電路,其耦合至該晶片組,並且包含一依電性記憶體及一積體電路,該積體電路用來進行下列動作:經由一第一實體介面從該晶片組接收用來將第一資料寫入該儲存電路之指令;經由一第二實體介面從該晶片組接收用來將第二資料寫入該儲存電路之指令;將一第一位址空間中之一第一位址映射至該依電性記憶體之一第二位址空間,其中該第一位址係經由該第一實體介面來接收,並且其中該第二位址空間包括該第一位址空間;將該第一位址空間中之一第二位址映射至該第二位址空間,其中該第二位址係經由該第二實體介面來接收;以及基於該第一位址及該第二位址之位址映射存取該依電性記憶體以將該第一資料及該第二資料寫入該依電性記憶體。
- 如請求項1之電子裝置,其中該積體電路是要以一第一時脈頻率接收經由該第一實體介面從該晶片組來之該等指令,以及以一第二時脈頻率接收經由該第二實體介面從該晶片組來之該等指令。
- 如請求項1之電子裝置,其中該積體電路是要進行下列動作:接收包括重疊記憶體位址之經由該第一實體介面從該晶片組來之該等指令、以及經由該第二實體介面之該等指令;以及解決該等重疊記憶體位址。
- 如請求項1之電子裝置,其中該積體電路將該第一資料快取緩 存至該積體電路之一快取記憶體,並且在該快取記憶體已滿後將該第一資料寫入該依電性記憶體。
- 如請求項1之電子裝置,其中該儲存電路模擬多個分立儲存裝置,該等多個分立儲存裝置中之一第一儲存裝置獨一地對應於該第一實體介面,並且該等多個分立儲存裝置中之一第二儲存裝置對應於該第二實體介面。
- 一種電子裝置,其包含:一積體電路;一依電性記憶體,其耦合至該積體電路;一非依電性記憶體控制器,其耦合至該積體電路;以及一非依電性記憶體,其耦合至該非依電性記憶體控制器,其中該積體電路是要進行下列動作:經由一第一儲存存取實體介面以一第一頻率接收一第一指令;經由一第二儲存存取實體介面以一第二頻率接收一第二指令,其中該第一指令及該第二指令係依電性記憶體存取指令;基於該第一指令及該第二指令仲裁對該依電性記憶體之存取;以及回應於對該依電性記憶體之該存取,經由該非依電性記憶體控制器將該依電性記憶體之內容與該非依電性記憶體同步化,以維持該依電性記憶體與該非依電性記憶體之間的資料一致性。
- 如請求項6之電子裝置,其中該依電性記憶體及該非依電性記憶體各模擬多個分立儲存裝置,該等多個分立儲存裝置中之一第一儲存裝置獨一地對應於該第一儲存存取實體介面,並且該等多個分立儲存裝置中之一第二儲存裝置對應於該第二儲存存取實體介面。
- 如請求項7之電子裝置,其中仲裁存取包括解決與該第一指令相關聯之一記憶體位址以及與該第二指令相關聯之一記憶體位址之間的重疊衝 突。
- 如請求項7之電子裝置,其中仲裁存取包括基於根據該第一頻率及該第二頻率確定之延遲來優先化該第一指令或該第二指令中之一者。
- 如請求項7之電子裝置,其中仲裁存取包括在該積體電路中快取緩存與該第一指令或該第二指令中之一者相關聯之資料,同時該積體電路服務該第一指令或該第二指令中之另一者。
- 一種儲存有可執行碼之非暫時性電腦可讀媒體,該可執行碼在由一電子裝置之一積體電路執行時,致使該積體電路進行下列動作:經由一第一實體介面以一第一頻率接收用以存取一依電性記憶體的一第一指令;經由一第二實體介面以一第二頻率接收用以存取該依電性記憶體的一第二指令;藉由仲裁該第一指令及該第二指令以建立該第一指令及該第二指令之命令之一優先權排序,基於該第一指令及該第二指令存取該依電性記憶體;以及回應於對該依電性記憶體之該存取,經由一非依電性記憶體控制器將該依電性記憶體之內容與一非依電性記憶體同步化,以維持該依電性記憶體與該非依電性記憶體之間的資料一致性。
- 如請求項11之電腦可讀媒體,其中仲裁該第一指令及該第二指令包括判定與該第一頻率及該第二頻率相關聯之延遲,以及根據該所判定延遲來建立該第一指令及該第二指令之命令的該優先權排序。
- 如請求項12之電腦可讀媒體,其中仲裁該第一指令及該第二指令亦包括藉由將該第一指令及該第二指令之一記憶體位址重映射至該依電性記憶體之一不同位址,來解決該第一指令及該第二指令之重疊位址空間。
- 如請求項12之電腦可讀媒體,其中仲裁該第一指令及該第二 指令亦包括快取緩存與該第一指令或該第二指令相關聯之資料,同時服務該第一指令或該第二指令中之另一者。
- 如請求項11之電腦可讀媒體,其中該依電性記憶體及該非依電性記憶體各模擬多個分立儲存裝置,該等多個分立儲存裝置中之一第一儲存裝置獨一地對應於該第一實體介面,並且該等多個分立儲存裝置中之一第二儲存裝置對應於該第二實體介面。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
WOPCT/US20/57066 | 2020-10-23 | ||
PCT/US2020/057066 WO2022086559A1 (en) | 2020-10-23 | 2020-10-23 | Access to volatile memories |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202217583A TW202217583A (zh) | 2022-05-01 |
TWI783510B true TWI783510B (zh) | 2022-11-11 |
Family
ID=81291015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110120817A TWI783510B (zh) | 2020-10-23 | 2021-06-08 | 存取依電性記憶體之技術 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230359553A1 (zh) |
TW (1) | TWI783510B (zh) |
WO (1) | WO2022086559A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070245097A1 (en) * | 2006-03-23 | 2007-10-18 | Ibm Corporation | Memory compression method and apparatus for heterogeneous processor architectures in an information handling system |
TW201346554A (zh) * | 2011-12-20 | 2013-11-16 | Intel Corp | 於第二階記憶體階層中記憶體側快取的動態部份斷電 |
US20140075106A1 (en) * | 2006-09-28 | 2014-03-13 | Kenneth A. Okin | Methods of communicating to different types of memory modules in a memory channel |
US20170017580A1 (en) * | 2014-03-28 | 2017-01-19 | Christopher B. Wilkerson | Method and apparatus for implementing a heterogeneous memory subsystem |
TW201706826A (zh) * | 2015-04-29 | 2017-02-16 | 高通公司 | 於異質系統記憶體中用於最佳化記憶體耗電之系統及方法 |
US20200117594A1 (en) * | 2018-10-10 | 2020-04-16 | ScaleFlux, Inc. | Implementing low cost and large capacity dram-based memory modules |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
US20080320255A1 (en) * | 2007-06-25 | 2008-12-25 | Sonics, Inc. | Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets |
US8924632B2 (en) * | 2011-09-16 | 2014-12-30 | Apple Inc. | Faster tree flattening for a system having non-volatile memory |
US10296240B2 (en) * | 2014-04-28 | 2019-05-21 | Hewlett Packard Enterprise Development Lp | Cache management |
US9715939B2 (en) * | 2015-08-10 | 2017-07-25 | Sandisk Technologies Llc | Low read data storage management |
US11175853B2 (en) * | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
US11481150B2 (en) * | 2020-04-01 | 2022-10-25 | Western Digital Technologies, Inc. | Read modify write optimization for video performance |
-
2020
- 2020-10-23 US US18/042,673 patent/US20230359553A1/en active Pending
- 2020-10-23 WO PCT/US2020/057066 patent/WO2022086559A1/en active Application Filing
-
2021
- 2021-06-08 TW TW110120817A patent/TWI783510B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070245097A1 (en) * | 2006-03-23 | 2007-10-18 | Ibm Corporation | Memory compression method and apparatus for heterogeneous processor architectures in an information handling system |
US20140075106A1 (en) * | 2006-09-28 | 2014-03-13 | Kenneth A. Okin | Methods of communicating to different types of memory modules in a memory channel |
TW201346554A (zh) * | 2011-12-20 | 2013-11-16 | Intel Corp | 於第二階記憶體階層中記憶體側快取的動態部份斷電 |
US20170017580A1 (en) * | 2014-03-28 | 2017-01-19 | Christopher B. Wilkerson | Method and apparatus for implementing a heterogeneous memory subsystem |
TW201706826A (zh) * | 2015-04-29 | 2017-02-16 | 高通公司 | 於異質系統記憶體中用於最佳化記憶體耗電之系統及方法 |
US20200117594A1 (en) * | 2018-10-10 | 2020-04-16 | ScaleFlux, Inc. | Implementing low cost and large capacity dram-based memory modules |
Also Published As
Publication number | Publication date |
---|---|
US20230359553A1 (en) | 2023-11-09 |
TW202217583A (zh) | 2022-05-01 |
WO2022086559A1 (en) | 2022-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550477B2 (en) | Processing host write transactions using a non-volatile memory express controller memory manager | |
US8473661B2 (en) | System and method for providing multi-process protection using direct memory mapped control registers | |
US7581054B2 (en) | Data processing system | |
US10540096B2 (en) | Method and design for dynamic management of descriptors for SGL operation | |
US20230214326A1 (en) | Computer Memory Expansion Device and Method of Operation | |
US8285917B2 (en) | Apparatus for enhancing flash memory access | |
BR112013006329B1 (pt) | controlador de memória compreendendo uma pluralidade de portas, circuito integrado e método | |
CN111684427A (zh) | 高速缓存控制感知的存储器控制器 | |
US20200050396A1 (en) | Scheduling of read and write memory access requests | |
US10754802B2 (en) | Dynamically remapping in-process data transfers | |
JP2018519587A (ja) | 構成可能メールボックスデータバッファ装置 | |
US20230113337A1 (en) | Memory module and computing device containing the memory module | |
CN107250995B (zh) | 存储器管理设备 | |
EP3270293B1 (en) | Two stage command buffers to overlap iommu map and second tier memory reads | |
TWI626540B (zh) | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 | |
US20240143530A1 (en) | DMA Control Circuit with Quality of Service Indications | |
TWI783510B (zh) | 存取依電性記憶體之技術 | |
US20080016296A1 (en) | Data processing system | |
CN112286863B (zh) | 处理暨存储电路 | |
CN111913662B (zh) | Slc写性能提升方法、装置、计算机设备及存储介质 | |
US20230195658A1 (en) | Multichannel memory arbitration and interleaving scheme | |
TWI383298B (zh) | 直接記憶體存取控制器及存取其緩衝記憶體的方法 | |
CN116339475A (zh) | 硬件的复位方法、配置方法、电子设备与存储介质 | |
JP3800934B2 (ja) | メモリアクセス装置 | |
CN116578501A (zh) | 用于保留高速缓存中的数据的存储器地址分配和高速缓存映射 |