0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究一种新的可配置处理器的异构多核线程级动态调度模型

电子工程师 来源:中国集成电路 作者:胡泊 付宇卓 2021-04-27 18:20 次阅读

本文针对基于可配置处理器的异构多核结构,提出一种新的线程级动态调度模型。此类异构多核系统中每个核分别针对某一应用做指令集扩展,调度器通过线程、处理器核以及指令集间的映射关系,动态调度线程至适合的处理器核,从而在没有大幅增加芯片面积的前提下,达到与每个核都

1.概述

多核处理器从结构上可以分为同构多核和异构多核两类。同构多核使用多个相同的处理核,通过并行处理提高系统性能;异构多核使用多个不同的处理核,增加并行性的同时还可针对特定应用做硬件加速,因此具有更好的加速比。不过,由于异构多核的核间指令集存在差异,动态调度较难实现。

本文针对基于可配置处理器的异构多核结构,提出一种新的线程级动态调度模型。此类异构多核系统中每个核分别针对某一应用做指令集扩展,调度器通过线程、处理器核以及指令集间的映射关系,动态调度线程至适合的处理器核,从而在没有大幅增加芯片面积的前提下,达到与每个核都具有全扩展指令集相近似的加速比,此外该模型还可以有效减少编程模型的复杂度。

2.新模型的数学描述

2.1 现有异构多核分析

同构多核核间无差异,因此动态调度容易实现,而异构多核动态调度可行与否取决于指令集结构设计。现有异构多核指令集结构设计大致可分为三类:

● 指令集完全不同

此类设计中,设计者选择不同功能导向的处理器核组成异构多核系统,每一种核针对某一类处理都具有较强功能,核之间的指令集存在巨大差异,因此动态调度在此类设计中无法实现,只能通过静态调度的方式完成任务指派[3]。

● 指令集完全相同

此类设计中,设计者选取具有相同指令集但硬件配置上有所不同的处理器核,组成异构多核系统[2]。

● 指令集部分相同

此类设计中,处理核心是一组可配置处理器,所有的处理核心具有一个公共的指令集,每个核心都可以根据应用增加一些扩展指令,以增强对应用某一方面的处理能力[4]。

2.2. 新模型的数学描述

本文提出的调度模型即针对基于可配置处理器的异构多核。该模型成立基于以下假设,每个核的指令集配置完成于芯片设计阶段,芯片一旦生产,任意一个核的指令集配置都不可修改。实际上,动态可配置指令集对芯片面积及功耗都会带来巨大消耗,因此现在市场上绝大部分可配置处理器都符合上述假设。为描述简单起见,下文中一个处理器核被称为core。

首先定义模型中使用的三个集合。

集合 C= {Xi|Xi是系统中某个core}

集合 I={Yi|Yi是系统中某种指令集}

集合 T={Zi|Zi是系统中某个线程}

对于上述集合,存在映射关系

f :C→∪Ii,Ii.I且Ii≠φ,即任意一个core必然存在一个I的非空子集Im与之对应,其实际意义表示该core可以运行集合Im所包含的指令。根据模型的成立条件,core的指令集在系统运行时不可修改,因此不同core对应的Im可能相同,但是每个core仅对应一个Im,故f是单射,即XIi∈C,Im.I,且Im ≠φ,f(Xi)=Im (式1)类似的。

还存在映射关系g:T→∪Ii,Ii.I且Ii≠φ,即任意一个线程必然存在一个I的非空子集In与之对应,其实际意义表示该线程必须运行在具有指令集In 的处理器上。任意一个时刻每个线程仅有一个In与之对应,此外不同的线程对应的In可能相同,故g也是单射,即Zi∈T,In.I,且In≠φ,g(Zi)=In (式2)根据上述公式,对任意的Xi,可以得到一个Im,任意的Zi,可以得到一个In,则公式(3)成立。

这是模型中的调度函数,当线程所需指令集是core指令集的子集,match(Im,In)值为1,表示线程Zi可以运行在处理器核Xi上。

3. 模型实现

上述模型可以有多种实现方式,本文参考位图的思想完成其中一种实现。

3.1. 三个集合的确定

