本发明涉及计算机技术领域,特别涉及软件实现装置。
背景技术:
目标,软件开发是流程式的,软件的各个部分的开发需要按照一定顺序进行,只有上一部分开发完成之后才能开发之后的部分。例如:要开发一个用于测试芯片的软件,需要先开发“初始化”部分,再开发“上电”部分,然后开发“测通断”部分、“测耐压”部分等等。后一部分都涉及到与前一部分的数据交互,之前的部分未开发完成,之后的部分需要等待开发。在开发和调试的时候需要各个工程师的协助配合。
通过上述描述可见,现有的开发软件的方案,效率较低。
技术实现要素:
本发明实施例提供了软件实现装置,能够提高开发软件的效率。
本发明实施例提供了软件实现装置,包括:
主程序模块、调度模块和数据存储模块;
所述主程序模块,用于触发所述调度模块对被开发的至少一个功能模块进行调度;
所述调度模块,用于在被所述主程序模块触发后,确定所述至少一个功能模块的运行顺序,调度所述至少一个功能模块按照所述运行顺序运行;
所述数据存储模块,用于接收并保存所述至少一个功能模块发来的数据,当接收到任一所述功能模块发来的数据请求时,向发来所述数据请求的所述功能模块返回所述数据请求所请求的数据。
可选地,
该装置进一步包括:功能向量模块;
所述功能向量模块,用于存储所述至少一个功能模块的所述运行顺序;
所述调度模块,用于在被所述主程序模块触发后,从所述功能向量模块获取所述运行顺序。
可选地,
该装置进一步包括:资源配置模块;
所述资源配置模块,用于保存运行每个所述功能模块所需要的运行环境条件;
所述调度模块,用于从所述资源配置模块获取当前待调度的目标功能模块的所述运行环境条件,判断当前的运行环境是否满足所述目标功能模块的所述运行环境条件,如果是,则运行所述目标功能模块在当前的运行环境中运行,否则,禁止所述目标功能模块在当前的运行环境中运行。
可选地,
所述调度模块,用于执行:
a1:i=1;
a2:判断是否允许所述运行顺序中的第i个功能模块运行,如果是,执行a3;
a3:向所述运行顺序中的第i个功能模块发送开始运行的指令;
a4:当接收到所述运行顺序中的第i个功能模块返回的运行完毕的信息时,判断i是否等于n,如果是,则结束当前流程,否则,执行a5;
a5:i=i 1,返回a2;
其中,n为所述运行顺序中的功能模块的总数。
可选地,
所述调度模块,用于针对所述运行顺序中的每个所述功能模块,执行:
接收当前的功能模块按照预设周期发来的询问请求;
根据所述运行顺序,判断是否允许发来所述询问请求的当前的功能模块运行,如果是,则向当前的功能模块发送开始运行的指令,以使当前的功能模块开始运行。
可选地,
所述主程序模块,进一步用于对所述至少一个功能模块进行初始化。
可选地,
所述主程序模块,进一步用于接收外部输入的控制指令,根据所述控制指令控制对所述至少一个功能模块进行控制。
可选地,
所述运行环境条件,包括:运行所述功能模块所需要的硬件环境条件和软件环境条件。
可选地,
所述调度模块,用于保存一个三维数组,将每个所述功能模块中的执行状态保存到所述三维数组的不同页中,获取发来所述询问请求的当前的功能模块对应的页中的目标执行状态,根据所述目标执行状态,判断是否允许当前的功能模块运行。
可选地,
该装置进一步包括:模拟器;
所述模拟器,用于在对任一所述功能模块进行调试时,模拟需要调试的所述功能模块所需要的调试数据,将所述调试数据发送给所述数据存储模块;
所述数据存储模块,进一步用于在对任一所述功能模块进行调试时,接收并保存所述模拟器发来的所述调试数据,当接收需要调试的所述功能模块发来的调试请求时,向发来所述调试请求的所述功能模块返回所述调试数据,接收并保存需要调试的所述功能模块发来的调试过程中生成的数据。
在本发明实施例中,调度模块可以调度各个功能模块按照运行顺序运行,各个功能模块运行过程中产生的数据保存到数据存储模块中,各个功能模块运行过程中所需要的数据也可以从数据存储模块中获取,也就是说,各个功能模块之间无需交互,只需与数据存储模块和调度模块交互即可,那么,在开发各个功能模块时,无需考虑各个功能模块之间的关系,各个功能模块之间没有耦合,相互独立,可以完全独立并行地开发各个功能模块,进而大大提高了开发软件的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种软件实现装置的示意图;
图2是本发明一实施例提供的另一种软件实现装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种软件实现装置10,包括:
主程序模块101、调度模块102和数据存储模块103;
所述主程序模块101,用于触发所述调度模块102对被开发的至少一个功能模块进行调度;
所述调度模块102,用于在被所述主程序模块触发后,确定所述至少一个功能模块的运行顺序,调度所述至少一个功能模块按照所述运行顺序运行;
所述数据存储模块103,用于接收并保存所述至少一个功能模块发来的数据,当接收到任一所述功能模块发来的数据请求时,向发来所述数据请求的所述功能模块返回所述数据请求所请求的数据。
在本发明实施例中,调度模块可以调度各个功能模块按照运行顺序运行,各个功能模块运行过程中产生的数据保存到数据存储模块中,各个功能模块运行过程中所需要的数据也可以从数据存储模块中获取,也就是说,各个功能模块之间无需交互,只需与数据存储模块和调度模块交互即可,那么,在开发各个功能模块时,无需考虑各个功能模块之间的关系,各个功能模块之间没有耦合,相互独立,可以完全独立并行地开发各个功能模块,进而大大提高了开发软件的效率。
在本发明实施例中,各个功能模块之后需要进行数据交互时,可以通过数据存储模块实现,各个功能模块将输出的数据全部输入到数据存储模块,需要相关数据时,各模块只需要从数据存储模块中取出即可,完全隔离了功能模块间的交互。
在本发明实施例中,主程序模块可以在外部的用户的指令下触发调度模块。
在本发明实施例中,主程序模块可以包括主程序寄存器。
在本发明实施例中,调度模块可以包括调度寄存器。
在本发明实施例中,数据存储模块可以包括数据寄存器。
在本发明实施例中,所述主程序模块,进一步用于对所述至少一个功能模块进行初始化。
在本发明实施例中,所述主程序模块,进一步用于接收外部输入的控制指令,根据所述控制指令控制对所述至少一个功能模块进行控制。
在本发明实施例中,主程序作为程序的主体,可以包含两部分:界面单元和程序逻辑单元。界面单元主要是各个功能模块中通用的部分,例如逻辑控制控件,界面控制控件等。程序逻辑单元是主程序会通过逻辑控制按键对各个功能模块的运行状态进行控制,并读取寄存器。
举例来说,主程序模块中设置有有程序控制逻辑按键,“开始”的运行状态指令为“7”,“复位”的运行状态指令为“4”,“暂停”的运行状态指令为“8”,停止的运行状态指令为“9”。程序启动后,待用户登录完成之后进入主程序模块,界面初始化后,只要点击开始按键(按键“7”)就会调用各个功能模块。主程序模块还一直控制调度模块的调度工作。
在本发明实施例中,数据存储模块用来寄存所有功能模块的输出结果,输出结果包含这个功能模块的各个参数,以及这个功能模块的输出值。数据存储模块的内容是由功能模块写入的,写入的时候为了避免结果数据名的重名问题,需要在结果数据名称前加上功能模块的名字。举例来说,压力测试的模块和温度测试的模块是两个功能模块。“压力测试”过程有“上限”,“下限”,“测量值”。“温度测试”过程也有“上限”,“下限”,“测量值”。因此在输出到结果数据存储模块时,需要以“压力测试的上限”,“压力测试的下限”,“压力测试的测量值”和“温度测试的上限”,“温度测试的下限”,“温度测试的测量值”来命名。
在本发明一实施例中,该装置进一步包括:功能向量模块;
所述功能向量模块,用于存储所述至少一个功能模块的所述运行顺序;
所述调度模块,用于在被所述主程序模块触发后,从所述功能向量模块获取所述运行顺序。
在本发明实施例中,用户可以自定义运行顺序,并将运行顺序保存到功能向量模块中。对于同一批功能模块,用户也可以灵活配置不同的运行顺序,以实现不同的功能。
在本发明实施例中,功能向量模块可以包括功能向量寄存器。
在本发明实施例中,运行顺序可以保存在功能向量列表中。这里的运行顺序包括要执行的功能序列。
在本发明一实施例中,该装置进一步包括:资源配置模块;
所述资源配置模块,用于保存运行每个所述功能模块所需要的运行环境条件;
所述调度模块,用于从所述资源配置模块获取当前待调度的目标功能模块的所述运行环境条件,判断当前的运行环境是否满足所述目标功能模块的所述运行环境条件,如果是,则运行所述目标功能模块在当前的运行环境中运行,否则,禁止所述目标功能模块在当前的运行环境中运行。
在本发明实施例中,所述运行环境条件,包括:运行所述功能模块所需要的硬件环境条件和软件环境条件。
在本发明实施例中,可以将各个功能模块的运行环境条件汇总到一个资源配置表里,供调度模块使用。
对于硬件环境条件来说,调度模块每调度一个功能模块之前会先从资源配置模块获取该功能模块运行所需要的硬件是否为空闲状态,若为空闲可用,则在同时满足该功能模块的软件环境条件时,可继续调用执行该功能模块,否则重新调用其他的功能模块。
在本发明一实施例中,所述调度模块,用于执行:
a1:i=1;
a2:判断是否允许所述运行顺序中的第i个功能模块运行,如果是,执行a3;
a3:向所述运行顺序中的第i个功能模块发送开始运行的指令;
a4:当接收到所述运行顺序中的第i个功能模块返回的运行完毕的信息时,判断i是否等于n,如果是,则结束当前流程,否则,执行a5;
a5:i=i 1,返回a2;
其中,n为所述运行顺序中的功能模块的总数。
在本发明实施例中,调度模块通过中断的方式对各个功能模块进行调度。各个功能模块可以处于休眠状态,调度模块按照运行顺序确定轮到第i个功能模块运行时,调度模块主动发出开始运行的指令,收到该指令的功能模块开始运行,该功能模块运行完毕后,向调度模块返回运行完毕的信息,从而调度模块又开始继续调度下一个功能模块。
在本发明一实施例中,所述调度模块,用于针对所述运行顺序中的每个所述功能模块,执行:
接收当前的功能模块按照预设周期发来的询问请求;
根据所述运行顺序,判断是否允许发来所述询问请求的当前的功能模块运行,如果是,则向当前的功能模块发送开始运行的指令,以使当前的功能模块开始运行。
在本发明实施例中,调度模块通过轮询的方式对各个功能模块进行调度。各个功能模块不是时时刻刻都询问调度模块获取信息,而是周期性地通过询问请求主动询问调度模块是否该轮到本功能模块运行了,如果还没有,那么过一个预设周期后该功能模块再次发送询问请求。
在本发明一实施例中,所述调度模块,用于保存一个三维数组,将每个所述功能模块中的执行状态保存到所述三维数组的不同页中,获取发来所述询问请求的当前的功能模块对应的页中的目标执行状态,根据所述目标执行状态,判断是否允许当前的功能模块运行。
在本发明实施例中,调度模块可以根据三维数组中的目标执行状态来确定判断是否允许发来询问请求的当前的功能模块运行。
执行状态可以包括资源状态和工件运行状态。这些状态是程序的核心管理状态,各个功能模块以及和调度相关的模块都会根据三维数组中的执行状态来调整自己的工作模式,运行或者停止。
在本发明一实施例中,该装置进一步包括:模拟器;
所述模拟器,用于在对任一所述功能模块进行调试时,模拟需要调试的所述功能模块所需要的调试数据,将所述调试数据发送给所述数据存储模块;
所述数据存储模块,进一步用于在对任一所述功能模块进行调试时,接收并保存所述模拟器发来的所述调试数据,当接收需要调试的所述功能模块发来的调试请求时,向发来所述调试请求的所述功能模块返回所述调试数据,接收并保存需要调试的所述功能模块发来的调试过程中生成的数据。
在本发明实施例中,需要对任一功能模块进行调试时,可以对各个功能模块进行单独调试,功能模块之间没有任何影响。甚至都可以用不同的工作人员执行。如果调试一个功能模块的时候需要另外一个功能模块的数据,那么,可以用模拟器模拟一个同类型数据放入数据存储模块中即可,并不需要其他功能模块的参与,大大降低了软件的调试工作的复杂程度。
如图2所示,本发明实施例提供了一种软件实现装置10,包括:主程序模块101、调度模块102、数据存储模块103、功能向量模块201、资源配置模块202。
在本发明实施例中,主程序模块、调度模块、数据存储模块、功能向量模块、资源配置模块以及各个功能模块中的参数均是由功能性全局变量定义的。
在对各个功能模块进行开发时,支持多线程设计,并行运行代替串行运行,提高运行速度和效率,降低开发时间和开发成本。
在本发明实施例中,对于由各个功能模块和本发明实施例提供的软件实现装置构成的软件,在进行升级时,只需要修改本发明实施例提供的软件实现装置相关的核心文件,不涉及到其他开发代码的修改,十分方便快捷。
本发明实施例提供的软件实现装置是一种模块化软件架构,适用于集成电路测试。在需要实现集成电路测试的软件时,只需基于本发明实施例提供的软件实现装置独立开发各个用于集成电路测试的功能模块即可,例如:基于本发明实施例提供的软件实现装置独立开发用于压力测试的功能模块和用于温度测试的功能模块,将用于压力测试的功能模块和用于温度测试的功能模块与本发明实施例提供的软件实现装置集成到一起,即可实现集成电路测试的软件。
各个功能模块中的各种方法,逻辑,数据存储方式等比较通用的部分都可以直接以模块为单位编写,完成之后,再需要写相关的测试程序只需要写少量的特定的程序部分便可以直接升级成模块化的软件框架,方便快捷。针对所有的相类似的测试程序,都可直接嵌套该软件实现装置,实现程序的快捷高效的开发执行。
基于本发明实施例提供的一种软件实现装置,可以通过以下方式实现软件的开发过程:
软件开发初期,规划好各个功能模块以及寄存器的逻辑,可安排不同的人单独开发。甲开发功能模块a,乙开发功能模块b,丙开发功能模块c……开发完毕之后,运行时,先由主程序模块启动所有的功能模块进行初始化,资源配置模块存储各功能模块所需要的硬件环境条件和软件环境条件,功能向量模块存储各功能模块的运行顺序,主程序模块根据功能向量模块里的运行顺序触发调度模块来调度各个功能模块的运行,同时调度模块也要看资源配置模块里的内容确定该功能模块是否已有运行的外界条件,从而十分灵活的调度各个功能模块运行。所有功能模块的数据都输入到数据存储模块中,例如功能模块a输出数据α,功能模块b输出β,功能模块c输出θ……,所有这些数据都存储在数据存储模块中,若其中功能模块c的运行需要用到α,那么功能模块c运行的时候直接从数据存储模块中取出α即可。同样地,在进行调试的时候一般都是各个功能模块单独调试,如果不需要调试功能模块a,需要先调试功能模块c,但是功能模块c运行需要α,此时没有功能模块运行过,数据存储模块里是空的,那么此时用模拟器模拟出一个与α同样类型的值放入数据存储模块中即可,功能模块c可以利用数据存储模块中存储的模拟器模拟出的与α同样类型的值进行调试。可见,各功能模块的独立调试给测试工作带来了极大的便利。
可以理解的是,本发明实施例示意的结构并不构成对软件实现装置的具体限定。在本发明的另一些实施例中,软件实现装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
1.软件实现装置,其特征在于,包括:
主程序模块、调度模块和数据存储模块;
所述主程序模块,用于触发所述调度模块对被开发的至少一个功能模块进行调度;
所述调度模块,用于在被所述主程序模块触发后,确定所述至少一个功能模块的运行顺序,调度所述至少一个功能模块按照所述运行顺序运行;
所述数据存储模块,用于接收并保存所述至少一个功能模块发来的数据,当接收到任一所述功能模块发来的数据请求时,向发来所述数据请求的所述功能模块返回所述数据请求所请求的数据。
2.根据权利要求1所述的装置,其特征在于,
进一步包括:功能向量模块;
所述功能向量模块,用于存储所述至少一个功能模块的所述运行顺序;
所述调度模块,用于在被所述主程序模块触发后,从所述功能向量模块获取所述运行顺序。
3.根据权利要求1所述的装置,其特征在于,
进一步包括:资源配置模块;
所述资源配置模块,用于保存运行每个所述功能模块所需要的运行环境条件;
所述调度模块,用于从所述资源配置模块获取当前待调度的目标功能模块的所述运行环境条件,判断当前的运行环境是否满足所述目标功能模块的所述运行环境条件,如果是,则运行所述目标功能模块在当前的运行环境中运行,否则,禁止所述目标功能模块在当前的运行环境中运行。
4.根据权利要求1所述的装置,其特征在于,
所述调度模块,用于执行:
a1:i=1;
a2:判断是否允许所述运行顺序中的第i个功能模块运行,如果是,执行a3;
a3:向所述运行顺序中的第i个功能模块发送开始运行的指令;
a4:当接收到所述运行顺序中的第i个功能模块返回的运行完毕的信息时,判断i是否等于n,如果是,则结束当前流程,否则,执行a5;
a5:i=i 1,返回a2;
其中,n为所述运行顺序中的功能模块的总数。
5.根据权利要求1所述的装置,其特征在于,
所述调度模块,用于针对所述运行顺序中的每个所述功能模块,执行:
接收当前的功能模块按照预设周期发来的询问请求;
根据所述运行顺序,判断是否允许发来所述询问请求的当前的功能模块运行,如果是,则向当前的功能模块发送开始运行的指令,以使当前的功能模块开始运行。
6.根据权利要求1所述的装置,其特征在于,
所述主程序模块,进一步用于对所述至少一个功能模块进行初始化。
7.根据权利要求1所述的装置,其特征在于,
所述主程序模块,进一步用于接收外部输入的控制指令,根据所述控制指令控制对所述至少一个功能模块进行控制。
8.根据权利要求3所述的装置,其特征在于,
所述运行环境条件,包括:运行所述功能模块所需要的硬件环境条件和软件环境条件。
9.根据权利要求5所述的装置,其特征在于,
所述调度模块,用于保存一个三维数组,将每个所述功能模块中的执行状态保存到所述三维数组的不同页中,获取发来所述询问请求的当前的功能模块对应的页中的目标执行状态,根据所述目标执行状态,判断是否允许当前的功能模块运行。
10.根据权利要求1-9中任一所述的装置,其特征在于,
进一步包括:模拟器;
所述模拟器,用于在对任一所述功能模块进行调试时,模拟需要调试的所述功能模块所需要的调试数据,将所述调试数据发送给所述数据存储模块;
所述数据存储模块,进一步用于在对任一所述功能模块进行调试时,接收并保存所述模拟器发来的所述调试数据,当接收需要调试的所述功能模块发来的调试请求时,向发来所述调试请求的所述功能模块返回所述调试数据,接收并保存需要调试的所述功能模块发来的调试过程中生成的数据。
技术总结