首页> 中国专利> 使用引导代码引导微处理器系统的方法和装置

使用引导代码引导微处理器系统的方法和装置

摘要

本发明涉及一种利用具有随机存取(并行,例如NOR快闪类型)接口的串行(例如NAND类型)闪存阵列来引导微处理系统的方法和装置。所述方法包括根据所述微处理器的只读存储器(ROM)的例程,当开启电源时将存储在所述串行(例如NAND类型)闪存阵列中的引导代码装载程序装载到RAM;根据所述引导代码装载程序,将存储在所述串行闪存中的引导代码装载到所述微处理器的内部或外部(主)RAM中;根据所述引导代码,将存储在所述串行闪存中的应用代码装载到主(RAM)存储器中;以及执行所述应用代码。相比较基于NOR快闪的系统,所述系统以较低花费制造,并同时确保了微处理器的灵活性。

著录项

  • 公开/公告号CN1975670A

    专利类型发明专利

  • 公开/公告日2007-06-06

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN200610063903.X

  • 发明设计人 吴志雄;蔡殷锡;朴信奎;

    申请日2006-11-15

  • 分类号G06F9/445;

  • 代理机构北京市柳沈律师事务所;

  • 代理人王志森

  • 地址 韩国京畿道

  • 入库时间 2023-12-17 18:42:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-06-13

    授权

    授权

  • 2009-01-14

    实质审查的生效

    实质审查的生效

  • 2007-06-06

    公开

    公开

说明书

技术领域

本发明涉及一种利用存储引导代码的闪存设备来引导微处理器系统的方法和装置,尤其涉及一种利用包括具有随机存取接口的RAM缓冲器的串行(例如,NAND)闪存设备来引导微处理器系统的方法和装置。

背景技术

当接通移动计算设备时,该移动计算设备诸如移动电话、个人数子助理(PDA)、便携式多媒体播放器(PMP)或膝上电脑、或诸如台式机的通用计算设备,就开始引导处理。在引导处理中,初始化内部元件(例如,寄存器、RAM),并且将存储在非易失性存储设备(例如,硬盘驱动器、HDD)中的例如是操作系统(OS)程序的应用代码传送(装载、复制)到主处理器存储器(随机存取存储器、RAM)以便由所述微处理器执行。

过去,提供只读存储器(ROM)作为用于存储包括用来引导系统的例程的引导代码(例如,BIOS,基本输入/输出系统)的存储设备。BIOS的主要功能是准备机器以便存储在各种介质(诸如硬盘驱动器、软盘和CD)上的其它软件程序可以装载、执行,并确保计算机的控制。这种处理公知为“启动(booting up)”。或者,为了方便引导代码的更新,提供可擦可编程只读存储器(EPROM)作为用于存储引导代码的存储设备。最近,能够写和电擦除数据的半导体和其它固态存储设备被用来存储引导系统的可执行代码。例如,使用了电可擦可编程只读存储器(EEPROM)、NOR闪存、划分位线NOR(DINOR)闪存(其具有NOR闪存的修改结构)、NAND闪存和/或AND闪存。用于闪存设计的四种主要结构是NOR、NAND、AND和DINOR。

所述EEPROM、NOR闪存和DINOR闪存是相似的,因为它们的每个都为每个位线提供接触电极(contact electrode),并且每个单元连接到位线,因此EEPROM、NOR闪存和DINOR闪存可不管数据存储在所述单元中的顺序而读取或写入任意的地址数据(存储器的随机存取)。诸如单元是并行地排列在位线和地线之间的EEPROM、NOR闪存或DINOR闪存的非易失性半导体设备可称为并行闪存。

另一方面,单元是串行地连接在位线和地线之间的NAND闪存或AND闪存可称为串行闪存。所述串行闪存的集成度(电路密集度)可以高于并行闪存的集成度。NAND闪存设备的功效是由于所述NAND单元串中的金属触点的缺乏。由于NOR单元需要用于每个单元的独立金属触点,因此NAND闪存单元的大小小于NOR闪存单元的大小。尽管集成度(电路密度)高,但所述串行(例如,NAND)闪存具有不能字节单元操作(单个字节的随机存取)的局限性。因此,通常使用并行闪存作为代码执行设备,并且通常使用串行闪存作为数据存储设备。通常,NAND闪存的优点在于快写(编程)和擦除操作,而NOR闪存的优点在于能够随机存取和字节写入。NOR闪存的随机存取性能允许其中存储的代码的片内执行(execution in place(XiP)),其在嵌入的应用中是经常需要的。

图1和图2是图解说明常规引导系统的框图。图1示出了利用并行(NOR)闪存的常规引导系统,以及图2示出了利用串行(NAND)闪存的常规引导系统。

参见图1,当开启系统的电源时,通过系统总线11将OS引导代码从NOR闪存12传送(装载、复制)到主控制器(微处理器)10。主控制器10利用在并行(NOR)闪存中存储的单独的字节的随机存取、根据OS引导代码中的例程来执行引导处理,并且因此可以不需要具有将OS图像装载到主存储器的例程的引导装载程序。引导处理所需要的OS图像可以包括在OS引导代码中以提供给所述主控制器10。此外,所述OS图像也可以存储在诸如硬盘驱动器的非易失性存储设备中。主控制器10根据OS引导代码中的例程来执行将OS图像装载到主存储器13中。

参见图2,当开启系统时,主控制器(微处理器)20执行引导ROM 23中存储的引导装载程序的读取。在串行(NAND)闪存中不可能进行代码的单独的字节的随机存取或片内执行(XiP),因此需要具有用来将OS图像装载到主存储器的例程的引导装载程序。根据从引导ROM 23中复制的引导装载程序的例程,主控制器20执行将存储在NAND闪存25中的OS图像装载到主存储器21中。OS图像被装载到主存储器21。NAND快闪控制器24执行将从系统总线22接收到的命令和数据传送到NAND闪存25,并提供从NAND闪存25传送的数据到所述系统总线22。

一些引导系统在内部ROM中包括OS引导代码或引导装载程序,而其它引导系统从微处理器的外部设备,也就是存储器的主控制器获得OS引导代码或引导装载程序。

图3是图解说明常规引导系统的框图。

参见图3,引导系统包括微处理器30,NAND闪存控制器40,NAND闪存45,和主存储器50。

微处理器30包括中央处理器单元(CP)内核31,存储引导装载程序的内部ROM 32,内部RAM 33和接口35。

当接通电源时,CPU内核31通过所述内部总线34存取内部ROM 32,以便执行存储在所述内部ROM 32中的引导装载程序。根据(通过执行)引导装载程序的例程,微处理器30将存储在NAND闪存45中的OS图像复制(装载)到主存储器50。NAND快闪控制器40利用系统总线60可操作地连接(接口连接)到NAND闪存45。

