TW202111538A - Memory device, writing method, and reading method - Google Patents

Memory device, writing method, and reading method Download PDF

Info

Publication number
TW202111538A
TW202111538A TW108132365A TW108132365A TW202111538A TW 202111538 A TW202111538 A TW 202111538A TW 108132365 A TW108132365 A TW 108132365A TW 108132365 A TW108132365 A TW 108132365A TW 202111538 A TW202111538 A TW 202111538A
Authority
TW
Taiwan
Prior art keywords
data
memory
memory bank
hamming weight
sub
Prior art date
Application number
TW108132365A
Other languages
Chinese (zh)
Other versions
TWI774985B (en
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/en
Priority to CN201911372389.1A priority patent/CN112466364A/en
Priority to US17/014,239 priority patent/US11748274B2/en
Publication of TW202111538A publication Critical patent/TW202111538A/en
Application granted granted Critical
Publication of TWI774985B publication Critical patent/TWI774985B/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • 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
    • G06F13/1668Details of memory controller
    • 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; CALCULATING OR 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; 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
    • 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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

A memory device includes a memory array and a memory controller. The memory array includes a first memory bank, a second memory bank, and a third memory bank. The first memory bank includes a first sub memory bank. The second memory bank includes a second sub memory bank. The memory controller, according to a write command from a host, writes first data from the host to the first memory bank and second data to the second memory bank at the same time, and writes a first hamming weight of the first data to the third memory bank. The second data is an inverse of the first data.

Description

記憶體裝置、寫入方法以及讀取方法Memory device, writing method and reading method

本發明係有關於一種記憶體裝置及其寫入方法與讀取方法,特別係有關於一種具有資料安全之記憶體裝置及其寫入方法與讀取方法。The present invention relates to a memory device and its writing method and reading method, and more particularly to a memory device with data security and its writing method and reading method.

由於靜態隨機存取記憶體(Static Random Access Memory,SRAM)執行寫入或讀取邏輯0以及邏輯1的功耗可能不相同,使得駭客在知道靜態隨機存取記憶體讀寫邏輯0以及邏輯1之功耗的情況下,能夠透過功耗的變化以及排列組合而得知真實讀寫的資料內容。因此對於機密資料的處理,我們需要一個能夠更有效率的方式來維護資料的安全性。Since the power consumption of static random access memory (SRAM) for writing or reading logic 0 and logic 1 may be different, hackers know that static random access memory reads and writes logic 0 and logic 1 In the case of power consumption of 1, the actual read and write data content can be known through the change of power consumption and permutation and combination. Therefore, for the handling of confidential information, we need a more efficient way to maintain the security of the information.

有鑑於此,本發明提出一種記憶體裝置,包括一記憶體陣列以及一記憶體控制器。上述記憶體陣列包括一第一記憶體庫、一第二記憶體庫以及一第三記憶體庫。上述第一記憶體庫包括一第一子記憶體庫。上述第二記憶體庫包括一第二子記憶體庫。上述記憶體控制器根據一主機發送之一寫入指令,同時將上述主機發送之一第一資料寫入至上述第一記憶體庫以及將上述第二資料寫入至上述第二子記憶體庫,且將上述第一資料之一第一漢明重量寫入上述第三資料庫,其中上述第二資料係為上述第一資料之反相。In view of this, the present invention provides a memory device including a memory array and a memory controller. The memory array includes a first memory bank, a second memory bank, and a third memory bank. The above-mentioned first memory bank includes a first sub-memory bank. The above-mentioned second memory bank includes a second sub-memory bank. The memory controller sends a write command from a host, and simultaneously writes a first data sent by the host to the first memory bank and writes the second data to the second sub-memory bank at the same time , And write the first Hamming weight, one of the first data, into the third database, wherein the second data is the inverse of the first data.

根據本發明之一實施例,上述記憶體陣列更包括一第四記憶體庫。上述第四記憶體庫用以儲存一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相,其中上述記憶體控制器同時將上述第一漢明重量寫入上述第三記憶體庫且將上述第二漢明重量寫入上述第四記憶體庫。According to an embodiment of the present invention, the above-mentioned memory array further includes a fourth memory bank. The fourth memory bank is used to store a second Hamming weight, wherein the second Hamming weight is the inverse of the first Hamming weight, and the memory controller writes the first Hamming weight at the same time Enter the third memory bank and write the second Hamming weight into the fourth memory bank.

根據本發明之一實施例,上述記憶體控制器更包括一漢明重量編碼器。上述漢明重量編碼器用以計數上述第一資料具有一第一位元數之一第一邏輯,而根據上述第一位元數產生上述第一漢明重量,並且產生上述第一漢明重量之反相之上述第二漢明重量。According to an embodiment of the present invention, the aforementioned memory controller further includes a Hamming weight encoder. The Hamming weight encoder is used to count that the first data has a first bit number and a first logic, and generates the first Hamming weight according to the first bit number, and generates the first hamming weight Reverse the above second Hamming weight.

根據本發明之一實施例,當上述記憶體控制器接收到上述主機發送之一讀取指令以讀取上述第一記憶體庫之上述第一資料時,上述記憶體控制器同時讀取上述第三記憶體庫之上述第一漢明重量以及上述第四記憶體庫之上述第二漢明重量,其中上述記憶體控制器根據上述第一漢明重量產生一第一假資料,將上述第一假資料寫入上述第一子記憶體庫且將一第二假資料寫入上述第二子記憶體庫,其中上述第二假資料係為上述第一假資料之反相,其中上述記憶體控制器同時讀取上述第一資料以及上述第二假資料,並將上述第一資料傳送至上述主機。According to an embodiment of the present invention, when the memory controller receives a read command sent by the host to read the first data in the first memory bank, the memory controller reads the first data at the same time The first Hamming weight of the three memory banks and the second Hamming weight of the fourth memory bank, wherein the memory controller generates a first dummy data according to the first Hamming weight, and the first Dummy data is written into the first sub-memory bank and a second dummy data is written into the second sub-memory bank, wherein the second dummy data is the inverse of the first dummy data, and the memory controls The device reads the first data and the second fake data at the same time, and transmits the first data to the host.

根據本發明之一實施例,上述記憶體控制器更包括一漢明重量解碼器。上述漢明重量解碼器產生具有上述第一漢明重量之上述第一假資料,並且產生上述第一假資料之反相之上述第二假資料,其中上述第一資料以及上述第一假資料皆具有一第一位元數之一第一邏輯以及一第二位元數之一第二邏輯。According to an embodiment of the present invention, the aforementioned memory controller further includes a Hamming weight decoder. The Hamming weight decoder generates the first fake data having the first Hamming weight, and generates the second fake data that is the inverse of the first fake data, wherein the first data and the first fake data are both There is a first logic with a first bit number and a second logic with a second bit number.

本發明更提出一種寫入方法,適用於一記憶體陣列,其中上述記憶體陣列包括一第一記憶體庫以及一第二記憶體庫,其中上述一第一記憶體庫包括一第一子記憶體庫,上述第二記憶體庫包括一第二子記憶體庫。上述寫入方法包括:接收一主機發送之一寫入指令以及一第一資料;將上述第一資料寫入至上述第一記憶體庫,且同時將一第二資料寫入至上述第二子記憶體庫,其中上述第二資料係為上述第一資料之反相;以及將上述第一資料之一第一漢明重量寫入至上述記憶體陣列之一第三記憶體庫。The present invention further provides a writing method suitable for a memory array, wherein the memory array includes a first memory bank and a second memory bank, wherein the first memory bank includes a first sub-memory The second memory bank includes a second sub-memory bank. The writing method includes: receiving a writing command and a first data sent by a host; writing the first data to the first memory bank, and simultaneously writing a second data to the second sub A memory bank, wherein the second data is the inverse of the first data; and a first Hamming weight of the first data is written into a third memory bank of the memory array.

根據本發明之一實施例,上述寫入方法更包括:產生一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相;以及當執行上述將上述第一資料之上述第一漢明重量寫入至上述記憶體陣列之上述第三記憶體庫之步驟時,同時將上述第二漢明重量寫入至上述記憶體陣列之上述第四記憶體庫。According to an embodiment of the present invention, the writing method further includes: generating a second Hamming weight, wherein the second Hamming weight is the inverse of the first Hamming weight; During the step of writing the first Hamming weight of the data to the third memory bank of the memory array, the second Hamming weight is written to the fourth memory bank of the memory array at the same time.

本發明更提出一種讀取方法,適用於一記憶體陣列,其中上述記憶體陣列包括儲存一第一資料之一第一記憶體庫、一第二記憶體庫以及儲存上述第一資料之一第一漢明重量之一第三記憶體庫,其中上述一第一記憶體庫包括一第一子記憶體庫,上述第二記憶體庫包括一第二子記憶體庫。上述讀取方法包括:接收到上述主機發送之一讀取指令,用以讀取上述第一記憶體庫之上述第一資料;讀取上述第一漢明重量,其中上述第一漢明重量代表上述第一資料具有一第一位元數之一第一邏輯以及一第二位元數之一第二邏輯;根據上述第一漢明重量產生一第一假資料,其中上述第一假資料具有上述第一位元數之一第二邏輯以及上述第二位元數之一第一邏輯;將上述第一假資料寫入上述第二子記憶體庫;以及同時讀取上述第一資料以及上述第一假資料。The present invention further provides a reading method suitable for a memory array, wherein the memory array includes a first memory bank storing a first data, a second memory bank, and a second memory bank storing the first data. A third memory bank with a Hamming weight, wherein the first memory bank includes a first sub-memory bank, and the second memory bank includes a second sub-memory bank. The reading method includes: receiving a reading command sent by the host to read the first data in the first memory library; reading the first Hamming weight, wherein the first Hamming weight represents The first data has a first logic with a first bit number and a second logic with a second bit number; a first fake data is generated according to the first Hamming weight, wherein the first fake data has One of the second logic of the first bit number and the first logic of the second bit number; writing the first dummy data into the second sub-memory library; and simultaneously reading the first data and the The first fake information.

根據本發明之一實施例,上述讀取方法更包括:當讀取上述第一漢明重量時,同時讀取上述記憶體陣列之一第四記憶體庫之一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相;以及在上述同時讀取上述第一資料以及上述第一假資料之步驟之後,僅將上述第一資料傳送至上述主機。According to an embodiment of the present invention, the above-mentioned reading method further includes: when reading the above-mentioned first Hamming weight, simultaneously reading one of the second Hamming weights of one of the fourth memory banks of the memory array, and The second Hamming weight is the inverse of the first Hamming weight; and after the step of simultaneously reading the first data and the first fake data, only the first data is sent to the host.

根據本發明之一實施例,上述根據上述第一漢明重量產生上述第一假資料之步驟更包括:根據上述第一漢明重量產生一第二假資料,其中上述第二假資料具有上述第一位元數之上述第一邏輯以及上述第二位元數之上述第二邏輯;以及將上述第二假資料反相,而產生上述第一假資料。According to an embodiment of the present invention, the step of generating the first fake data based on the first Hamming weight further includes: generating a second fake data based on the first Hamming weight, wherein the second fake data has the first fake data. The first logic of one bit and the second logic of the second bit; and inverting the second fake data to generate the first fake data.

以下說明為本發明的實施例。其目的是要舉例說明本發明一般性的原則,不應視為本發明之限制,本發明之範圍當以申請專利範圍所界定者為準。The following description is an embodiment of the present invention. Its purpose is to exemplify the general principles of the present invention and should not be regarded as a limitation of the present invention. The scope of the present invention shall be subject to the scope of the patent application.

值得注意的是,以下所揭露的內容可提供多個用以實踐本發明之不同特點的實施例或範例。以下所述之特殊的元件範例與安排僅用以簡單扼要地闡述本發明之精神,並非用以限定本發明之範圍。此外,以下說明書可能在多個範例中重複使用相同的元件符號或文字。然而,重複使用的目的僅為了提供簡化並清楚的說明,並非用以限定多個以下所討論之實施例以及/或配置之間的關係。此外,以下說明書所述之一個特徵連接至、耦接至以及/或形成於另一特徵之上等的描述,實際可包含多個不同的實施例,包括該等特徵直接接觸,或者包含其它額外的特徵形成於該等特徵之間等等,使得該等特徵並非直接接觸。It should be noted that the content disclosed below can provide multiple embodiments or examples for practicing the different features of the present invention. The specific component examples and arrangements described below are only used to briefly illustrate the spirit of the present invention, and are not used to limit the scope of the present invention. In addition, the following description may reuse the same component symbols or words in multiple examples. However, the purpose of repeated use is only to provide a simplified and clear description, and is not used to limit the relationship between the multiple embodiments and/or configurations discussed below. In addition, the description of one feature connected to, coupled to, and/or formed on another feature described in the following specification may actually include a plurality of different embodiments, including direct contact of these features, or other additional features. The features of are formed between these features, etc., so that these features are not in direct contact.

第1圖係顯示根據本發明之一實施例所述之記憶體裝置之方塊圖。如第1圖所示,記憶體裝置100包括記憶體控制器110以及記憶體陣列120。記憶體控制器110根據主機10所發出之操作指令CMD,而對記憶體陣列120進行寫入操作或讀取操作。記憶體陣列120包括第一記憶體庫121以及第二記憶體庫122。根據本發明之一實施例,記憶體陣列120係為靜態隨機存取記憶體。根據本發明之許多實施例,主機10係為中央處理器或其他資料存取裝置。根據本發明之其他實施例,一微控制器係包括主機10以及記憶體裝置100,其中主機10係為中央處理器。FIG. 1 shows a block diagram of a memory device according to an embodiment of the invention. As shown in FIG. 1, the memory device 100 includes a memory controller 110 and a memory array 120. The memory controller 110 performs a write operation or a read operation on the memory array 120 according to the operation command CMD issued by the host 10. The memory array 120 includes a first memory bank 121 and a second memory bank 122. According to an embodiment of the present invention, the memory array 120 is a static random access memory. According to many embodiments of the present invention, the host 10 is a central processing unit or other data access device. According to other embodiments of the present invention, a microcontroller includes a host 10 and a memory device 100, wherein the host 10 is a central processing unit.

根據本發明之一實施例,當操作指令CMD係為寫入指令時,記憶體控制器110將主機10所發送之資料DT寫入至第一記憶體庫121,並且同時將反相資料DTB寫入至第二記憶體庫122,其中反向資料DTB係為資料DT之反相。根據本發明之另一實施例,當操作指令CMD係為讀取指令時,記憶體控制器110同時讀取第一記憶體庫121之資料以及第二記憶體庫122之反相資料DTB,而僅將資料DT傳送給主機10。According to an embodiment of the present invention, when the operation command CMD is a write command, the memory controller 110 writes the data DT sent by the host 10 into the first memory bank 121, and at the same time writes the inverted data DTB Into the second memory bank 122, the reverse data DTB is the reverse of the data DT. According to another embodiment of the present invention, when the operation command CMD is a read command, the memory controller 110 reads the data of the first memory bank 121 and the inverted data DTB of the second memory bank 122 at the same time, and Only the data DT is sent to the host 10.

根據本發明之一實施例,資料DT係為具有機密性之資料。由於記憶體控制器110執行寫入操作及/或寫入操作時,寫入及/或讀取之邏輯0的位元數以及邏輯1的位元數皆相同,使得每次進行寫入操作及/或讀取操作時的功耗皆相同,進而提升了資料安全性。然而,為了提升資料安全性,記憶體陣列120中一半的空間需用以儲存反相資料,使得記憶體陣列120之利用率因而減半。根據本發明之一實施例,記憶體裝置100之記憶體空間利用率係為50%。為了提升記憶體陣列的儲存效率,我們需要其他的方法來達成資料安全性。According to an embodiment of the present invention, the data DT is confidential data. Since the memory controller 110 performs a write operation and/or a write operation, the number of bits of logic 0 and the number of bits of logic 1 to be written and/or read are the same, so that each write operation and And/or the power consumption during the read operation is the same, thereby improving the data security. However, in order to improve data security, half of the space in the memory array 120 needs to be used to store reversed data, so that the utilization rate of the memory array 120 is thus halved. According to an embodiment of the present invention, the memory space utilization rate of the memory device 100 is 50%. In order to improve the storage efficiency of the memory array, we need other methods to achieve data security.

第2圖係顯示根據本發明之另一實施例所述之寫入裝置之方塊圖。如第2圖所示,記憶體裝置200包括記憶體控制器210以及記憶體陣列220,其中記憶體控制器210根據主機10所發出之寫入指令CMDW,而對記憶體陣列220進行寫入操作。根據本發明之一實施例,記憶體陣列220係為靜態隨機存取記憶體。根據本發明之許多實施例,主機10係為中央處理器或其他資料存取裝置。根據本發明之其他實施例,一微控制器係包括主機10以及記憶體裝置200,其中主機10係為中央處理器。FIG. 2 shows a block diagram of a writing device according to another embodiment of the present invention. As shown in FIG. 2, the memory device 200 includes a memory controller 210 and a memory array 220. The memory controller 210 performs a write operation on the memory array 220 according to a write command CMDW issued by the host 10 . According to an embodiment of the present invention, the memory array 220 is a static random access memory. According to many embodiments of the present invention, the host 10 is a central processing unit or other data access device. According to other embodiments of the present invention, a microcontroller includes a host 10 and a memory device 200, wherein the host 10 is a central processing unit.

如第2圖所示,記憶體陣列220包括第一記憶體庫221、第二記憶體庫222、第三記憶體庫223以及第四記憶體庫224,其中第一記憶體庫221包括第一子記憶體庫221A,第二記憶體庫222包括第二子記憶體庫222A。As shown in Figure 2, the memory array 220 includes a first memory bank 221, a second memory bank 222, a third memory bank 223, and a fourth memory bank 224. The first memory bank 221 includes a first memory bank 221. A sub-memory bank 221A, and the second memory bank 222 includes a second sub-memory bank 222A.

如第2圖所示之實施例,當記憶體控制器210接收到主機10發送之寫入指令CMDW時,記憶體控制器210根據寫入指令CMDW,將主機10發送之寫入資料DW寫入至第一記憶體庫221或第二記憶體庫222之一者,並且同時將反相寫入資料DWB寫入至第二子記憶體庫222A以及第一子記憶體庫221A之一者,其中反向寫入資料DWB係為寫入資料DW之反相資料。As shown in the embodiment shown in Figure 2, when the memory controller 210 receives the write command CMDW sent by the host 10, the memory controller 210 writes the write data DW sent by the host 10 into the write command CMDW according to the write command CMDW. To one of the first memory bank 221 or the second memory bank 222, and simultaneously write the inverted write data DWB to one of the second sub-memory bank 222A and the first sub-memory bank 221A, wherein The reverse write data DWB is the reverse data of the write data DW.

換句話說,當記憶體控制器210將寫入資料DW寫入第一記憶體庫221時,記憶體控制器210同時將反相寫入資料DWB寫入至第二子記憶體庫222A;當記憶體控制器210將寫入資料DW寫入第二記憶體庫222時,記憶體控制器210同時將反相寫入資料DW寫入至第一子記憶體庫221A。由於記憶體控制器210同時將寫入資料DW以及反相寫入資料DWB寫入至記憶體陣列220,使得寫入之邏輯1的位元數以及寫入之邏輯0的位元數相同,因而提升資料的安全性。In other words, when the memory controller 210 writes the write data DW into the first memory bank 221, the memory controller 210 writes the inverted write data DWB into the second sub-memory bank 222A at the same time; When the memory controller 210 writes the write data DW into the second memory bank 222, the memory controller 210 simultaneously writes the inverted write data DW into the first sub-memory bank 221A. Since the memory controller 210 simultaneously writes the write data DW and the reverse write data DWB to the memory array 220, the number of bits of the written logic 1 and the number of bits of the written logic 0 are the same, so Improve data security.

根據本發明之許多實施例,當記憶體控制器210將另一寫入資料(第2圖未顯示)寫入第一記憶體庫221/第二記憶體庫222時,記憶體控制器210同時將另一寫入資料之反相寫入至第二子記憶體庫222A/第一子記憶體庫221A。因此,與第1圖之記憶體裝置100相比,第二子記憶體庫222A/第一子記憶體庫221A之空間可縮小至反相寫入資料之大小第2圖之記憶體裝置200則可增加可寫入之記憶體空間,因而大幅提升記憶體陣列的空間利用率。According to many embodiments of the present invention, when the memory controller 210 writes another write data (not shown in Figure 2) into the first memory bank 221/the second memory bank 222, the memory controller 210 simultaneously Invert another write data to the second sub-memory bank 222A/first sub-memory bank 221A. Therefore, compared with the memory device 100 in Fig. 1, the space of the second sub-memory bank 222A/the first sub-memory bank 221A can be reduced to the size of the inverted write data. The memory device 200 in Fig. 2 is It can increase the memory space that can be written, thereby greatly improving the space utilization of the memory array.

如第2圖所示,記憶體控制器210更包括漢明重量編碼器211。根據本發明之一實施例,當記憶體控制器210接收到寫入資料DW時,漢明重量編碼器211計數寫入資料DW中邏輯1之位元數而產生漢明重量(hamming weight)HW。根據本發明之另一實施例,當記憶體控制器210接收到寫入資料DW時,漢明重量編碼器211也可用以計數寫入資料DW中邏輯0之位元數而產生漢明重量(hamming weight)HW。As shown in FIG. 2, the memory controller 210 further includes a Hamming weight encoder 211. According to an embodiment of the present invention, when the memory controller 210 receives the written data DW, the Hamming weight encoder 211 counts the number of bits of logic 1 in the written data DW to generate a hamming weight (hamming weight) HW . According to another embodiment of the present invention, when the memory controller 210 receives the written data DW, the Hamming weight encoder 211 can also be used to count the number of logic 0 bits in the written data DW to generate the Hamming weight ( hamming weight) HW.

當漢明重量編碼器211產生漢明重量HW後,漢明重量編碼器2111更產生漢明重量HW之反相的反相漢明重量HWB。接著,記憶體控制器210同時將漢明重量HW以及反相漢明重量HWB寫入至第三記憶體庫223以及第四記憶體庫224,用以平衡寫入之邏輯1之位元數以及邏輯0之位元數,其中反向漢明重量HWB係為漢明重量HW之反相。After the Hamming weight encoder 211 generates the Hamming weight HW, the Hamming weight encoder 2111 further generates the inverted Hamming weight HWB of the Hamming weight HW. Then, the memory controller 210 simultaneously writes the Hamming weight HW and the inverted Hamming weight HWB to the third memory bank 223 and the fourth memory bank 224 to balance the number of bits of logic 1 written and The bit number of logic 0, where the reverse Hamming weight HWB is the inverse of the Hamming weight HW.

根據本發明之一實施例,當記憶體控制器210將寫入資料DW寫入第一記憶體庫221且同時將反相寫入資料DWB寫入至第二子記憶體庫222A時,記憶體控制器210更將漢明重量HW寫入至第三記憶體庫223,且同時將反相漢明重量HWB寫入至第四記憶體庫224。According to an embodiment of the present invention, when the memory controller 210 writes the write data DW into the first memory bank 221 and simultaneously writes the inverted write data DWB to the second sub-memory bank 222A, the memory The controller 210 further writes the Hamming weight HW to the third memory bank 223, and at the same time writes the inverted Hamming weight HWB to the fourth memory bank 224.

根據本發明之另一實施例,當記憶體控制器210將寫入資料寫入第二記憶體庫222且同時將反相寫入資料DWB寫入至第一子記憶體庫221A時,記憶體控制器210同樣將漢明重量HW寫入至第三記憶體庫223,且同時將反相漢明重量HWB寫入至第四記憶體庫224。According to another embodiment of the present invention, when the memory controller 210 writes the write data into the second memory bank 222 and simultaneously writes the inverted write data DWB to the first sub-memory bank 221A, the memory The controller 210 also writes the Hamming weight HW to the third memory bank 223 and writes the inverted Hamming weight HWB to the fourth memory bank 224 at the same time.

根據本發明之一實施例,第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%的記憶體空間利用率。According to an embodiment of the present invention, the memory spaces of the first memory bank 121 and the second memory bank 122 in FIG. 1 are K*N bits, respectively; the first memory bank 221 and the second memory bank 221 in FIG. The memory spaces of the two memory banks 222 are K*N bits respectively, the memory spaces of the first sub-memory bank 221A and the second sub-memory bank 222A are 1*N bits respectively, and the third memory bank 223 And the memory space of the fourth memory bank 224 are
Figure 02_image001
Bit. Since the memory space of the memory device 100 in FIG. 1 not used to store written data is K*N bits, the memory device 200 in FIG. 2 is not used to store write data in the memory space (ie, The first sub-memory bank 221A, the second sub-memory bank 222A, the third memory bank 223, and the fourth memory bank 224) are
Figure 02_image003
Bit. When N and K are both far greater than 1, the utilization rate of the memory space of the memory device 200 in Figure 2 approaches 100%, which is much larger than the 50% memory space of the memory device 100 in Figure 1 Utilization rate.

第3圖係顯示根據本發明之一實施例所述之寫入方法之流程圖。以下針對第3圖所示之寫入方法300之流程圖的敘述,將搭配第2圖之方塊圖,以利詳細說明。FIG. 3 shows a flowchart of the writing method according to an embodiment of the invention. The following description of the flowchart of the writing method 300 shown in FIG. 3 will be combined with the block diagram of FIG. 2 for detailed description.

首先,利用記憶體控制器210接收主機10發送之寫入指令CMDW以及第一資料(即,寫入資料DW)(步驟S31)。接著,根據本發明之一實施例,利用記憶體控制器210,將第一資料(即,寫入資料DW)寫入至第一記憶體庫221(步驟S32),且同時將第二資料(即,反相寫入資料DWB)寫入至第二子記憶體庫222A(步驟S33)。根據本發明之另一實施例,利用記憶體控制器210,將第一資料(即,寫入資料DW)寫入至第二記憶體庫222(步驟S32),且同時將第二資料(即,反相寫入資料DWB)寫入至第一子記憶體庫221A(步驟S33)。First, the memory controller 210 is used to receive the write command CMDW and the first data (ie, the write data DW) sent by the host 10 (step S31). Then, according to an embodiment of the present invention, the memory controller 210 is used to write the first data (ie, the write data DW) into the first memory bank 221 (step S32), and at the same time, the second data ( That is, the inverted write data DWB) is written to the second sub-bank 222A (step S33). According to another embodiment of the present invention, the memory controller 210 is used to write the first data (that is, the write data DW) into the second memory bank 222 (step S32), and at the same time, the second data (that is, , The inverted write data DWB) is written to the first sub-memory bank 221A (step S33).

根據本發明之一實施例,同時寫入第一資料(即,寫入資料DW)以及第二資料(即,反相寫入資料DWB)係用以平衡寫入之邏輯1以及邏輯0之位元數。According to an embodiment of the present invention, simultaneously writing the first data (ie, the write data DW) and the second data (ie, the inverted write data DWB) is used to balance the written logic 1 and logic 0 bits Yuan number.

隨後,利用記憶體控制器210之漢明重量編碼器211,計數第一資料(即,寫入資料DW)中為第一邏輯之位元數(步驟S34),並且利用記憶體控制器210,根據第一邏輯之位元數,產生第一漢明重量(即,漢明重量HW)以及第二漢明重量(即,反相漢明重量HWB)(步驟S35)。根據本發明之一實施例,記憶體控制器210係根據第一邏輯之位元數產生第一漢明重量(即,漢明重量HW),再將第一漢明重量反相而產生第二漢明重量(即,反相漢明重量HWB)。根據本發明之一實施例,第一邏輯可為邏輯1。根據本發明之另一實施例,第一邏輯可為邏輯0。Subsequently, the Hamming weight encoder 211 of the memory controller 210 is used to count the number of bits of the first logic in the first data (ie, the written data DW) (step S34), and the memory controller 210 is used to, According to the number of bits in the first logic, a first Hamming weight (ie, Hamming weight HW) and a second Hamming weight (ie, inverted Hamming weight HWB) are generated (step S35). According to an embodiment of the present invention, the memory controller 210 generates a first Hamming weight (ie, Hamming weight HW) according to the number of bits in the first logic, and then inverts the first Hamming weight to generate a second Hamming weight. Hamming weight (ie, inverted Hamming weight HWB). According to an embodiment of the present invention, the first logic may be logic 1. According to another embodiment of the present invention, the first logic may be logic 0.

接著,利用記憶體控制器210,將第一漢明重量(即,漢明重量HW)寫入至記憶體陣列220之第三記憶體庫223(步驟S36),並且同時將第二漢明重量(即,反相漢明重量HWB)寫入至記憶體陣列220之第四記憶體庫224(步驟S37),其中第二漢明重量係為第一漢明重量之反相。Next, the memory controller 210 is used to write the first Hamming weight (ie, the Hamming weight HW) to the third memory bank 223 of the memory array 220 (step S36), and at the same time, the second Hamming weight (Ie, the inverted Hamming weight HWB) is written into the fourth memory bank 224 of the memory array 220 (step S37), where the second Hamming weight is the inverse of the first Hamming weight.

第4圖係顯示根據本發明之另一實施例所述之寫入方法之流程圖。如第4圖所示,步驟S31至步驟S37皆與第3圖之步驟S31至步驟S37相同,其中第4圖之步驟S34(即,計數第一資料(即,寫入資料DW)中為第一邏輯之位元數)以及步驟S35(即,利用記憶體控制器210,根據第一邏輯之位元數,產生第一漢明重量(即,漢明重量HW))係與步驟S32以及步驟S33並列執行,以利增進寫入之速度。FIG. 4 shows a flowchart of a writing method according to another embodiment of the present invention. As shown in Fig. 4, steps S31 to S37 are the same as steps S31 to S37 in Fig. 3, in which step S34 in Fig. 4 (ie, counting the first data (ie, writing data DW) is the first The number of bits in a logic) and step S35 (ie, using the memory controller 210 to generate the first Hamming weight (ie, the Hamming weight HW) based on the number of bits in the first logic) are the same as step S32 and step S33 is executed in parallel to improve the writing speed.

第5圖係顯示根據本發明之另一實施例所述之記憶體裝置之方塊圖。如第5圖所示,記憶體裝置500包括記憶體控制器510以及記憶體陣列520,其中記憶體控制器510根據主機10所發出之讀取指令CMDR,而對記憶體陣列520進行讀取操作。記憶體陣列520係對應至第2圖之記憶體陣列220,包括第一記憶體庫521、第二記憶體庫522、第三記憶體庫523以及第四記憶體庫524,且第一記憶體庫521包括第一子記憶體庫521A,第二記憶體庫522包括第二子記憶體庫522A。FIG. 5 shows a block diagram of a memory device according to another embodiment of the invention. As shown in FIG. 5, the memory device 500 includes a memory controller 510 and a memory array 520. The memory controller 510 performs a read operation on the memory array 520 according to the read command CMDR issued by the host 10 . The memory array 520 corresponds to the memory array 220 in FIG. 2 and includes a first memory bank 521, a second memory bank 522, a third memory bank 523, and a fourth memory bank 524, and the first memory bank The bank 521 includes a first sub-memory bank 521A, and the second memory bank 522 includes a second sub-memory bank 522A.

如第5圖所示之實施例,當記憶體控制器510係根據讀取指令CMDR而讀取儲存於第一記憶體庫521之讀取資料DR時,記憶體控制器510讀取儲存於第三記憶體庫523且對應至讀取資料DR之漢明重量HW,並同時讀取儲存於第四記憶體庫524之反相漢明重量HWB,其中反向漢明重量HWB係為漢明重量HW之反相。As in the embodiment shown in FIG. 5, when the memory controller 510 reads the read data DR stored in the first memory bank 521 according to the read command CMDR, the memory controller 510 reads the read data DR stored in the first memory bank 521 Three memory banks 523 correspond to the Hamming weight HW of the read data DR, and at the same time read the inverted Hamming weight HWB stored in the fourth memory bank 524, where the inverted Hamming weight HWB is the Hamming weight The reverse of HW.

當記憶體控制器510產生具有漢明重量HW之假資料FD後,記憶體控制器510將假資料FD寫入至第一子記憶體庫521A,且同時將假資料FD之反相的反向假資料FDB寫入至第二子記憶體庫522A。接著,記憶體控制器510同時讀取第一記憶體庫521之讀取資料DR以及第二子記憶體庫522A之反相假資料FDB。After the memory controller 510 generates the fake data FD with the Hamming weight HW, the memory controller 510 writes the fake data FD into the first sub-memory bank 521A, and at the same time reverses the reverse of the fake data FD The fake data FDB is written into the second sub-memory bank 522A. Then, the memory controller 510 simultaneously reads the read data DR of the first memory bank 521 and the inverted dummy data FDB of the second sub-memory bank 522A.

根據本發明之另一實施例,當記憶體控制器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。According to another embodiment of the present invention, when the memory controller 510 reads the read data DR (not shown in Figure 5) stored in the second memory bank 522 according to the read command CMDR, the memory controls The device 510 reads the Hamming weight HW stored in the third memory bank 523 and corresponding to the read data DR, and reads the inverted Hamming weight HWB stored in the fourth memory bank 524 at the same time. After the memory controller 510 generates the fake data FD with the Hamming weight HW, the memory controller 510 writes the fake data FD into the second sub-memory bank 522A, and at the same time reverses the reverse of the fake data FD The fake data FDB is written into the first sub-memory bank 521A. Then, the memory controller 510 simultaneously reads the read data DR of the second memory bank 522 and the inverted dummy data FDB of the first sub-memory bank 521A.

根據本發明之一實施例,由於漢明重量HW以及反相漢明重量HWB係互為反相,因此同時讀取漢明重量HW以及反相漢明重量HWB有助於平衡讀取之邏輯1之位元數以及讀取之邏輯0之位元數,以利增進資料安全性。根據本發明之一實施例,由於讀取資料DR以及假資料FD具有相同的漢明重量HW,記憶體控制器510同時對讀取資料DB以及反相假資料FDB進行讀取用以平衡讀取之邏輯1之位元數以及邏輯0之位元數,以利增進資料安全性。According to an embodiment of the present invention, since the Hamming weight HW and the inverted Hamming weight HWB are inverse to each other, reading the Hamming weight HW and the inverted Hamming weight HWB at the same time helps to balance the logic 1 of the reading. The number of bits and the number of bits of logic 0 read to facilitate data security. According to an embodiment of the present invention, since the read data DR and the fake data FD have the same Hamming weight HW, the memory controller 510 simultaneously reads the read data DB and the reverse fake data FDB for balanced reading The number of bits of logic 1 and the number of bits of logic 0 are used to improve data security.

根據本發明之許多實施例,當記憶體控制器510自第一記憶體庫521/第二記憶體庫522讀取另一讀取資料(第5圖未顯示)時,記憶體控制器510對應另一讀取資料產生另一反相假資料寫入至第二子記憶體庫522A/第一子記憶體庫521A。因此,第二子記憶體庫522A/第一子記憶體庫521A之空間僅需反相假資料之大小即可。與第1圖之記憶體裝置100相比,第5圖之記憶體裝置500可增加可讀取之儲存空間,因而大幅提升記憶體陣列的空間利用率。According to many embodiments of the present invention, when the memory controller 510 reads another read data from the first memory bank 521/the second memory bank 522 (not shown in Figure 5), the memory controller 510 corresponds to Another read data generates another inverted dummy data to be written to the second sub-memory bank 522A/first sub-memory bank 521A. Therefore, the space of the second sub-memory bank 522A/first sub-memory bank 521A only needs to reverse the size of the dummy data. Compared with the memory device 100 in FIG. 1, the memory device 500 in FIG. 5 can increase the readable storage space, thereby greatly improving the space utilization of the memory array.

根據本發明之一實施例,記憶體控制器510包括漢明重量解碼器511,其中漢明重量解碼器511用以根據漢明重量HW,產生具有漢明重量HW之假資料FD,並將假資料FD反相而產生反相假資料FDB。根據本發明之一些實施例,由於讀取資料DR以及假資料FD皆具有漢明重量HW,代表讀取資料DR以及假資料FD具有相同位元數之邏輯1或相同位元數之邏輯0。根據本發明之一些實施例,儘管讀取資料DR以及假資料FD皆具有漢明重量HW,讀取資料DR可與假資料FD完全相同或不同。According to an embodiment of the present invention, the memory controller 510 includes a Hamming weight decoder 511, wherein the Hamming weight decoder 511 is used to generate a fake data FD with a Hamming weight HW according to the Hamming weight HW, and to combine the fake data FD with the Hamming weight HW. The data FD is inverted to generate inverted fake data FDB. According to some embodiments of the present invention, since the read data DR and the fake data FD both have a Hamming weight HW, it means that the read data DR and the fake data FD have the same bit number of logic 1 or the same bit number of logic 0. According to some embodiments of the present invention, although both the read data DR and the fake data FD have a Hamming weight HW, the read data DR may be exactly the same as or different from the fake data 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%的記憶體空間利用率。According to an embodiment of the present invention, the memory spaces of the first memory bank 121 and the second memory bank 122 in FIG. 1 are K*N bits, respectively; the first memory bank 521 and the second memory bank in FIG. 5 The memory space of the second memory bank 522 is K*N bits, the memory space of the first sub-memory bank 521A and the second sub-memory bank 522A are 1*N bits respectively, and the third memory bank 523 And the memory space of the fourth memory bank 524 are
Figure 02_image001
Bit. Since the memory space of the memory device 100 in FIG. 1 not used to store read data is K*N bits, the memory device 500 in FIG. 5 is not the memory space used to store read data (ie, The first sub-memory bank 521A, the second sub-memory bank 522A, the third memory bank 523, and the fourth memory bank 524) are
Figure 02_image003
Bit. When N and K are both far greater than 1, the utilization rate of the memory space of the memory device 500 in Figure 5 approaches 100%, which is greater than the 50% memory space utilization of the memory device 100 in Figure 1 rate.

第6圖係顯示根據本發明之一實施例所述之讀取方法之流程圖。以下針對第6圖所示之寫入方法600之流程圖的敘述,將搭配第5圖之方塊圖,以利詳細說明。Fig. 6 shows a flowchart of the reading method according to an embodiment of the present invention. The following description of the flowchart of the writing method 600 shown in FIG. 6 will be combined with the block diagram of FIG. 5 for detailed description.

首先,利用記憶體控制器510接收主機10發送之讀取指令CMDR(步驟S61),用以讀取記憶體陣列520之第一記憶體庫521之第一資料(即,讀取資料DR)。接著,利用記憶體控制器510,讀取第三記憶體庫523之第一漢明重量(即,漢明重量HW)(步驟S62),其中第一漢明重量(即,漢明重量HW)代表第一資料(即,讀取資料DR)具有第一位元數之第一邏輯以及第二位元數之第二邏輯。根據本發明之一實施例,第一邏輯係為邏輯1,第二邏輯係為邏輯0。根據本發明之另一實施例,第一邏輯係為邏輯0,第二邏輯係為邏輯1。First, the memory controller 510 is used to receive the read command CMDR sent by the host 10 (step S61) to read the first data of the first memory bank 521 of the memory array 520 (ie, read the data DR). Next, the memory controller 510 is used to read the first Hamming weight (ie, Hamming weight HW) of the third memory bank 523 (step S62), where the first Hamming weight (ie, Hamming weight HW) It means that the first data (ie, the read data DR) has the first logic of the first bit number and the second logic of the second bit number. According to an embodiment of the present invention, the first logic system is logic 1, and the second logic system is logic 0. According to another embodiment of the present invention, the first logic system is logic 0, and the second logic system is logic 1.

當讀取第一漢明重量(步驟S62)時,同時利用記憶體控制器,510讀取記憶體陣列520之第四記憶體庫524之第二漢明重量(即,反相漢明重量HWB)(步驟S63)。根據本發明之一實施例,同時讀取第一漢明重量(即,漢明重量HW)以及第二漢明重量(即,反相漢明重量HWB),使得讀取之邏輯1的位元數以及邏輯0的位元數相等,進而增加資料安全性。When the first Hamming weight is read (step S62), the memory controller 510 is used to read the second Hamming weight of the fourth memory bank 524 of the memory array 520 (ie, the inverted Hamming weight HWB). ) (Step S63). According to an embodiment of the present invention, the first Hamming weight (ie, Hamming weight HW) and the second Hamming weight (ie, inverted Hamming weight HWB) are read at the same time, so that the bit of logic 1 is read The number of bits and the number of bits of logic 0 are equal, thereby increasing data security.

