TWI719779B - 一次性可編程記憶體裝置及其容錯方法 - Google Patents
一次性可編程記憶體裝置及其容錯方法 Download PDFInfo
- Publication number
- TWI719779B TWI719779B TW108147740A TW108147740A TWI719779B TW I719779 B TWI719779 B TW I719779B TW 108147740 A TW108147740 A TW 108147740A TW 108147740 A TW108147740 A TW 108147740A TW I719779 B TWI719779 B TW I719779B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- time programmable
- variable
- programmable memory
- mentioned
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
- G06F2212/2142—Solid state disk using write-once memory, e.g. OTPROM
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Programmable Controllers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供了一次性可編程記憶體裝置。一次性可編程記憶體裝置包括一次性可編程記憶體和記憶體控制器。一次性可編程記憶體包含第一區塊、第二區塊和第三區塊。第一區塊包括複數起始位址單元組,且每一起始位址單元組包括複數起始位址單元,且每一起始位址單元會對應一變數,以紀錄每一變數對應之儲存位址。第二區塊包括複數起始位址控制單元,且每一起始位址控制單元會分別對應一變數,以記錄變數目前所對應之起始位址單元組。第三區塊包含複數儲存單元,且每一儲存單元具有對應的儲存位址。記憶體控制器分配儲存位址給變數。
Description
本發明之實施例主要係有關於一次性可編程記憶體(one-time programmable memory)技術,特別係有關於在一次性可編程記憶體配置起始位址單元和起始位址控制單元之一次性可編程記憶體。
一次性可編程記憶體(one-time programmable memory)係常見資料儲存空間,其主要的特性是只容許一次燒錄並且無法抹除或是改變。當使用者想要修改內容時,一次性可編程記憶體的不可逆特性,常會造成使用者極大困惱。因此,一次性可編程記憶體控制器需要容錯(fault tolerance)機制,以提供使用者再次修改變數內容功能。
對於一次性可編程記憶體容錯機制而言,最簡單的做法是基於版本的一次性可編程記憶體容錯機制。此機制會先根據可修改次數的限制值,直接分配多份相同大小空間。每一份空間將會被視為一個版本(version),並且被指定一個特定版本編號。此機制還需配置一個變數 “執行版本編號”,以便通知控制器目前正在使用哪一個版本編號。當使用者欲修改變數之資料內容時,必須將變數內容燒錄到新的版本空間,並且修改執行版本編號為新版本編號。然而,在此機制下,當要修改某一個變數時,就必須放棄原先版本其他正確變數的儲存空間。舉例來說,當版本1中的某一變數之資料內容需要修改時,就必須將版本1中所有的變數燒錄到新的版本空間(例如:版本2),並且廢棄掉版本1之儲存空間。因此,雖然此機制簡單且實現容易,但卻造成大量儲存空間的浪費。
有鑑於上述先前技術之問題,本發明之實施例提供了一次性可編程記憶體裝置和一次性可編程記憶體容錯方法。
根據本發明之一實施例提供了一種一次性可編程記憶體裝置。上述一次性可編程記憶體裝置包括一一次性可編程記憶體和一記憶體控制器。一次性可編程記憶體包含一第一區塊、一第二區塊和一第三區塊。記憶體控制器耦接上述一次性可編程記憶體,以及控制上述第一區塊、第二區塊和第三區塊。上述第一區塊包括複數起始位址單元組,且每一上述起始位址單元組包括複數起始位址單元,且每一上述起始位址單元會對應一變數,以紀錄每一上述變數對應之儲存位址。上述第二區塊包括複數起始位址控制單元,且每一上述起始位址控制單元會分別對應上述變數之一者,以記錄每一上述變數目前所對應之上述起始位址單元組,更進一步地說,上述第二區塊包括複數起始位址控制單元,用以對應上述變數之一之起始位址單元所對應之起始位址單元組,以記錄目前每一上述變數之修改次數。上述第三區塊包含複數儲存單元,且每一上述儲存單元具有一對應的儲存位址,以及上述記憶體控制器用以分配上述儲存位址給上述變數。每一上述變數所對應之資料內容會儲存在其對應之上述儲存位址所對應之上述儲存單元中。上述變數之數量會小於上述複數儲存單元之數量。
在一些實施例中,上述一次性可編程記憶體更包括一第四區塊和一第五區塊。第四區塊用以紀錄已燒錄至上述一次性可編程記憶體之上述變數之數量。第五區塊用以紀錄已使用之上述儲存位址之數量。
在一些實施例中,上述第一區塊儲存之內容係採用二進制技術進行編碼,以及上述第二區塊、第四區塊以及上述第五區塊儲存之內容係採用一次有效性編碼技術進行編碼所產生。
在一些實施例中,當要加入一新的變數至一次性可編程記憶體時,上述記憶體控制器判斷已燒錄至上述一次性可編程記憶體之上述變數之數量是否已到達一第一上限值。若已燒錄至上述一次性可編程記憶體之上述變數之數量未到達上述上限值,上述記憶體控制器根據已燒錄至上述一次性可編程記憶體之上述變數之數量,設定上述新的變數之一變數名稱,且根據已使用之儲存位址之數量,配置儲存位址給上述新的變數,且記錄上述新的變數所對應之儲存位址在上述新變數所對應之起始位址單元組之起始位址單元中。此外,上述記憶體控制器記錄上述新的變數對應之起始位址單元所對應之起始位址單元組在上述第二區塊對應上述新的變數之起始位址控制單元中。
在一些實施例中,當要對上述複數變數之一者進行修改時,上述記憶體控制器判斷已使用之上述儲存位址之數量是否已到達一第二上限值。若已使用之上述儲存位址之數量未到達上述上限值,上述記憶體控制器判斷要進行修改之上述變數之修改次數是否已到達一第三上限值。若要進行修改之上述變數之修改次數未到達上述第三上限值,上述記憶體控制器根據已使用之上述儲存位址之數量,分配上述第三區塊中還未使用之上述儲存位址給要進行修改之上述變數,且配置給要進行修改之上述變數之上述儲存位址被記錄在另一起始位址單元組中對應要進行修改之上述變數之起始位址單元中。其中當修改完後,上述記憶體控制器更將已使用之上述儲存位址之數量加一,以及將上述變數之修改次數加一。
在一些實施例中,當要讀取燒錄在一次性可編程記憶體之上述變數對應之資料內容時,上述記憶體控制器先讀取對應需要被讀取之上述變數之上述起始位址控制單元,以取得上述變數之上述起始位址單元所儲存之上述儲存位址,再根據上述儲存位址取得需要被讀取之上述變數之資料內容。
根據本發明之一實施例提供了一種一次性可編程記憶體之容錯方法。上述一次性可編程記憶體之容錯方法之步驟包括,在一一次性可編程記憶體裝置之一一次性可編程記憶體配至一第一區塊、一第二區塊和一第三區塊,以及藉由上述一次性可編程記憶體裝置之一記憶體控制器控制上述第一區塊、上述第二區塊和上述第三區塊。上述第一區塊包括複數起始位址單元組,且每一上述起始位址單元組包括複數起始位址單元,且每一上述起始位址單元會對應一變數,以紀錄每一上述變數對應之儲存位址。上述第二區塊包括複數起始位址控制單元,且每一上述起始位址控制單元會分別對應上述變數之一者,以記錄每一上述變數目前所對應之上述起始位址單元組。上述第三區塊包含複數儲存單元,且每一上述儲存單元具有一對應的儲存位址,以及上述記憶體控制器用以分配上述儲存位址給上述變數。每一上述變數所對應之資料內容會儲存在其對應之上述儲存位址所對應之上述儲存單元中。上述變數之數量會小於上述複數儲存單元之數量。
於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之一次性可編程記憶體裝置和一次性可編程記憶體之容錯方法,做些許的更動與潤飾而得到。
本章節所敘述的是實施本發明之較佳方式,目的在於說明本發明之精神而非用以限定本發明之保護範圍,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
第1圖係顯示根據本發明之一實施例所述之一次性可編程記憶體(one-time programmable 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以及一第五區塊115。特別說明地是,第2圖僅係用以說明本發明之實施例,但本發明並不以此為限。
根據本發明一實施例,第一區塊111儲存之內容係採用二進制技術進行編碼,以及第二區塊112、第四區塊114以及第五區塊115儲存之內容係採用一次有效性編碼(One-Hot Encoding)的方式進行編碼。
如第2圖所示,一次性可編程記憶體110之第一區塊111可包含4個起始位址單元組A0~A3。每一起始位址單元組A0~A3可包含16個起始位址單元(即表示可燒錄16個變數至一次性可編程記憶體110)。如第2圖所示,起始位址單元組A0可包含16個起始位址單元B0_0~B0_15,起始位址單元組A1可包含16個起始位址單元B1_0~B1_15,起始位址單元組A2可包含16個起始位址單元B2_0~B2_15,以及起始位址單元組A3可包含16個起始位址單元B3_0~B3_15。每個起始位址單元會占用6位元,但本發明並不以此為限。一次性可編程記憶體110之第二區塊112可包含16個起始位址控制單元C0~C15,且每個起始位址控制單元會占用4位元,但本發明並不以此為限。一次性可編程記憶體110之第三區塊113可包含56個儲存單元D0~D55(即表示有56個儲存位址可供配置),且每個儲存單元會占用64位元,但本發明並不以此為限。一次性可編程記憶體110之第四區塊114會占用16位元,但本發明並不以此為限。一次性可編程記憶體110之第五區塊115會占用56位元,但本發明並不以此為限。
根據本發明一實施例,第一區塊111會包含複數起始位址單元組(例如:起始位址單元組A0~A3)。每當要燒錄一新的變數至一次性可編程記憶體110時,會從第一組起始位址單元組(起始位址單元組A0)開始進行燒錄。當燒錄至一次性可編程記憶體110之變數之資料內容需要修改時,才會使用到其餘起始位址單元組。在本發明之實施例中,起始位址單元組之數量,即表示每一燒錄至一次性可編程記憶體110之變數最多可修正之次數(包含初始燒錄至一次性可編程記憶體110之情況)。以第2圖為例,第一區塊111包含4起始位址單元組,即表示每一燒錄至一次性可編程記憶體110之變數最多只能修正4次,但本發明不以此為限。每當要燒錄一新的變數至一次性可編程記憶體110時,記憶體控制器120會依序配置第一組起始位址單元組之起始位址單元(例如:B0_0~B0_15)給要燒錄至一次性可編程記憶體110之變數。也就是說,每一起始位址單元會對應一變數。在本發明之實施例中,每一起始位址單元會紀錄其對應之變數所對應之儲存位址。根據本發明一實施例,當在燒錄變數至一次性可編程記憶體110時,記憶體控制器120會依序分配給每一變數一個變數編號。每一起始位址單元亦會紀錄其對應之變數所對應之變數編號和變數名稱。底下將會以表1-1來做說明。
根據本發明一實施例,第二區塊112可包含複數起始位址控制單元(例如:起始位址控制單元C0~C15)。起始位址控制單元之數量會和可燒錄至一次性可編程記憶體110之變數之數量相同。也就是說,每一起始位址控制單元會對應一變數。在本發明之實施例中,起始位址控制單元係用以紀錄每一變數目前所對應之起始位址單元組(即用以紀錄每一變數係對應到哪一起始位址單元組之位址控制單元)。舉例來說,若一變數係對應到第1組起始位址單元組(例如:起始位址單元組A0)所包含之起始位址單元之一者,起始位址控制單元就會記錄1(編碼後之內容可係4’0001)。底下將會以表1-1來做說明。根據本發明一實施例,起始位址控制單元所記錄之數值會有一上限值。舉例來說,若一次性可編程記憶體110僅包含4起始位址單元組,起始位址控制單元所能記錄之數值之上限值就會為4(編碼後之內容可係4’1111)。當起始位址控制單元所記錄之數值已達上限值,即表示起始位址控制單元對應之變數之修改次數已達上限,無法再進行修改。
根據本發明一實施例,第三區塊113會包含複數儲存單元(例如:儲存單元D0~D55)。每一儲存單元會具有一對應的儲存位址。每一儲存位址會有對應之一儲存位址編號(如底下表1-1和2-1所示)。每當燒錄一新的變數至一次性可編程記憶體110時,記憶體控制器120會配置一儲存位址給燒錄至一次性可編程記憶體110之變數。燒錄至一次性可編程記憶體110之變數所對應之資料內容會儲存在其對應之儲存位址所對應之儲存單元中,且每一起始位址單元會紀錄其對應之變數所對應之儲存位址。如第2圖所示,在本發明之實施例中,可燒錄至一次性可編程記憶體110之變數之數量會小於儲存單元之數量(即儲存位址之數量)。
在本發明之實施例中,當有變數之內容要更改時,記憶體控制器120會配置一新的儲存位址給該變數,且原來儲存該變數對應之資料內容之儲存單元就會被廢棄,不再繼續使用。
根據本發明一實施例,第四區塊114係用以紀錄已燒錄至一次性可編程記憶體110之變數之數量(底下會以變數MAX_USED_NO表示)。MAX_USED_NO的初始值會設為0(編碼後之內容可係16’h0000)。每當有一新的變數燒錄至一次性可編程記憶體110後,MAX_USED_NO的數值就會加1。在本發明之實施例中,第四區塊114中會預先設定可燒錄至一次性可編程記憶體110之變數之數量之上限值(即MAX_USED_NO之上限值)。當MAX_USED_NO的數值已到達上限值時,就無法繼續燒錄新的變數至一次性可編程記憶體110中。也就是說,在本發明之實施例中,當有新的變數要燒錄至一次性可編程記憶體110時,記憶體控制器120會先判斷MAX_USED_NO之數值是否已到上限值。若MAX_USED_NO之數值已到上限值,記憶體控制器120就不會繼續再一次性可編程記憶體110建立新的變數。此外,若MAX_USED_NO之數值已到上限值,當指示要進行修正之變數並非係已燒錄至一次性可編程記憶體110中的變數,記憶體控制器120就會將該變數視為無效的變數。關於第四區塊114,底下將會更進一步以第2圖、表1-2和表2-2來做說明。
根據本發明一實施例,第五區塊115係用以紀錄已使用之儲存位址之數量(底下會以變數MAX_USED_ADDR表示)。MAX_USED_ADDR的初始值會設為0(編碼後之內容可係56’h00_0000_0000_0000)。每當記憶體控制器120分配一儲存位址給一變數時,MAX_USED_ADDR的數值就會加1。在本發明之實施例中,第五區塊115中會預先設定儲存位址之數量之上限值(即MAX_USED_ADDR之上限值)。當MAX_USED_ADDR的數值已到達上限值時(即儲存單元都已被使用),記憶體控制器120就無法繼續分配儲存位址給變數。關於第五區塊115,底下將會更進一步以第2圖、表1-3和表2-3來做說明。
表1-1
表1-2
表1-3
變數編號 | 變數名稱 | 編碼後之內容(第一區塊) | 編碼後之內容(第二區塊) | |||
0 | Setting 0 | 6’b000000 | - | - | - | 4’b0001 |
變數之數量之上限值 | 編碼後之內容 | 已燒錄之變數之數量(即MAX_USED_NO之數值) | |
第四區塊 | 16 | 16’h0001 | 1 |
儲存位址之數量之上限值 | 編碼後之內容 | 已使用之儲存位址之數量(即MAX_USED_ADDR之數值) | |
第五區塊 | 56 | 56’h000_0000_0001 | 1 |
表1-1~表1-3係根據本發明一實施例所述之燒錄第1筆變數時,第一區塊111、第二區塊112、第四區塊114和第五區塊115紀錄之資訊。特別說明地是,表1-1~表1-3僅係用以說明本發明之實施例,但本發明並不以此為限。參考第2圖和表1-1,當第1筆變數Setting 0要燒錄至一次性可編程記憶體110時,記憶體控制器120可根據第四區塊114所儲存之初始值(即MAX_USED_NO之初始值0,編碼後之內容可係16’h0000)給予變數Setting 0一變數編號0。此外,記憶體控制器120可根據第五區塊115所儲存之初始值(即MAX_USED_ADDR之初始值0,編碼後之內容可係56’h000_0000_0000),配置一儲存位址6’b000000給變數Setting 0,且第一區塊111之起始位址單元組A0之起始位址單元B0_0會記錄變數Setting 0所對應之儲存位址6’b000000。第二區塊112之起始位址控制單元C0會記錄變數Setting 0所對應之起始位址單元B0_0係在哪一起始位址單元組(例如:在起始位址單元組A0就紀錄為1,編碼後為4’b0001)。換句話說,第二區塊112之起始位址控制單元C0會記錄變數Setting 0之修改次數(變數Setting 0第一次燒錄至一次性可編程記憶體110會視為第一次修改,紀錄為1)。變數Setting 0所對應之資料內容會儲存在儲存位址6’b000000對應之儲存單元D0中。接著,參考第2圖和表1-2,當變數Setting 0燒錄至一次性可編程記憶體110後,第四區塊114所儲存之數值會加1(即MAX_USED_NO之數值會變為1,編碼後之內容可係16’h0001)。在此實施例中,記憶體控制器120可根據表1-2所示之第四區塊114所儲存之數值,設定下1筆變數Setting 1之變數編號。此外,參考第2圖和表1-3,當變數Setting 0燒錄至一次性可編程記憶體110後,第五區塊115所儲存之數值會加1(即MAX_USED_ADDR之數值會變為1,編碼後之內容可係56’h000_0000_0001)。在此實施例中,記憶體控制器120可根據表1-3所示之第五區塊115所儲存之數值,配置一儲存位址給下1筆變數Setting 1。
表2-1
表2-2
表2-3
變數編號 | 變數名稱 | 編碼後之內容(第一區塊) | 編碼後之內容(第二區塊) | |||
0 | Setting 0 | 6’b000000 | - | - | - | 4’b0001 |
1 | Setting 1 | 6’b000001 | - | - | - | 4’b0001 |
2 | Setting 2 | 6’b000010 | - | - | - | 4’b0001 |
3 | Setting 3 | 6’b000011 | - | - | - | 4’b0001 |
4 | Setting 3 | 6’b000100 | 4’b0001 | |||
5 | Setting 4 | 6’b000101 | 4’b0001 | |||
. . . | . . . | . . . | . . . | |||
15 | Setting 15 | 6’b001111 | - | - | - | 4’b0001 |
變數之數量之上限值 | 編碼後之內容 | 已燒錄之變數之數量(即MAX_USED_NO之數值) | |
第四區塊 | 16 | 16’hFFFF | 16 |
儲存位址之數量之上限值 | 編碼後之內容 | 已使用之儲存位址之數量(即MAX_USED_ADDR之數值) | |
第五區塊 | 56 | 56’h000_0000_FFFF | 16 |
表2-1~表2-3係根據本發明一實施例所述之燒錄完所有變數時,第一區塊111、第二區塊112、第四區塊114和第五區塊115紀錄之資訊。特別說明地是,表2-1~表2-3僅係用以說明本發明之實施例,但本發明並不以此為限。參考第2圖和表2-1,當變數Setting 0~Setting 15都燒錄至一次性可編程記憶體110後,第一區塊111之起始位址單元組A0之起始位址單元B0_0~B0_15會分別記錄變數Setting 0~Setting 15所對應之儲存位址,其中變數Setting 0~ Setting 15所對應之每一儲存位址會分別對應儲存位址編號0~15。第二區塊112之起始位址控制單元C0~C15會記錄變數Setting 0~Setting 15所對應之起始位址單元B0_0~B0_15係在哪一起始位址單元組(例如:在起始位址單元組A0就紀錄為1,編碼後為4’b0001)。變數Setting 0~Setting 15所對應之資料內容會分別儲存在第三區塊113之儲存單元D0~D15中。接著,參考第2圖和表2-2,當變數Setting 0~Setting 15都燒錄至一次性可編程記憶體110後,第四區塊114所儲存之數值會係16(即MAX_USED_NO之數值會係16,編碼後之內容可係16’hFFFF)。由於第四區塊114所儲存之數值已到達上限值,因此,記憶體控制器120不會(無法)再建立新的變數於一次性可編程記憶體110中。此外,參考第2圖和表2-3,當變數Setting 0~Setting 15都燒錄至一次性可編程記憶體110後,第五區塊115所儲存之數值會係16(即MAX_USED_ADDR之數值會係16,編碼後之內容可係56’h000_0000_FFFF)。即表示第五區塊115剩下40個儲存位址可供記憶體控制器120配置。當變數Setting 0~Setting 15之一者之資料內容需要更改時,記憶體控制器120可根據表2-3所示之第五區塊115所儲存之數值,配置未被使用之儲存位址給需要更新資料內容之變數。關於如何變數之資料內容如何做修改,底下會更進一步以表3-1~表3-3來做說明。
表3-1
表3-2
表3-3
變數編號 | 變數名稱 | 編碼後之內容(第一區塊) | 編碼後之內容(第二區塊) | |||
0 | Setting 0 | 6’b000000 | - | - | - | 4’b0001 |
1 | Setting 1 | 6’b000001 | 6’b010000 | - | - | 4’b0011 |
2 | Setting 2 | 6’b000010 | - | - | - | 4’b0001 |
3 | Setting 3 | 6’b000011 | - | - | - | 4’b0001 |
4 | Setting 3 | 6’b000100 | 4’b0001 | |||
. . . | . . . | . . . | . . . | |||
15 | Setting 15 | 6’b001111 | - | - | - | 4’b0001 |
變數之數量之上限值 | 編碼後之內容 | 已燒錄之變數之數量(即MAX_USED_NO之數值) | |
第四區塊 | 16 | 16’hFFFF | 16 |
儲存位址之數量之上限值 | 編碼後之內容 | 已使用之儲存位址之數量(即MAX_USED_ADDR之數值) | |
第五區塊 | 56 | 56’h000_0001_FFFF | 17 |
表3-1~表3-3係根據本發明一實施例所述之更改變數之資料內容時,第一區塊111、第二區塊112、第四區塊114和第五區塊115紀錄之資訊。特別說明地是,表3-1~表3-3僅係用以說明本發明之實施例,但本發明並不以此為限。參考第2圖和表3-1,當變數Setting 1之資料內容需要更改時,記憶體控制器120可根據表2-3所示之第五區塊115所儲存之數值(56’h000_0000_FFFF),配置新的儲存位址給變數Setting 1。第一區塊111之起始位址單元組A1之起始位址單元B1_1會記錄變數Setting 1所對應之新的儲存位址6’b010000。第二區塊112之起始位址控制單元C1會記錄變數Setting 1所新對應之起始位址單元B1_1係在哪一起始位址單元組(例如:在起始位址單元組A1就紀錄為2,編碼後為4’b0011)。換句話說,第二區塊112之起始位址控制單元C1所記錄變數Setting 1之修改次數會加1(修改次數加1之數值編碼後為4’b0011)。變數Setting 1所更新之資料內容會儲存在儲存位址6’b010000對應之儲存單元D16中。此外,原先配置給變數Setting 1之儲存單元B0_1就會廢棄不再使用。接著,參考第2圖和表3-2,由於第四區塊114所儲存之數值已到達上限值,因此表3-2之內容會和表2-2之內容相同。此外,參考第2圖和表3-3,當變數Setting 1之資料內容修改後,第五區塊115所儲存之數值會加1(即MAX_USED_ADDR之數值會變為17,編碼後之內容可係56’h000_0001_FFFF)。當下一次需要更改變數之資料內容時,記憶體控制器120可根據表3-3所示之第五區塊115所儲存之數值,配置新的儲存位址給需要更改資料內容之變數。
根據本發明一實施例,當需要讀取變數所對應之資料內容時,記憶體控制器120會先根據需要被讀取之變數之變數編號,讀取變數所對應之起始位址控制單元,以得知變數所對應之起始位址單元係在哪一起始位址單元組,以取得變數所對應之起始位址單元所紀錄之儲存位址。接著,記憶體控制器120會從對應該儲存位址之儲存單元中讀取變數所對應之資料內容。舉例來說,參考第2圖和表2-1,當記憶體控制器120根據一讀取指令所指示之變數編號(例如:變數編號1),得知要讀取變數Setting 1之資料內容時,記憶體控制器120會先讀取變數Setting 1所對應之起始位址控制單元C1,以得知變數Setting 1所對應之起始位址單元係在哪一起始位址單元組。當記憶體控制器120得知Setting 1所對應之起始位址單元組係在起始位址單元組A0,就可得知變數Setting 1所對應之起始位址單元係B0_1。因此,記憶體控制器120就可取得變數所對應之起始位址單元B0_1所紀錄之儲存位址6’b000001。接著,記憶體控制器120會從對應儲存位址6’b000001之儲存單元D1中讀取變數Setting 1所對應之資料內容。
第3圖係根據本發明之一實施例所述之一次性可編程記憶體之容錯方法之流程圖300。一次性可編程記憶體之容錯方法可適用一次性可編程記憶體裝置100。在步驟S310,在一一次性可編程記憶體裝置100之一次性可編程記憶體配至一第一區塊、一第二區塊和一第三區塊。在步驟S320,藉由一次性可編程記憶體裝置100之記憶體控制器控制第一區塊、第二區塊和第三區塊。在此實施例中,第一區塊包括複數起始位址單元組,且每一起始位址單元組包括複數起始位址單元,且每一起始位址單元會對應一變數,以紀錄每一變數對應之儲存位址。在此實施例中,第二區塊包括複數起始位址控制單元,且每一起始位址控制單元會分別對應上述變數之一者,以記錄每一變數目前所對應之起始位址單元組。在此實施例中,第三區塊包含複數儲存單元,且每一儲存單元具有一對應的儲存位址,以及記憶體控制器用以分配儲存位址給上述變數。每一變數所對應之資料內容會儲存在其對應之儲存位址所對應之儲存單元中。變數之數量會小於複數儲存單元之數量。
根據本發明一實施例,在一次性可編程記憶體之容錯方法中更包括,在一次性可編程記憶體裝置100之一次性可編程記憶體配置一第四區塊,以紀錄已燒錄至一次性可編程記憶體之變數之數量,以及在一次性可編程記憶體裝置100之一次性可編程記憶體配置一第五區塊,以紀錄已使用之儲存位址之數量。
根據本發明一實施例,在一次性可編程記憶體之容錯方法中,第一區塊儲存之內容係採用二進制技術進行編碼所產生,以及第二區塊、第四區塊以及第五區塊儲存之內容係採用一次有效性編碼技術進行編碼所產生。
第4圖係根據本發明之一實施例所述之一次性可編程記憶體之容錯方法中加入新變數之流程圖400。在此實施例所述之一次性可編程記憶體之容錯方法中加入新變數之流程,可適用一次性可編程記憶體裝置100。在步驟S410,當要燒錄一新的變數至一次性可編程記憶體裝置100之一次性可編程記憶體時,藉由一次性可編程記憶體裝置100之記憶體控制器判斷已燒錄至一次性可編程記憶體之變數之數量是否已到達一第一上限值(即MAX_USED_NO之數值是否已到達上限值)。若已燒錄至一次性可編程記憶體裝置100之一次性可編程記憶體之變數之數量已到達上限值,結束此流程。
若已燒錄至一次性可編程記憶體裝置100之一次性可編程記憶體之變數之數量尚未到達第一上限值,進行步驟S420,藉由一次性可編程記憶體裝置100之記憶體控制器,根據已燒錄至一次性可編程記憶體裝置100之一次性可編程記憶體之變數之數量(即MAX_USED_NO之數值)設定新的變數之一變數名稱。在步驟S430,藉由一次性可編程記憶體裝置100之記憶體控制器,根據已使用之儲存位址之數量(即MAX_USED_ADDR之數值),配置儲存位址給新的變數,且記錄新變數所對應之儲存位址在新變數所對應之起始位址單元組之起始位址單元。在步驟S440,在第二區塊對應該新變數之起始位址控制單元中,記錄該新變數對應之起始位址單元所對應之起始位址單元組。換句話說,就是紀錄該新變數之修改次數(新變數第一次燒錄至一次性可編程記憶體之情況亦會記為第1次)。
在步驟S450,藉由一次性可編程記憶體裝置100之記憶體控制器,將第四區塊所記錄之已燒錄至一次性可編程記憶體之變數之數量(即MAX_USED_NO之數值)加1,以及將第五區塊所記錄之已使用之儲存位址之數量(即MAX_USED_ADDR之數值)加1。在步驟S460,藉由一次性可編程記憶體裝置100之記憶體控制器,判斷是否還有其他新的變數要燒錄至一次性可編程記憶體裝置100之一次性可編程記憶體。若還有其他新的變數要燒錄至一次性可編程記憶體裝置100之一次性可編程記憶體時,回到步驟S410。
第5圖係根據本發明之一實施例所述之一次性可編程記憶體之容錯方法中修改變數之資料內容之流程圖500。在此實施例所述之一次性可編程記憶體之容錯方法中修改變數之資料內容之流程,可適用一次性可編程記憶體裝置100。在步驟S510,當要對已燒錄至一次性可編程記憶體裝置100之一變數進行修改時,藉由一次性可編程記憶體裝置100之記憶體控制器判斷已使用之儲存位址之數量是否已到達一第二上限值。若已使用之儲存位址之數量已到達第二上限值,結束此流程。
若已使用之儲存位址之數量尚未到達第二上限值,進行步驟S520。在步驟S520,藉由一次性可編程記憶體裝置100之記憶體控制器判斷要進行修改之變數之修改次數是否已到達一第三上限值。若要進行修改之變數之修改次數已到達第三上限值,結束此流程。
若要進行修改之變數之修改次數尚未到達第三上限值,進行步驟S530,藉由一次性可編程記憶體裝置100之記憶體控制器,根據已使用之儲存位址之數量(即MAX_USED_ADDR之數值),分配第三區塊中還未使用之儲存位址給要進行修改之變數,且將配置給要進行修改之變數之儲存位址,記錄在另一起始位址單元組中對應要進行修改之變數之起始位址單元中。
在步驟S540,當要進行修改之變數修改完後,藉由一次性可編程記憶體裝置100之記憶體控制器,將第五區塊所記錄之已使用之儲存位址之數量加1,以及將第二區塊所記錄之對應該變數之修改次數加1。在步驟S550,藉由一次性可編程記憶體裝置100之記憶體控制器,判斷是否還有其他已燒錄至一次性可編程記憶體之變數之資料內容要進行修改。若還有其他已燒錄至一次性可編程記憶體之變數之資料內容要進行修改時,回到步驟S510。
第6圖係根據本發明之一實施例所述之一次性可編程記憶體之容錯方法中讀取變數之資料內容之流程圖600。在此實施例所述之一次性可編程記憶體之容錯方法中讀取已燒錄至一次性可編程記憶體之變數之資料內容之流程,可適用一次性可編程記憶體裝置100。在步驟S610,當要讀取燒錄在一次性可編程記憶體裝置100之一次性可編程記憶體之變數對應之資料內容時,藉由一次性可編程記憶體裝置100之記憶體控制器讀取對應需要被讀取之變數之起始位址控制單元,以取得需要被讀取之變數對應之起始位址單元所儲存之儲存位址。在步驟S620,根據需要被讀取之變數對應之儲存位址,取得需要被讀取之變數之資料內容。
根據本發明之實施例所提出之一次性可編程記憶體之容錯方法,當一變數需要進行修改時,其他變數不需要一起被重新燒錄。因此,將可節省一次性可編程記憶體之儲存空間。此外,根據本發明之實施例所提出之一次性可編程記憶體之容錯方法,使用者可以更彈性去修正變數之資料內容。
在本說明書中以及申請專利範圍中的序號,例如「第一」、「第二」等等,僅係為了方便說明,彼此之間並沒有順序上的先後關係。
本發明之說明書所揭露之方法和演算法之步驟,可直接透過執行一處理器直接應用在硬體以及軟體模組或兩者之結合上。一軟體模組(包括執行指令和相關數據)和其它數據可儲存在數據記憶體中,像是隨機存取記憶體(RAM)、快閃記憶體(flash memory)、唯讀記憶體(ROM)、可抹除可規化唯讀記憶體(EPROM)、電子可抹除可規劃唯讀記憶體(EEPROM)、暫存器、硬碟、可攜式應碟、光碟唯讀記憶體(CD-ROM)、DVD或在此領域習之技術中任何其它電腦可讀取之儲存媒體格式。一儲存媒體可耦接至一機器裝置,舉例來說,像是電腦/處理器(爲了說明之方便,在本說明書以處理器來表示),上述處理器可透過來讀取資訊(像是程式碼),以及寫入資訊至儲存媒體。一儲存媒體可整合一處理器。一特殊應用積體電路(ASIC)包括處理器和儲存媒體。一用戶設備則包括一特殊應用積體電路。換句話說,處理器和儲存媒體以不直接連接用戶設備的方式,包含於用戶設備中。此外,在一些實施例中,任何適合電腦程序之產品包括可讀取之儲存媒體,其中可讀取之儲存媒體包括和一或多個所揭露實施例相關之程式碼。在一些實施例中,電腦程序之產品可包括封裝材料。
以上段落使用多種層面描述。顯然的,本文的教示可以多種方式實現,而在範例中揭露之任何特定架構或功能僅為一代表性之狀況。根據本文之教示,任何熟知此技藝之人士應理解在本文揭露之各層面可獨立實作或兩種以上之層面可以合併實作。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何熟習此技藝者,在不脫離本揭露之精神和範圍內,當可作些許之更動與潤飾,因此發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:一次性可編程記憶體裝置
110:一次性可編程記憶體
111:第一區塊
112:第二區塊
113:第三區塊
114:第四區塊
115:第五區塊
120:記憶體控制器
300、400、500、600:流程圖
A0~A3:起始位址單元組
B0_0~B3_15:起始位址單元
C0~C15:起始位址控制單元
D0~D55:儲存單元
S310~S320、S410~S460、S510~S550、S610~S620:步驟
第1圖係顯示根據本發明之一實施例所述之一次性可編程記憶體裝置100之方塊圖。
第2圖係顯示根據本發明之一實施例所述之一次性可編程記憶體110之方塊圖。
第3圖係根據本發明之一實施例所述之一次性可編程記憶體之容錯方法之流程圖300。
第4圖係根據本發明之一實施例所述之一次性可編程記憶體之容錯方法中加入新變數之流程圖400。
第5圖係根據本發明之一實施例所述之一次性可編程記憶體之容錯方法中修改變數之資料內容之流程圖500。
第6圖係根據本發明之一實施例所述之一次性可編程記憶體之容錯方法中讀取變數之資料內容之流程圖600。
110:一次性可編程記憶體
111:第一區塊
112:第二區塊
113:第三區塊
114:第四區塊
115:第五區塊
A0~A3:起始位址單元組
B0_0~B3_15:起始位址單元
C0~C15:起始位址控制單元
D0~D55:儲存單元
Claims (20)
- 一種一次性可編程記憶體裝置,包括: 一一次性可編程記憶體,包含一第一區塊、一第二區塊和一第三區塊;以及 一記憶體控制器,耦接上述一次性可編程記憶體,以及控制上述第一區塊、上述第二區塊和上述第三區塊; 其中上述第一區塊包括複數起始位址單元組,且每一上述起始位址單元組包括複數起始位址單元,且每一上述起始位址單元會對應一變數,以紀錄每一上述變數對應之儲存位址; 其中上述第二區塊包括複數起始位址控制單元,且每一上述起始位址控制單元會分別對應上述變數之一者,以記錄每一上述變數目前所對應之上述起始位址單元組; 其中上述第三區塊包含複數儲存單元,且每一上述儲存單元具有一對應的儲存位址,以及上述記憶體控制器用以分配上述儲存位址給上述變數; 其中每一上述變數所對應之資料內容會儲存在其對應之上述儲存位址所對應之上述儲存單元中;以及 其中上述變數之數量會小於上述複數儲存單元之數量。
- 如申請專利範圍第1項所述之一次性可編程記憶體裝置,其中上述一次性可編程記憶體更包括: 一第四區塊,用以紀錄已燒錄至上述一次性可編程記憶體之上述變數之數量;以及 一第五區塊,用以紀錄已使用之上述儲存位址之數量。
- 如申請專利範圍第2項所述之一次性可編程記憶體裝置,其中上述第一區塊儲存之內容係採用二進制技術進行編碼,以及上述第二區塊、上述第四區塊以及上述第五區塊儲存之內容係採用一次有效性編碼技術進行編碼所產生。
- 如申請專利範圍第2項所述之一次性可編程記憶體裝置,其中當要加入一新的變數至上述一次性可編程記憶體時,上述記憶體控制器判斷已燒錄至上述一次性可編程記憶體之上述變數之數量是否已到達一第一上限值。
- 如申請專利範圍第4項所述之一次性可編程記憶體裝置,其中若已燒錄至上述一次性可編程記憶體之上述變數之數量未到達上述上限值,上述記憶體控制器根據已燒錄至上述一次性可編程記憶體之上述變數之數量,設定上述新的變數之一變數名稱,且根據已使用之儲存位址之數量,配置儲存位址給上述新的變數,且記錄上述新的變數所對應之儲存位址在上述新變數所對應之起始位址單元組之起始位址單元中,且記錄上述新的變數對應之起始位址單元所對應之起始位址單元組在上述第二區塊對應上述新的變數之起始位址控制單元中。
- 如申請專利範圍第2項所述之一次性可編程記憶體裝置,其中當要對上述複數變數之一者進行修改時,上述記憶體控制器判斷已使用之上述儲存位址之數量是否已到達一第二上限值。
- 如申請專利範圍第6項所述之一次性可編程記憶體裝置,其中若已使用之上述儲存位址之數量未到達上述上限值,上述記憶體控制器判斷要進行修改之上述變數之修改次數是否已到達一第三上限值。
- 如申請專利範圍第7項所述之一次性可編程記憶體裝置,其中若要進行修改之上述變數之修改次數未到達上述第三上限值,上述記憶體控制器根據已使用之上述儲存位址之數量,分配上述第三區塊中還未使用之上述儲存位址給要進行修改之上述變數,且將配置給要進行修改之上述變數之上述儲存位址,記錄在另一起始位址單元組中對應要進行修改之上述變數之起始位址單元中。
- 如申請專利範圍第8項所述之一次性可編程記憶體裝置,其中當修改完後,上述記憶體控制器更將上述第五區塊所記錄之已使用之上述儲存位址之數量加一,以及將上述第二區塊所記錄之上述變數之修改次數加一。
- 如申請專利範圍第1項所述之一次性可編程記憶體裝置,其中當要讀取燒錄在一次性可編程記憶體之上述變數對應之資料內容時,上述記憶體控制器先讀取對應需要被讀取之上述變數之上述起始位址控制單元,以取得上述變數之上述起始位址單元所儲存之上述儲存位址,再根據上述儲存位址取得需要被讀取之上述變數之資料內容。
- 一種一次性可編程記憶體之容錯方法,包括: 在一一次性可編程記憶體裝置之一一次性可編程記憶體配至一第一區塊、一第二區塊和一第三區塊;以及 藉由上述一次性可編程記憶體裝置之一記憶體控制器控制上述第一區塊、上述第二區塊和上述第三區塊; 其中上述第一區塊包括複數起始位址單元組,且每一上述起始位址單元組包括複數起始位址單元,且每一上述起始位址單元會對應一變數,以紀錄每一上述變數對應之儲存位址; 其中上述第二區塊包括複數起始位址控制單元,且每一上述起始位址控制單元會分別對應上述變數之一者,以記錄每一上述變數目前所對應之上述起始位址單元組;其中上述第三區塊包含複數儲存單元,且每一上述儲存單元具有一對應的儲存位址,以及上述記憶體控制器用以分配上述儲存位址給上述變數;其中每一上述變數所對應之資料內容會儲存在其對應之上述儲存位址所對應之上述儲存單元中;以及其中上述變數之數量會小於上述複數儲存單元之數量。
- 如申請專利範圍第11項所述之一次性可編程記憶體之容錯方法,更包括:在上述一次性可編程記憶體配至一第四區塊,以紀錄已燒錄至上述一次性可編程記憶體之上述變數之數量;以及在上述一次性可編程記憶體配至一第五區塊,以紀錄已使用之上述儲存位址之數量。
- 如申請專利範圍第12項所述之一次性可編程記憶體之容錯方法,其中上述第一區塊儲存之內容係採用二進制技術進行編碼所產生,以及上述第二區塊、上述第四區塊以及上述第五區塊儲存之內容係採用一次有效性編碼技術進行編碼所產生。
- 如申請專利範圍第12項所述之一次性可編程記憶體之容錯方法,更包括:當要加入一新的變數至上述一次性可編程記憶體時,藉由上述記憶體控制器判斷已燒錄至上述一次性可編程記憶體之上述變數之數量是否已到達一第一上限值。
- 如申請專利範圍第14項所述之一次性可編程記憶體之容錯方法,更包括: 若已燒錄至上述一次性可編程記憶體之上述變數之數量未到達上述上限值,藉由上述記憶體控制器,根據已燒錄至上述一次性可編程記憶體之上述變數之數量,設定上述新的變數之一變數名稱,以及根據已使用之儲存位址之數量,配置儲存位址給上述新的變數; 藉由上述記憶體控制器,將上述新的變數所對應之儲存位址記錄在上述新變數所對應之起始位址單元組之起始位址單元中;以及 藉由上述記憶體控制器,將上述新的變數對應之起始位址單元所對應之起始位址單元組記錄在上述第二區塊對應上述新的變數之起始位址控制單元中。
- 如申請專利範圍第12項所述之一次性可編程記憶體之容錯方法,更包括: 當要對上述複數變數之一者進行修改時,藉由上述記憶體控制器,判斷已使用之上述儲存位址之數量是否已到達一第二上限值。
- 如申請專利範圍第16項所述之一次性可編程記憶體之容錯方法,更包括: 若已使用之上述儲存位址之數量未到達上述上限值,藉由上述記憶體控制器,判斷要進行修改之上述變數之修改次數是否已到達一第三上限值。
- 如申請專利範圍第17項所述之一次性可編程記憶體之容錯方法,更包括: 若要進行修改之上述變數之修改次數未到達上述第三上限值,藉由上述記憶體控制器,根據已使用之上述儲存位址之數量,分配上述第三區塊中還未使用之上述儲存位址給要進行修改之上述變數;以及 將配置給要進行修改之上述變數之上述儲存位址,記錄在另一起始位址單元組中對應要進行修改之上述變數之起始位址單元中。
- 如申請專利範圍第18項所述之一次性可編程記憶體之容錯方法,更包括: 當修改完後,藉由上述記憶體控制器,將上述第五區塊所記錄之已使用之上述儲存位址之數量加一,以及將將上述第二區塊所記錄之上述變數之修改次數加一。
- 如申請專利範圍第11項所述之一次性可編程記憶體之容錯方法,更包括: 當要讀取燒錄在一次性可編程記憶體之上述變數對應之資料內容時,藉由上述記憶體控制器讀取對應需要被讀取之上述變數之上述起始位址控制單元,以取得上述變數之上述起始位址單元所儲存之上述儲存位址;以及 根據上述儲存位址取得需要被讀取之上述變數之資料內容。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108147740A TWI719779B (zh) | 2019-12-26 | 2019-12-26 | 一次性可編程記憶體裝置及其容錯方法 |
CN202010835538.XA CN113050880B (zh) | 2019-12-26 | 2020-08-19 | 一次性可编程存储器装置及其容错方法 |
US17/061,418 US11494298B2 (en) | 2019-12-26 | 2020-10-01 | One-time programmable memory device and fault tolerance method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108147740A TWI719779B (zh) | 2019-12-26 | 2019-12-26 | 一次性可編程記憶體裝置及其容錯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI719779B true TWI719779B (zh) | 2021-02-21 |
TW202125260A TW202125260A (zh) | 2021-07-01 |
Family
ID=75745614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108147740A TWI719779B (zh) | 2019-12-26 | 2019-12-26 | 一次性可編程記憶體裝置及其容錯方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11494298B2 (zh) |
CN (1) | CN113050880B (zh) |
TW (1) | TWI719779B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8174863B1 (en) * | 2010-04-21 | 2012-05-08 | Marvell International Ltd. | Circuits and methods for multiple programmable memory using one-time programmable memory |
US9824768B2 (en) * | 2015-03-22 | 2017-11-21 | Attopsemi Technology Co., Ltd | Integrated OTP memory for providing MTP memory |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1312845C (zh) * | 2003-01-24 | 2007-04-25 | 其乐达科技股份有限公司 | 记录压缩编码表于虚拟只读存储器的方法及装置 |
JP2010055139A (ja) * | 2008-08-26 | 2010-03-11 | Panasonic Corp | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム |
US8112551B2 (en) * | 2009-05-07 | 2012-02-07 | Cypress Semiconductor Corporation | Addressing scheme to allow flexible mapping of functions in a programmable logic array |
US8327092B2 (en) * | 2009-09-21 | 2012-12-04 | Freescale Semiconductor, Inc. | Memory device configurable as interleaved or non-interleaved memory |
TWI443666B (zh) * | 2010-08-31 | 2014-07-01 | Silicon Motion Inc | 單次可編程記憶體之資料編程電路及方法 |
TWI447736B (zh) * | 2010-09-13 | 2014-08-01 | Silicon Motion Inc | 單次可編程記憶體之資料編程電路及方法 |
US8446170B2 (en) | 2011-05-05 | 2013-05-21 | Actel Corporation | FPGA RAM blocks optimized for use as register files |
CN102508732B (zh) * | 2011-10-25 | 2015-08-19 | 深圳芯邦科技股份有限公司 | 改善一次性可编程存储器使用性能的方法及装置 |
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 |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
CN108334275A (zh) * | 2017-01-19 | 2018-07-27 | 新唐科技股份有限公司 | 数据储存方法及其装置 |
US10409714B1 (en) * | 2017-02-09 | 2019-09-10 | Crossbar, Inc. | Logical to physical translation for two-terminal memory |
WO2019119310A1 (zh) | 2017-12-20 | 2019-06-27 | 深圳市汇顶科技股份有限公司 | 处理配置文件的方法、处理单元、触摸芯片、装置及介质 |
IT201900005020A1 (it) | 2019-04-03 | 2020-10-03 | Stmicroelectronics Application Gmbh | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento |
US11243714B2 (en) * | 2019-06-11 | 2022-02-08 | Samsung Electronics Co., Ltd. | Efficient data movement method for in storage computation |
US11281981B2 (en) * | 2019-12-09 | 2022-03-22 | Western Digital Technologies, Inc. | Storage system and sorting-based method for random read command prediction in a multi-queue system |
US11599481B2 (en) * | 2019-12-12 | 2023-03-07 | Western Digital Technologies, Inc. | Error recovery from submission queue fetching errors |
-
2019
- 2019-12-26 TW TW108147740A patent/TWI719779B/zh active
-
2020
- 2020-08-19 CN CN202010835538.XA patent/CN113050880B/zh active Active
- 2020-10-01 US US17/061,418 patent/US11494298B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8174863B1 (en) * | 2010-04-21 | 2012-05-08 | Marvell International Ltd. | Circuits and methods for multiple programmable memory using one-time programmable memory |
US8472233B1 (en) * | 2010-04-21 | 2013-06-25 | Marvell International Ltd. | Circuits and methods for multiple programmable memory using one-time programmable memory |
US9824768B2 (en) * | 2015-03-22 | 2017-11-21 | Attopsemi Technology Co., Ltd | Integrated OTP memory for providing MTP memory |
Also Published As
Publication number | Publication date |
---|---|
CN113050880B (zh) | 2023-09-29 |
US20210200671A1 (en) | 2021-07-01 |
TW202125260A (zh) | 2021-07-01 |
CN113050880A (zh) | 2021-06-29 |
US11494298B2 (en) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10082966B1 (en) | Electronic storage device | |
US10977171B2 (en) | Method for creating multi-namespace and accessing data therein | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
JP2007012060A (ja) | 逆階層構造を有するファイルシステム | |
KR102596244B1 (ko) | 저장 장치, 플래시 메모리 컨트롤러 및 그 제어 방법 | |
CN1983267A (zh) | 延迟验证数据完整性的文件系统 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
JP2009244962A (ja) | メモリシステム | |
JP2010218290A (ja) | コントローラ、及びメモリシステム | |
TWI457755B (zh) | 資料寫入方法、記憶體控制器與儲存裝置 | |
US20130275655A1 (en) | Memory management method and memory controller and memory storage device using the same | |
TW202011194A (zh) | 快閃記憶體控制器及相關電子裝置 | |
CN115390747A (zh) | 存储设备及其操作方法 | |
TWI715371B (zh) | 一次性可編程記憶體裝置及其容錯方法 | |
TWI719779B (zh) | 一次性可編程記憶體裝置及其容錯方法 | |
JP4751037B2 (ja) | メモリカード | |
US9146861B2 (en) | Memory address management method, memory controller and memory storage device | |
US20050154818A1 (en) | Method of accessing a nonvolatile memory | |
US8832358B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI407305B (zh) | 快閃記憶體之資料存取方法以及快閃記憶體裝置 | |
JP4895264B2 (ja) | 記憶装置および情報処理装置 | |
TWI664569B (zh) | 資料儲存裝置及系統資訊的編程方法 | |
TWI697779B (zh) | 資料儲存裝置與資料處理方法 |