第一章 - 计算机设计的基本原理
简介部分告诉我们,本书的主要内容是线程级并行(TLP)或者数据级并行(DLP)。
计算机可以大致分类为嵌入式计算机,桌面计算机。嵌入式应用的性能具有实时性,即每个程序段有一个确定的最大执行时间,并且还具有最小化储存器需求和最小化功耗需求的特性。
=============================================
指令集系统结构(ISA,instruction set architecture)是指码农可见的指令系统,相当于硬件和软件的交界面。“ISA定义了一台计算机可以执行的所有指令的集合*,每条指令规定了计算机执行什么操作,指令集体系结构是指软件能够感知到的部分,也称软件可见部分”(摘自百度百科)我觉得还是一种比较通俗易懂的解释。
1.ISA分类:几乎所有的ISA都被归类为通用的寄存器系统结构,其操作数或是寄存器或是储存器地址。80x86是register-memory式的ISA,可以通过多种指令访问存储器。MIPS是load-store式的ISA,只能通过装在和存储指令访问存储器。
关于存储器和寄存器的区别:
根据我的理解
寄存器是CPU内部用来暂时存放数据的一小块地方
在百度知道里看到一句话说“寄存器是CPU里的存储单元,与CPU离得近,所以CPU在运算时通常都会用寄存器当中转站”
而存储器是CPU外部的存储器,分为RAM和ROM。
2.存储器寻址:所有桌面计算机和服务器都使用字节形式访问储存器中的操作数。一部分系统结构要求对象必须对齐
3.寻址方式:除了特殊的寄存器的值为常量的操作数之外,寻址方式需要明确的说明操作数的地址。
4.操作数的类型和大小,MIPS和80x86支持8为ASCII码,15位Unicode码,32位int或字,64位长整型或者双字。还有32位单精度和64位双精度的浮点数。80x86还支持80位浮点数。
5.操作指令:一般分为数据传输指令,算数逻辑运算指令,控制指令以及浮点数操作指令。
6.控制流指令:所有ISA都支持条件转移指令,无条件跳转指令,程序调用和返回指令。80x86和MIPS都是用相对PC寄存器的寻址,即讲指令的地址码与PC寄存器内容相加后形成转移地址。
7.ISA的编码:有固定长度和可变长度的两种编码选择。
MIPS的所有指令都是32位长度,这样可以简化指令的译码。
80x86是可变长度,范围从1到18,这样可以只占用更小的空间,这样的话80x86编译的程序一般比MIPS的要更小。
=============================================
系统结构包含了计算机设计的所有三个方面:指令集系统结构,组成和硬件
带宽或吞吐量指的是在给定时间内完成的工作总量。
时延或响应时间指的是从事件开始到完成所需要的时间。
书中的这张图显示了现如今带宽的提高速度明显快于时延的提高速度
=============================================
对于CMOS芯片来说,能耗主要来自开关晶体管。
晶体管的动态功率(瓦特):
与电容性负载,电压的平方和开关频率的乘积成正比
电池寿命-能量(焦耳):
与电容性负载,电压的平方成正比。
可以看出:通过降低电压能够有效的减少动态功率和能耗。
晶体管在停止工作时仍会有泄漏电流,所以静态功率也是要考量的一个问题
静态功率:
与泄漏电流和电压的乘积成正比。
=============================================
集成电路的成本分析:
(晶片成本+晶片测试成本+封装成本) / 最终成品数目
晶片成本:
晶圆成本/(每片晶圆上的晶片数量x晶片的成品率)
每片晶圆上的晶片数量:
通过第一项晶圆面积和晶片面积之比,经过第二项队边缘附近的数目修正。(周长/晶片的对角线长度 近似为晶圆边缘处晶片数量
关于晶圆和晶片的关系,我百度了一下:
=============================================
可靠性:
这个部分我参考了CSDN的文章:https://blog.csdn.net/kezhong_wxl/article/details/77622311
由于我一开始这部分看的中文,就存在很多错误的理解。
可靠性度量的两种角度:
模块可靠性
平均故障时间(MTTF)【MTTF的倒数是故障率(FIT)
平均修复时间(MTTR) Mean Time To Repair这边不看英文容易误解
平均无故障时间(MTBF) Mean Time Between Falure 平均故障时间和平均修复时间相加
模块可用性
“the alternation between the two states of accomplishmentand interruption”
??????????????????????
这里是我不太理解的,按照书上的意思是说MTBF = MTTR + MTTF;
但是网上也有说法说MTBF用于可维修系统,MTTF用于不可维修系统,也有资料使用MTBF/(MTBF+MTTR)来计算?
问题的解决:
因为一开始对中文翻译“平均故障时间”的误解
在后来找到百度文库的一篇资料https://wenku.baidu.com/view/b11601e8f71fb7360b4c2e3f5727a5e9856a27bf.html
MTBF翻译成平均失效间隔 --从上一次故障维修结束到这一次故障发生
MTTF翻译成平均无故障时间
??????????????????????
冗余是应对故障的主要方法,有时间冗余和资源冗余。书里的例子是磁盘子系统配置一个备份电源。
=============================================
计算机设计的量化原则:
采用并行性: