栈区数据存取方法、装置、可读存储介质和计算机设备制造方法及图纸

技术编号:17109233 阅读:39 留言:0更新日期:2018-01-24 22:20
本发明专利技术涉及一种栈区数据读取方法、装置、可读存储介质和计算机设备。该方法包括:检测缓存器的已缓存容量状态;若缓存器的已缓存容量状态为未超过半满状态,则在接收到压栈请求时,将压栈请求对应的数据缓存至缓存器;若缓存器的已缓存容量状态为超过半满且未全满状态,则在接收到压栈请求时,将压栈请求对应的数据缓存至缓存器,并按照时间先后顺序从缓存器中选取已缓存的数据存入栈区;在接收到出栈请求时,按照出栈请求对应的读取操作顺序从栈区或缓存器中读取数据。可减少栈区访问次数,处理速度高。

Data access methods, devices, readable storage media, and computer equipment in the stack area

The invention relates to a method of reading data in a stack area, a device, a readable storage medium and a computer device. The method includes: detecting the buffer cache capacity state; if the state has buffer cache capacity not more than half full, after receiving to stack the request, will push to request the corresponding data cache to buffer; if the buffer cache has capacity for more than half full state and not full, then after receiving the stack request, will push to request the corresponding data cache to cache, and in accordance with the time sequence selection has been cached data from the buffer into the stack area; receiving the stack out of the stack in accordance with the request, request the corresponding read operation sequence reads data from the stack or buffer zone. It can reduce the number of access in the stack area, and the processing speed is high.

