• 系统架构设计专业技能 · 计算机组成与结构


    现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
    Now everything is for the future of dream weaving wings, let the dream fly in reality.

    点击进入系列文章目录

    在这里插入图片描述

    一、计算机结构

    在这里插入图片描述

    1.1 CPU 组成

    • 运算器
      算术逻辑单元ALU:数据的算术运算和逻辑运算
      累加寄存器AC:通用寄存器, 为ALU提供一个工作区, 用于暂存数据
      数据缓冲寄存器DR:写内存时,暂存指令或数据
      状态条件寄存器PSW:存状态标志与控制标志 (争议:也有将其归为控制器的)

    • 控制器
      程序计数器PC:存储下一条要执行指令的地址
      指令寄存器IR:存储即将执行的指令
      指令译码器ID:对指令中的操作码字段进行分析解释
      时序部件:提供时序控制信号

    1.2 冯·诺依曼结构与哈佛结构

    • 冯·诺依曼结构
      冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一
      起的存储器结构。
      特点:
      (1) 一般用于PC处理器,如I3,I5,I7处理器
      (2) 指令与数据存储器合并在一起
      (3) 指令与数据都通过相同的数据总线传输

    • 哈佛结构
      哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并
      行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储
      器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。
      特点:
      (1) 一般用于嵌入式系统处理器(DSP) 数字信号处理(DSP, Digital Signal Processing)
      (2) 指令与数据分开存储,可以并行读取,有较高数据的吞吐率
      (3) 有4条总线:指令和数据的数据总线与地址总线

    1.3 嵌入式芯片

    在这里插入图片描述

    二、存储系统

    2.1 层次化存储结构

    在这里插入图片描述

    2.2 Cache

    • Cache的功能:提高CPU数据输入输出的速率, 突破冯·诺依曼瓶颈, 即CPU与存储系统间数据传送带宽限制。

    • 在计算机的存储系统体系中, Cache是访问速度最快的层次。

    • Cache对程序员来说是透明的。

    • 使用Cache改善系统性能的依据是程序的局部性原理。
      时间局部性
      空间局部性

    • 时间局部性:指程序中的某条指令一旦执行,不久以后该指令可能再次执行,典型原因是由于程序中存在着大量的循环操作。

    • 空间局部性:指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。

    • 工作集理论:工作集是进程运行时被频繁访问的页面集合。

    例:

    inti, j, s=0, n=10000;
    for(i=1; i<=n; i++)
    	for(j=1; j<=n; j++)
    			s+=j;
    printf("结果为:%d", s) ;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如果以h代表对Cache的访问命中率, t1表示Cache的周期时间, t2表示主存储器周期时间, 以读操作为例, 使用“Cache + 主存储器” 的系统的平均周期为t3,则
    t3 = h x t1+(1 - h) × t2
    其中,(1 - h)又称为失效率(未命中率)

    2.3 主存编址

    • 存储单元
      存储单元个数 = 最大地址-最小地址 + 1

    • 编址内容
      按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字
      按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。

    • 总容量 = 存储单元个数 * 编址内容

    • 根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即:
      总片数 = 总容量 / 每片的容量

    在这里插入图片描述

    2.4 磁盘管理

    在这里插入图片描述
    存取时间 = 寻道时间 + 等待时间
    寻道时间是指磁头移动到磁道所需的时间;
    等待时间为等待读写的扇区转到磁头下方所用的时间。
    在这里插入图片描述
    读取磁盘数据的时间应包括以下三个部分:
    (1) 找磁道的时间。
    (2) 找块(扇区的时间,即旋转延迟时间。
    (3) 传输时间。

    • 疑问??:
      存取时间 = 寻道时间 + 等待时间(平均定位时间 + 转动延迟)这个公式我认为有问题。
      我认为应是:存取时间=寻道时间+转动延迟+存(或取)磁盘扇区内容的时间;
      如果是上面讲的对的,该怎么理解,如果是错的,错在哪里?

    • 平均存取时间(Average Access Time) ,是指磁头找到指定数据的平均时间。
      平均存取时间是指磁头找到指定数据的平均时间。通常它是硬盘平均寻道时间和平均潜伏时间(等待时间)之和。平均存取时间最能代表硬盘找到某一数据所用的时间,数值越小越好。

    • 平均访问时间 = 平均寻道时间 + 平均等待时间

    2.5 磁盘调度

    在这里插入图片描述

    • 先来先服务(FCFS)
    • 最短寻道时间优先(SSTF)
    • 扫描算法(SCAN)
    • 循环扫描(CSCAN)算法

    在这里插入图片描述
    在这里插入图片描述

    三、数据传输控制方式

    在这里插入图片描述

    四、总线

    • 一条总线同一时刻仅允许一个设备发送,但允许多个设备接收。所以总线是半双工模式
    • 半双工与全双工
    • 串行总线与并行总线

    总线的分类:

    • 数据总线(DataBus,DB) : 在CPU与RAM之间来回传送需要处理或是需要储存的数据。
    • 地址总线(Address Bus, AB) : 用来指定在RAM (Random Access Memory)之中储存的数据的地址。
    • 控制总线(Control Bus,CB): 将微处理器控单元(Control Unit))的信号,传送到周边设备。 伟

    五、CISC与RISC

    在这里插入图片描述

    六、流水线

    • 相关参数计算:流水线执行时间计算、流水线吞吐率、流水线加速比等。
    • 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。
      各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      流水线加速比计算:
      在这里插入图片描述

    七、校验码

    在这里插入图片描述

    7.1 奇偶校验

    • 奇偶校验码的编码方法是: 由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。

    • 奇校验: 整个校验码(有效信息位和校验位)中“1”的个数为奇数。
      偶校验: 整个校验码(有效信息位和校验位)中“1”的个数为偶数。

    • 奇偶校验,可检查1位的错误,不可纠错。

    7.2 循环校验码CRC

    CRC校验, 可检错, 不可纠错。
    循环冗余校验(CRC, Cyclic Redundancy Check)

    • CRC的编码方法是:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码),以及如何从k+r位信息码判断是否出错。

    • 循环冗余校验码编码规律如下:
      ①把待编码的N位有效信息表示为多项式M(X);
      ②把M(X)左移K位,得到M(X)×XK,这样空出了K位,以便拼装K位余数(即校验位);
      ③选取一个K+1位的产生多项式G(X),对M(X)×XK做模2除;
      ④把左移K位以后的有效信息与余数R(X) 做模2加减, 拼接为CRC码, 此时的CRC码共有N+K位。

    • 把接收到的CRC码用约定的生成多项式G(X) 去除, 如果正确, 则余数为0; 如果某一位出错,
      则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有唯一的对应关系。

    什么是模2除法,它和普通的除法有何区别?
    模2除法是指在做除法运算的过程中不计其进位的除法。
    例如,10111对110进行模2除法为:

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    npm常见相关命令
    Nacos学习笔记
    两个坑:Integer对象比较,MySql中in()、not in()为空
    TCP协议
    [论文笔记]DouZero: Mastering DouDizhu with Self-Play Deep Reinforcement Learning
    python创建一个简单的flask应用
    哨兵模式(sentinel)
    mysql数据库 - 统诉
    数据库系统原理与应用教程(010)—— 概念模型与数据模型练习题
    webpack构建01-vue项目之 手动webpack打包
  • 原文地址:https://blog.csdn.net/weixin_30197685/article/details/132784518