基于单一指令集微处理器运算单元的可配置多核/众核系统的制作方法

文档序号:6469581阅读:116来源:国知局
专利名称:基于单一指令集微处理器运算单元的可配置多核/众核系统的制作方法
技术领域
本发明涉及集成电路设计领域,尤其涉及一种基于微处理器核、微处理器运算单
元的单一指令集可配置多核/众核系统。
背景技术
随着信息化的普及、生活水平的提高,消费者需要把更多的功能集成到同一款电 子产品中,使得在许多应用中同时具有智能控制和数字信号处理能力,如数字电视机顶盒, 既需要能对用户的操作有正确、快速的反应,又需要对音、视频信号进行高效解码。
微处理器(CPU)能支持操作系统,可以运行一般的应用程序,并能根据程序访问、 处理随机的指令和数据,能很好的完成跳转等不规则操作,但是对音、视频等流数据的处理 能力相对较弱。而数字信号处理器(DSP)正好与之相反,具有很强的流处理能力。因此,在 同一款芯片中集成CPU核和DSP核,并通过一些互连策略进行交互,可以同时发挥两种处理 器的优势。通过两种核的集成加速个人通信机、智能电话、无线网络产品的开发,同时可以 简化设计,减小板级系统复杂度,降低功耗和整个系统的成本。 CPU与DSP的融合能解决既需要智能控制,又需要流处理的需求,然而更高级的用 户接口和应用程序对嵌入式系统提出了更高的并行处理要求。简单采用增加DSP核的方法 可以进一步提高嵌入式CPU的性能,但这种方法存在一定的局限性。目前的数字信号处理 算法中依然存在大量必须串行执行的程序,无法被很好的分割。当DSP核达到一定数量后, 性能就无法再随着核数量的增加而提升了 。此外,随着半导体制造工艺的不断提升,芯片内 部的工作频率已大大高于其外部存储器的工作频率,多个DSP核同时进行访问外部存储器 所导致访问外部存储器等待时间过长的问题也已经成为制约系统性能的一大瓶颈。
经对现有技术的文献检索发现,国外已有成熟的CPU与DSP融合的结构,如美国德 州仪器公司(TI)的达芬奇系列处理器,要求有两种不同的编译系统,分别编译CPU和DSP 各自的指令集。美国斯坦福大学的Imagine处理器则采用了两级编译方式流级(stream) 编译和核心级(Kernel)编译,分别在主CPU和Imagine上运行。无论两种编译系统还是两 级编译方式,都会大大增加应用软件开发的复杂性和软件调试的难度。
在多核处理器方面,以美国英特尔公司(Intel)和超威半导体公司(AMD)的多核 处理器最为典型,都是简单地将两个或多个复杂的微处理器内核叠加在一起。多核处理器 中每个微处理器核都包含有缓存,为解决不同核内缓存数据的一致性问题,微处理器核之 间必须频繁交换数据,降低了整个多核处理器的效率。尽管多个内核之间可以进行并行运 算,但就整体而言,无法实现真正的流水线操作。此外,在软件方面,对于多核处理器,需要 有并行编程的思想才有可能充分利用资源,然而操作系统对资源的分配和管理并没有本质 的改变,多是以对称的方式进行平均分配。并且,多数软件并没有充分考虑到双核乃至多核 的运行情况,导致线程平均分配的时间以及线程之间的交换数据的时间都会大大增加,尤 其在线程需要反复访问内存的时候,效率损失更为严重。

