基于数据流块的空间指令调度方法_刘炳涛

合集下载

单片机中的任务调度算法

单片机中的任务调度算法

单片机中的任务调度算法任务调度是指在一个系统中,根据任务的优先级和执行条件,按照一定的策略来分配和安排任务的执行顺序。

在单片机系统中,任务调度算法是实现多任务并发执行的关键技术之一。

本文将介绍单片机中常用的任务调度算法及其原理。

一、任务调度算法的概述任务调度算法是指根据任务的优先级和执行条件,在多任务系统中进行任务执行顺序的安排的策略。

在单片机系统中,由于资源有限,任务调度算法需要合理地安排任务执行顺序,以充分利用系统资源,提高系统的响应速度和效率。

二、常用的任务调度算法1. 优先级调度算法优先级调度算法是最常用的任务调度算法之一。

该算法根据任务的优先级来确定任务的执行顺序。

优先级高的任务将优先被执行,而优先级低的任务将被推迟执行。

这种算法简单易实现,适用于任务优先级固定且相对固定的场景。

2. 循环调度算法循环调度算法是一种较为简单和公平的任务调度算法。

该算法将任务按照一定的顺序排序,并循环遍历执行这些任务,保证每个任务都有机会执行。

循环调度算法适用于任务之间的优先级差异不大,需要保证任务都能得到执行的场景。

3. 时间片轮转调度算法时间片轮转调度算法是一种公平且高效的任务调度算法。

该算法为每个任务分配一个固定大小的时间片,任务在该时间片内执行完毕或者被中断后,按照顺序被放到队列的末尾,等待下次执行。

时间片轮转调度算法能够公平地分配系统资源,并且保证每个任务都有机会得到执行。

4. 最短剩余时间优先调度算法最短剩余时间优先调度算法是一种基于任务剩余执行时间的动态任务调度算法。

该算法在每个时间片开始时,根据任务的剩余执行时间排序,选择剩余时间最短的任务执行。

这种调度算法能够充分利用系统资源,提高系统的响应速度和效率。

三、任务调度算法的选择在选择任务调度算法时,需要根据具体的系统需求和资源限制进行综合考虑。

如果任务的优先级差异比较大,可以选择优先级调度算法。

如果任务之间的优先级差异不大,需要保证任务都能得到执行,可以选择循环调度算法。

基于内存池的空间数据调度算法

基于内存池的空间数据调度算法
GUO n -u n ZHANG i gl, Big x a , Jn ・iZHANG i h o Zh - a c
(tt Ke a oao yfr n omainE gn e n u v y n p ig a dRe t S n i g W u a ie s y W u a 3 0 9 Sae yL b rtr f r t n ie r gi S r e ig Ma p n n moe e sn , h Unv ri , h n4 0 7 ) oI o i n n t
d s ac p t l a a a d e h n e e c e c . s d on a v re y o p c fc ma sn d l, do to ft e t c n l g t i i g di e e t mo i p t h s a i t n n a c f in y Ba e a t fs e i p u i g mo e s a p n o h o o y u i z n f r n ad i i i i h e l f me r y p o sp g e a e e tago t m a fe t e y r d c e t e i t r c i n b t e x e n l e y n n e a mo . p rme tlr s lss o o l a er plc m n l r h c n e f c i l e u e h n e a t e we n e tr a mor a d i tr l i v o m n me r Ex e y i n a e u t h w t ep o o e o u i n i d a o S s se i h mb dd d e u p n t i td m e o a a i . h r p s d s l t si e l rGI y t m t ee e e q i me t o f n wih l mie m r c p c t y y

基于RM调度的任务抢占次数最多分析

基于RM调度的任务抢占次数最多分析

基于RM调度的任务抢占次数最多分析
彭德坤;宋红军;刘博阳
【期刊名称】《计算机工程》
【年(卷),期】2009(035)008
【摘要】传统的实时系统可调度性分析方法往往忽略任务抢占的时间开销,然而在重负载情况下,如果任务抢占次数很多,则由此带来的时间开销将不可忽略.该文分析基于单调速率调度算法的系统中任务抢占次数最多需要满足的条件,提出通过修改任务参数来减少抢占次数的方法,减少了系统在最坏情况下的任务响应时间.
【总页数】3页(P263-265)
【作者】彭德坤;宋红军;刘博阳
【作者单位】中国科学院电子学研究所,北京,100080;中国科学院研究生院,北京,100080;中国科学院电子学研究所,北京,100080;四方电气(集团)有限公司,北京,100085
【正文语种】中文
【中图分类】N945
【相关文献】
1.基于非抢占RMS的分布式控制系统中实时任务调度算法 [J], 刘怀;黄建新;史国生
2.基于特定应用的可抢占与不可抢占任务调度算法 [J], 何东之;李伟;朱长海;张向文
3.基于抢占阈值调度的周期任务最小响应时间分析 [J], 杨玉海;宾雪莲;金士尧;宾

4.改进的基于抢占阈值调度的任务响应时间分析方法 [J], 王涛;刘大昕
5.改进的基于抢占阈值调度的任务响应时间分析方法 [J], 王涛;刘大昕
因版权原因,仅展示原文概要,查看原文内容请购买。

SDN数据中心网络基于流表项转换的流表调度优化

SDN数据中心网络基于流表项转换的流表调度优化

SDN数据中心网络基于流表项转换的流表调度优化唐菀;王敢甫;吴京京;王文涛【期刊名称】《中南民族大学学报(自然科学版)》【年(卷),期】2017(036)003【摘要】The resource limitation of the flowtable in OpenFlow switches causes the problem of flowtable overflow or controller congestion in the SDN-based datacenter network. To address the issue, in this paper, the concept of Free Entries Cost is introduced for describing the utilization efficiency of network resources, and the relationship between the numbers of free flowtable resources and that of the flowentries being forwarded repeatedly is analyzed. Then, a flowtable scheduling strategy based on the flowtable timeout mechanism is proposed, which can do real-time conversion between static and dynamic flowentries according to the survival time and the count of the flowentry matching. Via the simulation platform of SDN-based datacenter network with the Fat-tree topology, the availability of the proposed mechanism for optimizing the usage of flowtables is verified.%针对基于软件定义网络(SDN)架构的数据中心网络中,SDN交换机流表资源的有限性导致的流表溢出或控制器拥塞等问题,引入空闲流表资源代价的概念描述了网络资源的利用率,并分析了空闲流表资源量与重复下发的流表项数量之间的关系,提出了一个基于流表超时机制的流表调度策略,依据流表项生存时间和匹配计数来进行静态流表项和动态流表项之间的实时转换.在Fat-tree拓扑SDN数据中心网络仿真实验中,对该机制对流表资源优化的有效性进行了验证.【总页数】7页(P111-117)【作者】唐菀;王敢甫;吴京京;王文涛【作者单位】中南民族大学计算机科学学院,武汉430074;武汉烽火信息集成技术有限公司 IT事业部,武汉430074;中南民族大学计算机科学学院,武汉430074;中南民族大学计算机科学学院,武汉430074【正文语种】中文【中图分类】TP393【相关文献】1.数据中心网络中基于SDN的大象流负载均衡的研究 [J], 金玲;束永安2.基于SDN的数据中心网络流概率路径选择方法 [J], 张钊;李海龙;董思歧;胡磊;马景仁3.基于蚁群算法的SDN数据中心网络大象流调度研究 [J], 李宏慧; 杨光; 路海亮; 付学良; 申志军4.基于SDN的数据中心网络中考虑等待时间的流调度策略研究 [J], 黄梅根;庞瑞琴;刘亮;何大聪;汪涛5.基于分类搜索的SDN流表无环一致性更新方案 [J], 杨荣宽;张奇支;赵淦森;郑伟平因版权原因,仅展示原文概要,查看原文内容请购买。

2022年北华航天工业学院计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年北华航天工业学院计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年北华航天工业学院计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、()结构的文件最适合于随机存取的应用场合。

A.流式B.索引C.链接D.顺序2、操作系统为了管理文件,设计了文件控制块(FCB),文件控制块的建立是().A.在调用create()时B.在调用open()时C.在调用read()时D.在调用write()3、若一个用户进程通过read系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是()。

I.若该文件的数据不在内存中,则该进程进入睡眠等待状态II.请求rcad系统调用会导致CPU从用户态切换到核心态III.read系统调用的参数应包含文件的名称A.仅I、IIB. 仅I、IIIC.仅II、IIID. I、II和III4、设有n个进程共用一个相同的程序段,若每次最多允许m个进程(mSn)同时进入,临界区,则信号量的初值为()。

A.nB.mC.m-nD.-m5、使用TSL(TestandSetLock)指令实现进程互斥的伪代码如下所示。

do{while(TSL(&lock));criticalsection;lock=FALSE;}while(TRUE);下列与该实现机制相关的叙述中,正确的是()A.退出临界区的进程负责唤醒阻塞态进程B.等待进入临界区的进程不会主动放弃CPUC.上述伪代码满足“让权等待”的同步准则D.while(TSL(&lock))语句应在关中断状态下执行6、下列关于页式存储说法中,正确的是()。

