设备空间相关概念
设备空间相关知识
作者:weirdo-xo
时间:2021-7-6
邮箱:weirdo-xo@outlook.com
说明:这里主要解释设备空间相关的概念,在硬件的实现上一共分为:IO空间、内存空间、配置空间
1.IO空间
IO空间其实就是我们一般使用的寄存器,寄存器会被编制。在X86体系结构中,外部寄存器会使用特殊的一条指令进行访问,而在RISC结构的处理器中,寄存器被当作一种内存来使用(使用统一编址),和内存一样可以使用L和S系列指令进行访问。Linux内存中正对这两种结构叶分别提供了不同的readx()函数和writex()函数进行IO空间的访问。
2.内存空间
内存空间的意思就是CPU可以把设备当作一个内存设备访问,或者说设备具有一片内存可以提供CPU进行访问。
3.配置空间
这种地址空间一般会存在于PCIe等设备的配置头,一般的开发人员接触的比较少一些,这个概念在ARM中没怎么接触,但是在MIPS、X86体系结构中就会有这样的一种空间分类。
总结
设备空间的相关概念在ARM体系结构中接触的比较少,但是在MIPS这样的结构中会经常的看到。最典型的一个实例就是MIPS启动空间----0xBFC0_0000,该地址空间会被映射到启动设备中(SPI Flash, Lio),众所周知,Cpu是不可以在Flash上运行的,所以这里的处理方法就是把flash存储映射为设备的内存空间,从而CPU就可以正常的访问这片地址空间进入启动流程,SPI Flash控制器在这个过程中进行这两种空间的转换,这里便是内存空间的访问。CPU读写SPI控制寄存器便是对IO空间的访问。