关于长整加速器的工作步骤:
1. 系统置位后,CPU向加速器的源地址寄存器发送当前长整计算的源操作数地址(位于Memory中)
2. 接着,CPU向加速器的目标地址寄存器发送当前长整计算的目标操作数地址(位于Memory中)
3. CPU向加速器的状态寄存器写入当前的状态字(一个字节),在该状态字中,启动Start标志,并写入操作码(加减乘除)
4. 之后,CPU退出仲裁请求,等待加速器的中断
5. 加速器的从机寄存器(状态寄存器,源地址寄存器和目标地址寄存器)均是自动机,与CPU所有的外部设备相同,直接获得CPU的读写控制
6. 加速器的状态机,在置位后,一直在检测启动标志位start,若获得启动(此时源地址寄存器和目标地址寄存器都已经以后数据了),则开始执行加速的长整计算
7. 加速器获得启动(start=1)后,首先要向仲裁器发出请求,并等待仲裁结果。若获得仲裁资源,则执行后续动作。
8. 加速器获得仲裁后,首先要将位于memory中的64位的源操作数(共8个单元连续存放),分8次读入到加速器内部的64位源操作数中(数据总线为8比特)
9. 然后,继续读入目标操作数,也要分8次
10. 当64比特的源和目标都读入acc后,在acc内部执行64位的长整计算(加减乘除),计算结果放置到内部的目标操作数中
11. 现在,acc要将其内部的64位目标操作数(计算结果),分8次写回到Memory的目标区(8个连续单元中)
12. Acc执行完这些操作后,则向CPU发出中断,并退出仲裁请求。
13. CPU在捕获了ACC发出的中断信号后,得知ACC已经完成委托的任务,则可以接着分配新的任务。(当前设计中,执行一个死循环即可)