首页> 中国专利> 嵌入式并行计算系统以及嵌入式并行计算方法

嵌入式并行计算系统以及嵌入式并行计算方法

摘要

本发明涉及一种嵌入式并行计算系统以及嵌入式并行计算方法。其中,包括主机和应用子系统,该主机具有主机处理器、主机存储器和主机总线,该应用子系统包括应用处理器、应用存储器和应用总线,主机存储器中存储有包括初始化程序和中断任务程序在内的主机程序,该主机程序中包括具有主机任务和子系统任务的嵌入式并行程序,该主机任务具有主任务和主机子任务,该子系统任务具有子任务,该应用子系统中进一步包括任务控制寄存器、任务状态寄存器以及具有任务管理器的多任务操作系统。在该嵌入式并行计算系统中执行本发明的嵌入式并行计算方法。该系统和方法可以在以简单的方式来避免复杂的并行程序设计的同时,充分利用应用处理器的计算能力。

著录项

  • 公开/公告号CN1719416A

    专利类型发明专利

  • 公开/公告日2006-01-11

    原文格式PDF

  • 申请/专利权人 北京中星微电子有限公司;

    申请/专利号CN200510083088.9

  • 发明设计人 周政军;

    申请日2005-07-08

  • 分类号G06F9/46(20060101);

  • 代理机构11243 北京银龙知识产权代理有限公司;

  • 代理人郝庆芬

  • 地址 100080 北京市海淀区学院路35号世宁大厦15层

  • 入库时间 2023-12-17 16:50:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-08-28

    未缴年费专利权终止 IPC(主分类):G06F9/46 授权公告日:20071114 终止日期:20120708 申请日:20050708

    专利权的终止

  • 2007-11-14

    授权

    授权

  • 2006-04-19

    实质审查的生效

    实质审查的生效

  • 2006-01-11

    公开

    公开

说明书

技术领域

本发明涉及一种计算系统以及计算方法,特别是涉及一种嵌入式并行计算系统以及嵌入式并行计算方法。

背景技术

目前,在嵌入式领域,尤其是手机的嵌入式领域,软件只能在需要完成特定应用时(如拍照)使用应用处理器。软件通过读写应用处理器的寄存器或发送命令给应用处理器,应用处理器完成特定操作后将操作结果放到应用存储器中,然后通知软件将操作结果读出。在做其他计算操作时,软件不能使用应用处理器。而目前许多应用处理器内部都有功能较强大的CPU内核。上述方法没有充分利用应用处理器内部的计算能力。

而且,目前的大型并行系统是针对计算性能要求远远高于嵌入式系统的场合。其采用的是一种对等机制,即,不存在主机系统和子系统这样的概念,各个系统对等地进行计算,而之间所进行的通信仅仅是一些计算公式之类的信息,这样其可以很快地执行各种处理。但是,由于设计和使用这些系统要求开发人员学习复杂的并行计算理论,而且,并行程序设计对大多数软件开发人员来说是非常复杂的。这样,使用传统的方法来解决嵌入式系统中应用处理器空闲计算能力的使用问题是不合适的。

发明内容

为克服以上问题,本发明提出一种嵌入式并行计算系统以及一种嵌入式并行计算方法。

本发明的嵌入式并行计算系统,包括主机和应用子系统,该主机具有主机处理器、主机存储器和主机总线,该应用子系统包括应用处理器、应用存储器和应用总线,主机存储器中存储有包括初始化程序和中断任务程序在内的主机程序,该主机程序中包括具有主机任务和子系统任务的嵌入式并行程序,该主机任务具有主任务和主机子任务,该子系统任务具有子任务,该应用子系统中进一步包括任务控制寄存器、任务状态寄存器以及具有任务管理器的多任务操作系统。其中,主机处理器在执行嵌入式并行程序的主机任务时,可以通过读任务状态寄存器了解应用子系统的状态,并根据应用子系统的状态通过在应用子系统的任务控制寄存器中写入命令通知应用子系统的任务管理器创建/销毁任务,并可以通过读写应用子系统的应用存储器与应用子系统交互数据,应用处理器根据任务管理器创建的任务执行主机处理器写入应用存储器中的嵌入式并行程序的子系统任务的任务代码,并将执行结果写入应用存储器。