考虑常用多核规模,32 种指令集已可满足指令集种类数量要求,因此该实现将无符号二进制32位整数的每一位对应一种指令集,其最低有效位为20,记为ISA1,最高有效位为231,记为ISA32,若可以运行指令集ISAm,则该无符号整数的第m位为1,故集合I在基于位图的实现中定义为I={ISAm无符号整数第m-1位为1,1≤m≤32}。

任意I中几个元素,对其依次做或运算(OR)得到一个新整数,该整数即可表示由这几个元素构成的I的子集。系统中所有的core具有公共指令集,将此指令集记为ISA1。

系统中每个core具有一个唯一编号,因此集合C= {0, 1, ……, n.1},n为系统中core的数量。

此外,根据线程的定义,不同的线程不能具有相同的线程句柄,因此T={所有线程句柄}。

3.2. 三个公式的实现

定义一个二维的无符号整数数组cpu_isa_map,数组每行第一个元素为core的编号,第二个元素为I的一个非空子集,表示该core可以运行的所有指令集,最后一行用于循环结束,第一个元素为无穷大(0xFFFFFFFF),第二个元素为空集。以core的编号对该数组遍历查询即可实现公式1。图1为该数组的一个例子。

POSIX线程标准中,每个线程具有pthread_attr_t结构体类型的属性参数,为了兼容POSIX标准,扩展该结构体,添加一个无符号整数变量runnable_isa,表示该线程可以运行的指令集集合。创建线程时需要显示设置runnable_isa,如果没有设置,该变量默认值为公共指令集ISA1,这样就实现了公式2。

对于公式3,首先根据调度器当前运行的core编号查询cpu_isa_map获得core支持的指令集core_isa,然后遍历线程调度器的就绪线程队列,将每个线程的runnable_isa属性与core_isa做与操作(AND),若结果不为0且runnable小于等于core_isa,则说明该core的指令集配置满足线程所需的运行要求。

即match(Im,In)为1,线程可以被运行,如果所有线程均无法运行在该核上,则返回空指针。图2为此算法实现,其中HEAD(state)为获得就绪线程队列的头指针,该队列尾指针的next指针为空指针。至此,模型已经全部实现完毕。

4. 实验结果

本文使用基于Xtensa处理器组成的异构多核系统,以Motion-JPEG作为测试程序对该模型进行实验分析。

4.1. 实验平台简介

Xtensa处理器是Tensilica公司推出的一种可配置处理器,该处理器除了具有一组固定的指令集之外,还可以通过TIE功能扩展指令集以加速程序运行。Tensilica公司提供了该处理器基于SystemC的仿真模型。本文的实验平台是由3个Xtensa处理器仿真模型组成的异构多核系统,分别记为core0,core1,core2。

本文节选自:中国集成电路

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19259

    浏览量

    229653
  • 仿真模型
    +关注

    关注

    1

    文章

    28

    浏览量

    12237
  • 多核处理器
    +关注

    关注

    0

    文章

    109

    浏览量

    19910
