CN115481054A - 数据处理方法、装置及系统、系统级soc芯片及计算机设备 - Google Patents

数据处理方法、装置及系统、系统级soc芯片及计算机设备 Download PDF

Info

Publication number
CN115481054A
CN115481054A CN202210945784.XA CN202210945784A CN115481054A CN 115481054 A CN115481054 A CN 115481054A CN 202210945784 A CN202210945784 A CN 202210945784A CN 115481054 A CN115481054 A CN 115481054A
Authority
CN
China
Prior art keywords
target
cache
data
physical address
block
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
CN202210945784.XA
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 CN202210945784.XA priority Critical patent/CN115481054A/zh
Publication of CN115481054A publication Critical patent/CN115481054A/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请实施例提供了一种数据处理方法、装置及系统、系统级SOC芯片及计算机设备。该方法应用于系统级缓存单元,该系统级缓存单元包括第一缓存空间和第二缓存空间;其中,所述第一缓存空间包括多个缓存块以及多个存储数据目录表项;所述第二缓存空间包括多个页表目录表项,所述页表目录表项用于指示虚拟地址与所述存储单元中的数据块的物理地址的映射关系;该方法包括:确定主设备发送的读写访问请求所指示的目标物理地址;根据目标物理地址,确定第一缓存空间中的目标缓存块或存储单元中的目标数据块;对目标缓存块或目标数据块执行数据读写操作。

Description