【技术实现步骤摘要】
栈区数据存取方法、装置、可读存储介质和计算机设备
本专利技术涉及计算机
,特别是涉及一种栈区数据存取方法、装置、可读存储介质和计算机设备。
技术介绍
计算机系统中,CPU(CentralProcessingUnit中央处理器)可通过压栈操作向RAM(RamdomAccessMemory易挥发性随机存取存储器)中的栈区存入数据,通过出栈操作从RAM的栈区读取数据。传统的对栈区数据进行存取的操作,通常是当函数调用或中断响应等事件发生时,CPU通过压栈操作、出栈操作读写RAM。一般来说RAM的存储容量比较大,对大容量的RAM进行读写操作需要耗费的较长时间,导致处理速度慢。
技术实现思路
基于此,有必要针对传统的对栈区数据存取速度慢的问题,提供一种可提高存取速度的栈区数据存取方法、装置、可读存储介质和计算机设备。一种栈区数据存取方法,包括:检测缓存器的已缓存容量状态;若所述缓存器的已缓存容量状态为未超过半满状态,则在接收到压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器;若所述缓存器的已缓存容量状态为超过半满且未全满状态,则在接收到所述压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器,并按照时间先后顺序从所述缓存器中选取已缓存的数据存入栈区;在接收到出栈请求时,按照所述出栈请求对应的读取操作顺序从栈区或缓存器中读取数据。一种栈区数据存取装置,包括:状态检测模块,用于检测缓存器的已缓存容量状态;第一存数据模块,用于在所述缓存器的已缓存容量状态为未超过半满状态、接收到压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器;第二存数据模块,用于在所述缓存器的已缓存容量状态为超过半满且未全满状态、接收到所述压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器,并按照时间先后顺序从所述缓存器中选取已缓存的数据存入栈区;数据读取模块,用于在接收到出栈请求时,按照所述出栈请求对应的读取操作顺序从栈区或缓存器中读取数据。上述栈区数据存取方法和装置,通过检测缓存器的已缓存容量状态后,对于缓存器的已缓存容量状态为未超过半满状态的情况,在接收到压栈请求时,将压栈请求对应的数据缓存至缓存器;对于缓存器的已缓存容量状态为超过半满且未全满状态的情况,在接收到压栈请求时,将压栈请求对应的数据缓存至缓存器,并按照时间先后顺序从缓存器中选取已缓存的数据存入栈区;在接收到出栈请求时,按照出栈请求对应的读取操作顺序从栈区或缓存器中读取数据。如此,在对栈区进行数据存入过程中采用缓存器进行缓存处理,读取数据时可从缓存器或栈区读取,由于对缓存器进行读写操作的处理速度大于向栈区读写操作的处理速度,缓存器的使用可有效减少对栈区的访问次数,从而提高对栈区数据的存取速度。一种可读存储介质,存储有计算机程序,存储的计算机程序被处理器执行时实现上述栈区数据存取方法的步骤。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述栈区数据存取方法的步骤。上述可读存储介质和计算机设备,由于实现了上述栈区数据存取方法,同理可提高对栈区数据的存取速度,且可进一步降低CPU运行的动态功耗。附图说明图1为一实施例中栈区数据存取方法的流程图;图2为一应用例中8位缓存位的缓存环的示意图;图3为另一实施例中栈区数据存取方法的流程图;图4为一应用例中对栈区进行压栈操作和出栈操作的示意图;图5为一实施例中栈区数据存取装置的结构图。具体实施方式参考图1,一实施例中的栈区数据存取方法,包括步骤S110至步骤S150。S110:检测缓存器的已缓存容量状态。其中,已缓存容量状态是缓存器中已缓存的数据占用的容量占缓存器可缓存的总容量的比例状态。指缓存器可缓存的总容量小,小于存储栈区的RAM的总容量。S120:若缓存器的已缓存容量状态为未超过半满状态,则在接收到压栈请求时,将压栈请求对应的数据缓存至缓存器。其中,未超过半满状态为缓存器已缓存的数据占用的容量小于或等于缓存器可缓存的总容量的一半所对应的存储状态,包括已缓存的数据占用的容量等于缓存器可缓存的总容量的一半所对应的半满状态和已缓存的数据占用的容量小于缓存器可缓存的总容量的一半所对应的未达到半满状态。压栈请求为向栈区存入数据的请求。缓存器的总容量小,容易出现缓存占满的情况。已缓存容量状态可以反映出缓存器的存储状态,采用半满状态作为临界条件,若已缓存容量状态为未超过半满状态,则表示缓存器的存储状态未超过临界条件,可继续缓存数据,此时直接将压栈请求对应的数据缓存至缓存器。S130:若缓存器的已缓存容量状态为超过半满且未全满状态,则在接收到压栈请求时,将压栈请求对应的数据缓存至缓存器,并按照时间先后顺序从缓存器中选取已缓存的数据存入栈区。超过半满且未全满状态,为缓存器已缓存的数据占用的容量大于缓存器可缓存的总容量的一半且小于缓存器可缓存的总容量所对应的存储状态。已缓存容量状态为超过半满且未全满状态,表示缓存器的存储状态超过临界条件。在缓存器的存储状态超过临界条件的情况下,启动缓存器的自动写回,从缓存器中选取已缓存的数据存入栈区,可使得缓存器提供更多存储空间,缓存器的存储不会过于堵塞;同时可响应压栈请求,将压栈请求对应的数据缓存至缓存器。具体地,按照时间先后顺序选取已缓存的数据存入栈区,可以保证先缓存的数据先存入栈区,避免栈区中存储数据的先后顺序错乱。S140:在接收到出栈请求时,按照出栈请求对应的读取操作顺序从栈区或缓存器中读取数据。出栈请求为从栈区读取数据的请求。出栈请求对应的存储数据结构为栈,栈的出栈规则为“先进后出”,即先入栈的数据后出栈。因此,出栈请求对应的读取操作顺序为时间倒序。若接收到出栈请求,则按照时间倒序从栈区或缓存器中读取数据。步骤S120、步骤S130和步骤S140均在步骤S110之后执行,步骤S120、步骤S130和步骤S140之间的执行先后顺序不限,步骤S140可以在步骤S120或步骤S130之前执行,也可以在步骤S120或步骤S130之后执行。上述栈区数据存取方法,通过检测缓存器的已缓存容量状态后,对于缓存器的已缓存容量状态为未超过半满状态的情况,在接收到压栈请求时,将压栈请求对应的数据缓存至缓存器;对于缓存器的已缓存容量状态为超过半满且未全满状态的情况,在接收到压栈请求时,将压栈请求对应的数据缓存至缓存器,并按照时间先后顺序从缓存器中选取已缓存的数据存入栈区;在接收到出栈请求时,按照出栈请求对应的读取操作顺序从栈区或缓存器中读取数据。如此,在对栈区进行数据存入过程中采用缓存器进行缓存处理,读取数据时可从缓存器或栈区读取,由于对缓存器进行读写操作的处理速度大于向栈区读写操作的处理速度,缓存器的使用可有效减少对栈区的访问次数,从而提高对栈区数据的存取速度,且可进一步降低CPU运行的动态功耗。具体地,可采用环指针指向缓存器中当前已缓存有数据的地址或者指向当前缓存数据的地址之后的下一个空地址。步骤S110可以根据检测缓存器的环指针所指向的地址和最大地址获取缓存器的已缓存容量状态。比如,缓存器用于缓存数据的地址有10个且顺序排列,环指针指向当前已缓存有数据的地址,若环指针所指向的地址为第3位,则已缓存容量为总容量的3/10,已缓存容量状态为未达到半满。本文档来自技高网...
栈区数据存取方法、装置、可读存储介质和计算机设备