在上述嵌入式并行计算系统中执行嵌入式并行计算方法,其包括包括以下步骤:

步骤一,配置应用子系统:使用初始化程序初始化应用子系统,启动其多任务操作系统,在启动完毕后写任务状态寄存器通知主机应用子系统已准备完毕并等待任务请求;

步骤二,创建/启动新任务:主机在确认子系统准备完毕后,从主机存储器中读取子系统任务的任务代码,将其写入应用存储器,并发送任务请求到任务控制寄存器中通知任务管理器创建/启动新任务;

步骤三,并行处理主机任务和子系统任务:在应用处理器根据任务管理器创建/启动的新任务执行应用存储器中的子系统的任务代码时,主机处理器执行主机任务的任务代码;以及

步骤四,结束/销毁任务:应用处理器将执行结果写入应用存储器,并将中断信号发送给主机处理器,主机处理器在接收到中断信号后调用中断任务程序确认任务结束,将结束/销毁任务的请求设置到应用处理器的任务控制寄存器,任务管理器根据该请求结束/销毁任务。

与现有技术相比,本发明提出了一种嵌入式并行计算系统和并行计算方法,该嵌入式并行计算系统包括主机和应用子系统,并且所执行的嵌入式并行程序存储在主机中。相对于现有技术中采用的对等机制,本发明的嵌入式并行计算系统和并行计算方法可以在以简单的方式来避免复杂的并行程序设计的同时,充分利用应用处理器的计算能力。

附图说明

图1是本发明嵌入式并行计算系统的示意图。

图2是普通程序的结构图。

图3是本发明的嵌入式并行程序的结构图。

图4是本发明嵌入式并行计算系统执行的嵌入式并行计算方法的流程图。

具体实施方式

图1是本发明嵌入式并行计算系统的示意图。本发明的嵌入式并行计算系统1由主机处理器11、主机总线12、主机存储器13和应用子系统14构成。当本系统为手机系统时,手机主机包括主机处理器11、主机总线12和主机存储器13,主机存储器13是位于手机电路板上的内存。

其中,主机总线12是用于主机处理器11、主机存储器13以及应用子系统14之间的通信线路。主机处理器11可以通过主机总线12访问主机存储器13以及应用子系统14。主机存储器13用于存储嵌入式并行程序,该嵌入式并行程序中包括主机任务和子系统任务的任务代码,嵌入式并行程序的主机任务的任务代码是主机处理器11所执行的主机任务的任务代码。

进一步,应用子系统14由应用处理器141,应用总线142和应用存储器143构成。其中,应用存储器143用于存储应用处理器141的任务代码,应用处理器141用于执行存储在应用存储器143中的任务代码,应用总线142用于应用处理器141和应用存储器143之间的通信。其中,应用存储器143中的任务代码是由主机处理器11从主机存储器13中读出并写入应用子系统14的应用存储器143中的子系统任务的任务代码。

在图1所示的嵌入式并行计算系统1中,主机处理器11可以通过主机总线12访问主机存储器13、任务控制寄存器(图未示)和应用存储器143。应用处理器141可以访问任务状态寄存器和任务控制寄存器,还可以通过应用子系统14内部的应用总线142访问应用存储器143。

在应用子系统14中具有自己的多任务操作系统。该多任务操作系统位于应用存储器141中,包含一个任务管理器。该任务管理器能够检查应用子系统14的任务控制寄存器的状态,并根据该任务控制寄存器的值来创建或销毁任务。该任务控制寄存器的值是由主机处理器11通过写任务控制寄存器而设置的。当任务管理器检查到任务控制寄存器的值等于某个二进制数时,其创建/销毁任务,从而完成对应用子系统的任务控制。该二进制数为子系统预先设定的数值,可以任意设定。

