CN113157606A - 一种缓存器实现方法、装置和数据处理设备 - Google Patents
一种缓存器实现方法、装置和数据处理设备 Download PDFInfo
- Publication number
- CN113157606A CN113157606A CN202110429510.0A CN202110429510A CN113157606A CN 113157606 A CN113157606 A CN 113157606A CN 202110429510 A CN202110429510 A CN 202110429510A CN 113157606 A CN113157606 A CN 113157606A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- processing request
- data processing
- main 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 176
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000015654 memory Effects 0.000 claims description 135
- 238000013507 mapping Methods 0.000 claims description 50
- 230000004044 response Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 4
- 238000013461 design Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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
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
本发明提供一种缓存器实现方法、装置和数据处理设备,在获取到数据处理请求时,先判断页面管理单元是否命中该请求,如果命中该请求,直接采用缓存器响应该请求,可见,本申请公开的技术方案打破传统缓存器对地址索引和数据的管理方式,采用单独分离出地址索引数据的方式,针对连续线性地址访问主存储器的情形,采用大数据块以及页表管理的方式来提供更高的硬件资源利用率以及更高的缓存器命中率。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于虚拟地址转换的缓存器实现方法、装置和数据处理设备。
背景技术
在大型计算类芯片的设计中,高速缓冲存储器(简称缓存器)被广泛使用,其相较于主存储器有速度更快、容量更小的特点。
现有的缓存器设计通常采用地址来索引数据,当地址索引查询成功时立即返回其索引的数据给请求单元(如果是写操作,则还需对主存储器进行写通操作),这被称为缓存命中;当地址索引查询失败时则先到主存储器读取数据,然后再返回数据给请求单元(如果是写操作,则直接写入缓存器并对主存储器进行写通操作),这被称为缓存缺失。图1所示,缓存器的数据单元格和主存储器的数据单元格有多种对应关系:直接映射、全相联映射和组相联映射。当缓存器已经存满数据时,如果有新的数据需要从主存储器放入缓存器,则需要采用替换算法,在缓存器中挑选单元格来写入新的地址索引和新的数据。
申请人经研究发现,现有的缓存器实现方法,针对主存储器的随机访问会有较好的效果。如图1所示,在缓存器中每个小的数据块都需要存放其相应的地址数据作为索引,假设数据大小为:Size_Data,地址索引大小为:Size_Address,则缓存器总大小为:Size_Total=Size_Data+Size_Address。现有技术中利用缓存器占用比=Size_Data/Size_Total来表征缓存器的利用率。从占用比的公式不难发现当每个地址索引所对应的数据块越小时,缓存器所能存放的数据就越少,而用来存放地址索引的硬件资源就越多。由于数据块较小,缓存器和主存储器之间会存在频繁的数据读写交换,必须有复杂的替换策略和算法才能获得好的性能,这对硬件提出了很高的设计要求,进而提升了硬件成本。
发明内容
有鉴于此,本发明实施例提供一种缓存器实现方法、装置和数据处理设备,以实现不显著增加缓存器成本的基础上,提高缓存器的数据处理能力。
为实现上述目的,本发明实施例提供如下技术方案:
一种缓存器实现方法,包括:
获取请求单元发送的数据处理请求,所述数据请求中具有第一地址;
通过页表项索引判断页面管理单元命中所述第一地址时,判断所述数据处理请求的操作类型;
当所述数据处理请求为读操作时,请求缓存器处理所述数据处理请求,获取缓存器对所述数据处理请求的响应数据,将所述响应数据发送给所述请求单元;
当所述数据处理请求为写操作时,将所述数据处理请求发送给缓存器和主存储器,以使得缓存器和主存储器根据写操作更新存储数据。
可选的,上述缓存器实现方法中,还包括:
当所述通过页表项索引判断页面管理单元未命中所述第一地址时,判断所述数据处理请求的操作类型;
当所述数据处理请求为读操作时,将所述数据处理请求发送给所述主存储器,获取所述主存储器的大小为预设值的反馈数据,将所述反馈数据写入所述缓存器,在所述页面管理单元中建立所述缓存器中的反馈数据与所述数据处理请求之间的映射关系,将所述反馈数据反馈给所述请求单元;
当所述数据处理请求为写操作时,将所述数据处理请求发送给所述主存储器,将数据写入所述主存储器,然后向所述主存储器发送大小为预设值的数据读取请求,并将所述存储器的反馈数据写入缓存器,建立缓存器中的反馈数据与所述数据处理请求之间的映射关系。
可选的,上述缓存器实现方法中,当所述数据处理请求为写操作时,将所述数据处理请求发送给主存储器包括:
当所述数据处理请求为写操作时,通过搬运引擎将所述数据处理请求发送给主存储器。
可选的,上述缓存器实现方法中,获取所述主存储器的反馈数据,将所述反馈数据写入所述缓存器,包括:
通过搬运引擎获取所述主存储器存储的大小为预设值的反馈数据,将获取到的反馈数据发送给页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述反馈数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
可选的,上述缓存器实现方法中,将写入所述存储器的数据写入缓存器,包括:
通过数据搬运引擎向主存储器发送大小为预设值的数据读取请求,以获取写入所述存储器的数据,所述数据搬运引擎将读取到的数据发送至页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述数据搬运引擎将读取到的数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
可选的,上述缓存器实现方法中,所述建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,包括:
通过插入或替换页表条目PTE的方式建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,所述页表条目PTE中存储有所述主存储器的虚拟地址与所述缓存器的物理地址之间的映射关系,其中,所述数据处理请求中包含有虚拟地址。
一种缓存器实现装置,包括:
请求采集单元,用于获取请求单元发送的数据处理请求,所述数据请求中具有第一地址,将所述数据处理请求发送给页面管理单元;
页面管理单元,所述页面管理单元判断是否命中获取到的数据处理请求,当所述页面管理单元命中所述第一地址时,判断所述数据处理请求的操作类型;当所述数据处理请求为读操作时,请求缓存器处理所述数据处理请求,获取缓存器对所述数据处理请求的响应数据,将所述响应数据发送给所述请求单元;当所述数据处理请求为写操作时,将所述数据处理请求发送给缓存器和主存储器,以使得缓存器和主存储器根据写操作更新存储数据。
可选的,上述缓存器实现装置中,还包括:
所述页面管理单元还用于:当所述通过页表项索引判断页面管理单元未命中所述第一地址时,判断所述数据处理请求的操作类型;
当所述数据处理请求为读操作时,将所述数据处理请求发送给所述主存储器,获取所述主存储器的大小为预设值的反馈数据,将所述反馈数据写入所述缓存器,在所述页面管理单元中建立所述缓存器中的反馈数据与所述数据处理请求之间的映射关系,将所述反馈数据反馈给所述请求单元;
当所述数据处理请求为写操作时,将所述数据处理请求发送给所述主存储器,将数据写入所述主存储器,然后向所述主存储器发送大小为预设值的数据读取请求,并将所述存储器的反馈数据写入缓存器,建立缓存器中的反馈数据与所述数据处理请求之间的映射关系。
可选的,上述缓存器实现装置中,还包括:
搬运引擎单元,所述搬运引擎单元用于实现页面管理单元与主存储器之间的数据交互;
所述页面管理单元在将所述数据处理请求发送给主存储器时,具体用于:
通过搬运引擎将所述数据处理请求发送给主存储器。
可选的,上述缓存器实现装置中,所述页面管理单元在获取所述主存储器的反馈数据,将所述反馈数据写入所述缓存器时,具体用于:
通过搬运引擎获取所述主存储器存储的大小为预设值的反馈数据,将获取到的反馈数据发送给页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述反馈数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
可选的,上述缓存器实现装置中,所述页面管理单元在将写入所述存储器的数据写入缓存器时,具体用于:
通过数据搬运引擎向主存储器发送大小为预设值的数据读取请求,以获取写入所述存储器的数据,所述数据搬运引擎将读取到的数据发送至页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述数据搬运引擎将读取到的数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
可选的,上述缓存器实现装置中,所述页面管理单元在建立所述缓存器的存储数据与所述数据处理请求之间的映射关系时,具体用于:
通过插入或替换页表条目PTE的方式建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,所述页表条目PTE中存储有所述主存储器的虚拟地址与所述缓存器的物理地址之间的映射关系,其中,所述数据处理请求中包含有虚拟地址。
基于上述技术方案,本发明实施例提供的上述方案,在获取到数据处理请求时,先判断页面管理单元是否命中该请求,如果命中该请求,直接采用缓存器响应该请求,可见,本申请公开的技术方案打破传统缓存器对地址索引和数据的管理方式,采用单独分离出地址索引数据的方式,针对连续线性地址访问主存储器的情形,采用大数据块以及页表管理的方式来提供更高的硬件资源利用率以及更高的缓存器命中率,并且,方案对硬件要求较低,实现成本较低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的数据处理请求的处理流程图;
图2为本申请实施例公开的缓存器实现方法的流程示意图;
图3为本申请另一实施例公开的缓存器实现方法的流程示意图;
图4为本申请实施例公开的缓存器实现装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了在不显著增加缓存器成本的基础上,提高缓存器的数据处理能力,本申请公开了一种缓存器实现方法、装置和缓存器。
参见图2,本申请实施例公开的缓存器实现方法可以包括:
步骤S101:获取请求单元发送的数据处理请求,所述数据请求中具有第一地址;
在本实施例中,当请求单元IP有数据需求时,请求单元IP会向应用本申请公开的缓存器实现方法的设备发送带有Vir_Addr(虚拟地址/主存储器地址)的读/写操作的请求,该请求可以是数据读取请求,也可以是数据写入请求,在本实施例中,将所述Vir_Addr记为第一地址;
步骤S102:通过页表项索引判断页面管理单元命中所述第一地址时,判断所述数据处理请求的操作类型;
在本实施例中,获取到所述数据处理请求时,调取所述数据处理请求中所包含的第一地址,通过页面管理单元对应的页表项索引对所述第一地址进行命中判断,所述页表项索引中存储有页表/PTE,所述页表/PTE中记录有Vir_Addr->Phy_Addr(物理地址/缓存器地址),即Vir_Addr与Phy_Addr之间的映射关系,当所述页表项索引中记录有所述数据处理请求对应的Vir_Addr时,则表明所述页面管理单元命中所述数据处理请求,此时可以基于所述页表/PTE调取与所述数据处理请求对应的Vir_Addr相匹配的Phy_Addr。
当所述页面管理单元命中所述数据处理请求时,对所述数据处理请求进行解析,基于解析结果判断所述数据处理请求是读操作还是写操作,当为读操作时,执行步骤S103,当为写操作时,执行步骤S104。
步骤S103:当所述数据处理请求为读操作时,请求缓存器处理所述数据处理请求,获取缓存器对所述数据处理请求的响应数据,将所述响应数据发送给所述请求单元;
具体的,在本步骤中,如果该数据处理请求是读操作,则页表管理单元将该携带有Phy_Addr的读操作发送给缓存器,缓存器在获取到该读操作后,基于所述Phy_Addr调取数据,并将调取的数据返回给所述请求单元IP。
步骤S104:当所述数据处理请求为写操作时,将所述数据处理请求发送给缓存器和主存储器,以使得缓存器和主存储器根据写操作更新存储数据;
具体的,在本步骤中,如果该数据处理请求是写操作,页表管理单元将携带有Phy_Addr的写操作发送给缓存器和主存储器;缓存器根据所述Phy_Addr执行所述写操作以更新其存储的数据;同时主存储器也响应该写操作,将数据写入主存储器。
由上述实施例可见,在获取到数据处理请求时,先判断页面管理单元是否命中该请求,如果命中该请求,直接采用缓存器响应该请求,可见,本申请公开的技术方案打破传统缓存器对地址索引和数据的管理方式,采用单独分离出地址索引数据的方式,针对连续线性地址访问主存储器的情形,采用大数据块以及页表管理的方式来提供更高的硬件资源利用率以及更高的缓存器命中率,并且,方案对硬件要求较低,实现成本较低。
在本申请另一实施例公开的技术方案中,也公开了一种在页面管理单元未命中第一地址时,对所述数据处理请求的处理方案,具体的,参见图3,该方法可以包括:
步骤S201:当所述通过页表项索引判断页面管理单元未命中所述第一地址时,判断所述数据处理请求的操作类型;
本步骤中,当在所述页表/PTE中未查找到所述数据处理请求对应的Vir_Addr时,表明所述页面管理单元未命中所述数据处理请求,此时,对所述数据处理请求进行解析,基于解析结果判断所述述数据处理请求是读操作还是写操作,当为读操作时,执行步骤S202,当为写操作时,执行步骤S203;
步骤S202:当所述数据处理请求为读操作时,将所述数据处理请求发送给所述主存储器,获取所述主存储器输出的大小为预设值的反馈数据,将所述反馈数据写入所述缓存器,在所述页面管理单元中建立所述缓存器中的反馈数据与所述数据处理请求之间的映射关系,将所述反馈数据反馈给所述请求单元;
当所述数据处理请求的类型为读操作时,所述页表管理单元向主存储器发送4KB(也可以是其他预设值)大小的读请求,该请求中携带有地址Vir_4KB,该地址范围涵盖上面读操作的Vir_Addr,所述主存储器基于所述Vir_4KB读取存储数据,并将读取到的数据作为反馈数据返回给所述页表管理单元,在将所述反馈数据写入所述缓存器,
数据搬运引擎发送4KB大小的读操作(带有地址Vir_4KB,该地址范围涵盖上面读操作的Vir_Addr),数据搬运引擎向主存储器转发该读操作,并将主存储器返回的数据写入所述缓存器,并且在所述页面管理单元中建立所述缓存器中的反馈数据与所述数据处理请求之间的映射关系,该映射关系可以为Vir_4KB->Phy_4KB,其中,所述Phy_4KB表征缓存器对所述反馈数据的存储地址;
在将所述反馈数据写入缓存器之前,所述页表管理单元首先可以查询缓存器是否有未使用的空白页面,如果有则使用该页面的地址为Phy_4KB,如果没有则在缓存器中挑选一张最先使用的页面,使用该页面的地址为Phy_4KB,然后再将所述主存储器的反馈数据写入选定的缓存器页面,此时,所述页表管理单元可以直接将所述主存储器的4KB反馈数据中请求单元IP所需要这部分数据返回给请求单元IP,也可以基于映射关系Vir_4KB->Phy_4KB由所述缓存器中读取数据并额反馈给所述请求单元IP,其中,当未命中时,去主存储器读取的是4KB大小的数据,而IP所请求的只是4KB中的一部分,因此只需要将4KB反馈数据中请求单元IP所需要这部分数据返回给请求单元IP即可。
步骤S203:当所述数据处理请求为写操作时,将所述数据处理请求发送给所述主存储器,将数据写入所述主存储器,然后向所述主存储器发送大小为预设值的数据读取请求,并将所述主存储器的反馈数据写入缓存器,建立缓存器中的反馈数据与所述数据处理请求之间的映射关系。
在本方案中,当所述数据处理请求为写操作时,页表管理单元将该写操作(带有Vir_Addr)发送给主存储器,将所需写入的数据写入主存储器;
在将数据写入主存储器后,页表管理单元再向主存储器发送4KB大小的读操作(带有地址Vir_4KB,该地址范围涵盖上面读操作的Vir_Addr),然后,页表管理单元查询缓存器是否有未使用的页面,如果有则使用该页面的地址为Phy_4KB,如果没有则在缓存器中挑选一张最先使用的页面,使用该页面的地址为Phy_4KB,将所述主存储器反馈的数据写入选定的缓存器页面,并在页表管理单元中替换或者插入PTE数据(Vir_4KB->Phy_4KB)。
在本申请实施例公开的技术方案中,页表管理单元在响应所述数据处理请求时,总是去缓存器Memory读取4KB的数据,这样可以合理利用访存数据地址的连续性提高缓存器的命中率,从而无需由主存储器中连续读取数据,同时因为使用一个页表项索引4KB的数据,可以大大增加缓存器的占用比从而提高缓存器的利用率。假设一条地址索引的大小为24bits=3Bytes,在传统缓存器的实现中数据块的大小为1024bits=128Bytes,在本文所提出的方法中数据块的大小为4Kbytes。则依据前文提到的缓存器占用比公式Size_Data/Size_Total进行计算:传统缓存器的占用比为:128/(128+3)=97.7%本文方法的缓存器占用比为:4K/(4K+3)=99.9%,可见,采用本申请实施例公开的技术方案的占用比比传统技术而言有明显提升。并且因为访存地址的规律性,本方法只需要简单的页表替换算法即可获得较好的性能。
另一方面,该本方案还可以提供软件接口,可以利用软件来控制缓存器和主存储器之间数据的搬运以及页表管理单元中页表的更新。这样就可以提供两种软件模式:完全跳过缓存器,请求单元IP直接去主存储器中存取数据;或者软件来控制缓存器的内容,根据请求单元IP访问主存储器地址的规律,提前搬运数据到缓存器,并更新相应的页表管理单元中的页表内容。在本方案中所述数据请求单元IP并不感知两种模式的存在,该两种模式之间的切换完全由软件自行控制,例如,该软件可以基于自身工作模式来选择采用何种模式进行数据读取,例如,当系统工作在debug模式时,采用前种数据读取模式读取数据,其他工作模式时,采用第二数据读取方式读取数据。
在本申请实施例公开的技术方案中,所述页表管理单元、缓存器与所述主存储器之间的数据交互可以通过搬运引擎来实现,例如,上述方案中将所述数据处理请求发送给主存储器具体可以为:当所述数据处理请求为写操作时,通过搬运引擎将所述数据处理请求发送给主存储器,当该数据写请求结束后,页表管理单元再向搬运引擎发送大小为4KB的数据读操作,,该读操作中带有地址Vir_4KB,该地址范围涵盖上面读操作的Vir_Addr。
获取所述主存储器的反馈数据,将所述反馈数据写入所述缓存器,包括:
通过搬运引擎获取所述主存储器存储的大小为预设值的反馈数据,该预设值可以为4KB,将获取到的反馈数据发送给页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址,所述虚拟地址为所述主存储器对数据的存储地址Vir_4KB,所述物理地址为所述缓存器对应的地址Phy_4KB,基于所述物理地址,将接收到的所述反馈数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,即,建立映射关系Vir_4KB->Phy_4KB。
将写入所述存储器的数据写入缓存器,包括:
通过数据搬运引擎向主存储器发送大小为预设值的数据读取请求,该预设值可为4KB,以获取写入所述存储器的数据,所述数据搬运引擎将读取到的数据发送至页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址,将接收到的所述数据搬运引擎将读取到的数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
在本申请实施例公开的技术方案中,所述建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,包括:
通过插入或替换页表条目PTE的方式建立所述缓存器的存储数据与所述数据处理请求之间的映射关系Vir_4KB->Phy_4KB,所述页表条目PTE中存储有所述主存储器的虚拟地址与所述缓存器的物理地址之间的映射关系Vir_4KB->Phy_4KB,其中,所述数据处理请求中包含有虚拟地址。
本实施例中,对应于上述方法,还公开了一种缓存实现装置,该装置中的各个单元的具体工作内容,请参见上述方法实施例的内容,下面对本发明实施例提供的缓存器实现装置进行描述,下文描述的缓存器实现装置与上文描述的缓存器实现方法可相互对应参照。
具体的,参见图4,所述缓存器实现装置,可以包括:
请求采集单元100和页面管理单元200;
与上述方法相对应,所述请求采集单元100用于获取请求单元发送的数据处理请求,所述数据请求中具有第一地址,将所述数据处理请求发送给页面管理单元;
与上述方法相对应,页面管理单元200用于判断是否命中获取到的数据处理请求,当所述页面管理单元命中所述第一地址时,判断所述数据处理请求的操作类型;当所述数据处理请求为读操作时,请求缓存器处理所述数据处理请求,获取缓存器对所述数据处理请求的响应数据,将所述响应数据发送给所述请求单元;当所述数据处理请求为写操作时,将所述数据处理请求发送给缓存器和主存储器,以使得缓存器和主存储器根据写操作更新存储数据。
与上述方法相对应,所述页面管理单元还用于:当所述通过页表项索引判断页面管理单元未命中所述第一地址时,判断所述数据处理请求的操作类型;
当所述数据处理请求为读操作时,将所述数据处理请求发送给所述主存储器,获取所述主存储器的大小为预设值的反馈数据,将所述反馈数据写入所述缓存器,在所述页面管理单元中建立所述缓存器中的反馈数据与所述数据处理请求之间的映射关系,将所述反馈数据反馈给所述请求单元;
当所述数据处理请求为写操作时,将所述数据处理请求发送给所述主存储器,将数据写入所述主存储器,然后向所述主存储器发送大小为预设值的数据读取请求,并将所述存储器的反馈数据写入缓存器,建立缓存器中的反馈数据与所述数据处理请求之间的映射关系。
与上述方法相对应,上述装置,还包括:
搬运引擎单元,所述搬运引擎单元用于实现页面管理单元与主存储器之间的数据交互;
所述页面管理单元在将所述数据处理请求发送给主存储器时,具体用于:
通过搬运引擎将所述数据处理请求发送给主存储器。
与上述方法相对应,所述页面管理单元在获取所述主存储器的反馈数据,将所述反馈数据写入所述缓存器时,具体用于:
通过搬运引擎获取所述主存储器存储的大小为预设值的反馈数据,将获取到的反馈数据发送给页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述反馈数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
与上述方法相对应,所述页面管理单元在将写入所述存储器的数据写入缓存器时,具体用于:
通过数据搬运引擎向主存储器发送大小为预设值的数据读取请求,以获取写入所述存储器的数据,所述数据搬运引擎将读取到的数据发送至页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述数据搬运引擎将读取到的数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
与上述方法相对应,所述页面管理单元在建立所述缓存器的存储数据与所述数据处理请求之间的映射关系时,具体用于:
通过插入或替换页表条目PTE的方式建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,所述页表条目PTE中存储有所述主存储器的虚拟地址与所述缓存器的物理地址之间的映射关系,其中,所述数据处理请求中包含有虚拟地址。
对应于上述装置,本申请还公开了一种数据处理设备,该设备可以包括:主存储器、缓存器以及本申请上述任意一项实施例公开的数据处理设备。
综合上述方法和装置,本申请实施例公开的上述方案打破了传统的缓存器对地址索引和数据的管理方式,单独分离出地址索引数据,针对连续线性地址访问主存储器的情形,采用大数据块以及页表管理的方式来提供更高的硬件资源利用率以及更高的缓存器命中率。
为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种缓存器实现方法,其特征在于,包括:
获取请求单元发送的数据处理请求,所述数据请求中具有第一地址;
通过页表项索引判断页面管理单元命中所述第一地址时,判断所述数据处理请求的操作类型;
当所述数据处理请求为读操作时,请求缓存器处理所述数据处理请求,获取缓存器对所述数据处理请求的响应数据,将所述响应数据发送给所述请求单元;
当所述数据处理请求为写操作时,将所述数据处理请求发送给缓存器和主存储器,以使得缓存器和主存储器根据写操作更新存储数据。
2.根据权利要求1所述的缓存器实现方法,其特征在于,还包括:
当所述通过页表项索引判断页面管理单元未命中所述第一地址时,判断所述数据处理请求的操作类型;
当所述数据处理请求为读操作时,将所述数据处理请求发送给所述主存储器,获取所述主存储器的大小为预设值的反馈数据,将所述反馈数据写入所述缓存器,在所述页面管理单元中建立所述缓存器中的反馈数据与所述数据处理请求之间的映射关系,将所述反馈数据反馈给所述请求单元;
当所述数据处理请求为写操作时,将所述数据处理请求发送给所述主存储器,将数据写入所述主存储器,然后向所述主存储器发送大小为预设值的数据读取请求,并将所述存储器的反馈数据写入缓存器,建立缓存器中的反馈数据与所述数据处理请求之间的映射关系。
3.根据权利要求1所述的缓存器实现方法,其特征在于,当所述数据处理请求为写操作时,将所述数据处理请求发送给主存储器包括:
当所述数据处理请求为写操作时,通过搬运引擎将所述数据处理请求发送给主存储器。
4.根据权利要求2所述的缓存器实现方法,其特征在于,获取所述主存储器的反馈数据,将所述反馈数据写入所述缓存器,包括:
通过搬运引擎获取所述主存储器存储的大小为预设值的反馈数据,将获取到的反馈数据发送给页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述反馈数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
5.根据权利要求2所述的缓存器实现方法,其特征在于,将写入所述存储器的数据写入缓存器,包括:
通过数据搬运引擎向主存储器发送大小为预设值的数据读取请求,以获取写入所述存储器的数据,所述数据搬运引擎将读取到的数据发送至页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述数据搬运引擎将读取到的数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
6.根据权利要求4或5任意一项所述的缓存器实现方法,其特征在于,所述建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,包括:
通过插入或替换页表条目PTE的方式建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,所述页表条目PTE中存储有所述主存储器的虚拟地址与所述缓存器的物理地址之间的映射关系,其中,所述数据处理请求中包含有虚拟地址。
7.一种缓存器实现装置,其特征在于,包括:
请求采集单元,用于获取请求单元发送的数据处理请求,所述数据请求中具有第一地址,将所述数据处理请求发送给页面管理单元;
页面管理单元,所述页面管理单元判断是否命中获取到的数据处理请求,当所述页面管理单元命中所述第一地址时,判断所述数据处理请求的操作类型;当所述数据处理请求为读操作时,请求缓存器处理所述数据处理请求,获取缓存器对所述数据处理请求的响应数据,将所述响应数据发送给所述请求单元;当所述数据处理请求为写操作时,将所述数据处理请求发送给缓存器和主存储器,以使得缓存器和主存储器根据写操作更新存储数据。
8.根据权利要求7所述的缓存器实现装置,其特征在于,还包括:
所述页面管理单元还用于:当所述通过页表项索引判断页面管理单元未命中所述第一地址时,判断所述数据处理请求的操作类型;
当所述数据处理请求为读操作时,将所述数据处理请求发送给所述主存储器,获取所述主存储器的大小为预设值的反馈数据,将所述反馈数据写入所述缓存器,在所述页面管理单元中建立所述缓存器中的反馈数据与所述数据处理请求之间的映射关系,将所述反馈数据反馈给所述请求单元;
当所述数据处理请求为写操作时,将所述数据处理请求发送给所述主存储器,将数据写入所述主存储器,然后向所述主存储器发送大小为预设值的数据读取请求,并将所述存储器的反馈数据写入缓存器,建立缓存器中的反馈数据与所述数据处理请求之间的映射关系。
9.根据权利要求7所述的缓存器实现装置,其特征在于,还包括:
搬运引擎单元,所述搬运引擎单元用于实现页面管理单元与主存储器之间的数据交互;
所述页面管理单元在将所述数据处理请求发送给主存储器时,具体用于:
通过搬运引擎将所述数据处理请求发送给主存储器。
10.根据权利要求9所述的缓存器实现装置,其特征在于,所述页面管理单元在获取所述主存储器的反馈数据,将所述反馈数据写入所述缓存器时,具体用于:
通过搬运引擎获取所述主存储器存储的大小为预设值的反馈数据,将获取到的反馈数据发送给页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述反馈数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
11.根据权利要求9所述的缓存器实现装置,其特征在于,所述页面管理单元在将写入所述存储器的数据写入缓存器时,具体用于:
通过数据搬运引擎向主存储器发送大小为预设值的数据读取请求,以获取写入所述存储器的数据,所述数据搬运引擎将读取到的数据发送至页表管理单元,所述页表管理单元通过页面替换算法得到的物理地址将接收到的所述数据搬运引擎将读取到的数据写入缓存器,并在所述页表管理单元中建立所述缓存器的存储数据与所述数据处理请求之间的映射关系。
12.根据权利要求10或11任意一项所述的缓存器实现装置,其特征在于,所述页面管理单元在建立所述缓存器的存储数据与所述数据处理请求之间的映射关系时,具体用于:
通过插入或替换页表条目PTE的方式建立所述缓存器的存储数据与所述数据处理请求之间的映射关系,所述页表条目PTE中存储有所述主存储器的虚拟地址与所述缓存器的物理地址之间的映射关系,其中,所述数据处理请求中包含有虚拟地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110429510.0A CN113157606A (zh) | 2021-04-21 | 2021-04-21 | 一种缓存器实现方法、装置和数据处理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110429510.0A CN113157606A (zh) | 2021-04-21 | 2021-04-21 | 一种缓存器实现方法、装置和数据处理设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113157606A true CN113157606A (zh) | 2021-07-23 |
Family
ID=76867700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110429510.0A Pending CN113157606A (zh) | 2021-04-21 | 2021-04-21 | 一种缓存器实现方法、装置和数据处理设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157606A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114201444A (zh) * | 2021-12-06 | 2022-03-18 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
WO2023087640A1 (zh) * | 2021-11-17 | 2023-05-25 | 海光信息技术股份有限公司 | 数据处理方法、装置、缓存器、处理器及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851673A (zh) * | 2005-12-13 | 2006-10-25 | 华为技术有限公司 | 处理器系统及其数据操作方法 |
CN101727405A (zh) * | 2008-10-20 | 2010-06-09 | 株式会社东芝 | 虚拟地址高速缓冲存储器和方法以及处理器 |
US8601223B1 (en) * | 2006-09-19 | 2013-12-03 | Nvidia Corporation | Techniques for servicing fetch requests utilizing coalesing page table entries |
CN106326145A (zh) * | 2015-06-26 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种存储器的控制方法和装置 |
CN111552653A (zh) * | 2020-05-14 | 2020-08-18 | 上海燧原科技有限公司 | 页表的读取方法、装置、设备及计算机存储介质 |
-
2021
- 2021-04-21 CN CN202110429510.0A patent/CN113157606A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851673A (zh) * | 2005-12-13 | 2006-10-25 | 华为技术有限公司 | 处理器系统及其数据操作方法 |
US8601223B1 (en) * | 2006-09-19 | 2013-12-03 | Nvidia Corporation | Techniques for servicing fetch requests utilizing coalesing page table entries |
CN101727405A (zh) * | 2008-10-20 | 2010-06-09 | 株式会社东芝 | 虚拟地址高速缓冲存储器和方法以及处理器 |
CN106326145A (zh) * | 2015-06-26 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种存储器的控制方法和装置 |
CN111552653A (zh) * | 2020-05-14 | 2020-08-18 | 上海燧原科技有限公司 | 页表的读取方法、装置、设备及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
陈海燕, 邓让钰, 邢座程: "高性能微处理器TLB的优化设计", 国防科技大学学报, no. 04, 25 August 2004 (2004-08-25) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087640A1 (zh) * | 2021-11-17 | 2023-05-25 | 海光信息技术股份有限公司 | 数据处理方法、装置、缓存器、处理器及电子设备 |
CN114201444A (zh) * | 2021-12-06 | 2022-03-18 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
CN114201444B (zh) * | 2021-12-06 | 2023-11-14 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102036769B1 (ko) | 데이터 캐싱 방법, 캐시 및 컴퓨터 시스템 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN106648464B (zh) | 基于云存储的多节点混合块缓存数据读写方法及系统 | |
EP2645259A1 (en) | Method, device and system for caching data in multi-node system | |
CN108595349B (zh) | 大容量存储设备的地址转换方法与装置 | |
CN109977129A (zh) | 多级数据缓存方法及设备 | |
CN113157606A (zh) | 一种缓存器实现方法、装置和数据处理设备 | |
CN114860785B (zh) | 缓存数据处理系统、方法、计算机设备和存储介质 | |
CN105635196A (zh) | 一种获取文件数据的方法、系统和应用服务器 | |
CN109446117A (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
CN112506823A (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
CN111913917A (zh) | 一种文件处理方法、装置、设备和介质 | |
CN104811495B (zh) | 一种用于智慧协同网络的网络组件内容存储方法及模块 | |
US20170364442A1 (en) | Method for accessing data visitor directory in multi-core system and device | |
CN113407120B (zh) | 基于hmb的映射表管理方法、装置及计算机设备 | |
CN113835639B (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
CN104714898B (zh) | 一种Cache的分配方法和装置 | |
CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
CN111831691A (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN113010452A (zh) | 一种高效且支持QoS的虚拟内存架构 | |
US20200293455A1 (en) | Cache address mapping method and related device | |
CN108664217A (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
CN107632944B (zh) | 一种读取数据的方法及装置 | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 | |
CN115687185A (zh) | 基于mmap内存映射的手持端低功耗数据采集方法 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 200120 room a-522, 188 Yesheng Road, Lingang xinpian District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Applicant after: Shanghai Suiyuan Technology Co.,Ltd. Address before: 201203 3rd floor, building 1, zhangrun building, 158 Jinqiu Road, Pudong New Area, Shanghai Applicant before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd. |