TWI615705B - 於電腦系統中重置記憶體的方法 - Google Patents

於電腦系統中重置記憶體的方法 Download PDF

Info

Publication number
TWI615705B
TWI615705B TW105116961A TW105116961A TWI615705B TW I615705 B TWI615705 B TW I615705B TW 105116961 A TW105116961 A TW 105116961A TW 105116961 A TW105116961 A TW 105116961A TW I615705 B TWI615705 B TW I615705B
Authority
TW
Taiwan
Prior art keywords
memory
memory controller
procedure
computer system
programmable initial
Prior art date
Application number
TW105116961A
Other languages
English (en)
Other versions
TW201741809A (zh
Inventor
盧星辰
張雅閔
Original Assignee
瑞昱半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW105116961A priority Critical patent/TWI615705B/zh
Priority to US15/608,958 priority patent/US10503522B2/en
Publication of TW201741809A publication Critical patent/TW201741809A/zh
Application granted granted Critical
Publication of TWI615705B publication Critical patent/TWI615705B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

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)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

於電腦系統中重置記憶體的方法包含啟動電腦系統,電腦系統的記憶體控制器執行啟動程序以初始化記憶體。在記憶體控制器執行啟動程序後,記憶體控制器根據啟動程序更新可程式化初始程序以產生更新後之可程式化初始程序。重置電腦系統後,記憶體控制器執行更新後之可程式化初始程序以使記憶體回復至預設狀態。記憶體回復至預設狀態後,記憶體控制器再次執行啟動程序以初始化記憶體。在記憶體初始化之後,記憶體控制器使記憶體執行操作程序。

Description

