CN113031854B - 一次性可编程存储器装置及其容错方法 - Google Patents

一次性可编程存储器装置及其容错方法 Download PDF

Info

Publication number
CN113031854B
CN113031854B CN202010825916.6A CN202010825916A CN113031854B CN 113031854 B CN113031854 B CN 113031854B CN 202010825916 A CN202010825916 A CN 202010825916A CN 113031854 B CN113031854 B CN 113031854B
Authority
CN
China
Prior art keywords
variable
block
time programmable
storage
memory
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN202010825916.6A
Other languages
English (en)
Other versions
CN113031854A (zh
Inventor
吴坤益
李钰珊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology Corp
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 Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of CN113031854A publication Critical patent/CN113031854A/zh
Application granted granted Critical
Publication of CN113031854B publication Critical patent/CN113031854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0608Saving storage space on 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM

Abstract

本发明提供了一种一次性可编程存储器装置及其容错方法,其中,该一次性可编程存储器装置可包括一次性可编程存储器和存储器控制器。一次性可编程存储器包含第一区块和第二区块。第一区块包括多个起始位址单元,且每一起始位址单元会对应一变量,以记录每一上述变量对应的储存位址。第二区块包含多个储存单元,且每一储存单元具有一对应的储存位址。存储器控制器耦接一次性可编程存储器,以及分配储存位址给变量。每一变量所对应的数据内容会储存在其对应的储存位址所对应的储存单元中。多个起始位址单元的数量会小于多个储存单元的数量。

Description

一次性可编程存储器装置及其容错方法
技术领域
本发明的实施例主要有关于一次性可编程存储器(one-time programmablememory)技术,特别有关于在一次性可编程存储器配置起始位址单元的一次性可编程存储器。
背景技术
一次性可编程存储器(one-time programmable memory)常见数据储存空间,其主要的特性是只容许一次烧录并且无法抹除或是改变。当使用者想要修改内容时,一次性可编程存储器的不可逆特性,常会造成使用者极大困恼。因此,一次性可编程存储器控制器需要容错(fault tolerance)机制,以提供使用者再次修改变量内容功能。
对于一次性可编程存储器容错机制而言,最简单的做法是基于版本的一次性可编程存储器容错机制。此机制会先根据可修改次数的限制值,直接分配多份相同大小空间。每一份空间将会被视为一个版本(version),并且被指定一个特定版本编号。此机制还需配置一个变量“执行版本编号”,以便通知控制器目前正在使用哪一个版本编号。当使用者欲修改变量的数据内容时,必须将变量内容烧录到新的版本空间,并且修改执行版本编号为新版本编号。然而,在此机制下,当要修改某一个变量时,就必须放弃原先版本其他正确变量的储存空间。举例来说,当版本1中的某一变量的数据内容需要修改时,就必须将版本1中所有的变量烧录到新的版本空间(例如:版本2),并且废弃掉版本1的储存空间。因此,虽然此机制简单且实现容易,但却造成大量储存空间的浪费。
发明内容
有鉴于上述先前技术的问题,本发明的实施例提供了一次性可编程存储器装置和一次性可编程存储器容错方法。
根据本发明的一实施例提供了一种一次性可编程存储器装置。上述一次性可编程存储器装置可包括一一次性可编程存储器和一存储器控制器。一次性可编程存储器包含一第一区块和一第二区块。第一区块包括多个起始位址单元,且每一起始位址单元会对应一变量,以记录每一上述变量对应的储存位址。第二区块包含多个储存单元,且每一储存单元具有一对应的储存位址。存储器控制器耦接一次性可编程存储器,以及分配储存位址给变量。每一上述变量所对应的数据内容会储存在其对应的上述储存位址所对应的上述储存单元中。上述多个起始位址单元的数量会小于上述多个储存单元的数量。
在一些实施例中,一次性可编程存储器装置更包括一第三区块和一第四区块。第三区块用以记录已烧录至上述一次性可编程存储器的上述变量的数量。第四区块用以记录已使用的上述储存位址的数量。
在一些实施例中,上述第一区块、上述第三区块以及上述第四区块储存的内容采用一次有效性编码技术进行编码所产生。
在一些实施例中,当要加入一新的变量至一次性可编程存储器时,上述存储器控制器判断已烧录至上述一次性可编程存储器的上述变量的数量是否已到达一上限值。若已烧录至上述一次性可编程存储器的上述变量的数量未到达上限值,上述存储器控制器根据已烧录至上述一次性可编程存储器的上述变量的数量设定上述新的变量的一变量名称。
在一些实施例中,当要对上述多个变量的一者进行修改时,上述存储器控制器判断已使用的上述储存位址的数量是否已到达一上限值。若已使用的上述储存位址的数量未到达上述上限值,上述存储器控制器分配上述第二区块中还未使用的上述储存位址给要进行修改的上述变量。当修改完后,上述存储器控制器更将已使用的上述储存位址的数量加一。
在一些实施例中,当要读取烧录在一次性可编程存储器的上述变量对应的数据内容时,上述存储器控制器先读取对应需要被读取的上述变量的上述起始位址单元所储存的上述储存位址,再根据上述储存位址取得需要被读取的上述变量的数据内容。
在一些实施例中,每一上述起始位址单元更记录其对应的上述变量的变量编号和变量名称。
根据本发明的一实施例提供了一种一次性可编程存储器的容错方法。上述一次性可编程存储器的容错方法的步骤包括,在一一次性可编程存储器装置的一一次性可编程存储器配置一第一区块和一第二区块,其中上述第一区块包括多个起始位址单元,且每一上述起始位址单元会对应一变量,以记录每一上述变量对应的储存位址,以及其中上述第二区块包含多个储存单元,且每一上述储存单元具有一对应的储存位址;以及藉由上述一次性可编程存储器装置的一存储器控制器,分配上述储存位址给上述变量,其中每一上述变量所对应的数据内容会储存在其对应的上述储存位址所对应的上述起始位址单元中,以及其中上述多个起始位址单元的数量会小于上述多个储存单元的数量。
于本发明其他附加的特征与优点,本领域技术人员,在不脱离本发明的精神和范围内,当可根据本案实施方法中所揭露的一次性可编程存储器装置和一次性可编程存储器的容错方法,做些许的更动与润饰而得到。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1显示根据本发明的一实施例所述的一次性可编程存储器装置100的方块图;
图2显示根据本发明的一实施例所述的一次性可编程存储器110的方块图;
图3根据本发明的一实施例所述的一次性可编程存储器的容错方法的流程图;
图4根据本发明的一实施例所述的一次性可编程存储器的容错方法中加入新变量的流程图400;
图5根据本发明的一实施例所述的一次性可编程存储器的容错方法中修改变量的数据内容的流程图500;
图6根据本发明的一实施例所述的一次性可编程存储器的容错方法中读取变量的数据内容的流程图600。
100 一次性可编程存储器装置;
110 一次性可编程存储器;
111 第一区块;
112 第二区块;
113 第三区块;
114 第四区块;
120 存储器控制器;
300、400、500、600 流程图;
A0~A15 起始位址单元;
B0~B47 储存单元;
S310~S320、S410~S450、S510~S540、S610~S620 步骤。
具体实施方式
本章节所叙述的是实施本发明的较佳方式,目的在于说明本发明的精神而非用以限定本发明的保护范围,本发明的保护范围当视权利要求保护范围所界定者为准。
图1显示根据本发明的一实施例所述的一次性可编程存储器(one-timeprogrammable memory)装置100的方块图。如图1所示,一次性可编程存储器装置100包括一一次性可编程存储器110,以及一存储器控制器120。注意地是,在图1中所示的方块图,仅是为了方便说明本发明的实施例,但本发明并不以图1为限。一次性可编程存储器装置100中亦可包含其他元件。
根据本发明一实施例,一处理器(图未显示)可经由一汇流排(例如:一高级高性能汇流排(Advanced High-performance Bus))下指令给存储器控制器120,存储器控制器120再根据处理器所下达的指令,对一次性可编程存储器110进行对应的操作。此外,根据本发明的一实施例,可藉由烧录工具或烧录软体将变量烧录至一次性可编程存储器110。
图2显示根据本发明的一实施例所述的一次性可编程存储器110的方块图。如图2所示,一次性可编程存储器110可包括一第一区块111、一第二区块112、一第三区块113以及一第四区块114。特别说明地是,图2仅是用以说明本发明的实施例,但本发明并不以此为限。
根据本发明一实施例,第一区块111、第三区块113以及第四区块114所储存的内容采用一次有效性编码(One-Hot Encoding)的方式进行编码。
如图2所示,一次性可编程存储器110的第一区块111可包含16个起始位址单元A0~A15(即表示可烧录16个变量至一次性可编程存储器110),且每个起始位址单元会占用64位,但本发明并不以此为限。一次性可编程存储器110的第二区块112可包含48个储存单元B0~B47(即表示有48个储存位址可供配置),且每个储存单元会占用64位,但本发明并不以此为限。一次性可编程存储器110的第三区块113会占用16位,但本发明并不以此为限。一次性可编程存储器110的第四区块114会占用48位,但本发明并不以此为限。
根据本发明一实施例,第一区块111会包含多个起始位址单元。每当要烧录一新的变量至一次性可编程存储器110时,存储器控制器120就会配置一起始位址单元给要烧录至一次性可编程存储器110的变量。也就是说,每一起始位址单元会对应一变量。在本发明的实施例中,每一起始位址单元会记录其对应的变量所对应的储存位址。根据本发明一实施例,当在烧录变量至一次性可编程存储器110时,存储器控制器120会依序分配给每一变量一个变量编号。每一起始位址单元亦会记录其对应的变量所对应的变量编号和变量名称。底下将会以表1-1和表2-1来做说明。
根据本发明一实施例,第二区块112会包含多个储存单元。每一储存单元会具有一对应的储存位址。每一储存位址会有对应的一储存位址编号(如底下表1-1、2-1和3-1所示)。每当烧录一新的变量至一次性可编程存储器110时,存储器控制器120会配置一储存位址给烧录至一次性可编程存储器110的变量。烧录至一次性可编程存储器110的变量所对应的数据内容会储存在其对应的储存位址所对应的储存单元中,且每一起始位址单元会记录其对应的变量所对应的储存位址。如图2所示,在本发明的实施例中,可烧录至一次性可编程存储器110的变量的数量会小于储存单元的数量(即储存位址的数量)。此外,如图2所示,根据本发明一实施例,一起始位址单元的尺寸会和一储存单元的尺寸相同。
在本发明的实施例中,当有变量的内容要更改时,存储器控制器120会配置一新的储存位址给该变量,且原来储存该变量对应的数据内容的储存单元就会被废弃,不再继续使用。
根据本发明一实施例,第三区块113用以记录已烧录至一次性可编程存储器110的变量的数量(底下会以变量MAX_USED_NO表示)。MAX_USED_NO的初始值会设为0(编码后的内容可是16’h0000)。每当有一新的变量烧录至一次性可编程存储器110后,MAX_USED_NO的数值就会加1。在本发明的实施例中,第三区块113中会预先设定可烧录至一次性可编程存储器110的变量的数量的上限值(即MAX_USED_NO的上限值)。当MAX_USED_NO的数值已到达上限值时,就无法继续烧录新的变量至一次性可编程存储器110中。也就是说,在本发明的实施例中,当有新的变量要烧录至一次性可编程存储器110时,存储器控制器120会先判断MAX_USED_NO的数值是否已到上限值。若MAX_USED_NO的数值已到上限值,存储器控制器120就不会继续再一次性可编程存储器110建立新的变量。此外,若MAX_USED_NO的数值已到上限值,当指示要进行修正的变量并非已烧录至一次性可编程存储器110中的变量,存储器控制器120就会将该变量视为无效的变量。关于第三区块113,底下将会更进一步以图2、表1-2和表2-2来做说明。
根据本发明一实施例,第四区块114用以记录已使用的储存位址的数量(底下会以变量MAX_USED_ADDR表示)。MAX_USED_ADDR的初始值会设为0(编码后的内容可为48’h0000_0000_0000)。每当存储器控制器120分配一储存位址给一变量时,MAX_USED_ADDR的数值就会加1。在本发明的实施例中,第四区块114中会预先设定储存位址的数量的上限值(即MAX_USED_ADDR的上限值)。当MAX_USED_ADDR的数值已到达上限值时(即储存单元都已被使用),存储器控制器120就无法继续分配储存位址给变量。关于第四区块114,底下将会更进一步以图2、表1-3和表2-3来做说明。
表1-1
表1-2
表1-3
表1-1~表1-3是根据本发明一实施例所述的烧录第1笔变量时,第一区块111、第三区块113和第四区块114记录的资讯。特别说明地是,表1-1~表1-3仅用以说明本发明的实施例,但本发明并不以此为限。参考图2和表1-1,当第1笔变量Setting 0要烧录至一次性可编程存储器110时,存储器控制器120可根据第三区块所储存的初始值(即MAX_USED_NO的初始值0,编码后的内容可为16’h0000)给予变量Setting 0一变量编号0。此外,存储器控制器120可根据第四区块所储存的初始值(即MAX_USED_ADDR的初始值0,编码后的内容可为48’h0000_0000_0000),配置一储存位址64’h0000_0000_0000_0000给变量Setting 0,且第一区块111的起始位址单元A0会记录变量Setting 0所对应的储存位址64’h0000_0000_0000_0000,其中储存位址64’h0000_0000_0000_0000会对应一储存位址编号0。变量Setting 0所对应的数据内容会储存在储存位址64’h0000_0000_0000_0000对应的储存单元B0中。接着,参考图2和表1-2,当变量Setting 0烧录至一次性可编程存储器110后,第三区块113所储存的数值会加1(即MAX_USED_NO的数值会变为1,编码后的内容可为16’h0001)。在此实施例中,存储器控制器120可根据表1-2所示的第三区块113所储存的数值,设定下1笔变量Setting 1的变量编号。此外,参考图2和表1-3,当变量Setting 0烧录至一次性可编程存储器110后,第四区块114所储存的数值会加1(即MAX_USED_ADDR的数值会变为1,编码后的内容可以是48’h0000_0000_0001)。在此实施例中,存储器控制器120可根据表1-3所示的第四区块114所储存的数值,配置一储存位址给下1笔变量Setting 1。
表2-1
表2-2
表2-3
表2-1~表2-3是根据本发明一实施例所述的烧录完所有变量时,第一区块111、第三区块113和第四区块114记录的资讯。特别说明地是,表2-1表2-3仅用以说明本发明的实施例,但本发明并不以此为限。参考图2和表2-1,当变量Setting 0~Setting 15都烧录至一次性可编程存储器110后,第一区块111的起始位址单元A0~A15会分别记录变量Setting0~Setting 15所对应的储存位址,其中变量Setting 0~Setting 15所对应的每一储存位址会分别对应储存位址编号0~15。变量Setting 0~Setting 15所对应的数据内容会分别储存在储存单元B0~B15中。接着,参考图2和表2-2,当变量Setting 0~Setting 15都烧录至一次性可编程存储器110后,第三区块113所储存的数值会是16(即MAX_USED_NO的数值会是16,编码后的内容可以是16’hFFFF)。由于第三区块113所储存的数值已到达上限值,因此,存储器控制器120不会(无法)再建立新的变量于一次性可编程存储器110中。此外,参考图2和表2-3,当变量Setting0~Setting 15都烧录至一次性可编程存储器110后,第四区块114所储存的数值会为16(即MAX_USED_ADDR的数值会为16,编码后的内容可为48’h0000_0000_FFFF)。即表示第四区块114剩下32个储存位址可供存储器控制器120配置。当变量Setting 0~Setting 15的一者的数据内容需要更改时,存储器控制器120可根据表2-3所示的第四区块113所储存的数值,配置未被使用的储存位址给需要更新数据内容的变量。关于如何变量的数据内容如何做修改,底下会更进一步以表3-1~表3-3来做说明。
表3-1
表3-2
表3-3
表3-1~表3-3是根据本发明一实施例所述的更改变量的数据内容时,第一区块111、第三区块113和第四区块114记录的资讯。特别说明地是,表3-1~表3-3仅用以说明本发明的实施例,但本发明并不以此为限。参考图2和表3-1,当变量Setting 1的数据内容需要更改时,存储器控制器120可根据表2-3所示的第四区块113所储存的数值,配置新的储存位址给变量Setting 1。第一区块111的起始位址单元A1会记录变量Setting 1所对应的新的储存位址64’h0000_0000_0000_FFFF。变量Setting 1所更新的数据内容会储存在储存位址64’h0000_0000_0000_FFFF对应的储存单元B16中。此外,原先配置给变量Setting 1的储存单元B1就会废弃不再使用。接着,参考图2和表3-2,由于第三区块113所储存的数值已到达上限值,因此表3-2的内容会和表2-2的内容相同。此外,参考图2和表3-3,当变量Setting1的数据内容修改后,第四区块114所储存的数值会加1(即MAX_USED_ADDR的数值会变为17,编码后的内容可以是48’h0000_0001_FFFF)。当下一次需要更改变量的数据内容时,存储器控制器120可根据表3-3所示的第四区块114所储存的数值,配置新的储存位址给需要更改数据内容的变量。
根据本发明一实施例,当需要读取变量所对应的数据内容时,存储器控制器120会先根据需要被读取的变量的变量编号,读取变量所对应的起始位址单元所记录的储存位址,接着,存储器控制器120会从对应该储存位址的储存单元中读取变量所对应的数据内容。举例来说,参考图2和表2-1,当存储器控制器120根据一读取指令所指示的变量编号(例如:变量编号1),得知要读取变量Setting 1的数据内容时,存储器控制器120会先读取变量Setting1所对应的起始位址单元A1所记录的储存位址64’h0000_0000_0000_0001,接着,存储器控制器120会从对应储存位址64’h0000_0000_0000_0001的储存单元B1中读取变量Setting1所对应的数据内容。
图3是根据本发明的一实施例所述的一次性可编程存储器的容错方法的流程图300。一次性可编程存储器的容错方法可适用一次性可编程存储器装置100。在步骤S310,在一次性可编程存储器装置100的一次性可编程存储器配置一第一区块和一第二区块,其中第一区块包括多个起始位址单元,且每一起始位址单元会对应一变量,以记录每一变量对应的储存位址,以及其中第二区块包含多个储存单元,且每一储存单元具有一对应的储存位址。在步骤S320,藉由一次性可编程存储器装置100的存储器控制器,分配储存位址给变量,其中每一变量所对应的数据内容会储存在其对应的储存位址所对应的储存单元中,以及其中多个起始位址单元的数量会小于多个储存单元的数量。
根据本发明一实施例,在一次性可编程存储器的容错方法中更包括,在一次性可编程存储器装置100的一次性可编程存储器配置一第三区块,以记录已烧录至一次性可编程存储器的变量的数量,以及在一次性可编程存储器装置100的一次性可编程存储器配置一第四区块,以记录已使用的储存位址的数量。
根据本发明一实施例,在一次性可编程存储器的容错方法中更包括,采用一次有效性编码技术,产生第一区块、第三区块以及第四区块储存的内容。
根据本发明一实施例,在一次性可编程存储器的容错方法中更包括,藉由每一起始位址单元记录其对应的变量的变量编号和变量名称。
图4是根据本发明的一实施例所述的一次性可编程存储器的容错方法中加入新变量的流程图400。在此实施例所述的一次性可编程存储器的容错方法中加入新变量的流程,可适用一次性可编程存储器装置100。在步骤S410,当要烧录一新的变量至一次性可编程存储器装置100的一次性可编程存储器时,藉由一次性可编程存储器装置100的存储器控制器判断已烧录至一次性可编程存储器的变量的数量是否已到达一上限值(即MAX_USED_NO的数值是否已到达上限值)。若已烧录至一次性可编程存储器的变量的数量已到达上限值,结束此流程。
若已烧录至一次性可编程存储器的变量的数量未到达上限值,进行步骤S420。在步骤S420,藉由一次性可编程存储器装置100的存储器控制器,根据已烧录至一次性可编程存储器的变量的数量(即MAX_USED_NO的数值)设定新的变量的一变量名称。在步骤S430,藉由一次性可编程存储器装置100的存储器控制器,根据已使用的储存位址的数量(即MAX_USED_ADDR的数值),配置储存位址给新的变量。
在步骤S440,藉由一次性可编程存储器装置100的存储器控制器,将已烧录至一次性可编程存储器的变量的数量(即MAX_USED_NO的数值)加1,以及将已使用的储存位址的数量(即MAX_USED_ADDR的数值)加1。在步骤S450,藉由一次性可编程存储器装置100的存储器控制器,判断是否还有其他新的变量要烧录至一次性可编程存储器装置100的一次性可编程存储器。若还有其他新的变量要烧录至一次性可编程存储器装置100的一次性可编程存储器时,回到步骤S410。
图5是根据本发明的一实施例所述的一次性可编程存储器的容错方法中修改变量的数据内容的流程图500。在此实施例所述的一次性可编程存储器的容错方法中修改变量的数据内容的流程,可适用一次性可编程存储器装置100。在步骤S510,当要对已烧录至一次性可编程存储器装置100的一变量进行修改时,藉由一次性可编程存储器装置100的存储器控制器判断已使用的储存位址的数量是否已到达一上限值。若已使用的储存位址的数量已到达上限值,结束此流程。
若已使用的储存位址的数量尚未到达上限值,进行步骤S520。在步骤S520,藉由一次性可编程存储器装置100的存储器控制器,根据已使用的储存位址的数量(即MAX_USED_ADDR的数值),分配第二区块中还未使用的储存位址给要进行修改的变量。在步骤S530,当变量修改完后,藉由一次性可编程存储器装置100的存储器控制器,将已使用的储存位址的数量加一。在步骤S540,藉由一次性可编程存储器装置100的存储器控制器,判断是否还有其他已烧录至一次性可编程存储器的变量的数据内容要进行修改。若还有其他已烧录至一次性可编程存储器的变量的数据内容要进行修改时,回到步骤S510。
图6是根据本发明的一实施例所述的一次性可编程存储器的容错方法中读取变量的数据内容的流程图600。在此实施例所述的一次性可编程存储器的容错方法中读取已烧录至一次性可编程存储器的变量的数据内容的流程,可适用一次性可编程存储器装置100。在步骤S610,当要读取烧录在一次性可编程存储器装置100的一次性可编程存储器的变量对应的数据内容时,藉由一次性可编程存储器装置100的存储器控制器,读取对应需要被读取的变量的储存单元所储存的储存位址。在步骤S620,藉由一次性可编程存储器装置100的存储器控制器,根据储存位址取得需要被读取的变量的数据内容。
根据本发明的实施例所提出的一次性可编程存储器的容错方法,当一变量需要进行修改时,其他变量不需要一起被重新烧录。因此,将可节省一次性可编程存储器的储存空间。此外,根据本发明的实施例所提出的一次性可编程存储器的容错方法,使用者可以更弹性去修正变量的数据内容。
在本说明书中以及权利要求书中的序号,例如「第一」、「第二」等等,仅是为了方便说明,彼此的间并没有顺序上的先后关系。
本发明的说明书所揭露的方法和演算法的步骤,可直接通过执行一处理器直接应用在硬件以及软件模组或两者的结合上。一软件模组(包括执行指令和相关数据)和其它数据可储存在数据存储器中,像是随机存取存储器(RAM)、快闪存储器(flash memory)、只读存储器(ROM)、可抹除可规化只读存储器(EPROM)、电子可抹除可规划只读存储器(EEPROM)、暂存器、硬碟、可携式应碟、光碟只读存储器(CD-ROM)、DVD或在此领域习的技术中任何其它电脑可读取的储存媒体格式。一储存媒体可耦接至一机器装置,举例来说,像是电脑/处理器(为了说明的方便,在本说明书以处理器来表示),上述处理器可通过来读取资讯(像是代码),以及写入资讯至储存媒体。一储存媒体可整合一处理器。一特殊应用集成电路(ASIC)包括处理器和储存媒体。一用户设备则包括一特殊应用集成电路。换句话说,处理器和储存媒体以不直接连接用户设备的方式,包含于用户设备中。此外,在一些实施例中,任何适合电脑程序的产品包括可读取的储存媒体,其中可读取的储存媒体包括和一或多个所揭露实施例相关的代码。在一些实施例中,电脑程序的产品可包括封装材料。
以上段落使用多种层面描述。显然的,本文的教示可以多种方式实现,而在范例中揭露的任何特定架构或功能仅为一代表性的状况。根据本文的教示,任何本领域技术人员应理解在本文揭露的各层面可独立实作或两种以上的层面可以合并实作。
虽然本揭露已以实施例揭露如上,然其并非用以限定本揭露,任何本领域技术人员,在不脱离本揭露的精神和范围内,当可作些许的更动与润饰,因此发明的保护范围当视权利要求保护范围所界定者为准。

Claims (16)

1.一种一次性可编程存储器装置,其特征在于,包括:
一一次性可编程存储器,包含一第一区块和一第二区块,其中上述第一区块包括多个起始位址单元,且每一上述起始位址单元会对应一变量,以记录每一上述变量对应的储存位址,以及其中上述第二区块包含多个储存单元,且每一上述储存单元具有一对应的储存位址;以及
一存储器控制器,耦接上述一次性可编程存储器,以及分配上述储存位址给上述变量;
其中每一上述变量所对应的数据内容会储存在其对应的上述储存位址所对应的上述储存单元中;以及
其中上述多个起始位址单元的数量会小于上述多个储存单元的数量;
一第三区块,用以记录已烧录至上述一次性可编程存储器的上述变量的数量;以及
一第四区块,用以记录已使用的上述储存位址的数量;
当要对上述多个变量的一者进行修改时,上述存储器控制器判断已使用的上述储存位址的数量是否已到达一上限值。
2.如权利要求1所述的一次性可编程存储器装置,其特征在于,上述第一区块、上述第三区块以及上述第四区块储存的内容采用一次有效性编码技术进行编码所产生。
3.如权利要求1所述的一次性可编程存储器装置,其特征在于,当要加入一新的变量至一次性可编程存储器时,上述存储器控制器判断已烧录至上述一次性可编程存储器的上述变量的数量是否已到达一上限值。
4.如权利要求3所述的一次性可编程存储器装置,其特征在于,若已烧录至上述一次性可编程存储器的上述变量的数量未到达上述上限值,上述存储器控制器根据已烧录至上述一次性可编程存储器的上述变量的数量,设定上述新的变量的一变量名称。
5.如权利要求1所述的一次性可编程存储器装置,其特征在于,若已使用的上述储存位址的数量未到达上述上限值,上述存储器控制器根据已使用的上述储存位址的数量,分配上述第二区块中还未使用的上述储存位址给要进行修改的上述变量。
6.如权利要求5所述的一次性可编程存储器装置,其特征在于,当修改完后,上述存储器控制器更将已使用的上述储存位址的数量加一。
7.如权利要求1所述的一次性可编程存储器装置,其特征在于,当要读取烧录在一次性可编程存储器的上述变量对应的数据内容时,上述存储器控制器先读取对应需要被读取的上述变量的上述起始位址单元所储存的上述储存位址,再根据上述储存位址取得需要被读取的上述变量的数据内容。
8.如权利要求1所述的一次性可编程存储器装置,其特征在于,每一上述起始位址单元更记录其对应的上述变量的变量编号和变量名称。
9.一种一次性可编程存储器的容错方法,其特征在于,包括:
在一一次性可编程存储器装置的一一次性可编程存储器配置一第一区块和一第二区块,其中上述第一区块包括多个起始位址单元,且每一上述起始位址单元会对应一变量,以记录每一上述变量对应的储存位址,以及其中上述第二区块包含多个储存单元,且每一上述储存单元具有一对应的储存位址;以及
藉由上述一次性可编程存储器装置的一存储器控制器,分配上述储存位址给上述变量;
其中每一上述变量所对应的数据内容会储存在其对应的上述储存位址所对应的上述储存单元中;以及
其中上述多个起始位址单元的数量会小于上述多个储存单元的数量;
在上述一次性可编程存储器配置一第三区块,以记录已烧录至上述一次性可编程存储器的上述变量的数量;以及
在上述一次性可编程存储器配置一第四区块,以记录已使用的上述储存位址的数量;
当要对上述多个变量的一者进行修改时,上述存储器控制器判断已使用的上述储存位址的数量是否已到达一上限值。
10.如权利要求9所述的一次性可编程存储器的容错方法,其特征在于,更包括:
采用一次有效性编码技术,产生上述第一区块、上述第三区块以及上述第四区块储存的内容。
11.如权利要求9所述的一次性可编程存储器的容错方法,其特征在于,更包括:
当要加入一新的变量至一次性可编程存储器时,判断已烧录至上述一次性可编程存储器的上述变量的数量是否已到达一上限值。
12.如权利要求11所述的一次性可编程存储器的容错方法,其特征在于,更包括:
若已烧录至上述一次性可编程存储器的上述变量的数量未到达上述上限值,根据已烧录至上述一次性可编程存储器的上述变量的数量设定上述新的变量的一变量名称。
13.如权利要求9所述的一次性可编程存储器的容错方法,其特征在于,更包括:
若已使用的上述储存位址的数量未到达上述上限值,根据已使用的上述储存位址的数量,分配上述第二区块中还未使用的上述储存位址给要进行修改的上述变量。
14.如权利要求13所述的一次性可编程存储器的容错方法,其特征在于,更包括:
当修改完后,上述存储器控制器更将已使用的上述储存位址的数量加一。
15.如权利要求9所述的一次性可编程存储器的容错方法,其特征在于,更包括:
当要读取烧录在一次性可编程存储器的上述变量对应的数据内容时,读取对应需要被读取的上述变量的上述起始位址单元所储存的上述储存位址;以及
根据上述储存位址取得需要被读取的上述变量的数据内容。
16.如权利要求9所述的一次性可编程存储器的容错方法,其特征在于,更包括:
藉由每一上述起始位址单元记录其对应的上述变量的变量编号和变量名称。
CN202010825916.6A 2019-12-25 2020-08-17 一次性可编程存储器装置及其容错方法 Active CN113031854B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108147502 2019-12-25
TW108147502A TWI715371B (zh) 2019-12-25 2019-12-25 一次性可編程記憶體裝置及其容錯方法

Publications (2)

Publication Number Publication Date
CN113031854A CN113031854A (zh) 2021-06-25
CN113031854B true CN113031854B (zh) 2023-12-08

Family

ID=75237163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010825916.6A Active CN113031854B (zh) 2019-12-25 2020-08-17 一次性可编程存储器装置及其容错方法

Country Status (3)

Country Link
US (1) US11397535B2 (zh)
CN (1) CN113031854B (zh)
TW (1) TWI715371B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489516A (zh) * 2022-02-08 2022-05-13 合肥芯颖科技有限公司 一种数据存储装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200300884A (en) * 2003-03-04 2003-06-16 Megawin Technology Co Ltd Method for detecting logical address of non-volatile storage medium
CN101727987A (zh) * 2008-10-29 2010-06-09 旺宏电子股份有限公司 数据编程与读取方法及应用其的单次可编程存储器
CN102486937A (zh) * 2010-12-06 2012-06-06 慧荣科技股份有限公司 单次可编程存储器的数据编程电路及方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003713B2 (en) * 2002-05-16 2006-02-21 Broadcom Corporation Variable Hamming error correction for a one-time-programmable-ROM
US7047381B2 (en) * 2002-07-19 2006-05-16 Broadcom Corporation System and method for providing one-time programmable memory with fault tolerance
TWI271620B (en) * 2005-06-16 2007-01-21 Ememory Technology Inc Method and apparatus for performing multi-programmable function with one-time programmable memories
US8102710B2 (en) * 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for setting access and modification for synchronous serial interface NAND
JP5328020B2 (ja) * 2009-01-15 2013-10-30 セイコーインスツル株式会社 メモリ装置及びメモリアクセス方法
TWI489471B (zh) * 2009-02-06 2015-06-21 Sidense Corp 高可靠度一次可編程(otp)記憶體
TWI435217B (zh) * 2011-02-16 2014-04-21 Pixart Imaging Inc 可程式化記憶體及其寫入和讀取方法
US8446170B2 (en) * 2011-05-05 2013-05-21 Actel Corporation FPGA RAM blocks optimized for use as register files
US9076526B2 (en) * 2012-09-10 2015-07-07 Shine C. Chung OTP memories functioning as an MTP memory
US9684853B2 (en) * 2014-04-15 2017-06-20 Kyocera Document Solutions Inc. Image forming apparatus that writes data from volatile memory to non-volatile memory
US9891966B2 (en) 2015-02-10 2018-02-13 Red Hat, Inc. Idempotent mode of executing commands triggered by complex event processing
EP3289442B1 (en) * 2015-04-30 2023-04-19 Microchip Technology Incorporated Central processing unit with enhanced instruction set
US10768819B2 (en) * 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
CN110998524A (zh) * 2017-12-20 2020-04-10 深圳市汇顶科技股份有限公司 处理配置文件的方法、处理单元、触摸芯片、装置及介质
IT201900005020A1 (it) * 2019-04-03 2020-10-03 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US11599481B2 (en) 2019-12-12 2023-03-07 Western Digital Technologies, Inc. Error recovery from submission queue fetching errors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200300884A (en) * 2003-03-04 2003-06-16 Megawin Technology Co Ltd Method for detecting logical address of non-volatile storage medium
CN101727987A (zh) * 2008-10-29 2010-06-09 旺宏电子股份有限公司 数据编程与读取方法及应用其的单次可编程存储器
CN102486937A (zh) * 2010-12-06 2012-06-06 慧荣科技股份有限公司 单次可编程存储器的数据编程电路及方法

Also Published As

Publication number Publication date
US11397535B2 (en) 2022-07-26
TW202125243A (zh) 2021-07-01
TWI715371B (zh) 2021-01-01
US20210200440A1 (en) 2021-07-01
CN113031854A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
JP4778942B2 (ja) 不揮発性メモリを管理する装置及び方法
US6704852B2 (en) Control device applicable to flash memory card and method for building partial lookup table
CN102929786B (zh) 非易失性存储设备集合的易失性存储器表示
US10977171B2 (en) Method for creating multi-namespace and accessing data therein
KR102061079B1 (ko) 파일 액세스 방법 및 관련 기기
KR100533682B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
US20100318760A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US8914602B2 (en) Display controller having an embedded non-volatile memory divided into a program code block and a data block and method for updating parameters of the same
CN113031854B (zh) 一次性可编程存储器装置及其容错方法
CN107391120A (zh) 一种启动控制方法、电子设备及计算机可读存储介质
JP4561246B2 (ja) メモリ装置
US6967869B1 (en) Method and device to improve USB flash write performance
JP2016184402A (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
JP2006011533A (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
CN113050880B (zh) 一次性可编程存储器装置及其容错方法
CN101739272A (zh) 一种电子装置、一种基本输入输出系统的启动方法和系统
JP4703753B2 (ja) 情報処理装置、半導体記憶装置、及びプログラム
JP2007234212A (ja) Nandフラッシュメモリのプログラム方法及びメモリシステムのプログラム方法
JP4714291B2 (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
JP4599450B2 (ja) 電子機器、ファイルシステムの記憶領域割当法、および記憶領域割当プログラム
JP6740785B2 (ja) 情報処理装置及びプログラム
JP4895264B2 (ja) 記憶装置および情報処理装置
JP6020071B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP6012432B2 (ja) 半導体記憶装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant