CN116909955A - 从块装置引导的方法及设备 - Google Patents
从块装置引导的方法及设备 Download PDFInfo
- Publication number
- CN116909955A CN116909955A CN202310390125.9A CN202310390125A CN116909955A CN 116909955 A CN116909955 A CN 116909955A CN 202310390125 A CN202310390125 A CN 202310390125A CN 116909955 A CN116909955 A CN 116909955A
- Authority
- CN
- China
- Prior art keywords
- image
- memory
- slice
- circuitry
- address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000006837 decompression Effects 0.000 claims description 38
- 238000012546 transfer Methods 0.000 claims description 38
- 230000004044 response Effects 0.000 claims description 10
- 238000004378 air conditioning Methods 0.000 claims 12
- 230000036316 preload Effects 0.000 description 66
- 238000003860 storage Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 239000003990 capacitor Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000011532 electronic conductor Substances 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本公开的实施例涉及从块装置引导的方法及设备。一种实例设备包含:第一接口(126),其经配置以耦合到处理器核心(112);第二接口(120),其经配置以耦合到经配置以存储包含一组切片(102A到102F)的映像的第一存储器(102);第三接口(122),其耦合到所述第一接口(126),所述第三接口(122)经配置以耦合到第二存储器(106);直接存储器存取电路(128),其耦合到所述第二接口(120)及所述第三接口(122)且经配置以:从所述第二接口(120)接收事务,其中所述事务指定对所述一组切片(102A到102F)中的切片的读取;及基于所述事务:从所述第一存储器(102)读取所述切片;对所述切片执行实时操作;及将所述切片存储在所述第二存储器(106)中。
Description
技术领域
本描述大体上涉及从外部闪存引导,且更特定来说,涉及从块装置引导的方法及设备。
背景技术
传统的微控制器单元(MCU)包含经配置为用于执行就地操作的引导媒体的集成闪存。一些MCU包含可包含多个计算核心的中央处理单元(CPU)。多核心MCU可能要求每一计算核心具有单独的引导映像,以便处理应用程序的操作。用于多核心MCU的多个引导映像可能要求MCU能够存取数量增加的闪存,以便存储多个引导映像。一些多核心MCU包含从外部闪存(例如NAND闪存装置、NOR闪存装置等)引导以补偿闪存存储器的增加的方法。
发明内容
针对从块装置引导的方法及设备,一种实例设备包含:第一接口,其经配置以耦合到处理器核心;第二接口,其经配置以耦合到经配置以存储包含一组切片的映像的第一存储器;第三接口,其耦合到所述第一接口,所述第三接口经配置以耦合到第二存储器;直接存储器存取电路,其耦合到所述第二接口及所述第三接口且经配置以:从所述第二接口接收事务,其中所述事务指定对所述一组切片中的切片的读取;及基于所述事务:从所述第一存储器读取所述切片;对所述切片执行实时操作;及将所述切片存储在所述第二存储器中。
附图说明
图1是实例微控制器单元的框图,其经配置以使用实例性的来自块装置加速器的引导从实例块装置引导。
图2是图1的块装置的说明性实例,包含可用于引导图1的微控制器单元的映像的多个压缩部分。
图3是图1及2的块装置的实例存储器映射及其到图1的微控制器单元的内部存储器的对应映射的说明性实例,其包含第一实例映像及第二实例映像。
图4是图1及2的块装置与图1的微控制器单元的内部存储器的实例存储器映射的说明性实例,其包含图3的第一映像、图3的第二映像及实例预加载标头。
图5是使用图1的来自块装置加速器的引导来引导图1的微控制器单元以引导对应于实例第一及第二计算核心的图3及4的第一映像及第二映像的实例序列的实例时序图。
图6是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的来自块装置加速器的引导及/或更一般来说生成图4的签名表及/或预加载标头的硬件来执行。
图7是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的来自块装置加速器的引导及/或更一般来说在图1的微控制器单元的复位之后启动来自块装置加速器的引导的硬件来执行。
图8是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的来自块装置加速器的引导及/或更一般来说执行图5的序列以使用图4的预加载标头引导图1的微控制器单元的硬件来执行。
图9是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的来自块装置加速器的引导及/或更一般来说执行图5的序列以使用来自一或多个核心的多个请求引导图1的微控制器单元的硬件来执行。
图10是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的来自块装置加速器的引导及/或更一般来说在图5的序列期间执行实时操作以使用来自一或多个核心的多个请求引导图1的微控制器单元的硬件来执行。
图11是包含处理器电路系统的实例处理平台的框图,所述处理电路系统经构造以执行实例机器可读指令及/或图6到9的实例操作以实施图1的来自块装置加速器的引导。
在附图中使用相同的参考数字或其它参考指定符来指定相同或类似(在功能及/或结构上)的特征。
具体实施方式
图式不一定按比例绘制。通常,图式及具体实施方式中的相同参考数字指代相同或相似的部件。尽管图式展示具有清晰线条及边界的层及区域,但这些线条及/或边界中的一些或全部可能是理想化的。实际上,边界及/或线条可能是不可观察的、混合的及/或不规则的。
传统的微控制器单元(MCU)包含经配置为用于执行应用程序的就地操作的引导媒体的集成闪存。传统MCU在集成闪存中存储引导映像,使得需要安全引导加载的应用程序可预先认证引导映像以减少MCU引导持续时间,以在MCU引导操作期间绕过引导映像的认证。MCU可在外部存储器中存储一或多个引导映像,以减少微控制器的片上系统(SoC)大小。经配置以从外部存储器引导的MCU可通过在存储在外部存储器中的引导映像转移到内部存储器之后认证所述引导映像来执行安全引导加载的操作。由于必须先将存储在外部存储器中的整个引导映像复制到内部存储器(例如,随机存取存储器(RAM))然后MCU才可认证所述引导映像,所以需要时间敏感的启动逻辑及安全引导的一些实例应用程序可能会经历增加的引导序列持续时间。
多核心MCU是包含包括多个计算核心的中央处理单元(CPU)的MCU。此类计算核心可被称为处理核心、核心等。多核心MCU可针对多核心MCU中的每一计算核心利用单独的引导映像。例如,包含两个计算核心的CPU可加载至少两个引导映像以便起始应用程序的处理操作。因此,与仅包含一个计算核心的MCU相比,多核心MCU可并入更多的集成闪存以补偿存储在闪存存储器内的多个引导映像。一些多核心MCU经配置以使用外部装置以存储多个引导映像(所述引导映像可用于起始应用程序的处理操作)以减小微控制器的SoC大小并降低增加集成闪存存储器的成本。
在此类实例中,多核心MCU的成本可通过实施基于块的闪存存储器装置(例如,NAND存储器、NOR存储器等)来进一步降低。块存储器装置可按由固定字节数组成的块来读取。基于块的闪存存储器装置经配置以响应于读取事务而传输完整的存储器块。例如,NAND存储器装置可能要求每一读取操作由一个千字节的块组成,使得所存储的数据以一个千字节的块的形式供应。在此类实例中,请求存储在存储器块中的数据的一部分的装置作为请求存储器块的完整读取的结果可能仅能够存取所述数据。基于块的闪存存储器装置经配置以将所存储的数据指派给所存储数据被指派的数据块的存储器地址,使得可使用块地址读取存储在基于块的闪存存储器的块中的数据。例如,存储在存储器地址处的块处的数据表中的条目的特定值可作为请求读取与所述数据表相关联的块的结果由另一装置存取。在此类实例中,特定值可作为使用偏移的结果及/或通过在本地存储器中存储及搜索数据表来确定。对存储在基于块的闪存存储器装置中的数据的存取限于在确定存储在存储器块中的值的位置之前及/或在确定存储在存储器块中的值的位置的同时读取整个存储器块。
基于块的存储器装置可经配置以包含任何大小的块。有利地,基于块的存储器装置的SoC封装的大小可作为增加块的大小的结果而减小,使得基于块的存储器装置可作为增加块的大小的结果而增大存储器容量或减小SoC封装。有利地,基于块的存储器装置的成本可作为增加块的大小的结果而降低,使得与存取数目增加的可寻址块相关联的电路系统被减少。作为使用串行接口存取所存储的数据的结果,基于块的存储装置可进一步降低成本。随着块的大小增加,基于块的存储器装置的编程及/或擦除循环的数目减少。有利地,使用相对大的块大小来存储一或多个引导映像的基于块的存储器装置的应用程序仅在对引导映像进行改变时擦除及/或编程块装置的块。经配置以存储需要不频繁编程及/或擦除(例如存储引导映像)的数据的基于块的存储装置可使用相对大的块大小来减小系统的大小及成本。
将块装置实施为外部存储器以存储一或多个引导映像的多核心MCU在引导序列期间需要额外的时间来将引导映像从外部存储装置转移到内部存储器。此外,支持安全引导的应用程序在所述映像被转移到内部存储器之后需要额外的时间来认证映像。在时间敏感的应用程序(例如,数字集群)中,用以将整个引导映像从外部存储装置转移到内部存储器及/或认证引导映像的额外时间可能会导致性能问题及/或限制多核心MCU的实施。
本文所公开的实例包含用以使用存储在块存储装置中的一或多个引导映像来引导MCU的方法及设备,此类块存储装置可在MCU外部。在一些所描述的实例中,可实施来自块装置加速器的引导(BBDAc)以减少引导MCU所需的持续时间。BBDAc可在多核心MCU中实施以进一步减少使用存储在块存储装置上的多个引导映像来引导多核心MCU所需的额外时间。本文所描述的BBDAc可随着引导映像被加载到内部存储器中执行引导映像的实时递增认证,使得BBDAc可被包含在需要安全引导加载的应用程序中。有利地,BBDAc可实施递增认证,以在将引导映像的部分转移到内部存储器的同时启用安全引导加载。
在一些所描述的实例中,作为从计算核心接收命令的结果,BBDAc可将引导映像的部分从外部块装置转移到内部存储器。例如,计算核心可能会请求BBDAc转移并认证引导映像的一部分,以便执行时间敏感的应用程序操作。在此类实例中,BBDAc可基于来自计算核心的请求确定存储在块装置的一或多个块中的要加载及认证的映像的切片。替代地,BBDAc可预处理引导映像的部分,使得每一引导映像可具有对应的预加载标头,其可由BBDAc使用以确定转移及认证每一引导映像的每一块的序列。有利地,作为执行实时递增认证及映像加载的结果,BBDAc减少了从外部块装置引导MCU所需的持续时间。
图1是实例微控制器单元(MCU)100的框图,其经配置以使用实例性的来自块装置加速器的引导(BBDAc)104从实例存储器装置102引导。在图1的实例中,MCU 100包含存储器装置102、BBDAc 104、实例内部存储器106、实例地址解码器108、实例互连件110、第一实例计算核心112、第二实例计算核心114、实例块存储器控制器116及实例安全元件118。MCU100经配置以从存储在存储器装置102上的一或多个引导映像引导计算核心112及114。MCU100可实施BBDAc 104以加载、认证及解压缩存储在存储器装置102上的一或多个引导映像。MCU 100可使用作为计算核心112或114从BBDAc104请求存取引导映像的一部分的结果而加载的引导映像的部分来引导计算核心112及114。
在图1的实例中,存储器装置102耦合到块存储器控制器116。替代地,存储器装置102可耦合到BBDAc 104。存储器装置102可为块存储器装置(例如,NAND装置),使得数据可仅以预定量(例如,1千字节、10千字节等)读取。存储器装置102是块存储器装置,其可被表示为多个不同的可个别地寻址的存储器块的组合,此类存储器块可被称为切片或部分。
在图1的实例中,存储器装置102是闪存存储器装置,其包含经配置以存储实例签名表102A的区域、经配置以存储映像的切片(说明第一实例切片102B、第二实例切片102C、第三实例切片102D、第四实例切片102E等)的区域且进一步包含数据存储区域102F。切片102B到102E各自对应于存储器装置102内的不同地址。切片的地址可对应于切片中的第一位的地址。可使用包含要读取的装置的一或多个块的地址的读取操作来存取存储在存储器装置102中的数据。例如,存储器装置102可使用包含在存储器装置102与BBDAc 104之间的块存储器控制器116中的通信电路系统(例如,串行接口、串行外围接口等)来响应于读取请求。替代地,可使用另一通信协议(例如,集成电路间(I2C)、串行外围接口(SPI)、异步通信等)来存取存储器装置102。替代地,存储器装置102可为不受块存取限制的外部闪存装置。
BBDAc 104耦合到内部存储器106、地址解码器108、块存储器控制器116及安全元件118。BBDAc 104包含实例多上下文直接存储器存取(DMA)电路系统120、实例地址重新映射电路系统122、实例安全区电路系统124及实例端口126。BBDAc 104经配置以基于由计算核心112及/或114生成的存取请求(此类指令可被称为前景加载)、基于递增线性存储器地址的指令(此类指令可被称为背景加载)及/或由预加载标头表定义的指令来加载、认证及/或解压缩存储在存储器装置102中的一或多个引导映像的一或多个部分。此类存取请求指定要转移的映像的切片。BBDAc 104可使用多上下文DMA电路系统120一次将一或多个引导映像、切片(例如,切片102B到102E)转移到内部存储器106中。BBDAc 104可使用地址重新映射电路系统122来跟踪引导映像的哪些切片转移到内部存储器106。BBDAc 104可使用安全区电路系统124实时认证引导映像的切片。
多上下文DMA电路系统120经配置以将块存储器控制器116耦合到地址重新映射电路系统122。多上下文DMA电路系统120可另外耦合到内部存储器106及/或安全区电路系统124。多上下文DMA电路系统是实例直接存储器存取电路。在图1的实例中,多上下文DMA电路系统120包含实例前景DMA电路系统128、实例存取调度器电路系统130、实例背景DMA电路系统132及实例块装置状态机134。多上下文DMA电路系统120启用地址重新映射电路系统122以使用多个DMA电路系统(例如,DMA电路系统128及132)向存储器装置102发送存取请求,使得多上下文DMA电路系统120可预加载引导映像的切片,同时满足来自地址解码器108的引导映像存取请求。多上下文DMA电路系统与存储器装置102之间的此类读取操作可被称为指定要从存储器装置102转移的映像的事务。
前景DMA电路系统128耦合在地址重新映射电路系统122与存取调度器电路系统130之间。前景DMA电路系统128在地址重新映射电路系统122与存储器装置102之间提供直接存储器存取。前景DMA电路系统128可经配置以对从存储器装置102转移的切片执行实时操作。例如,前景DMA电路系统128可在作为存取安全区电路系统124的结果而在从存储器装置102向内部存储器106转移引导映像的切片时对引导映像进行认证。前景DMA电路系统128可包含用以处理每一计算核心的操作的电路系统。例如,前景DMA电路系统128可存取第一DMA通道以转移对应于第一计算核心112的映像的切片,及存取第二DMA通道以转移对应于第二计算核心114的映像的切片。有利地,前景DMA电路系统128提高存储器切片可从存储器装置102转移到内部存储器106的速率。有利地,前景DMA电路系统128可对从存储器装置102转移的切片执行实时操作。
存取调度器电路系统130耦合到前景DMA电路系统128、背景DMA电路系统132及块装置状态机134。存取调度器电路系统130经配置以控制对存储器装置102的存取并建立基于事务的高或低优先级来完成来自前景DMA电路系统128及/或背景DMA电路系统132的存取尝试的顺序。例如,存取调度器电路系统130可使来自前景DMA电路系统128的存取存储器装置102中的切片的尝试优先于来自背景DMA电路系统132的请求。在此类实例中,作为从背景DMA电路系统132接收到低优先级存取请求且没有从前景DMA电路系统128接收到高优先级请求的结果,存取调度器电路系统130可向背景DMA电路系统132提供对存储器装置102的存取。存取调度器电路系统130可包含用于对来自DMA电路系统128及132两者的多个存取请求进行排队的电路系统。替代地,存取调度器电路系统130可用解码器电路系统或类似的控制电路系统替换,其中对多上下文DMA电路系统120稍作修改。
存取调度器电路系统130可在其中背景DMA电路系统132正在加载引导映像的切片的操作期间抢占来自前景DMA电路系统128的请求,使得来自前景DMA电路系统128的请求在背景DMA电路系统132完成切片的加载之前得到满足。例如,作为从前景DMA电路系统128接收到存取请求的结果,存取调度器电路系统130可阻止背景DMA电路系统132完成已开始的映像的切片的转移。在此类实例中,存取调度器电路系统130允许来自前景DMA电路系统的请求在完成背景DMA电路系统132的操作之前完成,背景DMA电路系统132的操作被存取调度器电路系统130阻止而无法完成。存取调度器电路系统130为从背景DMA电路系统132接收的抢占式加载操作建立低优先级。有利地,存取调度器电路系统130使地址重新映射电路系统122能够使用背景DMA电路系统132预加载映像的切片,同时使前景DMA电路系统128可用于从存储器装置102请求引导映像的时间敏感切片。
背景DMA电路系统132耦合在地址重新映射电路系统122与存取调度器电路系统130之间。背景DMA电路系统132基于由对应于引导映像的预加载标头或切片的线性存储器地址(从起始块地址处开始)指定的顺序将切片从存储器装置102转移到引导映像,包括存储器装置102中的引导映像。例如,背景DMA电路系统132可加载第一切片,其存储在对应于存储引导映像的存储器装置102的第一块的起始块地址处。在此类实例中,紧接在加载第一切片之后,背景DMA电路系统132加载存储在按顺序位于起始块地址之后的存储器地址处的第二切片,使得第二切片对应于存储器装置102中的第二存储器块。背景DMA电路系统132提醒地址重新映射电路系统122已成功加载及/或认证引导映像的切片,使得所述切片不会被加载及/或认证多于一次。例如,作为加载及/或认证切片的结果,背景DMA电路系统132可在地址重新映射电路系统122中断言对应于存储器装置102中的由预加载标头指定的存储器位置处的引导映像的切片的值。在此类实例中,作为确定对应于切片的门被断言的结果,地址重新映射电路系统122可存取由地址解码器108请求的切片。背景DMA电路系统132与前景DMA电路系统128类似地配置,除非另有指定。
作为请求存取特定切片的结果,背景DMA电路系统132可从存储器装置102转移引导映像的切片,使得背景DMA电路系统132可通过指定存储器地址来存取切片。背景DMA电路系统132可预加载引导映像的切片作为预加载过程的一部分,其中可用于执行时间敏感操作的引导映像的切片在开始处理应用程序的操作之前被加载,使得阻止前景DMA电路系统128满足来自计算核心112及/或114的存取请求。例如,存取调度器电路系统130在优先化来自前景DMA电路系统128的存取请求之前允许背景DMA电路系统132预加载引导映像的切片。背景DMA电路系统132可在前景DMA电路系统128等待来自计算核心112及/或114的存取请求的持续时间期间预加载引导映像的切片。例如,作为读取与正在读取及存储在存储器装置102中的映像相关联的预加载标头的结果,BBDAc 104可使用背景DMA电路系统132加载引导映像的多个切片。替代地,BBDAc 104可包含DMA电路系统128及132的一或多个通道以存取存储器装置102的部分。有利地,作为使BBDAc 104能够预加载、认证及/或解压缩引导映像的切片的结果,背景DMA电路系统132可减少引导一或多个计算核心(例如,计算核心112及114)的时间。
块装置状态机134耦合在块存储器控制器116与存取调度器电路系统130之间。块装置状态机134可将来自存取调度器电路系统130的引导映像存取请求转换成可由块存储器控制器116服务的请求。例如,块装置状态机134可向块存储器控制器116供应对应于由存取调度器电路系统130提供的存取请求的地址。稍作修改的块装置状态机134可经配置以将存取请求转换成特定于块装置的类型的请求,使得存取请求可被转换为对硬盘、原始NAND装置、多媒体卡等的请求。块装置状态机134可对从存储器装置102接收的数据执行操作,例如解压缩、认证等。替代地,块装置状态机134可被包含在块存储器控制器116、存取调度器电路系统130等中。有利地,块装置状态机134可使存取调度器电路系统130能够在存储器装置102处理请求的同时对来自DMA电路系统128及/或132的请求进行排队。有利地,块装置状态机134可基于来自存取调度器电路系统130的请求使得多个实时操作能够被执行。
地址重新映射电路系统122耦合到内部存储器106、端口126、前景DMA电路系统128及背景DMA电路系统132。地址重新映射电路系统122可耦合到存储器装置102、块存储器控制器116、存取调度器电路系统130及/或块装置状态机134。在图1的实例中,地址重新映射电路系统122包含第一实例区域地址122A、第一实例门122B、第二实例区域地址122C、第二实例门122D、第三实例区域地址122E及第三实例门122F。地址重新映射电路系统122可包含对应于包括存储在存储器装置102中的一或多个引导映像的切片的数目的多个区域地址及/或门。作为从端口126接收到存取对应于区域地址的引导映像的切片的请求的结果,地址重新映射电路系统122可传输存取请求以存取对应于区域地址(例如,区域地址122A、122C及122E)的映像的切片。地址重新映射电路系统122确定与存取请求相关联的引导映像的切片,使得可转移含有引导映像的被请求部分的切片。例如,地址重新映射电路系统122可确定存储器装置102中的用于大小为2千字节(KB)的切片的存储器地址,所述切片包含满足存取所需的引导映像的一部分,大约32字节。作为确定与存取请求相关联的切片已从存储器装置102转移到内部存储器106的结果,地址重新映射电路系统122可存取内部存储器106的切片。
地址重新映射电路系统122包含多个区域地址(例如,区域地址122A、122C及122E),其各自对应于门(例如,门122B、122D及122F),门可被断言以表示所述区域被存储在内部存储器106中。地址重新映射电路系统122经配置以跟踪导致映像的切片从存储器装置102转移到内部存储器的事务。例如,作为确定对应于切片的区域地址的门被断言的结果,地址重新映射电路系统122可向端口126指示被存取的引导映像的切片已在内部存储器106中。在一个此类实例中,作为确定与切片的区域地址相关联的门未被断言的结果,地址重新映射电路系统122可请求使用前景DMA电路系统128从存储器装置102转移引导映像的切片。随着映像的切片被预加载,地址重新映射电路系统122的门可由背景DMA电路系统132断言。例如,背景DMA电路系统132断言对应于已经预加载的切片的门。替代地,作为确定与切片相关联的门被断言的结果,地址重新映射电路系统122可从内部存储器106加载切片。有利地,地址重新映射电路系统122跟踪引导映像的哪些切片已被转移到内部存储器106。有利地,地址重新映射电路系统122可使用前景DMA电路系统128向存储器装置102发送时间敏感的存取请求且可使用背景DMA电路系统132预加载映像的切片。
安全区电路系统124耦合到安全元件118。在图1的实例中,安全区电路系统124包含实例切片摘要表136、实例密码电路系统138、实例解压缩引擎电路系统140及实例控制块电路系统142。安全区电路系统124执行用以认证、解压缩及/或定位从存储器装置102转移的引导映像的切片的过程。安全区电路系统124经配置以使用解压缩引擎电路系统来解压缩映像切片。安全区电路系统124可由安全元件118存取以使额外电路系统能够利用安全区电路系统124的过程。
切片摘要表136耦合到控制块电路系统142。替代地,切片摘要表136可适于耦合到MCU 100的任何组件。切片摘要表136是硬件查找表,其作为预处理签名表102A的完成的结果被加载。签名表102A的预处理可经配置以确定包括存储器装置102的多个切片及/或与切片相关联的指针,使得切片摘要表136可实时地认证引导映像的切片。切片摘要表136可使BBDAc 104能够执行引导映像的切片的实时解压缩及认证。例如,切片摘要表136可存储特定于可能需要的存储器装置102的每一切片的切片摘要数据,以便认证及/或解压缩引导映像的对应切片。在此类实例中,切片摘要表136可包含用于每一切片的经验证数字签名,其可与切片进行比较以认证切片以支持安全引导加载。有利地,作为启用引导映像切片的实时解压缩及/或认证的结果,切片摘要表136减少引导MCU 100所需的持续时间。有利地,切片摘要表136使BBDAc 104能够支持安全引导加载,同时一次一个切片地加载引导映像。
密码电路系统138耦合到控制块电路系统142。替代地,作为MCU 100的应用程序的额外硬件加密要求的结果,密码电路系统138可耦合到BBDAc 104的另一组件。密码电路系统138可由安全元件118配置。例如,安全元件118可向密码电路系统138提供加密密钥及/或安全标识符。作为确定有效数字签名是否与引导映像的切片相关联的结果,密码电路系统138可认证引导映像的切片。例如,密码电路系统138可存取切片摘要表136的部分以确定与引导映像的切片相关联的数字签名是否满足使用存储在存储器装置102中的引导映像对MCU 100进行安全引导所需的准则。密码电路系统138可加密及/或解密引导映像的部分。例如,计算核心112及114的实例安全操作可在被存储在内部存储器106中之前由密码电路系统138加密,使得所述操作不能被存取。在一些此类实例中,密码电路系统138可在操作被计算核心112或114存取之前解密引导映像的经加密部分。有利地,作为数字签名验证及/或引用切片摘要表136的结果,密码电路系统138启用存储在存储器装置102中的引导映像的切片以支持安全引导操作。有利地,引导映像的部分可在被存储在内部存储器106中之前被加密。
解压缩引擎电路系统140耦合到控制块电路系统142。作为MCU 100的应用程序的额外数据压缩要求的结果,解压缩引擎电路系统140可耦合到BBDAc 104的另一组件。解压缩引擎电路系统140可由安全元件118配置。例如,安全元件118可向解压缩引擎电路系统140提供特定于要解压缩的数据的压缩的数据。解压缩引擎电路系统140可在引导映像的切片被存储在内部存储器106中之前解压缩所述切片。例如,作为存储在存储器装置102的切片中的数据被压缩到大约是存储器装置102的切片的大小的结果,引导映像的切片可大于包括存储器装置102的存储器的切片。有利地,使用块存储器控制器116从存储器装置102转移经压缩大小的切片,而使用DMA电路系统128及132将经解压缩大小的切片转移到内部存储器106。当从存储器装置102转移切片时,解压缩引擎电路系统140使用解压缩引擎电路系统实现映像切片的实时解压缩。解压缩引擎电路系统140可解压缩存储在内部存储器106中的数据。例如,作为大数据集被压缩以限制内部存储器106的使用的结果,大数据可由解压缩引擎电路系统140解压缩。有利地,解压缩引擎电路系统140使BBDAc 104能够对从存储器装置102转移的数据执行实时解压缩。有利地,解压缩引擎电路系统140使存储在存储器装置102的块存储器中的引导映像的切片能够被解压缩到比包含在存储器装置102中的存储器块的大小大的大小。
控制块电路系统142耦合在块存储器控制器116与安全区电路系统124之间。控制块电路系统142耦合到安全元件118。替代地,控制块电路系统142可基于BBDAc 104、存储器装置102、内部存储器106等的应用程序耦合到MCU 100的另一组件。控制块电路系统142可对从存储器装置102转移的存储器切片执行实时认证及/或解压缩。作为使用密码电路系统138将切片内的数字签名及/或指针与切片摘要表136进行比较的结果,控制块电路系统142可认证从存储器装置102转移的切片。例如,作为将来自对应于被指派的数字签名的切片的数字签名与切片摘要表136中的地址及/或指针进行比较的结果,控制块电路系统142可认证引导映像的切片。替代地,作为确定有效数字签名及/或匹配指针的结果,控制块电路系统142可认证来自存储器装置102的存储器切片。作为使解压缩引擎电路系统140能够解压缩来自存储器装置102的存储器切片的结果,控制块电路系统142可解压缩所述切片。控制块电路系统142可使安全元件118能够存取密码电路系统138及/或解压缩引擎电路系统140。有利地,控制块电路系统142可实现对来自存储器装置102的存储器切片的实时认证及/或解压缩。
端口126耦合在地址解码器108与地址重新映射电路系统122之间。替代地,端口126可耦合到经配置以存取BBDAc 104的多个组件。端口126经配置为双向端口以使地址解码器108能够向地址重新映射电路系统122发送对要从存储器装置102存取的引导映像的部分的存取请求,其可对应于计算核心112及/或114的一或多个特定操作。例如,地址解码器108可通过向端口126发送要加载的引导映像的部分的请求,请求BBDAc104存取对应于计算核心112及/或114的时间敏感操作的引导映像的一部分。存取请求可包含指示计算核心112或114中的哪一者正在使用存取请求请求存取的上下文标识符及/或存储器地址。作为确定正在尝试被存取的引导映像已被转移到内部存储器106的结果,端口126可向地址解码器108发送存取指示。例如,存取指示可为端口126断言地址解码器108中的门,使得地址解码器108可在引导映像已被完全加载时绕过BBDAc104。有利地,端口126使BBDAc 104能够与地址解码器108通信。
内部存储器106耦合到BBDAc 104及地址解码器108。内部存储器106可基于MCU100的应用程序耦合到MCU 100的另一组件。内部存储器106包含第一实例切片106A,第二实例切片106B及第三实例切片106C。替代地,内部存储器106可包含任意数目的切片,其可对应于从存储器装置102转移的数据切片。内部存储器106是易失性存储器存储媒体,其作为在存储器位置处读取数据的结果是可存取的,此类易失性存储器作为装置断电或装置复位的结果而可能被擦除。内部存储器106可使用高速缓存、任何类型的RAM、寄存器及/或任何其它存储装置或存储盘来实施,其中信息存储达任何持续时间(例如,达延长的时间段、达极短时间、用于临时缓冲及/或用于信息的高速缓存)。内部存储器106可在可使用可存储在地址重新映射电路系统122中的对应存储器地址存取的位置中存储引导映像的切片。有利地,内部存储器106可使引导映像的切片能够基于在存储器地址来存取。有利地,可以任何大小增量读取内部存储器106。
地址解码器108耦合到内部存储器106及端口126。地址解码器108包含实例指示门108A。作为互连件110指示计算核心112或114中的一者需要对应于映像的部分的操作的结果,地址解码器108可请求从存储器装置102转移引导映像的一部分。例如,作为第一计算核心112需要对应于一或多个外围设备的初始化的映像的部分的结果,地址解码器108可请求引导映像的一部分。作为确定指示门108A被断言的结果,地址解码器108可绕过BBDAc 104,使得地址解码器108存取内部存储器106以满足来自计算核心112及114的对引导映像的部分的存取请求。作为确定引导映像已完全加载到内部存储器106中的结果,BBDAc 104及/或地址解码器108可断言指示门108A。例如,作为确定指示门108A指示对应于请求的引导映像完全存储在内部存储器106中的结果,地址解码器108可存取内部存储器106中的引导映像的一部分。有利地,作为确定整个引导映像存储在内部存储器106中的结果,地址解码器108可绕过BBDAc 104。
互连件110耦合在地址解码器108与计算核心112及114之间。替代地,互连件110可耦合到任意数目的计算核心(例如,计算核心112及114)。互连件110可控制计算核心112或114中的哪一者可请求映像的一部分。互连件110可向地址解码器108及/或BBDAc104指示计算核心112或114中的哪一者正在请求引导映像的一部分。例如,存储器装置102含有用于第一计算核心112的第一引导映像及用于第二计算核心114的第二引导映像,使得对引导映像的一部分的存取的任何请求指示请求与两个可能的映像中的哪一者相关联。在此类实例中,地址解码器108可基于哪个计算核心被耦合到互连件110输入及/或输出确定计算核心112或114中的哪一者正在请求引导映像的操作。替代地,互连件110可为经配置以由MCU100控制的解码器。有利地,互连件110使多个计算核心能够从BBDAc 104请求引导映像的部分。
计算核心112及114耦合到互连件110。计算核心112及114可通过生成请求存取映像的特定切片的事务来存取应用程序的操作。计算核心112及114是经配置以基于由处理器核心实现的应用程序的操作来生成事务的实例处理器核心。计算核心112及114可通过向互连件110指示开始对应于映像的一部分的操作的意图来请求存取对应于映像的特定部分的操作,此类存取请求可被称为事务。作为接收映像的一或多个部分的结果,计算核心112及114可执行操作。计算核心112及114可通过生成存取请求来请求要加载的映像的时间敏感部分,存取请求请求使用BBDAc 104从存储器装置102转移映像的部分。例如,第一计算核心112可请求存取对应于早期数字集群起始的映像的部分,使得MCU 100可处理从数字集群中的其它装置接收的命令。有利地,计算核心112及114能够请求对应于映像的部分的操作,而无需在服务被请求的部分之前从存储器装置102转移整个映像。
块存储器控制器116耦合在存储器装置102与BBDAc 104之间。块存储器控制器116可基于来自BBDAc 104的存取请求来请求存取存储器装置102内的某些存储器块。例如,作为来自BBDAc 104的存取请求的结果,块存储器控制器116可请求存取第一切片102B。作为对存储器装置102的一或多个切片的存取请求的结果,块存储器控制器116向BBDAc 104发送所请求的数据。块存储器控制器116可使用可包含在块装置状态机134中或存储器装置102的片上系统的一部分中的外围电路系统与BBDAc 104通信。替代地,块存储器控制器116可使用例如集成电路间(I2C)、串行外围接口(SPI)等的通信协议与BBDAc 104介接。有利地,块存储器控制器116使存储器装置102能够作为块存储器装置(例如,NAND闪存、固态驱动器(SSD)等)。
安全元件118耦合到BBDAc 104的安全区电路系统124。安全元件118是受信任的实体,其可管理及/或存取安全内容。作为建立信任链的结果,安全元件118可变成受信任的实体。例如,安全元件118可配置及/或布建密码电路系统138以对针对内部存储器106的对应于敏感数据的部分的散列表存取执行硬件加密。安全元件118可配置解压缩引擎电路系统140以解压缩存储在存储器装置102上的与引导映像分离的数据。安全元件118可为负责用于解压缩、加密及/或解密的密钥的配置及运行时状态管理的外围装置或嵌入式安全处理核心。有利地,安全区电路系统124可被不在BBDAc 104内的电路系统存取以解压缩、加密及/或解密数据。
在实例操作中,作为确定从复位引导的结果,MCU 100可开始转移引导映像的切片,使得内部存储器106不再存储引导映像。作为确定复位已发生的结果,BBDAc 104请求存取签名表102A以生成切片摘要表136。BBDAc 104可另外解析预加载标头并开始使用背景DMA电路系统132从存储器装置102抢占式地转移引导映像的部分。背景DMA电路系统132可基于引导映像的预加载标头及/或签名表102A继续从存储器装置102转移引导映像的部分。地址重新映射电路系统122跟踪引导映像的哪个部分已由前景DMA电路系统128及/或背景DMA电路系统132从存储器装置102转移,方法是通过在所述部分被从存储器装置102转移之后将所述部分的存储器地址存储在内部存储器106中。此外,随着引导映像的部分被转移到内部存储器106,地址重新映射电路系统122修改对应于被转移的部分的门的状态。例如,作为对应于第一区域地址122A的引导映像的部分被转移到内部存储器106的结果,地址重新映射电路系统122可断言第一门122B。
在实例操作中,地址重新映射电路系统122可通过使用前景DMA电路系统128转移引导映像的一部分来请求以高优先级转移所述映像的所述部分。例如,作为从端口126接收到存取引导映像的尚未转移到内部存储器106的一部分的存取请求的结果,地址重新映射电路系统122可使用前景DMA电路系统128转移引导映像的一部分。在此类实例中,存取调度器电路系统130使由前景DMA电路系统128指示的存取请求优先于由背景DMA电路系统132做出的任何存取请求。作为来自存取调度器电路系统130的存取请求的结果,块装置状态机134及块存储器控制器116存取存储在存储器装置102中的切片(例如,切片102B到102E)。
在实例操作中,控制块电路系统142使用密码电路系统138认证引导映像的每一部分,以确定引导映像的所述部分是否具有数字签名及/或与存储在切片摘要表136中的数据匹配。控制块电路系统142使用解压缩引擎电路系统140在存取引导映像的部分的切片时对引导映像的部分进行解压缩,使得存储在内部存储器106中的数据的大小可能不等于由BBDAc 104存取的切片的大小。安全区电路系统124可对从存储器装置102转移的引导映像的切片执行实时操作。例如,安全区电路系统124可在切片被转移到内部存储器106时认证/或解压缩引导映像的切片。有利地,作为实时认证及/或解压缩的结果,计算核心112或114的复位与操作之间的持续时间减少。
在实例操作中,地址解码器108可从互连件110接收计算核心112或114中的一者正在请求存取对应于操作的引导映像的一部分的指示。作为接收到指示的结果,地址解码器108请求BBDAc 104从存储器装置102转移引导映像的部分。作为地址重新映射电路系统122确定与包括引导映像的部分的一或多个切片相关联的门(例如,门122B、122D、122F)被断言的结果,地址解码器108可从内部存储器106接收引导映像的部分。地址重新映射电路系统122可通过存取内部存储器106中的数据来满足存取请求。作为确定引导映像已被完全转移到内部存储器106的结果,地址解码器108存取内部存储器106的对应于引导映像的部分的部分。地址解码器108断言对应于可在内部存储器106中完全存取的引导映像的门(例如,指示门108A)。地址解码器108存取存储在内部存储器106中的引导映像的部分,这是因为地址解码器108确定对应于所述部分的引导映像是否已被完全转移。例如,作为确定引导映像的所有部分都在内部存储器106中的结果,地址解码器108可绕过BBDAc 104。替代地,由于映像的部分存储在存储器中,地址解码器108可绕过BBDAc 104。
图2是图1的存储器装置102的说明性实例,其包含可用于引导图1的MCU 100的映像的多个经压缩部分。在图2的实例中,存储器装置102包含第一切片102B、第二切片102C、第三切片102D及存储区域102F。存储器装置102是块存储装置,其数据只能以预定数据大小的部分被存取。例如,存储器装置102可为NAND闪存块装置,其以大约1千字节的块存储数据。在此类实例中,存储器装置102以大约1千字节的增量向另一装置提供数据。在图2的实例中,包括存储器装置102的块中的一或多者可被称为引导映像的切片,使得引导映像的切片可包含存储器装置102的多个块。存储器装置102的切片可经配置以存储MCU(例如,MCU100)的引导映像的一部分,使得多个切片可被组合以生成MCU的一或多个计算核心的引导映像。使用包括签名表102A的数据生成图1的切片摘要表136。切片摘要表136将包括存储器装置102的切片映射到地址位置。
在图2的实例中,切片102B到102E中的每一者各自对应于签名表102A及切片摘要表136内的单独行。在图2的实例中,签名表102A包含第一实例行205、第二实例行210、第三实例行215及第四实例行220。签名表102A及切片摘要表136可包含对应于存储器装置102的切片中的每一者的多个行。例如,签名表102A可包含存储器装置102的每一切片的行,其包括MCU 100的引导映像。
行205到220包含实例切片指针225、实例切片大小230及实例切片摘要235。行205到220各自对应于存储器装置102中的存储器切片。在图2的实例中,行205到220表示引导映像的一部分,其可由MCU 100使用以确定图1的计算核心112及114的操作。例如,第一切片102B可对应于第一行205,使得可通过存取切片摘要表136的第一行205来调用使用引导映像的第一切片102B执行的操作。在MCU 100的操作期间,BBDAc 104可通过确定切片摘要表136中的哪一行表示切片来确定对应于映像的操作的切片的位置。有利地,行205到220中的每一者包含存取存储器装置102中的对应切片所需的数据。
切片指针225可为表示切片在存储器装置102中的位置的值。例如,对应于第一行205的切片指针225是对应于存储第一切片102B的存储器装置102的逻辑块的存储器地址。有利地,切片指针225表示引导映像的切片的起始位置。
切片大小230可为表示存储器装置102中的对应切片的大小的值。例如,第一行205的切片大小230对应于包括引导映像的第一切片102B的字节数。替代地,切片大小230可为表示包括第一切片102B的存储器装置102内的块的数目的值。例如,第一切片102B可跨越具有1千字节块的NAND闪存内的三个1千字节存储器块。在此类实例中,切片大小230可为三以指示第一切片102B包含1千字节NAND闪存的三个块。有利地,切片大小230指示存储器装置102的表示对应切片的连续块的数目。
切片摘要235可为对应于存储在存储器装置102的块中的引导映像的切片的一或多个值。切片摘要235可包含用于认证引导映像的对应切片的值。例如,第一行205的切片摘要235包含用于认证引导映像的第一切片102B的数字签名的数据。在此类实例中,切片摘要235使安全区电路系统124能够个别地认证每一切片。替代地,切片摘要235可包含可用于解压缩存储器装置102的切片的值。例如,第一行205的切片摘要235可包含可由解压缩引擎电路系统140使用以解压缩第一切片102B的散列键。切片摘要235可包含用于指示切片的操作及/或切片的编号标识的数据。有利地,切片摘要235可经配置以包含多个值,其可由安全区电路系统124使用以识别、认证及/或解压缩引导映像的切片。
切片摘要表136可作为预处理对应于存储器装置102的签名表102A的结果而生成。切片摘要表136可由BBDAc 104使用签名表102A来构造。例如,图1的块装置状态机134可经配置以解析存储在签名表102A中的数据以生成切片摘要表136。签名表102A可存储在存储器装置102中的固定存储器地址处,使得BBDAc 104可作为确定存储器装置102耦合到BBDAc104的结果而加载签名表。有利地,作为修改与一或多个引导映像一起存储在存储器装置102中的签名表102A的结果,切片摘要表136可被修改。
图3是图1的微控制器单元对图1及2的存储器装置102及内部存储器106的实例存储器映射使用的说明性实例,其包含第一实例映像305及第二实例映像310。在图3的实例中,存储器装置102包含图1及2的存储区域102F、第一映像305、第二映像310及第三实例映像315。存储器装置102可耦合到多核心MCU(例如,图1的MCU 100),以引导多个计算核心(例如,图1的计算核心112及114)。例如,第一映像305可用于引导第一计算核心,而映像310及315可用于引导第二及第三计算核心。
签名表102A包含可由BBDAc 104处理以生成图1及2的切片摘要表136的多个值。签名表102A可包含存储在存储器装置102上的每一映像的每切片散列摘要及指针位置。例如,签名表102A可包含可用于在计算核心112及114上运行操作的映像的位的第一地址以及映像的总大小。有利地,BBDAc 104可基于签名表102A确定存储在存储器装置102上的引导映像的每一切片的位置。有利地,BBDAc 104可使用签名表102A来填充图1的切片摘要表136。
映像305到315包含包括引导映像的多个切片(例如,图1及2的切片102B到102E)。映像305、310及315各自对应于MCU内的不同计算核心,使得多核心MCU中的每一计算核心可处理特定于核心的操作。例如,第一映像305可对应于第一计算核心112,使得第一映像305表示第一计算核心112的操作。在此类实例中,第二映像310可对应于第二计算核心114,使得第二映像310表示第二计算核心114的操作。
在图3的实例中,映像305及310被存储在内部存储器106中。在图3的实例中,内部存储器106包含第一切片106A、第二切片106B、第三切片106C、第四实例切片320、第五实例切片325、第六实例切片330、第七实例切片335、第八实例切片340、第九实例切片345、第十实例切片350、第十一实例切片355、第十二实例切片360,及第十三实例切片365。内部存储器106说明在映像305及310的切片已由BBDAc 104从存储器装置102转移之后的内部存储器106。
第一映像305对应于切片106A到106C及320到330。切片106A到106C及320到330各自表示第一映像305的一部分,使得切片106A到106C及320到330中的每一者可表示第一计算核心112的一或多个操作。例如,作为第一计算核心112请求存取第一切片106A的操作及/或预加载操作(例如背景加载(上文所描述的))的结果,切片106A、106B及320可被转移到内部存储器106。第六切片330(SLC-M)表示第一映像305的最后切片,使得存在M个数目的切片。第四切片320(SLC-P)表示对应于第四切片320的切片数目,使得P可为介于1与切片数目M之间的数。作为第一计算核心112请求对操作的存取或使用图1的背景DMA电路系统132基于图1及2的签名表102A及/或切片摘要表136转移每一切片的结果,切片106A到106C及320到330可被转移到内部存储器106。
第二映像310对应于切片335到365。除非另有陈述,否则类似于切片106A到106C及320到330,第二映像310被转移并存储在内部存储器106中。切片335到365表示图1的第二计算核心114的操作。有利地,可基于BBDAc 104将映像305到315放置在内部存储器106中。
图4是图1的MCU 100对图1及2的存储器装置102及图1的内部存储器106的实例存储器使用的说明性实例,其包含图3的第一映像305、图3的第二映像310及实例预加载标头405到415。在图4的实例中,存储器装置102的存储器使用包含图1及2的签名表102A、图1到3的存储区域102F、图3的第一映像305、图3的第二映像310、第三映像315、第一实例预加载标头405、第二实例预加载标头410及第三实例预加载标头415。存储器装置102可包含对应于存储在存储器装置102中的映像的数目的多个预加载标头,使得每一映像对应于预加载标头。在图4的实例中,除非另有陈述,否则存储器装置102的存储器使用类似于图3的存储器装置102的存储器使用。
预加载标头405到415各自对应于存储在存储器装置102上的单独映像。例如,第一预加载标头405对应于第一映像305。预加载标头405到415包含使图1的背景DMA电路系统132能够预加载引导映像的切片的数据。例如,第一预加载标头405可确定背景DMA电路系统132预加载包括第一映像305的切片106A到106C及320到330的顺序。在此类实例中,背景DMA电路系统132基于由第一预加载标头405指定的顺序从存储器装置102转移引导映像的切片。预加载标头405到415可被转移到内部存储器106,使得BBDAc 104可基于内部存储器106中的位置确定加载哪个切片。替代地,预加载标头405到415可包含特定于对应映像的一或多个切片的数据,其可使BBDAc 104能够基于对应于切片的操作确定预加载映像的切片的方法。有利地,作为使用预加载标头405到415预加载引导映像的切片的结果,减少MCU 100的复位与操作之间的时间。
图5是使用图1的BBDAc 104引导图1的MCU 100以引导图3及4的第一映像305及第二映像310的实例序列的实例时序图500。在图5的实例中,时序图500说明第一实例计算核心引导序列505及第二实例计算核心引导序列510。时序图500说明MCU 100的实例引导序列。
在图5的实例中,第一计算核心引导序列505包含实例只读存储器(ROM)操作515、实例签名表加载操作520、实例签名表认证操作525、第一实例切片操作(SLC-1)530、第二实例切片操作(SLC-2)535、第三实例切片操作(SLC-P)540,以及第一实例递增加载操作545。第一计算核心引导序列505说明可由MCU 100执行以引导图1的第一计算核心112的操作。第一计算核心引导序列505说明可作为复位状态的结果由MCU 100执行的操作序列,其中第一映像305存储在图1的存储器装置102上。
第一计算核心引导序列505可从ROM操作515开始。ROM操作515是包含在实例MCU中的任何ROM的初始化的说明性表示。ROM操作515可包含分配足够的存储器以存储一或多个引导映像。例如,MCU 100可分配ROM中的足够的存储器来存储初始化核心所需的引导映像中的一或多者。在此类实例中,MCU 100可作为加载签名表102A的结果来确定要分配的存储器量。ROM操作515的ROM可被称为闪存存储器或内部存储器106。ROM操作515可使MCU 100能够存取存储在内部非易失性存储器中的引导映像。
ROM操作515可由签名表加载操作520进行。签名表加载操作520是由图1的BBDAc104执行以将签名表102A从存储器装置102转移到图1的内部存储器106的一系列操作。BBDAc 104可使用图1的解压缩引擎电路系统140对签名表102A进行解压缩。有利地,将签名表102A转移到内部存储器106使BBDAc 104能够认证签名表102A。
在签名表加载操作520之后是签名表认证操作525。签名表认证操作525是由BBDAc104执行以认证签名表102A的一系列操作。签名表认证操作525可使用图1的密码电路系统138执行。例如,密码电路系统138可通过确定签名表102A是否包含有效的数字签名及/或指向存储在存储器装置102中的引导映像的切片的有效指针来认证签名表102A。在此类实例中,作为认证签名表102A的结果,BBDAc 104可生成图1的切片摘要表136。替代地,当签名表认证操作525正被执行时,BBDAc 104可生成切片摘要表136。有利地,签名表认证操作525使MCU 100能够支持安全引导操作。
在签名表认证操作525之后是切片操作530到540。切片操作530到540表示由BBDAc104执行以从存储器装置102转移引导映像的切片(例如,图1及2的切片102B到E)的一系列操作及MCU 100的第一计算核心112对切片操作的执行两者。例如,第一切片操作530可表示BBDAc 104配置图1的背景DMA电路系统132以将第一切片102B转移到内部存储器106中的操作。在此类实例中,由图1的安全区电路系统124对第一切片102B进行认证及/或解压缩的操作可被包含在第一切片操作530中。切片操作530到540可由图1的前景DMA电路系统128或背景DMA电路系统132基于切片操作是由计算核心(例如,计算核心112及114)起始还是由由预加载标头(例如,图4的预加载标头405、410及/或415)建立的序列起始来执行。有利地,切片操作530到540使由切片表示的操作能够在加载引导映像的另一切片的同时由计算核心执行。
在切片操作530到540之后是第一递增加载操作545。第一递增加载操作545包含基于对应于正被引导的计算核心的引导映像的大小的一或多个切片操作(例如,切片操作530到540)。例如,第一递增加载操作545可为BBDAc 104加载、认证及/或解压缩在切片操作530到540的完成之后剩余的引导映像的一或多个切片的操作。在此类实例中,可基于第一预加载标头405及/或第一计算核心112确定由BBDAc 104转移切片的顺序。
递增加载操作545包含基于应用程序存取配置文件对被转移的切片进行认证,使得映像通过切片关于应用程序的特性进行认证。例如,BBDAc 104可使用存储在图1的切片摘要表136中的应用程序特定指针数据来认证由第一计算核心112请求的切片。在此类实例中,作为确定对应于切片的存取请求是作为引导映像的先前执行的切片调用指向被请求的切片的指针的结果而生成的结果,切片可被认证。作为来自计算核心的存取请求的结果,可修改第一递增加载操作545的操作顺序。
第二计算核心引导序列510包含第四实例切片操作550、第五实例切片操作555、第六实例切片操作560及第二实例递增加载操作565。除非另有陈述,否则第二计算核心引导序列510类似于第一计算核心引导序列505那样配置。第二计算核心引导序列510是可由BBDAc 104执行以引导图1的第二计算核心114的实例操作序列。作为ROM操作515以及签名表操作520及525已作为第一计算核心引导序列505的一部分而被执行的结果,第二计算核心引导序列510从第四切片操作550开始。
除非另有陈述,否则切片操作550到560类似于第一计算核心引导序列505的切片操作530到540那样配置。切片操作550到560说明BBDAc 104的操作,其可被执行以转移、认证及/或解压缩第二映像310的切片。作为配置DMA电路系统128及132以在大致相同的时间请求切片的结果,切片操作550到560可在大致相同的时间执行。
在切片操作550到560之后是第二递增加载操作565。除非另有陈述,否则第二递增加载操作565类似于第一递增加载操作545那样配置。第二递增加载操作565表示BBDAc 104递增转移、认证及/或解压缩对应于第二计算核心114的引导映像的切片的操作。有利地,多个引导序列(例如,核心引导序列505及510)可并发发生以启动多核心MCU,使得减少引导多核心MCU(例如,MCU 100)的持续时间。
图6是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的BBDAc 104及/或更一般来说生成图1到3的签名表102A及/或图4的预加载标头405到415的硬件来执行。过程开始于框605。在框605处,处理器电路系统为包括映像区域的每一切片生成切片摘要。例如,可基于MCU 100响应于基于引导映像的处理操作而执行的操作,为引导映像的切片生成图2的切片摘要235。在此类实例中,映像闪存区域是图1的存储器装置102的存储引导映像的部分。过程前进到框610。
在框610处,处理器电路系统生成包含数字签名的签名表。在框610处生成的签名表可由BBDAc 104认证。在框610处生成的签名表可包含映像区域的每一切片的认证信息。例如,生成签名表102A以保存包括框605的映像区域的每一切片的数字签名(例如,散列)。在此类实例中,使用数字证书对签名表102A进行签名,以使图1的BBDAc104能够在将数据加载到图1的切片摘要表136中之前对签名表102A进行认证。有利地,数字签名使BBDAc 104能够认证引导映像的签名表102A及/或切片102B到102E。过程前进到框615。
在框615处,处理器电路系统将签名表存储到外部闪存中的某一位置。例如,签名表102A可在存储引导映像之前存储在存储器装置102中,使得签名表102A位于在顺序上在引导映像之前的存储器地址处。有利地,在框615处设置的位置使BBDAc 104能够在存储器装置102中定位签名表102A。过程前进到框620。
在框620处,处理器电路系统为映像闪存区域中的每一映像生成预加载标头表。例如,映像区域可由处理器电路系统解析以生成预加载标头405到415,使得预加载标头405到415包含特定于对应引导映像的关键启动操作的数据。在此类实例中,预加载标头405到415在顺序上位于在映像305、310及/或315之前的某一存储器地址处存储在存储器装置102中,使得对应于每一引导映像的预加载标头紧接在引导映像之前。有利地,生成的预加载标头可用于使图1的背景DMA电路系统132能够预加载存储在存储器装置102上的引导映像的部分。过程前进到框625。
在框625处,处理器电路系统将对应的映像及预加载标头存储到映像闪存区域中的某一位置。例如,第一预加载标头405可在图3及4的第一映像305之前位于存储器装置102存储器内。有利地,预加载标头405到415可在顺序上在引导映像之前位于存储器装置102中。过程前进到结束。
尽管参考图6中所说明的流程图描述实例方法,但根据本描述,可替代地使用生成签名表及/或预加载标头的许多其它方法。例如,可改变块的执行顺序,及/或可改变、消除或组合所描述的块中的一些。类似地,在所说明的实例中所展示的块之前、之间或之后的制造过程中可包含额外操作。
图7是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的BBDAc 104及/或更一般来说在图1的MCU 100的复位之后启动BBDAc104的硬件来执行。MCU 100开始于框705。在框705处,MCU 100确定完整映像是否在内部存储器中。例如,图1的地址解码器108可基于图1的指示门108A的状态确定整个引导映像是否已被加载到内部存储器106。作为确定存在存储在内部存储器106中的完整映像的结果,MCU 100前进到过程结束。作为确定映像未被完全存储在内部存储器106中的结果,MCU 100前进到框710。
在框710处,MCU 100从闪存存储器认证签名表。例如,作为确定有效数字签名的存在的结果,图1的安全区电路系统124可认证图1的签名表102A。有利地,签名表102A的认证使MCU 100能够使用安全引导操作的规范来引导计算核心112及114。MCU 100前进到框715。
在框715处,MCU 100将签名表及密码上下文加载到安全区中。例如,MCU 100可将签名表102A加载到图1的安全区电路系统124中,使得对签名表102A的存取被限于安全区电路系统124的元件。在此类实例中,安全区电路系统124可基于图1的签名表102A及/或安全元件118确定密码密钥,其可由密码电路系统138使用以认证对应于签名表102A的一或多个引导映像的切片。在图1的实例中,BBDAc 104可将值从签名表102A加载到切片摘要表136中。MCU 100前进到框720。
在框720处,MCU 100设置每核心映像加载上下文。映像加载上下文涉及为每一计算核心及/或预加载引擎电路系统(例如,图1的地址重新映射电路系统122)设置背景DMA电路系统(例如,图1的背景DMA电路系统132),使得可在背景中加载映像。在框720处,为每一计算核心配置前景DMA电路系统(例如,图1的前景DMA电路系统128)。DMA电路系统包含一或多个DMA通道,其经配置以并发服务来自多个计算核心的存取请求。有利地,计算核心112及114可请求从存储器装置102转移的引导映像的部分。MCU 100前进到框725。
在框725处,MCU 100启动BBDAc。例如,作为启用背景DMA电路系统132以开始预加载引导映像的切片的结果,MCU 100可起始BBDAc 104。在框725处,MCU 100配置BBDAc 104以使其在图1的门122B、122D及122F中的任一者都未被断言以指示所有切片尚未被加载到内部存储器106中的情况下启动。过程前进到结束。
尽管参考图7中所说明的流程图描述实例方法,但根据本描述,可替代地使用初始化MCU 100的许多其它方法。例如,可改变块的执行顺序,及/或可改变、消除或组合所描述的块中的一些。类似地,在所说明的实例中所展示的块之前、之间或之后的制造过程中可包含额外操作。
图8是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的BBDAc 104及/或更一般来说执行图5的序列505及510以使用图4的预加载标头405到415引导图1的MCU 100的硬件来执行。MCU 100开始于框805。在框805处,MCU 100启动BBDAc 104。例如,MCU 100可配置图1的DMA电路系统128及132以允许引导映像的切片被转移到内部存储器中。MCU 100前进到框810。
在框810处,BBDAc 104检索映像上下文的第一块。例如,作为线性加载切片、预加载标头405到415中的一者或由图1的计算核心112或114中的一者生成的存取请求的结果,BBDAc 104可从存储器装置102转移第一切片102B。在此类实例中,预加载标头405到415可由图1的安全区电路系统124处理,以确定哪个切片首先从存储器装置102转移。有利地,从存储器装置102转移的第一切片可致使对应的计算核心确定及/或请求作为待基于第一切片执行的操作的结果转移的引导映像的另一切片。MCU 100前进到框815。
在框815处,BBDAc 104确定预加载标头是否可用。例如,BBDAc 104可生成存取请求,以确定是否存在存储在存储器装置102上的映像中的一或多者的预加载标头(例如,预加载标头405到415)。在此类实例中,存取请求包含预加载标头的预定位置,其可被发送到存储器装置102以确定预加载标头是否可用。替代地,BBDAc 104可基于图1及3的签名表102A确定预加载标头是否可用。作为确定与映像相关联的预加载标头的位置的结果,BBDAc104前进到框820。作为确定存储器装置102中没有存储预加载标头的结果,BBDAc 104前进到框830。
在框820处,BBDAc 104将预加载标头加载到内部存储器并认证预加载标头。例如,BBDAc 104可配置图1的背景DMA电路系统132以将对应于图3的第一映像305的第一预加载标头405转移到图1的内部存储器106中。在此类实例中,BBDAc 104可使用图1的安全区电路系统124执行第一预加载标头405的实时认证。有利地,可在内部存储器中存取预加载标头,使得不需要从存储器装置102读取预加载标头。BBDAc 104前进到框825。
在框825处,BBDAc 104加载、解压缩及/或认证在预加载标头中被描述为可抢占的映像切片。例如,BBDAc 104可配置背景DMA电路系统132以基于预加载标头(例如,预加载标头405到415)中所描述的顺序预加载引导映像的切片。在此类实例中,图1的存取调度器电路系统130可使来自图1的前景DMA电路系统128的切片存取请求优先化,使得可将预加载标头中所描述的顺序与图1的地址重新映射电路系统122进行比较,以确定切片是否已被转移。作为图1的存取调度器电路系统130接收到较高优先级的存取请求的结果,BBDAc 104可在子切片边界处进行抢占。例如,作为从前景DMA电路系统128接收到高优先级存取请求的结果,存取调度器电路系统130可停止由背景DMA电路系统132在块边界上执行的多块切片的预加载操作。在此类实例中,存取调度器电路系统130停止存取由多个块组成的映像的切片的进一步块,使得子切片边界对应于包括存储器装置102的块的边界。
有利地,BBDAc 104可完全转移一或多个引导映像,而不要求计算核心112及/或114存取映像的每一切片。有利地,BBDAc 104可仅转移一或多个引导映像的关键部分,而不要求计算核心112及/或114存取映像的每一切片,使得可在加载完整映像之前执行时间敏感操作。有利地,当前景DMA电路系统128等待来自计算核心112及/或114的请求时,背景DMA电路系统132可预加载映像的切片。BBDAc 104前进到框830。
在框830处,BBDAc 104加载剩余的映像切片。例如,BBDAc 104可转移尚未转移到内部存储器106的映像切片,使得一或多个完整的引导映像被转移到内部存储器106。在此类实例中,BBDAc 104可基于存储器装置102中的切片的循序顺序转移映像的剩余切片。在框835处,BBDAc 104可抢占式地加载剩余的映像切片,使得BBDAc 104可继续加载一或多个引导映像的剩余切片,而不需要从计算核心接收存取请求。在框830处,可在块边界处中断映像切片的抢占式转移,以加载已由计算核心请求的映像切片。例如,存取调度器电路系统130可在被抢占式地加载的切片的块边界处起始由前景DMA电路系统128请求的映像切片的转移。在此类实例中,作为加载优先化映像切片的结果,存取调度器电路系统130可完成被抢占式地加载的切片的转移。替代地,BBDAc 104可继续基于多个存取请求及/或线性加载切片而转移一或多个引导映像的切片。MCU 100前进到框835。
在框835,MCU 100绕过BBDAc 104。例如,BBDAc 104可在从存储器装置102完全转移引导映像时断言图1的指示门108A,以使地址解码器108能够直接从内部存储器106存取映像的部分,而不是通过BBDAc 104接收对映像的一部分的存取。在此类实例中,地址解码器108可通过存取已完全转移到内部存储器106的映像的部分来绕过BBDAc 104的操作。有利地,作为绕过BBDAc 104的结果,存取映像的一部分所需的持续时间减少。过程前进到结束。
尽管参考图8中所说明的流程图描述实例方法,但根据本描述,可使用使用BBDAc104及预加载标头加载引导映像的许多其它方法。例如,可改变块的执行顺序,及/或可改变、消除或组合所描述的块中的一些。类似地,在所说明的实例中所展示的块之前、之间或之后的制造过程中可包含额外操作。
图9是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的BBDAc 104及/或更一般来说执行图5的序列505及510以使用来自计算核心112及/或114中的一或多者的多个请求来引导图1的MCU 100的硬件来执行。MCU 100开始于框905。在框905处,MCU 100启动BBDAc 104。例如,MCU 100可设置安全区电路系统124处理块,配置DMA电路系统128及/或132以开始将映像的切片从图1的存储器装置102转移到图1的内部存储器106。BBDAc 104前进到框910。
在框910处,BBDAc 104从计算核心接收存取请求。例如,作为向BBDAc 104指示要转移第一映像305中的哪个切片的结果,第一计算核心112可请求存取图3的第一映像305的切片(例如,图1及2的切片102B到102E)。在此类实例中,BBDAc 104可使用地址重新映射电路系统122跟踪存取请求,使得存取请求可由图1的前景DMA电路系统128满足,或基于门(例如,门122B、122D及122F)将存取请求引导到内部存储器106。来自计算核心的存取请求可作为应用程序要求在引导映像的切片的抢占式加载之前对所述切片进行操作的结果而生成。作为修改对应于存储器装置102内的指定切片的门的结果,地址重新映射电路系统122可跟踪来自计算核心的存取请求。有利地,作为地址重新映射电路系统122使用对应于存取请求内指示的切片的门来跟踪来自计算核心的每一新存取请求的结果,BBDAc 104转移映像的切片一次。BBDAc 104前进到框915。
在框915处,BBDAc 104确定对应于存取请求的映像的一部分是否在内部存储器中。例如,BBDAc 104可使用指示门108A向地址解码器108指示与对应于存取请求的映像相关联的所有切片已存储在内部存储器106中。在此类实例中,作为确定包括地址重新映射电路系统122的所有门被断言的结果,BBDAc 104可确定断言指示门108A。BBDAc104可通过使用前景DMA电路系统128从存储器装置102加载切片或通过存取其中存储切片的内部存储器106的部分来满足存取请求。例如,作为确定先前从存储器装置102加载切片的结果,BBDAc104可使用内部存储器106来满足存取请求。替代地,BBDAc104可基于由计算核心112或114请求的操作确定与存取请求相关联的切片。作为确定与存取请求相关联的映像切片尚未被转移到内部存储器106的结果,BBDAc 104前进到框920。作为确定与存取请求相关联的映像切片已存储在内部存储器106中的结果,BBDAc 104前进到框930。
在框920处,BBDAc 104起始对内部存储器的DMA并执行实时操作。例如,BBDAc104可配置图1的前景DMA电路系统128以将第一映像305的第一切片102B转移到内部存储器106。在此类实例中,前景DMA电路系统128可使用图1的密码电路系统138来执行实时认证以认证第一切片102B,及/或使用图1的解压缩引擎电路系统140来执行解压缩以解压缩第一切片102B。有利地,BBDAc 104可使用DMA电路系统128及/或132对映像切片执行实时操作。BBDAc 104前进到框925。
在框925处,BBDAc 104将映像的部分重新映射到内部存储器。例如,前景DMA电路系统128可修改地址重新映射电路系统122,以包含内部存储器106内的对应于第一切片102B的存储器地址。有利地,地址解码器108可绕过BBDAc 104,并作为确定映像已被完全转移到内部存储器106的结果,直接从内部存储器106存取引导映像的切片。BBDAc 104前进到框930。
在框930处,BBDAc 104使用内部存储器完成存取请求。例如,BBDAc 104可指示内部存储器106内的对应于已由DMA电路系统128或132中的任一者从存储器装置102转移的映像的切片的存储器地址。在此类实例中,地址解码器108可存储每一切片的存储器地址,以响应于对应于映像的同一切片的未来存取请求而绕过BBDAc 104。替代地,作为确定切片存储在内部存储器106中的结果,BBDAc 104可向地址解码器108提供对内部存储器106的存取。BBDAc 104前进到框910。替代地,BBDAc 104可在前进到框910之前等待来自计算核心的存取请求。
尽管参考图9中所说明的流程图描述实例方法,但根据本描述,可使用使用BBDAc104将映像切片加载到内部存储器的许多其它方法。例如,可改变块的执行顺序,及/或可改变、消除或组合所描述的块中的一些。类似地,在所说明的实例中所展示的块之前、之间或之后的制造过程中可包含额外操作。
图10是代表实例过程的流程图,所述过程可使用可执行的机器可读指令及/或经配置以实施图1的BBDAc 104及/或更一般来说在图5的序列期间执行实时操作以使用来自一或多个核心的多个请求来引导图1的MCU 100的硬件来执行。BBDAc 104开始于框1005。在框1005处,BBDAc 104确定未压缩映像的存储器映射。在框1005处,存储器映射包含用于指示存储器地址、切片编号、切片指针及/或切片摘要数据中的至少一者的数据。例如,BBDAc104可执行图7的框710到725的操作。在此类实例中,BBDAc104使用图1及2的签名表102A生成图1的切片摘要表136,其在框710处被加载。在框1005处,BBDAc 104生成切片摘要表136以将存储在存储器装置102中的映像表示为线性存储器映射,其将映像的切片表示为切片编号。此类存储器映射可用于基于增加的线性地址抢占式地转移映像切片。切片编号对应于引导映像的切片。切片编号可对应于图2的切片指针225、图2的切片大小230及/或图2的切片摘要235。BBDAc 104前进到框1010。
在框1010处,BBDAc 104接收包含存储器地址的存取请求。例如,BBDAc 104可从计算核心112接收存取请求,以请求存取对应于存储器地址处的操作的切片。替代地,作为确定对应于与存取请求相关的操作的存储器地址的结果,BBDAc 104可确定对应于存取请求的存储器地址。BBDAc 104前进到框1015。
在框1015处,BBDAc 104将存储器地址转换为切片编号。例如,作为将存储器地址与区域地址122A、122C及122E进行比较的结果,图1的地址重新映射电路系统122可确定对应于存储器地址的切片编号。在此类实例中,可基于对应于存储器地址的区域地址确定切片编号。切片编号对应于在框1005处确定的切片摘要表的一部分。BBDAc104前进到框1020。
在框1020处,BBDAc 104确定切片编号是否存储在内部存储器中。例如,作为确定图1的第一门122B被断言或设置为逻辑高的结果,地址重新映射电路系统122可确定对应于第一区域地址122A的切片编号被存储在内部存储器中。在此类实例中,作为确定第一门122B被解除断言或设置为逻辑低的结果,地址重新映射电路系统122可确定切片编号被存储在存储器装置102中。作为确定切片已在内部存储器106中的结果,BBDAc 104可存取对应于内部存储器中的切片编号的切片。有利地,作为使用地址重新映射电路系统122来跟踪加载每一切片的结果,BBDAc 104可仅加载每一切片一次。作为确定切片在内部存储器106中的结果,BBDAc 104前进到框1010。作为确定切片编号被存储在存储器装置102中的结果,BBDAc 104前进到框1025。
在框1025处,BBDAc 104使用切片编号及摘要表来确定切片指针及切片大小。例如,BBDAc 104可使用如存储在切片摘要表136中的切片摘要235来确定切片指针225及切片大小230。在此类实例中,切片编号可存储在切片摘要235中,或用于确定切片摘要表136中的偏移。作为确定切片编号乘以切片摘要表136中的每一行的大小可用于存取切片编号的切片摘要表信息的结果,BBDAc 104可确定切片信息的位置。例如,切片摘要表136中的第二切片可位于等于用于存储切片指针225、切片大小230及/或切片摘要235的数据类型的大小的两倍的存储器地址处。BBDAc 104前进到框1030。
在框1030处,BBDAc 104认证并解压缩切片数据。例如,DMA电路系统128及/或132可经配置以在从存储器装置102转移映像切片时使用图1的密码电路系统138及解压缩引擎电路系统140对映像切片进行认证及解压缩。在此类实例中,由DMA电路系统128及/或132使用的DMA通道可经配置以执行实时解压缩及认证,使得映像切片可在映像切片被转移到内部存储器106的同时被认证及解压缩。有利地,DMA电路系统128及132的实时操作减少引导MCU 100中的一或多个核心所需的持续时间。BBDAc104前进到框1035。
在框1035处,BBDAc 104确定映像是否存储在内部存储器中。例如,BBDAc 104可向图1的地址解码器108指示引导映像的所有切片已被加载到内部存储器106中。在此类实例中,地址解码器108可断言图1的指示门108A,并作为接收到引导映像已被完全转移到内部存储器106的指示的结果,开始绕过BBDAc 104。作为确定指示门108A被设置为逻辑低及/或解除断言的结果,BBDAc 104前进到框1010。作为确定引导映像完全存储在内部存储器中的结果,BBDAc 104继续进行以结束图10的过程,使得地址解码器108开始绕过BBDAc 104以满足来自计算核心的存取请求。
尽管参考图10中所说明的流程图描述实例方法,但根据本描述,可使用在使用BBDAc 104将映像切片加载到内部存储器的过程期间执行实时操作的许多其它方法。例如,可改变块的执行顺序,及/或可改变、消除或组合所描述的块中的一些。类似地,在所说明的实例中所展示的块之前、之间或之后的制造过程中可包含额外操作。
图11是包含处理器电路系统的实例处理平台的框图,所述处理电路系统经构造以执行图7到10的实例机器可读指令及/或实例操作以实施图1的BBDAc 104。处理器平台1100可为例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动装置(例如,手机、智能电话、平板计算机(例如iPadTM))、个人数字助理(PDA)、因特网设备、DVD播放器、CD播放器、数字视频记录器、蓝光播放器、游戏控制台、个人视频记录器、机顶盒、耳机(例如,增强现实(AR)耳机、虚拟现实(VR)耳机等)或其它可穿戴装置或任何其它类型的计算装置。
所说明的实例的处理器平台1100包含处理器电路系统1112。所说明的实例的处理器电路系统1112是硬件。例如,处理器电路系统1112可由来自任何所期望的系列或制造商的一或多个集成电路、逻辑电路、FPGA、微处理器、CPU、GPU、DSP及/或微控制器来实施。处理器电路系统1112可由一或多个基于半导体(例如,基于硅)的装置实施。在此实例中,处理器电路系统1112实施图6的框605到625。
所说明的实例的处理器电路系统1112包含内部存储器1113(例如,高速缓存、寄存器等)。所说明的实例的处理器电路系统1112通过总线1118与包含易失性存储器1114及非易失性存储器1116的主存储器通信。易失性存储器1114可由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、动态随机存取存储器/>及/或任何其它类型的RAM装置来实施。非易失性存储器1116可由闪存存储器及/或任何其它所期望类型的存储器装置实施。对所说明的实例的主存储器1114、1116的存取由存储器控制器1117控制。在此实例中,图1的BBDAc 104耦合到总线1118。替代地,BBDAc 104可包含在处理器电路系统1112或接口电路系统1120中。有利地,BBDAc 104可用于从处理器平台1100内部或外部的任何块装置转移数据。
所说明的实例的处理器平台1100还包含接口电路系统1120。接口电路系统1120可根据任何类型的接口标准通过硬件实施,所述接口标准例如以太网接口、通用串行总线(USB)接口、接口、近场通信(NFC)接口、外围组件互连(PCI)接口及/或外围组件互连快速(PCIe)接口。
在所说明的实例中,一或多个输入装置1122连接到接口电路系统1120。输入装置1122允许用户向处理器电路系统1112输入数据及/或命令。输入装置1122可通过例如音频传感器、麦克风、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等点装置及/或语音识别系统来实施。
一或多个输出装置1124也连接到所说明的实例的接口电路系统1120。输出装置1124可例如通过显示装置(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管(CRT)显示器、就地切换(IPS)显示器、触摸屏等)、触觉输出装置、打印机及/或扬声器来实施。因此,所说明的实例的接口电路系统1120通常包含图形驱动卡、图形驱动芯片及/或图形处理器电路系统(例如GPU)。
所说明的实例的接口电路系统1120还包含通信装置,例如传输器、接收器、收发器、调制解调器、住宅网关、无线接入点及/或网络接口,以便于通过网络1126与外部机器(例如,任何种类的计算装置)交换数据。通信可通过例如以太网连接、数字订户线(DSL)连接、电话线连接、同轴缆线系统、卫星系统、直线对传无线系统、蜂窝电话系统、光学连接等。
所说明的实例的处理器平台1100还包含用以存储软件及/或数据的一或多个大容量存储装置1128。此类大容量存储装置1128的实例包含磁存储装置、光学存储装置、软盘驱动器、HDD、CD、蓝光磁盘驱动器、独立磁盘冗余阵列(RAID)系统、固态存储装置(例如闪存存储器装置及/或SSD)以及DVD驱动器。
可由图7到10的机器可读指令实施的机器可执行指令1132可存储在大容量存储装置1128中、易失性存储器1114中、非易失性存储1116中及/或一个非暂时性计算机可读存储媒体(例如NAND闪存、CD或DVD)上。
在本描述中,术语“及/或”(当以例如A、B及/或C的形式使用时)是指A、B、C的任何组合或子集,例如:(a)仅A;(b)仅B;(c)仅C;(d)A与B;(e)A与C;(f)B与C;及(g)A与B与C。此外,如本文所使用的,短语“A或B中的至少一者”(或“A及B中的至少一者”)指包含以下任一者的实施方案:(a)至少一个A;(b)至少一个B;及(c)至少一个A及至少一个B。
贯穿本说明书使用术语“耦合”。术语可涵盖能够实现与本描述一致的功能性关系的连接、通信或信号路径。例如,如果装置A提供信号以控制装置B执行动作,那么在第一实例中,装置A耦合到装置B,或在第二实例中,如果中间组件C没有实质性地改变装置A与装置B之间的功能性关系使得装置B经由由装置A生成的控制信号由装置A控制,那么装置A通过中间组件C耦合到装置B。
“经配置以”执行任务或功能的装置可在制造时由制造商配置(例如,经编程及/或硬接线)以执行所述功能,及/或可在制造之后由用户配置(或重配置)以执行功能及/或其它额外或替代功能。配置可通过装置的固件及/或软件编程、通过装置的硬件组件及互连的构造及/或布局或其组合。
如本文所使用的,术语“端子”、“节点”、“互连件”、“引脚”及“引线”可互换使用。除非明确陈述相反,否则这些术语通常用于表示装置元件、电路元件、集成电路、装置或其它电子或半导体组件之间的互连或终端。
本文中描述为包含某些组件的电路或装置可替代地为适于耦合到这些组件以形成所描述的电路系统或装置。例如,被描述为包含一或多个半导体元件(例如晶体管)、一或多个无源元件(例如电阻器、电容器及/或电感器)、及/或一或多个源(例如电压及/或电流源)的结构可替代地仅包含单个物理装置(例如,半导体裸片及/或集成电路(IC)封装)内的半导体元件,且可适于例如由最终用户及/或第三方在制造时或在制造时间之后耦合到无源元件及/或源中的至少一些以形成所描述的结构。
本文所描述的电路可经重配置以包含被替换的组件,以提供至少部分类似于组件替换之前可用的功能的功能。除非另有陈述,否则展示为电阻器的组件通常代表串联及/或并联耦合的任何一或多个元件,以提供由所展示的电阻器表示一定量的阻抗。例如,本文展示并描述为单个组件的电阻器或电容器可替代地分别是并联耦合在相同节点之间的多个电阻器或电容器。例如,本文展示并描述为单个组件的电阻器或电容器可替代地分别是串联耦合在与单个电阻器或电容器相同的两个节点之间的多个电阻器或电容器。
前述描述中短语“接地”的使用包含机壳接地、地面接地、浮动接地、虚拟接地、数字接地、公共接地及/或适用于或适合于本描述的教示的任何其它形式的接地连接。除非另有陈述,否则值前的“约”、“大约”或“大体上”意味着所陈述值的+/-10%。
图6到10中展示代表用于实施图1的MCU 100的实例硬件逻辑电路系统、机器可读指令、硬件实施的状态机及/或其任意组合的流程图。机器可读指令可为用于由处理器电路系统执行的一或多个可执行程序或可执行程序的部分,例如下面结合图10讨论的实例处理器平台1100中所展示的处理器电路系统1112。程序可体现于存储在与位于一或多个硬件装置中的处理器电路系统相关联的一或多个非暂时性计算机可读存储媒体上的软件中,所述存储媒体例如压缩盘(CD)、软盘、硬盘驱动器(HDD)、固态驱动器(SSD)、数字多功能盘(DVD)、蓝光盘、易失性存储器(例如,任意类型的随机存取存储器(RAM)等)、或非易失性存储器(例如,电可擦除可编程只读存储器(EEPROM)、闪存存储器、HDD、SSD等),但整个程序及/或其部分可替代地由处理器电路系统以外的一或多个硬件装置执行及/或体现在固件或专用硬件中。机器可读指令可跨多个硬件装置分布及/或由两个或更多个硬件装置(例如,服务器及客户端硬件装置)执行。例如,客户端硬件装置可由端点客户端硬件装置(例如,与用户相关联的硬件装置)或可促进服务器与端点客户端硬件装置之间的通信)的中间客户端硬件装置(例如,无线接入网络(RAN))网关实施。类似地,非暂时性计算机可读存储媒体可包含位于一或多个硬件装置中的一或多个媒体。进一步来说,尽管参考图6到10中所说明的流程图描述实例程序,但可替代地使用实施MCU 100的许多其它方法。例如,可改变块的执行顺序,及/或可改变、消除或组合所描述的块中的一些。此外或替代地,块中的任何或所有者均可由经构造以在不执行软件或固件的情况下执行对应的操作的一或多个硬件电路(例如,处理器电路系统、离散及/或集成模拟及/或数字电路系统、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)实施。处理器电路系统可分布在不同的网络位置中及/或在一或多个硬件装置(例如,单核心处理器(例如,单核心中央处理器单元(CPU))、单个机器中的多核心处理器(例如,多核心CPU)等)、跨服务器机架的多个服务器分布的多个处理器、跨一或多个服务器机架分布的多个处理器、位于同一封装中的CPU及/或FPGA(例如,相同的集成电路(IC)封装或两个或更多个单独的外壳中等)本地。
本文所描述的机器可读指令可以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一或多者存储。如本文所描述的机器可读指令可存储为数据或数据结构(例如,作为指令、代码、代码表示等的部分),其可用于创建、制造及/或产生机器可执行指令。例如,机器可读指令可被分段并存储在位于网络或网络集合的相同或不同位置(例如,在云中、边缘装置等)处的一或多个存储装置及/或计算装置(例如,服务器)上。机器可读指令可能需要安装、修改、调适、更新、组合、补充、配置、解密、解压缩、解封装、分布、重指派、编译等中的一或多者,以便使其可直接由计算装置及/或其它机器读取、解释及/或执行。例如,机器可读指令可存储在多个部件中,所述部件被个别地压缩、加密及/或存储在单独的计算装置上,其中所述部件在解密、解压缩及/或组合时形成一组机器可执行指令,这些指令实施可一起形成例如本文所描述的程序的程序的一或多个操作。
在另一实例中,机器可读指令可以其可由处理器电路系统读取的状态存储,但可利用库(例如,动态链接库(DLL))、软件开发工具包(SDK)、应用程序编程接口(API)等的添加,以便在特定计算装置或其它装置上执行机器可读指令。在另一实例中,在可全部或部分执行机器可读指令及/或对应程序之前,可能需要配置机器可读指令(例如,存储设置、输入数据、记录网络地址等)。因此,如本文所使用的,机器可读媒体可包含机器可读指令及/或程序,而不管机器可读指令及/或程序在存储或以其它方式静止或在传输时的特定格式或状态如何。
本文所描述的机器可读指令可由任何过去、现在或将来的指令语言、脚本语言、编程语言等表示。例如,机器可读指令可使用以下语言中的任一者表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HTML)、结构化查询语言(SQL)、Swift等。
如上文所提及的,可使用存储在一或多个非暂时性计算机及/或机器可读媒体(例如光学存储装置、磁存储装置、HDD、闪存存储器、只读存储器(ROM)、CD、DVD、高速缓存、任何类型的RAM、寄存器及/或任何其它存储装置或存储盘)上的可执行指令(例如,计算机及/或者机器可读指令)实施图6到10的实例操作,其中信息存储达任何持续时间(例如,达延长的时间段、达极短时间、用于临时缓冲及/或用于信息的高速缓存)。如本文中所使用的,术语非暂时性计算机可读媒体及非暂时性计算机可读存储媒体被明确定义为包含任何类型的计算机可读存储装置及/或存储盘并排除传播信号且排除传输媒体。
在所描述的实施例中修改是可能的,且在权利要求书的范围内其它实施例是可能的。
Claims (20)
1.一种装置,其包括:
第一接口,其经配置以耦合到处理器核心;
第二接口,其经配置以耦合到经配置以存储包含一组切片的映像的第一存储器;
第三接口,其耦合到所述第一接口,所述第三接口经配置以耦合到第二存储器;
直接存储器存取电路,其耦合到所述第二接口及所述第三接口且经配置以:
从所述第二接口接收事务,其中所述事务指定对所述一组切片中的切片的读取;及
基于所述事务:
从所述第一存储器读取所述切片;
对所述切片执行实时操作;及
将所述切片存储在所述第二存储器中。
2.根据权利要求1所述的装置,其中:
所述直接存储器存取电路是第一直接存储器存取电路;且
所述装置进一步包括第二直接存储器存取电路,其耦合到所述第一接口、所述第二接口及所述第三接口且经配置以基于从所述第一存储器读取并存储在所述第二存储器中的所述映像的所述一组切片中的第二切片,致使所述一组切片中的第三切片从所述第一存储器读取并存储在所述第二存储器中。
3.根据权利要求1所述的装置,其进一步包括耦合到所述直接存储器存取电路的存取调度器电路,所述存取调度器电路经配置以:
作为确定所述处理器核心起始所述事务的结果,确定所述事务的优先级是高优先级;
作为确定抢占式加载操作起始所述事务的结果,确定所述事务的所述优先级是低优先级;及
基于所述事务的所述优先级控制对所述第一存储器的存取。
4.根据权利要求1所述的装置,其进一步包括耦合到所述直接存储器存取电路及所述第一接口的地址重新映射电路系统,所述地址重新映射电路系统经配置以:
跟踪所述直接存储器存取电路与所述第二存储器之间的事务;
作为将所述切片存储在所述第二存储器中的结果,断言对应于所述切片的门;及
作为从所述处理器核心接收事务以存取所述切片的操作的结果,存取所述第二存储器中的所述切片。
5.根据权利要求4所述的装置,其进一步包括耦合到所述第一接口的地址解码器,所述地址解码器经配置以:
从所述处理器核心接收所述事务以存取所述切片;
作为从所述第一接口接收到所述映像的所述一组切片存储在所述第二存储器中的指示的结果,断言指示门;
作为所述指示门指示所述一组切片存储在所述第二存储器中的结果,存取所述第二存储器中的所述切片;及
作为所述指示门指示所述一组切片的一或多个部分存储在所述第一存储器中的结果,将所述事务传输到所述地址重新映射电路系统。
6.根据权利要求1所述的装置,其进一步包括耦合到所述直接存储器存取电路的安全区电路系统,所述安全区电路系统用于:
存储切片摘要表,其包含用于包括所述一组切片的切片的切片编号、切片指针或认证信息中的至少一者;
使用解压缩引擎电路系统对所述切片进行解压缩;及
基于所述切片的数字签名与存储在所述切片中的经验证数字签名的比较认证所述切片。
7.根据权利要求1所述的装置,其中所述直接存储器存取电路的所述实时操作包含认证或解压缩中的至少一者。
8.一种设备,其包括:
第一存储器;
装置加速器,用于至少:
从第二存储器加载签名表,所述第二存储器是块存储装置;
认证所述签名表;
基于所述签名表确定映像的一部分在所述第二存储器中的第一地址;
将所述映像的所述部分存储在所述第一存储器中的第二地址处;
认证所述映像的所述部分;及
存取所述第一存储器中的所述第二地址处的所述映像的所述部分;及
计算核心,其用于执行对应于所述第二地址处的所述映像的所述部分的应用程序的操作。
9.根据权利要求8所述的设备,其中所述装置加速器进一步包含用以作为在所述第二地址处存储所述映像的所述部分的结果而响应于接收到所述第一地址来确定所述第二地址的指令。
10.根据权利要求8所述的设备,其中所述映像的所述部分是所述映像的第一部分,所述装置加速器进一步包含用以响应于接收到对应于所述映像的第二部分的存取请求而确定所述映像的所述第二部分的第三地址的指令,作为所述应用程序要求对应于所述映像的所述第二部分的操作的结果,生成所述存取请求。
11.根据权利要求8所述的设备,其中所述映像的所述部分是所述映像的第一部分,所述装置加速器进一步包含用以响应于基于所述签名表确定所述第二部分可被转移到所述第一存储器而确定所述映像的所述第二部分的第三地址的指令,所述签名表包含指示包括所述映像的部分的指针、大小或摘要中的至少一者的信息。
12.根据权利要求8所述的设备,其中所述装置加速器进一步包含用以使用解压缩引擎电路系统对所述映像的所述部分执行实时解压缩的指令。
13.根据权利要求8所述的设备,其中所述映像的所述部分是第一部分,所述装置加速器进一步包含用于以下操作的指令:
在所述第一存储器与所述第二存储器之间建立前景DMA电路系统及背景DMA电路系统;
响应于由所述计算核心生成的对所述第二部分的请求,使用所述前景DMA电路系统转移所述映像的第二部分;及
使用所述背景DMA电路系统转移所述映像的第三部分以抢占式地转移所述映像的所述第三部分。
14.根据权利要求8所述的设备,其中所述装置加速器进一步包含用以作为确定所述映像被完全存储在所述第一存储器中的结果绕过所述装置加速器的指令。
15.一种方法,其包括:
从第一存储器加载签名表,所述第一存储器是块存储装置;
认证所述签名表;
基于所述签名表确定映像的一部分在所述第一存储器中的第一地址;
将所述映像的所述部分存储在第二存储器中的第二地址处;
认证所述映像的所述部分;及
存取所述第二存储器中的所述第二地址处的所述映像的所述部分;及
执行对应于所述第二地址处的所述映像的所述部分的应用程序的操作。
16.根据权利要求15所述的方法,其中所述映像的所述部分是所述映像的第一部分,所述方法进一步包含响应于接收到对应于所述映像的第二部分的存取请求而确定所述映像的所述第二部分的第三地址,作为所述应用程序要求对应于所述映像的所述第二部分的操作的结果,生成所述存取请求。
17.根据权利要求15所述的方法,其中所述映像的所述部分是所述映像的第一部分,所述方法进一步包含响应于基于所述签名表确定所述第二部分可被转移到所述第一存储器而确定所述映像的所述第二部分的第三地址,所述签名表包含指示包括所述映像的部分的指针、大小或摘要中的至少一者的信息。
18.根据权利要求15所述的方法,其中所述方法进一步包含使用解压缩引擎电路系统对所述映像的所述部分执行实时解压缩。
19.根据权利要求15所述的方法,其中所述映像的所述部分是第一部分,所述方法进一步包含:
在所述第一存储器与所述第二存储器之间建立前景DMA电路系统及背景DMA电路系统;
响应于由计算核心生成的对所述第二部分的请求,使用所述前景DMA电路系统转移所述映像的第二部分;及
使用所述背景DMA电路系统转移所述映像的第三部分以抢占式地转移所述映像的所述第三部分。
20.根据权利要求15所述的方法,其中所述方法进一步包含作为确定所述映像被完全存储在所述第二存储器中的结果,绕过所述装置加速器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/721,534 | 2022-04-15 | ||
US17/721,534 US20230333858A1 (en) | 2022-04-15 | 2022-04-15 | Methods and apparatus to boot from block devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116909955A true CN116909955A (zh) | 2023-10-20 |
Family
ID=88307606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310390125.9A Pending CN116909955A (zh) | 2022-04-15 | 2023-04-12 | 从块装置引导的方法及设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230333858A1 (zh) |
CN (1) | CN116909955A (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10515218B2 (en) * | 2016-10-01 | 2019-12-24 | Intel Corporation | Systems, apparatuses, and methods for platform security |
US11474826B1 (en) * | 2019-04-18 | 2022-10-18 | Xilinx, Inc. | Boot image file having a global partition for data processing engines of a programmable device |
-
2022
- 2022-04-15 US US17/721,534 patent/US20230333858A1/en active Pending
-
2023
- 2023-04-12 CN CN202310390125.9A patent/CN116909955A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230333858A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10102153B2 (en) | System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support | |
US9451026B2 (en) | Electronic devices | |
CN106462509B (zh) | 用于保全存取保护方案的设备及方法 | |
US10083131B2 (en) | Generating and/or employing a descriptor associated with a memory translation table | |
US20160232103A1 (en) | Block storage apertures to persistent memory | |
KR20160096279A (ko) | 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치 | |
KR20160028680A (ko) | 데이터 저장 장치와 이의 작동 방법 | |
KR20190123090A (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
KR102365312B1 (ko) | 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법 | |
US20160062659A1 (en) | Virtual memory module | |
JP2017519294A (ja) | フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc) | |
JP2005508039A (ja) | 目標セキュリティを決定する物理アドレスベースのセキュリティのための方法および装置 | |
US20230333858A1 (en) | Methods and apparatus to boot from block devices | |
US7246213B2 (en) | Data address security device and method | |
US20210240642A1 (en) | Data storage device with an exclusive channel for flag checking of read data, and non-volatile memory control method | |
US11307999B2 (en) | Data cache segregation for spectre mitigation | |
US20170286325A1 (en) | Method and system for defining logical block addressing (lba) access permission in storage devices | |
WO2018052718A1 (en) | Method and apparatus for masking and transmitting data | |
US10579516B2 (en) | Systems and methods for providing power-efficient file system operation to a non-volatile block memory | |
KR20190118428A (ko) | 컨트롤러 및 이를 포함하는 메모리 시스템 | |
EP4148572B1 (en) | Computational storage device and storage system including the computational storage device | |
US20230393906A1 (en) | Method and system for accelerating application performance in solid state drive | |
US20240134801A1 (en) | Methods and system for efficient access to solid state drive | |
US20230359376A1 (en) | Systems, methods, and apparatus for managing device memory and programs | |
CN117032555A (zh) | 用于管理设备存储器和程序的系统、方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |