[Computer Organizaion] A simple outline

Computer Organization Outline

 

Short-Hand

  • 固件功能类似软件,形态类似硬件。
  • 软件与硬件具有逻辑功能的等价性。
  • 计算机系统层级结构中,微程序属于硬件级
  • 完整的计算机系统通常包括:硬件系统与软件系统
  • CPU地址线数量 与 内存容量 密切相关
  • 冯诺依曼计算机的核心思想是 存储程序和程序控制
  • 计算机中表示地址时使用 无符号数
  • 当 -1 < x < 0 时,[x]补 = 2+x
  • 字长8位的某二进制补码整数为 11011010 ,则该数的标准移码为 01011010
  • 对于IEEE754格式的浮点数:阶码用 移码 表示,尾数用 原码 表示。
  • 同一个数的补码和移码,其数值部分相同,而符号部分相反。
  • 相同位数的补码和移码,具有相同的 数据表示范围
  • 一般用移码表示浮点数的阶码,用补码表示定点数。
  • 执行算数右移指令的过程:操作数的符号位不变,各位顺次右移1次,符号位拷贝到最高位。
  • 原码除法:操作数取绝对值相除,符号位单独处理。
  • 在定点二进制运算器中,减法运算一般通过:补码运算的二进制加法器 来实现
  • 若浮点数用补码表示,则判断运算结果是否为规格化数的方法:数符与尾数小数点后第一位 是否相异
  • 在小数除法中,为了避免溢出,要求被除数的绝对值 小于 除数的绝对值。
  • 并行加法器中虽然不存在进位的串行传递,但高位的进位依然依赖于数据的低位。
  • 运算器中通常有一个状态标记寄存器,为计算机提供判断条件,以实现程序转移。
  • 在计算机中,对于正数,其三种机器数右移后符号位均不变,但若右移时最低数位丢1,则可能导致 影响运算精度
  • CPU可以直接访问主存
  • 计算机字长为32位,主存容量为128MB,按字编址,其寻址范围为 0~32M-1
  • 字位结构为256K × 4位的SRAM存储器芯片,其地址引脚和数据引脚之和为8+10+4=22 根
  • 存储容量64K × 16的SRAM存储器芯片,该芯片的地址线为16根,数据线为16根。
  • 计算机系统中的存储器系统:Cache,主存储器,外存储器
  • 动态存储器的刷新以行为单位进行。
  • 若某计算机字长为32位,则下列地址属性属于按双字长边界对齐的是:存储器地址线的低3位全为0
  • 功能部件MMu将虚拟地址转化为物理地址。
  • 采用虚拟存储器的主要目的是:扩大 主存储器 的存储空间,且能进行自动管理和调度。
  • 对于 虚拟存储器,程序执行过程中实现 虚拟地址 转化为 物理地址 的部件是:操作系统MMU
  • 相联存储器是按照 内容 进行寻址的存储器。
  • Cache行 大小 = 主存的内存块 大小
  • 哈佛体系结构 (分离Cache) :将Cache 分为 指令Cache数据Cache
  • Cache 采用 直接映射方式,无需使用 Cache块替换算法
  • 浮点数尾数 采用 补码 表示,则 符号位最高数值位 不同即为 规格化的浮点数
  • 指令采用跳跃寻址方式的主要作用是:实现程序的有条件,无条件转移
  • 间接寻址 有利于缩短指令 地址码 长度。
  • 二地址指令的运算结果,通常存放在其中一个地址码字段所指向的地址。
  • 冯诺依曼体系结构 不包含Cache
  • 冯诺依曼体系结构中的 指令数据 均以 二进制形式 存储在 存储器 中,CPU通过该 指令和数据的访问时间不同区分
  • 指令寄存器 (存放取到的单条指令) 的位数 取决于 机器字长
  • PC的位数 与 主存地址寄存器 MAR 的位数相同
  • 在控制器的控制方式中,机器周期内的时钟周期个数可以不同,该种方式称为 异步控制
  • 控制器的功能:操作控制,指令的顺序控制,异常控制。
  • 若某 互斥命令组4个微命令 组成,则 微指令寄存器 中相应的字段的位数 至少需要 3位(2位 + 额外的1位用于说明该互斥命令组是否有效)。
  • 一条机器指令 的功能通过执行 一个微程序 来实现。
  • 从信息流的传送效率来看,单总线系统 的工作效率是最低的。
  • 系统总线地址 的功能是:指定主存IO设备接口电路的地址
  • IEEE1394的高速特性适合于新型高速硬盘和多媒体数据传送,它的数据传输率最高可以达到 400Mb/s
  • 单总线结构计算机 中访问 主存与外围设备 时,异步控制 常用于主要控制方式
  • 当采用 统一编址法 对设备进行编址的情况下,不需要专门的IO指令
  • 8086 CPU 对 IO接口的编址 采用:IO端口独立编址
  • 中断向量地址 是 中断服务例行程序入口地址指示器
  • 通道CPU 的请求形式是 中断
  • 某计算机 字长 为32位,下列 地址属性 中属于按 双字长边界对齐 的是: 存储器地址线的 低3位 全部为 0
  • 采用 最优替换算法, 则 Cache的命中率 可以达到 100%
  • 读操作 不需要 考虑 Cache与主存的一致性问题
  • 假定主存 按字节编址,cache共有 64行,采用 4路组相联映射方式, 主存块 的大小为 32字节,所有编号都从0开始.问 主存 第3000号单元 所在的主存块对应的cache组号:
  • 某计算机系统中,Cache容量为512KB, 主存容量为 256MB,则 Cache-主存层次的等效容量 为 256MB
  • 程序 必须放在 主存CACHE 才能够被 CPU 进行访问。
  • 访问 的存储空间,需要的 地址线 最少为 根 (
  • 采用 PC相对寻址指令当前地址 在计算基础值时,需要额外加上 当前指令的长度,然后加上 当前指令的地址码字段所给出的内容 作为 偏移量
  • ,计算机 内存地址由低到高 ,则采用 小端序 的情况下,最高地址 存放的内容是:

 

Chapter 3: Compute Approaches and ALU

The Conversion among Sign-Magnitude, Ones' Complement and Two's Complement

Ones' ComplementTwo's Complement

 

 

Fixed-Point Number: Addition & Subtraction

Two's Complement Addition


Two's Complement Subtraction


Overflow Detection

Two's Complement

Modified Complement


Basic Logic-Gate

image-20220613140616912

Float-Point Number: Addition Subtraction

Addition

基本步骤:

  • 零操作数检查:若其中1个操作数为0,则只需要对符号位做处理。

  • 对阶:移动 阶码小的浮点数的尾数,使得 两个浮点数的阶码 相同。

    • 阶差
    • 右移 阶码小的浮点数的尾数
  • 计算尾数

  • 规格化 结果浮点数

    • 尾数 的结果为 0.0011.1 时,左移尾数 (每次阶码减一) 直到 尾数 变为 00.111.0
    • 尾数 的结果为 01.10. 时,右移尾数 (每次阶码加一) 直到 尾数 变为 00.111.0
  • 舍入:在进行 右规格化 时,可能会丢失 一些低位的数值

    • 0舍1入策略:如果 向右移出 的是 1,则在 最低位 + 1
    • 恒置0策略:只要 数字位1移出 ,则将 最低位 恒置1
  • 溢出处理:通过判断 阶码是否溢出 来判断 浮点数是否溢出

    • 阶码上溢:阶码的符号位为 01
    • 阶码下溢:阶码的符号位为 10

Subtraction

 

关于 数值表示 的相关链接:

https://www.sakurawald.com/?p=33736

https://www.sakurawald.com/?p=33679

Chapter 4: Memory Hierarchy

Memory Indicators

存储器的技术指标:

  • 存储容量存储器 所能存储的 二进制的位数

  • 速度

    • 存取时间 (存储器访问时间):从 启动 存取操作完成 该操作 所经历的时间
    • 存储周期 (读写周期):对 存储器 进行 连续两次存取 所需的 最短时间间隔
    • 存储器带宽 (数据传输率)单位时间存储器所能存取的信息位数

SRAM & DRAM

种类SRAMDRAM
访问速度
刷新电路不需要需要
使用场合告诉缓存系统微机内存
价格

Memory Expansion

  • 双译码结构

即将 来自CPU的地址线 分为 行选择线列选择线,分别送到 2个译码器 中进行 译码,以便 大大减少 译码输出线 的数量。

如:以 12位地址 为例

  • 单译码结构译码输出状态线
  • 双译码结构X译码输出Y译码输出状态线 均为 根,总共需要 根。

总之,对于 小容量的存储器,可以采用 单译码结构。但对于 大容量存储器 则没有 选择的余地

存储字长主存1个存储单元 所包含的 二进制位

数据字长 (计算机字长)计算机 1次所能处理的二进制位

目前大部分的计算机的 主存 采用 按字节编址

常见的 计算机字长16位字长 (2字节)32位字长 (4字节)64位字长(8字节)

大端序存储方式 (Big-Endian)MSB (Most-Siginificant-Bit) 作为 字地址

小端序存储方式 (Little-Endian)LSB 作为 字地址

68000采用大端,Intel采用小端,ARM两者都支持。

存储器拓展

  • 字拓展容量 不足时

    • 片选产生方法

      • 线选法
      • 全译码法
      • 部分译码法
  • 位拓展数据位 不足时

  • 字位同时拓展

字拓展 类似于 伸缩因子 (Scale Factor)位拓展 类似于 并行读写

e.g. 某计算机的主存地址空间中,从地址 为 ROM存储区域,从 为 保留地址区域,暂时不使用。从 为RAM地址区域。RAM的控制信号为 CS# 和 WE#,CP

的地址线为 ,数据线为

控制信号有 R/W# 和 访存请求MREQ#

(1) 若ROM和RAM的 存储器芯片 均采用 8K × 1 存储器芯片,试画出存储器与CPU的连接图。

分析 地址空间分布

0000H ~ 3FFFH (16K):ROM

4000H ~ 5FFFH (8K):保留区

6000H ~ FFFFH (40K):RAM

故 ROM需要的存储器芯片数量 =

故 RAM需要的存储器芯片数量 =

RAM和ROM 均需要 字位同时拓展

字拓展译码输入线的数量 =

译码器的输出线 根,每根线选中 存储单元,即 3-8译码。总共选中 存储单元

image-20220613165628307

(2) 如果 ROM 采用 8K × 8 存储器芯片,而 RAM 采用 4K × 8 存储器芯片,试画出存储器与CPU的连接图。

地址空间分布 分析相同。但 ROM 和 RAM 所需的 存储器芯片 数量有所变化。

ROM需要的存储器芯片的数量 =

RAM需要的存储器芯片的数量 =

ROM和RAM均只需要进行 字拓展

对于 译码输入 的选择?

  • 大容量存储器芯片 (8K)为目标

    字拓展译码输入线的数量 =

    共产生 译码输出线,每根 选择的内存空间范围

    image-20220613171936954

  • 小容量存储器芯片 (4K)为目标

    字拓展译码输入线的数量 =

    共产生 译码输出线,每根 选择的内存空间范围

    为了 留出8K的保留区,必须留出 2根片选信号

    image-20220613171951554

(3) 如果 ROM 采用 16 × 8 存储器芯片, RAM 采用 8K × 8 存储器芯片,试画出存储器与CPU的连接图。

地址空间分布 同前。

ROM所需要的存储器芯片的数量 =

RAM所需要的存储器芯片的数量 =

进行 字拓展片选译码 可以选择两种方式

  • 16K存储器芯片 为目标,每个 片选译码线 选择 16K的存储空间

    image-20220613181522250

  • 8K存储器芯片 为目标,每个 片选译码线 选择 8K的存储空间

    image-20220613181533451

Cache

信息交换的基本单位

  • CPUCache 之间 字 (Word)
  • Cache主存 之间 块 (Block)
  • 主存辅存 之间 段 (Segment)页 (Page),段页

1个 Cache块 包含 若干个字

Virtual Memory

虚拟存储器 的类别:

  • 段式虚拟存储器:按 程序的自然段 作为 主存和辅存之间信息交换基本单位。使用 段表 来登记 调入情况段表主存 的一部分。

    • 优点:保护用户程序的相对独立性
    • 缺点:管理复杂,容易造成主存的碎片
  • 页式虚拟存储器:将 程序 分成 固定长度的页,作为 主存和辅存之间信息交换基本单位。使用 页表 来登记 调入情况页表主存 的一部分。

    • 优点:管理方便,主存的空间浪费少
    • 缺点:破坏了程序的相对独立性
  • 段页式虚拟存储器:先对 程序 分为 程序段,然后将 程序段 分为 固定长度的页,作为 主存和辅存之间信息交换基本单位。但 共享和保护 按照 程序段 进行。同时使用 段表页表 来登记 调入情况

    • 优点:管理方便,主存空间浪费少,保持程序自身的相对独立性。

Magnetic Disk

Magnetic Disk Indicators

  • 存储密度

    • 道密度:沿 磁盘半径方向 单位长度的 磁道数。道/英寸
    • 位密度:沿 磁道方向 单位长度的 所记录的二进制位数。位/英寸
    • 面密度
  • 存储容量:一个 磁盘 所能存储的 字节总数

  • 数据传输率磁盘单位时间 内向主机 传送的字节数 (考虑缓存)

  • 平均存取时间:从 发出读写操作,到 找到正确位置并开始读写 所用的时间。

    平均寻道时间:10~20ms

    平均等待时间:

    7200转

    大部分磁盘的等待时间在这个数值附近。

 

eg. 磁盘组 有6片 磁盘,每片有2个 记录面,最上和最下两个面不适用。

存储区域 内径22cm,外径33cm。道密度 为 40道/cm,内层位密度 为 400位/cm,转速 2400r/min 问:

(1) 共有多少柱面?

注意:内径外径 都是 直径

故共有 220个柱面。

(2) 盘组总存储容量是多少 ?

计算 某个面的信息量 的过程,类似于 求圆形的面积的积分过程

(3) 数据传输率为多少 ?

磁盘自身进行 高速旋转 时, 读写头停留在某条特定的磁道上 进行 读写数据。所以 数据传输率 只需要计算 1条磁道的信息容量 即可。

Network Memory

网络存储器 技术:

  • 存储区域网络 (SAN, Storage Area Network)
  • 附网存储 (NAS, Network Attached Storage)
  • iSCSI (IP on SCSI)

 

Chapter 5: Instruction System

Category

指令系统

  • 定义:是 机器指令集合

  • 发展方向

    • 复杂指令系统计算机 (CISC):指令数量多,单条指令功能简单的计算机。
    • 精简指令系统计算机 (RISC):指令数量少,单条指令功能复杂的计算机。
  • 设计要求

    • 完备性:指令足够使用
    • 有效性:程序可以高效运行,所需内存少,速度快
    • 规整性:对内存和寄存器透明,对多种数据类型透明,指令格式和数据格式一致
    • 兼容性:系列机中的软件可以向上兼容

     

Format

地址码字段

  • 地址码 不一定存放的是 地址,也可能是 操作数本身 (立即数)
  • 根据 1条指令中地址码字段的个数,将指令分类位:无操作数指令单操作数指令双操作数指令三操作数指令

指令字长单条指令 中包含的 二进制位数

机器字长计算机 所能够 直接处理二进制位数

  • 机器字长 一般与 主存的存储单元的位数 一致

  • 单字长指令指令字长 = 机器字长 的指令

    类似地,还有 半字长指令多字长指令

  • 等长指令字结构变长指令字结构

    • 等长指令字结构:所有指令 的长度相等
    • 变长指令字结构

Addressing Mode

指令操作数 均存放在 主存 当中。

寻址方式

  • 指令的寻址方式

    • 顺序寻址:下一条指令的地址 = 当前指令的地址 + 1
    • 跳跃寻址:下一条指令的地址 = 当前指令所给出的地址
  • 操作数的寻址方式

    有效地址 (Effective Address)操作数内存 中的地址

    • 隐含寻址:在 指令隐含地给出

      不计算

    • 立即数寻址:指令地址码字段 给出的是 操作数本身 (而不是 地址

      不计算

    • 直接寻址:指令地址码字段 直接 给出 操作数的有效地址

    • 间接寻址(相对于直接寻址):指令地址码字段 给出的是 操作数的有效地址的地址

      间接寻址 相当于 编程语言 中的 指针 (Pointer)

    • 寄存器(直接)寻址:操作数 放在 通用寄存器 中 (而不是 内存 中),通过 地址码字段 给出 寄存器号

      不计算

    • 寄存器间接寻址:操作数的地址 放在 通用寄存器 中(而不是内存中),通过 地址码字段 给出 寄存器号

    • 偏移寻址

      • PC相对寻址:

        注意 题目中 的值是 当前指令的地址 还是 当前指令的下一条指令的地址

      • 基址寻址:

      • 变址寻址:

    • 复合寻址

    • 堆栈寻址

      • 串联堆栈:CPU内一组专用寄存器

        • 操作

          • 入栈:某个通用寄存器的数据 堆栈顶部
          • 出栈:堆栈顶部的数据 某个通用寄存器
      • 存储器堆栈:将 主存的一部分连续区域 作为 堆栈。(有用于指示 栈顶堆栈指示器

       

根据 寻址方式是否需要计算EA 来区分为 是否需要访问内存

eg. 字长16位,主存,指令单字长单地址,80条指令,寻址方式共4种。请设计指令格式?

指令格式 = 7位OP字段 + 2位寻址方式字段 + 剩余的7位作为地址码字段

Operation-Code Expansion

操作码拓展 可以在不增加 指令长度 的前提下,增加 指令种类数量

指令的操作码的编码格式

  • 不拓展 定长编码:操作码字段 的长度 固定
  • 定长拓展 哈弗曼编码:根据 指令使用的频度 来分配 操作码字段的长度
  • 不定长拓展 变长拓展格式:操作码字段地址码字段 进行 拓展

指令拓展的核心思想是:短码不能作为长码的 前缀

eg. 某指令系统的指令字长为 16位,每个地址码为6位。

若双地址指令有 条,单地址指令有 条,则剩下零地址指令有多少条?

指令格式 = 4位操作码字段 + 6位地址码字段 + 6位地址码字段

双地址指令 : 0000 ~ 1110 总共 条指令 (不拓展时为 条)

单地址指令:1111 (000000 ~ 111111) 总共 条指令 (已经用了34条)

零地址指令:1111 (100010 ~ 111111) (000000 ~ 111111) 总共 个拓展标记,每个拓展标记都有 条 零地址指令。

故:零地址指令 最多有

 

Chapter 6: Central Controller Unit

Controller

控制器

  • 功能

    • 指令控制:保证指令按照程序规定的顺序进行执行
    • 操作控制:产生 每条指令执行所需要的各种 控制信号,并送到 相应部件 产生相应的 动作
    • 时间控制:用于 同步 不同的操作
    • 异常和中断处理
  • 基本组成

    • 程序计数器