包括引导程序副本的闪存和保护闪存系统的设备和方法 相关申请
本申请要求韩国专利申请号为NO.P2002-76037的优先权,该申请的申请日为2002年12月2日,该申请所公开的内容在此作为参考。
【技术领域】
本发明涉及闪存,该闪存包括引导程序、引导程序副本、以及一固件程序,本发明还涉及用于保护该闪存的设备和方法。
背景技术
AT附加分组接口(ATAPI)驱动器的闪存存储有固件程序,该固件程序是从主机发送来的。预先存储在闪存中的固件程序可以用新版本的固件程序进行更新。然而,闪存的引导程区可能由于一些外因而被损坏,该引导区中存储有引导程序。在这种情况下,不可能将损坏的引导区修复成它地初始状态,从而,所述的闪存变成不可用的。
【发明内容】
本发明实施例的各方面和/或优点将通过提供具有引导区和数据区的闪存来实现,其中引导区存储了引导程序,数据区存储了固件程序。
本发明实施例的其它方面和/或优点是通过提供一种闪存保护设备来实现,该保护设备能够修复由于一些外因造成的闪存的损坏,将闪存修复成它的初始状态。
本发明实施例的其它方面和/或优点是通过提供一种闪存保护方法来实现,该保护方法能够修复由于一些外因造成的闪存的损坏,将闪存修复成为它的初始状态。
本发明其它方面和/或优点将在随后的说明中,一部分一部分地进行说明,并且其中的一部分在本发明中是显而易见的,或是可以从本发明中通过实践学习的。
为了实现上述和/或其它方面和优点,本申请的实施例提供了一种闪存,包括:第一引导区,用于存储第一引导程序;第二引导区,用于存储作为第一引导程序的副本的第二引导程序;和数据区,用于存储可执行的固件程序,其中,根据是否在第一或第二引导区中检测到错误,执行第一和第二引导程序中的一个。
为了实现上述和/或其它方面和优点,本申请的另一个实施例提供一种AT附加分组接口(ATAPI)驱动器的存储器保护装置,该驱动器存储了从主机上下载的可执行的固件程序,该装置包括:存储单元,该存储单元具有第一引导区、第二引导区和数据区,第一引导区存储了第一引导程序,第二引导区存储了作为第一引导程序的副本的第二引导程序,数据区存储了固件程序;和控制器,当ATAPI驱动器初始化的时候,检查第一与/或第二引导区中的存在的错误,根据第一或第二引导区是否包括错误,执行第一引导程序和第二引导程序中的一个,并且控制固件程序的执行。
为了实现上述和/或其它方面和优点,本申请的另一个实施例提供了一个操作ATAPI驱动器的方法,该驱动器存储从主机上下载的可执行固件程序,所述的方法包括:当ATAPI驱动器初始化的时候,检测存储器的第一引导区中的错误,存储所述的存储器的第一引导程序,并且存储器的第二引导区存储作为第一引导程序的副本的第二引导程序;根据第一引导区或第二引导区是否包括错误,执行第一和第二引导程序中的一个;和访问存储器的数据区,其中存储了固件程序,并且执行一个引导程序之后执行所述的固件程序。
为了实现上述和/或其它方面和优点,本申请的另一个实施例提供了一种闪存,包括: 第一存储器,所述的第一存储器具有第一引导区和第二引导区,第一引导区存储第一引导程序,第二引导区存储作为第一引导程序的第二引导程序;和第二存储器,所述的第二存储器具有数据区,所述的数据区存储可执行的下载的固件程序,其中,根据在第一和第二引导程序中所检测到的错误来执行第一和第二引导程序中的一个。
为了实现上述和/或其它方面和优点,本申请的另一个实施例提供了一种存储器保护设备,包括ATAPI驱动器,用于存储从主机上下载的可执行的固件程序,所述的设备包括:第一存储装置,所述的第一存储装置具有第一引导区和第二引导区,第一引导区存储第一引导程序,第二引导区存储作为第一引导程序的副本的第二引导程序;和第二存储装置,所述的第二存储装置存储所述的固件程序;和控制器,当ATAPI驱动器初始化的时候,检测第一和第二引导区中的一个中的错误,根据引导区是第一引导区还是第二引导区执行第一引导程序或第二引导程序,并且控制存储在第二存储装置的数据区中的固件程序的执行。
为了实现上述和/或其它方面和优点,本申请的另一个实施例提供了一种ATAPI驱动器的操作方法,该驱动器存储从主机下载的可执行的固件程序,所述的方法包括:当ATAPI驱动器初始化的时候,检测第一存储装置的第一和第二引导区中的错误,第一引导区存储第一引导程序,第二区存储作为第一引导程序的副本的第二引导程序;根据第一或第二引导区是否没有错误执行第一和第二引导程序中的一个;和访问第二存储装置的数据区,存储所述的固件程序,并且在执行一个引导程序之后执行固件程序。
为了实现上述和/或其它方面和优点,本申请的另一个实施例提供了一种存储系统,包括:第一存储器,所述的存储器存储多个引导程序;第二存储器,所述的第二存储器存储该存储系统的固件程序,其可单独地从第一存储器寻址;和控制器,所述的控制器检测第一存储器的第一存储器部分中存在的错误,当包含第一存储器的存储驱动器初始化的时候,如果在第一存储器部分中没有检测到错误,则执行第一引导程序,所述的第一引导程序存储在第一存储器部分,如果在第一存储器部分中检测到错误,则执行第一存储器的另一个存储器部分中存储的另一个引导程序,并且在执行引导程序之后执行所述的固件程序。
【附图说明】
这些和/或本发明的其它特征和优点,通过参考相关的附图,将变得显而易见并且很容易从以下对实施例的说明中理解:
图1是根据本发明实施例的闪存保护设备的示意结构方框图;
图2A和2B是根据本发明其它实施例的闪存的结构;
图3是根据本发明实施例的闪存保护方法的示意流程图;和
图4是根据本发明另一个实施例的闪存保护方法的示意流程图。
【具体实施方式】
现在详细说明本发明的实施例,在附图中示出的实施例中,相同的附图标记自始至终表示相同的元件。将参考附图对本发明的实施例进行如下说明。
图1是根据本发明实施例的闪存保护设备的示意结构方框图。参考图1,闪存保护设备包括个人电脑(PC)100和AT附加分组接口(ATAPI)驱动器101。ATAPI驱动器101包括控制器101-1,随机存储器(RAM)101-2,和闪存101-3。
图2A和2B是根据本发明其它实施例的闪存的结构;
图3是根据本发明另一个实施例的闪存保护方法的示意流程图。参考图3,所述的方法包括,当ATAPI驱动器被初始化的时候,访问闪存(操作300),检测闪存的第一和第二引导区中的错误(操作301),确定在第一引导区中是否有错误(操作302),如果没有在第一引导区中检测到错误,检测并校正在第二引导区中的错误,同时执行在第一引导区中的引导程序(操作303),或者,确定是否在第二引导区中检测到错误(操作304),并且校正第一引导区中的错误,同时执行第二引导区中的引导程序(操作305)或终止闪存保护处理,并且如果闪存保护处理没有终止,执行存储在数据区中的固件程序并且操作ATAPI驱动器(操作306)。
图4是根据本发明另一个实施例的闪存保护方法的示意流程图。参考图4,所述的方法包括,当ATAPI驱动器被初始化的时候,访问第一闪存(操作400),检测第一存储器的第一和第二引导区中的错误(操作401),确定是否在第一引导区中检测到错误(操作402),如果没有在第一引导区中检测到错误,检测并校正第二引导区中的错误,同时执行在第一引导区中的引导程序(操作403),或者确定是否在第二引导区中检测到错误(操作404),并校正第一引导区中检测出的错误,同时执行第二引导区中的引导程序(操作405)或终止闪存保护方法,并且在检测到并校正第二引导区中的错误并执行第一引导区中的引导程序或者检测并校正第一引导区中的错误同时执行第二引导区中的引导程序之后,执行存储在第二存储器中的固件程序(操作406),随后如果闪存保护处理没有终止,操作ATAPI驱动器(操作407)。
下面,将参考附图1到4对本发明的实施例进行更详细的说明。
将根据两个不同种类的闪存对本发明的实施例进行说明。具体地讲,根据本发明实施例的闪存被分为具有引导区和数据区的闪存101-3和第二存储器101-32,闪存101-3具有第一存储器101-31和第二存储器101-32,第一存储器101-31有引导区,第二存储器101-32有数据区。
首先,本发明将描述闪存101-3以及用于保护它的装置和方法,该闪存101-3具有引导区和数据区。
PC 100和ATAPI驱动器101利用ATAPI协议彼此通信,从PC 100下载的固件程序通过RAM101-2被存储在闪存101-3中。闪存101-3包括其内存储有引导程序的第一和第二引导区及一数据区数据区中存储了从PC 100下载的固件程序。
图2A示出了根据本发明的一个实施例的闪存101-3,该闪存101-3具有引导区和不同地址的数据区。所述的引导区包括第一引导区和第二引导区。第一引导区存储了引导程序,第二引导区存储了存储在第一引导区中的引导程序的备份。如果在闪存101-3的第一或第二引导区中检测到错误,执行存储在另一个第一或者第二引导区之一上的不具有错误的引导程序
现在参考图1和图2A描述根据本发明的一个实施例的闪存保护装置。
当ATAPI驱动器101进行初始化的时候,控制器101-1访问第一和第二引导区,并且检测其中的错误,并且执行相应地引导程序,所述的引导程序是存储在无错驻留的第一或第二引导区中。
然后,控制器101-1执行存储在相应的无错误驻留的第一或第二引导区中的引导程序。
当没有在第一引导区中发现错误的时候,控制器101-1检测并校正第二引导区中的错误,同时执行第一引导区中的引导程序。对第二引导区中的错误的检测和校正,是利用存储在第一引导区中的没有错误的数据来执行的。也就是说,因为没有在第一引导区中检测到错误,第一引导区中的引导程序存储在第二引导区中,用来替换第二引导区引导程序。如果执行了引导程序,控制器101-1执行数据区中的固件程序,然后操作ATAPI驱动器101。
当在第一引导区中检测到错误的时候,控制器101-1检查第二引导区中存在的错误。如果没有在第二引导区中检测到错误,第一引导区中的错误被校正,同时执行存储在第二引导区中的引导程序的备份。对第一引导区中的错误的检测和校正,是利用存储在第二引导区中的没有错误的数据来执行的。也就是说,因为没有在第二引导区中检测到错误,存储在第二引导区中的引导程序被存储在第一引导区中,用来替换第一引导区引导程序。如果执行了引导程序,控制器101-1执行数据区中的固件程序,然后操作ATAPI驱动器101。
控制器101-1独立的包括开关装置(未示出),由此在ATAPI驱动器101初始化的过程中可切换至第二引导区,即直接跳转到第二引导区。
现在参考图2A和图3描述根据本发明的另一个实施例的闪存保护方法。
如果ATAPI 101被初始化,控制器101-1访问闪存101-3(操作300)。
然后,控制器101-1检测闪存101-3的第一和第二引导区中的错误(操作301)。
如果没有在第一引导区中发现错误(操作302),控制器101-1检测并校正第二引导区中的错误,同时执行第一引导区中的引导程序(操作303)。根据存储在第一引导区中的数据执行第二引导区中的错误的检测和校正。也就是说,因为没有在第一引导区中检测到错误,将一引导区中的引导程序存储在第二引导区中,用来替换第二引导区引导程序。
如果在第一引导区中检测到错误(操作302),控制器101-1确定在第二引导区中是否也有错误(操作304)。如果在第一引导区中检测到错误,ATAPI驱动器101的操作将停止。然后,控制器101-1开关到第二引导区,该第二引导区包括引导程序的备份,并且检测第二引导区中的错误。
如果没有在第二引导区中检测到错误,控制器101-1执行在第二引导区中的引导程序的备份,并且校正第一引导区中的错误(操作305)。根据存储在第二引导区中的没有错误的数据,检测并校正第一引导区中的错误。也就是说,因为没有在第二引导区中检测到错误,将第二引导区中的引导程序存储在第一引导区中,用来替换第二引导区引导程序。
执行了引导程序之后,控制器101-1执行闪存101-3的数据区中的固件程序,并且操作ATAPI驱动器101(操作306)。
接着,本发明将描述闪存101-3以及保护它的装置和方法,闪存101-3具有第一存储器101-31和第二存储器101-32,其中第一存储器101-31具有引导区,第二存储器101-32具有数据区。
PC 100使用ATAPI协议和ATAPI驱动器101通信,从PC 100下载的固件程序通过RAM101-2存储在闪存101-3中。闪存101-3分为第一存储器101-31和第二存储器101-32,第一存储器101-31具有第一和第二引导区,其中存储了引导程序,第二存储器101-32具有数据区,其中存储了从PC 100下载的固件程序。
图2B示出了根据本发明的另一个实施例的闪存101-3,该闪存101-3具有第一存储器101-31和第二存储器101-32,第一存储器101-31具有引导区,第二存储器101-32具有数据区。在此,第一存储器101-31的引导区包括第一和第二引导区。第一引导区存储了引导程序,第二引导区存储了存储在第一引导区中的引导程序的备份。如果在第一存储器101-31的第一或第二引导区中检测到错误,执行存储在另一个第一或者第二引导区之一上的且不具有错误的引导程序。
现在参考图1和图2B描述根据本发明的一个实施例的闪存保护装置。
当ATAPI驱动器101被初始化时,控制器101-1访问闪存101-3的第一存储器101-31的第一和第二引导区,并且检测第一和第二引导区中的错误,以便执行引导程序。
控制器101-1执行第一或第二引导区中任何一个正确的引导程序。
更具体地说,如果没有在第一引导区中检测到错误(操作302),控制器101-1检测并校正第二引导区中的错误,同时执行存储在第一引导区中的引导程序。根据存储在第一引导区中的没有错误的数据,检测并校正第二引导区中的错误。也就是,因为没有在第一引导区中检测到错误,第一引导区中的引导程序被存储在第二引导区中。当执行了引导程序的时候,控制器101-1执行也就是第二存储器101-32的数据区中的固件程序然后操作ATAPI驱动器101。
如果在第一引导区中检测到错误,控制器101-1检测第二引导区中存在的错误。如果没有在第二引导区中检测到错误,第一引导区中的错误被校正,同时执行存储在第二引导区中的引导程序的备份。根据存储在第二引导区中的没有错误的数据,检测并校正第一引导区中的错误。也就是,因为没有在第二引导区中检测到错误,第二引导区中的引导程序的备份被存储在第一引导区中。然后,控制器101-1执行也就是第二存储器101-32的数据区中的固件程序,即,然后操作ATAPI驱动器101。
控制器101-1独立的包括开关装置(未示出),由此能够在ATAPI驱动器101初始化的时候,从第一存储器101-31的第一引导区跳转到第二引导区。
现在参考图2B和图4描述所述的闪存保护方法。
当ATAPI 101被初始化的时候,控制器101-1访问闪存101-3的第一存储器101-31(操作400)。
然后,控制器101-1检测所述的闪存101-3的第一存储器101-31的第一和第二引导区中的错误(操作401)。
如果没有在第一引导区中发现错误(操作402),控制器101-1检测并校正第二引导区中的错误,同时执行第一引导区中的引导程序(操作403)。根据存储在第一引导区中的没有错误的数据,检测并校正第二引导区中的错误。也就是,因为没有在第一引导区中检测到错误,第一引导区中的引导程序的备份被存储在第二引导区中,以替换第二引导区引导程序。
如果在第一引导区中检测到错误(操作402),控制器101-1确定在第二引导区中是否也有错误(操作404)。当在第一引导区中检测到错误的时候,ATAPI驱动器101的操作将停止。然后,控制器101-1跳转到第二引导区,该第二引导区包括引导程序的备份,并且检测第二引导区中的错误。
如果没有在第二引导区中发现错误,控制器101-1执行在第二引导区中的引导程序的备份,并且校正第一引导区中的错误(操作405)。根据存储在第二引导区中的没有错误的数据,检测并校正第一引导区中的错误。也就是,因为没有在第二引导区中检测到错误,第二引导区中的引导程序的备份被存储在第一引导区中,以替换第一引导区引导程序。
执行了引导程序之后,控制器101-1执行闪存101-3的第二存储器101-32中存储的的固件程序(操作406)。
在执行固件程序之后,控制器101-1操作ATAPI驱动器101(操作407)。
如上所述,根据本发明的实施例,可以恢复由于一些外因造成的闪存的损坏,使它恢复到它的初始状态,从而降低了更换被损坏了的闪存的开销。
尽管已经示出并且描述了本发明的一些实施例,对本领域的普通技术人员来讲,应当理解在不脱离本发明的原则和精神的情况下,可以对实施例进行各种变化,这些都被定义在权利要求书中。