第一章
计算机的基本组成:硬件+软件(程序)=计算机系统
软件有系统软件(系统管理工具),应用软件
计算机硬件:包括主机和外设,主机包括CPU和内存,***CPU由运算器和控制器所组成。
CPU又叫做中央处理器,能够进行运算和控制
程序要想运行起来,就必须将其放入内存中,因为CPU只能访问到内存的程序和数据;
但是这里就存在一种问题,就是CPU的运行速度很快,但是内存的运行速度又很慢,这种差异就会使一方的效率下降了;CPU需要等待内存传输数据程序和指令,CPU的运行效率就会下降;
这里的cache不是用来扩充容量的,这里的cache相当于一个手抓包,把需要的东西放进去,使得速度得以提升,解决了CPU和内存的速度不匹配的问题
这里的内存是包括cache和主存的;
外设指的是除了主机之外的所有的设备,我们将他称为外围设备;
无论是内存还是外存,我们都叫他们是存储器,存储器就是用来存放程序和设备的东西
这里外存的速度比内存慢100倍左右,但是容量要比内存大的多
内存32,外存512
平常下载的游戏是先放到外存,需要的时候调入内存,才能跑起来
根据存储的级别是不同的,这里分为二级存储系统(内存和外存)和三级存储系统(cache,主存,辅存)
外存和辅存说的是一个东西
奠定现代计算机硬件结构的基础:
冯诺依曼机包含五大功能部件:运算器,控制器,存储器,输入设备,输出设备*******!!
运算器是进行加减乘除之类的算术运算,控制器是对计算机进行控制的,存储器是用来存放 程序和数据的,输入设备是鼠标键盘和手写板,输出设备是显示屏,音箱和打印机
冯诺依曼计算机的特点:指令和数据是不加以区别的混合存储在同一存储器中的(主要区别于哈佛计算机指令和数据是完全分开存储的)
系统软件是其他软件的支撑性软件,
机器字长
我们通常所说的32位,64位,就是计算机一次性所能计算的位数是多少;
机器字长越长,计算的精度越高;
机器字长的大小通常和CPU内部寄存器的大小是一样的。
CPU的内部寄存器的通常是放置一些从内存取出来马上要用到的数据,或者是对计算机能控制的数据。
运算速度
计算机运算的快不快?我们通通常是看主频(主频是CPU内数字脉冲信号震荡的速度,震荡速度越快,计算机的运行速度越快)
CPU的速度
程序:是由很多条代码组成的,程序的多条代码会被计算机翻译成0101这样的二进制数组成的指令,这样的过程我们叫做编译的过程,所以可以说,一个程序是包含多条指令的;
CPU的第一个指标叫做CPI,也就是执行一条指令需要的平均时钟周期
影响CPU速度的第三个指标是MIPS
吞吐量和响应时间,吞吐量越高,计算机的性能越高
主存容量和主存带宽
主存储量就是主存储器所能存储的二进制数据的位数
16G的内存说的就是二进制所能存放的位数是16GB
容量越大,能够记忆的二进制数就越多;
P5
第二章 总线
总线概述
所有的外设信息都要传输给内存,所以外设和内存是有连接通路的
内存中的程序要想跑起来,就必须放到CPU当中去,所以内存和CPU之间也必须要有一个链接通路;
外设和外设之间也要互相传输信息,所以外设和外设之间也是需要通路的
如图所示线之间又是太乱了,用一个总线将所有的部件全部连接起来,所有的部件都连接在总线上
总线是构成计算机系统的互联机构
这里借助于总线连接,计算机在各系统功能部件之间实现地址、数据和控制信息的交换,并在争用资源的基础上进行工作
数据就是程序处理时对应的数据信息,控制信息就是传输计算机什么时候做什么事情的信号信息·
总线就是一个公共的通路,各个部件之间想要传输信息来进行工作,就必须要争抢到总线的控制权,谁抢到总线的控制权,谁就能控制总线进行传输信息
使用总线结构并不会增加或者减少信息的传输量,应是传输多少信息就传输多少信息
使用总线需要数据信息和地址信息分时传送,不可以同时传送,一次只能有一个设备去控制总线来传输一组信息
使用总线结构也并不会提高信息的传输速度,线路还是一样的线路,总线还是一样的总线,只不过是改变了连接方式,从全互联变成了公共通路。
使用总线结构可以减少信息传输线的条数
之前使用的全互联,线路非常多而且非常乱
****总线的特性:
机械特性,又叫物理特性,就是能看到长什么样子
对于总线,按照数据的传输格式,分为串行总线和并行总线,按照时序控制方式,分为同步总线和异步总线
总线根据连接的部件不同,分为三种,分为片内总线,系统总线,通信总线***
片内总线是连接CPU内部的总线,系统总线是连接计算机功能部件的总线(连接CPU,内存和多个外设),通信总线是连接计算机和其他设备之间的总线
三种总线之间最主要的区别就是连接的部件是不同的
根据系统总线功能的不同,分为三种:数据总线,地址总线,控制总线;***功能作用也是非常重要的
数据总线:传输数据,地址总线:传输地址,控制总线:传输控制信号和时序信号(控制什么,什么时候控制)
总线宽度:数据线的根数,如32根数据线,那么总线就是32位,表示的是该总线能够一次并行传送32bit数据,没有先后顺序的去传输,叫做并行传输
总线带宽:总线传输速率(总线每秒能传输多少数值),后来表述为总线每秒能传输多少字节的数据
每个时钟周期传送两次数据:一次数据传送半个时钟周期0.5T
总线结构:单总线结构,双总线结构,多总线结构
单总线结构:
单总线结构的使用效率较高
双总线结构就是在CPU和内存这样高速的设备之间又加了一条更快的一条总线:来实现CPU和内存之间的数据传输
三总线结构:在外设这样的低速设备之间再加上一根慢速的总线,再通过一根特殊的硬件专门管理数据的输出
多总线系统结构--提高系统的吞吐量
从总线的利用率来看:三总线的利用率是最低的,因为总线的资源是比较多的,在某一时刻某一根总线是没有使用的,但是从整个系统的吞吐量来看是效率最高的,因为在单位时间内能传输的字节数是比较多的。
总线仲裁
主设备可以启动一个总线周期,而从设备只能响应主方请求
CPU就是常见的主设备 内存就是常见的从设备 外设既可以做主设备,也可以做从设备
每次总线操作,只能有一个主设备,但可以有多个从设备
想要传输数据,就必须获得总线的控制权,谁抢到总线的控制权,谁就是主设备
总线仲裁用来判断谁可以优先成为主设备(总线控制器,总线系统的核心)
按照总线仲裁电路的位置不同,仲裁方式分为集中式和分布式两种***
集中式都会有一个中央仲裁器,采用不同的仲裁方法,判断哪个设备能优先获得控制权
而分布式是没有中央仲裁器的,每一个部件会自己去争取,谁赢了谁就会获得总线控制权
集中式有三种常见的优先权仲裁方式:***
对于链式查询方式:
包含一个BS线,表示的是总线忙(当值为1的时候,代表总线是被占用的)
BR为总线请求线,设备想要使用总线的时候,就会通过总线请求线发出想要使用总线的请求信号
BG线为总线授权线,用来发出授权信号,来告诉设备谁有总线的授权
总线授权线BG是从0开始,谁离中央仲裁器近谁就能获得总线控制权
总线控制的线数量少,只有三条
容易扩充设备:总线只有三条,BG线直接串联设备,要想多加几个设备接口非常容易
因为是串联起来的,所以线断的时候,后面的所有设备都没有机会去控制总线了
(链式查询方式对电路故障最敏感--串联)
而且他的优先级是固定不变的,靠近中央仲裁器的就是优先级最高的,离的最远就是优先级最低的 如果前面的总是先优先获得总线控制权,那么后面的就没有机会
计数器定时查询:没有总线授权线
总线仲裁器可以把他看成一个计数器,设备1~n发出总线请求,此时,计数器就会开始计数
通过设备地址线把这个数发给各个设备,和各个设备的设备号去完成匹配,当请求使用总线成功,就会发出总线忙的信号,BS的值为1
计数器更加灵活改变优先次序
独立请求方式:
线比较多,每一根线都有独立的请求线BR和总线授权线BG
将总线仲裁器当成是排队器
总线定时(通信)控制
为什么需要控制?因为计算机在各个功能部件和设备的速度都不太一样,所以在总线上进行传输时,就需要在时间上的配合和在动作的协调问题
采用同步方式--叫做同步总线 采用异步方式--叫做异步总线
同步方式:
时间上配合的方式,同步方式规定的时长是一样的(截止时间都一样)
这样是有局限性的,只是是用于速度都差不多的情况下
两个设备的通信时间是由总线时钟信号来决定的
同步方式的总线周期长度是固定的
统一时钟规定发送和接收的信息的时间,具有较高的传输频率
如果设备的速度差异太大,整体的效率也会大大的降低,同步方式只适用于总线长度较短的情况下
适用于总线速度较快的:例如CPU内部总线,处理器总线
必须适应在总线上最慢部件的需要,最慢部件传输数据的时间来确定传输一次数据所用时间周期的长度
若只用时间来控制,那么就没有相互响应的一个过程,就不知道每一个步骤的完成情况,所以可靠性就比较低
异步方式:动作上的协调来去通信控制,这个不需要统一的公共时钟信号,依靠双方相互制约的应答信号或者互锁协议来实现通信(可靠性较高),部件之间传输时间是可变的
总线周期长度可变,没有要求的截止时间规定数据什么时间传输完成
异步方式是以增加总线的复杂性和成本为代价
异步方式的握手原则:
握手:主设备和从设备进行交互的时候产生握手
主设备会向从设备发出请求信号,从设备收到请求信号会回答主设备的请求,这样叫做一次握手
关于请求和回答信号的撤销是否互锁分为三种情况:不互锁,半互锁,全互锁,三个异步握手原则
(1)不互锁:请求不回就撤回 回了请求自己撤(不会等对方去确认)
主设备想要开始发信息的时候,开始发出请求信号,这时候主设备不管从设备是否收到请求信号,经过一段时间就把这个请求自己撤销掉了
从设备接收到主设备的请求信号之后,直接给主信号发出回答信号,一段时间自认为主设备收到回答信号之后,直接把回答信号给取消掉
其中,两者自主撤销自己的信号都是由自己所决定的,并不会受到对方的约束,这样的方式叫做不互锁的握手方式
(2)半互锁:请求回了才撤回 回了请求自己撤
主设备发送请求信号,必须等待从设备的回答信号,才能够撤销请求信号,但是对于从设备的回答来说,和不互锁一样,自认为主设备已经接收到,直接把回答信号给撤销掉
主设备的请求撤销,是被从设备的回答信号锁住的,从设备的回答信号又没有被锁上,这种方式叫做半互锁方式
(3)全互锁:请求回了才撤回 回在确认之后撤
主设备发出的请求必须等到从设备的回答信号才能去撤销自己的请求信号,从设备想要撤销发给主设备的回答信号必须等到主设备的确认,并且收到主设备的确认信号之后才可以去撤销回答信号,这个过程也是被主设备锁住的,信号均被对方锁住,因此成为全互锁
全互锁的可靠性是最高的,但是耗时也是最长的
半同步方式:(同步方式和异步方式相结合的方式)
总体采用同步的方式,有同步时钟来控制做什么事情,但是和同步方式不同之处在于其增加了一根信号线来进行握手-- (发送信号的回答和请求),传输周期可以是不一样的。
在这个过程中,如果从设备回答时钟的响应较慢的话,会增加时钟周期(拉长传输速率的时间)
半同步方式就是速度不一致时,通过握手适当延长总线周期。
第三章 存储器
存储器的层次结构
存储器可以包含:cache 主存 外存
外存有磁盘光盘和磁带
二级存储系统没有cache,只包含内存和外存;
内存和外存都是用来存储计算机程序和数据的部件,CPU可以直接读取内存,不能之间读取外存。
三级存储器系统加入了cache超速缓存存储系统
cache的作用就是使主存存取速度和CPU运算速度相匹配
主存
存储器中是以存储单元为单位进行存储的,一个存储单元可以存取很多bit的单位
存放一个字节(1B=8bit)的单元,相应的地址成为字节地址(字节存储单元)
一个字可以是有多个字节组成的
存放两个机器字的存储单元,相应的单元地址叫做双字地址;
每一个存储单元都对应地址
(表示CPU的寻址范围是4,大小就是4*8=32bit)
1M就是10的六次方,8位是一个字节
按字编址,字为32位,所以就是每32位一个地址,32bit=4B
存取周期有操作时间+操作后线路的恢复时间
RAM支持随机读写,是随机读写存储器
主存储器与CPU的连接
主存储器通过数据总线,地址总线和控制总线和CPU相连接
地址总线的位数决定了可寻址的最大内存空间
通过地址总线,CPU把地址传递给主存(单向),主存无法给
通过数据总线,CPU和主存相互交换信息(双向)
对存储芯片进行扩充来满足存储要求,在字和位两方面进行扩充
字就是实际的寻址单元个数 位就是对应多少bit,也就是多少个二进制位
存储芯片的数据位数小于CPU的数据线数时,存储芯片就要进行位扩展
字扩展法是指增加存储器中的字的数量,但是位数不变,扩展的是存储空间数
程序的局部性原理:时间局部性和空间局部性
高速缓存就使用程序的局部性原理