CN116909943B - 一种缓存访问方法、装置、存储介质及电子设备 - Google Patents

一种缓存访问方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116909943B
CN116909943B CN202311156117.4A CN202311156117A CN116909943B CN 116909943 B CN116909943 B CN 116909943B CN 202311156117 A CN202311156117 A CN 202311156117A CN 116909943 B CN116909943 B CN 116909943B
Authority
CN
China
Prior art keywords
type
loading instruction
bus
instruction
level cache
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.)
Active
Application number
CN202311156117.4A
Other languages
English (en)
Other versions
CN116909943A (zh
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.)
Feiteng Technology Guangzhou Co ltd
Phytium Technology Co Ltd
Original Assignee
Feiteng Technology Guangzhou Co ltd
Phytium Technology Co 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 Feiteng Technology Guangzhou Co ltd, Phytium Technology Co Ltd filed Critical Feiteng Technology Guangzhou Co ltd
Priority to CN202311156117.4A priority Critical patent/CN116909943B/zh
Publication of CN116909943A publication Critical patent/CN116909943A/zh
Application granted granted Critical
Publication of CN116909943B publication Critical patent/CN116909943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请提出一种缓存访问方法、装置、存储介质及电子设备,应用于处理核中的访存执行部件,处理核还包括第二唤醒总线、第二结果总线、一级缓存以及二级缓存,包括:在获取到第一类加载指令时,控制第二唤醒总线、第二结果总线与二级缓存流水线执行第一类加载指令;第一类加载指令为携带目标标识的加载指令,目标标识表示第一类加载指令未命中一级缓存。新增加一组不和一级缓存的端口资源耦合的第二唤醒总线和第二结果总线,用来处理携带目标标识的第一类加载指令。将加载指令需要的资源解耦,减少了第一类加载指令对一级缓存的端口的多次占用,将一级缓存的端口资源释放给其他有需要访问一级缓存的端口进而增加访存执行部件的有效带宽。

Description