应用处理器141所要执行的每个任务的任务代码都保存在应用存储器143中。在应用处理器141执行保存在应用存储器143中的任务代码时,主机处理器11也执行存储在主机存储器13中的任务代码。

在描述本发明并行计算之前,我们先将参照图2和图3比较一下在本发明的计算机系统中所运行的嵌入式并行程序和普通程序的结构。

首先看一下普通程序结构。如图2所示,一个普通程序只包含主机任务,该主机任务中包含了多个任务。

普通程序由一个主任务(或主线程)和多个子任务(或子线程)组成。主任务对应一个主函数,每个子任务也各对应一个任务函数(子函数)。普通程序中主任务和子任务共用主机处理器11,因此主函数和子函数被任务连接器连接到一个可执行文件的一个地址空间。在主机处理器11要执行普通程序时,只要将连接到该地址空间的可执行文件载入主机存储器13,然后从程序入口点执行该普通程序即可。主任务中不需要考虑子任务代码的载入问题。

如图3所示,一个嵌入式并行程序由主机任务和子系统任务组成。主机任务包含主任务和主机子任务,子系统任务只包含子任务。

主机和应用子系统14可以通过下面的机制交互信息和数据:

主机处理器11通过写应用处理器141的任务控制寄存器来传送命令,在任务管理器检查任务控制寄存器时,根据主机处理器11的命令来创建/销毁任务。

应用处理器141通过写任务状态寄存器通知主机自己的状态,并且,主机处理器11通过读任务状态寄存器了解应用子系统14当前所处的状态,例如多任务操作系统的初始化已经准备完毕、等待任务请求等。

在有紧急消息需要主机响应时,应用处理器141发出一个中断信号通知主机。该中断信号可以直接发给主机处理器11,也可以通过将中断信号先写入任务状态寄存器,然后由主机处理器11从其中读出中断信号。主机在收到该中断信号后会调用存储在主机存储器13中的中断服务程序。在主机根据中断服务程序确认紧急消息后,将结束/销毁任务的请求设置到任务控制寄存器,当任务管理器检查到该请求时,任务管理器根据该请求销毁任务。

主机处理器11和应用处理器141都可以读写应用存储器143,从而实现任务代码和执行信息的交互,具体如下:

主机处理器11可以将嵌入式并行程序中的子系统任务的任务代码写入应用存储器143,应用处理器141从应用存储器143中读出并执行该任务代码;

然后,当应用处理器141执行完毕后,将执行结果写入应用存储器143,主机处理器11通过读应用存储器143获得应用处理器141的执行结果。

通过上面的机制,可以实现主机和应用子系统之间的通讯。

图4是本发明的嵌入式并行计算系统所进行的并行计算的流程图。下面结合图4介绍主机和应用子系统14如何实现并行计算任务。

由于本发明的特征在于主机对应用子系统14的处理以及应用子系统14和主机并行地执行计算,而对于主机而言,其与现有主机执行计算的方式一样,所以这里重点描述主机与应用子系统14之间的相互作用以及应用子系统的操作。

最初,主机程序(包括嵌入式并行程序、初始化程序以及中断服务程序等)都放在主机存储器13中,主机启动后,主机处理器11首先运行位于主机存储器13中主机程序中的初始化程序,初始化后的主机程序启动应用子系统14的应用处理器141并配置应用子系统14中的多任务操作系统处于待机状态。

当应用子系统14准备完毕后,应用处理器141通过将应用子系统14当前的状态写入任务状态寄存器,该状态包括准备完毕以及任务请求。主机处理器11通过读应用处理器141的任务状态寄存器了解应用子系统14当前所处的状态。

当运行于主机上的主机程序需要使用应用处理器141来完成计算某个任务(假设为任务甲)时,主机处理器11从主机存储器13中读出对应的任务代码,然后将读出的任务代码写入应用存储器143,同时通过设置任务控制寄存器向应用子系统14发送任务请求,即创建任务请求。

当任务管理器检查到主机处理器11设置在任务控制寄存器中的创建任务的创建任务请求时,其根据主机处理器11的请求创建任务,并通知应用处理器141从应用存储器143中读出任务甲的任务代码,执行该任务代码。在应用处理器141执行任务甲的任务代码时,主机可以执行其他计算代码。