在步驟S62後,利用漢明重量解碼器511,根據第一漢明重量(即,漢明重量HW)產生第一假資料(即,反相假資料FDB)以及第二假資料(即,假資料FD)(步驟S64),其中第一假資料(即,反相假資料FDB)具有第二位元數之第一邏輯以及第一位元數之第二邏輯,第二假資料(即,假資料FD)具有第一位元數之第一邏輯以及第二位元數之第二邏輯。換句話說,第一資料(即,讀取資料DR)以及第二假資料(即,假資料FD)具有相同位元數之邏輯1及/或相同位元數之邏輯0,而第一假資料係與第二假資料互為反相。After step S62, the Hamming weight decoder 511 is used to generate the first fake data (that is, the inverted fake data FDB) and the second fake data (that is, the fake data) according to the first Hamming weight (ie, the Hamming weight HW). Data FD) (step S64), wherein the first dummy data (ie, the inverted dummy data FDB) has the first logic of the second bit number and the second logic of the first bit number, and the second dummy data (ie, The dummy data FD) has a first logic with a first bit number and a second logic with a second bit number. In other words, the first data (that is, the read data DR) and the second dummy data (that is, the dummy data FD) have the same number of bits of logic 1 and/or the same number of bits of logic 0, and the first false The data system and the second fake data are opposite to each other.

