CN115827512A - 数据处理装置、方法、电子设备和存储介质 - Google Patents
数据处理装置、方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115827512A CN115827512A CN202211653496.3A CN202211653496A CN115827512A CN 115827512 A CN115827512 A CN 115827512A CN 202211653496 A CN202211653496 A CN 202211653496A CN 115827512 A CN115827512 A CN 115827512A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- domain
- domain information
- target data
- 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
Images
Abstract
本公开提供了一种数据处理装置、方法、电子设备和存储介质。数据处理装置包括:数据缓存区,配置为存储多个目标数据;域名缓存区,配置为存储多个域信息;标签缓存区,配置为存储多个标签;以及输出接口,配置为在处理器发送的数据请求所要访问的目标数据未命中时,通过向主存输出数据请求和与数据请求对应的域信息;其中,多个目标数据、多个域信息、多个标签行彼此一一对应,每个域信息指示了目标数据对应的信赖域等级。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种数据处理装置、方法、电子设备和存储介质。
背景技术
移动设备在为移动市场中金融交易服务提供便利的同时,也因为海量的互联关系带来了安全隐患。可信执行环境(Trusted Execution Environment,TEE)是一种可以与移动设备的富操作系统(Rich Operating System,Rich OS)并行运行的独立执行环境。TEE可以为Rich OS内的高敏感性操作提供可靠的安全环境,其中域信息为实现TEE环境提供重要保证。
但现有的域信息机制在一些架构中难以实现。在一些示例性的架构中,域信息与缓存数据的存储方式会导致难以管理多核系统中域信息的交互过程,也会使得整个操作系统的安全管理都变得繁冗且复杂。
发明内容
本公开提供了一种数据处理装置、方法、电子设备和存储介质。
根据本公开的一个方面,本公开提出了一种数据处理装置,包括:数据缓存区,配置为存储多个目标数据;域名缓存区,配置为存储多个域信息;标签缓存区,配置为存储多个标签;以及输出接口,配置为在处理器发送的数据请求所要访问的目标数据未命中时,通过向主存输出数据请求和与数据请求对应的域信息;其中,多个目标数据、多个域信息、多个标签彼此一一对应,每个域信息指示了对应的目标数据对应的信赖域等级。
例如,域名缓存区和标签缓存区具有相同的缓存结构和遵循相同的控制逻辑。
例如,的缓存还包括:缓存控制器,配置为:响应于处理器发送的数据请求,获取与数据请求对应的域信息;在确定数据请求要访问的目标数据在缓存中未命中的情况下,通过输出接口向主存发送数据请求和与数据请求对应的域信息;从主存中获取与目标数据对应域信息;根据与数据请求对应的域信息和与目标数据对应域信息,确定数据请求对应的信赖域等级和目标数据对应信赖域等级;以及在确定数据请求对应的信赖域等级高于或等于目标数据对应信赖域等级的情况下,将目标数据和与数据请求对应的域信息关联地写入数据缓存区和域名缓存区。
例如,缓存控制器还配置为:在数据缓存区中确定缓存行;在确定缓存行内存储的历史数据与主存内存储的数据不同的情况下,从缓存行内读取历史数据,从域名缓存区内读取与历史数据对应的域信息;将历史数据和与历史数据对应的域信息写入主存;以及将目标数据写入缓存行,将与数据请求对应的域信息关联地写入域名缓存区,以盖写历史数据和与历史数据对应的域信息。
例如,缓存控制器还配置为:在确定数据请求所要访问的目标数据在缓存中命中的情况下,从数据缓存区中确定目标数据;从域名缓存区中读取与目标数据对应的域信息;在确定与目标数据对应的域信息与数据请求对应的域信息不同的情况下,根据与数据请求对应的域信息和与目标数据对应域信息,确定数据请求对应的信赖域等级和目标数据对应信赖域等级;以及在确定数据请求对应的信赖域等级高于或等于目标数据对应信赖域等级的情况下,在域名缓存区中,将与目标数据对应的域信息更新为与数据请求对应的域信息。
例如,缓存控制器还配置为:获取目标数据在主存中的存储地址;以及将存储地址以标签的形式写入标签缓存区。
例如,缓存控制器还配置为:响应于处理器发送的数据请求,获取数据请求所要访问的目标数据的存储地址;以及在确定标签缓存区不包括存储地址的情况下,根据存储地址和与数据请求对应的域信息,通过输出接口从主存读取目标数据。
根据本公开实施例的另一方面,提供了一种电子设备,包括根据本公开实施例的数据处理装置。
根据本公开实施例的另一方面,提供了一种数据处理方法,应用于本公开的数据处理装置,包括:响应于处理器发送的数据请求,获取与数据请求对应的域信息,域信息指示了数据请求所要访问的目标数据对应的信赖域等级;在确定数据请求要访问的目标数据在缓存中未命中的情况下,向主存发送数据请求和与数据请求对应的域信息;从主存中获取与目标数据对应域信息;根据与数据请求对应的域信息和与目标数据对应域信息,确定数据请求对应的信赖域等级和目标数据对应信赖域等级;以及在确定数据请求对应的信赖域等级高于或等于目标数据对应信赖域等级的情况下,将目标数据和与数据请求对应的域信息关联地写入数据缓存区和域名缓存区。
根据本公开实施例的另一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行根据本公开实施例提供的数据处理方法。
根据本公开实施例的另一方面,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据本公开实施例提供的数据处理方法。
根据本公开实施例,通过在数据处理装置中设置分离的域名缓存区和数据缓存区,分别对数据读写过程中产生的目标数据和域信息进行独立存储,实现了域信息与缓存的解耦,降低了域信息管理的复杂度。
附图说明
通过下面结合附图说明本公开实施例,将使本公开实施例的上述及其它目的、特征和优点更加清楚。应注意,贯穿附图,相同的元素由相同或相近的附图标签来表示。图中:
图1示意性示出了根据本公开实施例的数据处理装置、方法、电子设备和存储介质的应用场景图;
图2示意性示出了根据本公开实施例的数据处理装置的结构示意图;
图3示意性示出了根据本公开另一实施例的数据处理装置的结构示意图;
图4A示意性示出了根据本公开实施例的目标数据写入缓存行的示意图;
图4B示意性示出了根据本公开另一实施例的目标数据写入缓存行的示意图;
图5示意性示出了根据本公开实施例的数据处理方法的流程图;
图6示意性示出了根据本公开另一实施例的数据处理方法的流程图;
图7示意性示出了根据本公开实施例的适于实现数据处理装置的电子设备的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现数据处理方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
图1示意性示出了根据本公开实施例的缓存、数据处理方法、电子设备和存储介质的应用场景图。
如图1所示,计算机的内存包括主存(main memory)和缓存(Cache)。
处理器(单核CPU或多核CPU的处理内核)用于从内存中读取数据和指令,以根据指令对数据执行相关操作。处理器220也可以将从外部网络接收到的数据和指令写入内存。
缓存为高速缓冲存储器,比主存的读写速度快。相比于主存,缓存的数据读写速度与CPU的运算速度更相近。因此,CPU对于主存的访问速度相对较慢,利用缓存弥补主存访问速度慢的缺陷,可以提高内存访问速度。
例如,在如图1所示的计算机系统中,采用多级缓存,例如通常采用一级缓存(L1Cache,也称为L1缓存)、二级缓存(L2 Cache,也称为L2缓存)、三级缓存(L3 Cache,也称为L3缓存)。
L1 Cache是CPU私有的,每个CPU都有一个L1 Cache,例如在部分CPU中,L1 Cache可以进一步划分为数据专用的L1 Cache(L1D Cache)和指令专用的L1 Cache(L1I Cache)。在一个计算机集群(例如集群0)内的所有CPU(例如CPU0和CPU1)可以共享一个L2 Cache。例如,L2 Cache不区分指令和数据,都可以缓存。L3 Cache通过总线和主存相连。例如,L3Cache不区分指令和数据,都可以缓存。
在L1 Cache、L2 Cache和L3 Cache之中,L1 Cache的速度最快,L2 Cache其次,L3Cache再次。
当计算机执行程序,需要读取数据和指令时,CPU会考虑优先从缓存读取这些数据和指令。如果缓存存储了这些数据和指令,CPU就优先从缓存中读取。如果缓存没有存储这些数据和指令,CPU再访问主存,以从主中读取这些数据和指令。
例如,在缓存中,CPU会先到L1 Cache中寻找需要的数据或指令,如果在L1 Cache中没有找到,则会到L2 Cache中寻找,如果仍然没有找到,则会到L3 Cache中寻找。若在L1Cache、L2 Cache和L3 Cache中均没有找到所需要的数据,CPU会再到主存中寻找。当从非L1Cache的某一级缓存或内存获取了数据或指令时,除了返回给CPU供使用之外,还会将该数据或指令填充到在前的缓存中以暂存。本公开的实施例非限制于CPU内缓存的设置方式。
通常,缓存的容量较小,缓存内存储的内容只是主存内存储的内容的一个子集,且缓存与主存的数据交换是以块为单位的。为了把主存中的数据缓存到缓存中,例如可以使用某种函数把主存地址定位到缓存中,这称为地址映射。在将主存中的数据按这种映射关系缓存到缓存中后,CPU执行程序时,会将程序中的主存地址变换成缓存地址。不同类型的缓存的地址映射方式通常有直接映射、全相联和组相联映射。
虽然缓存的容量相较于主存来说较小,但是速度相较于主存来说却快得多,因此缓存的主要功能是用来存储近期CPU可能需要频繁访问到的数据。这样CPU便可以直接到缓存中进行数据读取,而无需频繁地访问速度较慢的主存,以此来提高CPU对内存的访问速度,从而提高计算机执行程序的效率。
缓存的基本单位是Cache Line,可称之为缓存块或缓存行。与缓存分成多个缓存块类似,主存中存储的数据也进行了类似划分。内存中的划分出来的数据块称为内存块。通常,一个内存块的大小可以为64字节,一个缓存块的大小也可以为64字节。可以理解的是,实际应用中,还可以将内存块和缓存行的大小设置为其他值,例如32-256字节,仅需保证内存块的大小与缓存块的大小相同即可。
在CPU与内存建立连接后,存在一定的安全隐患。例如,CPU可以通过欺骗生物识别技术来破解用户手机的密码锁,以利用系统漏洞窃取用户手机内存内的用户隐私数据。CPU还可以通过不安全的连接截获内存所处计算机设备和云之间的传输数据等。
为保证计算机执行程序时的安全性,在CPU读取数据和指令的过程中,还可以获取CPU的域信息。每个域都设置有安全策略以及与其他域之间的安全信任关系。域之间相互访问需要建立信任关系,信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,两个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。
例如,第五代精简指令集计算机(Reduced Instruction Set Computer,RISC-V)是一种新型精简指令集架构。在RISC-V架构上部署TEE环境,使得富操作系统在TEE环境下能够执行各种高敏感操作。域信息可以为TEE环境提供支持。
在本公开实施例中,在CPU对内存进行数据和指令的读写操作时,将CPU的域信息与数据及指令进行关联,使得数据和指令能够具有标识安全性的标识符,提高数据传输过程的安全性。
图2示意性示出了根据本公开实施例的数据处理装置的结构示意图。
如图2所示,数据处理装置200包括域名缓存区201、数据缓存区202、标签缓存区203和输出接口204。
域名缓存区201、数据缓存区202和标签缓存区203可以组成数据处理装置200的缓存。例如,域名缓存区201、数据缓存区202和标签缓存区203可以为随机存取存贮器(RandomAccess Memory,RAM)。域名缓存区201为Domain ID RAM,数据缓存区202为Data RAM,标签缓存区203为Tag RAM。
域名缓存区201和标签缓存区203的缓存结构可以均相同,遵循相同的控制逻辑。例如,域名缓存区201和标签缓存区203遵循相同的读写逻辑。域名缓存区Domain ID RAM201配置为存储多个域信息。数据缓存区Data RAM 202配置为存储多个目标数据。标签缓存区TagRAM 203配置为存储多个标签。多个目标数据、多个域信息和多个标签彼此一一对应。
域名缓存区201中的每个域信息表示数据缓存区202中目标数据对应的信赖域等级。
输出接口204配置为在处理器发送的数据请求所要访问的目标数据未命中时,通过向主存输出数据请求和与数据请求对应的域信息。
例如,与数据请求对应的域信息为发送数据请求的处理器的域信息。域信息可以为域标识符(Domain ID),Domain ID可以用来标识和区分不同的域。通过处理器的DomainID可以确定处理器当前时刻发送的数据请求的安全性。
处理器的域信息与发送数据请求时所处的TEE环境相关。例如,当处理器发送数据请求时所处的当前TEE环境的安全等级越高,当前与数据请求对应的域信息表示的信赖域等级越高。
例如,数据请求包括向内存写入数据的请求和从内存中读取数据的请求。例如,处理器发送读取目标数据的请求,请求包括目标数据在主存的存储地址。缓存存储的数据携带有索引Index,Index指示该数据在主存的存储地址。根据存储地址,在数据缓存区202中查找是否存储有该存储地址的目标数据。在确定数据缓存区202中未存储该存储地址的目标数据的情况下,可认为未命中(Cache Miss)。随后通过输出接口204向主存输出数据请求,从主存的该存储地址中读取目标数据。
在本公开实施例中,标签缓存区Tag RAM 203内存储的标签由目标数据在主存中的存储地址转换得到。
域名缓存区201、数据缓存区202和标签缓存区303为彼此独立的缓存区域。域名缓存区201、数据缓存区202和标签缓存区203分别用于存储对应的数据,可以实现对不同数据的独立管理,实现域名缓存区201和数据缓存区202的解耦。信息缓存区201内的Domain ID、数据缓存区202内的目标数据和标签缓存区203内的Tag也相互关联。例如,每个目标数据对应一个Domain ID和一个Tag。Tag表征目标数据的在主存的存储地址,以通过Tag在缓存中确定目标数据。Domain ID表征目标数据的安全性,以通过Domain ID确保安全传输目标数据。
图3示意性示出了根据本公开另一实施例的数据处理装置的结构示意图。
如图3所示,数据处理装置300包括域名缓存区301、数据缓存区302、标签缓存区303、输出接口304和缓存控制器305。
在本公开实施例中,域名缓存区301、数据缓存区302、标签缓存区303和输出接口304分别与前文实施例的域名缓存区201、数据缓存区202、标签缓存区203和输出接口204类似。为了简明,本公开此处不再赘述。
缓存控制器305配置为:响应于处理器发送的数据请求,获取与数据请求对应的域信息;在确定数据请求要访问的目标数据在缓存中未命中的情况下,通过输出接口304向主存发送数据请求和与数据请求对应的域信息;从主存中获取与目标数据对应域信息;根据与数据请求对应的域信息和与目标数据对应域信息,确定数据请求对应的信赖域等级和目标数据对应信赖域等级;以及在确定数据请求对应的信赖域等级高于或等于目标数据对应信赖域等级的情况下,将目标数据和与数据请求对应的域信息关联地写入数据缓存区302和域名缓存区301。
例如,处理器发送数据读取请求,此时,与数据读取请求对应的域信息Domain ID为“1”。该数据请求在缓存中未命中的情况下,缓存控制器305通过输出接口304向主存发送数据请求和与数据请求对应的域信息。主存中存储的目标数据对应的域信息Domain ID为“2”。缓存控制器305根据Domain ID“1”和Domain ID“2”确定数据请求对应的信赖域等级为1,目标数据对应信赖域等级为2。因此,数据请求对应的信赖域等级高于目标数据对应信赖域等级。
在确定数据请求对应的信赖域等级高于目标数据对应信赖域等级的情况下,处理器可以从主存中读取目标数据,缓存控制器305将目标数据和与数据请求对应的域信息关联地写入数据缓存区302和域名缓存区301。
当处理器再次发送的数据请求所要访问该目标数据时,在确定此时处理器的域信息所指示的信任域等级高于域名缓存区301对应存储的域信息指示的信任域等级的情况下,处理器可以直接从数据缓存区302中读取该目标数据。
缓存控制器305配置为:在将目标数据和与数据请求对应的域信息关联地写入数据缓存区302和域名缓存区301时,还获取目标数据在主存中的存储地址;以及将存储地址以标签的形式写入标签缓存区。
在本公开实施例中,缓存控制器305还配置为:响应于处理器发送的数据请求,获取数据请求所要访问的目标数据的存储地址;以及在确定标签缓存区不包括存储地址的情况下,根据存储地址和与数据请求对应的域信息,通过输出接口304从主存读取目标数据。
例如,处理器发送数据请求后,缓存控制器305获取目标数据的存储地址,将存储地址转换为标签,并利用数据缓存区301与标签缓存区303之间的对应存储关系,从数据缓存区301中获取与该标签对应的目标数据。
在确定标签缓存区303不包括该标签的情况下,根据域信息,确定与该数据请求对应的信任域等级和主存中位于该存储地址的目标数据对应的信任域等级。在确定该数据请求对应的信任域等级高于或等于主存中位于该存储地址的目标数据对应的信任域等级的情况下,缓存控制器305通过输出接口304从主存读取目标数据。
根据本公开实施例,为确保对域信息的缓存过程不影响对目标数据的缓存,在不改变数据处理装置的缓存中目标数据的原始缓存区的情况下,增加域名缓存区。通过两个独立的缓存区分别存储域信息和目标数据,实现对数据缓存区和域名缓存区的解耦,在两个缓存区内对域信息和目标数据独立管理,降低了缓存内对各类数据管理的复杂度。此外,使用具有与数据缓存区相同控制逻辑的域名缓存区,可以降低对域信息的管理难度。
结合图3、图4A和图4B对将目标数据写入缓存行的过程进行示意性说明。
图4A示意性示出了根据本公开实施例的目标数据写入缓存行的示意图。
结合图3,缓存控制器305配置为:在数据缓存区中确定缓存行;在确定缓存行内存储的历史数据与主存内存储的数据不同的情况下,从缓存行内读取历史数据,从域名缓存区内读取与历史数据对应的域信息;将历史数据和与历史数据对应的域信息写入主存;以及将目标数据写入缓存行,将与数据请求对应的域信息关联地写入域名缓存区,以盖写历史数据和与历史数据对应的域信息。
如图4A所示,数据处理装置包括域名缓存区401、数据缓存区402和标签缓存区403。
数据缓存区402包括多个缓存行,缓存行用于存储数据。例如,数据缓存区402包括cache line1、cache line2、cache line3和cache line4。主存404的数据可以被写入数据缓存区402的缓存行中。主存404包括多个存储地址。例如,存储地址包括“0000”、“0001”、“0010”、“0011”、“0100”、“0101”、“0110”和“0111”。
存储地址可以被转换为索引Index和标签数据Tag。例如,存储地址“0001”的后两位数据“01”可以被转化为Index,前两位数据“00”可以被转化为Tag。
例如,数据缓存区402的cache line1用于存储主存404的存储地址“0000”和“0100”的数据,Index为“00”。数据缓存区402的cache line2用于存储主存404的存储地址“0001”和“0101”的数据,Index为“01”。数据缓存区402的cache line3用于存储主存404的存储地址“0010”和“0110”的数据,Index为“10”。数据缓存区402的cache line4用于存储主存404的存储地址“0011”和“0111”的数据,Index为“11”。
结合图3和图4A,在接收到的数据请求后,确定需要读取主存404中存储地址为“0010”的目标数据。根据存储地址“0010”确定索引为“10”,从而确定需要从数据缓存区402的cache line3中读取数据。由于cache line3用于存储地址为“0010”和“0110”的数据,可以在标签缓存区域403确定与cache line3对应Tag。在确定标签缓存区域403内存储的与cache line3对应Tag为“01”的情况下,表明标签缓存区域403内存储与cache line3对应Tag“01”与数据请求中存储地址指示的Tag“00”不相同,可认为发生Cache Miss。
在本公开实施例中,在确定Cache Miss的情况下,缓存控制器305将此时cacheline3存储的历史数据与主存404的存储地址“0110”的数据进行比较,在确定cache line3存储的历史数据与主存404的存储地址“0110”的数据不相同的情况下,确定cache line3的状态为脏dirty。
在确定cache line3的状态为脏dirty的情况下,缓存控制器305读取cache line3存储的历史数据以及域名缓存区401存储的与历史数据对应的域信息,将历史数据和与历史数据对应的域信息写入主存404的存储地址“0110”中。
由于cache line3的状态为脏dirty,cache line3内的数据为需要写入主存404存储地址“0110”的最新数据,此时主存404存储地址“0110”的数据为暂未更新的数据。通过将cache line3内的数据为写入主存404存储地址“0110”,避免该数据丢失。
在将cache line3内的数据写入主存404存储地址“0110”后,处理器从主存404的存储地址“0010”中读取目标数据,缓存控制器305将目标数据写入cache line3,同时将数据请求对应的域信息关联地写入域名缓存区401,以盖写历史数据和与历史数据对应的域信息。
根据本公开实施例,在接收到数据请求,并确定发生Cache Miss的情况下,可以从主存中读取与数据请求对应的目标数据,并将目标数据与对应的域信息关联地写入在数据缓存区和域名缓存区中,以便后续发送该数据请求时,处理器能够根据域信息从数据缓存区中快速且安全的读取该目标数据。此外,在将目标数据和域信息写入数据缓存区和域名缓存区之前,确定缓存行的状态,将状态为dirty的缓存行内的数据写入主存,避免在将目标数据写入缓存行后,造成缓存行内原本存储的数据因被盖写而丢失。
图4B示意性示出了根据本公开另一实施例的目标数据写入缓存行的示意图。
结合图3,缓存控制器305配置为:在确定数据请求所要访问的目标数据在缓存中命中的情况下,从数据缓存区中确定目标数据;从域名缓存区中读取与目标数据对应的域信息;在确定与目标数据对应的域信息与数据请求对应的域信息不同的情况下,根据与数据请求对应的域信息和与目标数据对应域信息,确定数据请求对应的信赖域等级和目标数据对应信赖域等级;以及在确定数据请求对应的信赖域等级高于或等于目标数据对应信赖域等级的情况下,在域名缓存区中,将与目标数据对应的域信息更新为与数据请求对应的域信息
如图4B所示,数据处理装置包括域名缓存区401、数据缓存区402和标签缓存区403。数据缓存区402包括多个缓存行,缓存行用于存储数据。例如,缓存行包括cacheline1、cache line2、cache line3和cache line4。数据请求405包括标签、索引和发起数据请求的处理器的域信息。
结合图3和图4B,例如,在接收到的数据请求后,可以根据索引确定需要优先从数据缓存区402的cache line4中读取数据,并在标签缓存区域403中确定与cache line4对应的标签。将数据请求405中的标签与标签缓存区域403内存储的cache line4对应标签进行比较,在确定标签缓存区域403内存储的标签与数据请求405中的标签相同的情况下,可认为缓存命中(Cache Hit)。
在本公开实施例中,在确定Cache Hit的情况下,还需要确定域名缓存区401中确定cache line4对应的域信息与发起数据请求的对象的域信息是否相同。
例如,如果域名缓存区401中的域信息与数据请求405中的域信息相同,则可以认为该处理器当前的信任域等级与数据缓存区402中目标数据对应的信任域等级相同。因此,此时处理器可以直接从cache line4中读取目标数据。
例如,如果域名缓存区401中的域信息与数据请求405中的域信息不同,则缓存控制器305根据数据请求405中的域信息和域名缓存区401中的域信息,确定处理器当前的信任域等级与数据缓存区402中目标数据对应的信任域等级。在确定处理器当前的信任域等级高于或等于数据缓存区402中目标数据对应的信任域等级的情况下,处理器从cacheline4中读取目标数据,缓存控制器305在域名缓存区401中,将与目标数据对应的域信息更新为与数据请求405中的域信息。
根据本公开实施例,在接收到数据请求,并确定发生Cache Hit的情况下,仅需要对域名缓存区内的域信息进行更新,以便后续发送该数据请求的处理器能够从缓存中快速且安全的读取该目标数据。
图5示意性示出了根据本公开实施例的数据处理方法的流程图。
如图5所示,该实施例的数据处理方法包括操作S510~操作S550。数据处理方法可以应用于本公开实施例提供的数据处理装置。
在操作S510,响应于处理器发送的数据请求,获取与数据请求对应的域信息。
域信息指示了数据请求所要访问的目标数据对应的信赖域等级。
在操作S520,在确定数据请求要访问的目标数据在缓存中未命中的情况下,向主存发送数据请求和与数据请求对应的域信息。
在操作S530,从主存中获取与目标数据对应域信息。
在操作S540,根据与数据请求对应的域信息和与目标数据对应域信息,确定数据请求对应的信赖域等级和目标数据对应信赖域等级。
在操作S550,在确定数据请求对应的信赖域等级高于或等于目标数据对应信赖域等级的情况下,将目标数据和与数据请求对应的域信息关联地写入数据缓存区和域名缓存区。
在本公开实施例中,操作S510~操作S550可由前文实施例中的数据处理装置300执行,与数据处理装置300执行的操作类似。为了简明本公开不再赘述。
图6示意性示出了根据本公开另一实施例的数据处理方法的流程图。
如图6所示,该实施例的数据处理方法包括操作S601~操作S615。
在操作S601,接收数据请求。
在操作S602,确定数据请求为读请求或写请求。若是读请求,执行操作S603。若是写请求,执行操作S610。
在操作S603,读请求在缓存是否命中。若是,执行操作S604。若否,执行操作S605。
在操作S604,使用域信息替换与目标数据对应的原域信息。
在操作S605,确定缓存中的缓存行。
在操作S606,确定缓存行是否dirty。若是,执行操作S607。若否,执行操作S608
在操作S607,将缓存行内数据写入主存。
在操作S608,将域信息和从主存读取的目标数据写入缓存。
在操作S609,将目标数据返回处理器。
在操作S610,写请求在缓存是否命中。若是,执行操作S611。若否,执行操作S612。
在操作S611,使用域信息替换与目标数据对应的原域信息。
在操作S612,确定缓存中的缓存行。
在操作S613,确定缓存行是否dirty。若是,执行操作S614。若否,执行操作S615。
在操作S614,将缓存行内数据写入主存,将域信息写入缓存。
在操作S615,将目标数据写入缓存行。
在本公开实施例中,在确定处理器发起的数据请求为读请求的情况下,执行操作S603和S609。在确定处理器发起的数据请求为写请求的情况下,执行操作S610和S615。
在本公开实施例中,缓存包括数据缓存区、域名缓存区和标签缓存区。
在数据请求为读请求时,在确定标签缓存区不包括数据请求所要访问的目标数据的存储地址的情况下,可认为发生Cache Miss,从而无法从缓存的数据缓存区中读取该目标数据。因此,从主存中读取与数据请求对应的目标数据,并将目标数据与写入缓存的数据缓存区,以便后续处理器能够再次从缓存中快速且安全的读取该目标数据。在将从主存中读取的数据写入缓存的缓存行后,可将该缓存行的状态记为干净clean。
在读取目标数据后,可以将目标数据返回给发送请求的处理器。目标数据可以被发送至该处理器与缓存进行数据传输的总线中。缓存与总线连接的接口可以作为域信息的输出接口。目标数据在返回处理器后,域信息可以发送到总线中。域信息在主存、缓存和总线之间传输,由此可以减少处理器与域信息之间的交互,降低了处理器的多个内核之间关于域信息的交互管理难度。
在数据请求为写请求时,在确定标签缓存区不包括数据请求所要访问的目标数据的存储地址的情况下,可认为发生Cache Miss,即缓存中不存在可以该目标数据。因此,从主存中获取该目标数据,并将该目标数据写入缓存。
在确定将目标数据仅写入缓存的缓存行的情况下,可将该缓存行的状态记为脏dirty。在需要对该缓存行内的数据进行替换时,将该缓存行内的目标数据写入主存,避免该目标数据丢失。
在本公开实施例中,需要根据处理器发送数据请求时的域信息执行数据请求。域信息与处理器发送数据请求时所处的TEE环境相关。例如,在处理器处于安全等级为1的TEE环境下,向主存或缓存中写入了目标数据,并将域信息Domain ID“1”关联地写入主存或缓存中。当处理器处于TTE环境变为安全等级为2的TEE环境时,处理器发送从主存或缓存中读取该目标数据的数据请求时,由于数据请求对应的域信息Domain ID“2”指示的信任域等级低于域信息Domain ID“1”指示的信任域,因此处理器不能从主存或缓存中读取该目标数据。当处理器处于TTE环境变为安全等级为0的TEE环境时,处理器发送从主存或缓存中读取该目标数据的数据请求时,由于数据请求对应的域信息Domain ID“0”指示的信任域等级高于域信息Domain ID“1”指示的信任域,因此处理器可以从主存或缓存中读取该目标数据。
图7示意性示出了根据本公开实施例的适于实现数据处理装置的电子设备的结构框图。
如图7所示,该实施例的电子设备700包括数据处理装置200。
根据本公开的实施例,数据处理装置200的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,数据处理装置200的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,数据处理装置200的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现数据处理方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分708加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括前文实施例描述的主存和缓存。主存和缓存用于存储目标数据和域信息。处理器801根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序对主存和/或缓存内的目标数据及域信息执行各种适当的动作和处理。根据本公开的实施例,前文实施例描述的主存及缓存与处理器810也可以位于不同的电子设备。处理器801根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序对主存和/或缓存内的目标数据及域信息执行各种适当的动作和处理。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的数据处理方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种数据处理装置,包括:
数据缓存区,配置为存储多个目标数据;
域名缓存区,配置为存储多个域信息;
标签缓存区,配置为存储多个标签;以及
输出接口,配置为在处理器发送的数据请求所要访问的目标数据未命中时,通过向主存输出所述数据请求和与所述数据请求对应的域信息;
其中,所述多个目标数据、所述多个域信息和所述多个标签彼此一一对应,每个域信息指示了目标数据对应的信赖域等级。
2.根据权利要求1所述的数据处理装置,其中,
所述域名缓存区和所述标签缓存区具有相同的缓存结构和遵循相同的控制逻辑。
3.根据权利要求1或2所述的数据处理装置,其中,还包括:
缓存控制器,配置为:
响应于处理器发送的数据请求,获取与所述数据请求对应的域信息;
在确定所述数据请求要访问的目标数据在缓存中未命中的情况下,通过所述输出接口向主存发送所述数据请求和与所述数据请求对应的域信息;
从所述主存中获取与所述目标数据对应域信息;
根据所述与所述数据请求对应的域信息和所述与所述目标数据对应域信息,确定所述数据请求对应的信赖域等级和所述目标数据对应信赖域等级;以及
在确定所述数据请求对应的信赖域等级高于或等于所述目标数据对应信赖域等级的情况下,将所述目标数据和所述与所述数据请求对应的域信息关联地写入所述数据缓存区和所述域名缓存区。
4.根据权利要求3所述的数据处理装置,其中,所述缓存控制器还配置为:
在所述数据缓存区中确定缓存行;
在确定所述缓存行内存储的历史数据与所述主存内存储的数据不同的情况下,从所述缓存行内读取所述历史数据,从所述域名缓存区内读取与所述历史数据对应的域信息;
将所述历史数据和与所述历史数据对应的域信息写入所述主存;以及
将所述目标数据写入所述缓存行,将与所述数据请求对应的域信息关联地写入所述域名缓存区,以盖写所述历史数据和与所述历史数据对应的域信息。
5.根据权利要求1所述的数据处理装置,其中,所述缓存控制器还配置为:
在确定所述数据请求所要访问的目标数据在缓存中命中的情况下,从所述数据缓存区中确定目标数据;
从所述域名缓存区中读取与所述目标数据对应的域信息;
在确定与所述目标数据对应的域信息与所述数据请求对应的域信息不同的情况下,根据与所述数据请求对应的域信息和与所述目标数据对应域信息,确定所述数据请求对应的信赖域等级和所述目标数据对应信赖域等级;以及
在确定所述数据请求对应的信赖域等级高于或等于所述目标数据对应信赖域等级的情况下,在所述域名缓存区中,将与所述目标数据对应的域信息更新为与所述数据请求对应的域信息。
6.根据权利要求1所述的数据处理装置,其中,所述缓存控制器还配置为:
获取所述目标数据在主存中的存储地址;以及
将所述存储地址以标签的形式写入所述标签缓存区。
7.根据权利要求6所述的数据处理装置,其中,所述缓存控制器还配置为:
响应于处理器发送的数据请求,获取所述数据请求所要访问的目标数据的存储地址;以及
在确定所述标签缓存区不包括所述存储地址的情况下,根据所述存储地址和与所述数据请求对应的域信息,通过所述输出接口从所述主存读取所述目标数据。
8.一种电子设备,包括:
根据权利要求1-7任一项所述的数据处理装置。
9.一种数据处理方法,应用于权利要求1所述的数据处理装置,包括:
响应于处理器发送的数据请求,获取与所述数据请求对应的域信息,所述域信息指示了所述数据请求所要访问的目标数据对应的信赖域等级;
在确定所述数据请求要访问的目标数据在缓存中未命中的情况下,向主存发送所述数据请求和与所述数据请求对应的域信息;
从所述主存中获取与所述目标数据对应域信息;
根据所述与所述数据请求对应的域信息和所述与所述目标数据对应域信息,确定所述数据请求对应的信赖域等级和所述目标数据对应信赖域等级;以及
在确定所述数据请求对应的信赖域等级高于或等于所述目标数据对应信赖域等级的情况下,将所述目标数据和所述与所述数据请求对应的域信息关联地写入所述数据缓存区和所述域名缓存区。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求9中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211653496.3A CN115827512A (zh) | 2022-12-20 | 2022-12-20 | 数据处理装置、方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211653496.3A CN115827512A (zh) | 2022-12-20 | 2022-12-20 | 数据处理装置、方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827512A true CN115827512A (zh) | 2023-03-21 |
Family
ID=85517542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211653496.3A Pending CN115827512A (zh) | 2022-12-20 | 2022-12-20 | 数据处理装置、方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827512A (zh) |
-
2022
- 2022-12-20 CN CN202211653496.3A patent/CN115827512A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2483347C2 (ru) | Установка, способ и система кэширования | |
US10169247B2 (en) | Direct memory access between an accelerator and a processor using a coherency adapter | |
US9176888B2 (en) | Application-managed translation cache | |
CN108536617B (zh) | 缓存管理方法、介质、系统和电子设备 | |
CN109656886B (zh) | 基于键值对的文件系统实现方法、装置、设备和存储介质 | |
US11048422B2 (en) | Method, device, and computer readable storage medium for allocating access rights to data among storage processors | |
US8352646B2 (en) | Direct access to cache memory | |
CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
US10860480B2 (en) | Method and device for cache management | |
US9195658B2 (en) | Managing direct attached cache and remote shared cache | |
CN112346647A (zh) | 数据存储方法、装置、设备和介质 | |
US9734089B2 (en) | Memory management unit and method for accessing data | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN111782614B (zh) | 数据访问方法、装置、设备及存储介质 | |
US11010307B2 (en) | Cache management | |
US20200349186A1 (en) | Method, apparatus and computer program product for managing metadata of storage object | |
US10649902B2 (en) | Reducing translation latency within a memory management unit using external caching structures | |
CN115827512A (zh) | 数据处理装置、方法、电子设备和存储介质 | |
US20220385596A1 (en) | Protecting integration between resources of different services using service-generated dependency tags | |
US10372622B2 (en) | Software controlled cache line replacement within a data property dependent cache segment of a cache using a cache segmentation enablement bit and cache segment selection bits | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
US9239792B2 (en) | Sharing cache in a computing system | |
US20230315644A1 (en) | Castout handling in a distributed cache topology | |
US11321495B2 (en) | Anomalous cache coherence transaction detection in a heterogeneous system | |
US11086517B2 (en) | Page frame security |
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 |