CN115509959A - 处理***、控制方法、芯片及计算机可读存储介质 - Google Patents
处理***、控制方法、芯片及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115509959A CN115509959A CN202211048195.8A CN202211048195A CN115509959A CN 115509959 A CN115509959 A CN 115509959A CN 202211048195 A CN202211048195 A CN 202211048195A CN 115509959 A CN115509959 A CN 115509959A
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- mapping data
- management unit
- page table
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种处理***、控制方法、芯片及计算机可读存储介质。该处理***包括:内存管理单元,用于对内存进行管理;处理器,其上运行有操作***,处理器用于执行以下操作:生成第一映射数据,第一映射数据用于指示操作***的第一虚拟地址和内存的第一物理地址之间的映射关系;将第一映射数据存储在缓存中;如果内存管理单元未从缓存中取走第一映射数据,则对缓存进行控制,使得第一映射数据不被替换至内存中。本申请实施例可以避免第一映射数据从缓存被替换至内存,进而避免引起内存管理单元与内存之间的反复访存,有助于减少功耗,提高***性能。
Description
技术领域
本申请实施例涉及数据存储技术领域,并且更为具体地,涉及一种处理***、控制方法、芯片及计算机可读存储介质。
背景技术
在当前较大规模的片上***芯片中,操作***一般都需要基于虚拟地址来管理存储空间,虚拟地址到物理地址的映射关系通常以页表的形式存储在内存中。操作***使用内存管理单元来负责页表的虚拟地址到物理地址的转换。
新创建的页表通常会存在于中央处理器的缓存中,内存管理单元如果来不及取走缓存中的页表,则页表可能会被硬件替换到内存中。内存管理单元需要从内存中取页表,从而导致功耗增加、性能损失。
发明内容
本申请实施例提供了一种处理***、控制方法、芯片及计算机可读存储介质,下面对本申请实施例的各个方面进行介绍。
第一方面,提供一种处理***,包括:内存管理单元,用于对内存进行管理;处理器,其上运行有操作***,所述处理器用于执行以下操作:生成第一映射数据,所述第一映射数据用于指示所述操作***的第一虚拟地址和所述内存的第一物理地址之间的映射关系;将所述第一映射数据存储在缓存中;如果所述内存管理单元未从所述缓存中取走所述第一映射数据,则对所述缓存进行控制,使得所述第一映射数据不被替换至所述内存中。
第二方面,提供一种控制方法,包括:生成第一映射数据,所述第一映射数据用于指示操作***的第一虚拟地址和内存的第一物理地址之间的映射关系;将所述第一映射数据存储在缓存中;如果内存管理单元未从所述缓存中取走所述第一映射数据,则对所述缓存进行控制,使得所述第一映射数据不被替换至所述内存中。
第三方面,提供一种芯片,包括如第一方面所述的处理***。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于执行如第二方面所述的控制方法。
本申请实施例在缓存中创建第一映射数据,在内存管理单元未取走第一映射数据之前,不得将第一映射数据从缓存替换至内存。本申请实施例可以避免第一映射数据从缓存被替换至内存,进而避免引起内存管理单元与内存之间的反复访存,有助于减少内存功耗,提高***性能。
附图说明
图1是内存管理单元获取缓存中页表的流程示意图。
图2是内存管理单元获取内存中页表的流程示意图。
图3是本申请实施例提供的处理***的结构示意图。
图4是图3处理***的一种可能的实现方式的示意图。
图5是本申请实施例提供的控制方法的流程示意图。
图6是图5方法的一种可能的实现方式的流程示意图。
图7是本申请实施例提供的芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。
当前在片上***(system on chip,SOC)芯片中,如果涉及运行较复杂的操作***,例如安卓、Linux等操作***,一般都需要操作***基于虚拟地址来管理存储空间。SOC又称为***级芯片,是在单个芯片上集成一个完整的***。所谓完整的***一般包括中央处理器(central processing unit,CPU)、存储器、以及***电路等。CPU也称为中央处理单元或微处理器。虚拟地址是需要访问芯片存储空间的访问者(例如中央处理器)所使用的地址,而物理地址是芯片存储空间的真实地址。虚拟地址到物理地址的映射关系通常是以页表的形式存储在内存中。
内存管理单元(memory management unit,MMU)用于负责页表的虚拟地址与物理地址之间的转换。MMU是一个芯片内部模块,其基本功能就是地址映射,通过地址映射可以实现一个虚拟地址去访问指定的物理地址。
当应用软件新创建页表时,新的页表通常会存在于CPU的缓存(Cache)或内存中,这时内存管理单元需要从缓存或内存中取走页表。
存储设备是用于储存信息的设备,位于处理器的片上或片外,并且被配置为检索和存储与物理存储器地址相关联的数据。根据用途的不同通常可以分为内存和外存(辅助存储器),内存(Memory)也称为内存储器、主存储器或主存。内存按工作原理可以分为随机访问存储器(random access memory,RAM)和只读存储器(read only memory,ROM),RAM是其中重要的存储器。存储设备还可以包括缓存(Cache),其包括一个或多个级别的高速缓存存储器。
缓存是指可以进行高速数据交换的存储器。缓存通常容量比较小,存储CPU更频繁地访问的数据,但速度比内存高得多,先于内存与CPU交换数据,可以显著提高计算机***的处理速度。缓存的工作原理是当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理。如果没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
图1是内存管理单元获取缓存中的页表的流程示意图。为便于介绍,以多核处理器***中的共享缓存为例进行说明。如图1所示,该处理器***包括CPU110、内存管理单元130和内存140。其中,缓存120位于CPU110中,缓存120为三级缓存,也是多核处理器的共享缓存。内存管理单元130完成页表的虚实地址转换,要完成页表的一个访存指令,正常情况下需要经历以下几个步骤:
在步骤一,响应应用软件新建页表的指令,在缓存120中新建页表。当软件新创建页表时,新的页表大概率会存在于CPU110的缓存120中。通常缓存中的页表为快表,内存中的页表为慢表。
在步骤二,内存管理单元130及时从缓存120中取走新页表。
在步骤三,CPU110因进程需要读写内存140,如该进程涉及新页表的数据,访问传输经内存管理单元130,内存管理单元130完成新页表的虚拟地址到物理地址的转换。
在步骤四,内存管理单元130将访问指令传递到内存140,根据物理地址对内存140进行访存操作。至此,整个指令的传输完成。
当应用软件在CPU的Cache中新创建页表时,如果内存管理单元来不及取走Cache中的页表,则页表可能会被硬件替换到内存中。这时内存管理单元必须从内存中取页表,而内存的访存速度会比Cache的访存速度慢数倍,从而导致功耗增加、性能损失。
图2是内存管理单元获取内存中的页表的流程示意图。如图2所示,该处理器***包括CPU110、内存管理单元130和内存140,其中,缓存120位于CPU110中。内存管理单元130完成内存140中页表的虚实地址转换,要完成页表的一个访存指令,需要经历以下几个步骤:
在步骤一,响应应用软件新建页表的指令,在缓存120中新建页表。
在步骤二,内存管理单元130未及时从缓存120中取走新页表。通常缓存空间较小,未及时从缓存120中取走,页表会被替换至内存140中。
在步骤三,CPU110因进程需要读写内存140,例如该进程涉及新页表的数据,访问传输经内存管理单元130。
在步骤四,内存管理单元130未存有所需页表,则向内存140发起访问。
在步骤五,内存管理单元130从内存140中取回该页表。
在步骤六,内存管理单元130完成新页表的虚拟地址到物理地址的转换。内存管理单元130将访问指令传递到内存140,根据物理地址对内存140进行读写操作。至此,整个指令的传输完成。
可见,当页表已经被替换至内存时,CPU或其他外设一次读写所需的步骤多于页表及时被MMU取走的场景,MMU与内存之间会出现反复访存,从而导致内存的功耗增加、延迟明显和性能损失。
需要说明的是,上文提及的页表被替换至内存会带来性能损失的场景仅是一个示例,本申请实施例可应用于缓存中虚实地址的映射关系在被MMU取走前被替换出去存在功耗增加的任意类型的场景。
因此,如何开发一种减少功耗浪费的内存管理的方案是需要解决的问题。
基于此,本申请实施例提出一种处理***,下面对本申请实施例进行详细描述。
图3是本申请实施例提供的一种处理***的结构示意图。如图3所示,该处理***包括内存管理单元310、内存320、处理器330和缓存340。
内存管理单元310与内存320相连,用于对内存320进行管理。内存管理单元310的基本功能就是地址映射,通过地址映射可以实现一个虚拟地址去访问指定的物理地址。如将页表中的虚拟地址转换为物理地址。
内存管理单元310可以为处理器330对应的内存管理单元,也可以为第一外部设备对应的内存管理单元。外部设备,或叫***设备,简称外设。通常为输入设备和输出设备,因此外部设备对应的内存管理单元也称为输入/输出内存管理单元(input/output memorymanagement unit,IOMMU)。第一外部设备可以为与处理***相连的任一外部设备。
外部设备大致可分为三类:人机交互设备(如打印机,显示器,绘图仪,语言合成器)、计算机信息的存储设备(如磁盘,光盘,磁带)和机-机通信设备(如调制解调器)。
内存320可以为RAM和ROM等。根据物理地址可以对内存320进行访存操作,如读取数据、写入数据等。
处理器330用于处理指令,例如接收应用程序的运算指令、新建页表指令,进行处理。处理器330可以为单核处理器,也可以为多核处理器,如四核、八核处理器。
多核处理器是指在一枚处理器中集成两个或多个完整的计算内核。此时处理器可以支持***总线上的多个处理器,由总线控制器提供所有总线控制信号和命令信号。
缓存340通常存储CPU会频繁访问的数据。缓存340通常位于CPU330中。在一些实施例中,缓存340也可以位于CPU330外。可以在缓存340内新建页表,以便快速访问该页表。缓存340可以为独立的Cache,也可以为共享Cache。例如在多核处理器***中,缓存340可以为多核处理器***的共享缓存。
在一些实现方式中,三级缓存都是集成在CPU内的缓存,包括一级缓存L1、二级缓存L2和三级缓存L3。它们的作用都是作为CPU与内存之间的高速数据缓冲区,L1最靠近CPU核心,L2其次,L3再次。而运行速度方面,L1最快、L2次快、L3最慢;容量大小方面:L1最小、L2较大、L3最大。
多核处理器***中,各核心处理器通常具有单独的一级缓存L1和二级缓存L2,三级缓存L3一般为共享缓存。L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。
处理器330上运行有操作***,例如安卓、Linux等操作***。操作***通常基于虚拟地址来管理存储空间。操作***新建映射数据时,指令可以来自应用软件或应用程序,处理器330可以执行以下操作步骤:
在步骤一,生成第一映射数据,第一映射数据用于指示操作***的第一虚拟地址和内存320的第一物理地址之间的映射关系。虚拟地址是访问芯片存储空间的访问者(例如CPU)所使用的地址,虚拟地址也称为逻辑地址、有效地址。第一虚拟地址可以为虚拟地址空间的任一地址。物理地址是芯片存储空间的真实地址,第一物理地址可以为芯片物理地址空间的任一地址。
在一些实现方式中,第一映射数据例如可以为页表。页表是定义虚拟地址与物理地址映射规则的一种数据结构。逻辑地址为CPU所生成的地址,CPU产生的逻辑地址可以分为页码和页内偏移量,页码包含每个页在物理内存中的基址,用来作为页表的索引。页内偏移量与基址相结合,用来确定内存的物理地址。所有逻辑地址的集合成为逻辑地址空间。
物理地址为内存的实际地址,与逻辑地址相对应的内存中所有物理地址的集合为物理地址空间。
页表通常包含页表条目(page table entry,PTE)以将虚拟地址映射到物理地址。页表可以单级别,页表也可以有多个级别,这取决于基本页面大小、在每个级别的页表条目数以及所支持的虚拟地址空间的位数。
在步骤二,将第一映射数据存储在缓存340中。也便于处理器330能快速访问该数据。
在步骤三,如果内存管理单元310未从缓存340中取走第一映射数据,则对缓存340进行控制,使得第一映射数据不被替换至内存320中。
处理器330对缓存340进行控制,使得第一映射数据不被替换至内存320中。从而访问第一映射数据时,避免内存管理单元与内存之间出现反复访存的情况,减少功耗浪费。
在一些实现方式中,如图3中的虚线所示,CPU访问缓存内新创建的第一映射数据,例如页表,需要经历以下几个步骤:
在步骤一,CPU330响应新建页表的指令,将新创建页表置于可被Cache缓存的地址空间,如在缓存340中新建页表。指令可以来自应用软件或应用程序。
在步骤二,内存管理单元310从缓存340中取走新页表。如果内存管理单元310未及时取走页表,在内存管理单元310取走页表之前,不得将页表从缓存340替换至内存320中。
在步骤三,CPU330因进程读写内存320,例如该进程涉及新页表的数据,传输经内存管理单元310,内存管理单元310完成新页表的虚拟地址到物理地址的转换。
在步骤四,内存管理单元330将访存指令传递到内存320,根据转换的物理地址对内存320进行读写操作。至此,整个访存指令的传输完成。
在一些实现方式中,为了便于查询缓存的第一映射数据是否已被内存管理单元取走,内存管理单元可以针对要取走的第一映射数据设置标志信息,如特定标志位。该标志信息用于指示第一映射数据是否被内存管理单元取走。标志位可以指示第一映射数据是否被内存管理单元取走的不同状态。例如该标志位显示页表未被取走的正常状态为“0”,如果标志位显示页表已经被MMU取走,该页表才可以被置位,被MMU取走后可以置位为“1”,对其复位就是将其设为“0”。若没有被置位的页表不得被替换至内存中。在一些实施例中,该标志位显示页表未被取走的正常状态也可以为“1”,被MMU取走后可以切换为“0”。
标志信息可以设置在缓存的缓存行(Cacheline)中。第一映射数据存储在缓存的第一缓存行中,在第一缓存行设有标识信息。标识信息用于指示第一映射数据是否被内存管理单元取走。
第一缓存行可以为缓存的缓存行(Cacheline)中的任一缓存行。缓存行也称为高速缓存行,是Cache缓存数据的最小单位,包括存储块以及其它信息(有效位和标记位)。通常每一缓存行包括一个有效位(valid bit)指明这个行是否包含有意义的信息,一个长度为T的标记位(tag bit),唯一标识存储在这个缓存行中的块在内存中的地址。
在一些实现方式中,如果标志信息显示第一映射数据的缓存行已经被MMU取走,该缓存行才可以被置位,例如该标志位未被取走的正常状态可以为“0”,被MMU取走后可以置位为“1”,对其复位可以将其设为“0”。若没有被置位的缓存行不应被缓存硬件替换至内存中。
通常缓存的空间较小,使用频率较高,新建的页表占用缓存的空间不宜过久。在一些实现方式中,处理器330还可以主动触发内存管理单元310取走新建的第一映射数据,如页表。例如,处理器330可以主动触发CPU330对应的内存管理单元及时取走新建的页表,以免过久占用缓存空间。又比如,处理器330也可以主动触发第一外部设备对应的内存管理单元及时取走新建的页表。
本申请实施例在缓存中创建第一映射数据,在内存管理单元未取走第一映射数据之前,不得将第一映射数据从缓存替换至内存。本申请实施例可以避免第一映射数据从缓存被替换至内存,进而避免引起内存管理单元与内存之间的反复访存,有助于减少内存功耗,提高***性能。
图4是图3所示的处理***的一种可能的实现方式的结构示意图。如图4所示,该处理器为多核处理器,该处理器***包括内存管理单元410、内存420、处理器430和缓存440。
内存管理单元410可以将第一映射数据中的虚拟地址转换为数据的物理地址。内存管理单元410可以为处理器对应的内存管理单元,也可以为第一外部设备对应的内存管理单元。
内存420与内存管理单元410相连,根据物理地址可以对内存420进行访存操作,如读取数据、写入数据等。
处理器430用于处理指令。处理器410可以为多核处理器,如四核、八核处理器。各核心处理器具有单独的一级缓存L1和二级缓存L2。
缓存440可以位于处理器430中,一般存储CPU会频繁访问的数据。可以在缓存440内新建页表,以便快速访问该页表。缓存440为多核处理器***的共享缓存,即三级缓存L3。L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。
针对新建的页表,缓存行中可以设有标志位。例如,如该标志位显示页表未被取走的正常状态为“0”,如果页表已经被MMU取走,该标志位才可以被置位,被MMU取走后可以置位为“1”。若没有被置位的缓存行不得被缓存440硬件替换至内存420中。
新建页表后,处理器430还可以主动触发内存管理单元410及时取走新建的页表。例如,可以主动触发处理器430对应的内存管理单元及时取走新建的页表,以免过久占用缓存空间。又比如,也可以主动触发第一外部设备对应的内存管理单元及时取走新建的页表。
如图4所示,内存管理单元410获取页表,完成一个访存指令,需要经历以下几个步骤:
在步骤一,处理器430响应应用软件新建页表的指令,应将新创建页表置于可被CPU中的Cache的地址空间,如在三级缓存440中新建页表。
在步骤二,缓存440中新建页表时,针对新建的页表,缓存行设有标志位。在内存管理单元410取走页表之前,标志位不被置位,不得将页表从缓存440替换至内存420中。
在步骤三,处理器430主动触发内存管理单元410及时取走新建的页表,如标志位未置位的页表。
在步骤四,内存管理单元410从缓存440中取走新页表。处理器310因进程读写内存420,例如该进程涉及新页表的数据,访问传输经内存管理单元410,内存管理单元410完成新页表的虚拟地址到物理地址的转换。
在步骤五,内存管理单元430将访问指令传递到内存440,以转换对应的物理地址对内存340进行读写操作。至此,整个指令的传输完成。
本申请实施例对于缓存中的新建页表,设置标志位,在内存管理单元未取走页表之前,标志位不置位,不得将页表从缓存替换至内存中,CPU还可以主动触发内存管理单元及时取走标志位未置位的新建页表。本申请实施例可以避免内存管理单元和内存之间出现的反复访存,有助于减少内存功耗,提高CPU和外设获取页表的性能。
上文结合图1-图4,详细描述了本申请的***实施例,下面结合图5-图6,详细描述本申请的方法实施例。应理解,方法实施例的描述与***实施例的描述相互对应,因此,未详细描述的部分可以参见前面***实施例。
图5是本申请实施例提供的一种控制方法的流程示意图。图5的方法可应用于前文任一实施例描述的处理***。该处理***可以包括:内存管理单元,用于对内存进行管理;处理器,其上运行有操作***,所述处理器用于执行以下操作:生成第一映射数据,所述第一映射数据用于指示所述操作***的第一虚拟地址和所述内存的第一物理地址之间的映射关系;将所述第一映射数据存储在缓存中;如果所述内存管理单元未从所述缓存中取走所述第一映射数据,则对所述缓存进行控制,使得所述第一映射数据不被替换至所述内存中。
图5的方法包括步骤S510至步骤S530,下面对这些步骤进行详细描述。
在步骤S510中,生成第一映射数据,第一映射数据用于指示操作***的第一虚拟地址和内存的第一物理地址之间的映射关系。
在步骤S520中,将第一映射数据存储在缓存中。
在步骤S530中,如果内存管理单元未从缓存中取走第一映射数据,则对缓存进行控制,使得第一映射数据不被替换至内存中。
图6是图5方法的一种可能的实现方式的流程示意图。内存管理单元获取页表,完成一个访存指令,图6的方法可以包括步骤S610至步骤S640,下面对这些步骤进行详细描述。
在步骤S610中,在缓存内新建页表,为新页表设置标志位。
在步骤S620中,如果内存管理单元未从缓存中取走页表,则对缓存进行控制,使得页表不被替换至内存中。主动触发存储管理单元及时取走标志位未置位的页表。
在步骤S630中,存储管理单元从缓存内取走该页表,将页表中的虚拟地址转换为物理地址。
在步骤S640中,根据物理地址,对主存进行访存操作。
图7是本申请实施例提供的芯片的示意图。如图7所示,该芯片700可以包括如前文任一描述的处理***710。
前文描述的本申请实施例的控制方法,包括页表获取及管理的方法,通常会在芯片的相关模块配置中描述,如在相关模块的寄存器配置中进行描述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序用于执行如前文任一描述的控制方法。
应理解,本申请实施例提及的计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digitalvideo disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
应理解,在本申请的各种实施例中,“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在本申请所提供的几个实施例中,应该理解到,当称某一部分与另一部分“连接”或“相连”时,其意味着该部分不仅可以“直接连接”,而且也可以“电连接”,同时另一个元件介入其中。另外,术语“连接”也意指该部分“物理地连接”以及“无线地连接”。另外,当称某一部分“包含”某一元件时,除非另行加以陈述,否则,其意味着该某一部分可以包括另一元件,而不是排除所述另一个元件。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种处理***,其特征在于,包括:
内存管理单元,用于对内存进行管理;
处理器,其上运行有操作***,所述处理器用于执行以下操作:
生成第一映射数据,所述第一映射数据用于指示所述操作***的第一虚拟地址和所述内存的第一物理地址之间的映射关系;
将所述第一映射数据存储在缓存中;
如果所述内存管理单元未从所述缓存中取走所述第一映射数据,则对所述缓存进行控制,使得所述第一映射数据不被替换至所述内存中。
2.根据权利要求1所述的处理***,其特征在于,所述第一映射数据存储在所述缓存的第一缓存行中,所述第一缓存行设有标识信息,所述标识信息用于指示所述第一映射数据是否被所述内存管理单元取走。
3.根据权利要求1所述的处理***,其特征在于,所述处理器还用于执行以下操作:
主动触发所述内存管理单元发送从所述缓存中取走所述第一映射数据。
4.根据权利要求1-3中任一项所述的处理***,其特征在于,所述第一映射数据为页表。
5.一种控制方法,其特征在于,包括:
生成第一映射数据,所述第一映射数据用于指示操作***的第一虚拟地址和内存的第一物理地址之间的映射关系;
将所述第一映射数据存储在缓存中;
如果内存管理单元未从所述缓存中取走所述第一映射数据,则对所述缓存进行控制,使得所述第一映射数据不被替换至所述内存中。
6.根据权利要求5所述的控制方法,其特征在于,所述第一映射数据存储在所述缓存的第一缓存行中,所述第一缓存行设有标识信息,所述标识信息用于指示所述第一映射数据是否被所述内存管理单元取走。
7.根据权利要求5所述的控制方法,其特征在于,所述控制方法还包括:
主动触发所述内存管理单元发送从所述缓存中取走所述第一映射数据。
8.根据权利要求5-7中任一项所述的控制方法,其特征在于,所述第一映射数据为页表。
9.一种芯片,其特征在于,包括如权利要求1-4中任一项所述的处理***。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序用于执行如权利要求5-8任一所述的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211048195.8A CN115509959A (zh) | 2022-08-30 | 2022-08-30 | 处理***、控制方法、芯片及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211048195.8A CN115509959A (zh) | 2022-08-30 | 2022-08-30 | 处理***、控制方法、芯片及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509959A true CN115509959A (zh) | 2022-12-23 |
Family
ID=84502746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211048195.8A Pending CN115509959A (zh) | 2022-08-30 | 2022-08-30 | 处理***、控制方法、芯片及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509959A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436587A (zh) * | 2023-06-14 | 2023-07-14 | 芯迈微半导体(上海)有限公司 | 控制信道的资源映射方法及装置和资源解映射方法及装置 |
CN116775512A (zh) * | 2023-08-22 | 2023-09-19 | 摩尔线程智能科技(北京)有限责任公司 | 页表管理装置、方法、图形处理器及电子设备 |
-
2022
- 2022-08-30 CN CN202211048195.8A patent/CN115509959A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436587A (zh) * | 2023-06-14 | 2023-07-14 | 芯迈微半导体(上海)有限公司 | 控制信道的资源映射方法及装置和资源解映射方法及装置 |
CN116436587B (zh) * | 2023-06-14 | 2023-09-05 | 芯迈微半导体(上海)有限公司 | 控制信道的资源映射方法及装置和资源解映射方法及装置 |
CN116775512A (zh) * | 2023-08-22 | 2023-09-19 | 摩尔线程智能科技(北京)有限责任公司 | 页表管理装置、方法、图形处理器及电子设备 |
CN116775512B (zh) * | 2023-08-22 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 页表管理装置、方法、图形处理器及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6138208A (en) | Multiple level cache memory with overlapped L1 and L2 memory access | |
CN104346294B (zh) | 基于多级缓存的数据读/写方法、装置和计算机*** | |
US8171230B2 (en) | PCI express address translation services invalidation synchronization with TCE invalidation | |
CN115509959A (zh) | 处理***、控制方法、芯片及计算机可读存储介质 | |
US20160140042A1 (en) | Instruction cache translation management | |
US10423354B2 (en) | Selective data copying between memory modules | |
JP2011013858A (ja) | 演算処理装置およびアドレス変換方法 | |
CN113039531B (zh) | 用于分配缓存资源的方法、***和存储介质 | |
CN112631961A (zh) | 一种内存管理单元、地址转译方法以及处理器 | |
CN113641596B (zh) | 缓存管理方法、缓存管理装置、处理器 | |
KR101893966B1 (ko) | 메모리 관리 방법 및 장치, 및 메모리 컨트롤러 | |
KR20210025344A (ko) | 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템, 그것의 데이터 관리 방법 | |
KR20220061983A (ko) | 입출력 메모리 관리 유닛으로부터 게스트 운영 시스템으로의 인터럽트 제공 | |
CN115269457A (zh) | 使得缓存能够在支持地址转换服务的设备内存储进程特定信息的方法和装置 | |
CN114546896A (zh) | ***内存管理单元、读写请求处理方法、电子设备和片上*** | |
CN115481054A (zh) | 数据处理方法、装置及***、***级soc芯片及计算机设备 | |
KR20220001016A (ko) | 게스트 운영체제에 입출력 메모리 관리 유닛 레지스터 복사본을 제공하는 방법 | |
CN104346295B (zh) | 一种缓存刷新方法和装置 | |
US11748107B2 (en) | Complex I/O value prediction for multiple values with physical or virtual addresses | |
EP3980885A1 (en) | Guest operating system buffer and log access by an input-output memory management unit | |
CN115087961B (zh) | 用于相干及非相干存储器请求的仲裁方案 | |
CN114925002A (zh) | 电子装置、电子设备和地址转换方法 | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
WO2023064609A1 (en) | Translation tagging for address translation caching | |
WO2023064590A1 (en) | Software indirection level for address translation sharing |
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 |