17
39 2016 CHINESEJOURNAL OFCOMPUTERS Vol.39 No.9 Sept.2016 收稿日期20141116 在线出版日期20150723. 本课题得到国家自然科学基金61370062 资助 张吉赞1973 年生博士研究生主要研究方向为计算机体系结构计算机网络 .Email zhang _ zhao _ zhang 163.com. 古志民通信作者), 1964 年生博士教授国计算机学会CCF 会员主要研究领域为多核 众核优化 .Email zmgu x263.net. 多核共享缓存 犫犪狀犽 冲突分析及其延迟最小化 张吉赞 ), 古志民 北京理工大学计算机科学技术学院 北京 100081 鲁东大学数学与信息学院 山东 烟台 264025 在硬实时多核系统中共享资源冲突的问题为硬实时任务的最差情况下执行时间WCET 分析带来了新 挑战 虽然现有的共享缓存冲突分析技术在 storage 冲突方面已取得研究进展但对于 bank 冲突而言现有研究仍 局限于通过界定 bank 冲突延迟上限来分析和处理 bank 冲突 该文通过优化核 bank 映射关系来使硬实时多核系 统中的 bank 冲突延迟最小化即在对 bank 冲突延迟进行分析的基础上首先通过优化核 bank 之间的映射关系来 消除 bank 冲突若无法消除则需要寻找能使 bank 冲突延迟最小化的核 bank 映射关系解并为此设计了一种基 于多核总线请求时间序列的 bank 冲突延迟求解算法 最后文中设计了能够对总线访问延迟进行消重的多核硬实 时任务 WCET 估算方法 实验结果表明文中所提的优化方法可消除这类 bank 冲突或使其延迟最小化文中所提 WCET 估算方法与现有估算方法相比可获得更精确的最差情况下执行时间WCET 关键词 多核系统硬实时任务优化核到 bank 映射bank 冲突延迟最差情况下执行时间 中图法分类号 TP303 犇犗犐 10.11897 SP.J.1016.2016.01883 犃狀犪犾 狕犻狀 犅犪狀犽犃犮犮犲狊狊犆狅狀犳犾犻犮狋犪狀犱犕犻狀犻犿犻狕犻狀 犅犪狀犽犆狅狀犳犾犻犮狋犇犲犾犪 犳狅狉犛犺犪狉犲犱犆犪犮犺犲犻狀 犕狌犾狋犻犮狅狉犲 ZHANGJiZan ), GUZhiMin 犛犮犺狅狅犾狅 犆狅犿 狌狋犲狉犛犮犻犲狀犮犲牔 犜犲犮犺狀狅犾狅 犵狔 犅犲犻 犻狀 犐狀狊狋犻狋狌狋犲狅 犜犲犮犺狀狅犾狅 犵狔 犅犲犻 犻狀 100081 犇犲 犪狉狋犿犲狀狋狅 犕犪狋犺犲犿犪狋犻犮狊牔犐狀 狅狉犿犪狋犻狅狀 犔狌犱狅狀 犝狀犻狏犲狉狊犻狋 犢犪狀狋犪犻 犛犺犪狀犱狅狀 264025 犃犫狊狋狉犪犮狋 Intertaskinterferencesonthesharedresourcesofhardrealtime multicoresystems bringanewchallengeto WCETanalysis.Theintertaskinterferencesrelatedtothesharedcache arestorageinterferenceandbankaccessconflict.Uptonow storageinterferencehasbeensolved well.Inexistingresearch however thetreatmentofbankaccessconflictisonlyconfinedto boundingupperboundofthebankconflictdelaysufferedbyonerequest.Aschangingthecore tobankmappingcanchangethebankaccessconflictinahardrealtimemulticoresystemusinga bankpartitionedsharedcache weoptimizecore tobankmappingtominimizebankconflictdelay inthispaper.Wefirstlyoptimizecore tobank mappingtoeliminatebankaccessconflict.If cannoteliminatethebankaccessconflict weoptimizecore tobank mappingtominimizebank conflictdelay.Tosolvetheoptimizationproblem wedesignan algorithm usingthetiming sequencesofthebusrequeststocomputethebankconflictdelayononesharedbank.Wealso designamethodtoestimatetheWCETsofhardrealtimetasksinmulticoresystems whichcan reducethetimeoverlappingamongtheexecutiontimeinpipeline busaccessdelayandthelatencyof memorysystem.Experimentalresultsdemonstratethatourapproachofoptimizingcore tobank mappingcanminimizebankconflictdelayandourapproachestoestimate WCETaremoreeffective thanexistingapproaches.

多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

  • Upload
    others

  • View
    39

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

书书书

第39卷 第9期

2016年9月

计  算  机  学  报

CHINESEJOURNALOFCOMPUTERS

Vol.39 No.9

Sept.2016

 

收稿日期:20141116;在线出版日期:20150723.本课题得到国家自然科学基金(61370062)资助.张吉赞,男,1973年生,博士研究生,

主要研究方向为计算机体系结构、计算机网络.Email:zhang_zhao_zhang@163.com.古志民(通信作者),男,1964年生,博士,教授,中

国计算机学会(CCF)会员,主要研究领域为多核/众核优化.Email:zmgu@x263.net.

多核共享缓存犫犪狀犽冲突分析及其延迟最小化

张吉赞1),2)

  古志民1)

1)(北京理工大学计算机科学技术学院 北京 100081)

2)(鲁东大学数学与信息学院 山东 烟台 264025)

摘 要 在硬实时多核系统中,共享资源冲突的问题为硬实时任务的最差情况下执行时间(WCET)分析带来了新

挑战.虽然现有的共享缓存冲突分析技术在storage冲突方面已取得研究进展,但对于bank冲突而言,现有研究仍

局限于通过界定bank冲突延迟上限来分析和处理bank冲突.该文通过优化核bank映射关系来使硬实时多核系

统中的bank冲突延迟最小化,即在对bank冲突延迟进行分析的基础上,首先通过优化核bank之间的映射关系来

消除bank冲突;若无法消除,则需要寻找能使bank冲突延迟最小化的核bank映射关系解,并为此设计了一种基

于多核总线请求时间序列的bank冲突延迟求解算法.最后,文中设计了能够对总线访问延迟进行消重的多核硬实

时任务 WCET估算方法.实验结果表明:文中所提的优化方法可消除这类bank冲突或使其延迟最小化,文中所提

的 WCET估算方法与现有估算方法相比可获得更精确的最差情况下执行时间(WCET).

关键词 多核系统;硬实时任务;优化;核到bank映射;bank冲突延迟;最差情况下执行时间

中图法分类号 TP303   犇犗犐号 10.11897/SP.J.1016.2016.01883

犃狀犪犾狔狕犻狀犵犅犪狀犽犃犮犮犲狊狊犆狅狀犳犾犻犮狋犪狀犱犕犻狀犻犿犻狕犻狀犵犅犪狀犽犆狅狀犳犾犻犮狋犇犲犾犪狔

犳狅狉犛犺犪狉犲犱犆犪犮犺犲犻狀犕狌犾狋犻犮狅狉犲

ZHANGJiZan1),2) GUZhiMin

1)

1)(犛犮犺狅狅犾狅犳犆狅犿狆狌狋犲狉犛犮犻犲狀犮犲牔犜犲犮犺狀狅犾狅犵狔,犅犲犻犼犻狀犵犐狀狊狋犻狋狌狋犲狅犳犜犲犮犺狀狅犾狅犵狔,犅犲犻犼犻狀犵 100081)

2)(犇犲狆犪狉狋犿犲狀狋狅犳犕犪狋犺犲犿犪狋犻犮狊牔犐狀犳狅狉犿犪狋犻狅狀,犔狌犱狅狀犵犝狀犻狏犲狉狊犻狋狔,犢犪狀狋犪犻,犛犺犪狀犱狅狀犵 264025)

犃犫狊狋狉犪犮狋 Intertaskinterferencesonthesharedresourcesofhardrealtimemulticoresystems

bringanewchallengetoWCETanalysis.Theintertaskinterferencesrelatedtothesharedcache

arestorageinterferenceandbankaccessconflict.Uptonow,storageinterferencehasbeensolved

well.Inexistingresearch,however,thetreatmentofbankaccessconflictisonlyconfinedto

boundingupperboundofthebankconflictdelaysufferedbyonerequest.Aschangingthecore

tobankmappingcanchangethebankaccessconflictinahardrealtimemulticoresystemusinga

bankpartitionedsharedcache,weoptimizecoretobankmappingtominimizebankconflictdelay

inthispaper.Wefirstlyoptimizecoretobankmappingtoeliminatebankaccessconflict.If

cannoteliminatethebankaccessconflict,weoptimizecoretobankmappingtominimizebank

conflictdelay.Tosolvetheoptimizationproblem,wedesignanalgorithmusingthetiming

sequencesofthebusrequeststocomputethebankconflictdelayononesharedbank.Wealso

designamethodtoestimatetheWCETsofhardrealtimetasksinmulticoresystems,whichcan

reducethetimeoverlappingamongtheexecutiontimeinpipeline,busaccessdelayandthelatencyof

memorysystem.Experimentalresultsdemonstratethatourapproachofoptimizingcoretobank

mappingcanminimizebankconflictdelayandourapproachestoestimateWCETaremoreeffective

thanexistingapproaches.

Page 2: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

犓犲狔狑狅狉犱狊  multicoresystem;hardrealtimetask;optimization;coretobankmapping;bank

conflictdelay;worstcaseexecutiontime(WCET)

1 引 言

硬实时系统对硬实时任务的执行时间有着严格

要求,每个硬实时任务必须在确定的截止期之前完

成.硬实时任务的最差情况下的执行时间(WCET)

是判断硬实时任务是否能够安全运行的重要依据[1],

迄今为止,针对硬实时单核系统的 WCET估算技术

已取得重大的研究进展[2],然而,随着嵌入式多核

技术(如 ARM11MPCore①,QorIQP4080② 等)在

硬实时系统领域的广泛应用,这类硬实时多核系统

中往往存在着任务之间可以共享的资源,如共享的

片上高速缓存和片上总线等,同时运行的硬实时任

务在使用这些共享资源时可能会发生bank冲突、

总线访问冲突等.这些冲突会给硬实时任务的执行

带来不可预测的额外执行时间,这为 WCET估算带

来了新的技术挑战[3].

由于基于单核的传统 WCET估算技术无法支持

对这类冲突的时间分析[45],为了获取安全的 WCET,

我们在对多核系统上的硬实时任务进行 WCET估

算时,必须重新估算这些冲突对执行时间带来的

影响.

目前,多bank结构已成为共享缓存设计的主

要方向[68],例如一个多bank结构的L2缓存由多

个bank组成,当多个请求同时到达L2缓存的一个

bank时,只能有一个请求使用这个bank,其他请

求必须等待,此时就发生了bank访问冲突.在对

bank访问冲突的处理上,现有技术(如Paolieri[9]和

Yoon[10]等)主要采用界定每个请求遭受的bank冲

突延迟上限的方法.这种方法虽然可以简化 WCET

的估算,但需要借助于特殊的总线结构或总线仲裁

策略将bank冲突延迟限制在一定范围内,如两层

总线仲裁策略(twohierarchicalbusarbitration)[9]、

和谐的轮询总线仲裁策略(harmonicroundrobin

busarbitration)[10]等;然而,其他一些常见的总线结

构或总线仲裁策略,如简单轮询策略(pureround

robinarbitration),与这类特殊的总线仲裁策略完

