掌桥专利:专业的专利平台
掌桥专利
首页

访存指令的处理方法、处理装置和数据处理设备

文献发布时间:2023-06-19 19:07:35


访存指令的处理方法、处理装置和数据处理设备

技术领域

本公开的实施例涉及一种访存指令的处理方法、处理装置和数据处理设备。

背景技术

随着互联网、物联网等的快速发展,全球联网设备数量高速增长。业务繁荣的同时也催生了多样化的安全问题。目前,应用普遍存在被破解、数据被窃取篡改等安全风险,对数据安全、数据保护、数据完整性等带来极大需求。终端芯片通常需要提供可信执行环境(Trusted Execution Environment,简称TEE),确保芯片内的系统程序、终端参数、安全数据和用户数据不被篡改或非法获取。

例如,RISC-V技术提供了两种具备安全扩展能力的属性:物理内存保护(PMP)和机器特权模式(M-mode)。PMP技术可以把处理器的访问空间划分出所需要大小的物理内存区域,不同的物理内存区域可以被授予不同的访问权限,隔离M模式(机器模式)与S模式(监督模式)/U模式(用户模式)下的内存访问,同时只有M模式才有权限配置PMP。

发明内容

本公开的至少一个实施例提供了一种访存指令的处理方法,该处理方法包括:根据所述访存指令获取要访问的目标地址;针对所述目标地址进行访存操作且并行地对所述目标地址进行内存保护检查;响应于所述内存保护检查的结果异常,停止所述访存操作。

例如,在至少一个示例的处理方法中,响应于所述内存保护检查的结果异常,中止所述访存操作,包括:响应于在确认所述内存保护检查的结果为异常时与所述访存操作所针对的操作对象就所述访存操作的访存请求握手已完成,通过访存操作取消信号通知所述操作对象取消所述访存操作。

例如,在至少一个示例的处理方法中,所述操作对象包括数据一级缓存、总线或紧耦合存储器。

例如,在至少一个示例的处理方法中,所述数据一级缓存在完成所述访

存请求握手之后且在执行标签匹配的过程中,接收所述访存操作取消信号并5停止后续操作。

例如,在至少一个示例的处理方法中,所述总线包括流水线缓冲器,所述总线在完成所述访存请求握手之后使用所述流水线缓冲器缓存所述访存操作,接收所述访存操作取消信号并停止后续操作。

例如,在至少一个示例的处理方法中,所述紧耦合存储器包括访问缓冲0器,所述紧耦合存储器在完成所述访存请求握手之后使用所述访问缓冲器缓

存所述访存操作的目标数据,且接收所述访存操作取消信号并停止后续操作。

例如,在至少一个示例的处理方法中,响应于所述访存操作是读操作,

所述读操作从所述紧耦合存储器读取的被读数据被先读入到所述访问缓冲5器中缓冲,停止所述后续操作包括:清除在所述访问缓冲器中缓存的被读数

据以取消所述读操作;或者,响应于所述访存操作是写操作,所述写操作向所述紧耦合存储器写入的被写数据被先写入到所述访问缓冲器中缓冲;停止所述后续操作包括:清除在所述访问缓冲器中缓存的被写数据以取消所述写操作。

0例如,在至少一个示例的处理方法中,响应于所述内存保护检查的结果

异常,中止所述访存操作,包括:响应于在确认所述内存保护检查的结果为异常时与所述访存操作所针对的操作对象就所述访存操作的访存请求握手未完成,禁用所述访存操作。

例如,在至少一个示例的处理方法中,禁用所述访存操作,包括:所述5内存保护检查的结果为异常产生的错误信号作用于访存请求使能信号,以指

示总线当前传输的所述目标地址无效。

例如,在至少一个示例的处理方法中,访存请求使能信号为有效且访存请求就绪信号为有效表示所述访存请求握手完成,以及所述访存请求使能信号为有效但所述访存请求就绪信号为无效表示所述访存请求握手未完成。

0本公开的至少一个实施例提供了一种处理装置,该处理装置包括:访存

