深入浅出计算机组成原理

计算机组成原理

入门书籍

《计算机是怎样跑起来的》《程序是怎样跑起来的》

深入书籍

《计算机组成与设计:硬件 / 软件接口》和 《深入理解计算机系统》
操作系统大神塔能鲍姆(Andrew S. Tanenbaum)的
《计算机组成:结构化方法》

《计算机体系结构:量化研究方法》
《编码:隐匿在计算机软硬件背后的语言》
《程序员的自我修养:链接、装载和库》

视频参考

https://www.bilibili.com/video/av24540152/
https://www.coursera.org/learn/jisuanji-zucheng

总线的分类

片内总线

芯片内部的总线 寄存器与寄存器之间、寄存器与算术逻辑单元之间都是由片内总线连接

系统总线 CPU 、主存 、IO设备之间的信息传输线

    数据总线
    各个部件之间数据交换的传输线、双向传输、线的位数由机器字长、存储字长决定
	控制总线
	
	地址总线  各个部件在不同时刻占用地址总线或者数据总线的使用权由控制总线来传输控制信号
					单个控制线为单向传输、如cpu 存储读/写、IO设备读/写
					从控制总线的整体来说 又属于双向传输		如中断请求、DMA请求

通信总线 计算机系统之间 或者计算机与其他系统之间的数据通信

通信方式
并行 适用于短距离通信
串行 适用于长距离通信

总线的特性

1、机械特性
2、电器特性
3、功能特性
4、时间特性

总线性能指标

1、总线的宽数
2、总线的带宽
3、总线的复用
4、时钟同步/异步

总线的控制

总线上的设备按其对总线有无控制权分为主设备与从设备,只有主设备对总线有控制权,从设备只能响应主设备发出的总线命令

当多个主设备需要总线控制权时,就需要一个总线控制器来判断优先级,这就需要一个总线判优控制
总线判优控制 分为集中式与分布式,前者将逻辑控制集中在一处(如cpu),后者则在总线连接的各个设备上

集中式分为以下三种仲裁方式
1、链式查询
原理:需要BS BG BR三根线控制总线,当BR发出总线控制请求时,BG线一个一个依次按顺序判断该设备是否有总线控制请求,如果有则BG线不在往下判断,此时该设备获得总线控制权后向BS线发出总线控制繁忙信号

优点:只需少量线就可以按一定优先次序控制总线 设备容易扩充
缺点:电路较为敏感,优先级别低的设备很难获得总线控制(离总线控制器越远,优先级越低)
深入浅出计算机组成原理_第1张图片
2、计数定时查询方式
原理:需要BR BS 设备地址 三根线来控制总线,当BR 发出请求时总控制器开始计数,并通过地址线向各设备传输此时的计数值,当计数值与发起BR请求的设备的地址编号相同时,此时该设备获取总线控制权,并终止计数查询

优点:计数灵活 计数可以从0开始 ,也可从上一次计数终止时开始(此时各个设备可以循环的控制总线,各个设备优先级相等) 也可软件修改计数值
缺点:电路故障较为敏感(但是比链式查询好一点) 增加了控制线(设备地址线)数,控制较复杂一点
深入浅出计算机组成原理_第2张图片
3、独立请求方式
原理:每个设备都有一对独立的BG BR 线 ,当多个设备的BR发出请求信号到总线控制时,此时总线控制器内部有一个排优顺序电路,根据优先级次序,独立的发到某一个设备的BG线以次来获得总线控制权
优点:响应速度较快,优先级次序可以较灵活,可以软件修改
缺点:控制线数量太多,总线控制复杂
深入浅出计算机组成原理_第3张图片

总线通信控制

存储器

半导体存储芯片的基本结构

主存技术指标
1.存储容量 主存存放二进制代码的总位数
2.存储速度 存取时间 存储器的访问时间 读出时间与写入时间
存取周期 连续两次独立的存储器操作的所需要的最小时间间隔(读或写)
3.存储器的带宽

存储器容量的扩展
1.位扩展
2.字扩展
3.字位扩展
存储器与cpu的连接
(1)地址线连接
(2)数据线的链接
(3)读写命令线连接
(4)片选线的连接
(5)合理选择存储芯片
(6)其他、时序、负载

存储器校验

编码的检错与纠错能力与什么有关?
任意两组合法代码之间的二进制的最少差异位数 即编码的最小距离

计算机指令系统

主要内容:
指令系统的分类
指令的格式
指令的寻址方式
设计指令系统综合考虑的因素

指令的一般格式

指令一般由操作码地址码两部分构成
深入浅出计算机组成原理_第4张图片

操作码

操作码分为长度固定长度不固定的
长度固定:便于硬件设计、译码时间短。广泛用于字长较长的大中型计算机
长度不固定:增加指令译码与分析的难度,使控制器设计复杂,广泛存在于字长较短的计算机中,可有效的压缩操作码的平均的长度

设计操作码不固定的指令系统时应该考虑从指令的使用频率角度来考虑,使用频率高的指令操作码应该占有短的长度,使用频率低的指令应该占有长的长度,这样有利于缩短高频率指令的译码时间,当然我们还需考虑地址码的要求。

地址码

地址码用来指出该指令的源操作数地址、结果地址、或者下一条指令的地址(主存地址、寄存器地址、设备I/O地址)
深入浅出计算机组成原理_第5张图片
深入浅出计算机组成原理_第6张图片
深入浅出计算机组成原理_第7张图片
深入浅出计算机组成原理_第8张图片

指令字长

指令字长取决于操作码的长度地址码的长度地址码的个数,不同的机器指令字长是不同的
早起的机器指令字长长度是固定的随着计算的不断发展,存储容量的不断增加,指令字长慢慢的变为不固定了,如:单指令字长,多指令字长。一般取8的整数倍,intel8086的指令字长可分为8位、16位、24位、32位、40位、48位六种

操作数类型与操作类型

操作数类型:
字符、地址、数字、逻辑数据

操作类型:
数据传送
算术逻辑操作
移位
转移:无条件转移、条件转移、调用与返回、陷阱与陷阱指令
输入输出
其他:停机指令、等待指令、开关中断、空操作、置条件码

寻址方式

是指确定本条指令的数据地址以及将要执行下一条指令的地址的方法,可分为数据寻址地址寻址两大类

指令寻址

可分为顺序寻址跳跃寻址

持续更新中

你可能感兴趣的:(深入浅出计算机组成原理)