关于中断和io控制器

io和中断的设计定型,成了目前我的cpu设计过程中最亟待解决的问题。若不定型,可能影响接下来其他组件的设计和测试工作。

中断控制基本没啥可修改的,cpu端只有一个中断脚,cp0(协处理器0,即cu)中有四个寄存器,cause用于记录外部中断、内部中断和异常的种类;status中控制这一个中断的开关;base记录中断处理程序的地址,在中断处理程序中使用mfc0指令查询cause寄存器跳转到相应中断的处理程序地址;EPC用来保存中断前的指令地址。这一部分,我只需要额外实现三条指令mfc0,mtc0和eret。

io模块的输入输出部分应该是一个寄存器组,包括状态寄存器、指令寄存器、数据寄存器。状态寄存器标志忙闲,指令寄存器为从cpu获取指令,数据寄存器作为io控制器输入输出的通道。此外,io模块还要与cause寄存器相连,辅助一套中断屏蔽与优先级逻辑,完成中断向量。IO模块中的中断控制可以级联。

总线控制器设计 cpu内部只采用一个时钟,对于不同速度的组件将采用clock enabler
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×