发明名称 温度敏感的混合存储架构及其数据分配策略方法
摘要 本发明具体公开了一种温度敏感的混合存储架构及其数据分配策略方法,包括以下步骤:(1)根据存储部件cache和SPM的面积模型,设计不同cache/SPM容量比例的floorplan;(2)根据嵌入式处理器的温度模型,计算出针对不同cache/SPM容量比例的存储系统温度变化周期中cache/SPM使用时间t<sub>1</sub>/t<sub>2</sub>比,选择t<sub>1</sub>/t<sub>2</sub>比最大的floorplan作为设计方案;(3)根据步骤(2)得到的设计方案,设计数据分配策略;在限定峰值温度的条件下,利用贪心算法实现将数据分配到cache或SPM,从而得到最短的数据访问时间。
申请公布号 CN103176799B 申请公布日期 2016.01.13
申请号 CN201310063686.4 申请日期 2013.02.28
申请人 山东大学 发明人 贾智平;李新;李阳;王冠华
分类号 G06F9/44(2006.01)I;G06F12/08(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 济南圣达知识产权代理有限公司 37221 代理人 郑华清
主权项 温度敏感的混合存储架构的数据分配策略方法,其特征在于,包括以下步骤:(1)根据存储部件cache和SPM的面积模型,设计不同cache/SPM容量比例的芯片布局图floorplan;(2)根据嵌入式处理器的温度模型,计算出针对不同cache/SPM容量比例的存储系统温度变化周期中cache/SPM使用时间t2/t1比,选择t1/t2比最大的芯片布局图floorplan作为设计方案;所述的计算出针对不同cache/SPM容量比例的存储系统温度变化周期中cache/SPM使用时间t2/t1比,其具体过程如下:在系统工作时,通过交替使用Cache和SPM两种部件,交替降低SPM和Cache的工作功率P,实现对其交替降温,得到cache和SPM的温度变化曲线,当系统工作一定时间后,cache和SPM的温度变化逐渐稳定,并呈现周期性趋势,在t1时间段内,SPM工作,SPM的温度从低温T<sub>s_low</sub>上升到温度阈值T<sub>max</sub>,而cache暂停工作,其温度从温度阈值T<sub>max</sub>降到低温T<sub>c_low</sub>;在t2时间段内,cache工作,其温度从低温T<sub>c_low</sub>上升到温度阈值T<sub>max</sub>,而SPM暂停工作,其温度从温度阈值T<sub>max</sub>降到低温T<sub>s_low</sub>;这一规律用以下四个公式表示:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>T</mi><mi>max</mi></msub><mo>=</mo><msub><mi>P</mi><mi>S</mi></msub><mo>&times;</mo><msub><mi>R</mi><mi>S</mi></msub><mo>+</mo><msub><mi>T</mi><mrow><mi>a</mi><mi>m</mi><mi>b</mi></mrow></msub><mo>-</mo><mrow><mo>(</mo><msub><mi>P</mi><mi>S</mi></msub><mo>&times;</mo><msub><mi>R</mi><mi>S</mi></msub><mo>+</mo><msub><mi>T</mi><mrow><mi>a</mi><mi>m</mi><mi>b</mi></mrow></msub><mo>-</mo><msub><mi>T</mi><mrow><mi>S</mi><mo>_</mo><mi>l</mi><mi>o</mi><mi>w</mi></mrow></msub><mo>)</mo></mrow><mo>&times;</mo><msup><mi>e</mi><mrow><mo>-</mo><mfrac><msub><mi>t</mi><mn>1</mn></msub><mrow><msub><mi>R</mi><mi>S</mi></msub><msub><mi>C</mi><mi>S</mi></msub></mrow></mfrac></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000841223250000011.GIF" wi="1611" he="130" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>T</mi><mrow><mi>C</mi><mo>_</mo><mi>l</mi><mi>o</mi><mi>w</mi></mrow></msub><mo>=</mo><msub><mi>T</mi><mrow><mi>a</mi><mi>m</mi><mi>b</mi></mrow></msub><mo>-</mo><mrow><mo>(</mo><msub><mi>T</mi><mrow><mi>a</mi><mi>m</mi><mi>b</mi></mrow></msub><mo>-</mo><msub><mi>T</mi><mi>max</mi></msub><mo>)</mo></mrow><mo>&times;</mo><msup><mi>e</mi><mrow><mo>-</mo><mfrac><msub><mi>t</mi><mn>1</mn></msub><mrow><msub><mi>R</mi><mi>C</mi></msub><msub><mi>C</mi><mi>C</mi></msub></mrow></mfrac></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000841223250000012.GIF" wi="1613" he="127" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>T</mi><mi>max</mi></msub><mo>=</mo><msub><mi>P</mi><mi>C</mi></msub><mo>&times;</mo><msub><mi>R</mi><mi>C</mi></msub><mo>+</mo><msub><mi>T</mi><mrow><mi>a</mi><mi>m</mi><mi>b</mi></mrow></msub><mo>-</mo><mrow><mo>(</mo><msub><mi>P</mi><mi>C</mi></msub><mo>&times;</mo><msub><mi>R</mi><mi>C</mi></msub><mo>+</mo><msub><mi>T</mi><mrow><mi>a</mi><mi>m</mi><mi>b</mi></mrow></msub><mo>-</mo><msub><mi>T</mi><mrow><mi>C</mi><mo>_</mo><mi>l</mi><mi>o</mi><mi>w</mi></mrow></msub><mo>)</mo></mrow><mo>&times;</mo><msup><mi>e</mi><mrow><mo>-</mo><mfrac><msub><mi>t</mi><mn>2</mn></msub><mrow><msub><mi>R</mi><mi>C</mi></msub><msub><mi>C</mi><mi>C</mi></msub></mrow></mfrac></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000841223250000013.GIF" wi="1611" he="124" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>T</mi><mrow><mi>S</mi><mo>_</mo><mi>l</mi><mi>o</mi><mi>w</mi></mrow></msub><mo>=</mo><msub><mi>T</mi><mrow><mi>a</mi><mi>m</mi><mi>b</mi></mrow></msub><mo>-</mo><mrow><mo>(</mo><msub><mi>T</mi><mrow><mi>a</mi><mi>m</mi><mi>b</mi></mrow></msub><mo>-</mo><msub><mi>T</mi><mi>max</mi></msub><mo>)</mo></mrow><mo>&times;</mo><msup><mi>e</mi><mrow><mo>-</mo><mfrac><msub><mi>t</mi><mn>2</mn></msub><mrow><msub><mi>R</mi><mi>S</mi></msub><msub><mi>C</mi><mi>S</mi></msub></mrow></mfrac></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000841223250000014.GIF" wi="1614" he="117" /></maths>上述公式中,t1表示温度变化周期内,SPM工作的时间段;t2表示温度变化周期内,cache工作的时间段;T<sub>max</sub>表示存储系统的温度阈值;T<sub>amb</sub>表示环境温度;T<sub>c_low</sub>、T<sub>s_low</sub>分别表示cache和SPM可降低到的最低温度;R<sub>c</sub>、C<sub>c</sub>表示cache的热阻、热容;R<sub>s</sub>、C<sub>s</sub>表示SPM的热阻、热容;P<sub>c</sub>、P<sub>s</sub>分别表示cache和SPM的工作功率;由于访问SPM时命中率为100%,而且不需要地址匹配过程,节省了比较的时间和cache未命中时访问主存的时间,因此通过使用SPM比cache的次数多来提高系统的实时性能,选择t1/t2比最大的芯片布局图floorplan作为设计方案;(3)根据步骤(2)得到的设计方案,设计数据分配策略;在限定峰值温度的条件下,利用贪心算法实现将数据分配到cache或SPM,从而得到最短的数据访问时间;利用贪心算法设计数据分配算法如下:步骤a.初始化标志位Flag=1,循环执行计数Ite_count=0;步骤b.判断循环执行计数Ite_count是否小于总循环次数N,若是,跳转到步骤c;若否,跳转到步骤k;步骤c.判断标志位是否为1,若是,跳转到步骤d;若否,跳转到步骤h;步骤d.计算本次可以分配数据到SPM的循环次数:Ite_on_spm=min(N‑ite_count,t1);步骤e.把此后Ite_on_spm次循环中,需要的(ite_count*datasize)大小的数据从主存复制到SPM;步骤f.循环执行Ite_on_spm次,循环执行计数Ite_count增加ite_on_spm;步骤g.设置标志位Flag=0,跳转到步骤a;步骤h.计算本次可以分配数据到cache的循环次数:Ite_on_cache=min(N‑ite_count,t2);步骤i.循环执行Ite_on_cache次,循环执行计数Ite_count增加ite_on_cache;步骤g.设置标志位Flag=1,跳转到步骤a;步骤k.结束。
地址 250061 山东省济南市历下区经十路17923号