CN101706737B - 软硬件协同函数库的构造方法 - Google Patents
软硬件协同函数库的构造方法 Download PDFInfo
- Publication number
- CN101706737B CN101706737B CN200910226667A CN200910226667A CN101706737B CN 101706737 B CN101706737 B CN 101706737B CN 200910226667 A CN200910226667 A CN 200910226667A CN 200910226667 A CN200910226667 A CN 200910226667A CN 101706737 B CN101706737 B CN 101706737B
- Authority
- CN
- China
- Prior art keywords
- hardware
- function
- software
- synergic
- functions
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种软硬件协同函数库的构造方法,其特征在于,包括以下步骤:首先为软硬件协同函数声明一个对外接口;软硬件协同函数是对同一功能的不同方式实现:软件函数的实现是以软件编码方式实现,硬件的实现则是由硬件接口代码和函数功能实现的硬件配置文件构成;将软件函数和硬件接口代码封装在一起,并与硬件实现方式的配置文件一起构成软硬件协同函数,由多个软硬件协同函数,形成一个抽象的软硬件协同函数库;形成的函数库可以在其他程序中调用。采用该方法构造的软硬件系统函数库便于软件人员开发嵌入式系统时忽略软硬件函数的差异、提高编程效率。
Description
技术领域
本发明属于计算机软件技术领域,涉及一种软硬件协同函数库的构造方法。
背景技术
根据划分层次和粒度,有关动态软硬件划分的研究主要分成两种思路。
第一种思路由乔治等人在2003年设计自动化会议上提出,并在其后期工作中不断发展,主要是利用专门高速缓冲存储器记录软件程序中循环执行的频度,选择执行频度最高的循环,将其机器代码反汇编后提取数据流图,在额外的微处理器上运行一个在线综合程序将数据流图综合为逻辑电路,并配置到可编程器件上。这样设计人员无需考虑软硬件划分,可以直接设计纯软件实现的应用系统,而由动态软硬件划分来决定实际的划分方案。因这种思路从底层入手,可以称之为指令级动态软硬件划分方法。
另一种思路从高层着眼,把配置到可编程器件的硬件电路看作一种硬件进(线)程,通过构建支持硬件进(线)程的操作系统,实现软硬件进(线)程的相互迁移和切换。因此,可以称之为进(线)程级动态软硬件划分。面向部分可重构FPGA的在线综合(On-Line Synthesis for Partially Reconfigurable FPGAs.)详细讨论了面向可重构系统的操作系统中硬件进程调度的在线布局问题;设计了一个称为BORPH的操作系统,利用Unix进程来表示硬件任务,并通过扩展Unix系统进程服务接口实现对硬件任务的支持.国内复旦大学的周博,邱卫东,彭澄廉研究了利用软硬件多任务模型来降低软硬件进程迁移开销,并通过扩展μCOS-II嵌入式操作系统实现了一个原型系统。
指令级和进(线)程级动态软硬件划各有优劣。
划分方法的不足:
指令级动态软硬件划分方法:
由于需要额外的专用微处理器进行在线反汇编、综合和布局布线,硬件开销比较大。
另一方面指令级动态软硬件划分粒度目前局限在基本块内,结构也局限于单循环结构,性能提升效果有限。
另外,虽然设计人员只需提供软件实现方案,而把软硬件划分和硬件综合交给专门软硬件执行,但这样未能利用已有的硬件设计资源,这在目前第三方IP(IntellectualProperty)核十分丰富的情况下,显得有些浪费。进(线)程级动态软硬件划分:
相对指令级动态软硬件划分而言,进(线)程调度、通信、同步基本由软件完成,时间开销较大。
虽然在一些研究中提出了支持可重构计算操作系统的专门硬件,但主要负责配置信息和可重配置资源管理,进程调度和切换还是由软件完成。
另外,目前的进(线)程级动态软硬件划分研究中对软硬件透明编程模型还关注不够,软件和硬件进(线)程对设计人员是可见的,程序员创建一个软件或硬件进(线)程的同时,实际已暗示了相应功能的软硬件划分,虽然有可能增加专门代码和电路来进行软硬件进(线)程迁移,但需要同时修改操作系统和底层硬件以提供支持,并非一个理想的方案。
发明内容
本发明的所要解决的技术问题是提供一种软硬件协同函数库(结构如图1所示)的构造方法,采用该方法构造的软硬件协同函数库,便于程序员开发软件时忽略软硬件函数的差异、提高编程效率,提高程序的整体执行效率。
为解决上述技术问题,本发明所采用的技术方案为:
一种软硬件协同函数库的构造方法,其特征在于,
所述的软硬件协同函数库包括多个软硬件协同函数,每一个软硬件协同函数包括头文件、具体函数实现文件和硬件配置文件;
在具体函数实现文件中构造每一个具体函数的软件函数实现和硬件接口代码;在软件函数实现和硬件接口代码中设置检测硬件函数执行时间或软件函数执行时间的代码;
在硬件配置文件具有通过硬件实现具体函数的硬件描述语言代码;
在所述的头文件中声明多个具体函数的名称和参数形式;为程序调用具体的软件函数实现和硬件接口代码提供统一的函数接口;
调用软硬件协同函数时,在新建的程序文件中添加所需调用函数的头文件;在新建的程序文件中采用函数名调用的方式,调用头文件提供的统一函数接口;在程序编译时采用动态编译方式,在动态编译过程中根据划分算法选择该函数是调用软件函数实现或硬件接口代码。
检测硬件函数执行时间或软件函数执行时间为使用系统运行环境导出函数来实现。
说明:所述的划分算法可以采用任意的算法来实现,只要能实现选择是软件函数实现或硬件接口代码的功能即可。比如,有一种算法,根据当前硬件是否空闲来决定,当硬件空闲时,选择硬件实现即调用硬件接口代码。
发明的有益效果:
与传统的嵌入式系统设计方法相比,指令级动态软硬件划分方法主要优点在于完全不用设计人员干预,编译器、操作系统都可以不变,软硬件划分完全由专门硬件完成,对于设计人员而言开发效率很高。但由于需要额外的专用微处理器进行在线反汇编、综合和布局布线,硬件开销比较大。另一方面指令级动态软硬件划分粒度目前局限在基本块内,结构也局限于单循环结构,性能提升效果有限。另外,虽然设计人员只需提供软件实现方案,而把软硬件划分和硬件综合交给专门软硬件执行,但这样未能利用已有的硬件设计资源,这在目前第三方IP核十分丰富的情况下,显得有些浪费。
进(线)程级动态软硬件划分优点主要在于把软件和硬件任务都当作进程或线程,由操作系统统一管理,可以支持现有硬件设计资源,便于集成开发。动态软硬件划分可转换为软硬件进(线)程动态调度问题,利用和扩展操作系统进(线)程管理功能而实现。同时,软硬件进(线)程通信、同步也可利用操作系统提供的相应机制实现,较为灵活方便。但相对指令级动态软硬件划分而言,进(线)程调度、通信、同步基本由软件完成,时间开销较大。虽然在一些研究中提出了支持可重构计算操作系统的专门硬件,但主要负责配置信息和可重配置资源管理,进程调度和切换还是由软件完成。
软硬件协同函数库的设计刚好可以弥补两者的缺点,同时兼顾了两者的优点,它不需要额外的专用微处理器进行在线反汇编、综合和布局布线,充分利用了现有的IP核。由于它提供了接口函数,因此可以节省时间开销。
对于使用者而言,因为已经提供好高复用函数的硬件执行方式,并提供了硬件实现方式。他们可以用软件实现的方式进行嵌入式系统设计,而不必需要对硬件语言了解。这样就大大简化了程序员的开发流程。
传统的设计人员,在进行系统设计时不仅要懂得软硬件语言,而且还需进行系统的软硬件划分,本发明提出的软硬件协同函数库的思想,可以为用户使用划分算法进行自动划分提供可能,因此这样可以大大的缩减系统设计时间。
软硬件协同函数库的思想,使大家可以充分利用现有的硬件函数和软件函数接口资源,仅需添加接口文件和将其封装到一起即可,相对开发函数库的人员而言过程是比较简单的,因为IP核的供应商实际上也是要为IP核提供接口的。
本发明提供了一种软硬件协同函数库的构造方法,首先为软硬件协同函数声明一个对外接口(头文件中的函数声明);软硬件协同函数是对同一功能的不同方式实现:软件函数的实现是以软件编码方式实现,硬件的实现则是由硬件接口代码和函数功能实现的硬件配置文件构成;将软件函数和硬件接口代码封装在一起,并与硬件实现方式的配置文件一起构成软硬件协同函数,由多个软硬件协同函数,形成一个抽象的软硬件协同函数库;形成的函数库可以在其他程序中调用。采用该方法构造的软硬件系统函数库便于软件人员开发嵌入式系统时忽略软硬件函数的差异、提高编程效率。
附图说明
图1为软硬件协同函数库结构示意图;
图2为硬件接口程序开发流程;
图3仅使用寄存器访问的设备通过IPIF连接OPB总线
具体实施方式
以下结合附图对本发明作进一步说明。
所述的软硬件协同函数库设计的步骤为:
首先为软硬件协同函数声明一个对外接口(头文件中的函数声明);头文件如何声明在具体例子中有体现。
1.以软件编程方式实现函数的软件部分,该部分为一般软件描述方式。
2.硬件接口代码的实现如图2。硬件接口的标识是在软件接口标识前面增加了hw前缀,区别协同函数软硬件的不同实现方式。
3.1从可重构资源管理器获取硬件模块端地址。利用系统函数mmap函数进行物理地址(即获取到的地址)映射成虚拟地址。
3.2函数库包含一个init函数,该函数将在main函数调用前得到执行,它完成两件事,一件是打开物理内存设备文件,为地址映射提供文件描述符参数;一件是调用dl_get_cfl_path函数获得当前软硬协同函数库的绝对路径,该函数也是动态链接器为编程模型提供的接口,程序中值得注意的地方在于刚进入函数时调用三个系统导出函数,可以自动测量和保存该硬件函数的执行时间,对于软件函数也有类似代码。
3.3其中必须必须声明一个执行参数传递和计算的函数,它获得虚拟地址后就能与硬件通信。该函数执行的都是一些对寄存器的读写工作(寄存器读写对硬件开发人员是熟知的过程),为了实现运行时应用程序划分改变,协同函数的指令在编译时不能直接编译进应用程序的主文件,所以将软硬件协同函数库编译成共享库文件,即声明在头文件中。
3.4可重构资源管理器负责管理可重构资源,调度硬件加速器的配置与执行,它是操作系统的一部分,作为内核驱动开发。我们仅为它提供编程接口。(只提供接口)
3.将软件实现代码和硬件接口代码封装。封装:封装的内容为软件实现代码和硬件接口代码。封装打包具体实现为:采用编译命令对所写好的.c文件(即3des.c)进行编译(在linux系统中,编译命令为gcc-fPIC-c*.c。Gcc-shared-wl,-soname,lib3des.so.l-olib3des.so.1.0*.o,在其他系统中可以采用其他C的交叉编译器进行编译).通过编译以后整个程序就被封装打包好,可供用户调用。用户可以通过封装好的统一接口进行调用硬件接口函数,通过硬件配置文件,实现该功能的硬件部分。
4.硬件实现的配置文件是采用硬件描述语言实现,通过硬件开发工具进行设置,具体实现由所需实现功能相关。
5.将软件函数和硬件接口代码封装在一起,并与硬件实现方式的配置文件一起构成软硬件协同函数,这样即完成了一个软硬件协同函数的建立。要建立成库,则需多实现几个软硬件协同函数即可。
所述的软硬件协同函数可以采用包含头文件方式被其他程序调用,调用的步骤为:
1.将软硬件协同函数库复制到开发工具的根目录下;
2.在新建的程序文件中添加所需调用函数的头文件;
3.在新建的程序文件中采用函数名调用的方式,调用头文件提供的统一函数接口。
4.在程序编译时采用动态编译方式,由程序运行环境依据当前情况选择软件或硬件实现部分。
本发明的提供的软硬件协同函数库的构造方法,包括以下步骤:
首先为软硬件协同函数声明一个对外接口(头文件中的函数声明);软硬件协同函数是对同一功能的不同方式实现:软件函数的实现是以软件编码方式实现,硬件的实现则是由硬件接口代码和函数功能实现的硬件配置文件构成;将软件函数和硬件接口代码封装在一起,并与硬件实现方式的配置文件一起构成软硬件协同函数,由多个软硬件协同函数,形成一个抽象的软硬件协同函数库;形成的函数库可以在其他程序中调用。
定义了一个头文件,在其中声明了软件函数和硬件接口函数提供一个统一的函数调用接口,以便于用户调用。
1)在协同函数的实现部分,硬件接口的标识是在软件接口标识前面增加了hw前缀,区别协同函数软硬件的不同实现方式,以便系统在运行时依据当前运行情况选择软件或硬件实现部分
2)使用系统函数mmap将硬件模块实现部分的物理地址映射为虚拟地址,以便在虚拟地址空间运行的硬件接口部分与硬件模块的具体实现部分通信。
3)使用系统运行环境导出函数统计协同函数软件实现或硬件实现的执行时间,以便为系统选择软件或硬件实现提供决策信息。
4)声明一个执行参数传递和计算的函数用于在获得虚拟地址后就能与硬件通信。
软件实现部分和硬件实现的接口部分打包到同一个共享库中,与硬件实现的配置文件共同组成一个完整的协同函数。由多个软硬件协同函数组成软硬件协同函数库。
实施例1:
本实例中,采用Eclipse开发工具进行设计,如图1所示:软件实体代码和硬件接口代码最后都通过动态链接控制实现。动态链接控制主要是读取动态软硬件划分的决策结果,将应用程序中对抽象函数的调用映射到具体的软件实体代码或硬件接口代码上。动态链接技术在软件设计中早已广泛应用,高级程序设计语言也提供了相应的语法结构,如C语言中的函数指针,C++中的虚函数等。对于不同的操作这里要链接的对象从外部看来无论软件、硬件都体现为函数代码,因为我们对外提供的是一个统一的接口。(每个操作都被看成函数代码,这是C语言程序设计的一个主要思想)
首先给出一段DES的C程序代码(可扩展为其他语言),通过决策机制:软硬件划分算法,决定是采用封装好的硬件函数和接口函数或者是采用.h和.c的软件函数执行。
本发明的操作过程是,任意一台现今主流配置的电脑作为开发工具,Eclipse作为开发工具。用户通过该开发工具进行嵌入式系统的设计,在开发过程中可以调用软硬件协同函数库。
第一步,开启电脑。
第二步,打开Eclipse开发工具。
第三步,将软硬件协同函数库拷贝到开发工具的根目录下,如“C:\Eclipse\”目录下
第三步,新建软件工程。
第四步,添加程序源文件,并调用3des.h。调用的代码为:
#include<3des.h>
第五步,编写软硬件协同函数库测试函数。(测试函数主要是定义我所调用的函数所需要的数据,并调用该函数)
如调用的函数为一个加法函数add(a,b),那么在头文件已经包含的情况下我的测试函数如下:(这是一个标准的C语言程序)
int main()
int c,d,e;
c=4;
d=5;
e=add(c,d);//调用该函数
…..
第六步,进行工程的动态编译(动态编译为软件设计人员都熟知的过程)。
实施例1:
函数实现具体实例:
3DES的实现过程
1.设置头文件:首先为3des函数声明一个对外接口(为简单起见,这里假设函数只包含3des的加密和解密函数),它包含在3des.h文件中,应用程序包含此文件就能利用库中函数实现完成编程;代码如下:
/*3des.h*/----头文件名;
#define ENCRYPT 0
#define DECRYPT 1
typedef enum bool{false,true}bool;
extern bool tri_des_encrypt(char*Out,char*In,long datalen,const char*Key,int keylen);----定义加密函数;
extern bool tri_des_decrypt(char*Out,char*In,long datalen,const char*Key,int keylen);---定义解密函数;
在一个文件【对应具体函数的文件,具体函数如3des】里面,同时包括软件实现和硬件接口代码。
整个函数库就是一个文件。
2.软件函数采用传统的软件方式实现(这里不详述)
3.硬件接口代码的实现:
3.1 int hw_tri_des_encrypt(char*Out,char*In,long datalen,const char*Key,int keylen)函数即为接口函数,关键代码如下:
bool hw_tri_des_encrypt(char*Out,char*In,long datalen,const char*Key,intkeylen)
{
……
TripleDES(true,*datain,k[0],k[1],k[2],dataout);//该处为调用参数传递和计算函数
}
……
return true;
}
3.2函数中包含一个init函数,该函数将在main函数调用前得到执行,它完成两件事,一件是打开物理内存设备文件,将物理地址映射成虚拟地址;一件是调用dl_get_cfl_path函数获得当前软硬协同函数库的绝对路径,该函数也是动态链接器为编程模型提供的接口,在程序中值得注意的地方在于刚进入函数时调用了dl_update_time_front和dl_get_time函数,在函数结尾时调用了dl_hw_update_time函数,这些函数将自动测量和保存该硬件函数的执行时间,对于软件函数也有类似代码.这些函数为系统函数,用以给协同函数库开发人员提供相关信息。(以上三个函数为系统函数可以直接调用)关键代码如下:
static void init()
{
now=&dl_get_time;//保存系统当前时间
upstime=&dl_sw_update_time;//保存软件部分执行时间
uphtime=&dl hw_update_time;//保存硬件部分执行时间
……
base_addr=mmap(0,XPAR_TRIPLEDES_0_HIGHADDR-
XPAR_TRIPLEDES_0_BASEADDR,PROT_READ|PROT_WRITE,MAP_SHARED,fd,XPAR_TRIPLEDES
_0_BASEADDR);//将物理地址映射成虚拟地址
……
return;
}
3.3TripleDES为执行参数传递和计算的函数,它获得虚拟地址后就能与硬件通信。该函数执行的都是一些对寄存器的读写工作,这是因为当前3DES硬件实现与总线接口要通过IPIF如图3(为一个专用名词,如CPU一类的词,它是总线与IP核相连的接口),使用IPIF提供的寄存器通信,这些寄存器的基地址与参数base_addr(在上面程序中提到该参数)对应的物理地址相同。为了实现运行时应用程序划分改变,协同函数的指令在编译时不能直接编译进应用程序的主文件,所以将软硬件协同函数库编译成共享库文件,即声明在3des.h中。该过程使用过硬件开发工具的设计人员熟知,因此不再详述。
3.4可重构资源管理器负责管理可重构资源,调度硬件加速器的配置与执行,是操作系统的一部分,作为内核驱动开发。因此我们为其提供了的编程接口如以下代码所示。(通过该部分提高硬件函数的加速,我们仅提供接口具体实现由硬件设计人员设计)
typedef struct address_range
{
unsigned long base;
unsighed long high;
}address_range;//地址范围
address_range*configure(char*cfl_path,char*
cf_relative_path,address_range*phy_address,address_range*ret_bal);//配置资源
int deconfigure(address_range*phy_address);//释放资源
void clean_config_info();//清除设置
5.利用编译命令对所写好的.c文件包含了软件函数和硬件接口代码(即3des.c)进行编译(在linux系统中编译命令为gcc-fPIC-c*.c
Gcc-shared-wl,-soname,lib3des.so.l-olib3des.so.1.0*.o,在其他系统中可以采用其他C的交叉编译器进行编译)。
6.硬件实现的配置文件采用传统的硬件开发工具如EDK等实现(这里不再详细叙述)
7.将这编译好的文件和硬件配置文件,保存到函数库文件夹即可。
软硬件系统函数库调用实例:该测试程序保存为3destest.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<memory.h>
#include″3des.h″//该处为调用头文件
int main(int argc,char*argv[])
{
.....//前面都是一些函数加密的参数设置
tri_des_encrypt(buf,buf,sizeof(str),key,sizeof(key));//该处为调用协同函数库中加密函数的统一对外接口
.....//这里都是一些函数解密的参数设置
tri_des_decrypt(buf,buf,sizeof(str),key,sizeof(key));//该处为调用协同函数库中解密函数的统一对外接口
……
return 0;
}
调用算法的自然语言描述为:
如果该函数满足硬件实施的条件(具体由划分算法的标准确定)
则采用以下语句调用硬件实现:
hw_tri_des_encrypt(char*Out,char*In,long datalen,const char*Key,intkeylen);
否则,则采用以下语句调用软件函数:
DES(char Out[8],char In[8],const PSubKey pSubKey,bool Type);。
Claims (2)
1.一种软硬件协同函数库的构造方法,其特征在于,
所述的软硬件协同函数库包括多个软硬件协同函数,每一个软硬件协同函数包括头文件、具体函数实现文件和硬件配置文件;
在具体函数实现文件中构造每一个具体函数的软件函数实现和硬件接口代码;在软件函数实现和硬件接口代码中设置检测硬件函数执行时间或软件函数执行时间的代码;
在硬件配置文件中具有通过硬件实现具体函数的硬件描述语言代码;
在所述的头文件中声明多个具体函数的名称和参数形式;为程序调用具体的软件函数实现和硬件接口代码提供统一的函数接口;
调用软硬件协同函数时,在新建的程序文件中添加所需调用函数的头文件;在新建的程序文件中采用函数名调用的方式,调用头文件提供的统一函数接口;在程序编译时采用动态编译方式,在动态编译过程中根据划分算法选择该函数是调用软件函数实现或硬件接口代码。
2.根据权利要求1所述的软硬件协同函数库的构造方法,其特征在于,检测硬件函数执行时间或软件函数执行时间为使用系统运行环境导出函数来实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910226667A CN101706737B (zh) | 2009-12-18 | 2009-12-18 | 软硬件协同函数库的构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910226667A CN101706737B (zh) | 2009-12-18 | 2009-12-18 | 软硬件协同函数库的构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101706737A CN101706737A (zh) | 2010-05-12 |
CN101706737B true CN101706737B (zh) | 2012-10-03 |
Family
ID=42376963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910226667A Expired - Fee Related CN101706737B (zh) | 2009-12-18 | 2009-12-18 | 软硬件协同函数库的构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101706737B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955727A (zh) * | 2011-08-31 | 2013-03-06 | 北京中电华大电子设计有限责任公司 | 一种802.11n无线网卡中固件仿真模型的处理方法 |
CN102523229B (zh) * | 2011-12-23 | 2016-01-20 | 大唐移动通信设备有限公司 | 一种信息的访问方法和设备 |
CN103425461B (zh) * | 2012-05-14 | 2016-10-05 | 研祥智能科技股份有限公司 | 一种编程接口技术实现方法及计算机系统 |
CN103019744B (zh) * | 2012-12-31 | 2016-10-26 | 清华大学 | 基于计算中间件的雷达信号处理模块库的构建方法及应用 |
CN107153539B (zh) * | 2017-04-18 | 2021-03-30 | 北京思特奇信息技术股份有限公司 | 一种文件接口系统 |
CN109062553A (zh) * | 2018-06-23 | 2018-12-21 | 上海泽阳智能科技有限公司 | 一种同时面向硬件和数据的编程系统 |
CN109522046A (zh) * | 2018-11-13 | 2019-03-26 | 中国直升机设计研究所 | 一种适配多硬件平台的嵌入式软件开发模型 |
CN110457044B (zh) * | 2019-07-04 | 2023-11-14 | 广东三维家信息科技有限公司 | Haxe应用程序的编译方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841316A (zh) * | 2005-03-28 | 2006-10-04 | 华为技术有限公司 | 基于动态模块的软件处理系统的实现方法和装置 |
CN101271402A (zh) * | 2007-03-20 | 2008-09-24 | 华为技术有限公司 | 一种调用函数的方法及系统 |
-
2009
- 2009-12-18 CN CN200910226667A patent/CN101706737B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841316A (zh) * | 2005-03-28 | 2006-10-04 | 华为技术有限公司 | 基于动态模块的软件处理系统的实现方法和装置 |
CN101271402A (zh) * | 2007-03-20 | 2008-09-24 | 华为技术有限公司 | 一种调用函数的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101706737A (zh) | 2010-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101706737B (zh) | 软硬件协同函数库的构造方法 | |
CN101763265B (zh) | 一种过程级软硬件协同设计自动化开发方法 | |
van der Wolf et al. | Design and programming of embedded multiprocessors: an interface-centric approach | |
Wen-mei | Heterogeneous System Architecture: A new compute platform infrastructure | |
US7934179B2 (en) | Systems and methods for logic verification | |
Sbîrlea et al. | Mapping a data-flow programming model onto heterogeneous platforms | |
Kwon et al. | A retargetable parallel-programming framework for MPSoC | |
Syschikov et al. | Domain-specific programming environment for heterogeneous multicore embedded systems | |
Nourian et al. | Optimizing complex OpenCL code for FPGA: A case study on finite automata traversal | |
Dardaillon et al. | A new compilation flow for software-defined radio applications on heterogeneous MPSoCs | |
Ranga | ParrotPiton and ZynqParrot: FPGA Enablements for the BlackParrot RISC-V Processor | |
Cartwright et al. | Creating hw/sw co-designed mpsopc's from high level programming models | |
Balboni et al. | Tosca: A pragmatic approach to co-design automation of control-dominated systems | |
Borg et al. | A co-design strategy for embedded Java applications based on a hardware interface with invocation semantics | |
Herrera et al. | Embedded software generation from SystemC for platform based design | |
Rizvi et al. | A look at communication-intensive performance in julia | |
Aleem et al. | A comparative study of heterogeneous processor simulators | |
Nadeem et al. | GALS-CMP: chip-multiprocessor for GALS embedded systems | |
Reyes et al. | A multicast inter-task communication protocol for embedded multiprocessor systems | |
Gauthier et al. | Explicit Java control of low-power heterogeneous parallel processing in the ToucHMore project | |
Keceli et al. | XMTSim: A simulator of the XMT many-core architecture | |
Yazdanpanah et al. | Design space exploration of hardware task superscalar architecture | |
Vuletić et al. | Enabling unrestricted automated synthesis of portable hardware accelerators for virtual machines | |
Oguntunde | Comparative analysis of some programming languages | |
Araujo et al. | Processor centric specification and modeling of MPSoCs using ArchC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121003 Termination date: 20181218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |