TWI774985B - 記憶體裝置、寫入方法以及讀取方法 - Google Patents

記憶體裝置、寫入方法以及讀取方法 Download PDF

Info

Publication number
TWI774985B
TWI774985B TW108132365A TW108132365A TWI774985B TW I774985 B TWI774985 B TW I774985B TW 108132365 A TW108132365 A TW 108132365A TW 108132365 A TW108132365 A TW 108132365A TW I774985 B TWI774985 B TW I774985B
Authority
TW
Taiwan
Prior art keywords
data
memory
memory bank
hamming weight
sub
Prior art date
Application number
TW108132365A
Other languages
English (en)
Other versions
TW202111538A (zh
Inventor
李鈺珊
Original Assignee
新唐科技股份有限公司
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 新唐科技股份有限公司 filed Critical 新唐科技股份有限公司
Priority to TW108132365A priority Critical patent/TWI774985B/zh
Priority to CN201911372389.1A priority patent/CN112466364B/zh
Priority to US17/014,239 priority patent/US11748274B2/en
Publication of TW202111538A publication Critical patent/TW202111538A/zh
Application granted granted Critical
Publication of TWI774985B publication Critical patent/TWI774985B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Communication Control (AREA)

Abstract

一種記憶體裝置包括記憶體陣列以及記憶體控制器。記憶體陣列包括第一記憶體庫、第二記憶體庫以及第三記憶體庫。第一記憶體庫包括第一子記憶體庫。第二記憶體庫包括第二子記憶體庫。記憶體控制器根據主機發送之寫入指令,同時將主機發送之第一資料寫入至第一記憶體庫以及將第二資料寫入至第二子記憶體庫,且將第一資料之第一漢明重量寫入第三資料庫。第二資料係為第一資料之反相。

Description

記憶體裝置、寫入方法以及讀取方法
本發明係有關於一種記憶體裝置及其寫入方法與讀取方法,特別係有關於一種具有資料安全之記憶體裝置及其寫入方法與讀取方法。
由於靜態隨機存取記憶體(Static Random Access Memory,SRAM)執行寫入或讀取邏輯0以及邏輯1的功耗可能不相同,使得駭客在知道靜態隨機存取記憶體讀寫邏輯0以及邏輯1之功耗的情況下,能夠透過功耗的變化以及排列組合而得知真實讀寫的資料內容。因此對於機密資料的處理,我們需要一個能夠更有效率的方式來維護資料的安全性。
有鑑於此,本發明提出一種記憶體裝置,包括一記憶體陣列以及一記憶體控制器。上述記憶體陣列包括一第一記憶體庫、一第二記憶體庫以及一第三記憶體庫。上述第一記憶體庫包括一第一子記憶體庫。上述第二記憶體庫包括一第二子記憶體庫。上述記憶體控制器根據一主機發送之一寫入指令,同時將上述主機發送之一第一資料寫入至上述第一記憶體庫以及將上述第二資料寫入至上述第二子記憶體庫,且將上述第一資料之一第一漢明重量寫入上述第三資料庫,其中上述第二資料係為上述第一資料之反相。
根據本發明之一實施例,上述記憶體陣列更包括一第四記憶體庫。上述第四記憶體庫用以儲存一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相,其中上述記憶體控制器同時將上述第一漢明重量寫入上述第三記憶體庫且將上述第二漢明重量寫入上述第四記憶體庫。
根據本發明之一實施例,上述記憶體控制器更包括一漢明重量編碼器。上述漢明重量編碼器用以計數上述第一資料具有一第一位元數之一第一邏輯,而根據上述第一位元數產生上述第一漢明重量,並且產生上述第一漢明重量之反相之上述第二漢明重量。
根據本發明之一實施例,當上述記憶體控制器接收到上述主機發送之一讀取指令以讀取上述第一記憶體庫之上述第一資料時,上述記憶體控制器同時讀取上述第三記憶體庫之上述第一漢明重量以及上述第四記憶體庫之上述第二漢明重量,其中上述記憶體控制器根據上述第一漢明重量產生一第一假資料,將上述第一假資料寫入上述第一子記憶體庫且將一第二假資料寫入上述第二子記憶體庫,其中上述第二假資料係為上述第一假資料之反相,其中上述記憶體控制器同時讀取上述第一資料以及上述第二假資料,並將上述第一資料傳送至上述主機。
根據本發明之一實施例,上述記憶體控制器更包括一漢明重量解碼器。上述漢明重量解碼器產生具有上述第一漢明重量之上述第一假資料,並且產生上述第一假資料之反相之上述第二假資料,其中上述第一資料以及上述第一假資料皆具有一第一位元數之一第一邏輯以及一第二位元數之一第二邏輯。
本發明更提出一種寫入方法,適用於一記憶體陣列,其中上述記憶體陣列包括一第一記憶體庫以及一第二記憶體庫,其中上述一第一記憶體庫包括一第一子記憶體庫,上述第二記憶體庫包括一第二子記憶體庫。上述寫入方法包括:接收一主機發送之一寫入指令以及一第一資料;將上述第一資料寫入至上述第一記憶體庫,且同時將一第二資料寫入至上述第二子記憶體庫,其中上述第二資料係為上述第一資料之反相;以及將上述第一資料之一第一漢明重量寫入至上述記憶體陣列之一第三記憶體庫。
根據本發明之一實施例,上述寫入方法更包括:產生一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相;以及當執行上述將上述第一資料之上述第一漢明重量寫入至上述記憶體陣列之上述第三記憶體庫之步驟時,同時將上述第二漢明重量寫入至上述記憶體陣列之上述第四記憶體庫。
本發明更提出一種讀取方法,適用於一記憶體陣列,其中上述記憶體陣列包括儲存一第一資料之一第一記憶體庫、一第二記憶體庫以及儲存上述第一資料之一第一漢明重量之一第三記憶體庫,其中上述一第一記憶體庫包括一第一子記憶體庫,上述第二記憶體庫包括一第二子記憶體庫。上述讀取方法包括:接收到上述主機發送之一讀取指令,用以讀取上述第一記憶體庫之上述第一資料;讀取上述第一漢明重量,其中上述第一漢明重量代表上述第一資料具有一第一位元數之一第一邏輯以及一第二位元數之一第二邏輯;根據上述第一漢明重量產生一第一假資料,其中上述第一假資料具有上述第一位元數之一第二邏輯以及上述第二位元數之一第一邏輯;將上述第一假資料寫入上述第二子記憶體庫;以及同時讀取上述第一資料以及上述第一假資料。
根據本發明之一實施例,上述讀取方法更包括:當讀取上述第一漢明重量時,同時讀取上述記憶體陣列之一第四記憶體庫之一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相;以及在上述同時讀取上述第一資料以及上述第一假資料之步驟之後,僅將上述第一資料傳送至上述主機。
根據本發明之一實施例,上述根據上述第一漢明重量產生上述第一假資料之步驟更包括:根據上述第一漢明重量產生一第二假資料,其中上述第二假資料具有上述第一位元數之上述第一邏輯以及上述第二位元數之上述第二邏輯;以及將上述第二假資料反相,而產生上述第一假資料。
以下說明為本發明的實施例。其目的是要舉例說明本發明一般性的原則,不應視為本發明之限制,本發明之範圍當以申請專利範圍所界定者為準。
值得注意的是,以下所揭露的內容可提供多個用以實踐本發明之不同特點的實施例或範例。以下所述之特殊的元件範例與安排僅用以簡單扼要地闡述本發明之精神,並非用以限定本發明之範圍。此外,以下說明書可能在多個範例中重複使用相同的元件符號或文字。然而,重複使用的目的僅為了提供簡化並清楚的說明,並非用以限定多個以下所討論之實施例以及/或配置之間的關係。此外,以下說明書所述之一個特徵連接至、耦接至以及/或形成於另一特徵之上等的描述,實際可包含多個不同的實施例,包括該等特徵直接接觸,或者包含其它額外的特徵形成於該等特徵之間等等,使得該等特徵並非直接接觸。
第1圖係顯示根據本發明之一實施例所述之記憶體裝置之方塊圖。如第1圖所示,記憶體裝置100包括記憶體控制器110以及記憶體陣列120。記憶體控制器110根據主機10所發出之操作指令CMD,而對記憶體陣列120進行寫入操作或讀取操作。記憶體陣列120包括第一記憶體庫121以及第二記憶體庫122。根據本發明之一實施例,記憶體陣列120係為靜態隨機存取記憶體。根據本發明之許多實施例,主機10係為中央處理器或其他資料存取裝置。根據本發明之其他實施例,一微控制器係包括主機10以及記憶體裝置100,其中主機10係為中央處理器。
根據本發明之一實施例,當操作指令CMD係為寫入指令時,記憶體控制器110將主機10所發送之資料DT寫入至第一記憶體庫121,並且同時將反相資料DTB寫入至第二記憶體庫122,其中反向資料DTB係為資料DT之反相。根據本發明之另一實施例,當操作指令CMD係為讀取指令時,記憶體控制器110同時讀取第一記憶體庫121之資料以及第二記憶體庫122之反相資料DTB,而僅將資料DT傳送給主機10。
根據本發明之一實施例,資料DT係為具有機密性之資料。由於記憶體控制器110執行寫入操作及/或寫入操作時,寫入及/或讀取之邏輯0的位元數以及邏輯1的位元數皆相同,使得每次進行寫入操作及/或讀取操作時的功耗皆相同,進而提升了資料安全性。然而,為了提升資料安全性,記憶體陣列120中一半的空間需用以儲存反相資料,使得記憶體陣列120之利用率因而減半。根據本發明之一實施例,記憶體裝置100之記憶體空間利用率係為50%。為了提升記憶體陣列的儲存效率,我們需要其他的方法來達成資料安全性。
第2圖係顯示根據本發明之另一實施例所述之寫入裝置之方塊圖。如第2圖所示,記憶體裝置200包括記憶體控制器210以及記憶體陣列220,其中記憶體控制器210根據主機10所發出之寫入指令CMDW,而對記憶體陣列220進行寫入操作。根據本發明之一實施例,記憶體陣列220係為靜態隨機存取記憶體。根據本發明之許多實施例,主機10係為中央處理器或其他資料存取裝置。根據本發明之其他實施例,一微控制器係包括主機10以及記憶體裝置200,其中主機10係為中央處理器。
如第2圖所示,記憶體陣列220包括第一記憶體庫221、第二記憶體庫222、第三記憶體庫223以及第四記憶體庫224,其中第一記憶體庫221包括第一子記憶體庫221A,第二記憶體庫222包括第二子記憶體庫222A。
如第2圖所示之實施例,當記憶體控制器210接收到主機10發送之寫入指令CMDW時,記憶體控制器210根據寫入指令CMDW,將主機10發送之寫入資料DW寫入至第一記憶體庫221或第二記憶體庫222之一者,並且同時將反相寫入資料DWB寫入至第二子記憶體庫222A以及第一子記憶體庫221A之一者,其中反向寫入資料DWB係為寫入資料DW之反相資料。
換句話說,當記憶體控制器210將寫入資料DW寫入第一記憶體庫221時,記憶體控制器210同時將反相寫入資料DWB寫入至第二子記憶體庫222A;當記憶體控制器210將寫入資料DW寫入第二記憶體庫222時,記憶體控制器210同時將反相寫入資料DW寫入至第一子記憶體庫221A。由於記憶體控制器210同時將寫入資料DW以及反相寫入資料DWB寫入至記憶體陣列220,使得寫入之邏輯1的位元數以及寫入之邏輯0的位元數相同,因而提升資料的安全性。
根據本發明之許多實施例,當記憶體控制器210將另一寫入資料(第2圖未顯示)寫入第一記憶體庫221/第二記憶體庫222時,記憶體控制器210同時將另一寫入資料之反相寫入至第二子記憶體庫222A/第一子記憶體庫221A。因此,與第1圖之記憶體裝置100相比,第二子記憶體庫222A/第一子記憶體庫221A之空間可縮小至反相寫入資料之大小第2圖之記憶體裝置200則可增加可寫入之記憶體空間,因而大幅提升記憶體陣列的空間利用率。
如第2圖所示,記憶體控制器210更包括漢明重量編碼器211。根據本發明之一實施例,當記憶體控制器210接收到寫入資料DW時,漢明重量編碼器211計數寫入資料DW中邏輯1之位元數而產生漢明重量(hamming weight)HW。根據本發明之另一實施例,當記憶體控制器210接收到寫入資料DW時,漢明重量編碼器211也可用以計數寫入資料DW中邏輯0之位元數而產生漢明重量(hamming weight)HW。
當漢明重量編碼器211產生漢明重量HW後,漢明重量編碼器2111更產生漢明重量HW之反相的反相漢明重量HWB。接著,記憶體控制器210同時將漢明重量HW以及反相漢明重量HWB寫入至第三記憶體庫223以及第四記憶體庫224,用以平衡寫入之邏輯1之位元數以及邏輯0之位元數,其中反向漢明重量HWB係為漢明重量HW之反相。
根據本發明之一實施例,當記憶體控制器210將寫入資料DW寫入第一記憶體庫221且同時將反相寫入資料DWB寫入至第二子記憶體庫222A時,記憶體控制器210更將漢明重量HW寫入至第三記憶體庫223,且同時將反相漢明重量HWB寫入至第四記憶體庫224。
根據本發明之另一實施例,當記憶體控制器210將寫入資料寫入第二記憶體庫222且同時將反相寫入資料DWB寫入至第一子記憶體庫221A時,記憶體控制器210同樣將漢明重量HW寫入至第三記憶體庫223,且同時將反相漢明重量HWB寫入至第四記憶體庫224。
根據本發明之一實施例,第1圖之第一記憶體庫121以及第二記憶體庫122之記憶體空間係分別為K*N位元;第2圖之第一記憶體庫221以及第二記憶體庫222之記憶體空間分別為K*N位元,第一子記憶體庫221A以及第二子記憶體庫222A之記憶體空間分別為1*N位元,第三記憶體庫223以及第四記憶體庫224之記憶體空間分別為
Figure 02_image001
位元。由於第1圖之記憶體裝置100非用以儲存寫入資料的記憶體空間係為K*N位元,第2圖之記憶體裝置200非用以儲存寫入資料的記憶體空間(即,第一子記憶體庫221A、第二子記憶體庫222A、第三記憶體庫223以及第四記憶體庫224)係為
Figure 02_image003
位元。當N以及K皆遠大於1時,因此第2圖之記憶體裝置200之記憶體空間的利用率係趨近於100%,遠大於第1圖之記憶體裝置100之50%的記憶體空間利用率。
第3圖係顯示根據本發明之一實施例所述之寫入方法之流程圖。以下針對第3圖所示之寫入方法300之流程圖的敘述,將搭配第2圖之方塊圖,以利詳細說明。
首先,利用記憶體控制器210接收主機10發送之寫入指令CMDW以及第一資料(即,寫入資料DW)(步驟S31)。接著,根據本發明之一實施例,利用記憶體控制器210,將第一資料(即,寫入資料DW)寫入至第一記憶體庫221(步驟S32),且同時將第二資料(即,反相寫入資料DWB)寫入至第二子記憶體庫222A(步驟S33)。根據本發明之另一實施例,利用記憶體控制器210,將第一資料(即,寫入資料DW)寫入至第二記憶體庫222(步驟S32),且同時將第二資料(即,反相寫入資料DWB)寫入至第一子記憶體庫221A(步驟S33)。
根據本發明之一實施例,同時寫入第一資料(即,寫入資料DW)以及第二資料(即,反相寫入資料DWB)係用以平衡寫入之邏輯1以及邏輯0之位元數。
隨後,利用記憶體控制器210之漢明重量編碼器211,計數第一資料(即,寫入資料DW)中為第一邏輯之位元數(步驟S34),並且利用記憶體控制器210,根據第一邏輯之位元數,產生第一漢明重量(即,漢明重量HW)以及第二漢明重量(即,反相漢明重量HWB)(步驟S35)。根據本發明之一實施例,記憶體控制器210係根據第一邏輯之位元數產生第一漢明重量(即,漢明重量HW),再將第一漢明重量反相而產生第二漢明重量(即,反相漢明重量HWB)。根據本發明之一實施例,第一邏輯可為邏輯1。根據本發明之另一實施例,第一邏輯可為邏輯0。
接著,利用記憶體控制器210,將第一漢明重量(即,漢明重量HW)寫入至記憶體陣列220之第三記憶體庫223(步驟S36),並且同時將第二漢明重量(即,反相漢明重量HWB)寫入至記憶體陣列220之第四記憶體庫224(步驟S37),其中第二漢明重量係為第一漢明重量之反相。
第4圖係顯示根據本發明之另一實施例所述之寫入方法之流程圖。如第4圖所示,步驟S31至步驟S37皆與第3圖之步驟S31至步驟S37相同,其中第4圖之步驟S34(即,計數第一資料(即,寫入資料DW)中為第一邏輯之位元數)以及步驟S35(即,利用記憶體控制器210,根據第一邏輯之位元數,產生第一漢明重量(即,漢明重量HW))係與步驟S32以及步驟S33並列執行,以利增進寫入之速度。
第5圖係顯示根據本發明之另一實施例所述之記憶體裝置之方塊圖。如第5圖所示,記憶體裝置500包括記憶體控制器510以及記憶體陣列520,其中記憶體控制器510根據主機10所發出之讀取指令CMDR,而對記憶體陣列520進行讀取操作。記憶體陣列520係對應至第2圖之記憶體陣列220,包括第一記憶體庫521、第二記憶體庫522、第三記憶體庫523以及第四記憶體庫524,且第一記憶體庫521包括第一子記憶體庫521A,第二記憶體庫522包括第二子記憶體庫522A。
如第5圖所示之實施例,當記憶體控制器510係根據讀取指令CMDR而讀取儲存於第一記憶體庫521之讀取資料DR時,記憶體控制器510讀取儲存於第三記憶體庫523且對應至讀取資料DR之漢明重量HW,並同時讀取儲存於第四記憶體庫524之反相漢明重量HWB,其中反向漢明重量HWB係為漢明重量HW之反相。
當記憶體控制器510產生具有漢明重量HW之假資料FD後,記憶體控制器510將假資料FD寫入至第一子記憶體庫521A,且同時將假資料FD之反相的反向假資料FDB寫入至第二子記憶體庫522A。接著,記憶體控制器510同時讀取第一記憶體庫521之讀取資料DR以及第二子記憶體庫522A之反相假資料FDB。
根據本發明之另一實施例,當記憶體控制器510係根據讀取指令CMDR而讀取儲存於第二記憶體庫522之讀取資料DR(第5圖並未顯示)時,記憶體控制器510讀取儲存於第三記憶體庫523且對應至讀取資料DR之漢明重量HW,並且同時讀取儲存於第四記憶體庫524之反相漢明重量HWB。當記憶體控制器510產生具有漢明重量HW之假資料FD後,記憶體控制器510將假資料FD寫入至第二子記憶體庫522A,且同時將假資料FD之反相的反向假資料FDB寫入至第一子記憶體庫521A。接著,記憶體控制器510同時讀取第二記憶體庫522之讀取資料DR以及第一子記憶體庫521A之反相假資料FDB。
根據本發明之一實施例,由於漢明重量HW以及反相漢明重量HWB係互為反相,因此同時讀取漢明重量HW以及反相漢明重量HWB有助於平衡讀取之邏輯1之位元數以及讀取之邏輯0之位元數,以利增進資料安全性。根據本發明之一實施例,由於讀取資料DR以及假資料FD具有相同的漢明重量HW,記憶體控制器510同時對讀取資料DB以及反相假資料FDB進行讀取用以平衡讀取之邏輯1之位元數以及邏輯0之位元數,以利增進資料安全性。
根據本發明之許多實施例,當記憶體控制器510自第一記憶體庫521/第二記憶體庫522讀取另一讀取資料(第5圖未顯示)時,記憶體控制器510對應另一讀取資料產生另一反相假資料寫入至第二子記憶體庫522A/第一子記憶體庫521A。因此,第二子記憶體庫522A/第一子記憶體庫521A之空間僅需反相假資料之大小即可。與第1圖之記憶體裝置100相比,第5圖之記憶體裝置500可增加可讀取之儲存空間,因而大幅提升記憶體陣列的空間利用率。
根據本發明之一實施例,記憶體控制器510包括漢明重量解碼器511,其中漢明重量解碼器511用以根據漢明重量HW,產生具有漢明重量HW之假資料FD,並將假資料FD反相而產生反相假資料FDB。根據本發明之一些實施例,由於讀取資料DR以及假資料FD皆具有漢明重量HW,代表讀取資料DR以及假資料FD具有相同位元數之邏輯1或相同位元數之邏輯0。根據本發明之一些實施例,儘管讀取資料DR以及假資料FD皆具有漢明重量HW,讀取資料DR可與假資料FD完全相同或不同。
根據本發明之一實施例,第1圖之第一記憶體庫121以及第二記憶體庫122之記憶體空間係分別為K*N位元;第5圖之第一記憶體庫521以及第二記憶體庫522之記憶體空間分別為K*N位元,第一子記憶體庫521A以及第二子記憶體庫522A之記憶體空間分別為1*N位元,第三記憶體庫523以及第四記憶體庫524之記憶體空間分別為
Figure 02_image001
位元。由於第1圖之記憶體裝置100非用以儲存讀取資料的記憶體空間係為K*N位元,第5圖之記憶體裝置500非用以儲存讀取資料的記憶體空間(即,第一子記憶體庫521A、第二子記憶體庫522A、第三記憶體庫523以及第四記憶體庫524)係為
Figure 02_image003
位元。當N以及K皆遠大於1時,因此第5圖之記憶體裝置500之記憶體空間的利用率係趨近於100%,大於第1圖之記憶體裝置100之50%的記憶體空間利用率。
第6圖係顯示根據本發明之一實施例所述之讀取方法之流程圖。以下針對第6圖所示之寫入方法600之流程圖的敘述,將搭配第5圖之方塊圖,以利詳細說明。
首先,利用記憶體控制器510接收主機10發送之讀取指令CMDR(步驟S61),用以讀取記憶體陣列520之第一記憶體庫521之第一資料(即,讀取資料DR)。接著,利用記憶體控制器510,讀取第三記憶體庫523之第一漢明重量(即,漢明重量HW)(步驟S62),其中第一漢明重量(即,漢明重量HW)代表第一資料(即,讀取資料DR)具有第一位元數之第一邏輯以及第二位元數之第二邏輯。根據本發明之一實施例,第一邏輯係為邏輯1,第二邏輯係為邏輯0。根據本發明之另一實施例,第一邏輯係為邏輯0,第二邏輯係為邏輯1。
當讀取第一漢明重量(步驟S62)時,同時利用記憶體控制器,510讀取記憶體陣列520之第四記憶體庫524之第二漢明重量(即,反相漢明重量HWB)(步驟S63)。根據本發明之一實施例,同時讀取第一漢明重量(即,漢明重量HW)以及第二漢明重量(即,反相漢明重量HWB),使得讀取之邏輯1的位元數以及邏輯0的位元數相等,進而增加資料安全性。
在步驟S62後,利用漢明重量解碼器511,根據第一漢明重量(即,漢明重量HW)產生第一假資料(即,反相假資料FDB)以及第二假資料(即,假資料FD)(步驟S64),其中第一假資料(即,反相假資料FDB)具有第二位元數之第一邏輯以及第一位元數之第二邏輯,第二假資料(即,假資料FD)具有第一位元數之第一邏輯以及第二位元數之第二邏輯。換句話說,第一資料(即,讀取資料DR)以及第二假資料(即,假資料FD)具有相同位元數之邏輯1及/或相同位元數之邏輯0,而第一假資料係與第二假資料互為反相。
根據本發明之一實施例,漢明重量解碼器511係產生具有第一漢明重量(即,漢明重量HW)之第二假資料(即,假資料FD),並將第二假資料(即,假資料FD)反相而產生第一假資料(即,反相假資料FDB)。
接著,利用記憶體控制器510將第一假資料(即,反相假資料FDB)寫入第二子記憶體庫522A(步驟S65),並且同時將第二假資料(即,假資料FD)寫入第一子記憶體庫521A(步驟S66)。根據本發明之一實施例,由於第一假資料(即,反相假資料FDB)具有第二位元數之第一邏輯以及第一位元數之第二邏輯,第二假資料(即,假資料FD)具有第一位元數之第一邏輯以及第二位元數之第二邏輯,同時執行步驟S65以及步驟S66代表同時寫入第一位元數加上第二位元數之第一邏輯以及第二邏輯,進而增進資料的安全性。
隨後,利用記憶體控制器510同時讀取第一資料(即,讀取資料DR)以及第一假資料(即,反相假資料FDB)(步驟S67),以平衡讀取之邏輯1以及邏輯0之位元數。最後,利用記憶體控制器510,僅將第一資料(即,讀取資料DR)傳送至主機10(步驟S68),已完成讀取方法600。
根據本發明之另一實施例,當步驟S61中接收之讀取指令CMDW係用以讀取記憶體陣列520之第二記憶體庫522之第一資料(即,讀取資料DR)時,於步驟S62同樣讀取第三記憶體庫5232之第一漢明重量(即,漢明重量HW),以及讀取記憶體陣列520之第四記憶體庫524之第二漢明重量(即,反相漢明重量HWB)(步驟S63)。接著,在步驟S65中,利用記憶體控制器510將第一假資料(即,反相假資料FDB)寫入第一子記憶體庫521A,在步驟S66中同時將第二假資料(即,假資料FD)寫入第二子記憶體庫522A。
雖然本揭露的實施例及其優點已揭露如上,但應該瞭解的是,任何所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作更動、替代與潤飾。此外,本揭露之保護範圍並未侷限於說明書內所述特定實施例中的製程、機器、製造、物質組成、裝置、方法及步驟,任何所屬技術領域中具有通常知識者可從本揭露一些實施例之揭示內容中理解現行或未來所發展出的製程、機器、製造、物質組成、裝置、方法及步驟,只要可以在此處所述實施例中實施大抵相同功能或獲得大抵相同結果皆可根據本揭露一些實施例使用。因此,本揭露之保護範圍包括上述製程、機器、製造、物質組成、裝置、方法及步驟。另外,每一申請專利範圍構成個別的實施例,且本揭露之保護範圍也包括各個申請專利範圍及實施例的組合。
10:主機 100、200、500:記憶體裝置 110、210、510:記憶體控制器 120、220、520:記憶體陣列 121、221、521:第一記憶體庫 122、222、522:第二記憶體庫 211:漢明重量編碼器 223、523:第三記憶體庫 224、524:第四記憶體庫 221A、521A:第一子記憶體庫 222A、522A:第二子記憶體庫 DT:資料 DTB:反相資料 CMD:操作指令 CMDW:寫入指令 CMDR:讀取指令 DW:寫入資料 DR:讀取資料 DWB:反相寫入資料 HW:漢明重量 HWB:反相漢明重量 FD:假資料 FDB:反向假資料 S31~S37、S61~S68:步驟流程
第1圖係顯示根據本發明之一實施例所述之記憶體裝置之方塊圖; 第2圖係顯示根據本發明之另一實施例所述之寫入裝置之方塊圖; 第3圖係顯示根據本發明之一實施例所述之寫入方法之流程圖; 第4圖係顯示根據本發明之另一實施例所述之寫入方法之流程圖; 第5圖係顯示根據本發明之另一實施例所述之記憶體裝置之方塊圖;以及 第6圖係顯示根據本發明之一實施例所述之讀取方法之流程圖。
10:主機
200:記憶體裝置
210:記憶體控制器
220:記憶體陣列
221:第一記憶體庫
222:第二記憶體庫
211:漢明重量編碼器
223:第三記憶體庫
224:第四記憶體庫
221A:第一子記憶體庫
222A:第二子記憶體庫
CMDW:寫入指令
DW:寫入資料
DWB:反相寫入資料
HW:漢明重量
HWB:反相漢明重量

Claims (10)

  1. 一種記憶體裝置,包括: 一記憶體陣列,包括: 一第一記憶體庫,包括一第一子記憶體庫; 一第二記憶體庫,包括一第二子記憶體庫;以及 一第三記憶體庫;以及 一記憶體控制器,根據一主機發送之一寫入指令,同時將上述主機發送之一第一資料寫入至上述第一記憶體庫以及將上述第二資料寫入至上述第二子記憶體庫,且將上述第一資料之一第一漢明重量寫入上述第三資料庫,其中上述第二資料係為上述第一資料之反相。
  2. 如申請專利範圍第1項所述之記憶體裝置,其中上述記憶體陣列更包括: 一第四記憶體庫,用以儲存一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相,其中上述記憶體控制器同時將上述第一漢明重量寫入上述第三記憶體庫且將上述第二漢明重量寫入上述第四記憶體庫。
  3. 如申請專利範圍第2項所述之記憶體裝置,其中上述記憶體控制器更包括: 一漢明重量編碼器,用以計數上述第一資料具有一第一位元數之一第一邏輯,而根據上述第一位元數產生上述第一漢明重量,並且產生上述第一漢明重量之反相之上述第二漢明重量。
  4. 如申請專利範圍第2項所述之記憶體裝置,其中當上述記憶體控制器接收到上述主機發送之一讀取指令以讀取上述第一記憶體庫之上述第一資料時,上述記憶體控制器同時讀取上述第三記憶體庫之上述第一漢明重量以及上述第四記憶體庫之上述第二漢明重量,其中上述記憶體控制器根據上述第一漢明重量產生一第一假資料,將上述第一假資料寫入上述第一子記憶體庫且將一第二假資料寫入上述第二子記憶體庫,其中上述第二假資料係為上述第一假資料之反相,其中上述記憶體控制器同時讀取上述第一資料以及上述第二假資料,並將上述第一資料傳送至上述主機。
  5. 如申請專利範圍第4項所述之記憶體裝置,其中上述記憶體控制器更包括: 一漢明重量解碼器,產生具有上述第一漢明重量之上述第一假資料,並且產生上述第一假資料之反相之上述第二假資料,其中上述第一資料以及上述第一假資料皆具有一第一位元數之一第一邏輯以及一第二位元數之一第二邏輯。
  6. 一種寫入方法,適用於一記憶體陣列,其中上述記憶體陣列包括一第一記憶體庫以及一第二記憶體庫,其中上述一第一記憶體庫包括一第一子記憶體庫,上述第二記憶體庫包括一第二子記憶體庫,上述寫入方法包括: 接收一主機發送之一寫入指令以及一第一資料; 將上述第一資料寫入至上述第一記憶體庫,且同時將一第二資料寫入至上述第二子記憶體庫,其中上述第二資料係為上述第一資料之反相;以及 將上述第一資料之一第一漢明重量寫入至上述記憶體陣列之一第三記憶體庫。
  7. 如申請專利範圍第6項所述之寫入方法,更包括: 產生一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相;以及 當執行上述將上述第一資料之上述第一漢明重量寫入至上述記憶體陣列之上述第三記憶體庫之步驟時,同時將上述第二漢明重量寫入至上述記憶體陣列之上述第四記憶體庫。
  8. 一種讀取方法,適用於一記憶體陣列,其中上述記憶體陣列包括儲存一第一資料之一第一記憶體庫、一第二記憶體庫以及儲存上述第一資料之一第一漢明重量之一第三記憶體庫,其中上述一第一記憶體庫包括一第一子記憶體庫,上述第二記憶體庫包括一第二子記憶體庫,上述讀取方法包括: 接收到上述主機發送之一讀取指令,用以讀取上述第一記憶體庫之上述第一資料; 讀取上述第一漢明重量,其中上述第一漢明重量代表上述第一資料具有一第一位元數之一第一邏輯以及一第二位元數之一第二邏輯; 根據上述第一漢明重量產生一第一假資料,其中上述第一假資料具有上述第一位元數之一第二邏輯以及上述第二位元數之一第一邏輯; 將上述第一假資料寫入上述第二子記憶體庫;以及 同時讀取上述第一資料以及上述第一假資料。
  9. 如申請專利範圍第8項所述之讀取方法,更包括: 當讀取上述第一漢明重量時,同時讀取上述記憶體陣列之一第四記憶體庫之一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相;以及 在上述同時讀取上述第一資料以及上述第一假資料之步驟之後,僅將上述第一資料傳送至上述主機。
  10. 如申請專利範圍第8項所述之讀取方法,其中上述根據上述第一漢明重量產生上述第一假資料之步驟更包括: 根據上述第一漢明重量產生一第二假資料,其中上述第二假資料具有上述第一位元數之上述第一邏輯以及上述第二位元數之上述第二邏輯;以及 將上述第二假資料反相,而產生上述第一假資料。
TW108132365A 2019-09-09 2019-09-09 記憶體裝置、寫入方法以及讀取方法 TWI774985B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW108132365A TWI774985B (zh) 2019-09-09 2019-09-09 記憶體裝置、寫入方法以及讀取方法
CN201911372389.1A CN112466364B (zh) 2019-09-09 2019-12-27 存储器装置、写入方法以及读取方法
US17/014,239 US11748274B2 (en) 2019-09-09 2020-09-08 Banked memory device storing hamming weight

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108132365A TWI774985B (zh) 2019-09-09 2019-09-09 記憶體裝置、寫入方法以及讀取方法

Publications (2)

Publication Number Publication Date
TW202111538A TW202111538A (zh) 2021-03-16
TWI774985B true TWI774985B (zh) 2022-08-21

Family

ID=74807646

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108132365A TWI774985B (zh) 2019-09-09 2019-09-09 記憶體裝置、寫入方法以及讀取方法

Country Status (3)

Country Link
US (1) US11748274B2 (zh)
CN (1) CN112466364B (zh)
TW (1) TWI774985B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12100473B2 (en) * 2022-06-23 2024-09-24 Microsoft Technology Licensing, Llc Computer memory arrays employing memory banks and integrated serializer/de-serializer circuits for supporting serialization/de-serialization of read/write data in burst read/write modes, and related methods
US12113550B1 (en) * 2023-06-08 2024-10-08 Nxp B.V. Enhanced tearing save encoding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10073661B2 (en) * 2016-07-20 2018-09-11 Atmel Corporation Security extensions for non-volatile memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549483B2 (en) * 2001-03-30 2003-04-15 Atmos Corporation RAM having dynamically switchable access modes
KR100827703B1 (ko) * 2006-12-14 2008-05-07 삼성전자주식회사 상변화메모리 장치의 테스트 방법
US8667244B2 (en) * 2011-03-21 2014-03-04 Hewlett-Packard Development Company, L.P. Methods, systems, and apparatus to prevent memory imprinting
CN102903387A (zh) * 2012-09-27 2013-01-30 上海宏力半导体制造有限公司 存储阵列装置及其减小读电流的方法
EP2885875A1 (fr) * 2013-02-27 2015-06-24 Morpho Procede d'encodage de donnees sur une carte a puce par des codes de poids constant
KR102174030B1 (ko) * 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
US9836277B2 (en) * 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
US10944435B1 (en) * 2020-03-27 2021-03-09 Nxp B.V. Tearing save encoding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10073661B2 (en) * 2016-07-20 2018-09-11 Atmel Corporation Security extensions for non-volatile memory

Also Published As

Publication number Publication date
TW202111538A (zh) 2021-03-16
US20210073146A1 (en) 2021-03-11
US11748274B2 (en) 2023-09-05
CN112466364B (zh) 2024-07-09
CN112466364A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
US11043259B2 (en) System and method for in-memory compute
CN101685381B (zh) 固态大容量存储装置的数据串流
US11483167B2 (en) Method and apparatus to provide memory based physically unclonable functions
CN115664640B (zh) Sha-3算法的硬件实现方法、系统、存储介质及设备
US11137944B1 (en) Combined QLC programming method
CN110007850A (zh) 存储器控制器以及用于对存储模块进行访问的方法
US9424442B2 (en) Nonvolatile memory and electronic device
TWI774985B (zh) 記憶體裝置、寫入方法以及讀取方法
KR20160074836A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN107045882A (zh) 能够快速写入数据的存储电路
US20190363898A1 (en) Physically unclonable function device for use in user authentication system and operation method thereof
CN104252420B (zh) 数据写入方法及内存系统
CN102024490B (zh) 伪静态存储器及其读操作与刷新操作的控制方法
CN102024492B (zh) 伪静态存储器及其写操作与刷新操作的控制方法
CN113228025A (zh) 确保安全的存储器存取的方法及装置
JP6332756B2 (ja) データ処理方法、装置、およびシステム
CN105264500A (zh) 一种数据传输方法及装置
CN102265266A (zh) 一种数据地址编码的方法及装置
US12073918B2 (en) Memory device deserializer circuit with a reduced form factor
US12019879B2 (en) Multi-level cell memory management
TWI721660B (zh) 控制資料讀寫裝置與方法
CN104658601B (zh) 基于stt‑ram存储单元错误率分布的puf认证方法
US9122570B2 (en) Data pattern generation for I/O training and characterization
TWI889507B (zh) 記憶體裝置、其操作方法及記憶體系統
US10657051B2 (en) Memory device and operation method thereof

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent