CN112559052B - 一种指令集调用方法、装置、终端及存储介质 - Google Patents

一种指令集调用方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN112559052B
CN112559052B CN202011474421.XA CN202011474421A CN112559052B CN 112559052 B CN112559052 B CN 112559052B CN 202011474421 A CN202011474421 A CN 202011474421A CN 112559052 B CN112559052 B CN 112559052B
Authority
CN
China
Prior art keywords
instruction set
size
instruction
analyzed
ram
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
CN202011474421.XA
Other languages
English (en)
Other versions
CN112559052A (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.)
Humanoid Thinking Shandong Intelligent Technology Co ltd
Original Assignee
Humanoid Thinking Shandong Intelligent Technology 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 Humanoid Thinking Shandong Intelligent Technology Co ltd filed Critical Humanoid Thinking Shandong Intelligent Technology Co ltd
Priority to CN202011474421.XA priority Critical patent/CN112559052B/zh
Publication of CN112559052A publication Critical patent/CN112559052A/zh
Application granted granted Critical
Publication of CN112559052B publication Critical patent/CN112559052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种指令集调用方法、装置、终端及存储介质,检测待解析指令集大小和RAM可用空间大小;根据待解析指令集和RAM可用空间的大小关系调整指令集调用策略。本发明根据RAN空间大小适时调整指令集调用策略,从而保障解释控制系统的平稳运行,且尽可能保证程序流畅性。

Description

