一种数据处理方法及装置的制造方法

文档序号:8472824阅读:190来源:国知局
一种数据处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种数据处理方法及装置。
【背景技术】
[0002]随着图形界面应用的发展,之前内存容量较小(K的数量级)的物理内存已无法匹配程序的规模;针对该问题,一种解决方案是将程序分割成小块,依次调入内存,但这一方案实现复杂,效率较低;另一种解决方案是采用虚拟内存,这样,数据、堆栈的总的大小可以超过物理存储器的大小,操作系统将当前使用的部分数据保留在内存中,而将其他未被使用的部分数据保存在磁盘上,数据读取过程中的地址映射和内存访问控制是由内存管理单兀(Memory Management Unit, MMU)实现的。
[0003]MMU在进行地址映射和内存访问控制时,程序访问存储器所使用的逻辑地址为虚拟地址(Virtual Address, VA),存储器中存储单元对应的实际地址为物理地址(PhysicalAddress, PA);如果中央处理器(CPU, Central Processing Unit)集成了 MMU, CPU 发出的VA将被MMU截获,MMU将VA转换成PA,并将PA发送到CPU芯片的外部地址引脚上,也即将VA映射成PA,如图1所示;
[0004]高级精简指令集机器(Advanced RISC Machine, ARM)的MMU集成在CP15协处理器中,CP15协处理器的所有操作都是基于CPU寄存器和CP15寄存器之间交换数据来完成的;在ARM体系结构下,由VA到PA的映射通常是通过两级查表(Translat1n Table Walk)来完成的。如图2所示,为两级查表的过程示意图,第一级和第二级页表的页大小分别为IM和4KB,其中,VA占用32位,VA[31:20]为第一级页表的索弓I,VA[19:12]为第二级页表的索引,VA[11:0]为页内偏移量;CP15协处理器的转换表基址(Translat1n Table Base,TTB)寄存器中保存着第一级页表的基地址(这里的基地址为物理地址),第一级页表是根据该基地址保存在物理内存中的,之后,以VA[31:20]为索引在第一级页表中查出一个页表项,该页表项中保存着第二级页表的基地址,第二级页表是根据该基地址保存在物理内存中的,再之后,以VA[19:12]为索引,在第二级页表中查出一个页表项,该页表项中保存着物理页面的基地址,最后,根据该物理页面的基地址以及页内偏移量VA[11:0]就可以得到具体的PA;
[0005]上述页表项不仅保存着物理页面的基地址,还保存着权限位和是否允许缓存的标志,因此,除上述地址映射步骤外,在CPU请求读取数据的过程中,MMU还需要执行另外两个步骤,分别是权限位检验和是否允许缓存检验,其中,权限位检验就是检查是否有访问权限,如果没有访问权限,就通知CPU访问异常,是否允许缓存检验是检验数据是否允许缓存;如果允许缓存,则从缓存中查找需要读取的数据,否则,执行从物理内存读取数据的过程;
[0006]在现有技术中,上述内存访问的三个步骤是串行执行的,也就是在CPU发出数据请求后,MMU依次执行上述三个步骤,在第三个步骤执行完毕后,再处理接下来的数据请求,执行效率较低,成为虚拟内存应用的效率瓶颈。

【发明内容】

