总线提供对外连接的接口 不同设备可以通过usb(通用串行总线)进行连接 促使外用设备接口统一 总线解决了不同设备之间的通信问题
片内总线为芯片内部的总线 或者是寄存器与寄存器之间 或者是寄存器与控制器、运算器之间
例如数据总线:双向传输各个部件的数据信息 数据总线的位数是数据总线的重要参数,一般与cpu的位置相同
指定源数据或目的数据在内存中的地址 地址总线的位数与存储单元有关 地址总线位数若为n,则寻址范围为0-2 ^n
用来发出各种控制信号的传输线 控制信号由一个组件发给另一个组件 可以监听不同组件之间的状态(已就绪/未就绪)
决定主存、硬盘、io谁先执行的
链式查询:无论谁传信号,都是从设备1开始往下传,好处是电路复杂度低,仲裁方式简单。 坏处则是优先级低的设备很难获得总线的使用权。以及对电路的故障很敏感。
计时器查询 仲裁控制器对设备编号并使用计数器累计,接受到仲裁信号后,往所有设备发出计数值,若于编号一致则获得仲裁器的使用权, 独立请求 每个设备均有总线赌气连接的仲裁器 设备课单独向仲裁其发送请求和接收请求 每当有多个请求信号时,仲裁器会按照优先级分配使用权 好处就是相应快 坏处是设备连线多,总线控制复杂
薄膜键盘 机械键盘:红、黑、青、茶四种轴 电容键盘
显示器 数位板 扫描仪
图像显示器 打印机 投影仪
数据线:io与主机之间进行交换的传输线,有单向或者双向的 状态线:io设备状态向主机报告的信号线(查询设备是否被连接或者是否被仲裁) 命令线:cpu向设备发送命令的信号线 设备选择线:主机选择设备进行排序的信号线对连在线上的设备进行排序执行
当外围io设备就绪时,向cpu发送中断信号,外围设备处理完成后,cpu会回来继续工作 好处:这种机制可提供低俗设备通知cpu的一种异步方式,使cpu在高速运转时能够兼顾低速的设备相应
当主存与io设备之间交换信息时,不许中断cpu,可直接俄与cpu交换(硬盘、外置显卡)
半导体存储器:内存 U盘 固态硬盘 磁带设备 磁带 磁盘
随机ram 随机存取与位置无关 串行存储器 与位置有关 按顺序查找 只读存储器 只读不写(rom)
独写速度 容量 价格=>位价==每比特价位
原理 局部性原理 实现 在cpu和主存之间增加一层速度快 容量小的cache 目的 解决速度不足的问题
原理 局部性原理 实现 主存之外增加辅助存储器
目的 解决容量不足
如下所示左边是台式的主存储器 右边是笔记本的主存储器,即我们所说的ram(随机存取器) 由于ram通过电容存储数据,必须隔一段时间刷新一次,所以若断电则数据会丢失
32位:2 ^32 = 4 * 2 ^30=4gb 64位:2 ^ 34 * 2 ^ 30=4*2^30=2 ^ 34 gb
按进程顺序独写磁道
就近原则,执行离磁道最近的
即电梯算法,磁道来来回回循环
电梯算法改良版,就按照一个方向循环执行
解决cpu与主存之间速度不匹配的问题
字:存在一个v存储单元中的二进制代码组合,可以是一个字符串或者是一条指令 字块:一组字
字地址包含两个部分,前m位表示字块地址,后b位表示字在字块中的地址。而一个字32位,一个字块共B个字,主存共M个字块 由此可得 BM=主存总字数 BM*32=主存总容量 2 ^ m=M 2 ^ b=B
问题:假设主存用户空间容量为4G,字块大小为4M,字长为32位,则对于这种字块中的块地址M和块内地址的b的位数应该是多少? 解: 4G=4096M 字块数:4096/4=1024 由 2 ^ m=M 得 m=log2 ^M ====>log 2 ^1024=10
块内字数:4/32=1045876bit
由 2 ^ b=B 得 b=log2 ^B ====>20
需要了解的是cpu需要的数据要去高速缓存拿,若没有则需要去主存拿,所以提高缓存利用率是及其重要的
命中率是衡量缓存的重要性能指标
命中率
访问率 平均时间极为父母
若队尾加入字块,则队首字块移除
新字块加入时,会将最不常用的字块移除
用双向链表作为存储结构,最近使用的字块排最前,当有新字块进入时,会将最不用的字块移除
操作码 :反映系统操作的种类 地址码:直接给出操作数,或者操作数的地址
三地址指令
二地址指令
一地址指令
op acc的为自增操作等
寄存器之间 寄存器与存储单元 存储单元之间的传送。还有数据读写,交换地址数据,清空置一等操作。
加减乘除,与非等运算
等待指令、停机指令、空操作指令、中断指令等
立即寻址:指令直接操作数,不用访问存储器 直接寻址 直接给出操作数在主存的地址 间接寻址 指令给出操作数地址的地址
控制器是协调和控制计算机运行的
存储下一条指令的地址,循环工作
相当于cpu的节拍器,按照发送的时序脉冲有节奏的进行工作
翻译操作和控制传输地址码对应的数据
从主存或者高速缓存取出计算机指令
保存当前cpu正要访问的内存单元地址
保存当前cpu正要读取或者写的主存数据
用于暂时存放传送数据的指令,可保存alu的运算结果,容量也比一般寄存器大
暂时存放外设送来的数据
暂时存放往外送的数据
算数逻辑单元 是运算器主要组成部分,常见加减乘除等操作
存放运算状态 控制信息
用于暂时存放传送数据的指令,可保存alu的运算结果,容量也比一般寄存器大
缺点:运算器 控制器 各自独立工作,导致cpu利用率低