Секцтонный микропроцессор и микропрограмма для него

Тема в разделе "WASM.HARDWARE", создана пользователем simnet_, 19 дек 2009.

  1. simnet_

    simnet_ New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2007
    Сообщения:
    109
    Извините что немного про "устаревшую" технику
    В старых советских "микропроцессорных наборах", где процессоры буквально собирались из частей, нужная разрядность собиралась из "процессорных элементов" нужного количества.
    И такой вопрос - каким образом пишутся микропрограммы для согласованного управления отдельными частями? То, как написать микропрорамму для одного элемента, можно понять из спецификации.
    Скажем, мне нужно сэмулировать FPU (сопроцессор для работы с числами с плав. точкой), где числа представлены в 64-битном формате. В таком случае я соединяю 16 4-х арзрядных процессорных блоков - все РОНы "становятся" 64-разрядными. Но в регистре - несколько бит - мантисса, несколько - порядок, один бит знака. Следовательно массовая операция вроде "одна команда для всех блоков" не подходит. Единственное что приходит в голову - делать громадную микрокоманду, включающую в себя микрооперации для каждого из блоков.
    А вообще как делалось подобное правильно "в те времена"? Кто-нибудь сталкивался?
     
  2. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    Омг... Это какие же элементы? Я кроме КР80ВМ80А в союзе больше и не вспомню навскидку ЦП...
     
  3. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Серии К589, К1800, К1802, К1804, ещё какие-то... Если не все, почти все скоммунизжены у буржуев. Например, К1804 "в девичестве" выпускалась фирмой AMD, точную модель смотреть лень.

    Что же касается микропрограммного управления, то формат микрокоманды зависит, как ни странно, от устройства процессора :) Она может быть громадной, а может быть коротенькой. Например, у наших СМ-1600 и СМ-1420 микрокоманда центрального процессора имела длину 48 бит, а ёмкость микропрограммной памяти составляла 512 48-разрядных слов. Если в эти же процессоры вставлялся процессор с плавающей запятой (ещё три печатные платы, содержащие АЛУ и прочее железо), то добавлялось ещё 512 слов, но уже 96-разрядных: 48 разрядов управляли работой аппаратуры центрального процессора (он же не без дела стоит, когда выполняются вычисления с плавающей запятой, его оборудование тоже участвует) и ещё 48 управляли собственно ППЗ.

    А вот в ЕС-1035 (она собрана вообще на "рассыпухе" -- ЭСЛ логике серии К500, в процессоре и памяти более 10 тыщ микросхем было) микрокоманда имеет длину всего 32 бита, но зато имеется несколько форматов микрокоманд, в каждом из которых можно управлять лишь частью оборудования. Ёмкость управляющей памяти (так она здесь называлась) составяла 32 или 48 Кбайт, но не вся она была занята микропрограммой: в ней же хранились рабочие данные каналов ввода-вывода (сама память была сделана на микросхемах статического ОЗУ; перед началом работы машины микропрограмма загружалась со специального пультового накопителя на магнитной ленте или дискетке).

    Длину микрокоманды в ЕС-1130 (последняя из серийных ЕСок, выпущенных в СССР незадолго до развала; основой являются ЭСЛ-серии К1800, К500 и ещё пару экзотических) я не помню, но зато помню, что там было два АЛУ: 64-разрядное для основных вычислений (сама машина 32-разрядная, но числа с плавающей запятой могут иметь длину 32, 64 и 128 бит -- вот и сделали длинное АЛУ, чтобы 32- и 64-разрядные быстро обрабатывать) и однобайтовое для операций над порядком чисел с плавающей запятой. Естественно, они управлялись разными полями микрокоманды. Кстати, это была первая машина в моей практике, которая выполняла по одной основной команде за один такт: имелся неплохой (для того времени и тех технологий) конвейер.
     
  4. simnet_

    simnet_ New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2007
    Сообщения:
    109
    SII
    Большое спасибо за такой подробный ответ!
     
  5. simnet_

    simnet_ New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2007
    Сообщения:
    109
    SII
    А набор К1804, вы с ним не сталкивались?
    Насколько я понял, на нем "плавающие операции" делались объединением большого количества "процессорных элементов" (4-х разрядных АЛУ+РОН) до получения нужной разрядности. Тогда микропрограммы пишутся в виде длинной "параллельной" команды всем этим АЛУ (где отдельные поля соответствуют отдельным секциям), соединенным в один процессорный блок?
     
  6. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    С ним главным образом и имел дело. СМ-1420 на нём построена, например. Точней, на К1804ВС1 -- другие там не используются. А управление всех секций в параллели обычно общее. Либо делают два АЛУ со своими регистрами: одно широкое, для обработки мантиссы, и другое узкое, для обработки порядка. Управление у каждого АЛУ, есно, будет своё, но у всех секций в пределах одного АЛУ -- общее. Ну или у почти всех -- тут уж от специфики зависит.
     
  7. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Дома, кстати, ещё склад лежит 1802 и 1804 серий. Вроде и не нужны, а выкинуть жалко :)
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Советую выкинуть. Закон Мура страшная вещь. Кстати "наши" 286 тоже были составными. Проц. правда украли, а вот чипсет делали на двух платах. Но он перегревался и стало проще у поляков покупать IBM Compatible, сделанных то ли в Корее, то ли в Тайване. Веселое было время. Наши соц-друзья брали кредиты на западе и продавали нам супер-технику. А мы все пытались достроить коммунизъм... и кто-то мечтал, что ЕС-1089 сможет его просчитать.