一种指令集调用方法、装置、终端及存储介质
技术领域
本发明涉及指令集调用领域,具体涉及一种指令集调用方法、装置、终端及存储介质。
背景技术
随着多种控制方式的高速发展,用户多变化需求以及对控制过程参与度的日益加深,将人的逻辑以及算术思维在控制芯片上进行运算与表达的通用化解释机制变得尤为必要,解释控制系统应运而生。解释机制本质上讲是一种由输入之间的人类思维化联系到结果运算的过程,其核心实现离不开对输入以及输出的专有化处理。一般来讲,解释控制系统可采用网络通信形式进行实时数据传输与监控,在进行网络信息交换时,其基本组成单位为字节,而通过网络方式将多个字节按照某种协议化的格式进行组装与传输,格式中每个字节都有其固定的含义,类似于Modbus协议帧,便形成了指令集。解释控制系统的指令集是指导其完成完整解释功能的重要组成部分,而如何保证指令集的合理存储调用是解释控制系统能平稳运行的重要保障。
发明内容
为解决上述问题,本发明提供一种指令集调用方法、装置、终端及存储介质。
本发明的技术方案为:一种指令集调用方法,包括以下步骤:
检测待解析指令集大小和RAM可用空间大小;
根据待解析指令集和RAM可用空间的大小关系调整指令集调用策略。
进一步地,根据待解析指令集和RAM可用空间的大小关系调整指令集调用策略,具体为:
若RAM可用空间大小大于待解析指令集大小,则在RAM中为每一个指令帧分配一全局缓冲区,从FLASH中将待解析指令集全部读出,并将各个指令帧存入对应全局缓冲区;
若RAM可用空间大小小于待解析指令集大小,则在RAM中申请公共缓冲区,根据公共缓冲区大小从FLASH中依次读取部分待解析指令集存入该公共缓冲区。
进一步地,从FLASH中依次提取部分待解析指令集,具体为:
按照指令类型从FLASH中串行读取部分待解析指令集。
进一步地,指令集包括端口系统指令集、缓存表指令集、控制操作指令集;
其中,端口系统指令集在系统运行期间只执行一次,缓存表指令集和控制操作指令集为循环调用指令。
进一步地,该方法还包括以下步骤:
在指令集存入FLASH中时,统计指令集信息生成安全统计标准;
之后每隔预设时间统计一次指令集信息;
将新统计的指令集信息与安全统计标准进行比较;
若两者不同,则发出指令异常报警。
进一步地,所统计指令集信息为各类字节的个数;
所生成安全统计标准为所有类字节的个数所填充的数组。
进一步地,该方法还包括:
当有新的指令到来时,暂停统计指令集信息。
本发明的技术方案还包括一种指令集调用装置,包括,
指令集大小检测模块:检测待解析指令集大小;
RAM空间大小检测模块:检测RAM可用空间大小;
大小判断模块:判断RAM可用空间大小是否大于待解析指令集大小;
缓冲区分配模块:在RAM中为每一个指令帧分配一全局缓冲区或在RAM中申请公共缓冲区;
指令集读取存入模块:从FLASH中将待解析指令集全部读出,并将各个指令帧存入对应全局缓冲区,或根据公共缓冲区大小从FLASH中依次读取部分待解析指令集存入该公共缓冲区。
本发明的技术方案还包括一种终端,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行上述任一项所述的方法。
本发明的技术方案还包括一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现上述任一项所述的方法。
本发明提供的一种指令集调用方法、装置、终端及存储介质,将指令集存储于FLASH中,借用RAM空间进行迂回调用,具体根据RAM可用空间大小和待解析指令集大小选择合适的调用策略,在RAM可用空间较大时,一次性将待解析指令集全部读出,减少读取次数,保证程序流畅性;在RAM可用空间较小时,每次加载部分待解析指令,保障指令集正确读取。本发明根据RAN空间大小适时调整指令集调用策略,从而保障解释控制系统的平稳运行,且尽可能保证程序流畅性。
附图说明
图1是本发明具体实施例一方法流程示意图;
图2是本发明具体实施例一安全警示过程流程示意图;
图3是本发明具体实施例二结构示意框图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
实施例一
本实施例提供一种指令集调用方法,首先需要说明的是,该方法应用于解释控制系统,解释控制系统采用FLASH存储器(一种非易失性内存)对指令集进行存储,鉴于FLASH只能按块擦除的限制,解释控制系统同时借用RAM(随机存取存储器)空间进行迂回解决。即需要对指令集进行解析时,将相应指令集从FLASH中读取出并加载到RAM缓存供解析,这一过程即指令集的调用过程。
如图1所示,本实施例的指令集调用方法包括以下步骤:
S1,检测待解析指令集大小和RAM可用空间大小;
S2,根据待解析指令集和RAM可用空间的大小关系调整指令集调用策略。
其中,步骤所采用调用策略具体为:
解析指令集和RAM可用空间的大小关系调整指令集调用策略,具体为:
策略一,若RAM可用空间大小大于待解析指令集大小,且两者差值超过预设值,则在RAM中为每一个指令帧分配一全局缓冲区,从FLASH中将待解析指令集全部读出,并将各个指令帧存入对应全局缓冲区;
策略二,若RAM可用空间大小小于待解析指令集大小,则在RAM中申请公共缓冲区,根据公共缓冲区大小从FLASH中依次读取部分待解析指令集存入该公共缓冲区。
优选地,策略一中,在检测到RAM可用空间大小大于待解析指令集大小时,同时判断两者的差值,判断两者差值是否超过预设值,若超过预设值再采用策略一的方法,否则采用策略二的方法,以保证程序运行的稳定性。策略一的调用过程,指令集在加载时只需要对FLASH进行一次读操作,解析任务便可以一直访问对应全局缓冲区进行指令帧(指令集包含多个指令帧)解析。策略二的调用过程,具体实施时,每次解析任务唤醒运行,会将所有指令帧按照指令类型从FLASH中串行载入该公共缓冲空间,并进行有序的解析过程。因此小资源解释控制系统运行时会存在大量FLASH空间到RAM空间的加载操作,在一定程度上影响程序的流畅性,但可保证指令集的正确读取调用,保障解释控制系统的稳定运行。
解释控制系统的指令集包括端口系统指令集、缓存表指令集、控制操作指令集。相应地,解释控制系统在空白可擦写FLASH区申请三块完整内存,每块内存相互独立,分别对端口系统指令区、缓存表指令区以及控制操作指令区。
端口系统指令集全部为端口系统的生成类指令,整个解释控制系统的运行期间只执行一次。控制器接收到此生成类指令后,一般会马上进行解析并调用,调用后端口系统便会动态生成,在端口系统生成后,该指令帧不会被再次解析,因此端口系统指令区为单次解析指令区。当程序由于某种原因强制复位且释放RAM的资源后,该指令区的解析任务会将指令强制加载与再次解析,指导端口系统的重新生成。
缓存表指令集是服务器通过翻译器对解释控制系统控制器发送一系列以逻辑与算术缓存表运算规则为基础的指导命令,存储于缓存表指令区。在调用形式上,缓存表指令区是循环调用的,解析任务会定时唤醒,并对该指令区的指令进行加载解析,这种解析调用过程可以实现对缓存表运算结果的实时更正,对控制操作起到间接性地实时指导作用。
控制操作指令集在设计时需要兼顾输入输出锁存、缓存表引用等。指令帧的设计与控制操作核心部分相对应。由于控制操作需要具有实时特性,控制操作指令帧全部为任务定时唤醒的循环解析方式,与缓存表指令帧类似。
可见,解释控制系统的端口系统指令集在系统运行期间只执行一次,而缓存表指令集和控制操作指令集为循环调用指令,会长时间在FLASH中存储等待调用解析。如果指令集被非法篡改,整个解释控制系统会出现崩溃的现象,且由于常规FLASH区(非只读区)的物理特性,无法绝对性地阻止非法用户对FLASH区的暴力擦写,因此,本实施例的方法同时保证指令集调用期间FLASH指令区的安全警示功能,如图2所示,具体包括以下步骤:
S101,在指令集存入FLASH中时,统计指令集信息生成安全统计标准;
S102,之后每隔预设时间统计一次指令集信息;
S103,将新统计的指令集信息与安全统计标准进行比较;
S104,若两者不同,则发出指令异常报警。
该警示过程的原理基于FLASH数据统计功能。数据统计功能是以字节为基本单位进行的,由于一个字节从0x00~0xFF总共256种情形,该过程统计各类字节的个数作为指令集信息。与之对应的,解释控制系统会申请一个长度为256的安全统计数组,将最初各类字节的个数填充到该数组作为安全统计标准。数组定义如下:
HWORDSafeStatisticsArr[256];
该数组非全局数组,其在安全统计任务中进行全局申请。数组的值代表所有指令页空间与数组索引相对应的字节数。例如经过统计,所有FLASH指令页空间0x06字节的个数为1000个,则SafeStatisticsArr[6]的数组值为1000。
安全统计任务会每隔一段时间唤醒一次,对整个指令区间进行连续的几次统计,对比并去除错误数据后存入页缓存区,之后读取页缓存区数据与安全统计数组进行比对,若存在差异,则考虑指令帧受损,此时安全统计任务会给专门负责指令区安全的发送任务传递一个事件通知,发送任务将会唤醒并向服务器发送警报,服务器接收后会将警报界面呈现给用户。
当给解释控制系统下发新的指令时,接收任务会暂时将安全统计任务挂起,当新指令写入FLASH,并调用相关函数更新安全统计数组后,安全统计任务才允许解挂运行。通过这种设计,可以辨别此类以非正常方式强行破坏FLASH指令区的现象,为控制过程可能造成的隐患及时止损。
实施例二
如图3所示,本实施例提供一种指令集调用装置,执行后可运行实施例一的方法。
该装置包括以下功能模块:
指令集大小检测模块101:检测待解析指令集大小;
RAM空间大小检测模块102:检测RAM可用空间大小;
大小判断模块103:判断RAM可用空间大小是否大于待解析指令集大小;
缓冲区分配模块104:在RAM中为每一个指令帧分配一全局缓冲区或在RAM中申请公共缓冲区;
指令集读取存入模块105:从FLASH中将待解析指令集全部读出,并将各个指令帧存入对应全局缓冲区,或根据公共缓冲区大小从FLASH中依次读取部分待解析指令集存入该公共缓冲区。
需要说明的是,若RAM可用空间大小大于待解析指令集大小,则缓冲区分配模块104在RAM中为每一个指令帧分配一全局缓冲区,指令集读取存入模块105从FLASH中将待解析指令集全部读出,并将各个指令帧存入对应全局缓冲区。若RAM可用空间大小小于待解析指令集大小,则缓冲区分配模块104在RAM中申请公共缓冲区,指令集读取存入模块105根据公共缓冲区大小从FLASH中依次读取部分待解析指令集存入该公共缓冲区。
实施例三
本实施例提供一种终端,该终端包括处理器和存储器。
存储器用于存储处理器的执行指令。
处理器为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(IntegratedCircuit,简称IC) 组成,例如可以由单颗封装的IC 所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。
实施例四
本实施例提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

