CN114880250A - 处理访问请求的方法、译码器及总线系统 - Google Patents

处理访问请求的方法、译码器及总线系统 Download PDF

Info

Publication number
CN114880250A
CN114880250A CN202210467352.2A CN202210467352A CN114880250A CN 114880250 A CN114880250 A CN 114880250A CN 202210467352 A CN202210467352 A CN 202210467352A CN 114880250 A CN114880250 A CN 114880250A
Authority
CN
China
Prior art keywords
address
protected
access
interval
access 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
CN202210467352.2A
Other languages
English (en)
Inventor
周欣
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202210467352.2A priority Critical patent/CN114880250A/zh
Publication of CN114880250A publication Critical patent/CN114880250A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种处理访问请求的方法、译码器及总线系统。该方法包括:接收访问请求,所述访问请求包含访问地址;如果所述访问地址映射到受保护地址区间,根据译码器中的地址译码逻辑,将所述访问地址重映射到非保护地址区间,所述受保护地址区间内包含受保护的内容。本申请实施例中的译码器对受保护地址区间进行硬件级别的主动保护,使该地址区间不可被访问,有效保护了受保护地址区间里的内容。

Description

处理访问请求的方法、译码器及总线系统
技术领域
本申请实施例涉及访问控制领域,更为具体地,涉及一种处理访问请求的方法、译码器及总线系统。
背景技术
存储器内的部分代码可以看成整个芯片的可信根。如果转储出这类代码,进行分析和推演后可能找到存储器的漏洞,进而攻破芯片的整个系统。
发明内容
本申请实施例提供一种处理访问请求的方法、译码器及总线系统。下面对本申请实施例涉及的各个方面进行介绍。
第一方面,提供了一种处理访问请求的方法,所述方法包括:接收访问请求,所述访问请求包含访问地址;如果所述访问地址映射到受保护地址区间,根据译码器中的地址译码逻辑,将所述访问地址重映射到非保护地址区间,所述受保护地址区间内包含受保护的内容。
第二方面,提供了一种译码器,包括:存储器,用于存储地址译码逻辑;处理器,用于接收访问请求,所述访问请求包含访问地址;如果所述访问地址映射到受保护地址区间,根据所述地址译码逻辑,将所述访问地址重映射到非保护地址区间,所述受保护地址区间内包含受保护的内容。
第三方面,提供一种总线系统,包括如第二方面所述的译码器。
第四方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
第五方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
本申请实施例根据译码器中的地址译码逻辑,将访问受保护地址区间的地址重映射至非保护地址区间,其中受保护地址区间内包含受保护的内容。由此可见,本申请实施例利用译码器的主动保护机制,保证了受保护地址区间不可被访问,有效保护了受保护地址区间内的关键内容。
附图说明
图1所示为本申请一实施例提供的处理访问请求的方法的流程示意图。
图2所示为本申请另一实施例提供的处理访问请求的方法的流程示意图。
图3所示为本申请一实施例提供的译码器的结构示意图。
图4所示为本申请一实施例提供的总线系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
存储器是用来存储程序和各种数据信息的记忆部件。在芯片系统中,向存储器发出的访问请求,可以通过总线(bus)访问到存储器中存储的程序和/或数据。例如,访问只读存储器(read only memory,ROM),可以得到计算机在运行中的相关指令集。
总线用于连接芯片系统中的各功能部件。不同的总线系统支持与其相应的总线规范。例如,高级高性能总线(advanced high performance bus,AHB)和高级可拓展接口(advanced extensible interface,AXI)等总线都支持高级处理器总线架构(advancedmicrocontroller bus architecture,AMBA)。
AHB系统由主设备、从设备和基础结构组成。基础结构又包括虚拟从设备(dummyslave)、译码器、仲裁器等不同部件。主设备通过提供地址和控制信息发出访问请求。从设备根据给定的地址空间范围响应访问请求。在AHB总线中,从设备(slave)可以是各种类型的存储器。例如ROM,静态随机存取存储器(static random-access memory,SRAM)以及紧耦合存储器(tightly-coupled memory,TCM)等。
对于存储器内容的访问请求,有些关键内容在执行后不希望再次被访问到。比如与存储器所在芯片系统的安全性有关的代码。访问者如果得到这类代码,可能找到漏洞并进一步攻破芯片系统。例如存放启动程序的存储器(boot read-only memory,BootROM)中的代码,又如一次性可编程(one time programmable,OTP)存储器中的代码。
下面以BootROM代码为例,对存储器内关键内容的安全需求进行详细地描述。
BootROM代码是芯片启动阶段的代码。芯片上电之后,BootROM代码是系统在最初始阶段运行的软件代码。由于ROM的只读属性,一般把启动阶段的ROM代码看成整个芯片的可信根和安全锚点。基于BootROM代码,芯片将建立起后续镜像的加载、逐级安全校验、硬件设置等逻辑链路。如果从攻击角度来看,骇客通过访问可以转储(dump)出这段代码。通过对这段代码进行分析和推演,可能找出BootROM的漏洞。进一步地,就很可能攻破芯片的整个系统体系。因为ROM的不可更改性,修复ROM中的漏洞需要很高的技术成本和工程代价。因此,需要对ROM的内容进行访问保护。
相关技术中,为了控制对于ROM内容的访问权限,尤其是对BootROM的保护,一般是在访问信号中增加一个限制信号。该限制信号由软件设置,硬件上将该限制信号与访问信号进行逻辑操作,用以实现每笔访问请求无效。通过无效对ROM的访问请求,达到对于ROM内容的访问保护。
由于相关技术中的主控逻辑是由软件主导的,保护思路只能限定在特定阶段或者特定的逻辑分支中。其中硬件电路仅是参与实现,没有健全的保护机制。因此,限制信号由软件配置,依赖于软件的逻辑和流程的管控。但是,软件本身面临较多的攻击面和攻击方式,可能直接和/或间接地篡改该限制信号。所以,直接导致ROM代码不能得到有效和完善的保护,最终影响了芯片可信锚点的安全性。
为了解决上述部分或全部问题,本申请实施例提出了一种处理访问请求的方法。该方法可以用于处理对存储器内容的访问请求,存储器内的内容包括程序代码、数据等。下面结合图1,对本申请实施例进行详细、清楚地描述。
参见图1,在步骤S110,接收访问请求。
访问请求可以由总线系统连接的设备发起。在一些实施例中,发起访问请求的设备可以为总线连接的主设备。总线可以连接N个不同类型的主设备。例如,主设备可以是直接存储器访问(direct memory access,DMA)。
总线系统实现了各功能部件的互连。在一些实施例中,总线可以连接中央处理器(central processing unit,CPU)、主存、I/O等主要部件。在另一些实施例中,支持AMBA规范的AHP总线可以连接CPU、多个主设备、虚拟从设备、ROM以及其它作为从设备的存储器。
访问请求可以得到总线上被访问设备的响应。在一些实施例中,响应访问请求的设备可以是总线系统连接的从设备。总线系统通过访问请求的地址信息,选择相应的从设备。从设备可以是各种存储器。为方便描述,后文用从设备表示总线上响应访问请求的设备。
存储器包括多种类型。前文已述,作为从设备的存储器可以是ROM,也可以是SRAM或TCM,还可以是其它类型的存储器。其中,ROM具有只读属性和不可更改性。对于具有只读属性的存储器,需要限制对其进行的访问请求。
访问请求是对存储器空间的内容进行访问。存储器空间的内容可以是存储的程序代码,也可以是存储的文件、数据。程序代码例如BootROM中包含芯片的启动代码、ROM中的其它执行代码等。文件例如文本(text)、二进制文本(bss)等。数据例如只读数据段(rodata)、数据(data)等。
访问请求为寻址访问。访问请求中包含访问地址。访问地址可以是访问请求包含的逻辑地址。在一些实施例中,访问地址可以是用户访问程序中的逻辑地址。在另一些实施例中,访问地址可以是芯片相关设备访问信号中的逻辑地址。
访问地址可以映射到不同从设备,也可以映射到从设备空间中的不同地址区间。在一些实施例中,针对访问请求,总线系统在内部按一定的译码逻辑进行地址译码。例如,总线将访问请求中的逻辑地址译码出对应的物理地址。根据物理地址映射到的地址区间,总线内部选择对应的从设备。
在步骤S120,如果访问地址映射到受保护地址区间,根据译码器中的地址译码逻辑,将访问地址重映射到非保护地址区间。
访问地址可以映射到不同的地址区间。根据设定,地址区间可以分为受保护地址区间(protect region)和非保护地址区间。
受保护地址区间(也称为关键地址区间)可以在多种从设备空间中。在一些实施例中,受保护地址区间可以在ROM空间中。利用ROM的只读属性,可以对受保护地址区间进行一定程度的保护。在另一些实施例中,受保护地址区间可以在OTP空间中。
芯片系统中可以有多个受保护地址区间。多个受保护地址区间可以在不同的从设备空间中,也可以在相同的从设备空间中。
受保护地址区间可以包含受保护的内容。受保护的内容包括存储器内的关键代码和数据。在一些实施例中,受保护的关键代码可以看成芯片的可信根和安全锚点。例如,芯片上电后最初始阶段运行的代码。又如,用于派生中间密钥的根密钥。
受保护地址区间可以由软件代码进行配置。软件代码可以灵活配置要保护的地址区间和/或要保护的内存空间。配置受保护地址区间的软件代码可以根据需要放置在不同的从设备空间中。在一些实施例中,可以将配置受保护地址区间的软件代码放在不受保护的从设备空间中。在系统运行中,可以对受保护地址区间进行重新配置。
受保护地址区间也可以由受保护地址区间内的软件代码进行配置。也就是说,可以将配置受保护地址区间的代码放在受保护地址区间中。例如,在BootROM中,受保护地址区间可以包含ROM启动代码,以及在启动代码之后的配置受保护地址区间的代码。因此,一旦执行了启动代码和配置代码,将无法再对受保护地址区间进行重新配置。
在受保护地址区间中,配置受保护地址区间的代码可以紧跟在存储器受保护的内容之后,用以完成对受保护内容的第一次访问。当执行完第一次访问后,通过执行后续的配置代码可以将受保护地址区间进行配置,通过下文地址译码逻辑的实现,可以保证受保护内容不再被访问到。
非保护地址区间是受保护地址区间之外的其它地址区间。在一些实施例中,非保护地址区间可以与受保护地址区间在不同的从设备空间中。例如,在AHB总线中,虚拟从设备不会被访问到,可以直接作为非保护地址区间的从设备空间。在另一些实施例中,非保护地址区间可以和受保护地址区间在相同的从设备空间中。
虚拟从设备是在芯片设计中很少用到的地址的集合。在总线规划中,不是所有的地址区间都会被用于存储内容。例如在整个地址空间两端的地址,以及一些其它影响产品良率的地址。因此,总线系统中,类似虚拟从设备的空间可以被利用起来。
非保护地址区间可以是不同从设备空间,也可以是从设备空间中的不同地址区间。在一些实施例中,非保护地址区间可以是虚拟从设备内的区间。将访问地址重映射到虚拟从设备空间后,可以保证上游能够正常完成一次总线访问的事务(transaction)。在另一些实施例中,非保护地址区间可以是死代码区域。在调试时,因访问到死代码,可能中断对总线的本次访问。
非保护地址区间是类似虚拟从设备空间内的区间时,非保护地址区间的内容可以进行自定义预设。在一些实施例中,可以将非保护地址区间配置成全0、全F或者有特定含义的默认值,例如0xDEADBEEF等。在另一些实施例中,可以通过软件将数据默认值设置成自定义的内容,例如自定义数据。
如果访问地址映射到受保护地址区间,可以根据地址译码逻辑,将访问地址重映射到非保护地址区间。地址译码逻辑中的地址仲裁用于判断访问地址是否落在受保护地址区间。可以根据地址仲裁的结果选择非保护地址区间所在的从设备。
如果访问地址映射到非保护地址区间,地址译码逻辑可以正常地进行访问请求。
地址译码逻辑可以包括多种功能。在一些实施例中,地址译码逻辑包含地址译码、地址仲裁和选择从设备等功能。地址译码可以对访问地址进行译码。地址仲裁可以仲裁访问地址是否落在设定的地址区间。选择从设备可以根据仲裁结果进行选择。
地址译码逻辑通过系统总线的硬件设备实现。在一些实施例中,硬件设备可以是全部实现地址译码逻辑的一个硬件模块。在另一些实施例中,硬件设备可以是包含多个硬件模块的模块组件。例如,模块组件中的译码器用于实现地址译码逻辑中的地址译码。地址仲裁由仲裁器完成。选择从设备由选择器完成。
总线上的硬件设备可以是实现地址译码逻辑的译码器。译码器可以包括存储器和处理器。存储器可以用于存储地址译码逻辑。存储器例如是寄存器。处理器可以实现该地址译码逻辑。在一些实施例中,译码器可以根据配置的地址译码逻辑对已有译码器进行重构。在另一些实施例中,译码器可以在现有逻辑基础上进行改进。例如,译码器可以在已有译码器上增加一个新的硬件模块,从而实现该地址译码逻辑。
硬件模块可以是多种实现多路选择的模块。在一些实施例中,硬件模块可以是多路复用器(multiplexer,MUX)硬件知识产权(intellectual property,IP)模块。在另一些实施例中,硬件模块可以是选择器。
硬件模块可以通过软件代码进行设置。例如,在软件代码中增加/*set MUX IP*/,可以对译码器中的MUX硬件IP进行设置。
地址译码逻辑可以有多种实现方式。在一些实施例中,地址译码逻辑可以实现设备默认的地址译码逻辑。默认的地址译码逻辑也可以认为是正确的地址译码逻辑。在另一些实施例中,地址译码逻辑可以根据需要进行配置。在系统总线中,如果不对地址译码逻辑进行配置,将按照默认的映射逻辑对访问地址进行映射。如果进行配置,地址译码逻辑可以按照配置的要求对访问地址进行映射。
地址译码逻辑可以有多种配置方式。在一些实施例中,地址译码逻辑由硬件设备进行配置。硬件模块的配置可以实现硬件模块级别的主动保护机制。在另一些实施例中,地址译码逻辑可以由软件进行配置。
地址译码逻辑可以由配置设备进行硬件层面的配置。在一些实施例中,配置设备可以是硬件模块中的寄存器。寄存器可以是硬件模块中的配置寄存器,也可以是硬件模块中的控制寄存器。其中,寄存器可以将某些地址区域设定为受保护地址区间。例如,地址译码逻辑可以将寄存器中设定的受保护地址区间映射成系统预置的从设备空间。硬件模块中的电路还可以实现地址仲裁和从设备选择。
配置设备可以通过访问软件代码设定受保护地址区间。在一些实施例中,在BootROM阶段将代码中需要保护的ROM地址区域信息写入配置寄存器中。例如,配置设备的设置代码中可以增加对受保护地址空间(protect region address)的设置。
配置设备的使能可以根据需要进行操作。在一些实施例中,在BootROM跳转下一级镜像之前,使能寄存器。使能操作不能在保护的地址区域内,因为使能后对地址区域开始保护,无法进行下一条指令的取指访问。例如,包含硬件模块设置代码的代码模块的bl指令应该在非保护地址区间。
配置设备使能之后,将按照配置的地址译码逻辑对访问地址进行映射。在一些实施例中,如果总线上访问的地址落在寄存器设定的受保护地址区间内,地址译码逻辑会将地址进行重映射。
地址译码逻辑可以支持锁定机制。锁定机制可以通过锁定地址译码逻辑的配置设备来实现。例如,总线MUX硬件IP的寄存器中锁定信号如果被使能,总线中地址译码逻辑不可更改。寄存器将不再接受重新配置,只能通过总线复位才能恢复到默认状态。
锁定机制可以由总线上的硬件设备进行实现。在一些实施例中,锁定机制可以和地址译码逻辑一样,通过配置设备对硬件的配置来实现。
锁定机制可以通过对配置设备的使能操作进行锁定。使能操作可以通过锁定信息进行触发。锁定信息可以和地址区域信息一起写入配置设备中。在一些实施例中,可以在设置配置设备的代码中增加锁定信号(lock bit)。锁定信号可以只设置1个bit,以对锁定机制进行使能操作。
锁定机制可以和受保护地址区间一样由受保护地址区间内的代码进行配置。锁定代码可以放在配置受保护地址区间的代码之后。例如,在BootROM受保护地址区间中,将如下set_protection代码写在BootROM的启动代码之后。具体运行中,可以在启动代码之后,跳转至ROM后一级软件代码之前执行下述代码。通过执行下述代码,将代码设置的受保护地址区间和锁定信号写入MUX硬件IP的配置寄存器中。
set_protection:
/*set MUX IP Start*/
/*1.Set protect region address*/
/*2.Set lock bit*/
/*3.……*/
/*set MUX IP End*/
MUX根据写入的信息,设置总线中的地址译码、仲裁和选择从设备的逻辑,并将该逻辑进行锁定。因此,一旦MUX配置寄存器使能,就是在访问请求之前,对地址译码逻辑进行锁定。如果访问地址落在受保护地址区间,将进行地址仲裁和从设备选择。
地址译码逻辑的锁定可以通过总线复位进行解除。总线复位可以有多种实现方式。在一些实施例中,总线复位与系统复位关联。锁定机制可以通过系统复位解除,恢复地址译码逻辑配置前的正确映射逻辑。例如,如果不进行系统复位,对受保护地址区间的每笔访问请求都将进行映射到其它地址空间。
在另一些实施例中,可以只进行总线复位。与系统复位相比,总线复位可以使锁定机制具有一定的有效期。锁定有效期内不再接受地址的重新配置,直到总线复位才解除锁定并恢复默认的地址译码逻辑。
通过对图1的分析可知,本申请实施例提出的处理访问请求的方法是一种硬件保护存储器内容的方案。该保护方案面向芯片关键存储器内容的保护场景。比如芯片启动阶段的BootROM保护。本申请实施例基于总线在地址译码时候,通过配置将受保护的地址空间重映射到其它的地址空间。总线内部的硬件设备支持重映射的地址译码逻辑和锁定机制,实现了硬件级别的主动保护机制。通过硬件级别的保护,保证了受保护地址区间通过总线不可被访问,有效的保护了受保护地址区间内的代码以及关键内容。受保护地址区间可以通过软件代码进行配置,保留了软件可配的灵活性。进一步地,通过将访问地址重映射到虚拟从设备的空间中,保证上游能够完成一次完整的总线访问。
本申请实施例在硬件层面保护的基础上,兼顾受保护地址区间的配置灵活性,有效的保护了存储器中的关键代码和关键内容,从而提高了芯片可信根的安全性,提升了整个系统的安全水位。
为便于理解,下面结合图2,以BootROM和支持AMBA的总线为例,对本申请实施例提出的处理访问请求的方法进行更为详细地、清楚地描述。
图2是本申请实施例提供的处理访问请求的方法的流程示意图,以及采用该方法的芯片系统的结构示意。
参见图2,芯片20(图中未示出)主要包括主设备21、CPU22、总线23、译码器24、虚拟从设备25、包含非保护地址区间的从设备26、ROM中的受保护地址区间27和ROM中的非保护地址区间28。
在步骤S210,芯片20上电后,执行启动阶段的代码。如图,启动代码在ROM中。
在步骤S220,在ROM代码中,将要保护的地址区间信息和锁定信息写入译码器24中的配置寄存器,设置总线23中的地址译码、仲裁和选择从设备的逻辑。
前文提到的set_protection伪代码,在ROM中的受保护地址区间27中。但是使能该代码的指令(bl set_protection)在ROM中的非保护地址区间28中。因此,在设置地址译码逻辑后,通过读取非保护地址区间28中的代码,可以执行对受保护地址区间27的访问保护机制。在读取非保护地址区间28中的代码之后,系统跳转至下一级。
在步骤S230,使能译码器24中的MUX控制寄存器之后,地址译码逻辑被锁定。总线23接收来自主设备21的访问请求,根据地址仲裁,选择从设备。锁定机制可以使受保护地址区间不可再次修改,直到下一次系统复位和/或总线复位。
在步骤S240,如果主设备21访问ROM中的受保护地址区间27,总线23会将地址重映射至虚拟从设备25。虚拟从设备25将会对主设备21返回其中的虚拟数据。
在步骤S250,如果主设备21访问包含非保护地址区间的从设备26或ROM中的非保护地址区间28,总线23将对主设备21的访问请求进行正常地址译码,并通过译码器24中的MUX选择对应的从设备和/或地址区间。
由图2可知,利用ROM的只读属性以及总线内部的地址译码逻辑,在BootROM代码中配置要保护的ROM内存地址空间。设置并使能受保护地址区间重映射至虚拟从设备的空间,结合锁定的硬件机制,实现了对ROM关键内存的硬件级别保护,同时保留了软件可配的灵活性。
本申请实施例不仅可以用于ROM代码的保护,也可以用于其它关键地址区间的重映射。例如前文提到的OTP中代码所在的地址区间。通过总线内部硬件模块的配置,设定地址区间和锁定状态。地址译码的逻辑可以根据仲裁是否落在设定的地址区间来选择对应的从设备,从而实现了对关键地址区间的保护。
总线内部可以通过译码器实现地址译码逻辑。总线内部的地址译码逻辑可以支持支持软件配置地址信息,根据地址仲裁来选择从设备。进一步地,地址译码逻辑支持锁定机制,只有复位总线才能解除锁定并恢复默认的地址译码逻辑。
上文结合图1和图2,详细描述了本申请的方法实施例,下面结合图3,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
参见图3,译码器300包括存储器310和处理器320。
存储器310,可用于存储地址译码逻辑。
处理器320,可用于接收访问请求,访问请求包含访问地址;如果访问地址映射到受保护地址区间,根据地址译码逻辑,将访问地址重映射到非保护地址区间,受保护地址区间内包含受保护的内容。
可选地,作为一种可能的实现方式,处理器还可用于在接收访问请求之前,根据受保护地址区间内的代码锁定地址译码逻辑。
可选地,作为一种可能的实现方式,受保护地址区间由受保护地址区间内的代码进行配置。
可选地,作为一种可能的实现方式,非保护地址区间内的内容可以进行自定义预设。
图4是本申请一实施例提供的总线系统的结构示意图。图4所示的总线系统400包括译码器410。译码器410可以实现上述译码器300的功能。
本申请实施例还提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被执行时,实现前述方法步骤。
应理解,在本申请实施例中提到的处理器可以为中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。处理器的一部分还可以包括非易失性随机存取存储器。例如,处理器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所申请的用于请求上行传输资源的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种处理访问请求的方法,其特征在于,所述方法包括:
接收访问请求,所述访问请求包含访问地址;
如果所述访问地址映射到受保护地址区间,根据译码器中的地址译码逻辑,将所述访问地址重映射到非保护地址区间,所述受保护地址区间内包含受保护的内容。
2.根据权利要求1所述的方法,其特征在于,在所述接收访问请求之前,所述方法还包括:
在接收访问请求之前,所述译码器根据所述受保护地址区间内的代码锁定所述地址译码逻辑。
3.根据权利要求2所述的方法,其特征在于,所述受保护地址区间由所述受保护地址区间内的代码进行配置。
4.根据权利要求1所述的方法,其特征在于,所述非保护地址区间内的内容可以进行自定义预设。
5.一种译码器,其特征在于,包括:
存储器,用于存储地址译码逻辑;
处理器,用于接收访问请求,所述访问请求包含访问地址;如果所述访问地址映射到受保护地址区间,根据所述地址译码逻辑,将所述访问地址重映射到非保护地址区间,所述受保护地址区间内包含受保护的内容。
6.根据权利要求5所述的译码器,其特征在于,所述处理器还用于在接收访问请求之前,根据所述受保护地址区间内的代码锁定所述地址译码逻辑。
7.根据权利要求6所述的译码器,其特征在于,所述受保护地址区间由所述受保护地址区间内的代码进行配置。
8.根据权利要求5所述的译码器,其特征在于,所述非保护地址区间内的内容可以进行自定义预设。
9.一种总线系统,其特征在于,所述总线系统包括如权利要求5-8中任一项的译码器。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1-4中任一项的方法。
CN202210467352.2A 2022-04-29 2022-04-29 处理访问请求的方法、译码器及总线系统 Pending CN114880250A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210467352.2A CN114880250A (zh) 2022-04-29 2022-04-29 处理访问请求的方法、译码器及总线系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210467352.2A CN114880250A (zh) 2022-04-29 2022-04-29 处理访问请求的方法、译码器及总线系统