包括在微处理器30中的ROM 33一般存储初始化CPU内核的子系统的初始化代码、用于引导系统的代码、以及从闪存下载应用代码的监视程序代码,等等。由于用于引导所述系统的代码(引导代码)是存储在内部ROM中,因此引导系统可安全地免受黑客攻击或其它可能从OS图像的更新处理中产生的错误。此外,引导系统的开发者可通过将机密库模块包括在内部ROM中来保护所有权(例如,商业秘密)代码或信息。

近来,利用存储在内部ROM中的引导代码,NOR闪存和NAND闪存都已经作为微处理器的外部存储设备(如硬盘驱动器)来使用,以便对在引导系统中进行引导所必要的应用代码进行存储。

NOR闪存支持存储代码的随机存取,但所述NOR闪存的价格高。由于容纳更大大小的应用代码的计算设备不断地被开发,因此由于用来存储大应用代码的大NOR闪存的价格高而使计算设备的价格也升高。

NAND闪存的价格一般低于NOR闪存的价格,但常规的NAND闪存不能支持对存储在其中的数据(例如,可执行代码)的随机存取。因此,在引导系统使用NAND闪存的情况下,引导代码可存储在如图3示出的内部ROM32中、或者如图2示出的外部ROM 23中,所以可将存储在所述NAND闪存中的应用代码传送到用于随机存取执行的主存储器(例如,片内执行)。当引导代码存储在内部ROM(如图3示出的32)中时,包括内部ROM 32的微处理器可以取决于NAND闪存的确切结构,因此微处理器的灵活性降低。从而,需要一种在确保微处理器的灵活性的同时利用诸如NAND闪存的相对便宜的串行闪存来引导微处理器系统(例如,包括内部ROM的微处理器系统)的方法。

发明内容

本发明的示例性实施例提供了一种在确保微处理器灵活性的同时利用便宜的闪存设备(例如,NAND闪存)来引导系统的方法,以及利用快闪存储设备中存储的引导代码的引导系统。

本发明的示例性实施例提供一种用于引导系统、具有随机存取(例如,并行快闪类型)接口的快闪存储设备(例如,包括NAND闪存阵列)。本发明的其它实施例提供一种用于存储引导代码并用于引导系统的微处理器系统,其利用具有随机存取接口的便宜的串行闪存(例如,NAND闪存)。本发明的示例性实施例也提供一种在利用引导系统的便宜的串行闪存(例如,NAND闪存)的微处理器系统中更新引导代码的方法。

本发明的第一方面提供一种利用通信耦合到具有随机存取接口的RAM缓冲器的串行闪存阵列来引导微处理器系统的方法。所述方法包括根据微处理器的ROM(例如,微处理器的内部ROM)的例程来执行引导代码装载程序(其在电源接通时已经从所述串行闪存装载到RAM缓冲器中);根据(通过执行)引导代码装载程序,将存储在串行闪存阵列中的引导代码传送到微处理器中的内部RAM;根据(通过执行)所述引导代码,将存储在所述串行闪存阵列中的应用代码传送到主存储器中;以及执行所述应用代码。

所述方法还包括根据(通过执行)内部ROM的例程来确定用于更新所述串行闪存设备的线缆是否连接到所述微处理器系统;以及如果所述线缆没有被连接,则跳转执行到引导代码装载程序(其是装载到RAM缓冲器中的)。当所述线缆被连接时,所述引导代码装载程序的执行还包括更新存储在所述串行闪存阵列中的内容(例如,引导代码、应用代码和用户数据)。所述方法(例如,在所述引导代码装载程序的执行之内)还可以包括在确定所述线缆是否被连接之前,当系统重置时(例如,当电源接通时)从装载到所述RAM缓冲器(引导RAM)中的快闪配置表(FCT)接收配置信息(例如,用于引导所必要的非可执行信息)。

将存储在所述串行闪存中的应用代码传送(装载、复制)到主存储器可以包括初始化主存储器并且然后将应用代码装载(例如,复制)到所述主存储器。

在本发明的示例性实施例中,微处理器引导系统包括:具有内部ROM和内部RAM的微处理器;主存储器(例如,外部RAM);以及配置来存储应用代码、引导代码和引导代码装载程序的闪存设备(例如,串行、NAND存储器阵列)包括RAM缓冲器和配置来在开启电源时将引导代码装载程序装载到所述RAM缓冲器的有限状态机,其中所述微处理器被配置为根据内部ROM的例程(通过执行例程中的“跳转”指令)来执行引导代码装载程序(在RAM缓冲器中),以根据(通过执行)所述引导代码装载程序的例程将所述引导代码传送到(微处理器的)内部RAM,并根据(通过执行)引导代码装载程序的例程将应用代码传送到所述主存储器,并且然后执行所述应用代码。

所述内部ROM的例程(存储在内部ROM中的可执行代码)可包括:确定用于更新所述闪存设备的线缆是否被连接的确定程序;和当所述(更新)线缆没有被连接时跳转程序执行到所述引导代码装载程序(其已经装载到RAM缓冲器中)的跳转程序。内部ROM的例程(存储在内部ROM的可执行代码)还包括当连接了(更新)线缆时更新存储在闪存设备中的内容(例如,引导代码装载程序、引导代码,应用数据,和快闪配置表)的更新程序。

所述引导代码的例程(其中的可执行代码)可包括:初始化主存储器的初始化程序;和将应用代码(来自串行,例如,NAND存储器阵列)装载(例如,复制)到主存储器中的装载(例如,复制)程序。

有限状态机在电源接通时可自动地将快闪配置表(FCT)(在串行例如NAND存储器阵列中存储的)装载(复制)到RAM缓冲器中,并且所述(内部)ROM的例程(其中的可执行代码)还包括程序,用于在确定线缆是否被连接之前接收装载在(存储在)RAM缓冲器中的FCT中的信息(例如从特定闪存设备接收用于引导的必要信息)。

在本发明的示例性实施例中,用于引导系统的串行闪存设备包括:串行闪存,其被配置来存储应用代码、具有将所述应用代码传送到主存储器的例程的引导代码和具有将所述引导代码传送到微处理器中的内部缓冲器的例程的引导代码装载程序,及具有;RAM缓冲器;以及有限状态机,其被配置来在电源接通时将所述引导代码装载程序装载到所述RAM缓冲器,其中当执行装载到所述RAM缓冲器中的所述引导代码装载程序时,根据所述引导代码装载程序的例程来将所述引导代码传送到微处理器中的内部缓冲器,以及当执行传送到微处理器中的内部缓冲器的引导代码时,根据引导代码的例程将应用代码传送到主存储器。

