微处理器:存储程序计算的演进
计算机早期,Alan Turing 和 John von Neumann 等先驱认识到真正有用的机器必须不仅执行命令列表——还必须能在同一存储池中存储、检索、修改数据。此洞察催生存储程序计算机概念。
图灵理论机依赖顺序访问磁带存放程序指令和数据。控制电路读磁带、执行操作、将结果写回磁带或移动磁带读新数据。现代系统用随机访问存储器(RAM)替代磁带,以更高速度和灵活性达成同一目的。
早期自动机床控制提供有用类比。开环或数控(NC)系统按纸带编码指令引导车床或铣床。机器盲目跟随纸带,不知工件状态。
因设备“盲目”于环境,无法补偿金属膨胀或刀具磨损等变化。程序员还须预判所有可能指令序列,因纸带只读且机器无内部存储跟踪状态。
升级为有限状态机 (FSM) 给工具初步记忆:反馈部分数据位到地址逻辑,系统可记住“冷却液开”、“刀具就位”等简单状态。仍不足真正灵活。
突破来自闭环数控 (CNC),程序可写新数据到可写存储器 (RAM)。控制系统随之记录已做操作并适应传感器检测变化——如机工在便签记笔记供后续参考。
计算机科学家长期梦想机器能修改自身代码,镜像人脑经验强化突触。为使自修改程序可行,可执行代码必须驻留在同一存储数据的可写存储器中——这一概念仍处研究前沿。
多数软件仍遵循固定指令序列,仅修改单独数据字段。真正支持存储程序模型,需不止 FSM;还需读写存储器、数据处理单元、复杂控制器。
读写存储器由静态或动态 RAM 芯片提供——廉价快速。逻辑运算由算术逻辑单元 (ALU) 处理,执行算术和布尔函数。
控制单元协调存储器、ALU、外部设备间数据移动。用三态缓冲器在总线路由数据,用解码逻辑将二进制指令码翻译为动作。
示例指令:“将地址 0010 值加到地址 1101 值”,或“计算地址 0111 字节奇偶校验”。二进制码到操作映射任意,类似早期 ASCII 标准,但指令集通常厂商专有。
读写存储器、ALU、控制单元集成——常在单芯片上——形成处理器。极少外部存储器的处理器称微处理器;配总线控制电路称中央处理单元 (CPU)。
CPU 运行封装于取指/执行周期。程序计数器持有下一指令地址。控制单元读该地址到存储器地址总线,从 RAM 取指令,存入临时寄存器。
指令需操作数时,控制单元发起额外存储器访问,路由取得数据到 ALU 寄存器。ALU 执行请求操作,结果置入累加器。最后程序计数器增 1,循环重复。
微处理器 (CPU) -------------------------------------- | ** Program counter ** | | (increments address value sent to | | external memory chip(s) to fetch | | the next instruction) |==========> Address bus | (to RAM memory) | -------------------------------------- | ** Control Unit ** |<=========> Control Bus | (decodes instructions read from | | program in memory, enables flow | | of data to and from ALU, internal | | registers, and external devices) | (to all devices sharing | address and/or data busses; | | arbitrates all bus communi- | | cations) | -------------------------------------- | ** Arithmetic Logic Unit (ALU) ** | | (performs all mathematical | | calculations and Boolean | | functions) | -------------------------------------- | ** Registers ** | | (small read/write memories for | | holding instruction codes, | | error codes, ALU data, etc; | | includes the "accumulator") |<=========> Data Bus | (from RAM memory and other | | external devices) | --------------------------------------
即使最简单操作也需许多微步骤。复杂算术如求幂涉及基本函数重复迭代。考虑飞行模拟器图形引擎每帧刷新显示须执行成千上万周期。
取指/执行周期极高速度使此可行。某些设计在内部 ROM 嵌入小程序——称微代码。微代码处理复杂操作子步骤,允许程序员发单条高层指令而非写尽细节。
于是处理器包含处理器:程序内运行程序,简化开发同时保性能。
工业技术
- 理解网络协议:从物理层到高级仲裁
- 为什么数字存储器很重要
- 数字存储器基础:寻址、访问与易失性
- 理解 ROM、PROM、EPROM 与 EEPROM:设计、编程与识别
- 综合 Op-Amp 数据:National Semiconductor 与 CA3130 数据手册
- 数据驱动制造:解锁效率、成本节约与创新
- 最大化组织优势:将数据转化为战略洞察
- 工业物联网(IIoT)全景:定义、架构、价值与挑战
- C 语言数据类型完全指南:整型、浮点型、void 与派生类型
- C 语言联合体详解:多类型数据共享内存的高效管理
- C 语言动态内存管理:calloc、malloc 与 free 完全解析
- 精通Python数据类型:实战指南