микропрограммируемая схема управления и один вопрос

Я столкнулся с вопросом:

в цифровой системе с микропрограммируемой схемой управления общее количество отдельных режимов работы 32 signal составляет 450. если micro-programmed memory содержит микрокоманду 1K, то при использовании Nano memory сколько битов уменьшается из микропрограммируемой памяти?

1) 22 Kbits

2) 23 Kbits

3) 450 Kbits

4) 450*32 Kbits

Я читал в своих заметках, что (1) правда, но я не мог понять, как мы это получаем?

Изменить: микроинструкции хранятся в микропамяти (памяти управления). Существует вероятность того, что группа микроинструкций может встречаться в микропрограмме несколько раз. В результате требуется больше места в памяти. Используя нанопамять, мы можем значительно сэкономить память, когда группа микроопераций повторяется несколько раз в микропрограмме. Подробнее о нанотехнике см. ref:


person Community    schedule 23.02.2015    source источник
comment
Можно подробнее о контексте вопроса? Что вы называете нано-памятью и характерной схемой работы 32 сигналов?   -  person VAndrei    schedule 21.03.2015
comment
это вопрос компьютерной архитектуры. я редактирую свой вопрос и добавляю детали. Пожалуйста, посмотрите это. 32 управляющий сигнал у нас есть. и все разные шаблоны 450. @VAndrei   -  person    schedule 21.03.2015
comment
@VAndrei, объясните больше в этом ответе.   -  person    schedule 25.03.2015


Ответы (1)


Блоки управления

Когда-то, еще до .NET, вам действительно нужно было знать, что такое компьютер, прежде чем вы могли заставить его что-то делать. На этот вопрос можно было бы получить массу ответов.

За исключением того, что в то время интернета не было, и переполнение стека не было проблемой, поскольку концепция стека и кучи на самом деле не была стандартом.

Поэтому, чтобы убедиться, что мы действительно говорим об одном и том же, я просто попытаюсь объяснить это.

Блок управления в цифровом компьютере инициирует последовательность микроопераций. В системе, ориентированной на шину, управляющие сигналы, определяющие микрооперации, представляют собой группы битов, которые выбирают пути в мультиплексорах, декодерах и АЛУ.

Итак, мы смотрим на блок управления и набор инструкций, чтобы сделать его способным на самом деле что-то делать. Мы имеем дело с тем, какие шаги должны произойти, когда скомпилированная сборка запрашивает битовый сдвиг, очистку регистра или подобные «низкоуровневые» вещи.

Некоторые из этих инструкций могут быть жестко запрограммированы, но обычно не все.

Микропрограммы

Цитата: "Микропрограммирование — это упорядоченный метод проектирования блока управления обычного компьютера" (http://www2.informatik.hu-berlin.de/rok/ca/data/slides/english/ca9.pdf)

Переменные управления для блока управления могут быть представлены строкой из 1 и 0, называемой "управляющим словом". Микропрограммируемый блок управления – это блок управления, в котором бинарные управляющие переменные не жестко запрограммированы, а хранятся в памяти. Прежде чем мы оптимизировали материал, мы назвали эту память микропамятью;)

Обычно мы рассматриваем две «памяти»: управляющую память и основную память.

управляющая память для микропрограммы, а основная память для инструкций и данных

Процесс генерации кода для управляющей памяти называется микропрограммированием.

... ok?

Передача информации между регистрами в процессоре осуществляется через мультиплексоры, а не через шину, обычно у нас есть несколько регистров, некоторые из которых знакомы программистам, а некоторые нет. Те, которые должны звонить в колокол для большинства здесь, - это регистры процессора. Наиболее распространенные 4 регистра процессора:

  • Счетчик программ – ПК
  • Адресный регистр – АР
  • Регистр данных – ДР
  • Аккумуляторный регистр - 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

однако, поскольку для заполнения всех 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"

Вот ваша проблема, мы не можем закодировать шаблон 450 с 9 битами, насколько я понимаю, нам нужно 10..

person Henrik    schedule 25.03.2015
comment
управляющее слово 32-битное. мы можем закодировать шаблон 450 с помощью 9 бит, и мы используем эти 9 бит вместо 32-битного управляющего слова. уменьшить память с 1000*(32+x) до 1000*(9+x) равно 23кбит. - person ; 25.03.2015
comment
пожалуйста, исправьте это быстро, чтобы установить награду и не истечь. - person ; 25.03.2015
comment
вы ставите мои ответы :) Я бы сказал, обновите свой ответ, - person ; 25.03.2015
comment
в микропрограммировании в дополнение к использованию контрольного слова (32 бита) нам нужны некоторые другие биты для определения следующего адреса. 2^9=512. поэтому нам нужно 9 бит. уменьшить объем памяти с 1000*(32+x) до 1000*(9+x). как мы получим 1000? - person ; 25.03.2015
comment
Я прочитал ваш вопрос как 1000 слов! вам понадобится log_2 (1000) бит, чтобы представить его в нано-памяти.. log_2 (1000) > 9,9 бит, так что... 10 бит - person Henrik; 26.03.2015
comment
мы знаем, что емкость микропамяти составляет 1 КБ микроинструкции. - person ; 26.03.2015