一、引言
在不关注具体过程的情况下完成更多的重要操作,这种方法促进了文明的进步。
这句话是Patterson老爷子在他的书——《计算机组成与设计:硬件软件接口》(第五版)第一章最开头引用的一句话,它的确很符合我们现在的信息技术,我们很多人并不需要关注技术的原理是什么,仅仅会用就可以进行创造了。但是技术原理的世界其实也很酷,欢迎来到计算机的世界!
这第一篇博客的引言就算是本系列总的引言叭,以此作为开篇其实过于宏大,我所能做的仅仅是将我想到的零碎知识记录下来罢了,受个人水平所限,文章难免存在谬误,欢迎读者批评指正。【作者邮箱:3143935826@qq.com(这里稍微吐槽一下,总听人嘲讽使用QQ邮箱,但是架不住这个真能看见,或许我需要养成定期查看邮件的习惯,如果有比较推荐的邮箱欢迎告诉我)】
二、计算机系统层次结构
计算机系统包括两个部分软件系统和硬件系统,其中软件系统又包括系统软件和应用软件,在计算机组成原理这一个领域中我们更关注的是硬件系统。接下来我们会重点介绍计算机的硬件层次:
- 主机
- CPU(中央处理器)
- 运算器:CPU的核心,其核心是ALU(算术逻辑单元),包括通用寄存器、程序状态寄存器(标志寄存器,PSW)
- 控制器:包括程序计数器(PC)、指令寄存器(IR)和控制单元(CU)
- Cache(高速缓存)
- MAR、MDR:即存储器地址寄存器和存储器数据寄存器,属于存储器的一部分,但在现代计算机中存在CPU当中
- 主存(内存):按地址存取,即按照存储单元的地址进行存取
- CPU(中央处理器)
- 外设
- 辅存(外存)
- 输入设备
- 输出设备
其中,主存和辅存共同构成存储器结构;PC存放当前将要执行指令的地址(即下一条指令的地址),IR存放当前执行指令的地址。
接下来介绍几个概念
- 软件和硬件的逻辑功能等价性
某一个功能既可以由硬件实现,又可以由软件实现,对于用户而言,它们是等价的。这一等价性被称为软/硬件逻辑功能的等价性,通常而言硬件和软件的实现方法在功能上是完全一致的,区别仅在于执行时间的长短,显而易见的硬件实现的性能优于软件。
【题外话】请允许我偶尔以这样的方式插入一些感慨,这里让我再一次想到从开始学计算机就听到老师们常说的一个词——Trade-off,即权衡成本和性能,这是任何设计都需要考虑的事情。没有一个完美的设计,也没有一个绝对正确的设计,这真是为难我这个有些完美主义的人,我们所做的就是在权衡现有资源的情况下做出局部最优的设计,无论是算法还是计算机系统都是如此。
几种翻译程序
汇编器 将汇编语言程序翻译成机器语言程序
解释器 将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行
编译器 将高级语言程序翻译成汇编语言或机器语言程序
ISA(Introductions Set Architecture,指令集体系结构)
硬件和软件功能界面,定义计算机可以执行的所有指令的集合,属于软件可见部分。
- 从源程序到可执行文件

三、计算机的性能指标【本章重点】
1.机器字长
简称字长,是指计算机进行一次定点整数运算所能处理的二进制数据的位数,与CPU的寄存器位数、ALU有关。
机器字长、存储字长以及指令字长
- 机器字长:CPU内部用于整数运算的数据通路的宽度
- 存储字长:存储单元包括若干存储元件,每个存储元件存储一位二进制代码(“0”或”1“),也就是说,每个存储单元可以存储一串二进制代码,即存储字。存储字的位数就是存储字长,通常情况下MDR的位数等于存储字长。
- 指令字长:一个指令字中包含的二进制代码的位数,通常是存储字长的整数倍;取指令所需要的访存周期=指令字长/存储字长。
2.主存容量
即,存储单元个数与字长之积,其中存储单元个数是MAR的位数、字长是MDR的位数。
单位换算
3.运算速度
吞吐量 系统在单位时间内处理请求的数量,主要取决于主存的存取周期。
响应时间 从用户向计算机发送一个请求,到系统对该请求做出相应并获得所需结果的等待时间;包括CPU时间与等待时间(各种除CPU执行程序之外的开销)。
CPU时钟周期 CPU工作的最小时间单位,即机器内部主时钟脉冲信号的宽度。
主频(CPU时钟频率) CPU时钟周期的倒数;对于同一型号的主机,主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。
【问题】主频高的CPU比主频低的CPU快?
衡量CPU运算速度的指标有很多,不能仅仅通过单独的某一个指标来判断CPU的好坏!
同时我们解释一下基准程序,并不是说基准程序执行得越快就说明机器性能越好,一般情况下基准程序是可以反映机器性能的,但是由于基准程序的语句存在频度差异,因此我们不能仅仅以基准程序来判断机器的性能。举个例子,基准程序是我们的考试,考试的分数能够在一定程度上说明问题,但是我们不能唯分数论。
CPI(Cycle Per Instruction) 执行一条指令所需要的时钟周期数。
CPU执行时间
IPS(Instructions Per Second) 每秒执行指令条数,$IPS=主频/CPI$。
MIPS(Million Instructions Per Second) 每秒执行百万指令条数;

4.基准程序
Benchmark,专门用来进行性能评价的一组程序,反应机器在运行实际负载时的性能,缺陷是基准程序的性能通常会与一小段短代码密切相关,硬件系统设计人员或编译器开发者可能会优化对于这一特定代码的执行从而影响性能评价。
四、补充概念
兼容 是指软件或硬件的通用性,即运行在某个型号的计算机系统中的软/硬件也能应用于另一个型号的计算机系统时,称这两台计算机在硬件或软件上存在兼容性。
【题外话】不得不吐槽这里奇怪的术语:向前兼容、向后兼容
参考:什么是向前兼容、向后兼容、不同版本之间的兼容、标准和规范、数据共享兼容?_向前兼容和向后兼容的概念和区别-CSDN博客
向前兼容 又称向上兼容,是指用新版本程序创建的文档可以被计算机中的旧版本的程序使用。例如Office 2003可以载入Office 2007创建的文档。向前兼容 - 维基百科,自由的百科全书 (wikipedia.org)
向后兼容 又称向后兼容(backward compatibility)、回溯兼容,在计算机中指在一个程序、库或硬件更新到较新版本后,用旧版本程序创建的文档或系统仍能被正常操作或使用(包括输入数据)、在旧版本库的基础上开发的程序仍能正常编译运行,或较旧版的硬件仍可在新版使用的情况。向下兼容 - 维基百科,自由的百科全书 (wikipedia.org)