处理器型号共享同一 ISA 血统,但在总线、封装、时钟、集成外设和微架构方面存在差异。因此, 软件兼容性并不意味着板级行为完全相同。
Intel 8086 和 8088 #
8086 和 8088 执行相同的 16 位指令集,并使用 20 位地址空间,可提供 1 MiB 的物理内存。 二者在外部的主要区别是数据总线:8086 具有 16 位总线,而 8088 具有 8 位总线。较窄的 总线宽度使 8088 更容易连接到当时的低成本外设,但代价是 16 位传输需要额外的总线周期。
两种设计都对地址引脚和数据引脚进行复用,因此外部锁存器会在总线周期期间保持地址。
MN/MX 输入用于选择单处理器系统的最小模式,或使用外部总线控制器和协处理器的系统的
最大模式。
段从 16 字节边界开始,并通过 CS、DS、SS 和 ES 进行寻址。远指针存储一个偏移量
和一个段值;它不是线性 32 位地址。

80186 和 80188 #
80186 和 80188 保留了 8086/8088 核心之间的区别,同时集成了定时器、中断控制、DMA 和 片选逻辑等外设。这种集成适合嵌入式系统,但 PC 兼容系统使用独立的外设设计,因此没有将 它们作为直接的 PC CPU 替代品采用。
这两个型号还增加了后续 x86 处理器使用的指令,包括 PUSHA、POPA、PUSH 的立即数形式、
带符号立即数 IMUL、ENTER、LEAVE、BOUND 以及字符串端口 I/O。与前一对处理器一样,
80186 具有 16 位外部数据总线,而 80188 具有 8 位总线。
型号、封装与时钟边界 #
处理器名称并不能标识唯一的物理部件。Intel 以多种封装和速度等级出货这些系列的成员, 兼容厂商也制造了更多实现。时钟额定值表示相关数据表规定的输入频率或工作频率,而不是 每秒执行的指令数。总线宽度、等待状态、预取行为和外设时序可能导致具有相同频率的部件 表现不同。
现代处理器上的识别 #
现代 x86 处理器会通过 CPUID 报告 family、model 和 stepping,前提是处理器实现了该指令。
操作系统会将这些标识符与功能位结合,用于选择缓解措施、性能策略和变通方案。选择 ISA
指令时,应以功能位而非 family 编号为依据,因为不同型号可能公开不同的可选扩展。
电气引脚分配、封装规则和时序要求来自具体处理器的数据表。ISA 手册描述软件契约,但不能 替代这些板级文档。同样,历史型号名称也不表示处理器处于实模式、保护模式、兼容模式或 64 位执行模式;软件必须确定当前模式并查询受支持的功能。
评论
在 GitHub 上阅读或评论(发表评论需要登录)