在SoC中会集成各种外设的controller,这些controller实际上就是一些特殊功能寄存器和电路的集合。cpu通过外设的controller来控制外部设备的工作。
举个例子比如存储器芯片的controller。如果没有controller,那么编程的人必须要自己控制存储器芯片上的每个引脚的电平来读写数据;如果有了controller,那么编程的人只需要操作特定的特殊功能寄存器即可,contoller里面的电路会根据寄存器中的值自动去设置引脚上的电平来进行读写数据。
NandFlash和DRAM由于容量都比较大所以不容易集成到芯片内部中去,所以必须独立在芯片外部,那么在芯片内部中就集成了这些外设的controller。而在使用这些外设的时候就必须要先初始化这些controller,这就是DRAM在上电后不能够直接使用的原因。而SRAM和NorFlash的容量都比较小,可以集成到芯片内部,如果集成到芯片内部由于两种存储器都可以实现随机读取数据,所以可以作为启动介质。
DRAM和NandFlash虽然都是利用controller来控制的,但是在访问的时候还是有区别的,访问DRAM只需要在汇编指令中直接给出地址即可,cpu会通过controller发出时序来读写DRAM中的数据;而访问NandFlash不能够直接通过给地址来访问,因为访问NandFlash之前必须要先发送命令才行,需要借助特殊功能寄存器才可以实现。
时间: 2024-10-09 00:07:40