全不同,采用上述bank冲突延迟上限界定法就无

法有效界定每个请求遭受的bank冲突延迟上限.

另外,这种界定bank冲突延迟上限的方法对

硬实时任务的 WCET估算过高.无论请求遭受到

bank访问冲突与否,该方法为每个访存请求增加一

个额外的bank冲突延迟上限.实际上,并不是所有

请求都会遭受到bank访问冲突,并且即使在一组

请求中发生了bank访问冲突,每个请求遭受的

bank冲突延迟也不尽相同,如第1个访存请求就不

会遭受到bank访问冲突.

在硬实时多核系统中,运行在同核上的硬实时

任务之间不存在bank访问冲突,而在不同核上同

时运行的硬实时任务若因为共享某个bank,则它们

之间可能存在bank访问冲突.因此,不同的核到

bank映射方式对应的bank访问冲突不同,通过改

变核到bank映射关系就可改变多核系统中bank

访问冲突的情况.

本文的主要目的是通过优化核到bank的映射

关系来优化硬实时多核系统中的bank冲突延迟,

进而对硬实时多核系统进行 WCET估算.其中,硬

实时多核系统中的L2缓存采用了多bank结构并

进行column划分③,共享总线为采用简单轮询总线

仲裁策略的时分多路复用(TDMA)实时总线.本文

主要贡献如下:

(1)对采用简单轮询总线仲裁策略的硬实时多

核系统进行了bank冲突延迟分析,给出了bank访

问冲突发生的条件和bank冲突延迟的计算方法;

(2)根据bank访问冲突发生的条件,首先优化

核到bank的映射关系以消除bank访问冲突.若不

能消除bank访问冲突,则进一步优化核到bank的

映射关系使bank冲突延迟最小化,并为该优化问

题提出了一种基于多核总线请求时间序列的bank

冲突延迟求解算法;

(3)提出了多核硬实时任务的 WCET估算方

法,该方法综合考虑了任务在流水线上的执行时间、

访问存储系统的时间和总线访问延迟之间的相互影

响关系.

本文第2节介绍相关工作;第3节给出硬实时

多核系统模型,包括多核结构和应用模型;第4节分

4881 计  算  机  学  报 2016年

ARM11MPCoreProcessor.http://www.arm.com/products/processors/classic/arm11/arm11mpcore.php,2012,

6,18FreescaleQorIQP4080Processor,http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=P4080,

2012,6,18ChiouD,RudolphL,DevadasS,AngBS.Dynamiccachepartitioningviacolumnization.http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.5764,2013,3,14

Page 3: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

析bank冲突延迟;第5节提出优化问题,并设计求

解算法;第6节设计多核硬实时任务的 WCET估算

方法;第7节给出实验环境及实验验证结果;第8节

得出结论.

2 相关工作

在硬实时多核系统中,与L2缓存相关的任务

间冲突主要包括storage干扰和bank访问冲突.由

于总线访问冲突与storage干扰或bank访问冲突

之间存在着相互影响,因此在分析storage干扰或

bank访问冲突时,一般需要结合总线访问冲突进行

分析.

一些现有的研究成果将共享总线设计和共享

缓存划分技术结合起来,对请求遭受的总线访问延

迟和bank冲突延迟进行分析,但采用了界定每个请

求遭受的延迟上限的方法.如Paolieri等人[9]在其工

作中,提出了一种二层总线仲裁的多核结构,用以界

定每个总线请求遭受的总线访问延迟和bank冲突

延迟,共享L2缓存采用缓存划分或bankization划

分,以消除storage干扰或bank访问冲突;在采用

bankization划分时,要求任务独占分配的bank以消

除bank访问冲突,受bank数目的影响,这种方法

受限制于硬实时多核系统的工作负荷.然而该方法

仅适用于这类特殊的多核结构,且 WCET估算方法

采用了界定延迟上限的方法.再如在Yoon等人[10]

的可调 WCET(tunableWCET)、和谐的轮询总线

仲裁策略等工作中,共享L2缓存采用二级划分结

构,整个缓存被划分成多个bank,每个bank又进一

步被划分成多个column.其中,核向bank做映射,

硬实时任务向column做映射且独占分配的column

以消除storage干扰.在优化时采用了界定bank冲

突延迟和总线访问延迟上限的方法.然而该方法仅

适用于和谐的轮询总线仲裁策略,同时采用界定延

迟上限的方法造成 WCET估算过高.

另有一些研究成果是将storage干扰分析和总

线访问冲突分析结合起来进行 WCET估算,但在

分析时却没有考虑bank访问冲突问题.如 Andrei

等人[11]和 Rosén等人[12]提出的 TDMA总线延迟

分析和storageinterference延迟,优化了总线调

度策略,其特点是,在这种TDMA总线中使用静态

调度分析,总线时槽被静态地分配给不同的核.

Chattopadhyay等人[13]提出了融合共享缓存和总线

的 WCET分析框架,在分析总线访问延迟时让循环

的开始与总线调度周期的第一个时槽对齐,同时考

虑到L2缓存的storage干扰,因此进行反复迭代与

调整,直到结果稳定.虽然这种方法比 Andrei等

人[11]提出的方法效率高,但是该方法对 WCET值

估算仍过高.Kelter等人[14]通过界定 TDMA偏移

量(TDMAoffset)上界的方法来进一步提高分析效

率,具体采用了Chattopadhyay等人[13]提出的分析

框架来估算 WCET,并用全局收敛性分析(global

convergenceanalysis)来界定TDMA总线偏移量的

上限.Kelter等人[15]静态分析(staticanalysis)了

TDMA总线给请求带来的总线访问延迟,并给出

了形式化证明.同时结合storage干扰分析估算了

多核系统的 WCET.Chattopadhyay等人[16]提出了

一种多核系统的 WCET分析框架,改进了文献[13]

对循环结构的处理.在分析总线访问延迟时不再让

循环的开始与总线调度周期的第一个时槽对齐,

而是根据执行上下文(executioncontext),令请求的

总线访问延迟为可能遭受的最大总线访问延迟.

Li等人[17]分析了并行任务的 WCET,首先使用信

息序列图(MessageSequenceChart,MSC)将并行

任务的生命期分成重叠(overlapping)和非重叠

(nonoverlapping)两部分,对于重叠部分的分析,采

用Chattopadhyay等人[13]提出的分析框架和Kelter

等人[14]提出的界定总线偏移量的方法.

还有一些研究成果将分析重点仅放在storage

干扰上,均没有考虑bank冲突延迟和总线访问延

迟对硬实时任务 WCET的影响.如Yan等人[18]根

据线程的程序控制流信息,计算线程在共享L2指

令缓存上的storage干扰.Chen等人[19]通过指令的

取指时间关系,分析了进程在共享缓存上的storage

干扰.Ding等人[20]提出了动态锁指令缓存以消除

storage干扰,该方法可灵活锁定循环结构对应的缓

存空间.Liu等人[21]应用锁缓存技术来消除storage

干扰.

3 硬实时多核系统模型

31 嵌入式多核模型

如图1所示的一个嵌入式多核处理器含有犖core

个同构的有序(inorder)核,表示为犆={犮1,犮2,…,

犮犖core}.每个核有自己私有的第一级数据缓存和指令

缓存.由所有核共享使用的第二级缓存(unifiedL2

cache)采用多bank结构,由犖bank个大小相等的bank

组成,表示为犅={犫1,犫2,…,犫犖bank},完成一次请求

58819期 张吉赞等:多核共享缓存bank冲突分析及其延迟最小化

Page 4: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

需要的时间为犔犕个时钟周期(cycles).使用 Yoon

等人[10]提出的缓存两级划分方法将每个bank进一

步划分成相等的犖column个columns.连接L2缓存和

核的实时总线是全双工 TDMA总线,该实时总线

采用简单轮询调度策略,每个总线调度周期有犔round

个等长的总线时槽,表示为犚={狊1,狊2,…,狊犔round}.

每个总线时槽的长度等于总线完成一次请求所需

要的时间,表示为犔犅个时钟周期.假设犔犕/犔犅是整

数,那么一个请求完成一次L2缓存访问至少需要

(犔犅+犔犕)个时钟周期,设为犔犾犪狋.核到总线时槽的

映射是一一映射,且把核犮犻(∈犆)映射到总线时槽

狊犻(∈犚)上.请求访问L2缓存,发生缺失时需要访问

主存,假设请求访问主存需要的时间为犔L2penal个时

钟周期.

图1 一个嵌入式多核处理器结构

32 多任务应用模型

假设一组硬实时任务已经被分配到 犖core个核

上,这些任务在执行过程中不能在核间迁移,同核上

的任务将按顺序执行,那么某时间段内最多有犖core

个任务均匀分布在犖core核上且并发执行.在确定任

务到核的分配后,需要确定核需要的L2缓存大小,

设犎犜犻是分配到核犮犻的任务集合,任务τ犼(∈犎犜犻)

需要的L2缓存大小为犛犻狕犲犼个columns,则核犮犻需

要的L2缓存大小为犛犻狕犲犮犻=max(犛犻狕犲犼|1犼狀犻)

个columns,其中狀犻为集合犎犜犻中的任务数.

采用类似于 Yoon等人[10]所提方法来作核到

bank的映射和硬实时任务到column的映射,按照

核需要的最大L2缓存大小向bank作映射,当多个

核共享使用某个bank时,在这些核上同时运行的

任务之间有可能存在bank访问冲突.在作任务到

column的映射时,任务独占分配给它的column.故

不存在storage干扰.

另外,采用Li等人[17]所提方法来处理任务间

的共享代码和任务间的通信.如果多个任务共享使

用某个函数或程序段,则为每个任务复制一份以取

消任务间的代码共享.若任务间需要通信则采用邮

箱机制来取消由同步带来的影响.

4 犅犪狀犽冲突延迟分析

设有犖犽犮犫(1犖犽犮犫犖core)个核共享犫犽(∈犅),表

示为犆犫犽={犮′1,犮′2,…,犮′犖犽犮犫},对应的总线时槽为犚犫犽=

{狊′1,狊′2,…,狊′犖犽犮犫},其中,犆犫犽犆,犚犫犽犚.令犫犮犱犻犼表示

运行在犮′犻(∈犆犫犽)上的硬实时任务在第犼个总线周

期中遭受的bank冲突延迟.如图2所示,当犻≠1时

犫犮犱犻犼可以用式(1)表示:

犫犮犱犻犼=犫犮犱(犻-1)犼+犔犕-(狊′犻-狊′(犻-1))·犔犅,>0

