数据访问方法和装置的制作方法
专利名称:数据访问方法和装置的制作方法
技术领域:
本发明涉及计算机领域,尤其涉及一种数据访问方法和装置。
背景技术:
程序在执行的过程中,不可避免的需要进行访存操作,包括取指令和取操作数操作。随着处述应用程序或操作系统内核访问频度最高的存储单元中的数据作为密集访问数据;步骤104、将当前任务的密集访问数据加载到所述保留寄存器中;本步骤具体为将当前任务的线程控制块的基地址存储
到所述保留寄存器中。步骤105、通过API访问所述保留寄存器,获取当前任务的密集访问数据。本发明的实施例一提供了一种数据访问方法,接收寄存器保留声明,根据所述寄存器保留声明,从处理器的至少一组通用寄存器中选择一组,作为保留寄存器,将当前任务的密集访问数据加载到所述保留寄存器中,程序在执行时,直接通过寄存器读取密集访问数据,减少了对高速缓存的争抢,解决了程序执行效率较低的问题。下面,对本发明的实施例二进行详细说明。本发明的实施例二提供了一种数据访问方法,首先,由编译器在汇编阶段,生成应用程序和操作系统操作系统内核。对于上述应用程序的操作系统内核来说,在其运行过程中,需要被密集访问的密集访问数据存放于该保留寄存器中。应用程序和操作系统操作系统内核分别使用API替换原有的密集访存指令,减少访存的次数。并且在发生任务切换(即线程换入换出或应用程序请求系统服务时),由操作系统操作系统内核完成保留寄存器的初始化和数据加载或保存的操作,保证各个线程之间数据的正确性。本发明的实施例所使用的编译器,在使用本发明的实施例提供的数据访问方法快速访问管态(即操作系统内核运行的状态)和目态(即用户的应用程序运行的状态)下关键数据的过程中,负责以下功能通过分析应用程序和操作系统操作系统内核,获得某个热点存储单元的访问频度,确定是否应该保留的通用寄存器,并将该信息提交给编译器。编译器在生成汇编代码的过程中,汇编器根据保留寄存器信息,显示地控制通用寄存器的分配。在应用或操作系统内核需要读写这些密集访问数据之前,将数据载入到保留通用寄存器中。应用程序执行之前(即从管态返回目态时),操作系统操作系统内核获取应用中需要密集访问的数据,并将其置于保留寄存器中。从管态返回后,所需的数据一直存放于保留寄存器中。应用在请求系统服务时,将操作系统内核中需要密集访问的数据存入保留寄存器中。所述保留寄存器的保存模块,在基于保留通用寄存器的快速访问管态和目态下关键数据的机制中,负责以下功能在应用或操作系统内核完成对这些密集数据的访问后,将数据写回内存,保证线程下次再被执行时数据的正确性。应用程序进入操作系统内核,并在装载操作系统内核保留寄存器之前,将应用的保留寄存器写回到内存。同理,在操作系统内核完成对保留寄存器的使用,并返回目态之前,将操作系统内核的保留寄存器写回到内存。所述的保留寄存器访问模块,在基于保留通用寄存器的快速访问管态和目态下关键数据的机制中,负责以下功能应用程序通过库函数封装的API对保留的通用寄存器进行访问。操作系统操作系统内核中,使用与应用API独立的操作系统内核级API对保留寄存器进行访问。程序中冗余的访存指令,分别替换成应用级和操作系统内核级的API,以减少不必要的访存操作。通过本发明的实施例提供的数据访问方法,引入了一种基于保留通用寄存器的快速访问管态和目态下关键
数据访问方法和装置的制作方法 来自淘豆网m.daumloan.com转载请标明出处.