Cache是什么 CPU和GPU对于cache的应用

处理器/DSP

892人已加入

描述

  Cache是什么

  基本概念

  在计算机存储系统的层次结构中,介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。

  某些机器甚至有二级三级缓存,每级缓存比前一级缓存速度慢且容量大。

  

  组成结构

  高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。

  主要由三大部分组成:

  Cache存储体:存放由主存调入的指令与数据块。

  地址转换部件:建立目录表以实现主存地址到缓存地址的转换。

  替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。

近年来,GPU广泛应用与高性能领域,其通用计算能力也得到了进一步的利用。与传统的CPU相比,GPU在处理能力和储存器带宽上有着明显的优势,在成本和功耗上也不需要付出太大的代价。

在当前主流的CPU+GPU架构中,CPU和GPU一般经过北桥芯片相互连接,各自有各自的外部储存器,分别为内存和显存。在这种混合架构中CPU负责逻辑性较强的事物运算,而GPU主要负责计算密集度较高的部分。其设计目的的不同导致了设计时的架构的不同。而这些架构的不同也最终影响了他们的性能。

CPU为何需要大量cache?

对于单个的CPU核心通常在一个时刻只能运行一个线程的指令,其多线程机制也是在软件层次上的并行。当一个线程中断,或等待某些资源的时候,操作系统需要进行一个上下文转换,这通常会带来巨大的开销。因此需要大量的cache来过滤过多内存的访问,减少访存的延迟,提升CPU的响应速度。而为了缓存的一致性,还需要复杂的替换机制,需要复杂的逻辑控制单元。

另一方面,为了提升单核指令级的并行,现代的CPU中使用了超标量、超流水、超长指令字。这些方式的运行也需要借助复杂的分支预测机制和大量的cache。

GPU为何不需要大量cache?

在GPU中没有复杂的缓存体系和替换机制,其cache都是只读的,因此不用考虑cache一致性问题。GPU缓存的主要作用是过滤对存储器控制器的请求,减少对显存的访问,从而解决显存带宽。

GPU不需要大量的cache,另一个重要的原因是GPU处理大量的并行任务。其大量的block和同一个block的大量thread保证了GPU可以实现零开销的线程切换。当一个线程因等待资源而中断的时候就转到另一个已经就绪线程去执行,在这里线程切换反而成了一件好事。能通过计算来隐藏延迟。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分