本篇总结了《计算机组成原理》第一章——计算机系统概述,主要内容如下
计算机系统分为硬件和软件
硬件即为计算机的物理组成,只有硬件的计算机称为裸机
软件分为系统软件和应用软件。
系统软件包括操作系统、数据库系统软件和网络软件等。
我们熟知的Windows、Mac OS、Android、IOS还有Linux都属于操作系统;数据库系统软件专门用于数据的组织和管理,网络软件则负责计算机的网络通信。
应用软件则是多种多样,游戏软件、影音播放软件、微信QQ等通信软件都属于应用软件。
首先明确计算机发展时代的划分是以电子元器件的发展为标准的。具体的年代不是掌握的重点。
四个阶段分别是电子管、晶体管、中小规模集成电路、大规模超大规模集成电路。
这里顺带提一下编程语言的发展历程,最初的编程语言是机器语言,机器语言是计算机可以直接处理的二进制代码,也就是01串,但是机器语言极其不便于人类的使用而且易出错、不便于纠错。
之后将机器语言中的一部分操作以注记符表示,形成了汇编语言,编写程序时,只要将汇编语言经过汇编变成机器语言即可被计算机处理,一定程度上方便了人类的使用,但是还是需要大量的记忆。
今天我们使用的C、Java等变成语言属于编程语言的第三个阶段——高级语言。高级语言相比汇编语言更加接近人类使用的自然语言,更加便于使用。计算机是不能直接识别和处理高级语言的,需要先将高级语言进行翻译,这里就涉及到编译型语言和解释型语言两个概念:
编译型语言,一次只能翻译一行,边翻译边执行
解释型语言,利用编译器将源程序编译成机器语言,然后整体执行。
但是无论是编译型语言还是解释型语言都需要将高级语言先转换成汇编语言(这个过程称为编译),然后将汇编语言翻译成机器语言(这个过程称为汇编)
就以目前最为流行的Java和Python举例
这一部分了解即可。
首先计算机分为电子模拟计算机和电子数字计算机,可以理解成电子模拟计算机处理的量是连续的模拟信号,而电子数字计算机处理的是离散的数字计算机。
计算机根据用途不同还可以分为通用计算机和专用计算机,专用机的效率、速度和经济性很高,而适应性则较差,通用机则相反。通用机又可以分为巨型机、大型机、中型机、小型机、微型机和单片机。
根据指令流和数据流的不同可以将计算机分为
计算机发展的趋势是“两极分化”的,一方面向更加多功能、更微型化、更高性能发展;另一方面向更巨型化更高速更定型处理更智能化的方向发展
要了解现代计算机的硬件组成,首先要了解冯诺依曼体系的计算机,
冯诺依曼体系的计算机有以下六大特点
现代计算机是根据冯诺依曼体系结构改进的以存储器为核心的计算机
由于运算器和控制器的逻辑关系和电路结构十分相似且联系紧密,所以在现代计算机的生产过程中将运算器和控制器集成在一起称为中央处理器(CPU);而CPU和主存储器就组成计算机的主机(这里的主机不是生活中理解的台式机的机箱)
存储体:存储器的存储介质,存放数据的地方
MAR:Memory Address Register 地址寄存器,存放访存地址的寄存器
MDR:Memory Data Register 数据寄存器,存放处理数据的寄存器
存储器在时序控制逻辑的控制下按照地址对内存中的存储单元进行读写
左图的一个这样的电路结构称为一个存储元,右图中一行由红线标识的存储元称为一个存储单元,在右图的存储器中,一个存储单元的长度为8个二进制位,8就是这个存储器的存储字长,而存储器中存放的10100011称为存储字
存储器容量=存储单元数量x存储字长
由于地址寄存器中存放的是二进制的串,要将其转换成主存中的地址就需要借助于译码器,一个n位的地址可以表示的存储单元由2n个,这也是为什么我们在日常生活中说Windows32位的系统最大支持4GB的内存,因为2^32就是4G,再大也访问不到。
还有一点需要注意的是,MAR和MDR在逻辑上属于存储系统,考虑到二者与CPU的频繁的数据交换,在物理实现时,二者是CPU封装在一起通过系统总线与主存进行通信。
还是先看结构
看起来是不是有点复杂?不慌,只要知道运算器中有乘数寄存器、累加器、和算逻单元;控制器包括控制单元、指令寄存器和程序计数器即可。
(PC)-> MAR //从程序计数器中拿到要执行的指令的地址,传给地址寄存器
M(MAR)->MDR //根据MAR的地址访问内存中的存储单元,取出指令传给数据寄存器,
(MDR)->IR //将MDR中的指令传给指令寄存器
//以上即根据指令地址拿到指令内容
OP(IR)->CU //取操作码发送给控制单元解析指令
Ad(IR)->MAR //取地址码发送给MAR
M(MAR)->MDR //根据MAR的地址访问内存中的存储单元,取出操作数传给数据寄存器,
(MDR)->ACC //将操作数发给ACC
以上就是一个取数指令完整的执行过程。所有的指令执行过程都包含三个阶段:取指阶段、解析指令、取数阶段,这三个阶段是依次执行的,计算机也是根据不同的阶段判断访存拿到的是指令还是数据的。
特别注意图中的M2层,也就是操作系统层,在这一层中,硬件和软件并没有绝对的划分而是混合存在的,操作系统中有一部分是机器指令,有一部分是操作系统定义的 软件指令
问,买一台电脑最关心什么?
答:1.空间大不大;2运行速度快不快?
以上两点分别对应了计算机的容量和速度,是衡量计算机性能指标的重要要素
存储器总容量=存储字长x存储单元数量 bit
机器字长计算机进行一次整数运算所能处理的二进制的位数
CPU时钟周期是CPU时钟频率(CPU主频)的倒数
CPI(Clock cycle Per Instruction):执行一条指令需要的时钟周期数,指令耗时=CPI x CPU时钟周期
其他常用的性能指标
数据通路带宽是数据总线一次能够并行传送信息的位数
吞吐量是系统在单位时间内处理的请求的数量
响应时间是从用户发送请求到系统对请求做出响应并获得所需要的结果的等待时间,通常包括CPU时间(程序运行时间)和等待时间(访存和I\O开销时间)
这是计组的第一篇总结,可能有些地方的内容和顺序组织的不太好,虽然第一章内容确实有些杂,但是这个锅作者背了,如果您看的不舒服请多包涵。