一种缓存访问方法、装置、存储介质及电子设备
技术领域
本申请涉及计算机微处理器设计技术领域,具体而言,涉及一种缓存访问方法、装置、存储介质及电子设备。
背景技术
随着CPU处理器(central processing unit,中央处理器)的性能不断的更新迭代,高性能的处理器的时钟频率也越来越高。为了减小处理器高速时钟频率与访问存储器所需时间的不断增长的延迟之间的差距,大多数处理器选择使用不同层级的cache存储器(高速缓冲存储器,下文中以cache简称)结构以减少处理器失效代价。
目前,主流的处理器大多使用三级cache。即在访问存储器读取数据时,cache按照级别顺序被依次访问,数据搜索的顺序是从一级缓存L1cache开始,然后为二级缓存L2cache、三级缓存L3 cache。在访问L2 cache、L3 cache时,L1cache的端口若不能有效利用,将造成带宽浪费。
发明内容
本申请的目的在于提供一种缓存访问方法、装置、存储介质及电子设备,以至少部分改善上述问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种缓存访问方法,应用于处理核中的访存执行部件,所述处理核还包括第二唤醒总线、第二结果总线、一级缓存以及二级缓存,所述方法包括:在获取到第一类加载指令时,控制所述第二唤醒总线、所述第二结果总线与所述二级缓存流水线执行所述第一类加载指令;其中,所述第一类加载指令为携带目标标识的加载指令,所述目标标识表示所述第一类加载指令未命中所述一级缓存。
具体地,将加载指令需要的资源解耦,避免第一类加载指令占用第一唤醒总线,将一级缓存的端口资源释放给其他有需要访问一级缓存的端口的请求,减少了第一类加载指令对一级缓存的端口的多次占用,进而增加访存执行部件的有效带宽。
可选地,所述处理核还包括第一唤醒总线和第一结果总线,其中,所述第一唤醒总线、所述第一结果总线与所述一级缓存耦合绑定,所述方法还包括:获取所述第一类加载指令之后的第二类加载指令,控制所述第一唤醒总线、所述第一结果总线与所述一级缓存流水线执行所述第二类加载指令;其中,所述第二类加载指令为未携带所述目标标识的加载指令。在控制第二唤醒总线、第二结果总线与二级缓存流水线执行第一类加载指令的同时,还可以将一级缓存的端口资源释放给其他有需要访问一级缓存的端口的请求,具体地,控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令。减少了第一类加载指令对一级缓存的端口的多次占用,进而增加访存执行部件的有效带宽。
可选地,所述处理核还包括第一唤醒总线和第一结果总线,其中,所述第一唤醒总线、所述第一结果总线与所述一级缓存耦合绑定,所述处理核还配置有加载指令存储队列,所述方法还包括:从所述加载指令存储队列获取第二类加载指令;控制所述第一唤醒总线、所述第一结果总线与所述一级缓存流水线执行所述第二类加载指令,其中,所述第二类加载指令为未携带所述目标标识的加载指令;在所述一级缓存反馈所述第二类加载指令未命中时,给所述第二类加载指令添加所述目标标识,以将所述第二类加载指令变更为第一类加载指令。帮助准确识别加载指令存储队列中的第一类加载指令,避免重复占用一级缓存的端口。
可选地,所述处理核还包括第一唤醒总线和第一结果总线,其中,所述第一唤醒总线、所述第一结果总线与所述一级缓存耦合绑定,所述处理核还配置有加载指令存储队列,所述方法还包括:从所述加载指令存储队列获取第二类加载指令,其中,所述第二类加载指令为未携带所述目标标识的加载指令;确定在预设窗口长度内是否存在所述第一类加载指令与所述第二类加载指令匹配;其中,所述匹配表示所述第一类加载指令对应的物理访问地址与所述第二类加载指令对应的物理访问地址相同;若存在,则给所述第二类加载指令添加所述目标标识,以将所述第二类加载指令变更为第一类加载指令;若不存在,控制所述第一唤醒总线、所述第一结果总线与所述一级缓存流水线执行所述第二类加载指令。帮助准确识别加载指令存储队列中的第一类加载指令,避免重复占用一级缓存的端口。
可选地,所述控制所述第一唤醒总线、所述第一结果总线与所述一级缓存流水线执行所述第二类加载指令的步骤,包括:基于所述第一唤醒总线唤醒所述第二类加载指令对应的第二类消费者;其中,所述第二类消费者为源寄存器与所述第二类加载指令的目的寄存器相同的计算类指令;将所述第二类加载指令对应的物理访问地址发送给所述一级缓存;在获取到所述一级缓存反馈的第二类目标数据时,通过所述第一结果总线将所述第二类目标数据写入所述第二类加载指令的目的寄存器,并将所述第一结果总线旁路给所述第二类消费者;其中,所述第二类目标数据为存储于所述第二类加载指令对应的物理访问地址的数据,可以保障加载指令的执行效率。
可选地,所述控制所述第二唤醒总线、所述第二结果总线与所述二级缓存流水线执行所述第一类加载指令的步骤,包括:基于所述第二唤醒总线唤醒所述第一类加载指令对应的第一类消费者;其中,所述第一类消费者为源寄存器与所述第一类加载指令的目的寄存器相同的计算类指令;将所述第一类加载指令对应的物理访问地址发送给所述二级缓存;在获取到所述二级缓存反馈的第一类目标数据时,通过所述第二结果总线将所述第一类目标数据写入所述第一类加载指令的目的寄存器,并将所述第二结果总线旁路给所述第一类消费者;其中,所述第一类目标数据为存储于所述第一类加载指令对应的物理访问地址的数据,可以保障加载指令的执行效率。
可选地,所述处理核还包括三级缓存,所述处理核还与三级缓存连接,在所述二级缓存反馈所述第一类加载指令未命中时,所述控制所述第二唤醒总线、所述第二结果总线与所述二级缓存流水线执行所述第一类加载指令的步骤,包括:将所述第一类加载指令对应的物理访问地址发送给所述三级缓存;将所述三级缓存反馈的第一类目标数据写入所述二级缓存;通过所述第二结果总线将所述第一类目标数据写入所述第一类加载指令的目的寄存器,并将所述第二结果总线旁路给所述第一类消费者。
可选地,在通过所述第二结果总线将所述第一类目标数据写入所述第一类加载指令的目的寄存器之后,所述方法还包括:将所述第一类目标数据写入所述一级缓存,能够进一步提升访存效率。
可选地,所述第二唤醒总线的组数、所述第二结果总线的组数与所述二级缓存每拍返回的请求数量相同。通过合理设定第二唤醒总线和第二结果总线,可以保障尽快完成未命中一级缓存的加载指令,提升整体的处理效率。
第二方面,本申请实施例提供一种缓存访问装置,应用于处理核中的访存执行部件,所述处理核还包括第二唤醒总线、第二结果总线、一级缓存以及二级缓存,其中,所述第一唤醒总线、所述第一结果总线与所述一级缓存耦合绑定,所述装置包括:
第一处理单元,用于在获取到第一类加载指令时,控制所述第二唤醒总线、所述第二结果总线与所述二级缓存流水线执行所述第一类加载指令;
其中,所述第一类加载指令为携带目标标识的加载指令,所述目标标识表示所述第一类加载指令未命中所述一级缓存。
第三方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的缓存访问方法。
第四方面,本申请实施例提供一种电子设备,所述电子设备包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现上述第一方面所述的缓存访问方法。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本申请实施例提供的缓存访问方法的流程示意图之一;
图2为本申请实施例提供的缓存访问方法的流程示意图之二;
图3为本申请实施例提供的缓存访问方法的流程示意图之三;
图4为本申请实施例提供的缓存访问装置的单元示意图;
图5为本申请实施例提供的电子设备的结构示意图。
图中:10-处理器;11-存储器;12-总线;13-通信接口;501-第一处理单元;502-第二处理单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
访存指令(包括加载指令)的执行延迟和带宽会对现代高性能处理器核有较大的影响,缩短访存延迟和增加访存指令执行带宽是优化现代高性能处理器核微架构的一个重要方向。
乱序执行处理器加载指令的完成需要经过以下过程:
1.通过唤醒总线,唤醒依赖加载指令结果的消费者,消费者为源寄存器与加载指令的目的寄存器相同的计算类指令。
2.逐级访问三级Cache(高速缓冲存储器,简称缓存,包括一级缓存L1cache、二级缓存L2 cache以及三级缓存L3 cache)或主存(又称为内存或硬盘存储器)获取加载指令对应的目标数据。
3.将获得的目标数据送到结果总线上进行旁路和加载指令的目的寄存器的写回。
在旁路和/或写回完成后,消费者可以基于目标数据完成相关指令。
其中,一级缓存L1cache的命中率较高,约有95%,基于一级缓存L1cache的高命中率,在处理核的微架构实现时,可以将唤醒总线和一级缓存L1cache的访问耦合在一起进行资源的仲裁,加载指令在流水线中能够执行的条件是同时获得唤醒总线和一级缓存L1cache两个资源。这样可能会导致出现资源浪费,例如,在一级缓存L1cache确定加载指令发生miss(未命中)后,此时加载指令会从下级Cache(二级缓存L2 cache以及三级缓存L3cache)获取数据,同时该加载指令还需要占用唤醒总线和结果总线,该加载指令不需要访问一级缓存L1cache,但是由于唤醒总线和一级缓存L1cache的访问耦合,耦合在一起进行资源的仲裁会导致一级缓存L1cache的端口不能处理别的加载指令,导致一级缓存L1cache的端口浪费。而一级缓存L1cache的端口对于存储系统而言是关键资源,一级缓存L1cache的端口浪费会导致访存系统的带宽浪费。
本申请实施例提供的一种缓存访问方法,可以包括但不限于应用于处理核中的访存执行部件,处理核还包括第一唤醒总线、第二唤醒总线、第一结果总线、第二结果总线、一级缓存以及二级缓存,其中,第一唤醒总线、第一结果总线与一级缓存耦合绑定,耦合绑定表示第一唤醒总线、第一结果总线与一级缓存执行相同指令对应的流水线任务具体的流程,请参考图1,缓存访问方法的实现步骤可以包括:S101和S102,下面对其进行具体阐述。
S101,在获取到第一类加载指令时,控制第二唤醒总线、第二结果总线与二级缓存流水线执行第一类加载指令。
其中,第一类加载指令为携带目标标识的加载指令,目标标识表示第一类加载指令未命中一级缓存,也可以理解为,一级缓存未命中第一类加载指令,出现miss。
假如,控制第一唤醒总线、第一结果总线与一级缓存流水线执行第一类加载指令,第一类加载指令在未命中一级缓存的情况下,访存执行部件会逐级访问二级缓存、三级缓存甚至主存,在此过程中需要持续占用第一唤醒总线,由于第一唤醒总线与一级缓存耦合绑定,导致一级缓存的端口被浪费。
在本申请实施例中,新增加一组不和一级缓存的端口资源耦合的第二唤醒总线和第二结果总线,用来处理携带目标标识的第一类加载指令。将加载指令需要的资源解耦,避免第一类加载指令占用第一唤醒总线,将一级缓存的端口资源释放给其他有需要访问一级缓存的端口的请求,例如下文中的第二类加载指令。
S102,获取第一类加载指令之后的第二类加载指令,控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令。
其中,第二类加载指令为未携带目标标识的加载指令。
可选地,在控制第二唤醒总线、第二结果总线与二级缓存流水线执行第一类加载指令的同时,还可以将一级缓存的端口资源释放给其他有需要访问一级缓存的端口的请求,具体地,控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令。减少了第一类加载指令对一级缓存的端口的多次占用,进而增加访存执行部件的有效带宽。
综上所述,本申请实施例提供了一种缓存访问方法,应用于处理核中的访存执行部件,处理核还包括第二唤醒总线、第二结果总线、一级缓存以及二级缓存,包括:在获取到第一类加载指令时,控制第二唤醒总线、第二结果总线与二级缓存流水线执行第一类加载指令;其中,第一类加载指令为携带目标标识的加载指令,目标标识表示第一类加载指令未命中一级缓存。新增加一组不和一级缓存的端口资源耦合的第二唤醒总线和第二结果总线,用来处理携带目标标识的第一类加载指令。将加载指令需要的资源解耦,减少了第一类加载指令对一级缓存的端口的多次占用,将一级缓存的端口资源释放给其他有需要访问一级缓存的端口进而增加访存执行部件的有效带宽。
在一种可能的实现方式中,处理核还配置有加载指令存储队列,加载指令存储队列用于存放需要执行的加载指令。在此基础上,关于如何准确识别加载指令存储队列中的第一类加载指令,避免重复占用一级缓存的端口,本申请实施例还提供了一种可能的实现方式,请参考图2,缓存访问方法还包括:S201、S202、S203、S204以及S205,具体阐述如下。
S201,从加载指令存储队列获取第二类加载指令。
应理解,需要执行的加载指令(例如未携带目标标识的第二类加载指令)均存放在加载指令存储队列中,访存执行部件可以调取加载指令存储队列中的加载指令,并执行相应的任务。
S202,控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令。
S203,确定第二类加载指令是否命中一级缓存。若是,则继续执行S202;若否,则执行S204。
可选地,在第二类加载指令未命中一级缓存时,一级缓存向访存执行部件反馈第二类加载指令未命中,需要停止执行第二类加载指令对应的流水线,取消第一唤醒总线上的唤醒动作,解除对一级缓存的占用。同时,执行S204,给第二类加载指令添加目标标识,以将第二类加载指令变更为第一类加载指令,避免再次执行时,其重复占用第一唤醒总线和一级缓存的情况出现。
可选地,第二类加载指令未命中一级缓存时,一级缓存向访存执行部件反馈第二类加载指令未命中,还可以继续执行第二类加载指令对应的流水线。
S204,给第二类加载指令添加目标标识,以将第二类加载指令变更为第一类加载指令。
S205,将变更后的第一类加载指令添加到加载指令存储队列中。
可选地,后续在从加载指令存储队列中调取并执行第一类加载指令时,可以执行上述的步骤S101,不会占用一级缓存,从而提升访存执行部件的有效带宽。
在一种可选的实施方式中,当控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令,并确定第二类加载指令未命中一级缓存后,可以将第二类加载指令添加至预设的存储空间(例如一个指定的buffer)或者,在给第二类加载指令添加目标标识,以将第二类加载指令变更为第一类加载指令后,将变更后的第一类加载指令添加至预设的存储空间。并将加载指令存储队列中预设窗口长度内物理访问地址与该存储空间中的第二类加载指令(即变更后的第一类加载指令)对应的物理访问地址相同的加载指令添加目标标识。
在前文基础上,关于如何准确识别加载指令存储队列中的第一类加载指令,避免重复占用一级缓存的端口,本申请实施例还提供了一种可能的实现方式,请参考图3,缓存访问方法还包括:S301、S302、S303、S304、S305以及S306,具体阐述如下。
S301,从加载指令存储队列获取第二类加载指令。
可选地,需要执行的加载指令(例如未携带目标标识的第二类加载指令)均存放在加载指令存储队列中,访存执行部件可以调取加载指令存储队列中的加载指令,并执行相应的任务。
S302,确定在预设窗口长度内是否存在第一类加载指令与第二类加载指令匹配。若是,则执行S305;若否,则执行S303。
其中,匹配表示第一类加载指令对应的物理访问地址与第二类加载指令对应的物理访问地址相同。
可选地,预设窗口长度与下级Cache和/或内存执行流水线任务的响应时间相关。在一种可选的实施方式中,响应时间越长预设窗口越长。下级Cache包括二级缓存L2 cache和/或三级缓存L3 cache。
在预设窗口长度内存在第一类加载指令与第二类加载指令匹配时,该第一类加载指令未命中一级缓存,因为第一类加载指令对应的物理访问地址与第二类加载指令对应的物理访问地址相同,该第二类加载指令也可能未命中一级缓存。如果控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令,则不会得到正确的反馈接口,同时会占用第一唤醒总线和一级缓存的端口,造成不必要的带宽浪费。在本申请方案中,通过提前确定在预设窗口长度内是否存在第一类加载指令与第二类加载指令匹配,若存在匹配,则给第二类加载指令添加目标标识,以将第二类加载指令变更为第一类加载指令,避免其占用第一唤醒总线和一级缓存的端口,造成不必要的带宽浪费。可选地,加载指令存储队列中存放的加载指令(包括第一类加载指令和第二类加载指令)的数量可以大于或等于预设窗口长度。预设窗口长度例如为20。假设,当前从加载指令存储队列获取的第二类加载指令为A01,预设窗口长度为20,加载指令存储队列的预设窗口长度的加载指令表示为A02、A03…A20。在获取到第二类加载指令A01时,首先判断加载指令存储队列的预设窗口长度(A02、A03…A20)内是否存在第一类加载指令,若不存在第一类加载指令,则直接执行S303,若存在第一类加载指令,则进一步判断第一类加载指令与第二类加载指令是否匹配,即判断第一类加载指令对应的物理访问地址与第二类加载指令对应的物理访问地址是否相同。若相同,则表示匹配,说明第二类加载指令A01也未命中一级缓存,此时若控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令,则不会得到正确的反馈接口,同时会占用第一唤醒总线和一级缓存的端口,造成不必要的带宽浪费。所以执行S305;反之,则执行S303。
S303,控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令。
S304,确定第二类加载指令是否命中一级缓存。若是,则继续执行S303;若否,则执行S305。
S305,给第二类加载指令添加目标标识,以将第二类加载指令变更为第一类加载指令。
S306,将变更后的第一类加载指令添加到加载指令存储队列中。
在图2和图3的基础上,对于S102、S202以及S303中的内容,本申请实施例还提供了一种可能的实现方式,以S303为例,请参考下文,S303,控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令,包括:S303-1、S303-2以及S303-3,具体阐述如下。
S303-1,基于第一唤醒总线唤醒第二类加载指令对应的第二类消费者。
其中,第二类消费者为源寄存器与第二类加载指令的目的寄存器相同的计算类指令。
S303-2,将第二类加载指令对应的物理访问地址发送给一级缓存。
可选地,第二类加载指令包括对应的虚拟地址,访存执行部件在确定第二类加载指令对应的虚拟地址后,可以通过查表或计算的方式获取第二类加载指令对应的物理访问地址。
S303-3,在获取到一级缓存反馈的第二类目标数据时,通过第一结果总线将第二类目标数据写入第二类加载指令的目的寄存器,并将第一结果总线旁路给第二类消费者。
其中,第二类目标数据为存储于第二类加载指令对应的物理访问地址的数据。
可选地,在将第二类目标数据写入第二类加载指令的目的寄存器,并将第一结果总线旁路给第二类消费者,第二类消费者可以基于第一结果总线或第二类加载指令的目的寄存器上的数据,完成相关的计算指令。
在图1的基础上,对于S101中的内容,本申请实施例还提供了一种可能的实现方式,请参考下文,S101,在获取到第一类加载指令时,控制第二唤醒总线、第二结果总线与二级缓存流水线执行第一类加载指令,包括:S301-1、S301-2以及S301-3,具体阐述如下。
S301-1,基于第二唤醒总线唤醒第一类加载指令对应的第一类消费者。
其中,第一类消费者为源寄存器与第一类加载指令的目的寄存器相同的计算类指令。
S301-2,将第一类加载指令对应的物理访问地址发送给二级缓存。
可选地,第一类加载指令包括对应的虚拟地址,访存执行部件在确定第一类加载指令对应的虚拟地址后,可以通过查表或计算的方式获取第一类加载指令对应的物理访问地址。
S301-3,在获取到二级缓存反馈的第一类目标数据时,通过第二结果总线将第一类目标数据写入第一类加载指令的目的寄存器,并将第二结果总线旁路给第一类消费者。
其中,第一类目标数据为存储于第一类加载指令对应的物理访问地址的数据。
一种可能的实现方式中,处理核还包括三级缓存,处理核还与三级缓存连接。在此情况下,在二级缓存反馈第一类加载指令未命中时,关于如何完成第一类加载指令,本申请实施例还提供了一种可能的实现方式,请参考下文,S101,在获取到第一类加载指令时,控制第二唤醒总线、第二结果总线与二级缓存流水线执行第一类加载指令,还包括:S301-4、S301-5以及S301-6,具体阐述如下。
S301-4,将第一类加载指令对应的物理访问地址发送给三级缓存。
S301-5,将三级缓存反馈的第一类目标数据写入二级缓存。
S301-6,通过第二结果总线将第一类目标数据写入第一类加载指令的目的寄存器,并将第二结果总线旁路给第一类消费者旁路。
需要说明的是,在执行S301-4、S301-5以及S301-6时可以释放第一唤醒总线和一级缓存,基于一级缓存高命中率的微架构,其不会影响访存执行部件的有效带宽。
为了能够进一步提升访存效率,本申请实施例还提供了一种可能的实现方式,请参考下文,在S301-6,通过第二结果总线将第一类目标数据写入第一类加载指令的目的寄存器之后,缓存访问方法还包括:S103,具体阐述如下。
S103,将第一类目标数据写入一级缓存。
以便于下一次有相同物理访问地址的加载指令可以直接通过一级缓存执行。
在一种可能的实现方式中,第二唤醒总线的组数、第二结果总线的组数与二级缓存每拍返回的请求数量相同。第二唤醒总线和第二结果总线的组数为N,N大于或等于1。具体地,N由二级缓存到一级缓存之间的返回数据的带宽决定。即N和二级缓存每拍(每个周期)返回的请求数量是关联的,假如二级缓存每拍返回一个请求的数据,N=1,假如二级缓存每拍返回i个请求的数据,则N=i。
需要说明的是,一级缓存的端口是访问缓存的关键资源,在加载指令未命中一级缓存的情况下,由于耦合绑定的关系,会有由于回填和逐出带来一级缓存的端口占用。本申请实施例提供的缓存访问方法通过将一级缓存、唤醒总线及结果总线解耦,在加载指令未命中一级缓存的情况下,可以有效利用一级缓存,例如一级缓存的Cache miss率约有5%的话,一级缓存的端口的有效利用率可提高5%,关键资源的利用率提高可以访存指令带宽,从而提高性能。
请参阅图4,图4为本申请实施例提供的一种缓存访问装置,可选的,该缓存访问装置被应用于上文所述的访存执行部件。
缓存访问装置包括:第一处理单元501和第二处理单元502。
第一处理单元501,用于在获取到第一类加载指令时,控制第二唤醒总线、第二结果总线与二级缓存流水线执行第一类加载指令;
其中,第一类加载指令为携带目标标识的加载指令,目标标识表示第一类加载指令未命中一级缓存;
第二处理单元502,用于获取第一类加载指令之后的第二类加载指令,控制第一唤醒总线、第一结果总线与一级缓存流水线执行第二类加载指令;
其中,第二类加载指令为未携带目标标识的加载指令。
可选地,第一处理单元501可以执行上述的S101和S103,第二处理单元502可以执行上述的S102、S201-S205以及S301-S306。
需要说明的是,本实施例所提供的缓存访问装置,其可以执行上述方法流程实施例所示的方法流程,以实现对应的技术效果。为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。
本申请实施例还提供了一种存储介质,该存储介质存储有计算机指令、程序,该计算机指令、程序在被读取并运行时执行上述实施例的缓存访问方法。该存储介质可以包括内存、闪存、寄存器或者其结合等。
下面提供一种电子设备,可以是片上系统、手机、电脑、服务器以及其他智能穿戴设备,该电子设备如图5所示,可以实现上述的缓存访问方法;具体的,该电子设备包括:处理器10,存储器11、总线12。处理器10可以是CPU。处理器10包括一个或多个上述的处理核。存储器11用于存储一个或多个程序,当一个或多个程序被处理器10执行时,执行上述实施例的缓存访问方法。
如图5所示,电子设备包括处理器10、存储器11、总线12。处理器10、存储器11通过总线12连接,处理器10用于执行存储器11中存储的可执行模块,例如计算机程序。
处理器10可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,缓存访问方法的各步骤可以通过处理器10中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器10可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit ,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器11可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
总线12可以是ISA(Industry Standard Architecture)总线、PCI(PeripheralComponent Interconnect)总线或EISA(Extended Industry Standard Architecture)总线等。图5中仅用一个双向箭头表示,但并不表示仅有一根总线12或一种类型的总线12。
存储器11用于存储程序,例如缓存访问装置对应的程序。缓存访问装置包括至少一个可以软件或固件(firmware)的形式存储于存储器11中或固化在电子设备的操作系统(operating system,OS)中的软件功能模块。处理器10在接收到执行指令后,执行所述程序以实现缓存访问方法。
可能地,本申请实施例提供的电子设备还包括通信接口13。通信接口13通过总线与处理器10连接。电子设备可以通过通信接口13与其他终端进行交互。
应当理解的是,图5所示的结构仅为电子设备的部分的结构示意图,电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (9)

