【系统分析师之路】第十二章 计算机组成原理与体系结构记忆敲出

【系统分析师之路】第十二章 计算机组成原理与体系结构记忆敲出

一. Flynn分类方法

Flynn分类方法是按照指令流和数据流对计算机进行了一个大致的分类。指令对应控制部件,数据对应CPU数量

1)单指令流单数据流

这种情况一般是在早期的PC中,奔腾,X86的时代,那个时代CPU都只有一个,现在估计只有在嵌入式系统中还会使用单指令流单数据流的CPU了。

2)单指令流多数据流

单个控制部件多个CPU处理。阵列处理器就是一个典型的应用。

3)多指令流单数据流

这种情况是不存在的,只有理论上存在的可能。

4)多指令流多数据流

目前应用最为广泛。能够实现作业,任务,指令等各级全面并行
第一条和第四条很好记也不会搞错,而第二条和第三条只要记住多指令单数据是理想化的模型,一般不存在就可以了;而单指令多数据流一般使用在阵列,并行处理和超级标量处理器中。多个处理器以异步的方式运行同一条指令

二. CISC和RISC

RISC是精简指令集,CISC是复杂指令集。在精简指令集中的指令,都是经过筛选并且长度都是一致的,而且使用的频率也很高,所以调用起来效率高;
CISC和SISC是相反的,复杂指令集中指令的数目繁多,长短不一,使用频率差别较大;
精简指令集为了达到精简的目的,比如不会把乘法指令放入自己的指令集,而使用多个加法指令来实现乘法操作,这个时候就可以把乘法指令给精简了。精简指令集的活用也可以看作是局部性原理的活用。把不常用的复杂指令除去后形成了精简指令,精简指令的高效率当然也离不开寄存器。再精简指令中再把经常用到的指令放入寄存器,这样对于指令的执行将会迅速的提升。寄存器的活用也用到了局部性的原理。
CISC是计算机还没大规模发展之前的使用使用的指令集。那个时候计算机以及指令系统都是定制的,根据特定的应用场景设计出特定的指令集。所以用户不同,所支持的指令也就不同,当计算机逐渐由特定领域使用变得需要通用使用的时候,对于指令集的共同化和优化的需求就出来了。
还有需要补充的一点就是精简指令集支持寻址方式少,因为有优化编译的存在,所以可以更好的支持高级语言。

三. 存储系统层级结构

精简指令中用到了局部性原理,同样在多层的存储系统中也用到了局部性原理。存储系统可以分为:寄存器,缓存,内存和外存四个层次,寄存器速度最快但价格最高,外存一般容量最大,价格也是最为便宜的,既然寄存器速度最快,只要把外存内存空间都放在高速寄存器和高速缓存中不就可以了吗?事实上寄存器价格昂贵,考虑到性价比采有了存储的层次结构,才有了局部性原理。
在四层的存储结构中,第二层的缓存不是必须的。
还有一个虚拟存储器。它用在主存-外存之间,使用模拟外存的内存来扩大内存空间,也可以和局部性原理搭上边,但是现在虚拟存储器好像已经不怎么提到了,因为现在内存容量已经BT一般的得到了提升,且增加Cache的容量和命中算法可以很好的解决性能的瓶颈。

四. 局部性原理

存储系统的局部性原理包括了时间局部性和空间局部性两个方面。时间局部性就是刚刚访问的内存地址可能在不久的将来会再被导入使用;而空间独立性是指当程序访问某一个空间之后立即访问他邻近的空间的概率很大。
根据局部性原理,我们把那些最为频繁使用的数据放在价格最昂贵速度最快的寄存器或者Cache中,那么执行效率将会显著地提高。
工作集原理是需要频繁访问的页面集合,把它放入高速度内存后一般不需要被替换出去,这样就可以提高速度了。工作集原理类似于RISC精简指令集,把常用的指令从复杂指令集中抽出来放在一起,形成精简指令集。

五. Cache技术

Cache中有一种按内容存储,在存取的时候考虑了内容,不同的内容存在不同的分区,所以它的速度效率远高于按地址的存储器。这种方式也叫做相联存储器。
在Cache中还有一个命中率(失效率)的概念,需要访问的数据正好就在Cache中即为命中,此时可以享受Cache较快的速度;当不命中时也就是失效时只能回到主存去找了,所以命中率越高,读取速度就越快;命中率越高,使用Cache达到加速的加速比就越大,一般使用Cache和不使用Cache速度相差20倍。

六. 流水线技术

说到流水线,其实理论上也是可以应用在软件领域的,比如我们可以在团队中设置三个角色:开发专员,测试专员,文档确认验收专员。(实际情况是不可能应用的,因为开发不是流水线作业,人也不是机器)
开发专员只做开发,开发好的成果给测试专员测试;测试专员测试好了以后再把成果物给确认验收专员;文档确认验收专员在验收通过以后,提交成果物到产品库。当我们对应的任务有10多个的时候,一个需求不会等到开发测试确认完以后再做下一个需求,而是多个开发再对应完需求01以后,马上对应需求02,以此类推。这就是流水线技术在软件领域的应用。
按照这个理论,开发专员也好测试专员也好,就像流水线上的一个兵,不断的加工要件,完成后给下一个人。
当然这里只是一个比喻,软件开发往往很少有重复性机械性的工作,所以流水线很难在软件项目管理领域得到广泛的使用。
但有一个思想是通用的,就是让流水线上的每个部件(或资源)较少地空闲下来,这就和进度管理中资源平滑的概念有类似之处。
接下来说说什么叫流水线周期,比如开发一个要件开发需要用5天,测试3天,确认2天,那么流水线周期就是5天。它取的是最长的节点作为一个周期。
流水线的加速比这个也比较容易理解,不使用流水线的时间除以使用流水线的时间便可以得到加速比。
流水线的吞吐率:就是在这个三人团队中,10条指令除以使用流水线完成10条指令的时间。假设采用流水线完成10条指令耗时50,不采用流水线100,那么采用流水线吞吐率为0.2,不采用流水线吞吐率仅仅为0.1。由此可见流水线技术对于吞吐率的提升。
流水线最大的吞吐率就是1除以deta t。流水线计算公式为1条指令执行时间+(指令条数-1)*流水线周期
简单来说一个需求的开发,测试,确认所有时间之和+(要件总数-1)*流水线周期(开发专员所需要的时间)就是流水线时间。
超标量流水线:到这里已经不把开发测试专员当人看了,把他们一个人当多个人用,无限地压榨他们的剩余价值。比如在4标量流水线的情况下做40个同样大小的要件,这个时候一个人当四个人来用,所以可以理解为只做10个要件了。

