计算机组织中的寻址序列17 Mar 2025 | 5 分钟阅读 控制存储器用于存储微指令的组。在这里,每个组用于指定一个例程。每台计算机的控制存储器都包含有微程序例程的指令。这些微程序用于生成将用于执行指令的微操作。假设控制存储器的地址排序是由硬件控制的。在这种情况下,该硬件必须能够从一个例程分支到另一个例程,并且还能够对例程内的微指令进行排序。当我们尝试执行计算机的单个指令时,控制必须经历以下步骤:
借助控制存储器,我们可以将指令代码的位转换为地址,而例程就存储在其中。这个过程可以称为映射过程。控制存储器需要地址排序的功能,如下所述:
![]() 在上图中,我们可以看到控制存储器和关联硬件的框图,这是选择下一条微指令地址所必需的。微指令用于包含控制存储器中的一组位。借助某些位,我们能够启动计算机寄存器中的微操作。微指令的其余位用于指定获取下一个地址的方法。 在此图中,我们还可以看到控制地址寄存器可以通过四种不同的方向来恢复其地址。CAR 由加法器递增,然后选择下一条指令。分支地址将在微指令的多个字段中确定,以便它们能够提供分支结果。 如果存在微指令的状态位,并且我们想对它们应用条件,在这种情况下,我们可以使用条件分支。外部地址可以通过映射逻辑电路共享。返回地址将由一个特殊寄存器保存。当微程序需要从子程序返回时,这个保存的地址将很有用。届时,它需要来自唯一寄存器的值。 条件分支在上图中,**分支逻辑**用于为控制单元提供决策能力。系统中存在**特殊位**,由状态条件描述。这些位用于提供参数信息,例如模式位、符号位、进位位以及输入或输出状态。 如果这些状态位与微指令字段一起出现,它们就能够控制在分支逻辑中生成条件分支的决策。这里的微指令字段将指定一个分支地址。多路复用器用于实现 **分支逻辑硬件**。如果满足条件,它将分支到初始地址。否则,它将递增地址寄存器。 如果我们从控制存储器将分支地址加载到控制地址寄存器中,我们就可以实现无条件分支微指令。如果条件为真,它将跳转到当前微指令的下一个地址字段引用的地址。否则,它将顺序执行。需要测试各种类型的条件:Z(零)、C(进位)、O(溢出)、N(负数)等。 指令映射在控制存储器中,如果微指令指定分支到第一个工作,在这种情况下,将有一种特殊的分支。这里指令包含其微程序例程。对于这个特殊分支,状态位将是操作码中的位,这是指令的一部分。 ![]() 上图显示了一种简单的映射过程,它将 4 位操作码转换为控制存储器的 7 位地址。在映射过程中,0 将被放置在地址的最高有效位。之后,将传输四个操作码位。最后,CAR 的最低两位将被清零。 通过这个过程,将为每个计算机指令提供一个微程序。微程序包含四个微指令的容量。如果例程使用的微指令少于四个,则未使用内存的位置可用于其他例程。如果例程使用的微指令多于四个,它将使用地址 1000000 到 1111111。 ![]() 通过 PLD(可编程逻辑器件)或 ROM(只读存储器)可以扩展此概念,使其成为更通用的映射规则。 ![]() 上图显示了从指令的 OP 码到微指令地址的映射。在执行程序中,该微指令是起始微指令。 子程序子程序可以指由其他例程用来完成特定任务的程序。通过使用子程序,我们可以节省微指令。这些子程序使用微代码的公共部分,例如有效地址计算。主例程能够通过子程序寄存器获取返回地址。换句话说,我们可以说它成为将地址传输到主例程的源。寄存器文件用于存储子程序的地址。这些寄存器文件可以组织成“后进先出”(LIFO)堆栈的方式。 下一个主题简化指令计算机 |
我们请求您订阅我们的新闻通讯以获取最新更新。