1.一种缓存访问方法,其特征在于,应用于处理核中的访存执行部件,所述处理核还包括第二唤醒总线第二结果总线、一级缓存以及二级缓存,所述方法包括:
在获取到第一类加载指令时,控制所述第二唤醒总线、所述第二结果总线与所述二级缓存流水线执行所述第一类加载指令;
其中,所述第一类加载指令为携带目标标识的加载指令,所述目标标识表示所述第一类加载指令未命中所述一级缓存;
所述处理核还包括第一唤醒总线和第一结果总线,其中,所述第一唤醒总线、所述第一结果总线与所述一级缓存耦合绑定,所述方法还包括:
获取所述第一类加载指令之后的第二类加载指令,控制所述第一唤醒总线、所述第一结果总线与所述一级缓存流水线执行所述第二类加载指令;
其中,所述第二类加载指令为未携带所述目标标识的加载指令。
2.如权利要求1所述的缓存访问方法,其特征在于,所述处理核还配置有加载指令存储队列,所述方法还包括:
从所述加载指令存储队列获取第二类加载指令;
其中,所述第二类加载指令为未携带所述目标标识的加载指令;
控制所述第一唤醒总线、所述第一结果总线与所述一级缓存流水线执行所述第二类加载指令;
在所述一级缓存反馈所述第二类加载指令未命中时,给所述第二类加载指令添加所述目标标识,以将所述第二类加载指令变更为第一类加载指令。
3.如权利要求1所述的缓存访问方法,其特征在于,所述处理核还配置有加载指令存储队列,所述方法还包括:
从所述加载指令存储队列获取第二类加载指令;
其中,所述第二类加载指令为未携带所述目标标识的加载指令;
确定在预设窗口长度内是否存在所述第一类加载指令与所述第二类加载指令匹配;
其中,所述匹配表示所述第一类加载指令对应的物理访问地址与所述第二类加载指令对应的物理访问地址相同;
若存在,则给所述第二类加载指令添加所述目标标识,以将所述第二类加载指令变更为第一类加载指令。
4.如权利要求1或2所述的缓存访问方法,其特征在于,所述控制所述第一唤醒总线、所述第一结果总线与所述一级缓存流水线执行所述第二类加载指令的步骤,包括:
基于所述第一唤醒总线唤醒所述第二类加载指令对应的第二类消费者;
其中,所述第二类消费者为源寄存器与所述第二类加载指令的目的寄存器相同的计算类指令;
将所述第二类加载指令对应的物理访问地址发送给所述一级缓存;
在获取到所述一级缓存反馈的第二类目标数据时,通过所述第一结果总线将所述第二类目标数据写入所述第二类加载指令的目的寄存器,并将所述第一结果总线旁路给所述第二类消费者;
其中,所述第二类目标数据为存储于所述第二类加载指令对应的物理访问地址的数据。
5.如权利要求1所述的缓存访问方法,其特征在于,所述处理核还包括三级缓存,所述处理核还与所述三级缓存连接,所述控制所述第二唤醒总线、所述第二结果总线与所述二级缓存流水线执行所述第一类加载指令的步骤,包括:
基于所述第二唤醒总线唤醒所述第一类加载指令对应的第一类消费者;
其中,所述第一类消费者为源寄存器与所述第一类加载指令的目的寄存器相同的计算类指令;
将所述第一类加载指令对应的物理访问地址发送给所述二级缓存;
在获取到所述二级缓存反馈的第一类目标数据时,通过所述第二结果总线将所述第一类目标数据写入所述第一类加载指令的目的寄存器,并将所述第二结果总线旁路给所述第一类消费者;
其中,所述第一类目标数据为存储于所述第一类加载指令对应的物理访问地址的数据;
在所述二级缓存反馈所述第一类加载指令未命中时,将所述第一类加载指令对应的物理访问地址发送给所述三级缓存;
将所述三级缓存反馈的第一类目标数据写入所述二级缓存;
通过所述第二结果总线将所述第一类目标数据写入所述第一类加载指令的目的寄存器,并将所述第二结果总线旁路给所述第一类消费者。
6.如权利要求1所述的缓存访问方法,其特征在于,所述第二唤醒总线的组数、所述第二结果总线的组数与所述二级缓存每拍返回的请求数量相同。
7.一种缓存访问装置,其特征在于,应用于处理核中的访存执行部件,所述处理核还包括第二唤醒总线、第二结果总线、一级缓存以及二级缓存,所述装置包括:
第一处理单元,用于在获取到第一类加载指令时,控制所述第二唤醒总线、所述第二结果总线与所述二级缓存流水线执行所述第一类加载指令;
其中,所述第一类加载指令为携带目标标识的加载指令,所述目标标识表示所述第一类加载指令未命中所述一级缓存;
所述处理核还包括第一唤醒总线和第一结果总线,其中,所述第一唤醒总线、所述第一结果总线与所述一级缓存耦合绑定,所述缓存访问装置还包括:
第二处理单元,用于获取所述第一类加载指令之后的第二类加载指令,控制所述第一唤醒总线、所述第一结果总线与所述一级缓存流水线执行所述第二类加载指令;
其中,所述第二类加载指令为未携带所述目标标识的加载指令。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现如权利要求1-6中任一项所述的方法。
CN202311156117.4A 2023-09-08 2023-09-08 一种缓存访问方法、装置、存储介质及电子设备 Active CN116909943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311156117.4A CN116909943B (zh) 2023-09-08 2023-09-08 一种缓存访问方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311156117.4A CN116909943B (zh) 2023-09-08 2023-09-08 一种缓存访问方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN116909943A CN116909943A (zh) 2023-10-20
CN116909943B true CN116909943B (zh) 2023-12-19

