CN104793987B - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN104793987B
CN104793987B CN201410023223.XA CN201410023223A CN104793987B CN 104793987 B CN104793987 B CN 104793987B CN 201410023223 A CN201410023223 A CN 201410023223A CN 104793987 B CN104793987 B CN 104793987B
Authority
CN
China
Prior art keywords
data
assembly line
address
cache
cpu
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
Application number
CN201410023223.XA
Other languages
English (en)
Other versions
CN104793987A (zh
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.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co 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 China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201410023223.XA priority Critical patent/CN104793987B/zh
Publication of CN104793987A publication Critical patent/CN104793987A/zh
Application granted granted Critical
Publication of CN104793987B publication Critical patent/CN104793987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及通信技术领域,尤其涉及一种数据处理方法及装置,用以解决现有的内存访问过程中,各访问步骤串行执行,导致访问效率较低的问题。本发明实施例提供的数据处理方法,包括:确定流水线中的地址映射阶段的工作执行完毕;所述流水线用于为CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理。采用本发明实施例,可以在地址映射阶段的工作执行完毕后即开始同时处理下一条数据请求消息,而不必等到三个阶段的工作都执行完毕后才开始处理下一条数据请求消息,从而可以有效提高数据读取的执行效率。

Description

一种数据处理方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种数据处理方法及装置。
背景技术
随着图形界面应用的发展,之前内存容量较小(K的数量级)的物理内存已无法匹配程序的规模;针对该问题,一种解决方案是将程序分割成小块,依次调入内存,但这一方案实现复杂,效率较低;另一种解决方案是采用虚拟内存,这样,数据、堆栈的总的大小可以超过物理存储器的大小,操作系统将当前使用的部分数据保留在内存中,而将其他未被使用的部分数据保存在磁盘上,数据读取过程中的地址映射和内存访问控制是由内存管理单元(Memory Management Unit,MMU)实现的。
MMU在进行地址映射和内存访问控制时,程序访问存储器所使用的逻辑地址为虚拟地址(Virtual Address,VA),存储器中存储单元对应的实际地址为物理地址(PhysicalAddress,PA);如果中央处理器(CPU,Central Processing Unit)集成了MMU,CPU发出的VA将被MMU截获,MMU将VA转换成PA,并将PA发送到CPU芯片的外部地址引脚上,也即将VA映射成PA,如图1所示;
高级精简指令集机器(Advanced RISC Machine,ARM)的MMU集成在CP15协处理器中,CP15协处理器的所有操作都是基于CPU寄存器和CP15寄存器之间交换数据来完成的;在ARM体系结构下,由VA到PA的映射通常是通过两级查表(Translation Table Walk)来完成的。如图2所示,为两级查表的过程示意图,第一级和第二级页表的页大小分别为1M和4KB,其中,VA占用32位,VA[31:20]为第一级页表的索引,VA[19:12]为第二级页表的索引,VA[11:0]为页内偏移量;CP15协处理器的转换表基址(Translation Table Base,TTB)寄存器中保存着第一级页表的基地址(这里的基地址为物理地址),第一级页表是根据该基地址保存在物理内存中的,之后,以VA[31:20]为索引在第一级页表中查出一个页表项,该页表项中保存着第二级页表的基地址,第二级页表是根据该基地址保存在物理内存中的,再之后,以VA[19:12]为索引,在第二级页表中查出一个页表项,该页表项中保存着物理页面的基地址,最后,根据该物理页面的基地址以及页内偏移量VA[11:0]就可以得到具体的PA;
上述页表项不仅保存着物理页面的基地址,还保存着权限位和是否允许缓存的标志,因此,除上述地址映射步骤外,在CPU请求读取数据的过程中,MMU还需要执行另外两个步骤,分别是权限位检验和是否允许缓存检验,其中,权限位检验就是检查是否有访问权限,如果没有访问权限,就通知CPU访问异常,是否允许缓存检验是检验数据是否允许缓存;如果允许缓存,则从缓存中查找需要读取的数据,否则,执行从物理内存读取数据的过程;
在现有技术中,上述内存访问的三个步骤是串行执行的,也就是在CPU发出数据请求后,MMU依次执行上述三个步骤,在第三个步骤执行完毕后,再处理接下来的数据请求,执行效率较低,成为虚拟内存应用的效率瓶颈。
发明内容
本发明实施例提供一种数据处理方法及装置,用以解决现有的内存访问过程中,各访问步骤串行执行,导致访问效率较低的问题。
本发明实施例提供的一种数据处理方法,包括:
确定流水线中的地址映射阶段的工作执行完毕;所述流水线用于为中央处理器CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;
从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理;所述流水线等待队列用于存储所述CPU发送的数据请求消息。
可选地,所述方法还包括:
在接收到所述CPU发出的数据请求消息后,将所述数据请求消息放入所述流水线等待队列末尾。
可选地,确定流水线中的地址映射阶段的工作执行完毕,包括:
确定多条流水线中至少一条流水线中的地址映射阶段的工作执行完毕;
从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理,包括:
从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述至少一条流水线中的任意一条流水线中进行处理。
可选地,所述数据请求消息包括:所述CPU所请求的数据的虚拟地址VA。
可选地,所述方法还包括:
若所述流水线输出的处理结果为不允许缓存,则根据将所述VA进行地址映射后的物理地址PA,从物理内存中读取数据,并将读取的数据发送给所述CPU;
若所述流水线输出的处理结果为允许缓存,则根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,并将读取的数据发送给所述CPU。
本发明实施例提供的一种数据处理装置,包括:
确定模块,用于确定流水线中的地址映射阶段的工作已执行完毕;所述流水线用于为中央处理器CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;
处理模块,用于在流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理;所述流水线等待队列用于存储所述CPU发送的数据请求消息。
可选地,所述处理模块还用于:
在接收到所述CPU发出的数据请求消息后,将所述数据请求消息放入所述流水线等待队列末尾。
可选地,所述确定模块具体用于:
确定多条流水线中至少一条流水线中的地址映射阶段的工作执行完毕;
所述处理模块具体用于:
从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述至少一条流水线中的任意一条流水线中进行处理。
可选地,所述数据请求消息包括:所述CPU所请求的数据的虚拟地址VA。
可选地,所述处理模块还用于:
若所述流水线输出的处理结果为不允许缓存,则根据将所述VA进行地址映射后的物理地址PA,从物理内存中读取数据,并将读取的数据发送给所述CPU;若所述流水线输出的处理结果为允许缓存,则根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,并将读取的数据发送给所述CPU。
本发明实施例中引入流水线为CPU提供数据读取服务,在确定流水线中的地址映射阶段的工作执行完毕后,在用于存储该CPU发送的数据请求消息的流水线等待队列中取出一条数据请求消息,并将取出的数据请求消息放入所述流水线中进行处理;采用本发明实施例,可以在地址映射阶段的工作执行完毕后即开始同时处理下一条数据请求消息,而不必等到地址映射、权限位检验和是否允许缓存检验三个阶段的工作都执行完毕后才开始处理下一条数据请求消息,从而可以有效提高数据读取的执行效率。
附图说明
图1为本发明实施例提供的地址映射示意图;
图2为两级查表的过程示意图;
图3为本发明实施例一提供的数据处理方法流程图;
图4为本发明实施例中的流水线各工作阶段示意图;
图5为流水线中不同工作阶段并发执行的示意图;
图6为本发明实施例二提供的引入流水线技术的数据处理方法流程图;
图7为本发明实施例三提供的引入超标量和流水线技术的数据处理方法流程图;
图8为本发明实施例提供的数据处理装置结构示意图。
具体实施方式
本发明实施例中引入流水线为CPU提供数据读取服务,在确定流水线中的地址映射阶段的工作执行完毕后,在用于存储该CPU发送的数据请求消息的流水线等待队列中取出一条数据请求消息,并将取出的数据请求消息放入所述流水线中进行处理;采用本发明实施例,可以在地址映射阶段的工作执行完毕后即开始同时处理下一条数据请求消息,而不必等到地址映射、权限位检验和是否允许缓存检验三个阶段的工作都执行完毕后才开始处理下一条数据请求消息,从而可以有效提高数据读取的执行效率。
下面结合说明书附图对本发明实施例作进一步详细描述。
如图3所示,为本发明实施例一提供的数据处理方法流程图,包括以下步骤:
S301:确定流水线中的地址映射阶段的工作执行完毕;所述流水线用于为CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;
S302:在流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理;所述流水线等待队列用于存储所述CPU发送的数据请求消息;
本发明实施例的执行主体为可以为MMU,该MMU可以集成在ARM的CP14协处理器中;上述流水线工作执行的三个阶段中,每个阶段平均需要一个时钟周期,当流水线完全装满时,平均每个时钟周期会有一个流水线输出的结果,即是否允许缓存检验的结果。
可选地,所述方法还包括:
在接收到所述CPU发出的数据请求消息后,将所述数据请求消息放入所述流水线等待队列末尾。
在具体实施过程中,在接收到CPU发送的数据请求消息后,可以首先将该数据请求消息放入预先设置的流水线等待队列末尾,在处理CPU发送的数据请求消息时,从该流水线等待队列的头部取出数据请求消息进行处理;如图4所示,为本发明实施例中的流水线各工作阶段示意图;具体地,每当流水线中的地址映射阶段完成时,在该水线等待队列的头部取出一条数据请求消息,放入流水线中,依次执行上述地址映射、权限位检验和是否允许缓存检验三个流水段,也即该流水线的工作以地址映射阶段为开始,以得到是否允许缓存检验的结果为结束;针对CPU发出的不同数据请求消息,对不同数据请求消息的不同处理阶段可以并发执行,如图5所示,具体地,在针对第n条数据请求消息的地址映射阶段的工作执行完毕后,可以针对第n+1条数据请求消息,执行地址映射阶段的处理,同时执行的还有针对第n条数据请求消息的权限位检验阶段,在针对第n+1条数据请求消息的地址映射阶段的工作执行完毕后,可以针对第n+2数据请求消息,执行地址映射阶段的处理,同时执行的还有针对第n条数据请求消息的是否允许缓存检验阶段,和针对第n+1条数据请求消息的权限位检验阶段,这里,n为正整数。
可选地,所述数据请求消息包括:所述CPU所请求的数据的虚拟地址VA;
在具体实施过程中,CPU请求数据时发送给MMU的数据请求消息中包括请求数据的虚拟地址VA,MMU在进行地址映射时,可以首先将该VA在旁路转换缓存(TranslationLookaside Buffer,TLB)中进行匹配,TLB是MMU中的一块高速缓存,可以用它来缓存最近查找过的VA对应的页表项,如果TLB中缓存了当前VA的页表项就不必进行背景部分所述两级查表过程(Translation Table Walk)了,可以直接根据TLB中缓存的页表项进行地址映射,否则,就还需要从物理内存中读取页表项,在读取之后,可以将其保存在TLB中,因此,采用TLB缓存可以减少访问物理内存的次数,提高数据处理效率。
可选度,所述方法还包括:
若所述流水线输出的处理结果为不允许缓存,则根据将所述VA进行地址映射后的物理地址PA,从物理内存中读取数据,并将读取的数据发送给所述CPU;
若所述流水线输出的处理结果为允许缓存,则根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,并将读取的数据发送给所述CPU。
在具体实施过程中,流水线输出的数据处理结果为是否允许缓存的结果,若该处理结果为不允许缓存,则根据地址映射阶段转换后的物理地址PA,从物理内存中读取数据,并发送给CPU,若该处理结果为允许缓存,则可以以CPU的数据请求消息中的VA为索引,在缓存(Cache)中查找是否已经缓存了CPU请求的数据,如果能够从Cache中查找到CPU请求的数据,则可以直接从该Cache中取出数据发送给CPU,如果不能从Cache中查找到CPU请求的数据,则说明该Cache中还没有缓存CPU请求的数据(Cache Miss),则可以根据在地址映射阶段将VA转换后的PA,从物理内存中读取数据并进行缓存,同时返回给CPU;需要说明的是,在从物理内存读取数据进行缓存时,读取并缓存的数据不仅包括CPU请求的数据,还可以包括与CPU请求的数据相邻的数据,比如,将在CPU请求的数据之前和之后一行大小的数据取出并进行缓存。
可选地,确定流水线中的地址映射阶段的工作已执行完毕,包括:
确定多条流水线中至少一条流水线中的地址映射阶段的工作已执行完毕;
在流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理,包括:
在流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述至少一条流水线中的任意一条流水线中进行处理。
在具体实施过程中,对于实时性要求较高的ARM架构下的CPU,可以设置并行执行的多条流水线,由这多条流水线组成超标量流水线,以提高内存访问操作的并发能力;这时,上述流水线等待队列可以为多条流水线提供服务,每当CPU发出数据请求消息后,将该数据请求消息放入该流水线等待队列末尾,当有任意一条流水线中的地址映射阶段的工作完成时,在流水线等待队列中取出一条数据请求消息,根据该数据请求消息中的VA,进行流水线各阶段的处理,该条流水线输出CPU请求的数据是否允许缓存的结果,若输出结果为不允许缓存,则直接发出PA从物理内存中读取数据并发送给CPU,若输出结果为允许缓存,则以VA为索引在缓存(Cache)中查找是否缓存了CPU请求的数据,若Cache中已经缓存了CPU请求的数据,则直接从Cache中返回数据给CPU,若Cache中没有缓存CPU请求的数据,则还需要发出PA从物理内存中读取数据并缓存到Cache中,同时将CPU请求的数据发送给CPU;需要说明的是,在从物理内存读取数据进行缓存时,读取并缓存的数据不仅包括CPU请求的数据,还可以包括与CPU请求的数据相邻的数据,比如,将在CPU请求的数据之前和之后一行大小的数据取出并进行缓存。
为了更好地说明本发明实施例进行数据处理的方法,下面通过两个具体的实施例对本发明实施例的方法作进一步说明;
如图6所示,为本发明实施例二提供的引入流水线技术的数据处理方法流程图,包括:
S601:若接收到CPU发出的包括VA的数据请求消息,则将该数据请求消息放入预先设置的流水线等待队列末尾;
S602:每当流水线中的地址映射阶段的任务执行完毕后,在上述流水线等待队列中取出一条数据请求消息放入流水线中进行处理;
S603:判断流水线输出的处理结果为允许缓存还是不允许缓存,若为允许缓存,则进入步骤S604,否则,进入步骤S605;
S604:根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,同时将读取的数据发送给所述CPU。
S605:根据将所述VA进行地址映射后的PA,从物理内存中读取数据,并将读取的数据发送给所述CPU。
如图7所示,为本发明实施例三提供的引入超标量和流水线技术的数据处理方法流程图,包括:
S701:若接收到CPU发出的包括VA的数据请求消息,则将该数据请求消息放入预先设置的服务于多条流水线的流水线等待队列末尾;
S702:在并发运行的多条流水线中,每当有一条流水线中的地址映射阶段的任务执行完毕后,在上述流水线等待队列中取出一条数据请求消息放入该条流水线中进行处理;
S703:在并发运行的多条流水线中,若有其中一条流水线输出了是否允许缓存的处理结果,则判断流水线输出的处理结果为允许缓存还是不允许缓存,若为允许缓存,则进入步骤S704,否则,进入步骤S705;
S704:根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,同时将读取的数据发送给所述CPU。
S705:根据将所述VA进行地址映射后的PA,从物理内存中读取数据,并将读取的数据发送给所述CPU。
基于同一发明构思,本发明实施例中还提供了一种与数据处理方法对应的数据处理装置,由于该装置解决问题的原理与本发明实施例数据处理方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图8所示,为本发明实施例提供的数据处理装置结构示意图,包括:
确定模块81,用于确定流水线中的地址映射阶段的工作执行完毕;所述流水线用于为中央处理器CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;
处理模块82,用于在流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理;所述流水线等待队列用于存储所述CPU发送的数据请求消息。
可选地,所述处理模块82还用于:
在接收到所述CPU发出的数据请求消息后,将所述数据请求消息放入所述流水线等待队列末尾。
可选地,所述确定模块81具体用于:确定多条流水线中至少一条流水线中的地址映射阶段的工作执行完毕;
所述处理模块82具体用于:从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述至少一条流水线中的任意一条流水线中进行处理。
可选地,所述数据请求消息包括:所述CPU所请求的数据的虚拟地址VA。
可选地,所述处理模块82还用于:若所述流水线输出的处理结果为不允许缓存,则根据将所述VA进行地址映射后的物理地址PA,从物理内存中读取数据,并将读取的数据发送给所述CPU;若所述流水线输出的处理结果为允许缓存,则根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,并将读取的数据发送给所述CPU。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种数据处理方法,其特征在于,该方法包括:
确定流水线中的地址映射阶段的工作执行完毕;所述流水线用于为中央处理器CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;
从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理;所述流水线等待队列用于存储所述CPU发送的数据请求消息;其中,所述数据请求消息包括:所述CPU所请求的数据的虚拟地址VA;
若所述流水线输出的处理结果为不允许缓存,则根据将所述VA进行地址映射后的物理地址PA,从物理内存中读取数据,并将读取的数据发送给所述CPU;
若所述流水线输出的处理结果为允许缓存,则根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,并将读取的数据发送给所述CPU。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到所述CPU发出的数据请求消息后,将所述数据请求消息放入所述流水线等待队列末尾。
3.如权利要求1或2所述的方法,其特征在于,
确定流水线中的地址映射阶段的工作执行完毕,包括:确定多条流水线中至少一条流水线中的地址映射阶段的工作执行完毕;
从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理,包括:从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述至少一条流水线中的任意一条流水线中进行处理。
4.一种数据处理装置,其特征在于,该装置包括:
确定模块,用于确定流水线中的地址映射阶段的工作执行完毕;所述流水线用于为中央处理器CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;
处理模块,用于在流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理;所述流水线等待队列用于存储所述CPU发送的数据请求消息;其中,所述数据请求消息包括:所述CPU所请求的数据的虚拟地址VA;
所述处理模块还用于:
若所述流水线输出的处理结果为不允许缓存,则根据将所述VA进行地址映射后的物理地址PA,从物理内存中读取数据,并将读取的数据发送给所述CPU;若所述流水线输出的处理结果为允许缓存,则根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,并将读取的数据发送给所述CPU。
5.如权利要求4所述的装置,其特征在于,所述处理模块还用于:
在接收到所述CPU发出的数据请求消息后,将所述数据请求消息放入所述流水线等待队列末尾。
6.如权利要求4或5所述的装置,其特征在于,
所述确定模块具体用于:确定多条流水线中至少一条流水线中的地址映射阶段的工作执行完毕;
所述处理模块具体用于:从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述至少一条流水线中的任意一条流水线中进行处理。
CN201410023223.XA 2014-01-17 2014-01-17 一种数据处理方法及装置 Active CN104793987B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410023223.XA CN104793987B (zh) 2014-01-17 2014-01-17 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410023223.XA CN104793987B (zh) 2014-01-17 2014-01-17 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN104793987A CN104793987A (zh) 2015-07-22
CN104793987B true CN104793987B (zh) 2018-08-03

Family

ID=53558802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410023223.XA Active CN104793987B (zh) 2014-01-17 2014-01-17 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN104793987B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107918613B (zh) * 2016-10-08 2022-01-21 上海宝存信息科技有限公司 因应服务质量的固态硬盘访问方法以及使用该方法的装置
CN108347383A (zh) * 2018-02-05 2018-07-31 吴子仪 一种基于流水线的并发多路路由查询实现方法
CN110163609B (zh) * 2019-05-28 2024-02-27 深圳前海微众银行股份有限公司 一种区块链中数据处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537538A (en) * 1993-12-15 1996-07-16 Silicon Graphics, Inc. Debug mode for a superscalar RISC processor
CN1355900A (zh) * 1999-05-13 2002-06-26 Arc国际美国控股公司 用于处理器流水线分段法及再装配的方法以及装置
CN1941735A (zh) * 2005-09-29 2007-04-04 华为技术有限公司 一种报文处理方法及系统
CN102103490A (zh) * 2010-12-17 2011-06-22 曙光信息产业股份有限公司 一种利用流水处理提高内存效率的方法
CN103268219A (zh) * 2013-05-28 2013-08-28 北京航空航天大学 基于流水线架构的海量文件指导型预取并行处理加速方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537538A (en) * 1993-12-15 1996-07-16 Silicon Graphics, Inc. Debug mode for a superscalar RISC processor
CN1355900A (zh) * 1999-05-13 2002-06-26 Arc国际美国控股公司 用于处理器流水线分段法及再装配的方法以及装置
CN1941735A (zh) * 2005-09-29 2007-04-04 华为技术有限公司 一种报文处理方法及系统
CN102103490A (zh) * 2010-12-17 2011-06-22 曙光信息产业股份有限公司 一种利用流水处理提高内存效率的方法
CN103268219A (zh) * 2013-05-28 2013-08-28 北京航空航天大学 基于流水线架构的海量文件指导型预取并行处理加速方法

Also Published As

Publication number Publication date
CN104793987A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
Calder et al. Predictive sequential associative cache
US10037228B2 (en) Efficient memory virtualization in multi-threaded processing units
CN104133780B (zh) 一种跨页预取方法、装置及系统
US10169091B2 (en) Efficient memory virtualization in multi-threaded processing units
US8145874B2 (en) System and method of data forwarding within an execution unit
US20140101405A1 (en) Reducing cold tlb misses in a heterogeneous computing system
TWI405081B (zh) 對共享第二層對映快取記憶體對稱配置之方法與系統
US9595075B2 (en) Load/store operations in texture hardware
WO2015061744A1 (en) Ordering and bandwidth improvements for load and store unit and data cache
KR102268601B1 (ko) 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템
JP2018506776A (ja) 選択的ページミス変換プリフェッチによってプログラムメモリコントローラにおけるページ変換ミスレイテンシを隠すこと
CN101013402A (zh) 多个转换高速缓存缺失的处理方法和系统
CN104714899B (zh) 加载通过故障机制
CN104793987B (zh) 一种数据处理方法及装置
US8539209B2 (en) Microprocessor that performs a two-pass breakpoint check for a cache line-crossing load/store operation
JP7097371B2 (ja) メモリシステムへの加速されたアクセスを提供するための方法及び機器
US8200900B2 (en) Method and apparatus for controlling cache memory
JP4669244B2 (ja) キャッシュメモリ装置およびメモリ制御方法
CN108874691A (zh) 数据预取方法和内存控制器
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
CN105786758B (zh) 一种具有数据缓存功能的处理器装置
CN101894010B (zh) 微处理器及适用于微处理器的操作方法
TW200931443A (en) Apparatus for predicting memory access and method thereof
US8375163B1 (en) Supporting late DRAM bank hits
US20240020012A1 (en) Memory Request Combination Indication

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant