基于星型互联架构的片上异构多核系统的制作方法

文档序号:6446112阅读:254来源:国知局
专利名称:基于星型互联架构的片上异构多核系统的制作方法
技术领域
本发明属于片上多核异构系统,具体涉及一种基于星型互联架构的片上异构多核系统及其使用的通信模型。
背景技术
由于互联策略对片上系统的性能影响很大,而可重构系统要求硬件平台具有很强的可扩展性,因此在现场可编程门阵列(Field Programming GateArray, FPGA)这种资源受限的硬件平台上,如何选择一种高效、可扩展、低开销的互联架构是片上系统(System on Chip, SoC)设计者和开发人员要研究的重要问题。主流的片上高效通信机制有两种,一是基于总线共享存储(主要是Cache)的结构,一种是基于其他交叉开关等片上互连的结构。随着以IP核antellectual Property core)复用为基础的SoC设计技术的发展,工业界及研究组织积极从事相关IP互联标准方案的制定工作,总线是目前SoC设计中广为使用的IP核互连方式。从目前的研究和发展看,影响力较大的常用总线有ARM的 AMBA(Advanced Microcontroller BusArchitecture)总线、IBM 的 CoreConnect 总线、 Silicore 公司的 Wishbone 总线、Altera 的 Avalon 总线、PlamchIP 的 CoreFrame 总线、 MIPS 的 EC Interface 总线、Altera 的 Atlantic Interface 总线、IDT 的 IPBus (IDT Peripheral Bus)总线等。总体来说,这种基于总线的互联方式虽然技术比较成熟,效率也较高,但是各个模块之间的互联方式比较固定,可扩展性不强,不适用于进行可重构的片上系统研究。另一方面,基于交叉开关和MESH等片上互连的结构是指每个处理核具有各自独立的处理单元和存储层次,各个处理核之间通过片上总线网络相互连接。同时,采用这种互连方式时,由于各个处理核并不共享存储(Cache等),因而一般采用基于信箱机制的消息通信方式。这种互联方式一般可扩展性比较高,但是占用的硬件资源较多,会加大布局布线的难度和硬件开销。总的来说,目前的片上互联结构的可扩展性,高性能,低开销等几个条件很难同时满足。本发明因此而来。
发明内容为了克服背景技术中存在的不足,本发明的一个目的在于提供一种基于星型互联架构的片上异构多核系统,本发明的另一个目的在于提供所述片上异构多核系统使用的通信模型,本发明可通过使用基于点对点互联总线的星型结构以及总线机制的可重构策略来提高访问的吞吐率和可扩展性。为了解决现有技术中的这些问题,本发明提供的技术方案是—种基于星型互联架构的片上异构多核系统,包括核心调度处理器、至少一个计算处理器和至少一个硬件IP核,其特征在于所述核心调度处理器与计算处理器之间、核心调度处理器和硬件IP核之间均采用基于点对点总线的片上网络进行互联形成星型互联架构,所述核心调度处理器与计算处理器之间基于星型互联架构的通信模型进行消息传递,所述通信模型采用非阻塞接口实现优选的,所述核心调度处理器负责从用户接收任务请求,并将任务请求通过基于星型互联架构发送给计算处理器。优选的,所述计算处理器负责从核心调度处理器接收任务请求并进行任务计算; 在计算结束后,将结果通过基于星型互联架构发送到核心调度处理器。优选的,所述核心调度处理器和计算处理器间设置软件接口,所述核心调度处理器和硬件IP核间设置硬件接口 ;所述硬件接口为在硬件IP核外部实现的接口封装,将硬件IP核转换成直接挂载到星型互联架构上的硬件模块;所述软件接口为计算处理器在用户提供的任务函数基础上进行封装且使封装与硬件的接口时序保持一致。优选的,所述硬件接口中定义信号和变量包含与原硬件IP核端口对应的信号、中间变量、输入输出缓冲区和状态机;所述状态机设置四个基本的状态Idle、Read、 Execution和Write ;Idle为空闲状态,等待总线上的数据,Read阶段负责从总线上读入原硬件IP核所需要的所有输入数据到输入缓冲区,Execution阶段完成原硬件IP核的功能, 并将结果写入输出缓冲区,Write阶段将输出缓冲区中的数据发送到总线上。本发明的另一目的在于提供一种基于星型互联架构的片上异构多核系统进行通信的方法,其特征在于所述方法包括核心调度处理器从用户接收任务请求,将任务直接划分为不同的子任务并传输给计算处理器或硬件IP核;当存在数据依赖时,子任务在通过核心调度处理器进行调度时串行执行的步骤。优选的,所述方法中核心调度处理器首先发送请求任务的类型ID到计算处理器, 然后发送请求任务的输入数据;计算处理器在收到任务ID之后进行判断,确定需要动态调用的任务模块;在收到计算数据的输入之后,将数据转发到对应的任务模块执行;在执行结束之后,计算处理器需要向核心调度处理器发送结果;在发送之前,需要首先发送任务 ID,然后再发送计算结果;核心调度处理器接收到任务ID时,触发计算处理器对应的中断; 然后从总线读取计算结果数据,并在中断处理函数中将计算结果返回给用户。本发明提出了一种基于星型互联架构的异构多核系统及其使用的通信机制,该机制在使用点对点互联的基础上构建了可重构的星型互联架构,并提供了对应的通信模型和编程接口,有很强的扩展性。本发明所述的片上异构多核系统,包括一个核心调度处理器, 至少一个计算处理器以及至少一个IP核构成,所述核心调度处理器与计算处理器和IP核之间采用基于点对点总线的片上总线进行互联,所述核心调度处理器与计算处理器之间的消息传递基于所述互联架构的通信模型。所述通信模型采用非阻塞接口实现。优选的,所述核心调度处理器负责从用户接收任务请求,并把任务请求通过互联结构发送给计算处理器。所述计算处理器负责从核心调度处理器接收任务请求并进行任务计算。所述核心调度处理器与计算处理器之间采用基于点对点总线的片上网络进行互联。本发明片上异构多核系统使用的通信接口,包括软件接口与硬件接口两种(1) 在硬件接口上,本发明在硬件IP核外部实现了一层接口封装,将其转换成可以直接挂载到星型互联架构上的硬件模块。在进行件转换时首先需要定义组件模块和使用的变量,同时为了保证原IP核的功能不因为总线数据的延迟而产生错误,将原IP核的所有输入数据和输出数据缓冲,只有从总线上获得了所有的输入数据后才开始执行原IP核的功能,只有原 IP核获得了所有的输出结果后,才将结果发送到总线。需要定义的信号和变量包含(1)与原IP核端口对应的信号、O)中间变量、(3)输入输出缓冲区、(4)状态机。状态机可以抽象为四个基本的状态(Idle,Read,Execution,feite),Idle为空闲状态,等待总线上的数据,Read阶段负责从总线上读入原IP核所需要的所有输入数据到输入缓冲区,Execution阶段完成原IP核的功能,并将结果写入输出缓冲区,Write阶段将输出缓冲区中的数据发送到总线上。(2)在软件接口上,所述核心调度处理器从计算处理器接收用户发送的任务请求之后,首先在本地进行任务的划分和决策,如果决策的结果是计算处理器,则通过总线将任务发送到计算处理器上执行。具体的工作流程如下①在发送数据之前,首先需要告知计算处理器请求任务的类型,然后发送请求任务的输入数据。这两种类型的数据均通过总线复用进行传输。②计算处理器在收到任务ID之后进行判断,确定需要动态调用的任务模块。接收任务ID的形式,可以考虑采用查询或者中断两种形式。③计算处理器在收到计算数据的输入之后,将数据转发到对应的功能模块执行。④在执行结束之后,计算处理器需要向核心调度处理器发送结果。在发送时,需要首先发送任务ID,然后再发送计算结果。⑤核心调度处理器接收到任务ID时,首先触发计算处理器对应的中断,然后获取计算结果。之后在中断处理函数中将计算结果返回给用户。与现有技术相比,本发明具有以下显著的优点1、本发明采用双总线架构,把存储阵列从逻辑上分为奇偶两个体,奇偶两个个体可同时并行工作。每个个体中又采取位扩展的策略,使用同一个控制器对他们进行命令控制,但是传输从PCI端来的不同字节的数据。这样,我们即能达到多片并行,又能减少控制器逻辑。2、本发明采用高速静态SRAM作为数据缓存。由于SRAM的读写速度比Flash要快的多,因此在本发明读写之前对数据进行缓冲,并掩盖了 Flash的内部编程时间,可以大大提高系统的吞吐率。
以下结合附图及实施例对本发明作进一步描述

图1是本发明基于星型互联架构的片上异构多核系统的系统架构示意图;图2是本发明基于星型互联架构的片上异构多核系统的软硬件封装接口示意图;图3是本发明基于星型互联架构的片上异构多核系统的硬件计算资源状态机;图4是本发明基于星型互联架构的片上异构多核系统的计算资源工作流程;图5是本发明基于星型互联架构的片上异构多核系统采用阻塞和非阻塞编程接口的调度时序图;1为计算处理器;2为硬件IP核;3为核心调度处理器。
具体实施方式
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 并可依照说明书的内容予以实施,以下结合具体实施例对上述方案做进一步说明。应理解,
5这些实施例是用于说明本发明而不限于限制本发明的范围。实施例如图1所示,本实施例得到的片上异构多核系统,由一个核心调度处理器3,3个计算处理器1以及3个IP核2构成,所述核心调度处理器与计算处理器和IP核之间采用基于点对点总线的片上总线进行互联,所述核心调度处理器与计算处理器之间的消息传递基于所述互联架构的通信模型。所述通信模型采用非阻塞接口实现。所述核心调度处理器负责从用户接收任务请求,并把任务请求通过互联结构发送给计算处理器。所述计算处理器负责从核心调度处理器接收任务请求并进行任务计算。所述核心调度处理器与计算处理器之间采用基于点对点总线的片上网络进行互联。考虑到本实施例所涉及的计算单元之间传递的数据规模比较小,而数据的传递主要体现在不同的任务结果之间,因此计算资源之间的通讯主要采用消息传递机制。本实施例的互联模型可以基于下面两种互联机制点对点互联机制和星型总线架构。由于本发明主要基于片上多核平台,在同一芯片上对不同计算处理器传输的性能要求比较高,因此比较适合用点对点的方式进行互联。在点对点的互联结构中包括一个基于先进先出规则的单向缓冲(FIFO),主要用于进行不同计算资源之间的数据传输和暂存。 核心调度处理器可以直接进行总线数据的读写。其访问机制封装成总线宏格式,可以在软件程序中直接调用,以实现软硬件模块的快速通信。进一步的,该点对点互联机制为双向互联。由于在核心调度处理器与计算单元之间要使用总线进行数据传输,就必须分别作为主设备或从设备连接到互联模块上。在发送任务时,调度处理器为主模块,而任务执行完毕之后结果从计算资源传回调度处理器时,调度处理器作为从模块。基于点对点总线,核心调度处理器与计算单元(计算处理器和硬件IP核)之间构成了一个星型网络。核心调度处理器通过总线与各个计算单元相连。图1为本发明由点对点总线扩展得到的星型总线架构。根据所述的系统架构,所有的计算数据在由应用程序传输到计算单元上执行之前都经过核心调度处理器,因此,核心调度处理器所进行的数据分配和转发策略是系统传输过程中的一个瓶颈。但是,采用基于点对点总线的星型网络可以有效解决各个计算单元在传输数据中引发的数据冲突问题。与此同时,由于应用程序划分为多个子任务在不同的计算单元上执行,而计算单元之间可能存在数据传输,因此需要确定各个计算单元之间的连接类型和方式。系统可以采取的互联和通讯策略主要有以下三种(1)可以针对应用程序对数据通路进行配置和重构。若不同计算单元之间存在互联,则在运行时,一个计算单元的输出可以直接作为其它计算单元的输入,而不需要通过核心调度处理器进行中转,形成完整的执行流。由于这种方案的硬件实现代价比较高,另外在传输之前还有一定的配置时间,故在数据量比较小时会造成较大程度的浪费。(2)可以采用通用的总线来实现计算处理器之间、IP核之间以及计算处理器与IP 核之间的数据通路。该方案为不同的计算单元提供了一条物理总线用于数据传输。然而即使采取此方案,虽然能够进行数据传输,但是依然不能解决数据冲突的问题,即不同的计算单元之间不能同时访问总线。在竞争发生时需要总线仲裁机制,从而降低数据传输的效率。
(3)各计算单元之间不进行直接互联。任务之间的数据依赖的判断和调度由核心处理器完成。核心调度处理器将任务直接划分为不同的子任务并传输给对应的计算单元, 当存在数据依赖时,子任务在通过核心处理器进行调度时串行执行。本发明优选采用第( 种方案,由核心调度处理器进行各个计算资源之间的任务分配和消息转发。采用这种方案避免了额外的硬件实现代价,并且将复杂的消息传递机制转化为任务划分和调度问题。计算任务的提供者分为硬件和软件两种,硬件计算单元指IP核资源,软件计算单元指计算处理器资源,任务在核心调度处理器上调度时需要分别发送到对应的计算单元上执行,因此需要提供一种统一的任务通信接口。本发明提供的通信接口通过总线宏来实现,其作用是将不同的任务发送到对应的软件和硬件计算单元上,在进行任务通信时,软件程序可以直接使用总线宏向用户提供的编程接口来实现任务和数据在总线上的传输。图2为核心调度处理器与软硬件计算单元之间的通信接口。任务的分配均由核心调度处理器向软硬件计算单元进行转发。为了保证传输的一致性,本发明所述的系统分别针对硬件任务和软件任务进行封装。下面分别针对软件接口和硬件接口进行描述。(1)硬件接口在硬件层次上,本发明针对IP核完成的功能、总线传输协议和通信接口,在硬件 IP核外部实现了一层接口封装,将其转换成可以直接挂载到总线上的硬件模块,以方便核心调度处理器进行传输。具体的硬件转换步骤如下1、定义封装后的硬件模块,模块的输入和输出信号与总线相匹配。2、将原功能IP核定义为此硬件模块中的一个功能单元。3、定义硬件模块中需要的内部信号和变量。为了保证原IP核的功能不因为总线数据的延迟而产生错误,将原IP核的所有输入数据和输出数据缓冲,当从总线上获取了所有的输入数据后才开始执行原IP核的功能。 同理,在IP核执行完毕之后,当从IP核获得了所有的输出结果后,才将结果发送到总线。因此,本发明实现了一个自动状态机,用来对信号的传输和时序进行控制。图3为硬件计算资源的状态机转换图。状态机可以抽象为四个基本的状态(Idle, Read, Execution, Write),Idle为空闲状态,等待总线上有新的访问请求和数据传输,Read 阶段负责从总线上读入原IP核所需要的所有输入数据到缓冲区,Execution阶段完成原IP 核的功能,并将结果写入输出缓冲区,Write阶段将输出缓冲区中的数据发送到总线上。(2)软件接口软件接口的实现主要是通过函数库的形式完成函数调用的封装。与硬件不同,由于软件计算单元能够完成多种计算任务,因此在执行任务之前,核心调度处理器首先必须指明请求的目标功能,以便软件计算单元进行查找和匹配。图4为计算处理器的工作流程。核心调度处理器接收用户发送的任务请求之后, 通过总线将任务发送到计算处理器上执行。具体的工作流程如下①在发送数据之前,首先传输请求任务的类型,该类型用任务ID进行表示。在任务ID发送完毕之后传输数据。这两种类型的数据均通过总线复用进行传输。②软件计算单元在收到任务ID之后进行判断, 确定需要调用的任务模块。③软件计算单元在收到数据输入之后,将数据转发到对应的功能模块执行。④在执行结束之后,计算单元需要向核心调度处理器发送结果。在发送时,需要首先发送任务ID,然后再发送计算结果。⑤核心调度处理器接收到任务ID时,首先触发计算处理器对应的中断,然后获取计算结果。之后在中断处理函数中将计算结果返回给用户。(3)调度处理器与计算单元之间的通信模型用户在调用阻塞接口时,需要等待数据从核心调度处理器返回才能进行后续程序的执行;而非阻塞形式则提供异步编程接口,用户首先通过编程接口将任务请求发送至调度处理器,然后可以进行其它的操作,在计算单元执行完毕之后,将执行的结果数据以中断的形式返回用户。图5为本发明采用阻塞和非阻塞接口的处理机制示意图。这两种具体的处理机制如下
采用阻塞式通信接口时,阻塞调用时,核心调度处理器提供的任务调用函数接口与指令系统类似,包括任务操作码和任务操作数。其中任务操作码表示用户调用的目标应用程序;操作数记录着需要进行计算的输入数据。通过阻塞式通信接口进行任务传输的流程如下①应用程序首先将请求发送到核心调度处理器上;②由核心调度处理器通过查找计算单元状态和计算执行时间,获得最优的目标计算单元,并向对应的计算单元上进行转发并执行;③发送完毕之后,将对应的计算单元标记为繁忙状态;④计算单元在执行过程中,核心调度处理器处于等待状态;⑤待计算单元将数据返回之后,核心调度处理器上的应用程序继续执行,并把该计算单元标记为空闲状态。而采用非阻塞通信接口时处理一般采用中断的形式完成。与阻塞调用类似,应用程序首先发送请求到核心调度处理器,如图中①所示。核心调度处理器在将任务发送到计算单元进行执行的过程中(②),应用程序可以继续执行当前任务。在计算单元计算完成时,数据传送回核心调度处理器(③)。核心调度处理器中包含一个中断控制器并提供对应的中断处理程序。该中断控制器检测每条核心调度处理器与计算单元之间的通信链路,当计算单元执行结束将数据传回核心调度处理器时,触发对应编号的中断。核心调度处理器在检测到中断之后,首先中断当前应用程序的执行(④),并调用中断处理函数(⑤)。中断处理函数的主要功能即为进行结果数据的赋值等操作。在中断函数处理结束之后,该计算单元标记为空闲状态,可以接收新的任务请求,同时应用程序可以继续执行(⑥)。本发明所述的片上多核系统中集成了一个中断控制器来控制所有计算单元的中断。因此在系统硬件平台初始化时,中断控制器对各个计算单元设置不同的优先级,在系统运行时,如果同时有两个计算单元返回数据,则优先处理高优先级的数据;而在先后到来的中断,在处理时采取先来先服务(First Come First Serve)的策略。在处理低优先级中断时,即使有高优先级中断触发,也需将当前中断处理结束后才处理其它的中断,即不支持中断嵌套。另外,核心调度处理器还提供状态查询功能,用户可以通过状态查询接口来查询当前任务的执行状态。应用程序可以调用状态查询接口来查看目标计算任务是否执行完毕。上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
权利要求1.一种基于星型互联架构的片上异构多核系统,包括核心调度处理器、至少一个计算处理器和至少一个硬件IP核,其特征在于所述核心调度处理器与计算处理器之间、核心调度处理器和硬件IP核之间均采用基于点对点总线的片上网络进行互联形成星型互联架构,所述核心调度处理器与计算处理器之间基于星型互联架构的通信模型进行消息传递, 所述通信模型采用非阻塞接口实现。
2.根据权利要求1所述的基于星型互联架构的片上异构多核系统,其特征在于所述核心调度处理器负责从用户接收任务请求,并将任务请求通过基于星型互联架构发送给计算处理器。
3.根据权利要求2所述的基于星型互联架构的片上异构多核系统,其特征在于所述计算处理器负责从核心调度处理器接收任务请求并进行任务计算;在计算结束后,将结果通过基于星型互联架构发送到核心调度处理器。
4.根据权利要求3所述的基于星型互联架构的片上异构多核系统,其特征在于所述核心调度处理器和计算处理器间设置软件接口,所述核心调度处理器和硬件IP核间设置硬件接口 ;所述硬件接口为在硬件IP核外部实现的接口封装,将硬件IP核转换成直接挂载到星型互联架构上的硬件模块;所述软件接口为计算处理器在用户提供的任务函数基础上进行封装且使封装与硬件的接口时序保持一致。
专利摘要本实用新型公开了一种基于星型互联架构的片上异构多核系统,包括核心调度处理器、至少一个计算处理器和至少一个硬件IP核,其特征在于所述核心调度处理器与计算处理器之间、核心调度处理器和硬件IP核之间均采用基于点对点总线的片上网络进行互联形成星型互联架构,所述核心调度处理器与计算处理器之间基于星型互联架构的通信模型进行消息传递,所述通信模型采用非阻塞接口实现。该系统提高访问的吞吐率和可扩展性。
文档编号G06F15/173GK202033745SQ201120061058
公开日2011年11月9日 申请日期2011年3月10日 优先权日2011年3月10日
发明者冯晓静, 周学海, 张军能, 李曦, 王超, 陈香兰 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1