收藏 人收藏

    评论

    相关推荐

    基于全志T113-i多核异构处理器的全国产嵌入式核心板简介

    、嵌入式核心板产品介绍 基于全志公司的T113-i处理器精心设计的多核异构处理器、工业ECK
    的头像 发表于 10-25 13:40 280次阅读

    一种简单高效配置FPGA的方法

    本文描述了一种简单高效配置FPGA的方法,该方法利用微处理器从串行外围接口(SPI)闪存配置FPGA设备。这种方法减少了硬件组件、板空间和成本。
    的头像 发表于 10-24 14:57 557次阅读
    <b class='flag-5'>一种</b>简单高效<b class='flag-5'>配置</b>FPGA的方法

    ai模型训练需要什么配置

    较小的数据集和简单的计算任务,如数据预处理模型评估等。因此,选择款高性能的CPU对于提高AI模型训练的整体效率至关重要。 推荐选择Intel Core i7或更高性能的
    的头像 发表于 10-17 18:10 1192次阅读

    【米尔NXP i.MX 93开发板试用评测】1、异构核心通信的技术内容

    前言 很多异构核心使用的是标准的OpenAMP,OpenAMP(Open Asymmetric Multi-Processing)是个开源的软件框架,用于在异构多核
    发表于 09-21 20:24

    浅谈国产异构双核RISC-V+FPGA处理器AG32VF407的优势和应用场景

    传统的ASIC(专用集成电路)设计,FPGA的灵活性使得其开发成本更低,且能够快速响应市场变化。RISC-V的开源特性也进步降低了开发成本。 安全性与可靠性 : 异构处理器可以通过硬件隔离等
    发表于 08-31 08:32

    复旦微PS+PL异构多核开发案例分享,基于FMQL20SM国产处理器平台

    FMQL20S400M是复旦微四核ARM Cortex-A7@1GHz(PS端)+85K可编程逻辑资源(PL端)异构多核SoC处理器。创龙科技基于FMQL20S400M设计的工业核心板
    发表于 08-22 14:04

    文解析嵌入式多核异构方案,东胜物联RK3588多核异构核心板系列

    嵌入式人工智能快速发展,对于高性能计算需求越来越大。为了解决性能与功耗的平衡、通过并行化加速计算等,越来越多地嵌入式处理器使用同构多核异构多核和协
    的头像 发表于 06-17 15:45 2105次阅读
    <b class='flag-5'>一</b>文解析嵌入式<b class='flag-5'>多核</b><b class='flag-5'>异构</b>方案,东胜物联RK3588<b class='flag-5'>多核</b><b class='flag-5'>异构</b>核心板系列<b class='flag-5'>一</b>览

    dsp是嵌入式微处理器一种设备吗 ARM嵌入式微处理器有何特点?

    DSP(Digital Signal Processor)不是一种嵌入式微处理器的设备。DSP是一种专门用于数字信号处理的微处理器,它具有高
    的头像 发表于 04-21 09:37 971次阅读

    多核异构通信框架(RPMsg-Lite)

    ,还优化了能耗,为众多领域带来了革命性的变革。 异构多核系统是指在个芯片上集成多种不同类型的处理器核心,这些核心可能采用不同的指令集架构(ISA),具备不同的性能特性和功耗要求。这些
    的头像 发表于 03-08 18:20 5418次阅读
    <b class='flag-5'>多核</b><b class='flag-5'>异构</b>通信框架(RPMsg-Lite)

    用于多核处理器可配置多轨PMU TPS650860数据表

    电子发烧友网站提供《用于多核处理器可配置多轨PMU TPS650860数据表.pdf》资料免费下载
    发表于 03-07 14:00 0次下载
    用于<b class='flag-5'>多核</b><b class='flag-5'>处理器</b>的<b class='flag-5'>可配置</b>多轨PMU TPS650860数据表

    TPS650864可配置多轨PMU适用于多核处理器、FPGA和系统的TPS650861可配置多轨PMU数据表

    电子发烧友网站提供《TPS650864可配置多轨PMU适用于多核处理器、FPGA和系统的TPS650861可配置多轨PMU数据表.pdf》资料免费下载
    发表于 03-07 09:06 0次下载
    TPS650864<b class='flag-5'>可配置</b>多轨PMU适用于<b class='flag-5'>多核</b><b class='flag-5'>处理器</b>、FPGA和系统的TPS650861<b class='flag-5'>可配置</b>多轨PMU数据表

    介绍一种基于核集的多核嵌入式实时调度方法

    在多任务环境下,嵌入式系统中通常运行着多于处理机数目的任务,这就要求操作系统能够按照某种算法为处于就绪状态的任务动态地分配处理机,处理调度
    的头像 发表于 03-05 11:31 852次阅读
    介绍<b class='flag-5'>一种</b>基于核集的<b class='flag-5'>多核</b>嵌入式实时<b class='flag-5'>调度</b>方法

    什么是动态线程池?动态线程池的简单实现思路

    因此,动态可监控线程一种针对以上痛点开发的线程池管理工具。主要可实现功能有:提供对 Spring 应用内线程池实例的全局管控、应用运行时
    的头像 发表于 02-28 10:42 639次阅读

    什么是多核线程多核线程如何提高程序的运行效率?

    线程无法充分利用多核处理器的并行计算能力。
    的头像 发表于 02-20 10:22 1350次阅读

    瑞萨RZ/G2L MPU的多核异构设计及通信方案

    在当今的工业和消费电子应用中,系统需求日益增长,不仅要求执行复杂的控制任务,还需要实时地采集和处理数据。为了满足这些需求,多核异构处理器成为了一种
    的头像 发表于 01-08 12:18 1808次阅读
    瑞萨RZ/G2L MPU的<b class='flag-5'>多核</b><b class='flag-5'>异构</b>设计及通信方案