计算机组成与体系结构

概述

计算机组成结构
  1. 主存储器:内存
  2. 辅助存储器:外存(辅存)

CPU 组成

CPU(中央处理单元)由运算器和控制器组成

运算器

  1. 算数逻辑单元ALU:数据的算数运算和逻辑运算
  2. 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用来暂存数据
  3. 数据缓冲寄存器DR:写内存时,暂存指令和数据
  4. 状态条件寄存器PSW:存状态标志与控制标志

控制器

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

冯诺依曼结构 vs 哈佛结构

冯诺依曼结构

也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。特点:

  1. 一般用于PC处理器,如I3,I5,I7处理器
  2. 指令与数据存储器合并在一起
  3. 指令与数据都通过相同的数据总线传输
  • DB:数据总线,用于传输数据
  • AB:地址总线,用于传输地址

哈佛结构

是一种将程序指令存储和数据存储分开的存储器结构。是一种并行体系结构,主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址,独立访问。特点:

  1. 一般用于嵌入式系统处理器(DSP, 数字信号处理,Digital Sinal Processing)
  2. 指令与数据分开存储,可以并行读取,有较高数据的吞吐率
  3. 有4条总线,指令和数据的数据总线(DB)和地址总线(AB)
嵌入式 - 芯片

层次化存储结构

层次化存储结构
  1. CPU:容量只有比特位
  2. Cache:程序员不能对 Cache 操作
  3. 内存(主存):DRAM vs ROM
  4. 外存(辅存)

在整个运行过程中,使用局部性原理从而可以运行64G(很大容量)的软件

Cache

  1. 提高 CPU 数据输入输出的速率,突破冯诺依曼瓶颈,即 CPU 与存储系统间数据传送带宽限制
  2. Cache 对程序员来说是透明的
  3. 使用 Cache 改善系统性能的依据是程序的局部性原理(时间局部性 & 空间局部性)
  4. 时间局部性:指程序中的某条指令一旦执行,不久以后该指令可能再次执行。典型原因是由于程序中存在着大量的循环操作
  5. 空间局部性:指一旦程序访问了某个存储单元,不久之后,其附件的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内。典型情况是程序顺序执行
  6. 工作集理论:工作机是进程运行是被频繁访问的页面集合
  7. 高命中率 + 快速反应速度
  8. 在容量确定的情况下,替换算法是影响 Cache 命中率的关键因素。替换算法的时间复杂度影响的是时间效率