所述引导代码的例程可以包括初始化主存储器的初始化程序;和将应用代码装载(例如,复制)到主存储器的装载(例如,复制)程序。

在本发明的示例性实施例中,使用具有并行快闪接口的串行闪存设备来引导系统的方法包括根据微处理器中的内部ROM的例程,在电源接通时执行装载到RAM缓冲器中的引导代码;根据所述引导代码将存储在所述串行闪存设备中的应用代码传送到主存储器;以及执行所述应用代码。

引导代码的执行还包括在电源接通时从装载到所述RAM缓冲器中的FCT接收用于引导所必要的信息。

应用程序到所述主存储器的传送可以包括初始化所述主存储器;并将所述应用代码装载(例如,复制)到所述主存储器。

在本发明的示例性实施例中,引导系统包括包含内部ROM的微处理器;主存储器;以及包含存储应用代码和引导代码的串行闪存的串行闪存、RAM缓冲器和当电源接通时装载所述引导代码到所述RAM缓冲器中的有限状态机的串行闪存设备,其中所述微处理器根据所述内部ROM的例程执行所述引导代码,根据所述引导代码的例程将所述应用代码传送到所述主存储器,并执行所述应用代码。

所述内部ROM的例程可以包括确定所述引导代码是否被装载到所述RAM缓冲器中的确定程序;和在所述引导代码被装载到所述RAM缓冲器中时跳转到所述引导代码的跳转程序。

所述引导代码的例程可以包括初始化主存储器的初始化程序、和将所述应用代码装载(例如,复制)到所述主存储器的装载(例如,复制)程序。

在本发明的示例性实施例中,一种利用具有并行快闪接口的串行闪存设备来引导系统的方法包括:根据微处理器中的内部ROM的例程,在电源接通时执行装载到RAM缓冲器中的引导代码装载程序;根据所述引导代码装载程序初始化主存储器;根据所述引导代码装载程序将存储在串行闪存设备中的引导代码装载(例如,复制)到所述主存储器中;根据所述引导代码装载程序执行引导代码;根据所述引导代码将存储在串行闪存设备中的应用代码装载(例如,复制)到主存储器中;以及执行所述应用代码。

所述引导代码装载程序的执行可以包括:根据内部ROM的例程,确定用于更新所述串行闪存设备的线缆是否被连接;以及在所述线缆没有被连接时跳转到装载到RAM缓冲器的引导代码装载程序。所述引导代码装载程序的执行还包括当连接线缆时更新所述串行闪存设备。所述引导代码装载程序的执行还包括在确定所述线缆是否被连接之前,在开启电源时从装载到RAM缓冲器的FCT接收用于引导所必要的信息。

在本发明的示例性实施例中,引导系统包括含有内部ROM的微处理器;主存储器;和包括存储应用代码、引导代码和引导代码装载程序的串行闪存、RAM缓冲器和当开启电源时将所述引导代码装载程序装载到所述RAM缓冲器的有限状态机的串行闪存设备,其中,所述微处理器根据所述内部ROM的例程执行所述引导代码装载程序,根据所述引导装载程序的例程将所述引导代码传送到所述主存储器,根据所述引导代码的例程将所述应用代码传送到所述主存储器,以及执行所述应用代码。

所述内部ROM的例程可以包括:确定用于更新所述串行闪存设备的线缆是否被连接的确定程序;和在所述线缆没有被连接时跳转到装载在所述RAM缓冲器的引导装载程序的跳转程序。所述内部ROM的例程还可以包括当线缆被连接时更新所述串行闪存设备的更新程序。

所述有限状态机可在开启电源时执行FCT到RAM缓冲器的装载,以及所述内部ROM的例程还包括在确定所述线缆是否被连接之前,从装载到所述RAM缓冲器的FCT接收用于引导所必要的信息。

在本发明的示例性实施例中,用于引导系统的串行闪存设备包括:配置来存储应用代码、具有用于将所述应用代码传送到主存储器的例程的引导代码、以及具有用来将所述引导代码传送到微处理器中的内部缓冲器的引导代码装载程序的串行闪存;RAM缓冲器;以及配置来在开启电源时将所述引导代码装载程序装载到所述RAM缓冲器的有限状态机,其中,当执行装载到所述RAM缓冲器的引导代码装载程序时,根据所述引导代码装载程序的例程将所述引导代码传送到所述主存储器,并且在执行所述引导代码时,根据所述引导代码的例程将所述应用代码传送到所述主存储器。

所述引导代码装载程序的例程可包括:初始化主存储器的初始化程序;和将所述引导代码装载(例如,复制)到所述主存储器的装载(例如,复制)程序。

在本发明的示例性实施例中,一种更新包括串行闪存和RAM缓冲器并具有并行快闪接口的串行闪存设备的方法包括:接收使确定装载到所述RAM缓冲器的所述串行闪存设备是否有效的信息;在所述串行闪存设备无效时检查是否连接了更新线缆;当更新线缆被连接时将通过所述更新线缆传送的第一更新代码装载到微处理器中的内部缓冲器;并根据所述第一更新代码的例程,编程通过所述更新线缆传送的第一代码到所述串行闪存中。

所述第一代码包括应用代码;具有用于传送所述应用代码到主存储器的例程的引导代码;具有用于传送所述引导代码到所述微处理器中的内部缓冲器的例程的引导代码装载程序;和指示所述应用代码的分支地址(branchaddress)和引导标记的FCT,其中所述引导标记指示默认更新线缆的类型。

所述方法还包括在所述串行闪存设备无效和没有连接更新线缆时输出错误消息。

所述方法还包括:在所述串行闪存设备有效时,检查是否连接了在引导标记中设置的默认更新线缆;当连接了所述默认更新线缆时,将通过默认更新线缆传送的第二更新代码装载到所述微处理器的内部缓冲器中;并根据所述第二更新代码的例程编程所述第二更新代码到所述串行闪存中。

所述方法还包括:在没有连接默认更新线缆时,检查是否连接了非默认的更新线缆;当连接了所述非默认更新线缆时,将通过所述非默认更新线缆传送的第三更新代码装载到所述微处理器的内部缓冲器中;并根据所述第三更新代码的例程,编程通过非默认更新线缆传送的第三代码到所述串行闪存中。

因此,根据本发明的引导系统的方法可以低成本引导所述系统,同时确保了微处理器的灵活性。

在此公开了本发明的详细说明性实施例。然而,在此公开的特定结构和功能细节只表示说明本发明的示例性实施例的目的。然而,这一发明可以许多可替换形式具体体现并且不应当局限于在此提出的实施例。

