CN116610615A - 处理系统、相关集成电路、设备和方法 - Google Patents

处理系统、相关集成电路、设备和方法 Download PDF

Info

Publication number
CN116610615A
CN116610615A CN202310123155.3A CN202310123155A CN116610615A CN 116610615 A CN116610615 A CN 116610615A CN 202310123155 A CN202310123155 A CN 202310123155A CN 116610615 A CN116610615 A CN 116610615A
Authority
CN
China
Prior art keywords
extracted
address
given address
configuration data
write request
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
Application number
CN202310123155.3A
Other languages
English (en)
Inventor
R·维蒂玛尼
F·戈勒尔
R·安格里利
C·奥贝纳斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
STMicroelectronics SRL
Original Assignee
STMicroelectronics SA
STMicroelectronics SRL
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA, STMicroelectronics SRL filed Critical STMicroelectronics SA
Publication of CN116610615A publication Critical patent/CN116610615A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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
    • G06F12/1425Protection 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 the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection 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 the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (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)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本公开涉及处理系统、相关集成电路、设备和方法。处理系统包括通信系统和被配置为生成写入请求的处理核心。电路具有关联的从属接口电路,从属接口电路被配置为管理地址子范围并且选择性地转发寻址到给定地址的写入请求。配置数据指定给定地址是否受保护/未受保护以及被锁定/解锁。响应于所接收到的写入请求,地址和数据被提取,并且基于配置数据确定所提取的地址是否受保护/未受保护以及被锁定/解锁。当所提取的地址未受保护或被解锁时,从属接口转发写入请求。当所提取的地址受保护以及被锁定时,从属接口响应于所提取的地址与所提取的数据的比较而生成解锁信号,当所提取的数据满足相对于所提取的地址的预定规则时,解锁信号被断言。

Description