根據本發明之一實施例,漢明重量解碼器511係產生具有第一漢明重量(即,漢明重量HW)之第二假資料(即,假資料FD),並將第二假資料(即,假資料FD)反相而產生第一假資料(即,反相假資料FDB)。According to an embodiment of the present invention, the Hamming weight decoder 511 generates the second fake data (ie, the fake data FD) with the first Hamming weight (ie, the Hamming weight HW), and combines the second fake data ( That is, the fake data FD) is inverted to generate the first fake data (ie, the inverted fake data FDB).

接著,利用記憶體控制器510將第一假資料(即,反相假資料FDB)寫入第二子記憶體庫522A(步驟S65),並且同時將第二假資料(即,假資料FD)寫入第一子記憶體庫521A(步驟S66)。根據本發明之一實施例,由於第一假資料(即,反相假資料FDB)具有第二位元數之第一邏輯以及第一位元數之第二邏輯,第二假資料(即,假資料FD)具有第一位元數之第一邏輯以及第二位元數之第二邏輯,同時執行步驟S65以及步驟S66代表同時寫入第一位元數加上第二位元數之第一邏輯以及第二邏輯,進而增進資料的安全性。Next, the memory controller 510 is used to write the first dummy data (that is, the inverted dummy data FDB) into the second sub-memory bank 522A (step S65), and at the same time, the second dummy data (that is, the dummy data FD) Write to the first sub-memory bank 521A (step S66). According to an embodiment of the present invention, since the first fake data (ie, inverted fake data FDB) has the first logic of the second bit number and the second logic of the first bit number, the second fake data (ie, Fake data FD) has the first logic of the first bit number and the second logic of the second bit number. Performing step S65 and step S66 at the same time means writing the first bit number plus the second bit number at the same time The first logic and the second logic, thereby enhancing the security of the data.

