https://zhuanlan.zhihu.com/p/359448585
Cache高速缓存(类似于电话本当中的常用联系人)
由上边的这幅图可以知道Cache是在寄存器之下的。
Cache的作用?
将经常访问的数据保存Cache当中,Cache的访问时间比主存的访问时间短。
怎么实现的呢?
Cache系统和计算机的地址总线和数据总线相连接,监听CPU和存储器之间的事物。只要Cache发现CPU发出的地址和它保存的某个数据元素地址相同,就把这个数据发送给CPU,而不会从主存当中取数据。
一级缓存(在CPU当中) & 二级缓存 & 三级缓存
DRAM
存放正在执行的程序的主存,是由一种叫做动态随机访问存储器的易失性半导体存储器构成的立即存取存储器。
外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等。
软盘、硬盘、光盘、U盘、磁带都是外部存储器。
软盘、硬盘、光盘、U盘、磁带都是外部存储器。
从冯.诺依曼的存储程序工作原理及计算机的组成来说,计算机分为运算器、控制器、存储器和输入/输出设备,这里的存储器就是指内存,而硬盘属于输入/输出设备。
CPU运算所需要的程序代码和数据来自于内存,内存中的东西则来自于硬盘,所以硬盘并不直接与CPU打交道。
硬盘相对于内存来说就是外部存储器。
存储器是用来存储数据的,内存有高速缓存和内存,计算机内部存储,外存就是类似U盘的外部存储。
内存储器速度快 价格贵,容量小,断电 后内存内数据会丢失。(ROM 断电不丢失)
外存储器单位价格低、容量大、速度慢、 断电后数据不会丢失。
涉及到的内容如上图所示。
1.1、什么是计算机体系结构
- 计算机系统包括读取并执行程序的CPU,保存程序和数据的存储器,以及输入输出子系统,这些子系统会使CPU与显示器、打印机等外部设备之间的通信变得更加容易
- 计算机中执行程序的部分叫CPU。
- 计算机性能取决于CPU,也取决于其他子系统的性能。如果不能高效进行数据传输,仅仅提高CPU的性能是毫无意义的。
1.2、程序执行的过程
例:两个数相加
[图片上传失败...(image-a4d92e-1666700631790)]
注:要执行这个程序,CPU必须先从存储器当中取出一条指令,在CPU分析或解码这条指令之后,从存储器当中读出这条指令所需的所有数据
1.3、计算机指令(汇编)
[图片上传失败...(image-a0a835-1666700631790)]
1.4、寄存器
概念:寄存器是用来存放一个单位的数据或字数据的存储单元。存储器通常用它所保存数据的位数来描述,典型的有8位、16位、32位、64位。
区别:寄存器和存储器中的字存储单元没有本质区别。二者的实际差别在于,寄存器位于CPU当中,它的访问速度远远比CPU外部的存储区快。
1.5、时钟
概念:绝大多数数字电子电路都带有一个时钟,用来生成连续的间隔固定的电脉冲流。之所以被称为时钟,是因为可用这些电脉冲来计时或确定计算机内所有时间的顺序。如,处理器可能会在每一个时钟脉冲到来的时候执行一条新指令。
1.6、RISC和CISC
RISC:精简指令集计算机。指令少并且简单。对于我们程序员来说实现程序设计比较难,复杂指令需要很多条指令配合。
CISC:复杂指令集计算机。
1.7、计算机的发展
机械->机电->电子->微机
1.8、摩尔定律(经验)
集成电路得到集成度每18个月翻一番
1.9、乱序执行
有时候可以改变指令的执行顺序提高计算机的速度。
1.10、存储程序计算机
计算最大游程
[图片上传失败...(image-7f6d6d-1666700631790)]
什么是最大游程?
答:同一数字连续出现的最大次数。解决办法
答:自己设计一个算法,有一个MAX计数器就行
存储器
定义:存放信息的表格或目录
组成:处理器将一个放在地址总线上的地址以及一个选用选择读操作或写操作的控制信号发送给存储器。
读周期中,存储器将数据放在数据总线上供CPU读取。
写周期中,放在数据总线上的数据被写到存储器当中。
信息进入或离开存储器的位置叫做端口。
[图片上传失败...(image-77c7a6-1666700631789)]
1.11、寄存器传输语言(RTL)
功能:区分存储单元的地址和它的内容。有点像指针的操作。
1.12、存储程序的概念
PC计数器:指向存储器的哪条指令的时候,就执行那条指令。
计算机工作时的基本操作:
- PC指向存储器当中的第一条指令
- 读取这一条指令
- PC指向下一条指令
- 将步骤2当中读取出的指令解码
- 执行指令(重复2~5)
- 当PC没有下一条指令的时候,结束整个操作
执行指令这一动作的详细描述(用a+b这个简单的指令来解释):
- 如果这条指令需要使用数据(a+b这个动作是需要数据a和数据b的)
- yes -> 从存储器当中读这个数
- no -> 直接进行下一条操作
- 完成这条指令所说的操作
- 指令要将数据存起来吗?(有没有result = a+ b)
- yes -> 将数据写到存储器当中
- no -> 结束这个动作
指令的格式
[图片上传失败...(image-db20b7-1666700631789)]
1.13、计算机分类
分类依据:按照计算机的指令处理数据的方式。
- 存储器-存储器
- 寄存器-存储器 Intel IA32 CPU体系结构就是这样的。
- 寄存器-寄存器
1.14、存储层次
速度和内存之间的考量,两者之间互相制约。
科技的发展导致我们的CPU性能逐渐提升,其提升的速率基本维持摩尔定律,但是硬盘的处理速率远远跟不上我们的CPU,所以就导致了我们需要有这种存储的层次。
[图片上传失败...(image-8fc0ec-1666700631789)]
Cache高速缓存(类似于电话本当中的常用联系人)
由上边的这幅图可以知道Cache是在寄存器之下的。
- Cache的作用?
将经常访问的数据保存Cache当中,Cache的访问时间比主存的访问时间短。
- 怎么实现的呢?
Cache系统和计算机的地址总线和数据总线相连接,监听CPU和存储器之间的事物。只要Cache发现CPU发出的地址和它保存的某个数据元素地址相同,就把这个数据发送给CPU,而不会从主存当中取数据。 - 一级缓存(在CPU当中) & 二级缓存 & 三级缓存
DRAM
存放正在执行的程序的主存,是由一种叫做动态随机访问存储器的易失性半导体存储器构成的立即存取存储器。
总线
总线将计算机的两个或多个功能单元连接在一起并允许它们相互交换数据。总线还将计算机与外设连接在一起。
[图片上传失败...(image-ea5ff5-1666700631789)]
如果没有总线,那么就会导致上边的这种结果,各个设备之间需要相互连接才能进行交互。
但是当我们使用了总线之后:
[图片上传失败...(image-792a8d-1666700631789)]
只有一条高速数据通路,每个单元通过一个接口与这条通路相连。
缺点:每次只有唯一一个设备能与其他设备通信,因为这里只有一条信息通路。如果有两个设备同时要求使用总线,就会造成冲突。
类似的,计算机网络当中也存在着这样的特点。
总线术语:
- 宽度:并行数据通路的数量。一条64位宽的总线一次能传送64位信息
- 带宽:衡量信息在总线上的传送速率的一项指标。单位为B/s或b/s。在保持数据传输速率不变的情况下,增加总线宽度,那么就能提高带宽。
- 延迟:数据从发出到传送到达的时间间隔。
多总线系统:
[图片上传失败...(image-541d24-1666700631789)]
作用:
- 提供并发操作。
- 上下两条总线可能有完全不同的特点和操作速度。