在任务完成后,应用子系统14将运行结果写入应用存储器143,并通过发送中断信号通知主机,主机在收到信号后会调用主机程序中的中断服务程序。在主机根据中断服务程序确认任务结束后,将结束/销毁任务的请求设置到任务控制寄存器。当任务管理器检查到该结束/销毁任务的请求时,结束/销毁任务甲。

其中,主机在接收到中断信号后,会从应用存储器143中读出应用子系统14的执行结果,判断该结果是否符合要求。如果符合则,调用中断服务程序,如果不符合,则可以通知应用子系统14重新执行该任务。

如果当主机程序还在进行,而应用子系统14完成某个任务之后,主机可以进一步给应用子系统14提供新的任务请求。如果新的子任务需要特定的设置,则按照新的子任务重新设置应用子系统14。并且在设置后进行重复上述的操作。

如果在主机和应用子系统14上所执行的程序是采用不同的编译方式编译时,则主机和应用子系统14根据不同的编译方法采用不同的编译器。在执行时,主机将应用子系统14所执行的任务代码读出,以应用子系统14可以理解的方式写入应用存储器143。

在开发上述嵌入式并行程序时,为了提高执行效率,可以开发一个嵌入式并行程序的软件开发包,该软件开发包可以位于主机存储器13中,作为主机程序的一部分。该软件开发包中包括:任务组合器、任务解析/加载函数库、子系统任务管理函数库、主机和子系统通信函数库以及主机任务和子系统任务通信函数库。

每个子系统任务的函数(子函数)使用一个单独的源文件来编写,使用针对应用处理器141的编译器将该函数单独编译成子系统的目标文件。这些子系统的目标文件再由软件开发包的任务组合器组合成为子系统库任务。每个子系统库任务可以包含一个或多个子任务函数的任务代码,就是说所有子任务函数的目标文件可能被连接为一个子系统库任务也可能被连接为多个子系统库任务。在子系统库任务中保存有描述其中的子任务的数据结构,分别描述了每个子任务的代码长度,代码起始位置,任务优先级等信息。

而主机任务仍然使用其原有的编译器和任务连接器来创建,创建成一个可执行文件。不同的是,在主机程序中有解析、加载子系统库任务的任务解析/加载函数库。在主机程序创建子系统任务时,主机程序先使用上述任务解析/加载函数库解析出子系统库任务,读出子系统库任务的任务代码,然后将该任务代码写入应用存储器143。

在创建/销毁子系统任务时,任务管理器通过调度子系统任务管理函数库实现更快捷地创建/销毁任务。

主机和子系统通信函数库执行主机处理器11和应用子系统14之间的相互发送、接收命令和共享数据,例如读写命令、读写状态以及任务代码。

主机任务和子系统任务通信函数库,用于完成主机任务和子系统任务之间的通信和同步。在图4中可以看出,在主机执行其他计算代码、应用子系统执行任务代码时,通过用于完成主机任务和子系统任务之间的通信和同步的主机任务和子系统任务通信函数库,主机任务和应用子系统任务可以通过发送互斥体或信号量来同步,并且,主机任务可以等待应用子系统任务完成某一操作,应用子系统任务也可以等待主机任务完成某一操作,并且,在不需要同步的时候,主机处理器11和应用处理器141可以相互独立地并行地执行。

综上所述,本发明的嵌入式并行计算系统和并行计算方法可以在以简单的方式来避免复杂的并行程序设计的同时,充分利用应用处理器的计算能力。

尽管本发明以上述实施例来对嵌入式并行计算系统以及并行计算方法进行详细地说明,但是本发明并不仅限于以上的实施例,并且可以延伸到本领域的普通技术人员通过阅读以上的实施例而想到的显而易知的实施例。

因此,本领域的普通技术人员对本发明的嵌入式并行计算系统以及并行计算方法所作出的任何变更或者修饰,理应落在本发明所要求保护的权利要求范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号