TW201232257A - Transactional memory - Google Patents

Transactional memory Download PDF

Info

Publication number
TW201232257A
TW201232257A TW100144702A TW100144702A TW201232257A TW 201232257 A TW201232257 A TW 201232257A TW 100144702 A TW100144702 A TW 100144702A TW 100144702 A TW100144702 A TW 100144702A TW 201232257 A TW201232257 A TW 201232257A
Authority
TW
Taiwan
Prior art keywords
transaction
memory
receiving
operators
command
Prior art date
Application number
TW100144702A
Other languages
English (en)
Other versions
TWI590046B (zh
Inventor
Sean Eilert
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of TW201232257A publication Critical patent/TW201232257A/zh
Application granted granted Critical
Publication of TWI590046B publication Critical patent/TWI590046B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

201232257 六、發明說明: 【發明所屬之技術領域】 本文中所揭示之標的物係、關於用以使用-記憶體裝置執 行異動之技術。 . 【先前技術】 在某些應用中,可期望將—指令集視為—單個操作,稱 為-異動。舉例而言,—異動可包括後續接著有可導致至 一記憶體之一寫入之複數個指令或運算符之一開始事件及 -結束事件…異動不可部分地完成,但可完全:成功地 執行或失敗。換言之,—異動之所有指令或運算符皆成功 地執行或皆未成功地執行^ f理異動可係—相對複雜任 務,涉及(例如)一計算架構之一作業系統之相對大量軟體 額外負擔。可期望減小此軟體額外負擔及複雜性。 【發明内容】 在-實施例中’用以執行一或多個異動之技術及/或架 構可(例如)藉由在執行該等異動之—過程期間重新映射實 體记憶體來提供減小—作㈣統之軟體複雜性及/或記憶 體額外負擔之—益處。此等異動可包括作為-單個操作以 不=部分完成方式執行之一指令集或運算符集。此處,以 不可部分完成方式(atomic fashi〇n)」執行之一異動指 ==部分地完成而是完全實施之—異動或該異動失敗而 :持先前狀態不改變。舉例而言,-異動可包括用以將特 …寫入至一記憶體之複數個指令或運算符。此一異動 可包括-開始事件及稱為一「認可…結束事件。如剛 160490.doc 201232257 剛所提及’此-異動並不部分地完成但可完全且成功地執 行或失敗1言之’一異動之所有指令或運算符皆可成功 地執行或皆未成功地執行β -實施例可包含至少部分地基於界定一異動之一異動協 定來操作之-記憶體子系統。舉例而言,此一異動協定可 WQL相關聯’包括此項技術中已知之—f料庫電腦語 言’但所主張之標的物並不限於此。舉例而言,此一異動 可包含用於使一記憶體子系統執行一開始信號及一系列寫 入運算符後續接著有一認可運算符之指令。此一認可運算 符可由》亥。己憶體子系統執行來以一不可部分完成方式完结 :異動,以使得執行所有寫入運算符或不執行任一寫入^ 算符。此一記憶體子系統可執行多個獨立異動。在一項實 施方案中’ -記憶體子系統可使用一重新映射表將系統級 位址映射至實體記憶體位址來執行一或多個異動。舉例而 §,此一異動解決方案可藉由回應於接收到一認可運算符 而重新寫入一重新映射表之部分來執行,如下文詳細闡 述。在一項實施方案中’一記憶體子系統可充當-關聯式 資料庫子系統’其可涉及欲傳送至一異動引擎之一資料庫 結構之額外知識。舉例而言,此額外資訊可指定哪些關鍵 . 干將一個表連結至另一表及此等表之攔位定義。在另一實 · 施方案中,一記憶體子系統可充當支援異動之一 10子系 先。此—子系統可對區段進行操作且並不知曉區段儲存哪 些資讯。在此情形下,關聯式資料庫軟體可管理資料庫異 動且將該等異動轉譯成區段級異動。 160490.doc -4 - 201232257 動之枯彻方案令’本文中所闡述之用以執行-或多個異 減虑姓及/或架構可利用包含記憶體重新映射能力之系 拉土結構。舉例而言,相對大的記憶體子系統可包含; 藉以重新映射$ ,廢#工$ & 陷部分及/二 或區段以隔離記憶體之缺 或確保跨越記憶冑空間之相#大部分之 損平均的軟體及/或硬體。亦可使用此軟體及/或硬體來執 行不可部分完成㈣,Μ文詳細體來執 個料實施例t,用以以―不可部分完成方式執行 ”曰ne•憶體子'系統可使用-異動協定來操作’如上文 所提及。此-協定可將個別異動命令界定為包括開始部 分、有效負載部分及結束部分。此一協定可適應多個同時 異動命令’同時將異動之狀態提供至起始該等異動命令之 一主機。舉例而言,此狀態可包括「異動A完成」、「I動 A未完成」、「異動B未完成」等。在接收到一異動命令之 一開始部分之後’-記憶體子系統可創建欲用於執行該異 動之-或多個重新映射表之—臨時複本。由於一異動可僅 影響-重新映射表之-小部分,因此,記憶體子系統可僅 複製該表之欲在該異動之執行期間改變之彼等部分。而 且,作為接收到一異動之一開始部分之一結果,可在記憶 體子系統中複製記憶體之部分(例如’頁及/或區段卜在一 項實施方案中’此-複製過程可保持記憶體之原始部分不 改變,而該等記憶體部分之複件可被改變、重新寫入及/ 或操縱。在另一實施方案中,此一複製過程可保持記憶體 部分之複件不改變’而記憶體之原始部分可被改變、重新 160490.doc 201232257 寫入及/或操縱。一異動命令之個別運算符亦可導致重新 映射表之原始或臨時複本之改變、重新寫入及/或其他此 類操縱。在接收到一異動命令之一結束或認可部分之後, 一記憶體子系統可確保包含於一異動命令中之所有運算符 成功完成且重新映射表之臨時複本不改變。若成功完成, 則可設疋一暫存器以指示重新映射表之臨時複本將被合併 至一主重新映射表中。舉例而言,在此合併之後,該等重 新映射表之臨時複本中所含有之資訊可包含於一主重新映 射表中此暫存器之設定可完成一異動。重新映射表之 此等臨時複本未必係主重新映射表之完全複本。舉例雨 夺複本可僅表示該主重新映射表之包括與即將發生 之異動相關之改變之部分。在一項實施方案中,無需產生 重新映射表之臨時複本。而是,可㈤微)擴展主重新映射 表以包含指*在特定異動中涉及㈣4新映射表之部分之 位元。可將此等特定部分視為未完成異動操作之部分,直 至該異動被「認可」為止,此時,該重新映射表之此等經 擴展刀可作為该主重新映射表之永久記錄起作用。 在-項實施方案中’能夠處理多個異動命令之—記憶體 子系統可能能夠創建及/或操縱一主重新映射表之部:之 多個臨時複本’如上文所闡述。在其中允許同 影響一共同記憶體頁子隼之一产报下 ^ 呉動 亍果之匱形下,一记憶體子系統可 追蹤欲以其處理異動之一+庄 之細筋…/ 然,此一記憶體子系統 、 ’、列,且所主張之標的物並不限於此。 在特疋貫施方案中,一種執行一異動之方法可包含接 160490.doc 201232257 收-異動請求、多個異動運算符及/或一異動認可,如上 文所論述。舉例而言,包括電路及/或軟體之-記憶體控 制器可自-主機接收此—異動請求。在一項實施方案中, 此-記憶體控制器可回應於自—主機或其他實體接收到一 異動請求而在一記憶體裝置(其可包含或亦可不包含該記 憶體控制器)中產生一記憶體之内容之一部分之一複本。 此一複本可允s午保留儲存於記憶體中之原始内容以防—異 動失敗。舉例而言’—異動命令可包含用以寫入至記憶體 之可已包含特定所儲存資訊之一特定部分之複數個運算 符。因此,異動命令之寫入運算符可「覆寫」(例如,重 新寫入或一抹除-寫入運算符序列,此至少部分地相依於 所使用之記憶體之類型)記憶體之該特定部分之該所儲存 資訊。若在甚至已執行此等寫入運算符之一部分之後異動 失敗,則可丟失原始所儲存資訊。然而,具有原始所儲存 資訊之一複本可提供復原此原始所儲存資訊之一方法。因 此’可在執行異動命令之運算符之前複製記憶體之可受一 異動命令影響之一或多個部分。 如上文所提及,一控制器可回應於接收到一異動命令之 一或多個異動運算符而修改記憶體之複本之資訊。特定而 言’發端記憶體可保持不改變且不被異動運算符修改。在 一項實施方案中’ 一記憶體子系.統可對記憶體之區段進行 操作。在此一情形下’分配一新的空區段而非如上文所闡 述複製原始記憶體可係可能的。在更新之後,可完全重新 寫入區段。因此,記憶體子系統可接收欲修改之一區段之 I60490.doc 201232257 完全内容’藉此避免複製記憶體之原始内容之一需要。 -異動命令可由—計算裝置之—作業系統或處理^ 他此類主控實體來起始。舉心言,㈣mi# 符可導致重新寫入記憶體複本之内容。在一項實 中,控制器可維護-臨時重新映射表以指向該記憶體中^ -或多個複本所定位之—實體位置。可回應於自—主機接 收到-或多個異動運算符而修改此一臨時重新映射表。舉 例而言’此等異動運算符可導致記憶體複本之重新定位。 因此’可修改-臨時重新映射表以追蹤此重新定位。在一 實施方案中’-記憶體控制器可同時維護㈣於—或多個 額外異動命令之一或多個額外臨時重新映射表。舉例而 言’同時維護多個臨時重新映射表可使得一記憶體控制器 能夠執行多個異動。 在一實施例中,i維護-或多個臨時重新映射表以外, -記憶體控制器亦可維護一主重新映射表以指向記憶體中 之實體位置。此一主重新映射表可至少部分地基於一或多 個臨時重新映射表之内容來修改。可在接收到-異動命令 之-認可部分之後執行一主重新映射表之此修改。然而, -主重新映射表之修改可至少部分地基於異動是成功還是 失敗。舉例而言’若異動已成功,則可如上文所論述使用 記憶體之經修改複本之内容來覆蓋寫入記憶體之原始内容 (經修改複本源自該原始内容)。而且,舉例而言,一主重 新映射表可經修改以反映經修改複本之内容現在可正儲存 於原始記憶體位置中之事實。另一方面,若異動未成功, 160490.doc 201232257 則。己憶體之經修改複本之内容可被放棄,亦即此等内容將 不被使用且可被覆蓋寫入或抹除。此乃因若異動失敗,則 作為執行一異動之一結果而修改之資料或資訊將不予保 留。而是,資料或資訊將被「返回」至其原始内容。如上 文所闈釋,記憶體之經複製部分允許至原始内容之此一返 回,乃iUb等複纟係在異動期間在原肖記憶體部分保持未 改變(例如,被保留)時被修改。而且,舉例而言,一主重 新映射表可經修改以反映將不使用經修改複本之内容而替 代地將使用原始記憶體位置中之當前所儲存内容之事實。 在無需涉及異動過程之一特定實施方案十,此一主重新 映射表亦可用於記憶體損耗平均操作及/或壞記憶體替換 操作。舉例而t,一主重新映射表可維護關於由於一記憶 體陣列之壞區塊及/或過度使用區塊而重新定位之記憶體 區塊之資訊。因此,可在多個用途中涉及一主重新映射 表:舉例而言,耗損平均或壞區塊管理及/或異動。 【實施方式】 將參考以下各圖閣述非限制性及非窮盡性實施例,其中 除非另外說明,否則所有各圖中相同參考編號指代相同部 此說明書通篇所提及之 」夏他例 意指結合該實施例所闞述之—特定特徵、結構或特性包人 於所主張標的物之至少—項實施例中。因&,在此^ 通篇中各個地方出現之短語「在—項實施例中」或「―: 施例」未必完全指代相同實施例。此外,可將該等特定特 160490.doc 201232257 徵、結構或特性組合於一或多個實施例中。 圖1係根據一實施例根據一里 圖。舉例而▲田批 定之事件之一狀態 m 平例而吕,用以執行一里叙十 v , ^ 呉動之一記憶體控制器可至少 β为地基於此一異動協定來掘 M疋采刼作。在此一異動協定中,一 可藉由將#動命令1QQ提供至記憶體子系統來起 始一異動。此—異動命令可包括-開始部分11〇、-有效 負載部分1 2 0、一值丨趙邱公】,< ^ 僅J轉邛刀135及一結束部分13〇。舉例而 言,有效負載部分120可包含複數個_運算符,以運算符 「〇」_且以運算符「N」結束。如上文所提及,結束部 刀130可包括用以完結一異動之一異動認可。在某些情形 :’可代替結束部分13〇而發生倒轉部分135。舉例而言, 若替代結束部分130接收到倒轉部分135,則可放棄命令 100中之所有操作。在一項實施方案中,記憶體子系統⑼ 可包括一記憶體裝置155以執行一或多個異動。此一記憶 體子系統之一實例將在針對圖3之說明中進一步詳細地進 ^闡釋。此一記憶體子系統可將關於異動是成功地完成還 疋失敗之通知提供至主機。舉例而言,回應於成功地完成 異動命令100之所有運算符,記憶體子系統150可將一 ^完 成」通知140提供至主機。當然,一異動協定之此等細= 僅係實例’且所主張之標的物並不限於此。 圖2係根據一實施例之異動之一狀態圖。在圖2中時間垂 直向下前進。如上文所提及之此等異動可由一主機或系統 200起始且由一記憶體子系統21〇執行。舉例而言,此一主 機或系統200可包括執行一應用程式之一計算平臺且弋憶 體子系統210可包括一或多個記憶體裝置。可同時執行一 I60490.doc
S 10· 201232257 或多個此等異動。對於一單個異動之一實例,異動〇可藉 由系統200提供針對異動〇之異動命令之一開始部分而開 始作為回應,記憶體子系統210可準備接收並執行後續 異動運算符,諸如運算符Α及運算符Β。如上文所闊釋, 2準備可包含產生記憶體之可受運算符A、B等影響之部 刀之複本。因此,此等運算符無需修改原始記憶體内容, 該等原始記憶體内容經保留以防異動〇失敗。在自系統200 】針對異動G之-異動命令之__結束部分之後,記憶 子系統210可判定異動〇是成功地完成還是失敗。在任一 ’月形下’記憶體子系統21〇皆可通知系統2〇〇此結果。 ^ 同時執仃多個異動之一實例,異動1及異動2可藉由 ^統2 0 〇提供針對兩個異動之異動命令之—開始部分而開 :作為回應’記憶體子系統21〇可準備接收並執行後續 i準t符丄諸如兩個異動之運算符a。如上文所闊釋, * V包含產生記憶體之可受料運算符影響之部分之 眘邻紅因此’此等運算符無需修改記憶體之原始部分,且 貪Λ無需在異動1或里 令展示一特定次序' η兄下丢失。雖然在圖2 符。舉例而言,針對=任一次序執行多個異動之運算 對異動2之-異動_之—㈣命令之運算符Α可在針 接收到針對異= 前執行。在自系統2〇0 體子系統21。可判定里動la,之一結束部分之後,記憶 情形下,記怜體子Γ 地完成還是失敗。在任一 地,在自系Γ子系統210可通知系統·此結果。類似 子系统2 1G可接收到異動2之—結束部分之後,記憶體 可判定異動2是成功地完成還是失敗。在任一情 160490.doc 201232257 形下’記憶體子系統21G可通知系統此結果。 在-項實施方案中’記憶體子系統21〇可包括一暫存器 (未展示)’該暫存器包括用以判定所允許之異動運算符之 -最大數目及/或用於-或多個異動之記憶體之—部分之 :最大大小之内容。舉例而t,此一暫存器可包括用以指 示將異動之運算符之數目限定為個此等運算符之内 容。作為另-實例’此一暫存器可包括用以指示將欲用於 -特定異動之記憶體之一部分之一最大大小限定為1〇〇個 頁或區段之内容。當然:,在執行異動中所涉及之技術之此 等細節僅係實例,且所主張之標的物並紐於此。 圖3係根據一實施例展示一記憶體子系統3〇〇及一主機 360之一方塊圖。舉例而言,記憶體子系統3〇〇可包括包含 一記憶體陣列及/或一控制器之一記憶體裝置且主機36〇可 包括一處理器。雖然圖3中之箭頭可指示方向,但所主張 之標的物並不限於任何此方向》如上文所論述,一異動命 令可包含一異動請求、一或多個異動運算符及/或一異動 認可。用以執行一異動之一記憶體控制器可包括一異動引 擎330。此一記憶體控制器可經由(例如)一線或匯流排3〇5 自主機360接收一異動命令。在一項實施方案中,此一記 憶體控制器可回應於自主機360接收到一異動命令而在記 憶體子系統300中產生一記憶體350之内容之一部分之一或 多個複本。此等記憶體複本可定位於記憶體35〇之一備用 區3 55中’但所主張之標的物並不限於此。如上文所提 及,記憶體控制器可回應於接收到異動命令之一或多個異 動運算符而修改記憶體複本之資訊。舉例而言,異動命令 160490.doc • 12· 201232257 之寫入運算符可導致重新寫入記憶體複本之内容。在一項 貫細> 方案中’記憶體控制器可維護一或多個臨時重新映射 表340以指向一或多個複本所定位之記憶體35〇中之一實體 位置,諸如備用區355。可回應於接收到一異動命令中之 一或多個異動運算符而修改此等臨時重新映射表34〇。舉 例而言,此等異動運算符可導致記憶體複本之重新定位。 因此’臨時重新映射表340可經修改以追蹤此重新定位。 除維護一或多個臨時重新映射表以外,一記憶體控制器亦 可維護一主重新映射表320以指向記憶體350中之實體位 置。此一主重新映射表可由異動引擎330至少部分地基於 一或多個臨時重新映射表34〇之内容來修改。主重新映射 表320之此修改可在接收到一異動命令之一認可部分之後 執行。然而,主重新映射表3 2 0之修改可係至少部分地基 於異動是成功還是失敗,如上文所闡釋。 圖4係根據一實施例之一異動過程4〇〇之一流程圖。在方 塊410處,包括一記憶體控制器之一記憶體子系統可接收 包括一異動請求、一或多個異動運算符及/或一異動認可 之一異動命令’如上文所論述。在方塊42〇處,此一記憶 體控制器可在一 έ己憶體裝置中產生一記憶體之内容之一部 分之一複本。此一複本可允許保留儲存於記憶體中之原始 内容以防一異動失敗,如上文所論述。在方塊43 〇處,記 憶體控制器可回應於接收到異動命令之一或多個異動運算 符而修改記憶體之複本之資訊。舉例而言,異動命令之寫 入運算符可導致重新寫入記憶體複本之内容。在一項實施 160490.doc •13- 201232257 方案中’記憶體控制器可維護一臨時重新映射表以指向一 或多個複本所定位之記憶體中之一實體位置,該實體位置 可係在記憶體之一備用區中,諸如(例如)圖3中所展示之備 用記憶體355。可回應於接收到一異動命令中之一或多個 異動運算符而修改此一臨時重新映射表。在菱形44〇處, 可作出關於是否接收到異動命令之一認可(表明該異動命 令之一結束)之一判定。若接收到一認可,則過程400可繼 續進行至菱形450,其中可作出關於異動是否成功完成之 一判定°若否’則記憶體之經修改複本之内容可不被使用 且可被覆蓋寫入及/或抹除,如方塊455處所指示。過程 400可然後繼續進行至方塊46〇,其中記憶體子系統可通知 主機該失敗。然而,若異動成功完成,則過程4〇〇可繼續 進行至方塊470 ’其中可使用如上文所論述之記憶體之經 修改複本之内容來覆蓋寫入記憶體之原始内容。而且,一 主重新映射表可經修改以反映(例如)經修改複本之内容現 在可正儲存於原始記憶體位置中之事實。在方塊48〇處, 記憶體子系統可通知主機該異動成功完成。然而,若在菱 形440處未接收到此認可,則過程4〇〇可繼續進行至菱形 490,其中可作出關於是否接收到一倒轉命令以放棄修改 之一判定。若未接收到此倒轉命令,則過程4〇〇可返回至 方塊430,其中可回應於接收到後續異動運算符而進一步 修改記憶體複本。然而,若接收到一倒轉命令,則過程 400可繼續進行至方塊493,其中可忽略、可不使用及/或 可覆蓋寫入及/或抹除έ己憶體之經修改複本之内容。過程 160490.doc. 201232257 400可然後繼續進行至方塊496,其_記憶體子系統可通知 主機該成功或完成倒轉過程。當然,過程4〇〇之此等細節 僅係貫例,且所主張之標的物並不限於此。 圖5係圖解說明包含一記憶體裝置51〇之一計算系統 之-例不性實施例之—示意圖。此—計算裝置可包括(例 如)用以執行一應用程式及/或其他碼之一或多個處理器。
舉例而δ,記憶體裝置51〇可包括包含圖丨中所展示之pcM 100之一部分之一記憶體…計算裝置5〇4可表示可經組態 以S理a己憶體裝置510之任何裝置、器具或機器。記憶體 裝置510可包含—記憶體控制器515及一記憶體⑵。藉由 ^例而非限制之方式,計算裝置5〇4可包含:一或多個計 算裝置及/或平臺’諸如(例如)一桌上型電腦、一膝上型電 腦、一工作站、—伺服器裝置等;-或多個個人計算或通 仏裝置或器具,諸如(例如)一個人數位助理、行動通信裝 置等,一計算系統及/或相關聯服務提供商能力,諸如(例 如)-資料庫或資料儲存服務提供商/系統;及/或其任一組 合0 、已認識到,系統500中所展示之各種裝置以及如本文中 進一步所闞述之過程及方法之全部或部分可使用或以其他 弋匕3硬體、韌體、軟體或其任_組合來實施。因此, 藉由實例而非限制之方 < ’計算裝置504可包含經由一匯 流排540在操作上耦合至記憶體522之至少一個處理單元 52〇及主機或記憶體控制器515。處理單元,表示 態以執行一資料計算程序或過程之至少一部分之一或多個 160490.doc -15· 201232257 電路。藉由實例而非限制之方式,處理單元52〇可包含一 或多個處理器、控制器、微處理器、微控制器、特殊應用 積體電路、數位信號處理器、可程式化邏輯裝置、場可程 式化閘陣列等或其任-組合。處理單元52〇可包含經組態 以與記憶體控制器515通信之一作業系統。舉例而言,此 -作業系統可產生欲經由匯流排54〇發送至記憶體控制$ 515之異動命令。舉例而言’此等異動命令可包含包括讀 取及/或寫人命令之運算符。在―實施方案中,匯流排54〇 可包括一乙太網路、無線區域網路(LAN)、一蜂巢式網 路串列進階技術附接(SΑΤΑ)、串列附接SCSI(SAS)或高 速周邊組件互連(PCIe)卡之—部分,僅列舉數個實例。回 應於接收到-異動命令,舉例而言,記憶體控制器515可 執仃上文所闡述之過程4〇〇以執行此一異動。在一項實施 方案中’系統500可包括包含(例如)至少一個記憶體陣列之 記憶體裝置510。此一記憶體裝置可進一步包含記憶體控 制器515以接收包括一異動請求、一或多個異動運算符及/ 或一異動涊可之一異動命令。記憶體控制器5丨5可進一步 回應於接收到異動命令而產生至少一個記憶體陣列之内容 之一部分之一複本。記憶體控制器515可然後回應於接收 . 到異動之一或多個異動運算符而修改複本之資訊。在一項 - 實施方案中,處理單元52〇可主控一或多個應用程式且起 始此一異動,但所主張之標的物並不限於此。 記憶體522表示任何資料儲存機構。舉例而言,記憶體 522可包含一主要記憶體524及/或一輔助記憶體。舉例 160490.doc
16 · S 201232257 而言’主要記憶體524可包含-隨機存取記憶體、 憶體等。雖然在此實例中圖解說明為與處理單元_、 離,但應理解,主要記憶體524之全部或部分可提供於: 理單以〇内或以其他方式與處理單元52以同定位/麵 合〇 舉例而言,輔助記憶體526可包含與主要記憶體相同或 類似類型之記憶體及/或一或多個資料儲存裝置或系統, 諸如(例如)一磁碟機、一光碟機、一磁帶機、一固態記憶 體硬碟機等。在某些實施方案中’輔助記憶體5辦錢 作上接納或可以其他方式組態以耦合至一電腦可讀媒體 528。舉例而言,電腦可讀媒體似可包含可攜載用於系統 5〇〇中之裝置中之-或多者之資料、代碼及/或指令及/或使 其可存取之任何媒體。 舉例而5,a十算裝置5〇4可包含一輸入/輸出532。輸入/ 輸出532表示可經組態以接受或以其他方式引入人類及/或 機器輸入之或夕個裝置或特徵,及/或可經組態以遞送 或以其他方式提供人類及/或機器輸出之一或多個裝置或 特徵。藉由實例而非限制之方式,輸入/輸出裝置532可包 3在操作上組態之顯示器、揚聲器、鍵盤、滑鼠、軌跡 球、觸控螢幕、資料埠等。 如本文中所使用之術語「及(and)」、「及/或(and/〇r)」及 或(or)」可包含將至少部分地相依於該術語所使用之上 下文之各種意義。通常,「及/或(and/〇r)j以及「或(〇Γ)」 若用於關聯一清單(諸如,Α、Β或C),則其意欲意指A、Β 160490.doc 17 201232257 及c(此處以包含意義使用)以*A、(此處以排他意義 使用)。此說明書通篇所提及之「一項實施例」或「一實 施例」意指結合該實施例所闞述之一特定特徵、結構或特 性包含於所主張之標的物之至少一項實施例中。因此在 此說明書通篇中之各個地方出現之短語「在—項實施例 中」或「一實施例」未必完全指代相同實施例。此外,可 將該等特;t特徵、結構或特性組合於—或多個實施例中。 儘管已圖解㈣及閣述目前被視為實靠實施例之實施 例,但熟習此項技術者將理解,在不背離所主張之標的物 之情形下可作出各種其他修改且可用等效物替代。另外, 可在不背離本文中所闡述之中心概念之情形下作出諸多修 改以使-特定情形適應於所主張之標的物之教示。因此, 意欲所主張之標的物不限於所揭示之特定實施例,而是此 所主張之標的物亦可包含歸屬於隨附申請專利範圍及其等 效物之範疇内之所有實施例。 【圖式簡單說明】 圖1係根據一實施例根據一異動協定之事件之一狀態 圖。 圖2係根據一實施例之異動之一狀態圖。 圖3係根據-實施例展* —記憶體子系統之一方塊圖。 圖4係根據一實施例之一異動過程之—流程圖。 圖5係圖解說明一計算系統之一實例性實施例之一示意 圖。 【主要元件符號說明】 160490.doc 201232257 100 異動命令 110 開始部分 120 有效負載部分 130 結束部分 135 倒轉部分 140 「完成」通知 150 記憶體子系統 155 記憶體裝置 200 主機或系統 210 記憶體子系統 300 記憶體子系統 305 匯流排 320 主重新映射表 330 異動引擎 340 臨時重新映射表 350 記憶體 355 備用區 360 主機 500 計算系統 504 計算裝置 510 記憶體裝置 515 記憶體控制器 520 處理單元 522 記憶體 160490.doc -19- 201232257 524 主要記憶體 526 輔助記憶體 528 電腦可讀媒體 532 輸入/輸出 540 匯流排 160490.doc -20- s

Claims (1)

  1. 201232257 七、申請專利範圍: 1. 一種方法,其包括: 接收包括一異動請求或多個異動運算符之一異動命 令; 回應於接收到該異動請求而將一記憶體陣列之一第— 部分中之原始内容複製至該記憶體陣列之一第二部分;及 回應於接收到該異動命令之該多個異動運算符而修改 該第二部分之該等原始内容。 2.如請求項1之方法,其中該異動命令進一步包括用以完 結該異動命令之—異動認可,且回應於接收到該異動認 可,判定與該異動命令相關聯之一異動是成功還是失 若該異動成功: 則用該第二部分中之該等經修改内容替換該第—部 分之該等原始内容,且 若該異動失敗: 寫該第·一部分中之該等^ 則在一後續異動期間重新覆 經修改内容。 3.如^求項1之方法’其進一步包括· 之該 ::臨時重新映射表以指向該第二部分所 。心體中之—實體位置。 4·如請求項3之方法, 回應於接收到該 新映射表。 其進一步包括: -或多個異動運算符而修改該臨 時重 160490.doc 201232257 5·如請求項3之方法,其進一步包括: 同時維護對應於一或多個 頸外異動之一或多個額外臨 時重新映射表。 6.如請求項丨之方法,其進一步包括. 至少部分地基於-暫存器之内容判定所允許之異動運 算符之-最大數目及/或該記憶體之該部分之—最大大 /J\ 〇 7. 如請求項3之方法,其進一步包括: 、准護-主重新映射表以指向該記憶體中之實體位置;及 回應於接收到該異動命令中之—異動認可且回應於記 憶體損耗平均操作或壞記憶體替換操作而修改該主重新 映射表。 8. 一種記憶體裝置,其包括: 至少一個記憶體陣列;及 一控制器,其用以: 接收包括一異動請求或多個異動運算符之一 令; 。 少一個記憶體 至該記憶體陣 回應於接收到該異動請求而將該至 陣列之一第一部分中之原始内容複製 列之一第二部分;及 回應於接收到該異動命令之該多個異動 改該第二部分之該等原始内容。 9.如請求項8之記憶體裝置,其進一步包括: 一臨時重新映射表,其用以指向該第 運算符而修 部分所 位於之 I60490.doc ·τ· S 201232257 該至少一個記憶體陣列中之一實體位置。 ίο. 11. 12. 13. 14. 15. 16. 如請求項9之記憶體裝置,其中該控制器經調適以: 回應於接收到該一或多個異動運算符而修改該臨時重 新映射表。 如請求項9之記憶體裝置,其進一步包括: 一或多個額外臨時重新映射表,其對應於一或多個額 外異動。 如請求項8之記憶體裝置,其進一步包括: 一暫存器,其用以儲存用以指示所允許之異動運算符 之一最大數目及/或該至少一個記憶體陣列之該部分之— 最大大小之内容。 如請求項9之記憶體裝置,其進一步包括: 一主重新映射表,其用以至少部分地基於該—或多個 異動運算符且至少部分地基於記憶體損耗平均操作或壞 s己憶體替換操作來指向該至少一個記憶體陣列中之實體 位置。 如請求項8之記憶體裝置,其進一步包括: 該記憶體陣列之一備用區域,其用以維護該第二部 如請求項8之記憶體裝置,其中該控制器包括—異動弓丨 擎,該異動引擎至少部分地基於一異動協定來操作。 一種系統,其包括: 一記憶體裝置,其包括至少一個記憶體陣列,該記憶 體裝置進一步包括一記憶體控制器,該記憶體控制器用 160490.doc 201232257 以: 接收包括-異動請求或多個異動運算符之—異動命 令; 回應於接收到該異動請求而將__記憶體陣列之一第 邛刀中之原始内容複製至該記憶體陣列之一第二部 分;及 回應於接收到該異動命令之該多個異動運算符而修 改該第二部分之該等原始内容;及 處理器’其用以主控一或多個應用程式且用以起始 該異動命令。 17. 如請求項16之系統,其進一步包括: 。夺重新映射表’其用以指向該第二部分所位於之 該至少一個記憶體陣列令之一實體位置。 18. 如明求項17之系統,其中該記憶體控制器經調適以: 回應於接收到該-或多個異動運算符而修改該臨時重 新映射表。 19. 如請求項17之系統,其進一步包括: 一或多個額外臨時重新映射表,其對應於—或多個額 外異動。 20.如凊求項16之系統’其中該控制器包括一異動引擎,該 異動弓|擎至少部分地基於—異動協定來操作。 160490.doc
TW100144702A 2011-01-27 2011-12-05 用於修改記憶體內容之裝置及方法 TWI590046B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/015,396 US9104690B2 (en) 2011-01-27 2011-01-27 Transactional memory

Publications (2)

Publication Number Publication Date
TW201232257A true TW201232257A (en) 2012-08-01
TWI590046B TWI590046B (zh) 2017-07-01

Family

ID=46511607

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100144702A TWI590046B (zh) 2011-01-27 2011-12-05 用於修改記憶體內容之裝置及方法

Country Status (6)

Country Link
US (2) US9104690B2 (zh)
JP (1) JP5582418B2 (zh)
KR (1) KR101337676B1 (zh)
CN (1) CN102707898B (zh)
DE (1) DE102012201154B4 (zh)
TW (1) TWI590046B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244724B2 (en) * 2013-08-15 2016-01-26 Globalfoundries Inc. Management of transactional memory access requests by a cache memory
JP6289883B2 (ja) * 2013-11-27 2018-03-07 株式会社東芝 ストレージ装置
GB2529148B (en) * 2014-08-04 2020-05-27 Advanced Risc Mach Ltd Write operations to non-volatile memory
US11582244B2 (en) * 2017-03-23 2023-02-14 International Business Machines Corporation Access control of administrative operations within an application
US10635613B2 (en) * 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
US10621103B2 (en) 2017-12-05 2020-04-14 Arm Limited Apparatus and method for handling write operations
US11586439B2 (en) 2020-10-20 2023-02-21 Micron Technology, Inc. Detecting infinite loops in a programmable atomic transaction
US11740929B2 (en) 2020-10-20 2023-08-29 Micron Technology, Inc. Registering a custom atomic operation with the operating system
US11693690B2 (en) 2020-10-20 2023-07-04 Micron Technology, Inc. Method of completing a programmable atomic transaction by ensuring memory locks are cleared
US11403023B2 (en) 2020-10-20 2022-08-02 Micron Technology, Inc. Method of organizing a programmable atomic unit instruction memory
US11436187B2 (en) 2020-10-20 2022-09-06 Micron Technology, Inc. Method of notifying a process or programmable atomic operation traps

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US8341332B2 (en) 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US6779094B2 (en) * 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data by writing new data to an additional physical storage area
JP4140750B2 (ja) 2000-12-28 2008-08-27 日本電信電話株式会社 Icカード内メモリアクセス制御方法および装置並びにプログラム記憶媒体
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US7389308B2 (en) 2003-05-30 2008-06-17 Microsoft Corporation Shadow paging
US7568025B2 (en) * 2003-06-27 2009-07-28 Bank Of America Corporation System and method to monitor performance of different domains associated with a computer system or network
US7779212B2 (en) 2003-10-17 2010-08-17 Micron Technology, Inc. Method and apparatus for sending data from multiple sources over a communications bus
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7395384B2 (en) 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US7290176B2 (en) * 2004-07-31 2007-10-30 Hewlett-Packard Development Company, L.P. Method and system for generating stacked register dumps from backing-store memory
JP4104586B2 (ja) 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
US7490215B2 (en) 2004-12-22 2009-02-10 Intel Corporation Media memory system and method for providing concurrent memory access to a plurality of processors through separate translation table information
CN100369038C (zh) 2005-02-24 2008-02-13 中兴通讯股份有限公司 一种实时数据库事务操作的实现方法
US7478261B2 (en) 2005-09-13 2009-01-13 M2000 Reconfigurable circuit with redundant reconfigurable cluster(s)
US8683143B2 (en) 2005-12-30 2014-03-25 Intel Corporation Unbounded transactional memory systems
US7533237B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip memory allocation for a unified shader
US20080005504A1 (en) 2006-06-30 2008-01-03 Jesse Barnes Global overflow method for virtualized transactional memory
US20080120304A1 (en) 2006-11-21 2008-05-22 Calio Robert J Method and system for providing high performance data modification of relational database tables
US8589341B2 (en) 2006-12-04 2013-11-19 Sandisk Il Ltd. Incremental transparent file updating
CN101589386B (zh) 2006-12-04 2013-03-27 桑迪士克Il有限公司 增加透明的文件更新
US10311427B2 (en) * 2006-12-29 2019-06-04 Google Technology Holdings LLC Method and system for monitoring secure application execution events during contactless RFID/NFC communication
US7856522B2 (en) * 2007-05-16 2010-12-21 Oracle International Corporation Flash-aware storage optimized for mobile and embedded DBMS on NAND flash memory
JP2008287398A (ja) 2007-05-16 2008-11-27 Toshiba Corp 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置
KR101336258B1 (ko) 2007-05-29 2013-12-03 삼성전자 주식회사 비휘발성 메모리의 데이터 처리 장치 및 방법
US8156299B2 (en) * 2007-10-19 2012-04-10 Virident Systems Inc. Managing memory systems containing components with asymmetric characteristics
US8627014B2 (en) 2008-12-30 2014-01-07 Intel Corporation Memory model for hardware attributes within a transactional memory system
US8627017B2 (en) 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US8250282B2 (en) * 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US8036016B2 (en) * 2009-09-01 2011-10-11 Micron Technology, Inc. Maintenance process to enhance memory endurance

Also Published As

Publication number Publication date
TWI590046B (zh) 2017-07-01
US20120198205A1 (en) 2012-08-02
JP5582418B2 (ja) 2014-09-03
DE102012201154B4 (de) 2021-08-05
US9104690B2 (en) 2015-08-11
US10083122B2 (en) 2018-09-25
DE102012201154A1 (de) 2012-08-02
CN102707898A (zh) 2012-10-03
KR20120087091A (ko) 2012-08-06
JP2012155705A (ja) 2012-08-16
KR101337676B1 (ko) 2013-12-06
CN102707898B (zh) 2016-04-27
US20150347315A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
TW201232257A (en) Transactional memory
CN103493027B (zh) 虚拟磁盘存储技术
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
KR101562973B1 (ko) 메모리 장치 및 메모리 장치의 동작 방법
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
US8433870B2 (en) Multiple incremental virtual copies
US20160179419A1 (en) Storage system, storage management apparatus, and storage management method
US7330947B2 (en) Method and apparatus for backing up data in virtual storage medium
JP2006018839A (ja) 漸進的マージ方法及びそれを利用したメモリシステム
KR101454146B1 (ko) 스토리지 장치, 제어 장치 및 기록 매체
EP2929439A1 (en) Using a logical to physical map for direct user space communication with a data storage device
KR20130140777A (ko) 시스템 리셋
US10019331B2 (en) Memory allocation and recovery strategies for byte-addressable non-volatile RAM (NVRAM)
TWI417724B (zh) 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品
WO2009153917A1 (ja) 仮想計算機システム、仮想計算機システムを提供する情報処理装置およびプログラム
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US9811274B2 (en) Storage control apparatus and copy control method
US10241818B2 (en) In-memory virtual desktop system
KR20110052902A (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법
JP2014038551A (ja) データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム
US20130031320A1 (en) Control device, control method and storage apparatus
JP2011175666A (ja) 半導体記憶装置及び半導体記憶装置の制御方法
EP3293635B1 (en) Electronic device and method of controlling the same
TW202036542A (zh) 在儲存伺服器中進行資料存取管理的方法與裝置
JP2013109404A (ja) 情報処理装置