80286之前的地址生成器和之后的MMU是不是一样的呀?
想必大家都记得在80286地址总线是20位,而其内部的寄存器全部都是16位,于是,出现了一个问题就是分段的思想,就是任何一个外部总线上的地址都是内部的一个地址生成器的输出,地址生成器主要功能就是:外部地址=段寄存器 < <4+段内偏移量!
请问,这个地址生成器和后来的MMU有什么区别?后来的x86芯片的段式内存管理是不是也是:外部地址=段寄存器 < <4+段内偏移量?
小弟正在查看mmu的相关资料,争取把这个东西搞明白!!!请教了!
[解决办法]
“这个地址生成器和后来的MMU有什么区别?”
MMU是支持多进程用的,它的作用是虚实地址映射,也就是用它来管理页表。只要一个CUP提供了MMU,这个协处理器,该CPU就支持多进程。
你说的这个地址拼接方法,是这个体系结构寻址时候CPU提供的一种机制。它是为了解决字长不能满足地址空间的需求而用两个寄存器拼接的方法。
他们不是同一类东西。
“后来的x86芯片的段式内存管理是不是也是:外部地址=段寄存器 < <4+段内偏移量?”
但是可以肯定的是 外部地址=段寄存器 < <4+段内偏移量?不对的。
80286之所以左移4位,是因为字长是16,而需要20位的地址空间,中间差4才这样的,所以在IA-32中就不一定是4这个具体数了。
目前我也在学习这个体系结构,可以一起研究。