发明内容
本发明针对现有技术的不足,提出了一种基于微处理器核、微处理器运算单元的 单一指令集可配置多核/众核系统,用以解决多核系统中工作负荷分配困难、访问外部存 储器效率低及使用不同编译系统带来的软件开发与调试的复杂性问题。
本发明采用以下技术方案实现 本发明所述基于单一指令集微处理器运算单元的的可配置多核/众核系统,包括 微处理器核,处理单元,仲裁器,DMA控制器,输入分配器和输出分配器,其中微处理器核, 用于执行操作系统以及应用程序中非密集运算部分,并且负责对处理单元的配置;处理单 元,用于执行密集运算中的乘法、加/减法、乘加/减、累加、移位、提取、交换操作,每个处理 单元完成一条或多条乘法、加/减法、乘加/减、累加、移位、提取、交换操作;仲裁器,用于仲 裁微处理器核和处理单元对外部存储器的访问请求;DMA控制器,用于直接配置处理单元 中的存储器;输入分配器,用于将取自仲裁器的数据分配给不同处理单元;输出分配器,用 于从不同处理单元取得数据并送往仲裁器。 本发明所述微处理器核和处理单元包含的指令集均是同一指令集的子集,可由同 一编译器编译;完成应用程序的编译后,使用同一个后编译器进行机器码分解,确定每个处 理单元的工作内容及负荷。 本发明所述微处理器核包括运算单元、寄存器堆、程序计数器、中断/异常控制 器、存储管理单元和缓存。 本发明所述处理单元包括运算单元、寄存器堆、本地指令存储器、本地数据存储器 和程序计数器。 本发明所述基于单一指令集微处理器运算单元的的可配置多核/众核系统中处 理单元的数目是不固定的,具体数目可以根据实际应用需求进行扩展。 本发明所述的基于单一指令集微处理器运算单元的可配置多核/众核系统,其特 征在于所述微处理器核搭配若干处理单元,在执行时,首先由微处理器核运行操作系统,处 理单元处于关闭状态,微处理器核可以根据应用程序要求开启处理单元、配置处理单元连 接关系、配置处理单元中本地指令存储器和本地数据存储器;所术微处理器核也可以根据 应用程序要求开启处理单元、配置处理单元连接关系,配置DMA控制器,由DMA控制器配置 处理单元中本地指令存储器和本地数据存储器。 本发明所述处理单元间互连是通过片上网络灵活实现的,任意两个处理单元间均 可构成前后级连接关系。 本发明所述微处理器核配置处理单元,可以根据应用程序要求将所有处理单元串 行连接成一个串行连接结构,处理密集运算;也可以根据应用程序要求将处理单元分组,分 别连接成多个串行连接结构,不同串行连接结构可以并行处理不同密集运算,也可以并行 处理相同密集运算;也可以根据应用程序要求将处理单元分组,分别连接成多个串行连接 结构,其中部分串行连接结构并行处理不同密集运算,之后再与其他串行连接结构串行连 接处理其他密集运算。本发明所述处理单元间的连接关系可以在运行期间任意时刻根据应 用程序的要求进行调整。 本发明所述每一个多个处理单元连接而成的结构中,第一个处理单元的输入数据
5通过仲裁器、输入分配器取自外部存储器,最后一个处理单元的结果通过输出分配器、仲裁
器送回外部存储器,其余每个处理单元的输入数据取自前一级处理单元,输出数据送往后
一级处理单元,所述前一级处理单元与后一级处理单元之间通过FIFO连接。 本发明所述基于单一指令集微处理器运算单元的的可配置多核/众核系统中的
处理单元通过输入分配器和输出分配器与仲裁器连接,微处理器核、输入分配器和输出分
配器通过仲裁器与外部存储器连接。 本发明所述基于单一指令集微处理器运算单元的的可配置多核/众核系统中的 处理单元的数目不是固定的,可以根据应用需求确定。 本发明具有的有益效果是可以根据密集运算类应用程序的特点,由微处理器核 配置处理单元的连接关系、本地指令存储器和本地数据存储器,得到适合特定应用的多核 结构,并在编译过程中将全部密集运算均衡分配到不同处理单元,减轻每个处理单元的工 作负荷;每个处理单元能执行多条指令,缓解了访问外部存储器等待时间过长、效率低的问 题;同时,微处理器核、处理单元包含的指令集均是同一指令集的子集,可由同一编译器编 译,能减轻软件开发的工作量。


