[发明专利]一种紧耦合异构多处理器数据交换缓存的实现方法在审
申请号: | 201510809896.2 | 申请日: | 2015-11-23 |
公开(公告)号: | CN105354153A | 公开(公告)日: | 2016-02-24 |
发明(设计)人: | 吴明晖;俞立呈 | 申请(专利权)人: | 浙江大学城市学院 |
主分类号: | G06F12/0806 | 分类号: | G06F12/0806;G06F12/0813 |
代理公司: | 浙江杭州金通专利事务所有限公司 33100 | 代理人: | 赵红英 |
地址: | 310015 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 耦合 异构多 处理器 数据 交换 缓存 实现 方法 | ||
技术领域
本发明涉及一种数据交换缓存的实现方法,尤其是涉及一种紧耦合异构多处理器数据交换缓存的实现方法。
背景技术
紧耦合异构多处理器架构中各个异构处理器核心通过片上互联相互连接,并共享内存,通常也共享最后一级缓存。典型的架构如CPU和GPU通过第三级缓存相连,并在共享的内存中进行数据交换。但是传统的由内存存储,缓存加速的数据交换方式并不适合在处理器间进行细粒度、大规模的临时数据传输。由于这些临时数据仅仅作为处理器间计算的中间结果,存入内存将带来不必要的访存带宽开销和空间占用。
另一方面,当传输的单个数据元素大小超过一次访存请求所支持的大小时,这个元素需要被划分为小块多次访问。然而异构处理器的访存模式差别很大,例如CPU中每个线程独立发送各自的访存请求,而GPU中以单指令多数据的方式执行的一批线程会同时发送多个访存请求,这些请求若访问相邻的地址则会被融合成单个请求以降低访存系统的负担。不同的处理器访问内存时,最适合的数据布局不同,因此传统的共享内存方式进行数据交换无法达到在各个不同的访存模式下都能有最佳的访问效率。并且由于不同处理器的访存模式不同,由各处理器上执行的代码分别管理共享内存空间也比较困难。
发明内容
为了解决背景技术中存在的问题,本发明所要解决的技术问题在于提供一种紧耦合异构多处理器数据交换缓存的实现方法。
本发明所采用的技术方案是:
一种紧耦合异构多处理器数据交换缓存的实现方法,其特征在于包括以下步骤:
1.1)处理器间数据交换单元为元素,每个元素划分为多个固定长度的原子;
1.2)采用核间共享的最后一级缓存的部分空间存储交换中的元素;1.3)各原子以任意数量、任意顺序在处理器和最后一级缓存间传输;1.4)并由最后一级缓存控制器维护各元素原子间存储顺序和空间。
其中步骤1.1)进一步包括:原子的长度固定为各个处理器的自然字长中的最小值,按照各原子在一个元素中的顺序对原子递增编号。
其中步骤1.2)进一步包括:
3.1)交换空间的大小根据应用需求任意分配,关闭所分配的这部分空间原缓存控制逻辑;
3.2)原缓存存储组织中每一缓存行存储属于不同元素的同一编号的原子;
3.3)连续的缓存行存储这些缓存行中元素的连续编号的原子,组成一批完整元素的所有缓存行称为元素块,一个所述的元素块的大小为一个缓存行的大小乘以每个元素的原子数。
其中步骤1.3)进一步包括:
4.1)使用所述的缓存交换数据时,各处理器根据执行的线程宽度决定每次访问的元素数量;
4.2)首先发送读或写预约请求检查缓存中是否有足够的空闲空间或足够的元素可满足本次访问所需的元素数量,若不满足则预约请求失败并重试直到成功,若预约请求成功,处理器从请求响应中得到即将访问的元素地址,所述的元素地址包括本次请求访问的第一个元素所在缓存行地址和这个元素在这个缓存行内的偏移量;
4.3)处理器在预约请求成功后以任意的顺序发出此元素中每个原子的访问请求,每个原子的访问请求中给出所述的元素地址、元素数量和此请求访问的原子序号。
其中步骤1.4)进一步包括:
5.1)最后一级缓存控制器在缓存中存储额外的流队列,其中每个流与一个所述的元素块对应,用于记录元素块的已预约写入元素数、已预约读取元素数、写入的原子总数和读取的原子数总数;
5.2)所述的预约读请求从流队列头部开始处理,所述的预约写请求从流队列尾部开始处理,最后一级缓存控制器使用一个部分读指针指向下一个预约读将检查的流,初始时缓存为空,队头、队尾和所述的部分读指针指向同一个位置;
5.3)最后一级缓存控制器接收到所述的预约写请求时,检查队尾是否有足够的空间可写,并发送预约结果给处理器;
5.4)最后一级缓存控制器接收到所述的预约读请求时,检查部分读指针指向的流是否有足够的元素可读,并发送预约结果给处理器;
5.5)最后一级缓存控制器接收到所述的原子的访问请求时,根据请求中的元素地址和原子序号计算此请求访问的所有原子地址,并访问相应的原子的数据;
5.6)最后一级缓存控制器释放已被读完的元素块及相应的流。
其中步骤5.3)进一步包括:
6.1)检查流队列队尾的流的已预约写入元素数,当剩余可写元素数不足时尝试从队尾后获取一个新的流,若当前流剩余足够的可写元素或申请新的流成功则预约成功,否则预约失败;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学城市学院,未经浙江大学城市学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510809896.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有多连杆式活塞-曲柄机构的内燃机
- 下一篇:路面清洁车辆
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置