@HUST张友东 work@taobao zyd_com@126.com
分类:
2010-01-14 10:22:04
最近要考计算机系统结构,昨天晚上把高教出版社的《计算机体系结构》扫描了一边,蛮不错的一本书,很多地方都还没有弄懂,不过很多知识真的很有用,把比较重要的一些东西记录了一下。
SPEC(标准性能评价组织) 测试基准程序
1. SPECint :测试CPU整型数据处理能力;
2. SPECfp :的是CPU浮点数据处理能力;
3. SPECviewperf : 测试图形图形库支持OpenGL库的性能;
4. SPECapc : 测试图形密集型应用的性能;
5. SPECSFS :基于NFS文件系统的文件服务器测试程序;
6. SPECWeb :Web服务器测试程序;
事务处理(Transaction Processing)测试基准程序
1. TPC-C : 模拟一个复杂的对立,测试服务系统事务处理能力;
2. TPC-H :一个特别的决策支持模型,其队列执行时间特别长;
3. TPC-R :模拟面向一组标准队列的商业决策支持系统,设计DBMS的优化;
4. TPC-W :基于Web的商业事务处理活动;
性能设计和评测的基本原则
1. 大概率事件有限原则;
2. Amdahl定律(加速比);
3. 程序局部性原理(事件局部性,空间局部性);
CPU性能
1) 时钟频率:反映了计算机实现技术,生产工艺和计算机组织;
2) CPI:反映了计算机实现技术,计算机指令集的结构和计算机组织;
3) IC(指令数):反映了计算机指令集的结构和编译技术;
并行性
并行性是指在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作。
计算机系统中并行性的等级
1. 指令内部并行;
2. 指令集并行;
3. 线程级并行;
4. 任务级或过程级并行;
5. 作业或程序级并行;
从处理数据的角度,并行等级从低到高分为
1. 字串位串;
2. 字串位并;
3. 字并位串;
4. 全并行;
提高并行性的途径
1. 时间重叠;(流水线技术)
2. 资源重复;(超标量技术)
3. 资源共享;
指令并行技术(ILP)
1. 流水线技术
2. 多发射(超标量)
ILP的障碍:
1. 数据相关
2. 控制相关
3. 部件冲突
存储层次
1. cache-主存层次:解决主存速度不够快的问题,主要由硬件实现;几比一;
2. 主存-辅存层次:解决主存容量不够大的问题,主要由软件实现;几万比一;
存储层次(cache-主存)的四个问题
1. 映射规则:当把一个块调入到高一层(靠近CPU)存储器时,可以放到哪些位置;
2. 查找算法:当所要访问的块在高一层存储器中,如何找到该块;
3. 替换算法:当发生失效时,且cache已满,应替换哪一块;
4. 写策略:当进行写访问时,应进行哪些操作;
映射规则
1. 全相联映射;
2. 直接相联映射;
3. 组相联映射;
路数越大发生冲突的概率越低,通常计算机系统使用直接映射,2或4路组相联映射方法;
查找算法
1. 为cache项建立目录表,查找目录表,逐个对比标识(块编号);
2. 路数越大,查找的复杂度越高;
替换算法
1. 随机法;(简单,易于硬件实现)
2. 先进先出法;(
3. 最近最少使用法(LRU);(较好地反映程序局部性原理)
1,3两种方法应易实现和效率高被广泛采用;
写策略
1. 写直达法:写到cache,并写到下一级存储器(主存);简单易实现;
2. 写回法:只把信息写到cache,该块被替换时再写到主存;速度快,存在不一致性;
读优化:在读出标识进行比较的同时,把相应的块读出。如果命中,立即将该块送到CPU;如果失效,则读出的块没有作用,置之不理即可;
cache性能分析
平均访存时间 = 命中时间 + 失效率 * 失效开销
= (命中时间 + 失效开销)* 失效率 + 命中时间 *(1 – 失效率);
CPU时间(执行一个程序) = (CPU执行周期数 + 存储器停顿周期数)* 时钟周期时间;
改进cache性能(根据平均访存时间计算公式的因素)
1. 降低失效率;
2. 减少失效开销;
3. 减少cache命中时间;
降低cache失效率
1. 增加cache块大小;
2. 提高相联度;(增加了命中时间)
3. victim cache:在cache和它的下一级存储器的数据通路之间增设一个全相联的小cache,称为victim cache;(多级cache的思想)
4. 伪相联cache;
5. 硬件预取技术;
6. 由编译器控制的预取;
7. 编译器优化;(数组合并,内外循环交换,循环融合,分块)
减少cache失效开销
1. 让读失效优先于写;
2. 子块放置技术;
3. 请求字处理技术;
4. 非阻塞cache技术;
5. 采用两级cache
减少命中时间
1. 容量小,结构简单的cache;
2. 虚拟cache;
3. 写操作流水线;
主存技术
1. 增加存储器的宽度;
2. 采用简单的多体交叉存储器;
3. 独立存储体;
4. 避免存储体交叉;
5. DRAM专用交叉结构;
虚拟存储器技术
1. 映射规则:硬盘页到主存页的映射规则(全相联);
2. 查找算法:页表,段表;TLB;
3. 替换算法;
4. 写策略;
可靠性,可用性,可信性
可靠性:系统从初始状态开始一直提供服务的能力,通常用平均无故障时间MTTF来衡量;
可用性:系统正常工作时间在连续两次正常服务间隔时间中所占的比率;
可信性:服务的质量,记在多大程度上可以合理的认为是可靠的;
存储设备
磁带,光盘(库,塔),磁盘(阵列),FLASH,SRAM/DRAM
IO系统性能分析
1. 响应时间,吞吐率;
2. Little定律;
系统中的平均任务数 = 到达率 * 平均响应时间;
3. M/M/1排队系统;
4. M/M/m排队系统;
Flynn分类法
1. 单指令流单数据流;(SISD)
2. 单指令流多数据流;(SIMD)
3. 多指令流单数据流;(MISD)
4. 多指令流多数据流;(MIMD)
3种分布式系统架构
1. 集中共享存储器结构;(SMP, UMA)
2. 分布式共享存储器结构;
CPU与内存一起,物理分散,但存储器物理分散,逻辑上统一编址;
3. 分布式非共享存储器结构;(NUMA)
两种通信模型
1. 共享内存;
2. 消息传递(信号,管道,套接字等);
两种计算机模型
1. 指令驱动,程序由顺序的指令流构成;
2. 数据驱动,数据为中心,数据到达,驱动指令的执行;
两种应用模型
1. 多节点 + 弱节点;
2. 少节点 + 强节点;
第二种应用暂时占上风,因程序并行度差(有限的程序并行性和相对较高的通信开销);
chinaunix网友2010-01-18 16:48:08
谢谢楼主详细的解答;关于第一个问题另一个朋友说的是和操作系统的机制有关,意思和你说的差不多;第二个问题我在清华大学出版社的《计算机组成与系统结构》上面看到:SIMD是以同步的方式执行相同的指令,而希赛参考书上面说的相反:SIMD是以异步的方式执行相同的指令。
chinaunix网友2010-01-14 15:41:15
还有个问题就是:SIMD处理指令的时候到底是同步还是异步???两本参考书上完全相反,网上搜出的结果也不统一。我个人认为是同步的,望楼主释疑,谢谢啦
chinaunix网友2010-01-14 15:34:16
最近突然发现,有两种计算cpu访存时间的方法,一种考虑了访问cache失效时,访问cache的时间,一种没有考虑。例如,访问主存的时间为100ns,访问cache的时间为10ns,数据与指令存于同一cache,其cache平均命中率为90%,试计算平均访存时间。 一种是:10*90%+100*(1-90%)=19ns。 另一种是:10*90%+(1-90%)*(100+10)=20ns。考虑了失效时访问cache的时间。 那种正确??望楼主解答一下