I.在页式存储管理中,若关闭TLB,则每当访问一条指令或存取一个操作数时都要访问两次内存II.页式存储管理不会产生内部碎片III.页式存储管理当中的页面是为用户所感知的IV.页式存储方式可以采用静态重定位A.仅I、II,IVB. 仅I、IVC. 仅ID.I、II、III、IV7、有一个矩阵为100行x200列,即a[100][200]。

并行任务调度算法研究

并行任务调度算法研究
314 非确定性调度
非确定性调度技术又称为随机搜索调度技术 ,它主要是通 过有导向的随机选择来搜索问题的解空间而并不是单纯的随 机搜索 。这类技术组合前面搜索结果的知识和特定的随机搜 索特点来产生新的结果 。遗传算法是最流行和使用最广泛的 该类技术 ,它们的调度时间一般高于使用其他技术的调度算 法 ,适合于某一种任务图的控制参数优化集并不适合于另一种 类型的任务图 ,即对新的任务图遗传算法需要长时间的训练学 习 。另外 ,模拟退火方法也属于该类型技术 。
考虑到任务图的基本信息以及处理单元本身和其互连结 构的基本信息是否在应用程序执行前可以得到 ,已经调度好的 任务是否可以由于其处理单元失效而实时迁移等因数可以把 并行任务调度算法分为两大类 。一类假设任务图和处理单元 相关的信息在程序执行前可以精确获取 ,调度好的任务节点不 能迁移 ,基于这类假设的调度算法称为静态调度算法 ,也叫编 译时间调度算法 ;反之则称为动态调度算法 ,也叫实时调度算 法 。前者存在如何精确获取所需信息的问题 ,但其可凭借成熟 的模型组织有效而具体的启发式算法 ,文献中大多数算法均属 于此类算法 ;后者需要程序实时执行期间得到相应调度信息来 调度任务 ,有许多不确定因数存在 ,调度开销一般较大 ,但在大 型分布式系统如网格计算中该类算法不失为有效的方法 ,也适 合于含有条件分支和循环的任务图调度 。本文讨论的并行任 务调度算法主要限于第一类 。图 1 就已有的并行任务调度算 法进行了粗略的分类 。
第 11 期
马 丹等 :并行任务调度算法研究
·91 ·
并行任务调度算法研究
马 丹1 , 张 薇1 ,2 , 李肯立1
(1. 华中科技大学 计算机学院 , 湖北 武汉 430074 ; 2. 武汉军械士官学校 , 湖北 武汉 430075)

基于优先级调度的8位单片机内核实现方案

基于优先级调度的8位单片机内核实现方案

基于优先级调度的8位单片机内核实现方案
李开旭;温东彪;刘锦棠
【期刊名称】《日用电器》
【年(卷),期】2015(000)008
【摘要】普通的8位单片机的程序在主循环里一般都是顺序执行,主循环中有时候执行较长,有时候又较短,导致有些实时性要求较高,需要优先处理的程序无法放在主循环里运行,如果放在中断里又会增加中断的内容,同时也会影响整个程序的架构,使程序的可读性和移植性变差。

鉴于此,在时间片内核的基础上引入优先级的调度,形成了不可剥夺的优先级内核。

【总页数】3页(P66-68)
【作者】李开旭;温东彪;刘锦棠
【作者单位】珠海格力电器股份有限公司珠海 519070;珠海格力电器股份有限公司珠海 519070;珠海格力电器股份有限公司珠海 519070
【正文语种】中文
【相关文献】
1.基于优先级调度算法的高校排课系统设计与实现 [J], 徐谦;邓婕
2.基于8位单片机的玩具控制器的研究与实现 [J], 祁兵兵;吴长奇
3.基于8位单片机的小型机器人系统的设计与实现 [J], 郝佳晶
4.Nachos中基于优先级调度器的实现 [J], 张芳琴
5.基于自适应随机线性网络编码的优先级调度方案 [J], 王练;张贺;张昭;张勋杨
因版权原因,仅展示原文概要,查看原文内容请购买。

2022年东华理工大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年东华理工大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年东华理工大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、某文件系统物理结构采用三级索引分配方法,如果每个磁盘块的大小为1024B.每个盘块索引号占用4B,请问在该文件系统中,最大文件的大小最接近的是()A.8GBB.16GBC.32GBD.2TB2、驱动调度算法中,()算法可能会随时改变移动臂的运动方向。

A.电梯调度B.最短寻道时间优先C.扫描D.单向扫描3、可以被多个进程在任意时刻共享的代码必须是()。

A.顺序代码B.机器语言代码C.不能自身修改的代码D.无转移指令代码4、若每个作业只能建立“一个进程,为了照顾短作业用户,应采用();为了照顾紧急作业用户,应采用():为了实现人机交,应采用():为了使短作业、长作业,和交互作业用户都满意,应采用()。

I.FCFS调度算法II.短作业优先调度算法,III.时间片轮转调度算法IV.多级反馈队列调度算法V.基于优先级的剥夺调度算法A. II、V、I,IVB. I、V、III、IVC. I、II、IV、IIID.II、V、III、IV5、进程调度算法中,可以设计成可抢占式的算法有()。

A.先来先服务调度算法B.最高响应比优先调度算法C.最短作业优先调度算法D.时间片轮转调度算法6、总体上说,“按需调页”(Demand-Paging)是个很好的虚拟内存管理策略。

但是,有些程序设计技术并不适合于这种环境,例如()A.堆栈B.线性搜索C.矢量运算D.分法搜索7、有一个矩阵为100行x200列,即a[100][200]。

在一个虚拟系统中,采用LRU算法。

系统分给该进程5个页面来存储数据(不包含程序),设每页可存放200个整数,该程序要对整个数组初始化,数组存储时是按行存放的。

试计算下列两个程序各自的缺页次数(假定所有页都以请求方式调入)()。

程序一:for(i=0;i<=99;i++)for(j=0:j<=199;j++)A[i][j]=i*j:程序二:for(j=0:j<=199;j++)for(i=0;i<=99;i++)A[i][j]=i*j;A.100,200B.100,20000C.200.100D.20000,1008、下列选项中,操作系统提供给应用程序的接口是()。

