# 软件设计师
干巴爹哟~
# 进制的转化
进制转化 | 例子 | 技巧 |
---|---|---|
十进制转二进制 | 20.25 = 10100.01 | 整数部分除于2、小数部分乘于2 |
二进制转十进制 | ||
十进制转十六进制 | 30.25 = 1E.4 | 整数部分除于16、小数部分乘于16 |
十六进制转十进制 | 1E.4 = | |
十六进制转二进制 | 6E.3 = 01101110.0011 | 各自为营除于2、四位一组、前面补0 |
二进制转十六进制 | 01101110.0011 = | 四个为一组 |
八进制转二进制 | 216 = 10001110 | 各自为营除于2、三位一组、前面补0 |
二进制转八进制 | 10001110 = | 三个为一组 |
# 原码、反码、补码
十进制 = 原码 = 反码 = 补码 |
---|
1= [0000 0001] = [0000 0001] = [0000 0001] |
-1 = [1000 0001] = [1111 1110] = [1111 1111] |
3 - 5 = [0000 0011] - [1000 0101] = [0000 0011] + [1111 1011] = [1111 1110] = [1111 1101] = [1000 0010] = -2 |
# 浮点数运算(科学技术法)
操作说明 | 运算 |
---|---|
M是尾数 R是基数 e是指数 | N = M * |
正常计算 | 1000 + 119 |
科学计算 | 1.0 * |
指数向大对齐 (对阶) | 1.0 * |
尾数计算 | 1.119 * |
保证小数点前不为零且只有一位 (结束格式化) | 19.11 * |
# 计算机结构
Flynn
结构分类体系结构类型 结构 关键特性 代表 单指令流单数据流 SISD
控制部分(一个)、处理器(一个)、主存模块(一个) 单片机 单指令流多数据流 SIMD
控制部分(一个)、处理器(多个)、主存模块(多个) 各处理器以异步的形式处理同一条指令 阵列处理机(二维数组) 多指令流单数据流 MISD
控制部分(多个)、处理器(一个)、主存模块(多个) 理论上存在 多指令流多数据流 MIMD
控制部分(多个)、处理器(多个)、主存模块(多个) 实现作业、任务、指令各级全面并行 多处理机系统 CISC
与RISC
指令系统类型 指令 实现方式 其它 CISC
(复杂)数量多、使用频率差别大、可变长格式 微程序控制技术(微码) 研制周期长 RISC
(精简)单周期指令、操作寄存器、 Load
和Store
操作内存通用寄存器、硬布线逻辑控制、流水式 优化编译 流水线计算
操作 说明 题目 已知流水线运行指令时 取值 2 ns
、分析 2ns
、执行 1ns
求流水周期 以上面三个步骤消耗最久的周期为准 所以是 2 ns
求100条消耗时间 以理论公式优先
是指流水周期
是指次数
是指步骤理论公式 (2+2+1)+(100-1)*2 = 203
实践公式 (3+100-1)*2 = 204
流水线吞吐率计算
操作 说明 题目 已知 100 条指令流水周期 2 ns
一百条指令总耗时 203ns
吞吐率 指 令 条 数 流 水 线 执 行 时 间 最大吞吐率 流水加速比
操作 说明 题目 已知流水线运行指令时 取值 2 ns
、分析 2ns
、执行 1ns
条 指 令 的 加 速 比 不 使 用 流 水 线 时 间 使 用 流 水 线 执 行 时 间 流水线效率
操作 说明 题目 流水线运行指令时耗时分别是
、
、
、
总共运行 4 个指令个 任 务 占 用 的 时 空 区 个 流 水 段 的 总 时 空 区 理 论 公 式 流 水 线 时 间 指 令 阶 段 数
# 层次化存储结构
Cache
和主存器的平均周期操作 说明 题目 已知 Cache
的访问命中率为 0.95 周期时间为 1ns
主存器周期为 1000ns
求 Cache
和主存器的平均周期h
表示Cache
的访问命中率
表示Cache
的周期时间
表示主存器的周期时间0.95* 1 + (1-0.95)*1000 = 50.95ns
主存编址
操作 说明 题目 内存地址从 AC000H
到C7FFFH
按16bit
编址 由 28 片芯片构成16K
个存储单元求地址单元 C7FFFH
自增为C8000H
后减去AC000H
为1C000H
转为十进制为 114688 / 1024 =112K
求储存单元位数 (112 * 16) / (28 * 16) = 4
磁盘读取
pie "R0" : 9.09 "R1" : 9.09 "R2" : 9.09 "R3" : 9.09 "R4" : 9.09 "R5" : 9.09 "R6" : 9.09 "R7" : 9.09 "R8" : 9.09 "R9" : 9.09 "R10" : 9.09
1
2
3
4
5
6
7
8
9
10
11
12操作 说明 题目 如上图 磁道分成 11 个物理块 磁盘旋转周期为 33ms
单缓存区处理数据耗时3ms
顺序处理磁盘耗时 读取物理块平均耗时 3ms
而单缓存区导致数据处理完毕后需要旋转一圈才能读到下一块物理块计算 (33+3)*10+3+3 = 366
(一圈读取耗时+处理耗时)*剩余物理块数 + 第一块读取+ 第一块处理耗时
优化后耗时 33*2 = 66
两圈读取可完成系统可靠性分析
graph LR start[开始];A[R];B[R];C[R];D[R];E[R];F[R];G[R];done(结束); start-->A; A-->B; A-->C; A-->D; B-->E; C-->E; D-->E; E-->F; E-->G; F-->done; G-->done;
1
2
3
4
5
6
7
8
9
10
11
12
13操作 说明 已知上图每一步的可靠性为 R
求总体的可靠性
# 校验码
CRC
循环校验码原始报文为 11001010101
其生成多项式为
求CRC
编码后的结果
按照二进制拆分变为11011
原始报文按照上面格式位数减一后 补零为 110010101010000
用 110010101010000
和11011
做异或操作CRC
编码后的结果为0011
sequenceDiagram Title: CRC编码计算 participant melon as 计算 melon ->> melon : 源报文 110010101010000 melon ->> melon : 11001 / 11011 = 10 melon ->> melon : 10010 / 11011 = 1001 melon ->> melon : 10011 / 11011 = 1000 melon ->> melon : 10000 / 11011 = 1011 melon ->> melon : 10111 / 11011 = 1100 melon ->> melon : 11000 / 11011 = 11 melon ->> melon : 11000 / 11011 = 0011
1
2
3
4
5
6
7
8
9
10
11
12
13海明校验码
求 1011
的海明码根据公式 n
是位数r
是校验位下标数校验码为 3
个 分别是
、
、校验位公式 信 息 位 二 进 制 拆 分
、
、
、
、
、根据 1101
异或操作后可得
、
、海明码表格如下 7 6 5 4 3 2 1 位数 信息位 1 0 1 1 值 校验位 0 0 1 值