单元,配置为根据访存指令获取要访问的目标地址,并且针对所述目标地址进行访存操作;物理内存保护单元,配置为与所述访存单元针对所述目标地址进行所述访存操作并行地对所述目标地址进行内存保护检查,且响应于所述内存保护检查的结果异常,停止所述访存操作。

例如,至少一个示例的处理装置还包括操作对象,所述操作对象配置为接收所述访存操作的访存请求,其中,所述物理内存保护单元进一步配置为,响应于在确认所述内存保护检查的结果为异常时与所述访存操作所针对的操作对象就所述访存操作的访存请求握手已完成,发出所述访存操作取消信号,所述操作对象进一步配置为可接收所述访存操作取消信号且在接收到所述访存操作取消信号时取消所述访存操作。

例如,在至少一个示例的处理装置中,所述操作对象包括数据一级缓存、总线或紧耦合存储器。

例如,在至少一个示例的处理装置中,所述总线包括流水线缓冲器,所述总线配置为在完成所述访存请求握手之后使用所述流水线缓冲器缓存所述访存操作,接收所述访存操作取消信号并停止后续操作。

例如,在至少一个示例的处理装置中,所述紧耦合存储器包括访问缓冲器,所述紧耦合存储器配置为在完成所述访存请求握手之后使用所述访问缓冲器缓存所述访存操作的目标数据,且接收所述访存操作取消信号并停止后续操作。

例如,在至少一个示例的处理装置中,所述紧耦合存储器进一步配置为,响应于所述访存操作是读操作,使得所述读操作从所述紧耦合存储器读取的被读数据被先读入到所述访问缓冲器中缓冲,且通过清除在所述访问缓冲器中缓存的被读数据以取消所述读操作;或者,所述紧耦合存储器进一步配置为,响应于所述访存操作是写操作,使得所述写操作向所述紧耦合存储器写入的被写数据被先写入到所述访问缓冲器中缓冲,且清除在所述访问缓冲器中缓存的被写数据以取消所述写操作。

例如,在至少一个示例的处理装置中,所述物理内存保护单元进一步配置为,响应于在确认所述内存保护检查的结果为异常时与所述访存操作所针对的操作对象就所述访存操作的访存请求握手未完成,禁用所述访存操作。

例如,在至少一个示例的处理装置中,所述物理内存保护单元进一步配置为,所述内存保护检查的结果为异常产生的错误信号作用于访存请求使能信号,以指示总线当前传输的所述目标地址无效。

本公开的至少一个实施例提供了一种数据处理设备,包括上述任一实施例所述的处理装置。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1示出了一种示例性的中央处理器(CPU)的指令流水线;

图2示出了一种示例性数据处理设备的框架示意图;

图3示出了根据本公开的至少一实施例提供的一种处理装置的示意图;

图4示出了根据本公开至少一实施例的示例性操作时序图;以及

图5示出了本公开的至少一实施例提供的一种调节指令流水线的装置的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

图1示出了一种示例性的标量中央处理器(CPU)的指令流水线,该指令流水线包括五阶段流水线,其中,每条指令可以在每个时钟周期发出并在固定的时间(例如,5个时钟周期)内执行。每条指令的执行分成5步:取指(IF)阶段1001、译码(ID)阶段1002、执行(Ex)阶段1003、访存(MEM)阶段1004和写回(WB)阶段1005。

在取指阶段1001中,从指令高速缓存器中取出指定指令。所取出的指定指令的一部分用于指定可用于执行指令的源操作数的源寄存器。在译码阶段1002中,将指令译码并生成控制逻辑,从寄存器堆中将所指定的源寄存器的内容取出源操作数。根据控制逻辑,使用所取出的内容在执行阶段1003中执行算术运算、逻辑运算。在访存阶段1004中,执行指令可读/写数据高速缓存器中的存储器。最后,在写回阶段1005中,通过执行指令而获得的值可以写回到寄存器堆中的某个寄存器中。

图2示出了一种示例性数据处理设备的框架示意图。该数据处理设备包括处理器20、总线30和系统存储40,该处理器20通过总线30访问系统存储40。

