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

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

Info

Publication number
CN104126179A
CN104126179A CN201380009921.8A CN201380009921A CN104126179A CN 104126179 A CN104126179 A CN 104126179A CN 201380009921 A CN201380009921 A CN 201380009921A CN 104126179 A CN104126179 A CN 104126179A
Authority
CN
China
Prior art keywords
processor
core
processor core
memory
data
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
CN201380009921.8A
Other languages
English (en)
Other versions
CN104126179B (zh
Inventor
T·J·塞特曼
K·A·赖斯基拉
H·希尔沃拉
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN104126179A publication Critical patent/CN104126179A/zh
Application granted granted Critical
Publication of CN104126179B publication Critical patent/CN104126179B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

用于多核处理器中的核心间通信的方法、装置和计算机程序产品
技术领域
实施例涉及集成电路计算机处理器的体系结构,以及更具体地涉及在多核处理器集成电路体系结构中的处理器单元之间的高效通信。
背景技术
传统电话已经演进到智能电话,该智能电话具有高级的计算能力和无线连通性。现代智能电话典型地包含:与移动电话的传统功能结合的高分辨率触摸屏、网络浏览器、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))等。传送介质包含但不限于经由无线通信网络、互联网、内部网、基于电话/调制解调器的网络通信、硬连线/电缆通信网络、卫星通信以及其它固定或移动网络系统/通信链路的传输。
虽然已经公开了特定的示例实施例,但是本领域的技术人员将理解的是,在不背离本发明的精神和范围的情况下,能够对特定示例实施例进行改变。

Claims (18)

