• C专家编程 第7章 对内存的思考 7.1 Intel 80x86系列


    Intel 80x86系列
    Intel总是能够及时提供向后兼容的处理器。可兼容性使用户更容易升级到新的芯片,但这也严重限制了芯片的革新。
    现代的Pentium处理器就是15年前Intel8086处理器的直接后代,它存在许多架构上的不规整性,目的就是为了与8086保持向后兼容(在8086上编译的程序可以直接在Pentium上运行)

    Intel 4004是一个4位的微控制器(开创事业) 
    Intel 8008是一个8位的微控制器,这是第一片性能强大到可以称其为微处理器的芯片。 
    (带来财富)(通用目的设计)
    8085处理器充分利用了芯片整合技术,它将3块芯片整合组合成一块。在本质上,它是把8080处理器、8224时钟驱动器、8228控制器整合到一块芯片上。虽然它内部的数据总线宽度仍然是8位,但它使用了16位的地址总线,所以能够访问2^16也就是64KB的内存。
    8086处理器于1978年诞生,它对8085做了改进,允许16位的数据总线和20位的地址总线,可以访问多达1MB的内存(这在当时是一个非常惊人的数字)。这块芯片采用了一个非比寻常的设计决定,它通过重叠两个16位的字来形成20位的地址,而不是通过简单地链接两个字来形成32位的地址。8086在指令集一级上与8085不兼容,但汇编程序宏(assembler macro)可以容易把原来的程序转移到新的芯片上来。

    16位值加上......               15...0
    经过移位的16位值          + 15...0 
    产生一个20位的地址       19...0
    第一个16位值可称为“偏移量”,第二个偏移量移位后称为“段”,8086芯片有4个段寄存器,用于存储地址的值,并能自动进入移位和加法操作来产生20位的地址。
    8086有代码寄存器CS,数据寄存器DS和堆栈寄存器SS,分别存放代码段、数据段和堆栈段的首地址,另外还有一个附加段ES。从编译器作者的角度看,这些是非常有用的。
    (保持豪门的位置) 
    80286差不多就是80186(只是内置了一些微不足道的外设端口支持),但它第一次试图扩展内存空间。它把内存控制器移到处理器芯片的外面,并提供了一种野心勃勃的内存模式,称为虚拟模式(virtual mode)。在虚拟模式中,段寄存器并不与偏移地址相加,而是为一个存放实际段地址的表提供索引。这种地址模式也被称作保护模式(protected mode),它依然是16位的。

    80386在80286的基础上增加了两种新的地址模式:32位的保护模式和虚拟的8086模式。
    另一种内存模式(虚拟的8086模式)可以创建一种内存空间为1MB的8086虚拟机。几个虚拟机可以同时运行,从而支持MS-DOS的虚拟多任务系统。它们中的每一个都认为自己运行于自己8086处理器上。
    上述所有这些处理器都可以附加协处理器,通常用于实现浮点数的硬件支持。
    80486适当地增加了一些指令,并在处理器内部集成了cache(高速的处理器内存),其余部分的性能提高主要应归功于它。
    Intel连续推出新芯片的格言就是“要么更快,要么灭亡”。

  • 相关阅读:
    蓝桥杯2013年-带分数(暴力全排列check方案数)
    SpringBoot——整合Mongodb
    WPF将dll文件嵌入到exe文件中
    前端食堂技术周刊第 50 期:TypeScript 4.8、Deno 1.25、Terminal Gif Maker、CSS :has() 伪类
    Reka团队打造前沿多模态语言模型,展现卓越性能
    QT实战之翻金币游戏【详细过程及介绍】
    两行CSS让页面提升了近7倍渲染性能!
    LeetCode --- 1436. Destination City 解题报告
    电脑蓝屏的错误代码含义
    【js】-【链表-应用】-学习笔记
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/126081431