隨後,利用記憶體控制器510同時讀取第一資料(即,讀取資料DR)以及第一假資料(即,反相假資料FDB)(步驟S67),以平衡讀取之邏輯1以及邏輯0之位元數。最後,利用記憶體控制器510,僅將第一資料(即,讀取資料DR)傳送至主機10(步驟S68),已完成讀取方法600。Subsequently, the memory controller 510 is used to simultaneously read the first data (ie, read data DR) and the first dummy data (ie, inverted fake data FDB) (step S67) to balance the read logic 1 and logic The number of bits of 0. Finally, the memory controller 510 is used to transmit only the first data (ie, the read data DR) to the host 10 (step S68), and the reading method 600 is completed.

根據本發明之另一實施例,當步驟S61中接收之讀取指令CMDW係用以讀取記憶體陣列520之第二記憶體庫522之第一資料(即,讀取資料DR)時,於步驟S62同樣讀取第三記憶體庫5232之第一漢明重量(即,漢明重量HW),以及讀取記憶體陣列520之第四記憶體庫524之第二漢明重量(即,反相漢明重量HWB)(步驟S63)。接著,在步驟S65中,利用記憶體控制器510將第一假資料(即,反相假資料FDB)寫入第一子記憶體庫521A,在步驟S66中同時將第二假資料(即,假資料FD)寫入第二子記憶體庫522A。According to another embodiment of the present invention, when the read command CMDW received in step S61 is used to read the first data of the second memory bank 522 of the memory array 520 (ie, read the data DR), Step S62 also reads the first Hamming weight of the third memory bank 5232 (ie, Hamming weight HW), and reads the second Hamming weight of the fourth memory bank 524 of the memory array 520 (ie, reverse Phase Hamming weight (HWB) (step S63). Next, in step S65, the memory controller 510 is used to write the first dummy data (that is, the reversed dummy data FDB) into the first sub-memory bank 521A, and in step S66, the second dummy data (that is, The dummy data FD) is written into the second sub-memory bank 522A.

雖然本揭露的實施例及其優點已揭露如上,但應該瞭解的是,任何所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作更動、替代與潤飾。此外,本揭露之保護範圍並未侷限於說明書內所述特定實施例中的製程、機器、製造、物質組成、裝置、方法及步驟,任何所屬技術領域中具有通常知識者可從本揭露一些實施例之揭示內容中理解現行或未來所發展出的製程、機器、製造、物質組成、裝置、方法及步驟,只要可以在此處所述實施例中實施大抵相同功能或獲得大抵相同結果皆可根據本揭露一些實施例使用。因此,本揭露之保護範圍包括上述製程、機器、製造、物質組成、裝置、方法及步驟。另外,每一申請專利範圍構成個別的實施例,且本揭露之保護範圍也包括各個申請專利範圍及實施例的組合。Although the embodiments of the present disclosure and their advantages have been disclosed as above, it should be understood that anyone with ordinary knowledge in the relevant technical field can make changes, substitutions and modifications without departing from the spirit and scope of the present disclosure. In addition, the protection scope of the present disclosure is not limited to the manufacturing processes, machines, manufacturing, material composition, devices, methods, and steps in the specific embodiments described in the specification. Anyone with ordinary knowledge in the technical field can implement some implementations from this disclosure. The disclosed content of the examples understands the current or future developed processes, machines, manufacturing, material composition, devices, methods, and steps, as long as they can implement substantially the same functions or obtain substantially the same results in the embodiments described herein. The present disclosure uses some embodiments. Therefore, the protection scope of the present disclosure includes the above-mentioned manufacturing processes, machines, manufacturing, material composition, devices, methods, and steps. In addition, each patent application scope constitutes an individual embodiment, and the protection scope of the present disclosure also includes each patent application scope and a combination of embodiments.

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:步驟流程10: host 100, 200, 500: memory device 110, 210, 510: memory controller 120, 220, 520: memory array 121, 221, 521: the first memory bank 122, 222, 522: second memory bank 211: Hamming weight encoder 223, 523: third memory bank 224, 524: fourth memory bank 221A, 521A: the first sub-memory bank 222A, 522A: the second sub-memory bank DT: Information DTB: Reversed data CMD: Operation instruction CMDW: write command CMDR: Read command DW: write data DR: Read data DWB: Write data in reverse phase HW: Hamming weight HWB: Inverted Hamming Weight FD: Fake data FDB: reverse fake data S31~S37, S61~S68: step flow

第1圖係顯示根據本發明之一實施例所述之記憶體裝置之方塊圖; 第2圖係顯示根據本發明之另一實施例所述之寫入裝置之方塊圖; 第3圖係顯示根據本發明之一實施例所述之寫入方法之流程圖; 第4圖係顯示根據本發明之另一實施例所述之寫入方法之流程圖; 第5圖係顯示根據本發明之另一實施例所述之記憶體裝置之方塊圖;以及 第6圖係顯示根據本發明之一實施例所述之讀取方法之流程圖。Figure 1 shows a block diagram of a memory device according to an embodiment of the present invention; Figure 2 shows a block diagram of a writing device according to another embodiment of the present invention; Figure 3 is a flow chart showing the writing method according to an embodiment of the present invention; FIG. 4 shows a flowchart of a writing method according to another embodiment of the present invention; Figure 5 shows a block diagram of a memory device according to another embodiment of the present invention; and Fig. 6 shows a flowchart of the reading method according to an embodiment of the present invention.

10:主機10: host

200:記憶體裝置200: Memory device

210:記憶體控制器210: Memory Controller

220:記憶體陣列220: memory array

221:第一記憶體庫221: first memory bank

222:第二記憶體庫222: second memory bank

211:漢明重量編碼器211: Hamming weight encoder

223:第三記憶體庫223: third memory bank

224:第四記憶體庫224: The fourth memory bank

221A:第一子記憶體庫221A: The first sub-memory bank

222A:第二子記憶體庫222A: The second sub-memory bank

CMDW:寫入指令CMDW: write command

DW:寫入資料DW: write data

DWB:反相寫入資料DWB: Write data in reverse phase

HW:漢明重量HW: Hamming weight

HWB:反相漢明重量HWB: Inverted Hamming Weight

Claims (10)

一種記憶體裝置,包括: 一記憶體陣列,包括: 一第一記憶體庫,包括一第一子記憶體庫; 一第二記憶體庫,包括一第二子記憶體庫;以及 一第三記憶體庫;以及 一記憶體控制器,根據一主機發送之一寫入指令,同時將上述主機發送之一第一資料寫入至上述第一記憶體庫以及將上述第二資料寫入至上述第二子記憶體庫,且將上述第一資料之一第一漢明重量寫入上述第三資料庫,其中上述第二資料係為上述第一資料之反相。A memory device includes: A memory array, including: A first memory bank, including a first sub-memory bank; A second memory bank, including a second sub-memory bank; and A third memory bank; and A memory controller, according to a write command sent by a host, simultaneously writes a first data sent from the host to the first memory bank and writes the second data to the second sub-memory at the same time And write the first Hamming weight of one of the first data into the third database, wherein the second data is the inverse of the first data. 如申請專利範圍第1項所述之記憶體裝置,其中上述記憶體陣列更包括: 一第四記憶體庫,用以儲存一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相,其中上述記憶體控制器同時將上述第一漢明重量寫入上述第三記憶體庫且將上述第二漢明重量寫入上述第四記憶體庫。The memory device described in the first item of the scope of patent application, wherein the above-mentioned memory array further includes: A fourth memory bank for storing a second Hamming weight, wherein the second Hamming weight is the inverse of the first Hamming weight, and the memory controller simultaneously stores the first Hamming weight Write the third memory bank and write the second Hamming weight into the fourth memory bank. 如申請專利範圍第2項所述之記憶體裝置,其中上述記憶體控制器更包括: 一漢明重量編碼器,用以計數上述第一資料具有一第一位元數之一第一邏輯,而根據上述第一位元數產生上述第一漢明重量,並且產生上述第一漢明重量之反相之上述第二漢明重量。The memory device described in item 2 of the scope of patent application, wherein the memory controller further includes: A Hamming weight encoder for counting that the first data has a first logic with a first bit number, and generating the first Hamming weight according to the first bit number, and generating the first Hamming The above-mentioned second Hamming weight is the inverse of the weight. 如申請專利範圍第2項所述之記憶體裝置,其中當上述記憶體控制器接收到上述主機發送之一讀取指令以讀取上述第一記憶體庫之上述第一資料時,上述記憶體控制器同時讀取上述第三記憶體庫之上述第一漢明重量以及上述第四記憶體庫之上述第二漢明重量,其中上述記憶體控制器根據上述第一漢明重量產生一第一假資料,將上述第一假資料寫入上述第一子記憶體庫且將一第二假資料寫入上述第二子記憶體庫,其中上述第二假資料係為上述第一假資料之反相,其中上述記憶體控制器同時讀取上述第一資料以及上述第二假資料,並將上述第一資料傳送至上述主機。The memory device described in item 2 of the scope of patent application, wherein when the memory controller receives a read command sent by the host to read the first data in the first memory bank, the memory The controller reads the first Hamming weight of the third memory bank and the second Hamming weight of the fourth memory bank at the same time, wherein the memory controller generates a first Hamming weight based on the first Hamming weight. Fake data, write the first dummy data into the first sub-memory bank and write a second dummy data into the second sub-memory bank, wherein the second dummy data is the inverse of the first dummy data Phase, wherein the memory controller reads the first data and the second dummy data at the same time, and transmits the first data to the host. 如申請專利範圍第4項所述之記憶體裝置,其中上述記憶體控制器更包括: 一漢明重量解碼器,產生具有上述第一漢明重量之上述第一假資料,並且產生上述第一假資料之反相之上述第二假資料,其中上述第一資料以及上述第一假資料皆具有一第一位元數之一第一邏輯以及一第二位元數之一第二邏輯。The memory device described in item 4 of the scope of patent application, wherein the above-mentioned memory controller further includes: A Hamming weight decoder that generates the first fake data having the first Hamming weight, and generates the second fake data that is the inverse of the first fake data, wherein the first data and the first fake data Each has a first logic with a first bit number and a second logic with a second bit number. 一種寫入方法,適用於一記憶體陣列,其中上述記憶體陣列包括一第一記憶體庫以及一第二記憶體庫,其中上述一第一記憶體庫包括一第一子記憶體庫,上述第二記憶體庫包括一第二子記憶體庫,上述寫入方法包括: 接收一主機發送之一寫入指令以及一第一資料; 將上述第一資料寫入至上述第一記憶體庫,且同時將一第二資料寫入至上述第二子記憶體庫,其中上述第二資料係為上述第一資料之反相;以及 將上述第一資料之一第一漢明重量寫入至上述記憶體陣列之一第三記憶體庫。A writing method is suitable for a memory array, wherein the memory array includes a first memory bank and a second memory bank, wherein the first memory bank includes a first sub-memory bank, and the The second memory bank includes a second sub-memory bank, and the above-mentioned writing method includes: Receiving a write command and a first data sent by a host; Writing the first data to the first memory bank, and at the same time writing a second data to the second sub-memory bank, wherein the second data is the inverse of the first data; and The first Hamming weight of one of the first data is written into a third memory bank of the memory array. 如申請專利範圍第6項所述之寫入方法,更包括: 產生一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相;以及 當執行上述將上述第一資料之上述第一漢明重量寫入至上述記憶體陣列之上述第三記憶體庫之步驟時,同時將上述第二漢明重量寫入至上述記憶體陣列之上述第四記憶體庫。The writing method described in item 6 of the scope of patent application includes: Generating a second Hamming weight, wherein the second Hamming weight is the inverse of the first Hamming weight; and When the step of writing the first Hamming weight of the first data to the third memory bank of the memory array is performed, the second Hamming weight is written to the memory array of the memory array at the same time. The fourth memory bank. 一種讀取方法,適用於一記憶體陣列,其中上述記憶體陣列包括儲存一第一資料之一第一記憶體庫、一第二記憶體庫以及儲存上述第一資料之一第一漢明重量之一第三記憶體庫,其中上述一第一記憶體庫包括一第一子記憶體庫,上述第二記憶體庫包括一第二子記憶體庫,上述讀取方法包括: 接收到上述主機發送之一讀取指令,用以讀取上述第一記憶體庫之上述第一資料; 讀取上述第一漢明重量,其中上述第一漢明重量代表上述第一資料具有一第一位元數之一第一邏輯以及一第二位元數之一第二邏輯; 根據上述第一漢明重量產生一第一假資料,其中上述第一假資料具有上述第一位元數之一第二邏輯以及上述第二位元數之一第一邏輯; 將上述第一假資料寫入上述第二子記憶體庫;以及 同時讀取上述第一資料以及上述第一假資料。A reading method suitable for a memory array, wherein the memory array includes a first memory bank that stores a first data, a second memory bank, and a first Hamming weight that stores the first data A third memory bank, wherein the first memory bank includes a first sub-memory bank, the second memory bank includes a second sub-memory bank, and the reading method includes: Receiving a read command sent by the host to read the first data in the first memory bank; Read the first Hamming weight, where the first Hamming weight represents that the first data has a first logic of a first digit and a second logic of a second digit; Generating a first fake data according to the first Hamming weight, wherein the first fake data has a second logic of the first bit number and a first logic of the second bit number; Write the first dummy data into the second sub-memory bank; and Read the above-mentioned first data and the above-mentioned first fake data at the same time. 如申請專利範圍第8項所述之讀取方法,更包括: 當讀取上述第一漢明重量時,同時讀取上述記憶體陣列之一第四記憶體庫之一第二漢明重量,其中上述第二漢明重量係為上述第一漢明重量之反相;以及 在上述同時讀取上述第一資料以及上述第一假資料之步驟之後,僅將上述第一資料傳送至上述主機。The reading method described in item 8 of the scope of patent application includes: When the first Hamming weight is read, the second Hamming weight of one of the fourth memory banks in the memory array is read at the same time, wherein the second Hamming weight is the opposite of the first Hamming weight. Phase; and After the step of simultaneously reading the first data and the first fake data, only the first data is sent to the host. 如申請專利範圍第8項所述之讀取方法,其中上述根據上述第一漢明重量產生上述第一假資料之步驟更包括: 根據上述第一漢明重量產生一第二假資料,其中上述第二假資料具有上述第一位元數之上述第一邏輯以及上述第二位元數之上述第二邏輯;以及 將上述第二假資料反相,而產生上述第一假資料。The reading method described in item 8 of the scope of patent application, wherein the step of generating the first fake data according to the first Hamming weight further includes: Generating a second fake data according to the first Hamming weight, wherein the second fake data has the first logic of the first bit number and the second logic of the second bit number; and The above-mentioned second fake data is inverted to generate the above-mentioned first fake data.
TW108132365A 2019-09-09 2019-09-09 Memory device, writing method, and reading method TWI774985B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW108132365A TWI774985B (en) 2019-09-09 2019-09-09 Memory device, writing method, and reading method
CN201911372389.1A CN112466364A (en) 2019-09-09 2019-12-27 Memory device, writing method and reading method
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 (en) 2019-09-09 2019-09-09 Memory device, writing method, and reading method

Publications (2)

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

Family

ID=74807646

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108132365A TWI774985B (en) 2019-09-09 2019-09-09 Memory device, writing method, and reading method

Country Status (3)

Country Link
US (1) US11748274B2 (en)
CN (1) CN112466364A (en)
TW (1) TWI774985B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230420017A1 (en) * 2022-06-23 2023-12-28 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

Family Cites Families (9)

* 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 (en) * 2006-12-14 2008-05-07 삼성전자주식회사 Method for testing for use in pram
US8667244B2 (en) * 2011-03-21 2014-03-04 Hewlett-Packard Development Company, L.P. Methods, systems, and apparatus to prevent memory imprinting
CN102903387A (en) * 2012-09-27 2013-01-30 上海宏力半导体制造有限公司 Storage array device and method thereof for reducing read current
WO2014131546A1 (en) * 2013-02-27 2014-09-04 Morpho Method for encoding data on a chip card by means of constant-weight codes
KR102174030B1 (en) * 2014-05-13 2020-11-05 삼성전자주식회사 Storage device including nonvolatile memory device and read method thereof
US9836277B2 (en) * 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
US10073661B2 (en) * 2016-07-20 2018-09-11 Atmel Corporation Security extensions for non-volatile memory
US10944435B1 (en) * 2020-03-27 2021-03-09 Nxp B.V. Tearing save encoding

Also Published As

Publication number Publication date
US20210073146A1 (en) 2021-03-11
US11748274B2 (en) 2023-09-05
TWI774985B (en) 2022-08-21
CN112466364A (en) 2021-03-09

Similar Documents

Publication Publication Date Title
CN101685381B (en) Data streaming of solid-state large-capacity storage device
TWI554883B (en) Systems and methods for segmenting data structures in a memory system
US9836277B2 (en) In-memory popcount support for real time analytics
TWI651735B (en) Memory device and memory system including the same
US20190044739A1 (en) Physically unclonable function with feed-forward addressing and variable latency output
JP4150718B2 (en) Destructive read type random access memory system
US20170310341A1 (en) Efficient data path architecture for flash devices
US10992483B2 (en) Physically unclonable function device for use in user authentication system and operation method thereof
KR20220022478A (en) Method and apparatus for providing memory-based physical copy protection functions
TWI774985B (en) Memory device, writing method, and reading method
KR102127616B1 (en) Exploiting pcm write asymmetries to accelerate write
US20180018104A1 (en) Dynamic write latency for memory controller using data pattern extraction
JP6209322B2 (en) Refresh method and semiconductor memory device using the same
US9576630B2 (en) Memory devices and methods having multiple address accesses in same cycle
CN109933453A (en) Error correcting method and the semiconductor devices for using it
CN111681690B (en) Generation method and device of reconfigurable physical unclonable function based on STT-MRAM
US7451267B1 (en) Method and apparatus for learn and related operations in network search engine
EP2899639A1 (en) Nonvolatile memory and electronic device
JP6332756B2 (en) Data processing method, apparatus, and system
Wen et al. A holistic tri-region MLC STT-RAM design with combined performance, energy, and reliability optimizations
US9424442B2 (en) Nonvolatile memory and electronic device
US11755235B2 (en) Increasing random access bandwidth of a DDR memory in a counter application
WO2011157160A2 (en) Method and device for encoding address of data
CN105955891A (en) Double-layer wear-leveling method and system
Zhang et al. Pin tumbler lock: A shift based encryption mechanism for racetrack memory

Legal Events

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