计算机组织结构(八) 纠错
📚 文档目录合集-数的二进制表示-定点运算-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$ 汉明码 基本思想: 将数据的位分组, 每位都分到多个 ...
计算机组织结构(七) 外存
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 特点 大容量,非常用 非易失性 类型 磁盘 光盘 磁带 U盘,SSD 磁盘 磁盘是一种由非磁性材料制成的称为衬底的圆盘,其上涂有一层磁性材料. 衬底材料: 铝合金,铝,玻璃.. 玻璃衬底的优点: 改善磁层表面的均匀性,增加磁盘的可靠性. 显著减少整个表面的缺陷,有助于减少读写错误. 支持更低的飞行高度. 更好的刚度,降低了磁盘的动力需求. 更好的耐冲击和耐磨损能力. 分类: 软盘 硬盘 物理特性 采用可移动磁头,每面只有一个读-写头.磁头固定在支架上,支架可以伸缩,使磁头可以定位到任意磁道. 任何时候,所有的磁头都定位在磁道上,所有的磁道都是同心圆. 磁盘上相对位置相同的所有磁道的集合称为柱面. 读写机制 读-写是通过一个叫做磁头的导电线圈进行的. 读写期间,磁头静止不动,盘片高速旋转 头的数量: 单: 读写共用一个头.用于软盘, 老式硬盘. 双: 单独的读,写头.用于现代 ...
计算机组织结构(六) Cache
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 为什么需要 cache? 因为 CPU 比 内存的速度要快得多.` 基本思路 使用较小, 较快的 Cache 和相对较大,更为缓慢的 Memory Cache 中包含了 Memory 中数据的副本 Cache 位于中央处理器和存储器之间,并可以被集成在 CPU 或者作为主板上的一个模块. Cache 工作的原理 Check :当处理器试图读取内存中的一个字的时候,会先检查该字是否在 Cache 中. Hit : 如果确实在, 这个字被传送给处理器. Miss : 否则,由一定数量的字组成的一块( block )主存中的数据 被读入 Cache ,然后传给处理器. 时间局部性:未来将要使用的信息(指令和数据), 可能是现在正在使用的信息. 空间局部性:未来将要使用的信息, 很可能与正在使用的信息在存储空间上是邻近的(比如遍历一个一维数组). 判断 Hit 与 Miss 冯诺依曼计算机的设计:内存中 ...
计算机组织结构(五) 内置存储器
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 Memory存储器由一定数量的单元构成,每个单元可以被唯一标识,每个单元都有存储一个数值的能力. 地址:单元的唯一标识符(采用二进制). 地址空间:可唯一标识的单元总数. 寻址能力: 存储在每个单元中的信息的位数 大多数存储器是字节可寻址的,执行科学计算的计算机通常是64位寻址的. 半导体存储器 主存中广泛地运用了半导体芯片. Memory Cell:半导体主存的基本元素. 特性: 它们展示了两种稳定(半稳定)的状态,可以用于表示二进制0和1. 能够被写入至少一次. 可以被读. 半导体存储器类型 RAMRAM Random-Access Memory Characteristics 易于读/写且快速 易失(断电丢失数据) 类型 DRAM:Dynamic RAM SRAM:Static RAM DRAM 以电容器上的电荷来存储数据 电容器中是否存有电荷被解释称二进制1和0 ...
计算机组织结构(四) 浮点数四则运算
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 浮点数的加减运算$X=X_S \times 2^{X_E},Y=Y_S \times 2^{Y_E}$ 步骤 检查是否为零 阶码对齐,尾数移位 对尾数加或减 标准化结果 溢出判断 对阶 求阶差$\Delta E=\begin{cases} =0,已经对齐\\ne0,\begin{cases}大的向小的对齐:减小较r大的阶码,同时扩大其尾数\小的向大的对齐:增大较小的阶码,同时减小其尾数 \end{cases} \\end{cases}$在计算机中,尾数左移可能会使最高位数据丢j失,故采用小阶向大阶对齐 浮点数加减的过程 一些溢出情况1. Exponent overflow 一个正的指数超出了指数的最大值(即127) 指定为$-\infty 或 +\infty$ 2. Exponent underflow 一个负的指数小于了指数的最小值(即-126) 指定为0. 3. Signi ...
计算机组织结构(三) BCD 码
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 每 4 位二进制数表示十进制的一位数 加法:由于真值的进位是 10,而 BCD 码的进位是 16,所以在真值产生进位的时候需加 6 强制进位. 减法:类似于补码减法. BCD”补码”与原码相加得 9.若结果是负数(“补码”表示),需转化成负号+原码的形式.
计算机组织结构(二) 定点运算
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 1. 移位运算1.算数移位 符号位不变, 左移相当于乘以 2, 右移相当于除以 2(左侧全补符号位). 2. 逻辑移位 无符号数的移位, 右移时永远在高位填 0. 2. 加法运算1. 全加器 $𝑆_𝑖=𝑋_𝑖⊕𝑌_𝑖⊕𝐶_{𝑖−1}$ $𝐶_𝑖=𝑋_𝑖𝐶_{𝑖−1}+𝑌_𝑖𝐶_{𝑖−1}+𝑋_𝑖𝑌_𝑖$ 2. Serial Carry Adder 缺点: 速度慢. 延时(OR AND 1ty, XOR 3ty) Cn: 2n ty Sn: 2n+1 ty 3. Carry Look Ahead Adder注意:这里的+均为“或” \begin{aligned} 𝐶_𝑖&=𝑋_𝑖𝐶_{𝑖−1}+𝑌_𝑖𝐶_{𝑖−1}+𝑋_𝑖𝑌_i\\ \\ C_1&=𝑋_1𝑌_1+(𝑋_1+𝑌_1)𝐶_0\\ 𝐶_2&=𝑋_ ...
计算机组织结构(一) 数的二进制表示
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 二进制补码整数补数:负数加模得补数,负数的补数和负数的绝对值相加等于模 浮点数小密 大稀疏
Java 基础(十二) 流
1. 流的基础类 InputStream OutputStream所有的输入、输出都基于这两个类. 这两个类的操作很有限, 都是字节( byte )层面的读写.注: Java 中 char 为两个字节 ( \u0000~\uFFFF ), byte 为一个字节 (-128 ~ 127). 12345678910111213141516package hello;import java.io.IOException;public class Main { public static void main(String[] args) { byte[] buffer = new byte[1024]; try { int len = System.in.read(buffer); String s = new String(buffer,0,len); System.out.println("读到了"+len+"字节"); ...
Java 基础(十一) 异常
1. 捕获异常的机制1234567try { //可能产生异常的代码} catch (Type1 id1) { //处理 Type1 异常的代码} catch (Type2 id2) { //处理 Type2 异常的代码} 异常机制的最大好处: 清晰地分开了处理正常的业务逻辑代码和遇到情况时的代码Java 中用try{}来包裹可能出现异常的代码块, 并用 catch(Type id){}捕捉并处理异常. 流程图 2. 捕捉到的异常在 catch(type id){}的代码块中, 可以调用 id 的 一些方法, 比如getMessage(), printStackTrace() 来获得相关的信息.如果在当前层面上无法全部处理, 可以通过 throw 再次将异常抛向上一层 有风险、可能会抛出异常的代码 1234567//必须声明它会抛出 BadExceptionpublic void takeTisk() throws BadException ...






