存储器的容量、速度与价格之间的要求是相互矛盾的,速度越快,没bit位价格越高,容量越大,速度越慢,目前主存一般有DRAM构成。
处理器CPU访问存储器的指标:
存储系统的设计目标:针对典型应用,使访存时间最短,通过优化存储系统组织架构,进行多级分层:M1速度最快,容量最小;
size(容量):?Register << SRAM << DRA;
Latency(延迟时间): Register << SRAM << DRAM;
Bandwidth(带宽): on-chip >> off-chip
多级存储的目的是通过合理组织和层次化存储系统,提高计算机系统的 性能、效率和容量,以满足不同应用场景下的需求
策略(Strategy):使用小容量、高速存储器作为Cache,来降低平均访存延迟;
缓存(Cache):是一种减少访存延迟的机制,它基于经验观察,即处理器进行的 内存访问模式通常是高度可预测的。
存储器访问有两种可预测的模式:
如何正确有序访问共享存储系统:
Cache一致性的问题:多个处理器或核心之间共享数据时,由于Cache的存在,可能导致不同处理器对同一块内存数据的缓存内容不一致的情况。
Cache一致性协议的关键在于:跟踪共享数据块的状态。
跟踪共享数据块状态的cache协议有两种:
MSI(Modified/Shared/Invalid)协议有三种状态:Modified:只有该数据块的备份是最新的,主存和其他处理器中的数据是陈旧的; Shared:该数据块在此处理器中未被修改过,主存中的内容是最新的;Invalid:该数据块是无效块。
基于监听的Cache一致性局限性:
基于目录的Cache一致性:
MSI目录协议:
Cache状态:Modified(M)/ Shared(S)/ Invalid(I)
目录状态:Uncached(Un):所有处理器核心都没有数据副本;Shared(Sh):一个或多个处理器核具有读权限(S);Exclusive(Ex):只有一个处理器核具有读和写权限(M);
顺序一致性(Sequential Consistency) : 该模型要求所有处理器的读、写和交换(swap)操作以某种序执行所形成的全局存储器次序,符合各处理器的原有程序次序。
即, 不论指令流如何交叠执行,全局序必须保持所有进程的程序:所有读写操作执行以某种顺序执行;每一个处理器看到的操作顺序是相同的。
完全存储定序模型(Total Store Order(TSO)):
完全存储定序模型规则:
Level of Parallelism并行级别:
如何使CPI<1,有两种基本方法:: Superscalar 、VLIW;
Superscalar:
Very Long Instruction Words (VLIW):
多线程策略:保证一条流水线上的指令之间不存在数据依赖关系。
一种办法: 在相同的流水线中交叉执行来自不同线程的指令。
同步多线程 (Simultaneous Multithreading (SMT)):SMT 使用Oo0 Superscalar细粒度控制技术在相同时钟周期运行多个线程的指令,以更好的利用系统资源;
Alpha AXP 21464;Intel Pentium 4,Intel Nehalem i7 [超线程(Hyper-Threading)](Intel的超线程一直都是SMT2,一个物理核虚拟出两个逻辑核);IBM Power5。
评估指标 (算力指标)
Flop:浮点运算,通常为双精度;
Flop/s(Flops):每秒浮点运算次数;
Flops=【CPU核数】*【单核主频】*【CPU单个周期浮点计算能力】;
以Intel Xeon 6348 CPU为例;
28核,主频2.6GHz,支持AVX512指令集,且FMA系数=2;
CPU单周期单精度浮点计算能力=2(FMA数量)*2(同时加法和乘法)*512/32=64;
CPU单周期双精度浮点计算能力=2(FMA数量)*2(同时加法和乘法)*512/64=32;
6348的单精度算力=28x2.6x64=4659Gflops=4.6Tflops;
6348的双精度算力=28x2.6x32=2329Gflops=2.3Tflops。
向量处理器具有更高层次的操作,一条向量指令可以同时处理N个或N 对操作数(处理对象是向量);
向量处理器的基本特性:
向量处理器单元结构:采用多流水线lane设计,lane:包含向量寄存器堆的一部分和来自每个向量功能单元的一个执行流水线。
GPU计算系统
CPU+GPU异构体系结构:推动异构计算的发展;针对每个任务选择合适的处理器和存储器;
通用CPU 适合执行一些串行的线程:串行执行快;带有cache,访问存储器延时低;
GPU适合执行大量并行线程:可扩展的并行执行;高带宽的并行存取。
(领域专用体系结构)加速器
加速器是面向特定领域、针对有限算法定制设计的专用计算架构其目的是提升特定计算的性能或减少功耗需求,可分为:机器学习加速器;图计算加速器;同态加密加速器。
微码技术并不会被淘汰:
超长指令字VLIW定义:
VLIW: Very Long Instruction Word