TWI703498B - 記憶體裝置與電子裝置的啟動程式載入方法 - Google Patents
記憶體裝置與電子裝置的啟動程式載入方法 Download PDFInfo
- Publication number
- TWI703498B TWI703498B TW107137817A TW107137817A TWI703498B TW I703498 B TWI703498 B TW I703498B TW 107137817 A TW107137817 A TW 107137817A TW 107137817 A TW107137817 A TW 107137817A TW I703498 B TWI703498 B TW I703498B
- Authority
- TW
- Taiwan
- Prior art keywords
- startup
- host
- storage area
- address
- boot
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Read Only Memory (AREA)
- Storage Device Security (AREA)
Abstract
本發明係為一種記憶體裝置與電子裝置的啟動程式載入方法。記憶體裝置包含記憶體陣列、還原暫存器、預設啟動位址暫存器、觸發電路、位址轉換模組與存取電路。記憶體陣列包含複數個儲存區域,其中一者定義為第一啟動程式存放區,且另一者定義為第二啟動程式存放區。還原暫存器儲存啟動還原參數,預設啟動位址暫存器儲存預設啟動位址參數。位址轉換模組依據主機存取位址、啟動還原參數與該預設啟動位址參數而產生記憶體存取位址。存取電路對記憶體存取位址執行存取指令。觸發電路選擇性產生用於設定啟動還原參數之逾時觸發信號。
Description
本發明是有關於一種記憶體裝置與電子裝置的啟動程式載入方法,且特別是有關於一種可提供更新版啟動程式之記憶體裝置與電子裝置的啟動程式載入方法。
當前的電子產品多為嵌入式系統,並須採用控制器控制相關的功能電路。此外,控制器還須搭配非揮發性儲存裝置使用,用於儲存啟動程式(另可稱為開機載入程式(boot loader))、系統程式、影音資料等。
許多電子裝置在出廠後,製造廠商會基於不同考量而提供更新版本的啟動程式與系統程式等。其中,系統程式能正常執行的前提是,啟動程式必須能正常執行。然而,使用者透過更新流程而下載的更新版啟動程式upBootPG,是否能正常地在嵌入式系統上執行,仍存在多種變數。
例如,使用者可能下載時,選擇與硬體不相容的更新版啟動程式upBootPG;或是電子裝置在下載更新版啟動程式upBootPG的過程發生斷電情況,導致啟動程式未能順利完成更新
等。為此,如何能使電子裝置在提供軟體更新功能的同時,確保嵌入式系統能順利執行啟動程式,進而避免更新流程中的突發狀況而使電子裝置無法順利開機,是值得深入探討的議題。
本發明係有關於一種記憶體裝置與電子裝置的啟動程式載入方法,可以避免電子裝置因為下載更新版啟動程式upBootPG所衍生之可能無法順利開機的現象。
根據本發明之一方面,提出一種用以電連接於主機的記憶體裝置。記憶體裝置包含:記憶體陣列、還原暫存器、預設啟動位址暫存器、位址轉換模組、存取電路。記憶體陣列包含複數個儲存區域,其中該等儲存區域之一者定義為第一啟動程式存放區,且該等儲存區域中之另一者定義為第二啟動程式存放區。還原暫存用以器電連接於主機,其係儲存啟動還原參數。預設啟動位址暫存器用以電連接於主機,其係儲存預設啟動位址參數。主機於第一開機期間,根據預設啟動位址參數而載入儲存在第一啟動程式存放區之預設啟動程式以及儲存在第二啟動程式存放區之更新版啟動程式二者中的一者。位址轉換模組用以電連接於主機、還原暫存器與預設啟動位址暫存器。位址轉換模組在接收由主機所產生的主機存取位址後,依據主機存取位址、啟動還原參數與預設啟動位址參數而產生記憶體存取位址。存取電路用以電連接於主機、記憶體陣列與位址轉換模組。存取電路自主機接收存取指令,其中存取電路對記憶體存取位址執行該存取指
令。觸發電路用以電連接於主機、還原暫存器與預設啟動位址暫存器。其中,在第一開機期間,觸發電路選擇性產生用於設定啟動還原參數之逾時觸發信號。
根據本發明之另一方面,提出一種電子裝置的啟動程式載入方法。電子裝置包含主機與記憶體裝置,且記憶體裝置包含記憶體陣列。記憶體陣列包含的複數個儲存區域之一者被定義為第一啟動程式存放區,且該等儲存區域中之另一者被定義為第二啟動程式存放區。啟動程式載入包含以下步驟。記憶體裝置儲存啟動還原參數以及預設啟動位址參數。主機於第一開機期間,根據預設啟動位址參數而載入儲存在第一啟動程式存放區之預設啟動程式以及儲存在第二啟動程式存放區之更新版啟動程式二者中的一者。記憶體裝置依據主機所產生的主機存取位址、啟動還原參數與預設啟動位址參數而產生記憶體存取位址。記憶體裝置自主機接收存取指令,並對記憶體存取位址執行存取指令。在第一開機期間,記憶體裝置選擇性產生用於設定啟動還原參數之逾時觸發信號。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
10、271:記憶體陣列
10a、271a:儲存區域A
10b、271b:儲存區域B
10c、271c:儲存區域C
10d、271d:儲存區域D
startAdd1:第一啟動位址
startAdd2:第二啟動位址
boot1 11:啟動程式存放區
boot2 13:啟動程式存放區
BootLayout1:第一啟動區域配置
BootLayout2:第二啟動區域配置
20:電子裝置
21:主機
23:功能電路
27:記憶體裝置
rstrFLG:啟動還原參數
Cmd:存取指令
Hadd:主機存取位址
Str:逾時觸發信號
Data:存取資料
CLKint:內部時脈信號
Madd:記憶體存取位址
259:還原暫存器
255:更新啟動位址暫存器
257:預設啟動位址暫存器
254b:時脈產生器
2541:看門狗計時器
252:存取電路
256:位址轉換模組
Son:上電信號
C11、C12、C13、C14、C15、C16、C17、C21、C22、C23、C24、C25、C26、C27:情況
S40、S41、S42、S43、S45、S47:步驟
2542:計時器致能電路
2543:致能信號選擇電路
Men:記憶體端計時器致能信號
Hen:主機端計時器致能信號
bootPT:預設啟動位址參數
updatePT:更新啟動位址參數
Sen:計時器致能信號
253:位址轉換電路
253a:啟動位址決定電路
253e:配置選擇電路
253d:上電啟動位址電路
253c:位址映射邏輯
Ssel_startAdd:啟動位址選擇信號
251:位址解碼電路
第1圖,其係將記憶體陣列劃分為多個儲存區域,作為儲存啟動程式使用的示意圖。
第2圖,其係選擇將記憶體陣列的兩個儲存區域做為存放啟動程式使用之示意圖。
第3A、3B圖,其係延續第2圖所示之儲存區域與啟動程式存放區之對應關係,存放預設啟動程式dftBootPG與更新版啟動程式upBootPG的啟動區域配置BootLayout之示意圖。
第4圖,其係根據本發明的實施例的電子裝置內部電路之示意圖。
第5A圖,其係記憶體裝置隨著主機是否執行更新流程,以及用於儲存預設啟動程式dftBootPG的啟動程式存放區的不同,而對應調整更新啟動位址參數updatePT、預設啟動位址參數bootPT之不同狀態的示意圖。
第5B圖,其係說明記憶體裝置各個狀態之間的演變關係的狀態圖。
第6圖,其係說明隨著更新啟動位址參數updatePT與預設啟動位址參數bootPT是否相等,以及啟動還原參數rstrFLG的值不同,主機的執行流程之示意圖。
第7圖,其係觸發電路的內部電路之示意圖。
第8A圖,其係位址轉換模組將主機存取位址Hadd轉換為記憶體存取位址Madd之示意圖。
第8B圖,其係舉例說明位址轉換電路如何將主機存取位址Hadd拆分為主機存取位址最高有效位元HMSadd與主機存取位址最低有效位元HLSadd後,再搭配記憶體存取位址最高有效位元MMSadd產生記憶體存取位址Madd之示意圖。
啟動程式是嵌入式系統硬體開機或重設後,主機所執行的第一段(初始化)的程式。簡言之,啟動程式會將嵌入式系統中最基本的硬體設定完成,並將系統程式從非揮發性記憶體載入至嵌入式系統的靜態隨機存取記憶體(Static Random Access Memory,簡稱為SRAM)及/或動態隨機存取記憶體(Dynamic Random Access Memory,簡稱為DRAM)。因此,主機可否順利自記憶體裝置載入啟動程式,是嵌入式系統能否順利執行的關鍵。
請參見第1圖,其係將記憶體陣列劃分為多個儲存區域,作為儲存啟動程式使用的示意圖。為便於說明,此處假設記憶體陣列10被劃分為四個儲存區域(儲存區域A、儲存區域B、儲存區域C、儲存區域D)。這四個儲存區域可用於儲存不同版本的啟動程式。關於儲存區域的數量,以及其中實際用於儲存之啟動程式的數量、用途等,可由製造廠商或使用者根據系統需要或應用而設定或選擇,此處不予詳述。
實際應用時,記憶體陣列10所包含的儲存區域的數量並不以此為限。例如,記憶體陣列10也可能包含兩個儲存區域或八個儲存區域等。其中,每個儲存區域A、B、C、D的大小相等,並可以利用儲存區域識別碼(IDsa)表示各個儲存區域。另,每個儲存區域分別對應於一個載入位址loadAdd,且各個載入位址的差別,僅在於根據儲存區域識別碼(IDsa)所定義之最高位元。為便於說明,此處假設記憶體存取位址包含24個位元。表1列出假設
記憶體存取位址為24位元,且將記憶體陣列10區分為四個等分的儲存區域時,與各個儲存區域相關的參數。
以第1圖為例,記憶體陣列10所包含的四個儲存區域,其儲存區域識別碼(IDsa)分別為00、01、10、11。根據本發明的構想,可利用儲存區域識別碼(IDsa)作為記憶體存取位址最高有效位元MMSadd。在這個例子中,因為記憶體陣列10包含四個儲存區域的緣故,儲存區域識別碼(IDsa)與記憶體存取位址最高有效位元MMSadd的長度均為兩個位元。
據此,可以得出與儲存區域A、B、C、D對應的載入位址。如表1所列示,與儲存區域A(10a)對應的第一載入位址為loadAdd1=0x000000,且與儲存區域A(10a)對應的記憶體位址存取範圍為0x000000~0x3FFFFF;與儲存區域B(10b)對應的
第二載入位址為loadAdd2=0x400000,且與儲存區域B(10b)對應的記憶體位址存取範圍為0x400000~0x7FFFFF;與儲存區域C(10c)對應的第三載入位址為loadAdd3=0x800000,且與儲存區域C(10c)對應的記憶體位址存取範圍為0x800000~0xBFFFFF;以及,與儲存區域D(10d)對應的第四載入位址為loadAdd4=0xC00000,且與儲存區域D(10d)對應的記憶體位址存取範圍為0xC00000~0xFFFFFF。
同理,若記憶體陣列10僅包含兩個儲存區域,則儲存區域識別碼(IDsa)與記憶體存取位址最高有效位元MMSadd的長度均為一個位元。在這種情況下,記憶體陣列10會以0x000000~0x7FFFFF作為第一儲存區域,以及以0x800000~0xFFFFFF作為第二儲存區域。關於儲存區域的個數不同時,載入位址loadAdd與記憶體位址存取範圍可能的改變與組合,此處不再詳述。
請參見第2圖,其係選擇將記憶體陣列的兩個儲存區域做為存放啟動程式使用之示意圖。根據本發明的構想,儲存區域A、B、C、D中的至少兩個,可被主機用於儲存不同版本的啟動程式。為便於區別,此處將這兩個被選取的儲存區域定義為啟動程式存放區boot1、啟動程式存放區boot2。其中並將啟動程式存放區boot1的起始位址定義為第一啟動位址startAdd1;以及將啟動程式存放區boot2的起始位址定義為第二啟動位址startAdd2。
根據本發明的構想,啟動程式存放區boot1、啟動程式存放區boot2的其中一個會被主機用來儲存在系統開機期間實際使用的預設啟動程式dftBootPG;啟動程式存放區boot1、啟動程式存放區boot2中的另一個,則可被主機用於儲存更新版啟動程式upBootPG。須留意的是,啟動程式存放區boot1、啟動程式存放區boot2的任一者,均可能用於儲存預設啟動程式dftBootPG及/或更新版啟動程式upBootPG。
實際應用時,主機選擇以實際儲存區域A、B、C、D中的哪兩個,作為儲存預設啟動程式dftBootPG及/或更新版啟動程式upBootPG使用,則需視系統的執行狀態而定。例如,主機在第一次執行啟動程式的更新流程時,可能選擇儲存區域D、B作為啟動程式存放區boot1、啟動程式存放區boot2,但在主機第二次執行啟動程式的更新流程時,可能改選儲存區域D、A作為啟動程式存放區boot1、啟動程式存放區boot2。換言之,主機可以根據不同的應用,重新選擇以原本未被選擇作為啟動程式存放區的儲存區域B、C作為啟動程式存放區。關於儲存區域的選用與啟動程式存放區之對應關係之應用上的變化,可由本案所屬技術領域的習知技藝者自由代換,此處不再詳述。
須留意的是,嵌入式系統的主機在選擇與啟動程式存放區boot1、boot2對應的儲存區域時,並不需要限定需要是在記憶體陣列10中的位址彼此相連的儲存區域,且定義儲存裝置做為啟動程式存放區boot1、boot2時,也不需要限定應以對應於較高或較低記憶體存取位址的儲存區域定義啟動程式存放區的順序。
為便於說明,第2圖假設啟動程式存放區boot1對應於儲存區域D,且第一啟動位址startAdd1對應於第四載入位址(即,startAdd1=loadAdd4=0xC00000);以及,假設啟動程式存放區boot2對應於儲存區域A,且第二啟動位址startAdd2對應於第一載入位址(startAdd2=loadAdd1=0x000000)。表2為第2圖中,啟動程式存放區boot1、boot2與儲存區域之間的對應關係。以下說明將以此種啟動程式存放區boot1、boot2與儲存區域之間的對應關係為例,關於其他可能將啟動程式存放區boot1、boot2對應於不同儲存區域的對應關係,此處不再詳述。
如前所述,啟動程式存放區boot1、啟動程式存放區boot2的其中一個會被主機用來儲存在系統開機時實際使用的預設啟動程式dftBootPG,啟動程式存放區boot1、啟動程式存放區boot2中的另一個,可被主機用於儲存更新版啟動程式upBootPG。因此,
第2圖的啟動程式存放區boot1、boot2可能對應於第3A、3B圖所示的兩種啟動區域配置BootLayout。
請參見第3A、3B圖,其係延續第2圖所示之儲存區域與啟動程式存放區之對應關係,存放預設啟動程式dftBootPG與更新版啟動程式upBootPG的啟動區域配置BootLayout之示意圖。表3為第3A、3B圖之相關參數的整理列表。
在第3A圖所示的第一啟動區域配置BootLayout1中,啟動程式存放區boot1用於儲存預設啟動程式dftBootPG,且啟動程式存放區boot2可用於儲存更新版啟動程式upBootPG。另一方面,在第3B圖所示的第二啟動區域配置BootLayout2中,啟動程式存放區boot2用於儲存預設啟動程式dftBootPG,且啟動程式存放區boot1可用於儲存更新版啟動程式upBootPG。
其中,存放在第3A圖的啟動程式存放區boot1與第3B圖的啟動程式存放區boot2的預設啟動程式dftBootPG,都是已經被完整存入儲存區域並可被主機用於在系統開機時載入。根據本發明的構想,用於儲存預設啟動程式dftBootPG的儲存區域,會被設定為寫入保護。如第3A、3B圖所示,本文以格狀網底代表被設定為寫入保護的啟動程式存放區。
另一方面,用於儲存更新版啟動程式upBootPG的啟動程式存放區,並不會被設定為寫入保護。根據本發明的實施例,未被用於儲存預設啟動程式dftBootPG的啟動程式存放區(第3A圖的啟動程式存放區boot2與第3B圖的啟動程式存放區boot1),可能為被抹除後的空白狀態、正在寫入狀態,或是完成寫入狀態。對應於這三種狀態,更新版啟動程式upBootPG的儲存狀態可能為待儲存、儲存中或是已儲存。
請參見第4圖,其係根據本發明的實施例的電子裝置內部電路之示意圖。在此圖式中,假設電子裝置20包含主機21、功能電路23與記憶體裝置27,其中記憶體裝置27進一步包含記憶體控制電路25與記憶體陣列271。主機21電連接於功能電路23與記憶體控制電路25,且記憶體控制電路25電連接於記憶體陣列271。此處延續第1圖的舉例,同樣假設記憶體陣列271包含四個儲存區域(儲存區域A 271a、儲存區域B 271b、儲存區域C 271c、儲存區域D 271d)。
根據本發明的構想,記憶體控制電路25包含觸發電路254a、時脈產生器254b、存取電路252、位址轉換模組256、位址解碼
電路251b、還原暫存器(restore flag register)259、預設啟動位址暫存器(default boot address register)257與更新啟動位址暫存器(update address register)255。存取電路252從主機21接收存取指令Cmd與存取資料Data後,產生控制信號Ctrl至位址轉換模組256,並根據主機存取位址Hadd、存取指令Cmd與存取資料Data而對記憶體陣列271進行存取操作。
為使主機21與記憶體控制電路25均能清楚掌握記憶體陣列271採用的啟動區域配置BootLayout,進而將更新版啟動程式upBootPG載入適當的啟動程式存放區(以及與啟動程式存放區對應的儲存區域),本發明的實施例在記憶體控制電路25設置數個暫存器。其中,還原暫存器259用於儲存啟動還原參數rstrFLG;預設啟動位址暫存器257用於儲存預設啟動位址參數bootPT;更新啟動位址暫存器255用於儲存更新啟動位址參數updatePT。
在本發明的實施例中,假設啟動還原參數rstrFLG、預設啟動位址參數bootPT,以及更新啟動位址參數updatePT的長度均為一位元。其中,啟動還原參數rstrFLG是一個因應觸發電路254a所產生之逾時觸發信號Str而被設定的旗標值,且經設定後的啟動還原參數rstrFLG可在電子裝置20重新開機後,由主機21清除。預設啟動位址參數bootPT與更新啟動位址參數updatePT可以利用數值代表啟動程式存放區boot1、boot2的編號。據此,可以根據預設啟動位址參數bootPT與更新啟動位址參數updatePT可視為用於指向啟動位址的指標參數,
進一步得出與儲存預設啟動程式dftBootPG及/或更新版啟動程式upBootPG的儲存區域所對應的載入位址loadAdd。
更進一步來說,預設啟動位址參數bootPT的值,代表要將預設啟動程式dftBootPG存放在哪一個啟動程式存放區boot1、boot2。例如,以預設啟動位址參數bootPT=0代表預設啟動程式dftBootPG被存放在啟動程式存放區boot1、以預設啟動位址參數bootPT=1代表預設啟動程式dftBootPG被存放在啟動程式存放區boot2。
如前所述,與受到寫入保護的預設啟動程式dftBootPG不同,更新版啟動程式upBootPG必須在主機21開始執行更新流程後,才會被儲存在啟動存放區內。因此,更新啟動位址參數updatePT僅在更新流程開始後,才會指向儲存更新版啟動程式upBootPG的啟動程式存放區。
根據本發明構想的實施例,當主機21並未執行啟動程式的更新流程時,更新啟動位址參數updatePT會等於預設啟動位址參數bootPT。換言之,此時的更新啟動位址參數updatePT同樣對應於存放預設啟動程式dftBootPG的啟動程式存放區boot。
再者,若主機21開始執行更新流程時,更新啟動位址參數updatePT將對應於存放更新版啟動程式upBootPG的啟動程式存放區boot。在主機21執行更新流程後,若電子裝置20未被重新開機或重置,則更新啟動位址參數updatePT將維持應於存放更新版啟動程式upBootPG的啟動程式存放區boot。
根據前述說明可以得知,更新啟動位址參數updatePT與預設啟動位址參數bootPT的值,可以反映出主機21是否執行更新流程,以及更新流程完成後,主機21是否重新開機等資訊。因此,透過讀取儲存在更新啟動位址暫存器255與預設啟動位址暫存器257的數值,主機21和記憶體控制電路25可掌握記憶體陣列271的啟動區域配置BootLayout。
記憶體控制電路25利用位址轉換模組256將主機21傳送的主機存取位址Hadd轉換為記憶體存取位址Madd後,搭配存取電路252而對記憶體陣列271進行存取操作。即,存取電路252會對記憶體存取位址Madd進行寫入操作、讀取操作或抹除操作。關於位址轉換模組256如何將主機存取位址Hadd轉換為記憶體存取位址Madd的作法,請參見第8A、8B圖的說明。
此處假設由觸發電路254a產生的逾時觸發信號Str,會將還原暫存器259所儲存的啟動還原參數rstrFLG設為1(實際應用時,啟動還原參數rstrFLG的設定值並不以此為限)。
因此,主機21可以藉由讀取還原暫存器259,得知觸發電路254a是否曾經產生逾時觸發信號Str。關於觸發電路254a產生逾時觸發信號Str的細節,以及主機21如何因應啟動還原參數rstrFLG被設為1而執行的步驟,將於第6、7圖說明。
隨著啟動程式的更新流程的進行,更新啟動位址參數updatePT與預設啟動位址參數bootPT的值也可能不同,連帶的,記憶體裝置27所採用的啟動區域配置BootLayout也可能隨著改變。
請參見第5A圖,其係記憶體裝置隨著主機是否執行更新流程,以及用於儲存預設啟動程式dftBootPG的啟動程式存放區的不同,而對應調整更新啟動位址參數updatePT、預設啟動位址參數bootPT之示意圖。此處延續第2圖的舉例,假設啟動程式存放區boot1對應於儲存區域D、啟動程式存放區boot2對應於儲存區域A。為便於說明,本文隨著啟動程式存放區的不同配置情形、更新啟動位址參數updatePT與預設啟動位址參數bootPT實際指向位置的不同,將啟動程式存放區的使用情況區分為狀態A~狀態F。記憶體裝置27會隨著主機21執行更新流程與否而在這些狀態間轉換。
如前所述,本文將用於存放預設啟動程式dftBootPG的啟動程式存放區boot設為寫入保護狀態,並以格狀網底表示。另一方面,未被用於存放預設啟動程式dftBootPG的啟動程式存放區boot,可能會隨著是否執行更新流程而處於待寫入、寫入中,或是完成寫入等不同狀態。在第5A圖中,以空白表示與啟動程式存放區boot對應的儲存區域尚未寫入任何資料,故啟動程式存放區boot可用於儲存更新版啟動程式upBootPG的啟動程式存放區;以橫線網底代表與啟動程式存放區boot對應的儲存區域正在被用於儲存更新版啟動程式upBootPG的過程中;以及,以直線網底代表與啟動程式存放區對應的儲存區域,已經被完整存入更新版啟動程式upBootPG。
以下,先以表4搭配第5A圖,說明記憶體裝置27在各個狀態下的啟動區域配置BootLayout,以及更新啟動位址參數updatePT與預設啟動位址參數bootPT所指向的位址。接著,將再利用第5B圖說明各個狀態間的演變關係。
當記憶體裝置27處於狀態A、B、C時,記憶體裝置27屬於第一啟動區域配置BootLayout1(第3A圖)。記憶體裝置27為狀態A時,與啟動程式存放區boot2對應的儲存區域,可準備用於儲存更新版啟動程式upBootPG,此時預設啟動位址參數bootPT=0、更新啟動位址參數updatePT=0。記憶體裝置27為狀態B時,主機21處於更新流程的期間,與啟動程式存放區boot2對應的儲存區域正在被寫入更新版啟動程式upBootPG,此時預設啟動位址參數bootPT=0、更新啟動位址參數updatePT=1。記憶體裝置27為狀態C時,主機21已經完成將更新版啟動程式upBootPG存入與啟動程式存放區boot2對應的儲存區域,此時預設啟動位址參數bootPT=1、更新啟動位址參數updatePT=1。
當記憶體裝置27處於狀態D、E、F時,記憶體裝置27屬於第二啟動區域配置BootLayout 2(第3B圖)。記憶體裝置27為狀態D時,與啟動程式存放區boot1對應的儲存區域,可準備用於儲存更新版啟動程式upBootPG,此時預設啟動位址參數bootPT=1、更新啟動位址參數updatePT=1。記憶體裝置27為狀態E時,主機21處於更新流程的期間,與啟動程式存放區boot1對應的儲存區域正在被寫入更新版啟動程式upBootPG,此時預設啟動位址參數bootPT=1、更新啟動位址參數updatePT=0。記憶體裝置27為狀態C時,主機21已經完全將更新版啟動程式upBootPG存入與啟動程式存放區boot1對應的儲存區域,此時預設啟動位址參數bootPT=0、更新啟動位址參數updatePT=0。
接著,將說明記憶體裝置27如何隨著更新流程的執行與否,改變啟動區域配置BootLayout。請參見第5B圖,其係說明各個狀態之間的演變關係的狀態圖。為便於說明,此處以較粗的實線標示的狀態對應於第一啟動區域配置BootLayout1;以較細的虛線標示的狀態
對應於第二啟動區域配置BootLayout2。將各個狀態在遇到不同的狀況(條件)時的轉換,以編號表示。其中,以C1開頭的編號代表屬於第一啟動區域配置BootLayout1的狀態(狀態A、B、C)可能遇到的情形;以C2開頭的編號代表屬於第二啟動區域配置BootLayout2的狀態(狀態D、E、F)可能遇到的情形。
當記憶體裝置27處於狀態A時,預設啟動位址參數bootPT與更新啟動位址參數updatePT均指向第一啟動位址startAdd1。此時,主機21可能遇到的情況可區分為兩類,情況C11與情況C12。
情況C11為,主機21執行啟動程式的更新流程,並透過存取電路252將更新版啟動程式upBootPG寫入與啟動程式存放區boot2對應的儲存區域。此時,記憶體裝置27進入狀態B,且主機21會將更新啟動位址參數updatePT修改為第二啟動位址startAdd2。附帶一提,存取電路252會在將更新版啟動程式upBootPG寫入前,先抹除即將被用來儲存更新版啟動程式upBootPG的儲存區域。
情況C12指的是,主機21未執行啟動程式的更新流程,則記憶體裝置27維持原本的啟動區域配置BootLayout。此時,與啟動程式存放區boot2對應的儲存區域維持不變。此時,記憶體裝置27維持在狀態A,且主機21不改變預設啟動位址參數bootPT與更新啟動位址參數updatePT的指向。
當記憶體裝置處於狀態B時,預設啟動位址參數bootPT指向第一啟動位址startAdd1,而更新啟動位址參數updatePT指向第二啟動位址startAdd2。此時,主機21正在執行更新流程。但是,隨著更
新流程的完成與否,主機21可能遇到的情況還可再區分為兩類,情況C13與情況C14。
情況C13為,主機21在執行啟動程式的更新流程期間,尚未順利完成即被中斷(關機、重置(reset)等現象)。也就是說,更新版啟動程式upBootPG尚未完全存入與啟動程式存放區boot2對應的儲存區域。此時,若電子裝置20因為收到上電信號Son而重新執行開機時,主機21仍須維持使用與啟動程式存放區boot1對應的儲存區域所儲存的預設啟動程式dftBootPG。主機21會先根據預設啟動位址參數bootPT而從第一啟動位址startAdd1載入啟動程式,並且將更新啟動位址參數updatePT再拉回至第一啟動位址startAdd1。因此,記憶體裝置27會從狀態B回到狀態A。
另一方面,情況C14指的是,主機21順利將啟動程式的更新流程執行完畢,且更新版啟動程式upBootPG已經透過存取電路252順利寫入啟動程式存放區boot2。此時,記憶體裝置27便從狀態B進入狀態C,主機21也會將原本對應於第一啟動位址startAdd1的預設啟動位址參數bootPT,修改為對應於第二啟動位址startAdd2。
當記憶體裝置27處於狀態C時,預設啟動位址參數bootPT與更新啟動位址參數updatePT均指向第二啟動位址startAdd2。此時,可能遇到的情況可區分為三類,情況C15、情況C16與情況C17。
情況C15為,在啟動程式的更新流程執行完畢後,電子裝置20尚未重新開機。因此,記憶體裝置27仍維持在狀態C,且預設啟動位址參數bootPT與更新啟動位址參數updatePT仍維持對應於第二啟動位址startAdd2。
情況C16為,電子裝置20重新開機(接收上電信號Son)後,主機21無法順利地執行儲存在與對應的儲存區域啟動程式存放區boot2對應的儲存區域的更新版啟動程式upBootPG(rstrFLG=1)。此時,主機21必須還原啟動區域配置BootLayout,也就是回復到使用儲存在與啟動程式存放區boot1對應的儲存區域的預設啟動程式dftBootPG的情況。即,記憶體裝置27由狀態C轉換至狀態A。在這種情況下,預設啟動位址參數bootPT與更新啟動位址參數updatePT一開始均維持原本與第二啟動位址startAdd2對應的情況,之後再藉由啟動還原參數rstrFLG修改為與第一啟動位址startAdd1對應。
情況C17為,主機21接收上電信號Son並重新開機(接收上電信號Son)時,變更記憶體裝置27的啟動區域配置BootLayout(由原本採用第一啟動區域配置BootLayout1改為採用第二啟動區域配置BootLayout2),且主機21可順利執行儲存在與第二啟動位址startAdd2對應之儲存區域的更新版啟動程式upBootPG,此時,預設啟動位址參數bootPT與更新啟動位址參數updatePT仍維持指向第二啟動位址startAdd2。之後,儲存在與第二啟動位址startAdd2對應之儲存區域的更新版啟動程式upBootPG,將被視為是重新開機後的預設啟動程式dftBootPG。也就是說,一旦更新版啟動程式upBootPG經確認可以讓主機21在開機時順入載入並執行時,就可被定義為新的預設啟動程式dftBootPG,且記憶體裝置27的啟動區域配置BootLayout也會改變。此種狀況為,記憶體裝置27由狀態C轉換為狀態D。
關於狀態D、E、F與其可能遇到的情況所導致之狀態變化,基本上與狀態A、B、C相似,差別在於啟動區域配置BootLayout的不同。另,情況C11、C12、C13、C14、C15、C16、C17的敘述,
在針對更新啟動位址參數updatePT、預設啟動位址參數bootPT的指向與啟動程式存放區boot1、boot2的指向與配置可參考第5A圖的說明而對應調整,進而類推至情況C21、C22、C23、C24、C25、C26、C27。因此,此處不再詳述與狀態D、E、F之間的狀態轉換細節。
以下,從主機21的角度,說明主機21如何針對預設啟動位址參數bootPT、更新啟動位址參數updatePT與啟動還原參數rstrFLG的值而對應執行的流程。此外,為便於說明,本文將執行更新流程的開機期間,定義為更新啟動程式的開機期間Tboot_update。
請參見第6圖,其係說明隨著更新啟動位址參數updatePT與預設啟動位址參數bootPT是否相等,以及啟動還原參數rstrFLG的值不同,主機21的執行流程之示意圖。為便於記憶體裝置27的狀態變化,在此流程圖中,以中括號代表記憶體裝置27的狀態轉換過程,以小括號代表記憶體裝置27在各個開機期間內的狀態轉換過程。此外,以較粗的箭頭符號代表表記憶體裝置27在同一個開機期間內的狀態轉換過程,以及以較細的箭頭符號代表在跨越不同開機期間時,記憶體裝置27的狀態轉換過程。
首先,主機21判斷更新啟動位址參數updatePT與預設啟動位址參數bootPT是否相等(步驟S40)。若更新啟動位址參數updatePT與預設啟動位址參數bootPT不相等,代表前一次執行開機流程時,主機21曾執行啟動程式的更新流程(即,前一次開機屬於更新啟動程式的開機期間),但該更新流程並未執行完畢。主機21仍執行預設啟動程式dftBootPG(步驟S41)。
步驟S41可能對應於兩類演變過程。步驟S41可能對應的第一類演變過程為,記憶體裝置27在更新啟動程式的開機期間
Tboot_update由狀態A轉換至狀態B,記憶體裝置27並於第一開機期間Ton1,由狀態B再轉換至狀態A的過程。或是,步驟S41可能對應的第二類演變過程為,記憶體裝置27在更新啟動程式的開機期間Tboot_update由狀態D轉換至狀態E,記憶體裝置27並於第一開機期間Ton1,由狀態再E轉換至狀態D的過程。
若步驟S40的判斷結果為肯定,代表更新啟動位址參數updatePT與預設啟動位址參數bootPT相等,此時可能有兩種情況。其一為,主機21在前一次開機期間並未進行啟動程式的更新流程(即,前一次開機並非更新啟動程式的開機期間Tboot_update),其二為,在前一次開機期間,主機21曾經進行啟動程式的更新流程(即,前一次開機屬於更新啟動程式的開機期間),且啟動程式的更新流程執行完畢。此時,主機21需進一步判斷啟動還原參數rstrFLG是否等於1(步驟S42)。
若啟動還原參數rstrFLG等於1,代表在此次開機前,觸發電路254a曾經產生逾時觸發信號Str,並導致啟動還原參數rstrFLG被設定。也就是說,在上上次的開機期間曾執行啟動程式的更新流程(存入更新版啟動程式),但在上次開機時,主機21無法順利執行更新版啟動程式upBootPG。因此,這次開機時,記憶體裝置27已自動切換回原先預設啟動程式dftBootPG。是以,主機21仍可順利載入可正常工作的啟動程式(步驟S47)。此時,主機21需要復原使用原本的啟動區域配置BootLayout。步驟S47可能對應於兩類演變過程。
步驟S47可能對應的第一類演變過程為,在更新啟動程式的開機期間Tboot_update,主機21以啟動程式存放區boot1儲存的預設啟動程式dftBootPG開機,並執行啟動程式的更新流程。因此,記憶體裝置27在更新啟動程式的開機期間Tboot_update先由狀態A轉換
至狀態B,然後再由狀態B轉換至狀態C。更新流程結束後,主機21與記憶體裝置27等待上電信號Son而重新開機。在經過接收上電信號Son而開始完成啟動程式的更新流程後的第一開機期間Ton1,記憶體裝置27由狀態C轉換至狀態D,且主機21嘗試依據狀態D所對應的第二啟動區域配置BootLayout2載入更新版啟動程式upBootPG,但因更新版啟動程式upBootPG載入後無法順利執行而使主機21擱置在狀態D。據此,觸發電路254a會在第一開機期間Ton1產生觸發信號Str設定啟動還原參數rstrFLG。待主機21與記憶體裝置27第二度收到上電信號Son而重新開機後,主機21與記憶體裝置27進入第二開機期間Ton2。此時,記憶體裝置27由狀態D轉換至狀態A,而主機21改為載入預設啟動程式dftBootPG。因為預設啟動程式dftBootPG曾經在更新啟動程式的開機期間Tboot_update順利用於開機,故主機21必能順利載入預設啟動程式dftBootPG。
步驟S47可能對應的第二類演變過程為,在更新啟動程式的開機期間Tboot_update,主機21以啟動程式存放區boot2儲存的預設啟動程式dftBootPG開機,並執行啟動程式的更新流程。因此,記憶體裝置27在更新啟動程式的開機期間Tboot_update先由狀態D轉換至狀態E,然後再由狀態E轉換至狀態F。在更新流程結束後,主機21與記憶體裝置27等待上電信號Son而重新開機。因為接收上電信號Son而開始進入第一開機期間Ton1,記憶體裝置27先由狀態F轉換至狀態A,且主機21嘗試依據狀態A所對應的第一啟動區域配置BootLayout1進行開機,但因載入後無法順利執行更新版啟動程式upBootPG而使主機21擱置。待主機21與記憶體裝置27第二度收到上電信號Son而重新開機後,主機21與記憶體裝置27進入完成啟動程式的更新流程後的
第二開機期間Ton2。此時,記憶體裝置27由狀態A轉換至狀態D,而主機21改為載入預設啟動程式dftBootPG。因為預設啟動程式dftBootPG曾經在更新啟動程式的開機期間boot_update的一開始順利用於開機,故主機21必能順利載入預設啟動程式dftBootPG。
若步驟S42的判斷結果為否定,代表啟動還原參數rstrFLG等於0。在這種情況下,主機21必須對記憶體裝置27中看門狗計時器2541送發禁能命令(步驟S44)。步驟S42的判斷結果為否定,可能代表主機21在前一次開機期間並未進行啟動程式的更新流程(即,並未載入更新版啟動程式upBootPG)(步驟S45)。或者,主機21在前一次開機期間曾經進行啟動程式的更新流程(即,載入更新版啟動程式upBootPG),且這次開機期間主機21可順利載入更新版啟動程式upBootPG並執行(步驟S43)。
若為步驟S45,因為主機21在前一次開機期間並未進行啟動程式的更新流程,所以記憶體裝置27的狀態並不會改變。步驟S45可能對應於兩類演變過程,其一為,記憶體裝置27在先後兩次的開機期間均維持在狀態A;其二為,記憶體裝置27在先後兩次的開機期間均維持在狀態D。
若為步驟S43,因為主機21在前一次開機期間進行啟動程式的更新流程,所以記憶體裝置27需要變更啟動區域配置。BootLayout步驟S43可能對應於兩類演變過程。
步驟S43可能對應的第一類演變過程為,在更新啟動程式的開機期間Tboot_update,記憶體裝置27先由狀態A轉換至狀態B,再由狀態B轉換至狀態C。之後,在接收上電信號Son而進入第一開機期間Ton1時,記憶體裝置27進一步從狀態C轉換至狀態D。換言之,記
憶體裝置27原本在更新啟動程式的開機期間Tboot_update採用第一啟動區域配置BootLayout1,在第一開機期間Ton1會轉換為採用第二啟動區域配置BootLayout2。並且,儲存在啟動程式存放區boot2的更新版啟動程式upBootPG,將被重新定義為與第一開機期間Ton1所使用的預設啟動程式dftBootPG。
步驟S43可能對應的第二類演變過程為,在更新啟動程式的開機期間Tboot_update,記憶體裝置27先由狀態D轉換至狀態E,再由狀態E轉換至狀態F。之後,在接收上電信號Son而進入第一開機期間Ton1時,記憶體裝置27進一步從狀態F轉換至狀態A。換言之,記憶體裝置27原本在更新啟動程式的開機期間Tboot_update採用第二啟動區域配置BootLayout2,在第一開機期間Ton1會轉換為採用第一啟動區域配置BootLayout1。並且,先前在更新啟動程式的開機期間Tboot_update被儲存在啟動程式存放區boot1的更新版啟動程式upBootPG,將在第一開機期間Ton1被重新定義為與第一開機期間Ton1對應的預設啟動程式dftBootPG。
承上,根據本發明構想的實施例,存取電路252對記憶體存取位址Madd進行寫入操作的情況可能是,主機21將更新版啟動程式upBootPG存入記憶體陣列271;存取電路252對記憶體存取位址Madd進行讀取操作的情況可能是,主機21從記憶體陣列271載入更新版啟動程式upBootPG的期間;存取電路252對記憶體存取位址Madd進行抹除操作的情況可能是,主機21清除儲存區域內的舊的(前一次開機所使用的)預設啟動程式dftBootPG、清除未完成更新流程而寫入一半的更新版啟動程式upBootPG,或是已經確認先前所載入更新版啟動程式upBootPG無法被順利執行而需抹除等情形。關於存取電路252
的設計,以及如何搭配位址轉換模組256而控制記憶體陣列271的做法,可由本案所屬技術領域的習知技藝者自由代換與應用,故此處不予詳述。
記憶體裝置27中,與預設啟動位址參數bootPT、更新啟動位址參數updatePT與啟動還原參數rstrFLG相關的電路可分為兩個部分,第7圖所示的觸發電路254a與第8A圖所示的位址轉換電路253。
請參見第7圖,其係觸發電路的內部電路之示意圖。觸發電路254a包含看門狗計時器2541、致能信號選擇電路2543與計時器致能電路2542。
其中,看門狗計時器2541電連接於時脈產生器254b與還原暫存器259,其係自時脈產生器254b接收內部時脈信號CLKint,以及產生逾時觸發信號Str至還原暫存器259。計時器致能電路2542電連接於更新啟動位址暫存器255與預設啟動位址暫存器257,其係接收更新啟動位址參數updatePT與預設啟動位址參數bootPT。計時器致能電路2542根據更新啟動位址參數updatePT與預設啟動位址參數bootPT產生記憶體端計時器致能信號Men。
致能信號選擇電路2543電連接於計時器致能電路2542與看門狗計時器2541之間,且致能信號選擇電路2543還電連接於主機21。致能信號選擇電路2543從計時器致能電路2542接收記憶體端計時器致能信號Men,或是從主機21接收主機端計時器致能信號Hen後,產生用於致能/禁能看門狗計時器2541的計時器致能信號Sen。
在此實施例中,假設計時器致能電路2542為一XNOR邏輯閘。
當預設啟動位址參數bootPT與更新啟動位址參數updatePT的值不相等時,計時器致能電路2542輸出的記憶體端計時器致能信號Men為0,且致能信號選擇電路2543輸出的計時器致能信號Sen為0(Sen=0)。此時看門狗計時器2541被禁能。
當預設啟動位址參數bootPT與更新啟動位址參數updatePT的值相等時,計時器致能電路2542輸出的記憶體端計時器致能信號Men為1,且致能信號選擇電路2543輸出的計時器致能信號Sen為(Sen=1)。此時看門狗計時器2541被致能。一旦看門狗計時器2541被致能,看門狗計時器2541持續判斷內部時脈信號CLKint的數量是否超過預設時脈門檻CLKth。
根據本發明的實施例,在看門狗計時器2541被致能的情況下,主機21若能順利執行系統的開機流程(載入預設啟動程式dftBootPG或更新版啟動程式upBootPG)時,便能在看門狗計時器2541產生逾時觸發信號Str前,透過主機端計時器致能信號Hen將看門狗計時器2541禁能。因此可避免看門狗計時器2541產生的逾時觸發信號Str將啟動還原參數rstrFLG設為1。
由於預設啟動程式dftBootPG必須能讓主機21順利載入,後續的系統程式才能被順利執行。因此,在看門狗計時器2541被致能的情況下,若主機21無法順利執行更新版啟動程式時,主機21便無法順利地在內部時脈信號CLKint超過預設時脈門檻CLKth前,將看門狗計時器2541禁能。據此,看門狗計時器2541將持續對內部時脈信號CLKint計數,直到內部時脈信號CLKint的數量超過預設時脈門檻CLKth而發出逾時觸發信號Str為止。在這種情況下,使用者也會因
為等待一段時間卻發現電子裝置20無法順利開機而手動將電子裝置20關機重開,或是重置(reset)電子裝置20。
隨著電子裝置20的重新開機或重置,主機21與記憶體裝置27將再度收到上電信號Son。此時,主機21可藉由讀取啟動還原參數rstrFLG得知前一次開機時,主機21曾經發生無法在開機流程順利載入啟動程式的情況。即,第6圖的步驟S47的情況。
承上所述,記憶體裝置27與主機21均會隨著更新啟動位址參數updatePT與預設啟動位址參數bootPT的值是否相等而產生對應的動作。以下簡要整理如表5。
附帶一提的是,儘管記憶體裝置27提供多個儲存區域作為儲存啟動程式使用,但對主機21而言,在開機後載入啟動程式時,並不需要隨著啟動程式所在的儲存區域不同而改變傳送至記憶體裝置27的主機存取位址Hadd。
請參見第8A圖,其係位址轉換模組將主機存取位址
Madd轉換為記憶體存取位址Madd之示意圖。在此圖式中,位址轉換電路253利用主機存取位址Hadd產生記憶體存取位址最高有效位元MMSadd後,位址解碼電路251再依據記憶體存取位址最高有效位元MMSadd與主機存取位址最低有效位元HLSadd組合成記憶體存取位址Madd。
根據本發明的實施例,位址轉換電路253進一步包含啟動位址決定電路253a與位址映射邏輯253c,其中啟動位址決定電路253a進一步包含配置選擇電路253e與上電啟動位址電路253d。在此實施例中,假設配置選擇電路253e為一XOR邏輯閘,且假設上電啟動位址電路253d為一D型正反器(D-Flip flop)。
配置選擇電路253e電連接於預設啟動位址暫存器257。配置選擇電路253e從預設啟動位址暫存器257讀取預設啟動位址參數bootPT,以及從還原暫存器259讀取啟動還原參數rstrFLG後,產生配置選擇信號Ssel給上電啟動位址電路253d。上電啟動位址電路253d由上電信號Son觸發,並對應將啟動位址選擇信號Ssel_startAdd輸出至位址映射邏輯253c。
因此,當上電信號Son產生而使上電啟動位址電路253d接收到由0轉為1的上升緣時,上電啟動位址電路253d輸出的啟動位址選擇信號Ssel_startAdd的位準會等於配置選擇信號Ssel的位準。
位址映射邏輯253c會同時接收主機存取位址最高有效位元HMSadd與啟動位址選擇信號Ssel_startAdd,並依據啟動位址選擇信號Ssel_startAdd而決定記憶體存取位址最高有效位元MMSadd。
如前所述,記憶體陣列271的儲存區域可被任意選用作為啟動程式存放區boot1、boot2,且隨著啟動區域配置BootLayout的不同,啟動程式存放區boot1、boot2可能被交替用於儲存預設啟動程式dftBootPG。為簡化主機存取記憶體陣列271時的控制流程,記憶體裝置27利用位址映射邏輯253c,因應預設啟動位址參數bootPT與配置選擇信號rstrFLG的不同,協助主機21使用適當的啟動位址startAdd載入預設啟動程式dftBootPG。
表6為與載入位址選擇電路相關的信號列表。表6可作為位址映射邏輯253c產生記憶體存取位址最高有效位元MMSadd的判斷依據。
當啟動還原參數rstrFLG為0(如表6的第一列與第三列)
時,啟動程式存放區選擇電路253e輸出的配置選擇信號Ssel即對應於與預設啟動位址參數bootPT對應的啟動程式存放區。以下說明當啟動還原參數rstrFLG為0時,啟動程式存放區boot1、boot2是如何被選定作為主機21載入預設啟動程式dftBootPG的來源。
例如,預設啟動位址參數bootPT=0時,配置選擇信號Ssel=0,此時與啟動位址選擇信號Ssel_startAdd對應的是啟動程式存放區boot1。又如,預設啟動位址參數bootPT=1時,配置選擇信號Ssel=1,此時與啟動位址選擇信號Ssel_startAdd對應的是啟動程式存放區boot2。
當啟動還原參數rstrFLG為1(如表6的第二列與第四列)時,啟動程式存放區選擇電路253e輸出的配置選擇信號Ssel並不會對應於與預設啟動位址參數bootPT對應的啟動程式存放區。以下說明當啟動還原參數rstrFLG為1時,啟動程式存放區boot1、boot2是如何被選定作為主機21載入預設啟動程式dftBootPG的來源。
例如,預設啟動位址參數bootPT=0時,配置選擇信號Ssel=1,此時與啟動位址選擇信號Ssel_startAdd對應的是啟動程式存放區boot2。又如,預設啟動位址參數bootPT=1時,配置選擇信號Ssel=0,此時與啟動位址選擇信號Ssel_startAdd對應的是啟動程式存放區boot1。
表6所對應的位址對應關係,不會隨著儲存區域的選擇不同而改變。另一方面,隨著系統所定義之作為啟動程式存放區boot1、boot2的儲存區域不同,經由啟動位址選擇信號Ssel_startAdd
所決定的啟動程式存放區的啟動位址,也會跟著所選擇的儲存區域不同而改變。
此處延續第2圖的舉例,假設當啟動程式存放區boot1對應於儲存區域D,且啟動程式存放區boot2對應於儲存區域A的前提下,說明位址轉換模組256如何搭配儲存區域識別碼IDsa,產生存取記憶體陣列271的記憶體存取位址Madd。這些位址的對應關係,取決於位址映射邏輯253c的操作,以下請一併參看第8A圖與第8B圖。
請參見第8B圖,其係舉例說明位址轉換電路如何將主機存取位址Hadd拆分為主機存取位址最高有效位元HMSadd與主機存取位址最低有效位元HLSadd後,再搭配記憶體存取位址最高有效位元MMSadd產生記憶體存取位址Madd之示意圖。
如前所述,本發明可利用儲存區域識別碼IDsa判斷記憶體陣列271的儲存區域。在第2圖的舉例中,假設儲存區域共有4個,且儲存區域識別碼IDsa為兩個位元。此處,依據儲存區域識別碼IDsa的長度,將主機存取位址Hadd區分為兩個部分。第一個部分為主機存取位址最高有效位元(HMSadd),第二個部分為主機存取位址最低有效位元(HLSadd)。其中,主機存取位址最高有效位元HMSadd的長度,等於儲存區域識別碼IDsa的長度。
例如,若主機存取位址Hadd的全長為24位元,則第22~23位元為主機存取位址最高有效位元HMSadd,第0~21位元為主機存取位址最低有效位元HLSadd。其後,位址映射邏輯253c會根據啟動位址選擇信號Ssel_startAdd與主機存取位址最高有效位元HMSadd產
生記憶體存取位址最高有效位元MMSadd
例如,在前述第2圖中假設啟動程式存放區boot1對應於儲存區域D,且啟動程式存放區boot2對應於儲存區域A。又,儲存區域D的識別碼為"11",而儲存區域A的識別碼為"00"。因此,啟動位址選擇信號Ssel_startAdd=0時,位址映射邏輯253c就以"11"作為記憶體存取位址最高有效位元MMSadd。啟動位址選擇信號Ssel_startAdd=1時,位址映射邏輯253c就以"00"作為記憶體存取位址最高有效位元MMSadd。
其後,位址解碼電路251分別接收主機存取位址最低有效位元HLSadd(b0~b21),以及由位址映射邏輯253c產生的記憶體存取位址最高有效位元MMSadd(b22~b23)。並以組合後的結果作為記憶體存取位址Madd。
藉由位址映射邏輯253c所管理之位址間的對應關係,主機21在傳送主機存取位址Hadd時,並不需要考慮記憶體裝置27的配置。換言之,本發明的記憶體裝置27在提供多重彈性的儲存區域作為主機21執行更新流程時使用的同時,主機21控制記憶體陣列271存取操作的負荷並不會增加。
根據前述的實施例可以看出,本發明記憶體裝置提供多個儲存區域,並可彈性自其中選擇啟動程式存放區,作為儲存系統的啟動程式使用。本發明的記憶體裝置提供啟動程式的更新功能,能在系統完成啟動程式的更新流程時,讓主機能順利切換使用更新版啟動程式。此外,針對更新版程式未能順利執行的情況,也提供還原使用
預設啟動程式dftBootPG的功能。據此,主機執行啟動程式的更新流程時的可能狀況均已被納入考量,故能使嵌入式系統的開發者能夠便利且輕易的使用記憶體裝置,不須額外費心考慮啟動程式的更新與切換所需的設計。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
254a:觸發電路
2541:看門狗計時器
2542:計時器致能電路
2543:致能信號選擇電路
Str:觸發信號
CLKint:內部時脈信號
Sen:計時器致能信號
Men:記憶體端計時器致能信號
updatePT:更新啟動位址參數
bootPT:預設啟動位址參數
Hen:主機端計時器致能信號
Claims (10)
- 一種記憶體裝置,用以電連接於一主機,該記憶體裝置係包含:一記憶體陣列,包含複數個儲存區域,其中該等儲存區域之一者係定義為一第一啟動程式存放區,且該等儲存區域中之另一者係定義為一第二啟動程式存放區;一還原暫存器,用以電連接於該主機,其係儲存一啟動還原參數;以及一預設啟動位址暫存器,用以電連接於該主機,其係儲存一預設啟動位址參數,其中該主機係於一第一開機期間,根據該預設啟動位址參數而載入儲存在該第一啟動程式存放區之一預設啟動程式以及儲存在該第二啟動程式存放區之一更新版啟動程式二者中的一者;一位址轉換模組,用以電連接於該主機、該還原暫存器與該預設啟動位址暫存器,其係在接收由該主機所產生的一主機存取位址後,依據該主機存取位址、該啟動還原參數與該預設啟動位址參數而產生一記憶體存取位址;一存取電路,用以電連接於該主機、該記憶體陣列與該位址轉換模組,其係自該主機接收一存取指令,其中該存取電路係對該記憶體存取位址執行該存取指令; 一觸發電路,用以電連接於該主機、該還原暫存器與該預設啟動位址暫存器,其中,在該第一開機期間,該觸發電路係選擇性產生用於設定該啟動還原參數之一逾時觸發信號;以及一更新啟動位址暫存器,其係儲存一更新啟動位址參數,其中,在一更新啟動程式的開機期間開始前,該更新啟動位址參數與該預設啟動位址參數係對應於該第一啟動程式存放區;其中該主機係於該更新啟動程式的開機期間自該第一啟動程式存放區載入該預設啟動程式。
- 如申請專利範圍第1項所述之記憶體裝置,其中在該更新啟動程式的開機期間,該主機係於開始執行一更新流程時,設定該更新啟動位址參數,使該更新啟動位址參數對應於該第二啟動程式存放區;在該更新流程的期間,該主機控制該記憶體裝置將該更新版啟動程式儲存在該第二啟動程式存放區;以及在該更新流程結束前,該主機設定該預設啟動位址參數,使該預設啟動位址參數對應於該第二啟動程式存放區,其中該主機與該記憶體裝置係因應在該更新啟動程式的開機期間接收的一上電信號而重新啟動,且該主機在重新啟動後進入該第一開機期間。
- 如申請專利範圍第2項所述之記憶體裝置,其中,在該第一開機期間, 若該更新啟動位址參數與該預設啟動位址參數均對應於該第一啟動程式存放區時,該主機載入儲存在該第一啟動程式存放區之該預設啟動程式,且該主機係於該逾時觸發信號產生前禁能該觸發電路;若該更新啟動位址參數對應於該第二啟動程式存放區,且該預設啟動位址參數對應於該第一啟動程式存放區時,該主機載入儲存在該第一啟動程式存放區之該預設啟動程式;以及若該更新啟動位址參數與該預設啟動位址參數均對應於該第二啟動程式存放區時,該主機執行儲存在該第二啟動程式存放區之該更新版啟動程式,且該觸發電路判斷一內部時脈信號是否滿足一預設條件,並於該預設條件成立時產生該逾時觸發信號。
- 如申請專利範圍第3項所述之記憶體裝置,其中該預設條件係指,自該記憶體裝置接收該上電信號後,該觸發電路累計接收之該內部時脈信號的數量大於一預設時脈門檻,其中,當該主機可順利載入儲存在該第二啟動程式存放區之該更新版啟動程式時,該主機係於該預設條件滿足前禁能該觸發電路,且該主機進一步將儲存在該第二啟動程式存放區之該更新版啟動程式定義為與該第一開機期間對應之另一預設啟動程式;以及,當該主機無法順利載入執行儲存在該第二啟動程式存放區之該更新版啟動程式時,該觸發電路判斷該預設條件滿足並產生該觸發信號。
- 如申請專利範圍第3項所述之記憶體裝置,其中該記憶體裝置更包含產生該內部時脈信號之一時脈產生器,且該觸發電路係包含:一計時器,用以電連接於該還原暫存器與該時脈產生器,其係接收該內部時脈信號,並於被致能時判斷該預設條件是否成立;以及一計時器致能電路,用以電連接於該預設啟動位址暫存器、該更新啟動位址暫存器與該計時器,其中,當該預設啟動位址參數不等於該更新啟動位址參數時,該計時器致能電路禁能該計時器;以及當預設啟動位址參數等於該更新啟動位址參數時,該計時器致能電路致能該計時器。
- 如申請專利範圍第2項所述之記憶體裝置,其中當該逾時觸發信號產生後,該主機與該記憶體裝置因應另一上電信號而重新啟動並進入一第二開機期間。
- 如申請專利範圍第6項所述之記憶體裝置,其中,於該第二開機期間,該主機係於該第二開機期間載入儲存在該第一啟動程式存放區之該預設啟動程式,且該主機清除該啟動還原參數,並將該更新啟動位址參數與該預設啟動位址參數設定為與該第一啟動程式存放區相對應。
- 如申請專利範圍第7項所述之記憶體裝置,其中, 當該啟動還原參數被該逾時觸發信號設定時,該啟動位址選擇信號係對應於在該第一啟動程式存放區與該第二啟動程式存放區中,未與該預設啟動位址參數對應者;以及,當該啟動還原參數未被該逾時觸發信號設定時,該啟動位址選擇信號係對應於在該第一啟動程式存放區與該第二啟動程式存放區中,與該預設啟動位址參數對應者。
- 一種電子裝置的啟動程式載入方法,該電子裝置係包含一主機與一記憶體裝置,且該記憶體裝置包含一記憶體陣列,其中該記憶體陣列包含的複數個儲存區域之一者係被定義為一第一啟動程式存放區,且該等儲存區域中之另一者係被定義為一第二啟動程式存放區,其中該啟動程式載入方法係包含以下步驟:該記憶體裝置儲存一啟動還原參數以及一預設啟動位址參數;該主機係於一第一開機期間,根據該預設啟動位址參數而載入儲存在該第一啟動程式存放區之一預設啟動程式以及儲存在該第二啟動程式存放區之一更新版啟動程式二者中的一者;該記憶體裝置依據該主機所產生的一主機存取位址、該啟動還原參數與該預設啟動位址參數而產生一記憶體存取位址;該記憶體裝置自該主機接收一存取指令,並對該記憶體存取位址執行該存取指令;在該第一開機期間,該記憶體裝置係選擇性產生用於設定該啟動還原參數之一逾時觸發信號;以及 該主機於一更新啟動程式的開機期間載入儲存在該第一啟動程式存放區之該預設啟動程式。
- 如申請專利範圍第9項所述之啟動程式載入方法,其中更包含以下步驟:該記憶體裝置儲存一更新啟動位址參數,其中,在該更新啟動程式的開機期間開始前,該更新啟動位址參數與該預設啟動位址參數係對應於該第一啟動程式存放區;在該更新啟動程式的開機期間,該主機係於開始執行一更新流程時,設定該更新啟動位址參數,使該更新啟動位址參數對應於該第二啟動程式存放區;在該更新流程的期間,該主機控制該記憶體裝置將一更新版啟動程式儲存在該第二啟動程式存放區;在該更新流程結束前,該主機設定該預設啟動位址參數,使該預設啟動位址參數對應於該第二啟動程式存放區,其中該主機與該記憶體裝置係因應在該更新啟動程式的開機期間所接收的一上電信號而重新啟動,且該主機在重新啟動後進入該第一開機期間;以及當該逾時觸發信號產生後,該主機與該記憶體裝置因應另一上電信號而重新啟動並進入一第二開機期間。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/868,896 US10445088B2 (en) | 2018-01-11 | 2018-01-11 | System boot code clone |
US15/868,896 | 2018-01-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201931111A TW201931111A (zh) | 2019-08-01 |
TWI703498B true TWI703498B (zh) | 2020-09-01 |
Family
ID=61192657
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107109176A TWI678613B (zh) | 2018-01-11 | 2018-03-16 | 系統開機碼記憶體管理方法、記憶體裝置及其製造方法 |
TW107137817A TWI703498B (zh) | 2018-01-11 | 2018-10-25 | 記憶體裝置與電子裝置的啟動程式載入方法 |
TW108100560A TWI722361B (zh) | 2018-01-11 | 2019-01-07 | 系統開機碼記憶體管理方法、記憶體裝置與應用其之電子系統 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107109176A TWI678613B (zh) | 2018-01-11 | 2018-03-16 | 系統開機碼記憶體管理方法、記憶體裝置及其製造方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108100560A TWI722361B (zh) | 2018-01-11 | 2019-01-07 | 系統開機碼記憶體管理方法、記憶體裝置與應用其之電子系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10445088B2 (zh) |
EP (1) | EP3511826B1 (zh) |
CN (3) | CN110032520B (zh) |
TW (3) | TWI678613B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI666556B (zh) * | 2018-03-27 | 2019-07-21 | 緯創資通股份有限公司 | 電子裝置及其操作方法 |
KR102646630B1 (ko) * | 2018-10-01 | 2024-03-11 | 삼성전자주식회사 | 시스템 런타임 환경에서 dram 셀 상의 라이트 보호 커맨드를 발행하는 방법 |
US11762575B2 (en) | 2019-07-31 | 2023-09-19 | Hewlett-Packard Development Company, L.P. | Updates to flash memory based on determinations of bits to erase |
FR3105854B1 (fr) * | 2019-12-31 | 2024-07-19 | St Microelectronics Rousset | Système embarqué |
CN111338668B (zh) * | 2020-02-14 | 2022-05-10 | 支付宝(杭州)信息技术有限公司 | 用于实时计算中的代码升级的方法及装置 |
TWI768316B (zh) * | 2020-03-30 | 2022-06-21 | 旺宏電子股份有限公司 | 記憶體裝置以及安全開機的記憶體管理方法 |
CN113495808B (zh) * | 2020-04-01 | 2024-09-27 | 旺宏电子股份有限公司 | 存储器装置以及安全开机的存储器管理方法 |
JP2021190150A (ja) * | 2020-06-02 | 2021-12-13 | キオクシア株式会社 | メモリシステム及びメモリコントローラ |
US11734018B2 (en) * | 2020-07-17 | 2023-08-22 | Western Digital Technologies, Inc. | Parallel boot execution of memory devices |
TWI805946B (zh) | 2020-09-29 | 2023-06-21 | 瑞昱半導體股份有限公司 | 內嵌式系統及控制非揮發性記憶體之方法 |
TWI755184B (zh) | 2020-12-03 | 2022-02-11 | 聯陽半導體股份有限公司 | 電子裝置及其開機方法 |
US11586393B2 (en) * | 2020-12-30 | 2023-02-21 | Macronix International Co., Ltd. | Control method for requesting status of flash memory, flash memory die and flash memory with the same |
US11550494B2 (en) * | 2021-02-03 | 2023-01-10 | Macronix International Co., Ltd. | Method to support high reliability multiple times program non-volatile configuration setting |
FR3128543B1 (fr) * | 2021-10-26 | 2023-12-22 | Sagemcom Broadband Sas | Procede de verrouillage d’une memoire non-volatile reinscriptible et dispositif electronique mettant en œuvre ledit procede |
US11797230B2 (en) * | 2021-12-14 | 2023-10-24 | Hewlett-Packard Development Company, L.P. | Bios variables storage |
CN116700061B (zh) * | 2023-04-12 | 2024-05-03 | 广东为辰信息科技有限公司 | 一种基于安全启动技术的快速启动方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005277A1 (en) * | 2001-06-29 | 2003-01-02 | Harding Matthew C. | Automatic replacement of corrupted BIOS image |
TW200506731A (en) * | 2003-08-05 | 2005-02-16 | Via Tech Inc | Computer system with multiple basic input/output system (BIOS) memory blocks |
US20080141016A1 (en) * | 2006-12-07 | 2008-06-12 | Lung-Chiao Chang | Computer System and Related Method for Preventing Failure of Updating BIOS Programs |
TW201715387A (zh) * | 2015-10-30 | 2017-05-01 | 廣達電腦股份有限公司 | 基本輸入輸出系統回復管理系統、電腦程式產品 以及基本輸入輸出系統回復方法 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282675B1 (en) | 1997-08-06 | 2001-08-28 | Macronix International Co., Ltd. | Fault-tolerant architecture for in-circuit programming |
US6275931B1 (en) | 1998-06-22 | 2001-08-14 | Elsag International N.V. | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
US6205548B1 (en) | 1998-07-31 | 2001-03-20 | Intel Corporation | Methods and apparatus for updating a nonvolatile memory |
US6473856B1 (en) * | 1999-06-30 | 2002-10-29 | International Business Machines Corporation | Gold code backup for corrupt boot code recovery |
US6748480B2 (en) | 1999-12-27 | 2004-06-08 | Gregory V. Chudnovsky | Multi-bank, fault-tolerant, high-performance memory addressing system and method |
US6748457B2 (en) * | 2000-02-03 | 2004-06-08 | Realtime Data, Llc | Data storewidth accelerator |
US6757838B1 (en) * | 2000-10-13 | 2004-06-29 | Hewlett-Packard Development Company, L.P. | Hardware independent implementation of computer system BIOS recovery |
US7017004B1 (en) * | 2002-03-29 | 2006-03-21 | Microsoft Corporation | System and method for updating contents of a flash ROM |
US7089549B2 (en) * | 2002-04-01 | 2006-08-08 | International Business Machines Corp. | Updating flash memory |
JP2004013719A (ja) * | 2002-06-10 | 2004-01-15 | Fujitsu Ltd | 多重化された不揮発性メモリの更新回路、及び多重化された不揮発性メモリの更新方法 |
US8667249B2 (en) * | 2004-12-22 | 2014-03-04 | Intel Corporation | Systems and methods exchanging data between processors through concurrent shared memory |
US9003000B2 (en) * | 2006-07-25 | 2015-04-07 | Nvidia Corporation | System and method for operating system installation on a diskless computing platform |
CN100504782C (zh) * | 2006-12-18 | 2009-06-24 | 纬创资通股份有限公司 | 避免基本输出入系统程序更新失败的计算机系统 |
CN100501679C (zh) * | 2007-02-27 | 2009-06-17 | 华为技术有限公司 | 一种电子设备 |
US20090006834A1 (en) * | 2007-06-29 | 2009-01-01 | Michael Rothman | Proxied firmware updates |
US8156299B2 (en) | 2007-10-19 | 2012-04-10 | Virident Systems Inc. | Managing memory systems containing components with asymmetric characteristics |
CN101667128B (zh) * | 2008-09-05 | 2013-11-06 | 华硕电脑股份有限公司 | 更新与修复基本输入输出系统的方法 |
TWI460657B (zh) | 2008-09-05 | 2014-11-11 | Asustek Comp Inc | 更新與修復基本輸入輸出系統的方法 |
US8266408B2 (en) | 2009-03-17 | 2012-09-11 | Memoir Systems, Inc. | System and method for storing data in a virtualized high speed memory system |
US8397039B2 (en) * | 2010-02-12 | 2013-03-12 | Symantec Corporation | Storage systems and methods |
TWI441081B (zh) | 2011-11-04 | 2014-06-11 | Asrock Inc | 更新韌體方法與開機方法及使用其之電子裝置 |
TWI443507B (zh) * | 2011-12-05 | 2014-07-01 | Giga Byte Tech Co Ltd | 自動修復系統及其自動修復方法 |
CN103186434A (zh) * | 2011-12-31 | 2013-07-03 | 国民技术股份有限公司 | 恢复基本输入输出系统的方法及系统 |
US8880962B2 (en) * | 2012-04-24 | 2014-11-04 | International Business Machines Corporation | Maintenance planning and failure prediction from data observed within a time window |
KR101991905B1 (ko) * | 2012-07-19 | 2019-06-24 | 삼성전자주식회사 | 불휘발성 메모리, 불휘발성 메모리의 읽기 방법 및 불휘발성 메모리를 포함하는 메모리 시스템 |
US9158683B2 (en) | 2012-08-09 | 2015-10-13 | Texas Instruments Incorporated | Multiport memory emulation using single-port memory devices |
US9378572B2 (en) * | 2012-08-17 | 2016-06-28 | Intel Corporation | Shared virtual memory |
US20140089561A1 (en) | 2012-09-26 | 2014-03-27 | Kiran Pangal | Techniques Associated with Protecting System Critical Data Written to Non-Volatile Memory |
CN104102585B (zh) * | 2013-04-03 | 2017-09-12 | 群联电子股份有限公司 | 映射信息记录方法、存储器控制器与存储器储存装置 |
TWI514281B (zh) | 2014-08-28 | 2015-12-21 | 具spi介面的sata儲存裝置、應用該sata儲存裝置之開機方法及基本輸入輸出系統程式碼更新方法 | |
US10019358B2 (en) | 2015-03-20 | 2018-07-10 | Vixs Systems Inc. | Bank address remapping to load balance memory traffic among banks of memory |
TWI556172B (zh) | 2015-09-04 | 2016-11-01 | 神雲科技股份有限公司 | 電腦裝置及其開機方法 |
CN106776376B (zh) * | 2015-11-24 | 2019-08-06 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制电路单元及存储装置 |
CN106814968B (zh) * | 2015-11-27 | 2020-03-17 | 群联电子股份有限公司 | 存储器管理方法与系统及其存储器存储装置 |
-
2018
- 2018-01-11 US US15/868,896 patent/US10445088B2/en active Active
- 2018-01-30 EP EP18154123.6A patent/EP3511826B1/en active Active
- 2018-03-16 TW TW107109176A patent/TWI678613B/zh active
- 2018-03-20 CN CN201810232378.2A patent/CN110032520B/zh active Active
- 2018-10-25 TW TW107137817A patent/TWI703498B/zh active
- 2018-10-26 CN CN201811264242.6A patent/CN110032403B/zh active Active
-
2019
- 2019-01-07 TW TW108100560A patent/TWI722361B/zh active
- 2019-01-10 CN CN201910024870.5A patent/CN110032405B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005277A1 (en) * | 2001-06-29 | 2003-01-02 | Harding Matthew C. | Automatic replacement of corrupted BIOS image |
TW200506731A (en) * | 2003-08-05 | 2005-02-16 | Via Tech Inc | Computer system with multiple basic input/output system (BIOS) memory blocks |
US20080141016A1 (en) * | 2006-12-07 | 2008-06-12 | Lung-Chiao Chang | Computer System and Related Method for Preventing Failure of Updating BIOS Programs |
TW201715387A (zh) * | 2015-10-30 | 2017-05-01 | 廣達電腦股份有限公司 | 基本輸入輸出系統回復管理系統、電腦程式產品 以及基本輸入輸出系統回復方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI722361B (zh) | 2021-03-21 |
US20190212999A1 (en) | 2019-07-11 |
CN110032405B (zh) | 2022-03-15 |
EP3511826B1 (en) | 2022-03-16 |
CN110032520B (zh) | 2021-06-29 |
US10445088B2 (en) | 2019-10-15 |
EP3511826A1 (en) | 2019-07-17 |
CN110032405A (zh) | 2019-07-19 |
CN110032403A (zh) | 2019-07-19 |
CN110032520A (zh) | 2019-07-19 |
TW201937367A (zh) | 2019-09-16 |
TWI678613B (zh) | 2019-12-01 |
TW201931111A (zh) | 2019-08-01 |
TW201931115A (zh) | 2019-08-01 |
CN110032403B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI703498B (zh) | 記憶體裝置與電子裝置的啟動程式載入方法 | |
JP5268363B2 (ja) | コンピュータマルチオペレーティングシステムの切換え方法 | |
TWI684868B (zh) | 記憶體控制器及其操作方法以及記憶體系統之控制方法 | |
JP5220747B2 (ja) | 不揮発性記憶装置および不揮発性記憶システム | |
JP4986247B2 (ja) | プログラム、制御方法、並びに制御装置 | |
TW200919205A (en) | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems | |
US20140304497A1 (en) | Electronic device having function of booting operating system by bootloader, method of performing the same function, and storage medium | |
JP2004118826A (ja) | フラッシュメモリを用いてブーティングされるシステム装置及びそのブーティング方法 | |
KR100604877B1 (ko) | 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법 | |
JP2006120082A (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
US10977050B2 (en) | Method for managing system boot code memory, memory device and electronic system using the same | |
JP2003345730A (ja) | インタフェース装置、インタフェース装置におけるファームウェアの更新方法、及びそのプログラム | |
TWI676933B (zh) | 韌體更新方法 | |
TWI807384B (zh) | 儲存裝置 | |
JP2005157528A (ja) | メモリ装置 | |
TWI518594B (zh) | 計算機系統與計算機系統啓動方法 | |
JP2005258642A (ja) | 組込型情報処理装置 | |
KR20110078171A (ko) | 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법 | |
US20150317181A1 (en) | Operating system switching method | |
TW202044034A (zh) | 軟體存留性關閉技術 | |
JP4572205B2 (ja) | フラッシュメモリドライブ装置、その制御方法及びそのプログラム | |
TW200933486A (en) | Method for updating firmware and firmware architecture | |
JP2007102544A (ja) | デジタルシグナルプロセッサシステムおよびそのブート方法。 | |
JP6582704B2 (ja) | 情報処理装置、デバイス接続管理プログラム及びデバイス接続管理方法 | |
CN115639948A (zh) | 存储装置 |