1.一种方法,包括:
使用多核处理器中的共享的核心间通信单元将由生产者处理器核心产生的第一数据存储在位于存储器地址空间的第一存储器地址的第一标记存储器中;以及
响应于来自所述生产者处理器核心的第一类型的命令,使用所述共享的核心间通信单元将所述第一标记存储器连接到所述多核处理器的消费者处理器核心,以将来自所述第一标记存储器的所述第一数据加载到所述消费者处理器核心中。
2.根据权利要求1所述的方法,所述方法还包括:
响应于来自所述生产者处理器核心的第二类型的命令,使用所述共享的核心间通信单元将位于所述存储器地址空间的输入标记存储器地址的输入标记存储器连接到所述多核处理器的所述生产者处理器核心,以将来自所述第一标记存储器的输入数据加载到所述生产者处理器核心中;
使用所述共享的核心间通信单元存储由所述生产者处理器核心从所述输入数据产生的结果数据,所述结果数据是被存储在所述第一标记存储器中的所述第一数据;以及
响应于来自所述生产者处理器核心的所述第一类型的命令,使用所述共享的核心间通信单元将所述第一标记存储器连接到所述多核处理器的所述消费者处理器核心,以将来自所述第一标记存储器的所述结果数据加载到所述消费者处理器核心中。
3.根据权利要求2所述的方法,所述方法还包括:
使用所述共享的核心间通信单元将由所述消费者处理器核心从所述第一所述结果数据产生的第二结果数据存储在位于所述存储器地址空间的第二存储器地址的第二标记存储器中。
4.根据权利要求3所述的方法,所述方法还包括:
响应于来自所述消费者处理器核心的命令,使用所述多核处理器的第二共享的核心间通信单元将所述第二标记存储器连接到所述处理器核心的第三处理器核心,以将来自所述第二标记存储器的所述第二结果数据作为管线数据加载到所述第三处理器核心中。
5.根据权利要求4所述的方法,所述方法还包括:
使用所述第二共享的核心间通信单元将由所述第三处理器核心从所述第二结果数据产生的第三结果数据存储在位于所述存储器地址空间的第三存储器地址的第三标记存储器中。
6.根据权利要求3所述的方法,所述方法还包括:
响应于来自所述消费者处理器核心的命令,使用所述共享的核心间通信单元将所述第二标记存储器连接到所述多核处理器的所述生产者处理器核心,以将来自所述第二标记存储器的所述第二结果数据作为反馈数据加载到所述生产者处理器核心中。
7.一种装置,包括:
至少一个处理器;
包含计算机程序代码的至少一个存储器;
所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置至少:
使用多核处理器中的共享的核心间通信单元将由生产者处理器核心产生的第一数据存储在位于存储器地址空间的第一存储器地址的第一标记存储器中;以及
响应于来自所述生产者处理器核心的第一类型的命令,使用所述共享的核心间通信单元将所述第一标记存储器连接到所述多核处理器的消费者处理器核心,以将来自所述第一标记存储器的所述第一数据加载到所述消费者处理器核心中。
8.根据权利要求7所述的装置,所述装置还包括:
所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置至少:
响应于来自所述生产者处理器核心的第二类型的命令,使用所述共享的核心间通信单元将位于所述存储器地址空间的输入标记存储器地址的输入标记存储器连接到所述多核处理器的所述生产者处理器核心,以将来自所述第一标记存储器的输入数据加载到所述生产者处理器核心中;
使用所述共享的核心间通信单元存储由所述生产者处理器核心从所述输入数据产生的结果数据,所述结果数据是被存储在所述第一标记存储器中的所述第一数据;以及
响应于来自所述生产者处理器核心的所述第一类型的命令,使用所述共享的核心间通信单元将所述第一标记存储器连接到所述多核处理器的所述消费者处理器核心,以将来自所述第一标记存储器的所述结果数据加载到所述消费者处理器核心中。
9.根据权利要求8所述的装置,所述装置还包括:
所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置至少:
使用所述共享的核心间通信单元将由所述消费者处理器核心从所述第一所述结果数据产生的第二结果数据存储在位于所述存储器地址空间的第二存储器地址的第二标记存储器中。
10.根据权利要求9所述的装置,所述装置还包括:
所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置至少:
响应于来自所述消费者处理器核心的命令,使用所述多核处理器的第二共享的核心间通信单元将所述第二标记存储器连接到所述处理器核心的第三处理器核心,以将来自所述第二标记存储器的所述第二结果数据作为管线数据加载到所述第三处理器核心中。
11.根据权利要求10所述的装置,所述装置还包括:
所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置至少:
使用所述第二共享的核心间通信单元将由所述第三处理器核心从所述第二结果数据产生的第三结果数据存储在位于所述存储器地址空间的第三存储器地址的第三标记存储器中。
12.根据权利要求9所述的装置,所述装置还包括:
所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置至少:
响应于来自所述消费者处理器核心的命令,使用所述共享的核心间通信单元将所述第二标记存储器连接到所述多核处理器的所述生产者处理器核心,以将来自所述第二标记存储器的所述第二结果数据作为反馈数据加载到所述生产者处理器核心中。
13.一种计算机程序产品,所述的计算机程序产品包括:记录在计算机可读的非短暂性的存储介质上的计算机可执行的程序代码,当由计算机处理器执行所述计算机可执行的程序代码时,所述计算机可执行的程序代码使得装置至少执行以下:
使用多核处理器中的共享的核心间通信单元将由生产者处理器核心产生的第一数据存储在位于存储器地址空间的第一存储器地址的第一标记存储器中;以及
响应于来自所述生产者处理器核心的第一类型的命令,使用所述共享的核心间通信单元将所述第一标记存储器连接到所述多核处理器的消费者处理器核心,以将来自所述第一标记存储器的所述第一数据加载到所述消费者处理器核心中。
14.根据权利要求13所述的计算机程序产品,所述计算机程序产品包括:记录在计算机可读的非短暂性的存储介质上的计算机可执行的程序代码,当由计算机处理器执行所述计算机可执行的程序代码时,所述计算机可执行的程序代码使得装置至少执行以下:
响应于来自所述生产者处理器核心的第二类型的命令,使用所述共享的核心间通信单元将位于所述存储器地址空间的输入标记存储器地址的输入标记存储器连接到所述多核处理器的所述生产者处理器核心,以将来自所述第一标记存储器的输入数据加载到所述生产者处理器核心中;
使用所述共享的核心间通信单元存储由所述生产者处理器核心从所述输入数据产生的结果数据,所述结果数据是被存储在所述第一标记存储器中的所述第一数据;以及
响应于来自所述生产者处理器核心的所述第一类型的命令,使用所述共享的核心间通信单元将所述第一标记存储器连接到所述多核处理器的所述消费者处理器核心,以将来自所述第一标记存储器的所述结果数据加载到所述消费者处理器核心中。
15.根据权利要求14所述的计算机程序产品,所述计算机程序产品包括:记录在计算机可读的非短暂性的存储介质上的计算机可执行的程序代码,当由计算机处理器执行所述计算机可执行的程序代码时,所述计算机可执行的程序代码使得装置至少执行以下:
使用所述共享的核心间通信单元将由所述消费者处理器核心从所述第一所述结果数据产生的第二结果数据存储在位于所述存储器地址空间的第二存储器地址的第二标记存储器中。
16.根据权利要求15所述的计算机程序产品,所述计算机程序产品包括:记录在计算机可读的非短暂性的存储介质上的计算机可执行的程序代码,当由计算机处理器执行所述计算机可执行的程序代码时,所述计算机可执行的程序代码使得装置至少执行以下:
响应于来自所述消费者处理器核心的命令,使用所述多核处理器的第二共享的核心间通信单元将所述第二标记存储器连接到所述处理器核心的第三处理器核心,以将来自所述第二标记存储器的所述第二结果数据作为管线数据加载到所述第三处理器核心中。
17.根据权利要求16所述的计算机程序产品,所述计算机程序产品包括:记录在计算机可读的非短暂性的存储介质上的计算机可执行的程序代码,当由计算机处理器执行所述计算机可执行的程序代码时,所述计算机可执行的程序代码使得装置至少执行以下:
使用所述第二共享的核心间通信单元将由所述第三处理器核心从所述第二结果数据产生的第三结果数据存储在位于所述存储器地址空间的第三存储器地址的第三标记存储器中。
18.根据权利要求15所述的计算机程序产品,所述计算机程序产品包括:记录在计算机可读的非短暂性的存储介质上的计算机可执行的程序代码,当由计算机处理器执行所述计算机可执行的程序代码时,所述计算机可执行的程序代码使得装置至少执行以下:
响应于来自所述消费者处理器核心的命令,使用所述共享的核心间通信单元将所述第二标记存储器连接到所述多核处理器的所述生产者处理器核心,以将来自所述第二标记存储器的所述第二结果数据作为反馈数据加载到所述生产者处理器核心中。
CN201380009921.8A 2012-02-17 2013-01-28 用于多核处理器中的核心间通信的方法和装置 Active CN104126179B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/399,048 2012-02-17
US13/399,048 US8819345B2 (en) 2012-02-17 2012-02-17 Method, apparatus, and computer program product for inter-core communication in multi-core processors
PCT/FI2013/050088 WO2013121085A2 (en) 2012-02-17 2013-01-28 Method, apparatus, and computer program product for inter-core communication in multi-core processors