数据处理方法、装置及系统、系统级SOC芯片及计算机设备
技术领域
本申请涉及芯片技术领域,更为具体的,涉及一种数据处理方法、装置及系统、系统级SOC芯片及计算机设备。
背景技术
在当前较大规模的片上系统SOC芯片或处理器中,设置了为多个主设备所共享的系统级缓存单元SLC模块,用于对内存中的数据进行缓存,从而优化SOC中的主设备访问内存的读写性能。
在上述系统中用于进行虚拟地址与物理地址转化的MMU模块和SLC模块的缓存空间相互独立,占用了更多的芯片面积,从而提高SOC的硬件成本。并且MMU模块与SLC模块之间的物理位置可能较远,从而造成在进行寻址以及数据读写时会引入额外的时延,从而影响SOC的运行速度。
发明内容
本申请提供一种数据处理方法、装置及系统、系统级SOC芯片及计算机设备。下面对本申请实施例涉及的各个方面进行介绍。
第一方面,提供一种数据处理方法,所述方法应用于系统级缓存单元,所述系统级缓存单元设置在至少一个主设备与存储单元之间,以进行地址转换以及对所述存储单元中的数据进行缓存,所述系统级缓存单元包括第一缓存空间和第二缓存空间;其中,所述第一缓存空间包括多个缓存块以及多个存储数据目录表项,所述多个缓存块用于缓存所述存储单元中的数据,所述多个存储数据目录表项用于指示所述缓存块与所述存储单元中的数据块的物理地址的映射关系;所述第二缓存空间包括多个页表目录表项,所述页表目录表项用于指示虚拟地址与所述存储单元中的数据块的物理地址的映射关系;所述方法包括:确定所述主设备发送的读写访问请求所指示的目标物理地址;根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块;对所述目标缓存块或所述目标数据块执行数据读写操作;其中,所述目标缓存块为所述多个缓存块中的一个或多个,所述目标数据块为所述多个数据块中的一个或多个。
第二方面,提供一种数据处理装置,所述装置应用于系统级缓存单元,所述系统级缓存单元设置在至少一个主设备与存储单元之间,以进行地址转换以及对所述存储单元中的数据进行缓存,其特征在于,所述系统级缓存单元包括第一缓存空间和第二缓存空间;其中,所述第一缓存空间包括多个缓存块以及多个存储数据目录表项,所述多个缓存块用于缓存所述存储单元中的数据,所述多个存储数据目录表项用于指示所述缓存块与所述存储单元中的数据块的物理地址的映射关系;所述第二缓存空间包括多个页表目录表项,所述页表目录表项用于指示虚拟地址与所述存储单元中的数据块的物理地址的映射关系;所述装置包括:第一确定单元,配置为确定所述主设备发送的读写访问请求所指示的目标物理地址;第二确定单元,配置为根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块;执行单元,配置为对所述目标缓存块或所述目标数据块执行数据读写操作;其中,所述目标缓存块为所述多个缓存块中的一个或多个,所述目标数据块为所述多个数据块中的一个或多个。
第三方面,提供一种数据处理系统,所述系统包括:至少一个主设备、存储单元以及系统级缓存单元;其中,所述系统级缓存单元设置在所述至少一个主设备与所述存储单元之间,用于进行地址转换以及对所述存储单元中的数据进行缓存;所述系统级缓存单元包括第一缓存空间和第二缓存空间,其中,所述第一缓存空间包括多个缓存块以及多个存储数据目录表项,所述多个缓存块用于缓存所述存储单元中的数据,所述多个存储数据目录表项用于指示所述缓存块与所述存储单元中的数据块的物理地址的映射关系;所述第二缓存空间包括多个页表目录表项,所述页表目录表项用于指示虚拟地址与所述存储单元中的数据块的物理地址的映射关系;所述系统级缓存单元用于:确定所述主设备发送的读写访问请求所指示的目标物理地址;根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块;对所述目标缓存块或所述目标数据块执行数据读写操作;其中,所述目标缓存块为所述多个缓存块中的一个或多个,所述目标数据块为所述多个数据块中的一个或多个。
第四方面,提供一种系统级SOC芯片,所述SOC芯片包括:至少一个主设备以及系统级缓存单元,所述至少一个所述主设备通过总线与所述系统级缓存单元相连;所述系统级缓存或所述主设备用于执行如第一方面所述的数据处理方法。
第五方面,提供一种计算机设备,所述计算机设备包括:芯片和存储单元,所述芯片和所述存储单元相连;所述芯片包括如第四方面所述的SOC芯片。
根据本申请实施例提供的数据读写方法,通过将页表目录表项存储在系统级缓存单元的缓存空间中,相当于将存储器管理单元和系统级缓存单元进行了合并,缩短了寻址时的访问时延;同时,通过复用和优化系统级缓存单元的存储空间以及对寻址的逻辑进行优化,节约了芯片面积。
附图说明
图1是相关技术中一种片上系统SOC的示意性结构图。
图2是对图1所示的SOC进行简化处理后的局部示意图。
图3是相关技术中另一种片上系统SOC的示意性结构图。
图4是对图3中的SOC进行简化处理后的局部示意图。
图5是本申请实施例提供的系统级缓存单元50的示意性结构图。
图6是本申请实施例提供的数据处理方法的示意性流程图。
图7是利用本申请实施例提供的系统级缓存单元进行数据处理的流程图。
图8是本申请实施例提供的数据处理装置的示意性结构图。
图9是本申请实施例提供的数据处理系统的示意性结构图。
图10是本申请实施例提供的一种系统级SOC芯片的示意性结构图。
图11是本申请实施例的计算机设备的示意性结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序;并且术语“第一”、“第二”、“第三”和“第四”等描述的对象也可以是相同的对象,或者彼此存在包含或者其他关系。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
在介绍本申请实施例之前,先对本申请实施例中涉及的术语进行解释说明,以便于本领域技术人员理解。
中央处理器(Central Processing Unit,CPU)
用于解释计算机指令以及处理计算机中的数据。在计算机中负责读取指令,对指令译码并执行指令。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。
片上系统(system on chip,SOC)
片上系统(System on Chip,SOC)是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上。SOC是由多个具有特定功能的集成电路组合在一个芯片上形成的系统或产品,其中包含完整的硬件系统及其承载的嵌入式软件。在当前的移动终端中,中央处理器(Central Processing Unit,CPU)、神经网络处理器(Neural Network ProcessingUnit,NPU)以及图形处理器(Graphics Processing Unit,GPU)等已经越来越多的采用SOC的设计理念,从而可以进一步地提升性能。
处理器核(core)
SOC或CPU的核心,用来完成所有的计算、接受/存储命令、处理数据等。各种处理器的核心都具有固定的逻辑结构,涉及一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元的布局。
主设备
主设备是计算机系统中获得总线控制权的设备,例如SOC中的CPU、GPU或者NPU等,主设备可以通过总线与被它寻址的从设备进行数据交换,比如,CPU或GPU向内存写入数据,或CPU从内存中读取数据等。本申请实施例中,主设备可以是CPU、GPU、NPU等,也可以是多媒体设备,比如,视频播放设备、音频播放设备等。
存储器
位于计算机设备内部,用于存储信息的物理结构。按照用途的不同,存储器可以分为主存储器(也可称为内部存储器,或简称为内存/主存)和辅助存储器(也可称为外部存储器,或简称为辅存/外存)。主存用于存储由数据信号表示的指令信息和/或数据信息,例如用于存放处理器提供的数据,也可用于实现处理器与外存之间的信息交换。本文提到的存储器一般是指主存。
高速缓冲存储器(cache)
简称缓存,位于CPU和主存储器DRAM之间,是一种容量较小但速度很高的存储器,通常由静态存储器(Static Random Access Memory,SRAM)组成。其中,只要保持SRAM通电,其储存的数据就可以恒常保持。SRAM一般可分为以下五大部分:存储单元阵列、行/列地址译码器、灵敏放大器、控制电路和驱动电路。具体地,cache可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从cache中直接调用,加快数据取用的速度,减少了CPU的等待时间。cache一般分为一级缓存(level 1cache,L1cache)、二级缓存(level 2cache,L2 cache)和三级缓存(level3cache,L3 cache)等等;其中,L1cache主要集成在CPU内部,L2cache集成在主板上或CPU内部,L3 cache集成在主板上或者CPU内部,在CPU内部时L3 cache为多个处理器核共享。
物理地址(Physical Address,PA)
也叫实地址(real address)、二进制地址(binary address),它是在地址总线上,以电子形式存在的,使得数据总线可以访问主存的某个特定存储单元的内存地址。地址从0开始编号,顺序地每次加1,因此存储器的物理地址空间是呈线性增长的。物理地址也可称为实际地址、真实地址或绝对地址。
虚拟地址
虚拟地址是运行在处理器或外部设备(例如,输入/输出设备)的软件或程序所使用的抽象地址。虚拟地址空间可以大于物理地址空间,虚拟地址可以被映射至对应的物理地址。例如,运行在处理器的软件或程序所使用的抽象地址为第一虚拟地址,运行在外部设备(例如,输入/输出设备)的软件或程序所使用的抽象地址为第二虚拟地址。
分页管理机制
将虚拟地址空间划分为多个部分,每部分作为一个虚拟页面,并将物理地址空间划分为多个部分,每部分作为一个物理页面。物理页面也称为物理地址块或物理地址页框。将虚拟物理地址空间划分为多个部分,每部分作为一个虚拟物理页面。
存储器管理单元(Memory Management Unit,MMU)
有时称作分页存储器管理单元(paged memory management unit,PMMU),或称存储器管理单元,是一种负责处理主设备的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、系统中各缓存的控制;在较为简单的计算机体系结构中,负责总线的仲裁以及存储体切换。
转译后备缓冲器(Translation Lookaside Buffer,TLB)
也称页表缓存、转址旁路缓存,或称旁路转换缓冲,可以设置在MMU中,用于改进虚拟地址到物理地址的转译速度。当前所有的桌面型及服务器型处理器(如x86)皆使用TLB。TLB具有固定数目的空间槽,用于存放将虚拟地址映射至物理地址的标签页表条目。其搜索关键字为虚拟内存地址,其搜索结果为物理地址。如果请求的虚拟地址在TLB中存在,将给出一个非常快速的匹配结果,之后就可以使用得到的物理地址访问存储器。如果请求的虚拟地址不在TLB中,就会使用标签页表进行虚实地址转换,而标签页表的访问速度比TLB慢很多。有些系统允许标签页表被交换到次级存储器,那么虚实地址转换可能要花非常长的时间。
在介绍完上述多个术语的定义后,下面首先结合附图,对相关技术中的数据存储方法及其存在的问题进行详细的举例说明。
图1为相关技术中的一种典型的片上系统SOC的示意性结构图。图1中的SOC10包括多个处理器核心11A,…,11N,其中,每个处理器核心中均包括至少两级缓存以及存储器管理单元。以其中的处理器核心11A为例,该处理器核心中包括处理电路111A、一级缓存112A、二级缓存113A以及MMU114A。其中,处理电路111A用于处理数据或指令,一级缓存112A能够用于缓存二级缓存113A中的部分数据,二级缓存113配置为缓存SOC外部的存储单元(例如内存)中的部分数据,MMU114A用于在处理电路111A发起数据读写操作时进行地址转换。
举例说明,处理电路111A发出一个访问指令,该访问指令中包括存储单元的虚拟地址,MMU114A确定该虚拟地址对应的物理地址。再根据该物理地址在一级缓存112A中进行查找,当一级缓存112A中包括与该物理地址对应的目标缓存行时,在该缓存行上进行数据读写,否则继续查找二级缓存113A;在二级缓存113A中,执行与一级缓存112A相同的操作,当查询没有命中时,根据该物理地址,在存储单元对应的数据块中进行数据读写,同时将该数据缓存到上一级缓存(即二级缓存113A)中,得益于以上所说的多级缓存技术,使得处理器核心在进行数据读写时具有很高的效率,从而满足对于高速运行的需求。
继续参阅图1,在SOC10中还包括GPU12、APU13、ISP14等部件,如前文所述,上述部件均可称为主设备。在SOC10中,上述多个主设备通过系统总线15相连,从而与SOC外部的存储单元相连接,从而实现与存储单元的数据交互。
如前文所述,在基于分页管理的内存管理机制中,需要利用存储管理单元MMU实现对虚拟地址与物理地址的转换。因此,为了支持上述多个主设备与存储单元之间的数据交互,在该SOC10中还包括设置在多个主设备与存储单元之间的多个MMU16A,…,16N,上述多个存储管理单元可以与多个主设备一一对应;或者,该系统中也可以只设置一个存储管理单元,为所述多个主设备所共享,此处不做具体限定。
下面以其中的GPU为例,对GPU与存储单元的数据读写方式进行举例说明,请参阅图2,图2是对图1进行简化处理后的结构示意图。图2中仅示出了GPU21,MMU22以及存储单元23。
GPU通常用于进行视频解码以及图像渲染等操作,在工作时需要与存储单元23进行数据交互。在进行数据读写时,GPU21向MMU22发送访问指令;MMU22接收后,对该访问请求进行解析,得到虚拟地址,将该虚拟地址转换为存储单元23中的数据块的物理地址。
下面对MMU22的工作过程进行简要的说明,在接收到主设备的访问请求后,MMU22对其进行解析,确定访问请求中所包含的虚拟地址;根据该虚拟地址,MMU22对内存中的页表进行访问,查找与该虚拟地址向匹配的页表项,从而确定与该虚拟地址向对应的物理地址,将该物理地址返回给访问指令。主设备根据MMU22返回的物理地址,在内存中该物理地址所指示的数据块上进行读写操作。
在上述过程中,需要对内存进行两次访问,相关技术中,为了加快该过程的速度,在MMU22中还可以设置转译后备缓冲器TLB221,用于对内存中的部分页表进行缓存。TLB221中缓存的页表可以是操作系统基于系统逻辑确定的内存中的部分页表项,例如可以是主设备上一次访问的数据块的页表项,从而使得在下一次访问时,可以根据访问指令的虚拟地址在TLB221缓存的页表中可以直接查找到与之对应的页表项,可以直接获取对应的物理地址,而无需对内存的页表进行查询,也就是说,在这种情况下,只需要访问一次内存,能够加快访问内存的效率。
GPU21在接收到MMU22返回的物理地址后,根据该物理地址,在储存单元23的目标数据块中执行读写操作。
随着手机等设备硬件配置的提高,手机的屏幕分辨率以及帧率等得到了大幅的提升,在一些场景下,例如对游戏画面进行逐帧渲染时,由于提高了分辨率和帧率,使得GPU的数据吞吐量增加,从而对GPU和存储设备之间的数据交互的速率提出了较高的需求。
此处还需要说明的是,在现有的SOC中,为了优先满足对于基础运算的需求,会在处理器核中设置高速缓存;而在GPU和NPU等类型的主设备中,由于芯片面积的限制和出于成本的考虑,并没有设置高速缓存机制,而是由这些设备和存储设备之间进行直接的数据交互。因此,在前文中所说的大量频繁的数据交互时,现有技术中的处理机制将无法满足该需求。
鉴于上述问题,在一些相关技术中,如图3所示,在SOC30中设置了系统级缓存单元35,该系统级缓存单元(system level cache,SLC)35是为不同的主设备(例如图3中的处理器核心31A,…31N、GPU32、APU33以及ISP34等)提供共享缓存资源的高速存储器。该系统级缓存设置上述多个主设备与SOC30外部的存储设备之间,作为缓存系统中的最后一级缓存,或者说,该系统级缓存为外部的存储设备的缓存,当主设备需要执行读写操作时,可以从该系统级缓存32中读取或者将数据直接写入该系统级缓存33中,以便后续主设备可以快速访问到该数据,从而提高主设备的数据处理效率。
下面结合图4对主设备向系统级缓存以及存储设备进行数据读写时的寻址和数据读写方式进行详细的说明。请参阅图4,图4是对图3进行简化处理后的结构示意图,仅示出了主设备与存储单元之间的传输路径,应理解,图4中的主设备可以为SOC中的任一主设备,此处不做具体限定。
下面对图4中的主设备41进行数据读写时的寻址以及数据读写过程进行详细的说明。
首先,主设备41根据当前的业务需求,向MMU42发送访问指令;MMU42接收该访问请求后,对其进行解析,得到虚拟地址,根据该虚拟地址,MMU42通过查找TLB421中的页表项或者直接读取存储存储单元中的页表项,将虚拟地址转换为物理地址,该过程与前文中描述的大致相同,此处不再赘述。
在确定了物理地址后,在图4所示的系统中,主设备还需要根据该物理地址来确定数据的读写操作需要在SLC43的缓存块中还是内存的数据块中进行。
具体的,SLC43中还包括存储数据目录表项,用于指示SLC43的多个缓存块与内存中的数据块的物理地址的映射关系。主设备可以根据MMU42转换得到的物理地址,在SLC43的存储数据目录表项中进行查找;当该查找命中时,表示当前SLC43中具有该物理地址对应的内存的数据块的缓存块,此时可以在该缓存块上进行数据读写。而当上述查找没有命中时,根据上述物理地址,在内存中与该物理地址对应的数据块上进行数据读写,同时,在SLC43中分配部分缓存块以缓存该数据块中的数据,从而使得后续对于该物理地址的访问可以之间在SLC43中进行,从而提高数据读写的速度。
图4中所示的系统通过在主设备与内存之间设置SLC缓存来对内存中的数据进行缓存,同时利用MMU模块以及MMU模块中的TLB缓存来提高寻址速度,这样能够显著提高主设备与内存进行数据交互的速度,优化主设备访问内存的读写性能。
但是,上述系统依然存在着一些问题。首先,在该系统中,为了提高地址转换的效率,需要尽可能的增加TLB的缓存空间,以便于存储更多的页表项。而MMU中的TLB缓存空间是与SLC相独立的,两者之间不能共享。这会导致需要占用更多的芯片面积,从而提高SOC的硬件成本。
其次,在该系统中,MMU与SLC的位置可能距离较远,并且MMU和SLC之间存在物理的连接,MMU访问SLC的路径在系统中不一定时延最优,如果SLC中包含MMU页表则可能会引入额外的时延。
最后,该系统中包括多个主设备,在每个主设备与SLC缓存之间都可能设置有MMU,在这种情况下,即使是多个主设备共享的页表也需要在每个MMU中获取和存储多份,从而增加了系统的负载,引入额外的功耗。此外,MMU与SLC在访问内存时的路径是相互独立的,这样容易造成系统因MMU的访问而增加额外的负载。
有鉴于上述问题,本申请实施例提供了一种数据读写方法、装置及系统、系统级SOC芯片及计算机设备。
下面首先结合附图对本申请实施例提供的方法进行详细的举例说明,本申请实施例提供的数据读写方法应用于系统级缓存单元。因此,在介绍本申请的方法实施例之前,先对本申请实施例提供的系统级缓存单元进行详细的说明。
图5示出的是本申请实施例提供的系统级缓存单元50的示意性结构图,该系统级缓存单元可以设置在至少一个主设备与存储单元之间,用于进行地址转换以及对存储单元中的数据进行缓存。
为了便于后文的描述,图5中还示出了与系统级缓存单元50相连接的主设备和存储单元。
在一些实施方式中,图5中的主设备可以是前文中所提及的任一主设备,例如可以是CPU、GPU、NPU、APU以及ISP等SOC中的部件,或者还可以是设置在SOC外部的多媒体设备,例如视频播放设备、音频播放设备等,本申请实施例对主设备的类型不做具体限定。
还需要理解的是,图5所示仅为一示例,本申请实施例对主设备的数量不做具体限定,例如可以仅包含一个主设备,及该系统级缓存单元仅应用于该一个主设备;或者,在一些实施方式中,该系统级缓存单元50还可以连接多个主设备,即该系统级缓存单元50为多个主设备所共享。在包括多个主设备时,该多个主设备可以相同,也可以不同,本申请实施例对此亦不做限定。
存储单元例如可以是手机等电子设备的内存,作为硬盘等外部设备的缓存,内存能够用于存储CPU运行时所产生的数据,或者缓存硬盘中的数据以供CPU使用。
在一些实施方式中,该存储单元还可以是容量和读写速度均介于系统级缓存单元50和内存之间的中间缓存,通过该中间缓存,能够进一步主设备在内存中进行数据读写时的效率。
请继续参阅图5,图5中的系统级缓存单元50包括第一缓存空间51和第二缓存空间52。
其中,第一缓存空间中包括多个缓存块以及多个存储数据目录表项,上述多个缓存块用于缓存存储单元中的数据,多个存储数据目录表项用于指示缓存块与内存中的数据块的物理地址的映射关系。上述多个缓存块也可称为缓存行,系统级缓存单元50中的缓存块与内存中的数据块向对应,该对应关系可以通过缓存行的行号与内存中的数据块的物理地址的映射关系来体现,而上文中所说的存储数据目录表项即为存储上述映射关系的表项,根据主设备需要访问的目标物理地址,在存储数据目录表项中进行查询,即可确定需要缓存的目标缓存块或内存中的目标数据块。
第二缓存空间中包括多个页表目录表项,用于指示虚拟地址与内存中的数据块的物理地址的映射关系。可以理解的是,此处所说的页表目录表项类似于前文中的TLB缓存中保存的页表项。通过解析主设备的访问请求,根据该访问请求中的虚拟地址,在第二缓存空间的页表目录表项中进行查找,当命中时,即可将所述虚拟地址转换为数据块的物理地址。
还需要说明的是,本申请实施例中的第一缓存空间和第二缓存空间并非完全独立的两个存储空间,而仅仅是系统级缓存单元中的两个虚拟的缓存空间。在实际应用中,可以根据实际情况对该两个虚拟的缓存空间所占的空间大小进行划分,例如,在一些场景中,可能需要存储更多的页表项,此时可以将第二缓存空间的容量增加,同时减小第一缓存空间的大小。又例如,在数据吞吐量较大时,可以相应的增大第一缓存空间的大小,使得能够有更多的缓存块来对存储单元中的数据进行缓存。换句话说,第一缓存空间和第二缓存空间共享系统级缓存单元的存储空间,可以根据实际情况进行灵活调整。
下面结合图6,对本申请实施例提供的数据处理方法进行详细的说明,图6中示出的方法可以应用于图5所示的系统级缓存单元50,该方法包括步骤S61-S63。
在步骤S61,确定主设备发送的读写访问请求所指示的目标物理地址。
在一些实施方式中,目标物理地址的确定可以根据所述读写访问请求中的地址指示来进行。具体的,系统级缓存单元接收主设备的读写访问请求,并对该读写访问请求进行解析,确定该读写访问请求中的地址指示。当该读写访问请求中的地址指示为存储单元的物理地址时,则直接以该物理地址作为目标物理地址。而当读写访问请求中的地址指示为虚拟地址时,利用该系统级缓存单元50对虚拟地址进行转换(又称翻译),将其转换为目标物理地址。
在步骤S62,根据目标物理地址,确定第一缓存空间中的目标缓存块或内存中的目标数据块。
应理解,此处所说的目标缓存块可以为第一缓存空间51中的多个缓存块中的一个或多个,目标数据块可以为存储单元中的多个数据块中的一个或多个。
在一些实施方式中,确定目标缓存块或目标数据块可以是:根据目标物理地址,在第一缓存空间中的多个存储数据目录表项中进行查找,当多个存储数据目录表项中有与该目标物理地址匹配的目标存储数据表项(或称有目标存储数据表项命中)时,确定该目标存储数据表项只是的缓存块为目标缓存块,此时该目标缓存块为存储单元中的多个数据块中与目标物理地址匹配的目标数据块的缓存,对于该目标数据块的数据读写可以直接在目标缓存块中进行,此时具有最高的数据读写效率。
而当上述查找均没有命中时,即当前第一缓存空间中不存在所述目标物理地址所指示的数据块的缓存块,则此时的数据读写需要在存储单元的数据块中进行。
在步骤S63,对目标缓存块或目标数据块执行数据读写操作。
在本申请实施例中,在目标缓存块或目标数据块上的数据读写操作的具体方式与相关中的方式相同,此处不再赘述。
根据本申请实施例提供的数据读写方法,通过将页表目录表项存储在系统级缓存单元的缓存空间中,相当于将存储器管理单元和系统级缓存单元进行了合并,缩短了寻址时的访问时延;同时,通过复用和优化系统级缓存单元的存储空间以及对寻址的逻辑进行优化,节约了芯片面积。
在一些实施方式中,如前文所述,第二缓存空间中包括用于指示虚拟地址与内存中的数据块的物理地址的映射关系的页表目录表项。因此,在步骤S61中,所述将所述虚拟地址转化为目标物理地址可以是:根据主设备的访问请求中的虚拟地址,在第二缓存空间的多个页表目录表项中进行查找,当查找命中时,以目标页表目录表项所指示的目标数据块的物理地址作为目标物理地址。
在一些实施方式中,当在第二缓存空间的多个页表目录表项中的查找没有命中时,可以读取存储单元中的多个页表项,确定与该虚拟地址相匹配的一个目标页表项,以该目标页表项所指示的物理地址作为目标物理地址。
在一些实施方式中,当在第二缓存空间的多个页表目录表项中的查找没有命中时,通过读取存储单元中的页表项,确定了目标物理地址,此时可以将该目标物理地址与前述虚拟地址的映射关系作为新的页表目录表项写入到第二行缓存空间中,从而使得在后续过程中,如果地址指示为前述虚拟地址,则可以通过查询页表目录表项的方式直接获取对应的目标物理地址,从而节约寻址的时间,提高数据读写的效率。
在一些实施方式中,在目标数据块中执行数据读写后,本申请实施例提供的方法还包括:向多个缓存块中的第一缓存块分配给目标数据块,以存储目标数据块中的数据;同时,将第一缓存块与目标物理地址的映射关系作为新的存储数据目录表项写入到第一缓存空间的多个存储数据目录表项中。
下面结合图7,对本申请实施例提供的系统级缓存单元的处理流程进行详细的举例说明。
在步骤S70,主设备发送读写访问和随路的地址指示到系统级缓存单元SLC。
在步骤S71,SLC接收读写访问以及地址指示,并对该地址指示进行判断,确定是否为物理地址。
当SLC解析地址指示为物理地址时,会将物理地址作为目标物理地址,转至步骤S72,而当SLC解析地址指示为虚拟地址时,执行步骤S76。
在步骤S72,根据前述步骤确定的目标物理地址,在SLC的第一缓存空间的多个存储数据目录表项中进行查找。
在步骤S73,判断在上述多个存储数据目录表项中的查找是否命中。命中时,执行步骤S74,否则执行步骤S75。
在前述步骤中,在多个存储数据目录表项中的查找命中则代表当前在SLC的第一缓存空间中具有与目标物理地址指示的数据块相对应的缓存块,则此时的数据读写可以在SLC的目标缓存块中进行。因此,在步骤S74,按照缓存块的粒度,对SLC中的第一缓存空间中的目标缓存块进行数据读写。
而当步骤S73中的查找未命中时,说明此时第一缓存空间中没有与目标地址指示的数据块相对应的缓存块,数据的读写需要在存储单元中进行。因此,在步骤S75,执行对存储单元的目标数据块进行数据读写,并分配第一缓存块给目标数据块,以缓存数据。
在前述步骤S71中的查找没有命中时,代表主设备发送的地址指示为虚拟地址,则需要将其转换为目标物理地址。
在步骤S76,根据上述虚拟地址,在SLC的第二缓存空间的多个页表目录表项中进行查找。
在步骤S77,判断步骤S76中的查询是否命中,命中时,执行步骤S78,否则执行步骤S79。
在步骤S78,按照页表的粒度,对SLC的第二缓存数据空间进行数据读写,确定目标页表目录表项所指示的目标数据块的物理地址为目标物理地址。
而当上述查询没有命中时,说明当前第二缓存空间中并没有存储该虚拟地址与物理地址的映射关系,则此时需要在存储单元的页表项中进行查找,以获得对应的物理地址。
在步骤S79,执行对存储单元的页表项的读写,确定与该虚拟地址相匹配的一个目标页表项,以该目标页表项所指示的物理地址作为目标物理地址。同时,将该目标物理地址与虚拟地址的映射关系作为新的页表目录表项写入第二缓存空间中。
上文结合图1-图7,介绍了本申请的方法实施例,下面结合附图,对本申请的装置实施例进行详细的说明。应理解,装置实施例的描述与方法实施例相对应,因此,未详细描述的部分可以前文中对方法实施例的描述。
图8是本申请实施例提供的数据处理装置的示意性结构图,图8中的装置可以应用于系统级缓存单元,该系统级缓存单元可以是前文中任一实施例所述的系统级缓存单元。图8中的装置80包括:
第一确定单元81,配置为确定所述主设备发送的读写访问请求所指示的目标物理地址;
第二确定单元82,配置为根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块;其中,所述目标缓存块为所述多个缓存块中的一个或多个,所述目标数据块为所述多个数据块中的一个或多个。
执行单元83,配置为对所述目标缓存块或所述目标数据块执行数据读写操作.
可选地,所述第一确定单元用于:解析所述读写访问请求;当所述读写访问请求中的地址指示为所述存储单元的物理地址时,以所述物理地址作为目标物理地址;或者,当所述读写访问请求中的所述地址指示为虚拟地址时,将所述虚拟地址转换为所述目标物理地址。
可选地,所述将所述虚拟地址转化为目标物理地址,包括:根据所述虚拟地址,在所述第二缓存空间中查询所述多个页表目录表项;当所述多个表目录表项中的目标页表目录表项命中时,将所述目标页表目录表项所指示的物理地址作为所述目标物理地址;或者,当所述多个表目录表项均没有命中时,读取所述存储单元的页表,获取所述虚拟地址对应的目标物理地址。
可选地,所述装置还包括:第一写入单元,配置为将所述虚拟地址与所述目标物理地址的映射关系作为新的页表目录表项写入到所述第二缓存空间中。
可选地,所述第二确定单元用于:根据所述目标物理地址,在所述第一缓存空间中查询所述多个存储数据目录表项;当所述多个存储数据目录表项中的目标存储数据表项命中时,确定所述目标存储数据表项指示的缓存块作为所述目标缓存块;当所述多个存储数据目录表项均没有命中时,以所述目标物理地址所指示的所述存储单元中的数据块作为所述目标数据块。
可选地,所述装置还包括:分配单元,配置为将所述多个缓存块中的第一缓存块分配给所述目标数据块,以存储所述目标数据块中的数据;第二写入单元,配置为将所述第一缓存块与所述目标物理地址的映射关系作为新的存储数据目录表项写入到所述第一缓存空间的多个存储数据目录表项中。
图9是本申请实施例提供的数据处理系统90的示意性结构图,该数据处理系统90包括:
至少一个主设备91、存储单元92以及系统级缓存单元93。其中,所述系统级缓存单元93设置在所述至少一个主设备91与所述存储单元92之间,用于进行地址转换以及对所述存储单元中的数据进行缓存;
所述系统级缓存单元93包括第一缓存空间931和第二缓存空间932。
其中,所述第一缓存空间931包括多个缓存块以及多个存储数据目录表项,所述多个缓存块用于缓存所述存储单元中的数据,所述多个存储数据目录表项用于指示所述缓存块与所述存储单元中的数据块的物理地址的映射关系。
所述第二缓存空间932包括多个页表目录表项,所述页表目录表项用于指示虚拟地址与所述存储单元中的数据块的物理地址的映射关系;
所述系统级缓存单元93用于:
确定所述主设备91发送的读写访问请求所指示的目标物理地址;
根据所述目标物理地址,确定所述第一缓存空间931中的目标缓存块或所述存储单元92中的目标数据块;其中,所述目标缓存块为所述多个缓存块中的一个或多个,所述目标数据块为所述多个数据块中的一个或多个。
对所述目标缓存块或所述目标数据块执行数据读写操作;
可选地,所述确定所述主设备发送的读写访问请求所指示的目标物理地址,包括:解析所述读写访问请求;当所述读写访问请求中的地址指示为所述存储单元的物理地址时,以所述物理地址作为目标物理地址;或者,当所述读写访问请求中的所述地址指示为虚拟地址时,将所述虚拟地址转换为所述目标物理地址。
可选地,所述将所述虚拟地址转化为目标物理地址,包括:根据所述虚拟地址,在所述第二缓存空间中查询所述多个页表目录表项;当所述多个表目录表项中的目标页表目录表项命中时,将所述目标页表目录表项所指示的物理地址作为所述目标物理地址;或者,当所述多个表目录表项均没有命中时,读取所述存储单元的页表,获取所述虚拟地址对应的目标物理地址。
可选地,所述系统级缓存单元还用于:将所述虚拟地址与所述目标物理地址的映射关系作为新的页表目录表项写入到所述第二缓存空间中。
可选地,,所述根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块,包括:根据所述目标物理地址,在所述第一缓存空间中查询所述多个存储数据目录表项;当所述多个存储数据目录表项中的目标存储数据表项命中时,确定所述目标存储数据表项指示的缓存块作为所述目标缓存块;当所述多个存储数据目录表项均没有命中时,以所述目标物理地址所指示的所述存储单元中的数据块作为所述目标数据块。
可选地,所述系统级缓存单元还用于:将所述多个缓存块中的第一缓存块分配给所述目标数据块,以存储所述目标数据块中的数据;将所述第一缓存块与所述目标物理地址的映射关系作为新的存储数据目录表项写入到所述第一缓存空间的多个存储数据目录表项中。
图10是本申请实施例提供的一种系统级SOC芯片100的示意性结构图。图10中的SOC芯片包括:至少一个主设备1001A,…,1001N以及系统级缓存单元1002。
其中,主设备可以为前文中任一实施例中所述的主设备,例如可以是CPU、GPU、NPU、APU以及ISP等SOC中的部件,或者还可以是设置在SOC外部的多媒体设备,例如视频播放设备、音频播放设备等。
系统级缓存单元1002或主设备1001A,…,1001N用于执行前文中任一实施例所述的数据处理方法。
图11是本申请实施例提供的计算机设备110的示意性结构图。该计算机设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等。
图11中的计算机设备110包括芯片1101和存储单元1102。芯片1101通过总线和存储单元1102相连。其中,所述芯片1101可以是上述各个实施例任一所述的SOC芯片,该芯片运行时实现如前文中各实施例中所述的数据处理方法。
本申请实施例还提供一种可读存储介质,用于存储程序。该计算机可读存储介质可应用于本申请实施例提供的终端设备或网络设备中,并且该程序使得计算机执行本申请各个实施例中的由终端设备或网络设备执行的方法。
本申请实施例还提供一种计算机程序产品。该计算机程序产品包括程序。该计算机程序产品可应用于本申请实施例提供的终端设备或网络设备中,并且该程序使得计算机执行本申请各个实施例中的由终端设备或网络设备执行的方法。
本申请实施例还提供一种计算机程序。该计算机程序可应用于本申请实施例提供的终端设备或网络设备中,并且该计算机程序使得计算机执行本申请各个实施例中的由终端设备或网络设备执行的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以意识到,结合本公开实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种数据处理方法,所述方法应用于系统级缓存单元,所述系统级缓存单元设置在至少一个主设备与存储单元之间,以进行地址转换以及对所述存储单元中的数据进行缓存,其特征在于,
所述系统级缓存单元包括第一缓存空间和第二缓存空间;
其中,所述第一缓存空间包括多个缓存块以及多个存储数据目录表项,所述多个缓存块用于缓存所述存储单元中的数据,所述多个存储数据目录表项用于指示所述缓存块与所述存储单元中的数据块的物理地址的映射关系;
所述第二缓存空间包括多个页表目录表项,所述页表目录表项用于指示虚拟地址与所述存储单元中的数据块的物理地址的映射关系;
所述方法包括:
确定所述主设备发送的读写访问请求所指示的目标物理地址;
根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块;
对所述目标缓存块或所述目标数据块执行数据读写操作;
其中,所述目标缓存块为所述多个缓存块中的一个或多个,所述目标数据块为所述多个数据块中的一个或多个。
2.根据权利要求1所述的方法,其特征在于,所述确定所述主设备发送的读写访问请求所指示的目标物理地址,包括:
解析所述读写访问请求;
当所述读写访问请求中的地址指示为所述存储单元的物理地址时,以所述物理地址作为目标物理地址;或者,
当所述读写访问请求中的所述地址指示为虚拟地址时,将所述虚拟地址转换为所述目标物理地址。
3.根据权利要求2所述的方法,其特征在于,所述将所述虚拟地址转化为目标物理地址,包括:
根据所述虚拟地址,在所述第二缓存空间中查询所述多个页表目录表项;
当所述多个表目录表项中的目标页表目录表项命中时,将所述目标页表目录表项所指示的物理地址作为所述目标物理地址;或者,
当所述多个表目录表项均没有命中时,读取所述存储单元的页表,获取所述虚拟地址对应的目标物理地址。
4.根据权利要求3所述的方法,其特征在于,在所述读取所述存储单元的页表,获取所述虚拟地址对应的目标物理地址之后,所述方法还包括:将所述虚拟地址与所述目标物理地址的映射关系作为新的页表目录表项写入到所述第二缓存空间中。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块包括:
根据所述目标物理地址,在所述第一缓存空间中查询所述多个存储数据目录表项;
当所述多个存储数据目录表项中的目标存储数据表项命中时,确定所述目标存储数据表项指示的缓存块作为所述目标缓存块;
当所述多个存储数据目录表项均没有命中时,以所述目标物理地址所指示的所述存储单元中的数据块作为所述目标数据块。
6.根据权利要求1所述的方法,其特征在于,在所述目标数据块中执行数据读写后,所述方法还包括:
将所述多个缓存块中的第一缓存块分配给所述目标数据块,以存储所述目标数据块中的数据;
将所述第一缓存块与所述目标物理地址的映射关系作为新的存储数据目录表项写入到所述第一缓存空间的多个存储数据目录表项中。
7.一种数据处理装置,所述装置应用于系统级缓存单元,所述系统级缓存单元设置在至少一个主设备与存储单元之间,以进行地址转换以及对所述存储单元中的数据进行缓存,其特征在于,
所述系统级缓存单元包括第一缓存空间和第二缓存空间;
其中,所述第一缓存空间包括多个缓存块以及多个存储数据目录表项,所述多个缓存块用于缓存所述存储单元中的数据,所述多个存储数据目录表项用于指示所述缓存块与所述存储单元中的数据块的物理地址的映射关系;
所述第二缓存空间包括多个页表目录表项,所述页表目录表项用于指示虚拟地址与所述存储单元中的数据块的物理地址的映射关系;
所述装置包括:
第一确定单元,配置为确定所述主设备发送的读写访问请求所指示的目标物理地址;
第二确定单元,配置为根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块;
执行单元,配置为对所述目标缓存块或所述目标数据块执行数据读写操作;
其中,所述目标缓存块为所述多个缓存块中的一个或多个,所述目标数据块为所述多个数据块中的一个或多个。
8.根据权利要求7所述的装置,其特征在于,所述第一确定单元用于:
解析所述读写访问请求;
当所述读写访问请求中的地址指示为所述存储单元的物理地址时,以所述物理地址作为目标物理地址;或者,
当所述读写访问请求中的所述地址指示为虚拟地址时,将所述虚拟地址转换为所述目标物理地址。
9.根据权利要求8所述的装置,其特征在于,所述将所述虚拟地址转化为目标物理地址,包括:
根据所述虚拟地址,在所述第二缓存空间中查询所述多个页表目录表项;
当所述多个表目录表项中的目标页表目录表项命中时,将所述目标页表目录表项所指示的物理地址作为所述目标物理地址;或者,
当所述多个表目录表项均没有命中时,读取所述存储单元的页表,获取所述虚拟地址对应的目标物理地址。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一写入单元,配置为将所述虚拟地址与所述目标物理地址的映射关系作为新的页表目录表项写入到所述第二缓存空间中。
11.根据权利要求7所述的装置,其特征在于,所述第二确定单元用于:
根据所述目标物理地址,在所述第一缓存空间中查询所述多个存储数据目录表项;
当所述多个存储数据目录表项中的目标存储数据表项命中时,确定所述目标存储数据表项指示的缓存块作为所述目标缓存块;
当所述多个存储数据目录表项均没有命中时,以所述目标物理地址所指示的所述存储单元中的数据块作为所述目标数据块。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
分配单元,配置为将所述多个缓存块中的第一缓存块分配给所述目标数据块,以存储所述目标数据块中的数据;
第二写入单元,配置为将所述第一缓存块与所述目标物理地址的映射关系作为新的存储数据目录表项写入到所述第一缓存空间的多个存储数据目录表项中。
13.一种数据处理系统,其特征在于,所述系统包括:
至少一个主设备、存储单元以及系统级缓存单元;
其中,所述系统级缓存单元设置在所述至少一个主设备与所述存储单元之间,用于进行地址转换以及对所述存储单元中的数据进行缓存;
所述系统级缓存单元包括第一缓存空间和第二缓存空间,其中,所述第一缓存空间包括多个缓存块以及多个存储数据目录表项,所述多个缓存块用于缓存所述存储单元中的数据,所述多个存储数据目录表项用于指示所述缓存块与所述存储单元中的数据块的物理地址的映射关系;所述第二缓存空间包括多个页表目录表项,所述页表目录表项用于指示虚拟地址与所述存储单元中的数据块的物理地址的映射关系;
所述系统级缓存单元用于:
确定所述主设备发送的读写访问请求所指示的目标物理地址;
根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块;
对所述目标缓存块或所述目标数据块执行数据读写操作;
其中,所述目标缓存块为所述多个缓存块中的一个或多个,所述目标数据块为所述多个数据块中的一个或多个。
14.根据权利要求13所述的系统,其特征在于,所述确定所述主设备发送的读写访问请求所指示的目标物理地址,包括:
解析所述读写访问请求;
当所述读写访问请求中的地址指示为所述存储单元的物理地址时,以所述物理地址作为目标物理地址;或者,
当所述读写访问请求中的所述地址指示为虚拟地址时,将所述虚拟地址转换为所述目标物理地址。
15.根据权利要求14所述的系统,其特征在于,所述将所述虚拟地址转化为目标物理地址,包括:
根据所述虚拟地址,在所述第二缓存空间中查询所述多个页表目录表项;
当所述多个表目录表项中的目标页表目录表项命中时,将所述目标页表目录表项所指示的物理地址作为所述目标物理地址;或者,
当所述多个表目录表项均没有命中时,读取所述存储单元的页表,获取所述虚拟地址对应的目标物理地址。
16.根据权利要求15所述的系统,其特征在于,所述系统级缓存单元还用于:
将所述虚拟地址与所述目标物理地址的映射关系作为新的页表目录表项写入到所述第二缓存空间中。
17.根据权利要求13所述的系统,其特征在于,所述根据所述目标物理地址,确定所述第一缓存空间中的目标缓存块或所述存储单元中的目标数据块,包括:
根据所述目标物理地址,在所述第一缓存空间中查询所述多个存储数据目录表项;
当所述多个存储数据目录表项中的目标存储数据表项命中时,确定所述目标存储数据表项指示的缓存块作为所述目标缓存块;
当所述多个存储数据目录表项均没有命中时,以所述目标物理地址所指示的所述存储单元中的数据块作为所述目标数据块。
18.根据权利要求13所述的系统,其特征在于,所述系统级缓存单元还用于:
将所述多个缓存块中的第一缓存块分配给所述目标数据块,以存储所述目标数据块中的数据;
将所述第一缓存块与所述目标物理地址的映射关系作为新的存储数据目录表项写入到所述第一缓存空间的多个存储数据目录表项中。
19.一种系统级SOC芯片,其特征在于,
所述SOC芯片包括:至少一个主设备以及系统级缓存单元,所述至少一个所述主设备通过总线与所述系统级缓存单元相连;
所述系统级缓存或所述主设备用于执行如权利要求1至6中任一所述的数据处理方法。
20.一种计算机设备,其特征在于,
所述计算机设备包括:芯片和存储单元,所述芯片和所述存储单元相连;
所述芯片包括如权利要求19所述的SOC芯片。
CN202210945784.XA 2022-08-08 2022-08-08 数据处理方法、装置及系统、系统级soc芯片及计算机设备 Pending CN115481054A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210945784.XA CN115481054A (zh) 2022-08-08 2022-08-08 数据处理方法、装置及系统、系统级soc芯片及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210945784.XA CN115481054A (zh) 2022-08-08 2022-08-08 数据处理方法、装置及系统、系统级soc芯片及计算机设备

