CN100336020C - 信息处理设备 - Google Patents
信息处理设备 Download PDFInfo
- Publication number
- CN100336020C CN100336020C CNB200410103669XA CN200410103669A CN100336020C CN 100336020 C CN100336020 C CN 100336020C CN B200410103669X A CNB200410103669X A CN B200410103669XA CN 200410103669 A CN200410103669 A CN 200410103669A CN 100336020 C CN100336020 C CN 100336020C
- Authority
- CN
- China
- Prior art keywords
- memory storage
- cpu
- boot
- check code
- forwarder
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
在电力激活之后,传送器14检查具有所分配的第一错误校验码114并且存储在第一存储装置11中的引导程序111,使所述引导程序111经历检错/纠错过程,并将所述引导程序111传送到第二存储装置12。如果通过执行第二存储装置12上的引导程序111而正确地完成传送,CPU 10就为具有所分配的第二错误校验码115的主程序112执行检错/纠错过程,并将主程序112传送到第三存储装置13,在此之后CPU的控制分支到第三存储装置13上的主程序112。结果,能够在不采用NOR型快闪存储器的情况下执行系统引导。
Description
技术领域
本发明涉及一种信息处理设备,该信息处理设备通过利用存储装置中所存储的程序来执行系统引导,所述存储装置可以包含坏块并且在执行读取例如NAND型快闪存储器之后需要检错/纠错过程。
背景技术
快闪存储器通常分为NOR型和NAND型。同NAND型快闪存储器相比,NOR型快闪存储器的优点在于它能够按逐字节接收随机访问,但是也具有缺点,因为它昂贵而且只允许低度集成。从另一方面来说,NAND型快闪存储器是假定其包含确定个数或少量坏块的存储器。因此,必须在按照管理保持坏块的位置的同时执行对NAND型快闪存储器的读或写。尽管NAND型快闪存储器是不利的,因为它只能接收顺序访问并且在执行读取之后需要检错/纠错过程,但是同NOR型快闪存储器相比,NAND型快闪存储器具有优点,因为它廉价而且允许高度集成。
为了执行包含坏块并且在读取之后需要检错/纠错过程的存储装置(下文中称为″低可靠性存储器″;例如NAND型快闪存储器)中所存储的程序,通常已经实施了下列技术。常规技术不但采用低可靠性的存储器,而且还采用不包含任何坏块并且不需要检错/纠错过程的存储装置(下文中称为″高可靠性存储器″;例如,掩模ROM或NOR型快闪存储器)。低可靠性存储器存储向其分配错误校验码的主程序,而高可靠性存储器存储执行包含主程序的传送的功能的初始程序。在脱离复位状态之后,系统CPU依照高可靠性存储器中所存储的初始程序将主程序从低可靠性存储器传送到RAM。在完成主程序的传送之后,CPU的控制分支到RAM上的主程序,随后执行RAM上的主程序。
由于没有快速执行初始程序的特定需要,因而还是把初始程序存储在低速存储装置中为好。相应地,人们还已知这样一种技术,该技术不是采用高可靠性存储器来存储初始程序,而是利用NAND型快闪存储器中存储的初始程序来执行系统引导。例如,在日本已公开专利公报2002-55822中描述了这种技术。根据在这篇公报中描述的技术,在电力激活的时候由传送电路将存储在NAND型快闪存储器中的初始程序传送到静态RAM等等中。
然而,在这篇公报中描述的技术中,当将初始程序(包含引导程序、驱动程序等等)传送给静态RAM等等时不执行检错/纠错过程。因此,如果已读取的初始程序包含错误的话,则就无法正确地执行系统引导。由于静态RAM比其它类型的存储装置更加昂贵,因而初始程序大小上的增加会导致整个系统的成本增加。
发明内容
因此,本发明的一个目的是,提供一种能够在无需高可靠性存储器来存储初始程序的情况下稳定地执行系统引导的信息处理设备。
本发明具有下列特征以实现上述目的。
本发明的第一方面涉及一种用于通过使用在非易失性存储装置中存储的程序来执行系统引导的信息处理设备,包括:CPU;非易失性第一存储装置,用于将具有所分配的第一校验码的引导程序和具有所分配的第二校验码的主程序存为将由CPU执行的程序,第二校验码是通过不同于用来计算第一校验码的方法来计算的;传送器,用于读取第一存储装置中存储的程序,其中在系统引导期间,传送器从第一存储装置中读取引导程序,使引导程序经历基于第一校验码的第一检错/纠错处理过程,并将所处理的引导程序传送到第二存储装置;易失性第二存储装置,用于存储从第一存储装置中读取的程序;和CPU控制器,用于禁止CPU的操作直到完成引导程序的传送。根据这个结构,能够通过使用具有所分配的校验码并且存储在低可靠性存储器(比如使用NAND型快闪存储器而不采用高可靠性存储器(诸如像ROM)来存储初始程序)中的程序来稳定地执行系统引导。
在这种情况下,当不再被CPU控制器禁止时,依照第二存储装置中所存储的引导程序,CPU将第一存储装置中所存储的主程序传送到第二存储装置,并且使主程序经过基于第二校验码的第二检错/纠错过程。根据这个结构,就可以在检错/纠错过程之后依照引导程序来为主程序执行复杂的基于软件的检错/纠错过程。
所述传送器可以包括:传送控制单元,用于控制引导程序的传送;错误处理单元,用于根据正在传送的引导程序的第一校验码来执行第一检错/纠错过程;和通知单元,用于如果当完成引导程序的传送时错误处理单元尚未检查出任何不可纠正错误则通知到CPU控制器的传送结束。根据这个结构,能够通过使用具有所分配的校验码并且存储在低可靠性存储器中的程序来稳定地执行系统引导,而不必采用高可靠性存储器来存储初始程序。
所述CPU控制器可以禁止CPU的时钟信号的提供直到完成引导程序的传送为止。作为选择,所述CPU控制器连续地提供CPU的复位信号直到完成引导程序的传送为止。根据这个结构,能够仅仅通过使用少量的硬件来禁止CPU的操作。
所述CPU控制器可以阻止CPU访问第二存储装置直到完成引导程序的传送为止。更为优选地,所述CPU控制器按这样的方式来裁定对连接于第二存储装置的总线的访问权,所述方式就是:给传送器赋予优先权直到完成引导程序的传送为止并且在完成引导程序的传送之后给CPU赋予优先权。根据这个结构,能够仅仅通过在访问第二存储装置的控制电路上引入微小变化来禁止CPU的操作。
如果引导程序的传送失败则所述CPU控制器可以保持禁止CPU的操作。根据这个结构,能够防止当系统引导已经失败时发生系统失控(runway)。
第一存储装置包括多块,将这些块中的每一块都视作为正常块或者坏块,并且将引导程序、主程序、和表示第一存储装置中的主程序的已存位置的已存位置信息都存储在第一存储装置的正常块中。根这个结构,提供了一种能通过使用包含正常块和坏块的低可靠性存储器(例如NAND型快闪存储器)中所存储的程序来执行系统引导的信息处理设备。
具体而言,所述引导程序包括已存位置信息和用于根据第二校验码来执行第二检错/纠错过程的错误处理程序,并且当不再被CPU控制器禁止时,CPU在基于第一校验码的第一检错/纠错过程之后依照已存位置信息、经由传送器将第一存储装置中所存储的主程序传送到第二存储装置,并且在基于第一校验码的第一检错/纠错过程之后,依照错误处理程序来为第二存储装置中所存储的主程序执行基于第二检验码的第二检错/纠错过程。根据这个结构,就可以从正确的已存位置上读取主程序,并且为已经读取出的主程序执行复杂的基于软件的检错/纠错过程。
作为选择,所述第一存储装置存储具有所分配的第一校验码的已存位置信息,所述传送器也根据第一校验码来为从第一存储装置中读取的已存位置信息执行第一检错/纠错过程。所述引导程序包括在其上于第一存储装置中存储已存位置信息的地址以及用于根据第二校验码来执行第二检错/纠错过程的错误处理程序,并且当不再被CPU控制器禁止时,CPU在基于第一校验码的第一检错/纠错过程之后通过利用地址、经由传送器将第一存储装置中所存储的已存位置信息传送到第二存储装置,在基于第一校验码的第一检错/纠错过程之后依照已存位置信息、经由传送器将第一存储装置中所存储的主程序传送到第二存储装置,并且在基于第一校验码的第一检错/纠错过程之后依照错误处理程序来为第二存储装置中所存储的主程序执行基于第二检验码的第二检错/纠错过程。根据这个结构,能够在尺寸上减小引导程序,并且可以从正确的已存位置上读取主程序,并且为已经读取出的主程序执行复杂的基于软件的检错/纠错过程。
在第一存储装置的正常块中可以以预定大小的数据单元的形式来存储引导程序,并且所述传送器从第一存储装置中读取引导程序的每个预定大小的数据单元,使所述数据单元经过基于第一校验码的第一检错/纠错过程,并且将所处理的数据单元传送到第二存储装置。根据这个结构,能够为以预定大小划分的每个数据单元分配提供所希望的检错/纠错能力的校验码以作为第一校验码。
具体而言,如果通过根据第一校验码为从第一存储装置中读取的预定大小的数据单元执行检错/纠错过程而检查出不可纠正错误,那么传送器就从紧跟在包含该数据单元之后的正常块中读取将要处理的下一个数据单元。根据这个结构,能够正确地检查出包含坏块的第一存储装置中所存储的引导程序。
作为选择,以预定大小的数据单元的形式将引导程序随带分配给每个数据单元的对照码一起存储在第一存储装置的正常块中,以及所述传送器保留对照码的参考数据,并且如果将等同于参考数据的对照码分配给从第一存储装置中读取的预定大小的数据单元,则将所读取出的数据单元传送到第二存储装置。根据这个结构,能够解决把坏块误会为正常块的问题,并且能够快速地检查出包含坏块的第一存储装置中所存储的引导程序。
更为优选地,所述传送器被设置成允许根据已知数据来改变参考数据。根据这个结构,甚至是在不同的CPU更改版或系统配置等等的情况下,也能够通过依照CPU更改版、系统配置等等从第一存储装置内部选择引导程序来正确地执行系统引导。
所述传送器可以包括:传送控制单元,用于控制引导程序的传送;第一错误处理单元,用于根据第一校验码来为正在传送的引导程序执行第一检错/纠错过程;第二错误处理单元,用于根据第二校验码来为从第一存储装置中读取的主程序执行第二检错/纠错过程的至少一部分;和通知单元,用于如果当完成引导程序的传送时第一错误处理单元尚未检查出任何不可纠正错误则通知到CPU控制器的传送结束。根据这个结构,能够快速地执行主程序的检错/纠错过程,并且能够快速地执行系统引导。
具特而言,第二错误处理单元相对于从第一存储装置中读取的主程序、根据第二校验码来计算校验子,并且依照第二存储装置中所存储的引导程序,CPU通过使用由第二错误处理单元计算出的校验子、根据第二校验码来为从第一存储装置中读取的主程序执行第二检错/纠错过程的其余部分。根据这个结构,仅仅通过使用少量的硬件,就能够提高主程序的检错/纠错过程的速度。
作为选择,当通知单元已经通知传送结束时,传送器从第一错误处理单元到第二错误处理单元地切换处理单元以便处理从第一存储装置中读取的程序。根据这个结构,当完成引导程序的传送时,能够自动地变换传送器中的检错/纠错过程的内容。
作为选择,所述传送器受CPU的控制、从第一错误处理单元到第二错误处理单元地切换处理单元以便处理从第一存储装置中读取的程序。根据这个结构,能够通过CPU的软件处理来自动地变换传送器中的检错/纠错过程的内容。
作为选择,如果第二错误处理单元已经检查出不可纠正错误,则传送器就通知CPU传送失败,并且当接收到传送失败的通知时,所述CPU执行异常处理过程。根据这个结构,如果系统引导失败,则能够使系统产生异常结束,并且能够向用户通知不可恢复错误的发生。
除传送引导程序之外,受CPU的控制,传送器可以以预定大小的数据单元的形式从第一存储装置中读取主程序,并将已读取出的每个数据单元传送到第二存储装置。根据这个结构,能够在尺寸上减小引导程序,能够降低CPU的载荷,并且能够快速地执行系统引导。
本发明的第二方面涉及一种用于通过使用非易失性存储装置中所存储的程序来执行系统引导的信息处理设备,包括:CPU;非易失性第一存储装置,用于将具有所分配的第一校验码的引导程序和具有所分配的第二校验码的主程序存为将由CPU执行的程序,所述第二校验码是通过不同于用来计算第一校验码的方法来计算的;传送器,用于读取第一存储装置中所存储的程序;和易失性第二存储装置,用于存储从第一存储装置中读取的程序,其中所述传送器从第一存储装置中读取引导程序,使该引导程序经过基于第一校验码的第一检错/纠错过程并内部地存储所处理的引导程序,并且响应于来自CPU的读请求输出已存储的引导程序,并且在系统引导期间,CPU依照传送器中所存储的引导程序来进行操作。根据这个结构,能够通过使用具有所分配的校验码并且存储在低可靠性存储器(比如,NAND型快闪存储器)中的程序来稳定地执行系统引导,而不必采用高可靠性存储器(比如,ROM)来存储初始程序。此外,不必确保用于存储引导程序的存储区。
在这种情况下,所述引导程序可以包括错误处理程序,用于根据第二校验码来执行检错/纠错过程,并且在系统引导期间,依照传送器中所存储的引导程序,CPU根据第二校验码来为从第一存储装置中读取的主程序执行检错/纠错过程。根据这个结构,就可以在第一检错/纠错过程之后依照引导程序来为主程序执行复杂的基于软件的第二检错/纠错过程。
本发明的第三发明涉及一种用于根据多个数据来生成将要写入到包含坏块的存储装置中的ROM图像的ROM图像生成设备,包括:坏块信息保留单元,用于保留存储装置中所包含的坏块的位置信息,ROM图像将被写入到所述坏块中;代码信息管理单元,用于管理与输入数据的类型相关联的校验码的类型;图像重新格式化单元,用于将输入数据转换为适合于具有所分配的与输入数据类型相关联的校验码的格式;和写入图像生成单元,用于通过参照坏块信息保留单元中所存储的位置信息来把已经由图像重新格式化单元重新格式化后的多个数据合并成单个数据,同时避开坏块,并且将与输入数据类型相关联的校验码分配给合并后的数据。根据这个结构,就可以生成将要写入存储器的ROM图像,所述存储器将被用作为根据本发明的第一或第二方面的信息处理设备中所包含的第一存储装置。依照数据类型分配校验码,并且能够生成ROM图像以便其数据中任何一个都不会被存储在坏块中。
在这种情况下,所述ROM图像生成设备可以进一步包括用于保留对照码的对照码保留单元,其中所述图像重新格式化单元将对照码保留单元中保留的对照码分配给输入数据。根据这个结构,能够生成具有所分配的对照码的ROM图像。
所述ROM图像生成设备可以进一步包括存储控制单元,用于执行在存储装置中搜索坏块的位置以获取位置信息的过程和将由写入图像生成单元生成的数据写入到存储装置中的过程。根据这个结构,能够获得一种能把ROM图像写入到实际存储器的ROM图象生成设备。
因此,依照本发明的信息处理设备,能够通过使用具有所分配的校验码并且存储在低可靠性存储器(比如,NAND型快闪存储器)中的程序来稳定地执行系统引导,而不必采用高可靠性存储器(比如,ROM)来存储初始程序。此外,依照本发明的ROM图象生成设备,就可以生成将要写入存储器的ROM图像,所述存储器将被用作为信息处理设备中所包含的第一存储装置。
当结合附图阅读本发明的下列详细说明时,本发明的这些及其它目的、特征、方面和优点将变得更加明显。
附图说明
图1是举例说明根据本发明第一实施例的信息处理设备的结构的图;
图2是举例说明NAND型快闪存储器中的块与页之间的关系的图;
图3是举例说明图1中所示的信息处理设备中的引导程序和第一错误校验码的格式的图;
图4是举例说明图1中所示的信息处理设备中的坏块信息表和第三错误校验码的格式的图;
图5是举例说明图1中所示的信息处理设备中的CPU控制器的示例性结构的图;
图6是举例说明图1中所示的信息处理设备中的CPU控制器的示例性结构的图;
图7是举例说明图1中所示的信息处理设备中的传送器的操作的流程图;
图8A和8B是举例说明图1中所示的信息处理设备中的引导程序的示例性结构的图;
图9是举例说明图1中所示的信息处理设备的CPU的自引导过程的流程图;
图10是举例说明根据本发明第一实施例的信息处理设备的变形结构的图;
图11是举例说明根据本发明第二实施例的信息处理设备的结构的图;
图12是举例说明图11中所示的信息处理设备中的引导程序和第一错误校验码的格式的图;
图13是举例说明图11中所示的信息处理设备中的传送器的操作的流程图;
图14是举例说明根据本发明第二实施例的信息处理设备的变形的图;
图15是举例说明根据本发明第三实施例的信息处理设备的结构的图;
图16是举例说明根据本发明第三实施例的信息处理设备的变形的图;
图17是举例说明根据本发明第四实施例的信息处理设备的结构的图;
图18是举例说明图17中所示的信息处理设备的CPU的自引导过程的流程图;
图19是举例说明根据本发明第五实施例的信息处理设备的结构的图;
图20是举例说明根据本发明第六实施例的ROM图像生成设备的结构的图;和
图21A和21B是举例说明来自图20中所示的ROM图像生成设备中的重新格式化区域的输出的图。
具体实施方式
在下文中,将参照这些图来描述本发明的各种实施例。在每个实施例中,等同于前述实施例中的那些组成部分的任何组成部分都将用相似的数字来表示,并且将省略对它们的描述。
(第一实施例)
图1是举例说明根据本发明第一实施例的信息处理设备的结构的图。图1中所示的信息处理设备1包括:CPU 10、第一至第三存储装置11至13、传送器14和CPU控制器15。
CPU 10是信息处理设备1的主CPU。在电力激活以前存在的初始状态下,把将由CPU 10执行的任何程序都存储在第一存储装置11中。不限定在初始状态下的第二和第三存储装置12和13的内容。第一至第三存储装置11至13经由数据总线16a至16c互连。一旦激活电力,就把第一存储装置11中所存储的程序传送给第二和第三存储装置12和13。更具体而言,在初始状态下,第一存储装置11存储操纵初始设定操作的引导程序(引导程序:在下文中,缩写为″BSP″)111以及主程序112。BSP 111将被传送给第二存储装置12,而主程序112将被传送给第三存储装置13。直到BSP 111的传送结束,CPU控制器15才禁止CPU 10取指令。
第一存储装置11由可以包含坏块(即,未正确执行存储功能的块)并且在读取时需要检错/纠错过程的非易失性存储装置组成。在下文中,假定第一存储装置11是NAND型快闪存储器。图2是举例说明NAND型快闪存储器中的块与页之间的关系的图。如图2所示,将NAND型快闪存储器的存储区分成多块,将每一块再分成多页。在一类NAND型快闪存储器中,一块由32页构成,其中每一页例如是由512字节的数据和16字节备用区、总计528字节构成的。然而,取决于NAND型快闪存储器的类型,块大小和页大小除采用32页和528字节之外可以采用任意数值。由于假定第一存储装置11包含坏块,因而必须执行对第一存储装置11的任意读或写以便避开坏块。
如图1所示,在除坏块110之外的块中,第一存储装置11存储BSP 111、主程序112、坏块信息表113和第一至第三错误校验码114至116。BSP 111至少包含为执行系统引导所必需的系统配置和用于将主程序112从第一存储装置11传送到第三存储装置13的主程序传送例程(参见图8A和8B,稍后做描述)。主程序112是在系统引导结束之后将由CPU 10执行的程序。在任何信息处理设备中,一般而言,主程序112的尺寸大于BSP 111的大小。坏块信息表113是表示坏块的位置的表(参见图4,稍后做描述)。第一至第三错误校验码114至116分别是分配给BSP 111的错误校验码、主程序112和坏块信息表113。正如下面所述的那样,利用相同的方法来计算第一和第三错误校验码114和116,而利用与之不同的方法来计算第二错误校验码115。
图3是举例说明BSP 111和第一错误校验码114的格式的图。在图3中,D[i]表示信息位,P[i]表示错误校验码位(其中i是非负整数;在下文中,相同的假设对于任何″i″的实例而言都适用)。如图3所示,把BSP 111存储在每个地址的低4位中,而把第一错误校验码114存储在每个地址的高4位中。更具体而言,从BSP 111开始处起将其分成4位的组,并且按照地址的升序将这些组中的每一组都存储在每个地址的低4位中。对于由此而分出的每个4位的组,将(利用如下所述的计算方法)计算4位的第一错误校验码114,并且按照地址的升序将其存储在每个地址的高4位中。因此,以4位为单位(总共8位)来处理BSP 111和第一错误校验码114。
图4是举例说明坏块信息表113和第三错误校验码116的格式的图。在图4中,每个地址的低4位(数值″0″或″1″)表示信息位,而P[i]表示错误校验码位。把坏块信息表113存储在每个地址的低4位中,而把第三错误校验码116存储在每个地址的高4位中。更具体而言,坏块信息表113通过每块中占一位的方式来存储表示第一存储装置11中的每一块是好块(正常块)还是坏块的信息。将坏块信息表113从其开始处起分成4位的组,并且按地址的升序将这些组中的每一组都存储在每个地址的低4位中。用于由此而划分出的每个4位的组,将利用与用于计算BSP 111相同的计算方法来计算4位的第三错误校验码116,并且按地址的升序将其存储在每个地址的高4位中。
例如,如果NAND型快闪存储器具有256兆比特的存储容量并且把16K字节的块用作为第一存储装置11,则总块数为2048K。在这种情况下,在第一存储装置11的正常块之一中,确保了相当于2K位的两倍的区域(即512字节)(其包含用于存储第三错误校验码116的区域)。在确保的512字节的存储区中,存储坏块信息表113和第三错误校验码116。假设将要把对应每个正常块的数值″0″和对应每个坏块的数值″1″存储在坏块信息表113中,则图4中所示的坏块信息表113将表明第一存储装置11中的第五和第十二块都是坏块。
对于NAND型快闪存储器而言,推荐依据它的类型来使用特定的编码方法。在前述的包含512字节的数据页和16字节的备用区的NAND型快闪存储器的情况下,例如推荐实施允许将至少为512字节的数据执行的1位纠错和2位检错的编码。相应地,将主程序112从其开始处起分成512字节的组,并且为由此而划分出的每个512字节的组分配利用为NAND型快闪存储器推荐的编码方法计算出的第二错误检查代码115(大约24比特)。
通过在执行对第一存储装置11的写入之前先利用预定方法访问第一存储装置11,来获得关于第一存储装置11中的块是好块(正常块)还是坏块的知识。当执行对第一存储装置11的写入时,必须确保不对坏块执行写入,而是仅对正常块执行写入。在下列说明中,假定BSP 111将被存储在一个或多个连续块中,这些连续块的块号是从第一页中冲洗出的第一存储装置11中所包含的正常块当中的最小号。还可以假定主程序112将被存储在从第一页刷新的第一存储装置11中所包含的正常块当中的其中存有BSP 111的块的后续的一个或多个连续块中。
第二存储装置12是能够在无需任何特定的初始设定的情况下被CPU10和传送器11两者访问的易失性存储器。由于将要把BSP 111传送给如上所述的第二存储装置12,因而把容量大于BSP 111的尺寸的存储器用作为第二存储装置12。由于一旦CPU 10结束第二存储装置12上的BSP的执行时第二存储装置12将变得不必要,因此信息处理设备1可以运用已作为第二存储装置12而位于系统LSI内部的静态RAM等等,而不是配备充当第二存储装置12的专用存储器。尽管在下列说明中将顺便把第二和第三存储装置12和13视作为独立的存储装置,但是将会认识到的是:第二和第三存储装置12和13也可以是保证位于单个存储装置之内的离散存储区。在这种情况下,在完成系统引导之后,例如可以将确保作为第二存储装置12的存储区用作为工作区。
由于将要把主程序112传送给如上所述的第三存储装置13,将比第二存储装置12的容量更大的存储器用作为第三存储装置13。因此,第三存储装置13最好是允许随机访问的易失存储装置,并且其每比特的价格是很低的,例如SDRAM。
如图1所示,传送器14包括传送控制单元141、错误处理单元142和通知单元143。传送控制单元141具有将第一存储装置11中所存储的BSP111自动传送到第二存储装置12的功能以及受CPU 10的控制读取第一存储装置11中所存储的主程序112的功能。当把BSP 111从第一存储装置11传送到第二存储装置12时,错误处理单元142根据第一错误校验码114来为正在传送的BSP 111执行检错/纠错过程。如果正确地完成BSP 111的传送,则通知单元143就输出传送表明向CPU控制器15进行的传送的正确结束的结束通知信号144。
根据从通知单元143那里输出的传送结束通知信号144,CPU控制器15输出CPU激活控制信号151。图5和6是举例说明CPU控制器15的示例性结构的图。在图5中所示的结构当中,CPU控制器15屏蔽CPU 10的时钟信号直到传送结束通知信号144变为有效的为止,由此来中止CPU 10。一旦传送结束通知信号144变为有效的,CPU控制器15就不再屏蔽时钟信号,并且CPU 10开始工作。在图6中所示的结构当中,CPU控制器15允许CPU 10的复位信号通过直到传送结束通知信号144变为有效的为止,由此来中止CPU 10。一旦传送结束通知信号144变为有效的,CPU控制器15就屏蔽复位信号,以使CPU 10开始工作。根据CPU控制器15的这类动作,禁止CPU 10取指令直到传送结束通知信号144变为有效的为止。
在下文中,将描述传送器14的细节。一旦激活电力,传送器14就在第一存储装置11中获取在其上存有BSP 111的位置,从这个已存储的位置开始按页顺序读取BSP 111,并且将BSP 111传送到第二存储装置12。更具体而言,一旦激活电力,传送控制单元141就从第一存储装置11的起始处开始顺序地读取已存储的内容。如图3所示,错误处理单元142为8位的处理的每个单元执行检错/纠错过程。传送控制单元141在检错/纠错过程之后将BSP 111的每4位的块打包成预定的传送单元,然后将所述预定传送单元传送给第二存储装置12。在此,从CPU 10在电力激活以后自其中取指令的地址开始顺序更新第二存储装置12中的数据的传送目的地。在本实施例中,假定传送器14按16位的传送单元执行传送,并且假定CPU 10从其中首次取指令的地址是第二存储装置12的第一地址。
现在,将描述将要在错误处理单元142中执行的检错/纠错过程。将要分配给BSP 111的第一错误校验码114可以是满足第一存储装置11的推荐技术规范的任意代码。在前述的包含512字节的数据页和16字节的备用区的NAND型快闪存储器的情况下,例如推荐执行允许将为512字节的数据执行的1位纠错和2位检错的编码。在这种情况下,能够通过把允许将为512字节或更少字节的信息位执行的1位纠错和2位检错的代码选作为第一错误校验码114来满足最低要求。
在这个实施例中,将提供比1位纠错和2位检错所提供的能力更高的检错/纠错处理能力的代码用于第一错误校验码114,以便即使在第一存储装置11中包含比在1位纠错和2位检错过程中所预期的缺陷有更多的缺陷也能够正确地执行系统引导。具体地说,通过根据BSP 111、使用生成矩阵G来计算第一错误校验码114,正如下面用等式1表示的那样。在下列说明中,假定D[0]至D[3]表示BSP 111的4位的块;P[0]至P[3]表示分配给D[0]至D[3]的第一错误校验码,并且假定在矩阵计算中对于每次加法使用异或。
[P[0]P[1]P[2]P[3]]=[D[0]D[1]D[2]D[3]]G…等式1
其中
通过使用如等式2所示的校验矩阵H来计算利用等式1得到的代码[D[0]D[1]D[2]D[3]P[0]P[1]P[2]P[3]]的校验子[X[0]X[1]X[2]X[3]]:
[X[0]X[1]X[2]X[3]]
=[D[0]D[1]D[2]D[3]P[0]P[1]P[2]P[3]]HT…等式2
其中:
HT表示H的转置矩阵
接下来,错误处理单元142依据由此得到的X[3]至X[0]的值来执行下列过程(其中X={αβγδ}指的是X[3]=α;X[2]=β;X[1]=γ;和X[0]=δ):
a)如果X={0000},那么无错误;不执行纠错;
b)如果X={0101},那么D[0]是错误;倒置D[0];
c)如果X={0110},那么D[1]是错误;倒置D[1];
d)如果X={1001},那么D[2]是错误;倒置D[2];
e)如果X={1010},那么D[3]是错误;倒置D[3];
f)如果X={0001},那么P[0]是错误;不执行纠错;
g)如果X={0010},那么P[1]是错误;不执行纠错;
i)如果X={0100},那么P[2]是错误;不执行纠错;以及
j)如果X=[1000},那么P[3]是错误;不执行纠错。
情况(b)至(e)都是这样的情况,即其中对在信息位中出现的1位错误进行纠错。情况(f)至(j)都是这样的情况,即其中由于仅仅在错误校验码中存在1位错误,因而不对信息位进行纠错。如果X采用除前述数值以外的任何数值,那么错误处理单元142就判定已经发生了不可纠正的错误。将会认识到的是,上面描述的用于第一错误校验码114的计算方法只是示例性的,可以使用任何其它的计算方法。
图7是举例说明传送控制单元141在电力激活之后的操作的流程图。依照图7中所示的程序,传送控制单元141在第一存储装置11中获取存储BSP 111的位置,从这个已存储的位置起按页顺序读取BSP 111,并且将BSP 111传送到第二存储装置12。在此假定BSP 111的尺寸为一块或更少块。变量B表示读取的块号,而变量P表示读取的页号。
一旦激活电力,传送控制单元141就首先将B和P初始化为0(步骤S101)。其结果是,在第一块(即″第0块″)中的第一页(即″第0页″)上设置第一存储装置11中的读取位置。接下来,传送控制单元141读取第一存储装置11中的第B块的第P页,并将这一页传送到第二存储装置12中的预定地址上(步骤S102)。在此时,错误处理单元142将所传送的页划分成预定的处理单元(在这个示例中,假定每个处理单元是8位),并且为每个处理单元执行检错/纠错过程。如果在每个处理单元中包含任何可纠正错误的话,那么错误处理单元142就纠正所述错误。如果在每个处理单元中包含任何不可纠正错误的话,那么错误处理单元142就内部地存储这个事件。
接下来,传送控制单元141判断P是否小于BSP 111中的页数目(下文中称为″M″)(步骤S103)。如果判断的结果为“是”的话,则传送控制单元141就将P加1(步骤S106),并前进至步骤S102。由此,连续地执行M次步骤S102中的传送。如果步骤S103的判断结果是否,则传送控制单元141就判断在于步骤S102中传送M页期间是否已经检测到不可纠正错误(步骤S104)。如果判断的结果为“否”,则传送控制单元141就判定BSP 111的传送成功,并且结束该过程。在这种情况下,通知单元143向CPU控制器15输出传送结束通知信号144。
如果步骤S104的判断结果为“是”,则传送控制单元141就判断B是否小于将要搜索的块数目(下文中称为″N″)(步骤S105)。如果判断的结果为“否”,则传送控制单元141就判定BSP 111的传送已经失败,并且结束该过程。如果步骤S105的判断结果为“是”,则传送控制单元141就将B加1,将P设定为0(步骤S107),并且前进至步骤S102。由此,传送控制单元141至多相对于N块查找BSP 111。注意,M和N的值可能在传送器14中是固定的,或者可能是可通过切换而变化的。
当从通知单元143那里接收到传送结束通知信号144时,CPU控制器15确认已经正确地完成了BSP 111的传送,并且令CPU激活控制信号151变换,以便实现CPU 10的操作。其结果是,CPU 10开始从第二存储装置12中取指令。在另一方面,如果尚未正确地完成BSP 111的传送,则就不输出传送结束通知信号144,以便在CPU激活控制信号151中不发生变换,并且CPU 10就不会开始从第二存储装置12中取指令。注意,用于通过CPU控制器15来控制CPU 10取指令的方法例如包括一种控制提供给CPU 10的时钟信号的方法(图5)和一种控制提供给CPU 10的复位信号的方法(图6)。
在下文中,将描述BSP 111的细节。BSP 111包含用于执行系统配置、主程序传送例程和坏块信息表113(或指向坏块信息表113的指针)的数据。由于将把主程序112存储在第一存储装置11的正常块中,因而可以将坏块信息表113视作为表示第一存储装置11中的主程序112的已存位置的位置信息。
图8A和8B是举例说明BSP 111的示例性结构的图。如图8A所示,BSP 111包括:配置单元117、主程序传送单元118和坏块信息表指针119。配置单元117包含为执行基本系统配置所必需的数据,比如将在总线控制器中设置的数据。根据配置单元117中所含的数据,例如执行为访问第三存储装置13所必需的存储器控制器设置。主程序传送单元118包含主程序传送例程,该主程序传送例程包括根据第二错误校验码115来执行检错/纠错过程的错误处理程序。坏块信息表指针119包含坏块信息表113的第一地址。
作为选择,如图8B所示,BSP 111可以包含坏块信息表113,而不是坏块信息表指针119。在其中采用图8B的结构的情况下,BSP 111的尺寸变得比在其中采用图8A的结构的情况更大。然而,当在结束BSP 111的传送之后访问坏块信息表113时,CPU 10只须访问第二存储装置12,而不必访问第一存储装置11。因此,在其中采用图8B的结构的情况下,能够快速地执行向第三存储装置13传送主程序112的过程。
图9是举例说明CPU 10的自引导过程的流程图。在完成BSP 111的传送并且输出传送结束通知信号144之后,CPU 10执行第二存储装置12上的BSP 111以便执行图9中所示的过程。在图9中,变量B表示读取的块号,而变量P表示读取的页号。
一旦完成BSP 111的传送,CPU 10就首先通过利用BSP 111的系统配置单元117中所存储的数据来执行系统配置(步骤S201)。在步骤S201,例如,在存储器接口电路等等中设置各种参数,以便访问第三存储装置13。
接下来,CPU 10从BSP 111中读取坏块信息表指针119,并且通过利用这个指针来把坏块信息表113从第一存储装置11拷贝到第三存储装置13(步骤S202)。在此时,传送器14中的错误处理单元142根据已从第一存储装置11中读出的坏块信息表113的第一错误校验码114来执行检错/纠错过程。注意,在采用如图8B所示的BSP 111的情况下,不执行步骤S202的过程,因为已经把坏块信息表113存储在了第二存储装置12中。接下来,CPU 10将包含BSP 111的块的数目设置为B(步骤S203)。
接下来,通过参照第三存储装置13上的坏块信息表,CPU 10判断下一个正常块的数目并且把这个数目设置成B(步骤S204),并将P置0(步骤S205)。然后,CPU 10调用拷贝功能以把第一存储装置11中的第B块中的第P页拷贝到第三存储装置13中的预定地址上(步骤S206)。接下来,作为执行检错/纠错过程的准备,CPU 10先计算相对于已在步骤S206拷贝的页的校验子(步骤S207)。那么,根据在步骤S207中计算的校验子,CPU 10通过软件手段来执行检错/纠错过程(步骤S208)。经由步骤S208的过程,已经读取的页中所含的任何可纠正错误都被纠正。
接下来,CPU 10判断在步骤S208的检错/纠错过程期间是否已经发现任何不可纠正错误(超出纠正能力之外的错误)(步骤S209)。如果判断的结果为“否”,则CPU 10就判断P是否小于一块中的页数(步骤S210)。如果判断的结果为“是”,则CPU 10就将P加1(步骤S212),并且前进至步骤S206。如果步骤S210的判断结果为“否”,则CPU 10就判断B是否小于BSP 111中的块数(步骤S211)。如果判断的结果为“是”,则CPU 10就将B加1,将P置0(步骤S213),并且前进至步骤S204。
如果在步骤S211中的判断结果为“否”,则CPU 10就判定主程序112的传送成功。在这种情况下,CPU 10的控制分支到第三存储装置13上的主程序112。在另一方面,如果步骤S209的判断结果为“是”,则CPU 10就判定主程序112的传送已经失败。在这种情况下,CPU 10不执行任何过程,并且进入无限循环。
由此,CPU 10执行第二存储装置12上的BSP 111,以将第一存储装置11的正常块中所存储的主程序112传送到第三存储装置13。尔后,如果主程序112的传送变成功,则CPU 10继续执行第三存储装置13上的主程序112;如果主程序112的传送失败,则CPU 10就停止工作。
如上所述,依照信息处理设备1,能够通过使用具有所分配的校验码且正存储在低可靠性存储器(比如,NAND型快闪存储器)中的程序来稳定地执行系统引导,而无需采用高可靠性存储器(比如,ROM)来存储初始程序。由于依照存储在第二存储装置中的引导程序来将存储在第一存储装置中的主程序传送给第二存储装置并且根据第二校验码来执行检错/纠错过程,因此就可以为所述主程序执行复杂的基于软件的检错/纠错过程。
在上述信息处理设备1中,CPU 10取指令受CPU控制器15的控制。作为选择,正如图10中所示的信息处理设备2所例示的那样,可以通过为数据总线16a采用仲裁器20来控制CPU 10取指令。在图10中,仲裁器20裁定对访问第二存储装置12所必须的数据总线16a的访问权。更具体而言,在电力激活之后,仲裁器20以较高优先权向传送器14准许对数据总线16a的访问权,直到输出传送结束通知信号144为止。一旦完成BSP111的传送以致输出传送结束通知信号144,仲裁器20就以较高优先权向CPU 10准许对数据总线16a的访问权。
其结果是,虽然CPU 10在电力激活之后立即尝试从第二存储装置12中取指令,但是仲裁器20进行动作以便CPU 10不具有对数据总线16a的访问权,即无法访问第二存储装置12,直到BSP 111的传送结束为止。由此,在开始CPU 10取指令之前,必须等待BSP 111的传送结束。照此,信息处理设备2与信息处理设备1提供了相同的效果。
信息处理设备1采用从第一存储装置11中的第一块开始顺序搜索BSP111并根据在M页的传送期间是否检查出不可纠正错误来检查坏块的坏块校验方法。然而,如果在输出时刚好把偶然通过检错/纠错过程的一个值作为初始值数据存储在坏块中,那么这个方法就可能会把坏块误会为正常块。为了解决这个问题,当执行对第一存储装置11的写入时,可以重复地把包含不可纠正错误的数据写入到坏块。结果,将在传送M页期间安全地检查出不可纠正错误,借此能够避免把坏块误会成正常块的问题。
(第二实施例)
图11是举例说明根据本发明第二实施例的信息处理设备的结构的图。除了用传送器30替代传送器14并将对照码121添加到BSP 111上之外,图11中所示的信息处理设备3等同于第一实施例的信息处理设备1(图1)。信息处理设备3通过使用对照码121来解决把坏块误会成正常块的问题。
除了用传送控制单元311替代传送控制单元141以及添加了包含对照码保留单元301和对照码比较单元302的传送数据判断单元303之外,传送器30等同于第一实施例的传送器14。对照码保留单元301存储在系统中唯一确定的对照码。尽管对用作为对照码值没有特定的限制,但是最好使用区别于任何其它值的特征值(例如,由″0″位和″1″位的混合组成的值)。在本实施例中,例如使用2字节的对照码″5a3c″(十六进制)。
当把BSP 111写入第一存储装置11时,将与在对照码保留单元301中保留的对照码相同的对照码121分配给该BSP 111。图12是类似于图3的图,该图举例说明了具有所分配的对照码121的BSP 111的格式以及第一错误校验码114的格式。在第一存储装置11中的一个或多个正常块的多页上存储BSP 111。在其中存有BSP 111的一部分的每个数据页的最后4字节(512字节)中,带错误校验码地存储对照码121。更具体而言,把2字节的对照码121分成四个4位的组,并且将这些组中的每一组都存为每一页的最末4字节的低4位。对于对照码121的每4位,通过使用等式1来计算4位错误校验码,并且将每一页的最末4字节的高4位存为对照码的错误校验码122。例如,如果对照码具有值″5a3c″(十六进制),于是:M[15]=0;M[14]=1;M[13]=0;M[12]=1;P[2047]=1;P[2046]=1;P[2045]=0;P[2044]=0;等等。
图13是类似于图7的流程图,该图举例说明了在电力激活之后、传送控制单元311的操作。作为带有第一实施例中的传送控制单元141的情况,依照图13中所示的程序,传送控制单元311在第一存储装置11中获取BSP 111的已存位置,从这个已存位置起按页顺序地读取BSP 111,并将该BSP 111传送到第二存储装置12。此外,再假定BSP 111的尺寸是一块或更少块。变量B和P的含义与图7定义的含义相同。
一旦激活电力,传送控制单元311就将B和P初始化成0(步骤S301)。接下来,传送控制单元311判断P是否小于BSP 111的M的大小(步骤S302)。如果判断的结果为“否”,则传送控制单元311就判定BSP 111的传送成功,并且结束该过程。在这种情况下,CPU控制器15输出传送结束通知信号144。
如果步骤S302的判断结果为“是”,则传送控制单元311就读取第一存储装置11中的第B块中的第P页,并且把这一页传送到第二存储装置12中的预定地址上(步骤S303)。在此时,错误处理单元142执行与图7中的步骤S102相同的检错/纠错过程。对照码比较单元302将已传送的页的数据(512字节)的最末4字节中所存储的对照码121与对照码保留单元301中的保留的对照码(即,对照码应该采用的参考值)进行比较。
接下来,传送控制单元311判断对照码比较单元302是否已经发现对照码121匹配所述对照码的参考值(步骤S304)。如果判断的结果为“是”,则传送控制单元311就在步骤S303中判断在一页的传送期间是否已经检查出不可纠正错误(步骤S305)。如果判断的结果为“否”,则传送控制单元311就将P加1(步骤S307),并前进至步骤S302。
如果步骤S304的判断结果为“否”,则传送控制单元311就判断B是否小于将要搜索的块的数目N(步骤S306)。如果判断的结果为“是”,则传送控制单元311就将B加1,将P置0(步骤S308),并前进至步骤S302。
如果步骤S305的判断结果为“是”,或者如果步骤S306的判断结果为“否”,则传送控制单元311就判定BSP 111的传送已经失败,并且结束该过程。在这种情况下,CPU控制器15不输出传送结束通知信号144。
不论引导程序的传送变成功还是变失败,信息处理设备3都类似于第一实施例的信息处理设备1的那样操作。因此,信息处理设备3提供了与由第一实施例的信息处理设备1提供的效果相同的效果。另外,对照码的使用解决了把坏块误会成正常块的问题,并且实现了对第一存储装置中所存储的估计可能包含坏块的引导程序的快速检测。
在信息处理设备3中,作为选择可以采用图5或图6中所示的CPU控制器15或者图10中所示的仲裁器20来控制CPU 10取指令。对如下所述的第三至第五实施例来说也是成立的。
正如图14中所示的信息处理设备4所例示的那样,信息处理设备可以包括允许从外界重写对照码的传送器。在图14中,构建传送器40以便能够经由数据总线16d将数据写入对照码保留单元301中。第一存储装置11存储:两类BSP 111a和111b;并且通过利用相同的方法来相对于这两类BSP计算第一114a和114b。BSP 111a和第一错误校验码114a将对应于图11中所示的信息处理设备3中的BSP 111和第一错误校验码114。BSP111b是不同于BSP 111a的BSP,例如用于不同更改版的CPU的BSP或用于具有不同系统配置的信息处理设备的BSP。将BSP 111a和111b随带分别分配给它们的对照码121a和121b一起存储在第一存储装置11中。将为对照码121b使用不同于对照码121a的值。
可以根据CPU 10或系统配置的更改来重写对照码保留单元301中所保留的对照码(即,对照码应该采用的参考值)。一旦激活电力,传送器40就依照对照码保留单元301中保留的对照码来选择BSP 111a或者BSP111b,并将所选定的BSP传送到第二存储装置12。CPU 10依照第二存储装置12上的BSP 111a或BSP 111b来进行操作。由此,甚至是在不同的CPU更改版或系统配置的情况下等等,也能够通过依照CPU更改版、系统配置等使用从单个第一存储装置11中选出的最佳BSP来正确执行系统引导。尽管将上述信息处理设备4举例说明成了通过使用相同的方法来计算BSP 111a和111b的第一错误校验码114a和114b,但是也可以通过不同的方法来计算它们;在这种情况下,每个错误校验码的检错/纠错都将由错误处理单元142来执行。
(第三实施例)
图15是举例说明根据本发明第三实施例的信息处理设备的结构的图。除了用传送器50替代传送器14之外,图15中所示的信息处理设备5等同于第一实施例的信息处理设备1(图1)。信息处理设备5的特征在于:主程序112的检错/纠错过程的一部分是在传送器50中执行的。
除了用第一和第二错误处理单元501和502以及错误处理选择单元503替代错误处理单元142之外,传送器50等同于第一实施例的传送器14。第一错误处理单元501根据第一和第三错误校验码114和116来执行检错/纠错过程。例如,第一错误处理单元501中的检错/纠错过程是由预定的处理单元(在本例中是8位的处理单元)使用等式2来执行的。
第二错误处理单元502根据第二错误校验码115来执行检错/纠错过程的一部分。假定第二错误校验码115是一个16字节的错误校验码,其中所述错误校验码是根据512字节的数据加以计算的,那么基于第二错误校验码115的检错/纠错过程将必然导致比对应第一和第三错误校验码114和116的计算量更大的计算量。因此,如果第二错误处理单元502将要根据第二错误校验码115来执行所有的检错/纠错过程,那么传送器50就将需要增加的硬件数量,由此导致信息处理设备5的成本上的增加。因此,在基于第二错误校验码115的检错/纠错过程之内,第二错误处理单元502仅仅处理校验子计算。将要通过CPU 10的软件处理来执行利用计算出的校验子的检错/纠错过程。
在CPU 10的控制下,错误处理选择单元503有选择地令第一和第二错误处理单元501和502中的任一个工作。错误处理选择单元503包括CPU10能够向其中写入数值的寄存器。在这个寄存器中,例如,存储数值″0″直到BSP 111的传送结束为止。一旦完成BSP 111的传送,CPU 10例如将错误处理选择单元503中的前述寄存器的值更新为″1″。如果寄存器的值为″0″,则错误处理选择单元503就向第一错误处理单元501提供从第一存储装置11读取的数据。如果寄存器的值为″1″,错误处理选择单元503就向第二错误处理单元502提供从第一存储装置11读取的数据。
由此,在传送器50中,在激活电力之后,为将要传送的BSP 111执行基于第一错误校验码114的检错/纠错过程,直到错误处理选择单元503中的寄存器的值转变为″1″。当CPU 10执行预定的指令时,错误处理选择单元503中的寄存器的值转变为″1″。尔后,在基于将为要被传送的主程序112执行的第二错误校验码115的检错/纠错过程之内,在传送器50中发生校验子计算。
由此,依照信息处理设备5,由传送器来处理检错/纠错过程的一部分,借此以供主程序的检错/纠错过程的快速执行使用,由此以供系统引导使用。
在上面举例说明的信息处理设备5中,用来自CPU 10的指令来重写错误处理选择单元503中的寄存器的值。作为选择,正如图16中所示的信息处理设备6所例示的那样,传送器60中的错误处理选择单元601可以与接收自通知单元143的传送结束通知信号144相同步地将前述寄存器的值从″0″变换为″1″。
(第四实施例)
图17是举例说明根据本发明第四实施例的信息处理设备的结构的图。除了用传送器70替代传送器50之外,图17中所示的信息处理设备7等同于第三实施例的信息处理设备5(图15)。信息处理设备7的特征在于:所述传送器70具有传送主程序112的功能。
除了传送器70还包括控制信息存储单元701、坏块信息表指针存储单元702和坏块信息表存储单元703之外,传送器70等同于第三实施例的传送器50(图15)。控制信息存储单元701存储传送源地址、传送大小、传送目的地址等等。坏块信息表指针存储单元702存储BSP 111中所包含的坏块信息表指针119(坏块信息表113的第一地址)。
将利用与用于BSP 111的相同方法计算的第三错误校验码116分配到坏块信息表113。受CPU 10的控制,传送器70从第一存储装置11中读取的坏块信息表113和第三错误校验码116,借助于第一错误处理单元501使它们经过检错/纠错过程,并且把已经经过检错/纠错过程的坏块信息表写入第二存储装置12。
在本实施例中,第二错误处理单元502根据第二错误校验码来执行全部检错/纠错过程。在这种情况下,如果当执行主程序112的检错/纠错过程时检查出不可纠正错误,那么第二错误处理单元502就停止错误处理,并且(通过利用图中未示出的装置)向CPU 10通知已经检查出不可恢复错误。当接收到这个通知时,CPU 10执行异常处理过程。例如,CPU 10可以异常中止系统,并且通过在显示装置(未示出)上显示消息来向用户通知已经出现了不可恢复错误。
图18是举例说明根据当前实施例的CPU 10的自引导过程的流程图。由于图18中所示的流程图与图9中所示的流程图相似,因而下面将仅仅描述它们之间的差别。
在图9中所示的流程图中,CPU 10从BSP 111中读取坏块信息表指针119,并且使用坏块信息表指针119来把该坏块信息表113从第一存储装置11拷贝到第三存储装置13(步骤S202)。从另一方面来说,在图18中所示的流程图中,CPU 10从BSP 111中读取坏块信息表指针119,并且把该坏块信息表指针119写入到传送器70的坏块信息表指针存储单元702中(步骤S402)。在此时,通过引用存储在坏块信息表指针存储单元702中的坏块信息表指针,传送器70从第一存储装置11中读取坏块信息表113和第三错误校验码116,并根据第一错误校验码114使它们经过检错/纠错过程,并且把该过程的结果写入到坏块信息表存储单元703中。
此外,在图9中所示的流程图中,CPU 10调用拷贝功能以将一页拷贝到第三存储装置13(步骤S206),并且为所拷贝的页计算校验子(步骤S207)。从另一方面来说,在图18中所示的流程图中,CPU 10把传送所必需的参数(例如,作为传送源的B和P的值)写入到传送器70的控制信息存储单元701中,并且等待传送器70完成传送(步骤S406)。在此时,传送控制单元141按照由控制信息存储单元701中存储的参数所指定的那样将第一存储装置11中的第B块中的第P页传送到第二存储装置12中的预定地址上,并且第二错误处理单元502为所传送的页计算校验子。当完成一页的传送时,CPU 10读取已在第二错误处理单元502中计算出的校验子(步骤S408)。根据已读取出的校验子来执行步骤S409的检错/纠错过程。
由此,依照信息处理设备7,能够减小引导程序的大小,并且能够降低CPU上的载荷,借此实现系统引导的快速执行。
(第五实施例)
图19是举例说明根据本发明第五实施例的信息处理设备的结构的图。除了消除掉第二存储装置12以及用传送器80替代传送器30之外,图19中所示的信息处理设备8等同于第三实施例的信息处理设备3(图11)。信息处理设备8的特征在于:它没有用于存储BSP 111的专用存储装置,而且BSP 111是从传送器80那里提供的。
除了用传送控制单元803和缓冲控制单元801替代传送控制单元311以及添加了指令提供缓冲器802之外,传送器80等同于第三实施例的传送器30(图11)。指令提供缓冲器802是用于存储预定数量的指令的缓冲器。一旦激活电力,传送控制单元803就从第一存储装置11的开始处起顺序读取预定量的BSP 111,并且错误处理单元142为已经读取出的预定量的BSP 111执行检错/纠错过程。把已经经过检错/纠错的BSP 111经由数据总线16c、16b和16e存储到指令提供缓冲器802中。一旦激活电力,CPU 10就尝试从指令提供缓冲器802中取指令。
如果当CPU 10已经尝试取指令时已把下一条指令存储在了指令提供缓冲器802中,那么缓冲控制单元801就允许CPU 10读出那条指令。在这种情况下,CPU 10成功地取出指令,并且执行所取出的指令。在另一方面,如果当CPU 10已经尝试取指令时、在指令提供缓冲器802中尚未存储下一条指令,那么缓冲控制单元801就停止CPU 10取指令,并且控制传送控制单元803从第一存储装置11中读取下一条指令。使已读取出的指令经过检错/纠错过程,并且尔后将其存储在指令提供缓冲器802中。通过这种控制,传送器80确保:如果在指令提供缓冲器802中尚未存储下一条指令的话则CPU 10就无法执行取指令直到下一条指令变成就绪状态为止。
由此,依照信息处理设备8,能够在没有确保用于存储BSP的存储区的情况下提供与第一实施例的信息处理设备所提供的效果相同的效果。
(第六实施例)
图20是举例说明根据本发明第六实施例的ROM图像生成设备的结构的图。图20中所示的ROM图像生成设备9是一种将包含BSP 111、主程序112等等的ROM图像写入到存储器(下文中称为″目标存储器″)中的设备,其中所述存储器被用作为根据上述实施例中的任何一个的信息处理设备中所包含的第一存储装置11。
ROM图像生成设备9包括图像重新格式化单元91、写入图像生成单元92、存储控制单元93、对照码管理单元94、代码信息管理单元95、坏块信息保留单元96和坏块信息表生成单元97。图像重新格式化单元91包括对照码分配单元911和重新格式化单元912。写入图像生成单元92包括图像合并单元921、坏块信息表指针分配单元922和错误校验码分配单元923。存储控制单元93包括坏块搜索单元931和存储器写入单元932。
在将输入数据900输入之前,对照码管理单元94先存储对照码941(它将被作为对输入数据900的赋值而写入),并且代码信息管理单元95存储表明将在计算每一种类型的输入数据900的错误校验码的过程中使用哪种方法的错误校验码赋值信息951。坏块搜索单元931利用预定方法来访问目标存储器,并且输出表明目标存储器中所含的坏块的位置的坏块信息933。把从坏块搜索单元931中输出的坏块信息933存储到坏块信息保留单元96中。
作为输入数据900,把将要写入目标存储器的BSP、主程序等等(它们都为二进制形式)都作为到ROM图像生成设备9的独立的文件来加以输入。根据坏块信息保留单元96中的坏块信息961,坏块信息表生成单元97以二进制形式生成坏块信息表971。把输入数据900和坏块信息表971都以独立的文件的形式输入到图像重新格式化单元91中。
图像重新格式化单元91把输入数据900和坏块信息表971重新格式化成用于写入到目标存储器中的适当形式。更具体而言,对照码分配单元911根据需要将对照码管理单元94中所存储的对照码941分配给输入数据900。依照代码信息管理单元95中所存储的错误校验码赋值信息951,重新格式化单元912将输入数据900和坏块信息表971的每一个都重新格式化成能够适于接收分配给它的错误校验码的形式,并将结果作为独立的文件加以输出。已经由图像重新格式化单元91重新格式化后的数据将称为重新格式化单元输出913。
图21A和21B是举例说明示例性的重新格式化单元输出913的图。图21A示出了在输入BSP 111的情况下的重新格式化单元输出913。图21B示出了在输入主程序112的情况下的重新格式化单元输出913。当正在输入BSP 111时,代码信息管理单元95保持输出表明必须执行到一种格式的重新格式化的错误校验码赋值信息951,在所述格式中将4位错误校验码分配给4位的信息位(即,图3中所示的格式)。依照错误校验码赋值信息951,重新格式化单元912将BSP 111(它已经以二进制形式被输入)重新格式化成图21A中所示的格式。在另一方面,当正在输入主程序112时,代码信息管理单元95保持输出表明必须执行到一种形式的重新格式化的错误校验码赋值信息951,在所述形式中将16字节备用区分配给每512字节的数据。依照这个错误校验码赋值信息951,重新格式化单元912将主程序112(它已经以二进制形式被输入)重新格式化成图21B中所示的格式。
写入图像生成单元92对来自图像重新格式化单元91的重新格式化节输出913进行合并以生成将要写入目标存储器的ROM图像924,同时注意目标存储器中所包含的坏块的位置。更具体而言,图像合并单元921把已经以独立文件的形式被输出的重新格式化单元输出913合并成单个文件。在此时,根据从坏块信息保留单元96中输出的坏块信息961,图像合并单元921输出仅仅对与正常块相对应的位置有效的数据,由此避开坏块。
一旦图像合并单元921已经把重新格式化单元输出913合并成单个文件,将把坏块信息表971存储在哪个正常块中就将变成确定的了。因此,为了从图像合并单元921中输出,坏块信息表指针分配单元922分配这个正常块(对应于坏块信息表指针119)的数目。
一旦坏块信息表指针分配单元922已经分配了前述正常块的数目,则除了错误校验码外就最终确定了将要写入目标存储器的ROM图像中的所有数据。因此,为了从坏块信息表指针分配单元922中输出,错误校验码分配单元923依照从代码信息管理单元95中输出的错误校验码赋值信息951来分配错误校验码。例如,错误校验码分配单元923将第一错误校验码114分配给BSP 111,而把第二错误校验码115分配给主程序112。
存储器写入单元932把从写入图像生成单元92中输出的ROM图像924写入到目标存储器。在此时,根据坏块信息保留单元96中所保留的坏块信息961,存储器写入单元932把ROM图像924只写入到目标存储器中所包含的正常块当中。
如上所述,依照本实施例的ROM图像生成设备,能够把包含BSP、主程序等等的ROM图像写入到作为根据第一至第五实施例中的任何一个的信息处理设备中所包含的第一存储装置的存储器当中。
根据本发明的信息处理设备的特征在于:它能够在不采用ROM等等来存储初始程序的情况下稳定地执行系统引导。因此,可以把信息处理设备用作为各种信息处理设备,比如笔记本型个人电脑、移动式信息装置、蜂窝式电话、数字照相机、视频电影装置、游戏。
虽然已经详细描述了本发明,但是上述说明在所有方面中都是例证性的而非限制性的。当然在不背离本发明的范围的情况下能够设计出许多其它的修改和变形。
Claims (23)
1、一种用于通过使用在非易失性存储装置中存储的程序来执行系统引导的信息处理设备,包括:
CPU;
非易失性第一存储装置,用于存储具有所分配的第一校验码的引导程序和具有所分配的第二校验码的主程序,作为将由CPU执行的程序,第二校验码是通过不同于用来计算第一校验码的方法计算出的;
传送器,用于读取第一存储装置中存储的程序,其中在系统引导期间,传送器从第一存储装置中读取引导程序,使引导程序经历基于第一校验码的检错/纠错过程,并将经过处理的引导程序传送到第二存储装置;
易失性第二存储装置,用于存储从第一存储装置中读取的程序;和
CPU控制器,用于禁止CPU的操作直到完成引导程序的传送。
2、根据权利要求1所述的信息处理设备,其中,当不再被CPU控制器禁止时,依照第二存储装置中所存储的引导程序,CPU将第一存储装置中所存储的主程序传送到第二存储装置,并且使主程序经历基于第二校验码的检错/纠错过程。
3、根据权利要求1所述的信息处理设备,其中所述传送器包括:
传送控制单元,用于控制引导程序的传送;
错误处理单元,用于根据正在传送的引导程序的第一校验码来执行检错/纠错过程;和
通知单元,用于如果当完成引导程序的传送时错误处理单元尚未检查出任何不可纠正错误则向CPU控制器通知传送结束。
4、根据权利要求1所述的信息处理设备,其中所述CPU控制器禁止CPU的时钟信号的提供直到完成引导程序的传送为止。
5、根据权利要求1所述的信息处理设备,其中所述CPU控制器连续地提供CPU的复位信号直到完成引导程序的传送为止。
6、根据权利要求1所述的信息处理设备,其中所述CPU控制器禁止CPU访问第二存储装置直到完成引导程序的传送为止。
7、根据权利要求6所述的信息处理设备,其中所述CPU控制器按这样的方式来裁定对连接于第二存储装置的总线的访问权,即:给传送器赋予优先权直到完成引导程序的传送为止并且在完成引导程序的传送之后给CPU赋予优先权。
8、根据权利要求1所述的信息处理设备,其中如果引导程序的传送失败则所述CPU控制器保持禁止CPU的操作。
9、根据权利要求1所述的信息处理设备,其中:
第一存储装置包括多块,将这些块中的每一块都视作为正常块或者坏块,并且
将引导程序、主程序、和表示第一存储装置中的主程序的已存位置的已存位置信息都存储在第一存储装置的正常块中。
10、根据权利要求9所述的信息处理设备,其中:
所述引导程序包括已存位置信息和用于根据第二校验码来执行检错/纠错过程的错误处理程序,并且
当不再被CPU控制器禁止时,CPU在基于第一校验码的检错/纠错过程之后依照已存位置信息、经由传送器将第一存储装置中所存储的主程序传送到第二存储装置,并且在基于第一校验码的检错/纠错过程之后,依照该错误处理程序来为第二存储装置中所存储的主程序执行检错/纠错过程。
11、根据权利要求9所述的信息处理设备,其中:
所述第一存储装置存储具有所分配的第一校验码的已存位置信息,
所述传送器也根据第一校验码来为从第一存储装置中读取的已存位置信息执行检错/纠错过程,
所述引导程序包括第一存储装置中存储已存位置信息的地址以及用于根据第二校验码来执行检错/纠错过程的错误处理程序,并且
当不再被CPU控制器禁止时,CPU在基于第一校验码的检错/纠错过程之后通过利用该地址、经由传送器将第一存储装置中所存储的已存位置信息传送到第二存储装置,在基于第一校验码的检错/纠错过程之后依照已存位置信息、经由传送器将第一存储装置中所存储的主程序传送到第二存储装置,并且在基于第一校验码的检错/纠错过程之后依照错误处理程序来为第二存储装置中所存储的主程序执行检错/纠错过程。
12、根据权利要求9所述的信息处理设备,其中:
在第一存储装置的正常块中以预定大小的数据单元的形式来存储引导程序,并且
所述传送器从第一存储装置中读取引导程序的所述预定大小的每个数据单元,使所述数据单元经历基于第一校验码的检错/纠错过程,并且将所处理的数据单元传送到第二存储装置。
13、根据权利要求12所述的信息处理设备,其中如果通过根据第一校验码为从第一存储装置中读取的预定大小的数据单元执行检错/纠错过程而检查出不可纠正错误,那么传送器就从紧跟在包含该数据单元之后的正常块中读取将要处理的下一个数据单元。
14、根据权利要求12所述的信息处理设备,其中:
以所述预定大小的数据单元的形式将引导程序存储在第一存储装置的正常块中,为每个数据单元分配一个对照码,以及
所述传送器保留该对照码的参考数据,并且如果将等同于参考数据的对照码分配给从第一存储装置中读取的预定大小的数据单元,则将所读取出的数据单元传送到第二存储装置。
15、根据权利要求14所述的信息处理设备,其中所述传送器被设置成允许根据给定数据来改变参考数据。
16、根据权利要求1所述的信息处理设备,其中:
所述传送器包括:
传送控制单元,用于控制引导程序的传送;
第一错误处理单元,用于根据第一校验码来为正在传送的引导程序执行检错/纠错过程;
第二错误处理单元,用于根据第二校验码来为从第一存储装置中读取的主程序执行至少一部分检错/纠错过程;和
通知单元,用于如果当完成引导程序的传送时第一错误处理单元尚未检查出任何不可纠正错误则向CPU控制器通知传送结束。
17、根据权利要求16所述的信息处理设备,其中:
第二错误处理单元相对于从第一存储装置中读取的主程序、根据第二校验码来计算校验子,并且
依照第二存储装置中所存储的引导程序,CPU通过使用由第二错误处理单元计算出的校验子、根据第二校验码来为从第一存储装置中读取的主程序执行其余部分的检错/纠错过程。
18、根据权利要求16所述的信息处理设备,其中当通知单元已经通知传送结束时,传送器从第一错误处理单元到第二错误处理单元地切换处理单元以便处理从第一存储装置中读取的程序。
19、根据权利要求16所述的信息处理设备,其中所述传送器在CPU控制下从第一错误处理单元到第二错误处理单元地切换处理单元以便处理从第一存储装置中读取的程序。
20、根据权利要求16所述的信息处理设备,其中:
如果第二错误处理单元已经检查出不可纠正错误,则传送器就通知CPU传送失败,并且
当接收到传送失败的通知时,所述CPU执行异常处理过程。
21、根据权利要求1所述的信息处理设备,其中除传送引导程序之外,在CPU控制下,传送器以预定大小的数据单元的形式从第一存储装置中读取主程序,并将已读取出的每个数据单元传送到第二存储装置。
22、一种用于通过使用非易失性存储装置中所存储的程序来执行系统引导的信息处理设备,包括:
CPU;
非易失性第一存储装置,用于存储具有所分配的第一校验码的引导程序和具有所分配的第二校验码的主程序,作为将由CPU执行的程序,所述第二校验码是通过不同于用来计算第一校验码的方法来计算的;
传送器,用于读取第一存储装置中所存储的程序;和
易失性第二存储装置,用于存储从第一存储装置中读取的程序,其中
所述传送器从第一存储装置中读取引导程序,使该引导程序经历基于第一校验码的检错/纠错过程并内部地存储所处理的引导程序,并且响应于来自CPU的读请求输出已存储的引导程序,并且
在系统引导期间,CPU依照传送器中所存储的引导程序来进行操作。
23、根据权利要求22所述的信息处理设备,其中:
所述引导程序包括错误处理程序,用于根据第二校验码来执行检错/纠错过程,并且
在系统引导期间,依照传送器中所存储的引导程序,CPU根据第二校验码来为从第一存储装置中读取的主程序执行检错/纠错过程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP431178/2003 | 2003-12-25 | ||
JP2003431178A JP4404625B2 (ja) | 2003-12-25 | 2003-12-25 | 情報処理装置および該装置用のromイメージ生成装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101423499A Division CN100541431C (zh) | 2003-12-25 | 2004-12-24 | Rom映像的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1655121A CN1655121A (zh) | 2005-08-17 |
CN100336020C true CN100336020C (zh) | 2007-09-05 |
Family
ID=34697647
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101423499A Active CN100541431C (zh) | 2003-12-25 | 2004-12-24 | Rom映像的生成方法 |
CNB200410103669XA Active CN100336020C (zh) | 2003-12-25 | 2004-12-24 | 信息处理设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101423499A Active CN100541431C (zh) | 2003-12-25 | 2004-12-24 | Rom映像的生成方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7308567B2 (zh) |
JP (1) | JP4404625B2 (zh) |
KR (1) | KR20050065431A (zh) |
CN (2) | CN100541431C (zh) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006277395A (ja) * | 2005-03-29 | 2006-10-12 | Matsushita Electric Ind Co Ltd | 情報処理装置及び情報処理方法 |
US8060747B1 (en) | 2005-09-12 | 2011-11-15 | Microsoft Corporation | Digital signatures for embedded code |
US7536540B2 (en) | 2005-09-14 | 2009-05-19 | Sandisk Corporation | Method of hardware driver integrity check of memory card controller firmware |
KR100804647B1 (ko) | 2005-11-15 | 2008-02-20 | 삼성전자주식회사 | 병렬형 플래시 인터페이스를 지원하는 직렬형 플래시메모리 장치를 이용한 시스템 부팅 방법 및 장치 |
US8190902B2 (en) * | 2006-02-27 | 2012-05-29 | Microsoft Corporation | Techniques for digital signature formation and verification |
JP4836608B2 (ja) * | 2006-02-27 | 2011-12-14 | 株式会社東芝 | 半導体記憶装置 |
US8205087B2 (en) * | 2006-02-27 | 2012-06-19 | Microsoft Corporation | Tool for digitally signing multiple documents |
US7555678B2 (en) * | 2006-03-23 | 2009-06-30 | Mediatek Inc. | System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting |
US8065563B2 (en) * | 2006-03-23 | 2011-11-22 | Mediatek Inc. | System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting |
US7562180B2 (en) * | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
US20080045289A1 (en) * | 2006-08-10 | 2008-02-21 | Wayne Odom | System and device for conducting a game of chance |
US8375455B2 (en) | 2006-08-10 | 2013-02-12 | Wayne Odom | System, method, and device for storing and delivering data |
US8365137B2 (en) * | 2006-08-29 | 2013-01-29 | Wave Semiconductor, Inc. | Systems and methods using an invocation model of process expression |
JP2008065434A (ja) * | 2006-09-05 | 2008-03-21 | Matsushita Electric Ind Co Ltd | プログラム起動制御装置 |
KR100936533B1 (ko) * | 2006-11-07 | 2010-01-13 | 슬림디스크 주식회사 | 배드패턴을 이용한 디지털 컨텐츠 암호화 방법 및 이를 이용한 디지털 컨텐츠 기록/재생 방법과 디지털 컨텐츠 저장매체 |
JP2008134736A (ja) * | 2006-11-27 | 2008-06-12 | Fujifilm Corp | 電子機器 |
KR100882841B1 (ko) * | 2007-06-19 | 2009-02-10 | 삼성전자주식회사 | 읽기 디스터번스로 인한 비트 에러를 검출할 수 있는메모리 시스템 및 그것의 읽기 방법 |
US20090006835A1 (en) * | 2007-06-29 | 2009-01-01 | Samsung Electronics Co., Ltd | Electronic device and control method thereof |
KR20090030078A (ko) * | 2007-09-19 | 2009-03-24 | 삼성전자주식회사 | 부트 로딩 동작을 안전하게 수행하기 위한 반도체 메모리장치 및 그것의 부트 로딩 방법 |
KR101365683B1 (ko) | 2007-12-27 | 2014-02-20 | 삼성전자주식회사 | 가변 저항 메모리 장치, 그것의 플렉서블 프로그램 방법,그리고 그것을 포함하는 메모리 시스템 |
KR101476773B1 (ko) | 2008-04-08 | 2014-12-29 | 삼성전자주식회사 | 가변 저항 메모리 장치를 포함하는 반도체 메모리 장치 및메모리 시스템 |
US8194492B2 (en) | 2008-04-08 | 2012-06-05 | Samsung Electronics Co., Ltd. | Variable resistance memory device and system |
JP5279899B2 (ja) * | 2008-05-23 | 2013-09-04 | アギア システムズ インコーポレーテッド | 安全な乱数生成器 |
JP4762269B2 (ja) * | 2008-06-06 | 2011-08-31 | パナソニック株式会社 | 再生装置、集積回路及び再生方法 |
US20100332942A1 (en) * | 2008-09-10 | 2010-12-30 | Arm Limited | Memory controller for NAND memory using forward error correction |
US8220185B2 (en) * | 2009-01-29 | 2012-07-17 | Nike, Inc. | Article of footwear with suspended stud assembly |
TWI401691B (zh) * | 2009-03-20 | 2013-07-11 | Phison Electronics Corp | 具快閃記憶體測試功能的控制器及其儲存系統與測試方法 |
TWI408689B (zh) * | 2009-04-14 | 2013-09-11 | Jmicron Technology Corp | 存取儲存裝置的方法及相關控制電路 |
CN101604248B (zh) * | 2009-07-20 | 2012-09-26 | 北京海尔集成电路设计有限公司 | 一种修正只读存储器中程序的嵌入式系统及其实现方法 |
KR101017977B1 (ko) * | 2009-08-11 | 2011-03-02 | 주식회사 케피코 | 복수개의 제어기의 리프로그래밍 방법 |
CN102890645B (zh) * | 2011-07-20 | 2015-11-25 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与数据写入方法 |
CN102298545B (zh) * | 2011-08-23 | 2014-03-19 | 晨星软件研发(深圳)有限公司 | 一种系统启动引导处理方法及装置 |
US8572720B1 (en) | 2013-05-20 | 2013-10-29 | Wayne Odom | System, method, and device for communicating and storing and delivering data |
US9043934B2 (en) | 2012-04-06 | 2015-05-26 | Wayne Odom | System, method, and device for delivering communications and storing and delivering data |
US9378339B2 (en) | 2012-04-06 | 2016-06-28 | Wayne Odom | System, method, and device for delivering communications and storing and delivering data |
US8448236B1 (en) | 2012-12-07 | 2013-05-21 | Wayne Odom | System, method, and device for storing and delivering data |
US8844054B2 (en) | 2012-04-06 | 2014-09-23 | Wayne Odom | System, method, and device for communicating and storing and delivering data |
US8677510B2 (en) | 2012-04-06 | 2014-03-18 | Wayne Odom | System, method, and device for communicating and storing and delivering data |
KR101438978B1 (ko) | 2012-12-31 | 2014-09-11 | 현대자동차주식회사 | 리프로그래밍 방법 및 시스템 |
KR102252379B1 (ko) * | 2013-06-24 | 2021-05-14 | 삼성전자주식회사 | 메모리 시스템 및 이의 독출 방법 |
US20150256916A1 (en) * | 2014-03-04 | 2015-09-10 | Knowles Electronics, Llc | Programmable Acoustic Device And Method For Programming The Same |
US9928079B2 (en) | 2014-09-23 | 2018-03-27 | Dialog Semiconductor (Uk) Limited | Conditional processor auto boot with no boot loader when coupled with a nonvolatile memory |
KR20200066882A (ko) * | 2018-12-03 | 2020-06-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
TWI688965B (zh) * | 2019-08-14 | 2020-03-21 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 |
KR20210034711A (ko) * | 2019-09-20 | 2021-03-31 | 삼성전자주식회사 | 메모리 셀의 신뢰성에 따라 패리티 비트들을 선택적으로 생성하는 저장 장치 및 그것의 동작 방법 |
CN110797076B (zh) * | 2019-10-16 | 2021-09-14 | 中国科学院微电子研究所 | 一种NAND Flash时序测试方法 |
CN111008045B (zh) * | 2019-11-14 | 2023-03-21 | 中国航空工业集团公司洛阳电光设备研究所 | 一种片外flash大容量程序自动加载方法 |
CN112164356B (zh) * | 2020-09-21 | 2022-04-26 | 昆山龙腾光电股份有限公司 | 检错方法及点亮治具 |
US11522563B1 (en) | 2021-10-13 | 2022-12-06 | Western Digital Technologies, Inc. | Processor instructions for iterative decoding operations |
CN114764347A (zh) * | 2022-04-14 | 2022-07-19 | 重庆长安汽车股份有限公司 | 一种多核控制器的程序校验系统、校验方法及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522076A (en) * | 1993-05-13 | 1996-05-28 | Kabushiki Kaisha Toshiba | Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function |
CN1124376A (zh) * | 1994-12-06 | 1996-06-12 | 国际商业机器公司 | 改进的数据存储设备及操作方法 |
US5794007A (en) * | 1995-11-03 | 1998-08-11 | Intel Corporation | System and method for programming programmable electronic components using board-level automated test equipment |
KR20020041005A (ko) * | 2000-11-25 | 2002-05-31 | 구자홍 | 원격 소프트웨어 업그레이드 시스템 및 방법 |
CN1428954A (zh) * | 2001-12-26 | 2003-07-09 | 富士通株式会社 | 处理器及其引导方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822581A (en) | 1995-09-29 | 1998-10-13 | Intel Corporation | Method for CMOS configuration information storage and retrieval in flash |
JPH09204367A (ja) * | 1996-01-25 | 1997-08-05 | Mitsubishi Electric Corp | フラッシュディスクカードにおけるフラッシュメモリデータのリフレッシュ方法 |
JPH10116187A (ja) | 1996-10-11 | 1998-05-06 | Mitsubishi Electric Corp | マイクロコンピュータ |
KR20010087868A (ko) | 2000-03-09 | 2001-09-26 | 김광수 | 리눅스 운영 체제 부팅 방법 |
US7073064B1 (en) * | 2000-03-31 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus to provide enhanced computer protection |
JP4601119B2 (ja) * | 2000-05-02 | 2010-12-22 | 株式会社アドバンテスト | メモリ試験方法・メモリ試験装置 |
JP2002055822A (ja) | 2000-08-08 | 2002-02-20 | Nec Corp | 端末装置のプログラム制御方式およびその方法、並びにその制御プログラムを記録する記録媒体 |
DE10050604A1 (de) | 2000-10-12 | 2002-04-25 | Siemens Ag | Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten |
GB0123415D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
WO2003044732A1 (fr) * | 2001-11-23 | 2003-05-30 | Netac Technology Co., Ltd. | Procede de fabrication de dispositif a memoire a semiconducteurs et dispositif portant des interfaces multiples |
US7234052B2 (en) | 2002-03-08 | 2007-06-19 | Samsung Electronics Co., Ltd | System boot using NAND flash memory and method thereof |
KR100448905B1 (ko) * | 2002-07-29 | 2004-09-16 | 삼성전자주식회사 | 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치 |
-
2003
- 2003-12-25 JP JP2003431178A patent/JP4404625B2/ja not_active Expired - Lifetime
-
2004
- 2004-12-22 US US11/019,054 patent/US7308567B2/en active Active
- 2004-12-24 CN CNB2007101423499A patent/CN100541431C/zh active Active
- 2004-12-24 CN CNB200410103669XA patent/CN100336020C/zh active Active
- 2004-12-24 KR KR1020040112238A patent/KR20050065431A/ko active IP Right Grant
-
2007
- 2007-11-13 US US11/984,008 patent/US7925928B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522076A (en) * | 1993-05-13 | 1996-05-28 | Kabushiki Kaisha Toshiba | Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function |
CN1124376A (zh) * | 1994-12-06 | 1996-06-12 | 国际商业机器公司 | 改进的数据存储设备及操作方法 |
US5794007A (en) * | 1995-11-03 | 1998-08-11 | Intel Corporation | System and method for programming programmable electronic components using board-level automated test equipment |
KR20020041005A (ko) * | 2000-11-25 | 2002-05-31 | 구자홍 | 원격 소프트웨어 업그레이드 시스템 및 방법 |
CN1428954A (zh) * | 2001-12-26 | 2003-07-09 | 富士通株式会社 | 处理器及其引导方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101183313A (zh) | 2008-05-21 |
US20050144430A1 (en) | 2005-06-30 |
CN1655121A (zh) | 2005-08-17 |
JP4404625B2 (ja) | 2010-01-27 |
KR20050065431A (ko) | 2005-06-29 |
JP2005190201A (ja) | 2005-07-14 |
US20080082860A1 (en) | 2008-04-03 |
CN100541431C (zh) | 2009-09-16 |
US7308567B2 (en) | 2007-12-11 |
US7925928B2 (en) | 2011-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100336020C (zh) | 信息处理设备 | |
CN1764906A (zh) | 数据处理系统中的存储器管理 | |
CN1538449A (zh) | 非易失性半导体存储装置、电子卡及电子装置 | |
CN1522405A (zh) | 数据处理设备和同步数据处理设备中的第一与第二处理装置的方法 | |
CN1975697A (zh) | 保护存储器的方法、装置和系统 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1537274A (zh) | 处理系统或计算机系统的任务控制方法和计算机程序 | |
CN1648876A (zh) | 闪速存储器的数据管理设备和方法 | |
CN1794168A (zh) | 信息处理设备、信息处理方法、半导体器件及计算机程序 | |
CN1565034A (zh) | 同步型半导体存储器设备模块及其控制方法与信息设备 | |
CN1498395A (zh) | 图像合成装置和图像合成方法 | |
CN1734399A (zh) | 信息处理装置和电力控制方法 | |
CN1799024A (zh) | 处理消息摘要指令 | |
CN1117315C (zh) | 微处理机及多处理机系统 | |
CN1848070A (zh) | 数据存储设备、重构控制设备、重构控制方法与存储介质 | |
CN1758213A (zh) | 带有共享内容的异构型并行多线程处理器(hpmt) | |
CN1873687A (zh) | 图像处理装置、方法以及存储程序的存储介质 | |
CN1627271A (zh) | 闪速存储器和闪速存储器的映射控制设备和方法 | |
CN1942854A (zh) | 屏幕转换控制装置 | |
CN1892630A (zh) | Dma数据传送装置、半导体集成电路装置及数据传送方法 | |
CN1716200A (zh) | 积体内电路电路程式化的装置与方法 | |
CN1286005C (zh) | 微处理器 | |
CN1300395A (zh) | 处理器 | |
CN1191523C (zh) | 改写引导程序的无线电通讯设备、方法 | |
CN1619525A (zh) | 电子控制装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200828 Address after: Kyoto Japan Patentee after: Panasonic semiconductor solutions Co.,Ltd. Address before: Osaka Japan Patentee before: Matsushita Electric Industrial Co.,Ltd. |