TWI647700B - 使用數據編碼以減少記憶體裝置之編程時間的方法和系統 - Google Patents

使用數據編碼以減少記憶體裝置之編程時間的方法和系統 Download PDF

Info

Publication number
TWI647700B
TWI647700B TW106100243A TW106100243A TWI647700B TW I647700 B TWI647700 B TW I647700B TW 106100243 A TW106100243 A TW 106100243A TW 106100243 A TW106100243 A TW 106100243A TW I647700 B TWI647700 B TW I647700B
Authority
TW
Taiwan
Prior art keywords
data words
bit
memory
programming
encoded data
Prior art date
Application number
TW106100243A
Other languages
English (en)
Other versions
TW201805948A (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 新唐科技股份有限公司
Publication of TW201805948A publication Critical patent/TW201805948A/zh
Application granted granted Critical
Publication of TWI647700B publication Critical patent/TWI647700B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Semiconductor Memories (AREA)

Abstract

本發明提供一種用於數據儲存的裝置,包含用於與記憶體溝通的介面以及編碼電路。記憶體在編程第一位元值時用了第一位元編程持續時間,並且在編程與第一位元值相反的第二位元值時用了比第一位元編程持續時間長的第二位元編程持續時間。編碼電路配置來接收用於儲存在記憶體中的輸入數據字,以對輸入數據字進行編碼,以產生相應的編碼數據字,其中編碼數據字比輸入數據字多複數位元,但是以比輸入數據字更短的編程持續時間編程於記憶體中,並且透過介面傳送編碼數據字以儲存在記憶體中。

Description

使用數據編碼以減少記憶體裝置之編程時間的方法和系統
本發明係關於一種數據儲存器,特別是關於一種用於減少使用數據編碼之記憶體裝置之編程時間的方法和系統。
一次性可編程記憶體是一種內部的編程記憶體採用一次性可編程唯讀記憶體(One-Time Programmable Read Only Memory,OTPROM,簡稱OTP)的儲存裝置。OTPROM之資料寫入原理同可抹除可編程唯讀記憶體(Erasable Programmable Read Only Memory,EPROM),可利用編程燒錄工具的高電壓將資料編程寫入。OTP儲存裝置為一次性可編程儲存裝置,將應用程式碼燒錄到晶片中,就能按程式碼的功能運作。這為開發驗證和量產提供了極大的方便和靈活性。
一般而言,記憶體裝置之編程持續時間取決於數據中的“1”位元值之數目與“0”位元值之數目而變化。例如,在某些一次性可編程(One-Time Programmable,OTP)記憶體裝置中,記憶體係預設編程為全“0”,並且只有“1”位元值必須被寫入記憶體。據此,編程具有大量“1”位元值的數據比具有少量“1”位元值的數據要花費更長的時間。
因此,若開發商之輸入數據字(input data words)中具有大量的“1”位元值,則記憶體控制器於接收到此輸入數據字時,往往需要花費較長的編程持續時間來將此輸入數據字編程於記憶體中。由以上可知,需要一種新穎的方法,以輔助使用者妥善地解決既有的問題。
本文所描述之本發明的實施例係提供了一種用於數據儲存的裝置,其包含用於與記憶體溝通的介面以及編碼電路。記憶體在編程第一位元值時用了第一位元編程持續時間,並且在編程與第一位元值相反的第二位元值時用了比第一位元編程持續時間長的第二位元編程持續時間。編碼電路配置來接收用於儲存在記憶體中的輸入數據字,以對輸入數據字進行編碼,以產生相應的編碼數據字,其中編碼數據字(i)比輸入數據字多位元,但是(ii)以比輸入數據字更短的編程持續時間編程於記憶體中,並且經由介面傳送編碼數據字以儲存在記憶體中。
通常,所有編碼數據字的第二位元值的總出現次數大於所有輸入數據字的第二位元值的總出現次數。在一些實施例中,編碼數據字由所有2M個可能的M位元字(M-bit words)中具有第二位元值之最小出現次數的2N個M位元字的子集組成。在一實施例中,編碼電路還配置來經由介面接收從記憶體讀取的一或多個編碼數據字,並且對編碼數據字進行解碼,以重建相應的輸入數據字。
根據本發明之一實施例,另外提供一種用於數據儲存的方法,其包含接收用於儲存在記憶體中的輸入數據字。記憶體在編程第一位元值時用了第一位元編程持續時間,並且在編程與第一位元值相反的第二位元值時用了比第一位元編程持續時間長的第二位元編程持續時間。對輸入數據字進行編碼, 以產生相應的編碼數據字。編碼數據字(i)比各個輸入數據字多位元,但是(ii)以比輸入數據字更短的編程持續時間編程於記憶體中。傳送編碼的數據字以儲存在記憶體中。
根據本發明的實施例,還提供了一種電腦程式產品,該產品包含其中儲存有多個程式指令的有形非暫態電腦可讀取媒體,該些指令在被處理器讀取時使得處理器與記憶體溝通,在編程第一位元值時用了第一位元編程持續時間,並且在編程與第一位元值相反的第二位元值時用了比第一位元編程持續時間長的第二位元編程持續時間,以接收用於儲存在記憶體中的輸入數據字,以對輸入數據字進行編碼以產生相應的編碼數據字,其中編碼數據字(i)比輸入數據字多位元,但是(ii)以比輸入數據字更短的編程持續時間被編程在記憶體中,並且經由介面傳送編碼數據字以儲存在記憶體中。
從下面結合附圖與實施例的詳細描述中將更充分地理解本發明,其中:
20‧‧‧記憶體控制器
24‧‧‧記憶體裝置
28‧‧‧主機
32‧‧‧主機介面
36‧‧‧編碼器
40‧‧‧記憶體介面
50、54、58‧‧‧步驟流程
第1圖為根據本發明之實施例示意性地說明記憶體系統的方塊圖;第2圖為根據本發明之實施例示意地說明用於設計記憶體系統之編碼機制之方法的流程圖;第3圖為根據本發明之實施例之用於記憶體系統之編碼機制之例示性能表。
在某些類型的記憶體裝置中,編程持續時間取決於數據中的“1”位元值之數目與“0”位元值之數目而變化。例如,在一些一次性可編程(One-Time Programmable,OTP)記憶體裝置中,記憶體係預設編程為全“0”,並且只有“1”位元值必須被寫入記憶體。據此,編程具有大量“1”位元值的數據比具有少量“1”位元值的數據要花費更長的時間。
一般而言,在某些類型的記憶體中,編程某個位元值會花費一定的位元編程持續時間,並且編程相反的位元值會花費更長的位元編程持續時間。在本發明中,編程所需時間較長的位元值(例如,在OTP例子中為“1”)係稱為“慢編程位元值”。相反的位元值(例如,在OTP例子中為“0”)在本文中被稱為“快編程位元值”。
本文所描述之本發明的實施例提供了編程記憶體裝置的改良方法和系統。在一些實施例中,記憶體控制器接收用於儲存在具有慢編程位元值和快編程位元值之記憶體中的輸入數據字。記憶體控制器對每個輸入數據字進行編碼,以產生相應的編碼數據字。編碼機制被設計為使得儘管每個編碼數據字比相應的輸入數據字多兩個或更多個位元,但實際上卻減少了要編程的慢編程位元值的數量。記憶體控制器使用編碼數據字而不是原始輸入數據字來編程記憶體。據此,減少了編程持續時間。
在所揭露的實施例中,可能的編碼數據字集合上的慢編程位元值的總數小於可能的輸入數據字集合上的慢編程位元值的總數。因此,平均上可減少編程持續時間,但不一定對於每個數據字皆可減少編程持續時間。
每個輸入數據字中的位元數表示為N,每個編碼數據字中的位元數表示為M,其中M-N2。換句話說,編碼操作將數據字的大小增加了至少兩個 位元。在一例示性實施例中,透過從2M個可能的M位元字中選擇具有最少的慢編程位元值的2N個M位元字的子集合來設計該組編碼數據字。只要編碼數據字集合中的慢編程位元值的數量小於輸入數據字集合的慢編程位元值的數量,其它選擇標準也是可能的。
原則上可以僅使用單個附加位元對輸入數據字進行編碼。例如,可以反轉包含比“0”位元值更多的“1”位元值的任何輸入數據字的位元,並且添加指示數據字是否被反轉的“極性位”(polarity bit)。然而,所揭露的技術顯著優於這種單位元(single-bit)機制。例如,以N=8為例,所揭露的技術使用M=10將編程時間減少了約24%。對每個8位元輸入數據字添加第9位元之可比較的單位元機制,編程時間減少了約18.2%。N=16和M=18(每個16位元輸入數據字添加2位元)的揭露機制也顯示了優於對每個8位元輸入數據字添加1位元的單位元機制,具有完全相同的記憶體開銷(相對減少編程時間為約21.3% vs.約18.2%)。
本文中提及了具有M-N2的編碼機制以及相關減少編程持續時間的幾個實施例。
第1圖為根據本發明之實施例示意性地說明記憶體系統的方塊圖。第1圖中的記憶體系統包含代表主機28在記憶體裝置24中儲存數據的記憶體控制器20。在例示性實施例中,記憶體系統可為個人或可攜式電腦的一部分,在這種情況下,主機28包含電腦之CPU晶片組。或者,所揭露的技術可用於各種其它應用及主機系統中。
記憶體裝置24之特徵在於取決於數據(data-dependent)的編程持續時間。具體而言,當儲存包含多個位元的數據字時,編程某個位元值導致某個位元編程持續時間,並且編程相反的位元值導致更長的位元編程持續時間。
例如,在一些實施例中,記憶體裝置24包含初始預設編程為全“0”的一次性可編程(OTP)記憶體裝置。在這種記憶體中,只有“1”位元值必須實際編程。因此,具有大量“1”位元值的數據比具有少量“1”位元值的數據需要更長的編程時間。
需要較長時間編程(在本實施例中為“1”)的位元值在本文被稱為“慢編程位元值”,並且相反位元值(在本實施例中為“0”)被稱為“快編程位元值”。在不失一般性的情況下,為了清楚起見,下面的描述將“1”作為慢編程位元值以及將“0”作為快速編程位元值。然而,也許在其它類型的記憶體中,“1”位元值可比“0”位元值更快地編程。所揭露的技術可以直接的方式適用於這種記憶體類型。因此,記憶體裝置24可包含任何合適類型的記憶體,其中一個位元值比相對位元值花費更長的時間編程。
記憶體控制器20包含用於與主機28溝通的主機介面32,用於與記憶體裝置24溝通的記憶體介面40,以及配置來對要寫入記憶體裝置的數據字進行編碼的編碼電路。在第1圖的實施例中,編碼電路包含編碼器36,其對輸入數據字進行編碼,以產生具有較短編程持續時間的編碼數據字。下面將詳細解釋編碼機制的實施例。在一例示性實施例中,編碼器36包含將N位元輸入數據字映射到相應的M位元編碼數據字的查找表(Look-Up Table,LUT),其中M-N2。例如,此查找表可實現於唯讀記憶體(ROM)中。
第1圖所示之記憶體系統的配置是純粹為了概念清楚之目的而描繪的例示性配置。在替代實施例中,可使用任何其它合適的配置。例如,所揭露的技術可與其他類型的記憶體一起使用,例如某些類型的快閃記憶體。作為另一實施例,編碼電路不必要為記憶體控制器的一部分。例如,編碼電路可在與記憶體裝置24相同的裝置中實現,或者在主機28中實現。
為了清楚起見,圖式中省略了對於理解所揭露之技術非必要的系統元件。例如,編碼電路通常包含解碼器(未顯示),其從記憶體裝置24讀取編碼數據字並應用反向映射來重建相應的輸入數據字。
在各種實施例中,記憶體系統的不同元件(包含記憶體控制器20的不同元件)可使用任何合適的硬體來實現,例如在專用積體電路(ASIC)或現場可編程邏輯閘陣列(Field-Programmable Gate Array,FPGA)。或者,記憶體控制器一些功能(例如編碼器36的編碼功能)可在合適的處理器(例如記憶體控制器20或主機28中的處理器)中執行的軟體中實現。在後面的實施例中,處理器可包含通用處理器(general-purpose processor),其在軟體中被編程以執行本文所描述的功能。例如,軟體可透過網路以電子形式下載到處理器,或者可替換地或附加地,可被提供及/或儲存在諸如磁,光或電子記憶體之類的非暫態有形媒體上。
在一些實施例中,編碼器36接收N位元輸入數據字,並且透過將每個N位元輸入數據字映射到相應的M位元編碼數據字來編碼,其中M-N2。由編碼器36應用的映射被設計為使得儘管編碼數據字比輸入數據字多兩個或更多個位元,但是實際上卻減少了要編程的慢編程位元值的數量。
第2圖為根據本發明之實施例示意地說明用於設計記憶體系統之編碼機制之方法的流程圖。此方法開始於數據字大小選擇步驟50,用以選擇M和N的數值,使得M-N2。
在一些實施例中,雖然不是必須的,但是給定N的數值(輸入數據字的大小),而M的數值(編碼數據字的大小)是可受實現約束的設計選擇。在一例示性實施例中,N=8且M=10。在另一例示性實施例中,N=16且M=18。下面將進一步分析兩種機制的性能。
在子集合選擇步驟54中,從2M個可能的M位元字中選擇2N個M位元字的子集合,以作為編碼數據字的集合。在一些實施例中,選擇子集,並且2N個M位元字具有最少的慢編程位元值(在本實施例中為最少的“1”位元值)。
在映射定義步驟58中,映射各個可能的2N個N位元輸入數據字到所選擇子集合之相應的M位元編碼數據字。由於步驟54選擇子集合的方式,將編碼數據字編程到記憶體裝置24比編程原始輸入數據字更快(即使編碼數據字具有比輸入數據字更多的位元)。
在替代實施例中,可以使用其它選擇標準來從2M個可能的M位元字中選擇2N個M位元編碼數據字。一般而言,可使用導致編碼數據字集合上之慢編程位元值的數量小於輸入數據字集合上之慢編程位元值的數量的任何選擇標準。換句話說,編碼數據字集合不必具有最小可能數量的慢編程位元值。任何小於原始輸入數據字中的慢編程位元值之數量的數量將減少平均編程時間。編碼數據字集合的選擇及/或輸入數據字和編碼數據字之間的映射可考慮諸如編碼和解碼操作之實現複雜度的附加因素。
第3圖為根據本發明之實施例之用於記憶體系統之編碼機制之例示性能表。在第3圖的實施例中,N=8和M=10。
表格的兩個左側列對28=256個可能的8位元輸入數據字的“1”位元值的數目進行計數。從表中可以看出,256個可能的輸入數據字的全部集合由不具有“1”位元值的1個字、具有一個“1”位元值的8個字、具有兩個“1”位元值的28個字、具有三個“1”位元值的56個字等等組合。因此,每個輸入數據字的“1”位元值的平均數為4。
表格的兩個右側行對210=1024個可能的10位元字的“1”位元值的數目進行計數。從表中可以看出,1024個10位元字的全部集合由不具有“1”位元值的1個字、具有一個“1”位元值的10個字、具有兩個“1”位元值的45個字、具有三個“1”位元值的120個字等等組成。
在本實施例中,從1024個可能的10位元字中選擇具有最少“1”位元值的256個10位元字的子集合。為了達到總共256個字,子集合包含具有多達三個“1”位元值(總共176個字)的所有10位元字,加上具有四個“1”位元值的10位元字中的80個。該子集合作為10位元編碼數據字的集合。以此選擇,每個編碼數據字的“1”位元值的平均數約為3.04。
在本實施例中,所揭露的編碼機制以額外的25%的記憶體使用為代價將平均編程時間減少了約24%(3.04對比於4)。這種折衷方式在許多實際實現中是有利的。
在替代實施例中,可以透過分別選擇N及/或M來在編程時間和記憶體開銷之間設置不同的折衷方式。例如,對於N=8,可透過選擇M=255來設置極端的折衷方式。256個255位元編碼數據字的子集如下:{0000000...00000}, {0000000...00001},{0000000...00010},{0000000...00100},{0000000...01000},...,{0100000...00000},{1000000...00000}。每個編碼的255位元編碼數據字具有至多一個“1”位元值。在此實施例中,所揭露的編碼機制將平均編程時間減少了75%,但是將記憶體開銷增加了約30倍。
在另一極端實施例中,N=4和M=15,並且十六個15位元編碼數據字的子集合如下:{00000...000},{00000...001},{00000...010},{00000...100},...,{01000...000},{10000......000}。在此實施例中,每個15位元編碼數據字也具有至多一個“1”位元值。所揭露的編碼機制將平均編程時間減少了50%,但是將記憶體開銷增加了約3.75倍。
另外,所揭露的技術可使用任何其他合適選擇的N、M,任何其他合適選擇的編碼數據字子集合,以及輸入數據字和編碼數據字之間的任何合適映射選擇來執行。
雖然本文描述的實施例主要在於減少編程時間,但是本文所描述的方法和系統也可以用於其他應用中,諸如用於改善記憶體或系統整體的其他性能計量。例如,如果一個位元值的編程比相反位元值的編程消耗更多的功率,則所揭露的技術可以用於降低功率消耗。
因此,應當理解的是,上述實施例以示例的方式引用,並且本發明不限於上文所具體顯示和說明的內容。反之,本發明的範圍包含上文所述之各種特徵的組合和子組合,以及本領域技術人員在閱讀前述說明時將想到的以及在現有技術中沒有公開的變化和修改。本專利申請中參考併入的文件被視為是本申請的整體部分,除非在這些併入的文件中以與本說明書中明確或隱含地作出的定義衝突的方式定義的任何術語,應考慮本說明書中的定義。

Claims (9)

  1. 一種用於數據儲存之裝置,其包含:一介面,用於與一記憶體溝通,其中該記憶體在編程一第一位元值時用了一第一位元編程持續時間,並且在編程與該第一位元值相反的一第二位元值時用了比該第一位元編程持續時間長的一第二位元編程持續時間;以及一編碼電路,係配置來接收用於儲存在該記憶體中的複數個輸入數據字(data words),對該複數個輸入數據字進行編碼以產生相應的複數個編碼數據字,其中該複數個編碼數據字係比該複數個輸入數據字多複數個位元,但是以比該複數個輸入數據字更短的編程持續時間編程於該記憶體中,並且透過該介面傳送該複數個編碼數據字以儲存在該記憶體中,其中所有之該複數個編碼數據字的該第二位元值的總出現次數大於所有之該複數個輸入數據字的該第二位元值的總出現次數。
  2. 如申請專利範圍第1項所述之裝置,其中該複數個編碼數據字係由所有之2M個可能M位元字中具有該第二位元值之最小出現次數之2N個M位元字的子集合組成。
  3. 如申請專利範圍第1項所述之裝置,其中該編碼電路更配置來經由該介面接收從該記憶體讀取的一或多個該編碼數據字,並且對該複數個編碼數據字進行解碼,以重建相應的複數個輸入數據字。
  4. 一種用於數據儲存之方法,其包含: 接收用於儲存在一記憶體中的複數個輸入數據字,其中該記憶體在編程一第一位元值時用了一第一位元編程持續時間,並且在編程與該第一位元值相反的一第二位元值時用了比該第一位元編程持續時間長的一第二位元編程持續時間;編碼該複數個輸入數據字以產生相應的複數個編碼數據字,其中該複數個編碼數據字比該複數個輸入數據字多複數個位元,但是以比該複數個輸入數據字更短的編程持續時間編程於該記憶體中;以及傳送該複數個編碼數據字以儲存在該記憶體中,其中所有之該複數個編碼數據字的該第二位元值的總出現次數大於所有之該複數個輸入數據字的該第二位元值的總出現次數。
  5. 如申請專利範圍第4項所述之方法,其中該複數個編碼數據字由所有之2M個可能M位元字中具有該第二位元值之最小出現次數之2N個M位元字的子集合組成。
  6. 如申請專利範圍第4項所述之方法,其更包含接收從該記憶體讀取的一或多個該編碼數據字,並且對該複數個編碼數據字進行解碼,以重建相應的複數個輸入數據字。
  7. 一種電腦軟體產品,其包含其中儲存有多個程式指令的有形非暫態電腦可讀取媒體,該些指令在被一處理器讀取時,使得該處理器與一記憶體溝通,該記憶體在編程一第一位元值時用了一第一位元編程持續時間,並且在編程與該第一位元值相反的一第二位元值時用了比該第一位元編程持續時間長的一第二位元編程持續時間,並使得該處理器接收用於儲存在該記憶體中的複數個輸入數據字,以對 該複數個輸入數據字進行編碼以產生相應的複數個編碼數據字,其中該複數個編碼數據字比該複數個輸入數據字多複數個位元,而以比該複數個輸入數據字更短的編程持續時間編程於該記憶體中,並且經由該介面傳送該複數個編碼數據字以儲存在記憶體中,其中所有之該複數個編碼數據字的該第二位元值的總出現次數大於所有之該複數個輸入數據字的該第二位元值的總出現次數。
  8. 如申請專利範圍第7項所述之電腦軟體產品,其中該複數個編碼數據字由所有之2M個可能M位元字中具有該第二位元值之最小出現次數之2N個M位元字的子集合組成。
  9. 如申請專利範圍第7項所述之電腦軟體產品,其中該些指令更包含指示該處理器接收從該記憶體讀取的一或多個該編碼數據字,並且對該複數個編碼數據字進行解碼,以重建相應的複數個輸入數據字。
TW106100243A 2016-08-08 2017-01-05 使用數據編碼以減少記憶體裝置之編程時間的方法和系統 TWI647700B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/230,499 US20180039427A1 (en) 2016-08-08 2016-08-08 Reducing programming time of memory devices using data encoding
US15/230,499 2016-08-08

Publications (2)

Publication Number Publication Date
TW201805948A TW201805948A (zh) 2018-02-16
TWI647700B true TWI647700B (zh) 2019-01-11

Family

ID=61069199

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106100243A TWI647700B (zh) 2016-08-08 2017-01-05 使用數據編碼以減少記憶體裝置之編程時間的方法和系統

Country Status (3)

Country Link
US (1) US20180039427A1 (zh)
CN (1) CN107705815A (zh)
TW (1) TWI647700B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016720A1 (en) * 2005-07-12 2007-01-18 Zeev Cohen Non-volatile memory cell device, programming element and method for programming data into a plurality of non-volatile memory cells
US20120215961A1 (en) * 2006-12-06 2012-08-23 Fusion-Io, Inc. Apparatus, system, and method for biasing data in a solid-state storage device
US20140269044A1 (en) * 2013-03-13 2014-09-18 Micron Technology, Inc. Methods and apparatuses for controlling memory write sequences

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919156B1 (ko) * 2006-08-24 2009-09-28 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016720A1 (en) * 2005-07-12 2007-01-18 Zeev Cohen Non-volatile memory cell device, programming element and method for programming data into a plurality of non-volatile memory cells
US20120215961A1 (en) * 2006-12-06 2012-08-23 Fusion-Io, Inc. Apparatus, system, and method for biasing data in a solid-state storage device
US20140269044A1 (en) * 2013-03-13 2014-09-18 Micron Technology, Inc. Methods and apparatuses for controlling memory write sequences

Also Published As

Publication number Publication date
TW201805948A (zh) 2018-02-16
US20180039427A1 (en) 2018-02-08
CN107705815A (zh) 2018-02-16

Similar Documents

Publication Publication Date Title
JP5785330B2 (ja) メモリエンデュランスのために動作させる装置および方法
US9454552B2 (en) Entropy coding and decoding using polar codes
US10044370B1 (en) Lossless binary compression in a memory constrained environment
US8527849B2 (en) High speed hard LDPC decoder
KR102381999B1 (ko) 가변 길이 코딩된 입력을 디코딩하는 방법 및 시스템, 그리고 코드북을 변경하는 방법
KR102242281B1 (ko) 이진을 삼진으로 매핑하기 위한 그리고 그 역을 위한 장치 및 방법
KR20120096749A (ko) 메모리 장치 및 메모리 시스템
US9594627B2 (en) Controller and control method
US9710326B2 (en) Encoder by-pass with scrambler
US9934234B2 (en) Adaptive rate compression hash processor
KR20160144960A (ko) 폴라 코드들을 이용한 비대칭 에러 정정 및 플래시 메모리 재기록
TW201528692A (zh) 在使用每記憶體胞非整數個位元之類比記憶體胞中資料儲存之管理
US9998149B2 (en) Constant hamming weight coding
US20150149856A1 (en) Decoding with log likelihood ratios stored in a controller
US10103747B1 (en) Lossless binary compression in a memory constrained environment
TWI647700B (zh) 使用數據編碼以減少記憶體裝置之編程時間的方法和系統
KR102414620B1 (ko) 메모리 장치의 동작 방법 및 메모리 장치를 동작시키는 메모리 컨트롤러
US20180315484A1 (en) A method for operating a semiconductor memory
JP6437428B2 (ja) 不揮発性半導体メモリのコントローラ
KR20140030517A (ko) 메모리 컨트롤러의 동작 방법과 상기 메모리 컨트롤러를 포함하는 시스템
US8832539B1 (en) Write processing for unchanged data with new metadata
CN107368430B (zh) 一种降低显存的方法及装置
CN104221291B (zh) 更新与迭代解码器关联的变量节点
JP2014134932A (ja) 半導体装置及びデータアクセス方法
CN102034542B (zh) 数据型样管理的方法以及相关的记忆装置及其控制器