处理系统、相关集成电路、设备和方法
优先权要求
本申请要求于2022年2月17日提交的意大利专利申请号102022000002960的优先权权益,其内容在法律允许的最大范围内通过引用全部并入本文。
技术领域
本公开的实施例涉及诸如微控制器等处理系统。
背景技术
图1示出了典型的电子系统,诸如车辆的电子系统,包括多个处理系统(PS)10,诸如嵌入式系统或集成电路(例如现场可编程门阵列(FPGA))、数字信号处理器(DSP)或微控制器(例如专用于汽车市场)。
例如,在图1中示出了通过合适的通信系统20连接的三个处理系统101、102和103。例如,通信系统可以包括车辆控制总线(诸如控制器区域网络(CAN)总线和/或以太网)以及经由网关连接至车辆控制总线的可能的多媒体总线(诸如媒体导向系统传输(MOST)总线)。通常,处理系统10位于车辆的不同位置,并且可以包括例如引擎控制单元、变速器控制单元(TCU)、防抱死制动系统(ABS)、车身控制模块(BCM)和/或导航和/或多媒体音频系统。因此,一个或多个处理系统10还可以实现实时控制和调节功能。这些处理系统通常被标识为电子控制单元。
图2示出了示例性数字处理系统10(诸如微控制器)的框图,它可以被用作图1的任何处理系统10。
在所考虑的示例中,处理系统10包括经由软件指令编程的微处理器(MP)102,通常是中央处理单元(CPU)。通常,由微处理器102执行的软件被存储在非易失性程序存储器(M)104中,诸如闪存或EEPROM。因此,存储器104被配置为存储处理单元102的固件,其中固件包括要由微处理器102执行的软件指令。通常,非易失性存储器104还可以被用于存储其他数据,诸如配置数据(例如校准数据)。
微处理器102通常还具有关联的易失性存储器(VM)104b,诸如随机存取存储器(RAM)。例如,存储器104b可以被用于存储临时数据。
如图2所示,与存储器104和/或104b的通信通常经由一个或多个存储器控制器(MC)100执行。(多个)存储器控制器100可以被集成在微处理器102中,或者经由诸如处理系统10的系统总线等通信信道被连接至微处理器102。类似地,存储器104和/或104b可以在单个集成电路中与微处理器102集成,或者存储器104和/或104b可以是单独的集成电路的形式,并且例如经由印刷电路板的迹线被连接至微处理器102。
在所考虑的示例中,微处理器102可以具有从以下组中选择的关联的一个或多个(硬件)资源106:用于经由通信系统20交换数据的一个或多个通信接口IF,诸如通用异步接收器/发送器(UART)、串行外围接口总线(SPI)、集成电路间(I2C)、控制器区域网络(CAN)总线和/或以太网接口和/或调试接口;和/或一个或多个模数转换器AD和/或数模转换器DA;和/或一个或多个专用数字组件DC,诸如硬件定时器和/或计数器或密码协处理器;和/或一个或多个模拟组件AC,诸如比较器、传感器(诸如温度传感器)等;和/或一个或多个混合信号分量MSC,诸如PWM(脉宽调制)驱动器。
通常,专用数字组件DC也可以对应于集成在处理系统10中的FPGA。例如,在这种情况下,存储器104还可以包括用于这种FPGA的程序数据。
因此,数字处理系统10可以支持不同的功能性。例如,(多个)微处理器102的行为由存储在存储器104中的固件(例如由微控制器10的微处理器102执行的软件指令)确定。因此,通过安装不同的固件,相同的硬件(微控制器)可以被用于不同的应用。
在这方面,这种处理系统10的未来一代(例如适用于在汽车应用中使用的微控制器)预计将呈现复杂性的增加,主要是由于所请求的功能性(新协议、新特征等)的数量增加以及执行条件的严格约束(例如更低的功耗、增加的计算能力和速度等)。
例如,最近已经提出了更复杂的多核处理系统10。例如,这种多核处理系统可以被用于执行(并行)图1所示的若干处理系统10,诸如车辆的若干处理系统。
图3示出了多核处理系统10的示例。具体地,在所考虑的示例中,处理系统10包括连接至(片上)通信系统114的多个n个处理核心(PC)1021、…、102n。例如,在实时控制系统的上下文中,处理核心1021、…、102n可以是ARM -R52核心。通常,通信系统114可以包括一个或多个总线系统,例如基于高级可扩展接口(AXI)和/或片上网络(NoC)。
例如,如处理核心1021的示例所示,每个处理核心102可以包括微处理器1020和通信接口1022,该通信接口1022被配置为管理微处理器1020与通信系统114之间的通信。典型地,接口1022是主接口,被配置为将给定(读取或写入)请求从微处理器1020转发到通信系统114,并且将可选响应从通信系统114转发到微处理器1020。然而,每个微处理器1020还可以具有关联的从属接口1024。例如,通过这种方式,第一微处理器1020可以(经由第一微处理器的主接口1022、通信系统114和第二微处理器的从属接口1024)向第二微处理器1020发送请求。
通常,每个处理核心1021、…、102n还可以包括其他本地资源,诸如一个或多个本地存储器1026,通常被标识为紧密耦合存储器(TCM)。
如前面提及的,典型地,处理核心1021、…、102n被布置为与非易失性存储器104和/或易失性存储器104b交换数据。在多核处理系统10中,这些存储器通常是系统存储器,诸如针对处理核心1021、…、102n共享。然而,如前面提及的,处理核心1021、…、102n中的每个处理核心可以包括一个或多个附加的本地存储器1026。
例如,如图3所示,处理系统10可以包括一个或多个存储器控制器100,它被配置为将至少一个非易失性存储器104和至少一个易失性存储器104b连接至通信系统114。如前面提及的,存储器104和/或104b中的一个或多个可以被集成在处理系统10的集成电路中或外部连接至集成电路。
如前面提及的,处理系统10可以包括一个或多个资源106,诸如一个或多个通信接口或协处理器(例如密码协处理器)。资源106通常经由相应的从通信接口1064被连接至通信系统114。例如,通过这种方式,处理核心102可以向资源106发送请求,并且资源返回给定数据。例如,为此目的,通信系统114实际上可以包括高级微控制器总线架构(AMBA)高性能总线(AHB)和用于将资源/外围设备106连接至AMBA AHB总线的高级外围总线(APB)。
通常,资源106中的一个或多个还可以包括相应的主接口1062,它通常也被标识为集成直接存储器访问(DMA)控制器。例如,在资源106必须开始通信以便经由(读取和/或写入)请求与连接至通信系统114的另一电路(诸如存储器104/104b、资源106或处理核心102)交换数据的情况下,这种主接口1062可能是有用的。
通常,这种处理系统10还包括一个或多个通用直接存储器访问(DMA)控制器110。通常,通用DMA控制器110可以包括连接至资源106的至少一个功能信道。通常,与给定信道相关联的资源106还可以根据配置数据来选择。具体地,信道是读取或写入信道(也可以是可编程的),并且通常具有关联的配置数据,这些配置数据指示:在读取信道的情况下,DMA控制器110应该从中读取数据的存储器地址范围;以及在写入信道的情况下,DMA控制器110应该向其写入数据的存储器地址范围。
例如,通过这种方式,通信接口IF可以经由两个信道被连接至DMA控制器110:读取信道,被配置为自主地读取要从存储器104b中的第一存储器范围传输的数据,并且将已经读取的数据提供给通信接口IF(通信接口IF然后传输相应的数据);以及写入信道,被配置为接收已经从通信接口IF接收的数据,并且自主地将这些数据写入存储器104b中的第二存储器范围。
因此,DMA控制器110通常具有用于向存储器控制器100传输读取或写入请求的关联的主接口1102。通常,为此目的,主接口1102可以经由专用DMA信道被直接连接至存储器控制器110,或者主接口1102可以向通信系统114发送请求。例如,在后一种情况下,读取和写入请求可以包括由通信系统114管理的任何地址。
类似地,代替经由专用信道直接与资源106接口连接,通用DMA控制器110也可以被配置为经由通信系统114与资源106交换数据。例如,在这种情况下,DMA控制器110可以被配置为首先经由主接口1102发送包括第一地址的读取请求,然后发送包括第二地址的写入请求。
因此,通用DMA控制器110通常还包括用于接收用于配置DMA控制器110的配置数据的从属接口1104。
典型地,从属接口(例如接口1024、1064和/或1104)被配置为接口连接相应的电路的一个或多个寄存器。例如,这些寄存器可以被用于存储相应的电路的配置数据和/或其他资源特定数据,诸如在通信接口的情况下要传输或接收的数据或在ADC的情况下采样的数据。
具体地,虽然从属接口被示出为集成在相应的电路中的块,但实际上,给定电路也可以仅包括到电路的一个或多个寄存器的寄存器接口,这通常是所谓的IP核心的情况。因此,在这种情况下,从属接口可以被配置为将经由通信系统114交换的请求转换为对这些一个或多个寄存器的读取或写入操作。因此,从属接口确实可以是通信系统114的一部分,或者部分地在通信系统114内并且部分地在相应的电路中实现。
例如,通常每个读取或写入请求包括地址,其中通信系统114的单一地址与每个寄存器相关联。典型地,通信系统114的地址范围被标识为处理系统10的物理地址范围。因此,从属接口可以被配置为管理一个或多个寄存器,并且检测包括与由从属接口管理的寄存器相关联的地址的请求。在读取请求的情况下,从属接口因此可以读取与请求中所包括的地址相关联的寄存器的内容,并且将相应的内容(例如经由相应的响应消息)发送给通信系统114。相反,在读取请求的情况下,从属接口可以将写入请求中所包括的数据存储到与请求中所包括的地址相关联的寄存器。例如,为此目的,给定的从属接口可以经由总线114监测通信交换。相反,在系统互连的情况下,诸如网络互连控制器(NIC)或NoC,从属接口的至少一部分确实可以在系统互连114和相应的电路之间的NIC或NoC通信接口中实现。
本发明人已经观察到,处理系统10的各种电路的寄存器也可以存储数据,从安全角度来看,这些数据可能是相关的。例如,这适用于处理核心102、资源106或DMA控制器110的一个或多个寄存器。
在这方面,多核处理系统和/或执行不同软件任务甚或虚拟机的处理系统内的访问保护通常通过向每个处理核心102、每个虚拟机和/或每个软件任务指派访问权限来管理。例如,在许多处理系统10中,这个问题通过使用软件和/或硬件地址范围保护来解决。
例如,ARM AArch64架构可以使用虚拟存储器系统架构(VMSA),其中每个处理核心102的存储器管理单元(MMU)被用于经由所谓的转化表(TTB)将虚拟地址(VA)映射到通信系统114的物理地址(PA)。由于通信系统114的物理地址范围与存储器104和/或104b以及资源106中的存储器范围相关联,因此可以将给定应用APP或操作系统OS的读写访问权限限制到给定的存储器范围和/或资源106。
相反,ARM AArch32通常使用受保护存储器系统架构(PMSA)而不是VMSA。在这种情况下,处理系统包括存储器保护单元(MPU)。具体地,代替定义虚拟地址到物理地址的映射,MPU允许例如经由表格指定物理地址空间中的一个或多个存储器区域,并且允许指定相应的访问权限和存储器属性。例如,OS和应用APP的该访问权限表可以在异常级别EL1中实现。
因此,通过使用MMU或MPU,处理系统10被配置为选择性地禁止从主接口(诸如处理核心102的主接口1022)向通信系统114转发请求。相反,对应于2022年5月4日提交的美国专利申请号17/736,590和公开的欧洲申请EP 4086763(通过引用并入本文)的意大利专利申请号102021000011639公开了一种解决方案,其中一个或多个从属接口实现固件功能,使得从属接口本身被配置为选择性地禁止从通信系统114向相应的电路转发请求。
因此,这些解决方案允许定义访问权限,该访问权限可以被用于确定写入请求是否对应于由授权处理核心、虚拟机和/或软件任务生成的授权写入请求。然而,这些解决方案无法验证授权写入请求是否确实是由误差或无意生成的。
鉴于上文,本领域需要提供用于管理对包含安全相关数据的寄存器的写入访问的改进的解决方案。
发明内容
一个或多个实施例涉及一种处理系统。而且,实施例涉及一种相关的集成电路、设备和方法。
该处理系统包括具有给定物理地址范围的通信系统和处理核心,该处理核心包括被配置为执行软件指令并且具有关联的主接口电路的微处理器,该主接口电路被配置为从微处理器向通信系统转发写入请求,其中写入请求包括物理地址范围的物理地址和要被写入到物理地址的数据。
因此,电路可以具有关联的从属接口电路,被配置为管理地址子范围并且选择性地将寻址到给定地址的写入请求从通信系统转发到电路。例如,电路可以包括一个或多个寄存器以及被配置为与一个或多个寄存器交换数据的一个或多个外围电路。在这种情况下,相应的给定地址可以与一个或多个寄存器中的每个寄存器相关联,并且从属接口电路可以被配置为通过确定与从写入请求中提取的地址相关联的寄存器并且将从写入请求中提取的数据存储到相应的寄存器来选择性地转发写入请求。例如,在各种实施例中,从属接口电路是外围桥接器,其中一个或多个寄存器经由外围总线被连接至从属接口电路。
在各种实施例中,从属接口电路具有指示给定地址是受保护还是未受保护的关联配置数据,并且包括(易失性)存储器(诸如用寄存器实现),用于存储指示给定地址被锁定还是被解锁的附加配置数据。例如,配置数据可以针对一个或多个寄存器中的每个寄存器指示相应的地址是受保护的还是未受保护的。
具体地,在各种实施例中,从属接口电路被配置为:从通信系统接收寻址到给定地址的写入请求,从接收到的写入请求中提取相应的地址和数据,并且确定配置数据指示所提取的地址是受保护的还是未受保护的以及附加配置数据指示所提取的地址被锁定还是被解锁。
具体地,响应于确定提取的地址未受保护或提取的地址被解锁,从属接口电路可以向电路转发写入请求。相反,响应于确定所提取的地址是受保护的并且所提取的地址被锁定,从属接口电路经由组合逻辑操作生成解锁信号。
具体地,在各种实施例中,组合逻辑操作被配置为将提取的地址与提取的数据进行比较,从而当提取的数据满足相对于提取的地址的预定规则时断言解锁信号。因此,在各种实施例中,当写入请求中所包括的数据满足相对于写入请求中所包括的相应的地址的给定规则时,保护可以被解锁,从而避免了给定保护被无意解锁的风险。例如,在各种实施例中,从属接口电路被配置为:通过将提取的地址的一个或多个比特与提取的数据的一个或多个比特进行比较来生成解锁信号。更具体地,在各种实施例中,从属接口电路被配置为:当所提取的地址对应于所提取的数据时断言解锁信号。
因此,当解锁信号被断言时,从属接口电路可以更新附加配置数据,以便指示所提取的地址被解锁。例如,在各种实施例中,附加配置数据包括临时地址值。在这种情况下,从属接口电路可以通过将提取的地址存储为临时地址值来解锁提取的地址。例如,在这种情况下,从属接口电路可以通过将提取的地址与临时地址信号进行比较来确定提取的地址是被锁定还是被解锁。
相反,当解锁信号被解除断言时,从属接口电路可以更新附加配置数据,以便指示所提取的地址被锁定。例如,为了锁定所提取的地址,从属接口电路可以更新附加配置数据,以便指示由从属接口地址管理的所有地址都被锁定。
在各种实施例中,响应于确定所提取的地址未受保护或所提取的地址被解锁,这意味着写入请求被转发,从属接口电路还可以更新附加配置数据,以指示所提取的地址被锁定,从而一旦写入请求被执行,就再次锁定地址。
附图说明
本公开的实施例现在将参照附属附图描述,该附属附图仅通过非限制性示例提供,其中:
图1示出了包括多个处理系统的电子系统的示例;
图2示出了处理系统的示例,诸如微控制器;
图3示出了多核处理系统的示例;
图4示出了根据本公开的处理系统的实施例;
图5示出了用于图4的处理系统的从属接口(诸如外围桥接器)的实施例;
图6示出了用于为图5的从属接口指定受保护寄存器的配置数据的实施例;
图7示出了图5的从属接口的操作的实施例;
图8和图9示出了图5的从属接口的实施方式的实施例。
具体实施方式
在以下描述中,许多具体细节被给出以提供对实施例的透彻理解。实施例可以在没有一个或多个具体细节的情况下或在具有其他方法、组件、材料等的情况下实践。在其他实例中,已知的结构、材料或操作未被详细图示或描述,以避免混淆实施例的各个方面。
贯穿本说明书的对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特点被包括在至少一个实施例中。因此,在贯穿本说明书的各处中出现短语“在一个实施例中”或者“在实施例中”不一定全部指的是同一实施例。此外,特定特征、结构或特点可以在一个或多个实施例中以任何合适的方式组合。
本文提供的标题仅为方便,并且不解释实施例的范围或含义。
在以下图4至图9中,已经参照图1和图3描述过的部分、元件或组件由先前在这种附图中使用的相同参考表示;为了不使本详细描述过多,对这种先前描述的元件的描述在下文中将不被重复。
如前面提及的,本公开的各种实施例涉及用于阻止经由诸如微控制器等处理系统的通信系统发送的错误或非预期写入请求的解决方案。
图4示出了根据本公开的处理系统10a的实施例。具体地,处理系统10a的总体架构对应于相对于图3描述的架构,并且相应的描述全部适用。
具体地,同样在这种情况下,处理系统10a包括:通信系统114a,诸如系统总线、NIC或NoC;一个或多个处理核心(PC)102a,诸如处理核心102a1、…、102an,其中每个处理核心102包括软件可编程微处理器1020、主接口1022和可选的从属接口1024a;以及具有从属接口1064a和可选的主接口1062的至少一个外围设备/资源106。
在各种实施例中,处理系统10a还包括存储器控制器(MC)100a,它包括用于从通信系统114a接收读取和/或写入请求的从属接口1004a,其中读取或写入请求被用于从非易失性存储器104和/或易失性存储器104b读取数据或向其存储数据。
在各种实施例中,处理系统10a还包括DMA控制器110a,它包括用于向通信系统114a发送读取和/或写入请求的主接口1102以及可选地用于接收DMA控制器110b的配置数据的从属接口1104a。
通常,从属接口(诸如从属接口1004a、1024a、1104a或1064a)具有关联的通信系统114a的相应的物理地址或地址范围。例如,这如图5所示,其中与资源106a相关联的从属接口(SI)1064a具有关联的相应的物理地址或地址范围PA_106。通常,每个从属接口在通信系统114a的物理地址范围内具有关联的不同且单一的地址或地址范围(换言之,各个从属接口具有关联的非重叠地址或地址范围)。
具体地,如图5中从属接口1064a的示例所示,给定的从属接口可以与处理系统10a的一个或多个资源106a(诸如资源106a1、106a2和106a3)或其他电路相关联,其中每个资源/电路包括一个或多个寄存器(Reg)1070。通常,每个电路/资源还包括被配置为与一个或多个相应的寄存器1070交换数据的电路(Ex)1072。例如,根据图2的描述,在资源/外围设备106a的情况下,电路1072可以是通信接口IF、模数转换器AD、数模转换器DA、专用数字分量DC、模拟分量AC或混合信号分量MSC。因此,每个寄存器1070可以被用于存储要被提供给电路1072的数据(诸如配置数据或要由电路1072传输和/或处理的数据)和/或从电路1072接收的数据(诸如由电路1072接收、采样和/或处理的数据)。
因此,在各种实施例中,由给定从属接口管理的寄存器1070中的每个寄存器1070可以具有关联的相应的单一地址,并且可以被配置为经由通信系统114a接收读取和/或写入请求。响应于接收到读取或写入请求,从属接口可以确定请求中所包括的地址,并且确定该地址是否与由从属接口管理的寄存器1070相关联。因此,响应于确定该请求是包括与由从属接口管理的给定寄存器1070相关联的地址的读取请求,从属接口可以读取给定寄存器1070的内容,并且将给定寄存器1070的内容发送给通信接口114a(例如经由响应分组)。相反,响应于确定该请求是包括与由从属接口管理的给定寄存器1070相关联的地址的写入请求,从属接口可以将写入请求中所包括的数据存储到给定的寄存器1070。
通常,任何合适的通信系统1074可以被用于在从属接口和由给定从属接口管理的寄存器1070之间交换数据。例如,从属接口可以独立地(经由专用连接)与一个或多个被管理寄存器1070通信,和/或从属接口可以经由总线被连接至一个或多个寄存器1070。例如,在各种实施例中,从属接口1064a可以是所谓的外围总线接口,其中从属接口1064经由一个或多个总线系统1074(通常称为外围总线)被连接至被管理寄存器1070。因此,从属接口1064a可以是外围桥接器,它被配置为通过将读取或写入请求(即,事务)路由到寄存器1070中的一个或多个来将诸如NIC或NoC等通信系统114a与多个资源/外围设备106a接口连接。通常,从属接口还可以处理接收的数据(例如为了执行协议转换操作),验证请求中所包括的一个或多个纠错码(ECC)比特,和/或向响应分组添加一个或多个ECC比特。
因此,诸如主接口1022、1062或1102等主接口可以被配置为向通信系统114a发送读取请求RREQ或写入请求WREQ,并且最终从通信系统114a接收对该请求的相应的响应。因此,通过这种方式,微处理器1020可以通过向通信系统114a发送写入请求WREQ来对资源106a的给定寄存器1070进行编程,其中写入请求包括与相应的寄存器1070相关联的物理地址,并且由与资源106a相关联的从属接口1064a管理。
如前面提及的,在安全关键系统中,对处理系统10a的一个或多个寄存器的不希望的修改可能导致危险情况。例如,这可能是资源/外围设备106a的寄存器1070的子集的情况。
具体地,在各种实施例中,处理系统10a的从属接口中的至少一个(诸如从属接口1064a)具有关联的配置数据(CD)1068,它指定由要保护的从属接口管理的寄存器1070。
通常,由从属接口管理的每个寄存器1070的配置数据可以是固定的(例如硬连线的)或可以是可编程的。因此,从属接口1070可以被配置为:始终启用对给定寄存器1070的保护(不考虑配置数据1068);根据配置数据1068启用对给定寄存器1070的保护;或者始终禁用对给定寄存器1070的保护(不考虑配置数据1068)。
例如,图6示出了由从属接口管理的多个寄存器1070的配置数据1068的实施例。
具体地,在所考虑的实施例中,配置数据1068针对由从属接口管理的每个寄存器1070包括一个或多个相应的比特P,该比特P指定保护是否应该对相应的寄存器禁用或启用(例如诸如寄存器10701、10702和10703的比特P1、P2和P3)。
在各种实施例中,配置数据1068还可以包括一个或多个比特EN,它指定从属接口是否应该考虑配置比特P。例如,通过这种方式,从属接口可以被配置为:当(多个)启用比特EN具有第一值(EN=“0”)时,禁用对被管理寄存器1070的保护;并且当(多个)启用比特EN具有第二值(EN=“1”)时,根据(多个)相应的比特P选择性地启用每个寄存器1070的保护。
如前面提及的,在各种实施例中,配置数据1068的一个或多个比特可以是固定的(例如硬连线的)或可编程的。例如,在各种实施例中,比特P的至少一部分可以是硬连线的,因为安全相关寄存器1070可以在设计阶段期间确定。在这方面,配置数据1068的比特的可编程性可以被实现:通过使用在处理系统的启动期间经由专用硬件电路从非易失性存储器(诸如存储器104)读取的配置数据,诸如由处理系统10a的集成电路的生产者编程的配置数据;和/或通过使用通过例如经由微处理器1020向通信系统114a发送写入请求可编程的寄存器作为寄存器1068。
图7在这方面示出了从属接口1064a(诸如外围桥接器)的操作的实施例。
具体地,在开始步骤2000(可以对应于处理系统的启动)之后,从属接口进行到等待步骤2002,以便等待到由从属接口管理的地址ADR的新的写入请求WREQ。
例如,在各种实施例中,等待步骤2002可以用验证步骤来实现,其中从属接口验证写入请求WREQ是否已被接收到,并且一旦接收到写入命令,写入请求WREQ是否包括由从属接口管理的地址ADR。因此,如果从属接口没有接收到对由从属接口管理的地址的写入请求WREQ(验证步骤2002的输出“N”),则从属接口返回到步骤2002。
相反,如果从属接口已经接收到对由从属接口管理的地址的写入请求WREQ(验证步骤2002的输出“Y”),则从属接口进行到步骤2004。具体地,在所考虑的实施例中,从属接口被配置为在步骤2004中确定写入请求WREQ的地址ADR,并且基于配置数据1068确定对与接收地址ADR相关联的寄存器1070的保护是例如通过使用先前提及的数据EN和/或P来启用还是禁用。
而且,从属接口在步骤2004中读取附加配置数据CFG。具体地,附加配置数据CFG对应于被用于指示给定的受保护寄存器1070是处于锁定状态还是处于解锁状态的临时数据。例如,在各种实施例中,附加配置数据可以指示指示寄存器地址的地址TADR以及可选地指示地址TADR被锁定还是被解锁的状况标志LSTAT。例如,当仅使用地址TADR时,地址TADR可以指示:由从属接口管理的所有受保护寄存器都处于锁定状态(当地址TADR被设置为非由从属接口管理的值时,诸如零),或者由从属接口管理的单个受保护寄存器处于解锁状态(当地址TADR被设置为相应的寄存器的地址时)。
因此,在各种实施例中,从属接口可以在步骤2006中验证与写入请求WREQ中所包括的地址ADR相关联的寄存器是否受到保护以及相应的寄存器是否被锁定或解锁。例如,为此目的,从属接口可以使用数据1068的数据EN和/或P,以便确定寄存器是否受到保护,并且将临时地址TADR与请求中所包括的地址ADR进行比较,并且可选地验证标志LSTAT的值。
如果从属接口确定与写入请求WREQ中所包括的地址ADR相关联的寄存器1070未受保护或保护被解锁(验证步骤2006的输出“N”),例如因为临时地址TADR对应于写入请求WREQ中所包括的地址ADR,并且可选地标志LSTAT指示保护被解锁,则从属接口进行到步骤2012。具体地,从属接口被配置为在步骤2012中通过将写入请求中所包括的数据DATA(或根据这些数据DATA而生成的数据)存储到与写入请求中所包括的地址ADR相关联的寄存器1070来执行写入请求。
而且,在各种实施例中,在步骤2014中,从属接口例如通过重置地址TADR和/或状况标志LSTAT再次锁定相应的受保护寄存器或优选地锁定所有受保护寄存器。通常,步骤2014可以在步骤2012之前、之后或与步骤2012并行地执行。
因此,一旦写入请求已被执行,从属接口可以返回到步骤2002以接收下一写入请求WREQ。
相反,如果从属接口确定与写入请求WREQ中所包括的地址ADR相关联的寄存器1070受到保护并且保护被锁定(验证步骤2006的输出“Y”),例如因为配置数据EN和/或P指示寄存器被保护,并且临时地址TADR不对应于写入请求WREQ中所包括的地址ADR,或者可选标志LSTAT指示保护未被解锁,则从属接口进行到验证步骤2008。
具体地,在所考虑的实施例中,从属接口在步骤2008中验证与写入请求WREQ中所包括的地址ADR相关联的寄存器的保护是否应该被解锁。具体地,为此目的,从属接口可以在步骤2008中验证一个或多个条件。
例如,类似于密码保护,从属接口可以被配置为在步骤2008中验证给定的密码或参考密钥是否被提供有允许解锁保护的请求WREQ。然而,本发明人已经观察到,为了保护寄存器1070免受无意的写入访问,该解决方案可能不适合。事实上,一旦提供了参考密钥,由从属接口管理的所有寄存器1070将被解锁。因此,为了单独保护每个寄存器1070不受意外写入操作的影响,每个寄存器1070应该经由相应的参考密钥来保护,例如当具体寄存器1070的给定参考密钥被提供时,地址TADR和可选的标志LSTAT可以被设置。然而,这意味着需要大量的参考密钥,这显著增加了从属接口电路的复杂性。
在这方面,本发明人已经观察到,低复杂性解决方案可以通过使用与给定寄存器本身相关联的地址作为用于解锁对给定寄存器的写入访问的参考密钥来实现。
因此,在各种实施例中,从属接口被配置为确定写入请求WREQ中所包括的地址ADR和DATA,并且从属接口被设置为在步骤2008中确定数据DATA是否与受保护寄存器1070的地址匹配/对应,这也可以通过将写入请求WREQ的数据DATA与相同写入请求WREQ的相应的地址ADR进行比较来隐式地验证。因此,在各种实施例中,当以下组合条件被满足时,给定的受保护寄存器1070被解锁:写入请求WREQ被接收到,其中写入请求WREQ包括地址ADR和数据DATA;地址ADR对应于与寄存器1070相关联的地址;并且数据DATA对应于与寄存器1070相关联的地址。
在各种实施例中,代替验证寄存器1070的地址或写入请求WREQ的地址ADR对应于数据DATA,从属接口也可以在步骤2008中仅比较比特的子集,例如在地址字段ADR具有16位而数据字段具有32位的情况下,和/或处理地址ADR和/或数据DATA,并且将处理后的地址ADR与处理后的数据DATA进行比较。例如,从属接口可以在步骤2008中验证:数据DATA是否具有地址ADR的反相比特值;或者数据DATA是否对应于具有相对于地址ADR从最高有效位到最低有效位的倒序的比特序列。
因此,在各种实施例中,从属接口优选地经由组合逻辑电路在步骤2008中验证预定规则是否被满足,其中该规则将地址ADR的内容与数据DATA进行比较,例如组合逻辑电路可以接收地址ADR和数据DATA,并且生成信号UNLOCK,指示与地址ADR相关联的寄存器1070是否应该被解锁。在这方面,地址ADR的一个或多个比特与数据DATA的一个或多个比特之间的直接比特比较操作是有利的,因为相应的组合逻辑电路可以用更少的组合逻辑门实现,这也不会引入显著的传播延迟。
因此,如果从属接口确定受保护的寄存器应该被解锁(验证步骤2008的输出“Y”),则从属接口进行到步骤2016,其中从属接口写入附加配置数据CFG,以指示与写入请求中所包括的地址ADR相关联的寄存器被解锁,例如通过将值ADR存储到值TADR并且可选地断言标志LSTAT。例如,为此目的,从属接口可以包括内部寄存器,该内部寄存器被配置为响应于先前提及的信号UNLOCK通过存储地址ADR来提供值TADR。
相反,如果从属接口确定受保护寄存器不应被解锁(验证步骤2008的输出“N”),则从属接口可以进行到步骤2002等待新的写入请求,或者可选地步骤2014再次锁定所有受保护寄存器。例如,为此目的,从属接口可以在步骤2014中重置用于存储地址TADR和/或标志LSTAT的寄存器。
因此,在各种实施例中,保护机制经由两个写入访问来操作。当(第一)写入请求WREQ的地址ADR对应于与受保护和锁定寄存器相关联的地址时(步骤2006),写入请求WREQ不被执行,但是写入请求WRREQ的数据DATA被用于决定是否解锁相应的受保护寄存器。
具体地,当数据DATA和地址ADR满足给定的预定规则时(步骤2008),例如当数据DATA的比特对应于地址ADR的比特时,从属接口在步骤2016中移除对给定寄存器的锁定。在各种实施例中,在这种情况下,从属接口还可以用指示请求已被执行的消息来响应(参见步骤2016)。
相反,当数据DATA和地址ADR不满足给定的预定规则时(步骤2008),从属接口不解锁受保护的寄存器。在各种实施例中,在这种情况下,从属接口还可以用指示请求尚未被执行的消息来响应(参见可选步骤2010)。
因此,当(第二)写入请求WREQ的地址ADR对应于与未保护或解锁寄存器相关联的地址时(步骤2006),写入请求WREQ被执行,例如数据DATA被存储到相应的寄存器1070。如前面提及的,在各种实施例中,仅单个受保护寄存器1070可以被解锁。因此,对其他锁定寄存器的写入操作未被处理。
图8示出了根据本公开的从属接口电路的可能实施例,诸如从属接口1064a。
具体地,在所考虑的实施例中,通信系统114a被配置为针对每个写入请求WREQ向从属接口1064a提供以下信号:用于发信号通知请求的信号MSEL(例如通过断言信号MSEL);指示该请求是写入请求WREQ(例如通过断言信号W_R)还是读取请求RREQ的信号MW_R;包括要被写入的数据的信号MDATA;以及包括数据DATA应该被写入的地址ADR的信号MADR。
通常,这些信号可以由连接至总线系统114a的主接口直接生成,或者信号可以由NIC或NoC的边缘网络接口生成。
而且,在各种实施例中,通信系统114a可以被配置为从从属接口1064a接收指示对请求的状况响应的可选信号MRESP。通常,通信也可以基于图8中未示出的其他信号,诸如用于读取请求RREQ的数据的信号RDATA和/或附加ECC比特。
在所考虑的实施例中,从属接口1064a包括常规的从属接口1064和保护电路1076,该保护电路1076被配置为基于配置数据1068来管理保护机制。
具体地,从属接口1064被配置为接收以下信号:用于发信号通知请求的信号SSEL(例如通过断言信号SEL);指示该请求是写入请求WREQ(例如当信号W_R被断言时)还是读取请求RREQ的信号SW_R;包括要被写入的数据的信号SDATA;以及包括数据DATA应该被写入的地址ADR的信号SADR。
而且,在各种实施例中,从属接口1064可以被配置为生成指示请求的状况响应的可选信号SRESP。
因此,在常规的现有技术从属接口1064中,信号MADR、MDATA、MW_R、MRESP和MSEL将被分别(例如直接)连接至信号SADR、SDATA、SW_R、SRESP和SSEL。相反,在所考虑的实施例中,信号SSEL和可选的信号MRESP由保护电路1076根据信号MSEL、MW_R、MADR、MREQ和可选的SRESP生成。
图9示出了保护电路1076的可能实施例。
具体地,在所考虑的实施例中,地址MADR和数据MDATA被提供给锁定管理电路(LMC)1080。具体地,在所考虑的实施例中,电路1080被配置为当新的写入请求WREQ被接收到时(例如当信号MW_R被断言时以及可选地当信号MSEL被断言时),通过比较信号MDATA和MADR来生成锁定信号LOCK和/或解锁信号UNLOCK。
具体地,当写入请求被接收到时,锁定管理电路1080可以被配置为将地址MADR存储到寄存器1090,其中寄存器1090提供先前提及的指示解锁地址的地址的临时地址值TADR。例如,在所考虑的实施例中,寄存器1090被配置为响应于解锁信号UNLCOK来存储地址MADR,其中电路1080响应于确定信号MSEL和MW_R被断言而断言UNLOCK信号,并且信号MDATA对应于信号MADR。因此,锁定管理电路1080可以用(简单的)组合逻辑电路来实现。
如前面提及的,在各种实施例中,寄存器1090可以响应于锁定信号LOCK而重置(图7的步骤2014)。相反,在所考虑的实施例中,寄存器1090不被重置,但是附加寄存器1078被用于显式地存储锁定状态LSTAT。通常,如经由组合逻辑电路1077所示,任何合适的解决方案可以被用于存储指示保护被锁定还是被解锁的标志LSTAT。例如,在各种实施例中,保护电路1076包括设置-重置触发器1078,其中设置输入被连接至信号UNLOCK,并且重置输入被连接至信号LOCK,由此信号LSTAT被断言以发信号通知解锁状态。然而,信号LSTAT也可以指示锁定状态。
因此,在所考虑的实施例中,保护电路1076还包括保护验证(或事务过滤器)电路(PVC)1088,它被配置为生成指示对给定地址的访问是否被允许/解锁的信号UNLOCKED。
具体地,在所考虑的实施例中,电路1088被配置为接收指示解锁地址的值TADR(来自寄存器1090)、指示写入请求WREQ的地址的地址MADR、指示哪些地址是受保护的或未受保护的以及可选地锁定状况LSTAT(例如如果锁定状况可以不从值TADR导出)的配置数据1068。
具体地,在各种实施例中,电路1088被配置为基于信号MADR和配置数据1068来确定当前地址MADR是受保护还是未受保护的。而且,在各种实施例中,电路1088被配置为基于信号MADR和值TADR(以及可选地LSTAT)来确定对当前地址MADR的保护被锁定还是被解锁。因此,在各种实施例中,电路1088可以响应于确定地址MADR未受保护或对地址MADR的保护被解锁而断言信号UNLOCKED。因此,事务过滤器电路1088也可以用(简单的)组合逻辑电路来实现。
因此,在所考虑的实施例中,当信号MSEL被断言并且信号UNLOCKED被断言时,信号SSEL可以被断言,从而仅在信号UNLOCTED被断言的情况下才向从属接口1064发信号通知写入请求WREQ。例如,假设信号经由逻辑电平“1”被断言,信号SSEL可以经由逻辑与门1086生成,逻辑与门在输入处接收信号MSEL和UNLOCKED。
如前面提及的,在各种实施例中,从电路1064还可以生成响应信号SRESP。在这种情况下,保护电路1076可以包括锁定响应发生器电路1082。具体地,如前面提及的,提供给通信系统114a的响应MRESP应该对应于:在写入请求被提供给从属接口1064的情况下由从属接口1064提供的响应SRESP;在写入请求导致保护的解锁的情况下,指示(解锁)命令的正确执行的响应;并且否则,指示(解锁)命令的执行中的误差的响应。
具体地,在所考虑的实施例中,锁定响应生成器电路1082包括:组合逻辑电路1094,它被配置为生成对解锁命令的响应信号URESP(例如信号URESP对应于信号UNLOCK的反相版本);以及复用器1092,它通过根据指示写入请求是否被转发到从属接口1064的信号SSEL选择信号URESP或SRESP来在输出处提供信号MRESP。
通常,由于响应通常应该仅在下一时钟周期提供的事实,保护电路1076可以包括一个或多个寄存器或触发器,诸如用于存储信号SSEL的值(指示写入请求是否被转发到从属接口1064)的触发器1084,并且复用器可以使用由触发器1084提供的存储信号SSEL。
因此,图9所示的电路实施方式也允许经由配置数据1068指定要被保护的地址集合,例如通过使用包括由从属接口1064管理的每个地址的比特P的位图。
当写入事务的地址MADR(经由信号MW_R和MSEL发信号通知)对应于受保护的地址并且保护被锁定(经由信号LSTAT发信号通知)时,该事务由电路1088经由信号UNLOCKED阻止。
并行地,电路1080使用数据MDATA来决定是否解锁保护。具体地,当数据MDATA等于地址MADR时,例如通过更新值TADR并且可选地更新信号LSTAT,对地址MADR的锁定被移除。可选地,电路1082还可以生成指示解锁命令已被执行的响应。
否则,锁定例如通过经由电路1082以错误状况响应来确认。
相反,当写入事务的地址MADR(经由信号MW_R和MSEL发信号通知)对应于未受保护地址或受保护地址,并且保护被解锁(经由值TADR和可选信号LSTAT发信号通知)时,电路1088例如经由信号UNLOCKED允许将写入请求路由到从属接口1064。在这种情况下,电路1082将从属接口1064生成的响应SRESP提供给通信系统114a。
如图7中经由可选步骤2003示意性地所示,从属接口也可以被配置为验证一个或多个访问权限。
例如,先前提及的意大利专利申请号10202100011639公开了一种解决方案,其中一个或多个从属接口实现防火墙功能,使得从属接口可以被配置为在步骤2003中选择性地禁止向相应的寄存器1070转发读取请求RREQ或写入请求WREQ。具体地,根据本文档(为此目的通过引用并入本文),处理系统10a可以包括具有给定物理地址范围的通信系统114a和一个或多个处理核心102a,其中每个处理核心102a包括被配置为执行软件指令的至少一个微处理器1020。具体地,每个微处理器1020都具有关联的主接口电路1022,该主接口电路1022被配置为将读取或写入请求从微处理器1020转发到通信系统114a,其中读取或写入请求包括通信系统114b的物理地址范围的物理地址。
因此,根据先前的描述,诸如资源/外围设备106a或存储器控制器100a等从电路可以具有关联的从属接口电路,例如从属接口1064a,它被配置为选择性地将寻址到给定地址子范围的读取或写入请求从通信系统114a转发到第一电路。
具体地,根据文档102021000011639,微处理器1020的主接口电路具有用于存储相应的虚拟机ID(VMID)和/或地址空间ID(ASID)的关联寄存器。具体地,在各种实施例中,微处理器1020的主接口电路被配置为从寄存器读取VMID和/或ASID,并且将VMID和/或ASID插入从微处理器1020转发到通信系统114a的读取或写入请求中,使得VMID和(或)ASID与请求一起传输。类似地,(例如其他处理核心102a和/或DMA控制器110的)其他主接口电路也可以在请求中插入相应的VMID和/或ASID。
因此,在各种实施例中,从属接口电路可以确定请求是否被授权。具体地,为此目的,在各种实施例中,从属接口电路具有用于存储安全配置数据SECS的关联寄存器(也参见图5),包括例如授权VMID和/或ASID的列表1066,其中列表1066的每个项目与从属接口管理的给定地址或地址子范围相关联。
具体地,在这种情况下,从属接口电路可以被配置为从通信系统114接收寻址到给定地址或地址子范围的读取或写入请求,从接收到的请求中提取VMID和/或ASID,根据安全配置数据SECS确定与地址或地址子范围相关联的授权VMID和/或ASID,并且确定从接收到的请求中提取的虚拟VMID和/或ASID是否分别对应于授权的VMID和/或ASID。
例如,响应于确定从接收到的请求中提取的VMID和/或ASID对应于授权的VMID或ASID,从属接口电路可以将读取或写入请求转发到从电路。相反,响应于确定从接收到的请求中提取的VMID和/或ASID不对应于授权的VMID或ASID,从属接口电路可以禁止将读取或写入请求转发到第一电路(例如拒绝读取或写入请求)。
例如,通过使用VMID,可以指定微处理器1020和给定的从电路是否属于同一虚拟机。
例如,为了将针对非预期写入操作的保护机制与认证机制组合,电路1088可以仅在从接收到的请求中提取的VMID和/或ASID也对应于由安全配置数据SECS指示的相应的授权VMID和/或ASID时才断言信号UNLOCKED。备选地,单独的电路可以被用于认证,其中附加电路生成指示授权访问的信号,并且其中该信号被提供给逻辑门1086。
当然,在不损害本发明的原理的情况下,构造和实施例的细节可以相对于本文中纯粹通过示例的方式描述和图示的内容广泛地变化,而不因此脱离由随后的权利要求限定的本发明的范围。
权利要求是本文提供的本公开的技术教导的组成部分。

