计算机概要与技术
计算机的分类
传统三类
个人计算机
PC(Personal Computer),用于个人使用的计算机,通常包含图形显示器、键盘和鼠标。
服务器
用于为多用户运行大型程序的计算机,通常由多个用户并行使用,一般通过网络访问。
嵌入式计算机
数量最多的一类计算机。嵌入到其它设备中的计算机,一般运行预定义的一个或一组程序。
后PC时代两类
个人移动设备
PMD(Personal Mobile Device),连接到网络上的小型无线设备。通过电池供电,通过下载APP的方式安装软件。只能手机和平板电脑时典型的PMD。
仓储规模计算机
WSC(Ware-house Scale Computer)。
计算机系统结构中的8个伟大思想
两个设计原则
面向摩尔定律的设计
摩尔定律指出单芯片上的集成度每18~24个月翻一番。
芯片设计者必须预测其设计完成时的工艺水平,而不是设计开始时的。
使用抽象简化设计
使用抽象来表示不同的设计层次,在高层次中看不到低层次的细节,只能看到一个简化的模型。
四个提高性能
加速大概率事件
加速大概率事件远比优化小概率事件更能提高性能。
Amdahl定律:
改进后的执行时间=受改进影响的执行时间/改进量+不受影响的执行时间
通过并行提高性能
例如,多核处理器
通过流水线提高性能
例如,工业流水线
通过预测提高性能
如果假定从误预测恢复执行代价不高并且预测的准确率相对较高,则通过猜测的方式提前开始某些操作,要比等到确切知道这些操作应该启动时才开始快一些。
存储器层次
第一级:Cache,采用SRAM(Static Random Access Memory,静态随机访问存储器)技术。
第二级:主存/内存,采用DRAM(Dynamic Random Access Memory,动态随机访问存储器)技术。
第三级:辅存,过去常用硬盘,逐渐被闪存替代。
SRAM,DRAM断电后数据很快消失,属于易失性存储器;硬盘和闪存断电后数据不丢失,属于非易失性存储器。
Cache位于CPU中,好处是:
1.物理距离近,和控制器以及运算器通信迅速。
2.只要Cache能把CPU即将要用的程序、数据从内存中复制过来,就能缓解速度矛盾。
通过冗余提高可靠性
由于任何一个物理器件都有可能失效,因此可以通过使用冗余部件的方式提高系统的可靠性。
例如,大卡车,通常具有双轮胎,即使一个轮胎出问题,另一个轮胎仍可以保证卡车正常行驶。
软硬件基础
编程语言
机器语言
以二进制元形式表示的机器指令。
指令,即计算机硬件能理解并服从的命令。
汇编语言
以助记符形式表示的机器指令。
高级语言
如C、C++、Java等可移植(不依赖某一机器)的语言。
使用高级语言的好处:
1.是程序员用更自然的语言思考
2.提高了程序员的生产率。简明性是高级语言相对汇编语言最为明显的优势。
3.提高了程序相对于计算机的独立性。编译程序和汇编程序可以把高级语言程序翻译成任何计算机的二进制元指令。
硬件基础
冯诺伊曼结构五大经典部件
控制器和运算器是组成CPU(Central processor unit,中央处理单元)的其中两部分。
输入设备
为计算机提供信息的装置,如麦克风。
输出设备
将计算机输出给用户或其它计算机装置,如扬声器。
无线网卡和触摸屏等设备属于即使输入设备又是输出设备。
存储器
内存:程序运行时的存储空间,同时还存储程序运行时所需的数据。
控制器
处理器中根据程序的指令指挥数据通路、存储器和I/O设备的部分。
运算器
也成为数据通路,是处理器中执行算数操作的部分。
指令集体系结构
ISA,Instruction Set Architecture。
CPU的ISA根本上不一样,可以执行的指令集合大不相同。
RISC
Reduced Instruction Set Computer,精简指令集计算机。
包含 Arm架构,MIPS架构。
CISC
Complex Instruction Set Computer,复杂指令集计算机。
包含X86架构。
性能
性能的定义
个人计算机更在意响应时间,也称执行时间,是计算机完成某任务所需的总时间,包括硬盘访问、内存访问、I/O活动、操作系统开销和CPU执行时间等。
数据中心更在意吞吐率,也叫带宽,表示单位时间内完成的任务数量。
经典的CPU性能公式
一个程序的CPU执行时间(CPUtime)=一个程序的CPU时钟周期数(Cycles)×时钟周期时间(T)
=一个程序的CPU时钟周期数/时钟频率(f,也称主频)
一个程序的CPU时钟周期数=程序的指令数(IC)× 每条指令的平均时钟周期数(CPI)
每条指令的平均时钟周期数=程序指令所需的始终周期数/程序的指令数
CPUtime=IC(Instruction Count)×CPI(Cycles Per Instruction)×T=IC×CPI/f
程序性能影响因素
IC(指令数目)
CPI(指令平均始终周期数)
f(时钟频率)
硬件或软件指标 | 影响因素 |
---|---|
算法、编程语言、编译程序 | IC、CPI |
ISA | IC、CPI、f |
MIPS
Million Instructions Per Second,百万指令每秒。
MIPS=IC/(CPUtime×106)=f/(CPI×106)
只考虑了主频和CPI两个指标,
功耗
CMOS(互补性金属氧化半导体)是当前占统治地位的集成电路技术。
其中晶体管的能耗主要来自动态能耗,即晶体管打开/关闭的动态过程。
一个晶体管经历一次1——0——1或0——1——0的开关过程:
能耗=负载电容×电压2
开关频率与CPU主频相关
功耗=1/2×负载电容×电压2×开关频率(一次开/关时间的倒数)
即P=1/2×CU2×f