Intel公司在1974年4月发布8080 CPU。这是一枚8位元处理器,时脉为2MHz,亦是第一枚可算得上的处理器。
注意,这里的8位、16位指的是ALU的宽度,而并不是地址线的宽度(如果CPU与地址线的宽度相同,也就不需要分段管理了)。
从设计人员的角度来讲,把地址宽度与ALU宽度设计成一样,这是最简单便捷的。但是,这显然是不合理的——8位的地址线只能寻址256位,这样的存储空间基本上什么都做不了。
所以,8位的ALU对应的是16位的地址线——寻址空间为64k,这个内存空间在上世纪70年代(1974?)来说,够用了。
1978年,8086 CPU问世(第一枚真正意义上的通用微处理器),此时,CPU已经是16位。ALU的宽度与地址线的宽度已经一致了,似乎完美的时刻到了。
不过,到1978年的时候,程序猿们觉得内存似乎还是有些小了(小?),与此同时,内存的价格也不再是天价。Intel决定把地址线的宽度再扩个容。
地址线扩成多大呢?20位,也就是说,此时的CPU寻址能力是1MB。
1MB的内存空间在现在看来,实在是很小很小。不过,在1978年的程序员看来,这实在是微处理器内存中的巨无霸了——因为1978年的小型机(如PDP-11)也就才4MB的内存空间。
可是,多出来的4位怎么弥补呢?
当时一般有如下2种方法:
1、在16位CPU内专门设计一些用于20位的指令用于地址运算和寻址。(会造成CPU内部结构特殊化,如果CPU变成32位,需要从头改造)
2、PDP-11的MMU内存管理机制。(小型机解决方案,可以寻址到24位——4MB)
Intel选择了第三种——段式管理。
Intel设计了4个新的寄存器:CS、DS、SS、ES分别用于存储指令、数据、堆栈、其他。
分段的设计模式是:把整块内存空间分割成多个(?)段,以上4个寄存器存储的是当前(记住,是当前)操作的段的起始地址。由于CPU只能寻址16位,每个段的限长是64k。16位的段地址左移四个二进制位,加上16位的段内偏移地址,得到的和就是20位的物理地址。
不过,由于段式管理是Intel在某种条件(?)下设计出来的,Linux以及大多数操作系统对段式管理基本上避而远之的。
实际上,在Linux内核里,对分段管理用得极少,而DS、SS的指向基本上也从来没有做过区分;Linux的内核也仅用了段的0级、3级权限——它并没有陷入Linux以及别的芯片厂商的设计之中,真正做到了独立性。
每一个企业造出来的CPU或者数据库或者别的什么产品,都有其本源的商业驱动力,目的都是盈利。
所以,不需要站在一个产品内部去看问题,也不要把它供起来当成祖师爷膜拜。只有把一个产品当成一个普通朋友,明白它的优点和缺陷,心思和小九九,才能得心应手、运用自如。
至于Linux是如何看透Intel的小九九,又如何避免的呢? Linux是如何做到的呢?
以后再做分析。
分享到:
相关推荐
X86 CPU在段式管理下的地址形成机制
系统应该包含两个部分,一个部分是按内核代码原则设计的请求分段存储管理系统,由一系列的函数组成;另一个部分是演示系统,调用请求分段存储管理系统的相应函数,以让其运行,同时提供系统的展示界面,可以是GUI...
X86
求段式存储管理以及其缺段处理方法 。 三、 具体要求 1、编程组织对内存管理 a) 段大小为最大长度 64K ; b) 每个进程最多调入内存容量为 4 段 c) 内存总容量 128K d) 地址码长度 24 位 e) ...
根据进程的要求按照段式存储管理方式模拟内存空间的分配与回收,并能够根据进程的空间分配情况完成地址映射。简单界面显示内存情况!供参考。
X86 CPU在段式管理下的地址形成机制 以及BIOS初始化过程对这种机制的利用 陈英豪 中科院计算所
段式管理,主要是对于内存段式分批鳄鱼回收的模拟实现
Linux操作系统当前主要在Intel 80386、80486和Petium系列机器上运行,它们统称为x86机器。x86具有两种存储器管理模式:实地址模式和受保护的虚地址模式,后者简称保护模式。
高考历史大一轮复习阶段一中华文明的起源与奠基——先秦阶段提升练岳麓.pdf
模拟设计段式虚拟存储管理中地址转换 页式段式管理
三段式电流 仿真。。。。。simulink仿真。。。。
高考历史大一轮复习阶段一中华文明的起源与奠基——先秦阶段提升学案岳麓.pdf
CS1638A 利用LED 管正、反向特性差异,采用专利的段、位复用方法,使用12 根信号线提供多达8 段12 位的LED 显示。CS1638A 的MCU 接口采用双向二线制串行总线协议进行通信。主要应用于VCR、VCD、DVD 及家庭影院等小...
主题复习——历史阶段特征.doc
模拟段式存储管理的分配与回收,包括输入给定的内存大小,进程的个数,每个进程的段数及段大小;当某进程提出申请空间的大小后,显示能否满足申请,以及为该进程分配资源后有关内存空间使用的情况。内含word文档。...
操作系统课程设计之段式管理的分配和回收,有完整的代码和完整的课程设计报告。
目前那种完全靠自己 IO 来模拟 COM 口和 SEG 口波形来驱动 LCD 的就非常少了——除非自己研究玩,否则段式 LCD 都是有驱动芯片的。至于如何点亮哪个点,只需将这驱动芯 片的手册看看,再对照 LCD 的出厂设置 PDF,...
操作系统课程设计 预备内容:阅读操作系统的内存管理章节内容,了解有关虚拟存储器、段式存储管理等概念,并体会段式管理内存的分配和回收过程。 实践准备:掌握一种计算机高级语言的使用。
模拟设计段式存储管理的分配与回收 段式页式管理
段页式存储器管理 段页式存储器管理 段页式存储器管理 段页式存储器管理