当前位置: 技术问答>linux和unix
iis7站长之家
独立编址和统一编址问题,大家执教
来源: 互联网 发布时间:2016-05-10
本文导语: 独立编址和统一编址在程序上有什么区别,是指驱动,kernel中,比如访问一个pci外设时,独立编址的地址时怎么样的,统一编址又是怎么样的? 都说x86时冯诺一曼体系结构,是独立编址的,arm是harvard结构是统一编...
独立编址和统一编址在程序上有什么区别,是指驱动,kernel中,比如访问一个pci外设时,独立编址的地址时怎么样的,统一编址又是怎么样的?
都说x86时冯诺一曼体系结构,是独立编址的,arm是harvard结构是统一编址的,但是区别在那呢?这个编址是虚拟地址(mmu之上的地址)还是物理地址?
希望大家不要搬书本,多说点实际的。
谢谢
都说x86时冯诺一曼体系结构,是独立编址的,arm是harvard结构是统一编址的,但是区别在那呢?这个编址是虚拟地址(mmu之上的地址)还是物理地址?
希望大家不要搬书本,多说点实际的。
谢谢
|
我来简单说说:编址是针对内存和外设而言(都是指物理地址)!
独立编址:内存和外设分开独立编制(它们的地址原则上可以有重合区域);因为独立,所以内存编址可以从0~N,外设编址也可以从0~N;
统一编制:统一编制就是内存和外设的编址放到一起来规划,被外设用了的地址就不能给内存了,反之亦然! 比如:给外设分配地址0~N,那么内存就不能使用0~N了,只能使用N~M!
针对PCI设备的访问,独立编址和统一编址的的区别在于:独立编址访问外设有专门的I/O指令(比如:x86的in/out等指令),而统一编址对外设的访问和都内存的访问指令可以是一样的(这样使用起来更方便)!
上面只是一个例子,希望有帮助!
good luck!
独立编址:内存和外设分开独立编制(它们的地址原则上可以有重合区域);因为独立,所以内存编址可以从0~N,外设编址也可以从0~N;
统一编制:统一编制就是内存和外设的编址放到一起来规划,被外设用了的地址就不能给内存了,反之亦然! 比如:给外设分配地址0~N,那么内存就不能使用0~N了,只能使用N~M!
针对PCI设备的访问,独立编址和统一编址的的区别在于:独立编址访问外设有专门的I/O指令(比如:x86的in/out等指令),而统一编址对外设的访问和都内存的访问指令可以是一样的(这样使用起来更方便)!
上面只是一个例子,希望有帮助!
good luck!