0%

计算机系统基础学习笔记

数字逻辑电路基础

全加器 溢出标志的逻辑表达式 因为若为两个正数相加,最高位必然没有进位,而弱次高位有进位,则说明溢出 若为两个负数相加,最高位必然有进位,若次高位没有进位,则说明溢出

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 开始向高地址增长。