我更多的是记录一下我自己的想法,会有错误
计算机硬件系统
注意那几个寄存器要记住其作用
指令系统
概念
指令系统是计算机硬件的语言系统,是机器所具有的全部指令的集合,反应了计算机所拥有的基本功能,
说人话就是,指令的集合,由于指令是用来解决某项问题的,那么就有功能性了
指令的组成
- 操作码
- 地址码
分类
CISC
CISC,Complex Instruction Set Computer,说人话就是我把指令搞得很复杂,什么东西都写好了,但由于二八原则的存在,你写的那么多指令,实际上经常用的也就那20%,从这个角度来看,没有必要把指令系统搞得那么复杂
特点
- 指令数量
多
- 指令使用
频率相差悬殊
- 支持多种寻址方式
- 变长的指令,但这也增加了指令译码电路的复杂性
- 指令可以对主存单元中的数据直接进行处理,那么这样就可以直接对主存单元中的数据进行处理了,执行速度比较慢
- 以
微程序控制
为主 也好记对吧,因为复杂和二八定律的存在,引入RISC
RISC
RISC,Reduce Instruction Set Computer 对CISC的优化,因为二八原则,要比CISC快
特点
- 指令数量少
- 指令的寻址方式少
- 指令长度固定,指令格式种类少
- 以
硬布线逻辑控制
为主,说人话就是各种各样的逻辑电路,用电路解决的速度要比用软件的速度要快 - 单周期指令执行,采用
流水线
技术,用了这种技术会使得大部分指令都能在一个机器周期内完成 - 优化的编译器,这个了解一下
- CPU的通用寄存器数量多
流水线技术
小插曲 你需要知道一下指令执行的三阶段:
取指
、分析
、执行
顺序执行
重叠执行
即在执行指令的同时,取指页同时进行,叫做局部并行
流水线执行
周期
即执行时间最长的那一段,因为在流水线中花费时间最多的是执行时间最长的那一段,如果把花费的时间与难度相关联起来,即执行时间越长,难度越高,即你困难的问题都能解决,那么简单的一定能解决
流水线时间
流水线时间=第一条指令花费时间+指令周期×(指令条数−1)
例题:一条指令的取指、分析和执行分别是2ns,2ns,1ns. 流水线周期:2ns 100条指令全部执行完毕需要的时间是 2+2+1+2×(100−1)=203
吞吐率和最大吞吐率
吞吐率这个你可以理解为单位时间内流水线处理后的结果数,即单位时间内执行的指令数
TP=流水线执行时间指令条数
TPmax=limn→∞(k+n−1)△tn=△t1
最大吞吐率就是流水线的周期的倒数,上一题的最大吞吐率就是2△t1
流水线加速比
即不使用流水线执行时间与使用流水线执行时间的比值 S=使用流水线执行时间不使用流水线执行时间
存储系统
存储器的层次
我感觉这里你看图片会更好一点
主存储器的容量计算
内存按字节编址,地址从A4000H到CBFFFH,共有多少字节?若用存储容量为32K×8bit的存储芯片构成该内存,至少需要多少片?
一共有:CBFFF+1−A4000=28000H=8×163+2×164=23×(24)3+2×(24)4=215+217B 同时除以210得到25+27KB=160KB
按字节编址,这里我不太记得了,好像是把一个字节看成单独的地址 至少需要32K160K×88=5片
磁盘阵列
看图片吧
校验码
这个你看我的视频吧 CRC
总线
概念
你需要知道是在计算机设备之间传输数据的公共通道
分类
按功能来
- DB,Data Bus,数据总线
- AB,Address Bus,地址总线
- CB,Control Bus,控制总线
这里看一下我的视频讲解 总线
按芯片的位置
- 内部总线和外部总线
按数据线的多少
- 并行总线,这个适应于计算机内部部件的数据传输
- 串行总线,这个适应于长距离的数据传输
我的一些问题
- 为什么要整那么多的寻址方式。
寻址方式有直接寻址,间接寻址,寄存器间接寻址,基址寻址,变址寻址 反证法来一波,全部用直接寻址会怎么样? 以16位为例, 只用直接寻址,他只能直接访问216=64KB的内存,这完全不够用 那间接寻址呢? 假设只用间接寻址且地址都是16位,那么能访问232B=222KB=212MB=4GB,这应该够用了
应该是为了更大的访问内容容量,追求灵活性