该处理器20包括取指单元21、译码及重命名单元(简称“译码单元”)22、寄存器堆(Register File)221、执行模块23、访存单元(Load/Store Unit,LSU)24、物理内存保护单元(Physical Memory Protection,PMP)25、写回单元26等组成部分,例如,处理器20根据需要还可以包括分支预测单元、发射队列、一级或多级缓存(Cache)、存储管理单元(MMU)等。

取指单元21根据取指地址(程序计数器,PC)从例如指令一级缓存(L1ICache)取出所需的指令。译码单元22对指令进行译码,如果需要还可以对指令中涉及的寄存器进行重命名操作,经过译码之后得到指令所需要的操作数寄存器索引,使用此索引从寄存器堆221中将操作数读出。指令译码之后所需要进行的计算类型已知,也从寄存器堆221获得了所需要的操作数,那么便可以对那些指令进行执行,即进行真正的运算过程。执行模块23包括各种执行单元,例如,算术逻辑单元(ALU)231、乘法/除法单元(MUL/DIV)232等,分别用于执行算术逻辑运算、乘法/除法运算等。用于访问存储器的访存指令(访存指令)是指令集(例如RISC-V指令集)中最重要的指令之一,访存(memory access)是通过访存指令将数据从存储器中读出,或者写入存储器的过程。访存指令主要由访存单元24执行。

访存指令在实际执行之前需要首先进行访存地址计算。根据不同的内核设计,可以使用执行模块23的算术逻辑单元(ALU)231进行地址计算,或者访存单元24可以包括专门的地址生成单元(Address Generation Unit,AGU)进行地址计算,例如在源操作数(基址)上加上或减去相应的偏移量得到需要访问的目标地址,源操作数(Rs)从寄存器堆221获取。处理器执行应用程序时所使用的地址是虚拟地址。操作系统在给进程分配内存时,需要把使用到的虚拟地址映射到物理地址,物理地址是真正的物理内存访问地址。程序在实际访问内存之前需要先将虚拟地址转换为物理地址。将虚拟地址转换为物理地址的过程被称为地址翻译。处理器使用存储管理单元(MMU)进行地址翻译。为了节省地址翻译的时间,为处理器核提供翻译后备缓冲器(TLB),用于存放一部分之前使用过的页表项(PTE)。例如,访存单元24通过访问TLB完成虚拟地址到物理地址的转换得到目标地址,再将相应的访存目标地址发送到物理内存保护单元25进行内存保护检查。写回单元将执行模块23运算所得到的结果或者访存单元24从存储器读取的数据写入(写回)到寄存器堆221中,以备后续操作中使用。

如上所述,PMP技术可以把处理器的访问空间划分出所需要大小的物理内存区域,不同的物理内存区域可以被授予不同的访问权限,隔离M模式(机器模式)与S模式(监督模式)/U模式(用户模式)下的内存访问。物理内存保护单元25会对接收到的访存目标地址进行检测,以确定当前的访存指令是否有效(即在当前模式下该访存地址是否被允许访问),如果无效,则会触发异常处理,如果有效,则允许访存指令被继续执行,由此访存单元24在收到物理内存保护单元25的结果之后,根据需要去访问例如数据一级缓存(L1D Cache),或者通过总线30访问系统存储40,或者在处理器20包括紧耦合存储器(TCM)的情况下直接访问TCM。即,访存单元24的操作和物理内存保护单元25的操作为彼此串行的关系,PMP检查逻辑是整个访存逻辑中的一部分。

例如,PMP 25输出的信号(例如触发异常信号)通过组合逻辑门控作用于总线使能信号上,最后传播到外部存储器中。由于访存指令是指令集中最常用的指令,也因此访存路径是处理器(或处理器核)中的关键路径之一,如何缩短访存路径的组合逻辑延时是提高处理器(特别是短流水处理器)的最高频率的关键之一。

本公开的至少一实施例提供了一种访存指令的处理方法,该处理方法包括:根据访存指令获取要访问的目标地址;针对目标地址进行访存操作且并行地对目标地址进行内存保护检查;响应于内存保护检查的结果异常,停止访存操作。