Family

ID=88367023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311156117.4A Active CN116909943B (zh) 2023-09-08 2023-09-08 一种缓存访问方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116909943B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117270972B (zh) * 2023-11-21 2024-03-15 芯来智融半导体科技(上海)有限公司 指令处理方法、装置、设备和介质
CN117453435B (zh) * 2023-12-20 2024-03-15 北京开源芯片研究院 缓存数据读取方法、装置、设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385694B1 (en) * 1999-06-25 2002-05-07 International Business Machines Corporation High performance load instruction management via system bus with explicit register load and/or cache reload protocols
CN1489061A (zh) * 2002-08-29 2004-04-14 国际商业机器公司 微处理器中的数据预取方法及微处理器
CN1952876A (zh) * 2005-10-18 2007-04-25 国际商业机器公司 延迟加载未命中刷新直到发出相关指令的方法和系统
CN101180611A (zh) * 2005-05-24 2008-05-14 德克萨斯仪器股份有限公司 依赖于指令类型的可配置高速缓存系统
CN101542430A (zh) * 2006-09-29 2009-09-23 Mips技术公司 用于处理器的加载/存储单元及其应用
CN110515659A (zh) * 2019-08-28 2019-11-29 中国人民解放军国防科技大学 一种原子指令的执行方法和装置
CN110574014A (zh) * 2017-11-28 2019-12-13 谷歌有限责任公司 节能的高速缓存存储器使用
CN112015674A (zh) * 2020-08-27 2020-12-01 平安科技(深圳)有限公司 基于多层级的缓存资源访问方法、装置和计算机设备
CN112099851A (zh) * 2020-09-07 2020-12-18 海光信息技术股份有限公司 指令执行方法、装置、处理器及电子设备
CN113961247A (zh) * 2021-09-24 2022-01-21 北京睿芯众核科技有限公司 一种基于risc-v处理器的向量存/取指令执行方法、系统及装置
CN115357292A (zh) * 2022-08-24 2022-11-18 中电科申泰信息科技有限公司 一种非阻塞数据Cache结构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907520B2 (en) * 2001-01-11 2005-06-14 Sun Microsystems, Inc. Threshold-based load address prediction and new thread identification in a multithreaded microprocessor

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385694B1 (en) * 1999-06-25 2002-05-07 International Business Machines Corporation High performance load instruction management via system bus with explicit register load and/or cache reload protocols
CN1489061A (zh) * 2002-08-29 2004-04-14 国际商业机器公司 微处理器中的数据预取方法及微处理器
CN101180611A (zh) * 2005-05-24 2008-05-14 德克萨斯仪器股份有限公司 依赖于指令类型的可配置高速缓存系统
CN1952876A (zh) * 2005-10-18 2007-04-25 国际商业机器公司 延迟加载未命中刷新直到发出相关指令的方法和系统
CN101542430A (zh) * 2006-09-29 2009-09-23 Mips技术公司 用于处理器的加载/存储单元及其应用
CN110574014A (zh) * 2017-11-28 2019-12-13 谷歌有限责任公司 节能的高速缓存存储器使用
CN110515659A (zh) * 2019-08-28 2019-11-29 中国人民解放军国防科技大学 一种原子指令的执行方法和装置
CN112015674A (zh) * 2020-08-27 2020-12-01 平安科技(深圳)有限公司 基于多层级的缓存资源访问方法、装置和计算机设备
CN112099851A (zh) * 2020-09-07 2020-12-18 海光信息技术股份有限公司 指令执行方法、装置、处理器及电子设备
CN113961247A (zh) * 2021-09-24 2022-01-21 北京睿芯众核科技有限公司 一种基于risc-v处理器的向量存/取指令执行方法、系统及装置
CN115357292A (zh) * 2022-08-24 2022-11-18 中电科申泰信息科技有限公司 一种非阻塞数据Cache结构

