计算机组织结构(八) 纠错
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
基本思想
方法: 添加一些位来存储附加信息以便校正
过程:
读入:$M$ 位的数据 $D$ 通过函数 $f$ 产生 $K$ 位的校验码 $C$
被读出:通过 $f$ 由$D’$ 生成 $C’’$与 $C’$ 相比较
无错误: 发送 $D’$
有错误并可以纠正,发送 $D’’$
有错误且不能纠正, 报告
奇偶校验法
过程$D=D_M…D_2D_1$
奇校验: $D_M \oplus …D_2 \oplus D_1 \oplus 1$
偶校验: $D_M \oplus …D_2 \oplus D_1$
检查 $S=C’ \oplus C’’$
$S=1$ 错误的位数为奇数
$S=0$ 错误的位数为偶数或者无错误
注意: 此处是指$C$与$D$合在一起
优势:
廉价
劣势:
无法确定出错的位置
无法纠正错误
适用于较短的 $D$
汉明码
基本思想:
将数据的位分组, 每位都分到多个 ...
计算机组织结构(九) RAID 磁盘冗余阵列
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
RAID基本思想使用多个磁盘, 分散的 I/O 请求, 以至于单一的 I/O 请求可以被并行处理, 只要请求的数据分散在不同的磁盘上.
特点
RAID 是被视为一块逻辑磁盘的一组物理磁盘.
数据交叉分布在物理磁盘上.
冗余的磁盘可用于存储奇偶校验信息, 以保证再磁盘故障的情况下的数据可恢复性.
RAID 0数据在可用的磁盘上条带 (strip) 状排列, 如果数据跨物理磁盘, 则同时读写
不含冗余盘
用途:
高速率数据传输
高速 I/O 请求
与单个的大容量磁盘相比:
优点: 若两个不同的 I/O 请求等待不同的两块数据, 如果这两块数据位于不同的物理磁盘, 就能加速.
缺点: 若数据跨盘, 只要其中的一块硬盘坏了, 所有的都不能读取.
RAID 1所有的数据都按 RAID 0 的方式存取, 只是每个数据都存两份 ( 镜像 ).
优点: 恢复很简单, 可以加速读取 ( 若两 ...
计算机组织结构(十) 内存管理
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
过去, 只有操作系统和一个程序在内存中.
现在, 操作系统和多个程序都在内存中. 程序等待 I/O 时, 为了避免处理器等待, 需要进行优化, 使得更多的程序可以加载入内存.
内存管理: 在多程序设计系统中, 内存的 “用户部分” 应该被进一步划分以适应多个程序, 这是由系统动态决定的.
加载更多程序的途径
增大内存
使用交换和重叠技术
当没有程序就绪的时候, 系统载入程序
分区和分页
虚拟内存
请求分页
虚拟地址
分区固定大小分区系统: 固定的大小
用户程序: 固定的大小, 但各不相同. 当加载一个程序的时候, 将其载入刚好能够容纳下这个程序的最小的区中.
缺点: 产生大量内部碎片.
可变大小分区系统: 固定的大小
用户程序: 按需分配
缺点: 产生大量外部碎片
分页基本思想:
将内存分为固定大小的块, 称为页框(页帧), 将程序分为固定大小的块, 称为页
将页加载入 ...
计算机组织结构(十一) 总线
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
总线芯片内部总线连接芯片的各个部分
例如连接寄存器, ALU和 CPU 的其他部分
通信总线连接主机和 I/O 设备或者连接不同的计算机系统
系统总线连接 CPU, 主存, I/O 控制器和其他的功能设备
内容总线可以分为三种功能组
数据线: 在系统模块之间移动数据. 数据线的数量决定了一次能能够传送的数据的最大容量
地址线: 指定数据线上的数据的来源或者去向. 地址线也用于 I/O 端口的寻址. 地址线的数量决定了寻址空间的大小
控制线: 控制对数据和地址线路的访问和使用.
各种控制信号:
时钟: 用于总线同步
总线请求(Bus Request): 表示模块需要获得对总线的控制
总线允许(Bus Grant): 表示发出请求的模块已经被允许控制总线
中断请求: 表示某个中断尚未被处理
中断响应: 未决的中断请求被响应
存储器写: 引起总线上的数据写入被寻址的单元
存储器读: 使所寻址的单元的数 ...
计算机组织结构(十二) 指令集: 特征
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
机器指令特征CPU 的操作由它所执行的指令确定, 这些指令被称为机器指令. CPU 能执行的各种不同指令的集合称为 CPU 的指令集
指令周期指令周期: 指单条指令所需的处理过程
取指令: 每次从内存中取一条指令
执行指令: 执行每条指令
只有关机时, 程序执行才会停止, 或者遇到致命错误或者停止计算机的指令.
指令周期状态图:
带有中断的指令周期带有中断的指令周期:
带有中断的指令周期状态图:
机器指令要素
操作码:指定要执行的操作
源操作数引用:操作会涉及一个或多个源操作数, 这是操作所需的输入
结果操作数引用:该操作可能产生一个结果
下一指令引用:它告诉处理器这条指令执行完成后到哪儿去取下一条指令
指令表示
每条指令都由一个位序列表示
指令格式:指令被划分为字段,对应于指令的要素
对于大多数指令集,使用一种以上的格式
符号表示:帮助程序员和教科书的读者处理指令
操作码用 ...
计算机组织结构(十三) 指令集:寻址方式和指令格式
📚 文档目录合集-数的二进制表示-定点运算BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
表示:
A: 指令中地址字段的内容
R: 指向寄存器的指令字段的内容
EA: 被访问未知的实际(有效)地址
(X): 存储器位置 X 或者寄存器 X 的内容
立即寻址 (Immediate Addressing)操作数存在于指令中:
操作数 = A
应用: 定义和使用常数, 或者设置变量的初始值.
优点: 获取操作书不需要访问存储器, 只获取指令
缺点: 数字的大小被限制为地址字段的大小
.jpg)
直接寻址 (Direct Addressing)地址字段包含着操作数的有效地址, 早期计算机常见
EA = A
优点: 只有一次存储器访问, 不需要进行专门计算
缺点: 只能提供有限的地址空间
间接寻址(Indirect Addressing)指令中地址字段只是一个存储器字地址, 而这个地址保存着操作数的全长度地址
EA = (A)
优点: 扩大了寻址空间
缺点: 需要访问 ...
C++ 多态的实现机制
若无特殊说明, 以下所有操作均在 32 位环境下进行
本篇举例子用的类:
123456789101112131415161718192021222324252627class Animal{public: Animal() {}; virtual void eat() { cout << "Animal::eat()" << endl; }; virtual void bark() { cout << "bark()" << endl; }; virtual ~Animal() {}; void growUp() { age += 1; }protected: int age = 10;};class Dog : public Animal{public: Dog() { age = 20; } vo ...