因此,本发明易于有各种修改和可替换的形式,通过附图的示例将示出其特定实施例并将详细描述。然而,应当可以理解,这并不意味限制本发明到所公开的特定形式中,恰恰相反,本发明将覆盖落入本发明的精神和范围内的所有修改、等同物和替换物。在附图的全部描述中,相同的附图标记表示相同的元件。

可以理解的是,尽管在此使用了术语第一、第二等来描述各种元件,然而这些元件不应当被这些术语限制。这些术语仅仅是用来区别一个元件和另一个元件。例如,在不偏离本发明的范围之内,第一元件也可叫做第二元件,并且类似地,第二元件也可以叫第一元件。如在此所使用的,术语“和/或”包括一个或多个列出的相关项的任何一个和所有组合。

可以理解的是,当一个元件被称为“连接”或“耦合”到另一个元件时,它可以直接连接或耦合到另一个元件或者可以存在居间元件。相反,当一个元件被称为“直接连接”或“直接耦合”到另一个元件时,就不存在居间元件。用来描述元件之间的关系的其他词语应当以相似的方式解释(即,“之间”与“直接在...之间”相对,“临近”与“直接临近”相对等)。

在此使用的术语学仅仅是为了描述特定实施例的目的,并不意欲限定本发明。如在此使用的,单数形式“一(a)”、“一(an)”和“这个(the)”意指也包括复数形式,除非文章中有清楚的其他指示。还可以理解的是,当在此使用术语“包括(comprises)”、“包括(comprising)”、“包含(includes)”和/或“包含(including)”时,表明论述的特征、整数、步骤、操作、元件和/或组件的存在,并排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或组的存在或添加。

除非其他定义,在此使用的所有术语(包括科技术语)具有与本发明所属的技术领域的普通技术人员通常理解的相同意义。还可以理解的是,诸如这些以字典中通常使用定义的术语应当解释为具有与它们在相关技术环境中的意义一致的意义,并不能以主观的或超出正式场景来解释,除非在此有特别定义。

以下,将参考附图对本发明进行详细地解释。

附图说明

通过参考附图详细说明本发明的示例性实施例,本发明对本领域的普通技术人员来讲将变得更加显而易见,其中相同的元件由相同的附图标记表示,及:

图1、2和3是图解说明常规引导系统的框图;

图4是根据本发明示例性实施例的图解说明引导系统的框图;

图5是图解说明存储在图4和6示出的串行闪存设备200内的内部ROM120中的代码的存储器映射图;

图6是图解说明图4示出的所述串行闪存设备200的示例性实现的详细框图;

图7是图解说明更新图4和6的串行闪存设备200的处理的流程图;

图8是图解说明用于更新图4示出的串行闪存设备200的引导系统的操作的框图和存储器映射图;

图9是图解说明利用图4示出的所述串行闪存设备200的引导处理的流程图;

图10是图解说明利用图4示出的串行闪存设备200的可替换引导系统的操作的组合流程图、框图和存储器映射图;

图11、12和13是根据本发明示例性实施例的图解说明引导系统的引导和更新处理的流程图;

图14是图解说明利用包括足够大的引导RAM 226的图4中的所述串行闪存设备200的引导处理的流程图;

图15是图解说明利用包括足够大的引导RAM 226的图4中的所述串行闪存设备200来引导微处理系统的可替换处理的操作的组合流程图、框图和存储器映射图;

图16是根据本发明示例性实施例的图解说明利用图4的串行闪存设备200的可替换引导处理的流程图;

图17是根据本发明示例性实施例的图解说明引导系统的操作的组合流程图、框图和存储器映射图。

具体实施方式

图4是根据本发明的示例性实施例示例的图解说明引导系统的框图。

参见图4,所述引导系统可以包括微处理器100、串行闪存设备200和主存储器300。所述微处理器100、串行闪存设备200和主存储器300可以通过外部总线400传送和接收数据和控制信号。

所述微处理器100可以包括中央处理单元(CPU)内核110、内部只读存储器(ROM)120、内部随机存取存储器(RAM)130和接口150。此外,所述微处理器100还包括连接所述CPU内核110、内部ROM 120和内部RAM130的内部总线140。所述微处理器100可实现为片上系统(SOC)。

所述CPU内核110可提供用于控制所述引导系统的指令,并执行用于引导所述系统的数据处理。可将Advanced RISC Machine(ARM)内核(core)用作CPU内核110。

所述内部ROM 120可包括用于初始化所述微处理器100的代码、用于监视所述系统的引导的代码等等。将参考图3来详细地描述所述内部ROM 120。

所述内部RAM 130可对应于微处理器100的内部缓冲器,并具有高的存取速度。

所述串行闪存设备200可以包括用于引导所必要的代码和具有并行快闪接口。在优选实施例中,可使用来自Samsung Electronics Co.Ltd.的OneNANDTM闪存设备来实现所述串行闪存设备200。OneNAND闪存设备具有并行接口(与图6中的NOR快闪接口210类似)并包括NAND快闪阵列(图6中的NAND闪存单元260的阵列)。OneNAND闪存设备包括RAM缓冲器(图6中的220,例如,由静态随机存取存储器(SRAM)形成)以便支持所述并行(NOR)接口。所述串行闪存设备200(例如,OneNAND存储器设备)可实现为包括与NAND快闪阵列集成的标准并行(NOR)快闪接口的单一晶粒(single-die)芯片。所述串行闪存设备200(例如,OneNAND存储器设备)可以包括接口逻辑和NAND快闪阵列和内部缓冲器RAM(图6中的220)。所述缓冲器RAM可包括为引导代码保留的专用引导RAM(图6中的222)部分,以及用于缓冲数据的专用数据RAM(图6中的221)部分。所述内部操作时钟(未图示)的频率可超过54MHz。OneNAND存储器设备对于主机(100)可具有a×16个并行接口,并具有~76ns随机存取时间的实际速度(achieved speed),并提供可编程读取等待时间。OneNAND存储器设备通过在扇区计数寄存器中分配将要被读取的扇区数量(图6的内部寄存器单元240中)来提供多扇区读取操作。图6示出的OneNAND存储器设备包括一个(块大小的(block-sized))OTP(一次性可编程(one time programmable))(图6的270),其可用来提高系统安全性或提供产品识别能力。

所述主存储器300可存储诸如由微处理器(主机)100执行的操作系统(OS)程序和应用程序、数据和指令的各种类型的应用代码。动态随机存取存储器(DRAM)可用作所述主存储器300。或者,能随机存取的其它存储设备或SRAM也可用作主存储器300。

图5是图解说明存储在图6的所述串行闪存设备200内的内部ROM中的代码的存储器映射图。

