给一个芯片是 $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
6PC -> 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)//操作数所在存储单元地址
执行周期:因为指令不一定一样长,所以执行周期非常复杂.
- 非访存指令
CLA清空ACC加法器COM按位取反SHR算术右移CSL循环左移STP停机指令(内部有一个标志,置零就能停机.)
- 访存指令
- 加法指令
ADD X
1
2
3
4 Ad(IR) -> MAR
1 -> R
M(MAR) -> MDR
(ACC)+(MDR) -> ACC- 存数指令
STA X
1
2
3
4 Ad(IR) -> MAR
1 -> W //写命令
ACC -> MDR
MDR -> M(MAR)- 取数指令
LDA X把某个数字存放到ACC里面
1
2
3
4 Ad(IR) -> MAR
1 -> R
M(MAR) -> MDR
MDR -> ACC- 无条件转移
JMP X
1 Ad(IR) -> PC- 有条件转移
BAN X(负则转移)
周期分析 :只有间接访存和间接转移是需要间址周期的,其他的(非访存,直接访存,转移)都是只有取址和执行周期.
中断周期:1.保存断点2.形成中断服务程序的入口地址3.关中断
程序断点存入0地址(法一)1
2
3
4
5
6
70 -> 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 是间接寻址的加法方式.