【技术保护点】
一种栈区数据存取方法,其特征在于,包括:检测缓存器的已缓存容量状态;若所述缓存器的已缓存容量状态为未超过半满状态,则在接收到压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器;若所述缓存器的已缓存容量状态为超过半满且未全满状态,则在接收到所述压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器,并按照时间先后顺序从所述缓存器中选取已缓存的数据存入栈区;在接收到出栈请求时,按照所述出栈请求对应的读取操作顺序从栈区或缓存器中读取数据。

【技术特征摘要】
1.一种栈区数据存取方法,其特征在于,包括:检测缓存器的已缓存容量状态;若所述缓存器的已缓存容量状态为未超过半满状态,则在接收到压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器;若所述缓存器的已缓存容量状态为超过半满且未全满状态,则在接收到所述压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器,并按照时间先后顺序从所述缓存器中选取已缓存的数据存入栈区;在接收到出栈请求时,按照所述出栈请求对应的读取操作顺序从栈区或缓存器中读取数据。2.根据权利要求1所述的栈区数据存取方法,其特征在于,所述在接收到所述压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器,并按照时间先后顺序从所述缓存器中选取已缓存的数据存入栈区,包括:在接收到所述压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器,并按照时间先后顺序从所述缓存器中选取已缓存的数据存入栈区,使所述缓存器的已缓存容量状态保持在半满状态。3.根据权利要求1所述的栈区数据存取方法,其特征在于,所述检测缓存器的已缓存容量状态之后,还包括:若所述缓存器的已缓存容量状态为全满状态,则按照时间先后顺序从所述缓存器中选取已缓存的数据存入所述栈区,在所述缓存器的已缓存状态为非全满状态时再接收所述压栈请求,将所述压栈请求对应的数据缓存至所述缓存器。4.根据权利要求1所述的栈区数据存取方法,其特征在于,所述在接收到所述压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器之后,以及所述在接收到所述压栈请求时,将所述压栈请求对应的数据缓存至所述缓存器,并按照时间先后顺序从所述缓存器中选取已缓存的数据存入栈区之后,还包括:根据缓存至所述缓存器的数据占用的地址数量,分别调整所述缓存器的环指针和所述栈区的栈指针的指向地址。5.根据权利要求1所述的栈区数据存取方法,其特征在于,所述检测缓存器的已缓存容量状态之后,还包括:若接收到删除数据请求且所述缓存器的已缓存容量状态为非空状态,则调整所述缓存器的环...

【专利技术属性】
技术研发人员:刘泽权
申请(专利权)人:珠海市杰理科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1