深入理解体系结构概念
__DARK__
Only in darkness can you see the stars
展开
-
cache 中几个概念的理解
coherence:着重强调,某个数据的变化,在存储的各个位置的一致性,对于每个访问它的进程 数值相同。consistency强调的是,这段程序执行的先后顺序,在严格的模型下,顺序必须是固定的,否则会被认为出错; 相对的,也有宽松的模型,,inclusive:表达的是,上层存储的数据,完全包含于其下一级存储。举个例子,L1cache中的数据,L2都有non-inclusive与上边的相反,上层的数原创 2016-12-11 14:37:08 · 2872 阅读 · 0 评论 -
PTX ISA 之 volatile 的用法
字面意思挥发性的,不稳定的用法用于ld/st指令ld.volatile{.ss}.type d, [a]; // load from address ld.volatile{.ss}.vec.type d, [a]; // vector load from addrAn ld.volatile operation is always performed and it will not be r原创 2017-02-28 23:30:10 · 740 阅读 · 0 评论 -
L1 Data Cache in Nvidia
Nvidia 架构local dataglobal loadsglobal storefor L1 cachereference white paperFermicachingcachingcachingL1/shared memnot coherentKeplercachingNot cachingNot cachi原创 2017-03-07 20:11:56 · 425 阅读 · 0 评论 -
GPGPU-Sim 源码阅读笔记 之 cache option默认策略
code 片段//cuda-sim.cc line 855//in void ptx_instruction::pre_decode()... switch( m_cache_option ) { case CA_OPTION: cache_op = CACHE_ALL; break; case CG_OPTION: cache_op = CACHE_GLOBAL; break;原创 2017-01-12 23:18:55 · 705 阅读 · 0 评论 -
Memory Consistency Model 内存一致性模型
Memory Consistency Model 内存一致性模型Conception 概念内存一致性模型描述的是程序在执行过程中内存操作正确性的问题。内存操作包括读操作和写操作,每一操作又可以用两个时间点界定:发出(Invoke)和响应(Response)。在假定没有流水线的情况下(即单个处理器内指令的执行是按顺序执行的),设系统内共有N个处理器,每个处理器可发出 s_{n}_个内存操作(读或写原创 2017-01-09 13:42:40 · 1395 阅读 · 0 评论 -
产生cache coherence 问题的原因
出现不一致的原因有3个:共享可写的数据,进程迁移,I/O传输1.共享可写数据引起的不一致性(sharing of writable data)如图所示描述我们把核(core)简称P,把核的私有缓存简称C;图一,表示更新前的状态,P1,P2的私有cache C1 和 C2 中都有共享数据x,与shared memory 一致。图二,执行write through 的写回策略,当P1将C1中的数据x原创 2017-03-10 08:58:16 · 2262 阅读 · 0 评论 -
cache coherence 概念
引子 首先说一下一致性,现实中,由于沟通不好而导致的问题,比如,一方改变了某些东西,而没有及时通知另一方,导致两方的信息不同,这就是一致性问题。概念 多核处理器中也存在不一致的问题。 举个例子,比如内存中有个数据x,被缓存到不同的 私有cache 中,假如有两个核,core0 和 core1, 本来x=1,如果core0 将x 重新赋值为3的话,而core1还以为x=1,那么就会导致程序出错原创 2017-03-09 16:28:19 · 1730 阅读 · 0 评论 -
what is a data race?
什么是 data race?data race 发生的充分条件1.两个或者更多线程在一个程序中,并发的访问同一数据;2.至少一个访问是写操作;3.这些线程都不使用任何互斥锁来控制这些访问。#当上面这些条件发生时,访问的顺序是不确定的,并且基于这些不同的运行顺序会导致计算产生不同的结果(这些结果也是正确的)。一些data race 是良性的,但是更多的是会产生程序 的bug。https://docs原创 2017-02-15 14:46:54 · 1117 阅读 · 0 评论 -
便笺存储器(Scratchpad Memory)
概念SPM 是由 SRAM 存储部件 + 地址译码部件 + 数据输出电路 三个部分构成,使用片上高速总线 和 处理器 连接;一般 Cache 中 ,不仅有SRAM存储单元等三部分,通常还包含 TagRAM 部件 和 比较逻辑电路部件,所以相对SPM 访问延迟和能耗略高。特点SPM和主存统一编址, 具有和主存统一的不重叠的地址空间。不需要TagRAM部件就可以直接访问SPM中的数据。对比于Cache原创 2017-02-20 15:19:22 · 14913 阅读 · 1 评论 -
CPU访存机制理解
上图为已毕业使用毕业论文用图,引用一下缓存透明缓存对程序员是不可见的,当CPU发出访存请求的时候,在主存控制器中产生请求队列;然后主存控制器中调度器对请求进行调度;根据请求的内容不同可以分为命令,地址,和数据等。根据物理地址找到对应的bank,然后取出对应的某一行ROW,到Row Buffer 中,然后取出对应的某一列column,(到缓存中)然后CPU再访问。原创 2016-12-27 15:22:33 · 5259 阅读 · 0 评论 -
CACHE 逻辑架构和物理架构
1.逻辑架构32位地址2路组相连 当一个访问请求来时,即内存映射到缓存的地址,就是index位,先将内存位 的index部分索引到cache中的index,然后用tag部分相比较,然后得出是否命中的结论2.物理结构1)左侧为 TCAM ,主要存储tag array 的内容2)右侧为 SRAM ,主要存储data array 真实数据3. TCAM 原理 理解1)概念CAM是一种特殊的原创 2016-12-27 15:47:18 · 2879 阅读 · 0 评论 -
cache 写回策略
写回策略主要分两种: 写回(write back )和 写通(write through)1. write back只有在一个cache行被选中替换回主存时,如果cache 行的数据是修改过的(dirty),才将它写回主存。这种策略,要在Cache中设置一个脏位(dirty bit),用来表示缓存中的cache 行是否被修改过。如果 一个内存块在加载到Cache后未被修改过,Cache直接把该ca原创 2016-12-27 15:15:14 · 20454 阅读 · 8 评论 -
MSHR 理解
Miss Status Handling Registers 缺失状态保持寄存器 作用: keep track of outstanding misses 就是保存 misses 状态的轨迹信息的一个表Each MSHR contains enough state to handle one or more accesses of any type to single memory l原创 2016-12-27 15:17:35 · 2502 阅读 · 1 评论 -
GPU L1 data cache 特点
私有的,对于每个SM,no-blocking 非阻塞caching local & global memory access每个 SM 周期 可以处理 2个 access传入的内存请求,不能跨越 2 及以上的 cache lineL1D原创 2016-12-27 15:16:13 · 1840 阅读 · 0 评论 -
Nvidia GPU 的存储架构 发展
查阅了好多论文,以及英伟达的白皮书,最后终于搞明白了。。从Fermi 到Pascal,cache 的体系结构发生了变化;1. Fermi ![这里写图片描述](http://img.blog.csdn.net/20161219223508426?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFyazU2Njk=/font/5a6L原创 2016-12-19 14:48:42 · 3773 阅读 · 0 评论 -
解析GPU cache 中读写操作及其事件
基于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原创 2017-02-12 22:39:45 · 2814 阅读 · 0 评论