<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://wiki.chinulture.com/index.php?action=history&amp;feed=atom&amp;title=%E6%8E%A7%E5%88%B6%E5%99%A8</id>
	<title>控制器 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.chinulture.com/index.php?action=history&amp;feed=atom&amp;title=%E6%8E%A7%E5%88%B6%E5%99%A8"/>
	<link rel="alternate" type="text/html" href="https://wiki.chinulture.com/index.php?title=%E6%8E%A7%E5%88%B6%E5%99%A8&amp;action=history"/>
	<updated>2026-10-21T08:58:18Z</updated>
	<subtitle>本wiki的该页面的版本历史</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.chinulture.com/index.php?title=%E6%8E%A7%E5%88%B6%E5%99%A8&amp;diff=263762&amp;oldid=prev</id>
		<title>Test 32：1個修訂：HDwiki 数据迁移 - 批次 864</title>
		<link rel="alternate" type="text/html" href="https://wiki.chinulture.com/index.php?title=%E6%8E%A7%E5%88%B6%E5%99%A8&amp;diff=263762&amp;oldid=prev"/>
		<updated>2014-08-15T22:48:28Z</updated>

		<summary type="html">&lt;p&gt;1個修訂：HDwiki 数据迁移 - 批次 864&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2014年8月15日 (五) 22:48的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;zh&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Test 32</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.chinulture.com/index.php?title=%E6%8E%A7%E5%88%B6%E5%99%A8&amp;diff=263761&amp;oldid=prev</id>
		<title>2014年8月15日 (五) 22:48 Test 32</title>
		<link rel="alternate" type="text/html" href="https://wiki.chinulture.com/index.php?title=%E6%8E%A7%E5%88%B6%E5%99%A8&amp;diff=263761&amp;oldid=prev"/>
		<updated>2014-08-15T22:48:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== 组成详解 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''控制器模型'''&lt;br /&gt;
'''控制器'''控制器是整个CPU的指挥控制中心，由[[指令寄存器]]IR(InstructionRegister)、[[程序计数器]]PC(ProgramCounter)和[[操作控制器]]0C(OperationController)三个部件组成，对协调整个电脑有序工作极为重要。指令寄存器&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
指令寄存器：用以保存当前执行或即将执行的指令的一种[[寄存器]]。指令内包含有确定操作类型的[[操作码]]和指出操作数来源或去向的[[地址]]。指令长度随不同[[计算机]]而异，指令寄存器的长度也随之而异。计算机的所有操作都是通过分析存放在指令寄存器中的指令后再执行的。指令寄存器的输人端接收来自存储器的指令，指令寄存器的输出端分为两部分。操作码部分送到[[译码电路]]进行分析，指出本指令该执行何种类型的操作;地址部分送到[[地址加法器]]生成有效地址后再送到存储器，作为取数或存数的地址。存储器可以指[[主存]]、[[高速缓存]]或寄存器栈等用来保存当前正在执行的一条指令。当执行一条指令时，先把它从内存取到数据寄存器（DR）中，然后再传送至IR。指令划分为操作码和地址码字段，由[[二进制]]数字组成。为了执行任何给定的指令，必须对操作码进行测试，以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后，即可向操作控制器发出具体操作的特定[[信号]]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''控制器'''程序计数器&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
程序计数器：指明程序中下一次要执行的指令地址的一种计数器，又称指令计数器。它兼有[[指令地址寄存器]]和计数器的功能。当一条指令执行完毕的时候，程序计数器作为指令地址寄存器，其内容必须已经改变成下一条指令的地址，从而使程序得以持续运行。为此可采取以下两种办法：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
第一种办法是在指令中包含了下一条指令的地址。在指令执行过程中将这个地址送人指令地址寄存器即可达到程序持续运行的目的。这个方法适用于早期以[[磁鼓]]、[[延迟线]]等[[串行]]装置作为[[主存储器]]的计算机。根据本条指令的执行[[时间]]恰当地决定下一条指令的地址就可以缩短读取下一条指令的等待时间，从而收到提高程序运行速度的效果。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
第二种办法是顺序执行指令。一个程序由若干个程序段组成，每个程序段的指令可以设计成顺序地存放在存储器之中，所以只要指令地址寄存器兼有计数功能，在执行指令的过程中进行计数，自动加一个增量，就可以形成下一条指令的地址，从而达到顺序执行指令的目的。这个办法适用于以[[随机存储器]]作为主存储器的计算机。当程序的运行需要从一个程序段转向另一个程序段时，可以利用转移指令来实现。转移指令中包含了即将转去的程序段入口指令的地址。执行转移指令时将这个地址送人程序计数器(此时只作为指令地址寄存器，不计数)作为下一条指令的地址，从而达到转移程序段的目的。[[子程序]]的调用、[[中断]]和陷阱的处理等都用类似的方法。在随机存取存储器普及以后，&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
第二种办法的整体运行效果大大地优于第一种办法，因而顺序执行指令已经成为[[主流计算机]]普遍采用的办法，程序计数器就成为中央处理器不可或缺的一个控制部件&lt;br /&gt;
&lt;br /&gt;
'''控制器'''操作控制器&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CPU内的每个功能部件都完成一定的特定功能。信息在各部件之间传送及数据的流动控制部件的实现。通常把许多数字部件之间传送[[信息]]的通路称为“[[数据通路]]”。信息从什么地方开始，中间经过哪个寄存器或多路开关，最后传到哪个寄存器，都要加以控制。在各寄存器之间建立数据通路的任务，是由称为“操作控制器”的部件来完成的。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
操作控制器的功能就是根据[[指令操作码]]和[[时序信号]]，产生各种操作控制信号，以便正确地建立数据通路，从而完成取指令和执行指令的控制。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 工作原理 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''控制器'''有两种由于设计方法不同因而结构也不同的控制器。[[微操作]]是指不可再分解的操作，进行微操作总是需要相应的控制信号(称为微操作控制信号或微操作命令)。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
一台数字计算机基本上可以划分为两大部分---控制部件和执行部件。控制器就是控制部件，而[[运算器]]、存储器、[[外围设备]]相对控制器来说就是执行部件。控制部件与执行部件的一种联系就是通过控制线。控制部件通过控制线向执行部件发出各种控制命令，通常这种控制命令叫做微命令，而执行部件接受微命令后所执行的操作就叫做微操作。控制部件与执行部件之间的另一种联系就是[[反馈信息]]。执行部件通过反馈线向控制部件反映操作情况，以便使得控制部件根据执行部件的状态来下达新的微命令，这也叫做“[[状态测试]]”。微操作在执行部件中是组基本的操作。由于数据通路的结构关系，微操作可分为相容性和相斥性两种。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
在机器的一个CPU周期中，一组实现一定操作功能的微命令的组合，构成一条微指令。一般的微指令格式由操作控制和顺序控制两部分构成。操作控制部分用来发出管理和指挥全机工作的控制信号。其顺序控制部分用来决定产生下一个微指令的地址。事实上一条机器指令的功能是由许多条微指令组成的序列来实现的。这个微指令序列通常叫做[[微程序]]。既然微程序是有微指令组成的，那么当执行当前的一条微指令的时候。必须指出后继微指令的地址，以便当前一条微指令执行完毕以后，取下一条微指令执行。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 技术规范 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''控制器'''组合逻辑控制器和[[微程序控制器]]，两种控制器各有长处和短处。组合逻辑控制器设计麻烦，结构复杂，一旦设计完成，就不能再修改或扩充，但它的速度快。微程序控制器设计方便，结构简单，修改或扩充都方便，修改一条机器指令的功能，只需重编所对应的微程序；要增加一条机器指令，只需在控制存储器中增加一段微程序，但是，它是通过执行一段微程。具体对比如下：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
组合逻辑控制器又称[[硬布线控制器]]，由[[逻辑电路]]构成，完全靠硬件来实现指令的功能。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
组合逻辑控制器的设计步骤&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
①设计机器的指令系统：规定指令的种类、指令的条数以及每一条指令的格式和功能。②初步的总体设计：如寄存器设置、[[总线安排]]、[[运算器设计]]、部件间的连接关系等。③绘制指令流程图：标出每一条指令在什么时间、什么部件进行何种操作。④编排操作时间表：即根据[[指令流程图]]分解各操作为微操作，按时间段列出机器应进行的微操作。⑤列出微操作信号表达式，化简，电路实现。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''控制器'''组合逻辑控制器的基本组成&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
（1）指令寄存器用来存放正在执行的指令。指令分成两部分：[[操作码]]和[[地址码]]。操作码用来指示指令的操作性质，如[[加法]]、[[减法]]等；地址码给出本条指令的操作数地址或形成操作数地址的有关信息(这时通过地址形成电路来形成操作数地址)。有一种指令称为转移指令，它用来改变指令的正常执行顺序，这种指令的地址码部分给出的是要转去执行的指令的地址。（2）操作码译码器用：来对指令的操作码进行译码，产生相应的[[控制电平]]，完成分析指令的功能。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
（3）时序电路：用来产生时间标志信号。在[[微型计算机]]中，[[时间]]标志信号一般为三级：[[指令周期]]、[[总线周期]]和[[时钟周期]]。微操作命令产生电路产生完成指令规定操作的各种微操作命令。这些命令产生的主要依据是时间标志和指令的操作性质。该电路实际是各微操作控制信号表达式(如上面的A→L表达式)的电路实现，它是组合逻辑控制器中最为复杂的部分。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
（4）指令计数器：用来形成下一条要执行的指令的地址。通常，指令是顺序执行的，而指令在存储器中是顺序存放的。所以，一般情况下下一条要执行的指令的地址可通过将现行地址加1形成，微操作命令“ 1”就用于这个目的。如果执行的是转移指令，则下一条要执行的指令的地址是要转移到的地址。该地址就在本转移指令的地址码字段，因此将其直接送往指令计数器。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
微程序控制器的提出是因为组合逻辑设计存在不便于设计、不灵活、不易修改和扩充等缺点。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
微程序控制的基本思路&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
微程序控制(简称[[微码控制]])的基本思路是：用微指令产生微操作命令，用若干条微指令组成一段微程序实现一条机器指令的功能(为了加以区别，将前面所讲的指令称为机器指令)。设机器指令M执行时需要三个阶段，每个阶段需要发出如下命令：阶段一发送K1、K8命令，阶段二发送K0、K2、K3、K4命令，阶段三发送K9命令。当将第一条微指令送到微指令寄存器时，微指令寄存器的K1和K8为1，即发出K1和K8命令，该微指令指出下一条微指令地址为00101，从中取出第二条微指令，送到微指令寄存器时将发出K0、K2、K3、K4命令，接下来是取第三条微指令，发K9命令。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''控制器'''微程序控制器的组成&lt;br /&gt;
&lt;br /&gt;
（1）控制存储器(contmlMemory)用来存放各机器指令对应的微程序。译码器用来形成机器指令对应的微程序的入口地址。当将一条机器指令对应的微程序的各条微指令逐条取出，并送到微指令寄存器时，其[[微操作命令]]也就按事先的设计发出，因而也就完成了一条机器指令的功能。对每一条机器指令都是如此。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
（2）微指令的[[宽度]]直接决定了微程序控制器的宽度。为了简化控制存储器，可采取一些措施来缩短微指令的宽度。如采用字段译码法一级分段译码。显然，微指令的控制字段将大大缩短。，一些要同时产生的微操作命令不能安排在同一个字段中。为了进一步缩短控制字段，还可以将[[字段译码设计]]成两级或多级。&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:技術應用]]&lt;/div&gt;</summary>
		<author><name>Test 32</name></author>
		
	</entry>
</feed>