Claims (9)

1.一种指令集调用方法,其特征在于,包括以下步骤:
检测待解析指令集大小和RAM可用空间大小;
根据待解析指令集和RAM可用空间的大小关系调整指令集调用策略,包括:
若RAM可用空间大小大于待解析指令集大小,则在RAM中为每一个指令帧分配一全局缓冲区,从FLASH中将待解析指令集全部读出,并将各个指令帧存入对应全局缓冲区;
若RAM可用空间大小小于待解析指令集大小,则在RAM中申请公共缓冲区,根据公共缓冲区大小从FLASH中依次读取部分待解析指令集存入该公共缓冲区。
2.根据权利要求1所述的指令集调用方法,其特征在于,从FLASH中依次提取部分待解析指令集,具体为:
按照指令类型从FLASH中串行读取部分待解析指令集。
3.根据权利要求1或2所述的指令集调用方法,其特征在于,指令集包括端口系统指令集、缓存表指令集、控制操作指令集;
其中,端口系统指令集在系统运行期间只执行一次,缓存表指令集和控制操作指令集为循环调用指令。
4.根据权利要求3所述的指令集调用方法,其特征在于,该方法还包括以下步骤:
在指令集存入FLASH中时,统计指令集信息生成安全统计标准;
之后每隔预设时间统计一次指令集信息;
将新统计的指令集信息与安全统计标准进行比较;
若两者不同,则发出指令异常报警。
5.根据权利要求4所述的指令集调用方法,其特征在于,所统计指令集信息为各类字节的个数;
所生成安全统计标准为所有类字节的个数所填充的数组。
6.根据权利要求5所述的指令集调用方法,其特征在于,该方法还包括:
当有新的指令到来时,暂停统计指令集信息。
7.一种指令集调用装置,其特征在于,包括,
指令集大小检测模块:检测待解析指令集大小;
RAM空间大小检测模块:检测RAM可用空间大小;
大小判断模块:判断RAM可用空间大小是否大于待解析指令集大小;
缓冲区分配模块:在RAM中为每一个指令帧分配一全局缓冲区或在RAM中申请公共缓冲区,包括:若RAM可用空间大小大于待解析指令集大小,则在RAM中为每一个指令帧分配一全局缓冲区,若RAM可用空间大小小于待解析指令集大小,则在RAM中申请公共缓冲区;
指令集读取存入模块:从FLASH中将待解析指令集全部读出,并将各个指令帧存入对应全局缓冲区,或根据公共缓冲区大小从FLASH中依次读取部分待解析指令集存入该公共缓冲区。
8.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-6任一项所述的方法。
9.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-6任一项所述的方法。
CN202011474421.XA 2020-12-15 2020-12-15 一种指令集调用方法、装置、终端及存储介质 Active CN112559052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011474421.XA CN112559052B (zh) 2020-12-15 2020-12-15 一种指令集调用方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011474421.XA CN112559052B (zh) 2020-12-15 2020-12-15 一种指令集调用方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN112559052A CN112559052A (zh) 2021-03-26
CN112559052B true CN112559052B (zh) 2022-11-25

