这个文章主要是我学计算机组成原理的一些笔记总结,比较偏向于常识性。
1、冯诺依曼体系结构:计算机主要是由五大部分组成(切记是主要!不是全部!)。分别是
①运算器(CA) 、 ②控制器(CU)、③存储器 、 ④输入设备、 ⑤输出设备。
CPU主要是由运算器和控制器组成。 运算器主要是用于完成算术运算和逻辑运算。
运算器主要是由ALU(是由门电路比如与门、或门构成的算数逻辑单元,进行算术运算)和若干通用寄存器(用来存放数据,运算器运算时需要从这里取出数据,或者将一些临时数据放入这里)组成的。
控制器是由IR、PC、MAR(主存地址寄存器)、MDR(主存数据寄存器)等组成。这里介绍IR和PC。
IR:指令寄存器。 Instruction Register 。用来存放正在执行的指令。指令分成两部分:操作码和地址码,由二进制数字组成。当执行一条指令时,先把指令从内存取到数据寄存器(DR,Data Register)中,然后再传送至IR。
PC:程序计数器。 用来存放下一条要执行的指令的地址。CPU执行指令是一条条按顺序的,上一条指令执行完成后,PC就要更新好下一条指令的地址。
2、 地址总线宽度决定了CPU可以访问的物理空间大小。假设地址总线宽度为32位,则CPU可以直接寻址的内存空间大小为2的32次方。即4GB,即支持的内存最大为4G。32位的系统,比如windows x86 ,最多支持4G内存。所以我们内存为8G的电脑一般装64位系统。一般来说,若地址总线为n位,则可寻址空间为2^n位。
3、系统总线: 主要是由数据总线、控制总线、地址总线(连接CPU和存储器的)构成。这里的存储器是指主存,即内存。而不是硬盘容量大小!!!
4、RISC:精简指令集计算机 。比如MIPS系统。
CISC :复杂指令系统计算机。比如X86体系结构的计算机。
5、半加器:由1个异或门和1个与门组成,作用是实现两个一位二进制数的加法运算电路。
全加器:由2个半加器组成。
6、正数的原码等于反码等于补码。负数的反码为:符号位不变,其余取反,负数的补码为,在负数的反码基础上再加1。
用补码来表示二进制的相反数,方便计算机进行减法运算。
例如 : X : 01001011
(-X): 10110100 (连同符号位全部取反)
2个相加:-1: 11111111 所以可推出 X+ (-X)= -1(在二进制里) 所以我们可以得出 (-X)+1=-X
所以X的相反数 : X按位取反再+1 所以: A-X = A+-X= A+ (-X)+1
7、流水线原理:流水线中各个处理部件可以并行工作,从而使整个程序的执行时间缩短,它并不会缩短单条指令的执行时间(甚至可能还会增加时间),而是提高了系统的吞吐率。
流水线时间计算公式:一条指令所需时间(即一条完整指令各个阶段耗时的和)+(指令条数-1)*指令里的耗时最大的阶段的所需时间。
(吞吐率 = 指令条数/流水线时间)
超标量流水线 : 即2条或者2条以上的并行工作的流水线结构。
8、存储层次结构: 灵魂画图:
9、对cache的访问过程:
①: cpu向cache发出读请求
②:如果数据在cache中,就从cache中返回读数据。 此时我们就说, cache命中!(cache hit)
③:如果数据不在cache中,我们就说 cache 未命中或者cache失效(cache miss),就向主存发出读请求。
④:主存中读到数据,更新cache并且返回读数据!