Publications (1)

Publication Number Publication Date
CN115481054A true CN115481054A (zh) 2022-12-16

Family

ID=84423158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210945784.XA Pending CN115481054A (zh) 2022-08-08 2022-08-08 数据处理方法、装置及系统、系统级soc芯片及计算机设备

Country Status (1)

Country Link
CN (1) CN115481054A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794673A (zh) * 2023-01-19 2023-03-14 北京象帝先计算技术有限公司 系统级芯片non-Cacheable数据的访问方法、装置及电子设备
CN115878507A (zh) * 2023-01-19 2023-03-31 北京象帝先计算技术有限公司 系统级芯片的内存访问方法、装置及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115794673A (zh) * 2023-01-19 2023-03-14 北京象帝先计算技术有限公司 系统级芯片non-Cacheable数据的访问方法、装置及电子设备
CN115878507A (zh) * 2023-01-19 2023-03-31 北京象帝先计算技术有限公司 系统级芯片的内存访问方法、装置及电子设备

Similar Documents

Publication Publication Date Title
US8037281B2 (en) Miss-under-miss processing and cache flushing
US20210089470A1 (en) Address translation methods and systems
CN110895446A (zh) 存储设备以及系统
US11474951B2 (en) Memory management unit, address translation method, and processor
CN115481054A (zh) 数据处理方法、装置及系统、系统级soc芯片及计算机设备
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
CN113424160A (zh) 一种处理方法、装置及相关设备
KR20150038513A (ko) 단일 페이지 테이블 엔트리 내의 속성 필드들의 다중 세트들
US20240086323A1 (en) Storage management apparatus, storage management method, processor, and computer system
US11921650B2 (en) Dedicated cache-related block transfer in a memory system
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
CN114328295A (zh) 存储管理装置、处理器、相关装置和相关方法
CN114546896A (zh) 系统内存管理单元、读写请求处理方法、电子设备和片上系统
CN118020064A (zh) 具有伪lru补充年龄信息的重新引用区间预测(rrip)
CN115509959A (zh) 处理系统、控制方法、芯片及计算机可读存储介质
US8347064B1 (en) Memory access techniques in an aperture mapped memory space
CN113722247B (zh) 物理内存保护单元、物理内存权限控制方法和处理器
CN114637700A (zh) 针对目标虚拟地址的地址转换方法、处理器及电子设备
CN114036089A (zh) 数据处理方法、装置、缓存器、处理器及电子设备
JP6343722B2 (ja) マルチコアシステムにおいてデータ訪問者ディレクトリにアクセスするための方法及びデバイス
JP2003281079A (ja) ページ・テーブル属性によるバス・インタフェース選択
CN116821011A (zh) 参数确定及数据读写方法、处理器、装置、计算机设备
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
CN114063934A (zh) 数据更新装置、方法及电子设备
US10180904B2 (en) Cache memory and operation method thereof

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