Family

ID=75063478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011474421.XA Active CN112559052B (zh) 2020-12-15 2020-12-15 一种指令集调用方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN112559052B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103941649A (zh) * 2014-03-07 2014-07-23 东莞市升力智能科技有限公司 多轴运动卡控制系统的控制方法
CN109446202A (zh) * 2018-11-09 2019-03-08 上海达梦数据库有限公司 标识符分配方法、装置、服务器和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0463965B1 (en) * 1990-06-29 1998-09-09 Digital Equipment Corporation Branch prediction unit for high-performance processor
AUPR464601A0 (en) * 2001-04-30 2001-05-24 Commonwealth Of Australia, The Shapes vector
US9875105B2 (en) * 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
CN107992432A (zh) * 2017-11-28 2018-05-04 福建中金在线信息科技有限公司 一种数据缓存的方法及终端设备
CN110413689B (zh) * 2019-06-29 2022-04-26 苏州浪潮智能科技有限公司 一种内存数据库的多节点数据同步方法与装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103941649A (zh) * 2014-03-07 2014-07-23 东莞市升力智能科技有限公司 多轴运动卡控制系统的控制方法
CN109446202A (zh) * 2018-11-09 2019-03-08 上海达梦数据库有限公司 标识符分配方法、装置、服务器和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《解析MCS-51单片机对不同存储器区域的访问》;蔡立娜;《通讯世界》;20160212(第3期);第89页-第90页 *
Stefan Vömel.《A survey of main memory acquisition and analysis techniques for the windows operating system》.《Digital Investigation》.2011, *