所述内部ROM 120可以存储初始化代码121、主初始代码122、监视代码123和至少一个通信驱动程序,诸如通用串行总线(USB)驱动程序124、通用异步收发机(UART)驱动程序125和直接存储器存取控制(DMAC)驱动程序126。

所述初始化代码121可应用来初始化所述CPU内核的子系统。例如,当开启电源时,所述初始化代码121可初始化用于执行存储在所述内部ROM中的其他代码的子系统。

所述主初始代码122可被应用在微处理器的初始化之后控制系统的引导程序顺序。例如,可将所述主初始代码122编程来确定是否连接了用于下载程序的线缆。如果用于下载程序的线缆被连接,则可将所述主初始代码122编程来强制监视程序以执行程序的下载,并在所述用于下载程序的线缆没被连接的情况下立即执行引导。

所述内部监视代码123可具有用于更新并行闪存设备的例程并执行引导所述系统的初始处理。

所述USB驱动程序124可执行USB通信,而所述UART驱动程序125可执行UART通信。所述直接存储器存取(DMAC)驱动程序126可与UART驱动程序125一起运行,从而提高传送数据到目标存储器的速度。

图6是图解说明图4示出的串行闪存设备200的示例性实现的框图。

所述串行闪存设备200最好包括并行接口(用作主机接口210),例如,NOR快闪接口。所述串行闪存设备200包括主机接口210、缓冲器RAM 220、有限状态机230、内部寄存器单元240、纠错逻辑(ECC)单元250、NAND快闪阵列260。所述串行闪存设备200可还包括一次性可编程(OTP)单元270。在优选实施例中,所述串行闪存设备200可以由OneNAND闪存来实现,其包括可操作地连接到并行(NOR快闪)接口的NAND快闪阵列。

所述主机接口210可实现为并行(NOR快闪)接口。例如,所述主机接口210可包括各种管脚(pin),诸如数据管脚DQ0到DQ15、地址管脚A0到A15、时钟管脚CLK、芯片使能管脚/CE、输入使能管脚/OE、写使能管脚/WE、复位管脚/RP、地址有效性检查管脚/AVD和/或中断管脚INT。

所述缓冲器RAM 220可用作所述串行闪存设备200的内部随机存取存储器缓冲器,并可包括专用引导RAM部分,其存储在电源接通时被存储在所述NAND快闪阵列260中的引导代码装载程序和存储快闪(配置)表格(FCT),以及包括在数据输出时用作高速缓冲存储器的数据RAM部分。

有限状态机230在电源接通之后控制所述串行闪存设备200的操作。所述有限状态机230可执行数据装载例程,其中在电源接通时,所述数据装载例程执行将包括所述快闪配置表(FCT)和引导代码装载程序的NAND快闪阵列260中的部分数据(例如,存储在块0中的1KB)装载(例如,复制)到所述串行闪存设备200的缓冲器RAM 220。所述有限状态机230可通过内部传统的NAND快闪接口(未图示)来与NAND快闪阵列260通信。有限状态机是一种设备或设备的块,其具有有限数量的状态,并且其能够始终处于输入状态(it can ever be in input)并可以对输入进行操作以使之从一种状态转移到另一种状态或促使发生输出或动作。有限状态机在任何时刻只能处于一种状态。有限状态机(FSM)可通过可编程逻辑阵列(PLA)、或可编程微处理器(在本领域中众所周知以一组用于微处理器的指令来实现FSM)、或通过各种其他数字电路或机械设备来实现。

所述内部寄存器单元240可包括地址寄存器、命令寄存器、配置寄存器、状态寄存器等。

所述纠错(ECC)逻辑250可在所述NAND快闪阵列260中发生错误块时纠正错误块(用备用块替换所述错误块),并检查所述NAND快闪阵列260的状态。

所述NAND快闪阵列260可以包括多个具有传统的串行(例如,NAND)闪存结构的块。

所述OTP单元270可以仅被编程一次,从而对于输入安全或产品单元识别是可用的。

可以理解的是,所述串行闪存设备200可替换地通过省略上述描述的一个或多个元件,或组合上述描述的两个或更多元件来实现。此外,也可以理解所述串行闪存设备200还可包括具有与上述元件不同功能的其他元件。在此,所述串行闪存设备200被理解为基本包括具有外部并行(例如,NOR快闪)接口和内部NAND(串行)闪存的存储器芯片。例如,来自SamsungElectronics Co.Ltd.的OneNAND闪存具有外部NOR快闪(并行)接口和内部NAND(串行)快闪阵列。

图7是图解说明更新图4和6的所述串行闪存设备200的处理的流程图。

所述微处理器100根据存储在微处理器的内部ROM中的例程,可从所述串行闪存设备200中的引导RAM 222接收快闪配置表(FCT)(步骤S510)。当FCT被确定无效时,用于引导所述程序所必要的代码,诸如应用代码、引导代码和引导代码装载程序不存在于所述串行闪存设备中,并且因此需要初始编程所述串行闪存设备。诸如专用USB线缆或UART线缆的串行线缆被用来初始编程并更新所述串行闪存设备。

将所述串行线缆连接到所述引导系统,使得更新所述串行闪存设备(步骤S520),并利用所述串行线缆从主机程序提供器下载主机下载程序到所述串行闪存设备。

通过所述串行线缆将所述主机下载程序下载到微处理器100的内部RAM130(步骤S530),并且临时存储在微处理器100的内部RAM 130中的主机下载程序接着被编程到所述串行闪存设备的NAND快闪阵列(步骤S540)。

图8是图解说明用于更新图4示出的串行闪存设备200的引导系统的操作的组合流程图、框图和存储器映射图。

执行存储在微处理器100的内部ROM 120中的监视程序来检查所述串行闪存设备200中的引导RAM 222的快闪配置表(FCT)(路径S1)。由于所述NAND快闪阵列260在开始时(在最初的编程之前)是空的,因此所述FCT不存在所述串行闪存设备200的引导RAM 222中。从而,由于所述FCT是无效的,因此监视程序执行环回(loop-back)测试。所述环回测试是一个检查是否连接下载线缆的处理。当连接了所述下载线缆时,所述监视程序执行是否已经从主机程序提供器500接收到表示更新开始的特定命令的监视。

当已经从主机程序提供器500接收到指示更新开始的特定命令(AT++LOAD)时(路径S2),所述监视程序强迫执行同样存储在微处理器100的内部ROM 120中的第一更新代码,也就是第一级链接(FSL)。

所述第一级链接(FSL)程序使所述微处理器100通过所述线缆从所述主机程序提供器500接收第二更新代码550,也就是第二级链接(SSL),并将所述SSL复制到微处理器100的内部RAM 130中(路径S3)。然后,由所述微处理器100片内执行存储在所述内部RAM 130中的所述SSL。

