CN110874332B - 内存管理单元及其管理方法 - Google Patents
内存管理单元及其管理方法 Download PDFInfo
- Publication number
- CN110874332B CN110874332B CN201911001839.6A CN201911001839A CN110874332B CN 110874332 B CN110874332 B CN 110874332B CN 201911001839 A CN201911001839 A CN 201911001839A CN 110874332 B CN110874332 B CN 110874332B
- Authority
- CN
- China
- Prior art keywords
- page
- tlb
- logical address
- module
- memory
- 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
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/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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种支持多数据流的TLB装置和TLB模块的更新方法,该装置包括:控制单元,对应待处理的流式应用的k个数据流,设置k个TLB模块,每一个TLB模块具有一一对应的页与页框两部分,通过页与页框的映射关系完成逻辑地址向物理地址的转换;其中k为自然数。本发明的装置和方法针对于流式应用数据流本身的特点,可以极大减少逻辑地址与物理地址转换过程中TLB miss情况的发生,从而减少访问内存的次数,极大提高数据访问的性能。
Description
技术领域
本发明涉及计算机技术领域,更具体地涉及一种内存管理单元及其管理方法。
背景技术
内存管理单元(Memory Management Unit,MMU)的出现,通过逻辑地址向物理地址的映射,使得程序的数据、堆栈的总的大小可以超过物理存储器的大小,MMU的页表,即逻辑地址与物理地址的转换表,存储在内存中。由于逻辑地址到物理地址的转换需要多次访问内存,大大降低数据访问的性能,于是出现了传输后备缓存(Translation LookasideBuffer,TLB)模块。TLB模块存储页表中的一部分页项,当数据处理装置发出一个逻辑地址时,MMU首先访问TLB模块,如果TLB模块中含有能转换这个逻辑地址的页,即TLB命中(TLBhit),直接利用此页进行地址转换,否则称为TLB失败(TLB miss),MMU访问内存中的页表找到相关地址转换的页进行地址转换,同时,将这个页更新到TLB模块里。TLB模块的出现减少访问内存的频率,极大提高数据访问的性能,特别是在某些数据需要经常访问的情况下。
对于类似于人工神经网络的流式应用,其特点是存在多个逻辑地址连续的数据流,并且对每个数据只访问一次。对于传统的TLB模块,由于流式应用数据通常只访问一次,因此经常会出现TLB miss的情况,每次TLB miss都要从内存中寻找相关地址转换的页并更新TLB模块,因此,对于流式应用,传统的TLB模块并不能很好的提高数据访问的性能。
发明内容
有鉴于此,本发明的一个目的在于提供一种支持多数据流的TLB装置,本发明的另一个目的在于提供一种TLB模块的更新方法,以解决传统TLB模块在流式应用上的不足。
为了实现上述目的,作为本发明的一个方面,本发明提供了一种支持多数据流的TLB的装置,包括:
控制单元,对应待处理的流式应用的k个数据流,设置k个TLB模块,每一个TLB模块具有一一对应的页与页框两部分,通过页与页框的映射关系完成逻辑地址向物理地址的转换;其中k为自然数。
作为本发明的另一个方面,本发明还提供了一种TLB模块的更新方法,包括以下步骤:
对应待处理的流式应用的k个数据流,设置k个TLB模块,每一个TLB模块具有一一对应的页与页框两部分,通过页与页框的映射关系完成逻辑地址向物理地址的转换;其中k为自然数;
当发生TLB miss的情况时,控制单元访问内存中的页表找到相关地址转换的页进行地址转换,同时,将所述页更新到对应TLB模块里,替换掉所述TLB页中一个页项。
作为本发明的再一个方面,本发明还提供了一种TLB页的更新方法,包括以下步骤:
对应待处理的流式应用的k个数据流,设置k个TLB模块,每一个TLB模块具有一一对应的页与页框两部分,通过页与页框的映射关系完成逻辑地址向物理地址的转换;其中k为自然数;
每次发生TLB miss时,控制单元访问内存中的页表找到相关地址转换的页进行地址转换,同时,将所述页及所述页之后连续的页项替换TLB模块中原有的所有页项。
作为本发明的还一个方面,本发明还提供了一种TLB页的更新方法,包括以下步骤:
对应待处理的流式应用的k个数据流,设置k个TLB模块,每一个TLB模块具有一一对应的页与页框两部分,通过页与页框的映射关系完成逻辑地址向物理地址的转换;其中k为自然数,且所述k个TLB模块中TLB存放的页项为连续页项,即所存页项表示的逻辑地址连续,设当前TLB存放页项为<P1,F1>,<P2,F2>,<P3,F3>,...,<Pn,Fn>,其中<P,F>表示页号与页框号的映射关系,P表示页号,F表示页框号,页号P1,P2,P3,...,Pn所对应的逻辑地址范围连续;
在每次发生TLB hit后,完成地址转换的页被替换,即<P1,F1>被替换,替换的页为当前TLB存放的连续页项的下一个连续页项,即<Pn+1,Fn+1>,替换后TLB存放的页项为<Pn+1,Fn+1>,<P2,F2>,<P3,F3>,...,<Pn,Fn>,仍为连续页项。
基于上述技术方案可知,本发明的装置和方法具有如下有益效果:由于采用不同的TLB模块对应不同的数据流,使得每个TLB模块中可以存放逻辑地址连续的页项,有利于后续的更新操作;针对于流式应用的特性,采用逻辑地址连续的TLB模块,如此的TLB模块更新方法可以极大的减小TLB miss的发生,也就是可以减少MMU搜索内存中的页表,极大的提高数据访问的性能。
附图说明
图1为根据本发明一实施例的装置的总体流程的示例框图;
图2为根据本发明一实施例的内存管理单元(MMU)的页表结构的示例框图;
图3为根据本发明一实施例的逻辑地址的表示方法;
图4至图6为根据本发明一实施例的TLB模块的更新方法的示例框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。通过以下详细描述,本发明的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不悖离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同附图标记用于相似功能和操作。
本发明公开了一种支持多数据流的TLB装置,包括:
控制单元,对应待处理的流式应用的k个数据流,设置k个TLB模块,每一个TLB模块具有一一对应的页与页框两部分,通过页与页框的映射关系完成逻辑地址向物理地址的转换;其中k为自然数。进一步地,k为正整数。
作为优选,对于人工神经网络,该控制单元设置4个TLB模块,分别对应权值、输入、输出、部分和等四个数据流。
本发明还公开了几种TLB模块的更新方法,其中:
对应待处理的流式应用的k个数据流,设置k个TLB模块,每一个TLB模块具有一一对应的页与页框两部分,通过页与页框的映射关系完成逻辑地址向物理地址的转换;其中k为自然数;
方法一还包括以下步骤:
当发生TLB miss的情况时,控制单元访问内存中的页表找到相关地址转换的页进行地址转换,同时,将所述页更新到对应TLB模块里,替换掉所述TLB页中一个页项。
作为优选,替换页项的步骤采用随机替换算法或LRU算法。
方法二还包括以下步骤:
每次发生TLB miss时,控制单元访问内存中的页表找到相关地址转换的页进行地址转换,同时,将所述页及所述页之后连续的页项替换TLB模块中原有的所有页项。
方法三还包括以下步骤:
将k个TLB模块中TLB存放的页项设为连续页项,即所存页项表示的逻辑地址连续,设当前TLB存放页项为<P1,F1>,<P2,F2>,<P3,F3>,...,<Pn,Fn>,其中<P,F>表示页号与页框号的映射关系,P表示页号,F表示页框号,页号P1,P2,P3,...,Pn所对应的逻辑地址范围连续;
在每次发生TLB hit后,完成地址转换的页被替换,即<P1,F1>被替换,替换的页为当前TLB存放的连续页项的下一个连续页项,即<Pn+1,Fn+1>,替换后TLB存放的页项为<Pn+1,Fn+1>,<P2,F2>,<P3,F3>,...,<Pn,Fn>,仍为连续页项。
下面通过具体实施例对本发明的技术方案进行进一步阐述说明。
具体实施例一
根据本发明一实施例的支持多数据流的TLB的装置,可用于人工神经网络的相关应用,对于人工神经网络,一般存在权值、输入、输出和部分和等四个数据流,根据实际应用需要也可以设置其他不同的数据流。
图1为根据本发明一实施例的装置的总体流程的示例框图。在本申请实施例的内存管理单元可以包括控制单元以及对应待处理的流式应用的k个数据流设置的k个TLB模块,其中,k可以为正整数。其中,每个TLB模块中存放有连续的页项,每个页项均包括一一对应的页与页框,也就是说,页与页框之间具有映射关系。
如图1所示,该控制单元可以连接至数据处理装置,该控制单元能够接收数据处理装置传送的逻辑地址(图1所示的虚拟地址)。可选地,该逻辑地址可以包括页号和偏移,进一步地,该逻辑地址还可以包括流ID字段,其中,所述流ID字段用于所述数据流与对应TLB模块的映射。可选地,控制单元可以根据逻辑地址中流ID字段确定出该逻辑地址对应的TLB模块。本申请实施例,通过在逻辑地址中添加流ID字段,并对流式应用中各种数据的分别设置对应的TLB模块,每个TLB模块分别存放有连续的页项,从而使得TLB模块更新方法可以极大的减小TLB miss的发生,也就是可以减少MMU搜索内存中的页表,极大的提高数据访问的性能。
之后,控制单元可以根据逻辑地址中的页号查找该对应的TLB模块,确定该对应的TLB模块是否有该逻辑地址对应的页项,若有对应页项,则为TLB hit,此时,可以根据TLB模块中页与页框的映射关系,确定出该逻辑地址对应的物理地址,以完成地址转换。若该对应的TLB模块中没有对应的页项,则为TLBmiss,此时,可以从内存的页表中确定逻辑地址对应的页,以根据所述页与页框的映射关系确定所述逻辑地址对应的物理地址,完成地址转换。
例如,对于人工神经网络,存在权值、输入、输出和部分和四种数据流,因此,示例框图中TLB模块可以设置为4个,每个TLB模块对应一个数据流。当数据处理装置传入一个逻辑地址时,根据逻辑地址中的流ID部分,选择对应TLB模块查找是否有该逻辑地址对应的页项,若有对应页项,则为TLB hit,完成地址转换,若需要更新该TLB模块,则执行更新操作,若没有对应页项,则为TLB miss,从内存的页表总查找对应页项,同时对该TLB模块执行更新操作。
图2为根据本发明一实施例的内存管理单元(MMU)的页表结构(TLB模块结构)的示例框图。通过分页存储管理将逻辑地址划分成一系列同等大小的部分,称为页(page),并依次对每个页做编号,示例框图中页面的大小为4kB,也可以是其他大小,根据具体的需求而定,每个页用一个编号代表4kB的页面大小,并非该页需占用4kB大小空间,例如页号0代表0-4kB大小的逻辑地址范围。对于物理内存也划分成同样大小的连续的部分,称为页框(frame),并对每个页框做编号。页表存储的为页号与页框号的一个映射关系,例如,逻辑地址8640对应的范围为[8k,16k],则对应的页号为2,按照示例框图中的映射关系,映射为页框号为6所对应的物理地址范围,再根据偏移地址(即逻辑地址中的偏移)确定最终该逻辑地址转换后的物理地址。图1中的每个TLB存储的页项为页表中的部分页项,TLB存储页项的数目由TLB存储空间大小决定。
图3为根据本发明一实施例的逻辑地址的表示方法,本发明的逻辑地址的表示方法相对于传统的逻辑地址表示方法,添加了一些比特位表示流ID字段,用于数据流与对应TLB模块的映射,示例图中只画出需要关心的部分。可选地,所述流ID字段在所述逻辑地址中占用的比特数是根据所述TLB模块的个数确定的。具体地,所述流ID字段在所述逻辑地址中占用的比特数为k表示所述TLB模块的个数,表示取向上取整数操作。对于人工神经网络存在4个数据流,而因此流ID字段只需要2bit就可以区分四个数据流,可见流ID字段用于表示不同的数据流。由于图2中设定的页面大小为4kB,因此32位的逻辑地址中,有20位对应为页号,12位对应为偏置地址,根据页号与页框号的对应关系,可以获得对应物理地址的前20位,对应物理地址的后12位与逻辑地址后12位一致。
图4-6为根据本发明一实施例的TLB页的更新方法的示例框图。示例框图只示出一个TLB的一种更新方法,对装置任何TLB都可以使用任何其中一种或混用多种更新方法。
图4为根据本发明一实施例的TLB页的第一更新方法。第一更新方法1与传统的TLB页的更新方法一样,当发生TLB miss的情况时,内存管理单元MMU访问内存中的页表找到相关地址转换的页进行地址转换,同时,将这个页更新到TLB里,替换掉TLB中一个页项。如图4所示,可以采用查找到的页P及其对应的页框F替换TLB模块中一个页项。即当发生TLB miss的情况时,内存管理单元可以从内存的页表中查找所述逻辑地址中的页号对应的页,根据查找到的所述页与页框的映射关系确定逻辑地址对应的物理地址,同时对所述TLB模块执行更新操作。其中,内存的页表与TLB模块中的页表基本一致,内存的页表也包括一一对应的页和页框,如图1所示。
此处替换页项可以采用不同的替换算法,例如,随机替换算法、LRU算法等。随机替换算法根据数据处理装置生成的随机数决定要替换的TLB页项;具体地,控制单元可以根据所述数据处理装置生成的随机数,确定所述TLB模块中需要被替换的目标页项;并采用从所述内存的页表中查找到的页项替换所述目标页项。LRU算法选择替换的页项根据访问时间离当前时间的长短决定,上一次访问时间距当前最长的页项作为被替换的页项。具体地,控制单元可以确定所述对应的TLB模块中各个页项的上一次访问时间与当前时间的差距,将所述对应的TLB模块中上一次访问时间与当前时间的差距最长的页项作为需要被替换的目标页项;采用从所述内存的页表中查找到的页项替换所述目标页项。
图5为根据本发明一实施例的TLB页的第二更新方法。第二更新方法利用流式应用的特点,即数据流逻辑地址连续且每个数据只访问一次。其更新方法为,每次发生TLB miss时,内存管理单元MMU访问内存中的页表找到相关地址转换的页进行地址转换,同时,将这个页及该页之后连续的页项替换TLB原有的所有页项。其中,图中P、P1、P2、P3…为页号连续的页项。如图5所示,在TLB的更新过程中,可以采用查找到的页P1及其对应的页框F1和该页P1之后连续的页P2、P3…以及相应的页框F2、F3…替换TLB模块中的所有页表项,更新后的TLB模块包含连续的页P1、P2、P3…以及相应的页框F1、F2、F3…。即当发生TLB miss的情况时,内存管理单元可以从内存的页表中查找所述逻辑地址中的页号对应的页,根据查找到的所述页与页框的映射关系确定逻辑地址对应的物理地址,同时对所述TLB模块执行更新操作。其中,内存的页表与TLB模块中的页表基本一致,内存的页表也包括一一对应的页和页框,如图1所示。
图6为根据本发明一实施例的TLB页的第三更新方法。第三更新方法同样利用了流式应用的特点。其更新前提是TLB存放的页项为连续页项,即所存页项表示的逻辑地址连续,设当前TLB存放页项为<P1,F1>,<P2,F2>,<P3,F3>,...,<Pn,Fn>,其中<P,F>表示页号与页框号的映射关系,P表示页号,F表示页框号,页号P1,P2,P3,...,Pn所对应的逻辑地址范围连续。在每次发生TLB hit后,完成地址转换的页被替换,即<P1,F1>被替换,替换的页为当前TLB存放的连续页项的下一个连续页项,即<Pn+1,Fn+1>,替换后TLB存放的页项为<Pn+1,Fn+1>,<P2,F2>,<P3,F3>,...,<Pn,Fn>,仍为连续页项,该更新方式类似于滑动窗口的滑动机制。同理,若此次发生TLB hit时对应的页项为<P2,F2>,则在根据页项<P2,F2>完成地址后,该页项<P2,F2>被替换,其被替换为当前TLB存放的连续页项的下一个连续页项<Pn+2Fn+2>。以此类推,此处不再一一穷举。
具体实施例二
根据本发明一实施例的支持多数据流的TLB的装置,可用于机器学习的相关流式应用,例如自然语音处理、手写识别、人脸识别等相关应用,设本实施例中存在k个数据流,k的大小根据不同应用的需求而定。
图1为根据本发明一实施例的装置的总体流程的示例框图。对于存在k个数据流的流式应用,因此,示例框图中TLB模块可以设置为k个,每个TLB模块对应一个数据流。其中,k可以为正整数。其中,每个TLB模块中存放有连续的页项,每个页项均包括一一对应的页与页框,也就是说,页与页框之间具有映射关系。
如图1所示,该控制单元可以连接至数据处理装置,该控制单元能够接收数据处理装置传送的逻辑地址(图1所示的虚拟地址)。可选地,该逻辑地址可以包括页号和偏移,进一步地,该逻辑地址还可以包括流ID字段,其中,所述流ID字段用于所述数据流与对应TLB模块的映射。可选地,控制单元可以根据逻辑地址中流ID字段确定出该逻辑地址对应的TLB模块。本申请实施例,通过在逻辑地址中添加流ID字段,并对流式应用中各种数据的分别设置对应的TLB模块,每个TLB模块分别存放有连续的页项,从而使得TLB模块更新方法可以极大的减小TLB miss的发生,也就是可以减少MMU搜索内存中的页表,极大的提高数据访问的性能。
之后,控制单元可以根据逻辑地址中的页号查找该对应的TLB模块,确定该对应的TLB模块是否有该逻辑地址对应的页项,若有对应页项,则为TLB hit,此时,可以根据TLB模块中页与页框的映射关系,确定出该逻辑地址对应的物理地址,以完成地址转换。若该对应的TLB模块中没有对应的页项,则为TLBmiss,此时,可以从内存的页表中确定逻辑地址对应的页,以根据所述页与页框的映射关系确定所述逻辑地址对应的物理地址,完成地址转换。
例如,当数据处理装置传入一个逻辑地址时,根据逻辑地址中的流ID部分,选择对应TLB模块查找是否有该逻辑地址对应的页项,若有对应页项,则为TLB hit,完成地址转换,若需要更新该TLB模块,则执行更新操作,若没有对应页项,则为TLB miss,从内存的页表总查找对应页项,同时对该TLB模块执行更新操作。
图2为根据本发明一实施例的内存管理单元(MMU)的页表结构的示例框图。通过分页存储管理将逻辑地址划分成一系列同等大小的部分,称为页(page),并依次对每个页做编号,示例框图中页面的大小为4kB,也可以是其他大小,根据具体的需求而定,每个页用一个编号代表4kB的页面大小,并非该页需占用4kB大小空间,例如页号0代表0-4kB大小的逻辑地址范围。对于物理内存也划分成同样大小的连续的部分,称为页框(frame),并对每个页框做编号。页表存储的为页号与页框号的一个映射关系,例如,逻辑地址8640对应的范围为[8k,16k],则对应的页号为2,按照示例框图中的映射关系,映射为页框号为6所对应的物理地址范围,再根据偏移地址(即逻辑地址中的偏移)确定最终该逻辑地址转换后的物理地址。图1中的每个TLB存储的页项为页表中的部分页项,TLB存储页项的数目由TLB存储空间大小决定。
图3为根据本发明一实施例的逻辑地址的表示方法,本发明的逻辑地址的表示方法相对于传统的逻辑地址表示方法,添加了一些比特位表示流ID字段,用于数据流与对应TLB模块的映射,示例图中只画出需要关心的部分。可选地,所述流ID字段在所述逻辑地址中占用的比特数是根据所述TLB模块的个数确定的。具体地,所述流ID字段在所述逻辑地址中占用的比特数为k表示所述TLB模块的个数,表示取向上取整数操作。对于人工神经网络存在k个数据流,因此流ID只需要就可以区分k个数据流,可见流ID字段用于表示不同的数据流。由于图2中设定的页面大小为4kB,因此32位的逻辑地址中,有20位对应为页号,12位对应为偏置地址,根据页号与页框号的对应关系,可以获得对应物理地址的前20位,对应物理地址的后12位与逻辑地址后12位一致。
图4-6为根据本发明一实施例的TLB页的更新方法的示例框图。示例框图只示出一个TLB的一种更新方法,对装置任何TLB都可以使用任何其中一种或混用多种更新方法。
图4为根据本发明一实施例的TLB页的第一更新方法。第一更新方法与传统的TLB页的更新方法一样,当发生TLB miss的情况是,MMU访问内存中的页表找到相关地址转换的页进行地址转换,同时,将这个页更新到TLB里,替换掉TLB中一个页项。如图4所示,可以采用查找到的页P及其对应的页框F替换TLB模块中一个页项。即当发生TLB miss的情况时,内存管理单元可以从内存的页表中查找所述逻辑地址中的页号对应的页,根据查找到的所述页与页框的映射关系确定逻辑地址对应的物理地址,同时对所述TLB模块执行更新操作。其中,内存的页表与TLB模块中的页表基本一致,内存的页表也包括一一对应的页和页框,如图1所示。
此处替换页项可以采用不同的替换算法,例如,随机替换算法、LRU算法等。具体地,控制单元可以根据所述数据处理装置生成的随机数,确定所述TLB模块中需要被替换的目标页项;并采用从所述内存的页表中查找到的页项替换所述目标页项。随机替换算法根据数据处理装置生成的随机数决定要替换的TLB页项;LRU算法选择替换的页项根据访问时间离当前时间的长短决定,上一次访问时间距当前最长的页项作为被替换的页项。具体地,控制单元可以确定所述对应的TLB模块中各个页项的上一次访问时间与当前时间的差距,将所述对应的TLB模块中上一次访问时间与当前时间的差距最长的页项作为需要被替换的目标页项;采用从所述内存的页表中查找到的页项替换所述目标页项。
图5为根据本发明一实施例的TLB页的第二更新方法。第二更新方法利用流式应用的特点,即数据流逻辑地址连续且每个数据只访问一次。其更新方法为,每次发生TLB miss时,MMU访问内存中的页表找到相关地址转换的页进行地址转换,同时,将这个页及该页之后连续的页项替换TLB原有的所有页项。其中,图中P、P1、P2、P3…为页号连续的页项。如图5所示,在TLB的更新过程中,可以采用查找到的页P1及其对应的页框F1和该页P1之后连续的页P2、P3…以及相应的页框F2、F3…替换TLB模块中的所有页表项,更新后的TLB模块包含连续的页P1、P2、P3…以及相应的页框F1、F2、F3…。即当发生TLB miss的情况时,内存管理单元可以从内存的页表中查找所述逻辑地址中的页号对应的页,根据查找到的所述页与页框的映射关系确定逻辑地址对应的物理地址,同时对所述TLB模块执行更新操作。其中,内存的页表与TLB模块中的页表基本一致,内存的页表也包括一一对应的页和页框,如图1所示。
图6为根据本发明一实施例的TLB页的第三更新方法。第三更新方法同样利用了流式应用的特点。其更新前提是TLB存放的页项为连续页项,即所存页项表示的逻辑地址连续,此时,控制单元可以采用所述TLB模块存放的连续页项的下一个连续页项,替换所述对应的TLB模块中与所述逻辑地址的页号对应的页项。例如,设当前TLB存放页项为<P1,F1>,<P2,F2>,<P3,F3>,...,<Pn,Fn>,其中<P,F>表示页号与页框号的映射关系,P表示页号,F表示页框号,页号P1,P2,P3,...,Pn所对应的逻辑地址范围连续。在每次发生TLB hit后,完成地址转换的页被替换,即<P1,F1>被替换,替换的页为当前TLB存放的连续页项的下一个连续页项,即<Pn+1,Fn+1>,替换后TLB存放的页项为<Pn+1,Fn+1>,<P2,F2>,<P3,F3>,...,<Pn,Fn>,仍为连续页项,该更新方式类似于滑动窗口的滑动机制。同理,若此次发生TLB hit时对应的页项为<P2,F2>,则在根据页项<P2,F2>完成地址后,该页项<P2,F2>被替换,其被替换为当前TLB存放的连续页项的下一个连续页项<Pn+2Fn+2>。以此类推,此处不再一一穷举。
对于类似于人工神经网络的流式应用,由于其具有多个逻辑地址连续的数据流的特点,通过采用多个TLB模块,使得每个TLB可以存放逻辑地址连续的页项,对于页项逻辑连续的TLB,采用本发明所述的TLB页的更新方法,可以极大减小TLB miss的发生,即可以极大减少从页表中查找的次数,极大提高数据访问的性能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种内存管理单元,其特征在于,包括:
k个TLB模块,所述k个TLB模块对应流式应用的k个数据流,每个所述TLB模块对应一个数据流,每个TLB模块中存放有连续的页项,所述页项包括一一对应的页和页框;其中,k为正整数;
控制单元,用于接收数据处理装置传送的逻辑地址,其中,所述逻辑地址中包括流ID字段,所述流ID字段用于所述数据流与对应TLB模块的映射;
所述控制单元用于根据所述逻辑地址中的流ID字段确定所述逻辑地址对应的TLB模块,并从所述逻辑地址对应的TLB模块或内存的页表中确定所述逻辑地址对应的页,根据所述页与页框的映射关系确定所述逻辑地址对应的物理地址。
2.根据权利要求1所述的内存管理单元,其特征在于,所述流ID字段在所述逻辑地址中占用的比特数是根据所述TLB模块的个数确定的。
4.根据权利要求1-3任一项所述的内存管理单元,其特征在于,
所述控制单元用于在所述对应的TLB模块中存在所述逻辑地址中的页号对应的页项时,确定TLBhit,根据所述对应的TLB模块中页与页框的映射关系确定所述页框,根据所述页框和偏移确定物理地址。
5.根据权利要求4所述的内存管理单元,其特征在于,
所述控制单元在根据所述对应的TLB模块中页与页框的映射关系确定所述页框,根据所述页框和所述偏移确定物理地址之后,采用所述对应的TLB模块存放的连续页项的下一个连续页项,替换所述对应的TLB模块中与所述逻辑地址的页号对应的页项。
6.根据权利要求1-3任一项所述的内存管理单元,其特征在于,
所述控制单元用于在确定所述TLB模块中不存在所述逻辑地址中的页号对应的页项时,确定TLBmiss,则从内存的页表中查找所述逻辑地址中的页号对应的页,根据查找到的页与页框的映射关系确定逻辑地址对应的物理地址,同时对所述TLB模块执行更新操作。
7.根据权利要求6所述的内存管理单元,其特征在于,
所述控制单元用于在TLBmiss时,则采用从所述内存的页表中查找到的页项替换所述TLB模块中的一个页项。
8.根据权利要求7所述的内存管理单元,其特征在于,
所述控制单元还用于采用随机替换算法或LRU算法确定所述TLB模块中需要被替换的页项。
9.根据权利要求6所述的内存管理单元,其特征在于,
所述控制单元用于在TLBmiss,则采用从所述内存的页表中查找到的页项和所述查找到的页项之后连续的页项,替换所述TLB模块中的所有页项。
10.根据权利要求1所述的内存管理单元,其特征在于,所述TLB模块的数量为四个,四个所述TLB模块分别对应人工神经网络的权值、输入、输出以及部分和四个数据流。
11.一种内存管理单元的管理方法,其特征在于,所述内存管理单元包括k个TLB模块,所述k个TLB模块对应流式应用的k个数据流,每个所述TLB模块对应一个数据流,每个TLB模块中存放有连续的页项,所述页项包括一一对应的页和页框;其中,k为正整数;所述方法包括:
接收数据处理装置传送的逻辑地址;其中,所述逻辑地址中包括流ID字段,所述流ID字段用于所述数据流与对应TLB模块的映射;
根据所述逻辑地址中的所述流ID字段确定所述逻辑地址对应的TLB模块,从所述逻辑地址对应的TLB模块或内存的页表中确定所述逻辑地址对应的页,并根据所述页与页框的映射关系确定所述逻辑地址对应的物理地址。
12.根据权利要求11所述的方法,其特征在于,所述流ID字段在所述逻辑地址中占用的比特数是根据所述TLB模块的个数确定的。
14.根据权利要求11-13任一项所述的方法,其特征在于,所述方法还包括:
当确定所述对应的TLB模块中存在所述逻辑地址中的页号对应的页项时,确定TLBhit;
当TLBhit时,则根据所述对应的TLB模块中页与页框的映射关系确定所述页框,根据所述页框和偏移确定物理地址。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
在根据所述对应的TLB模块中页与页框的映射关系确定所述页框,根据所述页框和所述偏移确定物理地址之后,采用所述对应的TLB模块存放的连续页项的下一个连续页项,替换所述对应的TLB模块中与所述逻辑地址的页号对应的页项。
16.根据权利要求11-13任一项所述的方法,其特征在于,所述方法还包括:
在确定所述TLB模块中不存在所述逻辑地址中的页号对应的页项时,确定TLBmiss;
当TLBmiss时,则从内存的页表中查找所述逻辑地址中的页号对应的页,根据查找到的页与页框的映射关系确定逻辑地址对应的物理地址,同时对所述TLB模块执行更新操作。
17.根据权利要求16所述的方法,其特征在于,对所述TLB模块执行更新操作,包括:
在TLBmiss时,则采用从所述内存的页表中查找到的页项替换所述TLB模块中的一个页项。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
采用随机替换算法或LRU算法确定所述TLB模块中需要被替换的页项。
19.根据权利要求17所述的方法,其特征在于,对所述TLB模块执行更新操作,还包括:
在TLBmiss,则采用从所述内存的页表中查找到的页项和所述查找到的页项之后连续的页项,替换所述TLB模块中的所有页项。
20.根据权利要求11所述的方法,其特征在于,所述TLB模块的数量为四个,四个所述TLB模块分别对应人工神经网络的权值、输入、输出以及部分和四个数据流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911001839.6A CN110874332B (zh) | 2016-08-26 | 2016-08-26 | 内存管理单元及其管理方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610738487.2A CN107783912A (zh) | 2016-08-26 | 2016-08-26 | 一种支持多数据流的tlb装置和tlb模块的更新方法 |
CN201911001839.6A CN110874332B (zh) | 2016-08-26 | 2016-08-26 | 内存管理单元及其管理方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610738487.2A Division CN107783912A (zh) | 2016-08-26 | 2016-08-26 | 一种支持多数据流的tlb装置和tlb模块的更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874332A CN110874332A (zh) | 2020-03-10 |
CN110874332B true CN110874332B (zh) | 2022-05-10 |
Family
ID=61245442
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610738487.2A Pending CN107783912A (zh) | 2016-08-26 | 2016-08-26 | 一种支持多数据流的tlb装置和tlb模块的更新方法 |
CN201911001839.6A Active CN110874332B (zh) | 2016-08-26 | 2016-08-26 | 内存管理单元及其管理方法 |
CN201911001876.7A Active CN110908931B (zh) | 2016-08-26 | 2016-08-26 | Tlb模块的更新方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610738487.2A Pending CN107783912A (zh) | 2016-08-26 | 2016-08-26 | 一种支持多数据流的tlb装置和tlb模块的更新方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911001876.7A Active CN110908931B (zh) | 2016-08-26 | 2016-08-26 | Tlb模块的更新方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10474586B2 (zh) |
EP (1) | EP3506113B1 (zh) |
KR (1) | KR102396866B1 (zh) |
CN (3) | CN107783912A (zh) |
TW (1) | TWI766878B (zh) |
WO (1) | WO2018036364A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783912A (zh) * | 2016-08-26 | 2018-03-09 | 北京中科寒武纪科技有限公司 | 一种支持多数据流的tlb装置和tlb模块的更新方法 |
US11036642B2 (en) | 2019-04-26 | 2021-06-15 | Intel Corporation | Architectural enhancements for computing systems having artificial intelligence logic disposed locally to memory |
CN110209603B (zh) * | 2019-05-31 | 2021-08-31 | 龙芯中科技术股份有限公司 | 地址转换方法、装置、设备及计算机可读存储介质 |
CN111241012A (zh) * | 2020-02-25 | 2020-06-05 | 江苏华创微系统有限公司 | 支持多级页表的tlb架构 |
CN112965921B (zh) * | 2021-02-07 | 2024-04-02 | 中国人民解放军军事科学院国防科技创新研究院 | 一种多任务gpu中tlb管理方法及系统 |
CN114063934B (zh) * | 2021-12-09 | 2023-11-03 | 北京奕斯伟计算技术股份有限公司 | 数据更新装置、方法及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118646A (zh) * | 2006-07-31 | 2008-02-06 | 辉达公司 | 用于gpu中的页映射的专门机制 |
CN101346707A (zh) * | 2005-12-27 | 2009-01-14 | 三菱电机株式会社 | 代码转换器装置 |
CN103116556A (zh) * | 2013-03-11 | 2013-05-22 | 无锡江南计算技术研究所 | 内存静态划分虚拟化方法 |
CN103443777A (zh) * | 2011-03-03 | 2013-12-11 | 高通股份有限公司 | 具有预填充能力的存储器管理单元 |
CN104298616A (zh) * | 2013-07-15 | 2015-01-21 | 华为技术有限公司 | 数据块初始化方法、高速缓冲存储器和终端 |
WO2016028711A1 (en) * | 2014-08-18 | 2016-02-25 | Xilinx, Inc. | Virtualization of memory for programmable logic |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517596A (en) | 1991-05-17 | 1996-05-14 | International Business Machines Corporation | Learning machine synapse processor system apparatus |
US5574877A (en) * | 1992-09-25 | 1996-11-12 | Silicon Graphics, Inc. | TLB with two physical pages per virtual tag |
JPH06119246A (ja) * | 1992-10-08 | 1994-04-28 | Fujitsu Ltd | Tlb更新制御回路 |
JPH06195322A (ja) | 1992-10-29 | 1994-07-15 | Hitachi Ltd | 汎用型ニューロコンピュータとして用いられる情報処理装置 |
US6205531B1 (en) * | 1998-07-02 | 2001-03-20 | Silicon Graphics Incorporated | Method and apparatus for virtual address translation |
EP1182551B1 (en) * | 2000-08-21 | 2017-04-05 | Texas Instruments France | Address space priority arbitration |
US9037807B2 (en) * | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US9411532B2 (en) * | 2001-09-07 | 2016-08-09 | Pact Xpp Technologies Ag | Methods and systems for transferring data between a processing device and external devices |
US6681311B2 (en) * | 2001-07-18 | 2004-01-20 | Ip-First, Llc | Translation lookaside buffer that caches memory type information |
US6646899B2 (en) * | 2001-09-21 | 2003-11-11 | Broadcom Corporation | Content addressable memory with power reduction technique |
US6829762B2 (en) * | 2002-10-10 | 2004-12-07 | International Business Machnies Corporation | Method, apparatus and system for allocating and accessing memory-mapped facilities within a data processing system |
AU2003302731A1 (en) * | 2002-11-27 | 2004-07-09 | Rgb Media, Inc. | Method and apparatus for time-multiplexed processing of multiple digital video programs |
US7111145B1 (en) * | 2003-03-25 | 2006-09-19 | Vmware, Inc. | TLB miss fault handler and method for accessing multiple page tables |
US7194582B1 (en) * | 2003-05-30 | 2007-03-20 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US7177985B1 (en) * | 2003-05-30 | 2007-02-13 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US7444493B2 (en) * | 2004-09-30 | 2008-10-28 | Intel Corporation | Address translation for input/output devices using hierarchical translation tables |
DE112005003736T5 (de) * | 2005-12-29 | 2008-11-13 | Intel Corporation, Santa Clara | Virtueller Übersetzungspuffer |
US7945761B2 (en) * | 2006-11-21 | 2011-05-17 | Vmware, Inc. | Maintaining validity of cached address mappings |
US7827383B2 (en) * | 2007-03-09 | 2010-11-02 | Oracle America, Inc. | Efficient on-chip accelerator interfaces to reduce software overhead |
CN101425020A (zh) * | 2007-10-31 | 2009-05-06 | 国际商业机器公司 | 对mmu仿真进行加速的方法、装置和全系统仿真器 |
US8601234B2 (en) * | 2007-11-07 | 2013-12-03 | Qualcomm Incorporated | Configurable translation lookaside buffer |
CN101661437A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
CN101833691A (zh) | 2010-03-30 | 2010-09-15 | 西安理工大学 | 一种基于fpga的最小二乘支持向量机串行结构实现方法 |
CN201927073U (zh) | 2010-11-25 | 2011-08-10 | 福建师范大学 | 一种可编程硬件bp神经元处理器 |
CN102163320B (zh) * | 2011-04-27 | 2012-10-03 | 福州瑞芯微电子有限公司 | 一种图像处理专用可配置的mmu电路 |
CN102360339A (zh) * | 2011-10-08 | 2012-02-22 | 浙江大学 | 一种提高tlb利用效率的方法 |
US9112537B2 (en) * | 2011-12-22 | 2015-08-18 | Intel Corporation | Content-aware caches for reliability |
KR20130090147A (ko) | 2012-02-03 | 2013-08-13 | 안병익 | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
CN102662860B (zh) * | 2012-03-15 | 2015-07-01 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
CN103996069B (zh) | 2013-02-20 | 2018-04-03 | 百度在线网络技术(北京)有限公司 | 一种基于多gpu的bpnn训练方法和装置 |
CN104239238B (zh) * | 2013-06-21 | 2018-01-19 | 格芯公司 | 用于管理转换旁视缓冲的方法和装置 |
CN104346284B (zh) * | 2013-08-02 | 2017-10-24 | 华为技术有限公司 | 一种内存管理方法及内存管理设备 |
CN104375950B (zh) * | 2013-08-16 | 2017-08-25 | 华为技术有限公司 | 一种基于队列对通信的物理地址确定方法及装置 |
CN103455443B (zh) * | 2013-09-04 | 2017-01-18 | 华为技术有限公司 | 一种缓存管理方法和装置 |
EP3060992B1 (en) * | 2013-10-27 | 2019-11-27 | Advanced Micro Devices, Inc. | Input/output memory map unit and northbridge |
US20150199279A1 (en) * | 2014-01-14 | 2015-07-16 | Qualcomm Incorporated | Method and system for method for tracking transactions associated with a system memory management unit of a portable computing device |
JP2016048502A (ja) * | 2014-08-28 | 2016-04-07 | 富士通株式会社 | 情報処理装置及びメモリアクセス処理方法 |
US9703722B2 (en) * | 2014-11-14 | 2017-07-11 | Cavium, Inc. | Method and system for compressing data for a translation look aside buffer (TLB) |
GB2536201B (en) * | 2015-03-02 | 2021-08-18 | Advanced Risc Mach Ltd | Handling address translation requests |
CN104899641B (zh) | 2015-05-25 | 2018-07-13 | 杭州朗和科技有限公司 | 深度神经网络学习方法、处理器和深度神经网络学习系统 |
US11288205B2 (en) * | 2015-06-23 | 2022-03-29 | Advanced Micro Devices, Inc. | Access log and address translation log for a processor |
CN105095966B (zh) | 2015-07-16 | 2018-08-21 | 北京灵汐科技有限公司 | 人工神经网络和脉冲神经网络的混合计算系统 |
CN105184366B (zh) | 2015-09-15 | 2018-01-09 | 中国科学院计算技术研究所 | 一种时分复用的通用神经网络处理器 |
CN105653790B (zh) * | 2015-12-29 | 2019-03-29 | 东南大学—无锡集成电路技术研究所 | 一种基于人工神经网络的乱序处理器Cache访存性能评估方法 |
CN107783912A (zh) * | 2016-08-26 | 2018-03-09 | 北京中科寒武纪科技有限公司 | 一种支持多数据流的tlb装置和tlb模块的更新方法 |
US10417140B2 (en) * | 2017-02-24 | 2019-09-17 | Advanced Micro Devices, Inc. | Streaming translation lookaside buffer |
-
2016
- 2016-08-26 CN CN201610738487.2A patent/CN107783912A/zh active Pending
- 2016-08-26 CN CN201911001839.6A patent/CN110874332B/zh active Active
- 2016-08-26 CN CN201911001876.7A patent/CN110908931B/zh active Active
-
2017
- 2017-08-03 WO PCT/CN2017/095845 patent/WO2018036364A1/zh unknown
- 2017-08-03 KR KR1020187034255A patent/KR102396866B1/ko active IP Right Grant
- 2017-08-03 EP EP17842787.8A patent/EP3506113B1/en active Active
- 2017-08-16 TW TW106127835A patent/TWI766878B/zh active
-
2019
- 2019-02-26 US US16/286,361 patent/US10474586B2/en active Active
- 2019-08-12 US US16/538,351 patent/US11513972B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101346707A (zh) * | 2005-12-27 | 2009-01-14 | 三菱电机株式会社 | 代码转换器装置 |
CN101118646A (zh) * | 2006-07-31 | 2008-02-06 | 辉达公司 | 用于gpu中的页映射的专门机制 |
CN103443777A (zh) * | 2011-03-03 | 2013-12-11 | 高通股份有限公司 | 具有预填充能力的存储器管理单元 |
CN103116556A (zh) * | 2013-03-11 | 2013-05-22 | 无锡江南计算技术研究所 | 内存静态划分虚拟化方法 |
CN104298616A (zh) * | 2013-07-15 | 2015-01-21 | 华为技术有限公司 | 数据块初始化方法、高速缓冲存储器和终端 |
WO2016028711A1 (en) * | 2014-08-18 | 2016-02-25 | Xilinx, Inc. | Virtualization of memory for programmable logic |
Also Published As
Publication number | Publication date |
---|---|
US20190227946A1 (en) | 2019-07-25 |
US10474586B2 (en) | 2019-11-12 |
CN107783912A (zh) | 2018-03-09 |
KR20190039470A (ko) | 2019-04-12 |
TWI766878B (zh) | 2022-06-11 |
WO2018036364A1 (zh) | 2018-03-01 |
CN110908931A (zh) | 2020-03-24 |
EP3506113B1 (en) | 2022-05-04 |
US11513972B2 (en) | 2022-11-29 |
KR102396866B1 (ko) | 2022-05-11 |
CN110908931B (zh) | 2021-12-28 |
EP3506113A1 (en) | 2019-07-03 |
TW201807577A (zh) | 2018-03-01 |
CN110874332A (zh) | 2020-03-10 |
EP3506113A4 (en) | 2020-04-22 |
US20190361816A1 (en) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110874332B (zh) | 内存管理单元及其管理方法 | |
US5526504A (en) | Variable page size translation lookaside buffer | |
US20180024940A1 (en) | Systems and methods for accessing a unified translation lookaside buffer | |
EP3497577B1 (en) | Updating least-recently-used data for greater persistence of higher-generality cache entries | |
US6493812B1 (en) | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache | |
US10191853B2 (en) | Apparatus and method for maintaining address translation data within an address translation cache | |
US8832383B2 (en) | Delayed replacement of TLB entries | |
US20160140048A1 (en) | Caching tlb translations using a unified page table walker cache | |
JPH0749812A (ja) | ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置 | |
US11836079B2 (en) | Storage management apparatus, storage management method, processor, and computer system | |
JPH11203199A (ja) | キャッシュ・メモリ | |
GB2536880A (en) | Memory management | |
JP6317048B1 (ja) | バースト変換ルックアサイドバッファ | |
US7024536B2 (en) | Translation look-aside buffer for improving performance and reducing power consumption of a memory and memory management method using the same | |
US7383418B2 (en) | Method and apparatus for prefetching data to a lower level cache memory | |
US20020087824A1 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
US20200117613A1 (en) | Configuration Cache For The ARM SMMUv3 | |
US20230135599A1 (en) | Memory address translation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant before: Cambricon Technologies Corporation Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |