【问题标题】:Sequence of micro-operations for operations?操作的微操作顺序?
【发布时间】:2016-02-15 01:09:45
【问题描述】:

考虑以下微操作序列。

  MBR ← PC
  MAR ← X  
  PC ← Y  
  Memory ← MBR

以下哪一项是该序列可能执行的操作?

  1. 指令获取
  2. 操作数获取
  3. 条件分支
  4. 中断服务的启动

答案是选项 (4)。

我的尝试:

  1. 指令取指:取指令:从 PC 中的地址读取指令代码并放入 IR。 (红外←内存[PC])
  2. 操作数获取:必要时从内存中获取操作数:如果任何操作数是内存地址,则启动内存读取周期以将它们读入 CPU 寄存器。如果操作数在内存中,而不是在寄存器中,则操作数的内存地址称为有效地址,简称 EA。因此,操作数的获取可以表示为寄存器←内存[EA]。在当今的计算机上,CPU 比内存快得多,因此操作数提取通常需要多个 CPU 时钟周期才能完成。
  3. 如果满足条件(且寄存器不为 0),条件分支指令会导致 PSW 中的位置计数器设置为寄存器中指定的地址或寄存器加上 12 位偏移量
  4. 中断服务例程 (ISR) 是硬件调用以响应中断的软件例程。 ISR 检查中断并确定如何处理它。 ISR 处理中断,然后返回一个逻辑中断值。

对于option中给出的操作,你能按照微操作的顺序来解释吗?

【问题讨论】:

  • 问题是什么?
  • 我要求进行微操作,例如给定MBR ← PC MAR ← X PC ← Y Memory ← MBR 用于 Initiation of interrupt service 。同样,如果您可以为其他选项(1),(2)和(3)提供正确的codes
  • 我有点疑惑,memory <- MBR不是内存写的吗?列出的所有操作都不执行内存写入。
  • 如果返回地址写在内存中的某个预定义位置,可能是中断,但我怀疑......
  • 对于options中给出的操作,你能按照微操作的顺序来解释吗?

标签: assembly operating-system interrupt computer-architecture isr


【解决方案1】:

此问题使用 William Stalling 的一本 Computer Organization and Architecture 教科书中的符号。问题本身不包含足够的背景材料,不熟悉 Stalling 教科书的人无法回答(我不拥有 Stalling 的教科书,也不知道这个问题引用了哪个版本)。

但是,在看到指向another site 答案的评论后,我在 Google 上搜索了“时钟周期分组规则”。这导致了一堆指向各种不同幻灯片集的链接。

我的第三个链接是powerpoint presentation,其中包括一张幻灯片,我在下面复制了一张图片。有一张幻灯片解释了 MAR 和 MBR 的含义:

内存地址寄存器 (MAR)

  • 连接到地址总线

  • 指定读写操作的地址

内存缓冲寄存器 (MBR)

  • 连接到数据总线

  • 保存要写入的数据或最后读取的数据

所以看起来正在发生的事情是首先将PC 放置在MBR 中。接下来,将保存PC 的地址从X 复制到MAR。在同一周期中,PC 被设置为中断服务程序的开始,该程序在Y 中可用。最后将MBR中的数据通过总线传输到内存中。

【讨论】:

  • 感谢您的解释。
  • 我无法理解两个不同的地址如何在一个时钟周期(时钟周期 t2)内同时通过一个地址总线到达寄存器 MAR 和 PC。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多