首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微程序控制电路及一个问题

微程序控制电路及一个问题
EN

Stack Overflow用户
提问于 2015-02-23 11:17:26
回答 1查看 932关注 0票数 0

我遇到了一个问题:

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

代码语言:javascript
复制
1) 22 Kbits

2) 23 Kbits

3) 450 Kbits

4) 450*32 Kbits

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

编辑:微指令存储在微存储器(控制存储器)中。一组微指令有可能在一个微程序中发生几次。因此,当一组微操作在一个微程序中发生几次时,isneeded.By利用纳米存储器的内存空间越大,就可以显着地节省内存。请看纳米技术参考

EN

回答 1

Stack Overflow用户

发布于 2015-03-25 09:26:25

控制单元

回到那时,在.NET之前,你必须知道计算机是什么,然后你才能让它做一些事情。这个问题会得到很多答案。

但是,那时,互联网并不是一个真正的东西,堆栈溢出也不是一个问题,因为堆栈和堆的概念并不是一个标准。

所以,为了确保我们谈论的是同一件事,我只想解释一下。

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

因此,我们正在研究控制单元,以及指令集,以使它能够真正地做一些事情。我们正在处理应该发生哪些步骤,当编译后的程序集请求一点移位、清除寄存器或类似的“低级别”内容时。

有些指令可能是硬连接的,但通常不是全部。

Micro-programs

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

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

通常情况下,我们会看到两个“内存”--一个控制内存,一个主内存。

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

控制存储器的代码生成过程称为微程序设计。

..。好的?

处理器中寄存器之间的信息传输是通过MUX而不是总线进行的,我们通常有一些寄存器,其中一些是程序员所熟悉的,有些则不是。对这里的大多数人来说,最值得注意的是处理器寄存器。最常见的4个处理器寄存器是:

  • 程序计数器- PC
  • 地址寄存器- AR
  • 数据寄存器- DR
  • 蓄电池寄存器- AC

示例,其中微代码使用处理器寄存器来完成

代码语言:javascript
复制
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

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

纳米记忆的概念是由垂直指令和水平指令结合而来的,但同时也提供了两者之间的权衡。

摩托罗拉M68k微型计算机是采用这种纳米存储器控制设计的早期流行的微型计算机之一。这里的研究表明,当一组微指令经常出现在一个微程序中时,可以节省大量的内存。

这里表明,通过正确地构造内存,可以使用几个位来处理指令,而不需要花费很大的速度。与微地址相比,只需要更高的log_2(n)位来指定纳米地址。

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

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

代码语言:javascript
复制
640x70 bits. or 44800 bits

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

代码语言:javascript
复制
8 < log_2(640-280) < 9 = 9
640*9 bit micro control store, and 280x70 bit nano memory store
total of 25360 bits

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

这表明该方程:

代码语言:javascript
复制
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大。

回到问题

我在理解问题的措辞上遇到了一些问题--这可能是因为我的第一种语言是丹麦语,但我还是试着去理解它,并得出如下结论:

代码语言:javascript
复制
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

这不是你的答案。请澄清?

更新:

代码语言:javascript
复制
"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.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28672507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档