
在 Intel x86 架构中,内存区段 是在不改变 16 位元区段选择子之下,可以使用单一索引暂存器所能够寻址的的内存范围部份。在 80286 处理器 (或 80386 和之后处理器的虚拟86模式)真实模式 或 保护模式,一个区段的大小是 64 KB (使用 16 位元索引暂存器)。在 32 位元保护模式下,也就是在 80386 和后面系列的处理器中,一个区段是 4 GB (由于 32 位元的索引暂存器)。
在 16 位元模式,要让应用程式使用多个内存区段 (为了存取比任一 64K 区段还要大的内存) 是相当复杂,但是被视为除了最小的工具(可以使用较少内存完成) 外的一种必要罪恶。这个问题的根源 在于没有适当的位址算术指令 适合做整个内存范围的平面寻址方式 来使用。因此平面寻址方式可能以乘法的指令来完成,然而会导致较慢的程式执行速度。
在 1990年 末期,32 位元操作系统的推出,以及更舒适的 32 位元 平面内存模式 导致几乎消除了区段寻址的使用。然而,使用平面内存模式也产生 4 GB 限制对于现今的使用也不足够。区段允许操作系统限制每个行程虚拟寻址空间,最大可利用到 64 GB 的系统内存,但这种勉强方式最终地回归到区段,是进展到 64 位元处理器经常会引述的因素。
在 Intel x86 的 真实模式 下的区段架构会有所重叠,是一种不好的设计。
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History