计算机系统结构(第2版(课后习题答案

计算机系统结构(第2版(课后习题答案

word 文档下载后可自由复制编辑你计算机系统结构清华第 2 版习题解答word 文档下载后可自由复制编辑1 目录1.1 第一章(P33)1.7-1.9 (透明性概念),1.12-1.18 (Amdahl定律),1.19、1.21 、1.24 (CPI/MIPS)1.2 第二章(P124)2.3 、2.5 、2.6 (浮点数性能),2.13 、2.15 (指令编码)1.3 第三章(P202)3.3 (存储层次性能), 3.5 (并行主存系统),3.15-3.15 加 1 题(堆栈模拟),3.19 中(3)(4)(6)(8)问(地址映象/ 替换算法-- 实存状况图)word 文档下载后可自由复制编辑1.4 第四章(P250)4.5 (中断屏蔽字表/中断过程示意图),4.8 (通道流量计算/通道时间图)1.5 第五章(P343)5.9 (流水线性能/ 时空图),5.15 (2种调度算法)1.6 第六章(P391)6.6 (向量流水时间计算),6.10 (Amdahl定律/MFLOPS)1.7 第七章(P446)7.3 、7.29(互连函数计算),7.6-7.14 (互连网性质),7.4 、7.5 、7.26(多级网寻径算法),word 文档下载后可自由复制编辑7.27 (寻径/ 选播算法)1.8 第八章(P498)8.12 ( SISD/SIMD 算法)1.9 第九章(P562)9.18 ( SISD/多功能部件/SIMD/MIMD 算法)(注:每章可选1-2 个主要知识点,每个知识点可只选 1 题。

有下划线者为推荐的主要知识点。

)word 文档 下载后可自由复制编辑2 例 , 习题2.1 第一章 (P33)例 1.1,p10假设将某系统的某一部件的处理速度加快到 10倍 ,但该部件的原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个系统的性能提高多少?解:由题意可知: Fe=0.4, Se=10,根据 Amdahl 定律S n To T n1 (1Fe )S n 1 10.6 0.4100.64 Fe Se 1.56word 文档 下载后可自由复制编辑例 1.2,p10采用哪种实现技术来求浮点数平方根 FPSQR 的操作对系统的性能影响较大。

单片机指令的多任务处理与调度算法

单片机指令的多任务处理与调度算法

单片机指令的多任务处理与调度算法在单片机嵌入式系统的开发中,多任务处理与调度算法是一项关键技术。

单片机是一块集成了CPU、RAM、ROM、I/O等硬件资源的芯片,它通常具有计算能力较弱的特点。

为了充分利用单片机的资源,提高系统的效率,多任务处理与调度算法应运而生。

一、概述多任务处理是指在单片机系统中同时执行多个任务。

由于单片机的执行速度有限,任务的数量和复杂性都会对系统性能产生影响。

因此,任务调度算法的设计和实现变得尤为重要。

多任务处理可以极大地提高系统的实时性、处理能力和资源利用率。

二、多任务处理的方法1. 时间片轮转调度算法时间片轮转调度算法是一种基本的任务调度算法,它将任务按照一定的顺序进行切换。

每个任务被分配一个时间片,当时间片用完后,系统将切换到下一个任务。

这种调度算法可以平均分配CPU时间,但是在任务切换的时间上会产生一定的开销。

2. 优先级调度算法优先级调度算法是根据任务的优先级来决定任务的执行顺序。

优先级高的任务将优先被执行,而优先级低的任务则处于等待状态。

这种调度算法对于有一些紧急任务的系统非常适用,但如果任务的优先级设置不当,会导致其他任务无法得到执行的情况。

3. 事件驱动调度算法事件驱动调度算法是根据任务的事件来进行调度的。

每个任务都有一个触发事件,当事件发生时,相应的任务将得到执行。

这种调度算法可以避免不必要的任务切换,提高系统的实时性和资源利用率。

三、多任务处理的实现1. 任务管理在多任务系统中,任务管理是一个重要的环节。

需要定义任务的属性和优先级,并根据系统的需求合理分配任务的资源。

任务管理需要考虑任务的并发执行、任务间的通信和同步等问题。

2. 任务切换任务切换是指在多任务系统中,完成从一个任务的执行到另一个任务的执行的过程。

这时需要保存和恢复任务的上下文信息,以保证任务能够正确地继续执行。

任务切换也会引入一定的开销,因此需要合理规划任务切换的时机和频率。

3. 任务间通信多任务系统中,任务间通常需要进行数据共享和信息传递。

结合DM8168的实时运动目标检测系统设计

结合DM8168的实时运动目标检测系统设计

结合DM8168的实时运动目标检测系统设计姚灿荣;刘韶涛【摘要】结合DM8168多核多通道的特点,设计了一个实时运动目标检测系统,能够实现视频数据的采集、实时运动检测、编解码以及传输等功能.采用ViBe的目标检测算法,并利用中值滤波进行改进,解决了背景中容易出现Ghost区的问题,提高了运动目标识别能力.最后采用像素扫描标记法实现了目标跟踪.实验结果表明,所提出的方法能在达芬奇平台上实现实时鲁棒的运动目标检测和跟踪.【期刊名称】《微型机与应用》【年(卷),期】2015(034)014【总页数】3页(P42-44)【关键词】智能监控;目标检测;中值滤波;像素标记法【作者】姚灿荣;刘韶涛【作者单位】华侨大学计算机科学与技术学院,福建厦门361021;华侨大学计算机科学与技术学院,福建厦门361021【正文语种】中文【中图分类】TP391.410 引言迅速发展的视频监控在日常生活中起着十分重要的作用,实时处理和智能化分析已经成为视频监控发展的一种趋势。

当前,TI公司推出的TMS320DM8168Davinci平台集成了多个处理器与高效的异构多核和多通道软件开发框架,极大地满足了人们对高集成度、多功能视频监控的需求。

本文综合利用DM8168及其异构多核视频的开发套件DVRRDK,设计并实现了嵌入式平台的实时运动目标检测系统。

传统的运动目标检测方法[1]存在鲁棒性较低,计算量较大且适应复杂背景变化的问题。

为了适应嵌入式平台的软硬件系统,本文采用并改进ViBe运动目标检测算法,在运动检测中能有效应对光照变化和抖动等影响,而且计算量非常小。

最后,在检测的基础上利用像素扫描标记方法[2-4]对目标进行分类,根据分类结果实现运动目标的跟踪。

1 系统结构设计与实现1.1 总体结构设计系统采用TI DM8168评估板,由一块负责视频处理的母板和一块主要负责输入输出的子板组成,系统高度集成了Cortex-A8主处理器、视频处理子系统VPSS、C674x DSP、3D加速模块等。

结合PSO的改进压缩跟踪方法

结合PSO的改进压缩跟踪方法

结合PSO的改进压缩跟踪方法刘韶涛;姚灿荣【摘要】针对基于在线检测的跟踪方法中目标在多尺度空间中的搜索和匹配问题,结合粒子群优化算法(PSO)和压缩感知思想,提出一种鲁棒的多尺度目标跟踪算法。

首先,通过粒子群在多尺度空间中采集样本;然后,经过压缩感知提取特征;最后,通过粒子的迭代计算,搜索出当前目标的最佳匹配位置。

实验结果表明:提出的算法能较好地适应目标的多尺度变化,在快速性和鲁棒性上具有更好的性能。

%For the searching and matching problem in multi-scale space of online detecting tracking method,a robust multi-scale tracking algorithm was proposed based on particle swarm optimization (PSO)and compress sensing.Firstly,feature was sampled with particles in multi-scale space.Then feature was extracted by com-press sensing.Finally,targets would be searched quickly and robustly after calculate the best fitness and posi-tion of all the particle.The experimental results demonstrate that the proposed algorithm can adapt target in multi-scale change and has a better performance in robustness and rapidity.【期刊名称】《华侨大学学报(自然科学版)》【年(卷),期】2017(038)001【总页数】6页(P121-126)【关键词】目标跟踪;压缩感知;粒子群优化;多尺度【作者】刘韶涛;姚灿荣【作者单位】华侨大学计算机科学与技术学院,福建厦门 361021;华侨大学计算机科学与技术学院,福建厦门 361021【正文语种】中文【中图分类】TP391.3一个典型的目标跟踪系统包括表观模型和在当前帧定位目标新位置的搜索策略[1].由于光照变化、遮挡等问题,导致目标的表观模型时常发生变化.因此,一个自适应强的表观模型表示对鲁棒的目标跟踪十分重要.基于特征实时检测[2-3]的运动目标跟踪方法是近年来的一种主流目标跟踪技术[4-6].在线方法在对目标进行分类判别的同时,也在对图像进行采样,用于实时更新分类器,使检测器具有一定的适应能力,不仅在一定程度上解决了检测和跟踪时的遮挡问题,还能适应复杂场景下的多目标跟踪.然而,其计算和搜索复杂度较高,且容易产生漂移.近年来,基于随机优化技术的粒子群优化算法(PSO)被广泛应用于计算机视觉处理[7-9].为了在多尺度空间中快速寻找目标,降低计算代价,保持跟踪的实时性和重叠率,本文提出一种结合粒子群优化的压缩跟踪算法(PSO-CT),在每一帧的目标搜索过程中,利用粒子群优化的搜索方法,在多尺度空间中更快速地搜索目标.压缩跟踪(compress tracking)算法是Zhang等[6]基于压缩感知理论[10]提出的一种高效、快速的基于在线学习的实时跟踪方法.压缩跟踪算法的流程,如图1所示.图1中:分类器更新是通过在当前帧跟踪结果的邻域内采集正负样本,然后进行压缩,训练分类器得到.1.1 随机投影如果信号通过某种变换后是可稀疏表示或者可压缩的,则可以设计一个与变换基不相关的测量矩阵来测量信号,得到的测量值通过求解优化问题可实现信号的精确或者近似重构.具体地,对于高维图像空间中的数据x∈Z,如果x在正交基Ψ上是K-稀疏的,且能找到一个与Ψ不相关的观测基R,则可以使用随机观测矩阵R∈Zn×m,将其投影到低维空间y∈Zn上,如图2 所示.图2中:n≪m.Johnson-Lindenstrauss准则表明:当随机测量矩阵R满足有限等距性质时,K个系数可通过求解最小误差,从y中高概率地恢复原始信号x.1.2 随机测量矩阵为了适应实际应用的实时性需求,采用文献[6]提出的一个非常稀疏的随机测量矩阵,具体矩阵元素定义为式(1)中:p为随机元素ri,j取某个值的概率.例如,取s=n/4时,测量矩阵非常稀疏,即n行中每行只需2~4个非零元素,就能满足Johnson-Lindenstrauss推论,且只需初始的一次离线计算就能满足整个跟踪过程的计算.假设s是第t-1跟踪到的目标位置,在以s为中心,r为半径的范围内,采集测试样本集的Haar-like特征:Ti∈Zw×h×l(i=1,2,…,r2),l为Haar-like的模板数,则每个特征的维数m可能达到106以上.利用初始产生的随机稀疏矩阵,将此高维数据投影到低维空间中,形成适合快速计算的低维特征v.1.3 目标的Haar-like多尺度表示与尺度不变性对于每个样本,它的多尺度表示是多个矩形滤波器在多个尺度}组成,如图3所示.即式(2)中:分别为矩形滤波器的宽和高.用一个维的向量表示特征,再用高维特征串联这些向量,形成维数为)2的向量,这个向量维数通常能达到106以上.之后,将特征x投影到一个稀疏随机矩阵Z,得到一个低维特征v,v∈Zn.由文献[6]可知,低维的Haar-like特征向量具有尺度不变性.2.1 粒子群优化算法一个粒子群优化算法代表某个种群[11],每个粒子代表问题的一个潜在解.每次迭代时,粒子在一个n维搜索空间移动,并将与其相关联的位置矢量},速度矢量}进行迭代进化.粒子更新示意图,如图4所示.在搜索空间里,PSO的每个粒子的移动依赖于个体认知和社会认知g.个体认知代表粒子个体历史移动过程中的最佳位置;社会认知代表整个粒子群在搜索过程中的最佳位置.通过整合这2种类型的知识,在粒子群中,粒子的行为可表示为式(3),(4)中:ω为迭代权重;φ1,φ2为大于0的常数,用于平衡个体最佳和全局最佳;r1,r2∈(0,1)为均匀分布的随机数.在PSO算法中,粒子迭代中都有一个对应的适应函数),当粒子在当前状态下的适应函数值大于个体最佳或全局最佳g的适应函数值,将当前粒子状态更新为个体最佳或全局最佳g.如此反复迭代,直到设定的迭代次数或搜索到最佳为止.2.2 结合PSO改进的压缩跟踪采用PSO方法对压缩跟踪搜索问题进行优化求解.在当前这一帧搜索目标时,在以前一帧目标位置为中心的边长为R的方形区域,在多个尺度空间内,先随机分布多个粒子,提取这些粒子的Haar-like特征.然后,计算粒子的Fitness,更新和迭代粒子位置和速度,直到收敛,得出这一帧的目标位置.最后,在目标中心位置周围采集正样本和负样本,更新朴素贝叶斯分类器.收敛条件为:当所有粒子的速度都为0;或达到最大迭代次数;或满足匹配的最佳适应值已经过了3次迭代.粒子}包含位置和尺度空间.种群中粒子个数为K.假设t时刻个体最佳集合为,为了保证粒子的多样性,下一帧的初始都是在当前帧相应区域内高斯随机重分布[12].其高斯分布为式(5)中:Σ为高斯矩阵的协方差.对角线元素为速度预测,即粒子的速度则满足均匀分布).2.3 适应值函数在当前帧,以前一帧为中心,半径R(足够大)的圆,或者为边长的正方形范围内,按高斯分布随机初始化K个粒子.由于在前一帧中已经更新了分类器,因此,用分类器的分类响应作为粒子j在第t次迭代时相应的适应函数值,即式(7)中:zj,t为粒子xj,t在当前位置时提取的低维特征向量.根据每个粒子的适应函数值f(xj,t),得到全局最佳g和粒子j的个体最佳pt,j的更新,即为了防止粒子群的无限扩散与发散,对加速参数φ1,φ2及最大速度进行约束,其参数满足由式(10)~(12)可知:通过适应函数值可以控制个体和社会认知的变化,使之得到平稳控制,而粒子最大速度可利用先验知识获取.2.4 分类器更新当获取当前帧的最大响应位置时,确定目标在当前帧的位置.为了确定正负样本的采样范围,通过2个距离阈值α和β来界定采样的类别.在Dα= {z|||l(z)-lt||<α}区域内采集正样本,在区域Dζ,β={z|ζ<||l(z)-lt||<β}采集负样本.其中,α<ζ<β,即靠近当前目标中心的随机采集为正样本,外围采集为负样本.根据正负样本,分类器的参数更新为式(13)中:分别为第i个特征正样本的均值和标准差;λ>0为分类器学习参数;和的定义为负样本的均值和方差参数和的更新也与式(13)类似.当目标在场景中因转向、形变、遮挡及镜头晃动等因素发生剧烈变化时,可能导致粒子在给定范围内的适应值无法小于阈值,搜索终止于局部最优.结合文献[12]的方法,采用选择更新和re-search策略.当目标发生遮挡时,分类器的响应值显著减小,为了不被遮挡物完全取代,设定一个分类阈值TC;当分类相应低于阈值时,分类器停止更新;当在给定的局部范围内无法搜索到目标时,则跳出局部搜索范围,增加粒子数量,将PSO搜索范围扩大至全局搜索.PSO-CT算法有以下5个步骤.步骤1 初始化粒子群参数、分类器和目标特征.步骤2 对于每一帧,有如下5点:1) 计算Frame(t)的积分图;2) 如果第t-1帧的分类响应P>TC,则对于每个目标,根据上一帧得到的目标位置,在以上一帧的目标为中心,d为边长的正方形内随机产生K个粒子,并初始化个体最佳pj和全局最佳g;否则,在全局范围内,将尺度参数w,h范围扩大,随机产生4K个粒子,并初始化4K个例子的个体最佳pj和全局最佳g;3) 计算每个粒子的Haar-like特征,计算粒子的分类得分,得到各自的适应值f(x(j,t));4) 比较f(x(j,t))及pj和g,更新个体最佳pj和全局最佳g,修改粒子的位置和速度;5) 如果f(g) 满足搜索结束条件,则得到这一帧的目标位置:Loc=g;否则,跳转至全局搜索2).步骤3 在跟踪到的当前帧目标周围Xζ,β={x|ζ<||It+1(x)-It(x*)||<β},采集正、负样本.步骤4 利用上面的积分图,计算正样本和负样本的Haar-like特征值,压缩特征.步骤5 通过正样本和负样本更新分类器,进行下一帧处理.3.1 粒子数的确定为了验证算法的有效性,在CPU主频为3 GHz,内存为8 GB的PC实验环境下,采用几个标准视频集[13],将文中算法与粒子滤波(PF)、基于检测学习跟踪算法(TLD)、压缩跟踪算法(CT)进行比较.为了更好确定实验中粒子个数,针对粒子数与算法性能的关系进行多次重复实验,结果如图5所示.图5中:n1为粒子数;t为帧处理时间.由图5可知:如要实现实时跟踪,必须合理控制粒子数量.其中,中心定位误差(CLE)的计算为式(15)中:(xt,yt)和(xr,yr)分别表示当前跟踪定位结果与人工定位标准位置.3.2 PSO-CT的跟踪性能分析将粒子数设置为30,将收敛阈值Th=0.01,Tc=0.6,迭代参数ω=0.5,初始φ1=0.5,φ2=0.5,最大迭代次数设为100.设4维搜索空间半径为40.在测试粒子搜索目标过程中,计算复杂度的实验结果,如图6所示.PSO-CT平均每个粒子的迭代次数(n2)为42.4 次·帧-1,总迭代次数为30×42.4,相当于只需1 272次搜索和比对,就能在每一帧图像中发现目标.文献[6]采用改进全搜索的coarse-to-fine策略需要3 496次.在几组复杂场景下的跟踪结果,如图7,8所示,其帧率如表1所示.图8中:n3为帧数;e为跟踪误差.由图8可知:Motocross中目标因为翻转产生平稳形变,此时,TLD算法、PF算法和PSO-CT算法表现出良好效果;Mountainbike中场景从平稳跨越到剧烈抖动,此时,原始PSO-CT算法在平稳环境误差较小,而面对突变,最终也能快速校正偏差;Coke场景中,中间经历几次遮挡和高度变化,当镜头或者景深发生明显变化时,多尺度的PSO-CT的尺度适应性能优势明显.综上可知,在变化比较快的复杂场景下,CT和PSO-CT表现相对稳定,且PSO-CT能适应突然、快速的目标位置变化.当镜头或者景深发生明显变化时,多尺度的PSO-CT在尺度变化的自适应方面体现出良好的跟踪效果.在时间效率上,如表1所示.由于采用特征压缩方法,将特征用低维的向量表示,CT算法和PSO-CT算法在速度上具有优势,体现出良好的快速性和实时性.针对原始压缩跟踪存在的不足,结合粒子群优化算法的优化多维空间搜索,实现复杂场景下多尺度目标跟踪.实验表明,提出的PSO-CT跟踪方法在实时性和稳定性上具有一定优势.该算法对运动目标发生部分遮挡和形变时仍然有较好的鲁棒性,然而,当多个目标之间产生聚合与分离时,跟踪还达不到最理想的结果,这将是下一步工作需要考虑和突破的地方.【相关文献】[1] 龚声蓉,刘纯平,季怡.复杂场景下图像与视频分析[M].北京:人民邮电出版社,2013:8-9.[2] KALAL Z,MIKOLAJCZYK K,MATAS J.Tracking-learning-detection[J].Pattern Analysis and Machine Intelligence,2012,34(7):1409-1422.[3] STALDER S,GRABNER H,GOOL L V.Cascaded confidence filtering for improved tracking-by-detection[M].Berlin:Springer,2010:369-382.[4] GRABNER H,GRABNER M,BISCHOF H.Real-time tracking via on-lineboosting[C]∥British Machine Vision Conference.Edinburgh:[s.n.],2006:6.[5] FELZENSZWALB P,MCALLESTER D,RAMANAN D.A discriminatively trained, multiscale, deformable part model[C]∥IEEE Conference on Computer Vision and Pattern Recognition.Anchorage:IEEE Press,2008:1-8.[6] ZHANG Kaihua,ZHANG Lei,YANG M H.Real-timecompressivetracking[C]∥Europeanence on Computer Vision.Berlin:Springer,2012:864-877.[7] SAINI S,AWANG R D R,ZAKARIA M N B,et al.A review on particle swarm optimization algorithm and its variants to human motion tracking[J].Mathematical Problems in Engineering,2014(2014):1-16.[8] ZHANG Xiaoqin, HU Weiming, MAYBANK S, et al. Sequential particle swarm optimization for visual tracking[C]∥IEEE Conference on Computer Vision and Pattern Recognition.Anchorage:IEEE Press,2008:921-928.[9] FLEISCHMANN P,AUSTVOLL I,KWOLEK B.Particle swarm optimization with soft search space partitioning for video-based markerless pose tracking[J].Lecture Notes in Computer Science,2012,7517:479-490.[10] BARANIUK pressive sensing[J].IEEE signal processing magazine,2007,24(4):118-121.[11] THIDA M,ENG H,MONEKOSSO D N,et al.A particle swarm optimisation algorithm with interactive swarms for tracking multiple targets[J].Applied SoftComputing,2013,13(6):3106-3117.[12] TAWAB A M A,ABDELHALIM M B,HABIB S.Efficient multi-feature PSO for fast gray level object-tracking[J].Applied Soft Computing,2014,14(1):317-337.[13] WU Yi,LIM J,YANG M H.Online object tracking: A benchmark[C]∥IEEE Conference on Computer vision and pattern recognition.Portland:IEEE Press,2013:2411-2418.。