对应地,本公开的至少一实施例提供了一种处理装置,该处理装置包括访存单元和物理内存保护单元,其中,该访存单元配置为根据访存指令获取要访问的目标地址,并且针对目标地址进行访存操作;该物理内存保护单元配置为与访存单元针对目标地址进行访存操作并行地对目标地址进行内存保护检查,且响应于内存保护检查的结果异常,停止访存操作。

本公开的至少一实施例还提供了一种包括上述处理装置的数据处理设备。

本公开上述的实施例所提供的访存指令的处理方法和处理装置可以在不影响处理装置(处理器)的性能且在保留PMP功能的前提下,缩短访存路径这一关键路径的延时,可以提高处理装置的时钟频率,提高系统性能。

下面将结合具体示例对本公开的各个实施例进行说明。

图3示出了根据本公开的至少一实施例提供的一种数据处理设备的示意图,该数据处理设备包括处理装置200、总线300和系统存储400。为了清楚起见,该示意图中省略了处理装置200中的指令流水线中其他组成部分,例如,取指单元、译码单元、发射队列、执行模块、写回单元等,本公开的实施例对此不做限制。

该处理装置200包括访存单元204和物理内存保护单元205。该访存单元204配置为根据访存指令(Load/Store,L/S指令)获取要访问的目标地址,并且针对目标地址进行访存操作。例如,该访存指令可以是读(Load)指令,例如根据目标地址从缓存或内存读取数据;或者,该访存指令可以是写(Store)指令,例如根据目标地址向内存写入数据,在处理装置具有缓存的情况,根据缓存操作策略,可以先将数据写入到缓存中,之后再将数据写入到内存中,或者同时向缓存和内存写入数据等。访存单元204可以包括地址生产单元(AGU)(图中未示出)以根据访存指令得到访存地址,或者可以使用执行模块(未示出)中的算术逻辑单元(ALU)(图中未示出)以根据访存指令得到访存地址。在计算得到访存地址,根据指令的寻址方式,可以访问寄存器堆(未示出)获得源操作数(基址),然后加上或减去相应的偏移量得到需要访问的目标地址

该物理内存保护单元205配置为与访存单元204针对目标地址进行访存操作并行地对目标地址进行内存保护检查,且响应于内存保护检查的结果异常,停止上述访存操作。针对目标地址,该物理内存保护单元205执行的内存保护检查与访存单元204执行的访存操作并行地进行,在该物理内存保护单元205的内存保护检查的结果显示异常(即对于目标地址的访问被物理内存保护单元205所设置的权项所限制而无效),那么停止访存单元204的访存操作。例如,可以取消访存操作或禁用而停止该访存操作。

对应地,本公开的至少一实施例提供了一种访存指令的处理方法,该处理方法包括:访存单元204根据访存指令获取要访问的目标地址;例如物理内存保护单元205针对目标地址进行访存操作且并行地对目标地址进行内存保护检查;响应于内存保护检查的结果异常,物理内存保护单元205停止访存操作。

访存单元204与访存操作所针对的操作对象之间例如通过握手机制来执行访存操作。握手机制(也称为Valid/Ready机制)作为一种双向流控机制,可以使发送接收双方都有能力控制传输速率。例如,发送方(Master)置高Valid信号表示发送方已经将数据、地址或者控制信息发送端口上准备好并保持;接收方(slave)置高Ready信号表示接收方已经做好接收的准备;通过该机制,发送方通过Valid信号置起与否控制发送速度的同时,接收方也可以通过Ready信号的置起与否控制接收速度,反压发送方的发送速度。当双方的信息同时为高,时钟上升沿到达后,一次数据传输完成。

例如,在至少一个示例中,响应于物理内存保护单元205的内存保护检查的结果异常,中止访存操作,包括:响应于在确认内存保护检查的结果为异常时与访存操作所针对的操作对象就访存操作的访存请求握手已完成,通过访存操作取消信号(lsu_pmp_cancel信号)通知操作对象取消访存操作。

例如,在至少一个示例中,响应于物理内存保护单元205的内存保护检查的结果异常,中止访存操作,包括:响应于在确认内存保护检查的结果为异常时与访存操作所针对的操作对象就访存操作的访存请求握手未完成,禁用访存操作。

