社区
汇编语言
帖子详情
为什么8086CPU的地址总线是20根。
wangwindows
2010-09-08 01:14:57
8086的地址总线为什么是20位,而不是21或者22?
...全文
2682
10
打赏
收藏
为什么8086CPU的地址总线是20根。
8086的地址总线为什么是20位,而不是21或者22?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
eniac0001
2010-09-13
打赏
举报
回复
3#说的不错,顶3#,大家应该向3#学习,不要为了几个分数,乱写!
cvrli
2010-09-13
打赏
举报
回复
好,您应该出书,。写的简洁明了。
用户 昵称
2010-09-09
打赏
举报
回复
有文章说gates说过(文章中指出是80年代),640K内存对于任何人都足够了,又有文章说gates自己否认从来没说过,还有一段录音,无奈一个多小时,听不出来到底说没说过,反正20根对于当时(8086设计还是70年代)来说是足够了。
shwarpine
2010-09-09
打赏
举报
回复
呵呵,这个嘛,就是楼上的大大说的。
日立奔腾浪潮微软松下联想
2010-09-09
打赏
举报
回复
这种说法确实流传很广,gates说没说过黑锅都得背了... :)
日立奔腾浪潮微软松下联想
2010-09-08
打赏
举报
回复
在设计8086的时候,16位地址/64KB地址空间有点小,20位地址/1MB地址空间已经很大了,32位地址被认为是永远不需要的(后来,1984年的CRAY-2巨型机,安装了2GB内存,在当时惊为天人)。
tansuozhe
2010-09-08
打赏
举报
回复
楼上说的不错!
goodider
2010-09-08
打赏
举报
回复
6
8086处理器引入了一个重要概念--段。8086处理器的寻址目标是1M大的内存空间,于是它的地址总线扩展到了20位。但是,一个问题摆在了Intel设计人员面前,虽然地址总线宽度是20位的,但是CPU中“算术逻辑运算单元(ALU)”的宽度,即数据总线却只有16位,也就是可直接加以运算的指针长度是16位的。如何填补这个空隙呢?可能的解决方案有多种,例如,可以像一些8位CPU中那样,增设一些20位的指令专用于地址运算和操作,但是那样又会造成CPU内存结构的不均匀。又例如,当时的PDP-11小型机也是16位的,但是其内存管理单元(MMU)可以将16位的地址映射到24位的地址空间。受此启发,Intel设计了一种在当时看来不失为巧妙的方法,即分段的方法。
为了支持分段,Intel在8086 CPU中设置了四个段寄存器:CS、DS、SS和ES,分别用于可执行代码段、数据段、堆栈段及其他段。每个段寄存器都是16位的,对应于地址总线中的高16位。每条“访内”指令中的内部地址也都是16位的,但是在送上地址总线之前,CPU内部自动地把它与某个段寄存器中的内容相加。因为段寄存器中的内容对应于20位地址总线中的高16位(就是把段寄存器左移4位),所以相加时实际上是内存总线中的高12位与段寄存器中的16位相加,而低4位保留不变,这样就形成一个20位的实际地址,也就实现了从16位内存地址到20位实际地址的转换,或者叫“映射”。段式内存管理带来了显而易见的优势,程序的地址不再需要硬编码了,调试错误也更容易定位了,更可贵的是支持更大的内存地址。程序员开始获得了自由。
技术的发展不会就此止步。intel的80286处理器于1982年问世了,它的地址总线位数增加到了24位,因此可以访问到16M的内存空间。更重要的是从此开始引进了一个全新理念--保护模式。这种模式下内存段的访问受到了限制。访问内存时不能直接从段寄存器中获得段的起始地址了,而需要经过额外转换和检查。为了和过去兼容,80286内存寻址可以有两种方式,一种是先进的保护模式,另一种是老式的8086方式,被成为实模式。系统启动时处理器处于实模式,只能访问1M空间,经过处理可进入保护模式,访问空间扩大到16M,但是要想从保护模式返回到实模式,你只有重新启动机器。还有一个致命的缺陷是80286虽然扩大了访问空间,但是每个段的大小还是64k,程序规模仍受到限制。因此这个先天低能儿注定寿命不会很久。很快它就被天资卓越的兄弟--80386代替了。
80386是一个32位的CPU,也就是它的ALU数据总线是32位的,同时它的地址总线与数据总线宽度一致,也是32位,因此,其寻址能力达到4GB。对于内存来说,似乎是足够了。从理论上说,当数据总线与地址总线宽度一致时,其CPU结构应该简洁明了。但是,80386无法做到这一点。作为X86产品系列的一员,80386必须维持那些段寄存器的存在,还必须支持实模式,同时又要能支持保护模式,这给Intel的设计人员带来很大的挑战。Intel选择了在段寄存器的基础上构筑保护模式,并且保留段寄存器16位。在保护模式下,它的段范围不再受限于64K,可以达到4G。这一下真正解放了软件工程师,他们不必再费尽心思去压缩程序规模,软件功能也因此迅速提升。
从8086的16位到80386的32位处理器,这看起来是处理器位数的变化,但实质上是处理器体系结构的变化,从寻址方式上说,就是从“实模式”到“保护模式”的变化。从80386以后,Intel的CPU经历了80486、Pentium、PentiumII、PentiumIII等型号,虽然它们在速度上提高了好几个数量级,功能上也有不少改进,但基本上属于同一种系统结构的改进与加强,而无本质的变化,所以我们把80386以后的处理器统称为IA32(32 Bit Intel Architecture)。
lucky-lucky
2010-09-08
打赏
举报
回复
莫非是恰好是1M的内存,方便了后继处理
leafsoar
2010-09-08
打赏
举报
回复
4位16进制太小了,加了一位
对“
8086
CPU
有
20
位
地址总线
,可以传送
20
位地址,达到1MB寻址能力”的理解
学习操作系统时并行学习汇编语言,对王爽汇编语言第四版的一句话有些不理解,主要是不理解寻址和存储单元的概念,当初错误认为应该是2^
20
/8(即得到2^
20
个数据,单位为bit,寻址能力为
地址总线
能够传送的数据个数),后面发现其实还是看书不仔细,现做记录。 不理解这句话,可能是对词语的不理解,那么先对“
8086
CPU
有
20
位
地址总线
,可以传送
20
位地址,达到1MB寻址能力”这句话拆分。 名词解释: 1、
地址总线
:拆分为“地址”和“总线”,这里的“地址”意为“存储单元在存储器中的编号”,“总线”意为“连接
8086
CPU
给出的物理地址
8086
CPU
具有
20
位
地址总线
,可以传出
20
位地址,但是因为
8086
CPU
又是一个16位结构,为了使得
8086
CPU
达到1MB的寻址能力,故
8086
CPU
在内部采用两个16位的寄存器进行合成
20
位的物理地址。 这两个16位寄存器提供的地址分别称为段地址和偏移地址。 它们通过地址加法器合成一个
20
位物理地址,然后通过内部总线将
20
位物理地址送到输入输出控制电路,之后,通过
地址总线
送到储存器 地址...
8086
cpu
有多少
根
数据线和地址线
8086
可用
20
位地址寻址1MB的内存空间,但
8086
内部寄存器都是16位的,所以需要一个附加机构来
根
据16位寄存器提供的信息计算出
20
位的物理地址,这个机构就是
20
位的地址加法器。
8086
cpu
有16
根
数据线和
20
根
地址线,既能处理16位数据,也能处理8位数据,可址的内存空间为1MB。内部数据总线宽度相同,都是16位。
8086
cpu
是1978年6月INTEL推出的一款微处理器,主频4.77MHz,采用16位寄存器、16位数据总线和29000个3微米技术的晶体管,标志着第三代微处理器问世。
8086
CPU
物理地址
8086
CPU
有
20
位
地址总线
,可以传送
20
位地址,达到1MB寻址能力,但
8086
CPU
内部是16位,表现出来的寻址能力只有64kb。
8086
CPU
采用一种在内部用用两个16位地址合成的方法来形成一个
20
位的物理地址。
CPU
中的相关部件提供两个16位地址,一个为段地址,另一个为偏移地址,地址加法器让两个16位地址合成一个
20
位的物理地址。物理地址=段地址16+偏移地址 段地址16+偏移地址...
8086
cpu
物理寻址
8086
CPU
有
20
位
地址总线
,可以传送
20
位地址,达到 1MB寻址能力。
8086
CPU
又是16位结构,在内部一次性处理、传输、暂时存储的地址为16位。从
8086
CPU
的内部结构来看,如果将地址从内部简单地发出,那么它只能送出16位的地址,表现出的寻址能力只有64KB。
8086
CPU
采用一种在内部用两个16位地址合成的方法来形成一个
20
位的物理地址。 (1)
CPU
中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;(2)段地址和偏移地址通过内部总线送入一个称为地址加法器的部件; (3
汇编语言
21,493
社区成员
41,618
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章