一种基于先验知识动态分配资源的作业调度策略

一种基于先验知识动态分配资源的作业调度策略

遥感信息
理 论鄙 穷
速度 等 ;
1 引 言
遥 感 图像 并行 处理 系统 的调度 策 略好坏 将直接 影 响 系统 的性 能 。遥感 图像 处理算 法往 往涉 及海量
③计 算 出集 群 各个 执 行 服务 器 的 负 载值 , 权 加
计算 出集群 整体 的负 载值 ; ④最后 根据 作业单 位 资源 的运行 时间 和集群 整
jb t o te t tn cu a er nt fag rt ms S c t o sc udc u ebid e si e o re l c t n a d awa s o swi u si ig ac r t u i o lo ih . u h meh d o l a s l n s rs u c sal ai , n l y h ma me n n o o
( C ne o at bev t na d D g tl a t C iee a e f Sine( AS , e ig 10 8 ; ① et y rE rhO srai n i i rh, hn sAcd myo c csC ) B i n 0 0 6 r o aE e j ② G a u t U ies yo hns Acd myo c ne , in 0 10 rd ae nvri fC iee a e f S i cs Be g1 0 9 ) t e j
图 1 基 于先 验 知识 的 动态 分配 资源 调 度 策 略
2 1 作 业 单 位 资 源 运行 时 间 的估 算 . 资 源分配 策 略第 一大 任务 是估算 作业 单位 资源
wi ef e r ig a i t. h o g h cu a e si a i f o u mea d s se la a y a c l o u e y fz y t s l l nn bl y T r u h t eac rt t t n o b r n t n y tm d t t n mi l c mp td b u z h -a i e m o j i o h d ay

