微程序控制电路和一个问题

时间:2015-02-23 11:17:26

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

我遇到了一个问题:

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

1) 22 Kbits

2) 23 Kbits

3) 450 Kbits

4) 450*32 Kbits

我在笔记中读到,(1)是真的,但我无法理解我们是如何得到这个的?

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

1 个答案:

答案 0 :(得分:2)

控制单位

回到当天,在.NET之前,当你真正知道计算机是什么时,你才能做到这一点。这个问题会得到很多答案。

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

所以,为了确保我们实际上是在谈论同样的事情,我只想解释一下......

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

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

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

<强>微程序

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

控制单元的控制变量可以用1和0的字符串表示,称为“控制字”微程序控制单元<​​/ em>是一个控制单元,其二进制控制变量不是硬连线,而是存储在存储器中。在我们优化之前,我们称这个存储器为微存储器;)

通常我们实际上会看两个“记忆”一个控制记忆和一个主记忆。

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

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

......好吗?

处理器中寄存器之间的信息传输是通过MUX而不是 比起总线,我们通常有一些寄存器,其中一些是程序员熟悉的,有些则不是。在这里应该响铃最多的是处理器寄存器。最常见的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

<强>微存储器 微存储器仅涉及我们如何在控制存储器中组织什么。 但是,当我们有大指令集时,我们可以做得比简单地存储所有指令更好。我们可以将控制存储器细分为“控制存储器”和“纳米存储器”(因为纳米小于微右;) 这很好,因为我们不会在微码上浪费大量宝贵的空间(芯片面积)。

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

摩托罗拉M68k微电脑是早期和流行的μComputers之一,采用这种纳米记忆控制设计。这里显示,当一组微指令经常出现在微程序中时,可以实现显着的记忆保存。

这里显示,通过正确地构造存储器,可以使用几个比特来解决指令,而不会显着降低成本。 减少的结果是,与微地址相比,只需要上面的log_2(n)位来指定纳米地址。

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

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

640x70 bits. or 44800 bits

然而,由于只需要填写所有70位的280条唯一指令,我们可以将纳米记忆技术应用于其余指令,并获得:

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 ..