本发明有关于一种于电脑系统中重置存储器的方法,特别是一种可确保存储器在重置过程中被正确地初始化的重置存储器方法。
背景技术:
:一般来说,电脑系统在开机时,会对其存储器进行初始化,在存储器完成初始化之后,电脑系统即可通过存储器控制器来控制存储器,并使存储器在系统所需的模式下进行读写的操作。当使用者重置电脑系统时,存储器也必须跟着重置并回到原始预设的状态,以使电脑系统能够再次对存储器进行操作。在现有技术中,存储器的重置流程可能系是通过硬件的方式实做,例如存储器元件可能包含重置接脚,而存储器控制器只需要通过存储器的重置接脚即可触发存储器进入重置流程。然而在此情况下,存储器元件即需要增加额外的接脚,不仅增加存储器元件本身的面积大小,也可能增加在电路板上绕线的复杂度。为了避免增加存储器元件的面积,在现有技术中,存储器的重置流程也可能以软件的方式完成,例如可通过存储器控制器向存储器输出固定的重置指令来使存储器重置。然而电脑系统重置的时机可能各有不同,而在电脑系统重置之前,存储器所在的状态也可能不同,例如存储器可能根据系统的需求,而会通过两个通道或四个通道来接收读写操作的指令,此时若存储器控制器仍根据固定的重置指令来控制存储器,则可能因为使用的通道数不同,而无法正常地重置存储器。若存储器无法被正常地重置,则电脑系统也将无法正常地将存储器重新初始化,结果将导致电脑系统在重置之后,无法再对存储器进行读写的操作。因此如何在不增加存储器接脚数量的情况下,能够确保存储器能更随着电脑系统被正确地重置以进行后续的初始化,即成为有待解决的问题。技术实现要素:本发明的一实施例提供一种于电脑系统中重置存储器的方法。电脑系统包含存储器控制器,于电脑系统中重置存储器的方法包含启动电脑系统,存储器控制器执行启动程序(bootcode)以初始化存储器,在存储器控制器执行启动程序后,存储器控制器根据启动程序更新可程序化初始程序以产生更新后的可程序化初始程序,重置电脑系统,存储器控制器执行更新后的可程序化初始程序以使存储器恢复至预设状态,在存储器恢复至预设状态后,存储器控制器再次执行启动程序以初始化存储器,及在存储器初始化之后,存储器控制器使存储器执行操作程序。可程序化初始程序是储存于存储器控制器中。本发明的另一实施例提供一种于电脑系统中重置存储器的方法。电脑系统包含存储器控制器,于电脑系统中重置存储器的方法包含启动电脑系统,存储器控制器执行启动程序以初始化存储器,在存储器控制器执行启动程序后,存储器控制器根据启动程序产生可程序化初始程序,重置电脑系统,存储器控制器执行可程序化初始程序以使存储器恢复至预设状态,在存储器恢复至预设状态后,存储器控制器再次执行启动程序以初始化存储器,及在存储器初始化之后,存储器控制器使存储器执行操作程序。可程序化初始程序是储存于存储器控制器中。本发明的另一实施例提供一种于电脑系统中重置存储器的方法。电脑系统包含存储器控制器,于电脑系统中重置存储器的方法包含启动电脑系统,存储器控制器执行启动程序以初始化存储器,在存储器初始化之后,存储器控制器使存储器执行操作程序,在存储器控制器使存储器执行操作程序时,存储器控制器根据其操作程序更新可程序化初始程序以产生更新后的可程序化初始程序,重置电脑系统,存储器控制器执行更新后的可程序化初始程序以使存储器恢复至预设状态,及在存储器恢复至预设状态后,存储器控制器再次执行启动程序以初始化存储器。可程序化初始程序是储存于存储器控制器中。附图说明图1为本发明一实施例的电脑系统的示意图。图2为本发明一实施例的在图1的电脑系统中重置存储器的方法。图3为本发明另一实施例的在图1的电脑系统中重置存储器的方法。图4为本发明另一实施例的在图1的电脑系统中重置存储器的方法。附图标记说明:100电脑系统110处理器120存储器控制器122初始程序存储器130存储器140只读存储器ipc0、ipc1、ipc2可程序化初始程序200方法s210至s260、s310至s390、s410至s470步骤具体实施方式图1为本发明一实施例的电脑系统100的示意图。电脑系统100包含处理器110、存储器控制器120及存储器130。处理器110可通过存储器控制器120对存储器130进行读写的操作。当电脑系统100启动时,存储器130中的元件也会随之通电,存储器130通电后会进入存储器130的预设状态,而存储器控制器120在等待电源稳定之后,即开始对存储器进行初始化。存储器控制器120可执行启动程序(bootcode)来初始化存储器130,并将存储器130由预设状态设定为电脑系统100所需的初始化状态。在本发明的部分实施例中,存储器130可为任何种类的易失性存储器,亦或为任何种类的非易失性存储器存储器(non-volatilememory,nvm),例如为nand快闪存储器(flashmemory)及nor快闪存储器。举例来说,若存储器130为支持四通道的快闪存储器(flashmemory),则在预设状态下,存储器130可能以单通道来收发指令数据,因此在执行启动程序的过程中,存储器控制器120会通过单通道的通信方式,将存储器130的操作模式由原先以单通道收发指令数据的模式设定为以双通道或四通道来收发指令数据。如此一来,电脑系统100即可根据系统的需要,通过存储器控制器120来对存储器130进行读写的操作。在本发明的部分实施例中,启动程序(bootcode)可储存于电脑系统100的只读存储器140(readonlymemory,rom)中。在本发明的部分实施例中,电脑系统100可能会在不断电的情况下重置,即暖重置(warmreset),此时如果存储器控制器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亦可能根据系统的需要而包含不同的栏位及/或不同的指令值。指令计数栏位状态栏位通道数栏位指令数据栏位i1f1166i2f1199i3f1106i4f2101i5f0100在表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是以断电方式重置时,即硬重置(hardreset)时,存储器控制器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能够被正确地初始化。综上所述,本发明的实施例所提供的电脑系统及于电脑系统重置存储器的方法可利用存储器控制器持续地更新可程序化初始程序,因此不论电脑系统在何时被重置,都能够确保存储器能够恢复到预设状态以进行后续的初始化。且由于本发明的实施例所提供的电脑系统及于电脑系统重置存储器的方法是通过软件的方式来重置存储器,因此也能够在不增加存储器接脚数量的情况下,增加电脑系统在操作存储器时的弹性。以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。当前第1页12