TW202027075A - 記憶體之位址混淆 - Google Patents
記憶體之位址混淆 Download PDFInfo
- Publication number
- TW202027075A TW202027075A TW108138156A TW108138156A TW202027075A TW 202027075 A TW202027075 A TW 202027075A TW 108138156 A TW108138156 A TW 108138156A TW 108138156 A TW108138156 A TW 108138156A TW 202027075 A TW202027075 A TW 202027075A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- mapping
- address
- logical
- component
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 527
- 238000013507 mapping Methods 0.000 claims abstract description 303
- 230000006870 function Effects 0.000 claims abstract description 204
- 238000000034 method Methods 0.000 claims abstract description 63
- 230000000737 periodic effect Effects 0.000 claims description 3
- 210000004027 cell Anatomy 0.000 description 162
- 238000004891 communication Methods 0.000 description 23
- 239000003990 capacitor Substances 0.000 description 17
- 230000002093 peripheral effect Effects 0.000 description 15
- 238000003491 array Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 12
- 239000000758 substrate Substances 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000002441 reversible effect Effects 0.000 description 7
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000002950 deficient Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 239000013078 crystal Substances 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 210000000352 storage cell Anatomy 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000003989 dielectric material Substances 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 239000006249 magnetic particle Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- ZOXJGFHDIHLPTG-UHFFFAOYSA-N Boron Chemical compound [B] ZOXJGFHDIHLPTG-UHFFFAOYSA-N 0.000 description 1
- 229910002601 GaN Inorganic materials 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- JMASRVWKEDWRBT-UHFFFAOYSA-N Gallium nitride Chemical compound [Ga]#N JMASRVWKEDWRBT-UHFFFAOYSA-N 0.000 description 1
- 108700038250 PAM2-CSK4 Proteins 0.000 description 1
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 1
- 101100206155 Schizosaccharomyces pombe (strain 972 / ATCC 24843) tbp1 gene Proteins 0.000 description 1
- 229910000577 Silicon-germanium Inorganic materials 0.000 description 1
- LEVVHYCKPQWKOP-UHFFFAOYSA-N [Si].[Ge] Chemical compound [Si].[Ge] LEVVHYCKPQWKOP-UHFFFAOYSA-N 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 229910052785 arsenic Inorganic materials 0.000 description 1
- RQNWIZPPADIBDY-UHFFFAOYSA-N arsenic atom Chemical compound [As] RQNWIZPPADIBDY-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 229910052796 boron Inorganic materials 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000013626 chemical specie Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000005468 ion implantation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 229910052698 phosphorus Inorganic materials 0.000 description 1
- 239000011574 phosphorus Substances 0.000 description 1
- 208000003580 polydactyly Diseases 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 229910052594 sapphire Inorganic materials 0.000 description 1
- 239000010980 sapphire Substances 0.000 description 1
- 210000001082 somatic cell Anatomy 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/7211—Wear leveling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Semiconductor Memories (AREA)
Abstract
本發明描述用於記憶體之位址混淆之方法、系統及裝置。一映射函數可將資料之一邏輯位址映射至一記憶體胞元之一實體位址。該映射函數可使用包含映射子組件之一映射組件實施。各映射子組件可獨立地組態以實施用於判定該實體位址之一位元之一邏輯函數。該映射函數可跨記憶體裝置或記憶體裝置之態樣變動,或在一些情況中,可隨時間變動。
Description
技術領域係關於記憶體之位址混淆。
下文大體上係關於記憶體裝置且更具體言之,係關於記憶體之位址混淆。
記憶體裝置廣泛用於將資訊儲存於各種電子裝置(諸如電腦、無線通信裝置、相機、數位顯示器及類似者)中。藉由程式化一記憶體裝置之不同狀態而儲存資訊。例如,二進制裝置最通常儲存兩個狀態之一者,該兩個狀態通常由一邏輯1或一邏輯0表示。在其他裝置中,可儲存兩個以上狀態。為了存取經儲存資訊,裝置之一組件可讀取或感測記憶體裝置中之至少一個經儲存狀態。為了儲存資訊,裝置之一組件可在記憶體裝置中寫入或程式化狀態。
存在多個類型之記憶體裝置,包含磁性硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態RAM (DRAM)、同步動態RAM (SDRAM)、鐵電RAM (FeRAM)、磁性RAM (MRAM)、電阻性RAM (RRAM)、快閃記憶體、相變記憶體(PCM)等。記憶體裝置可係揮發性或非揮發性的。非揮發性記憶體(例如,FeRAM)即使在不存在一外部電源之情況下仍可維持其等經儲存邏輯狀態達延長時間段。揮發性記憶體裝置(例如,DRAM)可隨時間丟失其等經儲存狀態,除非其等藉由一外部電源週期性地再新。
改良記憶體裝置通常可包含增加記憶體胞元密度、增加讀取/寫入速度、增加可靠性、增加資料保持、降低電力消耗、降低製造成本或增加記憶體裝置之壽命及其他度量。此外,歸因於記憶體裝置磨損,一些記憶體裝置具有有限耐久性或一經減少壽命。記憶體裝置之磨損可由任何數目個問題引起,包含正常使用或一不良行動者之有意誤用。記憶體裝置磨損可影響記憶體裝置之製造之品質感知或可影響記憶體裝置之預期壽命。
本專利申請案主張2018年11月15日申請之Morgan等人之標題為「ADDRESS OBFUSCATION FOR MEMORY」之美國專利申請案第16/192,068號之優先權,該案讓與其受讓人且以全文引用的方式明確併入本文中。
可以數個方式達成改良一記憶體裝置之壽命。達成一記憶體裝置之經改良壽命或耐久性之一個方式係透過損耗均衡,其可在記憶體裝置之記憶體胞元之間提供實質上均勻損耗。損耗均衡可包含(例如)將資料自一記憶體陣列內(或跨若干記憶體陣列)之一個實體位置傳送至另一實體位置,此可防止一記憶體陣列之一個記憶體胞元比另一記憶體胞元寫入或讀取更多(例如,顯著更多)。相較於不經常被存取之一記憶體胞元,過度存取可減少一經過度使用記憶體胞元之壽命,且因此,損耗均衡可保護記憶體裝置免於可引起記憶體胞元過早失效之個別記憶體胞元之過度使用。
記憶體裝置壽命可不僅受正常使用影響,而且可由惡意使用(例如,透過列錘或其他惡意攻擊)損及。若一不良行動者管理員推導(逆向工程)損耗均衡函數在一記憶體陣列內傳送資料之型樣,則不良行動者可能夠規避損耗均衡函數且引發磨損。在一些實施例中,記憶體磨損可導致故障或儲存機制或不良行動者對敏感資料之未經授權存取或對受保護程序或函數之未經授權控制。在一些實例中,一實體記憶體胞元可失效(變為偵測性),此可容許不良行動者遵循邏輯資料相對於失效胞元之移動進展且藉此對損耗均衡函數之移動型樣進行逆向工程。在一些情況中,一旦已在一個記憶體裝置中對一損耗均衡函數進行逆向工程,採用相同損耗均衡函數之全部記憶體裝置便可經受不良行動者之濫用。
如本文中論述,記憶體之位址混淆可包含以一不可預測方式將資料之邏輯位址映射至一或多個記憶體陣列內之實體位址,此可跨記憶體陣列或針對相同記憶體陣列隨時間變動。例如,用於將資料之邏輯位址映射至儲存資料之記憶體胞元之實體位址之映射函數可在每一裝置、每一晶粒、每一陣列或其他基礎上選擇或自訂。在一些情況中,在最初已根據如本文中描述之位址混淆技術判定之後,資料之實體位址可根據一損耗均衡函數隨時間改變(即,資料可自一個記憶體胞元移動至另一記憶體胞元)。位址混淆技術及其等隨時間或跨記憶體實體之可變性可增加不良行動者對損耗均衡函數進行逆向工程之困難。
此外,即使一不良行動者確實設法對損耗均衡函數進行逆向工程,如由不良行動者獲得之此資訊仍可在一隨後時間對於其他裝置、晶粒、陣列等或對於經逆向工程裝置、晶粒、陣列等不可用,此係因為操作映射函數(及因此,資料之邏輯位址與儲存資料之記憶體胞元之實體位址之間之關係)可隨時間(例如,在諸如一啟動或重新啟動事件之一觸發事件之後,或在一經排程基礎上)調整或跨裝置、晶粒、陣列等(例如,基於包含於此等實體中之隨機數產生器、此等實體之獨有識別符等)變動。映射函數可在每邏輯位址位元基礎上基於一組可選擇每位元邏輯運算組態及變動,使得可支援極大數目個可能映射函數(例如,針對具有N個位元之邏輯位址,其中可針對各位元選擇M個邏輯運算之任一者,可支援MN
個可能映射函數)。
提供用於實施將資料之邏輯位址映射至儲存資料之一記憶體陣列內之記憶體胞元之實體位址之一可組態(例如,可選擇)及可變動(例如,在操作或請求製造中或製造後技術期間動態地)映射函數之系統及技術。可在記憶體裝置處或自一主機接收一存取命令,且存取命令可包含儲存於記憶體陣列中之資料之邏輯位址且可基於邏輯位址及映射函數判定一實體位址,且可存取經儲存資料。可針對邏輯位址之各個別位元選擇一邏輯運算且共同地,此等邏輯運算可實施一映射函數,其中記憶體胞元之實體位址之一位元可由(例如,基於)映射函數判定。映射函數(例如,構成邏輯運算)可以數個方式在數個基礎上進行組態(選取、選擇),如本文中進一步詳細論述,且在一些情況中,可隨時間或跨裝置動態地或以其他方式而變動。
最初在一記憶體系統之背景內容中描述本發明之特徵。在經組態以在一記憶體胞元層級以及相關位址混淆及損耗均衡表處將邏輯位址映射至實體位址之一記憶體系統之背景內容中描述本發明之特徵。藉由與記憶體之位址混淆相關之設備圖、系統圖及流程圖進一步繪示且參考該等設備圖、系統圖及流程圖描述本發明之此等及其他特徵。
圖 1
繪示根據本文中揭示之態樣之利用一或多個記憶體裝置之一系統100之一實例。系統100可包含一外部記憶體控制器105、一記憶體裝置110及將外部記憶體控制器105與記憶體裝置110耦合之複數個通道115。系統100可包含一或多個記憶體裝置,但為了易於描述,可將一或多個記憶體裝置描述為一單一記憶體裝置110。
系統100可包含一電子裝置之態樣,諸如一運算裝置、一行動運算裝置、一無線裝置或一圖形處理裝置。系統100可係一攜帶型電子裝置之一實例。裝置100可係一電腦、一膝上型電腦、一平板電腦、一智慧型電話、一蜂巢式電話、一穿戴式裝置、一網際網路連接裝置或類似者之一實例。記憶體裝置110可係經組態以儲存系統100之一或多個其他組件之資料之系統之組件。在一些實例中,系統100經組態用於使用一基地台或存取點與其他系統或裝置進行雙向無線通信。在一些實例中,系統100能夠進行機器類型通信(MTC)、機器對機器(M2M)通信或裝置對裝置(D2D)通信。
系統100之至少部分可係一主機裝置之實例。此一主機裝置可係使用記憶體以執行程序之一裝置之一實例,諸如一運算裝置、一行動運算裝置、一無線裝置、一圖形處理裝置、一電腦、一膝上型電腦、一平板電腦、一智慧型電話、一蜂巢式電話、一穿戴式裝置、一網際網路連接裝置、某一其他固定或攜帶型電子裝置或類似者。在一些情況中,主機裝置可係指實施外部記憶體控制器105之功能之硬體、韌體、軟體或其等之一組合。在一些情況中,外部記憶體控制器105可被稱為一主機或主機裝置。在一些實例中,系統100係一圖形卡。在一些實例中,一主機可發出可包含儲存於一記憶體陣列中之資料之一邏輯位址之一存取命令。邏輯位址可映射至記憶體陣列內之一實體位址且實體位址可至少部分藉由邏輯位址及一選定映射函數判定。
在一些情況中,一記憶體裝置110可係與系統100之其他組件通信且提供實體記憶體位址/空間以潛在地由系統100使用或參考之一獨立裝置或組件。在一些實例中,一記憶體裝置110可經組態以與至少一個或複數個不同類型之系統100一起工作。系統100之組件與記憶體裝置110之間之傳訊可係可操作以支援調變方案以調變信號、用於傳達信號之不同接腳設計、系統100與記憶體裝置110之相異封裝、系統100與記憶體裝置110之間之時脈傳訊及同步、時序慣例及/或其他因素。
記憶體裝置110可經組態以儲存系統100之組件之資料。在一些情況中,記憶體裝置110可(例如,回應於並執行由系統100透過外部記憶體控制器105提供之命令)用作系統100之一從屬型裝置。此等命令可包含用於一存取操作之一存取命令,諸如用於一寫入操作之一寫入命令、用於一讀取操作之一讀取命令、用於一再新操作之一再新命令或其他命令。記憶體裝置110可包含支援用於資料儲存之一所要或指定容量之兩個或兩個以上記憶體晶粒160 (例如,記憶體晶片)。包含兩個或兩個以上記憶體晶粒之記憶體裝置110可被稱為一多晶粒記憶體或封裝(亦稱為多晶片記憶體或封裝)。在一些情況中,不同記憶體裝置110或甚至不同晶粒160或一晶粒160內之不同記憶體陣列170可使用不同映射函數將邏輯位址映射至實體位址。
系統100可進一步包含一處理器120、一基本輸入/輸出系統(BIOS)組件125、一或多個周邊組件130及一輸入/輸出(I/O)控制器135。系統100之組件可使用一匯流排140彼此電子通信。
處理器120可經組態以控制系統100之至少部分。處理器120可係一通用處理器、一數位信號處理器(DSP)、一特定應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或其可係此等類型之組件之一組合。在此等情況中,處理器120可係一中央處理單元(CPU)、一圖形處理單元(GPU)、一通用GPU (GPGPU)或一系統單晶片(SoC)等之一實例。
BIOS組件125可係包含經操作為韌體之一BIOS之一軟體組件,其可初始化且運行系統100之各種硬體組件。BIOS組件125亦可管理處理器120與系統100之各種組件(例如,周邊組件130、I/O控制器135等)之間之資料流。BIOS組件125可包含儲存於唯讀記憶體(ROM)、快閃記憶體或任何其他非揮發性記憶體中之一程式或軟體。
(若干)周邊組件130可係可整合至系統100中或與系統100整合之任何輸入裝置或輸出裝置,或用於此等裝置之一介面。實例可包含磁碟控制器、聲音控制器、圖形控制器、乙太網路控制器、數據機、通用串列匯流排(USB)控制器、一串列或並列埠或周邊卡槽(諸如周邊組件互連件(PCI)或加速圖形埠(AGP)槽)。(若干)周邊組件130可係由熟習此項技術者理解為周邊設備之其他組件。
I/O控制器135可管理處理器120與(若干)周邊組件130、輸入裝置145或輸出裝置150之間之資料通信。I/O控制器135可管理未整合至系統100中或與系統100整合之周邊設備。在一些情況中,I/O控制器135可表示至外部周邊組件之一實體連接或埠。
輸入145可表示將資訊、信號或資料提供至系統100或其組件之系統100外部之一裝置或信號。此可包含一使用者介面或與其他裝置或其他裝置之間之介面。在一些情況中,輸入145可係經由一或多個周邊組件130與系統100介接之一周邊設備或可由I/O控制器135管理。
輸出150可表示經組態以自系統100或任何其組件接收一輸出之系統100外部之一裝置或信號。輸出150之實例可包含一顯示器、音響揚聲器、一列印裝置或印刷電路板上之另一處理器等。在一些情況中,輸出150可係經由一或多個周邊組件130與系統100介接之一周邊設備或可由I/O控制器135管理。
系統100之組件可由經設計以實行其等功能之通用或專用電路構成。此可包含各種電路元件,(例如)導電線、電晶體、電容器、電感器、電阻器、放大器或經組態以實行本文中描述之功能之其他主動或被動元件。系統100可另外包含一選擇組件及一映射組件,如本文中論述。
記憶體裝置110可包含一裝置記憶體控制器155及一或多個記憶體晶粒160。各記憶體晶粒160可包含一本端記憶體控制器165 (例如,本端記憶體控制器165-a、本端記憶體控制器165-b及/或本端記憶體控制器165-N
)及一記憶體陣列170 (例如,記憶體陣列170-a、記憶體陣列170-b及/或記憶體陣列170-N
)。一記憶體陣列170可係記憶體胞元之一集合(例如,一柵格),其中各記憶體胞元經組態以儲存數位資料之至少一個位元。參考圖2更詳細描述記憶體陣列170及/或記憶體胞元之特徵。各記憶體陣列可包含各可具有一對應實體位址之記憶體胞元。記憶體胞元可儲存資料且可為了損耗均衡目的在記憶體胞元當中週期性地傳送資料。當在記憶體陣列之記憶體胞元之間移動資料時,資料之邏輯位址可保持靜態(固定)以支援藉由記憶體裝置110 (例如,藉由其中之一或多個控制器)或藉由外部記憶體控制器105追蹤資料之位置。
記憶體裝置110可係記憶體胞元之一二維(2D)陣列之一實例或可係記憶體胞元之一三維(3D)陣列之一實例。例如,一2D記憶體裝置可包含一單一記憶體晶粒160。一3D記憶體裝置可包含兩個或兩個以上記憶體晶粒160 (例如,記憶體晶粒160-a、記憶體晶粒160-b及/或任何數目個記憶體晶粒160-N
)。在一3D記憶體裝置中,複數個記憶體晶粒160-N
可堆疊於彼此之頂部上。在一些情況中,一3D記憶體裝置中之記憶體晶粒160-N
可被稱為層疊、層級、層或晶粒。一3D記憶體裝置可包含任何數量之堆疊記憶體晶粒160-N
(例如,2高、3高、4高、5高、6高、7高、8高)。相較於一單一2D記憶體裝置,此可增加可定位於一基板上之記憶體胞元之數目,此繼而可降低生產成本或增加記憶體陣列之效能或兩者。在某一3D記憶體裝置中,不同層疊可共用至少一個共同存取線,使得一些層疊可共用一字線、一數位線及/或一板極線之至少一者。
裝置記憶體控制器155可包含經組態以控制記憶體裝置110之操作之電路或組件。因而,裝置記憶體控制器155可包含使記憶體裝置110能夠執行命令之硬體、韌體及軟體且可經組態以接收、傳輸或執行與記憶體裝置110相關之命令、資料或控制資訊。裝置記憶體控制器155可經組態以與外部記憶體控制器105、一或多個記憶體晶粒160或處理器120通信。在一些情況中,記憶體裝置110可自外部記憶體控制器105接收資料及/或命令。例如,記憶體裝置110可接收指示記憶體裝置110欲代表系統100之一組件(例如,處理器120)儲存特定資料之一寫入命令或指示記憶體裝置110欲將儲存於一記憶體晶粒160中之特定資料提供至系統100之一組件(例如,處理器120)之一讀取命令。在一些情況中,裝置記憶體控制器155可結合記憶體晶粒160之本端記憶體控制器165控制本文中描述之記憶體裝置110之操作。包含於裝置記憶體控制器155及/或本端記憶體控制器165中之組件之實例可包含用於解調變自外部記憶體控制器105接收之信號之接收器、用於調變信號並將其傳輸至外部記憶體控制器105之解碼器、邏輯、解碼器、放大器、濾波器或類似者。
本端記憶體控制器165 (例如,一記憶體晶粒160本端)可經組態以控制記憶體晶粒160之操作。又,本端記憶體控制器165可經組態以與裝置記憶體控制器155通信(例如,接收及傳輸資料及/或命令)。本端記憶體控制器165可支援裝置記憶體控制器155以控制如本文中描述之記憶體裝置110之操作。在一些情況中,記憶體裝置110不包含裝置記憶體控制器155,且本端記憶體控制器165或外部記憶體控制器105可執行本文中描述之各種功能。因而,本端記憶體控制器165可經組態以與裝置記憶體控制器155、與其他本端記憶體控制器165或直接與外部記憶體控制器105或處理器120通信。在一些實例中,一或多個記憶體控制器(例如,裝置記憶體控制器155或本端記憶體控制器165之一或多者)可包含一選擇組件。選擇組件可針對一實體位址之各位元(或在一些情況中,針對實體位址之各位元)選擇用於基於一邏輯位址之一或多個位元判定實體位址之位元之一對應邏輯運算。邏輯運算可包括一直通(非反相、透明)運算、一反相運算、一互斥或(XOR)運算、一互斥非或(XNOR)運算、一位址交換運算或如熟習此項技術者可瞭解之另一適合邏輯運算。因此,邏輯位址可映射至(由一映射函數映射至)可儲存經請求資料之一實體位址。
外部記憶體控制器105可經組態以實現資訊、資料及/或命令在系統100之組件(例如,處理器120)與記憶體裝置110之間之通信。外部記憶體控制器105可用作系統100之組件與記憶體裝置110之間之一聯絡,使得系統100之組件無需知道記憶體裝置之操作之細節。系統100之組件可將外部記憶體控制器105滿足之請求(例如,讀取命令或寫入命令)呈現至外部記憶體控制器105。外部記憶體控制器105可轉換或轉譯在系統100之組件與記憶體裝置110之間交換之通信。在一些情況中,外部記憶體控制器105可包含產生一共同(源)系統時脈信號之一系統時脈。在一些情況中,外部記憶體控制器105可包含產生一共同(源)資料時脈信號之一共同資料時脈。
在一些情況中,外部記憶體控制器105或系統100之其他組件或本文中描述之其功能可由處理器120實施。例如,外部記憶體控制器105可係由處理器120或系統100之其他組件實施之硬體、韌體或軟體或其等之某一組合。雖然將外部記憶體控制器105描繪為在記憶體裝置110外部,但在一些情況中,外部記憶體控制器105或本文中描述之其功能可由一記憶體裝置110實施。例如,外部記憶體控制器105可係由裝置記憶體控制器155或一或多個本端記憶體控制器165實施之硬體、韌體或軟體或其等之某一組合。在一些情況中,外部記憶體控制器105可跨處理器120及記憶體裝置110分佈,使得外部記憶體控制器105之部分由處理器120實施且其他部分由一裝置記憶體控制器155或一本端記憶體控制器165實施。同樣地,在一些情況中,本文中賦予裝置記憶體控制器155或本端記憶體控制器165之一或多個功能可在一些情況中由外部記憶體控制器105 (與處理器120分離或包含於處理器120中)執行。
系統100之組件可使用複數個通道115與記憶體裝置110交換資訊。在一些實例中,通道115可實現外部記憶體控制器105與記憶體裝置110之間之通信。各通道115可包含在與系統100之組件相關聯之終端之間之一或多個信號路徑或傳輸媒體(例如,導體)。例如,一通道115可包含一第一終端,該第一終端包含在外部記憶體控制器105處之一或多個接腳或墊,及在記憶體裝置110處之一或多個接腳或墊。一接腳可係系統100之一裝置之一導電輸入或輸出點之一實例,且一接腳可經組態以用作一通道之部分。
在一些情況中,一終端之一接腳或墊可係通道115之一信號路徑之部分。額外信號路徑可與系統100之一組件內用於路由信號之一通道之一終端耦合。例如,記憶體裝置110可包含將一信號自一通道115之一終端路由至記憶體裝置110之各種組件(例如,一裝置記憶體控制器155、記憶體晶粒160、本端記憶體控制器165、記憶體陣列170)之信號路徑(例如,記憶體裝置110或其組件內部(諸如一記憶體晶粒160內部)之信號路徑)。
通道115 (及相關聯信號路徑及終端)可專屬於傳達特定類型之資訊。在一些情況中,一通道115可係一聚合通道且因此可包含多個個別通道。例如,一資料通道190可係x4 (例如,包含四個信號路徑)、x8 (例如,包含八個信號路徑)、x16 (包含十六個信號路徑)等。
在一些情況中,通道115可包含一或多個命令及位址(CA)通道186。CA通道186可經組態以在外部記憶體控制器105與記憶體裝置110之間傳達命令(包含與命令相關聯之控制資訊(例如,位址資訊))。例如,CA通道186可包含具有所要資料之一位址之一讀取命令。在一些情況中,CA通道186可在一上升時脈信號邊緣及/或一下降時脈信號邊緣上註冊。在一些情況中,一CA通道186可包含八個或九個信號路徑。在一些情況中,待存取(寫入至記憶體裝置110或自記憶體裝置110讀取)之資料之一邏輯位址(邏輯位址位元)可由記憶體裝置經由一或多個CA通道186接收。
在一些情況中,通道115可包含一或多個時脈信號(CK)通道188。CK通道188可經組態以在外部記憶體控制器105與記憶體裝置110之間傳達一或多個共同時脈信號。各時脈信號可經組態以在一高狀態與一低狀態之間振盪且協調外部記憶體控制器105及記憶體裝置110之動作。在一些情況中,時脈信號可係一差動輸出(例如,一CK_t信號及一CK_c信號)且可相應地組態CK通道188之信號路徑。在一些情況中,時脈信號可係單端的。在一些情況中,時脈信號可係一1.5 GHz信號。一CK通道188可包含任何數目個信號路徑。在一些情況中,時脈信號CK (例如,一CK_t信號及一Ck_c信號)可提供記憶體裝置110之命令及定址操作或記憶體裝置110之其他系統範圍操作之一時序參考。因此,時脈信號CK可被不同地稱為一控制時脈信號CK、一命令時脈信號CK或一系統時脈信號CK。系統時脈信號CK可由可包含一或多個硬體組件(例如,振盪器、晶體、邏輯閘、電晶體或類似者)之一系統時脈產生。
在一些情況中,通道115可包含一或多個資料(DQ)通道190。資料通道190可經組態以在外部記憶體控制器105與記憶體裝置110之間傳達資料及/或控制資訊。例如,資料通道190可傳達待寫入至記憶體裝置110之資訊(例如,雙向的)或自記憶體裝置110讀取之資訊。資料通道190可傳達可使用各種不同調變方案(例如,NRZ、PAM4)調變之信號。
在一些情況中,通道115可包含可專屬於其他目的之一或多個其他通道192。此等其他通道192可包含任何數目個信號路徑。
通道115可使用各種不同架構將外部記憶體控制器105與記憶體裝置110耦合。各種架構之實例可包含一匯流排、一點對點連接、一交叉桿、一高密度中介層(諸如矽中介層)或形成於一有機基板中之通道或其等之某一組合。例如,在一些情況中,信號路徑可至少部分包含一高密度中介層,諸如矽中介層或一玻璃中介層。
經由通道115傳達之信號可使用各種不同調變方案調變。在一些情況中,一二進制符號(或二進制位準)調變方案可用於調變在外部記憶體控制器105與記憶體裝置110之間傳達之信號。一二進制符號調變方案可係其中M等於2之一M進制調變方案之一實例。一二進制符號調變方案之各符號可經組態以表示數位資料之一個位元(例如,一符號可表示一邏輯1或一邏輯0)。二進制符號調變方案之實例包含(但不限於)不歸零(NRZ)、單極編碼、雙極編碼、曼徹斯特(Manchester)編碼、具有兩個符號之脈衝振幅調變(PAM) (例如,PAM2)等。
在一些情況中,一多符號(或多位準)調變方案可用於調變在外部記憶體控制器105與記憶體裝置110之間傳達之信號。一多符號調變方案可係其中M大於或等於3之一M進制調變方案之一實例。一多符號調變方案之各符號可經組態以表示數位資料之一個以上位元(例如,一符號可表示一邏輯00、一邏輯01、一邏輯10或一邏輯11)。多符號調變方案之實例包含(但不限於) PAM4、PAM8等、正交振幅調變(QAM)、正交相移鍵控(QPSK)等。一多符號信號或一PAM4信號可係使用包含至少三個位準以編碼資訊之一個以上位元之一調變方案調變之一信號。多符號調變方案及符號可替代地被稱為非二進制、多位元或較高階調變方案及符號。
在一些情況中,一記憶體裝置110可實施位址混淆以依一不可預測方式在用於識別資料之邏輯位址與用於儲存資料之實體位址之間映射,該位址混淆可結合損耗均衡技術操作且可防止一不良行動者將經逆向工程資料移動型樣應用至不同記憶體裝置,甚至採用相同損耗均衡函數之記憶體裝置。例如,記憶體裝置110可包含至少一個選擇組件及映射組件(例如,在一些情況中,可包含對應於多個晶粒160或陣列170之多個選擇組件及/或多個映射組件)。選擇組件可與一介面耦合且可選擇一映射函數。映射函數可將資料之一邏輯位址映射至用於將資料儲存於一記憶體陣列內之一或多個記憶體胞元之一實體位址。例如,選擇組件可針對實體位址之各位元選擇用於基於邏輯位址之一或多個位元判定實體位址之位元之一對應邏輯運算。邏輯位址之個別位元之各者可透過一或多個映射子組件路由以判定實體位址。可以任何數目個方式(包含,例如,基於由一數字產生器(例如,隨機數產生器)產生之一數字(例如,隨機數))選擇映射函數(例如,由映射子組件實施之邏輯運算)。在一些情況中,可基於與記憶體裝置110相關聯之一或多個識別符(例如,晶粒160或陣列170或記憶體裝置之其他態樣之識別符) (例如,在製造期間或製造後)選擇或組態一映射函數。
圖 2
繪示根據本發明之各種實例之一記憶體晶粒200之一實例。記憶體晶粒200可係參考圖1描述之記憶體晶粒160之一實例。在一些情況中,記憶體晶粒200可被稱為一記憶體晶片、一記憶體裝置或一電子記憶體設備。記憶體晶粒200可包含可程式化以儲存不同邏輯狀態之一或多個記憶體胞元205。各記憶體胞元205可係可程式化以儲存兩個或兩個以上狀態。例如,記憶體胞元205可經組態以一次儲存數位邏輯之一個位元(例如,一邏輯0及一邏輯1)。在一些情況中,一單一記憶體胞元205 (例如,一多位階記憶體胞元)可經組態以一次儲存數位邏輯之一個以上位元(例如,一邏輯00、邏輯01、邏輯10或一邏輯11)。在一些情況中,資料可儲存於一記憶體胞元中且資料可具有與其相關聯之一邏輯位址。邏輯位址可針對資料固定(靜態)且可經映射至其中儲存資料之記憶體胞元之一實體位址。在一些情況中,在最初已根據如本文中描述之位址混淆技術判定之後,資料之實體位址可根據一損耗均衡函數而隨時間改變(即,資料可自一個記憶體胞元移動至另一記憶體胞元)。可藉由如本文中描述之一映射函數提供邏輯位址與記憶體胞元之實體位址之間之映射。
一記憶體胞元205可儲存代表一電容器中之可程式化狀態之一電荷。DRAM架構可包含一電容器,該電容器包含一介電材料以儲存代表可程式化狀態之一電荷。在其他記憶體架構中,其他儲存裝置及組件係可行的。例如,可採用非線性介電材料。
可藉由啟動或選擇存取線(諸如一字線210及/或一數位線215)而對記憶體胞元205執行諸如讀取及寫入之操作。在一些情況中,數位線215亦可被稱為位元線。在不失理解或操作之情況下,對存取線、字線及數位線或其他類似物之引用係可互換的。啟動或選擇一字線210或一數位線215可包含將一電壓施加至各自線。
記憶體晶粒200可包含以一柵格狀圖案配置之存取線(例如,字線210及數位線215)。記憶體胞元205可定位於字線210及數位線215之相交點處。藉由加偏壓於一字線210及一數位線215 (例如,將一電壓施加至字線210或數位線215),可存取在其等相交點處之一單一記憶體胞元205。
可透過一列解碼器220或一行解碼器225控制存取記憶體胞元205。例如,一列解碼器220可自本端記憶體控制器260接收一列位址且基於經接收列位址而啟動一字線210。一行解碼器225可自本端記憶體控制器260接收一行位址且可基於經接收行位址啟動一數位線215。例如,記憶體晶粒200可包含標記為WL_1至WL_M之多個字線210及標記為DL_1至DL_N之多個數位線215,其中M及N取決於記憶體陣列之大小。因此,藉由啟動一字線210及一數位線215 (例如,WL_1及DL_3),可存取在其等相交點處之記憶體胞元205。在一二維或三維組態中,一字線210及一數位線215之相交點可被稱為一記憶體胞元205之一位址,且可藉由包括一實體位址之一組位元(其等可被稱為實體位址位元)識別。
記憶體胞元205可包含一邏輯儲存組件(諸如電容器230)及一切換組件235。電容器230可係一介電電容器或一鐵電電容器之一實例。電容器230之一第一節點可與切換組件235耦合且電容器230之一第二節點可與一電壓源240耦合。在一些情況中,電壓源240可係胞元板極參考電壓(諸如Val)或可為接地(諸如Vss)。在一些情況中,電壓源240可係與一板極線驅動器耦合之一板極線之一實例。切換組件235可係一電晶體或選擇性地建立或取消建立兩個組件之間之電子通信之任何其他類型之切換裝置之一實例。
選擇或取消選擇記憶體胞元205可藉由啟動或撤銷啟動切換組件235而完成。電容器230可使用切換組件235與數位線215電子通信。例如,當撤銷啟動切換組件235時,電容器230可與數位線215隔離,且當啟動切換組件235時,電容器230可與數位線215耦合。在一些情況中,切換組件235係一電晶體且可藉由將一電壓施加至電晶體閘極而控制其操作,其中電晶體閘極與電晶體源極之間之電壓差可大於或小於電晶體之一臨限電壓。在一些情況中,切換組件235可係一p型電晶體或一n型電晶體。字線210可與切換組件235之閘極電子通信且可基於經施加至字線210之一電壓啟動/撤銷啟動切換組件235。
一字線210可係與一記憶體胞元205電子通信之用於對記憶體胞元205執行存取操作之一導電線。在一些架構中,字線210可與一記憶體胞元205之一切換組件235之一閘極電子通信且可經組態以控制記憶體胞元之切換組件235。在一些架構中,字線210可與記憶體胞元205之電容器之一節點電子通信且記憶體胞元205可不包含一切換組件。
一數位線215可係將記憶體胞元205與一感測組件245連接之一導電線。在一些架構中,記憶體胞元205可在一存取操作之部分期間與數位線215選擇性地耦合。例如,字線210及記憶體胞元205之切換組件235可經組態以將記憶體胞元205之電容器230與數位線215耦合及/或隔離。在一些架構中,記憶體胞元205可與數位線215電子通信(例如,恆定)。
本端記憶體控制器260可透過各種組件(例如,列解碼器220、行解碼器225及感測組件245)控制記憶體胞元205之操作。本端記憶體控制器260可係參考圖1描述之本端記憶體控制器165之一實例。在一些情況中,列解碼器220、行解碼器225及感測組件245之一或多者可與本端記憶體控制器260共置。本端記憶體控制器260可經組態以自一外部記憶體控制器105 (或參考圖1描述之一裝置記憶體控制器155)接收命令及/或資料,將命令及/或資料轉譯成可由記憶體晶粒200使用之資訊,對記憶體晶粒200執行一或多個操作且回應於執行一或多個操作而將資料自記憶體晶粒200傳達至外部記憶體控制器105 (或裝置記憶體控制器155)。本端記憶體控制器260可產生列位址信號及行位址信號以啟動目標字線210及目標數位線215。在一些情況中,本端記憶體控制器260可經由一介面自一映射組件接收包含實體位址位元之實體位址。可在本文中詳細論述映射組件。在一些情況中,本端記憶體控制器260可自裝置記憶體控制器接收實體位址。裝置記憶體控制可經由一介面且自映射組件接收實體位址。
本端記憶體控制器260亦可產生並控制在記憶體晶粒200之操作期間使用之各種電壓或電流。一般言之,本文中論述之一經施加電壓或電流之振幅、形狀或持續時間可經調整或變動且針對在操作記憶體晶粒200中論述之各種操作可係不同的。
在一些情況中,本端記憶體控制器260可經組態以對記憶體晶粒200之一或多個記憶體胞元205執行一寫入操作(例如,一程式化操作)。在一寫入操作期間,記憶體晶粒200之一記憶體胞元205可經程式化以儲存一所要邏輯狀態。在一些情況中,可在一單一寫入操作期間程式化複數個記憶體胞元205。本端記憶體控制器260可識別對其執行寫入操作之一目標記憶體胞元205。本端記憶體控制器260可識別與目標記憶體胞元205 (例如,目標記憶體胞元205之位址)電子通信之一目標字線210及一目標數位線215。本端記憶體控制器260可啟動目標字線210及目標數位線215 (例如,將一電壓施加至字線210或數位線215)以存取目標記憶體胞元205。本端記憶體控制器260可在寫入操作期間將一特定信號(例如,電壓)施加至數位線215以將一特定狀態(例如,電荷)儲存於記憶體胞元205之電容器230中,特定狀態(例如,電荷)可指示一所要邏輯狀態。
在一些情況中,本端記憶體控制器260可經組態以對記憶體晶粒200之一或多個記憶體胞元205執行一讀取操作(例如,一感測操作)。在一讀取操作期間,可判定儲存於記憶體晶粒200之一記憶體胞元205中之邏輯狀態。在一些情況中,可在一單一讀取操作期間感測複數個記憶體胞元205。本端記憶體控制器260可識別對其執行讀取操作之一目標記憶體胞元205。本端記憶體控制器260可識別與目標記憶體胞元205 (例如,目標記憶體胞元205之位址)電子通信之一目標字線210及一目標數位線215。本端記憶體控制器260可啟動目標字線210及目標數位線215 (例如,將一電壓施加至字線210或數位線215)以存取目標記憶體胞元205。目標記憶體胞元205可回應於加偏壓於存取線而將一信號傳送至感測組件245。感測組件245可放大信號。本端記憶體控制器260可觸發感測組件245 (例如,鎖存感測組件)且藉此,比較自記憶體胞元205接收之信號與參考信號250。基於比較,感測組件245可判定儲存於記憶體胞元205上之一邏輯狀態。本端記憶體控制器260可將儲存於記憶體胞元205上之邏輯狀態傳達至外部記憶體控制器105 (或裝置記憶體控制器155)作為讀取操作之部分。
在一些記憶體架構中,存取記憶體胞元205可使儲存於一記憶體胞元205中之邏輯狀態降級或損毀。例如,在DRAM架構中執行之一讀取操作可使目標記憶體胞元之電容器部分或完全放電。本端記憶體控制器260可執行一重寫操作或一再新操作以使記憶體胞元返回至其原始邏輯狀態。本端記憶體控制器260可在一讀取操作之後將邏輯狀態重寫至目標記憶體胞元。在一些情況中,可將重寫操作視為讀取操作之部分。另外,啟動一單一存取線(諸如一字線210)可干擾儲存於與該存取線電子通信之一些記憶體胞元中之狀態。因此,可對可尚未被存取之一或多個記憶體胞元執行一重寫操作或再新操作。
圖 3
繪示用於記憶體之位址混淆之一系統300之一實例。在一些實例中,系統300可包含上文描述之一或多個組件。例如,系統300可包含:一記憶體裝置310,其可係如參考圖1描述之一記憶體裝置110之一實例;記憶體晶粒360,其等可各係如參考圖1描述之一記憶體晶粒160之一實例;記憶體陣列365,其等可各係如參考圖1描述之一記憶體陣列170之一實例。系統300可包含一選擇組件380、一映射組件390、一或多個映射子組件390及一介面395。在一些實例中,介面395可經組態以接收用於存取儲存於一記憶體陣列365之記憶體胞元中之資料之邏輯位址。在介面395處接收之邏輯位址可由一主機裝置(例如,一外部記憶體控制器105或處理器120)發出。介面395可與選擇組件380耦合。
在一些實例中,一記憶體裝置310可包含一或多個記憶體晶粒360,該一或多個記憶體晶粒360可包含一或多個記憶體陣列365。記憶體陣列365可包含可各儲存一或多個邏輯狀態(例如,一高狀態或一低狀態或其他非二進制狀態)之記憶體胞元。在一些實例中,高狀態可在本文中被稱為「一」且低狀態可在本文中被稱為「零」。記憶體陣列365之各記憶體胞元可具有一實體位址。記憶體胞元之實體位址可指示或反映記憶體晶粒上或一記憶體陣列365內記憶體胞元可所處之一實體位置,或另外可識別記憶體胞元。
圖3之系統300可包含可與一介面395及一映射組件390耦合之一選擇組件380。選擇組件380可經組態以自由映射組件390支援之一組映射函數選擇一映射函數。例如,選擇組件380可經組態以自一組經支援邏輯運算選擇用於各映射子組件390之一邏輯運算。在一些情況中,選擇組件380可彼此獨立地選擇用於一些或全部映射子組件390之邏輯運算。映射函數(例如,選定邏輯運算之集合)可將資料之一邏輯位址映射至將資料儲存於一記憶體陣列365內之記憶體胞元之實體位址。在一些情況中,一單一映射組件390可與多個記憶體晶粒360或多個記憶體陣列365互動(將一或多個映射函數提供給多個記憶體晶粒360或多個記憶體陣列365)。在一些情況中,一映射組件390可專用於一單一記憶體晶粒360或記憶體陣列365 (例如,包含於一單一記憶體晶粒360或記憶體陣列365中或以其他方式與一單一記憶體晶粒360或記憶體陣列365耦合)。在圖3之實例中,映射組件390可包含映射子組件390-a、390-b及390-c且映射組件390可與可經組態以接收邏輯位址之一介面耦合。
在一些情況中,選擇組件380可隨時間變動由一映射組件390實施之一映射函數。例如,選擇組件380可根據一排程(週期性或非週期性)、回應於一事件觸發(例如,一啟動或重新啟動事件、來自主機裝置之一命令、達到一臨限值之存取操作之一計數、一列錘事件或其他惡意攻擊之偵測等)而變動由一映射組件390實施之一映射函數。在一些情況中,選擇組件380可基於一輸入(諸如自記憶體裝置310之另一態樣(例如,一隨機數產生器)或自一主機裝置接收之數字(例如,隨機數))選擇一映射函數。
在一些情況中,選擇組件380可基於記憶體裝置310或其他實體(例如,一記憶體晶粒360或記憶體陣列365)之一獨有識別符選擇一映射函數。例如,選擇組件380可自一模式暫存器讀取一些或全部獨有識別符。在一些情況中,由一映射組件390實施之映射函數可在製造期間藉由設定修整參數或經由一熔絲加載程序而固定(經硬接線),且選擇組件380可經組態以儲存或讀取固定映射函數之一指示符且相應地組態映射組件390。
圖 4A 及圖 4B
繪示根據本發明之態樣之各支援記憶體之位址混淆之系統400及450之實例。在一些實例中,圖4A及圖4B可包含上文描述之一或多個組件。例如,圖4A及圖4B可包含如參考圖3描述之映射組件及映射子組件。
如先前論述,一映射函數可由一選擇組件選擇且可由映射組件實施。選定映射函數可包含對邏輯位址之各位元(邏輯位址位元)執行以判定一對應實體位址(對應實體位址位元)之一組選定邏輯運算或函數。經支援且可選擇邏輯運算可包含反相、非反相(直通)、或(OR)、XOR、XNOR、及(AND)、反及(NAND)等。映射函數可包含針對各邏輯位址位元之一邏輯運算。例如,在一三位元邏輯位址之情況中,映射函數可包含一組邏輯運算,使得位元零及位元一兩者將經反相,且位元二將不經反相。在此一實例中,若邏輯位址係110,則此映射函數可提供一實體位址000。在一些情況中,一或多個選定邏輯運算可係基於多個邏輯位址位元(例如,兩個邏輯位址位元之一XOR)或來自多個邏輯位址之位元(例如,來自與兩組資料相關聯之邏輯位址之一或多個位元之一交換,其可被稱為一位址交換)。邏輯運算可針對邏輯位址位元之各位元或各經判定實體位址位元獨立地選擇且亦可隨記憶體晶粒、記憶體陣列等以及如本文中描述般隨時間變動。應理解,邏輯位址及實體位址各可包含任何數目個位元及潛在地非常大數目個位元,但為了清楚闡釋起見,本文中之實例可使用小數目個位元解釋。
如圖4A中繪示,一邏輯位址可包含邏輯位址位元。在一個情況中,一邏輯位址可包含三個邏輯位址位元,諸如110,其中零位元係1,一位元係1,且二位元係0。可將邏輯位址位元輸入至一映射組件405中,該映射組件405可包含映射子組件0 415-a、映射子組件1 415-b及映射子組件2 415-c。映射組件可輸出可包含三個實體位址位元(諸如實體位址位元零、實體位址位元一及實體位址位元二)之實體位址。
如圖4A中繪示,選擇線410可選擇用於映射組件405之一映射函數,其可包括選擇由三個映射子組件415-a、415-b及415-c之各者應用之一邏輯函數。基於針對一映射子組件415選擇之邏輯運算,映射組件405可視需要將一或多個邏輯位址位元路由至映射子組件。例如,若用於一映射子組件415之邏輯運算係一反相或非反相運算,則映射組件405可僅將一個邏輯位址位元路由至映射子組件415,但若用於一映射子組件415之邏輯運算係一XOR、XNOR或其他組合邏輯運算,則映射組件405可將兩個或兩個以上邏輯位址位元路由至映射子組件415。
在一些實例中,選擇線可與一選擇組件耦合,該選擇組件可(例如)基於由選擇組件接收之一數字或基於記憶體晶粒之一獨有識別符而選擇映射函數。例如,獨有識別符可具有一系列數字且在一個實例中,選擇組件可使用記憶體晶粒ID之最後三個數字。例如,若最後三個數字係奇數、奇數、偶數,則選擇線可選擇一第一映射函數,但若記憶體晶粒之最後三個數字係奇數、偶數、偶數,則選擇線可選擇一第二映射函數。
在圖4B之實例中,可將邏輯位址位元提供至一映射組件405。映射組件405可輸出實體位址位元。實體位址位元可指定記憶體胞元(例如,410-a、410b、410c等至410-N)之實體位址。如先前關於圖4A論述,實體位址011或三可具有三個實體位址位元,零位元係1,一位元係1且二位元係0。如圖4B中繪示,可存在一或多個暫存胞元,其中一暫存胞元可係指其邏輯位址不可經由映射函數定址但可為了損耗均衡目的將資料傳送至其之一記憶體胞元。因此,如圖4中展示,實體位址空間可大於邏輯位址空間,此係因為實體位址空間可涵蓋比由邏輯位址空間所涵蓋之可能邏輯位址之數目多至少一個之可能實體位址(及因此,在至少一些情況中,多至少一個額外有效位元)。
圖 5
繪示根據本發明之態樣之支援記憶體之位址混淆之一記憶體陣列500之一實例。在一些實例中,圖5之論述可包含上文描述之一或多個組件之論述。例如,圖5之論述可包含如上文描述之實體位址、邏輯位址及記憶體陣列之記憶體胞元之論述。
在圖5之實例中,記憶體陣列500係一記憶體胞元陣列。個別記憶體胞元510-a、510-b、510-c、…、510-N可各包含經儲存資料。圖5繪示其中映射函數包括全部非反相或直通邏輯運算,且因此各實體位址位元等於對應邏輯位址位元(具有相等有效值)之一實例。可使用四個實體位址位元表達實體位址,此係因為暫存胞元係可以二進制數位表達為1000之第八記憶體胞元。
例如,記憶體胞元510-a可具有實體位址0000且儲存具有一邏輯位址000之資料,記憶體胞元510-b可具有實體位址0001且儲存具有一邏輯位址001之資料,記憶體胞元510-c可具有實體位址0010且儲存具有一邏輯位址010之資料等。亦即,資料可儲存於具有其之三個最低有效位元等於資料之邏輯位址之一實體位址之記憶體胞元中。
在一些情況中,包括針對各邏輯位址位元之一非反相或直通邏輯運算之一映射函數(諸如圖5中繪示之映射函數)可支援一記憶體裝置之測試或除錯。在一些情況中,一安全密鑰(例如,至記憶體裝置之一命令序列或其他專用輸入)可引起選擇組件選擇圖5中繪示之映射函數(例如,組態全部操作性映射子組件以實施一非反相或直通邏輯運算)。
圖 6
繪示根據本發明之態樣之記憶體之位址混淆及損耗均衡之一表600之一實例。在一些實例中,圖6之論述可包含上文描述之一或多個組件之論述。例如,圖6之論述可包含如上文描述之實體位址、邏輯位址及記憶體陣列之記憶體胞元之論述。
在一些實例中,可將資料週期性地移動至不同實體位置(具有不同實體位址之不同記憶體胞元)以提供記憶體胞元之損耗均衡,此係因為對一記憶體胞元之重複存取可過早地引起該特定記憶體胞元中之一失效。損耗均衡可在記憶體陣列之記憶體胞元之間分佈應力。藉由隨時間將資料移動至不同記憶體胞元,可增加記憶體胞元之壽命及記憶體胞元儲存資料之能力。
圖6中展示之表600繪示在使用如圖5中繪示之一映射函數之後一例示性損耗均衡函數之操作。因此,「初始映射」欄展示如圖5中般映射之資料,其中記憶體胞元0至記憶體胞元7之各者儲存具有等於記憶體胞元之實體位址之三個最低有效位元之一邏輯位址之資料。記憶體胞元8可用作一暫存記憶體胞元且最初可係空的,此係因為其實體位址可超出邏輯位址域。
在圖6之表600中將資料隨時間根據例示性損耗均衡演算法自記憶體胞元移動至記憶體胞元指示為「1次移動之後」、「2次移動之後」、「3次移動之後」等。此指示資料分別經第一次移動、經第二次移動及經第三次移動。因此,在各移動之後,資料可具有一不同實體位址,此係因為其已被移動或傳送至一不同記憶體胞元。
在作為損耗均衡函數之部分之一次移動之後且如「1次移動之後」欄中指示,具有邏輯位址111 (7)之資料現被儲存於具有實體位址1000 (8)之暫存記憶體胞元中,且具有實體位址0111 (7)之記憶體胞元係空的。因此,具有邏輯位址111 (7)之資料之實體位址在第一移動期間增量一,且在1次移動之後為空之記憶體胞元(記憶體胞元7)之實體位址比最初為空之記憶體胞元(記憶體胞元8)之實體位址低一。
在作為損耗均衡函數之部分之兩次移動之後且如「2次移動之後」欄中指示,具有邏輯位址110 (6)之資料現被儲存於具有實體位址0111 (7)之記憶體胞元中,且具有實體位址0110 (6)之記憶體胞元係空的。因此,具有邏輯位址110 (6)之資料之實體位址在第二移動期間增量一,且在2次移動之後為空之記憶體胞元(記憶體胞元6)之實體位址比在1次移動之後為空之記憶體胞元(記憶體胞元7)之實體位址低一。
如表600中展示,此損耗均衡移動型樣可繼續達任何持續時間及任何數目次移動。使用各移動,(i)儲存於比空記憶體胞元之實體位址低一之實體位址處之資料被移動至空記憶體胞元中且(ii)先前儲存經移動資料之記憶體胞元變空。在(例如,歸因於一列錘攻擊或由於某一其他原因)一個記憶體胞元變得有缺陷(失效)之事件中,可對損耗均衡型樣進行逆向工程。例如,針對儲存至有缺陷記憶體胞元之資料之一存取操作(例如,讀取或寫入)將失效,且失效之資料之邏輯位址將基於損耗均衡移動而隨時間改變。
在表600之實例中,假定記憶體胞元3 (實體位址011)已變得有缺陷。在一初始週期期間(在第五移動發生之前),對於具有邏輯位址011 (3)之資料之一存取嘗試將失敗。隨後(在第六移動發生之後),對於具有邏輯位址010 (2)之資料之一存取嘗試將失敗。最終(在某一數目個額外移動之後),對於具有邏輯位址001 (1)之資料之一存取嘗試將失敗。因此,如由資料之邏輯位址識別之失效資料之一型樣可隨時間變得明顯。在表600之實例中,如由資料之邏輯位址識別之失效資料之型樣(以十進制項表示)將係3、2、1、0、7、6、5、4等。資料在記憶體胞元當中之實體移動之型樣(亦即,儲存資料之實體位址之改變之型樣)可自失效資料之此一型樣推導,如由資料之邏輯位址識別。
此外,若始終將相同損耗均衡映射函數應用至具有一給定標記或模型之全部記憶體裝置內之全部記憶體陣列(例如,經硬接線或以其他方式靜態地經組態),則一不良行動者可能夠使用如自一個記憶體裝置或記憶體陣列推導之損耗均衡型樣之知識以便攻擊其他記憶體裝置或記憶體陣列(例如,以對此等其他記憶體裝置或記憶體陣列執行列錘攻擊)。
圖 7A 及圖 7B
繪示根據本發明之態樣之支援記憶體之位址混淆之一設備之實例及展示如根據本發明之態樣實施之一映射函數之一表。在一些實例中,圖7A及圖7B之論述可包含上文描述之一或多個組件之論述。例如,圖7A及圖7B之論可包含如上文描述之實體位址、邏輯位址及記憶體陣列之記憶體胞元之論述。
在一些實例中且如圖7A中繪示,一映射子組件700可經組態以基於一邏輯位址之位元判定一實體位址之位元。如圖4A中論述,映射組件可包含各可(例如,獨立地)經組態以基於一邏輯位址之一或多個位元(或多個邏輯位址之一或多個位元)判定一實體位址之一對應位元之映射子組件。
映射子組件700可經組態以接收一邏輯位址位元作為輸入且提供一實體位址位元作為輸出,且可經組態以選擇性地實施一反相邏輯運算或一非反相(直通)邏輯函數。映射子組件700之上路徑中之三個反相器邏輯裝置可與映射子組件之下路徑中之兩個反相器邏輯裝置延遲匹配。上路徑之輸出及下路徑之輸出可與一多工器或其他適合選擇電路之各自輸入耦合,且映射子組件700之選擇線可選擇兩個路徑之一者以路由至輸出,該輸出可經反相以產生對應於映射子組件700之經判定實體位元。因此,藉由選擇上路徑或下路徑,選擇線可控制實體位址位元是否可經反相(例如,邏輯位址位元輸入之相反值)或未經反相(例如,邏輯位址位元輸入之相同值)。在此實例中,若選擇線選擇上路徑,則歸因於自邏輯位址位元至實體位址位元之信號路徑中之所得四個反相器,輸出實體位址位元可與輸入邏輯位址位元之值相同。若選擇線選擇下路徑,則歸因於自邏輯位址位元至實體位址位元之信號路徑中之所得三個反相器,輸出實體位址位元可經反相且因此與輸入邏輯位址位元之值相反。
在一些實例中,一映射函數之一邏輯運算通常可由映射子組件700實施。邏輯運算可係對一單一邏輯位址位元執行一函數以產生一實體位址位元之一邏輯元件。例如,邏輯運算可係一反相運算子。藉由使用反相邏輯運算,映射子組件可將相關位元改變至相反值。例如,反相邏輯運算可使一位元反相,因此110可變為100,或反相邏輯運算可使零位元反相,因此,110可變為010等。一般技術者將瞭解,一映射子組件700可支援任何數目個邏輯運算(例如,XOR、XNOR、OR、NOR、AND、NAND等(經由適合邏輯閘及路由(交換)電路之一組合)),且一映射子組件700可經組態以依一可選擇方式支援數個此等邏輯運算以便使用一或多個邏輯運算之任何組合基於任何數目個邏輯位址位元判定一實體位址位元。
例如,在一些情況中,可由映射子組件實施之邏輯運算可對兩個或兩個以上邏輯位址位元進行運算以產生一單一實體位址位元。例如,邏輯運算可係一OR運算子。藉由使用OR邏輯運算,可指定兩個邏輯位址位元以執行邏輯運算。在一個情況中,可對邏輯位址位元之零位元及一位元執行OR邏輯運算以產生實體位址位元之零位元,其中實體位址位元之一位元及二位元保持相同(例如,一位元及二位元未經反相)。給定一邏輯位址011且使用OR邏輯運算,實體位址位元之零位元可係1,此係因為0及1之OR函數係1,因此使實體位址位元之零位元為1且實體位址變為111。
作為另一實例,可由映射子組件實施之邏輯運算可對三個邏輯位址位元進行運算以產生一單一實體位址位元。例如,邏輯元件可對三個邏輯位址位元執行一函數以產生一單一實體位址位元。例如,實體位址之一位元可係如下函數:針對邏輯位址010,邏輯位址位元之一位元與零位元進行XOR運算且與二位元進行XNOR運算。實體位址可變為000,此係因為邏輯位址一位元係1,其與為0之邏輯位址零位元進行XOR運算且產生1,將該1與為0之邏輯位址二位元進行XNOR運算,此產生0。因此,使用邏輯位址010,為1之一位元變為0,從而使實體位址為000。
在一些實例中且如圖7B中繪示,一表750繪示一邏輯位址之三個二進制位元至一記憶體胞元之一對應實體位址之映射。例如,值0可由三個二進制位元000表示。此外,個別位元可被稱為零位元,一位元及二位元。例如,使用二進制值110 (6),二位元係1,一位元係1且零位元係0。在另一實例中,011或二進制值3,二位元係0,一位元係1且零位元係1。
在圖7B中,值1可由三個二進制位元001表示,且值2可由三個二進制位元010表示等。如圖7B中繪示,零位元可始終未經反相,各邏輯位址之一位元可始終經反相,且二位元可始終未經反相。例如,在一位元經反相之後,值0或三個二進制位元000變為010或值2。在一位元經反相之後,值1或三個二進制位元001變為011或值3。在一位元經反相之後,值2或三個二進制位元010變為000或值0。另外,可使用如圖7A中繪示之三個映射子組件產生圖7B中之表之值,其中用於實體位址位元之位元0之映射子組件可經組態以直通邏輯位址之位元0,用於實體位址位元之位元1之映射子組件可經組態以使邏輯位址之位元1反相,且用於實體位址位元之位元2之映射子組件可經組態以直通邏輯位址之位元2。
圖 8A 及圖 8B
繪示根據本發明之態樣之與支援記憶體之位址混淆之一記憶體陣列相關之一映射組件800及一表850之一實例。在一些實例中,映射組件800及表850之論述可包含上文描述之一或多個組件之論述。例如,圖8之論述可包含如上文描述之實體位址、邏輯位址及記憶體陣列之記憶體胞元之論述。
在圖8A之實例中,映射組件800包含三個映射子組件,映射子組件0 800-a、映射子組件1 800-b及映射子組件2 800-c。類似於圖4A,選擇線810可選擇由三個映射子組件之各者實施之邏輯運算。在一個實例中,選擇線810可組態映射子組件0 800-a以藉由直通邏輯位址位元0而判定實體位址位元0,組態映射子組件1 800-b以藉由使邏輯位址位元1反相而判定實體位址位元1,且組態映射子組件2 800-c以藉由直通邏輯位址位元2而判定實體位址位元2。
圖8B之表850繪示資料至記憶體胞元之所得映射。例如,可將具有邏輯位址010之資料映射至具有實體位址000之記憶體胞元,且可將具有邏輯位址010之資料映射至具有實體位址000之記憶體胞元。如關於映射組件800論述,使實體位址之一位元反相。邏輯位址係010,因此零位元係0,一位元係1且二位元係0。映射組件800使一位元反相,因此輸出實體位址000。在另一實例中,具有邏輯位址110之資料可映射至具有實體位址100之一記憶體胞元,此係因為實體位址之一位元經反相等。
圖 9
繪示根據本發明之態樣之記憶體之位址混淆及損耗均衡之一表900之一實例。在一些實例中,圖9之論述可包含上文描述之一或多個組件之論述。例如,圖9之論述可包含如上文描述之實體位址、邏輯位址及記憶體陣列之記憶體胞元之論述。
圖9中展示之表繪示如先前在圖6之表600中繪示之一例示性損耗均衡函數之操作,但在根據一不同映射演算法之一初始位址混淆之後。如表900中繪示,可根據一映射函數執行初始映射,其中分別基於邏輯位址之位元0及位元2之一非反相(直通)判定初始實體位址之位元0及位元2,而基於與邏輯位址之位元1進行XOR運算且與邏輯位址之位元2進行XNOR運算之邏輯位址之位元0判定初始邏輯位址之位元1。
因此,表900中之「初始映射」欄與表600中之「初始映射」欄不同之處在於具有邏輯位址010 (2)之資料被映射至具有實體位址000 (0)之記憶體胞元,具有邏輯位址000 (0)之資料被映射至具有實體位址010 (2)之記憶體胞元,具有邏輯位址111 (7)之資料被映射至具有實體位址101 (5)之記憶體胞元,且具有邏輯位址101 (5)之資料被映射至具有實體位址111 (7)之記憶體胞元。記憶體胞元8再次用作一暫存記憶體胞元且最初可係空的,此係因為其實體位址1000可超出邏輯位址域。
資料隨時間自記憶體胞元至記憶體胞元之移動係根據先前參考圖6之表600描述之相同例示性損耗均衡演算法。又如在表600之實例中,假定在表900之實例中,記憶體胞元3 (實體位址011)已變得有缺陷。
然而,不同於在表600之實例中,如由資料之邏輯位址識別之失效資料之型樣(以十進制項表示)將係3、0、1、2、5、6、7、4、...(而非表600中之3、2、1、0、7、6、5、4、...)。因此,歸因於針對表900中之初始映射選擇之不同映射演算法,「失效型樣」將與表600中不同。當代替性地在一記憶體裝置中實施表900中利用之映射函數時,自基於在表600中利用之映射函數對損耗均衡移動型樣逆向工程學習之資訊(例如,針對一列錘攻擊)將不可用,此係因為即使移動型樣相同,歸因於不同映射函數及因此不同初始映射,資料之邏輯位址與儲存該資料之記憶體胞元之實體位址之間之最終關係仍係不同的。
如本文中描述,針對一記憶體裝置實施之映射函數可在每邏輯位址位元基礎上基於一組可選擇每位元邏輯運算組態及變動,使得可支援極大數目個可能映射函數(例如,針對具有N個位元之邏輯位址,其中可針對各位元選擇M個邏輯運算之任一者,可支援MN
個可能映射函數)。例如,假定二十個位元邏輯位址,對於可用於判定各實體位址位元之邏輯運算具有四個選擇,此可產生超過一萬億個可能組態。此外,由於映射函數可動態地組態(可選擇、可變動)及/或可跨裝置、晶粒、陣列、記憶體庫、磚或其他記憶體實體變動,映射函數之型樣可跨記憶體實體或隨時間變動,故基於一個記憶體實體(例如,由一不良行動者)學習之資訊在一隨後時間或針對另一記憶體實體可係不可用的。此外,映射函數之可變性質可首先增加一不良行動者學習一損耗均衡移動型樣之困難或降低動機。
如本文中描述,記憶體胞元之實體位址位元可根據各位元獨有之映射函數判定且映射函數可選自任何數目個函數或演算法,且如包含任何數目或種類之邏輯運算,因此導致大量不同組態。
在一些情況中,可藉由使用熔絲或反熔絲而在製造級進行此等映射函數之選擇。
在一些情況中,映射函數選擇可藉由隨機化記憶體裝置上之電路而隨機選取映射函數選擇。例如,一選擇組件可基於由一數字產生器或一隨機數產生器或隨機化電路選取或產生之一數字選擇一映射函數。例如,數字產生器可選擇奇數之一數字,因此映射函數可僅使一位元反相以產生實體位址之零位元且一位元及二位元未經反相並直通至實體位址之一位元及二位元。在另一實例中,數字產生器可選擇以奇數、奇數、偶數結束之一數字,因此映射函數可係對零位元及一位元進行XOR運算且不使二位元等反相。
在一些實例中,自由記憶體裝置支援之該組映射函數選擇映射函數可至少部分基於一排程或一觸發事件。觸發事件可係諸如一啟動、重新啟動、超過預定數目個存取、偵測一列錘事件等之一事件。
在一些實例中,選擇組件可基於一獨有記憶體晶粒識別符選擇映射函數。例如,記憶體晶粒識別符可具有多個數位且若最後三個數位係偶數、偶數、偶數,則選定映射函數可與一位元及二位元進行XNOR運算以產生實體位址之零位元且可直通零位元及一位元至實體位址之零位元及一位元。
映射函數之選擇可基於任何數目個元素。在又一實例中,可使用線性回饋移位暫存器電路執行隨機化。在又一實例中,可使用多個信號之改變交叉(諸如非同步振盪器驅動一計數器,使得狀態可由一同步信號捕獲)達成隨機化。在又一實例中且在揮發性記憶體之情況中,選擇可在每次裝置通電時改變。
在一些實例中,製造商可對記憶體裝置進行測試及除錯且在一些情況中,製造商可採用直接記憶體定址。在一些實例中,製造商可具有一安全密鑰且可具有至少部分基於接收安全密鑰而選擇一第二映射函數之能力。安全密鑰可容許製造商實現直接記憶體定址(例如,第二映射函數)。當使用直接記憶體定址時,製造商可更動選定映射函數,使得全部記憶體胞元係非反相的,因此容許製造商執行相關測試。可在將記憶體裝置裝運至客戶之前停用此模式以使其不可由不良行動者存取。
在一些實例中,由一映射組件或映射子組件支援之該組邏輯運算可包含一反相運算、一非反相運算、一XOR運算、一XNOR運算、一直通運算或一位址交換運算,其等之各者可單獨選擇。位址交換函數可容許位址有效性之順序隨晶粒獨有地獨立。圖9中之表950之值可使用一映射子組件根據如關於圖3至圖8論述之映射函數產生,且經組態以達成適當邏輯運算。
圖 10
繪示根據本發明之態樣之支援記憶體之位址混淆之一記憶體裝置1005之一方塊圖。在一些實例中,記憶體裝置1005可實施如本文中揭示之一記憶體系統之態樣。記憶體裝置1005可類似於如上文描述之記憶體裝置。記憶體裝置1005可包含一選擇組件1010、一接收組件1015、一判定組件1020、一存取組件1025及一路由組件1030。此等組件之各者可彼此(例如,經由一或多個匯流排)直接或間接通信。
選擇組件1010可引起記憶體裝置自由記憶體裝置支援之一組映射函數選擇一映射函數。各映射函數可將在記憶體裝置處接收之邏輯位址映射至記憶體裝置之一記憶體陣列內之實體位址。
接收組件1015可引起記憶體裝置接收包含儲存於記憶體陣列中之資料之一邏輯位址之一存取命令。
判定組件1020可引起記憶體裝置基於邏輯位址及選定映射函數判定記憶體陣列內之一實體位址。
存取組件1025可引起記憶體裝置基於實體位址存取儲存於記憶體陣列中之資料。
圖 11
繪示根據本發明之態樣之支援記憶體之位址混淆之一流程圖。方法1100之操作可由如本文中描述之一控制器或其組件實施。例如,方法1100之操作可由如上文描述之一控制器及記憶體裝置執行。在一些實例中,一控制器可執行一指令集以控制記憶體裝置之功能元件以執行下文描述之功能。另外或替代地,一控制器可使用專用硬體執行下文描述之功能之態樣。
在1105處,控制器可自由一記憶體裝置支援之一組映射函數選擇一映射函數,該組中之各映射函數用於將在記憶體裝置處接收之邏輯位址映射至記憶體裝置之一記憶體陣列內之實體位址。1105之操作可根據本文中描述之方法執行。在一些實例中,1105之操作之態樣可由如參考圖10描述之一選擇組件執行。
在1110處,控制器可接收包含儲存於記憶體陣列中之資料之一邏輯位址之一存取命令。1110之操作可根據本文中描述之方法執行。在一些實例中,1110之操作之態樣可由如參考圖10描述之一接收組件執行。
在1115處,控制器可基於邏輯位址及選定映射函數判定記憶體陣列內之一實體位址。1115之操作可根據本文中描述之方法執行。在一些實例中,1115之操作之態樣可由如參考圖10描述之一判定組件執行。
在1120處,控制器可基於實體位址存取儲存於記憶體陣列中之資料。1120之操作可根據本文中描述之方法執行。在一些實例中,1120之操作之態樣可由如參考圖10描述之一存取組件執行。
在一些實例中,如本文中描述之一設備可執行一或若干方法,諸如方法1100。設備可包含用於以下各者之特徵、構件或指令(例如,儲存可由一處理器執行之指令之一非暫時性電腦可讀媒體):自由一記憶體裝置支援之一組映射函數選擇一映射函數,該組中之各映射函數用於將在記憶體裝置處接收之邏輯位址映射至記憶體裝置之一記憶體陣列內之實體位址;接收包含儲存於記憶體陣列中之資料之一邏輯位址之一存取命令;基於邏輯位址及選定映射函數判定記憶體陣列內之一實體位址;及基於實體位址存取儲存於記憶體陣列中之資料。
在本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例中,選擇映射函數可包含針對邏輯位址之各位元自由記憶體裝置支援之一組邏輯運算選擇一對應邏輯運算,各邏輯運算用於至少部分基於邏輯位址之一位元判定實體位址之一位元。
在本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例中,判定實體位址可包含至少部分基於來自該組之一第一邏輯運算判定實體位址之一第一位元,至少部分基於來自該組之一第二邏輯運算判定實體位址之一第二位元。
在本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例中,判定實體位址可包含透過經組態以實施對應邏輯運算之一映射子組件路由邏輯位址之各位元。
在本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例中,由記憶體裝置支援之該組邏輯運算可包含一反相運算、至少部分基於邏輯位址之一第二位元之一互斥或(XOR)運算或至少部分基於邏輯位址之第二位元之一互斥非或(XNOR)運算、一直通運算、一位址交換運算或其等之任何組合。
本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例可進一步包含用於產生一隨機數之操作、特徵、構件或指令,其中選擇映射函數係至少部分基於隨機數。
本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例可進一步包含用於識別與記憶體裝置、記憶體陣列或包含記憶體陣列之一晶粒相關聯之一獨有識別符之操作、特徵、構件或指令,其中選擇映射函數係至少部分基於獨有識別符。
在本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例中,自由記憶體裝置支援之該組映射函數選擇映射函數可至少部分基於一排程或一觸發事件。
本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例可進一步包含用於以下各者之操作、特徵、構件或指令:自由記憶體裝置支援之該組映射函數選擇一第二映射函數;接收包括針對儲存於記憶體陣列中之其他資料之一第二邏輯位址之一第二存取命令;至少部分基於第二邏輯位址及第二映射函數判定記憶體陣列內之一第二實體位址;及至少部分基於第二實體位址存取儲存於記憶體陣列中之其他資料。
本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例可進一步包含用於接收一安全密鑰且至少部分基於接收該安全密鑰而選擇一第二映射函數之操作、特徵、構件或指令。
本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例可進一步包含用於根據一損耗均衡程序在記憶體裝置之記憶體陣列內之實體位址之間傳送資料之操作、特徵、構件或指令。
在本文中描述之方法、設備及非暫時性電腦可讀媒體之一些實例中,實體位址對應於一實體位址空間且邏輯位址對應於小於實體位址空間之一邏輯位址空間。
圖 12
展示根據本發明之態樣之支援記憶體之位址混淆之一方法1200之一流程圖。方法1200之操作可由如本文中描述之一控制器或其組件實施。例如,方法1200之操作可由如上文描述之一控制器執行。在一些實例中,一控制器可執行一指令集以控制記憶體裝置之功能元件以執行下文描述之功能。另外或替代地,一控制器可使用專用硬體執行下文描述之功能之態樣。
在1205處,控制器可自由一記憶體裝置支援之一組映射函數選擇一映射函數,該組中之各映射函數用於將在記憶體裝置處接收之邏輯位址映射至記憶體裝置之一記憶體陣列內之實體位址。1205之操作可根據本文中描述之方法執行。在一些實例中,1205之操作之態樣可由如參考圖10描述之一選擇組件執行。
在1210處,控制器可針對邏輯位址之各位元,自由記憶體裝置支援之一組邏輯運算選擇一對應邏輯運算,各邏輯運算用於基於邏輯位址之一位元判定實體位址之一位元。1210之操作可根據本文中描述之方法執行。在一些實例中,1210之操作之態樣可由如參考圖10描述之一選擇組件執行。
在1215處,控制器可接收包含儲存於記憶體陣列中之資料之一邏輯位址之一存取命令。1215之操作可根據本文中描述之方法執行。在一些實例中,1215之操作之態樣可由如參考圖10描述之一接收組件執行。
在1220處,控制器可基於邏輯位址及選定映射函數判定記憶體陣列內之一實體位址。1220之操作可根據本文中描述之方法執行。在一些實例中,1220之操作之態樣可由如參考圖10描述之一判定組件執行。
在1225處,控制器可基於實體位址存取儲存於記憶體陣列中之資料。1225之操作可根據本文中描述之方法執行。在一些實例中,1225之操作之態樣可由如參考圖10描述之一存取組件執行。
圖 13
展示根據本發明之態樣之支援記憶體之位址混淆之一方法1300之一流程圖。方法1300之操作可由如本文中描述之一控制器或其組件實施。例如,方法1300之操作可由如上文描述之一控制器執行。在一些實例中,一控制器可執行一指令集以控制記憶體裝置之功能元件以執行下文描述之功能。另外或替代地,一控制器可使用專用硬體執行下文描述之功能之態樣。
在1305處,控制器可自由一記憶體裝置支援之一組映射函數選擇一映射函數,該組中之各映射函數用於將在記憶體裝置處接收之邏輯位址映射至記憶體裝置之一記憶體陣列內之實體位址。1305之操作可根據本文中描述之方法執行。在一些實例中,1305之操作之態樣可由如參考圖10描述之一選擇組件執行。
在1310處,控制器可針對邏輯位址之各位元自由記憶體裝置支援之一組邏輯運算選擇一對應邏輯運算,各邏輯運算用於基於邏輯位址之一位元判定實體位址之一位元。1310之操作可根據本文中描述之方法執行。在一些實例中,1310之操作之態樣可由如參考圖10描述之一選擇組件執行。
在1315處,控制器可透過經組態以實施對應邏輯運算之一映射子組件路由邏輯位址之各位元。1315之操作可根據本文中描述之方法執行。在一些實例中,1315之操作之態樣可由如參考圖10描述之一路由組件執行。
在1320處,控制器可接收包含儲存於記憶體陣列中之資料之一邏輯位址之一存取命令。1320之操作可根據本文中描述之方法執行。在一些實例中,1320之操作之態樣可由如參考圖10描述之一接收組件執行。
在1325處,控制器可基於邏輯位址及選定映射函數判定記憶體陣列內之一實體位址。1325之操作可根據本文中描述之方法執行。在一些實例中,1325之操作之態樣可由如參考圖10描述之一判定組件執行。
在1330處,控制器可基於實體位址存取儲存於記憶體陣列中之資料。1330之操作可根據本文中描述之方法執行。在一些實例中,1330之操作之態樣可由如參考圖10描述之一存取組件執行。
應注意,上文描述之方法描述可能實施方案,且操作及步驟可重新配置或以其他方式修改且其他實施方案係可行的。此外,可組合來自兩個或兩個以上方法之態樣。
在一些實例中,一種設備或裝置可使用通用或專用硬體執行本文中描述之功能之態樣。該設備或裝置可包含:一介面,其經組態以接收用於存取儲存於一記憶體陣列中之資料之邏輯位址;一選擇組件,其與該介面耦合且經組態以自一組映射函數選擇一映射函數,該組中之各映射函數用於將經由該介面接收之邏輯位址映射至該記憶體陣列內之實體位址;及一映射組件,其與該選擇組件耦合且經組態以至少部分基於該選定映射函數將經由該介面接收之邏輯位址映射至該記憶體陣列內之實體位址。
在一些實例中,該映射組件包含各經組態以至少部分基於該邏輯位址之至少一個位元及至少一個邏輯運算判定該記憶體陣列內之一實體位址之一位元之複數個映射子組件,且該選擇組件經組態以至少部分基於選擇用於該複數個映射子組件之各映射子組件之對應邏輯運算而選擇該映射函數。在一些實例中,該選擇組件經組態以獨立於用於該複數個映射組件之一第二映射組件之一第二邏輯運算而選擇用於該複數個映射組件之一第一映射組件之一第一邏輯運算。
在一些實例中,該設備或裝置可包含一數字產生器,其中該選擇組件經組態以至少部分基於由該數字產生器產生之一數字選擇該映射函數。在一些實例中,該選擇組件經組態以至少部分基於與該設備相關聯之一獨有識別符選擇該映射函數。在一些實例中,該選擇組件經組態以至少部分基於讀取一模式暫存器或非揮發性記憶體而選擇該映射函數。在一些實例中,該選擇組件經組態以至少部分基於一週期性排程或一觸發事件選擇該映射函數。
在一些實例中,該設備或裝置可包含經組態以隨時間在該記憶體陣列內之實體位址之間移動資料之一損耗均衡組件。
在一些實例中,一種設備或裝置可使用通用或專用硬體執行本文中描述之功能之態樣。該設備或裝置可包含:一介面,其經組態以接收複數個記憶體晶粒之邏輯位址;該複數個記憶體晶粒之一第一記憶體晶粒,其包括一第一記憶體陣列且經組態以根據一第一映射函數將該第一記憶體陣列之邏輯位址映射至該第一記憶體陣列內之實體位址;及該複數個記憶體晶粒之一第二記憶體晶粒,其包括一第二記憶體陣列且經組態以根據不同於該第一映射函數之一第二映射函數將該第二記憶體陣列之邏輯位址映射至該第二記憶體陣列內之實體位址。
在一些實例中,該設備或裝置可包含用於該第一記憶體晶粒之一第一映射組件、用於該第二記憶體晶粒之一第二映射組件及經組態以選擇用於該第一映射組件之該第一映射函數且選擇用於該第二映射組件之該第二映射函數之一選擇組件。在一些實例中,該選擇組件經組態以獨立於該第二映射函數而選擇該第一映射函數。在一些實例中,該第一記憶體晶粒具有一第一晶粒識別符,該第二記憶體晶粒具有一第二晶粒識別符,且該選擇組件經組態以至少部分基於該第一晶粒識別符選擇該第一映射函數且至少部分基於該第二晶粒識別符選擇該第二映射函數。
在一些實例中,該等邏輯位址各包括複數個位元,該第一映射組件包括第一對應複數個映射子組件,該第二映射組件包括第二對應複數個映射子組件,且該第一對應複數個映射子組件及該第二對應複數個映射子組件之各映射子組件可由該選擇組件獨立地組態。
雖然可在本文中關於DRAM科技或在DRAM科技之背景內容中描述某些特徵,但此僅係為了闡釋性目的,且一般技術者將瞭解,本文中之教示可應用至任何類型之記憶體裝置。例如,本文中之教示可應用至揮發性或非揮發性記憶裝置,諸如磁性硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態RAM (DRAM)、同步動態RAM (SDRAM)、鐵電RAM (FeRAM)、磁性RAM (MRAM)、電阻性RAM (RRAM)、快閃記憶體、相變記憶體(PCM)等。
可使用各種不同科技及技術之任何者表示本文中描述之資訊及信號。例如,可貫穿上文描述引用的資料、指令、命令、資訊、信號、位元、符號及晶片可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其等任何組合表示。一些圖式可將信號繪示為一單一信號;然而,一般技術者應理解,信號可表示信號之一匯流排,其中匯流排可具有各種位元寬度。
術語「電子通信」、「導電接觸」、「連接」及「耦合」係指支援組件之間之信號流動之組件之間之一關係。若在組件之間存在可在任何時間支援組件之間之信號流動之任何導電路徑,則將組件視為彼此電子通信(或導電接觸或連接或耦合)。在任何給定時間,彼此電子通信(或導電接觸或連接或耦合)之組件之間之導電路徑可係基於包含經連接組件之裝置之操作之一開路或一閉合電路。經連接組件之間之導電路徑可係組件之間之一直接導電路徑或經連接組件之間之導電路徑可係可包含中間組件(諸如開關、電晶體或其他組件)之一間接導電路徑。在一些情況中,經連接組件之間之信號流動可(例如)使用一或多個中間組件(諸如開關或電晶體)中斷一段時間。
術語「耦合」係指自其中信號當前不能夠經由一導電路徑在組件之間傳達之組件之間之一開路關係移動至其中信號能夠經由導電路徑在組件之間傳達之組件之間之一封閉電路關係之條件。當一組件(諸如一控制器)將其他組件耦合在一起時,組件起始容許信號經由先前不允許信號流動之一導電路徑在其他組件之間流動之一改變。
如本文中使用,術語「實質上」意謂經修飾特性(例如,由術語實質上修飾之一動詞或形容詞)不需要係絕對的但足夠接近以達成特性之優點。
本文中論述之裝置(包含一記憶體陣列)可形成於一半導體基板(諸如矽、鍺、矽鍺合金、砷化鎵、氮化鎵等)上。在一些情況中,基板係一半導體晶圓。在其他情況中,基板可係一絕緣體上覆矽(SOI)基板(諸如玻璃上覆矽(SOG)或藍寶石上覆矽(SOP))或在另一基板上之半導體材料之磊晶層。基板或基板之子區域之導電性可透過使用各種化學物種(包含(但不限於)磷、硼或砷)摻雜而控制。摻雜可在基板之初始形成或生長期間藉由離子植入或藉由任何其他摻雜手段執行。
本文中論述之一切換組件或一電晶體可表示一場效電晶體(FET)且包括包含一源極、汲極及閘極之一三端裝置。終端可透過導電材料(例如,金屬)連接至其他電子元件。源極及汲極可係導電的且可包括一重度摻雜(例如,簡併)半導體區域。源極及汲極可藉由一輕度摻雜半導體區域或通道分離。若通道係n型(例如,多數載子係信號),則FET可被稱為一n型FET。若通道係p型(例如,多數載子係電洞),則FET可被稱為一p型FET。通道可藉由一絕緣閘極氧化物封蓋。可藉由將一電壓施加至閘極而控制通道導電性。例如,分別將一正電壓或負電壓施加至一n型FET或一p型FET可導致通道變為導電。當將大於或等於一電晶體之臨限值電壓之一電壓施加至電晶體閘極時,電晶體可「接通」或「啟動」。當將小於電晶體之臨限值電壓之一電壓施加至電晶體閘極時,電晶體可「關斷」或「撤銷啟動」。
本文中所闡述之描述結合隨附圖式描述例示性組態且不表示可實施或在發明申請專利範圍之範疇內之全部實例。本文中使用之術語「例示性」意謂「充當一實例、例項或圖解」且非「較佳」或「優於其他實例」。詳細描述包含具體細節以提供所述技術之一理解。然而,可在不具有此等具體細節之情況下實踐此等技術。在一些例項中,以方塊圖形式展示熟知結構及裝置以避免使所描述實例之概念不清楚。
在附圖中,類似組件或特徵可具有相同參考標記。此外,可藉由在參考標記之後加上一破折號及在類似組件當中區分之一第二標記而區分相同類型之各種組件。若在說明書中僅使用第一參考標記,則描述適用於具有相同第一參考標記之類似組件之任一者而無關於第二參考標記。
可使用各種不同科技及技術之任何者表示本文中描述之資訊及信號。例如,可貫穿上文描述引用的資料、指令、命令、資訊、信號、位元、符號及晶片可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其等任何組合表示。
結合本文中之揭示內容描述之各種闡釋性方塊及模組可使用一通用處理器、一DSP、一ASIC、一FPGA或其他可程式化邏輯裝置、離散閘極或電晶體邏輯、離散硬體組件或經設計以執行本文中描述之功能之其等之任何組合實施或執行。一通用處理器可係一微處理器,但在替代例中,處理器可係任何習知處理器、控制器、微控制器或狀態機。一處理器亦可實施為運算裝置之一組合(例如,一DSP及一微處理器之一組合、多個微處理器、結合一DSP核心之一或多個微處理器或任何其他此組態)。
可在硬體、由一處理器執行之軟體、韌體或其任何組合中實施本文中描述之功能。若在由一處理器執行之軟體中實施,則可將功能作為一或多個指令或碼儲存於一電腦可讀媒體上或經由一電腦可讀媒體傳輸。其他實例及實施方案係在本發明及隨附發明申請專利範圍之範疇內。例如,歸因於軟體之性質,可使用由一處理器執行之軟體、硬體、韌體、硬接線或此等之任意者之組合來實施上文描述之功能。實施功能之特徵亦可實體上定位在各種位置處,包含經分佈使得在不同實體位置處實施功能之部分。再者,如本文中所使用,包含在發明申請專利範圍中,如一物項清單(例如,以諸如「至少一者」或「一或多者」之一片語開始之一物項清單)中使用之「或」指示一包含清單,使得(例如) A、B或C之至少一者之一清單意指A或B或C或AB或AC或BC或ABC (例如,A及B及C)。再者,如本文中使用,片語「基於」不應解釋為對一條件閉集之一參考。例如,在不脫離本發明之範疇的情況下,描述為「基於條件A」之一例示性步驟可基於條件A及條件B兩者。換言之,如本文中使用,片語「基於」應按相同於片語「至少部分基於」之方式來解釋。
提供本文中之描述以使熟習此項技術者能夠製造或使用本發明。熟習此項技術者將明白對本發明之各種修改,且本文中定義之一般原理可應用至其他變動而不脫離本發明之範疇。因此,本發明不限於本文中描述之實例及設計,但符合與本文中揭示之原理及新穎特徵一致之最廣範疇。
100:系統
105:外部記憶體控制器
110:記憶體裝置
115:通道
120:處理器
125:基本輸入/輸出系統(BIOS)組件
130:周邊組件
135:輸入/輸出(I/O)控制器
140:匯流排
145:輸入裝置/輸入
150:輸出裝置/輸出
155:置記憶體控制器
160-a:記憶體晶粒
160-b:記憶體晶粒
160-N:記憶體晶粒
165-a:本端記憶體控制器
165-b:本端記憶體控制器
165-N:本端記憶體控制器
170-a:記憶體陣列
170-b:記憶體陣列
170-N:記憶體陣列
186:命令及位址(CA)通道
188:時脈信號(CK)通道
190:資料(DQ)通道
192:通道
200:記憶體晶粒
205:記憶體胞元
210:字線
215:數位線
220:列解碼器
225:行解碼器
230:電容器
235:切換組件
240:電壓源
245:感測組件
250:參考信號
260:本端記憶體控制器
300:系統
310:記憶體裝置
360-a:記憶體晶粒
360-b:記憶體晶粒
365-a:記憶體陣列
365-b:記憶體陣列
380:選擇組件
390:映射組件
390-a:映射子組件
390-b:映射子組件
390-c:映射子組件
395:介面
400:系統
405:映射組件
410:選擇線
410-a至410-N:記憶體胞元
415-a:映射子組件0
415-b:映射子組件1
415-c:映射子組件2
450:系統
500:記憶體陣列
510-a至510-N:記憶體胞元
600:表
700:映射子組件
750:表
800:映射組件
800-a:映射子組件
800-b:映射子組件
800-c:映射子組件
810:選擇線
850:表
900:表
1005:記憶體裝置
1010:選擇組件
1015:接收組件
1020:判定組件
1025:存取組件
1030:路由組件
1100:方法
1105:操作
1110:操作
1115:操作
1120:操作
1200:方法
1205:操作
1210:操作
1215:操作
1220:操作
1225:操作
1300:方法
1305:操作
1310:操作
1315:操作
1320:操作
1325:操作
1330:操作
圖1繪示根據本發明之態樣之用於記憶體之位址混淆之一系統之一實例。
圖2繪示根據本發明之態樣之支援記憶體之位址混淆之一記憶體晶粒之一實例。
圖3繪示根據本發明之實例之支援記憶體之位址混淆之一裝置之一實例。
圖4A及圖4B繪示根據本發明之態樣之支援記憶體之位址混淆之裝置之實例。
圖5繪示根據本發明之態樣之支援記憶體之位址混淆之一映射函數之一實例。
圖6繪示根據本發明之態樣之支援記憶體之位址混淆之一映射函數及損耗均衡函數之一實例。
圖7A繪示根據本發明之態樣之支援記憶體之位址混淆之一裝置。
圖7B繪示根據本發明之態樣之支援記憶體之位址混淆之一映射函數之一實例。
圖8A及圖8B繪示根據本發明之態樣之支援記憶體之位址混淆之裝置之實例。
圖9繪示根據本發明之態樣之支援記憶體之位址混淆之一映射函數及損耗均衡函數之一實例。
圖10繪示根據本發明之態樣之支援記憶體之位址混淆之一裝置之一方塊圖。
圖11至圖13繪示根據本發明之態樣之支援記憶體之位址混淆之流程圖。
900:表
Claims (25)
- 一種方法,其包括: 自由一記憶體裝置支援之一組映射函數選擇一映射函數,該組中之各映射函數用於將在該記憶體裝置處接收之邏輯位址映射至該記憶體裝置之一記憶體陣列內之實體位址; 接收包括儲存於該記憶體陣列中之資料之一邏輯位址之一存取命令; 至少部分基於該邏輯位址及該選定映射函數判定該記憶體陣列內之一實體位址;及 至少部分基於該實體位址存取儲存於該記憶體陣列中之該資料。
- 如請求項1之方法,其中選擇該映射函數包括: 針對該邏輯位址之各位元,自由該記憶體裝置支援之一組邏輯運算選擇一對應邏輯運算,各邏輯運算用於至少部分基於該邏輯位址之一位元判定該實體位址之一位元。
- 如請求項2之方法,其中判定該實體位址包括: 至少部分基於來自該組之一第一邏輯運算判定該實體位址之一第一位元;及 至少部分基於來自該組之一第二邏輯運算判定該實體位址之一第二位元。
- 如請求項2之方法,其中判定該實體位址包括: 透過經組態以實施該對應邏輯運算之一映射子組件路由該邏輯位址之各位元。
- 如請求項2之方法,其中由該記憶體裝置支援之該組邏輯運算包括一反相運算、至少部分基於該邏輯位址之一第二位元之一互斥或(XOR)運算或至少部分基於該邏輯位址之該第二位元之一互斥非或(XNOR)運算、一直通運算、一位址交換函數或其等之任何組合。
- 如請求項1之方法,其進一步包括: 產生一隨機數,其中選擇該映射函數係至少部分基於該隨機數。
- 如請求項1之方法,其進一步包括: 識別與該記憶體裝置、該記憶體陣列或包含該記憶體陣列之一晶粒相關聯之一獨有識別符,其中選擇該映射函數係至少部分基於該獨有識別符。
- 如請求項1之方法,其中自由該記憶體裝置支援之該組映射函數選擇該映射函數係至少部分基於一排程或一觸發事件。
- 如請求項1之方法,其進一步包括: 自由該記憶體裝置支援之該組映射函數選擇一第二映射函數; 接收包括儲存於該記憶體陣列中之其他資料之一第二邏輯位址之一第二存取命令; 至少部分基於該第二邏輯位址及該第二映射函數判定該記憶體陣列內之一第二實體位址;及 至少部分基於該第二實體位址存取儲存於該記憶體陣列中之該其他資料。
- 如請求項1之方法,其進一步包括: 接收一安全密鑰;及 至少部分基於接收該安全密鑰而選擇一第二映射函數。
- 如請求項1之方法,其進一步包括: 根據一損耗均衡程序在該記憶體裝置之該記憶體陣列內之實體位址之間傳送資料。
- 如請求項1之方法,其中: 該實體位址對應於一實體位址空間;且 該邏輯位址對應於小於該實體位址空間之一邏輯位址空間。
- 一種設備,其包括: 一介面,其經組態以接收用於存取儲存於一記憶體陣列中之資料之邏輯位址; 一選擇組件,其與該介面耦合且經組態以自一組映射函數選擇一映射函數,該組中之各映射函數用於將經由該介面接收之邏輯位址映射至該記憶體陣列內之實體位址;及 一映射組件,其與該選擇組件耦合且經組態以至少部分基於該選定映射函數將經由該介面接收之邏輯位址映射至該記憶體陣列內之實體位址。
- 如請求項13之設備,其中: 該映射組件包括各經組態以至少部分基於該邏輯位址之至少一個位元及至少一個邏輯運算判定該記憶體陣列內之一實體位址之一位元之複數個映射子組件;且 該選擇組件經組態以至少部分基於選擇用於該複數個映射子組件之各映射子組件之該至少一個邏輯運算而選擇該映射函數。
- 如請求項14之設備,其中該選擇組件經組態以獨立於用於該複數個映射組件之一第二映射組件之一第二邏輯運算而選擇用於該複數個映射組件之一第一映射組件之一第一邏輯運算。
- 如請求項13之設備,其進一步包括: 一數字產生器,其中該選擇組件經組態以至少部分基於由該數字產生器產生之一數字選擇該映射函數。
- 如請求項13之設備,其中該選擇組件經組態以至少部分基於與該設備相關聯之一獨有識別符選擇該映射函數。
- 如請求項13之設備,其中該選擇組件經組態以至少部分基於讀取一模式暫存器或非揮發性記憶體而選擇該映射函數。
- 如請求項13之設備,其中該選擇組件經組態以至少部分基於一週期性排程或一觸發事件選擇該映射函數。
- 如請求項13之設備,其進一步包括: 一損耗均衡組件,其經組態以隨時間在該記憶體陣列內之實體位址之間移動資料。
- 一種設備,其包括: 一介面,其經組態以接收複數個記憶體晶粒之邏輯位址; 該複數個記憶體晶粒之一第一記憶體晶粒,其包括一第一記憶體陣列且經組態以根據一第一映射函數將該第一記憶體陣列之邏輯位址映射至該第一記憶體陣列內之實體位址;及 該複數個記憶體晶粒之一第二記憶體晶粒,其包括一第二記憶體陣列且經組態以根據不同於該第一映射函數之一第二映射函數將該第二記憶體陣列之邏輯位址映射至該第二記憶體陣列內之實體位址。
- 如請求項21之設備,其進一步包括: 用於該第一記憶體晶粒之一第一映射組件; 用於該第二記憶體晶粒之一第二映射組件;及 一選擇組件,其經組態以選擇用於該第一映射組件之該第一映射函數且選擇用於該第二映射組件之該第二映射函數。
- 如請求項22之設備,其中該選擇組件經組態以獨立於該第二映射函數而選擇該第一映射函數。
- 如請求項22之設備,其中: 該第一記憶體晶粒具有一第一晶粒識別符; 該第二記憶體晶粒具有一第二晶粒識別符;且 該選擇組件經組態以至少部分基於該第一晶粒識別符選擇該第一映射函數且至少部分基於該第二晶粒識別符選擇該第二映射函數。
- 如請求項22之設備,其中: 該等邏輯位址各包括複數個位元; 該第一映射組件包括第一對應複數個映射子組件; 該第二映射組件包括第二對應複數個映射子組件;且 該第一對應複數個映射子組件及該第二對應複數個映射子組件之各映射子組件可由該選擇組件獨立地組態。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/192,068 | 2018-11-15 | ||
US16/192,068 US11042490B2 (en) | 2018-11-15 | 2018-11-15 | Address obfuscation for memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202027075A true TW202027075A (zh) | 2020-07-16 |
TWI722613B TWI722613B (zh) | 2021-03-21 |
Family
ID=70726346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108138156A TWI722613B (zh) | 2018-11-15 | 2019-10-23 | 記憶體之位址混淆 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11042490B2 (zh) |
EP (1) | EP3881186A4 (zh) |
JP (1) | JP2022507523A (zh) |
KR (1) | KR20210071091A (zh) |
CN (1) | CN113039529A (zh) |
TW (1) | TWI722613B (zh) |
WO (1) | WO2020101862A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI816456B (zh) * | 2022-06-30 | 2023-09-21 | 新唐科技股份有限公司 | 密碼裝置及其密碼方法 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11843597B2 (en) * | 2016-05-18 | 2023-12-12 | Vercrio, Inc. | Automated scalable identity-proofing and authentication process |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US11194726B2 (en) * | 2019-02-25 | 2021-12-07 | Micron Technology, Inc. | Stacked memory dice for combined access operations |
US11182308B2 (en) * | 2019-11-07 | 2021-11-23 | Micron Technology, Inc. | Semiconductor device with secure access key and associated methods and systems |
US11132470B2 (en) * | 2019-11-07 | 2021-09-28 | Micron Technology, Inc. | Semiconductor device with secure access key and associated methods and systems |
US11030124B2 (en) | 2019-11-07 | 2021-06-08 | Micron Technology, Inc. | Semiconductor device with secure access key and associated methods and systems |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11500788B2 (en) * | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US20210382992A1 (en) * | 2019-11-22 | 2021-12-09 | Pure Storage, Inc. | Remote Analysis of Potentially Corrupt Data Written to a Storage System |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
JP6946485B2 (ja) * | 2020-01-17 | 2021-10-06 | 株式会社東芝 | 磁気記憶装置 |
US11355165B2 (en) * | 2020-04-27 | 2022-06-07 | Micron Technology, Inc. | Adjusting parameters of channel drivers based on temperature |
US11604740B2 (en) * | 2020-12-01 | 2023-03-14 | Capital One Services, Llc | Obfuscating cryptographic material in memory |
US20220091758A1 (en) * | 2021-12-07 | 2022-03-24 | Intel Corporation | Securing sensitive data in memory |
US11868662B2 (en) * | 2022-05-24 | 2024-01-09 | Western Digital Technologies, Inc. | Storage system and method for hybrid mapping |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0731310Y2 (ja) * | 1987-07-23 | 1995-07-19 | 富士ゼロックス株式会社 | メモリ装置 |
US5081675A (en) * | 1989-11-13 | 1992-01-14 | Kitti Kittirutsunetorn | System for protection of software in memory against unauthorized use |
EP0640228A1 (en) * | 1992-05-12 | 1995-03-01 | International Business Machines Corporation | Method and apparatus for reducing memory wearout in a computer system |
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 |
TW466407B (en) | 2000-08-31 | 2001-12-01 | Inst Information Industry | Multiple variable address mapping circuit |
US8135936B2 (en) | 2009-12-23 | 2012-03-13 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
US8108596B2 (en) | 2006-08-03 | 2012-01-31 | Arm Limited | Memory controller address mapping scheme |
US20080152142A1 (en) * | 2006-12-20 | 2008-06-26 | Mark Buer | Memory scrambler unit (msu) |
JP2009086830A (ja) * | 2007-09-28 | 2009-04-23 | Toshiba Corp | メモリコントローラ |
CN101419573A (zh) * | 2008-12-01 | 2009-04-29 | 成都市华为赛门铁克科技有限公司 | 一种存储管理的方法、系统和存储设备 |
CN101493794B (zh) * | 2009-01-19 | 2011-12-21 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
US8176295B2 (en) | 2009-04-20 | 2012-05-08 | Imation Corp. | Logical-to-physical address translation for a removable data storage device |
CN103026346B (zh) | 2010-07-27 | 2016-01-20 | 国际商业机器公司 | 用于从固态存储器设备读取及写入数据的方法及存储系统 |
KR101155542B1 (ko) | 2010-10-11 | 2012-06-18 | 성균관대학교산학협력단 | Ssd 장치의 매핑 테이블 관리 방법 |
JP6016137B2 (ja) * | 2011-05-24 | 2016-10-26 | マーベル ワールド トレード リミテッド | ソリッドステートドライブおよびその動作方法 |
US9158672B1 (en) | 2011-10-17 | 2015-10-13 | Rambus Inc. | Dynamic deterministic address translation for shuffled memory spaces |
US20130097403A1 (en) * | 2011-10-18 | 2013-04-18 | Rambus Inc. | Address Mapping in Memory Systems |
US9136873B2 (en) * | 2013-03-11 | 2015-09-15 | Intel Corporation | Reduced uncorrectable memory errors |
US20140328127A1 (en) | 2013-05-02 | 2014-11-06 | Skymedi Corporation | Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same |
JP6180271B2 (ja) * | 2013-10-09 | 2017-08-16 | 日本放送協会 | 映像記録装置及び映像記録方法 |
US10445232B2 (en) | 2015-07-14 | 2019-10-15 | Western Digital Technologies, Inc. | Determining control states for address mapping in non-volatile memories |
US10255191B2 (en) | 2015-08-13 | 2019-04-09 | Advanced Micro Devices, Inc. | Logical memory address regions |
US20170123994A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | Handling Of Plane Failure In Non-Volatile Storage |
US10049717B2 (en) * | 2016-03-03 | 2018-08-14 | Samsung Electronics Co., Ltd. | Wear leveling for storage or memory device |
US10761976B2 (en) | 2016-11-28 | 2020-09-01 | Arm Limited | Method and apparatus for memory wear leveling |
JP6765322B2 (ja) * | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN108536612B (zh) * | 2017-03-03 | 2021-12-21 | 西部数据技术公司 | 确定用于非易失性存储器中的地址映射的控制状态 |
US20180329629A1 (en) * | 2017-05-11 | 2018-11-15 | WipeOS LLC | Data wiping of solid-state drives |
US11056206B2 (en) * | 2017-10-11 | 2021-07-06 | Western Digital Technologies, Inc. | Non-volatile memory with dynamic wear leveling group configuration |
KR102540964B1 (ko) * | 2018-02-12 | 2023-06-07 | 삼성전자주식회사 | 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작 |
US10540100B2 (en) * | 2018-04-10 | 2020-01-21 | Western Digital Technologies, Inc. | Mapping-based wear leveling for non-volatile memory |
-
2018
- 2018-11-15 US US16/192,068 patent/US11042490B2/en active Active
-
2019
- 2019-10-23 TW TW108138156A patent/TWI722613B/zh active
- 2019-10-25 JP JP2021526547A patent/JP2022507523A/ja active Pending
- 2019-10-25 CN CN201980075547.9A patent/CN113039529A/zh active Pending
- 2019-10-25 EP EP19884462.3A patent/EP3881186A4/en active Pending
- 2019-10-25 KR KR1020217017031A patent/KR20210071091A/ko not_active Application Discontinuation
- 2019-10-25 WO PCT/US2019/058147 patent/WO2020101862A1/en unknown
-
2021
- 2021-05-25 US US17/329,989 patent/US11853230B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI816456B (zh) * | 2022-06-30 | 2023-09-21 | 新唐科技股份有限公司 | 密碼裝置及其密碼方法 |
Also Published As
Publication number | Publication date |
---|---|
US11853230B2 (en) | 2023-12-26 |
EP3881186A4 (en) | 2022-08-10 |
US20200159674A1 (en) | 2020-05-21 |
US11042490B2 (en) | 2021-06-22 |
TWI722613B (zh) | 2021-03-21 |
CN113039529A (zh) | 2021-06-25 |
EP3881186A1 (en) | 2021-09-22 |
JP2022507523A (ja) | 2022-01-18 |
KR20210071091A (ko) | 2021-06-15 |
US20210279183A1 (en) | 2021-09-09 |
WO2020101862A1 (en) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI722613B (zh) | 記憶體之位址混淆 | |
CN112352217B (zh) | 基于数据极性的数据存储 | |
US11625170B2 (en) | Row hammer protection for a memory device | |
US11579990B2 (en) | Intelligent post-packaging repair | |
US11334435B2 (en) | Safety event detection for a memory device | |
CN114080588A (zh) | 用于存储器装置的擦除速率控制 | |
US11899982B2 (en) | Command block management | |
US11257534B2 (en) | Current monitor for a memory device | |
US11562805B2 (en) | Speculative section selection within a memory device | |
US10949284B2 (en) | Techniques using nonvolatile memory and volatile memory | |
CN112116932A (zh) | 用于冗余的高效电力方案 |