硬件的种类和作用
冯诺依曼体系
早期冯诺依曼体系是以运算器为核心的,因为早期的计算机做不到同时实现运算和控制,对数据处理的要求也不高。
图形里的实线表示数据线,可以看到每次运算都要经过IO,效率低。
现代计算机以存储器为核心,实线是数据方向。(还有控制方向没画出来)
主机与外部设备
-
裸机:没装任何软件
-
一个功能既可以由软件实现,也可以由硬件实现(一般来说硬件实现更快),只不过软件实现的成本更低,所以大多时候会选软件。
-
ISA:指令集体系结构,表示软件和硬件的界面
存储程序的工作方式
-
程序和数据是同等地位放入存储器(存储方式和存储形式都一样,所以是同等地位),CPU根据指令周期的不同阶段来区分指令和数据。
-
计算机在工作中从程序首地址取出第一条指令并执行,之后再顺序执行其他指令,直至程序执行完成(存储程序保证了计算机能自动控制处理程序)
-
语言分类
机器语言:01
汇编语言:操作码+地址
高级语言:C、C++等
解释型:Python
编译型:C/C++
-
编译程序:将高级语言一次性翻译成汇编语言或机器语言(C++/C)
汇编程序:汇编语言翻译成机器语言
解释程序:写一条翻译一条(Python、Shell)
计算机性能指标
- 字长:计算机进行一次运算所能处理的二进制的位数,通常是8的整数倍。与加法器和寄存器有关。(一般来说,字长==寄存器的大小)
- 数据通路带宽:数据总线一次传送信息的位数
- 主存容量:主存储器所能存储信息的最大容量,通常以字节或者字节*位数来衡量。如16字节,16B * 8位
- MDR:主存数据寄存器,保存写入或读到的数据
- MAR:主存地址寄存器,保存数据去的位置,和数据来源位置
- MAR为16位,表示有2^16个存储单元,64K内存,表示的主存容量为64K* 8位
- 吞吐量:系统单位时间内处理请求的数量。可用比特、字节等测量。取决于主存(取决于数据能多快写入主存、CPU多快取指令、数据多快从主存取出,以及结果多快送给外设,每一步都与主存有关)
- 响应时间,系统对请求作出响应的时间。响应时间=CPU时间+等待时间
- 存储字是存储在一个存储单元内的二进制组合,存储字长是存储在一个存储单元内的二进制代码位数。
CPU时间:CPU执行指令所花费的时间
等待时间:磁盘访问、存储器访问等等。
CPU
-
CPU时钟周期:CPU最小的时间单位,一个指令执行最小需要一个时钟周期,1/主频。
-
主频:机器内部主时钟的频率,频率越快,运行速度越高,表示1s内可以执行多少个时钟周期,单位是Hz
10Hz表示1s执行的频次是10,即1s执行10个时钟周期,则时钟周期=1/10=0.1s
5M赫兹表示1s执行5*106个时钟周期,则时钟周期=1/(5 *106)=0.2μs
-
CPI:执行一条指令需要的时钟周期数。对于一个程序来说,其CPI就是程序翻译成的指令集合的指令CPI的平均值。
一个程序,翻译成5条指令,指令的CPI分别为1、2 、3 、4、5,那程序CPI就是3
主频/CPI=指令的条数(一秒内执行的时钟周期/一条指令需要的时间周期==一秒内一共可执行多少条指令)
-
CPU执行时间=程序运行所需要的时钟周期/主频=指令条数*CPI/主频。
-
MIPS:每秒执行多少百万条指令。
MIPS=主频/(CPI*106)
MIPS=指令条数/(执行时间*106),可以零执行时间等于1s进行理解
但其实MIPS对不同机器的比较有缺陷,不同机器的指令集不同,所以不同机器的MIPS比较就不是同一基准了
- MFLOPS:每秒执行多少百万次浮点数运算
GFLOPS:每秒执行多少十亿次浮点数运算
TFLOPS:每秒执行多少万亿次浮点数运算
MFLOPS=浮点操作次数/(执行时间*106)
GFLOPS=浮点操作次数/(执行时间*109)
TFLOPS=浮点操作次数/(执行时间*1012)
PFLOPS=浮点操作次数/(执行时间*1015)
EFLOPS=浮点操作次数/(执行时间*1018)
ZFLOPS=浮点操作次数/(执行时间*1021)
术语
系列机:使用相同的基本指令系统的多个不同型号计算机形成的产品系列(奔腾系列)
固件:程序固化在ROM中的部件,吸收了软硬件的优点,执行速度大于软件,灵活性大于硬件。
RAM,随机存取存储器,断电丢失数据,如电脑里的运行内存。
ROM,只读存储器,断电不丢失数据,但是只读,不能说是电脑的固态硬盘,因为电脑硬盘可读可写。闪存基于ROM发展起来,只是有一定的关系。
RAM和ROM都是内存,硬盘是外存,和RAM、ROM没啥关系,RAM可以对标运行内存,ROM不能对标硬盘。
刷题小结
- 冯诺依曼计算机的核心思想是存储程序控制。
- 输入输出设备是为了实现用户与计算机之间的信息交互
- 直接执行微指令的不是微指令程序,而是硬件,微程序的作用是解释机器指令。
- 计算机硬件能够执行的是机器语言程序。
- 源程序到目标代码文件的过程是编译(目标代码是汇编语言,汇编过程将汇编语言翻译成机器语言,把目标文件链接生成可执行文件的过程过程叫链接)
- CPI的英文是Clock cycle Per Instruction,所以不要把程序的CPI当成指令的条数,而是当成指令的时钟周期。
- 指令条数一样,CPI不同,运行的时间也不会一样,因为指令条数*CPI=CPU要运行的时钟周期,所以CPU的执行时间不仅仅取决于一个因素。
- 机器字长=ALU的位数=通用寄存器的位数,指令寄存器的位数取决于指令。
- M G T P E Z,依次往上递增103 (注意是106起步,不是103)
免责声明
敬请大佬斧正,自己总结记录的不一定对。