Claims (23)

1.一种处理系统,包括:
通信系统,具有给定物理地址范围;
处理核心,包括:微处理器,被配置为执行软件指令;以及主接口电路,与所述微处理器相关联并且被配置为从所述微处理器向所述通信系统转发写入请求,所述写入请求包括所述物理地址范围内的物理地址以及要被写入所述物理地址的数据;以及
电路;
从属接口电路,被配置为管理地址子范围并且选择性地将寻址到给定地址的写入请求从所述通信系统转发到所述电路;
其中所述从属接口电路包括指示所述给定地址是受保护还是未受保护的配置数据,并且包括用于存储指示所述给定地址被锁定还是被解锁的附加配置数据的存储器,并且其中所述从属接口电路被配置为:
从所述通信系统接收寻址到所述给定地址的写入请求;
从所接收的写入请求中提取数据和所述给定地址;
确定所述配置数据指示所提取的给定地址是受保护的还是未受保护的,以及所述附加配置数据指示所提取的给定地址被锁定还是被解锁;
响应于确定所提取的给定地址是未受保护的或所提取的给定地址被解锁,将所述写入请求转发到所述电路;
响应于确定所提取的给定地址是受保护的并且所提取的给定地址被锁定,响应于所提取的给定地址与所提取的数据的比较而生成解锁信号,其中所述解锁信号:
当所提取的数据满足相对于所提取的给定地址的预定规则时断言,以引起所述附加配置数据的更新,以便指示所提取的给定地址被解锁;并且
当所提取的给定数据不满足相对于所提取的给定地址的所述预定规则时解除断言,以引起所述附加配置数据的更新,以便指示所提取的给定地址被锁定。
2.根据权利要求1所述的处理系统,其中所述附加配置数据的以便指示所提取的给定地址被锁定的所述更新包括:更新所述附加配置数据以指示由所述从属接口地址管理的所有地址被锁定。
3.根据权利要求1所述的处理系统,其中所述从属接口电路还被配置为:响应于确定所提取的给定地址是未受保护的或所提取的给定地址被解锁,更新所述附加配置数据,以便指示所提取的给定地址被锁定。
4.根据权利要求3所述的处理系统,其中所述附加配置数据的以便指示所提取的给定地址被锁定的所述更新包括:更新所述附加配置数据以便指示由所述从属接口地址管理的所有地址被锁定。
5.根据权利要求1所述的处理系统:
其中所述附加配置数据包括临时地址值;
其中所述附加配置数据的以便指示所提取的给定地址被解锁的所述更新包括:将所提取的给定地址存储为所述临时地址值;并且
其中确定所述附加配置数据指示所提取的给定地址被锁定还是被解锁包括:将所提取的给定地址与所述临时地址值进行比较。
6.根据权利要求1所述的处理系统,其中所述从属接口电路被配置为:通过将所提取的给定地址的一个或多个比特与所提取的数据的一个或多个比特进行比较来生成所述解锁信号。
7.根据权利要求6所述的处理系统,其中所述从属接口电路被配置为:当所提取的给定地址对应于所提取的数据时断言所述解锁信号。
8.根据权利要求1所述的处理系统,其中所述电路包括一个或多个寄存器和一个或多个外围电路,所述一个或多个外围电路被配置为与所述一个或多个寄存器交换数据,并且其中相应的给定地址与所述一个或多个寄存器中的每个寄存器相关联,并且所述从属接口电路被配置成通过以下操作选择性地转发所述写入请求:
确定与从所述写入请求中提取的所述相应的给定地址相关联的所述寄存器,以及
将从所述写入请求中提取的所述数据存储到所述相应的寄存器。
9.根据权利要求8所述的处理系统,其中所述从属接口电路是外围桥接器,其中所述一个或多个寄存器经由外围总线被连接至所述从属接口电路。
10.根据权利要求8所述的处理系统,其中所述配置数据针对所述一个或多个寄存器中的每个寄存器指示所述相应的给定地址是受保护的还是未受保护的。
11.根据权利要求1所述的处理系统,其中所述从属接口电路被配置为:
响应于确定所提取的给定地址是未受保护的或所提取的给定地址被解锁,从所述电路向所述通信系统转发响应;
响应于确定所提取的给定地址是受保护的并且所提取的给定地址被锁定,并且当所述解锁信号被断言时,发送指示所述写入请求已被执行的响应;以及
响应于确定所提取的给定地址是受保护的并且所提取的给定地址被锁定,并且当所述解锁信号被解除断言时,发送指示所述写入请求未被执行的响应。
12.根据权利要求1所述的处理系统:
其中所述从属接口电路被配置为接收所述配置数据,所述配置数据指示所述给定地址是受保护的;
其中所述主接口电路被配置为向所述通信系统发送第一写入请求,所述第一写入请求包括所述给定地址和根据依据所述给定地址的所述预定规则而确定的数据;以及
其中所述主接口电路还被配置为向所述通信系统发送第二写入请求,所述第二写入请求包括所述给定地址和要被写入所述给定地址的数据。
13.一种集成电路,包括:根据权利要求1所述的处理系统。
14.一种设备,包括:多个处理系统,其中每个处理系统是根据权利要求1所述的处理系统;并且其中所述处理系统经由另外的通信系统被连接。
15.根据权利要求14所述的设备,其中所述设备是车辆。
16.一种用于从属接口操作的方法,包括:
存储指示具有地址子范围的给定地址是受保护还是未受保护的配置数据;
存储指示所述给定地址被锁定还是被解锁的附加配置数据;
从通信系统接收寻址到所述给定地址的写入请求;
从所接收的写入请求中提取所述给定地址和数据;
确定所述配置数据指示所提取的给定地址是受保护的还是未受保护的;
确定所述附加配置数据指示所提取的给定地址被锁定还是被解锁;
在所提取的给定地址是未受保护的或所提取的给定地址被解锁的情况下,将所述写入请求转发到电路;
在所提取的给定地址是受保护的并且所提取的给定地址被锁定的情况下,响应于所提取的给定地址与所提取的数据的比较而生成解锁信号,其中所述解锁信号是:
当所提取的数据满足相对于所提取的给定地址的预定规则时断言,以引起所述附加配置数据的更新,以便指示所提取的给定地址被解锁;并且
当所提取的数据不满足相对于所提取的给定地址的所述预定规则时解除断言,以引起所述附加配置数据的更新,以便指示所提取的给定地址被锁定。
17.根据权利要求16所述的方法,其中所述附加配置数据的以便指示所提取的给定地址被锁定的所述更新包括:更新所述附加配置数据以指示由所述从属接口地址管理的所有地址被锁定。
18.根据权利要求16所述的方法,还包括:在所提取的给定地址是未受保护的或所提取的给定地址被解锁的情况下,更新所述附加配置数据以便指示所提取的给定地址被锁定。
19.根据权利要求18所述的方法,其中所述附加配置数据的以便指示所提取的给定地址被锁定的所述更新包括:更新所述附加配置数据以便指示由所述从属接口地址管理的所有地址被锁定。
20.根据权利要求16所述的方法,其中所述附加配置数据包括临时地址值,还包括:
当更新所述附加配置数据以指示所提取的给定地址被解锁时,将所提取的给定地址存储为所述临时地址值;以及
其中确定所述附加配置数据指示所提取的给定地址被锁定还是被解锁包括:将所提取的给定地址与所述临时地址值进行比较。
21.根据权利要求16所述的方法,其中所提取的给定地址与所提取的数据的所述比较以生成所述解锁信号包括:将所提取的给定地址的一个或多个比特与所提取的数据的一个或多个比特进行比较。
22.根据权利要求16所述的方法,还包括:
在所提取的给定地址是未受保护的或所提取的给定地址被解锁的情况下,从所述电路向所述通信系统转发响应;
在所提取的给定地址是受保护的并且所提取的给定地址被锁定的情况下,并且当所述解锁信号被断言时,发送指示所述写入请求已被执行的响应;以及
在所提取的地址是受保护的并且所提取的给定地址被锁定的情况下,并且当所述解锁信号被解除断言时,发送指示所述写入请求未被执行的响应。
23.根据权利要求16所述的方法,还包括:
接收去往所述通信系统的第一写入请求,所述第一写入请求包括所述给定地址和根据依据所述给定地址的所述预定规则而确定的数据;以及
接收去往所述通信系统的第二写入请求,所述第二写入命令包括所述给定地址和要被写入所述给定地址的数据。
CN202310123155.3A 2022-02-17 2023-02-16 处理系统、相关集成电路、设备和方法 Pending CN116610615A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IT102022000002960 2022-02-17
IT102022000002960A IT202200002960A1 (it) 2022-02-17 2022-02-17 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US18/109,675 US20230259463A1 (en) 2022-02-17 2023-02-14 Processing system, related integrated circuit, device and method
US18/109,675 2023-02-14