所述SSL程序等待来自下载程序560的“加载”命令(AT##B)。当所述SSL接收“加载”命令(AT##B)时(路径S4),所述NAND快闪阵列260通过从所述主机程序提供器500下载应用代码540、引导代码,也就是OneNAND复制驱动程序(OCD)530、以及引导代码装载程序,也就是OCD装载程序520(路径S5),并将该代码写入所述NAND快闪阵列260来编程。

图9是图解说明利用图4所示的串行闪存设备200的引导系统的流程图。

当电源接通(START)时,所述串行闪存设备200(图4中所示)将快闪配置表(FCT)和OCD装载程序装载到缓冲器RAM(引导RAM)(图8示出的222)(步骤S710)。所述FCT可提供用于利用图4和6示出的串行闪存设备200引导微处理器100所必要的信息。例如,所述快闪配置表(FCT)可形成表1所示。

表1

  签名字(Signature Word)(4字节)  快闪表版本(Flash Table Version)(4字节)  引导标记和IROM监视延迟(Boot Flag and  IROM Monitor Delay)(4字节)  应用分支地址(Application Branch Address)  (4字节)  OCD大小(OCD Size)(4字节)  保留(Reserved)(4字节)  校验和(Checksum)(4字节)

所述引导标记(Boot Flag)表示用于设置“默认”更新线缆的标记。例如,当将引导标记设置为USB时,所述USB线缆是用于更新所述串行闪存设备的默认更新线缆,以及当将引导标记设置为UART时,所述UART线缆是用于更新所述串行闪存设备的默认更新线缆。

所述IROM监视器延迟(IROM Monitor Delay)表示内部ROM监视程序在环回测试过程中等待的时间周期。所述环回测试将在下面描述。假设所述主机程序提供器通过更新线缆连接,运行在微处理器100中的监视程序将字符串传送给所述更新线缆,然后等待预定时间以检查是否正确地的接收所述传送的字符串。例如,在微处理器100中运行的监视程序将字符串“ABC”传送到所述更新线缆并等待100ms。当在100ms中微处理器100通过所述更新线缆返回接收到字符串“ABC”时,环回测试是成功的。

所述应用分支地址(Application Branch Address)表示在能够执行的状态中应用代码的进入地址。所述OCD大小(OCD Size)表示所述引导代码OCD的大小。

所述存储在内部ROM中的主初始程序代码从引导RAM接收所述快闪配置表(FCT)(步骤S720)。在确定所述FCT有效之后,当所述下载线缆没有连接时,执行从所述内部ROM 130跳转到OCD装载程序,并由微处理器100执行所述OCD装载程序(步骤S730)。

所述OCD装载程序可包括将所述OCD传送到微处理器100的内部RAM130的例程(步骤S740)。所述OCD装载程序对于下列原因是必要的。所述OCD可包括初始化由所述微处理器100使用的主存储器300的例程、用于将所述应用代码装载(例如,复制)到所述主存储器300的例程、用于管理其它NAND块的应用例程等等。大(large-sized)的应用可以不被序列地(连续地)排列在所述串行闪存设备中。换句话说,具有大于一个块的大小的应用可分散(分段)在所述串行闪存中,因此所述OCD可包括序列地聚集所述分散的(分段的)程序的例程,以将所聚集的程序以可执行的形式传送给所述主存储器300。此外,所述OCD可包括用于检查错误块的例程,用于检查应用代码的有效性的例程和/或用于检查安全性代码的例程。因此,所述OCD的大小可大于所述引导RAM 222的大小。在这种情况下,所述OCD没有被装载到所述引导RAM 222中,而是被装载到内部RAM 120或主存储器300中,以便所述OCD可直接地执行所述引导处理。因此,对于将所述OCD传送到诸如微处理器100的内部RAM 120或主存储器300的能够随机存取的足够大的存储器设备而言,OCD装载程序是必须的。

传送所述OCD到内部RAM 130或主存储器300的OCD装载程序不需要用于初始化所述内部RAM 130或主存储器300的例程,以便所述OCD装载程序的大小足够小来被装载到所述引导RAM中。所述OCD在被传送到所述微处理器100的内部RAM 130或所述主存储器300中之后被执行。

如果所述OCD已经被传送到内部RAM 130并在那儿片内执行,那么所述OCD初始化所述主存储器300(步骤S750)并且然后将所述应用代码复制到所述主存储器中(步骤S760)。所述应用代码可以包括OS程序和各种应用程序。

当所述应用代码被复制到所述主存储器之后,执行从所述OCD跳转到所述应用代码(步骤S770)。

图10是图解说明利用图4示出的串行闪存设备200的可选引导系统的操作的组合流程图、框图和存储器映射图。

当所述串行闪存设备200的电源接通时,所述串行闪存设备200将存储在所述NAND快闪阵列260中的1KB数据装载到它的引导RAM 222中(路径S1)。所述1KB数据包括快闪配置表(FCT)261和存储在所述NAND快闪阵列260中的OCD装载程序262。然后,执行存储在所述内部ROM 120中的主初始程序以检查装载在所述串行闪存设备200中的引导RAM 222中的FCT 223的有效性(路径S2)。作为检查FCT的结果,当没有连接更新线缆时,所述监视程序执行跳转到装载在所述串行闪存设备200的引导RAM 222中的OCD装载程序224的地址,以执行(例如,片内执行)装载在所述引导RAM 222中的OCD装载程序(路径S3)。

所述OCD装载程序224将存储在NAND快闪阵列260中的OCD 263装载(复制)到微处理器100的内部RAM 130中(路径S4)。通过数据RAM 221所述OCD 263从串行闪存设备200的NAND快闪阵列260传送(复制)到微处理器100的内部RAM 130(路径S4)。在将所述OCD 263传送(复制)到微处理器100的内部RAM 130之后,执行从所述OCD装载程序224跳转到装载到所述内部RAM 130的OCD 263。

所述OCD 263初始化所述主存储器300(路径S5)。然后,OCD 263传送(复制)存储在NAND快闪阵列260中的应用代码264到所述主存储器300。所述应用代码264通过数据RAM 221从串行闪存设备200被传送(复制)到所述主存储器300。在将应用代码264传送(复制)到主存储器300之后,所述OCD 263执行跳转到装载在所述主存储器300中的应用代码310。

图11、12和13是图解说明根据本发明示例性实施例的对于引导系统的引导和更新处理的流程图。将利用UART或USB来描述更新所述引导系统的操作。然而,该描述仅仅是图解说明本发明的,也可利用诸如通过NAND快闪阵列260的随机存取的其它方法、通过执行应用程序、或操作系统升级程序、或“系统备份”文件、或“系统恢复”文件、或系统“休眠”文件、或由远程用户(“网络管理员”)上传的可执行文件的微处理器来执行更新引导系统的操作。

参见图11,当电源接通时,初始化所述引导系统(步骤S902)。例如,根据存储在微处理器100的内部ROM 120中的基本SOC的值来初始化所述微处理器,并且将在串行闪存设备200中的NAND快闪阵列260的一些可执行代码装载到串行闪存设备200的引导RAM 222中。

在初始化所述引导系统之后,存储在微处理器100的内部ROM 120中的主初始程序通过检查所述FCT来检查复制在串行闪存设备200的引导RAM222中的快闪配置表(FCT)(或可执行代码)是否有效(步骤S904)。当复制在串行闪存设备200的引导RAM 222中的快闪配置表(FCT)(或可执行代码)无效时,执行关于所述串行闪存设备200的初始下载或更新的操作,并将参考附图13进行描述。当复制在串行闪存设备200的引导RAM 222中的快闪配置表(FCT)(或可执行代码)有效时,确定FCT中的UART标记的状态(是否设置为“是”或“否”)(步骤S906)。当设置了所述UART标记(决定步骤S906的分支“是”)时,所述UART线缆为默认的更新线缆。

当设置了所述UART标记(决定步骤S906的分支“是”)时,执行环回测试(步骤S908),并确定所述环回测试是否成功或失败(步骤S910)。当所述环回测试成功(决定步骤S910的分支“是”)时,执行对于串行闪存设备200(例如,OneNAND快闪)的最初的下载或更新(步骤S920)。当所述环回测试没有成功(决定步骤S910的分支“否”)时,不执行更新,以便执行引导所述微处理器系统的普通处理(A,参见图12)。(引导所述微处理器系统的处理将参考图12进行描述)。

另一方面,当没有设置所述UART标记时(决定步骤S904的分支“否”),确定USB标记的状态(是否设置或没有设置)(步骤S912)。当设置了USB标记时(决定步骤S912的分支“是”),所述USB线缆为默认的更新线缆。如果设置了USB标记(决定步骤S912的分支“是”),确定是否激活第二管脚(决定步骤S916)。所述第二管脚指示所述USB线缆是否对应于所述更新线缆或一般的线缆。当所述第二管脚被激活时(决定步骤S916的分支“是”),连接的USB线缆是一般的USB线缆,以便可立即执行图12示出的引导所述系统的处理,而不更新所述串行闪存设备200。当所述第二管脚没有激活时(决定步骤S916的分支“否”),执行根据USB标准的初始化或启动(boot-up)(步骤S918)。在根据USB标准初始化或启动之后,可更新所述串行闪存设备(例如,OneNAND快闪)(步骤S920)。

当没有设置USB标记时(决定步骤S912的分支“否”),不确定默认更新

在串行闪存设备的引导RAM 222或缓冲器RAM 220的大小不够大的情况下,如上所述执行引导微处理器系统。然而,当串行闪存设备200包括足够大的引导RAM 222时,那么可不需要OCD装载程序。

将参考图14和15来描述根据包括足够大的引导RAM 222(除去OCD装载程序)的串行闪存设备200来引导微处理器系统。

图14是图解说明利用包括足够大的引导RAM 222的图4中的串行闪存设备200的引导处理的流程图。

当电源接通时,包括足够大的引导RAM(图15中的226)(例如,16KB)的串行闪存设备200(图4)执行将快闪配置表(FCT)(图15中的227)和引导代码(OCD)(图15中的228)装载(复制)到串行闪存设备200中的引导RAM 226(步骤S1010)。所述FCT是提供用于利用串行闪存设备200引导系统所必要的信息以及用于确定它的有效性的校验和的快闪配置表。

存储在微处理器100的内部ROM 120中的主初始程序从传送闪存设备200的引导RAM 222接收所述FCT(步骤S1020)。当所述FCT有效时,确定所述OCD是否装载到所述引导RAM 222中(步骤S1030)。监视程序基于可执行引导代码(OCD)的大小确定是否将所述可执行代码(OCD)装载到所述引导RAM 222中。例如,在所述引导RAM 222的大小是16KB(例如,图15中的引导RAM 226)并且所述OCD的大小比较小(例如,10KB)的情况下,所述OCD可立即并全部地装载到所述引导RAM 222中以便片内执行(XiP)。

当所述OCD被装载到所述引导RAM 222中时,所述监视程序执行跳转到装载在所述引导RAM 222中的OCD(步骤S1090)。所述OCD初始化主存储器300(步骤S1060)并将应用代码(存储在NAND快闪阵列260中)复制到所述主存储器300中(步骤S1070)。然后,所述OCD执行跳转到所述应用代码(步骤S1080)。

另一方面,当所述OCD没被装载在所述引导RAM 222中时,所述OCD装载程序被装载到所述引导RAM 222中,因此,所述主初始程序片内执行引导RAM 222中的OCD装载程序(步骤S1040)。然后,所述OCD装载程序将所述OCD传送(复制)到所述微处理器100中的内部RAM 120(步骤S1050)并执行所述OCD。所述OCD初始化所述主存储器300(步骤S1060),然后将所述应用代码复制到所述主存储器300中(步骤S1070)。然后,所述OCD线缆,所以要确定第一管脚的状态(是否被激活)(决定步骤S914)。所述第一管脚指示是否连接了USB线缆。当第一管脚被激活时(决定步骤S914的分支“是”),连接了USB线缆,所以如图11示出执行包括步骤S916的下一个步骤。

当第一管脚没有激活时(决定步骤S914的分支“否”),所述USB线缆没被连接,并执行环回测试(步骤S908)。然后,执行步骤S910以下的步骤。

参见图12,监视程序执行已经装载(复制)到引导RAM 222中、用于引导所述系统的所述OCD装载程序(步骤S922)。所述OCD装载程序将OCD传送(复制)到内部RAM 222(步骤S924)以便片内执行。然后,执行传送到内部RAM 222中的OCD。

首先,所述OCD初始化所述主存储器300(步骤S926)。当所述主存储器300被初始化之后,所述OCD将存储在所述串行闪存设备200的NAND快闪阵列260中的应用代码复制到主存储器300(步骤S928)。当所述应用代码被复制到所述主存储器时,所述OCD执行跳转到在所述主存储器中复制的应用代码(步骤S930)。

参见图13,当在串行闪存设备200的引导RAM 222中复制的快闪配置表(FCT)(或可执行代码)无效时,所述监视程序检查所述第一管脚的状态,以确定所述第一管脚是否被激活(步骤S932)。当所述第一管脚被激活时(决定步骤S932的分支“是”),连接所述USB线缆,以便确定第二管脚是否被激活(决定步骤S934)。当所述第二管脚被激活时(决定步骤S934的分支“是”),所述连接的USB线缆是更新的线缆,因此初始化所述USB(步骤S936),并将主机程序提供器的主机程序编程到所述串行闪存设备200(例如,OneNAND快闪)中(步骤S938)。当所述第二管脚没有被激活时(决定步骤S934的分支“否”),所述连接的USB线缆不是更新的线缆,因此输出错误信息(步骤S944),并在此再次执行步骤S932以下的步骤。

当所述第一管脚没有被激活(决定步骤S932的分支“否”)时,执行环回测试(步骤S940)以确定所述UART线缆是否适当地操作。然后,确定所述环回测试是否成功或失败(步骤S942)。如果所述环回测试成功(决定步骤S942的分支“是”),则将主机程序提供器的主机程序编程到所述串行闪存设备200(例如,OneNAND快闪)中(步骤S938)。如果环回测试失败(决定步骤S942的分支“否”),则输出错误消息(步骤S944)并再次执行步骤S932。执行跳转到所述应用代码(步骤S1080)。

图15是图解说明使用包括足够大的引导RAM 226的图4中的串行闪存设备200引导微处理系统的可替换处理的组合流程图、框图和存储器映射图。

当电源接通时,所述串行闪存设备200将存储在NAND快闪阵列260中的快闪配置表(FCT)261和可执行引导代码266装载(复制)到引导RAM 226中(路径S1)。所述(16KB的)可执行引导代码OCD 228(266)和所述FCT227(265)具有等于或小于所述引导RAM 226的大小(例如,16KB)的大小。然后,微处理器100的内部ROM 120中的监视程序检查装载在所述串行闪存设备200的引导RAM 226中的FCT 227的有效性(路径S2)。作为检查FCT的结果,当更新线缆没被连接时,监视程序的执行跳转到可执行引导代码OCD 228的地址,以便片内执行在引导RAM 226中的OCD(路径S3)。

所述OCD 228初始化所述主存储器300(路径S4)。然后,所述OCD将存储在NAND快闪阵列260中的应用代码267传送(复制)到所述主存储器300(路径S5)。

图15中的引导系统包括具有相对于存储在NAND快闪阵列260中的所述快闪配置表(FCT)261和可执行引导代码266的大小足够大的大小的引导RAM 226,因此,所述OCD可被直接装载并在所述引导RAM 226中被片内执行。

图16是图解说明利用图4的串行闪存设备200的可替换的引导处理流程图。

当电源接通时,图4的串行闪存设备200将快闪配置表(FCT)和可执行引导代码(OCD)装载程序装载到缓冲器RAM 220(图6或图17)中,诸如为引导RAM保留的部分(图6或图17中的222)(步骤S1210)。所述FCT提供用于执行利用所述串行闪存设备200来引导系统所必要的信息。例如,所述FCT可构造为如图1所示的。本领域的普通技术人员可以理解所述FCT可具有各种其他的和不同的数据结构和内容。

在微处理器100的内部ROM 120中的监视程序(图4)从引导RAM 222接收所述FCT(步骤S1220)。当所述FCT有效时,所述监视程序执行引导处理。

所述监视程序执行内部RAM中的OCD装载程序(步骤S1230)。所述OCD装载程序包括用于初始化所述主存储器300的例程、以及用于将所述OCD装载(例如,复制)到所述主存储器300的例程。当执行所述OCD装载程序以便包括用于初始化所述主存储器300的例程以及用于将所述OCD装载(例如,复制)到所述主存储器300的例程时,所述OCD装载程序的大小可大于图7和图8中的OCD装载程序的大小。然而,在所述OCD装载程序被装载到引导RAM中并包括用于初始化所述主存储器300的例程和用于将所述OCD装载(复制)到所述主存储器300的例程的情况下,可执行根据本发明的下列示例性实施例的引导操作。

所述OCD装载程序初始化所述主存储器300(步骤S1240)并且然后将可执行引导代码OCD(263)复制到所述主存储器300(步骤S1250)。所述OCD可以包括用于将应用代码264装载(例如,复制)到主存储器300中的例程。如上所述,所述可执行引导代码OCD 263可包括将大的应用代码264复制到所述主存储器300的各种例程。在将所述可执行引导代码OCD 263装载(复制)到所述主存储器300之后,片内执行在所述主存储器300中的所述可执行引导代码OCD。

所述OCD将存储的应用代码264装载(例如,复制)到所述主存储器300中(步骤S1260)。所述存储的应用代码264可包括操作系统(OS)程序和各种应用程序的一部分或全部。

当存储的应用代码264被复制到所述主存储器300时,片内执行在主存储器300中的所述应用代码(步骤S1270)。

图17是图解说明利用图4的串行闪存设备200引导微处理器系统的可替换处理的组合流程图、框图和存储器映射图。

当电源接通时,所述串行闪存设备200将存储在NAND快闪阵列260中的1KB数据装载到引导RAM 222中(路径S1)。所述存储的1KB数据包括快闪配置表(FCT)261和可执行的引导代码(OCD)装载程序262。然后,在微处理器的内部ROM 120中的监视程序检查在串行闪存设备200的引导RAM 222中的复制的FCT 223的有效性(路径S2)。作为检查所述复制的FCT223的结果,当所述更新线缆没被连接时,监视程序执行跳转到可执行引导代码(OCD)装载程序224的地址,从而片内执行在引导RAM 222中装载(复制)的OCD装载程序(路径S3)。

所述OCD装载程序224初始化所述主存储器300(路径S4)。然后,所述OCD装载程序224将OCD 263传送(复制)到所述主存储器300(路径S5)。所述OCD 263通过数据RAM 221被传送(复制)到所述主存储器300。执行所述传送(复制)到主存储器300的OCD 320,并且所述OCD将存储的应用代码264传送(复制)到所述主存储器300。应用代码264通过所述数据RAM 221被传送(复制)到所述主存储器300(路径S6)。在将应用代码264传送(复制)到所述主存储器300之后,所述OCD执行在所述主存储器300中装载的应用代码310。

如上所述,根据本发明示例性实施例的引导系统的方法通过利用具有随机存取(并行,“NOR”快闪)接口的NAND闪存可以低成本地引导微处理器系统,同时确保包括ROM的微处理器的灵活性。

在将可执行的引导代码(和/或具有用于将所述引导代码传送到所述微处理器的内部存储器的例程的引导代码装载程序)存储在具有随机存储接口的NAND闪存设备时,即使具有随机存取(并行)接口的NAND闪存设备的RAM存储缓冲器的大小不大,根据本发明示例性实施例的引导所述微处理器系统的方法也可引导所述系统。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号