数据编程与读取方法及应用其的单次可编程存储器 【技术领域】
本发明是有关于一种存储器,且特别是有关于一种可对单次可编程(One-time Programmable)存储器中储存的数据进行修正的存储器。
背景技术
传统上,只读存储器(Read Only Memory,ROM),例如是单次可编程(One-time Programmable)存储器已广泛地用来做为计算机系统中的储存媒介。相较于可擦写(Rewritable)存储器,单次可编程存储器具有较低制造端成本及储存数据不易遗失的优点。因此,单次可编程存储器已被广泛地使用来储存计算机系统中的起始码(Setup Code)。
然而,单次可编程存储器仅能进行一次数据编程。换言之,一旦对单次可编程存储器中存储单元完成编程动作,便无法再对此些存储单元中的数据进行修正。因此,传统单次可编程存储器具有无法进行数据修正的缺点。
【发明内容】
有鉴于此,本发明是有关于一种单次可编程(One-time Programmable)存储器、数据取代方法、数据编程(Program)方法及数据读取方法。相较于传统单次可编程存储器,本发明相关的单次可编程存储器具有可对其储存的数据进行修正的优点。
根据本发明提出一种方法,用以对存储器进行数据编程(Program),存储器包括多个制造端定义存储区块(Manufacture-defined blocks)、多个使用者定义存储区块(User-defined blocks)及信息存储区块。方法包括下列的步骤。首先取得编程数据及编程地址对应指向存储器中的使用者定义存储区块。接着判断此些制造端定义存储区块中是否包括空白制造端定义存储区块。若此些制造端定义存储区块中包括空白制造端定义存储区块,储存编程地址及取代地址至信息存储区块,取代地址对应指向空白制造端定义存储区块。之后储存编程数据至空白制造端定义存储区块。
根据本发明提出一种方法,用以读取存储器中对应至读取地址的数据,存储器包括信息存储区块、使用者定义存储区块及制造端定义存储区块。方法包括下列的步骤。首先取得读取地址。接着读取信息存储区块以得到取代地址及编程地址,编程地址指向使用者定义存储区块。然后判断读取地址是否对应至编程地址。当读取地址对应至编程地址时,读取制造端定义存储区块以得到对应至读取地址的该笔数据。
根据本发明提出一种存储器,包括存储器阵列及逻辑电路。存储器阵列包括制造端定义存储区块、信息存储区块及使用者定义存储区块。逻辑电路用以接收编程数据及编程地址,编程地址指向使用者定义存储区块。逻辑电路更提供取代地址指向制造端定义存储区块,制造端定义存储区块用以储存编程数据。
为让本发明的上述内容能更明显易懂,下文特举一较佳实施例,并配合所附图式,作详细说明如下。
【附图说明】
图1绘示依照本发明实施例的单次可编程存储器的方块图。
图2绘示依照本发明实施例的应用于单次可编程存储器中的数据取代方法的流程图。
图3绘示依照本发明实施例的应用于单次可编程存储器中的数据读取方法的流程图。
【主要元件符号说明】
10:单次可编程存储器
12:存储器阵列
IB:信息存储区块
NA:正常阵列
RB1-RBP:制造端定义存储区块
14:逻辑电路
16a1、16a2:Y多工复用器
16b:感测放大器
16c:系统输入输出电路
16d:X译码器
16e:偏压电路
16f:X预先译码器
16g:Y预先译码器
【具体实施方式】
本实施例的单次可编程(One-time Programmable)存储器具有逻辑电路,用以编程(Program)单次可编程存储器中的制造端定义存储区块(Manufacture-defined Block),以储存对应至单次可编程存储器中的使用者定义存储区块(User-defined Block)的取代数据于此制造端定义存储区块中。逻辑电路更用以重新指向对应至此使用者定义存储区块之读取地址至此制造端定义存储区块。
请参照图1,其绘示依照本发明实施例的单次可编程存储器的方块图。单次可编程存储器10包括存储器阵列12、逻辑电路14、Y多工复用器16a1、16a2、感测放大器16b、系统输入输出电路16c、X译码器16d及偏压电路16e。存储器阵列12包括正常阵列NA、信息存储区块IB及制造端定义存储区块RB1-RBP,其中P为自然数。在一个例子中,正常阵列NA包括M个使用者定义存储区块NB1-NBM,各个使用者定义存储区块NB1-NBM包括一个存储单元列,各个存储单元列包括N个存储单元。其中N与M为自然数。M个使用者定义存储区块NB1-NBM已完成数据编程而储存数据。举例来说,信息存储区块IB与制造端定义存储区块RB 1-RBP更包括一个存储单元列,各个存储单元列包括N个存储单元。
在一个例子中,单次可编程存储器10更包括X预先译码器(Pre-decoder)16f及Y预先译码器16g,其用以对逻辑电路14提供的地址进行预先译码。
逻辑电路14接收存取指令CM,并对应地提供读取地址或编程地址来对存储器阵列12进行存取。举例来说,逻辑电路14为状态机(Stage Machine)电路。透过包括X译码器16d、Y多工复用器16a1、16a2、感测放大器16b、系统输入输出电路16c、偏压电路16e、X预先译码器16f及Y预先译码器16g中对应的电路,逻辑电路14可对对应地存取存储器阵列12中的一个存储区块。
在一个操作实例中,存取指令Cm包括编程数据Dataw及编程地址Adrw,其中编程地址Adrw用以指向使用者定义存储区块NB1-NBM中的第i个使用者定义存储区块NBi,其中i为小于或等于M的自然数。逻辑电路14判断使用者定义存储区块NBi是否已经被编程而储存有数据。当使用者存储区块NBi被编程而储存有数据时,逻辑电路14于制造端定义存储区块RB 1-RBP中搜寻一个空白制造端定义存储区块,并对应地提供取代地址Adrp指向此空白制造端定义存储区块。举例来说,此空白制造端定义存储区块为制造端定义存储区块RB1-RBP中的第j个制造端定义存储区块RBj,其中j为小于或等于p的自然数。如此,逻辑电路14根据取代地址Adrp来选择制造端定义存储区块RBj,并编程制造端定义存储区块RBj储存编程数据Dataw。其中,编程定义存储区块RBj中储存的数据用以取代使用者定义存储区块NBi中储存的数据。
逻辑电路14更对信息存储区块IB进行编程,以储存包括编程地址Adrw及取代地址Adrp的地址数据于信息存储区块IB中。此地址数据更用以指示使用者定义存储区块NBi已被取代,而对应的取代数据储存于制造端定义存储区块RBj中。
在所有的制造端定义存储区块RB1-RBP已完成数据编程以储存取代数据之前,相似于以上段落叙述的数据取代操作可被执行于使用者定义存储区块NB1i-NBM的任一个存储区块上,以对其进行数据取代。举例来说,信息存储区块IB用以储存包括P组编程地址与取代地址的地址数据。在这个例子中,P次数据取代操作可被执行于存储器阵列12上。
在另一个例子中,存取指令Cm包括指向使用者定义存储区块NB1-NBM中第k个使用者定义存储区块NBk的读取地址Adrr,k为小于或等于M的自然数。逻辑电路14读取储存在信息存储区块IB中的地址数据,并对应地判断读取地址Adrr是否与地址数据中的任何编程地址对应。读取数据可经由多种不同的方法与对应的编程地址相互对应。举例来说,当读取地址Adrr对应至地址数据中的一笔编程地址时,取地址Adrr是经由一数学关系式映像至此笔编程地址。举例来说,读取地址Adrr与此笔编程地址指示相同的数值;读取地址Adrr指示的数值等于此笔编程地址指示的数值加一特定偏差值或减另一特定偏差值;读取地址Adrr指示的数值等于两倍于此笔编程地址指示的数值。当读取地址Adrr不与地址数据中任何的编程地址对应时,逻辑电路14判断使用者定义存储区块NBk未被取代。
当使用者定义存储区块NBk被取代时,逻辑电路14取得取代地址,此取代地址与读取地址Adrr对应地编程地址相互对应。举例来说,当读取地址Adrr对应至地址数据中的编程地址Adrw时,逻辑电路14判断被读取的使用者定义存储区块NBk(举例来说,k=i)被取代。逻辑电路14更根据地址数据取得指向制造端定义存储区块RBj的取代地址Adrp。如此,逻辑电路14是根据取代地址Adrp来选择并读取制造端定义存储区块RBj(而非根据读取地址Adrr读取使用者定义存储区块NBk)来取得对应的数据。
请参照图2,其绘示依照本发明实施例的应用于单次可编程存储器中的数据取代方法的流程图。应用于单次可编程存储器的数据取代方法包括下列的步骤。首先如步骤(a),逻辑电路14取得编程数据Dataw及指向存储器阵列12中使用者定义存储区块Nbi的编程地址Adrp。
接着如步骤(b),逻辑电路14判断制造端定义存储区块RB1-RBP中是否包括一个空白制造端定义存储区块;若是,执行步骤(c),逻辑电路14取得指向此空白制造端定义存储区块的取代地址Adrp。举例来说,此空白制造端定义存储区块例如为制造端定义存储区块RBj。受控于逻辑电路14,X译码器16d、Y多工复用器16a1、16a2、感测放大器16b、系统输入输出电路16c、偏压电路16e、X预先译码器16f及Y预先译码器16g系执行对应的操作以对信息存储区块IB进行编程,以储存编程地址Adrw及取代地址Adrp。
然后如步骤(d),逻辑电路14更提供取代地址Adrp及编程数据Dataw至X译码器16d、Y多工复用器16a1、16a2、感测放大器16b、系统输入输出电路16c、偏压电路16e、X预先译码器16f及Y预先译码器16g中对应的电路,以控制其对应地编程制造端定义存储区块RBj储存编程数据Dataw。
在一个例子中,当制造端定义存储区块RB1-RBP中不包括任何空白制造端定义存储区块时,本实施例的应用于单次可编程存储器的数据取代方法被终止。
请参照图3,其绘示依照本发明实施例的应用于单次可编程存储器中的数据读取方法的流程图。本实施例的应用于单次可编程存储器的数据读取方法包括下列的步骤。首先如步骤(a),逻辑电路14取得读取地址Adrr。接着如步骤(b),逻辑电路14读取数据存储区块IB取得地址数据。举例来说,地址数据包括指向存储器阵列12的使用者定义存储区块NBi的编程地址Adrw及指向制造端定义存储区块RBj的取代地址Adrp。
接着如步骤(c),逻辑电路14判断读取地址Adrr是否对应至编程地址Adrw;若是,执行步骤(d),逻辑电路14读取制造端定义存储区块RBj以得到对应至读取地址Adrr的数据。
在另一个例子中,本实施例的应用于单次可编程存储器的数据读取方法更包括步骤(d′),若读取地址Adrr不与编程地址Adrw对应,逻辑电路14读取使用者定义存储区块NBi以取得对应至读取地址Adrr的数据。
在本实施例中虽仅以各制造端定义存储区块RB1-RBP包括1×N的存储单元阵列(即是一个存储单元列)的情形为例作说明,本实施例的制造端定义存储区块RB1-RBP并不局限于此。在其它例子中,制造端定义存储区块RB1-RBP中的存储单元更可排列为2×N、3×N、...、M×N、M×1、M×2、...、M×N-1的存储单元阵列。较佳地,制造端定义存储区块与使用者定义存储区块中的存储单元是以相同的阵列尺寸排列。
在一个例子中,存储器阵列12的各存储单元包括一个金属氧化物半导体(Metal Oxide Semiconductor,MOS)晶体管、一个二极管(Diode)或一个熔丝装置(Fuse Device)。
在本实施例中,单次可编程存储器包括逻辑电路用以编程单次可编程存储器中的一个制造端定义存储区块,以储存对应至单次可编程存储器中的一个使用者定义存储区块的取代数据于此制造端定义存储区块中。逻辑电路更重新指向此使用者定义存储区块的读取地址至此制造端定义存储区块。如此,相较于传统单次可编程存储器,本实施例的单次可编程存储器具有可对其储存的数据进行修正的功能,并可对单次可编程存储器中储存的数据进行至少一次重新修正的操作。
综上所述,虽然本发明已以一较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求所界定的范围为准。