Publications (1)

Publication Number Publication Date
CN116610615A true CN116610615A (zh) 2023-08-18

Family

ID=81749112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310123155.3A Pending CN116610615A (zh) 2022-02-17 2023-02-16 处理系统、相关集成电路、设备和方法

Country Status (4)

Country Link
US (1) US20230259463A1 (zh)
EP (1) EP4231161A1 (zh)
CN (1) CN116610615A (zh)
IT (1) IT202200002960A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060038981A (ko) * 2006-04-13 2006-05-04 삼성전자주식회사 쓰기 방지 가능한 버퍼 메모리를 갖는 메모리 장치 및그것을 포함하는 정보 처리 시스템
US20080250509A1 (en) * 2007-04-04 2008-10-09 Nokia Corporation Write Protection For Memory Devices
US9984009B2 (en) * 2016-01-28 2018-05-29 Silicon Laboratories Inc. Dynamic containerized system memory protection for low-energy MCUs
US10543370B2 (en) * 2017-12-22 2020-01-28 Pacesetter, Inc. Method and device to manage modifications of protected registers in an implantable medical device
US10839877B1 (en) * 2019-04-23 2020-11-17 Nxp Usa, Inc. Register protection circuit for hardware IP modules

Also Published As

Publication number Publication date
US20230259463A1 (en) 2023-08-17
IT202200002960A1 (it) 2023-08-17
EP4231161A1 (en) 2023-08-23

