首页> 中国专利> 用于多核处理器中的核心间通信的方法、装置和计算机程序产品

用于多核处理器中的核心间通信的方法、装置和计算机程序产品

摘要

公开了用于在多核处理器集成电路体系结构中的处理器单元之间的高效通信的本发明的方法、装置和计算机程序产品实施例。在本发明的示例实施例中,一种方法包括:使用多核处理器中的共享的核心间通信单元将由生产者处理器核心产生的第一数据存储在位于存储器地址空间的第一存储器地址的第一标记存储器中;以及响应于来自所述生产者处理器核心的第一类型的命令,使用所述共享的核心间通信单元将所述第一标记存储器连接到所述多核处理器的消费者处理器核心,以将来自所述第一标记存储器的所述第一数据加载到所述消费者处理器核心中。

著录项

  • 公开/公告号CN104126179A

    专利类型发明专利

  • 公开/公告日2014-10-29

    原文格式PDF

  • 申请/专利权人 诺基亚公司;

    申请/专利号CN201380009921.8

  • 申请日2013-01-28

  • 分类号G06F12/08(20060101);G06F13/362(20060101);G06F9/38(20060101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人杨晓光;于静

  • 地址 芬兰埃斯波

  • 入库时间 2023-12-17 01:59:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-22

    授权

    授权

  • 2016-02-03

    专利申请权的转移 IPC(主分类):G06F12/08 登记生效日:20160113 变更前: 变更后: 申请日:20130128

    专利申请权、专利权的转移

  • 2014-12-03

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20130128

    实质审查的生效

  • 2014-10-29

    公开

    公开

说明书

技术领域

实施例涉及集成电路计算机处理器的体系结构,以及更具体地涉及在 多核处理器集成电路体系结构中的处理器单元之间的高效通信。

背景技术

传统电话已经演进到智能电话,该智能电话具有高级的计算能力和无 线连通性。现代智能电话典型地包含:与移动电话的传统功能结合的高分 辨率触摸屏、网络浏览器、GPS导航、语音识别、声音合成、视频相机、 Wi-Fi和移动宽带接入。通过在高密度、大规模集成电路中实现智能电话 的内部电子组件已经能够在小的便携式的封装中提供非常多的复杂技术。

多核处理器是具体化在单个超大规模集成半导体芯片上的多处理系统。 典型地,两个或更多处理器核心可以被具体化在多核处理器芯片上,由总 线(也可以在相同的多核处理器芯片上形成该总线)进行互连。可以有从 两个处理器核心到许多处理器核心被具体化在相同的多核处理器芯片上, 在处理器核心的数量中的上限仅由制造能力和性能约束来限制。多核处理 器可以具有应用,该应用包含在多媒体和信号处理算法(诸如,视频编码/ 解码、2D/3D图形、音频和语音处理、图像处理、电话、语音识别和声音 合成)中执行的专门的算术和/或逻辑操作。

发明内容

公开了用于在多核处理器集成电路体系结构中的处理器单元之间的高 效通信的本发明的方法、装置和计算机程序产品实施例。

在本发明的示例实施例中,一种方法包括:

使用多核处理器中的共享的核心间通信单元将由生产者处理器核心产 生的第一数据存储在位于存储器地址空间的第一存储器地址的第一标记 (token)存储器中;以及

响应于来自所述生产者处理器核心的第一类型的命令,使用所述共享 的核心间通信单元将所述第一标记存储器连接到所述多核处理器的消费者 处理器核心,以将来自所述第一标记存储器的所述第一数据加载到所述消 费者处理器核心中。

在本发明的示例实施例中,所述方法还包括:

响应于来自所述生产者处理器核心的第二类型的命令,使用所述共享 的核心间通信单元将位于所述存储器地址空间的输入标记存储器地址的输 入标记存储器连接到所述多核处理器的所述生产者处理器核心,以将来自 所述第一标记存储器的输入数据加载到所述生产者处理器核心中;

使用所述共享的核心间通信单元存储由所述生产者处理器核心从所述 输入数据产生的结果数据,所述结果数据是被存储在所述第一标记存储器 中的所述第一数据;以及

响应于来自所述生产者处理器核心的所述第一类型的命令,使用所述 共享的核心间通信单元将所述第一标记存储器连接到所述多核处理器的所 述消费者处理器核心,以将来自所述第一标记存储器的所述结果数据加载 到所述消费者处理器核心中。

在本发明的示例实施例中,所述方法还包括:

使用所述共享的核心间通信单元将由所述消费者处理器核心从所述第 一所述结果数据产生的第二结果数据存储在位于所述存储器地址空间的第 二存储器地址的第二标记存储器中。

在本发明的示例实施例中,所述方法还包括:响应于来自所述消费者 处理器核心的命令,使用所述多核处理器的第二共享的核心间通信单元将 所述第二标记存储器连接到所述处理器核心的第三处理器核心,以将来自 所述第二标记存储器的所述第二结果数据作为管线数据加载到所述第三处 理器核心中。

在本发明的示例实施例中,所述方法还包括:

使用所述第二共享的核心间通信单元将由所述第三处理器核心从所述 第二结果数据产生的第三结果数据存储在位于所述存储器地址空间的第三 存储器地址的第三标记存储器中。

在本发明的示例实施例中,所述方法还包括:

响应于来自所述消费者处理器核心的命令,使用所述共享的核心间通 信单元将所述第二标记存储器连接到所述多核处理器的所述生产者处理器 核心,以将来自所述第二标记存储器的所述第二结果数据作为反馈数据加 载到所述生产者处理器核心中。

在本发明的示例实施例中,一种装置包括:

至少一个处理器;

包含计算机程序代码的至少一个存储器;

所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一 个处理器使得所述装置至少:

使用多核处理器中的共享的核心间通信单元将由生产者处理器核心产 生的第一数据存储在位于存储器地址空间的第一存储器地址的第一标记存 储器中;以及

响应于来自所述生产者处理器核心的第一类型的命令,使用所述共享 的核心间通信单元将所述第一标记存储器连接到所述多核处理器的消费者 处理器核心,以将来自所述第一标记存储器的所述第一数据加载到所述消 费者处理器核心中。

在本发明的示例实施例中,一种计算机程序产品包括:记录在计算机 可读的非短暂性的存储介质上的计算机可执行的程序代码,当由计算机处 理器执行所述计算机可执行的程序代码时,所述计算机可执行的程序代码 使得装置至少执行以下:

使用多核处理器中的共享的核心间通信单元将由生产者处理器核心产 生的第一数据存储在位于存储器地址空间的第一存储器地址的第一标记存 储器中;以及

响应于来自所述生产者处理器核心的第一类型的命令,使用所述共享 的核心间通信单元将所述第一标记存储器连接到所述多核处理器的消费者 处理器核心,以将来自所述第一标记存储器的所述第一数据加载到所述消 费者处理器核心中。

在这种方式,本发明的实施例提供了在多核处理器集成电路体系结构 中的处理器单元之间的高效通信。

附图说明

图1说明了依照本发明的示例实施例的多核处理器的系统体系结构的 示例实施例,该多核处理器的系统体系结构包含:第一处理器核心、第二 处理器核心、多个标记存储器以及在共享的核心间通信单元中的标记控制 功能单元,该标记控制功能单元管理标记存储器与第一处理器核心和第二 处理器核心的连通性。

图1A说明了依照本发明的示例实施例的图1的多核处理器体系结构 的示例实施例,说明了由共享的核心间通信单元管理的存储器地址空间中 的多个标记存储器。

图1B说明了依照本发明的示例实施例的图1的多核处理器体系结构 的示例实施例,说明了在多核处理器内的标记存储器分区中的多个标记存 储器,该标记存储器分区是由共享的核心间通信单元管理的存储器地址空 间的一部分。

图1C说明了依照本发明的示例实施例的图1的多核处理器体系结构 的示例实施例,说明了访问图1的高速缓存器和主存储器系统的核心处理 器的加载和存储单元的示例。

图1D说明了依照本发明的示例实施例的图1的多核处理器体系结构 的示例实施例,说明了当处理器访问由共享的核心间通信单元管理的存储 器地址空间中的预定地址范围时,处理器核心的存储器管理单元选择性地 指导处理器访问共享的通信单元和标记存储器。

图1E说明了依照本发明的示例实施例的图1的多核处理器体系结构 的示例实施例,说明了用于计算内核(kernel)的数据流的示例,可以并 行地在不同的处理器核心中来执行该计算内核。

图2A说明了依照本发明的示例实施例的图1的多核处理器体系结构 的示例实施例,在初始状态中具有连接到共享的核心间通信单元的空的输 出标记存储器,该图示出了断开连接的输入标记存储器,但是该输入标记 存储器先前已经使用来自诸如处理器、输入设备或主存储器系统的源的初 始输入数据进行填充。例如,输入设备可以是RF模块接口,其使用DMA 以将样本传递给被寻址的标记存储器单元。

图2B说明了依照本发明的示例实施例的图2A的多核处理器体系结构 的示例实施例,说明了响应于共享的核心间通信单元中的标记控制功能单 元接收get_data()命令,在第一处理器核心中接收来自连接到共享的核心 间通信单元的输入标记存储器的输入数据。

图2C说明了依照本发明的示例实施例的图2B的多核处理器体系结构 的示例实施例,说明了第一处理器核心中的功能ALU单元处理输入数据 以及产生结果数据给连接到共享的核心间通信单元的输出标记存储器。

图2D说明了依照本发明的示例实施例的图2C的多核处理器体系结构 的示例实施例,说明了响应于共享的核心间通信单元中的标记控制功能单 元接收send_data()命令,连接到共享的核心间通信单元的输出标记存储器 发送结果数据给第二处理器核心中的下一个功能处理器。

图2E说明了依照本发明的示例实施例的图2D的多核处理器体系结构 的示例实施例,说明了第二处理器核心中的功能ALU单元处理新的输入 数据以及产生新的结果数据给连接到共享的核心间通信单元的第二输出标 记存储器。

图3说明了依照本发明的示例实施例的多核处理器体系结构的示例实 施例,其中第一处理器核心和第二处理器核心是传输触发体系结构(TTA) 处理器。

图3A说明了依照本发明的示例实施例的具有图3的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,在初始状态 中具有连接到共享的核心间通信单元的空的输出标记存储器,该图示出了 断开连接的输入标记存储器,但是该输入标记存储器先前已经用来自源(诸 如处理器、输入设备或主存储器系统)的初始输入数据进行填充。

图3B说明了依照本发明的示例实施例的具有图3A的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,说明了响应 于共享的核心间通信单元中的标记控制功能单元接收get_data()命令,在 第一处理器核心中接收来自连接到共享的核心间通信单元的输入标记存储 器的输入数据。

图3C说明了依照本发明的示例实施例的具有图3B的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,说明了第一 处理器核心中的功能ALU单元处理输入数据以及产生结果数据给连接到 共享的核心间通信单元的输出标记存储器。

图3D说明了依照本发明的示例实施例的具有图3C的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,说明了响应 于共享的核心间通信单元中的标记控制功能单元接收send_data()命令,连 接到共享的核心间通信单元的输出标记存储器发送结果数据给第二处理器 核心中的下一个功能处理器。

图3E说明了依照本发明的示例实施例的具有图3D的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,说明了第二 处理器核心中的功能ALU单元处理新的输入数据以及产生新的结果数据 给连接到共享的核心间通信单元的第二输出标记存储器。

图4A说明了依照本发明的示例实施例的用于使用标记存储器的第一 (简单)API的操作的示例流程图,对应于图2A至图2E中示出的系统体 系结构的操作。

图4B说明了依照本发明的示例实施例的获得输入标记存储器和输出 标记存储器两者以及在释放它们之前同时使用它们两者的内核的操作的示 例流程图。

图4C说明了根据本发明的示例实施例的在获得输出标记存储器之前 释放输入标记存储器的内核的操作的示例流程图。

图5说明了依照本发明的示例实施例的图1的多核处理器的操作的示 例流程图。

图6A说明了依照本发明的示例实施例的图1和图3的示例多核处理 器的系统体系结构的示例实施例,其中标记存储器被组织成管线。

图6B说明了依照本发明的示例实施例的图1和图3的示例多核处理 器的系统体系结构的示例实施例,其中超过两个处理器核心被连接到一个 共享的核心间通信单元。

图6C说明了依照本发明的示例实施例的图1和图3的示例多核处理 器的系统体系结构的示例实施例,其中在长管线中超过两个处理器核心被 连接。

图6D说明了依照本发明的示例实施例的图1和图3的示例多核处理 器的系统体系结构的示例实施例,其中在双管线中超过两个处理器核心被 连接。

图6E说明了依照本发明的示例实施例的图1和图3的示例多核处理 器的系统体系结构的示例实施例,其中内核启动(firing)的结果被处理以 及被反馈以用于内核的下一次执行。

图7说明了依照本发明的至少一个实施例的本发明的示例实施例,其 中示出了基于磁、电和/或光技术的可移动的存储介质的示例,诸如磁盘、 光盘、半导体存储电路设备和微-SD存储卡(SD指安全数字标准)以用于 存储数据和/或如示例计算机程序产品的计算机程序代码。

图8A说明了依照本发明的至少一个实施例的本发明的示例实施例, 其中多核处理器MP是移动电话800A的组件。

图8B说明了依照本发明的至少一个实施例的本发明的示例实施例, 其中多核处理器MP是智能电话800B的组件。

图8C说明了依照本发明的至少一个实施例的本发明的示例实施例, 其中多核处理器MP是便携式计算机800C的组件。

具体实施方式

多核处理器是具体化在单个大规模集成半导体芯片上的多处理系统。 典型地,两个或更多处理器核心可以被具体化在多核处理器芯片上,由总 线(也可以在相同的多核处理器芯片上形成该总线)进行互连。可以有从 两个处理器核心到许多处理器核心被具体化在相同的多核处理器芯片上, 在处理器核心的数量中的上限仅由制造能力和性能约束来限制。多核处理 器可以具有应用,该应用包含在多媒体和信号处理算法(诸如,视频编码/ 解码、2D/3D图形、音频和语音处理、图像处理、电话、语音识别和声音 合成)中执行的专门的算术和/或逻辑操作。

软件定义的无线电基带应用常常要求在计算内核的不同实例之间传递 大数据块或数据标记。大数据块或数据标记的示例包含:基于在单个内核 启动期间(诸如在快速傅里叶变换操作期间)典型地需要的数据的数量, 典型地在大小上从一个分组到更大的块的范围中的接收的样本流的同相/ 正交相位(I/Q)样本。其它示例可以包含:在长期演进(LTE)混合自动 重传请求(HARQ)缓冲器中加载或卸载的数据。如果内核产生的标记在 不同于该内核正在消耗的处理器核心的处理器核心上来执行,则必须应用 一些形式的核心间通信。高效的核心间通信应当具有可以预测的存储器存 取时延以使得能够实时地分析以及确保最后期限,以及还应当具有低的时 延和低的能量消耗。

公开了用于在多核处理器集成电路体系结构中的处理器单元之间的高 效通信的本发明的方法、装置和计算机程序产品实施例。

图1说明了本发明的示例实施例,示出了多核处理器MP的示例系统 体系结构。依照本发明的示例实施例,多核处理器MP可以包含:第一处 理器核心X、第二处理器核心Y、多个标记存储器15A、15B、15C、15D 和15E以及在共享的核心间通信单元3中的标记控制功能单元FU-CTL, 该标记控制功能单元FU-CTL管理标记存储器与第一处理器核心和第二处 理器核心的连通性。复用器50由核心间通信单元3中的标记控制功能单元 (CU-CTL)来控制以使标记存储器15A、15B、15C、15D和15E与第一 处理器核心X和第二处理器核心Y互连。

在本发明的示例实施例中,核心X可以包含:存储器管理单元5X、 加载和存储单元功能单元FU-1(其执行指令INST-1)、算术/逻辑(ALU) 功能单元FU-2(其执行指令INST-2)以及定制功能单元FU-3(其执行指 令INST-3)。指令总线12X提供指令给指令单元40X,指令单元40X进 而依照系统定时器20将指令应用于处理器核心X。

类似地,在本发明的示例实施例中,核心Y可以包含:存储器管理单 元5Y、加载和存储单元功能单元FU-7(其执行指令INST-7)、算术/逻 辑(ALU)功能单元FU-8(其执行指令INST-8)以及定制功能单元FU-9 (其执行指令INST-9)。指令总线12Y提供指令给指令单元40Y,指令 单元40Y进而依照系统定时器20将指令应用于处理器核心Y。

在本发明的示例实施例中,处理器核心X和处理器核心Y可以由共享 的核心间通信单元3来互连。总线14A将处理器核心X与共享核心间通信 单元3中的标记加载和存储功能单元FU-4互连。总线14B将处理器核心 Y与共享核心间通信单元3中的标记加载和存储功能单元FU-6互连。标 记控制单元FU-CTL分别经由总线14A和总线14B连接到处理器核心X 和处理器核心Y两者。标记控制单元FU-CTL可以包含在图1A中示出的 地址空间100中的标记存储器15A、15B、15C、15D和15E的地址的存储 器地址映射。复用器50由标记控制单元FU_CTL控制以将标记存储器15A、 15B、15C、15D和15E与处理器核心X和处理器核心Y互连。共享的核 心间通信单元3可以接收来自处理器核心X和处理器核心Y的命令,诸如 get_data()或send_data(),该命令对应于存储器地址空间100中的标记存 储器15A、15B、15C、15D和15E的预定的地址范围。get_data()或 send_data()指令可以是在处理器核心X和处理器核心Y中执行的指令流的 一部分。最可能的是,get_data()或send_data()指令可以来源于与核心X 的FU-2功能处理器相关联的指令解码器18X或与核心Y的FU-8功能处 理器相关联的指令解码器18Y。但是,因为FU-2可以是处理器核心X的 一部分以及FU-8可以是处理器核心Y的一部分,所以还可能的是一些其 它的个体功能处理器单元是这些指令的源。在标记控制单元FU-CTL中的 存储器地址映射与物理地址空间和在功能单元FU-2或FU-8中执行的指令 代码中使用的一组符号地址名有关。

在本发明的示例实施例中,可以有从两个处理器核心到许多处理器核 心被具体化在相同的多核处理器MP芯片上,在处理器核心的数量中的上 限仅由制造能力和性能约束来限制。在本发明的示例实施例中,处理器核 心X和处理器核心Y可以是相同的核心。在本发明的示例实施例中,处理 器核心X和处理器核心Y可以是不相的。在本文中,交换地使用术语功能 单元、功能处理器和功能处理器单元。

图1A说明了本发明的示例实施例,其中依照本发明的示例实施例, 图1的多核处理器体系结构可以包含由共享的核心间通信单元3管理的存 储地址空间100中的多个标记存储器15A、15B、15C、15D和15E。每个 标记LSU单元位于该标记LSU单元连接到的处理器核心的本地存储器地 址空间中的预定的地址范围。例如,标记LSU单元FU-4位于处理器核心 X的本地地址空间90X中的预定的地址范围中,以及标记LSU单元FU-6 位于处理器核心Y的本地地址空间90Y中的预定的地址范围中。处理器核 心X和处理器核心Y的本地地址空间90X和90Y可以彼此独立以及独立 于地址空间100。

每个标记存储器位于存储器地址空间100的预定的地址范围中,在由 处理器核心X处理的指令流中可以由标记LSU单元FU-4来识别该预定的 地址范围,以及类似地,在由处理器核心Y处理的指令流中可以由标记 LSU单元FU-6来识别该预定的地址范围。标记存储器15A在地址范围A 中。标记存储器15B在地址范围B中。标记存储器15C在地址范围C中。 标记存储器15D在地址范围D中。标记存储器15E在地址范围E中。

在本发明的示例实施例中,当处理器核心X中的指令解码单元18X或 一些其它功能单元识别了由处理器核心X中的功能处理器处理的指令流中 的预定的标记存储器地址时,可以通过总线14A将该地址或相关的命令发 送给标记控制单元FU-CTL。标记控制单元FU-CTL将在存储器地址映射 中查询正在被寻址的标记存储器的物理地址(或虚拟地址),以及将使得 加载和存储单元FU-1将这个信息发送给复用器50以使得复用器50将正 在被寻址的标记存储器连接到处理器核心X中的功能处理器。

在本发明的示例实施例中,当处理器核心Y中的指令解码单元18Y或 一些其它功能单元识别了由处理器核心Y中的功能处理器处理的指令流中 的预定的标记存储器地址时,可以通过总线14B将该地址或相关的命令发 送给标记控制单元FU-CTL。标记控制单元FU-CTL将在存储器地址映射 中查询正在被寻址的标记存储器的物理地址(或虚拟地址),以及将使得 加载和存储单元FU-7将这个信息发送给复用器50以使得复用器50将被 寻址的标记存储器连接到处理器核心Y中的功能处理器。

图1B说明了本发明的示例实施例,其中依照本发明的示例实施例, 图1A的多核处理器体系结构可以包含在多核心处理器MP内形成的在标 记存储器分区100’中的多个标记存储器15A、15B、15C、15D和15E,该 标记存储器分区100’是由共享的核心间通信单元3管理的存储地址空间 100的一部分。

图1C说明了本发明的示例实施例,其中依照本发明的示例实施例, 图1的多核处理器体系结构可以包含:访问图1的主存储器系统的L1高 速缓存器、L2高速缓存器48、L3高速缓存器186和/或主存储器184的存 储器核心X中的加载和存储单元FU-1和存储器核心Y中的加载和存储单 元FU-7的示例。在本发明的示例实施例中,主存储器总线12可以连接到 在相同的半导体芯片上的或分离的半导体芯片的2级(L2)高速缓存器186。 L2高速缓存器可以连接到数据和/或程序指令的片外L3高速缓存器186和 主存储器184和/或其它形式的大容量存储介质。在本发明的示例实施例中, 当处理器核心Y中的存储器管理单元5Y识别了在由处理器核心Y中的功 能处理器处理的指令流中的主存储器系统的预定的存储器地址时,由核心 Y中的加载和存储单元FU-7来处理该地址。类似地,当处理器核心X中 的存储器管理单元5X识别了在由处理器核心X中的功能处理器处理的指 令流中的主存储器系统的预定的存储器地址时,由核心X中的加载和存储 单元FU-1来处理该地址。

图1D说明了本发明的示例实施例,示出了用于通用处理器的示例实 现方式。依照本发明的示例实施例,图1的多核处理器体系结构可以包含 处理器核心X的存储器管理单元5X和处理器核心Y的存储器管理单元5Y, 当在处理器中处理的指令访问由共享的核心间通信单元3所管理的存储器 地址空间100中的标记存储器的预定的地址范围时,存储器管理单元有选 择地指导处理器访问共享的通信单元3和标记存储器15A、15B、15C、15D 和15E。在本发明的示例实施例中,处理器核心X中的存储器管理单元5X 将预定的地址范围0X00FF-0X2FFF分配给主存储器系统中的存储器地址, 以及正在被处理的访问该范围内的存储器位置的指令将由核心X中的加载 和存储单元FU-1来处理。在本发明的示例实施例中,在处理器核心X中 的存储器管理单元5X将预定的地址范围0X3000-0X3FFF分配给标记存储 器地址空间100中的存储器地址,该地址或有关的命令由存储器管理单元 5X通过总线14A发送给标记控制单元FU-CTL以用于由共享通信单元3 中的加载和存储单元FU-4来处理。类似地,在本发明的示例实施例中, 在处理器核心Y中的存储器管理单元5Y将预定的地址范围 0X4000-0X4FFF分配给标记存储器地址空间100中的存储器地址,该地址 或有关的命令由存储器管理单元5Y通过总线14B发送给标记控制单元 FU-CTL以用于由共享通信单元3中的加载和存储单元FU-6来处理。

在这点上具有的指导意义是,将图1D中示出的用于通用处理器的示 例实施例与在图3和图3A至图3E中示出的示例传输触发体系结构(TTA) 进行比较。在TTA处理器核心中,可能未必存在应付所有的存储器地址 转换的任何单个存储器管理单元。例如,如果有多个LSU,则每个LSU 可以连接到不同的逻辑和/或物理存储器地址空间和存储器分级体系。因此, 实现用于标记存储器的存储器空间的实际物理存储器设备可以是公共存储 器系统的一部分,或可替代地,它可以是分离的物理存储器。

在本发明的示例实施例中,处理器核心X和核心Y可以被具体化在两 个或更多的分离的半导体芯片上,该分离的半导体芯片由共享的核心间通 信单元3互连以及被封装在多芯片模块中。使处理器核心X与共享的核心 间通信单元3互连的总线14A和使处理器核心Y与共享的核心间通信单元 3互连的总线14B可以被具体化成两种线路,时钟线以及数据线,该数据 线使用不归零信号来表示二进制值。在本发明的示例实施例中,存储器总 线12可以连接到图7中示出的基于磁、电和/或光技术的可移动存储介质 126,诸如磁盘、光盘、半导体存储电路设备和微-SD半导体存储卡(SD 指安全数字标准),其可以例如用于程序代码和/或数据输入/输出构件。

参照图1,在本发明的示例实施例中,存储器总线12可以连接到主机 设备180,诸如网络元素、直接存储器存取(DMA)控制器、微控制器、 数字信号处理器或存储器控制器。如本文中使用的术语“主机设备”可以 包含可以发起访问从属设备的任何设备,以及不应当限于网络元素、直接 存储器存取(DMA)控制器、微控制器、数字信号处理器或存储器控制器 的给定示例。在本发明的示例实施例中,存储器总线10可以连接到任何种 类的外围接口182,诸如相机、显示器、音频、键盘或串行接口。依照本 发明的至少一个实施例,如本文中使用的术语“外围接口”可以包含能够 由处理器或主机设备访问的任何设备,以及不应当限制于相机、显示器、 音频、键盘或串行接口的给定示例。

在本发明的示例实施例中,处理器核心X和处理器核心Y可以实现专 门的体系结构,诸如超标量、超长指令字(VLIW)、向量处理、单指令/ 多数据(SIMD)、专用指令集(ASIP)处理或多线程。在本发明的示例 实施例中,在多核处理器MP中的功能处理器FU-2、FU-3、FU-8和FU-9 可以具有应用,该应用包含在多媒体和信号处理算法(诸如,视频编码/ 解码、2D/3D图形、音频和语音处理、图像处理、电话、语音识别和声音 合成)中执行的专门的算术和/或逻辑操作。

图1E说明了在图1的多核处理器体系结构中的示例数据流的本发明 的示例实施例。依照本发明的示例实施例,该图说明了用于计算内核I、J、 K和计算内核L的数据流的示例,可以并行地在不同的处理器核心中来执 行该计算内核。在该图中,图顶点I、J、K和L表示可以并行地在不同的 核心中执行的计算内核。在数据流图中的边表示用于从一个内核向另一个 内核运送数据的内核和队列存储器之间的通信。当启动内核时,它消耗来 自它的输入队列的一些数量的数据标记,执行计算,以及将一个或多个结 果标记写到一个或多个输出队列。如果当启动每个内核时标记消耗和产生 的数量是不变的,则数据流模型被称为静态数据流,以及在编译时间期间 可以分析一些属性(诸如启动调度、无死锁保证、最后期限保证和需要的 标记存储器的大小)。如果在执行期间消耗的标记的数量变化,诸如在依 赖于数据执行中,则在一般情况下,不能分析那些属性,以及该数据流模 型被称为动态数据流。本发明的实施例可以应用于静态数据流和动态数据 流两者。

图2A说明了依照本发明的示例实施例的图1的多核处理器体系结构 的示例实施例,在初始状态中具有由复用器50连接到共享的核心间通信单 元3的空的输出标记存储器15B,该图示出了断开连接的输入标记存储器 15A,但是该输入标记存储器15A先前已经用来自诸如处理器或主存储器 系统的源的初始输入数据进行填充。例如,输入设备可以是RF模块接口, 其使用DMA以将样本传递给被寻址的标记存储器单元。

图2B说明了本发明的示例实施例,其中图2A的多核处理器体系结构 可以包含由处理器核心X中的功能处理器ALU FU-2来处理指令流。该指 令流可以具有指令,该指令用于访问地址范围A内的标记存储器15A,该 标记存储器15A被映射到核心X的本地地址空间90X内的标记LSU FU-4, 通过使用复用器50将FU-4连接到标记存储器,该标记存储器15A进一步 被映射到存储器地址空间100。处理器X向标记控制单元LSU-CTL发送 get_data(A)命令。响应于get_data(A)命令,标记控制单元FU-CTL配置 复用器50,以便针对标记存储器15A执行至关联于标记LSU FU-4的本地 地址空间范围90X的核心X的存储器操作。在这个示例中,在指令流中的 指令将来自标记存储器15A的数据加载到功能处理器ALU FU-2的寄存器 文件中。FU-CTL可以在它的存储器地址映射中查询被寻址的标记存储器 15A的物理地址(或虚拟地址),使用它的仲裁器来检查冲突访问或预留, 以及然后使得拒绝或延时复用器50的配置直到结束冲突访问或预留。

图2C说明了本发明的示例实施例,其中依照本发明的示例实施例, 图2B的多核处理器体系结构可以包含在处理器核心X中的功能处理器 ALU FU-2,功能处理器ALU FU-2处理来自标记存储器15A的输入数据 以及产生将被写到连接到共享核心间通信单元3的输出标记存储器15B的 结果数据。指令流可以具有指令,该指令用于访问本地地址范围B内的标 记存储器15B,该本地地址范围B被映射到核心X的本地地址空间90X 内的标记LSU FU-4,通过使用复用器50将FU-4连接到标记存储器,该 本地地址范围B进一步被映射到存储器地址空间100。处理器X向标记控 制单元LSU-CTL发送acquire_output(A)命令。响应于acquire_output(A) 命令,标记控制单元FU-CTL配置复用器50,以便针对标记存储器15B 执行至关联于标记LSU FU-4的本地地址空间范围B的核心X的存储器操 作。由处理器核心X中的功能处理器ALU FU-2处理的指令流具有指令, 该指令用于将结果数据写到核心X的本地存储器地址空间90X内的地址范 围B内的标记存储器15B。标记LSU单元FU-4识别到这是至本地地址范 围B的访问,以及将“write_data(B)”命令转发给由复用器50连接到标 记LSU FU-4的标记存储器15B。

图2D说明了本发明的示例实施例,其中依照本发明的示例实施例, 图2C的多核处理器体系结构可以包含连接到共享的核心间通信单元3的 输出标记存储器15B,输出标记存储器15B响应于共享核心间通信单元3 中的标记控制功能单元FU-CTL接收send_data()命令,将结果数据提供给 第二处理器核心Y中的下一个功能单元FU-8。由处理器核心X处理的指 令流具有指令,该指令用于将输出标记存储器15B中的结果数据发送给第 二处理器核心Y。标记存储器15B在存储器地址空间100内的地址范围内。 标记LSU FU-4在核心X的本地地址空间90X内的地址范围内,通过复用 器50将标记LSU FU-4连接到标记存储器15B,该地址范围被连接到地址 空间100中的地址范围B。处理器核心X将send_data(B)命令发送给标记 控制单元FU-CTL,标记控制单元FU-CTL配置复用器50以使标记存储 器15B与标记LSU FU-4分开,以及在此之后将标记存储器15B连接到标 记LSU FU-6。FU-CTL可以在它的存储器地址映射中查询被寻址的标记 存储器15B的物理地址(或虚拟地址),使用它的仲裁器来检查冲突访问 或预留,以及然后使得拒绝或延时复用器50的配置直到结束冲突访问或预 留。这可能是当核心Y忙于处理一些先前数据以及标记LSU FU-6连接到 一些其它标记存储器的情况,这将被认为是预留冲突。可以通过观察核心 Y向FU-CTL发送get_data()或acquire_input()消息,这将指示核心Y准 备好开始处理下一个数据,来安全地检测此类预留冲突的结束。在处理器 核心X和处理器核心Y中操作可以由系统定时器20来同步。

图2E说明了本发明的示例实施例,其中依照本发明的示例实施例, 图2D的多核处理器体系结构可以包含第二处理器核心Y中的功能处理器 ALU FU-8,功能处理器ALU FU-8处理来自标记存储器B的新的输入数 据以及产生新的结果数据给连接到共享的核心间通信单元3的第二输出标 记存储器15C。由处理器核心Y处理的指令流具有指令,该指令用于将第 二结果数据写到映射到标记LSU FU-6的本地处理器核心Y的地址空间范 围90Y中,标记LSU FU-6由复用器50连接到存储器地址空间100内的 地址范围C内的标记存储器15C。作为对由处理器核心Y向共享的通信单 元3中的标记控制单元FU-CTL发送的send_data(C)命令的响应,由标记控 制单元FU-CTL将该连接配置到复用器50。共享的通信单元3中的标记 LSU单元FU-6识别到这是访问处理器核心Y的本地地址空间中的地址范 围90Y,通过复用器50将标记LSU FU-6连接到标记存储器15C,该地址 范围90Y被连接到地址空间100中的地址范围C。

图3说明了本发明的示例实施例,其中依照本发明的示例实施例,图 1的多核处理器体系结构可以包含:第一处理器核心X和第二处理器核心 Y,该第一处理器核心X和第二处理器核心Y是传输触发体系结构(TTA) 处理器。在本发明的示例实施例中,传输触发体系结构(TTA)使得应用 程序能够直接控制处理器核心的内部总线以及在功能单元(FUs)FU-2、 FU-8,它们的寄存器文件(RFs),存储器加载/存储单元(LSUs)FU-1、 FU-7,以及其它的处理器构造块之间的数据传递。可以是静态进行指令调 度(在编译时间),以及可以通过使用超长指令字(VLIW)体系结构和 多总线以并行地执行数据传递来利用指令级并行化。TTA体系结构很好地 适用于高性能计算,诸如无线电基带处理。可以容易地针对应用特定的需 要来添加定制功能单元FU-3、FU-9,因为指令是数据传递以及不需要添 加新的指令以访问定制的功能单元。TTA体系结构的优点是可以将结果直 接地从生产FU转发给消费FU,从而避免将中间结果存储到寄存器。这可 以允许更小的寄存器文件,更好的性能以及更低的能量消耗。通过允许直 接数据转发可以避免瓶颈。所有这些益处可以使得TTA成为用于在软件 定义的无线电(SDR)中的基带处理器的好的选择。

在TTA处理器核心中,可以不必有应付所有的存储器地址转换的任 何单个存储器管理单元。例如,如果有多个LSU,则每个LSU可以连接 到不同的逻辑和/或物理存储器地址空间和存储器分级体系。因此,实现用 于标记存储器的存储器空间的实际物理存储器设备可以是公共存储器系统 的一部分,或可替代地,它可以是分离的物理存储器。

在本发明的示例实施例中,在使用具有两种阻塞调用的简单应用编程 接口(API)的TTA处理器核心中运行的一个内核中的示例处理可以包含 以下:

1.通过调用get_data(),接收来自TTA核心X中的生产者处理器FU-2 的输入数据。可以将这个调用实现成至标记控制单元FU-CTL的命令传递, 标记控制单元FU-CTL使得复用器50将含有进入数据标记15A的存储器 空间100连接到TTA核心X。

2.处理输入数据以及产生结果给输出标记存储器15B。在处理期间, 输入标记存储器15A和输出标记存储器15B两者可以用作工作空间,因为 它们专用于TTA处理器核心X只要该处理在存储器核心X中发生。

3.通过调用send_data()将结果发送给下一个TTA处理器核心Y。可 以将该调用实现成命令,该命令释放输出标记存储器15B(其将被用作TTA 处理器核心Y的输入标记存储器),以及将输出标记存储器15B连接到 TTA处理器核心Y。

在本发明的示例实施例中,API调用可以使得命令被传递到标记控制 单元FU-CTL中,该标记控制单元FU-CTL应付当消费TTA处理器核心 Y准备好处理数据时,将满的标记存储器15B重新连接到消费TTA处理 器核心Y。在处理器核心X如完成了先前的启动后,标记控制单元FU-CTL 可以将空的标记存储器15A重新连接到生产者处理器核心X。

在本发明的示例实施例中,图3的示例多核TTA处理器MP被示出 为具有动态连接的标记存储器15A和15B。该图在功能处理器单元中使用 小方形符号以表示端口。带交叉线的方形符号表示发起功能处理器单元的 操作的端口(当被访问时)。在本发明的示例实施例中,标记控制FU-CTL 将标记存储器15A和15B连接到加载存储单元(LSU)FU-4和FU-6,以 及与其断开连接。在本发明的示例实施例中,标记存储器15A和15B的数 量可以大于两个,这可以允许生产者TTA处理器核心在标记存储器被消 耗前产生若干输出数据标记。在本发明的示例实施例中,多个标记存储器 可以使得它们能够被串行化访问。

在本发明的示例实施例中,可以引入优化的API以更高效地使用标记 存储器。优化的API可以包含以下指令:

Acquire_input()–获取输入标记数据存储器

Release_input()–完成输入处理,以及标记数据存储器可以由一些其 它处理器核心来使用

Acquire_output()–获得空的输出标记数据存储器

Release_output()–输出标记被断开连接以及可以由下一个处理器核 心来处理。

在本发明的示例实施例中,Acquire_input()和Acquire_output()调用 是阻塞性的,即当连接标记存储器时,程序执行继续。这种优化的API可 以允许编程者在较短的时间间隔内预留标记存储器。与内核执行的持续时 间相比当对输出标记存储器和/或输入标记存储器需要的连接的持续时间 是短的时,这可以是一种改进。

图3A说明了依照本发明的示例实施例的具有图3的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,在初始状态 中具有连接到共享的核心间通信单元的空的输出标记存储器,该图示出了 断开连接的输入标记存储器,但是该输入标记存储器先前已经用来自源(诸 如处理器、输入设备或主存储器系统)的初始输入数据进行填充。

图3B说明了依照本发明的示例实施例的具有图3A的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,说明了响应 于共享的核心间通信单元中的标记控制功能单元接收get_data()命令,在 第一处理器核心中接收来自连接到共享的核心间通信单元的输入标记存储 器的输入数据。

图3C说明了依照本发明的示例实施例的具有图3B的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,说明了第一 处理器核心中的功能ALU单元处理输入数据以及产生结果数据给连接到 共享的核心间通信单元的输出标记存储器。

图3D说明了依照本发明的示例实施例的具有图3C的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,说明了响应 于共享的核心间通信单元中的标记控制功能单元接收send_data()命令,连 接到共享的核心间通信单元的输出标记存储器发送结果数据给第二处理器 核心中的下一个功能处理器。

图3E说明了依照本发明的示例实施例的具有图3D的传输触发体系结 构(TTA)处理器核心的多核处理器体系结构的示例实施例,说明了第二 处理器核心中的功能ALU单元处理新的输入数据以及产生新的结果数据 给连接到共享的核心间通信单元的第二输出标记存储器。

图4A说明了本发明的示例实施例,其中依照本发明的示例实施例, 示例流程图200示出了用于使用标记存储器的第一API的操作,对应于图 2A至图2E中示出的系统体系结构的操作。该图说明了由装置(例如就地 执行存储在该装置的存储器中的程序代码的多核处理器MP)执行的过程 的示例。可以将该流程图的过程具体化成以程序指令的序列的形式存储在 该装置的存储器中的程序逻辑,当在该装置的逻辑中执行该程序指令的序 列时,该程序指令的序列实现示例性公开的实施例的功能。可以以不同于 示出的其它顺序来实现该过程,以及个体过程可以被组合或分离成组件过 程。可以将另外的过程插入到这个序列中。该过程如下:

202:初始状态(连接空的输出标记存储器,断开连接输入标记存储器)

204:get_data()

206:执行计算(输入标记存储器、输出标记存储器和本地存储器可以 用于计算)

208:send_data()

然后,过程208环回到过程204。

图4B说明了本发明的示例实施例,其中依照本发明的示例实施例, 示例流程图400示出了内核的操作,该内核的操作获取输入标记存储器和 输出标记存储器两者以及在释放它们之前同时使用它们两者。该图说明了 由装置(例如就地执行存储在该装置的存储器中的程序代码的多核处理器 MP)实现的过程的示例。可以将该流程图的过程具体化成以程序指令的 序列的形式存储在该装置的存储器中的程序逻辑,当在该装置的逻辑中执 行该程序指令的序列时,该程序指令的序列实现示例性公开的实施例的功 能。可以以不同于示出的其它顺序来执行该过程,以及个体过程可以被组 合或分离成组件过程。可以将另外的过程插入到这个序列中。该过程如下:

402:初始状态(断开连接输出标记存储器和输入标记存储器)

404:acquire_input()

406:执行计算(输入标记存储器和本地存储器可以用于计算)

408:acquire_output()

410:执行计算(输入标记存储器、输出标记存储器和本地存储器可以 用于计算)

412:release_input()

414:执行计算(输出标记存储器和本地存储器可以用于计算)

416:release_output()

然后,过程416环回到过程404。

release_output()信号指示标记准备好,以及消费者核心的 acquire_input()可以将标记存储器连接到消费者核心。在消费者核心已经 在生产者核心调用release_output()之前调用acquire_input()的情况下,可 以有来自阻塞acquire_input()调用的返回。

图4C说明了本发明的示例实施例,其中依照本发明的示例实施例, 示例流程图450示出了内核的操作,该内核的操作在获取输出标记存储器 之前释放输入标记存储器。该图说明了由装置(例如就地执行存储在该装 置的存储器中的程序代码的多核处理器MP)实现的过程的示例。可以将 该流程图的过程具体化成以程序指令的序列的形式存储在该装置的存储器 中的程序逻辑,当在该装置的逻辑中执行该程序指令的序列时,该程序指 令的序列实现示例性公开的实施例的功能。可以以不同于示出的其它顺序 来执行该过程,以及个体过程可以被组合或分离成组件过程。可以将另外 的过程插入到这个序列中。该过程如下:

452:初始状态(断开连接输出标记存储器和输入标记存储器)

454:acquire_input()

456:执行计算(输入标记存储器和本地存储器可以用于计算)

458:release_input()

460:acquire_output()

460:执行计算(输出标记存储器和本地存储器可以用于计算)

464:release_output()

然后,过程416环回到过程404。

图5说明了依照本发明的示例实施例的图1的多核处理器的操作的示 例流程图500。该图说明了由装置(例如就地执行存储在该装置的存储器 中的程序代码的多核处理器MP)实现的过程的示例。可以将该流程图的 过程具体化成以程序指令的序列的形式存储在该装置的存储器中的程序逻 辑,当在该装置的逻辑中执行该程序指令的序列时,该程序指令的序列实 现示例性公开的实施例的功能。可以以不同于示出的其它顺序来执行该过 程,以及个体过程可以被组合或分离成组件过程。可以将另外的过程插入 到这个序列中。该过程如下:

502:使用多核心处理器中的共享的核心间通信单元将由生产者处理 器核心产生的第一数据存储在位于存储器地址空间的第一存储器地址的第 一标记存储器中;以及

504:响应于来自所述生产者处理器核心的第一类型的命令,使用所述 共享的核心间通信单元将所述第一标记存储器连接到所述多核心处理器的 消费者处理器核心,以将来自所述第一标记存储器的所述第一数据加载到 所述消费者处理器核心中。

图6A说明了依照本发明的示例实施例的图1和图3的示例多核处理 器的系统体系结构的示例实施例,其中标记存储器被组织成管线多核处理 器MP。图6A的管线多核处理器MP可以执行以下过程:

响应于来自第一处理器核心X的第一命令“get_data(A)”,使用共享 的核心间通信单元3将位于存储器地址空间100的第一存储器地址A的第 一标记存储器15A连接到多核处理器MP的第一处理器核心X,以将来自 第一标记存储器15A的输入数据加载到第一处理器核心X。

使用共享的核心间通信单元3将由第一处理器核心X从输入数据产生 的结果数据存储在位于存储器地址空间100的第二存储器地址B的第二标 记存储器15B中。

响应于来自第一处理器核心X的第二命令“send_data(B)”,使用共 享的核心间通信单元3将位于存储器地址空间100的第二存储器地址B的 第二标记存储器15B连接到多核处理器MP的第二处理器核心Y,以将来 自第二标记存储器15B的结果数据加载到第二处理器核心Y。

使用共享的核心间通信单元3将由第二处理器核心Y从第一所述结果 数据产生的第二结果数据存储在位于存储器地址空间100的第三存储器地 址C的第三标记存储器15C中。

响应于来自第二处理器核心Y的第三命令“get_data(C)”,使用共享 的核心间通信单元3’将位于存储器地址空间100的第三存储器地址C的第 三标记存储器15C连接到多核处理器MP的第三处理器核心Z,以将来自 第三标记存储器15C的第二结果数据作为管线数据加载到第三处理器核心 Z。

使用共享的核心间通信单元3’将由第三处理器核心Z从第二结果数据 产生的第三结果数据存储在位于存储器地址空间100的第四存储器地址F 的第四标记存储器15F中。

图6B说明了依照本发明的示例实施例的图1和图3的示例多核处理 器MP的系统体系结构的示例实施例,其中超过两个处理器核心X,X’,Y, 和Y’被连接到一个共享的核心间通信单元3。

图6C说明了依照本发明的示例实施例的图1和图3的示例多核处理 器MP的系统体系结构的示例实施例,其中在长管线中超过两个处理器核 心X,Y,Z,Z’,Y’和X’被连接。

图6D说明了依照本发明的示例实施例的图1和图3的示例多核处理 器的系统体系结构的示例实施例,其中在双管线中超过两个处理器核心(在 第一管线中的X,Y,Z,以及在第二管线中的X’,Y’,Z’)被连接。

图6E说明了依照本发明的示例实施例的图1和图3的示例多核处理 器MP的系统体系结构的示例实施例,其中内核启动的结果被处理以及被 反馈以用于该内核的下一次执行。图6E的管线多核处理器MP可以执行 以下过程:响应于来自第二处理器核心Y’的第三命令“feedback_data(C)”, 使用共享的核心间通信单元3’将位于存储器地址空间100的第三存储器地 址C的第三标记存储器15C连接到多核处理器MP的第一处理器核心X, 以将来自第三标记存储器15C的第二结果数据作为反馈数据加载到第一处 理器核心X中。

图7说明了本发明的示例实施例,其中依照本发明的至少一个实施例 的,示出了基于磁、电和/或光技术的可移动的存储介质126的示例,诸如 磁盘、光盘、半导体存储电路设备和微-SD存储卡(SD指安全数字标准) 以用于存储数据和/或如示例计算机程序产品的计算机程序代码。

依照本发明的示例实施例,在本发明的示例实施例中,多核处理器 MP是电子设备的组件,诸如例如图8A中示出的移动电话800A、图8B 中示出的智能电话800B或图8C中示出的便携式计算机800C。

使用本文中提供的描述,可以通过使用标准的编程和/或工程技术将实 施例实现成机器、过程或制造品以产生编程软件、固件、硬件或其任何组 合。

可以将任何生成的程序(多个)(具有计算机可读程序代码)具体化 在一个或多个计算机可使用的介质上,诸如驻留存储设备、智能卡或其它 可移动存储设备,或传送设备,从而根据实施例来制作计算机程序产品和 制造品。照此,如本文中使用的术语“制造品”和“计算机程序产品”旨 在涵盖永久性地或临时性地存在在任何计算机可以使用的非短暂性的介质 上的计算机程序。

如上所指出的,存储器/存储设备包含但不限制于磁盘、光盘、可移动 存储设备(诸如智能卡、订户身份模块(SIM)、无线标识模块(WIM))、 半导体存储器(诸如随机存取存储器(RAM)、只读存储器(ROM)、 可编程只读存储器(PROM))等。传送介质包含但不限于经由无线通信 网络、互联网、内部网、基于电话/调制解调器的网络通信、硬连线/电缆 通信网络、卫星通信以及其它固定或移动网络系统/通信链路的传输。

虽然已经公开了特定的示例实施例,但是本领域的技术人员将理解的 是,在不背离本发明的精神和范围的情况下,能够对特定示例实施例进行 改变。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号