图1为本发明所提出的基于单一指令集微处理器运算单元的的可配置多核/众核 系统架构。 图2为本发明中微处理器核结构图。 图3为本发明中处理单元结构图。 图4为本发明中处理单元间数据传输结构举例。 图5为本发明中处理单元连接形成的结构举例一。 图6为本发明中处理单元连接形成的结构举例二。 图7为本发明中可配置多核/众核系统配置、执行的流程图。 图8为本发明中微处理器核和处理单元包含指令集的关系图。
具体实施例方式
下面结合附图对本发明的实施例作详细说明。本实施例根据本发明的技术方案实 施,但本发明的保护范围不限于下述的实施例。 本发明的技术思路是对处理单元串行连接形成的结构串行或并行或串并混合连 接,用以处理密集运算。首先由微处理器核运行操作系统和应用程序,根据应用程序中的指 令配置处理单元,开启或关闭处理单元,确定处理单元间连接关系,再配置各处理单元的本 地指令存储器和本地数据存储器,之后通知处理单元开始处理密集运算。完成上述配置后, 微处理器核进入等待状态或继续进行与处理单元执行的密集运算无关的程序,并随时根据 程序要求通知处理单元停止处理密集运算,或重新配置处理单元,进行新的密集运算。
本发明提出的可配置多核/众核系统中处理单元的数目是不固定的,具体数目可 以根据实际应用需求进行扩展。下面以包含四个处理单元的系统为实施例。该包含四个处 理单元的实施例根据本发明的技术方案实施,但本发明的保护范围不限于下述的包含四个 处理单元的实施例。
6
在图1中,本发明所述基于单一指令集微处理器运算单元的的可配置多核/众核 系统包括微处理器核(201),处理单元(301),仲裁器(IOI),DMA控制器(104),输入分配器 (102)和输出分配器(103),其中 微处理器核(201),用于执行操作系统以及应用程序中非密集运算部分,并且负责 对处理单元的配置。配置包括对处理单元连接关系的配置、对处理单元内本地指令存储器 内数据和本地数据存储器内数据的配置以及通知处理单元开始进行密集运算或结束密集 运算。 处理单元(301),用于执行密集运算中的乘法、加/减法、乘加/减、累加、移位、提 取、交换操作。每个处理单元可以只完成一条乘法、加/减法、乘加/减、累加、移位、提取、 交换操作,但在多数情况下,每个处理单元完成多条乘法、加/减法、乘加/减、累加、移位、 提取、交换操作。 仲裁器(101),用于仲裁微处理器核和处理单元对外部存储器的访问请求。 DMA控制器(104),用于直接配置处理单元中的存储器。 输入分配器(102),用于将取自仲裁器的数据分配给不同处理单元。 输出分配器(103),用于从不同处理单元取得数据并送往仲裁器。 本发明提出的可配置多核/众核系统中采用处理单元只与输入分配器和输出分
配器连接,微处理器核(201)、输入分配器(102)和输出分配器(103)通过仲裁器(101)与
外部存储器连接,由仲裁器(101)判决多核对外部存储器的访问请求,结构简单,免去了复
杂互联结构,减少了对外引脚的数目。全部密集运算均衡分配到不同处理单元,减轻每个处
理单元的工作负荷。全部处理单元分为两组,每组中除第一级处理单元的数据输入和最后
一级处理单元的数据输出分别与输入分配器(102)和输出分配器(103)连接外,所有处理
单元均首尾相连,减少了能同时访问外部存储器的处理单元的数目,缓解了多核/众核结
构中大量核同时访问外部存储器带来的性能瓶颈。每个处理单元执行多条操作,则数据从
进入处理单元到输出需要多个周期,两次取数之间的周期间隔数相应增加,缓解了芯片内
部工作频率高于外部存储器工作频率导致的访问外部存储器等待时间过长的问题。 在图2中,微处理器核(201)包括运算单元、寄存器堆(205)、程序计数器(206)、 中断/异常控制器(208)、存储管理单元(207)和缓存。运算单元由乘除法器(203)和算术 逻辑运算器(204)组成。缓存由指令缓存(202)和数据缓存(209)组成。
在图2中,微处理器核(201)包括运算单元、寄存器堆(205)、程序计数器(206)、 中断/异常控制器(208)、存储管理单元(207)和缓存。运算单元由乘除法器(203)和算术 逻辑运算器(204)组成。缓存由指令缓存(202)和数据缓存(209)组成。
在图3中,处理单元(301)包括运算单元(303)、寄存器堆(205)、本地指令存储器 (302)、本地数据存储器(304)和程序计数器(206)。运算单元(303)基于微处理器核(201) 的运算单元,有所增强,除微处理器核(201)支持的所有算术逻辑运算和乘除法运算外,增 加了适合大规模密集数据运算的指令。通过微处理器核(201)或DMA控制器(104)配置, 本地指令存储器(302)用于存储处理单元(301)将用到的指令。通过微处理器核(201)或 DMA控制器(104)配置,本地数据存储器(304)用于存储处理单元(301)将用到的数据或 参数。本地指令存储器(302)、本地数据存储器(304)与微处理器核(201)中的指令缓存 (202)和数据缓存(209)不同,其中内容不是外部存储器内容的子集,因此没有数据一致性问题,降低了集成电路设计的复杂度。 图4给出了处理单元间数据传输结构的一种例子。前一级处理单元(301)的两路 数据通过两组FIFO (401)传送到后一级处理单元(301)。每个处理单元(301)都有与其配 套的独立的FIF0(401)。可以看出,连接到同一个后一级处理单元的前一级处理单元的数目 可以是任意的,采用这种结构能增加多核/众核系统配置的灵活性。 本发明提出的可配置多核/众核系统中处理单元间互连是通过片上网络灵活实 现的,任意两个处理单元间均可构成前后级连接关系。下面以包含四个处理单元的系统举 例给出了处理单元间互连的两种典型结构。这两种典型结构根据本发明的技术方案实施, 但本发明的保护范围不限于下述的两种典型结构。 图5给出了处理单元间互连的一种例子。首先,四个处理单元(301)分为第一组 (501)和第二组(502),每组内部都配置为串行连接。然后配置第一组(501)的数据输出到 第二组(502)的数据输入,最终构成完全串行的多核系统。 图6给出了处理单元间互连的另一种例子。首先,四个处理单元(301)分为第一 组(601)、第二组(602)和第三组(603)。第一组(601)内部配置处理单元(301)为并行连 接,然后配置第一组(601)与第二组(602)串行连接,再配置第二组(602)的数据输出到第 三组(603)的数据输入,最终构成完全串、并混合连接的多核系统。 下面给出了一种启动、检测、配置流程。该流程根据本发明的技术方案实施,但本 发明的保护范围不限于下述的流程。 在图7中,首先在步骤一 (701)由微处理器核(201)运行操作系统或应用程序,并 在步骤二 (702)检测操作系统或应用程序中的是否有特定配置指令。如没有特定配置指 令,则返回步骤一 (701)继续运行操作系统或应用程序;如有特定配置指令,则进入步骤三
(703) 根据配置指令配置处理单元(301)的连接关系,再进入步骤四(704)依次配置各处理 单元本地指令存储器和本地数据存储器,并进入步骤五(705)检测是否所有处理单元的本 地指令存储器和本地数据存储器均已配置完毕。如未配置完毕,则返回步骤四(704),如配 置完毕,则进入步骤六(706)通知处理单元(301)开始密集运算,之后进入步骤七(707)微 处理器核(201)继续执行其他与处理单元(301)执行的密集运算无关的程序。其中,步骤四
(704) 和步骤五(705)时可以由微处理器核(201)直接配置和检测各处理单元本地指令存 储器和本地数据存储器,也可以由微处理器核(201)配置DMA控制器(104)后,由DMA(104) 控制器直接配置和检测各处理单元本地指令存储器和本地数据存储器。 图8为本发明所述微处理器核(201)和处理单元(301)包含指令集的关系图。其 中,完整指令集(801)包含三部分第一部分(802)、第二部分(803)和第三部分(804)。第 一部分(802)包含与控制相关的指令,如异常、陷入、配置指令;第二部分(803)包含微处理 器核(201)中乘法器(203)和算术逻辑运算器(204)支持的所有运算指令;第三部分(804) 包含处理单元(301)中运算单元(303)支持的除第二部分(803)指令外的所有运算指令。 微处理器核(201)支持的指令集子集为第一部分(802)和第二部分(803)的合集;处理单 元(301)支持的指令集子集为第二部分(803)和第三部分(804)的合集。
权利要求
一种基于单一指令集微处理器运算单元的可配置多核/众核系统,其特征在于包括微处理器核,处理单元,仲裁器,输入分配器和输出分配器,其中微处理器核,用于执行操作系统以及应用程序中非密集运算部分,并且负责对处理单元的配置;处理单元,用于执行密集运算中的乘法、加/减法、乘加/减、累加、移位、提取、交换操作,每个处理单元完成一条或多条乘法、加/减法、乘加/减、累加、移位、提取、交换操作;仲裁器,用于仲裁微处理器核和处理单元对外部存储器的访问请求;DMA控制器,用于直接配置处理单元中的存储器;输入分配器,用于将取自仲裁器的数据分配给不同处理单元;输出分配器,用于从不同处理单元取得数据并送往仲裁器;所述微处理器核和处理单元包含的指令集均是同一指令集的子集,可由同一编译器编译;完成应用程序的编译后,使用同一个后编译器进行机器码分解,确定每个处理单元的工作内容及负荷。
2. 根据权利要求1所述的基于单一指令集微处理器运算单元的可配置多核/众核系 统,其特征在于所述微处理器核包括运算单元、寄存器堆、程序计数器、中断/异常控制器、 存储管理单元和缓存。
3. 根据权利要求1所述的基于单一指令集微处理器运算单元的可配置多核/众核系 统,其特征在于所述处理单元包括运算单元、寄存器堆、本地指令存储器、本地数据存储器 和程序计数器。
4. 根据权利要求l、3所述的基于单一指令集微处理器运算单元的可配置多核/众核系 统,其特征在于所述处理单元的数目是不固定的,具体数目可以根据实际应用需求进行扩展。
5. 根据权利要求1所述的基于单一指令集微处理器运算单元的可配置多核/众核系 统,其特征在于所述微处理器核搭配若干处理单元,在执行时,首先由微处理器核运行操作 系统,处理单元处于关闭状态,微处理器核可以根据应用程序要求开启处理单元、配置处理 单元连接关系、配置处理单元中本地指令存储器和本地数据存储器。
6. 根据权利要求1所述的基于单一指令集微处理器运算单元的可配置多核/众核系 统,其特征在于所述微处理器核搭配若干处理单元,在执行时,首先由微处理器核运行操作 系统,处理单元处于关闭状态,微处理器核可以根据应用程序要求开启处理单元、配置处理 单元连接关系,配置DMA控制器,由DMA控制器配置处理单元中本地指令存储器和本地数据 存储器。
7. 根据权利要求l、5、6所述的基于单一指令集微处理器运算单元的可配置多核/众核 系统,其特征在于所述处理单元间互连是通过片上网络灵活实现的,任意两个处理单元间 均可构成前后级连接关系。
8. 根据权利要求l、5、6、7所述的基于单一指令集微处理器运算单元的可配置多核/众 核系统,其特征在于由所述微处理器核配置处理单元,可以根据应用程序要求将所有处理 单元串行连接成一个串行连接结构,处理密集运算。
9. 根据权利要求l、5、6、7所述的基于单一指令集微处理器运算单元的可配置多核/众 核系统,其特征在于由所述微处理器核配置处理单元,可以根据应用程序要求将处理单元分组,分别连接成多个串行连接结构,不同串行连接结构可以运行不同的程序段,并行进行 不同的指令、不同数据的密集运算,也可以运行相同的程序段、以单指令多数据流方式进行 相同指令、不同数据的密集运算。
10. 根据权利要求1、5、6、7所述的基于单一指令集微处理器运算单元的可配置多核/ 众核系统,其特征在于由所述微处理器核配置处理单元,可以根据应用程序要求将处理单 元分组,分别连接成多个串行连接结构,其中部分串行连接结构并行处理不同密集运算,之 后再与其他串行连接结构串行连接处理其他密集运算。
11. 根据权利要求1、5、6、7、8、9、10所述的基于单一指令集微处理器运算单元的可配 置多核/众核系统,其特征在于由所述微处理器核配置处理单元,处理单元间的连接关系 可以在运行期间任意时刻根据应用程序的要求进行调整。
12. 根据权利要求1、5、6、7、8、9、10、11所述的基于单一指令集微处理器运算单元的 可配置多核/众核系统,其特征在于,在每一个所述多个处理单元连接而成的结构中,第一 个处理单元的输入数据通过仲裁器、输入分配器取自外部存储器,最后一个处理单元的结 果通过输出分配器、仲裁器送回外部存储器,其余每个处理单元的输入数据取自前一级处 理单元,输出数据送往后一级处理单元,所述前一级处理单元与后一级处理单元之间通过 FIFO连接。
全文摘要
本发明属于集成电路设计领域,具体为一种基于单一指令集微处理器运算单元的可配置多核/众核系统,包括微处理器核,处理单元,仲裁器,DMA控制器、输入分配器和输出分配器。其中微处理器核用于执行操作系统以及应用程序中非密集运算部分,并且负责对处理单元的配置;处理单元用于执行一条或多条密集运算操作;处理单元通过输入分配器和输出分配器与仲裁器连接,并由仲裁器仲裁微处理器核和处理单元对外部存储器的访问请求。微处理器核和处理单元包含的指令集均是同一指令集的子集,可由同一编译器编译。本发明有效解决多核系统中工作负荷分配困难、访问外部存储器效率低及使用不同编译系统带来的软件开发与调试的复杂性问题。
文档编号G06F9/30GK101751373SQ200810203778
公开日2010年6月23日 申请日期2008年11月28日 优先权日2008年11月28日
发明者任浩琪, 林正浩, 耿红喜 申请人:上海芯豪微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1