0,{ 其他(1)

图2 运行在核犮′犻(∈犆犫犽)(犻≠1)上的任务在第犼个总线

周期上遭受的bank冲突延迟

  在第1个总线周期中,核犮′1(∈犆犫犽)所遭受的

bank冲突延迟为0,即犫犮犱11=0.一般地,犫犮犱1犼如图3

所示,当犮′狆(∈犆犫犽)上的硬实时任务在第狇个总线周

期上有访问犫犽的请求,且该请求是运行在核犮′1上的

硬实时任务在第犼个总线周期上访问犫犽的前一个请

求,犫犮犱狆狇是运行在核犮′狆上的硬实时任务在第狇个总

线周期上遭受的bank冲突延迟,狊′狆是其对应的总线

时槽,则运行在核犮′1上的硬实时任务在第犼个总线

周期上遭受的bank冲突延迟可以表示为

犫犮犱1犼=犫犮犱狆狇+犔犕-(犼-狇-1)·犔round·

犔犅-(犔round-狊′狆+狊′1)·犔犅,

进一步简化为式(2).

犫犮犱1犼=

犫犮犱狆狇+犔犕-((犼-狇)·犔round+狊′1-狊′狆)·犔犅,>0

0,{ 其他(2)

定义两核犮犻(∈犆)和犮犼(∈犆)之间的模距离为它们

对应总线时槽的最小距离,即犱犻犼=min(|狊犼-狊犻|,

6881 计  算  机  学  报 2016年

Page 5: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

图3 运行在犮′1(∈犆犫犽)上的任务在第犼个总线周期上

遭受的bank冲突延迟

犔round-|狊犼-狊犻|).为了判断一个bank上是否存在

bank访问冲突,给出定理1如下.

定理1. 犮′犻,犮′犼∈犆犫犽,若犱犻犼犔犕/犔犅,则在犫犽

上不存在bank访问冲突.

证明. 由于犱犻犼犔犕/犔犅,在式(1)中,犔犕 -

(狊′犻-狊′(犻-1))·犔犅0,在式(2)中,犔犕 -((犼-狇)·

犔round+狊′1-狊′狆)·犔犅0.由此可知,在访问犫犽的所有

请求中,后一个请求所遭受的bank冲突延迟一定

小于或等于前一个请求所遭受的bank冲突延迟.

由于在访问犫犽的请求序列中,第一个请求的bank

冲突延迟为0,又因为bank冲突延迟具有非负性,

因此所有请求的bank冲突延迟都为0,即在犫犽上不

存在bank访问冲突. 证毕.

5 优化核到犫犪狀犽的映射

51 优化问题的形式化描述

由定理1可知,在一个核到bank的映射中,若

映射到任一个bank上的任意两个核之间的模距离

大于等于犔犕/犔犅,则在整个系统上不存在bank访

问冲突.用狓犻犽表示犫犽(∈犅)是否有column分配给

犮犻(∈犆),若有(即犮犻∈犆犫犽),则狓犻犽=1,否则狓犻犽=0.

用狀犮狅犾犻犽表示犫犽分配给犮犻(∈犆)的column数目,如

果狓犻犽=1,则狀犮狅犾犻犽>0,否则狀犮狅犾犻犽=0,由于硬实时

任务独占分配给它的column,因此狀犮狅犾犻犽是整数.以

狓犻犽和狀犮狅犾犻犽为决策变量,优化核到bank的映射使系

统不存在bank访问冲突的形式化描述如下.

目标函数:

犱犻犼犔犕/犔犅,犮′犻,犮′犼∈犆犫犽,犫犽∈犅 (3)

约束:

犖bank·犖column∑

犖core

犻=1

犛犻狕犲犮犻 (4)

犛犻狕犲犮犻=∑

犖bank

犽=1

狀犮狅犾犻犽·狓犻犽,犮犻∈犆 (5)

犖core

犻=1

狀犮狅犾犻犽·狓犻犽犖column,犫犽∈犅 (6)

犛犻狕犲犮犻0,狀犮狅犾犻犽0,犮犻∈犆,犫犽∈犅 (7)

其中,约束(4)是指在硬实时多核系统中L2缓存满

足硬实时任务的需求;约束(5)是指映射分配给每个

核的column数需要满足每个核的需求;约束(6)是

指在每个bank上分配的column数不超过bank的

大小;约束(7)是非负约束.

下面利用犖core、犔犕/犔犅和犖column参数来探讨通

过优化核到bank的映射来消除bank冲突的判据.

定理2. 已知犖core、犔犕/犔犅和犖column,且L2缓存

的容量大小满足需求,若 犖core/(犔犕/犔犅) >犖column,

则bank访问冲突可以通过优化核到bank的映射

去消除(证明过程见附录).

用犛犻狕犲(犆犻)表示集合犆犻(犆)中,核需要的总

column数.结合核需要的总column数,可以给出当

犔犕/犔犅=2时能够通过优化核到bank的映射消除

bank冲突的判据,如定理3.

定理3. 已知犆、犖coremod2=0、犔犕/犔犅=2、

犖column和犛犻狕犲犮犻>0,1犻犖core.将犆分割成两个互

不相交的子集犆0和犆1且满足:在任一子集中的任意

两个核之间的模距离大于等于犔犕/犔犅.若在每个子

集中能够找到一个核集合犆狊犻(犆犻),0犻1,且满

足犛犻狕犲(犆狊犻)犛犻狕犲(犆犻)mod犖column,则bank访问冲

突可以通过优化核到bank的映射去消除(证明过

程见附录).

定理2和3中的条件是判断bank冲突是否可

以消除的充分条件,在许多应用场景中并不是所有

硬实时系统的bank访问冲突都能够通过优化核到

bank的映射消除,例如,在一个6核的硬实时多核

系统中,L2缓存被划分4个大小相等的bank,每个

bank又被划分成8个大小相等的column,核到总

线时槽的映射及每个核需要的 L2缓存的大小如

表1所示.在这个例子中,使用上述优化方法对核到

bank的映射进行优化,就不能使共享每个bank的

任意两核之间的模距离都大于等于犔犕/犔犅.在这种

情况中就无法通过上述优化方法来消除bank访问

表1 硬实时多核系统的应用场景举例

核 对应的总线时槽 缓存大小/column

犮1 狊1 4

犮2 狊2 2

犮3 狊3 2

犮4 狊4 16

犮5 狊5 7

犮6 狊6 1

78819期 张吉赞等:多核共享缓存bank冲突分析及其延迟最小化

Page 6: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

冲突,但可通过优化核到bank的映射使多核系统

遭受的bank冲突延迟最小化.

设犖狉狅犮犻是运行在核犮犻(∈犆)上的硬实时任务

需要的总线周期数,犖狉狅犫犽=max(犖狉狅犮犻|犮′犻∈犆犫犽)

是共享犫犽的硬实时任务需要的最大总线周期数.根

据式(1)和(2),发生在犫犽上的所有bank冲突延迟

可以表示为∑

犖狉狅犫犽

犼=1∑犮′犻∈犆犫

犫犮犱犻犼.由此,可得出式(8).

min∑

犖狉狅犮犻

犼=1

犫犮犱犻犼|犮犻∈( )犆 min∑

犖bank

犽=1∑

犖狉狅犫犽

犼=1∑犮′犻∈犆犫

犫犮犱犻( )犼(8)

  计算任务遭受的bank冲突延迟需要关注硬实

时任务的执行特性,如访问L2缓存的时间、L2缓存

的地址等,即需要关注硬实时任务的主存块到L2

缓存的映射以及硬实时任务映射到L2缓存的哪些

column上等.为了对 WCET进行安全估算,当多核

共享一个bank时,假设这些核上的硬实时任务发

出的访问L2缓存的请求总是访问这个共享bank.

在此基础上,通过优化核到bank的映射来最小化每

个硬实时任务遭受的bank冲突延迟,根据式(8),

该优化问题的形式化描述如下.

目标函数:

min∑

犖bank

犽=1∑

犖狉狅犫犽

犼=1∑犮′犻∈犆犫

犫犮犱犻( )犼 (9)

约束:

犖bank·犖column∑

犖core

犻=1

犛犻狕犲犮犻 (10)

犛犻狕犲犮犻=∑

犖bank

犽=1

狀犮狅犾犻犽·狓犻犽,犮犻∈犆 (11)

犖core

犻=1

狀犮狅犾犻犽·狓犻犽犖column,犫犽∈犅 (12)

犛犻狕犲犮犻0,狀犮狅犾犻犽0,犮犻∈犆,犫犽∈犅 (13)

52 优化问题求解

目标函数(9)与目标函数(3)的区别在于在目标

函数(3)中不需要计算bank冲突延迟,而目标函数

(9)中则需要计算bank冲突延迟.

5.2.1 计算bank冲突延迟

根据前面对bank冲突延迟的分析,计算bank

冲突延迟,需要事先确定多核硬实时任务的总线请

求时间序列.本文组合使用Chronos[22]和lp_solve①

来获取同核上的硬实时任务的总线请求时间序列,

用犚犙犮犻(犮犻∈犆)表示核犮犻访问L2缓存的总线请求

时间序列,bank冲突延迟的计算过程主要由以下

3部分组成.

(1)计算总线访问延迟,确定请求访问总线的

时间.设狋犼-1,狋犼(∈犚犙犮′犻)是来自核犮′犻(∈犆犫犽)的两个

相邻总线请求(分别表示为狉狇犼-1,狉狇犼)所对应的总

线请求时间,犫犪犱犼-1为请求狉狇犼-1遭受的总线访问延

迟.若狋犼>(狋犼-1+犫犪犱犼-1),狉狇犼遭受的总线延迟表示

为犫犪犱犼=(犔round·犔犅+(狊′犻-1)犔犅-狋犼mod(犔round·

犔犅))mod(犔round·犔犅);否则,犫犪犱犼=犔round·犔犅.

(2)确定当前bank冲突延迟所在的总线周期.

设犚犜犽狀为犖犽犮犫个总线请求时间序列中的当前总线

请求时间的集合,令狋min=min(狋犼|狋犼∈犚犜犽狀)是

犚犜犽狀中的最小值,则当前总线周期的开始时间为

狋min-狋minmod(犔round·犔犅).

(3)计算bank冲突延迟.如果当前总线周期为

第1个总线周期,则犚犜犽狀中第1个在该总线周期内

访问总线请求遭受的bank冲突延迟为0,否则根据

式(2)计算;而犚犜犽狀中在该总线周期内其他的访问

总线请求所遭受的bank冲突延迟根据式(1)计算.

算法1给出了发生在犫犽上的bank冲突延迟的

计算方法.狊′犻为对应的总线时槽.在算法1的输出结

果中,犜_犫_犱犲犾犪狔[犻]是运行在核犮′犻(∈犆犫犽)上的硬实时

任务所遭受的总bank冲突延迟,以便为估算硬实时

任务的 WCET做准备.第1、2行初始化,犮狌狉狉犲狀狋_狇[犻]

表示当前处理的总线请求时间,狌狊犲犱[犻]标记是否可以

从请求序列里取第1个请求,若狌狊犲犱[犻]=True,则

表示可以从请求序列里取第1个请求.第5行判断

是否可以从请求序列中取出第1个请求到狉狇,第8~

14行计算总线访问延迟;第15行更新犮狌狉狉犲狀狋_狇[犻]

为当前请求访问总线的时间,为计算bank冲突延

迟做准备,并将请求标记为处理.第19、20行确定总

线调度周期,狉狅狌狀犱1是该总线调度周期的开始时间.

第22行判断请求是否落在当前总线调度周期内.第

24、25行计算当前总线周期内第1个请求的bank

冲突延迟,第27、28行计算当前总线周期内其他请

求的bank冲突延迟.第30行更新犜_犫_犱犲犾犪狔[犻],此

时,犜_犫_犱犲犾犪狔[犻]是运行在核犮′犻上的硬实时任务截

止目前遭受的所有bank冲突延迟.第35行为计算

在下一个总线周期中第1个请求所遭受的bank冲

突延迟做准备.第37行计算在bank犫犽上发生的所

8881 计  算  机  学  报 2016年

① Lpsolveversion5.5.http://www.comp.nus.edu.sg/~rpembed/chronos/download.html,2012,10,22

Page 7: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

有bank冲突总延迟.

算法1. 计算发生在犫犽上的bank冲突延迟.

输入:犆犫犽,犚犙犮′

犻(犮′犻∈犆犫

犽),犔round,狊′犻

输出:发生在犫犽上的各核bank冲突总延迟犜狅狋犪犾_犱犲犾犪狔[犽],

核犮′犻(∈犆犫犽)所遭受的bank冲突总延迟犜_犫_犱犲犾犪狔[犻]

1.犜狅狋犪犾_犱犲犾犪狔[犽]=0;

2.犜_犫_犱犲犾犪狔[犻]=0,犮狌狉狉犲狀狋_狇[犻]=0,狌狊犲犱[犻]=True,

1犻犖犽犮犫;

3. WHILE(存在一个犚犙犮′犻不为空)DO

4. FOR(犻=1;犻<=犖犽犮犫;犻++)DO

5. IF(狌狊犲犱[犻]==True)THEN

6. 从犚犙犮′犻中取第1个请求到狉狇;

7. 删除犚犙犮′犻中的第1个请求;\\更新犚犙犮′

8. IF(狉狇<=犮狌狉狉犲狀狋_狇[犻])THEN

9. 犫狌狊犱犲犾犪狔=犔round犔犅;

10. ELSE

11. 犫狌狊犱犲犾犪狔=(狊′犻-1)犔犅-狉狇mod(犔round犔犅);

12. 犫狌狊犱犲犾犪狔=犔round犔犅+犫狌狊犱犲犾犪狔;

13. 犫狌狊犱犲犾犪狔=犫狌狊犱犲犾犪狔mod(犔round犔犅);

14. ENDIF

15. 犮狌狉狉犲狀狋_狇[犻]=狉狇+犫狌狊犱犲犾犪狔;

16. 狌狊犲犱[犻]=False;

17. ENDIF

18.ENDFOR

19. 在犮狌狉狉犲狀狋_狇[犖犽犮犫]中找最小值,存储到犕_狇;

20.狉狅狌狀犱1=犕_狇-犕_狇mod(犔round犔犅);

21.FOR(犻=1;犻<=犖犽犮犫;犻++)DO

22. IF(犮狌狉狉犲狀狋_狇[犻]<=(狉狅狌狀犱1+(狊′犻-1)犔犅))THEN

23. IF(犮狌狉狉犲狀狋_狇[犻]是第1个请求)THEN

24. 犅_犱犲犾犪狔=犐狀犻狋_犱犲犾犪狔-(狉狅狌狀犱1+狊′犻犔犅);

25. IF(犅_犱犲犾犪狔<0)THEN犅_犱犲犾犪狔=0;

26. ELSE

27. 犅_犱犲犾犪狔=犅_犱犲犾犪狔+犔犕-(狊′犻-狆狉犲)犔犅;

28. IF(犅_犱犲犾犪狔<0)THEN犅_犱犲犾犪狔=0;

29. ENDIF

30. 犜_犫_犱犲犾犪狔[犻]=犜_犫_犱犲犾犪狔[犻]+犅_犱犲犾犪狔;

31. 狆狉犲=狊′犻;

32. 狌狊犲犱[犻]=True;

33. ENDIF

34.ENDFOR

35. 犐狀犻狋_犱犲犾犪狔=狉狅狌狀犱1+犅_犱犲犾犪狔+犔犕+狆狉犲犔犅;

36.ENDWHILE

37.犜狅狋犪犾_犱犲犾犪狔[犽]= ∑犮′犻∈

犆犫犽

犜_犫_犱犲犾犪狔[犻];

38.RETURN犜狅狋犪犾_犱犲犾犪狔[犽],犜_犫_犱犲犾犪狔[犻];

5.2.2 优化问题的求解算法

设犣犽是共享犫犽(∈犅)的所有硬实时任务之间模

距离小于犔犕/犔犅的模距离的数.若犣犽=0,则共享犫犽

所有硬实时任务之间的模距离都大于等于犔犕/犔犅,

根据定理1,在该bank上不存在bank访问冲突,否

则,在该bank上可能存在bank冲突.

算法2给出了该优化问题的求解算法.第4~25

行按照犮_狊犲狇[]依次做核到bank的映射.根据式(1)

和(2)可知,bank冲突延迟具有积累性,在做核到

bank映射时,映射到一个bank上的核应尽可能的

少;另外,算法1在计算bank冲突延迟时不考虑一个

bank中的column在地址上的区别,因此核到bank

的映射过程可以简化如下:犮_狊犲狇[]中的核依次向

bank犫1映射,犫1分配完后,再向犫2映射,犫2分配完后,

向犫3映射,依次类推,犮_犫_犿犪狆狆犻狀犵[犖core][犖bank]存

放当前核到bank的映射关系.第26行计算所有的

犣犽,第27行判断该映射是否存在bank访问冲突.若

存在bank访问冲突,第32行调用算法1计算发生

在每个bank上的bank冲突延迟.第36行计算总的

bank冲突延迟.第38、39行更新最优结果.第43~

48行回溯搜索解空间.第50~54行是主过程,在第

50行根据定理2、3进行判定,若bank冲突不能消

除,则在第52行调用犉_犕_犕犪狆狆犻狀犵(狀)求解.

算法2. 优化核到bank的映射关系,使bank

冲突延迟最小.

输入:犆,犖core,犔犕,犔犅,犅,犖bank,犖column,犚犙犮犻,犛犻狕犲犮

犻,

犮犻∈犆

输出:最小的bank冲突延迟(犕_犱犲犾犪狔)、相应的核到

bank的映射(犕_犿犪狆狆犻狀犵)

1. 设置犣犽、犕_犱犲犾犪狔初值、狌狊犲犱[]为False;

2.FUNCTION犉_犕_犕犪狆狆犻狀犵(狀)

3. IF(狀>犖core)THEN

4. 狀_犫犪狀犽=1,狀_犮狅犾=犖column;

5. WHILE(犻<=犖core)DO

6. 将核犮_狊犲狇[犻]在核集犆中对应的序号存放在犼

中,需要的column数存放在狀_犮狅狉犲;

7. IF(狀_犮狅狉犲>=狀_犮狅犾)THEN

8. WHILE(狀_犮狅狉犲>=狀_犮狅犾)DO

9. 犮_犫_犿犪狆狆犻狀犵[犼][狀_犫犪狀犽]=狀_犮狅犾;

10. 狀_犮狅狉犲=狀_犮狅狉犲-狀_犮狅犾;

11. 狀_犫犪狀犽++;

12. 狀_犮狅犾=犖column;

13. ENDWHILE

14. IF(狀_犮狅狉犲==0)THEN犻++;

15. ELSE

16. 犮_犫_犿犪狆狆犻狀犵[犼][狀_犫犪狀犽]=狀_犮狅狉犲;

17. 狀_犮狅犾=狀_犮狅犾-狀_犮狅狉犲;

18. 犻++;

98819期 张吉赞等:多核共享缓存bank冲突分析及其延迟最小化

Page 8: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

19. ENDIF

20. ELSE

21. 犮_犫_犿犪狆狆犻狀犵[犼][狀_犫犪狀犽]=狀_犮狅狉犲;

22. 狀_犮狅犾=狀_犮狅犾-狀_犮狅狉犲;

23. 犻++;

24. ENDIF

25. ENDWHILE

26. 计算犣犽,1犽犖bank;

27. IF(所有的犣犽都为0)THEN

28. 犕_犱犲犾犪狔=0;

29. ELSE

30. FOR(犽=1;犽<=犖bank;犽++)DO

31. IF(犣犽>0)THEN

32. 调用算法1计算发生在bank犫犽上的bank冲

突延迟犫_犱犲犾犪狔[犽];

33. ENDIF

34. ENDFOR

35. ENDIF

36. 犫_犱犲犾犪狔=∑

犖bank

犽=1

犫_犱犲犾犪狔[犽];

37. IF(犫_犱犲犾犪狔<犕_犱犲犾犪狔)THEN

38. 犕_犱犲犾犪狔=犫_犱犲犾犪狔;

39. 犕_犿犪狆狆犻狀犵[][]=犮_犫_犿犪狆狆犻狀犵[][];

40. ENDIF

41. RETURN

42.ENDIF

43.FOR(犻=1;犻<=犖core;犻++)DO

44. IF(!狌狊犲犱[犻])THEN

45. 犮_狊犲狇[狀]=犮犻;狌狊犲犱[犻]=True;

46. 犉_犕_犕犪狆狆犻狀犵(狀+1);狌狊犲犱[犻]=False;

47. ENDIF

48.ENDFOR

49.ENDFUNCTION

//以下为主过程

50.利用定理2、3判断bank冲突是否可以消除;

51.IF(bank冲突不能消除)THEN

52. 犉_犕_犕犪狆狆犻狀犵(1);

53.ENDIF

54.RETURN犕_犱犲犾犪狔,犕_犿犪狆狆犻狀犵;

6 犠犆犈犜估算

61 犠犆犈犜估算的预备知识

Theiling等人[23]提出的共享缓存的抽象解释

(abstractinterpretation)分析法,是将指令根据访问

共享缓存是否命中分成:AlwaysHit(AH)、Always

Miss(AM)、PerSistence(PS)和 NotClassified

(NC)四类.AH是指访问共享缓存总是命中的,AM

是指访问共享缓存总是缺失的,PS是指第1次访问

共享缓存是缺失而以后的访问都是命中的,而其他情

形则属于NC类.

一个五级流水线模型[24]由取指(IF)、译码(ID)、

执行(EX)、写回(WB)和提交(CM)组成.在取指阶

段中,按指令在程序中的顺序将指令从存储系统中

依次取出,存放到取指缓存(Ibuffer);在译码阶段

中,将取指缓存中的指令进行译码操作并按在程序

中的顺序发送到ROB(ReOrderBuffer).在执行阶

段,ROB中的指令发送到相应的执行单元进行执

行.对于Load指令,执行阶段只计算有效存储地

址,在写回阶段取操作数.在写回阶段,一方面Load

指令从存储系统中取操作数,另一方面将执行阶段

的执行结果写回ROB.在提交阶段,指令按照在程序

中的顺序提交.Li等人[25]提出了执行图(Execution

Graph)的概念,该执行图描述了控制流图(CFG)的

一个基本块(basicblock)在五级流水线模型上执行

状态.

本文设计的多核多任务 WCET估算方法是在

Chronos的基础上,增加了对多核共享资源冲突延

迟语义的分析支持.Chronos是单核硬实时任务的

开源 WCET估算工具,该工具可对二进制执行文件

进行反汇编,以形成控制流图及执行图,并利用该图

对指令在流水线阶段间的依赖关系进行分析处理,

以及估算基本块的最差情况下执行时间.一般地,利

用Chronos可获得如下内容:(1)基本块的最差情

况下执行时间;(2)任务的控制流图;(3)基本块中

每个请求的总线请求时间;(4)指令的AH、AM、PS

和NC分类等.

62 犠犆犈犜估算方法

设犮犻(∈犆)的执行时间是指运行在犮犻上某硬实

时任务的执行时间.设犜狆犮犻是犮犻在流水线上的执行时

间,犜犿犮犻是犮犻访问主存所需要的时间,犜

L1犮犻是犮犻访问L1

缓存所需要的时间,狀狇犮犻是犮犻访问L2缓存的次数,

犇bus犮犻是犮犻遭受的所有总线访问延迟,犇

bank犮犻是犮犻遭受的

所有bank冲突延迟,犮犻在最差情况下的执行时间

可以表示为犠犆犈犜犮犻=犜狆犮犻+犜

犿犮犻+犜

L1犮犻+狀狇犮犻·犔犾犪狋+

犇bus犮犻+犇

bank犮犻,其中,(犜狆犮犻+犜

犿犮犻+犜

L1犮犻+狀狇犮犻·犔犾犪狋)可

以直接用单核 WCET估算工具估算,犇bank犮犻可以用算

法1计算得到.令犠犆犈犜′犮犻=犜狆犮犻+犜

犿犮犻+犜

L1犮犻+狀狇犮犻·

犔犾犪狋+犇bus犮犻.犠犆犈犜犮犻可以用式(14)表示.

犠犆犈犜犮犻=犠犆犈犜′犮犻+犇bank犮犻

(14)

  由于多核多任务在流水线、请求访问总线和请

0981 计  算  机  学  报 2016年

Page 9: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

求访问存储系统中可以并发执行,那么某个任务在

流水线上的执行时间、总线访问延迟和存储系统访

问时间之间可能存在着时间重叠问题.另外,由于核

与TDMA总线时槽之间已确立对应关系,在计算

多核总线访问延迟时,总线访问冲突延迟可转换为

请求等待自己对应的总线时槽.

为此,我们在Chronos基本块最差执行时间分

析模块的基础上,增加了对多核总线访问延迟、时间

消重等语义的支持,实现了下面的算法3.

算法3给出了估算一个基本块(记为犫犾犽)最差

情况下执行时间的方法,该算法是在Chronos分析

工具中实现的.由于PS指令在第1次执行中是缺失

的且在后续执行中总是命中的,若一个基本块在循环

结构中,它的第1次执行和后续执行的最差情况下执

行时间是不同的.在算法3中,用first标识基本块是

否为第1次执行,犳犻狉狊狋=0表示该基本块的第1次

执行,犳犻狉狊狋=1表示该基本块的非第1次执行.令

狅犳犳狊犲狋为基本块开始执行时对应的总线偏移量,若

基本块的开始时间为狋犫,对应的总线偏移量可以表

示为狅犳犳狊犲狋=狋犫 mod(犔round·犔犅),且0狅犳犳狊犲狋<

犔round·犔犅,对于不同的狅犳犳狊犲狋值,基本块有一个最

差情况下执行时间与之对应,存放在 犕犈犜[犳犻狉狊狋]

[犫犾犽][狅犳犳狊犲狋]中.犜狊狋犪犵犲(犻)(狊狋犪)和犜狊狋犪犵犲(犻)(犳犻狀)分别

是指令犻在狊狋犪犵犲阶段的开始时间和完成时间,若指

令犻在狊狋犪犵犲阶段需要访存,则犜狊狋犪犵犲(犻)(狊狋犪)为请求

申请总线的时间.犜狀(犳犻狀)是基本块最后一条指令的

完成时间,犜1(狉犲犪犱狔)是基本块的第一条指令的准备

时间.第1~10行定义计算总线访问延迟的函数

犆狅犿_犫犱犲犾犪狔(),狆狉犲是前一个请求访问总线的时间,

其值为对应流水阶段的开始时间与总线访问延迟的

和.在第2~8行计算总线访问延迟,若当前请求申

请总线的时间小于或等于前一个请求访问总线的时

间,则消重,总线访问延迟为(犔round·犔犅)个时钟周期

(第3行).否则,在第6、7行计算总线访问延迟.第

13行先利用Chronos流水线分析对基本块犫犾犽进行

分析(包括L1缓存分析),可得到指令在各个流水

线阶段上的执行时间及依赖关系,但此时并未涉及

总线访问延迟的影响.对于基本块中的每条指令及

每个流水线阶段,第19~25行和第27~33行分别

处理first取不同值的情况,第20和28行分别调用

函数犆狅犿_犫犱犲犾犪狔()计算总线访问延迟.在第22、

24、30和32行分别更新相应流水线阶段的完成时

间.使用Chronos的原有处理依赖关系的方法,第

36行更新指令犻在后续流水线阶段上的依赖关系,

第38行更新指令犻的后续指令的依赖关系.第40

行计算该基本块的最差情况下执行时间.

算法3. 多核环境下某任务基本块最差情况

下的执行时间分析.

输入:基本块犫犾犽的执行图,犔round,对应的总线时槽狊′犼

输出:基本块犫犾犽最差情况下执行时间 犕犈犜[犳犻狉狊狋]

[犫犾犽][]

1.FUNCTION犆狅犿_犫犱犲犾犪狔(狊狋犪狉狋,狅犳犳狊犲狋,狆狉犲);

2. IF(狊狋犪狉狋<=狆狉犲)THEN

3. 犫狌狊犱犲犾犪狔=犔round犔犅;

4. ELSE

5. 犮狌狉=狊狋犪狉狋+狅犳犳狊犲狋;

6. 犫狌狊犱犲犾犪狔=(狊′犼-1)犔犅-犮狌狉mod(犔round犔犅);

7. 犫狌狊犱犲犾犪狔=(犔round犔犅+犫狌狊犱犲犾犪狔)mod(犔round犔犅);

8. ENDIF

9. RETURN犫狌狊犱犲犾犪狔;

10.ENDFUNCTION

//以下为主过程

11.FOR(犳犻狉狊狋=0;犳犻狉狊狋<=1;犳犻狉狊狋++)DO

12.FOR(狅犳犳狊犲狋=0;狅犳犳狊犲狋<(犔round犔犅);狅犳犳狊犲狋++)

DO

13. 狆犻狆犲犾犻狀犲_犪狀犪犾狔狊犻狊();

14. 狆狉犲=0;

15. FOR(依次取犫犾犽中的每条指令犻)DO

16. FOR(狊狋犪犵犲=0;狊狋犪犵犲<狆犻狆犲_狊狋犪犵犲狊;狊狋犪犵犲++)

DO

17. IF(犻在狊狋犪犵犲阶段访问存储系统)THEN

18. IF(犳犻狉狊狋==0)THEN

19. IF(AH指令)THEN

20. 犱犲犾犪狔=犆狅犿_犫犱犲犾犪狔(犜狊狋犪犵犲(犻)(狊狋犪),狅犳犳狊犲狋,

狆狉犲);

21. 狆狉犲=犜狊狋犪犵犲(犻)(狊狋犪)+犱犲犾犪狔;

22. 犜狊狋犪犵犲(犻)(犳犻狀)=犜狊狋犪犵犲(犻)(犳犻狀)+犱犲犾犪狔+犔犾犪狋;

23. ELSE

24. 犜狊狋犪犵犲(犻)(犳犻狀)=犜狊狋犪犵犲(犻)(犳犻狀)+犔L2penal;

25. ENDIF

26. ELSE

27. IF(AH指令或PS指令)THEN

28. 犱犲犾犪狔=犆狅犿_犫犱犲犾犪狔(犜狊狋犪犵犲(犻)(狊狋犪),狅犳犳狊犲狋,

狆狉犲);

29. 狆狉犲=犜狊狋犪犵犲(犻)(狊狋犪)+犱犲犾犪狔;

30. 犜狊狋犪犵犲(犻)(犳犻狀)=犜狊狋犪犵犲(犻)(犳犻狀)+犱犲犾犪狔+犔犾犪狋;

31. ELSE

32. 犜狊狋犪犵犲(犻)(犳犻狀)=犜狊狋犪犵犲(犻)(犳犻狀)+犔L2penal;

33. ENDIF

34. ENDIFIF(犳犻狉狊狋==0)THEN

35. ENDIF

36. 更新后续流水线阶段上的依赖关系;

37. ENDFOR

19819期 张吉赞等:多核共享缓存bank冲突分析及其延迟最小化

Page 10: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

38. 更新后续指令的依赖关系;

39. ENDFOR

40. 犕犈犜[犳犻狉狊狋][犫犾犽][狅犳犳狊犲狋]=犜狀(犳犻狀)-犜1(狉犲犪犱狔);

41.ENDFOR

42.ENDFOR

43.RETURN犕犈犜[犳犻狉狊狋][犫犾犽][];

利用算法3可以估算出每个基本块在不同开始

时间下的最差情况下执行时间(同时考虑到基本块是

否在循环中且是否有PS指令),共有(2·犔round·犔犅)

个值.根据基本块在控制流图中的执行次序和开始

时间(设第一个执行的基本块的开始时间为0),从

每个基本块的(2·犔round·犔犅)个值中选择一个用来

估算硬实时任务的犠犆犈犜′犮犻.

对于一个基本块犫犾犽,设犜犫犾犽(狊狋犪)、狅犳犳狊犲狋犫犾犽和

犜犫犾犽(犳犻狀)分别为该基本块的开始时间、总线偏移

量和完成时间.开始时间犜犫犾犽(狊狋犪)是其直接前驱

的最迟完成时间,总线偏移量狅犳犳狊犲狋犫犾犽可以表示为

狅犳犳狊犲狋犫犾犽=犜犫犾犽(狊狋犪)mod(犔round·犔犅),设狆狉犲为基

本块犫犾犽的直接前驱,狅犳犳狊犲狋狆狉犲为基本块狆狉犲的总

线偏移量.狅犳犳狊犲狋犫犾犽可以表示为式(15),完成时间

犜犫犾犽(犳犻狀)可以表示为式(16).

狅犳犳狊犲狋犫犾犽=(狅犳犳狊犲狋狆狉犲+犕犈犜[犳犻狉狊狋][狆狉犲][狅犳犳狊犲狋狆狉犲])·

mod(犔round·犔犅) (15)

犜犫犾犽(犳犻狀)=犜犫犾犽(狊狋犪)+犕犈犜[犳犻狉狊狋][犫犾犽][狅犳犳狊犲狋犫犾犽]

(16)

  若控制流图存在循环结构,则全部展开,对于事

先不能确定循环次数的循环结构,按照Chronos处

理方法将循环次数的最大上限作为循环次数展开.

此时,整个控制流图仅存在分支和顺序结构,且一个

基本块的开始时间等于其直接前驱的最大完成时

间.反复使用式(15)和(16)可以计算最后一个基本

块的完成时间.

以MlardalenWCETbenchmark[26]测试程序集

中的fibcall测试程序为例,说明利用算法3的结果估

算 WCET的方法.图4(a)是fibcall的控制流图,其

中,圆形代表基本块,圆形内的数字为基本块的编号,

旁边的数字为该基本块的执行次数,有向边代表基本

块的先后次序.将循环展开后的控制流图如图4(b)

所示,若基本块在循环中,标识出该基本块是第几次执

行.设fibcall在该例中对应的总线时槽为狊′犻,开始执行

时间为犜狊狋.则基本块0的开始时间犜0(狊狋犪)=犜狊狋,对

应的总线偏移量狅犳犳狊犲狋0=((狊′犻-1)·犔犅+犜0(狊狋犪))·

mod(犔round·犔犅),利用式(16)可以得到基本块0的完

成时间犜0(犳犻狀)=犜0(狊狋犪)+犕犈犜[0][0][狅犳犳狊犲狋0].

图4 fibcall的控制流图及循环展开

基本块2的开始时间犜2(狊狋犪)=犜0(犳犻狀),根据式(15)

和(16),可得基本块2的总线偏移量和完成时间,

即狅犳犳狊犲狋2=(狅犳犳狊犲狋0+犕犈犜[0][0][狅犳犳狊犲狋0])·

mod(犔round·犔犅),犜2(犳犻狀)=犜2(狊狋犪)+犕犈犜[0][2]

[狅犳犳狊犲狋2].接下来,可以获得基本块3第1次执行的开

始时间(记为犜3(1)(狊狋犪))、总线偏移量(记为狅犳犳狊犲狋3(1))

和完成时间(记为犜3(1)(犳犻狀)).处理完基本块3的

第1次执行,进入分支结构的处理,反复利用式(15)和

(16)可以得到基本块4第29次执行对应的总线偏移

量狅犳犳狊犲狋4(29)和完成时间犜4(29)(犳犻狀),犜4(29)(犳犻狀)=

犜4(29)(狊狋犪)+犕犈犜[1][4][狅犳犳狊犲狋4(29)].基本块5的开

始时间犜5(狊狋犪)=max(犜3(1)(犳犻狀),犜4(29)(犳犻狀)),总线

偏移量狅犳犳狊犲狋5=(狅犳犳狊犲狋3(1)+犜5(狊狋犪)-犜3(1)(狊狋犪))·

mod(犔round·犔犅),最终可以得到基本块1的完成时

间犜1(犳犻狀)=犜1(狊狋犪)+犕犈犜[0][1][狅犳犳狊犲狋1],即该

例的犠犆犈犜′犮犻=犜1(犳犻狀).

算法4是基于算法3的多核环境下硬实时任务

最差情况下执行时间的分析算法.第1~21行定义

了处理分支结构的函数犆狅犿_犫狉犪狀犮犺(),输入参数

犘狀指向分支结构的开始基本块,犖犫狉_犘狀是分支结

构的分支数,狅犳犳狊犲狋是分支结构开始时对应的总线

偏移量,犳犻狉狊狋标识该基本块是否是第一次执行,犫犾犽

是基本块编号,犫狉_犲狓犲[犻]是分支犻的总执行时间(相

对于分支结构的开始时间),第7行根据式(16)计算

当前基本块的完成时间,第8、9行根据式(15)计算

总线偏移量,第10~15行处理嵌套分支结构,第10

行判断是否有分支结构,若有,则在第11行读取分

支的数目犖犫狉_犘犫,在第12行调用犆狅犿_犫狉犪狀犮犺()处

理分支结构.第19行获得分支结构的最大完成时间

2981 计  算  机  学  报 2016年

Page 11: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

(相对于分支结构的开始时间).第23行建立链表

犜犛犔犻狀犽犔犻狊狋,若存在分支结构,则在链表中用分支

结构的开始基本块对应的链表结点指向分支结构的

结束基本块对应的链表结点,分支结构的分支存放

在分支结构的开始基本块对应的链表结点中.第

28、33行分别计算当前基本块的完成时间(相对于

任务开始时间).第38行根据式(14)计算任务的最

差情况下执行时间.

算法4. 多核环境下硬实时任务最差情况下

执行时间的分析.

输入:循环已展开的控制流图,每个基本块的执行图,

犔round,对应的总线时槽狊′犼,利用算法1计算的

bank冲突延迟犇bank

输出:硬实时任务的最差情况下执行时间犕犜_犲狓犲

1.FUNCTION犆狅犿_犫狉犪狀犮犺(犘狀,犖犫狉_犘狀,狅犳犳狊犲狋)DO

2. FOR(犻=1;犻<=犖犫狉_犘狀;犻++)DO

3. 犫狅犳犳狊犲狋=狅犳犳狊犲狋,犫狉_犲狓犲[犻]=0;

4. 犘犫指向犘狀的第犻个分支的第一个基本块;

5. WHILE(犘犫不为空)DO

6. 获得由犘犫指向的基本块标识犫犾犽和执行信息犳犻狉狊狋;

7. 犫狉_犲狓犲[犻]=犫狉_犲狓犲[犻]+犕犈犜[犳犻狉狊狋][犫犾犽]

[犫狅犳犳狊犲狋];

8. 犫狅犳犳狊犲狋=犫狅犳犳狊犲狋+犕犈犜[犳犻狉狊狋][犫犾犽][犫狅犳犳狊犲狋];

9. 犫狅犳犳狊犲狋=犫狅犳犳狊犲狋mod(犔round犔犅);

10. IF(犘犫有分支)THEN

11. 获得犘犫指向基本块的分支数犖犫狉_犘犫;

12. 狋犿狆_犲狓犲=犆狅犿_犫狉犪狀犮犺(犘犫,犖犫狉_犘犫,犫狅犳犳狊犲狋);

13. 犫狉_犲狓犲[犻]=犫狉_犲狓犲[犻]+狋犿狆_犲狓犲;

14. 犫狅犳犳狊犲狋=(犫狅犳犳狊犲狋+狋犿狆_犲狓犲)mod(犔round犔犅);

15. ENDIF

16. 犘犫=犘犫->狀犲狓狋;

17. ENDWHILE

18. ENDFOR

19. 犕犫_犲狓犲=max(犫狉_犲狓犲[犻]|1犻犖犫狉_犘狀);

20. RETURN犕犫_犲狓犲;

21.ENDFUNCTION

//以下为主过程

22.调用算法3估算每个基本块的最差情况下执行时

间,存放在犕犈犜[][][]中;

23.读取控制流图,建立链表犜犛犔犻狀犽犔犻狊狋(有头结点);

24.狅犳犳狊犲狋=(狊′犼-1)犔犅,犕犜_犲狓犲=0;

25.犘狀=犜犛犔犻狀犽犔犻狊狋->狀犲狓狋;

26.WHILE(犘狀不为空)DO

27. 获得由犘狀指向的基本块标识犫犾犽和执行信息犳犻狉狊狋;

28. 犕犜_犲狓犲=犕犜_犲狓犲+犕犈犜[犳犻狉狊狋][犫犾犽][狅犳犳狊犲狋];

29. 狅犳犳狊犲狋=(狅犳犳狊犲狋+犕犈犜[犳犻狉狊狋][犫犾犽][狅犳犳狊犲狋])·

mod(犔round犔犅);

30. IF(犘狀有分支)THEN

31. 获得犘狀指向基本块的分支数犖犫狉_犘狀;

32. 狋犿狆_犲狓犲=犆狅犿_犫狉犪狀犮犺(犘狀,犖犫狉_犘狀,狅犳犳狊犲狋);

33. 犕犜_犲狓犲=犕犜_犲狓犲+狋犿狆_犲狓犲;

34. 狅犳犳狊犲狋=(狅犳犳狊犲狋+狋犿狆_犲狓犲)mod(犔round犔犅);

35. ENDIF

36. 犘狀=犘狀->狀犲狓狋;

37.ENDWHILE

38.犕犜_犲狓犲=犕犜_犲狓犲+犇bank;

39.RETURN犕犜_犲狓犲;

7 实验验证

使用MlardalenWCETbenchmark[26]测试程序

集分别设计无bank访问冲突、存在bank访问冲突

的两个实验场景,来验证前面提出的算法的正确性.

71 无犫犪狀犽访问冲突的应用场景

7.1.1 实验环境和测试程序

由6个同构核{犮1,犮2,…,犮6}组成的多核系统

中,每个核有一个有序(inorder)5级流水线,无分

支预测功能,取指队列大小为4,取指宽度为2,指令

窗大小为8.每个核有私自L1数据和L1指令缓存,

大小均为64字节,1个bank,2路关联,每line有

8字节,1个时钟周期的访问时间,采用LRU替换

策略.L2缓存为所有核共享,大小为4KB,被均匀

划分成4个bank,每个bank的大小为1KB,4路关

联,每line有32Bytes,4个时钟周期访问时间(即

犔犕=4),采用LRU替换策略.每个bank又被均匀划

分成8个column.每个column的大小为128Bytes

(即1组4路关联的line).连接L2缓存和核的总线

为TDMA实时总线,采用简单轮询总线调度策略,

总线完成一次请求所需要的时间为2个时钟周期,

即犔犅=2.请求访问主存需要的时间为犔L2penal=

30个时钟周期.

使用的测试程序是 MlardalenWCETbench

mark测试程序集中的一部分,测试程序的特性如

表2所示.为了给测试程序分配合适的L2缓存大

小,我们使用Chronos测量这些测试程序在分配给

表2 使用的测试程序特性

测试程序 字节数 代码行数

bsort100 2779 128

cnt 2880 267

fibcall 3499 72

expint 4288 157

insertsort 3892 92

prime 797 47

39819期 张吉赞等:多核共享缓存bank冲突分析及其延迟最小化

Page 12: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

不同L2缓存大小时的 WCET,测量结果和采用的

L2缓存大小如表3所示.

表3 不同犔2缓存大小时测量的 犠犆犈犜(时钟周期)和采用值(字节数/犮狅犾狌犿狀数)

缓存大小 bsort100 cnt expint fibcallinsertsort prime

128B 6888050 35752 16921 970 13635 75000

256B 6888330 50633 16873 970 11499 75000

512B 10027500 39040 17191 970 11451 75000

1024B 9263600 29152 17191 970 11451 75000

2048B 2965080 29152 17191 970 11451 75000

4096B 2965080 29152 17191 970 11451 75000

采用值 2048/16 1024/8 256/2 128/1 512/4 128/1

7.1.2 实验结果

实验中采用的任务到核映射和核到总线时槽映

射如表4所示.用Chronos得到各任务访问L2缓

存的总线请求时间序列如图5所示.使用算法2做

核到bank映射,若可能存在bank访问冲突,则用

算法1计算bank冲突延迟,结果如图6所示,解空间

为720,总的bank冲突延迟的范围为[0,149560],

其中一个不存在bank访问冲突的映射关系如表5

所示.在表5所示的核到bank映射关系中,映射到

任意一个bank上的任务之间的模距离都大于等于2.

由于犔犕/犔犅=2,因此,在该映射中不存在bank访

问冲突.

表4 任务到核映射和核到总线时槽映射

测试程序 核 总线时槽

insertsort 犮1 狊1

expint 犮2 狊2

bsort100 犮3 狊3

fibcall 犮4 狊4

prime 犮5 狊5

cnt 犮6 狊6

表5 一个没有犫犪狀犽冲突延迟时核到犫犪狀犽映射关系

测试程序 犫1 犫2 犫3 犫4

insertsort 4 0 0 0

ixpint 0 0 0 2

bsort100 3 8 5 0

fibcall 0 0 0 1

prime 1 0 0 0

cnt 0 0 3 5

图5 各任务的总线请求时间序列

图6 表4中6个任务时算法2的执行结果

为了考察优化核到bank映射后对 WCET的影

响,取表6所示的核到bank映射作为未优化时的映

射,在该映射下各任务遭受的bank冲突延迟如表7

所示.使用算法4(调用算法3)估算了在两个映射下

各任务的 WCET,结果如图7所示,所有测量结果

都是相对于任务在单核系统中测量的结果(下同).

在图7中,犗狆狋表示优化核到bank映射后估算的结

果,狀狅_犗狆狋表示未优化核到bank映射时估算的结

果.从图7中可以看出,相对于未优化时的估算结果,

优化映射后对所有任务的 WCET有不同程度的改

善,平均提高了约15%.对expint的 WCET 改善程

度最大,提高了大约50%.虽然bsort100遭受的bank

冲突延迟为43736个时钟周期(如表7所示),但由

于其规模较大,改善效果相对不明显(提高了约1%).

另外,在这两个映射中,insertsort和fibcall都没遭

受到bank访问延迟,估算的 WCET未发生变化.

表6 一个未优化时的核到犫犪狀犽映射关系

测试程序 犫1 犫2 犫3 犫4

insertsort 4 0 0 0

expint 0 0 2 0

bsort100 4 8 4 0

fibcall 0 0 0 1

prime 0 0 1 0

cnt 0 0 1 7

表7 在表6所示的映射中各任务遭受的犫犪狀犽冲突延迟

测试程序 bank冲突延迟/时钟周期

insertsort   0

expint 24070

bsort100 43736

fibcall 0

prime 43684

cnt 35738

AI+ILP(抽象解释加整数线性规划)方法是现

有文献估算 WCET的常用方法,如Chattopadhyay

等人[13]、Kelter等人[1415]等.AI+ILP方法的共同

4981 计  算  机  学  报 2016年

Page 13: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

图7 优化核到bank映射后和未优化时的估算结果对比

点是分别估算每个基本块在流水线上的执行时间、

访问共享L2缓存的时间、访问主存的时间和总线

访问延迟,然后用线性规划求解工具将这些时间组

合起来得到任务的 WCET,这里,我们将这类方法

统称为“AI+ILP”方法.

分别使用算法4和AI+ILP方法估算了在表5

所示的映射中各任务的 WCET值(没有bank冲

突),结果如图8所示.其中,Alg4代表使用算法4

对总线访问延迟进行了消重的估算结果,AI+ILP

代表使用AI+ILP未对总线访问延迟进行消重的

估算结果.相对于 AI+ILP方法而言,算法4对任

务的 WCET 有不同程度的改善,平均提高了约

30%.影响估算结果的主要因素有访问L2缓存的

次数、访问密集度和指令在流水线上的依赖关系等.

insertsort的多数访存指令都集中在基本块3中(使

用Chronos获得),需要进行消重的计算较多,改善

程度最大,提高了大约50%.bsort100访问L2缓存

的次数为394210次(如图5所示),消重效果也比较

明显(约45%).由于fibcall的访问次数很少,因此

改善效果不明显.虽然prime的访问次数也较大

(9335次),但受到其指令间依赖关系的影响,抵消

了对总线延迟消重后的效果.

图8 算法4和AI+ILP方法估算的结果对比

  分别使用两种方法对每个任务进行20次估算,

20次运行时间的平均值如表8所示.由此可以看

出,由于算法4需要调用算法3并参与时间消重计

算,因此其运行时间比AI+ILP方法有所提高.

表8 两种估算方法的运行时间/s

测试程序 Alg4 AI+ILP

insertsort 0.48068440 0.46327440

expint 1.05732140 0.96817020

bsort100 0.35374245 0.34376740

fibcall 0.17448890 0.17840110

prime 0.60926060 0.59668875

cnt 0.81085300 0.78755720

72 存在犫犪狀犽访问冲突的应用场景

为了验证bank访问冲突不能消除时的优化效

果,我们设计了相应的应用场景.在实验环境中,L2

缓存的容量大小为3KB,被均匀划分成3个bank,

每个bank的大小为1KB.每个bank又被均匀划分

成8个column,每column的大小为128Bytes.其他

参数的设置值采用7.1.1节中实验环境的相应参数

值.使用了表2中的5个测试程序,如表9所示.

表9 测试程序与采用的犔2缓存大小

测试程序 缓存大小/columns

insertsort 4

expint 2

bsort100 16

fibcall 1

prime 1

7.2.1 实验结果

在实验中采用的任务到核映射和核到总线时槽

映射如表10所示.在该应用场景中,核犮6空闲,不占

用总线时间,即每个总线调度周期的长度为5·犔犅=

10个时钟周期.各任务访问L2缓存的总线请求时

间序列如图5所示.执行算法2做核到bank映射,

结果如图9所示,解空间为120,总的bank冲突延

迟范围为[33704,110660].具有最小bank冲突延

迟的核到bank的映射如表11所示,在该映射中,只

在bank犫1上存在bank访问冲突,各个任务遭受的

bank冲突延迟如表12所示.

表10 使用的任务到核的映射和核到总线时槽的映射

测试程序 核 总线时槽

insertsort 犮1 狊1

expint 犮2 狊2

bsort100 犮3 狊3

fibcall 犮4 狊4

prime 犮5 狊5

59819期 张吉赞等:多核共享缓存bank冲突分析及其延迟最小化

Page 14: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

表11 一个犫犪狀犽冲突延迟最小的核到犫犪狀犽映射

测试程序 犫1 犫2 犫3

insertsort 4 0 0

expint 2 0 0

bsort100 0 8 8

fibcall 1 0 0

prime 1 0 0

表12 在表11所示的映射中各任务遭受的犫犪狀犽冲突延迟

测试程序 bank冲突延迟/时钟周期

insertsort 9108

expint 12344

bsort100 0

fibcall 6

prime 12246

图9 有5个任务时算法2的执行结果

取表13所示的核到bank映射作为未优化时的

映射,在该映射下各任务遭受的bank冲突延迟如

表14所示.使用算法4估算在两个映射下各任务的

WCET,结果如图10所示.从图10中可看出,相对

于未优化时的估算结果,优化映射后对所有任务

的 WCET有不同程度的改善,平均提高了约10%.

对insertsort的 WCET改善程度最大,提高了大约

20%.虽然bsort100遭受的bank冲突延迟为37840

个时钟周期(如表14所示),但相对效果不明显

(约1%).

表13 一个没有优化的核到犫犪狀犽映射

测试程序 犫1 犫2 犫3

insertsort 4 0 0

expint 2 0 0

bsort100 1 8 7

fibcall 0 0 1

prime 1 0 0

表14 在表13所示的映射中各任务遭受的犫犪狀犽冲突延迟

测试程序 bank冲突延迟/时钟周期

insertsort 14428

expint 20604

bsort100 37840

fibcall 8

prime 37780

图10 优化核到bank映射后和未优化时的估算结果对比

分别使用算法4和AI+ILP方法估算在表11

所示的映射中各任务的 WCET(各任务遭受的bank

冲突延迟如表12所示),结果如图11所示.相对于

AI+ILP方法而言,算法4对任务的 WCET估算结

果有不同程度的改善,平均提高了约25%,例如对

bsort100WCET的改善程度约为45%,对fibcall

WCET的改善程度约为5%,对primeWCET的改

善程度约为8%.另外,在该场景下,分别使用两种

方法对每个任务进行20次估算,20次运行时间的

平均值如表15所示,由此可以看出,由于算法4需

要调用算法3并参与时间消重计算,因此其运行时

间比AI+ILP方法有所提高.

图11 算法4和AI+ILP方法估算的结果对比

表15 两种估算方法的运行时间/s

测试程序 Alg4 AI+ILP

insertsort 0.4728599 0.45835535

expint 1.1426467 0.97068190

bsort100 0.3771745 0.34183855

fibcall 0.1761373 0.17312095

prime 0.6522087 0.59701515

8 结 论

本文提出了通过优化核到bank映射来最小化

6981 计  算  机  学  报 2016年

Page 15: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

硬实时多核系统的bank冲突延迟方法,旨在通过

消除bank访问冲突或最小化bank冲突延迟来改

善多核系统中硬实时任务的 WCET.

通过对硬实时多核系统中bank冲突延迟的分

析,我们得出了硬实时任务间不存在bank访问冲

突的判断条件,并用优化核到bank映射的方法来

消除bank访问冲突.然而,并不是所有的bank访

问冲突都可以消除,此时需要优化核到bank映射

来最小化bank冲突延迟.为此,我们设计了求解该

优化问题的相应算法.另外,还设计了能够对总线访

问延迟进行消重的 WCET估算方法.

实验结果表明,本文提出的优化方法可以消除硬

实时多核系统中的bank访问冲突或使bank冲突延

迟最小化.与现有 WCET估算方法比较,本文提出

的 WCET估算方法可以获得更精确的 WCET值.

参 考 文 献

[1] ThieleL,WilhelmR.Designfortimingpredictability.Real

TimeSystems,2004,28(23):157177

[2] WilhelmR,MitraT,MuellerF,PuautI,etal.Theworst

caseexecutiontime problem:Overview of methodsand

surveyoftools.ACMTransactionsonEmbeddedComputing

Systems,2008,7(3):36:136:53

[3] CullmannC,FerdinandC,GebhardG,GrundD,etal.

Predictabilityconsiderationsin the design of multicore

embeddedsystems//ProceedingsoftheEmbeddedRealTime

SoftwareandSystems.SanDiego,USA,2010:3642

[4] ZhangWei,YanJun.Statictiminganalysisofsharedcaches

formulticoreprocessors.JournalofComputingScienceand

Engineering,2012,6(4):267278

[5] GuanNan,StiggeM,YiWang,YuGe.Cacheawaresched

ulingandanalysisformulticores//Proceedingsofthe7th

ACM International Conference on Embedded Software.

Grenoble,France,2009:245254

[6] HoR,MaiK W,HorowitzM A.Thefutureofwires.

ProceedingsoftheIEEE,2001,89(4):490504

[7] SylvesterD,KeutzerK.Gettingtothebottom ofdeep

submicronII:Aglobalwiringparadigm//Proceedingsofthe

1999InternationalSymposiumonPhysicalDesign.Monterey,

USA,1999:193200

[8] KaseridisD,StuecheliJ,JohnLK.Bankawaredynamic

cachepartitioningformulticorearchitectures//Proceedingsof

theInternationalConferenceonParallelProcessing.Vienna,

Austra,2009:1825

[9] PaolieriM,QuionesE,CazorlaFJ,etal.Hardware

supportfor WCET analysisofhardrealtime multicore

systems//Proceedingsofthe36thIEEE/ACMInternational

SymposiumonComputerArchitecture.Austin,Texas,USA,

2009:5768

[10] YoonManKi,KimJungEun,ShaLiu.Optimizingtunable

WCETwithsharedresourceallocationandarbitrationinhard

realtimemulticoresystems//Proceedingsofthe32ndIEEE

RealTimeSystemsSymposium.Vienna,Austra,2011:

227238

[11] AndreiA,ElesP,PengZ,RosenJ.Predictableimplemen

tationofrealtimeapplicationson multiprocessorsystems

onchip//Proceedingsofthe21stInternationalConferenceon

VLSID.Hyderabad,India,2008:103110

[12] RosénJ,AndreiA,ElesP,PengZ.Busaccessoptimization

forpredictableimplementationofrealtimeapplicationson

multiprocessorsystemsonchip//Proceedingsofthe28thIEEE

RealTimeSystemsSymposium.Tucson,Arizona,USA,

2007:4960

[13] ChattopadhyayS,Roychoudhury A,Mitra T.Modeling

sharedcacheandbusin multicoresfortiminganalysis//

Proceedingsofthe13thInternationalWorkshoponSoftware&

CompilersforEmbedded Systems.St.Goar,Germany,

2010:110

[14] KelterT,FalkH,MarwedelP,etal.Busawaremulticore

WCETanalysisthroughTDMAoffsetbounds//Proceedings

ofthe2011EuromicroConferenceonRealTimeSystems.

Porto,Portugal,2011:312

[15] KelterT,Falk H,MarwedelP,etal.Staticanalysisof

multicoreTDMA resourcearbitrationdelays.RealTime

Systems,2014,50(2):185229

[16] ChattopadhyayS,ChongLK,RoychoudhuryA,etal.A

unifiedWCETanalysisframeworkformulticoreplatforms.

ACMTransactionsonEmbeddedComputingSystems,2014,

13(4s):124:1124:29

[17] LiYan,SuhendraV,LiangYun,etal.Timinganalysisof

concurrentprogramsrunningonsharedcachemulticores//

Proceedingsofthe30thIEEERealTimeSystemsSymposium.

Washington,USA,2009:5767

[18] YanJun,ZhangWei.WCETanalysisformulticoreprocessors

withsharedL2instructioncaches//Proceedingsofthe14th

IEEERealTimeandEmbeddedTechnologyandApplications

Symposium.St.Louis,Mo,USA,2008:8089

[19] ChenFangYuan,ZhangDongSong,WangZhiYing.Static

analysisofruntimeinterthreadinterferencesinsharedcache

multicorearchitecturesbasedoninstructionfetchingtiming//

ProceedingsoftheIEEEInternationalConferenceonComputer

ScienceandAutomationEngineering.Shanghai,China,2011:

208212

[20] DingHuPing,LiangYun,MitraT.WCETcentricdynamic

instructioncachelocking//ProceedingsoftheConferenceon

Design,Automation&TestinEurope.Dresden,Germany,

2014:16

[21] LiuTianTian,LiMinMing,XueCJ.Instructioncache

lockingformultitaskrealtimeembeddedsystems.RealTime

Systems,2012,48(2):166197

79819期 张吉赞等:多核共享缓存bank冲突分析及其延迟最小化

Page 16: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

[22] LiXianFeng,Liang Yun,Mitra T,Roychoudhury A.

Chronos:Atiminganalyzerforembeddedsoftware.Science

ofComputerProgramming,2007,69(13):5667

[23] TheilingH,FerdinandC,Wilhelm R.Fastandprecise

WCETpredictionbyseparatedcacheandpathanalyses.

RealTimeSystems,2000,18(23):157179

[24] BurgerD,AustinT M.Thesimplescalartoolset,version

2.0.ACMSIGARCHComputerArchitectureNews,1997,

25(3):1325

[25] LiXianFeng,RoychoudhuryP,MitraP.Modelingoutof

orderprocessorsforWCETanalysis.RealTimeSystems,

2006,34(3):195227

[26] GustafssonJ,BettsA,ErmedahlA,LisperB.TheMlardalen

WCETbenchmarks:Past,presentandfuture//Proceedings

ofthe10thInternationalWorkshoponWorstCaseExecution

TimeAnalysis.Brussels,Belgium,2010:137147

附 录.

  定理2. 已知 犖core、犔犕/犔犅和犖column,且L2缓存的容

量大小满足需求,若 犖core/(犔犕/犔犅) >犖column,则bank访

问冲突可以通过优化核到bank的映射去消除.

证明. 令犇犕=犔犕/犔犅为整数(在3.1节中已作规定),

将核的集合犆划分成犇犕 个部分,犆={犆0,犆1,…,犆(犇犕-1)},

犆0∩犆1∩…∩犆(犇犕-1)=,且满足犆犻犆,犮犼∈犆犻,犼mod

犇犕=犻.可得犱犼狇犇犕,犮犼,犮狇∈犆犻,0犻(犇犕-1).若

犮犼,犮狇∈犆犫犽且犮犼,犮狇∈犆犻,0犻(犇犕-1),则根据定理1可

知:在bank犫犽上不存在bank访问冲突.

先构造一个映射,将犆犻(0犻(犇犕-1))中的核按序

号大小排序,并按下述方法做核到bank的映射:(1)将犆0中

的核依次向bank做映射,先向犫1做映射,犫1分配完后,向犫2

做映射,依次类推.设犆0的最后一个核映射到犫犽,且犫犽有

column未分配出去,即犫1~犫(犽-1)已分配完;(2)将犆1中的核

依次向bank做映射,先向犫犽做映射,并按照(1)方法做映射.

依次类推,最后,完成犆(犇犕-1)到bank的映射.现只需证明在

按上述方法确立的核到bank的映射中不存在bank访问冲

突即可.

用犕:(犆→犅)表示按上述方法确定的核到bank的映射.

对于映射犕:(犆→犅),犆犻犆,0犻<(犇犕-1),现考察犆(犻+1)

中的核与犆犻中的核共享bank的情况.用{{犮犻狇,犮犻(狇+1),…,犮犻(狀犻)},

{犮(犻+1)1,犮(犻+1)2,…,犮(犻+1)狆}}表示犆犻和犆(犻+1)中共享一个bank的

核集合(用!犻(犻+1)表示),其中{犮犻狇,犮犻(狇+1),…,犮犻(狀犻)}是犆犻的子集,

狀犻为犆犻中的核数,{犮(犻+1)1,犮(犻+1)2,…,犮(犻+1)狆}是犆(犻+1)的子集.现

在需要证明如下两点即可:(1)狇(狆+2);(2)犮犻狇和犮(犻+1)狆之

间的模距离大于等于犔犕/犔犅.

证明狇(狆+2).假设狇(狆+1),!犻(犻+1)可以表示为

{犮(犻+1)1,犮(犻+1)2,…,犮(犻+1)狆,犮犻狇,犮犻(狇+1),…,犮犻(狀犻)},则!犻(犻+1)中

的核数(用 犖犻(犻+1)表示)大于等于 犖core/(犔犕/犔犅) .由于

犖core/(犔犕/犔犅) >犖column,所以犖犻(犻+1)>犖column,又因为是

以column为单位向核分配L2缓存(消除storage干扰),即每

个核至少需要1个column(核是空闲的除外),核集合!犻(犻+1)

需要的总column数大于等于 犖犻(犻+1),所以!犻(犻+1)需要的总

column数大于犖column,即核集合!犻(犻+1)需要的总column数

不可能由一个bank容纳,与!犻(犻+1)中的核共享一个bank矛

盾,故狇(狆+1)不成立,因为狇、狆为整数,狇(狆+2).

证明犮犻狇和犮(犻+1)狆之间的模距离大于等于犔犕/犔犅.在集合

犆中,犮犻狇的序号可以表示为(狇-1)·犇犕+犻+1,犮(犻+1)狆的序号

可以表示为(狆-1)·犇犕+(犻+1)+1.犮犻狇和犮(犻+1)狆之间的模

距离为((狇-1)·犇犕+犻+1)-((狆-1)·犇犕+(犻+1)+1),

可简化为(狇-狆)·犇犕-1,因为狇(狆+2),则((狇-狆)·

犇犕-1)(2·犇犕-1)犇犕.

综上所述,在!犻(犻+1)中,核间的模距离都大于等于

犔犕/犔犅,根据定理1,在这些核共享使用的bank上不存在

bank访问冲突,且犆犻(0犻<(犇犕-1))具有一般性,因此,

在映射犕:(犆→犅)中不存在bank访问冲突. 证毕.

定理3. 已知犆、犖coremod2=0、犔犕/犔犅=2、犖column和

犛犻狕犲犮犻>0,1犻犖core.将犆分割成两个互不相交的子集犆0和

犆1,且满足:在任一子集中的任意两个核之间的模距离大于等

于犔犕/犔犅.若在每个子集中能够找到一个核集合犆狊犻(犆犻),

0犻1,且满足犛犻狕犲(犆狊犻)犛犻狕犲(犆犻)mod犖column,则bank访

问冲突可以通过优化核到bank的映射去消除.

证明. 将犆0和犆1分别整理为犆0={犮01,犮02,…,犆狊0}和

犆1={犆狊1,犮1犻,犮1(犻+1),…,犮1(狀1)},并按照定理2的证明方法构

造核到bank的映射 犕:(犆→犅).由于犛犻狕犲(犆狊犻)犛犻狕犲(犆犻)

mod犖column,则!01{犆狊0,犆狊1}且犮犼,犮狇∈犆狊犻,犱犼狇犔犕/犔犅,

0犻1,因此在映射犕:(犆→犅)中不存在bank访问冲突.

证毕.

犣犎犃犖犌犑犻犣犪狀,bornin1973,Ph.D.

candidate.Hisresearchinterestsinclude

computer architecture and computer

network.

犌犝犣犺犻犕犻狀,bornin1964,Ph.D.,professor.His

researchinterestisoptimizationofmulticore/manycore.

8981 计  算  机  学  报 2016年

Page 17: 多核共享缓存犫犪狀犽冲突分析及其延迟最小化 - ict.ac.cncjc.ict.ac.cn/online/onlinepaper/zjz-2016823103914.pdf · 2016. 8. 23. · 书 第39卷 第 9期 2016年9月

犅犪犮犽犵狉狅狌狀犱

Theusageof multicoreprocessorin hardrealtime

systemsbringsnewchallengestoWCETanalysis.Thehard

realtimetask,runningonhardrealtimemulticoresystems

atthesametime,caninterferewitheachotheronshared

resources.Sharedcacheisoneimportantsharedresourcefor

hardrealtime multicore systems,the existing analysis

methodsofbankaccessconflictareonlyconfinedtobounding

theupperbound ofbank conflictdelay. However,the

methodsofboundingtheupperboundareonlysuitablefor

theirspecialbusarbitrationpolicy.Moreover,the WCET

estimatedbyboundingtheupperboundsufferedbyeach

requesthasmoreoverestimation.

Nowthebankedcachearchitecturesbecomingthetypical

designdirection,onecachehasmorethanonebank.Acore

tobankmappingpartitionsthehardrealtimetasksrunning

inmulticoresystemintoseveralgroupsaccordingtowhether

thetasksshareonebankornot.Bankaccessconflictscan

onlyhappenamongthetaskssharingonebank.

Thegoalofthispaperistoeliminateorminimizethe

bank conflict delayin hard realtime multicore system

throughoptimizingcoretobankmapping.Themajorcontri

butionsofthispaperareasfollows:

(1)Wefirstlyoptimizecoretobankmappingtoeliminate

bankaccessconflict.Ifnot,weoptimizecoretobankmapping

tominimizebankconflictdelay;

(2)Wedesignanalgorithmtofindthecoretobank

mappingwiththe minimum bankconflictdelay.Inthis

algorithm,wecomputethebankconflictdelayaccordingto

thetimingsequencesofthemulticorebusrequests;

(3)WeproposeWCETanalysisapproachforthehard

realtimetasksrunningonmulticoresystematthesametime.

(4)Experimentalresultsdemonstratethatourapproach

ofoptimizing coretobank mapping can minimize bank

conflictdelayandourapproachtoestimateWCETismore

effectivethanexistingapproaches.

ThisworkissupportedbytheNationalNaturalScience

FoundationofChinaunderGrantNo.61370062.Thisproject

studiestheoptimizationmodelonboundingofinterferencesin

onchipsharedresourcesforenergyefficientandlowdelay

embeddedmulticore.Theresearchresultscanbewidely

usedinhighendmulticorerealtimesystemswithbattery

powered.Thefeasibilityofthisresearchhasbeenverified

sufficientlyinourpreliminarywork,forexamples,“Prefetching

inMobileEmbeddedSystemCanbeEnergyEfficient,IEEE

ComputerArchitectureLetters,Vol.10,No.1,8-11,2011”,

“AccelerationofXMLParsingThroughPrefetching.IEEE

TransactionsonComputers,IEEEXploreDigitalLibrary,

online10.1109/TC.2012.88”andsoon.

99819期 张吉赞等:多核共享缓存bank冲突分析及其延迟最小化