一种资源查询方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源查询方法及装置。
背景技术
实际应用场景下,资源需求方(以下简称:需求方)可向资源平台发出请求,以便获取到相应的资源进行使用,相应地,资源平台会根据需求方的请求,为资源需求方匹配合适的资源提供方(如:服务器、数据库,以下简称:提供方),以使得提供方能够为需求方提供资源。例如:用户向某网站发出云计算请求,该网站将为用户分配由服务器提供的计算资源。该过程中,用户可看作是需求方;网站可看作是资源平台;而提供计算资源的服务器可看作是提供方。
在使用资源的过程中,往往会出现额外的资源消耗量,如上例:随着计算量及计算时长的增加,服务器的计算负荷也不断增加,故对于服务器而言,将会产生额外的计算资源消耗(即,额外地产生了资源消耗量)。
基于此,现有技术中,特别是在云计算业务的场景下,需求方为了使用提供方所提供的计算资源,往往需要支付相应的资源代价,用于抵消提供方额外产生的资源消耗量,故需求方在向资源平台发出资源请求之前,通常会先向资源平台发送用以查询资源消耗量的查询请求,相应地,资源平台将根据所要请求的资源量,向需求方反馈相应的资源消耗量。
具体例如:如图1所示,提供云计算的服务器中包含进程1~5,其中,进程1~3分别可处理的任务量为1~200(即,资源量为1~200),进程4和5分别可处理的任务量为200~400(即,资源量为200~400),这些进程在运行过程中所消耗的计算资源不同,假设在处理过程中,进程1~3将消耗数量为1~200的基础计算资源,并额外产生1%的计算资源消耗,进程4和5将消耗数量为200~400的基础计算资源,并额外产生5%的计算资源消耗。图1中的5个进程所产生的额外资源消耗量不同,资源平台会基于产生的额外资源消耗量,为5个进程进行分档,也即,额外产生1%的计算资源消耗的进程1~3划分为一个分档,而额外产生5%的计算资源消耗的进程4和5划分为一个分档。
现假设,某需求方有500个待处理任务需使用云计算资源进行处理,为了确定出该需求方所要支付的资源代价,该需求方发出查询请求,用以查询500个任务额外消耗的计算资源。此时,如图1所示,服务器中的进程1和2当前被占用,进程3~5为空闲状态,资源平台将基于接收到的查询请求进行查询:资源平台将会按照额外资源消耗量由低到高的顺序进行查询,也即,资源平台首先从额外资源消耗量为1%的进程中,查找到处于空闲状态的进程3,可知,该进程3可处理200个任务,那么,针对上述的500个任务,若分配给进程3后,还将剩余300个任务,资源平台会从额外资源消耗量为5%的进程中,查找到进程4或进程5,显然,该进程4或5足以完成剩余的300个任务。后续资源平台会将进程4或5所在分档下的额外资源消耗量反馈给需求方,以便该需求方提供相应数量的资源代价。
但是,对于现有技术中的上述方式,服务器中原本被占用的进程1和2,可能在查询过程结束后、处理过程开始前得到释放,在此情况下,上述需求方待处理的500个任务,实际可由进程1~3完成处理,即,额外产生1%的计算资源消耗,显然,采用现有技术中的上述方式,向需求方所反馈的资源消耗量可能过高。
发明内容
本申请实施例提供一种资源查询方法,用以解决资源平台针对资源消耗量所反馈的查询结果不准确的问题。
本申请实施例提供的一种资源查询方法,所述方法包括:
接收针对资源消耗量的查询请求,其中,所述查询请求中携带待处理任务量;
在预先基于资源消耗量划分的若干资源的分档中,确定与待处理任务量相匹配的可用资源量所对应的各分档;
分别确定各分档的预估新增资源量;
根据所述预估新增资源量,确定各分档的预估资源总量;
根据所述预估资源总量,确定与所述待处理任务量相匹配的分档,并将所述分档对应的资源消耗量作为查询结果进行反馈。
本申请实施例还提供的一种资源查询方法,包括:
接收利率查询请求,其中,所述利率查询请求中携带有融资期限信息和融资规模信息;
在属于该融资期限、且预先基于融资利率所划分的资金分档中,确定与所述融资规模相匹配的资金量所对应的各分档;
分别确定各分档的预估新增资金量;
根据所述预估新增资金量,确定各分档的预估资金总量;
根据所述预估资金总量,确定与所述融资规模相匹配的分档,并将所述分档对应的利率作为查询结果进行反馈。
本申请实施例提供的一种资源查询装置,所述装置包括:
接收模块,接收针对资源消耗量的查询请求,其中,所述查询请求中携带待处理任务量;
分档模块,在预先基于资源消耗量划分的若干资源的分档中,确定与待处理任务量相匹配的可用资源量所对应的各分档;
第一预估模块,分别确定各分档的预估新增资源量;
第二预估模块,根据所述预估新增资源量,确定各分档的预估资源总量;
查询模块,根据所述预估资源总量,确定与所述待处理任务量相匹配的分档,并将所述分档对应的资源消耗量作为查询结果进行反馈。
本申请实施例还提供的一种资源查询装置,所述装置包括:
接收模块,接收利率查询请求,其中,所述利率查询请求中携带有融资期限信息和融资规模信息;
分档模块,在属于该融资期限、且预先基于融资利率所划分的资金分档中,确定与所述融资规模相匹配的资金量所对应的各分档;
第一预估模块,分别确定各分档的预估新增资金量;
第二预估模块,根据所述预估新增资金量,确定各分档的预估资金总量;
利率查询模块,根据所述预估资金总量,确定与所述融资规模相匹配的分档,并将所述分档对应的利率作为查询结果进行反馈。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
当需求方向资源平台发出资源消耗量的查询请求后,资源平台会根据查询请求中待处理任务量,在提供方基于资源消耗量所划分的若干分档中,确定与待处理任务量所需的最高分档,并在这些分档中,分别预估每一分档中即将新增的资源量,换言之,可预估出每一分档中的可用资源总量,此后,便可以确定出不少于待处理任务量相匹配的预估资源总量,进一步将该预估资源总量所处的分档的资源消耗量,作为预估值反馈给用户。相较于现有技术,本申请实施例中资源平台所反馈的预估值更加符合实际的资源消耗量,且能够起到减少用户所支出的资源代价的作用。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术中资源平台向需求方反馈资源消耗量的;
图2a为本申请实施例提供的资源查询所基于的架构示意图;
图2b为本申请实施例提供的资源查询过程;
图3为本申请实施例提供的在实际的融资场景下的架构示意图;
图4为本申请实施例提供的在实际的融资场景下的资源查询方法的实际执行过程;
图5为本申请实施例提供的资源查询装置结构示意图;
图6为本申请实施例提供的在实际融资场景下的资源查询装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
正如前述,在实际应用场景下,资源平台在向需求方反馈资源消耗量的查询结果的过程中,提供方中有可能产生新的可用资源,这些新产生的可用资源能够在一定程度上减少额外资源消耗量,但采用现有技术中的方式,资源平台向需求方反馈的资源消耗量时,并不会将这部分新产生的可用资源统计在内,故造成反馈给需求方的资源消耗量高于实际的资源消耗量。
基于此,就需要一种较为准确预估资源消耗量的方式,因此,在本申请实施例中,提供一种资源查询方法,用以在需求方进行资源请求后,向需求方反馈更符合实际的额外资源消耗量的查询结果。
需要说明的是,所述的资源,包括但不限于:云计算资源、网络存储资源、设备处理资源(如:CPU占用率、内存占用率等)、金融资源等。所述的资源平台,可理解为资源平台服务器(或服务器集群),该资源平台面向用户提供资源匹配业务,例如:云存储平台、云计算平台、金融平台等。同时,本申请实施例中所述的需求方或提供方,均可看作是使用该资源平台的用户,当然,在本申请实施例中,需求方可理解为使用该资源平台业务的个人用户和/或企业用户,也可理解为用户为了访问该资源平台所使用的终端,而提供方用户也可以是个人和/或企业用户,不同的是,提供方具有提供相应资源的能力。这里并不构成对本申请的限定。
本申请实施例中的资源查询方法基于如图2a所示的架构。在图2a中,需求方为个人用户,提供方为提供云计算资源的服务器,用户可通过资源平台查询服务器的资源消耗量,并假设,对于图2a中的服务器,其中具有与图1相同的5个进程。
基于如图2a所示的架构,本申请实施例提供的资源查询过程如图2b所示,该过程具体包括以下步骤:
S101:接收针对资源消耗量的查询请求。
其中,所述的查询请求中通常会包含待处理的任务量,以便于资源平台根据该任务量查询相应的资源消耗量。
在实际应用中,用户可通过相应的查询页面(如:资源平台网站)或应用中的查询界面访问至该资源平台,并在输入了待处理的任务量后,向该资源平台发出查询请求。这里并不构成对本申请的限定。
S102:在预先基于额外资源消耗量划分的若干资源的分档中,确定与待处理任务量相匹配的可用资源量所对应的各分档。
在本申请实施例中,提供方所提供的资源可能具有不同的额外资源消耗量,如:提供云计算资源的服务器,其中的进程具有不同的计算资源,相应地,不同进程在运行过程中,所产生的额外资源消耗量也不同。
例如,沿用如图1所示的示例,根据5个进程在运行时所产生的额外资源消耗量,可将这5个进程划分在不同的分档中,如下表1所示:
|
进程 |
额外资源消耗量 |
分档a |
进程1、2、3 |
1% |
分档b |
进程4、5 |
5% |
表1
也即,对于如图1所示的服务器,将其中的资源分为两个分档a和b。
基于分档后的资源,针对用户发出的查询请求中所包含的待处理任务量,可确定出于待处理任务量相匹配的可用资源量,进而确定出这些可用资源量所对应的分档。
例如:若待处理任务量为400,假设,当前时刻进程3~5均处于空闲状态,进程1和2被占用,那么,进程3可处理的任务量为200,还需进程4或5提供额外200的资源量处理剩余任务,所以,该待处理任务量分别需使用两个分档a和b下的资源。
S103:分别确定各分档的预估新增资源量。
在本场景中,上述分档中可能会新增相应的资源,具体而言,一种情况为:当前被占用的进程1和2正在处理其他任务,但当这些任务处理完毕后,进程1和2将被释放,重新进入空闲状态,也就是说,一旦进程1和2被释放,则分档a中将新增相应数量的资源。另一种情况为:在实际操作中,服务器可能根据工作负荷的需要,创建新的进程并对应于相应的分档,即,由于新创建的进程,使得相应分档中的资源增加。
针对上述两种情况,进程所处理的任务的处理时间通常是可预计的,即,能够预估当前被占用的进程何时被释放,相应地,新创建的进程也能够根据服务器当前的工作状态进行预估。换言之,也就能够对各档位下的新增资源量进行预估。
S104:根据所述预估新增资源量,确定各分档的预估资源总量。
针对每一分档而言,该分档的预估资源总量可认为是其当前的可用资源量与该分档的预估新增资源量的累计值。
S105:根据所述预估资源总量,确定与所述待处理任务量相匹配的分档,并将所述分档对应的资源消耗量作为查询结果进行反馈。
在确定出了各分档的预估资源总量后,便可以基于预估资源总量,统计待处理任务所需的资源量,延续上例,由于进程1和2的释放,分档a中将增加400的可用资源(即,新增资源量),可见,对于用户的待处理任务量,只需只用分档a中资源便可完成处理,而无需使用分档2中的资源进行处理,显然,分档a下的资源消耗量少于分档b的资源消耗量。因此,资源平台可将分档a所对应的资源消耗量反馈给用户。
通过上述步骤,当需求方向资源平台发出资源消耗量的查询请求后,资源平台会根据查询请求中的待处理任务量,在提供方基于额外资源消耗量所划分的若干分档中,确定与待处理任务量所需的资源量所对应的各分档,并在这些分档中,分别预估每一分档中即将新增的资源量,换言之,可预估出每一分档中的可用资源总量,此后,便可以确定出不少于待处理任务量相匹配的预估资源总量,进一步将该预估资源总量所处的分档的资源消耗量,作为预估值反馈给用户。相较于现有技术,本申请实施例中资源平台所反馈的预估值更加符合实际的资源消耗量,且能够起到减少用户所支出的资源代价的作用。
在实际应用中,提供方所持有的可用资源可能具有多个分档,通常并不会直接将资源消耗量最高的分档匹配给需求方,而是按照资源消耗量由低到高的顺序,累计各分档中的可用资源,直到可用资源量满足需求方所请求的待处理任务量,因此,在本申请实施例中,确定与待处理任务量相匹配的可用资源量所对应的各分档,具体包括:分别确定各分档当前的可用资源总量,按照资源消耗量由低到高的顺序,累计各分档的可用资源总量,直到累计的可用资源总量不小于所述待处理任务量,确定进行累计的可用资源总量所对应的各分档。
当然,这里只是以当前的可用资源所确定出的各分档,并未包含未来某一时刻可能被释放的新增资源,所以将对各分档中可能的新增资源量进行预估。也即,分别确定各分档的预估新增资源量,具体包括:针对任一分档,根据历史数据,预估该分档的第一资源量以及第二资源量,根据所述第一资源量以及第二资源量,确定该分档的预估新增资源量。
在本申请实施例中,所述的第一资源量,可以是原本被占用的线程当前时刻被释放。第二资源量,可以是在这些释放的线程中,被其他任务所占用的线程。
所述历史数据中包含各类任务的平均处理耗时,预估该分档的第一资源量,具体包括:在指定时段内,预估到期的处理任务,将到期的处理任务所释放的资源量,确定为第一资源量。
所述历史数据中包含针对已释放的资源被占用的平均量,预估该分档的第二资源量,具体包括:根据所述第一资源量以及针对已释放的资源被占用的平均量,确定在第一资源量中被占用的资源量,作为第二资源量。
根据所述第一资源量以及第二资源量,确定该分档的预估新增资源量,具体包括:确定所述第一资源量与第二资源量之间的差值,将所述差值确定为该分档的预估新增资源量。
根据所述预估资源总量,确定与所述待处理任务量相匹配的分档,并将所述分档对应的资源消耗量作为查询结果进行反馈,具体包括:按照额外资源消耗量由低到高的顺序,累计各分档的预估资源总量,直到累计的预估资源总量不小于所述待处理任务量所消耗的资源总量,在累计的预估资源总量所对应的各分档中,将各分档所对应的最高额外资源消耗量作为查询结果进行反馈。
此外,上述的资源查询方法适用于融资平台的利率查询场景,在该场景中,对于融资方用户(即,需求方)而言,在进行融资前,基于其所需的融资规模(即,融资的金额),会向融资平台发送利率查询请求。对于投资方用户(即,提供方)而言,投资方用户会将自身所持有的资金投放在融资平台上,形成资金池,这里需要说明的是,不同的投资用户所期望的交易利率不同,从而,融资平台将基于投资用户所期望的利率,将资金池中的资金进行分档,具体可如下表2所示:
表2
在实际操作时,假设融资方用户所需融资规模为A,并向融资平台发出利率查询请求,以查询该融资规模下对应的利率,该融资平台将从利率最低的分档中的资金进行累加,直至
也即,完成该融资规模,此时,读取对应档位的利率i
k。换言之,此次融资均按照利率i
k成交。
然而,融资平台上融资过程的募集期(募集期是指为了完成某融资规模所需的时间)通常可能持续几个小时,而在这段时间内,可能有新的资金流入资金池,如果考虑这部分增量资金,则可能以低于ik的利率完成融资。显然,在此情况下,融资平台发送给融资用户的利率高于实际成交的利率。
基于此,本申请实施例中,在该场景下提供了一种资源查询方法,其资源查询的架构如图4所示具体包括以下步骤:
S401:接收利率查询请求。
本场景下,由融资平台接收利率查询请求。其中,所述利率查询请求中携带有融资规模信息。
S402:在预先基于融资利率所划分的资金分档中,确定与所述融资规模相匹配的资金量所对应的各分档。
S403:分别确定各分档的预估新增资金量。
结合上表2,在募集期,可能有新的资金流入资金池,也就是说,针对各分档,可能均会有新的资金流入,故在本步骤中,将预估各分档中可能新增的资金量。
S404:根据所述预估新增资金量,确定各分档的预估资金总量。
S405:根据所述预估资金总量,确定与所述融资规模相匹配的分档,并将所述分档对应的利率作为查询结果进行反馈。
需要说明的是,对于上述方法,确定与所述融资规模相匹配的资金量所对应的各分档,具体包括:分别确定各分档当前的可用资金,按照利率由低到高的顺序,累计各分档的可用资金,直到累计的可用资金量不小于所述融资规模,确定进行累计的可用资金所对应的各分档。
换言之,对于融资规模A,首先要确定当前完成该融资规模A所需的最高利率,即,从最低档位起累加档位金额,直至
读取对应档位的利率i
k。
之后,分别确定各分档的预估新增资金量,具体包括:针对任一分档,根据历史数据,预估该分档的预约资金量以及变现成交量,根据所述预约资金量以及变现成交量,确定该分档的预估新增资金量。
其中,预估该分档的预约资金量,具体包括:根据所述历史数据,预估当日增加的预约资金量以及流入该分档的预约资金的占比,根据当日增加的预约资金量以及流入该分档的预约资金的占比,预估该分档的预约资金量。
预估该分档的变现成交量,具体包括:根据所述历史数据,预估当日的变现成交量以及该分档下的变现成交占比,根据当日的变现成交量以及该分档下的变现成交占比,预估该分档的变现成交量。
根据所述预约资金量以及变现成交量,确定该分档的预估新增资金量,具体包括:确定该分档的预估新增资金量与该分档的变现成交量的差值,根据所述差值,确定该分档的预估新增资金量。
进而,根据所述预估资金总量,确定与所述融资规模相匹配的分档,并将所述分档对应的利率作为查询结果进行反馈,具体包括:按照利率由低到高的顺序,累计各分档的预估资金总量,直到累计的预估资金总量不小于所述融资规模,在累计的预估资金总量所对应的各分档中,将各分档所对应的最高利率作为查询结果进行反馈。
以实际应用实例进行说明:
在实际应用场景下,对于每个分档中的新增资金量的计算,主要涉及以下因素:
预约资金增量:基于历史数据分析,日预约资金量和推荐利率之间的关系可以用二次曲线可较好地拟合。即对推荐利率i,可以预测日预约资金增量C=f(i)。
预约资金流入某一分档的比例:基于历史数据统计,可以获得预约资金增量流入某一分档的比例Pc。例如:对于利率为5%的分档,流入该分档的资金占全部预约资金增量的40%。
变现成交量:变现成交量可认为是被投资方用户取出的资金量,所以在计算各分档中的新增资金量时,应排除变现成交量,当然,可基于历史数据,预估出每日变现成交量B。
变现资金进入融1档位的占比:同样,基于历史数据统计,可以获得变现资金进入某一分档的比例Pb。
为了增加预估准确性,还可基于历史数据统计预约资金净流入量在募集期的分布规律。例如:募集开始时点为10点,结束时间为14:30,这段时间预约资金净流入量占全天净流入量Pd。
基于以上内容,那么,以档位1为例,假设融资利率为i1,在消耗完分档1的全部资金后,资金缺口为A-A1,即有金额为A-A1的融资单停留在分档1。
募集期内流入该分档的预约资金净增量D
1=(C
1×P
c1-B
1×P
b1)×P
d,如果D
1<A-A
1,即表明流入该分档的预约资金净增量不足以弥补资金缺口,则继续对后续分档重复上述过程,直至找到分档j,使得
即流入该档位的预约资金净增量足以覆盖资金缺口,完成整融资。则此利率i
j就是要寻找的适用融资利率。
故融资平台便可以将此利率ij作为查询结果向融资用户反馈。
以上为本申请实施例提供的资源查询方法,基于同样的思路,本申请实施例还提供一种资源查询装置,如图5所示。所述装置包括:
接收模块501,接收针对资源消耗量的查询请求,其中,所述查询请求中携带待处理任务量;
分档模块502,在预先基于资源消耗量划分的若干资源的分档中,确定与待处理任务量相匹配的可用资源量所对应的各分档;
第一预估模块503,分别确定各分档的预估新增资源量;
第二预估模块504,根据所述预估新增资源量,确定各分档的预估资源总量;
查询模块505,根据所述预估资源总量,确定与所述待处理任务量相匹配的分档,并将所述分档对应的资源消耗量作为查询结果进行反馈。
进一步地,分档模块502,分别确定各分档当前的可用资源总量,按照额外资源消耗量由低到高的顺序,累计各分档的可用资源总量,直到累计的可用资源总量不小于所述待处理任务量所消耗的资源总量,确定进行累计的可用资源总量所对应的各分档。
第一预估模块503,针对任一分档,根据历史数据,预估该分档的第一资源量以及第二资源量,根据所述第一资源量以及第二资源量,确定该分档的预估新增资源量。
所述历史数据中包含各类任务的平均处理耗时,第一预估模块503,在指定时段内,预估到期的处理任务,将到期的处理任务所释放的资源量,确定为第一资源量。
所述历史数据中包含针对已释放的资源被占用的平均量,第一预估模块503,根据所述第一资源量以及针对已释放的资源被占用的平均量,确定在第一资源量中被占用的资源量,作为第二资源量。
第一预估模块503,确定所述第一资源量与第二资源量之间的差值,将所述差值确定为该分档的预估新增资源量。
查询模块505,按照额外资源消耗量由低到高的顺序,累计各分档的预估资源总量,直到累计的预估资源总量不小于所述待处理任务量所消耗的资源总量,在累计的预估资源总量所对应的各分档中,将各分档所对应的最高额外资源消耗量作为查询结果进行反馈。
基于融资场景,本申请实施例还提供一种资源查询装置,如图6所示。所述装置设置于融资平台侧,该装置包括:
接收模块601,接收利率查询请求,其中,所述利率查询请求中携带有融资期限信息和融资规模信息;
分档模块602,在属于该融资期限、且预先基于融资利率所划分的资金分档中,确定与所述融资规模相匹配的资金量所对应的各分档;
第一预估模块603,分别确定各分档的预估新增资金量;
第二预估模块604,根据所述预估新增资金量,确定各分档的预估资金总量;
利率查询模块605,根据所述预估资金总量,确定与所述融资规模相匹配的分档,并将所述分档对应的利率作为查询结果进行反馈。
进一步地,分档模块602,分别确定各分档当前的可用资金,按照利率由低到高的顺序,累计各分档的可用资金,直到累计的可用资金量不小于所述融资规模,确定进行累计的可用资金所对应的各分档。
第一预估模块603,针对任一分档,根据历史数据,预估该分档的预约资金量以及变现成交量,根据所述预约资金量以及变现成交量,确定该分档的预估新增资金量。
第一预估模块603,根据所述历史数据,预估当日增加的预约资金量以及流入该分档的预约资金的占比,根据当日增加的预约资金量以及流入该分档的预约资金的占比,预估该分档的预约资金量。
第一预估模块603,根据所述历史数据,预估当日的变现成交量以及该分档下的变现成交占比,根据当日的变现成交量以及该分档下的变现成交占比,预估该分档的变现成交量。
第一预估模块603,确定该分档的预估新增资金量与该分档的变现成交量的差值,根据所述差值,确定该分档的预估新增资金量。
利率查询模块605,按照利率由低到高的顺序,累计各分档的预估资金总量,直到累计的预估资金总量不小于所述融资规模,在累计的预估资金总量所对应的各分档中,将各分档所对应的最高利率作为查询结果进行反馈。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。