數據表示
(1)進制的轉換
按權展開法 短除法。。。。。
(2)原碼 反碼 補碼 移碼
原碼:二進制表示數
反碼:原碼基礎上符號位不變,其他位取反(正數不變)
补码:反碼基礎上末尾加1,溢出則取剩餘數(正數不變,計算機裏面使用補碼進行加減法運算)
移碼:補碼基礎上符號位取反(計算機裏面使用補碼進行加減法運算)
+1 | -1 | 1+(-1) | |
---|---|---|---|
原码 | 0000 0001 | 1000 0001 | 1000 0010 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
补码 | 0000 0001 | 1111 1111 | 0000 0000 |
移码 | 1000 0001 | 0111 1111 | 1000 0000 |
(3)浮點數運算 N = 尾數*基數指數
一般尾數用補碼表示,階碼用移碼表示,階碼的位數表示範圍,位數決定精度。对阶:指數小向指數大看齊,尾數右移
(4)浮点数的存储 阶符+阶码+数符+尾数
float类型有一个符号位(S),有8个指数位(E),和23个有效数字位(M)
double类型有一个符号位(S),有11个指数位(E),和52个有效数字位(M)
運算器與控制器
(1)CPU : 运算器, 控制器, 寄存器组, 以及内部总线
(2)运算器 :算术逻辑单元ALU,累加寄存器AC,数据缓冲寄存器DR,状态条件寄存器PSW(争议)
(3)控制器 :程序计数器PC,指令寄存器IR,地址寄存器AR,指令译码器ID,时序部件
Flynn分類
- 单指令流单数据流(SISD):单处理器系统
- 单指令流多数据流(SIMD):超级向量处理机/并行处理机
- 多指令流单数据流(MISD):不存在
- 多指令流多数据流(MIMD):多处理器系统
指令基本概念
一条有意义的计算机语句 :操作数比如加减运算,也可分为三地址,二地址,一地址,零地址指令(宕机)
操作码字段 | 地址码字段 |
---|---|
OP | A1–A2–A3 |
OP | A1–A2 |
OP | A1 |
OP | 零地址 |
寻址方式
- 立即寻址:操作数就在指令中
- 直接寻址:指令存放操作数地址
- 间接寻址:指令存放操作数地址的地址
- 寄存器寻址:指令存放在寄存器
- 寄存器间接寻址:寄存器存放的是操作数的地址
复杂指令集CISI 与 精简指令集RCISI
比较方式 :指令数量,指令使用频率,寻址方式,寄存器,流水线支持,高级语言支持
- CISC : 复杂,指令数量多,频率差别大,多寻址
- RISC : 精简,指令数量少,操作寄存器,单周期,少寻址,多通用寄存器,流水线
类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术 | 研制周期长 |
RISC | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有load/store操作内存 | 支持方式少 | 增加了通用寄存器,硬布线逻辑支持,适合采用流水线 | 优化编译,有效支持高级语言 |
流水綫
(1)流水线执行时间 :流水线周期,执行时间最长的一段任務時間 Δt ,每一條指令有k个任務, 縂共n條流水綫指令
理论公式 :(t1+…+tk)+(n - 1)* Δt (第一条指令时长+后面每一条 * 指令最長時間)
实践公式 : K * Δt + (n - 1) * Δt(每一个环节都给与Δt的时间,k个环节)
(2)流水线吞吐率 :单位时间所完成的指令数量
TP = 指令条数/流水线时间
(3)最大吞吐率 :TPmax = I/Δt
(4)流水线加速比 :不使用流水线所用的时间与使用流水线所用的时间比即为加速比
(5)流水线效率 :流水线的设备利用率被称为流水线的效率。
(6)超标量流水线 :增加流水线数量 ()
存儲系統
CPU寄存器, Cache缓存, 内存(RAM ROM) 外存(硬盘)
(1) Cache - 局部性原理(抖动)
当前数据在cache里面称为命中,假如h表示命中率,t1表示缓存周期,t2表示主存的周期,如果使用“cache+主存”的方式,则生命周期t3 = h*t1 + (1-h)*t2
(2)Cache 映像
直接相连映像 :將主存劃分爲緩存大小的區,區與區直接映射,需要存儲區號,冲突率最高,但訪問效率高。
全相联映像 :將主存劃分爲緩存塊大小的塊(頁),塊與塊隨機映射,需要存儲塊號(頁號),冲突率最低,訪問效率低。
组相联映像 :將主存劃分爲緩存大小的區, 區與區映射,區内内存塊隨機映射,需要存儲區號+塊號(頁號),冲突率折中
區 :主存大小可以劃分爲多少個緩存大小 (主存容量 / 緩存容量)
頁 :内存塊 (頁内地址)
存儲單元 :内存塊
(3)主存编址与计算 - 最小寻址单位是字节 注意單/雙字節編碼大小,有的8bit,有的16bit …
总容量 = (尾地址 - 首地址 + 1) x 最小存储单元大小 eg.(43FFH - 4000H + 1) x 16bit
總綫系統
一條總綫只允許一設備發送,但允許多個設備接收
數據總綫 :在CPU和RAM之間來回傳送需要處理或是需要儲存的數據
地址總綫 :用來指定在ram之中存儲的數據地址
控制總綫 :將微處理器控制單元的信號傳送到周邊設備,常見的USB bus和1394 bus
串并聯系統可靠性(參考電阻串并聯)
串聯 λ = λ1 + λ2 +…+ λn
并聯 λ = 1 - (1 - λ1)x (1 - λ2)x (1 - λ3)…
校驗碼
(1)碼距 :两个码组对应位上数字的不同位的个数称为码组的距离, 简称码距
(2)奇校驗 :將編碼裏面1的個數保持奇數個 - 可以檢錯不可以糾錯
(3)偶校驗 :將編碼裏面1的個數保持偶數個 - 可以檢錯不可以糾錯
(4)循環冗餘校驗 :多項式的模2除法 - 可以檢錯不可以糾錯
將碼段生成多項式,碼段對多項式進行除法運算,將餘數補在碼段最後,保證能整除
(5)海明碼校驗 : 可以檢錯可以糾錯
參考一篇別人的原創,個人感覺比較通俗易懂了海明碼詳解