控制器(control unit)是计算机的控制中心和指挥中心,负责协调和指导计算机各部分的运行。它根据程序的指令序列决定执行顺序,执行当前指令,生成操作控制命令,同时生成指令地址,并向计算机的各个组件发出有序信号,确保每条指令的功能得到实现。[1][2]在遇到意外故障或需要处理随机输入输出请求时,控制器能够通过中断机制暂停当前程序,转而执行中断处理程序。一旦处理完毕,控制器会自动恢复到中断前的程序继续执行。[2]
1938年以来,康拉德·楚泽的Z1、Z2和Z3计算机展示了控制器从机械式到机电式的演进,其中Z1使用滑动金属杆,Z2引入继电器电路,而Z3则采用了先进的微序列器和控制轮技术,实现了对计算机各组件的精确同步控制。[3][4]1950年,以冯·诺依曼结构为基础的第一台计算机——电子离散变量自动计算机(EDVAC,Electronic Discrete Variable Automatic Computer)成功研发。该计算机由运算器、控制器、存储器和输入输出设备构成。[5][6]50年代末,晶体管在计算机中得到广泛应用,[7]后来晶体管计算机上开始出现了微程序控制器,[8]如1958年的EDSAC2,是首台使用微程序控制器的计算机。[9]1964年,CISC架构在IBM System/360中得到应用。[10]1969年得克萨斯设备公司使用了大规模集成电路来构建计算机的控制器。[11]1971年Intel 4004诞生,它将相关组件都集成在单个芯片上。[7]1980年,RISC架构在IBM 801中得到应用。[10]1985年,Sun Microsystems发布了SPARC架构,同年ARM Holdings开发了ARM架构,这两者一起推动了RISC的发展。[10][12]20世纪90年代后期多核处理器的发展,使得控制器设计更加复杂,需要处理多核心间的通信和同步问题。[13][14] 控制器由指令部件、地址部件、时序部件、中断控制部件和操作控制部件组成,负责确保指令执行顺序性、生成操作控制命令、处理异常、提供时序信号等,以维护系统稳定性和数据准确性。[2][1][15]控制器的控制方式包括同步控制、异步控制、联合控制和人工控制,旨在形成不同微操作序列的时序。[2][16]控制器分为硬连线控制器和微程序控制器两大类。[1]控制器在不同类型的计算机系统中发挥着关键作用,包括个人计算机[17]、嵌入式系统[18]、超级计算机[19]、移动设备[20]和物联网设备等。[17]计算机控制器挑战主要包括:模型构建复杂性、传感器数据不稳定、执行器效应复杂、控制环设计分析、跨层协调、资源优化分配、负载快速变化应对、控制理论应用、系统识别自适应控制和安全性可靠性。[21][22]未来控制器将通过模块化设计、控制理论应用、优化资源分配、集成安全机制、与先进技术融合,实现高效、智能、安全的控制策略,以适应日益复杂的系统需求。[21] 历史沿革
机械控制器