- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章80x86微处理器解读
* * 2.2 存储器物理地址的形成 2.2.1 存储器的结构 2.2.2 物理地址的形成 2.2.3 存储器单元的地址和内容 * * 2.2.1 存储器结构 主存储器用于存放系统运行所需要的所有的程序和数据; 开机后自动从BIOS和辅存中调入数据,掉电后丢失; 存储器的基本单位是存储单元; 每个存储单元的大小可以是一个字节,或一个字; 8086 CPU的主存是以字节进行组织的; 每个存储单元都有一个唯一的编号,称为物理地址,用于CPU访问; 存储器容量单位 bit、Byte、KB、MB、GB、TB、EB、PB、…… * * 物理地址(Physical Address,PA) 将整个存储器从第一单元到最后一个单元按顺序编号所得到的地址称为物理地址; 物理地址可以唯一地标识每一个存储单元; CPU访问主存时,必须通过地址总线输出所要访问存储单元的的物理地址。 系统的最大主存容量取决于地址总线的位数; …… 主存储器 0???00B 0???01B 0???10B …… 1???11B * * CPU对主存储器的访问过程 CPU通过控制总线,发出访存信号,通知主存准备数据读写; CPU通过地址总线,发出存储单元的地址; 主存储器接收到地址后,译码,寻址正确的存储单元; CPU通过控制总线,发出读写的命令; 主存储器将准备执行读写操作; CPU通过数据总线,读出或写入的数据; CPU 主存 数据总线 地址总线 读写控制线 访存控制线 8086需要4个时钟周期,80486只需要1个时钟周期。 读 PA 1100 0110 允许 1100 0110 * * 2.2.2 8086 CPU对主存的分段管理模式 分段的原因 16位系统中,地址总线20根 ?可寻址主存空间为220=1MB ?物理地址区间0~0FFFFFH 16位系统中,机器字长16位 ?运算的最大位数、指针等只有16位 ?可直接寻址的空间为216=64KB ?直接使用的地址区间0~0FFFFH 因此,采用分段方式管理和访问主存。 * * 存储器的分段管理 分段的思想: 将存储器划分成若干区间,标记起始地址,区间内用较少位数的地址寻址; 用两个16位地址合成的方法形成一个20位的物理地址; 段地址、段内偏移地址(有效地址) 关于分段的规定 段的起始:每个逻辑段的起始地址必须是16的倍数。 即:xxxx xxxx xxxx xxxx 0000B 或:xxxx0H 段的容量:每个逻辑段的最大容量可以达到64KB。 注意:各逻辑段之间是可以重叠的。 主存实际上并没有从物理上分段,段的划分只是来自于CPU的管理! 区间不固定,随机划分! * * 存储器的分段示意 …… …… …… …… 物理地址 00000H …… 12340H 12341H …… 22000H …… 2233FH …… 0FFFFFH 主存储器 段起始单元 …… 逻辑段1 段地址为:1234H 保存于段寄存器中 偏移地址 0000H 0001H 0002H …… 0FFFFH 段起始单元 …… 逻辑段2 段地址为:2200H 保存于段寄存器中 偏移地址 0000H 0001H 0002H …… 0FFFFH 图3.3 物理地址的形成 * * 关于分段 1MB空间最多能分成多少个段? 逻辑段最密集的划分方式 ——每隔16个存储单元开始一个新段,各段都是重叠的; 所以,1MB最多可以有220÷16=216=64K 个段 1MB空间最少能分成多少个段? 逻辑段最松散的划分方式 ——每隔 64K 个存储单元开始一个新段,各段不重叠; 所以,1MB最少可以有 220÷216=16 个段 * * 分段模式下主存储器的地址类型 物理地址 每个存储单元在整个存储器中的唯一标识; 段地址 逻辑段首单元的物理地址的高16位; 有效地址EA(段内偏移地址) 该存储单元相对于段首单元的偏移量; 该单元物理地址 = 有效地址 + 段首单元的物理地址; 逻辑地址 由段地址和有效地址表示的存储单元地址形式; 某单元A的物理地址为23000H 若段起始地址为20000H,即段地址为2000H 则A的有效地址为3000H 该段中,A的逻辑地址可表示为2000H:3000H * * 任意一个物理地址均可以用段地址和偏移地址两部分形成; 逻辑地址:“段地址 :偏移地址” 分段的不同,可导致同一个物理地址对应多个不同的逻辑地址。 物理地址(PA) = 段地址×16 + 偏移地址 段地址:段起始单元物理地址的高16位; 偏移地址:也可称为有效地址(EA) ,指实际单元和段起始单元之间的距离。 将段地址左移4个二进制位 物理地址的形成 * * 2.2.3 存储单元中数据的存取方法
文档评论(0)