计算机组成原理 第一章 计算机系统概述
第一章是计算机组成原理的一些入门知识,都是比较粗的概述性知识点。
1.1 计算机发展历程
计算机的发展经历了电子管-晶体管-中小规模集成电路-大规模集成电路四个时代。
电子计算机分为电子模拟计算机和电子数字计算机。数字计算机又可以按照用途分为专用计算机和通用计算机。通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机(我们使用的电脑都是微型机)。
计算机的发展向着两级分化:一极是微型计算机向着更微型化、网络化、高性能、多用途发展;另一极是巨型机向着更巨型化、超高速、并行处理、智能化发展。
1.2 计算机系统层次结构
计算机的软件系统和硬件系统共同组成了一个完整的计算机系统,二者缺一不可。若计算机中的功能既可以用软件实现又可以用硬件实现,称软件硬件在逻辑上是等效的。设计计算机系统时,如果一个功能使用较为频繁且用硬件实现的成本比较理想,则考虑用硬件,软件实现灵活性高但效率不如硬件实现。
冯诺依曼提出的冯诺依曼体系包括:
其中由于硬件设备的发展,第六条已经变为以存储器为中心的计算机结构。
计算机主要有五大部件:
①输入设备
将程序和数据以机器能识别和接受的信息形式输入计算机。即将外界信息输入计算机内部。
②输出设备
将计算机处理的结果以人们能接受的形式或系统要求的形式输出。即将计算机内部的信息输出到外界。
③存储器
存储器是计算机的存储部件,用于存放程序和数据。
存储器分为主存储器(内存储器)和辅助存储器(外存储器),其中主存储器是CPU可以直接访问的存储器,辅助存储器用于帮助主存储器存储更多信息,辅助存储器的信息调入内存后才可以被CPU访问。
主存储器由许多个存储单元组成,每个存储单元又包含若干个存储元件,每个存储元件存储一位二进制代码。相当于一个存储元件存储一串二进制代码。这个二进制代码就称为存储字,存储字的位数即存储字长。
主存储器的工作方式是根据存储单元的地址进行存取,称为按地址存取方式。
存储体存放二进制信息,地址寄存器(Memory Address Register)存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器(Memory Data Register)用于暂存要从存储器中读或写的信息,时序控制逻辑用于产生存储器操作所需的各种时序信号。
MAR用于寻址,其位数对应着存储单元的个数,相当于用MAR记录了内存中每个存储单元的位置,一个位置对应MAR里面的一个数,可以根据这个数找到唯一的一个地址,用这个地址去进行读取操作。
MDR的位数与存储字长相等,由于MDR里面暂存了要读写的数据,而读写的对象是一个存储单元,所以MDR的位数刚好等于存储单元的长度,即存储字长。
④运算器
运算器是计算机的执行部件,包括算术运算和逻辑运算。运算器的核心是算术逻辑单元ALU,其包括若干的寄存器,用于暂存中间结果和操作数,累加器、乘上寄存器、操作数寄存器是必须的。
⑤控制器
控制器是计算机的指挥中心,由程序计数器(Programme Counter)、指令寄存器(Instruction Register)和控制单元(Control Unit)组成。其中PC用于存放欲执行指令的地址,即下一条指令的地址,PC可以自动加一从而形成下一条指令的地址。IR用于存放当前的指令,其内容来自主存的MDR,相当于正在执行的指令。指令中的操作码送至CU,用来分析指令并发出命令序列,而地址码送至MAR用于取操作数。
一般控制器和运算器集成在一个芯片上,称为*处理器(Central Processing Unit),CPU和主存储器共同构成主机,而其余的硬件设备称为外部设备。
计算机的软件分为系统软件和应用软件。系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。应用软件是指用户为解决某个应用领域中的各类问题而编制的程序。
计算机有三个级别的语言。机器语言,也称二进制代码语言,是计算机可以唯一识别的语言(不要被其余概念迷惑,这里的唯一就是只有一个)。汇编语言,用英文单词或其缩写来代替二进制指令代码,使用汇编语言需要用汇编程序来翻译,将其转换为机器语言。高级语言,为了方便设计人员而编写的语言,一般需要经过编译程序变成汇编语言程序,再由汇编变为机器语言程序,也可以直接变为机器语言程序。
1.3 计算机的性能指标
计算机主要有以下的性能指标:
①机器字长
机器字长是指计算机进行一次整数运算所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。因此,机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节(8 位)的整数倍。
②数据通路带宽
数据通路带宽是指数据总线一次所能并行传送信息的位数。可以理解为传输过程的最大位数,这个带宽越大,能一次性传输的数据就越多。
③主存储量
主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数×宇长=来表示存储容量。其中,MAR 的位数反映存储单元的个数, MAR 的位数反映可寻址范围的最大值。
④运算速度
运算速度有以下几个指标:
a、吞吐量和响应时间
吞吐量指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存,CPU 能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。几乎每步都关系到主存,因此系统吞吐量主要取决于主存的存取周期。是用户角度评价计算系系统性能的综合参数。
响应时间指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。通常包括 CPU 时间 (运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问 、IO操作、操作系统开销等的时间)。
b、主频和CPU时钟周期
CPU 时钟周期通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要1个时钟周期。 ·
主频(CPU时钟频率)。机器内部主时钟的频率,是衡量机器速度的重要参数。 对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。
c、CPI(Clock cycle Per Instruction)即执行一条指令所需要的时钟周期数。
CPU的执行时间=CPU时钟周期数/主频=(指令条数X CPI)/主频
不难看出CPU的性能取决于主频、CPI和指令条数。这三者相互制约,例如,更改指令集可以减少程序所含指令的条数,但同时可能引起 CPU 结构的调整,从而可能会增加时钟周期的宽度(降低主频)。
d、
除此之外还有几个专业术语如下:
典型题
这类计算题的关键公式就是 CPU的执行时间=CPU时钟周期数/主频=(指令条数X CPI)/主频。MIPS指的是每秒执行多少百万条指令,所以需要利用主频和CPI来求出指令条数除以CPU执行时间。其中CPI按比例分配的方法很关键。