解析GPU cache 中读写操作及其事件
来源:互联网 发布:golang smtp.sendmail 编辑:程序博客网 时间:2024/06/04 19:52
基于GPGPU-SIM代码,对读写操作进行解析
1.对于cache不应用写回策略的发送读请求
/// Read miss handler without writebackvoid baseline_cache::send_read_request(new_addr_type addr, new_addr_type block_addr, unsigned cache_index, mem_fetch *mf, unsigned time, bool &do_miss, std::list<cache_event> &events, bool read_only, bool wa){ bool wb=false; cache_block_t e; send_read_request(addr, block_addr, cache_index, mf, time, do_miss, wb, e, events, read_only, wa);}
2.对于cache 应用写回策略的发送读请求
/// Read miss handler. Check MSHR hit or MSHR available///检查MSHR是否命中,或者满void baseline_cache::send_read_request(new_addr_type addr, new_addr_type block_addr, unsigned cache_index, mem_fetch *mf, unsigned time, bool &do_miss, bool &wb, cache_block_t &evicted, std::list<cache_event> &events, bool read_only, bool wa){ bool mshr_hit = m_mshrs.probe(block_addr); bool mshr_avail = !m_mshrs.full(block_addr); if ( mshr_hit && mshr_avail ) { if(read_only) m_tag_array->access(block_addr,time,cache_index); else m_tag_array->access(block_addr,time,cache_index,wb,evicted); m_mshrs.add(block_addr,mf); do_miss = true; } else if ( !mshr_hit && mshr_avail && (m_miss_queue.size() < m_config.m_miss_queue_size) ) { if(read_only) m_tag_array->access(block_addr,time,cache_index); else m_tag_array->access(block_addr,time,cache_index,wb,evicted); m_mshrs.add(block_addr,mf); m_extra_mf_fields[mf] = extra_mf_fields(block_addr,cache_index, mf->get_data_size()); mf->set_data_size( m_config.get_line_sz() ); m_miss_queue.push_back(mf); mf->set_status(m_miss_queue_status,time); if(!wa) events.push_back(READ_REQUEST_SENT); do_miss = true; }}
3.向下级 cache or memory 发送写请求
/// Sends write request to lower level memory (write or writeback)void data_cache::send_write_request(mem_fetch *mf, cache_event request, unsigned time, std::list<cache_event> &events){ events.push_back(request); m_miss_queue.push_back(mf); mf->set_status(m_miss_queue_status,time);}
0 0
- 解析GPU cache 中读写操作及其事件
- 安卓开发中Cache模块(文件读写操作)
- 图解数据读写与Cache操作
- 图解数据读写与Cache操作
- 文件读写操作汇总解析
- PLY文件格式及其MATLAB读写操作
- directx10 11中读写gpu的resource方法补充总结
- directx10 11中读写gpu的resource方法补充总结
- opencv中GPU的流操作
- javascript中事件解析
- CPU GPU cache异同总结
- GPU L1 data cache 特点
- GPU及其通用计算
- HDFS文件的读写操作理论解析
- json文件的解析(读写操作)
- Android中读写文件操作
- verilog中读写文件操作
- QT中读写文件操作
- 面试题6:重建二叉树
- String类
- 关于《万万没想到》
- 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- memcached安装+绑定访问ip
- 解析GPU cache 中读写操作及其事件
- 智能管家项目总结(1)
- Java中的 equals() 和 ==
- 机器学习6-tensorflow
- SLF4J日志框架问答
- CentOS安装配置sublime Text2
- 第七章:Java_集合
- Executor框架
- [POJ]1061 - 青蛙的约会 [扩展欧几里得]