CN101836187A - 无线设备的渐进引导 - Google Patents
无线设备的渐进引导 Download PDFInfo
- Publication number
- CN101836187A CN101836187A CN200880113482A CN200880113482A CN101836187A CN 101836187 A CN101836187 A CN 101836187A CN 200880113482 A CN200880113482 A CN 200880113482A CN 200880113482 A CN200880113482 A CN 200880113482A CN 101836187 A CN101836187 A CN 101836187A
- Authority
- CN
- China
- Prior art keywords
- page
- image
- yard image
- yard
- wireless device
- 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.)
- Granted
Links
- 230000000750 progressive effect Effects 0.000 title abstract description 14
- 230000015654 memory Effects 0.000 claims abstract description 149
- 238000000034 method Methods 0.000 claims abstract description 42
- 230000005055 memory storage Effects 0.000 claims description 59
- 238000011068 loading method Methods 0.000 claims description 45
- 238000004891 communication Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 230000013011 mating Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 41
- 238000013461 design Methods 0.000 description 34
- 238000003860 storage Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 240000005674 Ceanothus americanus Species 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000010387 memory retrieval Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- 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
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- 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
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- 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
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Circuits Of Receivers In General (AREA)
Abstract
描述了用于执行渐进引导以减少无线设备的感知引导时间的技术。将存储在大容量非易失性存储器中的程序代码可被分成多个码图像。第一码图像可包括用来支持无线设备的基本功能性的程序代码。第二码图像可包括其余程序代码。对于渐进引导,可首先从大容量非易失性存储器加载第一码图像。一旦第一码图像已被加载,就可使得无线设备能操作并且对用户而言看起来能起作用。在无线设备可操作的同时,可根据需要作为后台任务和/或按需从大容量非易失性存储器加载第二码图像。
Description
背景
I.领域
本公开一般涉及电子器件,尤其涉及用于在上电之际引导无线设备的技术。
II.背景
无线设备(例如,蜂窝电话)典型地基于控制无线设备内的硬件并支持各种所设计功能的程序代码而操作。程序代码可存储在大容量非易失性存储器中并且可在上电时被加载到更快的易失性存储器中。大容量非易失性存储器可以是能经济地存储大量数据但只能每次一页地访问的NAND(与非)闪存。页可以是能从NAND闪存检索的最小数据单元并且可以是4千字节(KB)或其他某个大小。更快的易失性存储器可以是能支持随机访问的同步动态随机存取存储器(SDRAM)。可选择存储器以提供合需的存储容量和访问能力并且尽可能地较经济。
当无线设备上电时,所有程序代码可从大容量非易失性存储器加载到更快的易失性存储器。一旦所有程序代码都已被加载,无线设备就能够接受用户输入并执行用户选择的功能。在上电时要加载的程序代码量可能较大,并且引导时间可能相对较长。因此,用户在无线设备可操作之前可能需要等待较长的时间段。
概述
在一方面,一种装置包括处理器,该处理器被配置成将第一和第二码图像编程到用于无线设备的存储器设备中,第一码图像从存储器设备被加载以引导无线设备并使得无线设备能操作,第二码图像在无线设备能操作的同时从存储器设备被加载以进一步引导该无线设备。
在另一方面,一种方法包括将第一码图像编程到用于无线设备的存储器设备中,第一码图像从存储器设备被加载以引导无线设备并使得无线设备能操作。该方法还包括将第二码图像编程到存储器设备中,第二码图像在无线设备能操作的同时从存储器设备被加载以进一步引导该无线设备。
在另一方面,一种设备包括:用于将第一码图像编程到用于无线设备的存储器设备中的装置,第一码图像从存储器设备被加载以引导无线设备并使得无线设备能操作;以及用于将第二码图像编程到存储器设备中的装置,第二码图像在无线设备能操作的同时从存储器设备被加载以进一步引导该无线设备。
在另一方面,一种装置包括:存储器控制器,其被配置成从外部存储器加载第一码图像以引导无线设备;以及主控制器,其被配置成在加载第一码图像之后使得无线设备能操作,并且其中存储器控制器还被配置成在无线设备能操作的同时从外部存储器加载第二码图像以进一步引导该无线设备。
在另一方面,一种方法包括:从外部存储器加载第一码图像以引导无线设备,在加载第一码图像之后使得无线设备能操作,以及在无线设备能操作的同时从外部存储器加载第二码图像以进一步引导该无线设备。
在另一方面,一种设备包括:用于从外部存储器加载第一码图像以引导无线设备的装置,用于在加载第一码图像之后使得无线设备能操作的装置,以及用于在无线设备能操作的同时从外部存储器加载第二码图像以进一步引导该无线设备的装置。
在另一方面,一种计算机程序产品包括计算机可读介质,该计算机可读介质其包括:用于使计算机从外部存储器加载第一码图像以引导无线设备的代码,用于使计算机在加载第一码图像之后使得无线设备能操作的代码,以及用于使计算机在无线设备能操作的同时从外部存储器加载第二码图像以进一步引导该无线设备的代码。
在另一方面,一种装置包括存储器控制器,其被配置成:从外部存储器检索码图像的多个页,这多个页与单独的安全性信息相关联;以及基于对应从外部存储器检索出的每一页的安全性信息来认证该页。
在另一方面,一种方法包括:从外部存储器检索码图像的多个页,这多个页与单独的安全性信息相关联;以及基于对应从外部存储器检索出的每一页的安全性信息来认证该页。
在另一方面,一种设备包括:用于从外部存储器检索码图像的多个页的装置,这多个页与单独的安全性信息相关联;以及用于基于对应从外部存储器检索出的每一页的安全性信息来认证该页的装置。
附图简述
图1示出无线通信设备的框图。
图2示出NAND闪存的非分页段和分页段的编程。
图3示出第二码图像和散列摘要表。
图4示出第一和第二码图像的加载和认证。
图5示出第一码图像中的模块。
图6示出无线设备上的SDRAM。
图7示出用于保持追踪第二码图像的页的加载状态的2级结构。
图8示出用于编程存储器设备的过程。
图9示出用于在上电时渐进地引导无线设备的过程。
图10示出认证第二码图像的过程。
图11示出编程站。
详细描述
本文中描述的引导技术可用于各种电子设备,诸如无线通信设备、手持式设备、游戏设备、计算设备、消费者电子设备、计算机等等。出于清楚起见,以下针对具有诸如NAND闪存和SDRAM等存储器的无线通信设备来描述这些技术。
图1示出了根据本发明一方面的无线通信设备100的框图,无线通信设备100可以是蜂窝电话、个人数字助理(PDA)、手持机、手持式设备、无线模块、终端、调制解调器等。无线设备100可以有能力提供经由发射路径和接收路径与一个或更多个无线通信系统进行双向通信。在发射路径上,数字部分120可提供将由无线设备100发射的数据。发射机(TMTR)114可处理该数据以生成射频(RF)输出信号,其可经由天线112发射给基站。在接收路径上,由基站发射的信号可由天线112接收并被提供给接收机(RCVR)116。接收机116可调理并数字化收到信号并向数字部分120提供采样以供进一步处理。
数字部分120可包括支持无线设备100的数字处理的各种处理单元、接口单元和存储器单元。在图1中所示的设计中,数字部分120包括调制解调处理器122、中央处理单元(CPU)/精简指令集计算机(RISC)124、主控制器130、静态RAM(SRAM)132、只读存储器(ROM)134、NAND闪存控制器140、以及SDRAM控制器142,其全部可经由一条或更多条总线160彼此通信。调制解调处理器122可执行用于数据传输和接收的处理,例如编码、调制、解调、解码等。CPU/RISC 124可执行无线设备100的通用处理,例如针对音频、视频、图形、和/或其他应用的处理。主控制器130可指导数字部分120内各种单元的操作。SRAM 132可存储由数字部分120内的控制器和处理器使用的程序代码和数据。ROM 134可存储引导码136和根公钥138。引导码136可执行上电引导的初始部分并且可在无线设备100上电时开始从NAND闪存150加载程序代码。根公钥138可用于安全性功能,例如用于认证从NAND闪存150加载的程序代码。
NAND闪存控制器140可促成数据在NAND闪存150与数字部分120之间的传递。SDRAM控制器142可促成数据在SDRAM 152与数字部分120之间的传递。主控制器130可指导NAND闪存控制器140和/或SDRAM控制器142的操作。例如,主控制器130可例如在无线设备100上电时指导在引导期间将程序代码从NAND闪存150加载到SDRAM 152。
NAND闪存150和SDRAM 152可为数字部分120内的处理单元提供海量存储。NAND闪存150可提供对数字部分120使用的程序代码和数据的非易失性存储。NAND闪存150也可用其他类型的非易失性存储器来替代,例如NOR(或非)闪存。SDRAM 152可提供对数字部分120使用的程序代码和数据的有随机访问能力的存储。SDRAM 152也可用其他类型的易失性存储器来替代,例如SRAM、DRAM等。
一般而言,数字部分120可包括任何数目个处理单元、接口单元、和存储器单元。数字部分120也可用一个或更多个数字信号处理器(DSP)、微处理器、RISC处理器等来实现。数字部分120可制造在一个或更多个专用集成电路(ASIC)和/或其他某种类型的集成电路(IC)上。
如图1中所示,无线设备100可利用有不同类型的存储器的存储器架构。SDRAM 152是一旦断电就丢失其数据的易失性存储器。SDRAM 152可用随机方式来访问并且常常被用作主运行时存储器。NAND闪存150是即使在断电之后也能保存其数据的非易失性存储器。NAND闪存150具有大存储容量、针对连续存储器访问的良好速度、以及低成本。然而,NAND闪存150对于随机存储器访问具有较差性能且典型地是以页为单位来访问的,每次一页,每页为特定大小(例如,4KB)。
图1的存储器架构纳入了NAND闪存150和SDRAM 152两者,并且能够以降低的成本提供能随机访问的大存储容量。对于这种存储器架构,程序代码可永久地存储在NAND闪存150中。程序代码既可控制无线设备100内的硬件又可支持各种设计的功能和特征。在上电之际,无线设备100可执行引导,引导可使得程序代码从NAND闪存150传递到SDRAM 152。NAND闪存150可存储大量程序代码。因此,在上电时将所有程序代码从NAND闪存150加载到SDRAM 152的时间量可能相对较长。
在一方面,要存储在NAND闪存150中的程序代码可被分成可存储在NAND闪存150的不同段中的多个码图像。段也可以被称为部分、片断等。在一种设计中,程序代码可被分成第一和第二码图像。第一码图像可包括用于支持无线设备100的基本功能性的程序代码并且可被存储在NAND闪存150的非分页段中。第二码图像可包括其余程序代码并且可存储在NAND闪存150的分页段中。对于上电时的渐进引导,第一码图像可首先从NAND闪存150的非分页段加载到SDRAM 152中。一旦第一码图像已被加载,无线设备100就可被启用并且对用户而言看起来能起作用。在无线设备100可操作的同时,第二码图像可例如根据需要作为后台任务和/或按需从NAND闪存150的分页段加载到SDRAM 152中。渐进引导可缩短在上电时启用无线设备100的时间量,这可以改善用户体验并提供其他益处。
存储在NAND闪存150中的程序代码可包括控制无线设备100的操作的代码、支持各种设计特征和功能的高层应用、工厂测试代码、和/或其他类型的代码。查明存储在NAND闪存150中的程序代码是否被授权使用以允许执行得到授权的程序代码并防止执行未得到授权的程序代码可能是合需的或必要的。此外,以高效方式为用于渐进引导的多个码图像提供安全性可能是合需的。
在另一方面,可通过对整个第一码图像以及还对第二码图像的每页执行认证来高效地为渐进引导提供安全性。第一码图像可在上电时首先全部从NAND闪存150加载,并且可在加载时被认证。第二码图像可被分成页并每次从NAND闪存150加载一页。第二码图像的各页可取决于存储器访问以不同次序被加载。第二码图像的每页可被单独认证以允许该页被加载和使用而与第二码图像的其他页无关。
图2示出根据本发明一方面的NAND闪存150的设计,其包括非分页段210和分页段220。在此设计中,非分页段210存储第一码图像212、散列摘要表214、证书216和数字签名218。证书216可包括用来认证非分页段210和分页段220的密码信息。可在第一码图像212和散列表214上生成数字签名218并且可用来认证这两部分。第一码图像212可包括将在启用无线设备100之前从NAND闪存150加载的程序代码和/或数据,例如用于驱动器、用户界面(UI)、调制解调器等的代码。表214可包括第二码图像222的个体页的密码散列摘要。第二码图像222可包括将在启用无线设备100之后从NAND闪存150加载的程序代码和/或数据,例如用于高层应用的代码。一般而言,码图像可包括程序代码、数据等。
图2还示出用于编程NAND闪存150的非分页段210和分页段220的过程200。过程200可在NAND闪存150的制造、无线设备100的预设等期间执行。图2中的设计使用两组密码密钥:(1)一组私钥和公钥以签名和认证非分页段210,其被称为私钥x和公钥x,以及(2)一组私钥和公钥以认证源实体,其被称为根私钥r和根公钥r。根私钥r和私钥x是秘密并且仅为源实体所知,源实体可以是源码供应商、制造商等。使得根公钥r可为无线设备100所用并且被用来验证用根私钥r生成的数字签名。公钥x被用来验证用私钥x生成的数字签名并且可在证书216中发送。
签名函数232可使用根私钥r在公钥x以及可能还有其他信息上生成数字签名。此数字签名可被称为签名cx并且可用来认证源实体。签名函数232可实现RSA(Rivest、Shamir和Adleman)算法、数字签名算法(DSA)或其他某种密码(数字签名或加密)算法。证书生成器234可形成包含签名cx、公钥x、以及可能还有其他信息——诸如源实体的标识符、选择使用的密码算法、证书的有效期等——的证书。此证书可作为X.509证书或以本领域已知的其他某种格式存储在NAND闪存150中。可用任何方式使得根公钥r可为无线设备100所用,并且可被安全地存储在图1的无线设备100内的ROM 134中。
在图2中所示的设计中,第二码图像222可首先被处理和存储,而第一码图像212可接下来被处理和存储。分页单元252可接收第二码图像222并将其分成特定大小(例如,4KB)的页,并且可每次向安全散列函数254以及还向NAND闪存150提供一页。函数254可用安全散列算法对来自单元252的每页进行散列并提供该页的散列摘要。函数254可实现SHA-1(安全散列算法)、SHA-2(其包括SHA-224、SHA-256、SHA-384和SHA-512)、MD-4(消息摘要)、MD-5、或本领域已知的其他某种安全散列算法。安全散列算法具有密码性质,以使得输入消息与其摘要(其是伪随机比特串)之间的函数是不可逆的,并且两条输入消息映射到相同摘要的可能性非常小。安全散列算法可接收任何长度的输入消息并且可提供固定长度的散列摘要。表生成器256可为第二码图像222的所有页生成散列摘要表,并且可将该表作为散列摘要表214存储在NAND闪存150中。
第一码图像212可被提供给复用器(Mux)242并且还存储在NAND闪存150中。复用器242还可接收来自生成器256的散列摘要表214并且可顺序地向安全散列函数244提供第一码图像212和散列摘要表214。函数244可用安全散列函数对第一码图像212和散列摘要表214两者进行散列并且可提供散列摘要,其可被称为摘要x。函数244可实现SHA-1、SHA-2、MD-5或其他某种安全散列算法。签名函数246可使用私钥x在摘要x上生成数字签名。该数字签名可作为数字签名218存储在NAND闪存150中。签名函数246可实现RSA、DSA或其他某种密码算法。签名函数232和246可实现相同或不同的密码算法。
图3示出NAND闪存150中的第二码图像222和散列摘要表214的设计。在此设计中,第二码图像222可被分为N页0到N-1,其中N可以是任何整数值。每一码页可用安全散列函数(Hash)来散列以生成相应的散列摘要。散列摘要表214可存储N个码页的N个散列摘要。
图4示出根据本发明一方面的加载和认证NAND闪存150的非分页段210和分页段220的过程400的设计。过程400可在无线设备100上电等之时执行。验证函数432可接收来自NAND闪存150的证书216和来自图1的无线设备100内的ROM 134的根公钥r。验证函数432可从证书216提取签名cx和公钥x,用根公钥r验证签名cx,并且如果签名cx得到验证则提供公钥x。第三方对证书x的任何篡改可容易地通过签名cx得不到验证来容易地检测出。
复用器442可接收第一码图像212和散列摘要表214并且可顺序地将这两部分提供给安全散列函数444。函数444可对第一码图像212和散列摘要表214两者进行散列并且可提供散列摘要,其可被称为摘要x’。函数444可实现与图2中的安全散列函数244所使用的相同的安全散列算法。验证函数446可接收来自安全散列函数444的摘要x’、来自NAND闪存150的数字签名x、以及来自验证函数432的公钥x。验证函数446可用公钥x和摘要x’来验证数字签名218,并且可指示数字签名218是否得到验证。公钥x用根公钥r来认证。因此,第三方对数字签名218、第一码图像212、和/或散列摘要表214的任何篡改可通过数字签名218得不到验证来容易地检测出。
如果数字签名218得到验证,则可提供第一码图像212以供使用,且散列摘要表214可被存储在表456中。一旦第一码图像212已从NAND闪存150加载到SDRAM 152,无线设备100就可被启用。如果数字签名218未得到验证,则加载过程可中止,并且可提供出错消息。
在启用无线设备100之后,第二码图像222可根据需要作为后台任务和/或按需从NAND闪存150加载到SDRAM 152,每次一页。安全散列函数454可对从NAND闪存150检索出的页进行散列并提供检索出的页的散列摘要y’。函数454可实现与图2中的安全散列函数254所使用的相同的安全散列算法。验证函数458可接收来自安全散列函数454的散列摘要y’以及来自表456的检索出的页的经认证散列摘要y。验证函数458可比较这两个散列摘要y’和y,并且如果这两个摘要匹配则声明检索出的页得到认证。散列摘要表214可用根公钥r来认证。安全散列算法的密码性质确保了其他页映射到相同散列摘要y的可能性非常小。因此,第三方对该页的任何篡改可通过这两个散列摘要之间的失配来容易地检测出。如果这些散列摘要匹配,则可提供检索出的页以供使用。如果这些散列摘要不匹配,则加载过程可中止并且可提供出错消息。
图2到4示出了NAND闪存150的一种设计,其支持非分页段210和分页段220的渐进引导并且还支持对存储在段210和220中的码图像的认证。一般而言,NAND闪存150可在P个分页段中存储P个码图像以及在Q个非分页段中存储Q个码图像,其中P和Q可各自为1或更大的任何整数值。可在启用无线设备100之前从NAND闪存150加载来自Q个非分页段的码图像。可在启用无线设备100之后从NAND闪存150加载来自P个非分页段的码图像。
存储在非分页段和分页段中的码图像的安全性可用各种方式来实现。一般而言,用于认证的安全性信息可包括一个或更多个证书、数字签名、散列摘要等。用于认证来自非分页段的码图像(或简称为非分页码图像)的安全性信息可存储在该非分页段中、指定的非分页段中等等。用于认证来自分页段的码图像(或简称为分页码图像)的安全性信息可存储在该分页段中、另一个分页段中、非分页段中等等。可为分页码图像的每一页提供安全性信息以允许单独地加载和认证每一页。也可为整个分页码图像提供安全性信息。在一种设计中,如以上所描述的,一个非分页段可存储所有非分页段和分页段的安全性信息。在另一种设计中,可用菊花链方式执行认证,其中每一段存储将加载的下一段的安全性信息。非分页码图像和分页码图像的认证也可用其他方式来执行。
出于清楚起见,以下描述假定使用图2到4中所示的结构,并且NAND闪存150包括非分页段210和分页段220。非分页段210可包括支持无线设备100的基本功能性的程序代码、支持渐进引导的代码等。分页段220可包括用于无线设备100的其余程序代码。
图5示出存储在NAND闪存150的非分页段210中的第一码图像212的设计。在此设计中,第一码图像212包括支持渐进引导的模块510、驱动器530、用户界面(UI)代码540、和调制解调器代码550。
在模块510内,头部512可包括NAND闪存150的相关信息,诸如分页段和非分页段的数目、每一段的起始地址和大小、每一段头部的位置等。引导加载器514可处置非分页段210从NAND闪存150至SDRAM 152的加载。NAND驱动器516可从NAND闪存150检索页并将这些页复制到SDRAM 152。存储器管理器518可处置分页段220从NAND闪存150至SDRAM 152的加载并且可保持追踪第二码图像222的哪些页已被加载。中止处置器520可处置由于对尚未从NAND闪存150加载的第二码图像222的页的存储器访问造成的页故障。当发生页故障时,中止处置器520可保存当前任务的上下文并且随后请求分页程序处置器522加载包括所请求页在内的一个或更多个页。分页程序处置器522可处置对来自NAND闪存150的第二码图像222的所请求页的后台和按需分页。引导加载器514和分页程序处置器522可请求NAND驱动器516从NAND闪存150检索特定页并将这些页复制到SDRAM 152。
驱动器530可支持输入/输出(I/O)设备,诸如液晶显示器(LCD)、键盘、话筒、扬声器等。UI代码540可支持各种UI功能,诸如在上电时显示动画、接受键盘输入、被按压的字符在LCD上的显示等。UI代码540可在无线设备100上提供寿命指示并且可接受用户输入以使得无线设备可被用户感知为可操作的。调制解调器代码550可执行各种功能以支持无线电通信,例如初始化发射机114和接收机116、搜索无线系统、发起和接收呼叫、执行对呼叫的处理(例如,编码和解码)等。
图5示出了非分页段210的一种设计。非分页段210还可包括图5中未示出的不同和/或其他模块。例如,非分页段210可包括工厂测试码、无线二进制运行时环境(BREW)应用执行环境(AEE)码等。
图6示出图1中的无线设备100上的SDRAM 152的设计。可在渐进引导的第一部分期间从NAND闪存150检索第一码图像212并将其存储在SDRAM152中。可在渐进引导的第二部分期间以任何次序从NAND闪存150检索第二码图像222的页0到N-1并将其存储在SDRAM 152的恰当位置。
对第二码图像222的后台加载可在第一码图像212已被加载到SDRAM152中之后开始。对于后台加载,第二码图像222的N页可每次一页并按顺序次序从NAND闪存150检索、认证、并存储在SDRAM 152的相应位置中。整个第二码图像222可在特定时间量里被完整地加载到SDRAM 152中,该特定时间量可被称为次加载时间。后台加载可被给予低于无线设备100执行的其他任务的优先级。由此,次加载时间可以是可变的并且可取决于各种因素,诸如第二码图像222的大小、NAND闪存150与SDRAM 152之间的传输速率、无线设备100处的活动量等。
在执行后台加载的同时,可能访问第二码图像222中尚未被加载的页,并且可能发生页故障。被请求的页可按需从NAND闪存150加载并被提供以供使用。在一种设计中,从NAND闪存150加载仅被请求的页。在另一种设计中,可从NAND闪存150加载被请求的页以及一个或更多个近旁页。此设计可避免反复页故障且因此改善性能。在完成对被请求页的按需寻呼之后,可恢复对第二码图像222的其余页的后台加载。
存储器管理器518可保持追踪已从NAND闪存150加载了第二码图像222的哪些页。此信息可用来确定被请求的页是存储在SDRAM 152中还是应从NAND闪存150检索。可用各种方式来存储第二码图像222的页的加载状态。
图7示出可用来确定第二码图像222的给定页是否存储在SDRAM 152中的2级结构700的设计。在此设计中,32位存储器地址702可包括位0到31并且可具有0到4千兆字节(GB)的地址范围。该地址范围可被分成4096个部分,其中每个地址部分覆盖1兆字节(MB)。每个地址部分可覆盖256页,且每页可为4KB。
结构700可包括一个主表710,其具有对应4096个地址部分的4096个条目,每个条目对应一个地址部分。结构700可进一步包括对应每个地址部分的一个页表720。每个页表可包括对应256页的256个条目,一个条目对应一页。
在一种设计中,对应整个第二码图像222的主表和页表可在加载第二码图像222的任何页之前创建和初始化。例如,可在SDRAM 152内创建一个主表和64个页表以支持64MB的虚拟存储器用于分页。主表中的每个条目包括指向与该主表条目相对应的页表的开始的指针。每个页表的256个条目可被初始化为预定值以指示由这些条目覆盖的256页尚未被加载到SDRAM 152中(或对这256页无访问权限)。当页从NAND闪存150加载到SDRAM 152时,可查明覆盖该页的页表,并且对应该页的条目可被更新成指示该页已被加载到SDRAM 152中。
在正从NAND闪存150加载第二码图像222的同时,可检查对SDRAM 152的每次存储器访问以确定被请求的页是否存储在SDRAM 152中。用于存储器访问的存储器地址的12个最高有效位(MSB)可被用来访问主表中的条目。来自此主表条目的指针可用来确定对应覆盖该存储器地址的地址部分的页表的开始。存储器地址的接下来8个MSB可用来确定对应正被访问的页的页表条目。可检查此页表条目以确定正被访问的页是否已被加载到SDRAM 152中。如果该页已被加载,则可访问SDRAM 152以获得所请求的程序代码或数据。如果该页尚未被加载,则中止处置器520可得到通知,并且被请求页可被加载到SDRAM 520中。
主表和页表可用来确定第二码图像222的个体页是否已被加载到SDRAM152中。指示符可用来指示第二码图像222的全部N页是否已被加载到SDRAM152中。此指示符可被初始化为一个值(例如,0)并且一旦第二码图像222的全部页都已被加载到SDRAM 152中就可被设置为另一个值(例如,1)。在已加载整个第二码图像222之后,可删除主表和页表。
图7示出了用来确定第二码图像222的页是否已被加载到SDRAM 152中的结构700的一种设计。结构700可类似于用于存储器保护以保持追踪哪些页可访问的结构。结构700可由此按照与用于存储器保护的结构类似的方式来实现和更新。
各种其他结构也可用来保持追踪第二码图像222的哪些页已被加载到SDRAM 152中。例如,可使用包含对应每页的一位的位图。对应每页的位若该页尚未被加载到SDRAM 152中则可被设置为一个值(例如,0),或者如果该页已被加载则可被设置为另一个值(例如,1)。
图8示出根据本发明一方面的例如用于在制造或预设阶段期间编程存储器设备的过程800的设计。可基于第一码图像以及可能还有其他信息生成第一安全性信息(框812)。可基于第二码图像生成第二安全性信息(框814)。可将第一码图像编程到用于无线设备的存储器设备中(框816)。可从存储器设备加载第一码图像以引导无线设备并且使无线设备可操作。可将第二码图像编程到存储器设备中(框818)。在无线设备可操作的同时可从存储器设备加载第二码图像以进一步或完全地引导无线设备。第一和第二安全性信息可被编程到存储器设备中并且可分别用来认证第一和第二码图像(框820)。
对于框814,第二码图像可被分成多个页,并且每页可用安全散列算法来散列以获得该页的散列摘要。在框820中,可生成对应这多个页的散列摘要表并将其编程到存储器设备中。对于框812,可基于第一码图像、私钥、以及第二码图像的散列摘要表生成数字签名。可生成包含与私钥相对应的公钥的证书。在框820中,可将证书和数字签名编程到存储器设备中。
图9示出根据本发明一方面的用于在上电时执行无线设备的渐进引导的过程900的设计。可从外部存储器加载第一码图像以引导无线设备,例如从NAND闪存加载到SDRAM中(框912)。可从外部存储器获得对应第一码图像的第一安全性信息(框914)。可基于第一安全性信息认证第一码图像(框916)。在加载和认证第一码图像之后,可使得无线设备可操作(框918)。在可操作的同时,无线设备可以有能力处理键盘输入、建立与无线系统的呼叫等。
在无线设备可操作的同时可从外部存储器加载第二码图像以进一步引导无线设备(框920)。可从外部存储器获得对应第二码图像的第二安全性信息(框922)。可基于第二安全性信息认证第二码图像(框924)。如果得到认证,则可启用对第二码图像的执行(框926)。
对于框920,可在无线设备可操作的同时作为后台任务和/或按需加载第二码图像。对于按需加载,可接收对第二码图像的页的存储器访问。可响应于该存储器访问从外部存储器加载包括被访问页在内的第二码图像的预定数目个页。
第二码图像可包括多个页,每次可从外部存储器加载一页。可维护至少一个表以保持追踪第二码图像中已被加载的页以及第二码图像中尚未被加载的页。例如,可维护具有对应多个地址范围的多个条目的主表。还可维护对应多个地址范围的多个页表,一个页表对应一个地址范围,且每个页表包括对应用于该页表的地址范围内的多个页的条目。主表的每个条目可包括指向相应的页表的指针。相应的页表的每个条目可指示相关联的页是否被加载以及可访问。该(这些)表可在加载第二码图像之前被创建并且可在加载第二码图像之后被删除。
对于框916,第一安全性信息可包括证书和数字签名。证书可基于根公钥来认证,根公钥可以安全地存储在无线设备处。可基于来自证书的数字签名和公钥来认证第一码图像。对于框924,第二安全性信息可包括至少一个散列摘要,其可基于第一安全性信息来认证。随后可基于该至少一个散列摘要来认证第二码图像。
图10示出根据本发明一方面的用于认证码图像的过程1000的设计。过程1000可用于图9中的框920到924。可从外部存储器检索码图像的多个页,其中这多个页与单独的安全性信息相关联(框1012)。这多个页可每次一页地并且以预定次序(例如,对于后台加载)或以基于对码图像的页的存储器访问决定的随机次序(例如,对于按需加载)来检索。从外部存储器检索出的每一页可基于对应该页的安全性信息来认证(框1014)。在一种设计中,可从外部存储器检索对应这多个页的散列摘要表并对其进行认证。每一检索出的页可基于安全散列算法来散列以获得为该页生成的散列摘要。如果所生成的散列摘要匹配检索出的页的经认证散列摘要——其可来自散列摘要表,则该页可被声明为得到认证。
图11示出根据本发明一方面的NAND闪存150的编程站1100的设计的框图。编程站1100包括控制器/处理器1110、存储器1112、编程工具1114以及数据库1116。控制器/处理器1110可执行图2中所示的安全处理并且还可指导编程站1100的操作。存储器1112可存储供控制器/处理器1110用的数据和代码。编程工具1114可例如如图2中所示地编程NAND闪存150。数据库1116可存储将被编程到NAND闪存150中的码图像、密码密钥等。编程站1100可执行图8中的过程800和/或用于编程存储器的其他过程。
出于清楚起见,已针对具有NAND闪存和SDRAM的存储器配置描述了引导技术。这些引导技术也可用于其他存储器配置和其他类型的存储器。这些引导技术可进一步用于任何数目个非分页和分页码图像、任何数目个非分页段和分页段、任何页大小等。
本文中所描述的引导技术可以提供某些优点。对于上电时的存储器加载可达成较短的感知引导时间。由于工厂测试码可存储在非分页段中且首先被加载,因此这可导致较短的工厂测试时间。工厂测试码可依赖于这些码的提早加载并且可使得测试装备在上电之后很快就与无线设备对话,即使无线设备尚未完成加载过程亦然。较短的感知引导时间可减少用户在上电之后等待的时间量并且由此可改善用户体验。
本领域技术人员将可理解,信息和信号可使用各种不同技术和技艺中的任何哪种来表示。例如,贯穿上面说明始终可能被述及的数据、指令、命令、信息、信号、比特、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
本领域技术人员将进一步领会,结合本文公开所描述的各种解说性逻辑框、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地说明硬件与软件的这一可互换性,各种说明性组件、框、模块、电路、和步骤在上面是以其功能集的形式作一般化描述的。此类功能集是被实现为硬件还是软件取决于具体应用和强加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类设计决策不应被解读为致使脱离本公开的范围。
结合本文公开描述的各种解说性逻辑框、模块、以及电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文中描述的功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或更多个微处理器、或任何其他此类配置。
结合本文公开描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中实施。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或更多个示例性设计中,所描述的功能可以在硬件、软件、固件、或其任何组合中实现。如果在软件中实现,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被通用或专用计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能用来携带或存储指令或数据结构形式的合需程序代码手段且能由通用或专用计算机、或者通用或专用处理器访问的任何其他介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多功能碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述组合也应被包括在计算机可读介质的范围内。
提供前面对本公开的描述是为了使本领域任何技术人员皆能制作或使用本公开。对本公开各种修改对于本领域技术人员将是显而易见的,并且本文中定义的普适原理可被应用于其他变形而不会脱离本公开的范围。由此,本公开并非旨在被限定于本文中所述的示例和设计,而是应被授予与本文中公开的原理和新颖特征一致的最广义的范围。
Claims (53)
1.一种装置,包括:
处理器,其被配置成将第一和第二码图像编程到用于无线设备的存储器设备中,所述第一码图像从所述存储器设备被加载以引导所述无线设备并使得所述无线设备能操作,所述第二码图像在所述无线设备能操作的同时从所述存储器设备被加载以进一步引导所述无线设备。
2.如权利要求1所述的装置,其特征在于,所述处理器被配置成:基于所述第一码图像生成第一安全性信息;基于所述第二码图像生成第二安全性信息;以及将所述第一和第二安全性信息编程到所述存储器设备中,所述第一和第二安全性信息分别用来认证所述第一和第二码图像。
3.如权利要求1所述的装置,其特征在于,所述处理器被配置成:基于所述第一码图像和私钥生成数字签名;生成包含与所述私钥相对应的公钥的证书;以及将所述证书和所述数字签名编程到所述存储器设备中。
4.如权利要求3所述的装置,其特征在于,所述处理器被配置成:将所述第二码图像分成多个页;将所述多个页中的每一页散列以获得对应该页的散列摘要;生成对应所述多个页的散列摘要表;以及将所述散列摘要表编程到所述存储器设备中。
5.如权利要求4所述的装置,其特征在于,所述处理器被配置成进一步基于所述散列摘要表生成所述数字签名。
6.一种方法,包括:
将第一码图像编程到用于无线设备的存储器设备中,所述第一码图像从所述存储器设备被加载以引导所述无线设备并使得所述无线设备能操作;以及
将第二码图像编程到所述存储器设备中,所述第二码图像在所述无线设备能操作的同时从所述存储器设备被加载以进一步引导所述无线设备。
7.如权利要求6所述的方法,其特征在于,还包括:
基于所述第一码图像生成第一安全性信息;
基于所述第二码图像生成第二安全性信息;以及
将所述第一和第二安全性信息编程到所述存储器设备中,所述第一和第二安全性信息分别用来认证所述第一和第二码图像。
8.如权利要求7所述的方法,其特征在于,所述生成第一安全性信息包括基于所述第一码图像和私钥生成数字签名以及生成包含与所述私钥相对应的公钥的证书,并且其中所述编程第一和第二安全性信息包括将所述证书和所述数字签名编程到所述存储器设备中。
9.如权利要求7所述的方法,其特征在于,所述生成第二安全性信息包括将所述第二码图像分成多个页,将所述多个页中的每一页散列以获得对应该页的散列摘要,以及生成对应所述多个页的散列摘要表;并且其中所述编程第一和第二安全性信息包括将所述散列摘要表编程到所述存储器设备中。
10.一种设备,包括:
用于将第一码图像编程到用于无线设备的存储器设备中的装置,所述第一码图像从所述存储器设备被加载以引导所述无线设备并使得所述无线设备能操作;以及
用于将第二码图像编程到所述存储器设备中的装置,所述第二码图像在所述无线设备能操作的同时从所述存储器设备被加载以进一步引导所述无线设备。
11.如权利要求10所述的设备,其特征在于,还包括:
用于基于所述第一码图像生成第一安全性信息的装置;
用于基于所述第二码图像生成第二安全性信息的装置;以及
用于将所述第一和第二安全性信息编程到所述存储器设备中的装置,所述第一和第二安全性信息分别用来认证所述第一和第二码图像。
12.如权利要求11所述的设备,其特征在于,所述用于生成第一安全性信息的装置包括用于基于所述第一码图像和私钥生成数字签名的装置以及用于生成包含与所述私钥相对应的公钥的证书的装置,并且其中所述用于编程第一和第二安全性信息的装置包括用于将所述证书和所述数字签名编程到所述存储器设备中的装置。
13.如权利要求11所述的设备,其特征在于,所述用于生成第二安全性信息的装置包括用于将所述第二码图像分成多个页的装置,用于将所述多个页中的每一页散列以获得对应该页的散列摘要的装置,以及用于生成对应所述多个页的散列摘要表的装置;并且其中所述用于编程第一和第二安全性信息的装置包括用于将所述散列摘要表编程到所述存储器设备中的装置。
14.一种装置,包括:
存储器控制器,其被配置成从外部存储器加载第一码图像以引导无线设备;以及
主控制器,其被配置成在加载所述第一码图像之后使得所述无线设备能操作,并且其中所述存储器控制器还被配置成在所述无线设备能操作的同时从所述外部存储器加载第二码图像以进一步引导所述无线设备。
15.如权利要求14所述的装置,其特征在于,所述存储器控制器被配置成在所述无线设备能操作的同时作为后台任务加载所述第二码图像。
16.如权利要求14所述的装置,其特征在于,所述存储器控制器被配置成接收对所述第二码图像的页的存储器访问,并且响应于所述存储器访问从所述外部存储器加载包括被访问页在内的所述第二码图像的预定数目个页。
17.如权利要求14所述的装置,其特征在于,所述存储器控制器被配置成从所述外部存储器获得对应所述第一码图像的第一安全性信息、以及基于所述第一安全性信息认证所述第一码图像,并且其中所述主控制器被配置成如果所述第一码图像得到认证则使得所述无线设备能操作。
18.如权利要求17所述的装置,其特征在于,所述第一安全性信息包括证书和数字签名,并且其中所述存储器控制器被配置成基于根公钥来认证所述证书以及基于所述数字签名和来自所述证书的公钥来认证所述第一码图像。
19.如权利要求17所述的装置,其特征在于,所述存储器控制器被配置成从所述外部存储器获得对应所述第二码图像的第二安全性信息、基于所述第二安全性信息认证所述第二码图像、以及如果得到认证则启用对所述第二码图像的执行。
20.如权利要求19所述的装置,其特征在于,所述第二安全性信息包括至少一个散列摘要,并且其中所述存储器控制器被配置成基于所述第一安全性信息来认证所述至少一个散列摘要、以及基于所述至少一个散列摘要来认证所述第二码图像。
21.如权利要求14所述的装置,其特征在于,所述第二码图像包括多个页,并且其中所述存储器控制器被配置成从所述外部存储器每次一页地加载所述第二码图像的所述多个页。
22.如权利要求21所述的装置,其特征在于,所述存储器控制器被配置成维护至少一个表,所述至少一个表指示所述第二码图像中已从所述外部存储器加载的页以及所述第二码图像中尚未被加载的页。
23.如权利要求22所述的装置,其特征在于,所述存储器控制器被配置成在加载所述第二码图像之前创建所述至少一个表,以及在加载所述第二码图像之后删除所述至少一个表。
24.如权利要求21所述的装置,其特征在于,所述存储器控制器被配置成维护具有对应多个地址范围的多个条目的主表、以及维护对应所述多个地址范围的多个页表,一个页表对应一个地址范围,每个页表包括对应关于该页表的地址范围内的多个页的多个条目。
25.如权利要求24所述的装置,其特征在于,所述主表的每个条目包括指向相应的页表的指针,并且其中所述相应的页表的每个条目指示是否能访问相关联的页。
26.如权利要求14所述的装置,其特征在于,所述外部存储器是NAND闪存存储器,并且其中所述存储器控制器被配置成将所述第一和第二码图像从所述NAND闪存加载到同步动态随机存取存储器(SDRAM)。
27.如权利要求14所述的装置,其特征在于,在能操作时,所述无线设备能够进行以下至少之一:处理键盘输入以及建立与无线通信系统的呼叫。
28.一种方法,包括:
从外部存储器加载第一码图像以引导无线设备;
在加载所述第一码图像之后使得所述无线设备能操作;以及
在所述无线设备能操作的同时从所述外部存储器加载第二码图像以进一步引导所述无线设备。
29.如权利要求28所述的方法,其特征在于,所述加载第二码图像包括在所述无线设备能操作的同时作为后台任务加载所述第二码图像。
30.如权利要求28所述的方法,其特征在于,所述加载第二码图像包括
接收对所述第二码图像的页的存储器访问,以及
响应于所述存储器访问从所述外部存储器加载包括被访问页在内的所述第二码图像的预定数目个页。
31.如权利要求28所述的方法,其特征在于,还包括:
从所述外部存储器获得对应所述第一码图像的第一安全性信息;以及
基于所述第一安全性信息认证所述第一码图像,并且其中如果所述第一码图像得到认证则使得所述无线设备能操作。
32.如权利要求31所述的方法,其特征在于,所述第一安全性信息包括证书和数字签名,并且其中所述认证第一码图像包括
基于根公钥认证所述证书,以及
基于所述数字签名和来自所述证书的公钥来认证所述第一码图像。
33.如权利要求31所述的方法,其特征在于,还包括:
从所述外部存储器获得对应所述第二码图像的第二安全性信息;
基于所述第二安全性信息认证所述第二码图像;以及
如果得到认证则启用对所述第二码图像的执行。
34.如权利要求33所述的方法,其特征在于,所述第二安全性信息包括至少一个散列摘要,并且其中所述认证第二码图像包括
基于所述第一安全性信息认证所述至少一个散列摘要,以及
基于所述至少一个散列摘要认证所述第二码图像。
35.一种设备,包括:
用于从外部存储器加载第一码图像以引导无线设备的装置;
用于在加载所述第一码图像之后使得所述无线设备能操作的装置;以及
用于在所述无线设备能操作的同时从所述外部存储器加载第二码图像以进一步引导所述无线设备的装置。
36.如权利要求35所述的设备,其特征在于,还包括:
用于从所述外部存储器获得对应所述第一码图像的第一安全性信息的装置;以及
用于基于所述第一安全性信息认证所述第一码图像的装置,并且其中如果所述第一码图像得到认证则使得所述无线设备能操作。
37.如权利要求36所述的设备,其特征在于,所述第一安全性信息包括证书和数字签名,并且其中所述用于认证第一码图像的装置包括
用于基于根公钥认证所述证书的装置,以及
用于基于所述数字签名和来自所述证书的公钥来认证所述第一码图像的装置。
38.如权利要求36所述的设备,其特征在于,还包括:
用于从所述外部存储器获得对应所述第二码图像的第二安全性信息的装置;
用于基于所述第二安全性信息认证所述第二码图像的装置;以及
用于如果得到认证则启用对所述第二码图像的执行的装置。
39.如权利要求38所述的设备,其特征在于,所述第二安全性信息包括至少一个散列摘要,并且其中所述用于认证第二码图像的装置包括
用于基于所述第一安全性信息认证所述至少一个散列摘要的装置,以及
用于基于所述至少一个散列摘要认证所述第二码图像的装置。
40.一种计算机程序产品,包括:
计算机可读介质,包括:
用于使计算机从外部存储器加载第一码图像以引导无线设备的代码;
用于使计算机在加载所述第一码图像之后使得所述无线设备能操作的代码;以及
用于使计算机在所述无线设备能操作的同时从所述外部存储器加载第二码图像以进一步引导所述无线设备的代码。
41.如权利要求40所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括:
用于使计算机从所述外部存储器获得对应所述第一码图像的第一安全性信息的代码;
用于使计算机基于所述第一安全性信息认证所述第一码图像的代码;以及
用于使所述计算机在所述第一码图像得到认证的情况下使得所述无线设备能操作的代码。
42.如权利要求41所述的计算机程序产品,其特征在于,所述计算机可读介质进一步包括:
用于使所述计算机从所述外部存储器获得对应所述第二码图像的第二安全性信息的代码;
用于使所述计算机基于所述第二安全性信息认证所述第二码图像的代码;以及
用于使所述计算机在所述第二码图像得到认证的情况下启用对所述第二码图像的执行的代码。
43.一种装置,包括:
存储器控制器,其被配置成:从外部存储器检索码图像的多个页,所述多个页与单独的安全性信息相关联;以及基于对应从所述外部存储器检索出的每一页的安全性信息来认证该页。
44.如权利要求43所述的装置,其特征在于,对应所述码图像的每一页的安全性信息包括散列摘要,并且其中对于从所述外部存储器检索出的每一页,所述存储器控制器被配置成:基于安全散列算法对检索出的页进行散列以获得所生成的散列摘要;以及如果所述所生成的散列摘要匹配所述检索出的页的经认证散列摘要则声明该页得到认证。
45.如权利要求43所述的装置,其特征在于,所述存储器控制器被配置成:从所述外部存储器检索对应所述码图像的所述多个页的散列摘要表,对应所述码图像的每一页的所述安全性信息包括所述散列摘要表中的散列摘要;认证所述散列摘要表;以及基于所述经认证的散列摘要表来认证所述码图像的所述多个页。
46.如权利要求43所述的装置,其特征在于,所述存储器控制器被配置成从所述外部存储器每次一页地并且以预定次序来检索所述码图像的所述多个页。
47.如权利要求43所述的装置,其特征在于,所述存储器控制器被配置成每次一页地并且以基于对所述码图像的页的存储器访问所决定的随机次序来检索所述码图像的所述多个页。
48.一种方法,包括:
从外部存储器检索码图像的多个页,所述多个页与单独的安全性信息相关联;以及
基于对应从所述外部存储器检索出的每一页的安全性信息来认证该页。
49.如权利要求48所述的方法,其特征在于,对应所述码图像的每一页的所述安全性信息包括散列摘要,并且其中所述认证从所述外部存储器检索出的每一页包括
基于安全散列算法对所述检索出的页进行散列以获得所生成的散列摘要;以及
如果所述所生成的散列摘要匹配所述检索出的页的经认证散列摘要则声明该页得到认证。
50.如权利要求48所述的方法,其特征在于,还包括:
从所述外部存储器检索对应所述码图像的所述多个页的散列摘要表,其中对应所述码图像的每一页的所述安全性信息包括所述散列摘要表中的散列摘要;以及
认证所述散列摘要表,并且其中从所述外部存储器检索出的每一页是基于对应该页的经认证散列摘要来认证的。
51.一种设备,包括:
用于从外部存储器检索码图像的多个页的装置,所述多个页与单独的安全性信息相关联;以及
用于基于对应从所述外部存储器检索出的每一页的安全性信息来认证该页的装置。
52.如权利要求51所述的设备,其特征在于,对应所述码图像的每一页的所述安全性信息包括散列摘要,并且其中所述用于认证从所述外部存储器检索出的每一页的装置包括
用于基于安全散列算法对所述检索出的页进行散列以获得所生成的散列摘要的装置;以及
用于如果所述所生成的散列摘要匹配所述检索出的页的经认证散列摘要则声明该页得到认证的装置。
53.如权利要求51所述的设备,其特征在于,还包括:
用于从所述外部存储器检索对应所述码图像的所述多个页的散列摘要表的装置,其中对应所述码图像的每一页的所述安全性信息包括所述散列摘要表中的散列摘要;以及
用于认证所述散列摘要表的装置,并且其中从所述外部存储器检索出的每一页是基于对应该页的经认证散列摘要来认证的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/925,567 | 2007-10-26 | ||
US11/925,567 US8683213B2 (en) | 2007-10-26 | 2007-10-26 | Progressive boot for a wireless device |
PCT/US2008/080653 WO2009055394A2 (en) | 2007-10-26 | 2008-10-21 | Progressive boot for a wireless device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101836187A true CN101836187A (zh) | 2010-09-15 |
CN101836187B CN101836187B (zh) | 2013-10-30 |
Family
ID=40342629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008801134824A Active CN101836187B (zh) | 2007-10-26 | 2008-10-21 | 无线设备的渐进引导 |
Country Status (10)
Country | Link |
---|---|
US (1) | US8683213B2 (zh) |
EP (1) | EP2210174B1 (zh) |
JP (2) | JP5936820B2 (zh) |
KR (2) | KR101207823B1 (zh) |
CN (1) | CN101836187B (zh) |
BR (1) | BRPI0818710A2 (zh) |
CA (1) | CA2701279C (zh) |
RU (1) | RU2456663C2 (zh) |
TW (1) | TWI450195B (zh) |
WO (1) | WO2009055394A2 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291226B2 (en) * | 2006-02-10 | 2012-10-16 | Qualcomm Incorporated | Method and apparatus for securely booting from an external storage device |
US20090254898A1 (en) * | 2008-04-08 | 2009-10-08 | Microsoft Corporation | Converting a device from one system to another |
US8072811B2 (en) * | 2008-05-07 | 2011-12-06 | Aplus Flash Technology, Inc, | NAND based NMOS NOR flash memory cell, a NAND based NMOS NOR flash memory array, and a method of forming a NAND based NMOS NOR flash memory array |
KR101181957B1 (ko) * | 2008-11-18 | 2012-09-12 | 한국전자통신연구원 | 소프트웨어 기반의 무선 단말에서의 소프트웨어 재구성 방법 및 장치 |
JP5422308B2 (ja) * | 2009-08-31 | 2014-02-19 | 任天堂株式会社 | 情報処理装置 |
US8856941B2 (en) * | 2010-04-12 | 2014-10-07 | Interdigital Patent Holdings, Inc. | Staged control release in boot process |
US8310885B2 (en) * | 2010-04-28 | 2012-11-13 | International Business Machines Corporation | Measuring SDRAM control signal timing |
TWI456577B (zh) * | 2010-08-10 | 2014-10-11 | Hon Hai Prec Ind Co Ltd | 反及閘快閃記憶體啓動裝置及使用方法 |
US8423724B2 (en) * | 2010-09-08 | 2013-04-16 | Smart Modular Technologies, Inc. | Dynamic back-up storage system with rapid restore and method of operation thereof |
JP5765561B2 (ja) * | 2011-05-11 | 2015-08-19 | 横河電機株式会社 | 表示器を備える機器 |
US8949586B2 (en) * | 2011-10-06 | 2015-02-03 | Cisco Technology, Inc. | System and method for authenticating computer system boot instructions during booting by using a public key associated with a processor and a monitoring device |
JP5776480B2 (ja) * | 2011-10-07 | 2015-09-09 | 株式会社リコー | 情報処理装置、正当性検証方法、正当性検証プログラム |
KR20130081459A (ko) * | 2012-01-09 | 2013-07-17 | 삼성전자주식회사 | 휴대단말기의 pre―load 어플리케이션 탑재를 위한 메모리 영역구분 장치 |
EP2972819B1 (en) * | 2013-03-15 | 2020-01-01 | Huawei Technologies Co., Ltd. | Booting method for computer system with multiple central processing units |
US9195406B2 (en) | 2013-06-28 | 2015-11-24 | Micron Technology, Inc. | Operation management in a memory device |
JP2015022373A (ja) * | 2013-07-16 | 2015-02-02 | 株式会社リコー | 制御装置及びその起動処理方法、並びにその制御装置を備えた画像形成装置 |
KR102538096B1 (ko) * | 2016-09-13 | 2023-05-31 | 삼성전자주식회사 | 어플리케이션을 검증하는 디바이스 및 방법 |
CN106452783B (zh) * | 2016-09-26 | 2021-02-09 | 上海兆芯集成电路有限公司 | 计算机系统及安全执行的方法 |
KR102617354B1 (ko) * | 2017-01-05 | 2023-12-26 | 삼성전자주식회사 | 보안 부트 시퀀서 및 보안 부트 장치 |
US11003537B2 (en) * | 2018-05-29 | 2021-05-11 | Micron Technology, Inc. | Determining validity of data read from memory by a controller |
US11250135B1 (en) * | 2018-07-31 | 2022-02-15 | Marvell Asia Pte, Ltd. | Method and apparatus for authorizing unlocking of a device |
US10942654B2 (en) * | 2018-11-01 | 2021-03-09 | EMC IP Holding Company LLC | Hash-based data recovery from remote storage system |
US11271720B2 (en) * | 2019-03-25 | 2022-03-08 | Micron Technology, Inc. | Validating data stored in memory using cryptographic hashes |
US11159514B2 (en) * | 2020-02-27 | 2021-10-26 | Bank Of America Corporation | System for authenticating process operations on a network using context locked progressive session tokens |
US12010242B2 (en) * | 2020-07-10 | 2024-06-11 | Arm Limited | Memory protection using cached partial hash values |
US12008379B2 (en) | 2021-05-14 | 2024-06-11 | Samsung Electronics Co., Ltd. | Automotive image sensor, image processing system including the same and operating method thereof |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5610981A (en) * | 1992-06-04 | 1997-03-11 | Integrated Technologies Of America, Inc. | Preboot protection for a data security system with anti-intrusion capability |
JPH0793980A (ja) | 1993-09-24 | 1995-04-07 | Toshiba Emi Ltd | データ記録再生装置 |
TW266241B (en) | 1995-02-06 | 1995-12-21 | Komatsu Mfg Co Ltd | Revolving-type low altitude embarkation operation car |
US5643086A (en) * | 1995-06-29 | 1997-07-01 | Silicon Gaming, Inc. | Electronic casino gaming apparatus with improved play capacity, authentication and security |
JP2002515765A (ja) | 1995-06-29 | 2002-05-28 | シリコン・ゲーミング・インコーポレーテッド | 優れた遊技機能と認証およびセキュリティを有する電子的カジノゲームシステム |
US6708274B2 (en) * | 1998-04-30 | 2004-03-16 | Intel Corporation | Cryptographically protected paging subsystem |
US20010007131A1 (en) * | 1997-09-11 | 2001-07-05 | Leonard J. Galasso | Method for validating expansion roms using cryptography |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
US7409546B2 (en) * | 1999-10-20 | 2008-08-05 | Tivo Inc. | Cryptographically signed filesystem |
US6565443B1 (en) * | 1999-09-14 | 2003-05-20 | Innovative Gaming Corporation | System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device |
US6595856B1 (en) | 2000-01-04 | 2003-07-22 | Sigma Game, Inc. | Electronic security technique for gaming software |
US6601167B1 (en) | 2000-01-14 | 2003-07-29 | Advanced Micro Devices, Inc. | Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program |
US6625729B1 (en) * | 2000-03-31 | 2003-09-23 | Hewlett-Packard Company, L.P. | Computer system having security features for authenticating different components |
JP3971890B2 (ja) | 2000-11-01 | 2007-09-05 | 日本電信電話株式会社 | 署名検証支援装置、署名検証支援方法、及び電子署名検証方法 |
US20030018892A1 (en) * | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
DE10208442A1 (de) | 2001-09-27 | 2003-05-15 | Marc Delling | Hochsicherheits-Server als Datenverarbeitungsanlage |
US6944757B2 (en) * | 2001-10-16 | 2005-09-13 | Dell Products L.P. | Method for allowing CD removal when booting embedded OS from a CD-ROM device |
US7434068B2 (en) * | 2001-10-19 | 2008-10-07 | Intel Corporation | Content protection in non-volatile storage devices |
US20030084298A1 (en) * | 2001-10-25 | 2003-05-01 | Messerges Thomas S. | Method for efficient hashing of digital content |
TWI228220B (en) | 2002-03-08 | 2005-02-21 | Samsung Electronics Co Ltd | System boot using NAND flash memory and method thereof |
KR20040099253A (ko) * | 2002-04-23 | 2004-11-26 | 마쯔시다덴기산교 가부시키가이샤 | 서버 장치 및 프로그램 관리 시스템 |
JP4675031B2 (ja) | 2002-04-23 | 2011-04-20 | パナソニック株式会社 | サーバ装置及びプログラム管理システム |
JP4492025B2 (ja) | 2002-05-21 | 2010-06-30 | 株式会社デンソー | 電子制御装置のデータ格納方法 |
KR100469669B1 (ko) | 2002-09-24 | 2005-02-02 | 삼성전자주식회사 | 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법 |
JP4073301B2 (ja) | 2002-10-15 | 2008-04-09 | 株式会社リコー | 情報処理装置 |
JP4323163B2 (ja) | 2002-11-25 | 2009-09-02 | 三菱電機株式会社 | サーバ装置 |
JP2004265286A (ja) | 2003-03-04 | 2004-09-24 | Fujitsu Ltd | 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理 |
US20050091496A1 (en) * | 2003-10-23 | 2005-04-28 | Hyser Chris D. | Method and system for distributed key management in a secure boot environment |
JP2005157528A (ja) | 2003-11-21 | 2005-06-16 | Fuji Xerox Co Ltd | メモリ装置 |
JP4534498B2 (ja) | 2004-01-28 | 2010-09-01 | ソニー株式会社 | 半導体装置およびその起動処理方法 |
US7401234B2 (en) | 2004-03-01 | 2008-07-15 | Freescale Semiconductor, Inc. | Autonomous memory checker for runtime security assurance and method therefore |
JP4604543B2 (ja) * | 2004-04-30 | 2011-01-05 | 日本電気株式会社 | 計算機、計算機起動方法、管理サーバ装置およびプログラム |
US7694121B2 (en) * | 2004-06-30 | 2010-04-06 | Microsoft Corporation | System and method for protected operating system boot using state validation |
JP2006059116A (ja) * | 2004-08-19 | 2006-03-02 | Sony Ericsson Mobilecommunications Japan Inc | 携帯端末 |
JP2006146485A (ja) | 2004-11-18 | 2006-06-08 | Toshiba Corp | 携帯端末 |
JP2006163714A (ja) * | 2004-12-06 | 2006-06-22 | Fuji Photo Film Co Ltd | 撮影装置 |
US20060133495A1 (en) | 2004-12-22 | 2006-06-22 | Yan Ye | Temporal error concealment for video communications |
JP2006178909A (ja) | 2004-12-24 | 2006-07-06 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
JP4489030B2 (ja) | 2005-02-07 | 2010-06-23 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサ内にセキュアな起動シーケンスを提供する方法および装置 |
JP4373943B2 (ja) | 2005-02-28 | 2009-11-25 | Tdk株式会社 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
KR100626391B1 (ko) * | 2005-04-01 | 2006-09-20 | 삼성전자주식회사 | 원낸드 플래시 메모리 및 그것을 포함한 데이터 처리시스템 |
TWI266241B (en) * | 2005-07-01 | 2006-11-11 | Via Tech Inc | Method for booting up a computer system |
JP4130453B2 (ja) * | 2005-07-28 | 2008-08-06 | 京セラ株式会社 | 無線通信装置 |
JP4661505B2 (ja) * | 2005-09-30 | 2011-03-30 | ソニー株式会社 | 情報処理装置、情報処理方法及びそのプログラム |
US20070143530A1 (en) * | 2005-12-15 | 2007-06-21 | Rudelic John C | Method and apparatus for multi-block updates with secure flash memory |
US8291226B2 (en) | 2006-02-10 | 2012-10-16 | Qualcomm Incorporated | Method and apparatus for securely booting from an external storage device |
JP4921000B2 (ja) * | 2006-03-15 | 2012-04-18 | キヤノン株式会社 | 画像処理装置、画像処理装置の制御方法、及びプログラム |
US8750387B2 (en) | 2006-04-04 | 2014-06-10 | Qualcomm Incorporated | Adaptive encoder-assisted frame rate up conversion |
JP2007282067A (ja) * | 2006-04-11 | 2007-10-25 | Hitachi Ltd | デジタル放送受信装置 |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
-
2007
- 2007-10-26 US US11/925,567 patent/US8683213B2/en not_active Expired - Fee Related
-
2008
- 2008-10-21 KR KR1020117030186A patent/KR101207823B1/ko active IP Right Grant
- 2008-10-21 KR KR1020107011430A patent/KR101170335B1/ko active IP Right Grant
- 2008-10-21 CN CN2008801134824A patent/CN101836187B/zh active Active
- 2008-10-21 RU RU2010121177/08A patent/RU2456663C2/ru active
- 2008-10-21 BR BRPI0818710 patent/BRPI0818710A2/pt not_active Application Discontinuation
- 2008-10-21 CA CA2701279A patent/CA2701279C/en not_active Expired - Fee Related
- 2008-10-21 WO PCT/US2008/080653 patent/WO2009055394A2/en active Application Filing
- 2008-10-21 EP EP08843081.4A patent/EP2210174B1/en active Active
- 2008-10-21 JP JP2010531169A patent/JP5936820B2/ja not_active Expired - Fee Related
- 2008-10-24 TW TW097141081A patent/TWI450195B/zh not_active IP Right Cessation
-
2015
- 2015-07-24 JP JP2015147035A patent/JP2016001481A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
RU2456663C2 (ru) | 2012-07-20 |
KR20110138304A (ko) | 2011-12-26 |
KR101170335B1 (ko) | 2012-08-02 |
JP2016001481A (ja) | 2016-01-07 |
WO2009055394A2 (en) | 2009-04-30 |
CA2701279C (en) | 2015-11-24 |
KR101207823B1 (ko) | 2012-12-04 |
JP5936820B2 (ja) | 2016-06-22 |
TW200935308A (en) | 2009-08-16 |
EP2210174A2 (en) | 2010-07-28 |
EP2210174B1 (en) | 2018-08-29 |
US20090113558A1 (en) | 2009-04-30 |
RU2010121177A (ru) | 2011-12-10 |
WO2009055394A3 (en) | 2009-09-24 |
CN101836187B (zh) | 2013-10-30 |
BRPI0818710A2 (pt) | 2015-05-05 |
US8683213B2 (en) | 2014-03-25 |
KR20100075658A (ko) | 2010-07-02 |
TWI450195B (zh) | 2014-08-21 |
CA2701279A1 (en) | 2009-04-30 |
JP2011501321A (ja) | 2011-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101836187B (zh) | 无线设备的渐进引导 | |
KR101049647B1 (ko) | 외부 저장 디바이스로부터 안전하게 부팅하기 위한 방법 및 장치 | |
CA2832348C (en) | Managing data for authentication devices | |
US6606707B1 (en) | Semiconductor memory card | |
KR100906967B1 (ko) | 대량 저장장치를 구비한 착탈가능한 컴퓨터 | |
EP2633464B1 (en) | Software authentication | |
CN101122942B (zh) | 数据安全读取方法及其安全存储装置 | |
JP2010527219A (ja) | 物理的に複製不可能な機能を用いて電子機器のセキュリティを電子的に確保する方法およびシステム | |
WO2006109307A2 (en) | Method, device, and system of selectively accessing data | |
CN101562040A (zh) | 高安全性移动存储器及其数据处理方法 | |
US20120284534A1 (en) | Memory Device and Method for Accessing the Same | |
CN102177678A (zh) | 可信和机密的远程tpm初始化 | |
WO2005031504A2 (en) | Method and apparatus for authenticating data | |
US9875048B2 (en) | Solid state memory unit and method for protecting a memory including verification of a sequence of requests for access to physical blocks | |
KR101808315B1 (ko) | 모바일 장치 및 사용자 단말기 사이의 인증서 로밍 방법 및 시스템 | |
JP5539024B2 (ja) | データ暗号化装置およびその制御方法 | |
CN117879900A (zh) | 一种信息存储设备、信息存储设备的认证方法及系统 | |
CN116383858A (zh) | 一种磁盘数据处理方法、装置、设备及介质 | |
WO1998053386A1 (en) | System and method for using a second resource to store a data element from a first resource in a first-in first-out queue |
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 |