例如,在至少一个示例中,禁用访存操作,包括:内存保护检查的结果为异常产生的错误信号(lsu_pmp_err信号)作用于访存请求使能信号(a_valid信号),以指示总线当前传输的目标地址无效。

例如,在至少一个示例中,访存请求使能信号(a_valid信号)为有效且访存请求就绪信号(a_ready信号)为有效表示访存请求握手完成,以及访存请求使能信号为有效但访存请求就绪信号为无效表示访存请求握手未完成。

在本公开的实施例中,如果物理内存保护单元205的内存保护检查的结果为错误,并且访存单元204与操作对象之间的访问请求在当前拍(例如产生内存保护检查的结果的当前时钟周期)握手已完成,那么物理内存保护单元205在访存请求发出的下一拍发出lsu_pmp_cancel信号告诉操作对象(作为访存操作的从机(slave))取消该访存请求。另一方面,如果访存单元204与操作对象之间的访问请求握手在当前拍未完成,则处理装置在下一拍使用寄存后的lsu_pmp_err信号拉低访存请求使能信号,例如指示总线当前传输的目标地址无效,从而实现禁用访存请求,因此在这种情况下可以不发出lsu_pmp_cancel信号告诉操作对象(作为访存操作的从机(slave))取消该访存请求。为了发出lsu_pmp_cancel信号,因此在处理装置中配置传输该信号的通路,例如可以通过硬连接的方式实现,或者可以通过系统总线的方式实现。

图4示出了根据本公开至少一实施例的示例性操作时序图;在图4中,方框C1对应于物理内存保护单元205的内存保护检查完成时访问请求握手已完成的情形,方框C2对应于物理内存保护单元205的内存保护检查完成时访问请求握手未完成的情形。

如图4的方框C1部分所示,当访存请求使能信号(a_valid信号)有效(即为高)且访存请求就绪信号(a_ready信号)有效(即为高)时,表示访问请求握手在当前拍已完成。此时,如果PMP检查发现这笔访存操作的目标地址非法时(产生错误信号,即lsu_pmp_err为高),则不需要在当前拍通过组合逻辑拉低a_valid信号,在下一拍发出取消信号,即将lsu_pmp_cancel信号拉高,该取消信号会持续一个时钟周期,取消对于操作对象的访存操作。

如图4的方框C2部分所示,当访存请求使能信号(a_valid信号)有效(即为高)而访存请求就绪信号(a_ready信号)无效(即为低)时,表示访问请求握手在当前拍尚未完成。此时,如果PMP检查发现这笔访存操作的目标地址非法时(产生错误信号,即lsu_pmp_err信号为高),则在这种情况下处理装置在下一拍使用寄存后的错误信号自发地拉低a_valid信号,即阻止a_valid信号变高,使得访存请求握手无法完成,由此访存操作被停止,在这种情况下物理内存保护单元205可以无需发出lsu_pmp_cancel信号。

在本公开的至少一实施例中,例如,如图3所示,访存操作所针对的操作对象包括数据一级缓存211、总线300或紧耦合存储器(Tightly Coupled Memory,TCM)212。根据不同的情形,数据处理设备或处理装置中可以包括这些操作对象中的一个或多个,本公开的实施例对此不作限制。处理装置200通过总线300访问系统存储400。

处理装置通常包括一级缓存(L1 Cache),例如,一级缓存可以分为数据一级缓存和指令一级缓存,前者用于缓存数据而后者用于缓存指令。在该情形,当处理装置进行访存操作时,例如读数据时,首先访问数据一级缓存,如果在该数据一级缓存查询缺失的情形,则继续访问下一级缓存(二级缓存)或内存(系统存储),例如在写数据,可以采用多种写策略,包括直写(write through)、后写(post write)以及写回(write back)等方式。在直写方式中,处理器向缓存写入数据时,同时向内存也写一份,使得缓存和内存的数据保持一致;在后写方式中,处理器更新缓存数据时,把更新的数据写入到一个更新缓冲器,在合适的时候才将更新的数据写入内存中,对内存进行更新;在写回方式中,处理器向缓存写入数据时,更新的数据仅被写入到缓存中,之后只有当修改过的缓存行被替换时才被写到内存中。访存操作所针对的目标地址(物理地址)进入缓存时被拆分为标签(tag)、索引(index)、偏移值(offset)三部分,缓存首先使用标签在本身分组管理的缓存行中进行检索以确定能否命中。