主存编址计算

  1. 存储单元
    • 存储单元个数 = 最大地址 - 最小地址 + 1
  2. 编址内容
    • 按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字(字长与计算机相关)
    • 按字节编址:存储体的存储单元是字节存储单元,即最小寻址单元是一个字节(1byte == 8bit
  3. 总容量 = 存储单元个数 * 编址内容
  4. 根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数。即总片数 = 总容量 / 每片的容量
  5. 2^10 = 1024(1KB) => 8K = 8 * 2 ^ 10bit
  6. 2^20 = 2^10 * 2^10(1MB)
  7. 2^30 = 2^10 * 2^10 * 2^10(1GB)
  8. 84000H => 表示十六进制
  9. 8FFFFH + 1 - 84000 = 90000H - 84000H = C000H = 12 * 16 ^ 3
假设某计算机系统的主存容量为 64MB,采用 字节编址 方式,地址总线宽度为 32位。请回答以下问题:
1. 计算主存的地址范围(用十六进制表示)。
2. 如果该系统的 Cache 采用 直接映射 方式,Cache 大小为 512KB,每个 Cache 行大小为 64B,请计算:
  - Cache 的总行数。
  - 地址中用于标识 Cache 行的位数。
  - 地址中用于标识 Cache 标签的位数。
3. 如果系统采用 分页存储管理,页大小为 4KB,请计算:
  - 主存中共有多少页。
  - 逻辑地址中页内偏移量占用的位数。
  - 逻辑地址中页号占用的位数。
答案

磁盘管理

磁盘
  1. 存取时间 = 寻道时间(平均定位时间,磁头移动到磁道所需的时间) + 等待时间(转动延迟,等待读写的扇区转到磁头下方所用的时间)
  2. 平均存取时间(Average Access Time)指磁头找到指定数据的平均时间。数值越小越好

磁盘优化分布存储

题目
示意图

磁盘单缓冲区与双缓冲区读取

题目
示意图

磁盘移臂调度算法

  1. 先来先服务(FCFS)
  2. 最短寻道时间优先(SSTF)
  3. 扫描算法(SCAN,电梯算法):双向扫描
  4. 循环扫描算法(CSCAN):单向扫描
FCFS
SSTF

数据传输控制方式

  1. 程序控制(查询)方式:分为无条件传送和程序查询方式两种。方法简单,硬件开销小,但I/O能力不高,严重影响 CPU 的利用率
  2. 程序中断方式:与程序控制方式相比,中断方式因为 CPU 无需等待而提高了传输请求的响应速度。CPU 与 I/O 并行,断点信息保存在中。Case:鼠标 & 键盘
  3. DMA 方式:为了在主存与外设之间实现高速、批量数据交换而设置的。DMA 方式比程序控制方式与中断方式都高效(DMAC 向总线裁决逻辑提出总线请求,CPU 执行完当前总线周期即可释放总线控制权。此时 DMA 相应,通过 DMAC 通知 I/O 接口开始 DMA 传输)。Case:移动硬盘
  4. 通道方式
  5. I/O 处理机

总线

总线
  1. 同一时刻仅允许一个部件向总线发送消息。否则会产生信号冲突
  2. 单工:只在一个方向上传输信息
  3. 半双工:可在两个方向上轮流传输信息
  4. 全双工:可在两个方向上同时传输信息
  5. 串行总线传输时波特率是总线初始化时预先定义好的,使用过程中可以改变
  6. 串行总线是按位(bit)传输数据的,其数据的正确性依赖于校验码纠正
  7. 串行总线的数据发送和接收可以以软件查询方式或者中断方式工作

CISC & RISC

CISC & RISC

RISC

  1. 增加寄存器数目,以减少访存次数
  2. 用硬布线电路实现指令编码,以尽快完成指令译码

流水线技术

指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各个部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度

流水线

流水线执行时间计算

  1. 流水线周期为执行时间最长的一段
  2. 流水线执行时间计算公示:一条指令执行时间 + (指令条数 - 1)* 流水线周期
    • 理论公式:(t1 + t2 + ... + tk) + (n - 1) * t
    • 实践公式:k * t + (n - 1) * t
流水线

吞吐率(Though Put rate, TP)

指在单位时间内流水线所完成的任务数量和输出的结果数量。公式:
TP = \frac{指令条数}{流水线执行时间}

  • 流水线最大吞吐率公式:
    TP_{max} = \lim_{n \to \infty} \frac{n}{(k + n - 1)t} = \frac{1}{t}

流水线加速比

完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比(流水线加速比 > 1)。公式:

S = \frac{不使用流水线执行时间}{使用流水线执行时间}

校验码

冗余信息组成

校验码

奇偶校验

由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。奇偶校验,可检查1(奇)位的错误,不可纠错

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

循环校验码 CRC(Cyclic Redundancy Check)

在 k 位信息码之后拼接 r 位校验码。应用 CRC 码的关键是如何从 k 位信息位简便地得到 r 位校验位(编码),以及如何从 k + r 位信息码判断是否出错。可检错,不可纠错。循环冗余校验码编码规律如下:

  1. 把待编码的 N 位有效信息表示为多项式 M(X)
  2. 把 M(X) 左移 K 位,得到 M(X) * Xk,这样空出了 K 位,以便拼装 K 位余数(即校验位)(余数拼接在后面)
  3. 选取一个 K + 1 位的产生多项式 G(X),对 M(X) * Xk 做模2除
  4. 把左移 K 位以后得有效信息与余数 R(X) 做模2加减,拼接为 CRC 码,此时的 CRC 码共有 N + K 位
  5. 把接收到的 CRC 码用约定的生成多项式 G(X) 去除,如果正确,则余数为0;如果某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有唯一的对应关系
CRC 例

模2除法

指在做除法运算的过程中不计其进(借)位的除法

模2除法

海明校验

校验码位数公式:

2^r \geq m + r + 1

  1. m:已知的信息位位数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容