Also Published As

Publication number Publication date
CN116909943A (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
US11789872B2 (en) Slot/sub-slot prefetch architecture for multiple memory requestors
CN116909943B (zh) 一种缓存访问方法、装置、存储介质及电子设备
JP5421458B2 (ja) Simdベクトルの同期
US8140828B2 (en) Handling transaction buffer overflow in multiprocessor by re-executing after waiting for peer processors to complete pending transactions and bypassing the buffer
US10489063B2 (en) Memory-to-memory instructions to accelerate sparse-matrix by dense-vector and sparse-vector by dense-vector multiplication
US10331499B2 (en) Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads
KR20110025188A (ko) 스토어 할당 캐시 미스에서 에러 복구를 위한 스토어 버퍼 사용
US9864709B2 (en) Data transfer in a multi-core processor
CN107025130B (zh) 处理节点、计算机系统及事务冲突检测方法
US8880847B2 (en) Multistream prefetch buffer
US20180173637A1 (en) Efficient memory aware cache management
CN110806900B (zh) 一种访存指令处理方法及处理器
TW201303870A (zh) 利用快閃記憶體介面的方法及裝置
CN112612728B (zh) 缓存管理方法及装置、设备
US9507725B2 (en) Store forwarding for data caches
CN115269199A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
WO2014064914A1 (ja) データ格納装置、データ格納方法およびプログラム
US9201655B2 (en) Method, computer program product, and hardware product for eliminating or reducing operand line crossing penalty
JP5998998B2 (ja) 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US20220100626A1 (en) Monitoring performance cost of events
CN117687692A (zh) 一种nvme命令处理装置、方法、设备及介质
WO2015047427A1 (en) Data transfer in a multi-core processor
US8656375B2 (en) Cross-logical entity accelerators
CN117369878A (zh) 双发射流水线的指令处理方法、装置、电子设备及介质
CN114995884A (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
GR01 Patent grant
GR01 Patent grant