多核架构下核间线程迁移的实现方法.pdf

上传人:n****g 文档编号:996980 上传时间:2018-03-24 格式:PDF 页数:7 大小:397.16KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910157107.6

申请日:

2009.12.22

公开号:

CN101751295A

公开日:

2010.06.23

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 9/48申请日:20091222授权公告日:20120829终止日期:20121222|||授权|||实质审查的生效IPC(主分类):G06F 9/48申请日:20091222|||公开

IPC分类号:

G06F9/48; G06F15/16

主分类号:

G06F9/48

申请人:

浙江大学

发明人:

陈天洲; 乔福明; 唐兴盛; 张少斌; 胡威; 胡同森

地址:

310027 浙江省杭州市西湖区浙大路38号

优先权:

专利代理机构:

杭州中成专利事务所有限公司 33212

代理人:

金祺

PDF下载: PDF下载
内容摘要

本发明涉及多核层次结构设计领域,旨在提供一种多核架构下核间线程迁移的实现方法。该方法包括下述步骤:对Cache数据块进行分割、设置故障映射表和同伴映射表、进行核间线程迁移,完成所有的Cache数据块被迁移到访问核,以实现整个线程的迁移。本发明具有的有益的效果是:在多核环境下,线程迁移结合Cache数据块的故障映射和同伴映射来实现。采取保留从访问核中替换出去的Cache数据块的方法,而不是抛弃Cache数据块,可以提高Cache命中率。本发明的实现方法可以降低Cache访问的延时,且与以前提出的复制Cache数据块的方法相比可以有效的利用Cache的容量和保持Cache数据块在Cache中的唯一性。

权利要求书

1.  一种多核架构下核间线程迁移的实现方法,包括以下步骤:
(1)对Cache数据块进行分割:
将每个Cache数据块划分为k个相等的等份div,每个等份div的大小为n,假设Cache数据块的大小为c,则c=nk;
(2)设置故障映射表和同伴映射表:
每个Cache数据块设置一个故障映射表和一个同伴位b,故障映射表用来表示Cache数据块的各个等份div是否可以用来存储数据,同伴位b表示该Cache数据块是否存在同伴块;在一个Cache组内如果存在一个Cache数据块的故障映射与另一个Cache数据块的故障映射异或结果都为0,那么这两个Cache数据块就存在着同伴关系,即另一个Cache数据块是这个Cache数据块的同伴块;
设置一个所有核共享的同伴块判断器,用来判断同伴位b是否为0;
每个Cache组set设置一个搜索器和一个同伴映射表,搜索器用来确定同伴块的位置,同伴映射表用来确定该Cache数据块同伴块的位置;如果在Cache组set内存在一个有故障的Cache数据块与另一个有故障的Cache配对,形成一个可以用来存储信息的Cache数据块,则这两个有故障的Cache数据块交换其索引;
(3)为了减少存储器访问延时,需要进行核间线程迁移,其实施过程主要分为以下几个步骤:
迁移核是指线程要被迁移的那个核,访问核是指访问线程的那个核;
第一步:同伴块判断器判断被迁移核中所要迁移的Cache数据块的同伴位b是否为0,如果为0,并且转入步骤二;如果为1,则转入步骤五;
第二步:同伴块判断器判断访问核中要替换出去的Cache数据块的同伴位b是否为0,如果为0,转入步骤三;如果为1,转入步骤四;
第三步:线程迁移控制器直接迁移Cache数据块到访问核驱出的Cache数据块位置上,同时把从访问核中驱出的Cache数据块填充到迁移核Cache数据块被迁移出的位置;
第四步:首先Cache组set中的搜索器利用访问核Cache数据块的同伴索引确定其同伴块的位置,线程迁移控制器根据访问核驱出的Cache数据块的故障映射和同伴映射,迁移Cache数据块到访问核驱出的两个Cache数据块中的有效位置上,再把从访问核中驱出的两个Cache数据块中有效的数据填充到迁移核Cache数据块被迁移出的位置;
第五步:首先该Cache组set中的搜索器根据迁移核Cache数据块的同伴索引,确定其同伴块的位置,同时同伴块判断器判断访问核中要替换出去的Cache数据块的同伴位b,如果b=0,线程迁移控制器将两个Cache数据块中有效的数据迁移到访问核,再根据迁移核被迁移出的两个Cache数据块的故障映射和同伴映射,把从访问核中驱出的Cache数据块填充到迁移核被迁移出的两个Cache数据块位置上;如果b=1,线程迁移控制器将两个Cache数据块中有效的数据迁移到访问核中两个Cache数据块中有效的位置上,再把从访问核中驱出的两个Cache数据块中有效的数据填充到迁移核被迁移出的两个Cache数据块位置上;
以上实施的五个步骤是循环进行的,完成所有的Cache数据块被迁移到访问核,以实现整个线程的迁移。

