控制器(control unit)是计算机的控制中心和指挥中心,负责协调和指导计算机各部分的运行。它根据程序的指令序列决定执行顺序,执行当前指令,生成操作控制命令,同时生成指令地址,并向计算机的各个组件发出有序信号,确保每条指令的功能得到实现。在遇到意外故障或需要处理随机输入输出请求时,控制器能够通过中断机制暂停当前程序,转而执行中断处理程序。一旦处理完毕,控制器会自动恢复到中断前的程序继续执行。
历史沿革
编辑机械控制器
首款用布尔逻辑和二进制浮点数的可自由编程的机械计算机“Z1”是由德国发明家康拉德·楚泽(Konrad Zuse)于1938年制造的,其控制器利用了滑动金属杆来执行逻辑和算术运算。Z1控制器的金属杆只能向前或向后移动,适合于二进制机器。“Z2”是最早使用继电器制造的电动数字计算机之一,由楚泽于1940年发明。它是Z1的改进版本,使用相同的机械内存,但它用继电器电路取代了算术和控制器。“Z3”是全球首台全功能机电编程数字计算机,由楚泽于1941年基于“Z2”改进。其控制器采用了微序列器(microsequencers)。微序列器通过控制轮(control wheels)实现控制。“Z3”的控制器通过控制线同步处理器、存储器和I/O设备。控制器还包括读取操作码和地址的读取器和用于处理零、无穷大等异常情况的电路。
电子管控制器
电子数值积分计算机(ENIAC)是首台可编程通用电子计算机,于1943年启用,采用电子管代替机械开关。其控制器通过程序控制和公共电路管理计算机的操作。每个单元配备多组程序控制,通过接收程序脉冲激活,进而控制数值电路。主程序员单元由步进计数器和十年计数器构成,控制程序序列。控制器还包括启动和循环单元,负责启动、同步和操作控制。约翰·冯·诺依曼对控制器的作用和设计进行了更深入的理论化和系统化的研究,并在1945年的一份关于EDVAC计算机基础的报告中提出了“冯·诺依曼体系结构”,为后来的计算机设计提供了一个全新的框架。与早期依赖机械开关或硬件电路的计算机不同,冯·诺依曼体系中的控制器负责解释并执行内存中的指令,控制数据在内部部件间流动。这使得指令和数据能共存于同一存储器,并通过地址访问。1950年,冯·诺依曼与莫尔小组合作开发了首台冯·诺依曼结构计算机EDVAC,它包括运算器、控制器、存储器和I/O设备。1951年,威尔克斯在其论文《设计自动计算器的最佳方法》(The Best Way to Design an Automatic Calculating Machine)中提出了微程序控制器编程技术。1953年,威尔克斯和斯特林格(Stringer)进一步探讨了该技术,包括设计复杂性、数据路径并行性、多路分支并行处理、控制逻辑的测试与验证,以及流水线访问控制存储和不同指令集架构的解决方案。
晶体管与集成电路
1947年,约翰·巴丁(John Bardeen)、威廉·肖克利(Wiliam Shockley)和沃尔特·布拉顿(Walter Brattain)发明了晶体管。1953年,世界上第一台晶体管计算机“TRADIC”(Transistorized Airborne DigitalComputer)诞生于贝尔实验室。50年代末晶体管在计算机中得到广泛应用。晶体管计算机受到了多道程序设计的影响,出现了包含单一文件中心存储器和多个控制器或多个存储器和控制器的系统结构。晶体管计算机上开始出现了微程序控制器。微程序控制器的引入减少了成本,但牺牲了速度。1958年,EDSAC2被正式投入使用,是首台使用微程序控制器的计算机,其控制器使用磁芯存储器(Magnetic Core Memory)构建了只读存储器(ROM)。同年德州仪器的杰克·基尔比和仙童半导体公司的罗伯特·诺伊斯各自独立发明了第一款可工作的集成电路(IC)。1963年,IBM发布了当时世界上最快的计算机CDC 6600,该计算机使用了硬连线控制器。1964年,IBM360系列计算机成功地采用了微程序控制方案,方便地实现了不同计算机间指令兼容问题,从此微程序控制方案获得广泛应用。1969年4月得克萨斯设备公司制成了试验性的集成电路计算机。该计算机中总共使用了34块大规模集成电路,其中12块用在控制器。
微处理器与指令集
1960年,金属氧化物半导体(MOS)晶体管的发明为计算机处理器的单芯片集成铺平了道路。1964年,IBM的System/360引入了复杂指令集(CISC)架构,并逐渐成为个人计算机的标准指令集架构。1971年,Intel推出了首款单芯片微处理器4004,集成了CPU(包括运算单元和控制器)、内存和I/O控件。70年代末,IBM的约翰-科克(John Cocke)设计了精简指令集(RISC)。由于RISC架构的结构简单,所以倾向于使用硬布线逻辑控制器,适合流水线技术。1985年,Sun Microsystems发布了基于RISC的可扩展处理器架构(SPARC)架构。同年,ARM Holdings开发了ARM(高级RISC)架构,并逐渐成为了移动和嵌入式市场的主流。1989年,英特尔推出了80486 CPU,它采用了“混合控制器”技术:简单高频指令由硬连线控制器处理,而复杂指令则由微程序控制器执行。
多核处理器的崛起
多核处理器的发展始于20世纪90年代后期,得益于半导体工艺的提升,使得单芯片晶体管数量激增,这为多核处理器的发展提供了可能。1994年斯坦福大学启动了最早的多核处理器项目Hydra。IBM在2001年推出了Power4双核处理器,AMD在2005年推出了首款X86双核处理器,而Intel在2006年推出了酷睿双核处理器。随着从单核到多核的转变,控制器设计变得更为复杂和高效。在多核处理器中,控制器不仅需要管理单个核心的执行,还需要处理多个核心之间的通信和同步问题。这包括了核心之间的数据共享、任务分配以及缓存一致性等关键技术2019年,库马尔(Kumar)等人使用基于28 nm技术的现场可编程门阵列(FPGA)开发了一种频率缩放、热感知控制器。该设计通过调整运行频率、平衡性能与热管理来最大限度地降低CPU的功耗。2020年,阿南丹(Anandan)等人设计了一种针对信号处理应用的64位处理器的数字控制器。该设计采用Spartan-III FPGA架构实现,通过优化每个时钟周期操作数据路径的控制信号,有效的降低了延迟。
原理
编辑控制器负责从中央处理单元(CPU)的内存中提取以二进制形式编码的指令,并将其转化为电信号的脉冲序列。这些脉冲序列作为命令,指导计算机系统内其他组件的运作。由于不同的设计方法,存在硬连线控制器和微程序控制器两种结构各异的控制器,它们的运行原理也存在差异。
硬连线控制器运行原理
硬连线控制器的基本运行原理是使用大量的组合逻辑门线路直接提供控制计算机各功能部件协同运行所需要的控制信号。这些门电路的输入信号是指令操作码、指令执行步骤编码,或许还有其他的控制条件,其输出的一批信号就是提供给计算机各功能部件的控制信号。硬连线控制器通过程序计数器(PC)自动连续执行指令,PC自动增量生成下一条指令地址,响应转移指令改变执行顺序。指令从内存读取后传输至指令寄存器(IR),IR提供操作码等信息,为指令译码和执行提供必要信息。
微程序控制器运行原理
微程序控制器是通过利用微指令集来实现机器指令功能的。其核心组件是控制存储器,通常由只读存储器(ROM)芯片构成,用于存储构成微程序的微指令序列。在程序的执行过程中,微程序控制器通过指令及其执行步骤,顺序地从控制存储器中提取微指令,利用微指令中的微命令字段来控制计算机各执行部件的操作,同时利用下地址字段来确定下一条微指令的地址,确保微程序的连续执行。微程序控制器通过微周期执行指令,微指令生成控制信号完成微操作,实现机器指令功能。控制存储器固化微程序,微指令通过寄存器传输至功能部件,微指令寄存器设置实现时间重叠,提高执行速度。
微程序控制器
组成/结构
编辑控制器的基本组成控制器包括:指令部件、地址部件、时序部件、中断控制部件和操作控制部件。(1)指令部件:包括指令计数器(或程序计数器)一一用于指定当前执行指令的地址,保持程序连续执行;指令寄存器一暂存当前执行指令供控制器分析;指令译码器—将操作码转换为控制信号,以执行相应操作。(2)地址部件:负责根据寻址方式形成转移地址或操作数有效地址。通常包括地址加法器,用于如变址寻址时计算主存地址。在某些设计中,地址加法可能由ALU完成以简化电路。(3)时序部件:负责提供有序的时间信号。一条指令执行过程可分为几个阶段,如取指令、执行等。每个阶段又可分成几步,每一步叫作一个节拍。节拍是时序控制的基本单位,通常与时钟周期同步。启停电路管理启动、停机及单条/单拍操作,并控制相关时钟信号。(4)中断控制部件:负责处理随机出现的各种意外请求,包括低速输入输出设备的输入输出请求。它不但提高了机器的工作效率,而且提高了机器的可靠性,并为分时操作、实时控制和网络通信提供了实现手段。(5)操作控制部件:是运行程序和执行指令的关键部件。为了指挥计算机各个部分协同工作,完成指令规定的功能,操作控制部件必须准确及时地向各部件提供各种操作控制信号。
主要分类
编辑控制器按照生成操作控制命令的实现方案可分为组合逻辑控制器和微程序控制器。
硬连线控制器(hard-wired control unit)
硬连线控制器,也称作组合逻辑控制器,是计算机系统中用于协调和控制指令执行的核心部件。硬连线控制器是早期计算机唯一可用的方案,并在RISC架构和追求高性能的计算机中得到广泛应用。硬连线控制器的优势在于其控制信号的生成具有较短的传输延迟,这有助于提升系统运行速度。硬连线控制器形成控制信号的电路设计比较复杂,再用与、或、非等组合逻辑门电路把设计结果实现出来也相对麻烦,尤其是要变动一些设计时不大方便。随着大规模集成电路技术的发展和现场可编程门阵列(FPGA)及辅助设计软件的应用,这些问题已得到有效缓解。硬连线控制器由多个部件组成,包括指令、地址、时序、操作控制和中断控制部件。操作控制部件根据指令译码器、时序信号等生成控制命令。节拍发生器提供节拍编码信号,控制信号形成部件(CU)快速生成控制信号,实现指令执行。
微程序控制器(micro-programmed control unit,MCU)
微程序控制器是通过执行由若干条比机器指令低一层次的微指令所组成的微程序而实现机器指令所必需的各种基本操作的控制器。微程序控制器的这种设计虽然增加了系统的复杂性,但提供了高度的灵活性和可编程性,允许通过改变控制存储器中的内容来改变计算机的行为,从而适应不同的计算需求。微程序控制器在性能要求不是特别高的系列计算机系统中得到普遍应用,缺点是运行速度较慢,难以使用在性能要求特别高的计算机系统中。
微程序控制器的组成
微程序控制器除了控制器常设的一般部件,包括程序计数器(PC)、指令寄存器(IR)、时序电路和中断控制部件以外,还有保存微程序的控制存储器(CM)以及为执行微程序而设置的控存地址寄存器(CMAR)、微指令寄存器(μIR)、条件测试电路、地址映射电路(MAP)、返回-计数寄存器(R/C)等。
微程序控制器的主要组成
微程序控制器逻辑框图
微指令分类
微程序控制器通过微指令序列执行机器指令,分为水平型和垂直型微指令。水平型由控制字段和下址字段组成,操作并行度高,适合高速计算机,但存储器利用率低。垂直型微指令结构类似机器指令,顺序执行,存储器利用率高,易于设计自动化,但执行速度慢。毫微程序结合两者优点,提高执行效率和灵活性。
微程序的顺序控制
微程序控制器通过微程序计数器(μPC)和微指令下址字段控制微指令执行顺序。顺序执行时,μPC值自动加1。分支流程中,根据测试条件决定后继微指令地址。微程序设计可构建循环、子程序和公用微程序等结构,实现模块化和重用。
基本功能
编辑控制器的基本功能包括:
- 确保指令执行的顺序性,维护程序运行的流程控制。
- 生成操作控制命令,以实现指令要求的各种操作,确保相关部件能够完成指令规定的功能。
- 处理程序运行过程中可能出现的异常情况,如运算溢出、数据校验错误以及输入输出中断请求等,以保证系统的稳定性和数据的准确性。
- 提供统一的时序控制信号,协调计算机系统中各部件的操作。
控制方式
编辑控制器控制一条指令执行的过程实质上是一次执行一个确定的微操作序列的过程,这在硬布线控制器和微程序控制器中是一样的。由于不同指令所对应的微操作数量及复杂度不同,因此每条指令和每个微操作所需的执行时间也不同。通常将如何形成不同微操作序列所采用的时序控制方式称为“控制器的控制方式”,常见的有同步控制、异步控制、联合控制以及人工控制4种:
- 同步控制方式:在这种方式下,控制器按照固定的时间节拍发出控制信号,执行各种操作。所有指令在执行时所需的机器周期数和节拍数都是固定不变的,适用于操作时间相差不大且不随机变化的情况。同步控制实现简单,易于实现,但可能对某些指令造成时间浪费。
- 异步控制方式:与同步控制不同,异步控制不依赖于固定的时钟信号,而是根据操作部件完成操作后发出的“回答”或“结束”信号来启动后续操作。这种方式使得CPU没有空闲等待的状态,提高了时间利用率,但需要复杂的应答电路,增加了硬件成本。
- 联合控制方式:结合了同步和异步控制的优点,对大多数微操作采用同步控制,而对时间难以确定的微操作采用异步控制。这种方式是现代计算机中普遍采用的控制策略,它在功能部件内部采用同步方式,在功能部件之间采用异步方式,以达到高效率和灵活性的平衡。
- 人工控制方式:为了调试和开发需要,计算机可能包括一些允许人工干预的控制方式,如reset按键、连续或单条执行转换开关以及符合停机开关。这些控制方式允许用户在调试过程中观察每条指令的执行结果或在特定条件下停止程序的执行。
在控制器设计中,选择哪种控制方式取决于计算机系统的具体需求和设计目标。同步控制方式因其简单性适用于基本操作,而异步和联合控制方式则为复杂的计算机系统提供了更高的灵活性和效率。人工控制方式虽然在现代高级语言编程环境中使用较少,但在开发系统和单板机中仍具有其独特的价值。
时序系统
编辑控制器的时序系统负责控制操作的时间。在微型计算机中,常见的时序系统是基于时钟周期的,称为时钟周期时序系统。它通过周期状态触发器来标识不同的机器周期,如取指、取数、执行和中断周期等,确保同一时间只有一个触发器处于激活状态。
时序系统
指令周期和机器周期
指令周期是指从取指令到执行完毕的总时间,而机器周期(CPU周期)是指令周期内的一个基本操作时间段。一个指令周期通常由多个机器周期组成,每个周期对应一个基本操作。机器周期的数量因指令的复杂性而异,最短的指令周期至少包含取指和执行两个机器周期。为了协调CPU内部操作与访问主存的时间差异,计算机系统通常以主存储器的工作周期为基础来规定机器周期,形成总线周期。
节拍
在机器周期内,需要完成多个微操作,这些操作被进一步细分为若干个节拍,每个节拍对应一个电位信号。节拍的宽度取决于完成一次基本操作所需的时间。节拍的设置方法有几种,包括统一节拍法、分散节拍法、延长节拍法和时钟周期插入法。在节拍中,某些微操作需要同步定时脉冲,如运算结果的稳定输入或状态切换,这时会设置工作脉冲。工作脉冲通常位于节拍的末尾,以确保触发器的稳定翻转。节拍电位和工作脉冲在计算机中扮演不同的控制角色。节拍电位作为控制信号,控制数据通路的开启与关闭;而工作脉冲则作为触发信号,用于触发器的定时翻转。触发器通常采用电位-脉冲工作方式,其中节拍电位控制信息的输入,工作脉冲控制触发器的触发。
节拍设置方法
多级时序系统
多级时序系统,如小型机中的机器周期、节拍、工作脉冲三级时序系统,确保了操作的准确连接和同步。在微机中,时序系统可能采用时钟周期时序系统,其中指令周期包含多个机器周期,每个机器周期又包含多个时钟周期。
应用领域
编辑个人计算机
控制器在个人计算机中负责执行一系列广泛的功能,以确保操作的流畅性和效率。它们的核心职责包括:控制和管理输入输出过程,确保计算机的中央处理器与键盘、鼠标、打印机等外围设备之间的通信顺畅;负责指令的获取、解码和执行,以保证硬件组件能够协调一致地完成各项任务。此外,它们还负责系统的节奏调控,管理内部操作的时间安排,以防止错误发生并确保数据处理的有序进行。它们与操作系统紧密合作,进行资源分配,合理地为不同的任务和进程分配所需的内存和处理能力。同时,它们还持续监控系统状态,以及时发现并响应潜在的错误和硬件故障,保障计算机系统的稳定运行。这些功能对于个人计算机的有效运行至关重要,极大地促进了设备的性能、稳定性和安全性。个人计算机通常具有相对复杂的控制器,以支持多种类型的计算任务。个人计算机(如基于x86架构的PC)通常使用CISC架构。
嵌入式系统
控制器是嵌入式系统的核心,它协调处理器的功能单元处理指令和数据,确保操作有序执行。嵌入式系统通常使用微控制器作为其控制器,将处理器与多种外设集成在单个芯片上,以提高效率,降低空间占用和能耗。在汽车和工业自动化等分布式控制系统中,控制器通过网络实现多设备同步,增强了安全性并减少了故障风险。设计嵌入式系统的控制器时,必须考虑CPU、内存、带宽和功耗等资源限制,这些限制对硬件和软件的选择有重大影响。控制器需定制化设计,以平衡性能和功耗。现代系统越来越多采用基于模型的设计(MBD)技术,通过数学和视觉模型提高开发效率和准确性,尤其在汽车行业的电子控制器(ECU)和电机控制器(MCU)设计中得到广泛应用。
超级计算机
控制器在超级计算机中扮演核心角色,负责协调整个系统的运作。超级计算机采用并行处理架构,通过多个CPU或核心同时工作,大幅提升计算速度。控制器在此过程中需要确保数据的高效分配与同步,并统一调度任务,尤其在对称多处理(SMP)架构中,控制器管理着多个处理器的共享内存。控制器还负责监督超级计算机的高速通信网络,确保数据迅速且准确地传输,减少系统瓶颈和延迟,并通过冗余和错误校正增强系统容错性。在能源和冷却管理方面,控制器通过节能操作和冷却策略,以应对超级计算机系统的高功耗和高热量,保障系统高效稳定运行。
移动设备
控制器对移动设备至关重要,不仅管理着日常操作流程,还可以提升设备的整体性能。随着技术的进步,控制器已经从执行简单任务转变为处理更为复杂的功能,同时在降低成本、体积和能耗方面取得了显著进展,满足了大规模生产和电池供电环境的特定要求。移动设备中的控制器通过高效的电源管理,在不降低性能的同时延长电池使用时间。在高性能场景下,控制器的有效热管理显得尤为关键。相变材料(PCM)等热管理技术确保了设备在高性能运行时的稳定性。远程信息控制器(TCU)的应用增强了设备的网络连通性,为用户提供了更多功能和更佳体验。
物联网(IoT)设备
物联网设备在执行数据传输至云端或其他设备的任务时,控制器发挥着核心作用。它不仅负责管理数据传输过程,确保信息交换的准确性和效率,而且协助维护有线和无线网络连接,监控网络状态,并负责通信过程的资源分配。鉴于物联网设备通常依赖于有限的电源供应,如电池或能量收集技术,控制器在这些设备的功耗管理和能效维持中扮演着至关重要的角色。通过调整操作速度、控制外围设备,并在适当时实施节能模式,控制器实现了对能效的精确管理。此外,控制器还负责物联网设备中实时应用的管理,包括传感器数据收集和执行器控制等,这些应用要求严格的时间控制和精确的协调。控制器通过持续监控并调整任务时序,确保实时应用能够准确无误地执行。
挑战
编辑当前计算机的控制器面临的挑战主要包括模型构建的复杂性、传感器数据的不稳定性、执行器的复杂效应、控制环的设计与分析、跨层协调的挑战、资源优化与分配、应对快速变化的负载、控制理论在计算机系统中的应用、系统识别与自适应控制和安全性与可靠性等方面。
- 模型构建的复杂性:成功应用控制理论于计算机系统首先需要构建精确的系统模型,这包括处理随机性和非线性问题。在实际应用中,模型的构建往往面临诸多挑战,如经验模型的局限性、黑盒方法的适用性以及特殊系统的第一原理分析。
- 传感器数据的不稳定性:传感器作为控制器获取系统状态信息的关键组件,其数据往往存在噪声、不完整性和不一致性。这些问题可能导致控制器难以准确感知系统的实际状态,从而影响控制效果。
- 执行器的复杂效应:执行器(或称为效应器)负责根据控制器的指令对系统进行调整。然而,执行器与期望的输出之间可能存在复杂的动态关系,这使得控制目标的实现变得复杂。
- 控制环的设计与分析:设计和分析计算系统的控制系统需要考虑资源操作的模型、适当的传感器和执行器,以及控制环中的所有元素,如控制器、滤波器、参数估计器等。这要求控制器设计不仅要关注控制算法本身,还要考虑测量输出的选择、滤波器的设计以及时间延迟等因素。
- 跨层协调的挑战:随着计算机系统变得更加模块化,不同层次(如硬件层、操作系统层)的控制器需要协调工作以实现整体效率。这种跨层协调在现有的计算机设计中往往难以实现,因为各层可能由不同团队独立开发,且具有不同的控制目标和逻辑。
- 资源优化与分配:计算机系统需要在有限的资源(如存储和能源)下运行多种任务,包括关键任务。控制器必须有效管理这些资源,以满足不同应用程序的需求,同时优化性能和能源消耗。
- 应对快速变化的负载:互联网连接的业务和IT系统的广泛使用意味着计算机系统可能会面临快速变化的负载情况,如突发流量或资源需求的急剧增减。控制器需要能够迅速适应这些变化,以保持服务质量并遵守服务水平协议(SLA)。
- 控制理论在计算机系统中的应用:尽管控制理论在其他工程领域得到了广泛应用,但在计算机系统中,由于缺乏对控制理论的了解和应用,导致控制器设计往往依赖于启发式方法而非严格的控制理论。
- 系统识别与自适应控制:在动态变化的计算环境中,系统识别和自适应控制对于实现有效的资源管理和性能优化至关重要。这要求控制器能够实时识别系统状态并调整控制策略。
- 安全性与可靠性:随着计算机系统在社会中的作用日益增加,确保系统的安全性和可靠性成为控制器设计的重要考虑因素。控制器需要能够在各种情况下,包括异常和故障情况下,保持系统的稳定运行。
未来发展方向
编辑当前计算机系统中控制器的未来发展方向包括实现模块化、协调和高效的控制策略,以适应日益复杂的计算机系统结构。这涉及到开发能够独立设计且通过标准化接口进行交互的多层控制系统。未来的控制器将需要采用控制理论等正式方法来设计,以提高系统的可预测性、稳定性和效率。特别是,结构奇异值(SSV)控制或μ综合方法可能被用于设计考虑不确定性的模块化控制器。未来控制器将集成优化模块,动态调整以实现计算机输出最大化,同时遵守资源和性能限制。由于计算机系统的复杂性,黑盒系统识别技术将成为构建精确控制模型的关键。随着系统向模块化和分布式发展,控制器设计将支持分布式控制网络,并可能采用分层方法管理异构硬件。安全机制的集成将确保优化过程不违背系统安全。此外,为促进控制解决方案的广泛采用,将开发易于集成和调整的控制策略工具。控制器将与人工智能和机器学习技术紧密结合,提升决策能力和适应性。量子计算的进步,尤其是QPUs的发展,预示着控制单元架构和功能的变革。通过与边缘和雾计算的集成,控制器将实现更接近数据源的处理和决策,降低延迟,提高效率。探索如PIM技术的新架构,可以提高性能和能源效率。硅光子学的进步和物联网(IoT)生态系统的整合将使控制器在管理众多IoT设备及其数据处理需求方面发挥关键作用。
内容由百科小编提供,本内容不代表globalbaike.com立场,内容投诉举报请联系全球百科客服。如若转载,请注明出处:https://globalbaike.com/415745/