例如,在操作对象为数据一级缓存211时,数据一级缓存(L1D Cache)211在完成访存请求握手之后且在执行标签匹配的过程中,接收访存操作取消信号并停止后续操作。当数据一级缓存收到访存请求并且完成握手下一拍进行标签(tag)读取并进行查询,在该查询操作期间物理内存保护单元205可以完成内存保护检查,如果内存保护检查的结果为错误,因此数据一级缓存可以在下一拍收到物理内存保护单元205发出的lsu_pmp_cancel信号,此时数据一级缓存会根据该取消信号取消掉后续对于访存请求的处理。如上所述,由于数据一级缓存完成访存请求握手之后的第一拍中进行标签读取和查询,所以可以在收到lsu_pmp_cancel信号之后还来得及进行访存请求的取消处理而不会产生不利后果,此时数据一级缓存对于之前的目标地址的查询结果无论是缺失(Miss)或者命中(Hit)都不会做后续操作。

例如,访存单元204可以直接通过总线300访问系统存储(内存)或系统内的其他设备,该总线300例如可以为PCI、AXI总线等。例如,总线300对访问延时不敏感,为了便于取消访存操作,总线300可以包括流水线缓冲器(pipeline buffer)301,总线300在完成访存请求握手之后使用流水线缓冲器301缓存访存操作,由此接收访存操作取消信号并停止后续操作。

例如,总线300在收到来自访存单元204发出的访存请求,在完成握手之后可以将访存请求先在流水线缓冲器(pipeline buffer)301中缓冲至少一拍,在该缓冲期间物理内存保护单元205可以完成内存保护检查,如果内存保护检查的结果为错误,则总线300可以在下一拍收到物理内存保护单元205发出的lsu_pmp_cancel信号,当收到该lsu_pmp_cancel信号时,总线300将该流水线缓冲器301中缓冲的访存请求取消而不再发给下游从机(slave),这些从机例如包括调试模块、中断处理模块、低速内存映射I/O(MMIO)接口等。

在本公开至少一个实施例中,处理装置200包括紧耦合存储器(TCM)212。TCM是一种片上存储器,紧密地耦合至处理器核,提供与高速缓存(cache)相当的高速访问性能。TCM包含在存储器的地址映射空间中,对TCM的访问使用物理地址,因此程序代码可以精确地控制什么函数或代码放在TCM中的位置。TCM没有高速缓存特有的不可预测性,通常使用TCM来存放重要例程。TCM的应用领域包括可预测的实时处理(中断处理)、避免缓存分析(加密算法)、或单纯的性能提高(处理器侧编解码)等。

在本公开至少一个实施例中,紧耦合存储器212包括访问缓冲器(access buffer)2121,紧耦合存储器212在完成访存请求握手之后使用访问缓冲器2121缓存访存操作的目标数据,且接收访存操作取消信号并停止后续操作。

例如,如果访存操作是读操作,则该读操作过程中,从紧耦合存储器212读取的被读数据被先读入到访问缓冲器2121中缓冲,在该缓冲期间物理内存保护单元205可以完成内存保护检查,如果内存保护检查的结果为错误,则紧耦合存储器212可以在下一拍收到物理内存保护单元205发出的lsu_pmp_cancel信号,当收到该lsu_pmp_cancel信号时,紧耦合存储器212清除在访问缓冲器2121中缓存的被读数据以取消读操作。

例如,如果访存操作是写操作,则该写操作过程中,向紧耦合存储器212写入的被写数据被先写入到访问缓冲器2121中缓冲,在该缓冲期间物理内存保护单元205可以完成内存保护检查,如果内存保护检查的结果为错误,则紧耦合存储器212可以在下一拍收到物理内存保护单元205发出的lsu_pmp_cancel信号,当收到该lsu_pmp_cancel信号时,紧耦合存储器212清除在访问缓冲器2121中缓存的被写数据以取消写操作。