Also Published As

Publication number Publication date
CN112559052A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
US7069396B2 (en) Deferred memory allocation for application threads
CN108197032B (zh) Ios应用的主线程卡顿监测方法、介质、设备及系统
KR101438990B1 (ko) 시스템 테스트 방법
US20080276129A1 (en) Software tracing
CN109918190A (zh) 一种数据采集方法及相关设备
CN110532100B (zh) 调度资源的方法、装置、终端及存储介质
US20120036501A1 (en) Method and System for Capturing System and User Events Using Hardware Trace Devices
CN110750312A (zh) 硬件资源配置方法、装置、云侧设备和存储介质
US20230153189A1 (en) Visualization system for debug or performance analysis of soc systems
US11640319B1 (en) Task processing method and apparatus, electronic device and storage medium
CN115269544A (zh) 一种数据库集群升级方法、装置、电子设备及存储介质
CN110750359B (zh) 硬件资源配置方法、装置、云侧设备和存储介质
CN110633190B (zh) 一种应用程序内存监控方法、装置、设备及存储介质
US20240095174A1 (en) Method for detecting error of operating system kernel memory in real time
US9507637B1 (en) Computer platform where tasks can optionally share per task resources
CN110688245A (zh) 信息获取方法、装置、存储介质及设备
CN113076233B (zh) 一种io性能检测方法、装置、设备及存储介质
CN112559052B (zh) 一种指令集调用方法、装置、终端及存储介质
CN110764962A (zh) 日志处理方法和装置
EP3188026B1 (en) Memory resource management method and apparatus
CN109976970B (zh) 一种提高主板芯片使用寿命的方法、系统及存储介质
US20130318310A1 (en) Processor processing method and processor system
CN111611104B (zh) 一种InfluxDB数据备份方法、系统及终端设备
US8695000B1 (en) Data transfer protection in a multi-tasking modeling environment having a protection mechanism selected by user via user interface
CN100492299C (zh) 一种嵌入式软件开发的方法及系统

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
GR01 Patent grant
GR01 Patent grant