Publications (1)

Publication Number Publication Date
CN114880250A true CN114880250A (zh) 2022-08-09

Family

ID=82674713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210467352.2A Pending CN114880250A (zh) 2022-04-29 2022-04-29 处理访问请求的方法、译码器及总线系统

Country Status (1)

Country Link
CN (1) CN114880250A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116049047A (zh) * 2022-12-30 2023-05-02 成都电科星拓科技有限公司 一种eeprom访问结构及访问方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116049047A (zh) * 2022-12-30 2023-05-02 成都电科星拓科技有限公司 一种eeprom访问结构及访问方法
CN116049047B (zh) * 2022-12-30 2024-04-12 成都电科星拓科技有限公司 一种eeprom访问方法

Similar Documents

Publication Publication Date Title
JP6372941B2 (ja) 共有システムリソースのセマフォベースの保護のためのシステムおよび方法
KR100303947B1 (ko) 다중프로세서시스템그리고그의초기화기능분산및자체진단시스템그리고그방법
US6480097B1 (en) Security control for personal computer
KR101010801B1 (ko) 액세스 허용을 결정하는 방법 및 장치
EP2062145B1 (en) Memory access security management
TWI467383B (zh) 存取非易失性儲存器中的安全劃分之裝置及方法以及包含非短暫性機器可存取儲存媒體之物體
US8296528B2 (en) Methods and systems for microcode patching
US8078862B2 (en) Method for assigning physical data address range in multiprocessor system
JPH06348642A (ja) マルチプル・バス・ネットワークの初期化方法及びその装置
US9223996B2 (en) Protection of memory areas
US7277972B2 (en) Data processing system with peripheral access protection and method therefor
US9916217B2 (en) Accessing hidden diagnostic registers
US20080263256A1 (en) Logic Device with Write Protected Memory Management Unit Registers
CN101364212A (zh) 访问存储器单元的方法及装置
CN112835846A (zh) 片上系统
KR19980069757A (ko) 마이크로프로세서 및 멀티프로세서 시스템
KR100928757B1 (ko) 사설 운용들을 통해 액세스되는 제어 레지스터들을 위한시스템 및 방법
CN114721493B (zh) 芯片启动方法、计算机设备及可读存储介质
CN112835845A (zh) 用于管理形成例如微控制器的片上系统的调试的方法和对应片上系统
CN114880250A (zh) 处理访问请求的方法、译码器及总线系统
WO2008030727A2 (en) Access control of memory space in microprocessor systems
US20050066073A1 (en) Peripheral device having a programmable identification configuration register
US8782367B2 (en) Memory area protection circuit
US11301566B2 (en) Firmware anti-rollback
US20200110713A1 (en) Method of access to a memory

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