七. 主存-缓存之间的三种地址映象方式

地址映像是某个地址在内存中,在缓存中的地址,以及它们之间的对应映射关系。地址映像一般分为三种方式:包括全相联映像,组相联映像,直接相联映像。地址映像技术一般在操作系统的存储管理中会涉及到。还有主存单元到Cache单元的地址转换由硬件来完成。

1)直接相联映像

比如Cache中我们把存储空间分为四块,分别是0~3号地址空间。那么在做地址映像时必须4个空间同时换入换出。这种方式类似于赤壁之战中庞统献计曹操的连环船计,把整块整块的替换。
优点:地址映象方式简单,访问速度快
缺点:命中率不高(冲突率高),所以需要经常的换入换出来保证命中率

2)全相联映像

主存任意的一块对应Cache中的任意一块。
优点:命中率高,Cache存储空间利用率高
缺点:一般很少使用,因为成本高,每次替换都要逐个比较所有的"船",不像直接相联可以整体换入换出,所以算法速度低

3)组相联映象

综合了直接相联和全相联映像各自的优点,是一个折衷的方案。
个人感觉:直接相联,组相联,全相联很像操作系统中段式存储,页式存储和段页式存储之间的关系。

八. 浮点数操作

表示方式:尾数*10的阶码次方;那么尾数越多,表示的浮点数的精度就越精;阶码越大,表示的浮点数范围也越大。
对阶是指将两个进行运算的浮点数的阶码对齐的操作。对阶的目的是为使两个浮点数的尾数能够进行加减运算。
对阶的原则是小阶对大阶。只有完成了对阶以后才可以尾数加减计算。计算完以后为什么更加好的表示浮点数,我们还要对结果实施格式化操作。
在计算机性能评价中有MIPS和MFLOPS两种方式,MIPS是每秒处理百万级的机器指令数,MFLOPS则是每秒百万个浮点数操作。

九. 外存–磁盘的存储结构与读取时间计算

计算机系统中外存有很多种,早期的软盘,USB盘,机械硬盘都属于外盘。
其中1.44英寸得软盘,硬盘都采用了磁盘盘片得结构来保存数据,所以可以看成是一个个的圆型盘片,
而磁道就是每个盘片中的一个个同心圆,扇区就是磁道同心圆上再均等分以后的一块块小的存储空间。
寻道时间就是在原形盘片中寻找到要读的盘片以及盘片上同心圆的时间;
等待时间也叫做旋转延迟时间,它由旋转定位时间和延迟时间组成。磁头已经定位到了特定的磁道,但是需要旋转以便找到在磁道某个扇区中我们所需要的信息。

十. 校验码

校验码说白了就是在原本信息的基础上,增加冗余信息,来保证信息完整性。增加的冗余信息可以用来验证是否有错误,也可以用来纠正错误,这取决于冗余信息的数量。
比如我们传输A和B两个数据。用11表示A用00表示B,并且约定01和10是不合法的数据,如果收到不合法的数据的时候,就说明信息在传输过程中实现了丢失。
如果用111代表A,000代表B,如果收到101的话,就可以纠正为111,这说明当使用2bit来传输A和B的时候只能检错,当使用3bit来传输A和B的时候,除了检错还可以进行纠错了。
奇校验是在一串二进制的数据中,确认有几个1,如果奇数个1,最后一位补0;如果偶数个1,最后一位补1;收到数据后先对奇偶判段,来确认真假。偶数校验与奇校验的原理是一样的。
海明码校验是把冗余位存放在2的N次方的地址,其余的地址用来放置信息位。

十一. Cache页面淘汰算法

因为缓存容量很小,所以对载入缓存的内容需要进行筛选和淘汰。需要依赖的算法有:先进先出(最简单的算法),最近最早使用(运用了局部性原理),LFU(根据统计数据来淘汰原理),有了这些算法的保证,才可以让Cache的价值和局部性原理得到最大的发挥。页面淘汰算法和操作系统的内存管理的内容是有重叠的。

十二. Cache的读写方法与读写策略

一共有三种方法:写直达,写回,标记法;

1)写直达

写直达就是同时更新高速缓存和较为慢速的内存,这种方法效率不高;

2)写回

而写回就是只要更新的数据在缓存,就只更新缓存,直到该内容置换出Cache;

3)标记法

最后一种是标记法,只更新内存并同时更新标志位,这样只要命中该地址时就更新进入缓存。

十三. 主存的编址计算

主存是由若干芯片拼凑而成的。既可以横着拼也可以竖着拼,它们所组成的内存的面积是一样的。在计算的时候要明白的是2的10次方为1K;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值