一种mmu和ifu读取memory中数据的实现方法及系统

文档序号:1845427 发布日期:2021-11-16 浏览:2次 >En<

阅读说明:本技术 一种mmu和ifu读取memory中数据的实现方法及系统 (Method and system for reading data in memory by mmu and ifu ) 是由 李长林 余红斌 于 2021-07-15 设计创作,主要内容包括:本发明涉及微处理器技术领域,具体涉及一种mmu和ifu读取memory中数据的实现方法及系统,所述方法将mmu和ifu读取数据的请求直接发往L2;如果在L2中发现有dirty数据在L1-cache中,则通过L2向L1发出snoop请求,获取dirty数据,进而读取memory的最新数据。本发明mmu和ifu读取数据的请求不用占用L1的pipeline资源,且mmu和ifu不会对L1-cache的污染,不会对指令操作数的命中率有影响,具有很强的创造性。(The invention relates to the technical field of microprocessors, in particular to a method and a system for reading data in a memory by mmu and ifu, wherein the method directly sends requests of reading the data by the mmu and ifu to L2; if it is found in L2 that dirty data is in L1_ cache, a snoop request is sent to L1 through L2, dirty data is obtained, and the latest data of the memory is read. The requests of the mmu and ifu for reading data do not occupy pipeline resources of the L1, and the mmu and ifu do not pollute the L1_ cache, do not influence the hit rate of instruction operands, and have strong creativity.)

一种mmu和ifu读取memory中数据的实现方法及系统

技术领域

本发明涉及微处理器技术领域,具体涉及一种mmu和ifu读取memory中数据的实现方法及系统。

背景技术

现有技术中,由于mmu和ifu获取的数据和指令的操作数之间的PA没有很大的相关性,如果mmu和ifu读取数据也向L1发出请求,这样会导致mmu和ifu的请求在L1$中占用L1的pipeline资源,而这类请求在L1$中往往是miss的,如果把这类请求直接向L2发出请求,而不直接向L1发出请求,这样可以有效减少占用L1的pipeline资源

如果mmu和ifu读取数据也向L1发出请求,这类数据相对操作数来说就是一种D$的污染,对操作数的命中率有坏的影响

如果mmu和ifu读取数据的请求直接向L2发出请求,这样就可以减少占用L1的pipeline资源,可以减少mmu和ifu对L1_cache的污染,提高指令操作数的命中率。

发明内容

针对现有技术的不足,本发明公开了一种mmu和ifu读取memory中数据的实现方法及系统,用于解决mmu和ifu读取数据的请求占用L1的pipeline资源,再有mmu和ifu对L1_cache的污染,对指令操作数的命中率有影响的问题。

本发明通过以下技术方案予以实现:

第一方面,本发明公开了一种mmu和ifu读取memory中数据的实现方法,其特征在于,所述方法将mmu和ifu读取数据的请求直接发往L2;如果在L2中发现有dirty数据在L1_cache中,则通过L2向L1发出snoop请求,获取dirty数据,进而读取memory的最新数据。

更进一步的,所述方法中,如果在L2中hit,并且所有的L1都没有获得E态,则可直接将L2的数据返回给mmu/ifu。

更进一步的,所述方法中,如果在L2中hit,并且有的L1是E态,此时L2则将L1dirty的数据通过snoop的方式拿到,并将L1的数据状态调整为S态,然后将L2的数据返回给mmu/ifu。

更进一步的,所述方法中,如果在L2中miss,则先向下一级memory获取S/E态后,然后将数据返回给mmu/ifu。

更进一步的,所述方法中,如果在L2中hit,并且所有的L1都没有获得E态,此时为L1中都没有dirty的数据;如果在L2中hit,并且有的L1是E态此时为L1中有dirty的数据。

第二方面,本发明公开了一种mmu和ifu读取memory中数据的实现系统,所述系统用于支撑实现第一方面所述的一种mmu和ifu读取memory中数据的实现方法,其特征在于,包括mmu模块、ifu模块、一级缓存L1和二级缓存L2。

本发明的有益效果为:

本发明mmu和ifu读取数据的请求不用占用L1的pipeline资源,且mmu和ifu不会对L1_cache的污染,不会对指令操作数的命中率有影响,具有很强的创造性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是mmu/ifu reload数据的基本流程图;

图2是mmu和ifu读取memory中数据的实现系统框图。

具体实施方式

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

实施例1

参照图1所示,本实施例公开了一种mmu和ifu读取memory中数据的实现方法,具体是将mmu和ifu读取数据的请求直接发往L2;如果在L2中发现有dirty数据在L1_cache中,则通过L2向L1发出snoop请求,获取dirty数据,进而读取memory的最新数据。

本实施例中,如果在L2中hit,并且所有的L1都没有获得E态,则可直接将L2的数据返回给mmu/ifu。

本实施例中,如果在L2中hit,并且有的L1是E态,此时L2则将L1 dirty的数据通过snoop的方式拿到,并将L1的数据状态调整为S态,然后将L2的数据返回给mmu/ifu。

本实施例中,如果在L2中miss,则先向下一级memory获取S/E态后,然后将数据返回给mmu/ifu。

本实施例中,如果在L2中hit,并且所有的L1都没有获得E态,此时为L1中都没有dirty的数据;如果在L2中hit,并且有的L1是E态此时为L1中有dirty的数据。

实施例2

参照图2所示,本实施例公开了一种mmu和ifu读取memory中数据的实现系统,包括mmu模块、ifu模块、一级缓存L1和二级缓存L2。

本实施例系统mmu和ifu读取数据的请求直接发往L2,如果在L2中发现有dirty数据在L1_cache中,则通过L2向L1发出snoop请求,将dirty的数据拿到,从而拿到memory的最新数据。

综上,本发明mmu和ifu读取数据的请求不用占用L1的pipeline资源,且mmu和ifu不会对L1_cache的污染,不会对指令操作数的命中率有影响,具有很强的创造性。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

5页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种memory set的优化策略的实现方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类