计算机组成原理学习笔记

给一个芯片是 $a\times b$ 位的能得出:
地址线: $\log a$
数据线: $b$

故引脚数量: 地址线(dram一般用地址复用技术就会减半)+数据线+1(片选线)+1(或2,读写控制线)

DRAM的刷新按行进行.

刷新信号周期 :(异步刷新)刷新周期/行数,然后可以下取整
集中刷新 :死时间率:集中刷新时间/周期

芯片画图: $A_n$ 是地址线, $D_n$ 是数据线 , $\overline{CE}$ 是片选线 $\overline{WE}$ 是读写线( $\overline{OE}$ 是输出线 ), $\overline{MREQ}$ 绝对的低电平, $G_1$ 直接连5V电压即可,地址线听说不能有浪费, $\overline{PD}/progr$ 是编程线,在ROM这里直接接地就行, $\overline{WR}$ 和 $\overline{RD}$ 这俩是输入输出信号.

海明码默认偶校验.

微操作命令分析:

取指周期:(把指令从存储器提取出来)

1
2
3
4
5
6
PC -> MAR -> 地址线//把指令从PC寄存器通过地址总线送给存储器
1 -> R //控制单元向存储器发出读命令
M(MAR) -> MDR //读出的数据从存储器经过数据总线发给MDR寄存器
MDR -> IR //把指令从MDR送给IR
OP(IR) -> CU //IR寄存器操作码部分送给CU,由CU译码决定要做什么
(PC)+1 -> PC //下一条指令地址

间址周期:首先是命令采取间接寻址的形式,要把操作数的地址从存储器当中取出,放到指令寄存器当中.

感觉间接寻址的行为就是一级指针,指针存放的地址就是操作数.

1
2
3
4
5
//首先要做指令形式地址 -> MAR//地址码传送给MAR
Ad(IR) -> MAR
1 -> R
M(MAR) -> MDR
MDR -> Ad(IR)//操作数所在存储单元地址

执行周期:因为指令不一定一样长,所以执行周期非常复杂.

  1. 非访存指令
  1. CLA 清空ACC加法器
  2. COM 按位取反
  3. SHR 算术右移
  4. CSL 循环左移
  5. STP 停机指令(内部有一个标志,置零就能停机.)
  1. 访存指令
  1. 加法指令 ADD X
    1
    2
    3
    4
    Ad(IR) -> MAR
    1 -> R
    M(MAR) -> MDR
    (ACC)+(MDR) -> ACC
  2. 存数指令 STA X
    1
    2
    3
    4
    Ad(IR) -> MAR
    1 -> W //写命令
    ACC -> MDR
    MDR -> M(MAR)
  3. 取数指令 LDA X 把某个数字存放到 ACC 里面
    1
    2
    3
    4
    Ad(IR) -> MAR
    1 -> R
    M(MAR) -> MDR
    MDR -> ACC
  4. 无条件转移 JMP X
    1
    Ad(IR) -> PC
  5. 有条件转移 BAN X (负则转移)

周期分析 :只有间接访存和间接转移是需要间址周期的,其他的(非访存,直接访存,转移)都是只有取址和执行周期.

中断周期:1.保存断点2.形成中断服务程序的入口地址3.关中断

程序断点存入0地址(法一)

1
2
3
4
5
6
7
0 -> MAR //
1 -> W //保存程序断点
PC -> MDR
MDR -> M(MAR) //保存到MAR指定内存当中
//硬件向量法:
向量地址 -> PC //保存向量地址
0 -> EINT //允许生成断点(置零)

程序断点进栈:(法二)
1
2
3
4
5
6
(SP-1) -> MAR
1 -> W
PC -> MDR
MDR -> M(MAR)
向量地址 -> PC
0 -> EINT

也可以软件进行中断, M->PC 代替向量地址

许许多多信号:

$\overline{MREQ}$ :访存控制信号
$\overline{IO}/M$ :访问IO/存储器的信号
$\overline{RD}$ :读命令
$\overline{WR}$ :写命令
$INTA$ :中断响应信号
$HLDA$ :总线相应信号

ADD@X 是间接寻址的加法方式.