於電腦系統中重置記憶體的方法
本發明係有關於一種於電腦系統中重置記憶體的方法,特別是一種可確保記憶體在重置過程中被正確地初始化的重置記憶體方法。
一般來說,電腦系統在開機時,會對其記憶體進行初始化,在記憶體完成初始化之後,電腦系統即可透過記憶體控制器來控制記憶體,並使記憶體在系統所需的模式下進行讀寫的操作。當使用者重置電腦系統時,記憶體也必須跟著重置並回到原始預設的狀態,以使電腦系統能夠再次對記憶體進行操作。在先前技術中,記憶體的重置流程可能係透過硬體的方式實做,例如記憶體元件可能包含重置接腳,而記憶體控制器只需要透過記憶體的重置接腳即可觸發記憶體進入重置流程。然而在此情況下,記憶體元件即需要增加額外的接腳,不僅增加記憶體元件本身的面積大小,也可能增加在電路板上繞線的複雜度。
為了避免增加記憶體元件的面積,在先前技術中,記憶體的重置流程也可能以軟體的方式完成,例如可透過記憶體控制器向記憶體輸出固定的重置指令來使記憶體重置。然而電腦系統重置的時機可能各有不同,而在電腦系統重置之前,記憶體所在的狀態也可能不同,例如記憶體可能根據系統的需求,而會透過兩個通道或四個通道來接收讀寫操作的指令,此時若記憶體控制器仍根據固定的重置指令來控制記憶體,則可能因為使用的通道數不同,而無法正常地重置記憶體。若記憶體無法被正常地重置,則電腦系統也將無法正常地將記憶體重新初始化,結果將導致電腦系統在重置之後,無法再對記憶體進行讀寫的操作。
因此如何在不增加記憶體接腳數量的情況下,能夠確保記憶體能更隨著電腦系統被正確地重置以進行後續的初始化,即成為有待解決的問題。
本發明之一實施例提供一種於電腦系統中重置記憶體的方法。電腦系統包含記憶體控制器,於電腦系統中重置記憶體的方法包含啟動電腦系統,記憶體控制器執行啟動程序(boot code)以初始化記憶體,在記憶體控制器執行啟動程序後,記憶體控制器根據啟動程序更新可程式化初始程序以產生更新後之可程式化初始程序,重置電腦系統,記憶體控制器執行更新後之可程式化初始程序以使記憶體回復至預設狀態,在記憶體回復至預設狀態後,記憶體控制器再次執行啟動程序以初始化記憶體,及在記憶體初始化之後,記憶體控制器使記憶體執行操作程序。可程式化初始程序是儲存於記憶體控制器中。
本發明之另一實施例提供一種於電腦系統中重置記憶體的方法。電腦系統包含記憶體控制器,於電腦系統中重置記憶體的方法包含啟動電腦系統,記憶體控制器執行啟動程序以初始化記憶體,在記憶體控制器執行啟動程序後,記憶體控制器根據啟動程序產生可程式化初始程序,重置電腦系統,記憶體控制器執行可程式化初始程序以使記憶體回復至預設狀態,在記憶體回復至預設狀態後,記憶體控制器再次執行啟動程序以初始化記憶體,及在記憶體初始化之後,記憶體控制器使記憶體執行操作程序。可程式化初始程序是儲存於記憶體控制器中。
本發明之另一實施例提供一種於電腦系統中重置記憶體的方法。電腦系統包含記憶體控制器,於電腦系統中重置記憶體的方法包含啟動電腦系統,記憶體控制器執行啟動程序以初始化記憶體,在記憶體初始化之後,記憶體控制器使記憶體執行操作程序,在記憶體控制器使記憶體執行操作程序時,記憶體控制器根據其操作程序更新可程式化初始程序以產生更新後之可程式化初始程序,重置電腦系統,記憶體控制器執行更新後之可程式化初始程序以使記憶體回復至預設狀態,及在記憶體回復至預設狀態後,記憶體控制器再次執行啟動程序以初始化記憶體。可程式化初始程序是儲存於記憶體控制器中。
第1圖為本發明一實施例之電腦系統100的示意圖。電腦系統100包含處理器110、記憶體控制器120及記憶體130。處理器110可透過記憶體控制器120對記憶體130進行讀寫的操作。
當電腦系統100啟動時,記憶體130中的元件也會隨之通電,記憶體130通電後會進入記憶體130的預設狀態,而記憶體控制器120在等待電源穩定之後,即開始對記憶體進行初始化。記憶體控制器120可執行啟動程序(boot code)來初始化記憶體130,並將記憶體130由預設狀態設定為電腦系統100所需的初始化狀態。在本發明的部分實施例中,記憶體130可為任何種類的揮發性記憶體,亦或為任何種類的非揮發性記憶體(Non-volatile memory,NVM),例如為NAND快閃記憶體(Flash memory)及NOR快閃記憶體。
舉例來說,若記憶體130為支援四通道的快閃記憶體(Flash memory),則在預設狀態下,記憶體130可能以單通道來收發指令資料,因此在執行啟動程序的過程中,記憶體控制器120會透過單通道的通訊方式,將記憶體130的操作模式由原先以單通道收發指令資料的模式設定為以雙通道或四通道來收發指令資料。如此一來,電腦系統100即可根據系統的需要,透過記憶體控制器120來對記憶體130進行讀寫的操作。在本發明的部分實施例中,啟動程序(boot code)可儲存於電腦系統100之唯讀記憶體140(Read Only Memory,ROM)中。
在本發明的部分實施例中,電腦系統100可能會在不斷電的情況下重置,即暖重置(warm reset),此時如果記憶體控制器120是在記憶體130尚未回到預設狀態的情況下,直接對記憶體130進行初始化,則可能導致記憶體130無法辨識指令,而無法順利完成初始化。舉例來說,記憶體控制器120可能是以單通道的通訊方式對記憶體130進行初始化,然而記憶體130卻是以四通道的通訊方式接收指令,導致記憶體130無法辨識指令而導致初始化失敗。
為避免記憶體控制器120在記憶體130尚未回到預設狀態的情況下,對記憶體130進行初始化而導致初始化失敗的情況,在記憶體控制器120執行啟動程序後,記憶體控制器120可根據啟動程序更新可程式化初始程序IPC0以產生更新後之可程式化初始程序IPC1。申言之,記憶體控制器120會根據在啟動程序中對記憶體130的設定來產生更新後之可程式化初始程序IPC1。舉例來說,若在啟動程序中,記憶體130被設定為以四通道的通訊方式來收發指令資料,則在更新後之可程式化初始程序IPC1中,即會先以四通道的通訊方式來與記憶體130溝通,再進一步將記憶體130設定為所需的狀態,因此當電腦系統100被重置(reset),而記憶體控制器120執行更新後之可程式化初始程序IPC1後,記憶體130即可回復至預設狀態。而在記憶體130回復至預設狀態後,記憶體控制器120即可再次執行啟動程序以初始化記憶體130,此時記憶體130即可正確地判讀啟動程序中的指令,使得初始化的過程能夠順利完成。記憶體130初始化完成之後,記憶體控制器120即可使記憶體130執行其他的操作程序。
表1說明本發明一實施例之可程式化初始程序IPC1之內容。當然,表1的實施例為說明本發明之可程式化初始程序IPC1的可能實施方式,而在本發明的其他實施例中,不同的記憶體可能會具有不同的重置流程,所需的指令內容也可能有所差異,因此可程式化初始程序IPC1亦可能根據系統的需要而包含不同的欄位及/或不同的指令值。 <TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 指令 </td><td> 計數欄位 </td><td> 狀態欄位 </td><td> 通道數欄位 </td><td> 指令資料欄位 </td></tr><tr><td> I1 </td><td> F </td><td> 1 </td><td> 1 </td><td> 66 </td></tr><tr><td> I2 </td><td> F </td><td> 1 </td><td> 1 </td><td> 99 </td></tr><tr><td> I3 </td><td> F </td><td> 1 </td><td> 1 </td><td> 06 </td></tr><tr><td> I4 </td><td> F </td><td> 2 </td><td> 1 </td><td> 01 </td></tr><tr><td> I5 </td><td> F </td><td> 0 </td><td> 1 </td><td> 00 </td></tr></TBODY></TABLE>
在表1的實施例中,可程式化初始程序IPC1包含複數個指令I1至I5,每一個指令包含計數欄位、狀態欄位、通道數欄位及指令資料欄位。在表1中個欄位的值是以十六進位表示。
計數欄位可儲存執行指令後所需的間隔時間,例如指令I1的計數欄位為F,表示記憶體控制器120在指令I1之後,可利用計數器計數至16之後,才執行下一個指令。
狀態欄位可儲存在執行指令後,是否還有下一指令之資訊、是否還有下一輸出資料之資訊、或是否即將結束之資訊,在表1的實施例中,狀態欄位的值若為0,例如指令I5之狀態欄位,則表示指令I5為最後一個指令,可程式化初始程序IPC1即將結束,而不會再有下一個指令。若狀態欄位的值若為1,例如指令I1、I2及I3之狀態欄位,則表示再執行指令I1、I2及I3之後可接續地執行下一個指令。若狀態欄位的值若為2,例如指令I4之狀態欄位,則表示在執行指令I4之後,還須繼續傳送欲寫入的資訊至記憶體130,因此不可直接執行下一個指令。
通道數欄位可儲存記憶體控制器120在執行該指令時,所使用之通道數量。例如指令I1至I5的通道數欄位皆為1,表示記憶體控制器120將以單通道的通訊方式傳送指令給記憶體130。
指令資料欄位可儲存指令的內容或資料,亦即記憶體控制器120欲記憶體130執行的指令或欲記憶體130接收的資料內容。在表1的實施例中,指令I1是用以提示記憶體130致能其內部重置流程所需的功能,而對應的指令資料欄位之值為66,指令I2是用以使記憶體130進行其內部的重置流程,而對應的指令資料欄位之值為99,指令I3至指令I5之指令資料欄位中的06、01及00則各分別代表致能記憶體130的寫入功能、傳送欲寫入的位址及欲寫入的資料…等,因此記憶體控制器120可對記憶體130進行寫入的操作。
申言之,當記憶體130的操作狀態有所改變時,可程式化初始程序IPC1也可能會被對應地更新,例如在當記憶體130即將由單通道模式進入雙通道模式時,指令I1的通道數欄位即可能由1被修改為2,如此一來,在後續的重置過程中,記憶體130才能夠正確地接收到重置指令,而回復到預設狀態,並進一步完成初始化。
在本發明的部分實施例中,可程式化初始程序IPC0及IPC1可儲存在記憶體控制器120的初始程序記憶體122中,且在部分實施例中,初始程序記憶體122可為非揮發性記憶體,如此一來,若電腦系統100是以斷電方式重置時,即硬重置(hard reset)時,記憶體控制器120仍然可以根據前述的方法來確保記憶體130能夠回到預設狀態,以利後續初始化的進行。
記憶體130完成初始化之後,記憶體控制器120還可能會對記憶體進行其他的操作,進而改變記憶體130的操作模式,因此在記憶體控制器120使記憶體130執行其他操作程序時,記憶體控制器120亦可根據其操作程序再次更新可程式化初始程序IPC1以產生再次更新後之可程式化初始程序IPC2。如此一來,若當再次更新後之可程式化初始程序IPC2產生之後,電腦系統100被再次重置,則在重置的過程中,記憶體控制器120可執行再次更新後之可程式化初始程序IPC2以使記憶體130回復至預設狀態。而在記憶體130回復至預設狀態後,記憶體控制器120即可再次執行啟動程序以初始化記憶體130。
此外,當電腦系統100是第一次啟動,而記憶體130初次通電時,由於記憶體130尚未被初始化,也還未經過其他的操作程序,因此記憶體130的狀態應為預設狀態;在此情況下,在記憶體控制器120執行啟動程序之前,初始程序記憶體122可能無需存有可程式化初始程序IPC0,而記憶體控制器120會在執行啟動程序後,才根據啟動程序產生可程式化初始程序IPC1。
申言之,記憶體控制器120可持續地更新儲存於初始程序記憶體122中的可程式化初始程序,使得電腦系統100不論何時被重置,記憶體控制器120都能夠透過執行可程式化初始程序使記憶體130回到預設狀態,並能夠順利地完成後續的初始化流程。
第2圖為本發明一實施例之在電腦系統100重置記憶體130的方法200。方法200包含步驟S210至S260。
S210: 啟動電腦系統100;
S220: 記憶體控制器120執行啟動程序以初始化記憶體130;
S222: 在記憶體控制器120執行啟動程序後,記憶體控制器120根據啟動程序更新可程式化初始程序IPC0以產生更新後之可程式化初始程序IPC1;
S230: 重置電腦系統100;
S240: 記憶體控制器120執行更新後之可程式化初始程序IPC1以使記憶體130回復至預設狀態;
S250: 在記憶體130回復至預設狀態後,記憶體控制器120再次執行啟動程序以初始化記憶體130;
S260: 在記憶體130初始化之後,記憶體控制器120使記憶體120執行其他操作程序。
透過方法200,記憶體控制器120即可在記憶體130於步驟S220完成初始化後,在步驟S222中根據啟動程序更新可程式化初始程序IPC0以產生更新後之可程式化初始程序IPC1。因此當電腦系統100於步驟S230被重置後,記憶體控制器120可於步驟S240執行更新後的可程式化初始程序IPC1,使得記憶體130能夠回復到預設狀態。且在記憶體控制器120於步驟S260中對記憶體130執行其他操作程序後。
在本發明的部分實施例中,當記憶體130第一次被初始化時,記憶體控制器120中可能不存在有可程式化初始程序,因此記憶體控制器120可根據啟動程序直接產生可程式化初始程序IPC1。第3圖為本發明一實施例之在電腦系統100重置記憶體130的方法300。方法300包含步驟S310至S370。
S310: 啟動電腦系統100;
S320: 記憶體控制器120執行啟動程序以初始化記憶體130;
S322: 在記憶體控制器120執行啟動程序後,記憶體控制器120根據啟動程序產生可程式化初始程序IPC1;
S330: 重置電腦系統100;
S340: 記憶體控制器120執行可程式化初始程序IPC1以使記憶體130回復至預設狀態;
S350: 在記憶體130回復至預設狀態後,記憶體控制器120再次執行啟動程序以初始化記憶體130;
S360: 在記憶體130初始化之後,記憶體控制器120使記憶體120執行其他操作程序;
S362: 在記憶體控制器120使記憶體130執行其他操作程序時,記憶體控制器120根據其他操作程序可程式化初始程序IPC1產生更新後之可程式化初始程序IPC2;
S370: 在產生可程式化初始程序IPC2後,再次重置電腦系統100;
S380: 在再次重置電腦系統100後,記憶體控制器120執行可程式化初始程序IPC2以使記憶體130回復至預設狀態;
S390: 在記憶體控制器120執行可程式化初始程序IPC2以使記憶體130回復至預設狀態後,記憶體控制器120再次執行啟動程序以初始化記憶體130。
在步驟S322中,記憶體控制器120會根據啟動程序產生可程式化初始程序IPC1,而在步驟S222中,記憶體控制器120則會根據啟動程序更新可程式化初始程序IPC0以產生更新後之可程式化初始程序IPC1,因此兩者有所差異。除此之外,方法300還可包含步驟S362至S390。由於會在步驟S362中,根據記憶體控制器120於步驟S360中所執行的操作程序來更新可程式化初始程序IPC1以產生更新後之可程式化初始程序IPC2,因此當電腦系統100於步驟S370中被再次重置後,記憶體控制器120還可在步驟S380中執行可程式化初始程序IPC2以使記憶體130回復到預設狀態,並使得記憶體130能進一步在步驟S390中完成初始化。在本發明的部分實施例中,方法200亦可包含步驟S362至S390。
此外,在本發明的部分實施例中,電腦系統100的重置時機可能與方法200中的步驟有所差異,舉例來說,若電腦系統100在記憶體130第一次初始化完成後並未立刻被重置,而是直到記憶體控制器120對記憶體130執行其他操作之後,才被重置,則亦可省略方法300中的部分步驟。第4圖為本發明一實施例之在電腦系統100重置記憶體130的方法400。方法400包含步驟S410至S470。
S410: 啟動電腦系統100;
S420: 記憶體控制器120執行啟動程序以初始化記憶體130;
S430: 在記憶體130初始化之後,記憶體控制器120使記憶體120執行其他操作程序;
S440: 在記憶體控制器120使記憶體130執行其他操作程序時,記憶體控制器120根據其他操作程序更新可程式化初始程序IPC0以產生更新後之可程式化初始程序IPC1;
S450: 重置電腦系統100;
S460: 記憶體控制器120執行更新後之可程式化初始程序IPC1以使記憶體130回復至預設狀態;
S470: 在記憶體130回復至預設狀態後,記憶體控制器120再次執行啟動程序以初始化記憶體130。
申言之,只要記憶體控制器120能在每次更改記憶體130之操作模式之前,先根據對應的操作來修改更新可程式化初始程序,則不論電腦系統100被重置的時間點為何,記憶體控制器120都能夠透過可程式化初始程序使記憶體130回復到預設狀態,使得記憶體130能夠被正確地初始化。
綜上所述,本發明之實施例所提供的電腦系統及於電腦系統重置記憶體的方法可利用記憶體控制器持續地更新可程式化初始程序,因此不論電腦系統在何時被重置,都能夠確保記憶體能夠回復到預設狀態以進行後續的初始化。且由於本發明之實施例所提供的電腦系統及於電腦系統重置記憶體的方法是透過軟體的方式來重置記憶體,因此也能夠在不增加記憶體接腳數量的情況下,增加電腦系統在操作記憶體時的彈性。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100 電腦系統 110 處理器 120 記憶體控制器 122 初始程序記憶體 130 記憶體 140 唯讀記憶體 IPC0、IPC1、IPC2 可程式化初始程序 200 方法 S210至S260、S310至S390、 步驟 S410至S470
第1圖為本發明一實施例之電腦系統的示意圖。 第2圖為本發明一實施例之在第1圖之電腦系統中重置記憶體的方法。 第3圖為本發明另一實施例之在第1圖之電腦系統中重置記憶體的方法。 第4圖為本發明另一實施例之在第1圖之電腦系統中重置記憶體的方法。
200 方法 S210至S260 步驟