Similar Documents

Publication Publication Date Title
EP2587376B1 (en) Systems and methods for semaphore-based protection of shared system resources
US9805221B2 (en) Incorporating access control functionality into a system on a chip (SoC)
JP4602403B2 (ja) データ処理システムにおけるエンディアンネス制御方法および装置
US7277972B2 (en) Data processing system with peripheral access protection and method therefor
US20140223052A1 (en) System and method for slave-based memory protection
JP2006523347A (ja) 周辺装置アクセス保護を有するデータ処理システムおよびその方法
US11995019B2 (en) PCIe device with changeable function types and operating method thereof
US9104472B2 (en) Write transaction interpretation for interrupt assertion
US11928070B2 (en) PCIe device
WO2008030727A2 (en) Access control of memory space in microprocessor systems
CN112835845A (zh) 用于管理形成例如微控制器的片上系统的调试的方法和对应片上系统
CN115221084A (zh) 处理系统、相关集成电路、设备和方法
US10949570B2 (en) Processing system, related integrated circuit and method
US9552385B2 (en) Centralized peripheral access protection
US11354172B2 (en) Centralized access control circuit for controlling access to peripherals
US9589088B1 (en) Partitioning memory in programmable integrated circuits
US20230259463A1 (en) Processing system, related integrated circuit, device and method
US12013931B2 (en) Method and system for freedom from interference (FFI)
JP2006293536A (ja) バスシステム
EP4187415A1 (en) Processing system, related device and method for protecting latches or flip-flops of a register
CN114860646A (zh) 系统单晶片及控制方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Country or region after: France

Address after: Montrouge, France

Applicant after: STMicroelectronics France

Country or region after: Italy

Applicant after: STMicroelectronics S.R.L.

Address before: France

Applicant before: STMicroelectronics S.A.

Country or region before: France

Applicant before: STMicroelectronics S.R.L.

Country or region before: Italy

CB02 Change of applicant information