一种由异构处理器组成协同计算机的方法技术

技术编号:3781563 阅读:144 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种由异构处理器组成协同计算机的方法,包括通用处理器和协同处理器,通用处理器和协同处理器分别执行各自的指令集,并通过编写含有分别对应通用处理器和协同处理器的两种代码的应用程序,用户可调用两者共同完成该应用。运行在这种架构上的应用程序既包含运行在通用处理器上的代码部分,也包含运行在协同处理器上的代码部分。通用处理器负责处理操作系统以及应用程序的初始化、控制和任务分配部分的代码,协同处理器负责处理计算部分的代码。对运行在协同处理器的程序部分进行初始化后,通用处理器与协同处理器进行通信并发出执行程序的命令。运行在协同处理器上的程序部分执行协同处理器自身的指令集,并在协同处理器的硬件体系上完成该部分运算任务。

【技术实现步骤摘要】

本专利技术涉及一种计算机领域,具体的说就是在一个计算机系统内提供支持不同 指令集的异构处理器,共同完成计算任务。目前的通用处理器多为通用计算所设计,在特定应用上性能不足例如科学 计算等,采用某些专用处理器可以很好的处理这些特定应用,但由于两者异构, 指令集不同,专用处理器上的特定应用一般无法为通用处理器所管理,令专用处 理器作为通用处理器的协同处理器进行协同计算成为难点。目前令运行在专用处理器上的特定应用被通用处理器识别、管理和运行的两 种方法是软件仿真和二进制转换。软件仿真是在应用程序执行专用处理器的指令 集时为通用处理器提供相等价的指令集序列。二进制转换是在执行程序前进行指 令转换,之后执行转换后的程序。因为在软件仿真过程中,应用需要时时检査每个异构指令,导致运行在异构 处理器上的应用性能大为降低。并且需要更多内存来存储仿真程序和支持数据结 构。更深一步说,软件仿真器无法准确建模复杂的硬件特征。二进制转化同样有 缺陷。它对用户不透明。这两种方法的组合也常被应用,虽然满足了功能性,但 通常无法满足对应ffl性能的要求。由于进行指令集转换的方法效率低下,需要有在同甘算机系统下实现异构 处理器的共存和协同计算。
技术实现思路
本专利技术的目的是提出在同一计算机系统内实现支持不同指令集的通用处理器 和协同处理器组成的异构处理器,异构处理器包括通用处理器和协同处理器分 别执行各自的指令集,并通过编写含有分别对应通用处理器和协同处理器的两种 代码的应用程序,用户可调用两者共同完成该应用。通用处理器负责处理操作系 统以及应用程序的主机码部分(初始化、控制和任务分配部分)。协同处理器负 责处理应用程序的外部码部分(计算部分的代码)。协同处理器通过专用控制协 议与通用处理器通讯,主要负责处理特定计算任务,这样可以令专用处理器作为 通用处理器的协同处理器进行协同计算。通用处理器和协同处理器通过总线桥连接,通用处理器与总线桥通过系统总 线连接,协同处理器通过高速串行总线与总线桥连接,通用处理器和协同处理器 使用专用的控制协议进行通讯,控制协议定义了在通用处理器和协同处理器间传递的信息,该信息通过两者共享的內存管理单元,n独立的通讯通道传递,通用处理器和协同处理器耦合到一块或多块缓存或内存管理单元上,并共享该缓存或内 存管理单元,其中,通用处理器负责运行操作系统,执行第一套指令集和应用程 序的主机码部分Z与通用处理器协同计算的执行第二套指令集的协同处理器,负 责运行应用程序的外部码部分。本专利技术的友谊效果是,通用处理器和协同处理器分别执行各自的指令集,并 通过编写含有分别对应通用处理器和协同处理器的两种代码的应用程序,用户可 调用两者共同完成该应用。 附图说明附图1是异构的通用处理器和协处理的协同计算处理的架构示意图。附图2是通用处理器和协同处理器间通讯共同执行应用程序的流程图。 具体实施例方式参照附图对木专利技术的方法作以下详细的说明-通用处理器负责处理操作系统以及应用程序的主机码部分,协同处理器通过 专用控制协议与通用处理器通讯,主要负责处理应用程序中的外部码部分。如附图1所示,通用处理器和协同处理器耦合到一块或多块缓存和内存管理 单元上,并共享该缓存或内存管理单元。它们可以拥有各自的内存,也可以共享 一块或多块内存。中央处理和协同处理器集成在同一块半导体基板上(主板)。通用处理器和协同处理器通过总线接口单元连接到同一总线桥,其中通用处 理器与总线桥通过系统总线连接,协同处理器可以通过高速串行总线等总线与总 线桥相连。通用处理器和协同处理器均有硬件解码器来对自己的指令集进行解码异构处理器的协同计算架构,包括执行第一套指令集的通用处理器,它负 责运行执行该指令集的操作系统;以及与通用处理器耦合的协同处理器,它执行 第二套指令集和基于该指令集的应用程序。通用处理器运行操作系统,同时协同 处理器可通过专用控制协议与通用处理器通讯。通用处理器和协同处理器耦合到 一块或多块缓存和内存管理单元上,并共享该缓存或内存。中央处理和协同处理 器集成在同一块主板。通用处理器和协同处理器通过同一总线桥连接,其中通用处理器与总线桥通 过系统总线连接,协同处理器可以通过串行总线等与系统总线信路不同的总线与 总线桥相连。通用处理器和协同处理器通过预先设定好的控制协议进行通讯。控 制协议定义了通用处理器和协同处理器间传递的信息。该信息通过两者共享的内 存管理单元传递和独立的通讯通道传递。通用处理器侦测应用己初始化,包括侦测协同处理器在操作系统下的驱动程 序;协同处理器能执行特殊的非法操作码来侦测以上驱动程序;通用处理器为执行第二套指令集的协同处理器上的应用建立上下文,加载驱动程序,并通过与协 同处理器的通讯返回对应用程序的控制;最后在协同处理器上执行应用程序中的 外部码部分。在应用执行期间,两者通过专用控制协议通讯。如附图2所示,操作系统运行在通用处理器上,应用程序进程运行在操作系统 上。进程中主要包括主机码,通讯接口码,进程转换码,外部码,驱动程序,操 作系统转换码。在应用程序进程运行时,主机码交给通用处理器处理,由通讯接 口码负责通用处理器和协同处理器的通讯,同时操作系统对主进程的监控也要通 过通讯接口码,它和操作系统间的通讯要通过驱动程序上的专用控制协议。在进 程转换码将进程分配到协同处理器上后,外部应用码即在协同处理器上运行。主机码,指的是应用程序中的运行在通用处理器上的控制和任务分配部分代码。外部码,指的是应用程序中的运行在协同处理器上的计算加速部分代码。运行在协同处理器上的应用程序代码使用第二套指令集编码,该部分代码在 操作系统控制下执行,同时通用处理器继续处理其他程序。应用程序的执行过程为通用处理器侦测应用已初始化,包括侦测协同处理 器在操作系统下的驱动程序;协同处理器通过执行特殊的非法操作码侦测驱动程 序;通用处理器为执行第二套指令集的协同处理器上的应用建立上下文,加载驱 动程序,并通过与协同处理器的通讯返回对应用程序的控制;最后在协同处理器 上执行应用程序中的外部码部分,在应用执行期间,两者通过专用控制协议通讯。本专利技术中的通用处理器是一个或多个CPU的组合,协同处理器是一个或多个 GPU的组合或一个或多个CPU与GPU的组合。权利要求1、,其特征在于,包括通用处理器和协同处理器,通用处理器和协同处理器通过总线桥连接,通用处理器与总线桥通过系统总线连接,协同处理器通过高速串行总线与总线桥连接,通用处理器和协同处理器使用专用的控制协议进行通讯,控制协议定义了在通用处理器和协同处理器间传递的信息,该信息通过两者共享的内存管理单元和独立的通讯通道传递,通用处理器和协同处理器耦合到一块或多块缓存或内存管理单元上,并共享该缓存或内存管理单元,其中,通用处理器负责运行操作系统,执行第一套指令集和应用程序的主机码部分,与通用处理器协同计算的执行第二套指令集的协同处理器,负责运行应用程序的外部码部分。2、 根据权利要求1所述的方法,其特征在于,主机码,指的是应用程序中的 运行在通用处理器上的控制和任务分配部分代码。3、 根据权利要求l所述的方法,其特征在于,外部码,指的是应用程序中的 运行在协同处理器上的计算加速部分代码。4、 根据权利要求1所本文档来自技高网...

【技术保护点】
一种由异构处理器组成协同计算机的方法,其特征在于,包括通用处理器和协同处理器,通用处理器和协同处理器通过总线桥连接,通用处理器与总线桥通过系统总线连接,协同处理器通过高速串行总线与总线桥连接,通用处理器和协同处理器使用专用的控制协议进行通讯,控制协议定义了在通用处理器和协同处理器间传递的信息,该信息通过两者共享的内存管理单元和独立的通讯通道传递,通用处理器和协同处理器耦合到一块或多块缓存或内存管理单元上,并共享该缓存或内存管理单元,其中,通用处理器负责运行操作系统,执行第一套指令集和应用程序的主机码部分,与通用处理器协同计算的执行第二套指令集的协同处理器,负责运行应用程序的外部码部分。

【技术特征摘要】

【专利技术属性】
技术研发人员:王恩东胡雷钧王守昊王渭巍
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:88[中国|济南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1