Claims (10)

  1. 一種於電腦系統中重置記憶體的方法,該電腦系統包含一記憶體控制器,該方法包含:啟動該電腦系統;該記憶體控制器執行一啟動程序(boot code)以初始化該記憶體;在該記憶體控制器執行該啟動程序後,該記憶體控制器根據該啟動程序更新一可程式化初始程序以產生一第一更新後之可程式化初始程序;暖重置(warm reset)該電腦系統;該記憶體控制器執行該第一更新後之可程式化初始程序以使該記憶體回復至一預設狀態;在該記憶體回復至該預設狀態後,該記憶體控制器再次執行該啟動程序以初始化該記憶體;在該記憶體控制器再次執行該啟動程序後,該記憶體控制器根據該啟動程序更新該第一更新後之可程式化初始程序以產生一第二更新後之可程式化初始程序;及在該記憶體初始化之後,該記憶體控制器使該記憶體執行一操作程序;其中該可程式化初始程序係儲存於該記憶體控制器中。
  2. 如請求項1所述之方法,另包含:在該記憶體控制器使該記憶體執行該操作程序時,該記憶體控制器根據該操作程序更新該第二更新後之可程式化初始程序以產生一第三更新後之可程式化初始程序。
  3. 如請求項2所述之方法,另包含: 在產生該第三更新後之可程式化初始程序後,再次暖重置該電腦系統;在再次暖重置該電腦系統後,該記憶體控制器執行該第三更新後之可程式化初始程序以使該記憶體回復至該預設狀態;在該記憶體控制器執行該第三更新後之可程式化初始程序以使該記憶體回復至該預設狀態後,該記憶體控制器再次執行該啟動程序以初始化該記憶體;及在該記憶體控制器再次執行該啟動程序後,該記憶體控制器根據該啟動程序更新該第三更新後之可程式化初始程序以產生一第四更新後之可程式化初始程序。
  4. 一種於電腦系統中重置記憶體的方法,該電腦系統包含一記憶體控制器,該方法包含:啟動該電腦系統;該記憶體控制器執行一啟動程序(boot code)以初始化該記憶體;在該記憶體控制器執行該啟動程序後,該記憶體控制器根據該啟動程序產生一可程式化初始程序;暖重置該電腦系統;該記憶體控制器執行該可程式化初始程序以使該記憶體回復至一預設狀態;在該記憶體回復至該預設狀態後,該記憶體控制器再次執行該啟動程序以初始化該記憶體;在該記憶體控制器再次執行該啟動程序後,該記憶體控制器根據該啟動程序更新該可程式化初始程序以產生一第一更新後之可程式化初始程序;及 在該記憶體初始化之後,該記憶體控制器使該記憶體執行一操作程序;其中該可程式化初始程序係儲存於該記憶體控制器中。
  5. 如請求項4所述之方法,另包含:在該記憶體控制器使該記憶體執行該操作程序時,該記憶體控制器根據該操作程序更新該第一更新後之可程式化初始程序以產生一第二更新後之可程式化初始程序。
  6. 如請求項5所述之方法,另包含:在產生該第二更新後之可程式化初始程序後,再次暖重置該電腦系統;在再次暖重置該電腦系統後,該記憶體控制器執行該第二更新後之可程式化初始程序以使該記憶體回復至該預設狀態;在該記憶體控制器執行該第二更新後之可程式化初始程序以使該記憶體回復至該預設狀態後,該記憶體控制器再次執行該啟動程序以初始化該記憶體;及在該記憶體控制器再次執行該啟動程序後,該記憶體控制器根據該啟動程序更新該第二更新後之可程式化初始程序以產生一第三更新後之可程式化初始程序。
  7. 一種於電腦系統中重置記憶體的方法,該電腦系統包含一記憶體控制器,該方法包含:啟動該電腦系統;該記憶體控制器執行一啟動程序(boot code)以初始化該記憶體;在該記憶體初始化之後,該記憶體控制器使該記憶體執行一操作程序; 在該記憶體控制器使該記憶體執行該操作程序時,該記憶體控制器根據該操作程序更新一可程式化初始程序以產生一第一更新後之可程式化初始程序;暖重置該電腦系統;該記憶體控制器執行該第一更新後之可程式化初始程序以使該記憶體回復至一預設狀態;在該記憶體回復至該預設狀態後,該記憶體控制器再次執行該啟動程序以初始化該記憶體;及在該記憶體控制器再次執行該啟動程序後,該記憶體控制器根據該啟動程序更新該第一更新後之可程式化初始程序以產生一第二更新後之可程式化初始程序;其中該可程式化初始程序係儲存於該記憶體控制器中。
  8. 如請求項1、4或7所述之方法,其中該可程式化初始程序包含複數個指令,每一指令包含:一計數欄位,用以儲存執行該指令後所需的間隔時間;一狀態欄位,用以儲存執行該指令後,是否還有下一指令之資訊、是否還有下一輸出資料之資訊、或是否即將結束之資訊;一通道數欄位,用以儲存執行該指令時,所使用之通道數量;及一指令資料欄位,用以儲存該指令的內容或資料。
  9. 如請求項1、4或7所述之方法,其中該啟動程序係儲存於該電腦系統之一唯讀記憶體(Read Only Memory,ROM)。
  10. 如請求項1、4或7所述之方法,其中該可程式化初始程序係儲存於該記憶體控制器之非揮發性記憶體中。
TW105116961A 2016-05-31 2016-05-31 於電腦系統中重置記憶體的方法 TWI615705B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW105116961A TWI615705B (zh) 2016-05-31 2016-05-31 於電腦系統中重置記憶體的方法
US15/608,958 US10503522B2 (en) 2016-05-31 2017-05-30 Method for resetting a memory in a computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105116961A TWI615705B (zh) 2016-05-31 2016-05-31 於電腦系統中重置記憶體的方法

Publications (2)

Publication Number Publication Date
TW201741809A TW201741809A (zh) 2017-12-01
TWI615705B true TWI615705B (zh) 2018-02-21

Family

ID=60417958

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105116961A TWI615705B (zh) 2016-05-31 2016-05-31 於電腦系統中重置記憶體的方法

Country Status (2)

Country Link
US (1) US10503522B2 (zh)
TW (1) TWI615705B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111443954A (zh) * 2020-03-31 2020-07-24 广东美的制冷设备有限公司 设备的初始化方法、装置、电子设备和计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066808A1 (en) * 2009-09-08 2011-03-17 Fusion-Io, Inc. Apparatus, System, and Method for Caching Data on a Solid-State Storage Device
TW201224918A (en) * 2010-07-22 2012-06-16 Intel Corp Providing platform independent memory logic
TWI459400B (zh) * 2012-04-17 2014-11-01 Phison Electronics Corp 記憶體儲存裝置、及其記憶體控制器與電源控制方法
CN104615383A (zh) * 2015-02-06 2015-05-13 安一恒通(北京)科技有限公司 一种基于虚拟磁盘的软件运行方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676640B2 (en) * 2000-01-06 2010-03-09 Super Talent Electronics, Inc. Flash memory controller controlling various flash memory cells
US7313682B2 (en) * 2004-04-29 2007-12-25 Alcatel Lucent Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
EP1607865B1 (en) * 2004-06-14 2013-08-14 Micron Technology, Inc. Data control unit capable of correcting boot errors, and corresponding method
US7853826B2 (en) * 2004-09-24 2010-12-14 Phoenix Technologies, Ltd. Operating system transfer and launch without performing post
US7509530B2 (en) * 2005-01-19 2009-03-24 Sonic Solutions Method and system for use in restoring an active partition
US20070050612A1 (en) * 2005-08-26 2007-03-01 Inventec Corporation Boot program update and restoration system and method thereof
US7533290B2 (en) * 2006-02-21 2009-05-12 Realtek Semiconductor Corp. Microcode updating error handling apparatus and method thereof
US7600062B2 (en) * 2006-02-24 2009-10-06 Realtek Semiconductor Corp. Method and apparatus for micro-code execution
KR100880379B1 (ko) * 2006-05-25 2009-01-23 삼성전자주식회사 외부로부터 제공받는 부트 코드로 부팅되는 정보기기시스템
TW200809611A (en) * 2006-08-11 2008-02-16 Quanta Comp Inc Embedded system and the boot code auto-copy method
JP5112787B2 (ja) * 2006-09-01 2013-01-09 株式会社リコー 情報処理装置、プログラム更新方法及びプログラム
TWI327290B (en) * 2006-10-03 2010-07-11 Magic Pixel Inc Electronic system with nand flash memory storing boot code and a highly reliable boot up method
JP5113700B2 (ja) * 2008-09-24 2013-01-09 株式会社日立ソリューションズ ファームウェア更新装置及び方法
CN102906717B (zh) * 2010-05-28 2016-05-04 惠普发展公司,有限责任合伙企业 对管理控制器的存储器子***进行初始化
KR101845512B1 (ko) * 2011-08-10 2018-04-04 삼성전자주식회사 메모리 시스템의 초기화 방법
US9182999B2 (en) * 2012-05-30 2015-11-10 Advanced Micro Devices, Inc. Reintialization of a processing system from volatile memory upon resuming from a low-power state
KR102225313B1 (ko) * 2014-08-20 2021-03-10 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
KR20170034176A (ko) * 2015-09-18 2017-03-28 에스케이하이닉스 주식회사 반도체 장치
US9846583B2 (en) * 2015-12-15 2017-12-19 Xilinx, Inc. Hardware power-on initialization of an SoC through a dedicated processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066808A1 (en) * 2009-09-08 2011-03-17 Fusion-Io, Inc. Apparatus, System, and Method for Caching Data on a Solid-State Storage Device
TW201224918A (en) * 2010-07-22 2012-06-16 Intel Corp Providing platform independent memory logic
TWI459400B (zh) * 2012-04-17 2014-11-01 Phison Electronics Corp 記憶體儲存裝置、及其記憶體控制器與電源控制方法
CN104615383A (zh) * 2015-02-06 2015-05-13 安一恒通(北京)科技有限公司 一种基于虚拟磁盘的软件运行方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
網路文獻作者名稱:"Daniel Jslin",著作名稱:核心的進入點,網址:"https://danielmaker.github.io/blog/linux/start_kernel.html" *
網路文獻作者名稱:"Daniel Jslin",著作名稱:核心的進入點,網址:"https://danielmaker.github.io/blog/linux/start_kernel.html"。 2016-01-12。

