CN106557312A - 程序开发支援装置以及程序开发支援软件 - Google Patents

程序开发支援装置以及程序开发支援软件 Download PDF

Info

Publication number
CN106557312A
CN106557312A CN201610839473.XA CN201610839473A CN106557312A CN 106557312 A CN106557312 A CN 106557312A CN 201610839473 A CN201610839473 A CN 201610839473A CN 106557312 A CN106557312 A CN 106557312A
Authority
CN
China
Prior art keywords
arithmetic unit
function
data
processing
perform
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.)
Granted
Application number
CN201610839473.XA
Other languages
English (en)
Other versions
CN106557312B (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN106557312A publication Critical patent/CN106557312A/zh
Application granted granted Critical
Publication of CN106557312B publication Critical patent/CN106557312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了程序开发支援装置和程序开发支援软件。该程序开发支援装置生成用于通过目标设备执行以图形形式描述的数据处理的程序,能够提高设计的生产率。程序开发支援装置具有GUI部、程序生成部、处理执行函数数据库和数据转送函数数据库。在数据处理所包含的某个处理能够由安装在目标设备上的不同种类的运算装置执行时,在处理执行函数数据库中保存用于使各个运算装置执行该处理的处理执行函数,在数据转送函数数据库中保存为此的数据转送函数。通过GUI部能够选择通过哪个运算装置执行该处理,程序生成部读取与被选择的运算装置对应的处理执行函数和数据转送函数,生成用于使目标设备执行作为目的的数据处理的程序。

Description

程序开发支援装置以及程序开发支援软件
技术领域
本发明涉及程序开发支援装置以及程序开发支援软件,尤其优选用于图形GUI编程环境,图形GUI编程环境用于根据以图形形式描述的用户应用程序开发利用目标设备上的运算装置进行动作的程序。
背景技术
在由科纳斯组织(The Khronos Group,以下称为Khronos)制定的面向图像识别的API(Application Programming Interface:应用程序编程界面)即OpenVX中,图形管理器对以图形形式描述的用户应用程序进行解析,利用目标设备上的运算装置高效进行处理。
图1示出用于OpenVX的以图形形式描述的用户应用程序的一个例子,图2示出与其对应的OpenVX编码的例子。在OpenVX编码中,首先使用称为vx**Node()的函数组定义图形结构。然后,通过vxVerifyGraph()函数解析图形结构,决定图形中表示的处理的并行性和处理顺序。然后,通过vxProcessGraph()函数进行处理。在此,如图1所示,针对输入图像in,在vxThreshold结点进行二值化处理,然后,在vxSubtract和vxAdd结点进行相减计算以及相加计算,最后,将这些结果相加,生成输出图像out。在该例子中,需要首先处理vxThreshold,但是也可以先处理vxSubtract和第一次的vxAdd中的任意一个,也可以并行处理。此外,在此所说的图形是有向图形(Directed Acyclic Graph)。
对于在图形上使用的结点(Base Node),为了确保互换性,由Khronos严格地定义所需精度和举动等的标准。例如,用于算出每个像素的边缘方向的vxPhase结点被定义为以0~255的8bit精度输出的结点。
在OpenVX之外,也提出有将有向图形作为输入方式的程序开发环境。
在专利文献1中公开了一种控制程序组建系统,其在图形用户界面(GUI:Graphical User Interface)的显示器上使用通过连接线将表示运算功能的结点连接而成的图形,来组建作为目标的控制程序。对于各种系统,将有向图形作为建模的通用手段,从而能够容易地进行系统的统合。
在专利文献2中公开了在多处理器系统上执行的模拟系统中通过使程序并行执行来实现高速化的技术。
作为OpenVX的目标设备,可列举SoC(System-on-a-Chip:片上系统)等的系统LSI(Large Scale Integrated circuit:大规模集成电路)。在用作目标设备的SoC等的系统LSI中,有的系统LSI除了CPU(Central Processing Unit:中央处理器)之外还安装有对图像处理特有的运算功能进行强化的图像处理器和使特殊的运算高速化的加速器。例如,在瑞萨电子株式会社的R-Car V2H中,除了CPU之外还安装有2D和3D的图形引擎,而且还安装有称为图形识别引擎(Image Recognition Engine)的加速器。
现有技术文献
专利文献
专利文献1:日本特开2004-265393号公报
专利文献2:日本特开2011-096107号公报
本发明人对专利文献1、2进行研究的结果,发现以下的新问题。
如OpenVX那样,在根据以图形形式描述的用户应用程序开发利用目标设备上的运算装置进行动作的程序的图形GUI编程环境中,开发者能够将对某个结点的处理安装在多个不同种类的运算装置中。此时,在不同种类的运算装置中,得到的处理结果相同,但是直到得到处理结果的处理时间和此时的耗电量则有可能不同。例如,在除了CPU之外还安装有运算装置(加速器)的目标设备中,由于在CPU和加速器的内部结构大不相同,所以其结果是,能够考虑到对某个处理的处理时间和耗电量将会发生变化。在此,“不同种类的运算装置”是指用于执行运算的电路结构不同的运算装置。例如,不仅包括如CPU和加速器那样大不相同的运算装置,而且即使是相同的CPU,使用乘法电路进行乘法运算的命令和不使用乘法电路而利用反复执行加法电路的函数执行同一乘法运算的情况,也属于不同种类的运算装置。
由于能够执行相同处理的运算装置具有多个候选,所以具有能够提高用户的设计自由度的优点,相反,为了针对各个处理选择最佳的运算装置,需要一边对运算装置的分配进行各种改变一边评价处理时间和耗电量。因此,在运算装置的种类多的情况下或构成用户应用程序的处理多的情况下,即在图形复杂的情况下,需要评价和探索很多组合,从而谋求设计生产率的进一步提高。
图形GUI编程环境是适合用于提高用户应用程序的生产率的环境。至此,提出有通过将部件结合这样的诀窍来简单地创建用户应用程序的方法,以及将安装有多个同种运算器的多处理器等的系统作为对象的方法。例如,具有通过鼠标操作构建用户应用程序的方法。在专利文献1中,公开了利用GUI生成程序的方法。在专利文献2中,示出了使图形进行循环地最佳化的方法。
但是,在现有技术中,仅停留于已知使对在图形上并行执行的结点和同种运算器的分配最佳化这样的方法。由于不存在指定对不同种类的运算装置进行分配的方法,所以可知存在这样的问题:在运算装置的种类多的情况下或构成用户应用程序的处理多的情况下,即在图形复杂的情况下,不能高效地评价和探索很多组合。
发明内容
以下说明用于解决这样的问题的手段,但是,根据本说明书的记载以及附图,也能够明确其他的问题和新特征。
根据一个实施方式如下。
即,一种程序开发支援装置,生成用于通过目标设备执行基于图形信息以图形形式描述的数据处理的程序,具有图形用户界面(GUI)部、程序生成部、处理执行函数数据库和数据转送函数数据库。图形信息是将所述数据处理所包含的多个处理中的各个处理作为结点且将数据的流向作为有向连接线的图形,图形信息显示在所述GUI部上。在所述数据处理所包含的某个处理能够由安装在目标设备上的不同种类的多个运算装置执行时,在处理执行函数数据库中保存用于通过各个运算装置执行该处理的多个处理执行函数,在数据转送函数数据库中保存用于通过各个运算装置执行该处理的多个数据转送函数。GUI部显示该处理能够由所述多个运算装置执行,使用户选择由哪个运算装置执行该处理。程序生成部从处理执行函数数据库和数据转送函数数据库中分别读取与被选择的运算装置对应的适当的处理执行函数和数据转送函数,生成用于通过目标设备执行作为目的的数据处理的程序。
发明效果
以下简单说明通过所述一个实施方式能够得到的效果。
即,在能够通过不同种类的运算装置执行作为目的的数据处理所包含的一个处理时,能够容易地指定由哪个运算装置执行该处理,并且,生成由指定的运算装置执行的程序,因此能够容易地评价和探索很多组合,从而能够提高设计的生产率。
附图说明
图1是表示基于用户应用程序的OpenVX的以图形形式描述的描述例子的说明图。
图2是表示与图1中的图形形式描述对应的OpenVX编码的例子的说明图。
图3是表示第一实施方式的程序开发支援装置的结构的框图。
图4是表示安装有第一实施方式的程序开发支援装置的硬件的结构例子的框图。
图5是表示目标设备的结构例子的框图。
图6是表示第二运算装置30具有的设定寄存器31的一个例子的说明图。
图7是表示数据转送装置40具有的设定寄存器41的一个例子的说明图。
图8是表示图形信息输入和编辑画面的一个例子的说明图。
图9是表示执行处理的运算装置的切换操作的一个例子的、利用双击的方法的说明图。
图10是表示执行处理的运算装置的切换操作的一个例子的、利用上下文菜单的方法的说明图。
图11是利用双击的方法的流程图。
图12是表示存储在处理执行函数数据库5中的处理执行函数的例子的说明图。
图13是表示以图形形式描述的用户应用程序的一个例子的说明图。
图14是表示由图13中的用户应用程序生成的程序的一个例子的说明图。
图15是表示程序生成部的动作的流程图。
图16是表示在图14的程序中使用的数据转送函数的说明图。
图17是表示在图14的程序中使用的各种函数的说明图。
图18是表示使用附加了数据转换功能的数据转送函数的程序的一个例子的说明图。
图19是用于示意性说明数据转送函数所附带的数据数组转换功能的一个例子的说明图。
附图标记说明
1 图形用户界面(GUI)部
2 图形信息保存部
3 程序生成部
4 输出程序
5 处理执行函数数据库
6 数据转送函数数据库
7 显示装置(显示器)
8 输入装置(鼠标)
9 计算机
10 程序开发支援装置
20、30 运算装置
31 运算装置的设定寄存器
22、32 程序存储器
23、33 数据存储器
40 数据转送装置
41 数据转送装置的设定寄存器
50 目标设备
61~64 结点
71~75 连接线
81~84 运算装置信息
90 图形信息输入和编辑画面
91 鼠标光标
92 编码生成按钮
93 处理结点追加按钮
94 上下文菜单
具体实施方式
详细描述实施方式。此外,在用于说明实施发明的方式的所有图中,对于具有同一功能的要素赋予同一附图标记,省略对其重复的说明。
〔第一实施方式〕
图3是表示本第一实施方式的程序开发支援装置10的结构的框图,图4是表示安装有该程序开发支援装置10的硬件的结构例子的框图。另外,图5是表示目标设备50的结构例子的框图。
程序开发支援装置10以在具有显示装置7和例如鼠标等输入装置8的计算机9上动作的软件(程序开发支援软件)来实现。程序开发支援软件通过各种方式的计算机可读介质供给至计算机9。在计算机可读介质中包括例如磁存储介质、光磁存储介质、光学存储介质、半导体存储介质等有形的介质,还包括经由网络等通信手段向计算机9供给的电信号、光信号以及电磁波等无形的介质。作为有形的介质例如有磁带、磁盘、光磁盘、蓝光光盘(Blu-ray Disk)(注册商标)、DVD(Digital Versatile Disc,注册商标)、各种压缩盘(CD、CD-ROM、CD-R、CD-RW等)、USB存储器等。另外,作为无形的介质的通信手段有以太网(注册商标)、光纤、无线LAN(Local Area Network)等。
程序开发支援装置10包括图形用户界面(GUI)部1、图形信息保存部2、程序生成部3、处理执行函数数据库5和数据转送函数数据库6,生成用于使目标设备50执行基于图形信息以图形形式描述的数据处理的程序4。在此,目标设备50具有多个运算装置(20、30、……)。另外,图形信息是将用户应用程序的所述数据处理所包含的多个处理分别作为结点且将数据的流动作为有向连接线的图形。
GUI部1通过在显示装置7上显示该图形信息,来向用户提供能够对想要创建的应用程序的数据处理进行输入和编辑的环境。图形信息保存部2保存被输入的图形信息。保存的数据格式任意。
处理执行函数数据库5是针对安装在目标设备50上的多个运算装置(20、30、……)中的能够执行数据处理所包含的处理的各个运算装置,保存用于使该运算装置执行该处理的处理执行函数的数据库。在多种运算装置都能够执行某个处理的情况下,针对能够执行处理的每个运算装置准备并保存处理执行函数。处理执行函数数据库5保存有用于使安装在目标设备上的运算装置执行所述数据处理所包含的各个处理的处理执行函数。
数据转送函数数据库6是保存数据转送函数的数据库,该数据转送函数用于使保存在处理执行函数数据库5中的处理执行函数由对应的运算装置执行。在数据转送函数的功能中,除了包括单纯的数据转送之外,还可以包括数据格式的转换和存储器上的数据数组(data array)的转换。
程序生成部3基于保存在图形信息保存部2中的图形信息,从处理执行函数数据库5读取适当的处理执行函数,从数据转送函数数据库6读取适当的数据转送函数,来生成并输出程序4。
设为构成用户应用程序的数据处理的多个处理中的某个处理能够由安装在目标设备50上的多个运算装置中的种类相互不同的第一运算装置20和第二运算装置30中的任意一个运算装置执行。
图5所示的目标设备50仅例示了能够执行该处理的2个运算装置即第一运算装置20和第二运算装置30,在第一运算装置20上连接有程序存储器22和数据存储器23,在第二运算装置30上连接有程序存储器32和数据存储器33。目标设备50还具有在第一运算装置20的数据存储器23和第二运算装置30的数据存储器33之间进行数据转送的数据转送装置40。
在此虽然没有特别限定,但第一运算装置20例如为CPU,第二运算装置30为加速器,数据转送装置40为直接内存访问控制器(DMAC:Direct Memory Access Controller)。另外,第二运算装置30的设定寄存器31和数据转送装置40的设定寄存器41分别能够通过作为CPU的第一运算装置20设定。
第二运算装置30具有设定寄存器31,能够变更要执行的运算处理的种类,或者设定函数的自变量和返回值等的处理参数,还能够设定启动等的控制指令,还能够读取表示运算结束等的状态(状态值:status)。在图6中示出第二运算装置30所具有的设定寄存器31的一个例子。设定寄存器31包括多个字(word)b_start、b_finish、b_func、b_return、b_arg1~b_arg5。字b_start是用于向第二运算装置30写入用于使处理开始的启动指令的字。字b_finish是用于表示基于第二运算装置30的处理处于执行中还是已经结束的状态的字。字b_func是用于指定第二运算装置30所执行的处理的内容(种类)的字。字b_return是用于存储第二运算装置30所执行的函数的返回值的字。字b_arg1~b_arg5是用于写入第二运算装置30所执行的函数的各种自变量的字。
数据转送装置40具有设定寄存器41,能够设定转送源、转送目的地的地址以及被转送的数据的量等参数,另外,能够设定转送开始等控制指令,数据转送装置40还可以包括表示数据转送的状况的状态值寄存器。在图7中示出数据转送装置40所具有的设定寄存器41的一个例子。是数据转送装置40为DMAC的情况下的例子,设定寄存器41包括多个字dma_start、dma_finish、dma_direction、dma_addr_a、dma_addr_b以及dma_size。字dma_start是用于向数据转送装置40写入用于使DMA开始转送的转送启动指令的字。字dma_finish是用于表示基于数据转送装置40的DMA转送处于执行中还是已经结束的状态的字。字dma_direction是用于设定DMA转送的方向的字。即,字dma_direction设定是从第一运算装置20的数据存储器23向第二运算装置30的数据存储器33的数据转送,还是相反地从第二运算装置30的数据存储器33向第一运算装置20的数据存储器23的数据转送。字dma_addr_a是用于设定第一运算装置20的数据存储器23的起始地址的字,字dma_addr_b是用于设定第二运算装置30的数据存储器33的起始地址的字。在从第一运算装置20向第二运算装置30转送的情况下,字dma_addr_a变为源地址,字dma_addr_b变为目的地地址,相反,在从第二运算装置30向第一运算装置20转送的情况下,字dma_addr_b变为源地址,字dma_addr_a变为目的地地址。字dma_size是用于设定作为数据转送对象的数据的大小的字。
但是,这样的结构仅是一个例子,第一运算装置20和第二运算装置30可以是具有相互不同的结构的CPU,程序存储器22、32和数据存储器23、33可以是均存储有程序和数据的物理上的一个存储器,两个运算装置可以使用公共的一个存储器。相反,各个存储器可以包括高速缓冲存储器等而被层级化。图5仅示出目标设备50的极其简单的一个例子。
在某一个处理能够被多种运算装置的任意一个执行的情况下,处理执行函数数据库5按照能够执行的各个运算装置准备并保存处理执行函数。在某个处理既能够被第一运算装置20执行也能够被第二运算装置30执行的情况下,处理执行函数数据库5保存用于使第一运算装置20执行该处理的第一处理执行函数和用于使第二运算装置30执行该处理的第二处理执行函数。此时,数据转送函数数据库6保存有用于使第一运算装置20执行第一处理执行函数的第一数据转送函数和用于使第二运算装置30执行第二处理执行函数的第二数据转送函数。在该处理仅能够被第一运算装置20执行的情况下,保存有用于使第一运算装置20执行该处理的第一处理执行函数。根据构成用户应用程序的数据处理的多个处理中的各个处理能够被哪个运算装置执行的情况,准备并保存用于被至少一方的运算装置执行的处理执行函数。
数据转送函数数据库6是保存数据转送函数的数据库,数据转送函数用于使保存在处理执行函数数据库5中的处理执行函数由对应的运算装置执行。在第一运算装置20为CPU,第二运算装置30为加速器的情况下,用于使加速器即第二运算装置30执行一部分数据处理的数据转送函数存储在数据转送函数数据库6中。即,用于从第一运算装置20的数据存储器23向第二运算装置30的数据存储器33转送数据的数据转送函数和通过第二运算装置30从数据存储器33向第一运算装置20的数据存储器23转送运算结果的数据转送函数存储在数据转送函数数据库6中。此时,在数据转送函数的功能中,除了单纯的数据转送之外,还可以包括数据格式的转换和存储器上的数据数组的转换。
在数据处理中包含有上述那样的处理时,GUI部1在显示装置7所显示的图形信息中在与该处理对应的结点上显示能够执行该处理的运算装置。在上述的例子中,在显示装置7中显示第一运算装置20或第二运算装置30能够执行处理,并且能够通过输入装置8选择通过哪个运算装置来执行处理。
程序生成部3与通过输入装置8选择的运算装置对应地从处理执行函数数据库5中选择性地读取适当的处理执行函数,并从数据转送函数数据库中选择性地读取适当的数据转送函数,来生成程序4。
由此,在作为目的的数据处理所包含的一个处理能够被不同种类的运算装置执行的情况下,能够容易地指定通过哪个运算装置来执行该处理,并且生成被所指定的运算装置执行的程序,因此能够容易地评价和探索很多组合,能够提高设计的生产率。
进一步详细说明程序开发支援装置10的动作。
图8表示图形信息输入和编辑画面90的一个例子。图形信息输入和编辑画面90将已经输入的图形信息显示在显示装置7上,且能够通过作为输入装置的鼠标8的光标91进行选择和编辑。图形上的各结点61~64表示构成用户应用程序的数据处理的各处理,连接线71~75表示数据的流动。另外,在画面上存在编码生成按钮92和处理结点追加按钮93。如以下说明那样,GUI部1按照来自鼠标等输入装置8的输入进行动作,在画面上利用鼠标光标91以图形形式创建应用程序。图形信息存储在图形信息保存部2中,GUI部1更新图形信息。在按压编码生成按钮92时,根据保存在图形信息保存部2中的图形信息,通过程序生成部3生成对应的程序4。通过按压处理结点追加按钮93,能够追加新的处理结点。即,通过GUI部1输入的图形信息保存在图形信息保存部2中,通过程序生成部3生成对应的程序4。此后,在通过GUI部1进行编辑来对保存在图形信息保存部2中的图形信息进行更新时,与其对应地,通过程序生成部3重新生成与更新后的图形信息对应的程序4。
在图形信息中,对各结点61~64添加用于执行处理的运算装置信息81~84,在初始状态(默认状态)下,对各结点分配第一运算装置20。在图8中,将用于执行处理的运算装置信息81~84由在处理结点61~64的上方显示的标注示出。在此图示的显示方式为一个例子,可以是其它显示方式。
图9以及图10是表示用于切换针对某个处理结点执行处理的运算装置的操作的一个例子的说明图。在图9中示出了利用双击的方法,在图10中示出了利用上下文菜单的方法。图11是利用双击的方法的流程图。是将执行处理Y的结点63的运算装置从第一运算装置20切换至第二运算装置30的例子。
在利用双击的方法中,将鼠标光标91移动至想要进行切换的处理结点63上并双击,由此能够切换用于执行处理的运算装置。在GUI部1中,执行图11所示的流程图。首先,判定是否双击了处理结点(第一步骤)。在双击了处理结点63的情况下,获取结点63的处理名以及当前被分配的运算装置(第二步骤)。然后,从处理执行函数数据库5获取与处理名对应的处理函数的候选一览表(第三步骤)。然后,在处理函数的候选具有多个的情况下,将对结点分配的运算装置变更为当前被分配的运算装置的下一个运算装置(第四步骤)。在处理函数的候选仅有一个的情况下,不变更对结点分配的运算装置(第四步骤)。
由此,即使在具有三个以上的能够执行某个处理的运算装置的情况下,也能够保持高的操作性。
图12是表示存储在处理执行函数数据库5中的处理执行函数的例子的说明图。在处理执行函数数据库5中按照每个处理名而存储有由各个第一运算装置20或各个第二运算装置30执行的情况下的函数名。图中的“-”(连字符)表示在相应的运算装置中没有安装对应的函数。用于使第一运算装置20执行处理结点61的处理W的处理执行函数为funcW(in1,out1),然而没有安装用于使第二运算装置30执行处理W的处理执行函数。在第一运算装置20执行处理结点62的处理X时,使用处理执行函数funcX(in1,out1),在第二运算装置30执行处理结点62的处理X时,使用处理执行函数start_B_funcX(in1,out1)。同样,在第一运算装置20执行处理结点63的处理Y时,使用处理执行函数funcY(in1,out1),在第二运算装置30执行处理结点63的处理Y时,使用处理执行函数start_B_funcY(in1,out1)。用于使第一运算装置20执行处理结点64的处理Z的处理执行函数为funcZ(in1,out1),然而没有安装用于使第二运算装置30执行处理Z的处理执行函数。
运算装置的切换方法除了使用上述双击的方法以外,也可以通过单击进行切换,还可以通过按压键盘的规定键(例如c键)进行切换。
或者,如图10所示,可以通过右击鼠标而显示的上下文菜单94进行切换。在图10所示的利用上下文菜单的方法中,能够将鼠标光标91移动至想要切换的处理结点63上,通过右击切换用于执行处理的运算装置。在上下文菜单94中示出“切换运算装置”或“删除处理结点”的选项,通过用户的操作进行选择。在选择了“切换运算装置”时,结点63的运算装置切换为第二运算装置30。此时,在GUI部1中执行与图11所示的内容相同的流程图。在第四步骤中具有多个处理函数的候选的情况下,可以在上下文菜单94中显示并能够选择多个处理函数候选或运算装置名。
由此,能够容易地针对各个结点切换用于执行处理的运算装置,从而能够提高设计的生产率。用户仅通过GUI进行简单的操作,就能够切换用于执行处理的运算装置,随着切换而需要对程序4进行的改写,不对用户显示,在程序开发支援装置10内自动进行改写。
以下,进一步详细说明根据针对各个处理结点设定用于执行处理的运算装置的图形信息生成程序的方法。
图13示出以图形形式描述的用户应用程序的一个例子,在图14中示出根据该用户应用程序生成的程序的一个例子。该用户应用程序按照顺序执行处理W、处理X、处理Y和处理Z这4个处理。另外,处理W、处理X、处理Z由第一运算装置20执行,处理Y由第二运算装置30执行。在连接线下显示的da1~da5以及db3和db4是在图14的程序例子中使用的变量名。
图15是表示程序生成部3的动作的流程图。首先,选择图形的起点结点(第五步骤)。接着,从处理执行函数数据库5获取与被选择的结点的处理名以及被分配的运算装置对应的处理函数(第六步骤)。接着,将对当前被选择的结点分配的运算装置S与对上次选择的结点分配的运算装置D进行比较(第七步骤)。然后,在运算装置S与运算装置D不同时(第八步骤),从数据转送函数数据库6获取从运算装置S向运算装置D转送所需要的转送函数,并输出给程序4(第九步骤)。接着,向程序4输出在第六步骤获取的处理函数。然后,选择图形中的后续结点(第十一步骤),在选择中的结点不是终点结点的情况下(第十二步骤),返回第六步骤。在不存在后续结点的情况下,结束处理。此外,在对最后选择的结点分配的装置不是第一运算装置20的情况下,输出向第一运算装置20的转送函数,然后结束。
图16是表示在图14的程序中使用的数据转送函数的说明图。在数据转送函数数据库6中,针对输入侧运算装置和输出侧运算装置的组,存储有数据转送函数。如图16所示,在数据转送函数数据库6中准备有用于从第一运算装置20向第二运算装置30转送数据的数据转送函数copy_to_B(src,dst,size)和相反地用于从第二运算装置30向第一运算装置20转送数据的数据转送函数copy_from_B(src,dst,size)。
在图14中,第一行~第七行是确保必要的存储器区域的处理。利用函数alloc_A()确保第一运算装置20的存储器区域。为了在第二运算装置30中进行的处理Y,需要在处理Y的前后且在第一运算装置20与第二运算装置30之间进行数据转送。因此,利用函数alloc_B另外确保第二运算装置30的输入输出用存储器区域(第五行~第六行)。
在调用用于读取输入数据的函数load_input()(第九行)后,在第十一行以及第十三行分别调用用于使第一运算装置20执行处理W以及处理X的函数funcW()以及funcX()。
然后,为了使第二运算装置30进行处理Y,从第一运算装置20向第二运算装置30复制数据。即,在第十五行利用copy_to_B()函数,将处理X的输出即第一运算装置20中的数据da3向处理Y的输入即第二运算装置30的数据db3复制。
然后,在第十六行,调用使第二运算装置30执行处理Y的函数start_B_funcY()。
然后,在第十七行,利用函数copy_from_B(),将处理Y的输出即第二运算装置30的数据存储器33中的数据db4向处理Z的输入即第一运算装置20的数据存储器23中的数据da4复制。
然后,在第十九行,调用使第一运算装置20执行处理Z的函数funcZ()。
如以上说明的那样,为了在基本上由第一运算装置20执行所有处理的过程中进行变更,以使第二运算装置30执行一部分处理,而在其前后插入调用数据转送用的函数的处理。
图17是表示在图14的程序中使用的各种函数的说明图。
在第一行~第七行的第二运算装置30的数据存储器33的区域确保函数alloc_B()中,在设定寄存器31中的b_arg1中设定确保的区域大小,在b_func中设定表示指向程序存储器32中的区域确保函数的指针的FUNC_B_ALLOC,在b_start寄存器中写入“1”,由此启动第二运算装置30。然后,等到b_finish变为“1”,在第二运算装置30的处理结束后,作为alloc_B()的返回值而返回来自第二运算装置30的返回值b_return。
在第九行~第十五行的第二运算装置30所执行的处理Y的函数start_B_funcY()中,在设定寄存器31中的b_arg1以及b_arg2中设定两个自变量in1以及out1,在b_func中设定表示指向程序存储器32中的函数Y的指针FUNC_B_Y,在b_start寄存器中写入“1”,由此启动第二运算装置30。然后,等到b_finish变为“1”后,处理结束。在此,in1以及out1所表示的地址是第二运算装置30的数据存储器33中的地址,第二运算装置30处理由in1表示的转送至数据存储器33的输入数据。另外,在数据存储器33的输出数据区域中存储由out1表示的处理Y的结果。
在第十七行~第二十三行的copy_to_B()函数中,利用数据转送装置40从第一运算装置20的数据存储器23向第二运算装置30的数据存储器33转送数据。在数据转送装置40内的设定寄存器41的dma_addr_a中设定转送源的addr_a,在dma_addr_b中设定转送目的地的addr_b,在dma_addr_direction中设定转送方向,然后,在dma_start寄存器中写入“1”,开始进行数据转送。然后,等到dma_finish变为“1”后,处理结束。
在第二十四行~第三十行的copy_from_B()函数中,利用数据转送装置40从第二运算装置30的数据存储器33向第一运算装置20的数据存储器进行转送。在数据转送装置40内的设定寄存器41的dma_addr_b中设定转送源的addr_b,在dma_addr_a中设定转送目的地的addr_a,在dma_addr_direction中设定转送方向,然后在dma_start寄存器中写入“1”,开始进行数据转送。然后,等到dma_finish变为“1”后,处理结束。
此外,如图17所示的函数那样的应该预先在处理函数数据库5和数据转送函数数据库中准备的各种函数可以是预先与目标设备50的开发并行地开发并准备的函数。
如以上说明的那样,根据本实施方式,能够简单地切换用于执行某个处理的运算装置,另外,由于与运算装置的分配相应地自动生成需要的数据转送处理,所以能够大幅度提高设计的生产率。此外,在本实施方式中说明了仅具有第一运算装置20和第二运算装置30的例子,但是同样能够针对包括3个以上的运算装置的目标设备进行扩展。
在第一运算装置20是CPU那样的具有通用性的处理器,且第二运算装置30为加速器时,通常,通过CPU即第一运算装置20能够执行构成用户应用程序的数据处理的所有处理,其中一部分处理也能够由加速器即第二运算装置30执行。此时,在处理执行函数数据库5中存储有用于使第一运算装置20执行所有处理的处理执行函数和用于使第二运算装置30执行一部分处理的处理执行函数。在GUI部1中,针对图形信息中的所有结点61~64,作为用于执行处理的运算装置信息81~84的初始状态(默认状态),只要分配作为第一运算装置20的CPU即可。然后,通过上述的方法,提供能够变更对各结点分配的运算装置的用户界面。
由此,为了使CPU执行在用户应用程序的数据处理中包含的所有处理,设定默认状态(初始状态),通过GUI能够容易地切换为还能够通过加速器执行的处理,从而能够提高设计的生产率。
〔第二实施方式〕
在第一实施方式中,作为数据转送函数仅说明了单纯的复制功能,但是在为了配合运算装置的分配而需要的数据转送函数中也可以包括用于转换数据格式的函数。
〔字节序转换〕
说明在数据转送函数中包括在高字节序(big endian)与低字节序(littleendian)之间转换的转换函数的实施方式。
图14示出了:在图8所示的数据处理中,在将结点63的处理Y从运算装置A切换至运算装置B而生成图13所示的图形信息时,基于该情况而生成的程序4。在此,例如,第一运算装置20是包括很多命令的CPU,其中命令以数据按照低字节序排列为前提,第二运算装置30为输入和输出按照高字节序排列的数据的加速器。此时,在图14所示的程序4中,在向运算装置B传送数据的数据转送函数copy_to_B中附加从低字节序向高字节序的数据转换功能,在从运算装置B传送数据的数据转送函数copy_from_B中附加从高字节序向低字节序的数据转换功能。
转换字节序的功能的安装方法为任意方法。例如,在第一运算装置20为CPU时,可以通过软件安装转换字节序的功能,在第二运算装置30为加速器时,可以通过附带的硬件安装转换字节序的功能。
图18是表示使用附加了数据转换功能的数据转送函数的程序的一个例子的说明图。与图14的不同点在于,在第十七行追加有作为LittleEndianToBigEndian函数的、从低字节序向高字节序的数据转换功能,在第二十一行追加有作为BigEndianToLittleEndian函数的、从高字节序向低字节序的数据转换功能。如图18所例示那样,这些函数可以定义为与复制函数copy_to_B和copy_from_B不同的函数,也可以规定为复制函数copy_to_B和copy_from_B的内部功能。在运算装置多而转换的组合变多的情况下,通过将数据转换定义为由CPU等特定的通用运算装置执行的其它函数,选择的自由度变大,另外,能够抑制数据转送函数数据库的大小增加。另一方面,在通过安装在加速器侧的硬件来执行数据转换的情况下,可以安装为内置在复制函数copy_to_B、copy_from_B和处理执行函数start_B_funcY中的功能。
针对包括3个以上的运算装置的目标设备也同样能够进行扩展。向某个运算装置转送数据的数据转送函数中附加字节序转换功能是前一个执行处理的运算装置的输出数据的字节序与该运算装置的输入数据的字节序不同的情况。
〔定点数/浮点数,单精度/双精度〕
以上的说明也同样适用于在数据转送函数的转送前后的运算装置之间不是字节序那样的数据格式不同而是定点数还是浮点数或者是单精度还是双精度等的位精度那样的数据格式不同的情况。从定点数向浮点数的数据格式转换、从浮点数向定点数的数据格式转换,或者从单精度向双精度的数据格式转换、从双精度向单精度的数据格式转换能够适当地作为附加功能而追加至数据转送函数。在此,单精度和双精度不限于由1个字节表现的数值或由2个字节表现的数值,针对由3个字节以上的字节表现的数据也同样能够进行扩展。另外,不限于以字节为单位的数据,可以变为任意位长的数据。
〔数据数组转换〕
图19是用于示意性说明数据转送函数附带的数据数组转换功能的一个例子的说明图。在为了配合运算装置的分配而需要的数据转送函数附带的数据格式转换中可以包含适于运算装置的数据数组的转换。例如,在一个第一运算装置20为一种通用处理器即CPU,且第二运算装置30为采用SIMD(Single Instruction Multiple Data:单指令多数据)型的并行处理器结构的加速器的情况下,进行数据数组的转换。第一运算装置20的输入输出数据适用如图19的下侧所示那样以按照地址依次访问作为前提的数据数组,另一方面,在SIMD型并行处理器的情况下,如图19的上侧所示那样,成为适于并行动作的处理器部件PE(Processor Element)并行地访问数据的数据数组为好。因此,在基于第一运算装置20的处理之后紧接着执行第二运算装置30的处理时,进行从图19的下方向上方的数据数组转换,针对第二运算装置30的处理的结果,进行从图19的上方向下方的数据数组转换,并返回基于第一运算装置20的处理。
这样的数据数组的转换可以与上述的字节序等的数据格式转换组合进行。
如上所述,通过在数据转送函数中适当地附加数据格式转换和数据数组转换的功能,即使在数据格式不同的情况下,也能够容易地应对运算装置的切换。即,在不同种类的运算装置间数据格式和数据数组不同的情况下,以在切换用于执行处理的运算装置时还包括转换数据格式和数据数组的方式进行编程,从而容易针对各个结点切换用于执行处理的运算装置,因此能够提高设计的生产率。
以上,基于实施方式具体地说明了本发明人进行的发明,但是本发明不限于此,当然能够在不脱离其宗旨的范围内进行各种变更。
例如,若目标设备能够以相互不同的多个方式执行同一处理,则能够将目标设备作为多个不同的运算装置,因此目标设备的结构可以是不具有物理上明确分离的多个运算装置那样的结构。

Claims (20)

1.一种程序开发支援装置,生成通过在具有多个运算装置的目标设备上动作来进行数据处理的程序,其特征在于,
具备显示装置、输入装置和计算机,并且具有作为所述计算机的功能而安装的图形用户界面部、图形信息保存部、程序生成部、处理执行函数数据库和数据转送函数数据库,
所述图形用户界面部将由所述目标设备执行的所述数据处理的图形信息作为图形而显示在所述显示装置上,所述图形将所述数据处理所包含的多个处理中的各个处理作为结点且将数据的流向作为有向连接线而成,
所述图形信息保存部保存所述图形信息,
所述处理执行函数数据库针对所述多个运算装置中的能够执行所述处理的各个运算装置,保存用于使该运算装置执行所述处理的处理执行函数,
所述数据转送函数数据库保存用于使所述处理执行函数由对应的运算装置执行的数据转送函数,
所述程序生成部基于所述图形信息而从所述处理执行函数数据库读取适当的处理执行函数,且从所述数据转送函数数据库读取适当的数据转送函数,来生成所述程序,
所述多个处理中的第一处理能够由所述多个运算装置中的种类相互不同的第一运算装置和第二运算装置中的任一个运算装置执行,
所述处理执行函数数据库保存用于使所述第一运算装置执行所述第一处理的第一处理执行函数和用于使所述第二运算装置执行所述第一处理的第二处理执行函数,
所述数据转送函数数据库保存第一数据转送函数和第二数据转送函数中的至少一方,其中,所述第一数据转送函数用于使所述第一运算装置执行所述第一处理执行函数,所述第二数据转送函数用于使所述第二运算装置执行所述第二处理执行函数,
在所述数据处理中包含所述第一处理时,所述图形用户界面部能够在所述显示装置显示在与所述第一处理对应的结点能够通过所述第一运算装置或所述第二运算装置执行所述第一处理,且能够利用所述输入装置来选择通过所述第一运算装置和所述第二运算装置中的哪个运算装置来执行所述第一处理,
所述程序生成部与利用所述输入装置而被选择的运算装置对应地从所述处理执行函数数据库选择性地读取所述第一处理执行函数或所述第二处理执行函数,且从所述数据转送函数数据库选择性地读取所述第一数据转送函数或所述第二数据转送函数,来生成所述程序。
2.根据权利要求1所述的程序开发支援装置,其特征在于,
所述第一处理还能够由所述多个运算装置中的与所述第一运算装置和所述第二运算装置种类不同的第三运算装置执行,
所述处理执行函数数据库还保存用于使所述第三运算装置执行所述第一处理的第三处理执行函数,
所述数据转送函数数据库保存用于使所述第三运算装置执行所述第三处理执行函数的第三数据转送函数,
在所述数据处理中包含所述第一处理时,所述图形用户界面部在所述显示装置显示在与所述第一处理对应的结点能够通过所述第一运算装置、所述第二运算装置或所述第三运算装置来执行所述第一处理,且能够利用所述输入装置来选择通过所述第一运算装置、所述第二运算装置和所述第三运算装置中的哪个运算装置来执行所述第一处理,
所述程序生成部与利用所述输入装置而被选择的运算装置对应地从所述处理执行函数数据库选择性地读取所述第一处理执行函数、所述第二处理执行函数或所述第三处理执行函数,且从所述数据转送函数数据库选择性地读取所述第一数据转送函数、所述第二数据转送函数或所述第三数据转送函数,来生成所述程序。
3.根据权利要求1所述的程序开发支援装置,其特征在于,
所述第一运算装置为通用处理器,所述第二运算装置为加速器,
所述数据处理所包含的所有处理能够由所述第一运算装置执行,所述数据处理所包含的一部分处理还能够由所述第二运算装置执行,
所述处理执行函数数据库保存用于使所述第一运算装置执行所述所有处理中的各个处理的第一处理执行函数组和用于使所述第二运算装置执行所述一部分处理的第二处理执行函数组,
所述数据转送函数数据库针对所述第二处理执行函数组所包含的各个处理执行函数而保存输入数据转送函数和输出数据转送函数,所述输入数据转送函数为了使所述第二运算装置执行该处理执行函数而从所述第一运算装置向所述第二运算装置转送该处理执行函数的输入数据,所述输出数据转送函数将所述第二运算装置执行该处理执行函数而得到的结果转送至所述第一运算装置,
所述图形用户界面部在初始阶段显示为通过所述第一运算装置执行所述数据处理所包含的所有处理,
所述程序生成部在初始阶段从所述处理执行函数数据库优先读取所述第一处理执行函数组,来生成所述程序,
所述图形用户界面部能够在所述显示装置显示在与所述一部分处理对应的结点能够通过所述第一运算装置或所述第二运算装置执行所述一部分处理,且能够利用所述输入装置来选择通过所述第一运算装置和所述第二运算装置中的哪个运算装置来执行所述一部分处理,
在关于某个结点而利用所述输入装置所选择的运算装置为所述第二运算装置时,所述程序生成部从所述处理执行函数数据库且从所述第二处理执行函数组读取对应的处理执行函数,且从所述数据转送函数数据库读取对应的输入数据转送函数和输出数据转送函数,来更新所述程序。
4.根据权利要求3所述的程序开发支援装置,其特征在于,
所述输入装置为鼠标,
在利用所述鼠标的光标选择的结点为与所述一部分处理对应的结点时,所述图形用户界面部在所述显示装置中将能够通过所述第一运算装置或所述第二运算装置执行所述一部分处理的情况显示为上下文菜单,且能够利用所述鼠标的光标来选择使所述第一运算装置和所述第二运算装置中的哪个运算装置来执行所述一部分处理。
5.根据权利要求3所述的程序开发支援装置,其特征在于,
所述输入装置为鼠标,
在利用所述鼠标选择的结点为与所述一部分处理对应的结点时,所述图形用户界面部将用于执行与所述结点对应的处理的运算装置从所述第一运算装置切换至所述第二运算装置,在再次选择该结点时,将用于执行与所述结点对应的处理的运算装置从所述第一运算装置切换至所述第二运算装置。
6.根据权利要求5所述的程序开发支援装置,其特征在于,通过所述鼠标的双击来选择结点。
7.根据权利要求5所述的程序开发支援装置,其特征在于,
所述一部分处理中的再一部分处理还能够由其它运算装置执行,
在利用所述鼠标选择的结点为与所述一部分处理所包括的所述再一部分处理对应的结点时,所述图形用户界面部在所述第一运算装置、所述第二运算装置和所述其它运算装置之间,按照规定的顺序依次切换用于执行与所述结点对应的处理的运算装置。
8.根据权利要求1所述的程序开发支援装置,其特征在于,
具有第一功能和第二功能,
在所述第一功能中,在所述第一处理执行函数的输入数据的格式与在所述第一处理执行函数的紧前由和所述第一运算装置不同的运算装置执行的处理执行函数的输出数据的格式不同时,所述第一数据转送函数从所述不同的运算装置转送所述输入数据,并且将所述输出数据的格式转换为所述输入数据的格式,
在所述第二功能中,在所述第二处理执行函数的输入数据的格式与在所述第二处理执行函数的紧前由和所述第二运算装置不同的运算装置执行的处理执行函数的输出数据的格式不同时,所述第二数据转送函数从所述不同的运算装置转送所述输入数据,并且将所述输出数据的格式转换为所述输入数据的格式。
9.根据权利要求8所述的程序开发支援装置,其特征在于,所述格式根据是高字节序还是低字节序、是定点数还是浮点数这样的位精度来规定。
10.根据权利要求1所述的程序开发支援装置,其特征在于,
具有第一功能和第二功能,
在所述第一功能中,在所述第一处理执行函数的输入数据的数据数组与在所述第一处理执行函数的紧前由和所述第一运算装置不同的运算装置执行的处理执行函数的输出数据的数据数组不同时,所述第一数据转送函数从所述不同的运算装置转送所述输入数据,并且将所述输出数据的数据数组转换为所述输入数据的数据数组,
在所述第二功能中,在所述第二处理执行函数的输入数据的数据数组与在所述第二处理执行函数的紧前由和所述第二运算装置不同的运算装置执行的处理执行函数的输出数据的数据数组不同时,所述第二数据转送函数从所述不同的运算装置转送所述输入数据,并且将所述输出数据的数据数组转换为所述输入数据的数据数组。
11.一种程序开发支援软件,通过在连接有显示装置和输入装置的计算机上动作,生成程序,该程序通过在具有多个运算装置的目标设备上动作来进行数据处理,其特征在于,
具有图形用户界面部、图形信息保存部、程序生成部、处理执行函数数据库和数据转送函数数据库,
所述图形用户界面部将由所述目标设备执行的所述数据处理的图形信息作为图形而显示在所述显示装置上,所述图形将所述数据处理所包含的多个处理中的各个处理作为结点且将数据的流向作为有向连接线而成,
所述图形信息保存部保存所述图形信息,
所述处理执行函数数据库针对所述多个运算装置中的能够执行所述处理的各个运算装置,保存用于使该运算装置执行所述处理的处理执行函数,
所述数据转送函数数据库保存用于使所述处理执行函数由对应的运算装置执行的数据转送函数,
所述程序生成部基于所述图形信息而从所述处理执行函数数据库读取适当的处理执行函数,且从所述数据转送函数数据库读取适当的数据转送函数,来生成所述程序,
所述多个处理中的第一处理能够由所述多个运算装置中的种类相互不同的第一运算装置和第二运算装置中的任一个运算装置执行,
所述处理执行函数数据库保存用于使所述第一运算装置执行所述第一处理的第一处理执行函数和用于使所述第二运算装置执行所述第一处理的第二处理执行函数,
所述数据转送函数数据库保存第一数据转送函数和第二数据转送函数中的至少一方,其中,所述第一数据转送函数用于使所述第一运算装置执行所述第一处理执行函数,所述第二数据转送函数用于使所述第二运算装置执行所述第二处理执行函数,
在所述数据处理中包含所述第一处理时,所述图形用户界面部能够在所述显示装置显示在与所述第一处理对应的结点能够通过所述第一运算装置或所述第二运算装置执行所述第一处理,且能够利用所述输入装置来选择通过所述第一运算装置和所述第二运算装置中的哪个运算装置来执行所述第一处理,
所述程序生成部与利用所述输入装置而被选择的运算装置对应地从所述处理执行函数数据库选择性地读取所述第一处理执行函数或所述第二处理执行函数,且从所述数据转送函数数据库选择性地读取所述第一数据转送函数或所述第二数据转送函数,来生成所述程序。
12.根据权利要求11所述的程序开发支援软件,其特征在于,
所述第一处理还能够由所述多个运算装置中的与所述第一运算装置和所述第二运算装置种类不同的第三运算装置执行,
所述处理执行函数数据库还保存用于使所述第三运算装置执行所述第一处理的第三处理执行函数,
所述数据转送函数数据库保存用于使所述第三运算装置执行所述第三处理执行函数的第三数据转送函数,
在所述数据处理中包含所述第一处理时,所述图形用户界面部在所述显示装置显示在与所述第一处理对应的结点能够通过所述第一运算装置、所述第二运算装置或所述第三运算装置来执行所述第一处理,且能够利用所述输入装置来选择通过所述第一运算装置、所述第二运算装置和所述第三运算装置中的哪个运算装置来执行所述第一处理,
所述程序生成部与利用所述输入装置而被选择的运算装置对应地从所述处理执行函数数据库选择性地读取所述第一处理执行函数、所述第二处理执行函数或所述第三处理执行函数,且从所述数据转送函数数据库选择性地读取所述第一数据转送函数、所述第二数据转送函数或所述第三数据转送函数,来生成所述程序。
13.根据权利要求11所述的程序开发支援软件,其特征在于,
所述第一运算装置为通用处理器,所述第二运算装置为加速器,
所述数据处理所包含的所有处理能够由所述第一运算装置执行,所述数据处理所包含的一部分处理还能够由所述第二运算装置执行,
所述处理执行函数数据库保存用于使所述第一运算装置执行所述所有处理中的各个处理的第一处理执行函数组和用于使所述第二运算装置执行所述一部分处理的第二处理执行函数组,
所述数据转送函数数据库针对所述第二处理执行函数组所包含的各个处理执行函数而保存输入数据转送函数和输出数据转送函数,所述输入数据转送函数为了使所述第二运算装置执行该处理执行函数而从所述第一运算装置向所述第二运算装置转送该处理执行函数的输入数据,所述输出数据转送函数将所述第二运算装置执行该处理执行函数而得到的结果转送至所述第一运算装置,
所述图形用户界面部在初始阶段显示为通过所述第一运算装置执行所述数据处理所包含的所有处理,
所述程序生成部在初始阶段从所述处理执行函数数据库优先读取所述第一处理执行函数组,来生成所述程序,
所述图形用户界面部能够在所述显示装置显示在与所述一部分处理对应的结点能够通过所述第一运算装置或所述第二运算装置执行所述一部分处理,且能够利用所述输入装置来选择通过所述第一运算装置和所述第二运算装置中的哪个运算装置来执行所述一部分处理,
在关于某个结点而利用所述输入装置所选择的运算装置为所述第二运算装置时,所述程序生成部从所述处理执行函数数据库且从所述第二处理执行函数组读取对应的处理执行函数,且从所述数据转送函数数据库读取对应的输入数据转送函数和输出数据转送函数,来更新所述程序。
14.根据权利要求13所述的程序开发支援软件,其特征在于,
所述输入装置为鼠标,
在利用所述鼠标的光标选择的结点为与所述一部分处理对应的结点时,所述图形用户界面部在所述显示装置中将能够通过所述第一运算装置或所述第二运算装置执行所述一部分处理的情况显示为上下文菜单,且能够利用所述鼠标的光标来选择使所述第一运算装置和所述第二运算装置中的哪个运算装置来执行所述一部分处理。
15.根据权利要求13所述的程序开发支援软件,其特征在于,
所述输入装置为鼠标,
在利用所述鼠标选择的结点为与所述一部分处理对应的结点时,所述图形用户界面部将用于执行与所述结点对应的处理的运算装置从所述第一运算装置切换至所述第二运算装置,在再次选择该结点时,将用于执行与所述结点对应的处理的运算装置从所述第一运算装置切换至所述第二运算装置。
16.根据权利要求15所述的程序开发支援软件,其特征在于,通过所述鼠标的双击来选择结点。
17.根据权利要求15所述的程序开发支援软件,其特征在于,
所述一部分处理中的再一部分处理还能够由其它运算装置执行,
在利用所述鼠标选择的结点为与所述一部分处理所包括的所述再一部分处理对应的结点时,所述图形用户界面部在所述第一运算装置、所述第二运算装置和所述其它运算装置之间,按照规定的顺序依次切换用于执行与所述结点对应的处理的运算装置。
18.根据权利要求11所述的程序开发支援软件,其特征在于,
具有第一功能和第二功能,
在所述第一功能中,在所述第一处理执行函数的输入数据的格式与在所述第一处理执行函数的紧前由和所述第一运算装置不同的运算装置执行的处理执行函数的输出数据的格式不同时,所述第一数据转送函数从所述不同的运算装置转送所述输入数据,并且将所述输出数据的格式转换为所述输入数据的格式,
在所述第二功能中,在所述第二处理执行函数的输入数据的格式与在所述第二处理执行函数的紧前由和所述第二运算装置不同的运算装置执行的处理执行函数的输出数据的格式不同时,所述第二数据转送函数从所述不同的运算装置转送所述输入数据,并且将所述输出数据的格式转换为所述输入数据的格式。
19.根据权利要求18所述的程序开发支援软件,其特征在于,所述格式根据是高字节序还是低字节序、是定点数还是浮点数这样的位精度来规定。
20.根据权利要求11所述的程序开发支援软件,其特征在于,
具有第一功能和第二功能,
在所述第一功能中,在所述第一处理执行函数的输入数据的数据数组与在所述第一处理执行函数的紧前由和所述第一运算装置不同的运算装置执行的处理执行函数的输出数据的数据数组不同时,所述第一数据转送函数从所述不同的运算装置转送所述输入数据,并且将所述输出数据的数据数组转换为所述输入数据的数据数组,
在所述第二功能中,在所述第二处理执行函数的输入数据的数据数组与在所述第二处理执行函数的紧前由和所述第二运算装置不同的运算装置执行的处理执行函数的输出数据的数据数组不同时,所述第二数据转送函数从所述不同的运算装置转送所述输入数据,并且将所述输出数据的数据数组转换为所述输入数据的数据数组。
CN201610839473.XA 2015-09-24 2016-09-21 程序开发支援装置以及程序开发支援软件 Active CN106557312B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-186569 2015-09-24
JP2015186569A JP6489985B2 (ja) 2015-09-24 2015-09-24 プログラム開発支援装置およびプログラム開発支援ソフトウェア

Publications (2)

Publication Number Publication Date
CN106557312A true CN106557312A (zh) 2017-04-05
CN106557312B CN106557312B (zh) 2021-07-09

Family

ID=58407292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610839473.XA Active CN106557312B (zh) 2015-09-24 2016-09-21 程序开发支援装置以及程序开发支援软件

Country Status (3)

Country Link
US (1) US10310823B2 (zh)
JP (1) JP6489985B2 (zh)
CN (1) CN106557312B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729098B (zh) * 2017-09-25 2021-06-29 北京小米移动软件有限公司 用户界面显示方法及装置
KR20200136679A (ko) * 2019-05-28 2020-12-08 삼성에스디에스 주식회사 이종 언어 함수를 포함하는 워크플로우 실행 방법 및 그 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478375B1 (en) * 2004-04-23 2009-01-13 Computer Associates Think, Inc. Directed acyclic graph (DAG) exploration through separation of concerns
CN101366033A (zh) * 2005-12-08 2009-02-11 霍夫曼-拉罗奇有限公司 确定给药信息的系统和方法
CN101676868A (zh) * 2008-09-19 2010-03-24 株式会社理光 图像处理装置和图像处理方法
CN101080698B (zh) * 2004-12-20 2010-08-11 辉达公司 图形处理器,图形处理系统及产生图像的方法
CN102959509A (zh) * 2010-08-06 2013-03-06 三菱重工业株式会社 程序生成装置以及图像控制系统
JP2015075876A (ja) * 2013-10-08 2015-04-20 キヤノン株式会社 設計支援装置、設計支援方法、及びプログラム
US9116738B2 (en) * 2012-11-13 2015-08-25 International Business Machines Corporation Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317734A (en) * 1989-08-29 1994-05-31 North American Philips Corporation Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
US6378066B1 (en) * 1999-02-04 2002-04-23 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
JP4514465B2 (ja) 2003-02-13 2010-07-28 株式会社ミツトヨ 制御プログラム組立てシステム及びプログラム
JP5016807B2 (ja) * 2005-10-07 2012-09-05 株式会社日立ハイテクノロジーズ データ処理システム
JP2007213417A (ja) * 2006-02-10 2007-08-23 Canon Inc プログラムコード生成装置、方法、及びコンピュータプログラム
JP2008198143A (ja) * 2007-02-15 2008-08-28 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法
JP4886838B2 (ja) 2009-10-30 2012-02-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 並列化方法、システム、及びプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478375B1 (en) * 2004-04-23 2009-01-13 Computer Associates Think, Inc. Directed acyclic graph (DAG) exploration through separation of concerns
CN101080698B (zh) * 2004-12-20 2010-08-11 辉达公司 图形处理器,图形处理系统及产生图像的方法
CN101366033A (zh) * 2005-12-08 2009-02-11 霍夫曼-拉罗奇有限公司 确定给药信息的系统和方法
CN101676868A (zh) * 2008-09-19 2010-03-24 株式会社理光 图像处理装置和图像处理方法
CN102959509A (zh) * 2010-08-06 2013-03-06 三菱重工业株式会社 程序生成装置以及图像控制系统
US9116738B2 (en) * 2012-11-13 2015-08-25 International Business Machines Corporation Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system
JP2015075876A (ja) * 2013-10-08 2015-04-20 キヤノン株式会社 設計支援装置、設計支援方法、及びプログラム

Also Published As

Publication number Publication date
US20170090882A1 (en) 2017-03-30
US10310823B2 (en) 2019-06-04
CN106557312B (zh) 2021-07-09
JP2017062554A (ja) 2017-03-30
JP6489985B2 (ja) 2019-03-27

Similar Documents

Publication Publication Date Title
CN106462393B (zh) 用于统一应用编程接口和模型的系统和方法
CN103547998B (zh) 用于编译正则表达式的方法和设备
CN103430148B (zh) 用于元件利用的状态分组
JP2020074099A (ja) 処理装置と処理方法
WO2020062086A1 (zh) 选择处理器的方法和装置
KR20140102290A (ko) 상태 기계에서의 검출을 위한 방법들 및 시스템들
WO2014190315A1 (en) Graphics processing using dynamic resources
JP6503072B2 (ja) 半導体システムおよび計算方法
WO2020221170A1 (zh) 分形计算装置、方法、集成电路及板卡
CN110036375A (zh) 无序高速缓存返回
CN112070202B (zh) 一种融合图的生成方法、生成装置和计算机可读存储介质
CN106557312A (zh) 程序开发支援装置以及程序开发支援软件
US20190354380A1 (en) Systems and devices for accessing a state machine
US11176296B1 (en) Unified data model for heterogeneous integrated circuit
WO2022228224A1 (zh) 量子计算任务执行方法、装置及量子计算机操作系统
KR102471553B1 (ko) 컴퓨팅 기기에 의해 수행되는 방법, 장치, 기기 및 컴퓨터 판독가능 저장 매체
US20210294579A1 (en) Graphics pipeline optimizations
US9552302B2 (en) Data processing apparatus, data processing method and program recording medium
CN112766475A (zh) 处理部件及人工智能处理器
WO2023103612A1 (zh) 量子程序的执行方法和量子程序的编译方法
CN116167447B (zh) 量子电路处理方法、装置及电子设备
US7522164B2 (en) Using self-adjustable three-dimensional matrix to simplify the construction of a complex 3D scene
US20230401480A1 (en) Hardware acceleration of machine learning designs
Lewin Introduction to associative processors
Ye et al. Design of Parametric CAD System for Ceramic Products Based on Virtual Reality Technology

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