【问题标题】:micro-programmed control circuit and one questions微程序控制电路及一题
【发布时间】:2015-02-23 11:17:26
【问题描述】:

我遇到了一个问题:

在带有微程序控制电路的数字系统中,32 signal的不同操作模式的总和是450。如果micro-programmed memory包含1K微指令,使用Nano memory,微程序内存减少了多少位?

1) 22 Kbits

2) 23 Kbits

3) 450 Kbits

4) 450*32 Kbits

我在笔记中读到,(1) 是真的,但我不明白我们是如何得到这个的?

编辑:微指令存储在微存储器(控制存储器)中。一组微指令有可能在一个微程序中出现多次。因此需要更多的内存空间。通过使用纳米内存,当一组微操作在一个微程序中发生多次时,我们可以显着节省内存。纳米技术请看ref

【问题讨论】:

  • 您能否详细说明问题的上下文? “Nano Memory”和“32信号的dstinct操作模式”你叫什么?
  • 这是计算机架构师的问题。我编辑我的问题并添加细节。请看。我们有32个控制信号。所有不同的模式都是 450。@VAndrei
  • @VAndrei,在这个答案中解释更多。

标签: memory-management computer-architecture microprocessors digital-logic vlsi


【解决方案1】:

控制单元

在 .NET 之前,您实际上必须知道计算机是什么,然后才能让它发挥作用。这个问题会得到很多答案。

除了那个时候,互联网还不是一个真正的东西,堆栈溢出并不是一个真正的问题,因为堆栈和堆的概念并不是一个真正的标准..

因此,为了确保我们实际上在谈论同一件事,我将仅解释这一点..

数字计算机中的控制单元启动一系列微操作。在面向总线的系统中,指定微操作的控制信号是 在多路复用器、解码器和 ALU 中选择路径的位组。

因此,我们正在研究控制单元,以及使其能够实际执行任务的指令集。 我们正在处理应该发生的步骤,当编译的程序集请求位移、清除寄存器或类似的“低级”内容时。

其中一些指令可能是硬连线的,但通常不是全部。

微程序

引用:“微程序是设计控制单元的一种有序方法 传统计算机” (http://www2.informatik.hu-berlin.de/rok/ca/data/slides/english/ca9.pdf)

控制变量,对于控制单元,可以用一串 1 和 0 表示,称为 “控制字”微程序控制单元是一种控制单元,其二进制控制变量不是硬连线的,而是存储在存储器中的。在我们优化东西之前,我们将此内存称为微内存;)

通常我们实际上会查看两个“内存”,一个是控制内存,一个是主内存。

控制存储器用于微程序, 主存用于指令和数据

调用控制内存的代码生成过程 微程序。

...好吗?

处理器中寄存器之间的信息传输是通过多路复用器而不是 与总线相比,我们通常有几个寄存器,其中一些是程序员熟悉的,有些则不是。在这里最应该响起的是处理器寄存器。最常见的 4 个处理器寄存器是:

  • 程序计数器 – PC
  • 地址寄存器 - AR
  • 数据寄存器 – DR
  • 累加器寄存器 - AC

微码使用处理器寄存器做事的例子

Assembly instruction "ADD"
pseudo micro code: " AC ← AC + M[EA] " where M[EA] is data from main memory register
control word: 0000


Assembly instruction "BRANCH"
pseudo micro code "If (AC < 0) then (PC ← EA) "
control word: 0001

微内存 微存储器只关心我们如何组织控制存储器中的内容。 然而,当我们有大指令集时,我们可以做得比简单地存储所有指令更好。我们可以将控制内存细分为“控制内存”和“纳米内存”(因为纳米小于微米对;)) 这很好,因为我们不会在微码上浪费大量宝贵的空间(芯片面积)。

纳米内存的概念源于垂直和水平指令的组合,但也提供了它们之间的权衡。

motorola M68k 微型计算机是具有这种纳米内存控制设计的较早和流行的微型计算机之一。这里表明,当微程序中经常出现一组微指令时,可以显着节省内存。

这里表明,通过正确地构建内存,可以使用几个位来寻址指令,而无需显着的速度成本。 减少是为了与微地址相比,只需要高 log_2(n) 位来指定纳米地址。

这是什么意思? 好吧,让我们再看一下 M68K 示例: 它有 640 条指令,其中只有 280 条是唯一的。

如果指令被编码为简单的微存储器,它会占用:

640x70 bits. or 44800 bits

然而,由于只有 280 条独特的指令需要填充所有 70 位,我们可以将纳米内存技术应用于剩余的指令,并得到:

8 < log_2(640-280) < 9 = 9
640*9 bit micro control store, and 280x70 bit nano memory store
total of 25360 bits

或节省 19440 位的内存.. 可以作为程序员的主内存 :)

这表明方程:

S = Hm x Wm + Hn x Wn 
where:
    Hm = Number of words High Level 
    Wm = Length of words in High Level
    Hn = Number of Low Level words
    Wn = Length of low level words
    S = Control Memory Size (with Nano memory technique)

在现实生活中成立。

请注意,微存储器通常是垂直设计的(Hm 大,Wm 小),纳米程序通常与 Hn 小,Wn 大相反。

回到问题

我在理解问题的措辞时遇到了一些问题,这可能是因为我的第一语言是丹麦语,但我仍然试图理解它并得到:

proposition 1:
1000 instructions
32 bits
450 uniques

µCode:
1000 * 32 = 32.000 bits

bit width required for nano memory:
log2(1000-450) > 9 => 10

450 * 32 = 14400
(1000-450) * 10 = 5500
32000 - (14400 + 5500) = 12.100 bits saved

这不是你的任何答案。 请提供说明?

更新:

"the control word is 32 bit. we can code the 450 pattern with 9 bit and we use these 9 bits instead of 32 bit control word. reduce memory from 1000*(32+x) to 1000*(9+x) is equal to 23kbits. –  Ali Movagher"

这是你的问题,我们不能用 9 位编码 450 模式,据我所知,我们需要 10..

【讨论】:

  • 控制字为 32 位。我们可以用 9 位编码 450 模式,我们使用这 9 位而不是 32 位控制字。将内存从 1000*(32+x) 减少到 1000*(9+x) 等于 23kbits。
  • 请尽快改正,设置赏金且不过期。
  • 你把我的答案 :) 我想说更新你的答案,
  • 在微编程中,除了使用控制字(32 位)之外,我们还需要一些其他位来确定下一个地址。 2^9=512。所以我们需要9位。将内存从 1000*(32+x) 减少到 1000*(9+x)。我们如何得到 1000?
  • 我把你的问题读成 1000 字!你需要 log_2(1000) 位在纳米内存中表示它.. log_2(1000) > 9.9 位所以... 10 位
猜你喜欢
  • 1970-01-01
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
相关资源
最近更新 更多