[0007]本发明实施例提供一种数据处理方法及装置,用以解决现有的内存访问过程中,各访问步骤串行执行,导致访问效率较低的问题。
[0008]本发明实施例提供的一种数据处理方法,包括:
[0009]确定流水线中的地址映射阶段的工作执行完毕;所述流水线用于为中央处理器CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;
[0010]从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理;所述流水线等待队列用于存储所述CPU发送的数据请求消息。
[0011 ] 可选地,所述方法还包括:
[0012]在接收到所述CPU发出的数据请求消息后,将所述数据请求消息放入所述流水线等待队列末尾。
[0013]可选地,确定流水线中的地址映射阶段的工作执行完毕,包括:
[0014]确定多条流水线中至少一条流水线中的地址映射阶段的工作执行完毕;
[0015]从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理,包括:
[0016]从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述至少一条流水线中的任意一条流水线中进行处理。
[0017]可选地,所述数据请求消息包括:所述CPU所请求的数据的虚拟地址VA。
[0018]可选地,所述方法还包括:
[0019]若所述流水线输出的处理结果为不允许缓存,则根据将所述VA进行地址映射后的物理地址PA,从物理内存中读取数据,并将读取的数据发送给所述CPU ;
[0020]若所述流水线输出的处理结果为允许缓存,则根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,并将读取的数据发送给所述CPU。
[0021]本发明实施例提供的一种数据处理装置,包括:
[0022]确定模块,用于确定流水线中的地址映射阶段的工作已执行完毕;所述流水线用于为中央处理器CPU提供数据读取服务,包括地址映射、权限位检验和是否允许缓存检验三个顺次执行的工作阶段;
[0023]处理模块,用于在流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述流水线中进行处理;所述流水线等待队列用于存储所述CPU发送的数据请求消息。
[0024]可选地,所述处理模块还用于:
[0025]在接收到所述CPU发出的数据请求消息后,将所述数据请求消息放入所述流水线等待队列末尾。
[0026]可选地,所述确定模块具体用于:
[0027]确定多条流水线中至少一条流水线中的地址映射阶段的工作执行完毕;
[0028]所述处理模块具体用于:
[0029]从流水线等待队列中取出一条数据请求消息,并将取出的所述数据请求消息放入所述至少一条流水线中的任意一条流水线中进行处理。
[0030]可选地,所述数据请求消息包括:所述CPU所请求的数据的虚拟地址VA。
[0031 ] 可选地,所述处理模块还用于:
[0032]若所述流水线输出的处理结果为不允许缓存,则根据将所述VA进行地址映射后的物理地址PA,从物理内存中读取数据,并将读取的数据发送给所述CPU ;若所述流水线输出的处理结果为允许缓存,则根据所述VA,从缓存中查找数据,若在所述缓存中查找到了数据,则将查找到的所述数据发送给所述CPU,若没有在所述缓存中查找到数据,则根据将所述VA进行地址映射后的PA,从物理内存中读取数据,将读取的数据写入所述缓存中,并将读取的数据发送给所述CPU。
[0033]本发明实施例中引入流水线为CPU提供数据读取服务,在确定流水线中的地址映射阶段的工作执行完毕后,在用于存储该CPU发送的数据请求消息的流水线等待队列中取出一条数据请求消息,并将取出的数据请求消息放入所述流水线中进行处理;采用本发明实施例,可以在地址映射阶段的工作执行完毕后即开始同时处理下一条数据请求消息,而不必等到地址映射、权限位检验和是否允许缓存检验三个阶段的工作都执行完毕后才开始处理下一条数据请求消息,从而可以有效提高数据读取的执行效率。
【附图说明】
[0034]图1为本发明实施例提供的地址映射示意图;
[0035]图2为两级查表的过程示意图;
[0036]图3为本发明实施例一提供的数据处理方法流程图;
[0037]图4为本发明实施例中的流水线各工作阶段示意图;
[0038]图5为流水线中不同工作阶段并发执行的示意图;
[0039]图6为本发明实施例二提供的引入流水线技术的数据处理方法流程图;
[0040]图7为本发明实施例三提供的引入超标量和流水线技术的数据处理方法流程图;
[0041]图8为本发明实施例提供的数据处理装置结构示意图。
【具体实施方式】
[0042]本发明实施例中弓丨入流水线为CPU提供数据读取服务,在确定流水线中的地址映射阶段的工作执行完毕后,在用于存储该CPU发送的数据请求消息的流水线等待队列中取出一条数据请求消息,并将取出的数据请求消息放入所述流水线中进行处理;采用本发明实施例,可以在地址映射阶段的工作执行完毕后即开始同时处理下一条数据请求消息,而不必等到地址映射、权限位检验和是否允许缓存检验三个阶段的工作都执行完毕后才开始处理下
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1