Publications (2)

Publication Number Publication Date
CN104126179A true CN104126179A (zh) 2014-10-29
CN104126179B CN104126179B (zh) 2017-02-22

Family

ID=48983243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380009921.8A Active CN104126179B (zh) 2012-02-17 2013-01-28 用于多核处理器中的核心间通信的方法和装置

Country Status (4)

Country Link
US (1) US8819345B2 (zh)
EP (1) EP2815322A4 (zh)
CN (1) CN104126179B (zh)
WO (1) WO2013121085A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590535A (zh) * 2017-09-08 2018-01-16 西安电子科技大学 可编程神经网络处理器
CN107634916A (zh) * 2016-07-19 2018-01-26 大唐移动通信设备有限公司 一种数据通信方法和装置
CN110764924A (zh) * 2018-07-27 2020-02-07 普天信息技术有限公司 一种多核处理器的核间通信方法及装置
CN114520711A (zh) * 2020-11-19 2022-05-20 迈络思科技有限公司 数据包的选择性重传
CN114706813A (zh) * 2022-05-05 2022-07-05 上海壁仞智能科技有限公司 多核异构片上系统、非对称同步方法、计算设备和介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589829A (zh) * 2014-09-15 2016-05-18 华为技术有限公司 基于多核处理器芯片的数据处理方法、装置以及系统
US10270773B2 (en) * 2015-11-04 2019-04-23 International Business Machines Corporation Mechanism for creating friendly transactions with credentials
US10235297B2 (en) 2015-11-04 2019-03-19 International Business Machines Corporation Mechanism for creating friendly transactions with credentials
US10083068B2 (en) 2016-03-29 2018-09-25 Microsoft Technology Licensing, Llc Fast transfer of workload between multiple processors
KR101700099B1 (ko) * 2016-10-11 2017-01-31 미디어젠(주) 하이브리드 음성인식 복합 성능 자동 평가시스템
US10467056B2 (en) 2017-05-12 2019-11-05 Google Llc Configuration of application software on multi-core image processor
US10924508B2 (en) * 2017-12-21 2021-02-16 Sonicwall Inc. Providing access to data in a secure communication
CN111930668B (zh) * 2020-08-03 2023-09-26 中国科学院计算技术研究所 运算装置、方法、多核智能处理器及多核异构智能处理器
CN112214444A (zh) * 2020-09-24 2021-01-12 深圳云天励飞技术股份有限公司 一种核间通信方法、arm、dsp及终端

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127098A (en) 1989-04-12 1992-06-30 Sun Microsystems, Inc. Method and apparatus for the context switching of devices
JP2519798B2 (ja) 1989-05-30 1996-07-31 富士通株式会社 多重プロセッサシステムにおけるシリアライズ機能の検証方式
US6356938B1 (en) * 1994-09-09 2002-03-12 The United States Of America As Represented By The Secretary Of The Navy System and method for transmission of information packets between provider and consumer processors
DE69733623T2 (de) 1996-03-15 2006-05-18 Sun Microsystems, Inc., Santa Clara Snoopbus für zerteite transaktionen und arbitrierungsverfahren
US5911052A (en) * 1996-07-01 1999-06-08 Sun Microsystems, Inc. Split transaction snooping bus protocol
US6061711A (en) 1996-08-19 2000-05-09 Samsung Electronics, Inc. Efficient context saving and restoring in a multi-tasking computing system environment
US6463532B1 (en) 1999-02-23 2002-10-08 Compaq Computer Corporation System and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system through the use of shared storage resources
US6959316B2 (en) 2001-02-01 2005-10-25 Nokia Mobile Phones Limited Dynamically configurable processor
US7225446B2 (en) 2001-02-20 2007-05-29 Pts Corporation Context preservation
US7430652B2 (en) * 2003-03-28 2008-09-30 Tarari, Inc. Devices for performing multiple independent hardware acceleration operations and methods for performing same
CN101803213B (zh) 2007-12-28 2014-12-03 诺基亚公司 使用软件定义无线电的多无线电实例
GB2457987A (en) 2008-03-06 2009-09-09 Nokia Corp Configuring a modular radio frequency communications device
CN102077181B (zh) * 2008-04-28 2014-07-02 惠普开发有限公司 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统
US7966519B1 (en) 2008-04-30 2011-06-21 Hewlett-Packard Development Company, L.P. Reconfiguration in a multi-core processor system with configurable isolation
JP5245722B2 (ja) 2008-10-29 2013-07-24 富士通株式会社 スケジューラ、プロセッサシステム、プログラム生成装置およびプログラム生成用プログラム
MX2011004514A (es) 2008-10-30 2011-05-24 Nokia Corp Radio definida por software.
CN101819564B (zh) 2009-02-26 2013-04-17 国际商业机器公司 协助在虚拟机之间进行通信的方法和装置
US20100332798A1 (en) 2009-06-29 2010-12-30 International Business Machines Corporation Digital Processor and Method
US8612595B2 (en) 2009-10-05 2013-12-17 Nokia Corporation Wireless resource sharing framework
US8407506B2 (en) * 2011-03-30 2013-03-26 Symbol Technologies, Inc. Dynamic allocation of processor cores running an operating system
US8699953B2 (en) * 2012-03-21 2014-04-15 Texas Instruments Incorporated Low-latency interface-based networking

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107634916A (zh) * 2016-07-19 2018-01-26 大唐移动通信设备有限公司 一种数据通信方法和装置
CN107634916B (zh) * 2016-07-19 2020-11-03 大唐移动通信设备有限公司 一种数据通信方法和装置
CN107590535A (zh) * 2017-09-08 2018-01-16 西安电子科技大学 可编程神经网络处理器
CN110764924A (zh) * 2018-07-27 2020-02-07 普天信息技术有限公司 一种多核处理器的核间通信方法及装置
CN114520711A (zh) * 2020-11-19 2022-05-20 迈络思科技有限公司 数据包的选择性重传
CN114520711B (zh) * 2020-11-19 2024-05-03 迈络思科技有限公司 数据包的选择性重传
CN114706813A (zh) * 2022-05-05 2022-07-05 上海壁仞智能科技有限公司 多核异构片上系统、非对称同步方法、计算设备和介质