进一步地,如果访存操作是写操作,且没有在缓冲写入数据之后的下一拍收到lsu_pmp_cancel信号,且之后没有读取TCM的操作,则在下一拍被缓冲的写入数据将被实际写入到TCM中的目标地址;或者,当在缓冲写入数据之后的下一拍对于TCM是读操作,那么该读操作会选择从TCM读取数据或者读取访问缓冲器2121中的数据。当访问缓冲器2121中的数据只是部分被读取数据,那么TCM会返回将从TCM本身读取的部分数据和从访问缓冲器2121中读取的部分数据进行合成所得到的数据。

如上,在本公开的至少一实施例的示例中,处理装置还包括用于访存操5作的操作对象,该操作对象配置为接收访存操作的访存请求;对应地,物理

内存保护单元进一步配置为,响应于在确认内存保护检查的结果为异常时与访存操作所针对的操作对象就访存操作的访存请求握手已完成,发出访存操作取消信号,操作对象进一步配置为可接收访存操作取消信号且在接收到访存操作取消信号时取消访存操作。

0在本公开的至少一实施例的示例中,操作对象包括数据一级缓存、总线

或紧耦合存储器。

在本公开的至少一实施例的示例中,总线包括流水线缓冲器,总线配置为在完成访存请求握手之后使用流水线缓冲器缓存访存操作,接收访存操作取消信号并停止后续操作。

5在本公开的至少一实施例的示例中,紧耦合存储器包括访问缓冲器,紧

耦合存储器配置为在完成访存请求握手之后使用访问缓冲器缓存访存操作的目标数据,且接收访存操作取消信号并停止后续操作。

在本公开的至少一实施例的示例中,紧耦合存储器进一步配置为,响应

于访存操作是读操作,使得读操作从紧耦合存储器读取的被读数据被先读入0到访问缓冲器中缓冲,且通过清除在访问缓冲器中缓存的被读数据以取消读

操作;或者,紧耦合存储器进一步配置为,响应于访存操作是写操作,使得写操作向紧耦合存储器写入的被写数据被先写入到访问缓冲器中缓冲,且清除在访问缓冲器中缓存的被写数据以取消写操作。

在本公开的至少一实施例的示例中,物理内存保护单元进一步配置为,5响应于在确认内存保护检查的结果为异常时与访存操作所针对的操作对象

就访存操作的访存请求握手未完成,禁用访存操作。

在本公开的至少一实施例的示例中,物理内存保护单元进一步配置为,内存保护检查的结果为异常产生的错误信号作用于访存请求使能信号,以指示总线当前传输的目标地址无效。

0本公开的上述实施例提供了一种特殊的访存操作撤销机制,例如可以在

物理内存保护检查发生错误的下一拍处理该检查错误,将PMP检查路径与访存关键路径并列,从而并行执行访存操作与PMP检查操作,从而缩短了处理装置中的访存关键路径的延时,提高时钟频率和性能。

本公开的至少一实施例提供了一种数据处理设备,包括如上任一实施例的处理装置。图5示出了根据本公开实施例的数据处理设备600的示意图。如图5所示,根据本公开实施例的数据处理设备600可以包括处理装置601以及存储器602,其可以通过总线603进行互连。

处理装置601可以根据存储在存储器602中的程序或代码执行各种动作和处理。具体地,处理装置601可以是一种集成电路芯片,具有信号的处理能力。例如,上述处理装置可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中公开的各种方法、步骤、流程及逻辑框图。例如,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是RISC-V架构或者是ARM架构等。

存储器602存储有计算机可执行指令,其中,计算机可执行指令在被处理装置601执行时实现本公开至少一实施例提供的访存指令的处理方法。存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DRRAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

例如,该数据处理设备600还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。

例如,数据处理设备可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的电子设备及硬件的组合,本公开的实施例对此不作限制。

上述数据处理设备的技术效果与上述处理装置和处理方法的技术效果相同,可以显著改善系统的性能,此处不再赘述。

对于本公开,还有以下几点需要说明:

(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。

(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。

以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。

技术分类

06120115799848