说明书

多核架构下核间线程迁移的实现方法
技术领域
本发明涉及多核层次结构设计领域,特别是涉及一种多核架构下核间线程迁移的实现方法。
背景技术
随着科技的不断进步,Cache的容量也在随之增加,尤其是最后一级Cache。由于制作工艺的不同,往往会增加组成Cache的SRAM单元的错误率,目前提出了不少解决的方法,错误纠正码是其中的一个,它是通过冗余的单元来替换有故障的单元,但是当冗余的单元使用完了之后,其余有故障的单元只能被抛弃,这种做法往往只能纠正一个错误单元,所以说纠正大量的错误是不现实的。如果多个错误单元需要纠正,那么错误纠正码就需要一定的面积开销以及计算的复杂性。还有其它的方法,比如说通过抛弃有故障单元来减少Cache容量大小;字抛弃策略;位固定策略等等。
延时是线程迁移考虑的一个重要因素,目前提出了不少方法用来缓解存储器访问的延时,特别是针对最后一级Cache。减少访问延时的方法有数据迁移和数据复制等,但是数据迁移在单核情况下更加有效。与在多核情况下相比,数据复制不能有效地利用Cache容量而且不能保证数据块的唯一性(Cache中只有一个内存的备份)。在芯片多处理器CMP中,分布式共享L2非一致性访问Cache,访问延时表现的更加明显:靠近访问核的存储体banks所需要的访问时间最短(延时最短),而离访问核远的存储体所需要的访问时间最长(延时最长)。
发明内容
本发明要解决的技术问题是,提供一种多核架构下核间线程迁移的实现方法。
为解决上述技术问题,本发明提供的方法包括以下步骤:
(1)对Cache数据块进行分割:
将每个Cache数据块划分为k个相等的等份div,每个等份div的大小为n,假设Cache数据块的大小为c,则c=nk;
(2)设置故障映射表和同伴映射表:
每个Cache数据块设置一个故障映射,用0表示等份div没有故障,可以用来存储数据,用1表示等份div存在故障,不能用来存储数据。每个Cache数据块设置一个同伴位b,表示该Cache数据块是否存在同伴块,当b=0时表示该Cache数据块没有同伴块,当b=1时表示该Cache数据块存在同伴块。
在一个Cache组内如果存在一个Cache数据块的故障映射与另一个Cache数据块的故障映射异或结果都为0,那么这两个Cache数据块就存在着同伴关系,即另一个Cache数据块是这个Cache数据块的同伴块。
设置一个所有核共享的同伴块判断器,用来判断同伴位b是否为0;每个Cache组set设置一个搜索器,用来确定同伴块的位置。
每个Cache组set设置一个同伴映射表,每个Cache数据块需要log2n位来表示同伴映射,n为Cache的相联度,如果在Cache组set内存在一个有故障的Cache数据块与另一个有故障的Cache配对,形成一个可以用来存储信息的Cache数据块,则这两个有故障的Cache数据块交换其索引。
(3)为了减少存储器访问延时,需要进行核间线程迁移,其实施过程主要分为以下几个步骤:
迁移核是指线程要被迁移的那个核,访问核是指访问线程的那个核;
第一步:同伴块判断器判断被迁移核中所要迁移的Cache数据块的同伴位b是否为0,如果为0,并且转入步骤二;如果不为0(即b=1),并且转入步骤五;
第二步:同伴块判断器判断访问核中要替换出去的Cache数据块的同伴位b是否为0,如果为0,转入步骤三;如果为1,转入步骤四;
第三步:线程迁移控制器直接迁移Cache数据块到访问核驱出的Cache数据块位置上,同时把从访问核中驱出的Cache数据块填充到迁移核Cache数据块被迁移出的位置;
第四步:首先Cache组set中的搜索器利用访问核Cache数据块的同伴索引确定其同伴块的位置,线程迁移控制器根据访问核驱出的Cache数据块的故障映射和同伴映射,迁移Cache数据块到访问核驱出的两个Cache数据块中的有效位置上,再把从访问核中驱出的两个Cache数据块中有效的数据填充到迁移核Cache数据块被迁移出的位置;
第五步:首先该Cache组set中的搜索器根据迁移核Cache数据块的同伴索引,确定其同伴块的位置,同时同伴块判断器判断访问核中要替换出去的Cache数据块的同伴位b,如果b=0,线程迁移控制器将两个Cache数据块中有效的数据迁移到访问核,再根据迁移核被迁移出的两个Cache数据块的故障映射和同伴映射,把从访问核中驱出的Cache数据块填充到迁移核被迁移出的两个Cache数据块位置上;如果b=1,线程迁移控制器将两个Cache数据块中有效的数据迁移到访问核中两个Cache数据块中有效的位置上,再把从访问核中驱出的两个Cache数据块中有效的数据填充到迁移核被迁移出的两个Cache数据块位置上。
以上实施的五个步骤是循环进行的,完成所有的Cache数据块被迁移到访问核,以实现整个线程的迁移。
背景技术相比,本发明具有的有益的效果是:
在多核环境下,线程迁移结合Cache数据块的故障映射和同伴映射来实现。采取保留从访问核中替换出去的Cache数据块的方法,而不是抛弃Cache数据块,可以提高Cache命中率。本发明的实现方法可以降低Cache访问的延时,且与以前提出的复制Cache数据块的方法相比可以有效的利用Cache的容量和保持Cache数据块在Cache中的唯一性。
附图说明
图1为Cache数据块迁移的过程。
具体实施方式
本方法的具体过程及实例如下:
多核架构下核间线程迁移的实现方法包括下述步骤:
(1)对Cache数据块的进行分割:
每个Cache数据块划分为k个相等的等份div,每个等份div的大小为n,假设Cache数据块的大小为c,则c=nk。假设Cache数据块大小为32K,分成4个等份,每个等份大小为8K。
(2)故障映射表和同伴映射表:
为每个Cache数据块配备一个故障映射,如果等份div的故障位为0,就表示该等份可以存储数据,如果等份div的故障位为1,就表示该分割不能存储数据,比如说一个Cache数据块的故障映射为1010,则表示第二个和第四个可以用来存储数据,第一个和第三个不能用来存储数据。每个Cache数据块设置一个同伴位b,用来表示该Cache数据块是否存在同伴块,在一个Cache组set内,Cache数据块的故障映射和该Cache组set内其它所有Cache数据块的故障映射相异或,如果存在一个Cache数据块异或的结果都为1,则设置b=1,表示该Cache数据块有同伴块,如果结果不全为1,则设置b=0,表示该Cache数据块不存在同伴块。
在一个Cache组set内如果存在一个Cache数据块的故障映射与另一个Cache数据块的故障映射异或结果都为0,那么这两个Cache数据块就存在着同伴关系,即另一个Cache数据块是这个Cache数据块的同伴块,例如一个Cache数据块的故障映射为1010,如果在同一个Cache组set内存在另一个Cache数据块的故障映射为0101,这两个数据块的故障映射异或结果为1111,那么另一个Cache数据块是这个Cache数据块的同伴块。
设置一个所有核共享的同伴块判断器,用来判断同伴位b是否为0;每个Cache组set设置一个搜索器,用来确定同伴块的位置。
每个Cache组set设置一个同伴映射表,每个Cache数据块需要log2n位来表示同伴映射,n为Cache的相联度,如果在Cache组set内存在一个有故障的Cache数据块与另一个有故障的Cache配对(即一个Cache数据块是另一个Cache数据块的同伴块),形成一个可以用来存储信息的Cache数据块,则这两个有故障的Cache数据块交换其索引。
(3)为了减少存储器访问延时,需要进行核间线程迁移,其实施过程主要分为以下几个步骤:
迁移核是指线程要被迁移的那个核,访问核是指访问线程的那个核;
第一步:同伴块判断器判断被迁移核中所要迁移的Cache数据块的同伴位b是否为0,如果为0,并且转入步骤二;如果不为0(即b=1),并且转入步骤五;
第二步:同伴块判断器判断访问核中要替换出去的Cache数据块的同伴位b是否为0,如果为0,转入步骤三,如果为1,转入步骤四;
第三步:线程迁移控制器直接迁移Cache数据块到访问核驱出的Cache数据块位置上,即迁移无故障的Cache数据块到无故障的Cache数据块位置上,同时把从访问核中驱出的Cache数据块填充到迁移核Cache数据块被迁移出的位置;
第四步:首先Cache组set中的搜索器确定其同伴块的位置:通过同伴映射找到其同伴块的位置,线程迁移控制器根据访问核驱出的Cache数据块的故障映射和同伴映射,迁移Cache数据块到访问核驱出的两个Cache数据块中的有效位置上,再把从访问核中驱出的两个Cache数据块中有效的数据填充到迁移核Cache数据块被迁移出的位置,比如说迁移一个无故障的Cache数据块到两个有故障的Cache数据块的有效位置上;
第五步:首先该Cache组set中的搜索器根据迁移核Cache数据块的同伴索引,确定其同伴块的位置,同时同伴块判断器判断访问核中要替换出去的Cache数据块的同伴位b,如果b=0,线程迁移控制器将两个Cache数据块中有效的数据迁移到访问核,再根据迁移核被迁移出的两个Cache数据块的故障映射和同伴映射,把从访问核中驱出的Cache数据块填充到迁移核被迁移出的两个Cache数据块位置上,属于把两个有故障的Cache数据块迁移到一个无故障的Cache数据块上;如果b=1,线程迁移控制器将两个Cache数据块中有效的数据迁移到访问核中两个Cache数据块中有效的位置上,再把从访问核中驱出的两个Cache数据块中有效的数据填充到迁移核被迁移出的两个Cache数据块位置上,属于把两个有故障的Cache数据块迁移到两个有故障的Cache数据块上。
以上实施的五个步骤是循环进行的,完成所有的Cache数据块被迁移到访问核,以实现整个线程的迁移。

多核架构下核间线程迁移的实现方法.pdf_第1页
第1页 / 共7页
多核架构下核间线程迁移的实现方法.pdf_第2页
第2页 / 共7页
多核架构下核间线程迁移的实现方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《多核架构下核间线程迁移的实现方法.pdf》由会员分享,可在线阅读,更多相关《多核架构下核间线程迁移的实现方法.pdf(7页珍藏版)》请在专利查询网上搜索。

本发明涉及多核层次结构设计领域,旨在提供一种多核架构下核间线程迁移的实现方法。该方法包括下述步骤:对Cache数据块进行分割、设置故障映射表和同伴映射表、进行核间线程迁移,完成所有的Cache数据块被迁移到访问核,以实现整个线程的迁移。本发明具有的有益的效果是:在多核环境下,线程迁移结合Cache数据块的故障映射和同伴映射来实现。采取保留从访问核中替换出去的Cache数据块的方法,而不是抛弃Cac。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1