这款传奇芯片的诞生源于一系列的迭代与改进。故事始于 Datapoint 2200 终端,催生了英特尔的 8008 处理器。随后,英特尔在其基础上开发了功能更强的 8080 处理器,但它在指令集和硬件设计上仍有不足。最终,离开英特尔的工程师成立了 Zilog 公司,推出了 Z80 处理器。Z80 不仅与 8080 保持了二进制兼容,还通过引入影子寄存器、新的索引寄存器、强大的块操作指令以及简化的总线设计,实现了革命性的飞跃,极大地简化了计算机的设计,并因此成为了一代经典。
从 8008 到 8080:英特尔的奠基
Z80 的历史可以追溯到英特尔的早期处理器。其前身是为 Datapoint 2200 可编程终端设计的 8 位处理器 8008。
- 8008 架构: 它拥有 A (累加器)、B、C、D、E、H、L 等寄存器。其中,H 和 L 寄存器对被用作内存指针。
- 核心局限: 8008 的一个主要缺点是其内部调用栈只有 8 级深度。这个设计是为了适应当时性能较差的串行存储器,但在实际应用中成为了性能瓶颈。
为了应对市场竞争和 8008 的不足,由 Federico Faggin 和 Masatoshi Shima 主导的团队开发了改进版的 8080 处理器。
- 8080 的主要改进:
- 引入了外部堆栈指针 (SP),允许堆栈存在于内存中,彻底解决了 8008 的调用深度限制。
- 允许将寄存器对(如 BC、DE)成对地推入或弹出堆栈。
- 增加了新的间接寻址模式。
尽管 8080 是一个巨大的进步,但它仍然存在一些问题。它的汇编语言虽然易于机器解析,但可读性较差,且需要多条指令来完成一些本可以简化的操作。此外,它需要多种电压供电和专门的支持芯片,使得硬件设计相对复杂。
Zilog Z80:一次革命性的飞跃
Federico Faggin 离开英特尔后,与他人共同创立了 Zilog 公司,并推出了 Z80 处理器。Z80 的设计目标是:与 8080 保持二进制兼容,但在功能和性能上全面超越。
Z80 引入了多项关键改进,使其远比 8080 更强大、更易用。
影子寄存器 (Register Bank Switching): Z80 拥有一套与主寄存器组 (AF, BC, DE, HL) 完全重复的“影子寄存器组”。通过一条指令,CPU 可以在两套寄存器之间快速切换。这对于中断处理至关重要,因为它允许中断服务程序使用一套全新的寄存器,而无需在堆栈中耗时地保存和恢复现场。
新的索引寄存器 (Index Registers): Z80 增加了两个新的 16 位索引寄存器:IX 和 IY。它们允许程序员使用带有立即数偏移量的寻址方式,这对于处理数据结构和数组非常有用,是 8080 所不具备的强大功能。
强大的新指令 (Powerful New Instructions): Z80 增加了一系列高效的指令,尤其是块操作指令。 > 例如,在 8080 上复制一段内存需要一个循环,包含多条指令。而在 Z80 上,完成同样的工作只需要一条指令:
LDIR(Load, Increment, and Repeat)。
这个改进极大地提升了程序的执行效率和代码的简洁性。
简化的硬件设计
除了架构上的增强,Z80 在电气接口和总线设计上也做出了重大简化,这或许是它取得巨大成功的最重要原因之一。
- 清晰的总线信号: Z80 提供了非常直观的控制信号,例如
MREQ(内存请求)、IORQ(I/O 请求)、RD(读取) 和WR(写入)。 - 单一电源: 与需要多组电压的 8080 不同,Z80 仅需单一的 +5V 电源即可工作。
这些清晰、简化的设计意味着,开发者几乎不需要复杂的支持芯片。只需将 Z80 与一些标准的存储器 (EPROM, RAM) 和一个 I/O 控制器(如 UART)连接起来,就能轻松构建一个功能完整的计算机。
正是这种设计上的优雅和易用性,使得 Z80 成为了无数个人电脑、嵌入式系统和游戏机的核心,开启了一个属于它的时代。