计算机原理组成篇 (2)

简介: 主存-辅存层次原理:局部性原理实现:主存之外增加辅助存储器(磁盘、SD卡、U盘等)目的:解决主存容量不足的问题

计算机原理组成篇 (1):https://developer.aliyun.com/article/1387181?spm=a2c6h.13148508.setting.18.38f44f0eLpw0gy

主存-辅存层次

原理:局部性原理实现:主存之外增加辅助存储器(磁盘、SD卡、U盘等) 目的:解决主存容量不足的问题

你有20G游戏,但是只有8G主存,根据局部性原理,把游戏当前需要的数据放在主存里,不需要的放在辅存里

主存储器

就是内存

  1. RAM(随机存取存储器:Random Access Memory
  2. RAM通过电容存储数据,必须隔一段时间刷新一次
  3. 如果掉电,那么一段时间后将丢失所有数据

image.png

32位系统,()2(32)=4GB

64位系统,()2(64)=()2(34)GB

辅助存储器

磁盘

image.png

  1. 表面是可磁化的硬磁特性材料
  2. 移动磁头径向运动读取磁道信息

磁盘调度算法

我们举下面的例子,看看磁道是怎么移动的。

先来先服务算法
按顺序访问进程的磁道读写需求

1->4->2->3->1->5

最短寻道时间优先
与磁头当前位置有关优先访问离磁头最近的磁道

4->5->3->2->1->1

4->3->2->1->1->5

扫描算法(电梯算法)
每次只往一个方向移动到达一个方向需要服务的尽头再反方向移动

4->3->2->1->1->5

循环扫描算法
只能往一个方向读取

4->5->1->1->2->3

计算机的高速缓存

工作原理

先介绍以下概念:

字:是指存放在一个存储单元中的二进制代码组合

字块:存储在连续的存储单元中而被看作是一个单元的一组字

一个字有32位

一个字块共B个字

主存共M个字块

�∗�=主存总字数

�∗�∗32=主存总容量(bits)

字的地址包含两个部分

前m位指定字块的地址

后b位指定字在字块中的地址

屏幕截图 2023-11-30 225018.png

将主存对比缓存,我们发现:

  1. 存储的逻辑结构类似
  2. 缓存的容量较小
  3. 缓存的速度更快
  4. 缓存就是主存某些字块的复制

一个字有32位

一个字块共B个字

缓存共C个字块

CPU与缓存的关系:

  1. CPU需要的数据在缓存里
  2. CPU需要的数据不在缓存里

不在缓存的数据需要去主存拿

如何衡量CPU在缓存取成功的几率呢?

就有了命中率

访问主存次数:Nm

访问Cache次数:Nc

命中率ℎ=��/��+��

工作原理:

  1. 命中率是衡量缓存的重要性能指标
  2. 理论上CPU每次都能从高速缓存取数据的时候,命中率为1

除了命中率,还有访问效率

针对命中率和访问效率,为了他们更高,所以需要性能良好的缓存替换策略

高速缓存替换策略

当高速缓存里没有数据,就需要从主存载入所需数据

随机算法

随机选取

先进先出算法(FIFO)

把高速缓存看做是一个先进先出的队列

优先替换最先进入队列的字块

最不经常使用算法(LFU)

优先淘汰最不经常使用的字块

需要额外的空间记录字块的使用频率

使用频率?访问一次就加1

最近最少使用算法(LRU)

优先淘汰一段时间内没有使用的字块

有多种实现方法,一般使用双向链表

把当前访问节点置于链表前面(保证链表头部节点是最近使用的)

计算机的指令系统

机器指令的形式

组成部分:操作码和地址码

|操作码字段|地址码字段|

操作码

  1. 操作码指明指令所要完成的操作
  2. 操作码的位数反映了机器的操作种类

地址码

  1. 地址码直接给出操作数或者操作数的地址(指定数据的地址,使得cpu可以运算)
  2. 分三地址指令、二地址指令和一地址指令

三地址指令

addr3通常是存储addr1和addr2的运算结果的

(addr1) OP (addr2) -> addr3

二地址指令

(addr1) OP (addr2) -> (addr1)或(addr2)

结果存储addr1或addr2

一地址指令

(addr1)OP->(addr1) 自己对自己操作

(addr1)OP(ACC) -> (addr1) 自增行为

零地址指令

  1. 在机器指令中无地址码
  2. 空操作、停机操作、中断返回操作等

机器指令的操作类型

数据传输

  1. 寄存器之间、寄存器与存储单元、存储单元之间传送
  2. 数据读写、交换地址数据、清零置一等操作

算术逻辑操作

  1. 操作数之间的加减乘除运算
  2. 操作数的与或非等逻辑位运算

移位操作

  1. 数据左移(乘2)、数据右移(除2)
  2. 完成数据在算术逻辑单元的必要操作

控制指令

等待指令、停机指令、空操作指令、中断指令等

机器指令的寻址方式

指令寻址

顺序寻址、跳跃寻址

顺序寻址:正常执行,从101开始

跳跃寻址:到105这又跳跃到102

数据寻址

立即寻址

  1. 指令直接获得操作数
  2. 无需访问存储器

比如说这个6直接放在操作数里

直接寻址

  1. 直接给出操作数在主存的地址
  2. 寻找操作数简单,无需计算数据地址

间接寻址

指令地址码给出的是操作数地址的地址

需要访问一次或多次主存来获取操作数

计算机的控制器

控制器是协调和控制计算机运行的。

程序计数器

  1. 程序计数器用来存储下一条指令的地址
  2. 循环从程序计数器中拿出指令
  3. 当指令被拿出时,指向下一条指令

时序发生器

  1. 电气工程领域,用于发送时序脉冲
  2. CPU依据不同的时序脉冲有节奏的进行工作

指令译码器

  1. 指令译码器是控制器的主要部件之一
  2. 计算机指令由操作码和地址码组成
  3. 翻译操作码对应的操作以及控制传输地址码对应的数据

指令寄存器

  1. 指令寄存器也是控制器的主要部件之一
  2. 从主存或高速缓存取计算机指令

主存地址寄存器

保存当前CPU正要访问的内存单元的地址

使用地址总线与主存进行通信。

主存数据寄存器

保存当前CPU正要读或写的主存数据

使用数据总线与主存进行通信。

通用寄存器

  1. 用于暂时存放或传送数据或指令
  2. 可保存ALU的运算中间结果
  3. 容量比一-般专用寄存器要大

计算机的运算器

运算器是用来进行数据运算加工的

数据缓冲器

  1. 分为输入缓冲和输出缓冲
  2. 输入缓冲暂时存放外设送过来的数据
  3. 输出缓冲暂时存放送往外设的数据

ALU

  • ALU: 算术逻辑单元,是运算器的主要组成
  • 常见的位运算(左右移、与或非等)
  • 算术运算(加减乘除等)

注:A,B是输入,F是输出,K是n个控制器

状态字寄存器

  • 存放运算状态(条件码、进位、溢出、结果正负等)
  • 存放运算控制信息(调试跟踪标记位、允许中断位等)

通用寄存器

  • 用于暂时存放或传送数据或指令
  • 可保存ALU的运算 中间结果
  • 容量比一般专用寄存器要大

计算机指令的执行过程

指令执行过程

取指令和分析指令,是CPU在工作,执行指令是运算器在工作,这说明运算器和控制器不能同时工作,导致CPU的综合利用率并不高

CPU的流水线设计

  • 类似工厂的装配线
  • 工厂的装配线使得多个产品可以同时被加工
  • 在同一个时刻,不同产品均位于不同的加工阶段


目录
相关文章
学习计算机组成原理(王道考研)------第十一天https://zhengyz.blog.csdn.net/article/details/121706379?spm=1001.2014.3001.5502
这篇文章是关于计算机组成原理的王道考研学习笔记,主要介绍了半导体存储器RAM和ROM的相关知识。
学习计算机组成原理(王道考研)------第十一天https://zhengyz.blog.csdn.net/article/details/121706379?spm=1001.2014.3001.5502
|
3月前
|
监控 Shell 开发工具
https://developer.aliyun.com/article/1583352
https://developer.aliyun.com/article/1583352
|
4月前
|
存储 PyTorch 调度
https://developer.aliyun.com/article/1564927(7)
Transformers 4.37 中文文档(十九)
113 2
|
4月前
|
存储 Ubuntu Linux
https://blog.csdn.net/a1657054242/article/details/139965955?spm=1001.2014.3001.5502
https://blog.csdn.net/a1657054242/article/details/139965955?spm=1001.2014.3001.5502
37 0
|
5月前
针对持续不断的产品市场制造商的自动攻击合成 https://developer.aliyun.com/article/1512648?spm=a2c6h.13262185.profile.22.7e32b28arRWTOH T恤或卫衣 针对持续不断的产品市场制造商的自动攻击合成 针对持续不断的产品市场制造商的自动攻击合成
针对持续不断的产品市场制造商的自动攻击合成 https://developer.aliyun.com/article/1512648?spm=a2c6h.13262185.profile.22.7e32b28arRWTOH T恤或卫衣 针对持续不断的产品市场制造商的自动攻击合成 针对持续不断的产品市场制造商的自动攻击合成
49 0
|
2月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
1月前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
152 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
5月前
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
1月前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
87 4
|
2月前
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
文章介绍了如何配置HAProxy以支持HTTPS协议和实现服务器的动态上下线。
141 8
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线