数字逻辑电路基础
全加器 溢出标志的逻辑表达式 因为若为两个正数相加,最高位必然没有进位,而弱次高位有进位,则说明溢出 若为两个负数相加,最高位必然有进位,若次高位没有进位,则说明溢出
IEEE754 标准
- 32 位包括 1 位符号位 8 位阶码 23 位有效位
- 64 位包括 1 位符号位 52 位有效位
- 规格化尾数最高位总是 1,所以隐含表示,省略一位
- 阶码使用移码表示
- 全 0 +0
- 符号位 1 之后全 0 -0
- 浮点数除 0 的结果是正负无穷大,而不是一出一场
- 0 11111111 00000000000000000000000 正无穷大
- 1 11111111 00000000000000000000000 负无穷大
- Not a Number 非数 sqrt(-0.4) 0/0 使用全 1 的阶码和非 0 的尾数
- 非规格化数
- 阶码全 0 尾数非 0
C 语言中涉及的运算
- 无符号数 逻辑左(右)移动,有符号数 算数左(右)移动
- 溢出标志 of,最高位和次高位的进位 Cn 异或 Cn-1, 当两个正数相加时,最高位不会进位,若次高位进位,则为溢出 ,当两个负数相加,最高位必然进位,若次高位不进位,则为溢出,正数加负数永远不会溢出
- 乘法指令分有符号乘和无符号乘 若只取低 n 位 不考虑溢出 则可以只使用无符号乘 由程序员自行判断是否溢出
- 乘法可以转换成加法和移位运算的组合
- 对于带符号正数 出了 -2^n / -1 = 2^n-1 会发生溢出外,其余情况都不会发生溢出
- 对于正数 对商取 floor 对于负数 对商取 ceil
- 编译器对于除数为 2 的倍数的除法运算使用移位优化,对于无符号数,带符号数正整数,移除的低位直接舍弃,对于带符号负整数,由于商取 ceil,需要现加上一个偏移量 2^k-1,然后再右移 k 位,低位截断
编译
汇编结果是一个可重定位目标文件,其中包含的是不可读的二进制代码,必须用相应的工具软件来查看其内容
生成的.o 文件可重定位的目标文件 程序中的地址尚未确定 通过链接后方可执行
磁盘驱动器
柱面号就是磁道号
层次结构存储系统
- 非易失存储器 Nonvolatile Memory 易失存储器 Volitile Memory
- SRAM 不采用地址引脚复用方式,DRAM 采用地址引脚复用方式
- 内存位宽是 64bit DDR3 采用 8 位预读,若内部核心频率为 133.25MHZ,则每秒传送的数据次数为 133.25M*8 = 1066M 次,带宽为 1066 M*8B=8.5GB/S
- 当写不命中时,有写分配法和非写分配法。采用写分配法时,需要分配一个 cache 空行,以将主存块复制到 cache,当采用非写分配法时,不将主存块分配到 cache。因此,回写策略下,一定采用写分配法,在全写策略下,两种分配方式都可采用
- 栈和堆合称堆栈,栈区从 0xc0000000 开始向低地址增长,共享库区从 0x400000000 向高地址增长,只读区从 0x08048000 开始向高地址增长。