基于数据流的指令调度器的设计与实现

基于数据流的指令调度器的设计与实现

基于数据流的指令调度器的设计与实现
董锐;王志君;梁利平
【期刊名称】《微电子学与计算机》
【年(卷),期】2011(28)11
【摘要】文中设计并实现了一个基于数据流的汇编代码CPU指令调度器.该CPU 指令调度器基于中国科学院微电子研究所自行研发的Diamond处理器VLIW体系结构,将串行程序流进行重排序从而实现指令的并行发射执行.实验结果表明,通过指令调度器后可显著提高程序的性能.
【总页数】5页(P148-151)
【关键词】指令调度;汇编语言;数据流分析;编译优化
【作者】董锐;王志君;梁利平
【作者单位】中国科学院微电子研究所
【正文语种】中文
【中图分类】TP31
【相关文献】
1.基于双缓冲队列的车辆底盘控制指令调度模型的设计与实现 [J], 陈旺;刘大鹍;胡建军;李杰;张领辉
2.基于汇编代码的指令调度器的设计与实现 [J], 田祖伟;李勇帆
3.一种红外仿真图像数据流播放器设计与实现 [J], 邱琦;邱扬刚;谷锁林;赵民伟
4.航天器多遥测数据流实时优选设计与实现 [J], 储海洋;何晓宇;宋宏江;吴伟;崔帆
5.动态可重构阵列处理器数据流处理单元的设计与实现 [J], 山蕊;李涛;蒋林
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机研究与发展DOI:10.7544/issn1000-1239.2017.20160138Journal of Computer Research and Development 54(4):750-763,2017基于数据流块的空间指令调度方法刘炳涛1,2,3 王 达1 叶笑春1 范东睿1,2 张志敏1 唐志敏11(计算机体系结构国家重点实验室(中国科学院计算技术研究所) 北京 100190)2(中国科学院大学计算机与控制学院 北京 100049)3(杭州电子科技大学信息与控制研究所 310018)(liubingtao@ict.ac.cn)The Data-Flow Block Based Spatial Instruction Scheduling MethodLiu Bingtao1,2,3,Wang Da1,Ye Xiaochun1,Fan Dongrui 1,2,Zhang Zhimin1,and Tang Zhimin11(State Key Laboratory of Computer Architecture(Institute of Computing Technology,Chinese Academy of Sciences),Beijing100190)2(School of Computer and Control Engineering,University of Chinese Academy of Sciences,Beijing100049)3(Institute of Information and Control,Hangzhou Dianzi University,Hangzhou310018)Abstract Clustered superscalar processors partition hardware resources to circumvent the energy andcycle time penalties incurred by large,monolithic structures.Dynamic multi-core processors fusehardware resources of several physical cores to provide the computation capability adapting toapplications.Energy-efficient computation is achieved in these architectures with a carefullyorchestrated utilization of spatially distributed hardware resources.Problems such as instruction loadimbalance and operand forwarding latency between partitions may cause performance penalties,so aneffective spatial instruction scheduling method is needed to distribute the computation among thepartitions of spatial architectures.We present the data-flow block(DFB)based spatial instructionscheduling method.DFBs are dynamically constructed,cached and reused schedule patterns for one ormore sequentially executed instruction basic blocks.DFB scheduling algorithm models the data-flowconstraints of dynamic instruction stream and the scheduling space defined by hardware resources,then makes the scheduling decision according to the relative criticality,which is the quantitativescheduling slack of instructions.We present the framework and algorithm related to DFB scheduling.Through experimenting with various microarchitecture parameters closely related to schedulingmethod such as partition count,inter-partition latency and schedule window capacity,we prove thatideal DFB scheduling performs better and stabler than round-robin and dependence-based scheduling.At last,we show that the scheduling performance with a DFB cache implementation example closes toideal DFB scheduling.Key words processor microarchitecture;load balancing;instruction scheduling;data-flow;critical path摘 要 分簇超标量处理器将硬件资源分区来避免大的单体部件导致的功耗与周期惩罚,动态多核处理器融合多个物理核的硬件资源提供适应程序需求的计算能力,这些结构合理使用空间分布的硬件资源 收稿日期:2016-03-10;修回日期:2016-06-07 基金项目:国家重点研发计划项目(2016YFB0200501);国家自然科学基金项目(61332009,61521092,61671196,61327902);数学工程与先进计算国家重点实验室开放基金项目(2016A04);北京市科委科技计划专项项目(Z15010101009)This work was supported by the National Key Research and Development Program of China(2016YFB0200501),the NationalNatural Science Foundation of China(61332009,61521092,61671196,61327902),the Open Program of the State KeyLaboratory of Mathematical Engineering and Advanced Computing(2016A04),and Beijing Municipal Science and TechnologyCommission Program(Z15010101009).实现高能效的计算.空间分区结构中指令负载不均衡和跨区操作数传递延迟等问题可导致性能惩罚,需要有效的指令调度方法将计算在分区间进行分布.提出了基于数据流块(data-flow block,DFB)的空间指令调度方法.DFB是动态构建、缓存并重用的一个或数个顺序执行的指令基本块的调度模式.DFB调度算法建模动态指令流中的数据流约束和硬件资源定义的调度空间,然后根据指令量化的相对关键性完成调度决策.介绍了DFB调度的微结构框架和算法.通过对分区数、分区间延迟和调度窗口容量等与调度方法密切相关的微结构参数的实验,证明了DFB调度的性能和稳定性优于负载均衡调度和基于依赖的调度.最后举例证明结合一种数据流块缓存实现的DFB调度达到的调度效果接近理想化的DFB调度.关键词 处理器微结构;负载均衡;指令调度;数据流;关键路径中图法分类号 TP303 超标量处理器发掘指令级并行性(instructionlevel parallelism,ILP)的能力随着发射宽度和调度窗口的增大而提升,然而发射队列和操作数传递网络等关键部件的复杂度随着发射宽度和调度窗口的增大呈平方增长的趋势[1].分簇超标量处理器[2]将硬件资源分区来避开大的单体部件带来的功耗与周期惩罚.如图1所示,分簇超标量处理器负责完成指令执行的流水线后端划分为多个区,各分区有独立的发射队列、物理寄存器文件和功能单元,跨分区传递操作数需要额外的周期,我们称之为分区间延迟(inter-partition latency,IPL).Fig.1 Clustered superscalar processor microarchitecture图1 分簇超标量处理器微结构处理器单核的性能和频率提升受限于结构复杂度和功耗墙[3]等问题,为了提升计算能效,善于发掘线程级并行性(thread level parallelism,TLP)的多核处理器逐渐成为主流[4].但处理器的单线程处理能力仍然重要,Hill与Marty[5]指出,依据阿姆达法则,随着并行部分的加速,串行部分逐渐成为继续降低程序运行时间的瓶颈.动态多核处理器(dynamicmulti-core,DMC)[5]融合数个物理核的资源来提供适应需求的计算能力.如图2所示,含8个物理核的DMC处理器可以提供相当于2个或4个物理核计算能力的虚拟核.物理核有独立的硬件资源,虚拟核内跨越物理核边界传递操作数也存在IPL.超标量处理器采用同时多线程技术(simultaneousmultithreading,SMT)[6]可以发掘TLP.SMT技术在Fig.2 Dynamic multi-core processor microarchitecture图2 动态多核处理器微结构单核中发掘TLP,DMC技术在多核中发掘ILP.殊途同归,它们都是通过合理使用在空间分布的硬件资源实现高能效计算.分区结构能以较低功耗与周期开销提供可扩展的计算能力,但负载不均衡和IPL可能导致性能惩罚,分区结构需要有效的指令调度方法分布指令到各分区.负载均衡倾向于将指令分布到不同分区,而减少IPL惩罚则倾向于将指令根据依赖关系分布到同一分区,存在冲突的策略需要根据指令的关键性进行权衡决策,这就是空间指令调度问题.为解决空间指令调度问题,我们提出了基于数据流块(data-flow block,DFB)的空间指令调度方法,简称DFB调度.DFB是动态构建、缓存并重用的一个或数个顺序执行的指令基本块的调度模式.DFB调度算法用数据流约束模型描述动态指令序列中的依赖关系,用调度空间模型描述硬件资源约束,量化分析每条指令的调度裕量,根据指令间的相对关键性完成调度决策,生成周期跨度尽量小的调度模式,DFB调度缓存重用这种调度模式.我们介绍了DFB调度的微结构框架和算法.通过对分区数、IPL和调度窗口容量等与调度方法密切相关的微结构参数的实验,我们证明了DFB调度的性能和稳定性优于负载均衡调度和基于指令绝对关键性的依赖调度.最后举例证明结合一种数据流块缓存实现的DFB调度达到的调度效果接近理想化的DFB调度.157刘炳涛等:基于数据流块的空间指令调度方法本文贡献主要存在于3方面:1)我们构造了描述指令依赖关系的数据流约束模型并提出了基于量化指标的指令相对关键性的概念;2)我们构造了描述分区结构资源限制的调度空间模型并分析了空间指令调度问题;3)我们提出了DFB调度并进行了评估.1 相关工作Palacharla等人[1]研究了发射队列的复杂度与时钟周期的关系,指出随着发射宽度和调度窗口增大,唤醒和选择逻辑成为关键路径.该文提出了多体发射队列,利用分区结构解决超标量处理器可扩展性问题.指令预调度[7-9]从时间维度调度指令,提升发射队列效率.根据生产者指令执行延迟,指令在预调度窗口内重新排列,然后逐行进入发射队列,这样减少了指令在发射队列内的等待周期数.WIB[10]和Cyclone[11]将阻塞指令从发射队列中暂时取出,也属于时间指令调度.较多研究[12-15]关注分簇超标量处理器中指令空间调度问题.已有方法首先判断指令是否是关键路径指令,然后做出调度决策,研究重点在于指令关键性的判定.Fields等人[16]通过指令依赖链的长度做出指令关键性预测.Salverda等人[17]通过指令的历史执行信息做出关键性预测.本文提出的DFB调度量化指令的调度裕量并参照硬件资源约束做出调度决策.动态多核处理器[18-22]通过重构虚拟核的硬件资源来适应计算需求.Core Fusion[18]融合片上多核处理器(chip multi-core processor,CMP)中多个物理核提供发射宽度可变的虚拟核.TFlex[19]采用EDGE指令集,借助编译器进行指令调度.DCM(dynamiccore morphing)[20]可以根据应用的阶段性特征,提供合适的后端完成计算.Voltron[21]实现宽发射的VLIW虚拟核和能进行细粒度通信的多VLIW核双模式计算.WiDGET[22]根据需求分配合适数量的功能单元来实现与功耗成比例的计算.部分动态多核结构借助编译器完成静态指令调度,部分动态多核结构采用基于依赖的动态指令调度.除了动态多核处理器外,其他类型的空间结构[23-26]多借助编译器完成指令调度.DFB调度缓存、优化并重用指令调度策略.DIF[27]结构将调度完成的指令组缓存.再次遇到时,指令组由VLIW后端加速执行.Fill unit[28]将执行的指令压缩并缓存,提高发射带宽.基于TraceCache[29],处理器可以对缓存的指令进行动态优化以提升其执行性能[30].rePLay[31]提出了支持动态优化的框架.2 空间指令调度问题描述与建模分簇超标量处理器与动态多核处理器中负责执行指令的流水线后端都可抽象为分区结构.硬件资源由单体实现变为分区实现带来的变化主要有3点:1)单个分区分得的功能单元减少;2)跨分区传递操作数有额外的延迟;3)单个分区的发射队列变小.分区结构的指令调度可以看作优化问题,尝试减弱或消除上述3要素导致的性能惩罚,使分区实现接近单体实现的执行效率.Fig.3 Scheduling space model for spatial architecture图3 分区结构的调度空间模型单个分区的指令发射带宽、功能单元组成和发射队列容量等限制指令调度,我们用调度块(scheduleblock,ScB)描述这些资源约束.随着周期的增长,所有分区的ScB构成了矩阵形式的调度空间约束模型,矩阵行坐标T表示指令的预期发射周期,列坐标C表示指令的分区指派,矩阵的第i行第j列的元素ScBij描述了第j个分区在第i个周期的资源约束.空间指令调度为动态指令片段中的指令确定分区指派C,在不违反调度空间约束模型的情况下,尽量减小指令片段调度模式的周期跨度.图3展示了4分区结构的调度空间约束模型,单个分区每周期可发射2条指令,有2个整型、1个浮点、1个访存和1个分支功能单元.调度空间约束模型的术语定义如表1所示.257计算机研究与发展 2017,54(4)Table 1 Terminology of Schedule Space Constraints Model表1 调度空间约束模型术语Terminology Symbol DefinitionIssue Width Constraint E E(ScBij)describes the available issue slots in ScBij.Function Units Constraint F Fconstrains instruction mix according to the combination of functions units.Issue Queue Capacity Constraint IQ_Load IQ_Loaddescribes the instruction load of instruction queue.Partition Assignment C C(I)records the assigned partition of instruction I.Instruction Execution Latency Lat Lat(I)is the optimistic estimate of execution latency of instruction I.Instruction Steering Time SteerT SteerT(I)records when instruction Ienters issue queue.Instruction Issuing Time IssT IssT(I)records when instruction Iis issued to function unit.Instruction Executed Time ExedT ExedT(I)records when the destination register of instruction Iis available. 指令I调度到ScBij意味着IssT(I)=i,C(I)=j.指令执行完成周期等于发射周期加上指令的执行延迟ExedT(I)=IssT(I)+Lat(I).举例说明在调度空间约束模型下如何完成指令调度.如图3所示,I1依赖I0,假设I1调度到ScBij,则需要满足4项约束:E(ScBij)>0,(1)F(ScBij)[type(I1)]>0,(2)IQ_Load(ScBij)<IQ_Size,(3)IssT(I1)≥ExedT(I0)+IPL,C(I1)≠C(I0);ExedT(I0),C(I1)=C(I0){.(4) 其中,type(I)表示取执行指令I的功能单元类型,IQ_Size是单个分区的发射队列容量,IPL为分区间延迟.式(1)~(3)为资源约束,式(4)为生产者指令对消费者指令的调度约束.IPL设定为1周期,假设I0调度到ScB00,且Lat(I0)=3,则I1在I0的约束下的调度备选ScB如图3所示.如何完成调度使指令序列在调度空间约束模型的T方向上分布尽量窄,即指令调度问题.指令空间调度通过改变指令的C(I)来权衡负载均衡与IPL.已有调度方法考察指令位于关键路径的可能性,然后依照其关键性预测做负载均衡和依赖调度2选1的即时决策,我们称这种定性的决策标准为指令的绝对关键性.我们认为依据绝对关键性进行调度存在不足,原因有2个:1)实时关键性难以准确预测,指令位于不同执行路径时,其关键性存在差异;2)调度决策会反馈影响指令关键性,根据依赖进行调度会加重负载的不均衡,根据负载进行调度会使得路径的延迟增长,非关键路径可转化为关键路径.DFB调度根据指令上下文分析其调度裕量,不违反调度空间约束模型生成合理的调度模式并缓存复用.关注指令调度需求与资源约束的互动,通过对比竞争资源的多个指令的调度裕量做出调度决策,我们称这种定量的决策标准为指令的相对关键性.第3节介绍定量描述程序调度需求的数据流约束模型.3 数据流约束模型“操作数准备好,指令开始执行.”是数据流计算的基本思想,也为指令调度提供依据.我们在数据流概念的基础上做出扩展,定义指令的数据流约束为与指令有依赖关系的生产者与消费者指令对指令调度附加的周期约束.数据流约束有2个特点:1)量化约束关系,计算指令的调度裕量;2)参考指令的消费者依赖关系,即反向数据流依赖.传统指令调度方法逐条完成指令调度,无法参考反向数据流依赖关系,DFB调度缓存并重用指令调度模式,能够参考指令的消费者对其附加的数据流约束.数据流约束模型的术语的定义如表2所示.数据流约束的计算举例如图4所示.动态指令序列可表示为无环的有向数据流图,如图4中①所示,边表示指令间的依赖关系,边的权值表示估计的指令执行延迟Lat(I),虚线框表示指令是Terminal.数据流约束的计算有3步:1)按指令序遍历所有指令,计算得到指令的调度上限sched_ub.如图4中②所示,I0,I1等没有生产者指令约束的指令sched_ub为周期0,ExedT(I0)=1且ExedT(I1)=3,则sched_ub(I2)=3.2)设置Terminal的sched_lb为其sched_ub,如图4中③所示,然后逐个遍历D-Tree追踪反向数据流依赖关系,更新lb_mat,如图4中④⑤所示.3)lb_mat中指令约束最紧值即为指令的sched_lb,(sched_ub,sched_lb)定义指令的调度区间,差值为调度裕量,如图4中⑥所示.357刘炳涛等:基于数据流块的空间指令调度方法Table 2 Terminology of Data-Flow Constraints Model表2 数据流约束模型术语Terminology Symbol DefinitionTerminal term Instructions which have no consumer in DFB.Dependence Tree D-Tree The tree structure with a terminal as its root,obtained by back tracing the depencence.ScheduleUpperboundsched_ubsched_ub(I)describes when instruction Ican be waken up,which is determined by its operandproducers.ScheduleLowerboundsched_lbsched_lb(I)describes when instruction Ishould be issued,which is determined by its operandconsumers.Lowerbound Matrix lb_mat lb_mat records the sched_lb constraints to instructions by different D-Tree .Fig.4 Data-flow constraints computation图4 数据流约束的计算 数据流约束描述了程序的细粒度计算需求,调度上下限差值为指令的调度裕量:1)调度裕量量化表示了指令的相对关键性强弱,调度裕量越大其相对关键性越弱,当多条指令竞争调度资源时,优先满足相对关键性强的指令;2)调度裕量是考虑了调度策略影响的动态指标,当指令跨分区传递操作数时,IPL消耗指令的调度裕量,其相对关键性得到提升.调度裕量表示的相对关键性是与上下文相关的、量化的、动态的指令关键性指标.4 基于数据流块的空间指令调度的框架DFB是动态构建、缓存并重用的调度模式.扩展支持DFB调度的处理器微结构框图如图5所示.在传统分区结构的基础上,添加了DFB构建、缓存和重用的逻辑.DFB调度的实现基于集成数据流缓存的处理器前端设计[32],该设计解耦合指令转换与分支预测,DFB Cache利用程序的计算局部性覆盖大部分的动态指令流,从而降低DFB构建的执行频率,减少DFB Trainer的功耗开销.DFB Trainer可以被芯片上多个物理核复用,降低其平均面积开销.Fig.5 Microarchitecture augmented with DFB scheduling图5 扩展支持DFB调度后的微结构分支预测器给出取指地址来查询DFB Cache:1)命中,DFB Scheduler取出缓存的DFB,指导指令的空间调度;2)未命中,DFB Trainer采样指令,并执行DFB调度算法,将调度模式存入DFB Cache.在程序的计算局部性支持下,经过一段时间的训练,DFB Cache可以覆盖大部分的动态指令.457计算机研究与发展 2017,54(4)DFB内指令依赖的表示采用前向数据流指针[32],操作数由生产者指令主动传递给消费者指令,DFBTrainer在DFB内插入额外的copy指令完成操作数的跨分区传递.指令不需要跨分区广播操作数或访问物理寄存器文件.主分区维护ROB(reorderbuffer)信息,每个DFB占用ROB的1个空位,当DFB的最后1条指令达到提交阶段时,整个DFB一起提交.物理寄存器和ROB的实现不会限制结构的可扩展性.5 DFB空间调度算法DFB Trainer使用DFB调度算法,输入动态指令序列,参照数据流约束模型和调度空间约束模型完成指令调度,输出指令序列的调度模式.DFB调度算法的目标是在不违反资源限制的前提下,尽量满足程序的计算需求,生成时间跨度尽量小的调度模式.在数据流约束表示的指令相对关键性的指导下,DFB调度算法对每条指令做依赖调度和负载均衡调度的权衡,为其指派分区.当指令的数据流约束无法满足时,放宽约束所在D-Tree上指令的sched_lb,继续尝试调度当前指令,直到所有指令调度完成.Fig.6 Dependence based scheduling constraints图6 基于依赖的调度约束5.1 基于依赖的调度调度依指令序逐条进行,当某指令开始调度时,其生产者指令已经调度完成,对其调度上限构成约束.图6展示指令I2开始调度的周期,其依赖的指令I0调度在ScB00,I1调度在ScB12.假设Lat(I0)=3,Lat(I1)=1,IPL=1,则I0与I1附加的调度上限约束分别如图6中虚线和点划线所示.基于依赖的调度要求IssT(I2)同时满足2个约束,灰色ScB为备选位置.考虑I2的相对关键性.当I2的调度下限大于周期3时,可以将I2调度到分区0以外,此时I0附加的调度约束如图7中虚线所示.将I2调度到分区0之外,让出了分区0的执行机会或者使负载更均衡.Fig.7 Scheduling according to relative criticality图7 依据相对关键性进行调度Fig.8 Loosen data-flow constraints when needed图8 适时放松数据流约束根据依赖关系和相对关键性确定了备选ScB后,按照IssT从小到大的顺序考察ScB,若找到不违反资源限制约束的且IssT满足sched_lb要求的ScB开始下条指令的调度;否则,放松数据流约束,继续尝试调度当前指令.如图8所示,I1调度在了557刘炳涛等:基于数据流块的空间指令调度方法ScB22,则sched_lb(I2)=3的数据流约束无法满足.追踪约束来源的D-Tree,将对应的Terminal的sched_lb增1,更新lb_mat,计算sched_lb约束,重新尝试调度I2,重复该过程直到调度成功.5.2 基于负载均衡的调度DFB空间调度算法使用调度空间约束模型对功能单元计算能力建模,而采用计数排序的方法应对发射队列负载均衡的问题,优先考虑指令数少的分区,对于指令数相等的分区,优先调度到最久没有被使用的分区.根据分区负载确定调度优先级的电路示意图如图9所示:Fig.9 Priority updating circuit for load balancing图9 负载均衡优先级更新电路电路主要维护2组寄存器,CSIZE寄存器组存储各分区已经指派的指令数量,ORDER寄存器组按负载均衡优先级输出调度分区编号.DFB开始构建时CSIZE寄存器清0,每调度1条指令,CSIZE寄存器和ORDER寄存器依次变化,更新优先级:1)指令调度的分区号C控制对应的CSIZE寄存器加1;2)更新ORDER寄存器,CSIZE越大的分区优先级越低,CSIZE相等的分区,维持优先级顺序.5.3 算法伪代码与分析DFB调度算法依指令序逐条调度指令.调度单条指令分为3步:1)根据依赖关系和数据流约束表示的相对关键性确定备选ScB;2)按照IssT递增的顺序在备选的ScB中尝试调度指令,相同IssT的ScB依负载均衡优先级调度,若成功则完成当前指令调度;3)放松当前指令sched_lb所在D-Tree的约束,并返回步骤1继续尝试进行调度.DFB的所有指令调度完成时算法结束.伪代码中,n为指令数,nC为分区数,IPL为跨分区操作数传递延迟.inst是输入指令序列,ScB是调度空间模型矩阵,sched_con记录指令的关键消费者;输出是分区指派C和预期发射周期IssT.算法如下:算法1.DFB空间指令调度.输入:inst[],ScB[][],sched_ub[],sched_lb[],sched_con[];输出:C[0:n-1],IssT[0:n-1].伪代码:函数SCHED_MAIN()/*初始化负载均衡优先级电路*/①for all:ORDER[i]=(rr_token+i)%nC;②for all:CSIZE[i]=0;③rr_token=(rr_token+P)%nC;/*按指令序依次调度*/④for each i in[0:n-1]⑤ while(SCHED_INST(i)≠true)/*调度失败则放松数据流约束,直到调度成功*//*term为指令约束所在D-Tree的根*/⑥ sched_lb[term]++;⑦ recalc_lb();⑧ end while/*更新负载均衡优先级*/⑨ for each jin[0:nC-1]⑩ vec.add(CSIZE[ORDER[j]] 4|j2|ORDER[j]); 瑏瑡 end for 瑏瑢 vec.sort(‘<’); 瑏瑣 for each jin[0:nC-1] 瑏瑤 ORDER[j]=vec[j]%nC; 瑏瑥 end for 瑏瑦end for函数SCHED_INST(idx)瑏瑧if(inst[idx] s src1is valid):/*操作数1有依赖*/瑏瑨 ExedT[src1]=IssT[src1]+Lat[src1]; 瑏瑩 if(sched_con[src1]≠idx &&(ScB[ExedT[src1]][C[src1]]isnearly full‖sched_lb[idx]>ExedT[src1]))yield=true; 瑐瑠 end if 瑐瑡 for each i in[0:nC-1]瑐瑢 if(i==C[src1]) 瑐瑣 if(yield)Y1[i]=maxINT;/*最大整数*/ 瑐瑤 else Y1[i]=ExedT[src1]; 瑐瑥 end if 瑐瑦 else Y1[i]=ExedT[src1]+IPL;657计算机研究与发展 2017,54(4)瑐瑧 end if瑐瑨 end for瑐瑩end if瑑瑠if(inst[idx] s src2is valid)/*操作数2有依赖*/瑑瑡 Y[:]=max(Y1[:],Y2[:]);瑑瑢 minY=min(Y[:]);瑑瑣end if瑑瑤if(minY>sched_lb[idx])return false;瑑瑥end for瑑瑦for each i in(minY:sched_lb[idx])瑑瑧 for each jin[0:nC-1]瑑瑨 if(Y[ORDER[j]]≤i)瑑瑩 if(ScB[i][ORDER[j]]satisfiesinst[idx])瑒瑠 C[idx]=ORDER[j];瑒瑡 IssT[idx]=i;瑒瑢 CSIZE[ORDER[j]]++;瑒瑣 return true;瑒瑤 end if瑒瑥 end if瑒瑦 end for瑒瑧end for瑒瑨return false.时间复杂度简要分析如下:函数SCHED_INST调度单条指令,Y1和Y2分别表示2条生产者指令对当前指令的调度上限约束,Y由Y1和Y2共同确定,Y的最小值minY表示当前指令最早的IssT,行 瑏瑧~ 瑑瑤计算的时间复杂度为O(1).Y与sched_lb确定了IssT的取指范围,各分区最顶部的ScB作为调度目标,算法在硬件实现时可以维护各分区各功能单元的发射机会向量,其与调度范围求交集后,顶部的ScB即是各分区的候选,对最多nC个备选的ScB,按照小的IssT第1优先,ORDER寄存器第2优先的顺序确定调度到的ScB,行 瑑瑦~ 瑒瑨计算的时间复杂度为O(1).所以,SCHED_INST的时间复杂度为O(1).SCHED_MAIN负责指令序列的调度.行⑨~ 瑏瑥更新负载均衡优先级电路,其时间复杂度为O(n).行④~⑤确定2层循环,行⑤~⑦为最内层循环体,每进行1次约束放松,至少有1条指令的sched_lb增1.任何1条指令的sched_lb不会超过n×(max(Lat)+IPL),行⑥~⑦进行约束放松为O(n2)次,行⑤调用SCHED_INST的次数等于约束放松的次数加n.因此算法总的时间复杂度为O(n2).6 实验评估6.1 实验设置我们为ESESC模拟器[33]添加了DFB调度后运行SPECINT CPU2006测试程序集,使用ref输入数据.我们略过初始的1亿条指令后,模拟1亿条指令的连续执行.因为DFB Cache依赖程序的计算局部性,关闭模拟器的采样执行模式使模拟的动态指令流的计算局部性尽量接近程序实际执行情况.支持乱序执行的流水线的指令执行性能受到多个结构参数的影响,取指带宽、指令窗口容量、调度窗口容量、功能单元配置等都会影响程序的执行.为了评估指令空间调度方法,使指令执行性能体现调度方法的差异,我们对结构参数进行了差异化的设置,重点关注3个与指令空间调度方法密切相关的结构参数:分区数、IPL和调度窗口容量.部分结构参数配置如表3所示.ROB、寄存器文件等后端部件使用多端口RAM实现,可扩展性强于调度器,它们的设置根据调度窗口容量和功能单元配置合理设定,尽量减少对性能的影响.Table 3 Processor Model Configuration表3 处理器模型配置Parameter SetupBPredHybrid local/global predictor,11bit historyregister,2bit saturate counter,16K-entry PHTfor global/local/choice eachIssue Width 8instructions per cycleFU 8universalFU LatencyINT:mul 5cycles,div 8cycles,others 1cycle,FP:mul 7cycles,div 28cycles,others 4cyclesL1DCache 64KB,4-way,32Bline,2-cycle hit latencyL2Cache Unlimited,20-cycle latencyScheduler Size 64/128/256entriesIPL 1/2/3cyclePartition Count 1/2/4/8Schedule Method RR/DEP/DFB已有的指令调度方法对指令关键性的判定存在差异,但调度策略可以归为负载均衡和依赖调度2类.我们设置2个参照的调度方法:RR调度轮转分配指令到各分区,维持负载均衡;DEP调度基于生产者依赖关系调度指令,没有依赖时按照LRU(least recently used)策略选择分区;DFB调度即本文提出的依据指令的相对关键性构建调度模式并缓存重用的调度方法.757刘炳涛等:基于数据流块的空间指令调度方法6.2 DFB调度算法的评估与分析算法评估基于理想DFB调度,假设所有动态指令都被DFB Cache覆盖.对分区数量、IPL和调度窗口容量3个结构参数,每次变化其中1个,观察不同调度方法的性能差异.调度效果评价有2个指标:1)每指令周期数(cycle per instruction,CPI),CPI越低调度效果越好,我们以CPI最低的配置为基准对CPI进行归一化处理,方便比较;2)调度阻塞率(schedule blocking rate,SBR),如果调度方法为指令选择的分区发射队列已满,则阻塞流水线,直至调度成功,SBR表示阻塞周期数占总周期数的比率,SBR越小通常调度效果越好.6.2.1 分区数与调度效果不考虑分区结构在功耗、时序以及可扩展性等方面存在的优势.分区越多,单个分区的资源越少,负载不均衡和IPL对性能产生负面影响的可能性越大.我们设置IPL为1个周期,总调度窗口容量为128条指令.分区数为2,4,8的配置下,各调度方法的测试结果分别如图10~12所示.折线表示程序的CPI,绘制在主纵轴上;柱状图表示程序的SBR,绘制在辅纵轴,用百分比表示.Fig.10 Experimental result for 2partitions图10 分区数为2的实验结果程序的并行性特征不同导致其对调度方法存在偏好.perlbench的ILP有限,指令依赖较多,偏好DEP调度;bzip2的ILP较高,负载均衡压力大,调度窗口易阻塞,偏好RR调度;omnetpp和xalancbmk在分区数较小时偏好DEP调度,随着分区数增大逐渐偏好RR调度.不同程序对调度方法的偏好不同,同一个程序对调度方法的偏好也随分区数改变,所以RR调度和DEP调度之间不存在绝对的性能优劣,适应程序并行性特征的调度方法的调度效果较Fig.11 Experimental result for 4partitions图11 分区数为4的实验结果Fig.12 Experimental result for 8partitions图12 分区数为8的实验结果好.DFB调度量化程序的数据流约束,参照硬件资源约束生成调度模式并缓存重用,可以DFB调度的质量和稳定性优于RR和DEP调度.Fig.13 Performance trend with increasing partition count图13 随着分区数增加性能的变化趋势程序平均性能随分区数变化的趋势如图13所示.随着分区数增加,CPI和SBR逐渐上升,负载均857计算机研究与发展 2017,54(4)衡和IPL对性能影响逐渐增大.RR调度有最低的SBR;DEP调度容易导致调度窗口阻塞,SBR较高;DFB调度维持负载均衡的效果弱于RR,但其性能强于RR,说明DFB调度对指令关键性把握较好,照顾负载均衡的同时并没有使得关键路径过多受到IPL的惩罚.6.2.2 跨区操作数传递延迟与调度效果芯片上的功能单元互相传递操作数需要通信网络.单体实现时,操作数的传递延迟为1个周期,但周期较长.分区实现时,邻近功能单元操作数的传递延迟为1个周期,而距离越远延迟周期数越多,但周期较短.IPL定量描述了功能单元间通信延迟不均匀的程度,比如,分簇超标量处理器中调度到同簇的指令可以背靠背执行,延迟为0周期,跨越簇的边界广播操作数,需要1周期.动态多核处理器中虚拟核的物理分区之间传递操作数需要配对的复制或同步指令,需要2或3周期.基于片上网络在更多的核间传递操作数的延迟与核间的曼哈顿距离成比例.我们设置总调度窗口容量为128条指令,分区数为8.IPL为1,2,3周期时,各调度方法的测试结果分别如图14~16所示.Fig.14 Experimental result for 1-cycle IPL图14 IPL为1周期的实验结果IPL增加会增大跨分区传递操作数导致的性能惩罚.RR调度不考虑指令的依赖关系,随IPL增加性能下降最明显;DEP调度的SBR随着IPL增加基本没有变化,因为存在依赖关系的指令被分到同一分区的概率较高,性能变化较小.程序的平均性能随IPL变化的趋势如图17所示.DFB调度具有最佳调度效果.随着IPL增长,调度裕量消耗加快,负载均衡调度的机会减少,调度结果逐渐趋近于DEP调度.Fig.15 Experimental result for 2-cycle IPL图15 IPL为2周期的实验结果Fig.16 Experimental result for 3-cycle IPL图16 IPL为3周期的实验结果Fig.17 Performance trend with increasing IPL图17 随着IPL增加性能的变化趋势6.2.3 调度窗口容量与调度效果发射队列影响周期长度.小的发射队列容易被阻塞导致性能损失.我们设置分区数为8,IPL为1个周期.总调度窗口容量为64,128,256条指令时,各调度方法的测试结果见图18~20所示.957刘炳涛等:基于数据流块的空间指令调度方法。

相关文档
最新文档