Also Published As

Publication number Publication date
US10503522B2 (en) 2019-12-10
TW201741809A (zh) 2017-12-01
US20170344390A1 (en) 2017-11-30

Similar Documents

Publication Publication Date Title
US7490177B2 (en) System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
CN105027080B (zh) 用于多重启动装置的启动顺序
US7613937B2 (en) Method and apparatus for utilizing a microcontroller to provide an automatic order and timing power and reset sequencer
US10162646B2 (en) System for programmably configuring a motherboard
JP2015056171A (ja) メモリシステムおよび情報処理装置
WO2012079400A1 (zh) 一种嵌入式***bootrom的升级方法和装置
WO2016180093A1 (zh) Flash芯片读写控制电路和方法、AMOLED应用电路
TW201830242A (zh) 半導體系統以及操作半導體裝置的方法
WO2017000567A1 (zh) 一种实现bootrom升级的方法及装置
TWI615705B (zh) 於電腦系統中重置記憶體的方法
RU2641465C1 (ru) Чип и способ управления запуском цифрового сигнального процессора tigersharc
CN107480000B (zh) 于电脑***中重置存储器的方法
JP6403919B1 (ja) 作画ソフトウェア、記憶媒体および作画装置
JP2013182577A (ja) 情報処理装置、画像形成装置およびプログラム
JP6192089B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
US8825912B2 (en) Dynamic state configuration restore
EP2846259B1 (en) Method and apparatus for controlling memory startup
US20200388346A1 (en) Testing read-only memory using memory built-in self-test controller
JP7006410B2 (ja) 制御装置、画像形成装置および回路装置
US10817213B2 (en) Data storage device and operating method for data storage device
JP2015191606A (ja) 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
CN112965754B (zh) 一种***启动的方法及嵌入式设备
JP2021018595A5 (zh)
CN116263673A (zh) 片外存储器的时序参数加载方法、装置、电子设备及介质
JP6457756B2 (ja) 情報処理装置、その制御方法、及びプログラム