Also Published As

Publication number Publication date
EP2815322A2 (en) 2014-12-24
EP2815322A4 (en) 2016-05-18
CN104126179B (zh) 2017-02-22
US8819345B2 (en) 2014-08-26
WO2013121085A3 (en) 2013-10-24
US20130219130A1 (en) 2013-08-22
WO2013121085A2 (en) 2013-08-22

Similar Documents

Publication Publication Date Title
CN104126179A (zh) 用于多核处理器中的核心间通信的方法、装置和计算机程序产品
CN107092573B (zh) 用于异构计算系统中的工作窃取的方法和设备
EP2003548B1 (en) Resource management in multi-processor system
US10923463B2 (en) Method and machine-readable medium for configuring processors with base dies having landing slots
CN101939732B (zh) 在电子计算器系统中用于广播系统管理中断至其它处理器之机制
CN109062617A (zh) 一种支持多类型设备的平台的应用方法、移动终端
US9274904B2 (en) Software only inter-compute unit redundant multithreading for GPUs
CN103119912A (zh) 多处理器计算平台中的处理器间通信技术
CN105793819A (zh) 包括混合处理器核的片上系统(soc)
CN102567258B (zh) 多维dma传输装置与方法
CN105683905A (zh) 在多核心处理器中并行功能的高效率硬件分派及相关的处理器系统、方法及计算机可读媒体
CN110825690B (zh) 多核处理器的核间通信方法及装置
CN114564435A (zh) 异构多核芯片的核间通信方法、装置及介质
WO2021239090A1 (zh) 授信处理方法、装置、设备及系统
WO2020263414A1 (en) Dynamic allocation of computing resources
US8769244B2 (en) SIMD parallel computer system, SIMD parallel computing method, and control program
CN112114983B (zh) 一种基于共享内存的通信方法、装置和设备
CN109597697A (zh) 一种资源撮合处理方法及装置
CN115775199B (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
CN113553292B (zh) 一种向量处理器及相关数据访存方法
CN105718990A (zh) 细胞阵列计算系统以及其中细胞之间的通信方法
US20130151817A1 (en) Method, apparatus, and computer program product for parallel functional units in multicore processors
CN114281558A (zh) 多核处理器、用于多核处理器的方法及相应产品
CN114924792A (zh) 指令译码单元、指令执行单元及相关装置和方法
CN114281559A (zh) 多核处理器、用于多核处理器的同步方法及相应产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160113

Address after: Espoo, Finland

Applicant after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Applicant before: Nokia Oyj

C14 Grant of patent or utility model
GR01 Patent grant