ИК13: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 48 промежуточных версий этого же участника)
Строка 1: Строка 1:
МикроЭВМ К145ИК13 (К745ИК13) — основа советских [[ПМК]]. Хотя её устройство опубликовано, а прошивка восстановлена, многое в том, как работает советский микрокод, всё ещё остаётся загадкой.
МикроЭВМ К145ИК13 (К745ИК13) — основной элемент советских [[ПМК]]. Хотя устройство ИК13 опубликовано разработчиком в 1990 году, а три известные прошивки восстановлены энтузиастами в 2012, советский [[микрокод]] труден для понимания. Многое в нём не изучено и до сих пор остаётся загадкой.


Процессор калькулятора работает на частоте 75-100 кГц. В процессоре есть однобитное АЛУ (арифметическо-логическое устройство) с несколькими источниками и приемниками.  
Процессор калькулятора работает на частотах 75-100 кГц. В процессоре есть однобитное АЛУ (арифметическо-логическое устройство) с несколькими источниками и приемниками. Общение между ИК13 и доступ ко внешней памяти производятся по однобитной шине. Архитектура ИК13 не поддерживает произвольный доступ к ячейкам ОЗУ, адресом служит время обращения.


== Динамическая оперативная память ИК13 ==
== Оперативная память ИК13 ==
Процессор ИК13 оперирует 4-битными словами (тетрадами). Его динамическая память представлена тремя регистрами M, R и ST объёмом 42 тетрады каждый, а также регистрами S и S1 размером в одну тетраду и однобитными ячейками L, T и П.
Процессор ИК13 оперирует 4-битными словами — ''тетрадами''. Его динамическая память представлена тремя регистрами M, R и ST объёмом 42 тетрады каждый, а также регистрами S и S1 размером в одну тетраду и однобитными ячейками L, T и П.


Регистр М каждой ИК13 включён в системную магистраль [[ПМК]]. Через него ИК13 получает доступ к общей памяти калькулятора, циркулирующей по кольцевой магистрали. Место в общей памяти, доступное для считывания и записи, зависит от временных координат — на каком такте выполняется микрокоманда, осуществляющая обращение к регистру М.
Регистры М каждой ИК13 последовательно включены в [[Системная магистраль|системную магистраль]] [[ПМК]]. Через этот регистр ИК13 получает доступ к общей памяти калькулятора, циркулирующей по кольцевой магистрали. Место в общей памяти, доступное для считывания и записи, зависит от временных координат — на каком такте выполняется микрокоманда, осуществляющая обращение к регистру М.


== Хранение десятичных чисел ==
== Постоянная память ИК13 ==
Одно число с 8-разрядной мантиссой и 2-х разрядным порядком занимает 14 тетрад (одна треть от 42). В кольцевой регистр влезает ровно три числа.
ПЗУ ИК13 однократно запрограммировано при изготовлении микросхемы и не может быть изменено. Оно состоит из трёх раздельных адресных пространств: памяти команд емкостью 256х23 бит, памяти синхропрограмм 128х3х3х6 бит и памяти микрокоманд 68х28 бит.


Разряды числа в памяти хранятся в двоично-десятичной форме, т. е. одна тетрада битов кодирует одну десятичную цифру (хотя может кодировать и шестнадцатеричную). Сами числа представлены в экспоненциальной форме и занимают 12 ячеек (вообще 14 – треть от длины регистра, но два разряда – служебные), при этом первая ячейка обозначает знак порядка, следующие две – сам порядок, потом ещё одна ячейка – знак мантиссы и восемь – собственно мантисса.
В [[Режим выполнения программы|режиме исполнения программы]] [[ПМК]] выполняет около 3–4 [[шаг]]ов [[Программа пользователя|пользовательской программы]] в секунду. Для прохождения одного [[шаг]]а такт повторяется 23520 раз, выполняя 560 команд, прописанных в коде ПЗУ.


Хотя на знак отведено аж четыре бита, используются только два значения – 0 для положительных чисел и нуля и 9 для отрицательных. При переполнении следующий разряд порядка записывается в ячейку его знака, т. е. 10 ВП 50 В↑ × даёт {{ЕГГ0Г}}, но в памяти записан порядок (1, 0, 0), где единица стоит в ячейке знака. Над этим значением можно производить некоторые операции, как над обычным числом, правда, до тех пор, пока порядок находится в пределах второй сотни – дальше начинаются сложности. Как это выглядит со стороны владельца ПМК, см. [[Электронный океан]].
=== Память команд (ПК) ===
 
Память команд вмещает 256 команд по 23 бита. Каждая команда содержит три адреса синхропрограмм. Одна команда выполняется за 42 такта.
== Прошивка ИК13 ==
ПЗУ ИК13 содержит память команд емкостью 256х23 бит, память синхропрограмм 128х3х3х6 бит и память микрокоманд 68х28 бит.


В [[Режим выполнения программы|режиме исполнения программы]] [[ПМК]] выполняет около 3–4 шагов [[Программа пользователя|пользовательской программы]] в секунду. Для прохождения одного шага такт повторяется 23520 раз, выполняя 560 команд, прописанных в коде ПЗУ.
=== Память синхропрограмм (ПСП) ===
Память синхропрограмм вмещает 128 синхропрограмм, являющихся массивами из девяти шестибитных ячеек. Её объём — 128×3×3×6 бит. Каждая ячейка содержит адрес микрокоманды.


=== Память команд ===
Синхропрограмма так называется оттого, что жёстко засинхронизирована с размером кольцевого регистра и номером такта 0-41 — одного кольцевого цикла. Некоторые исследователи предпочитают называть синхропрограммы ''микропрограммами''.
Память команд вмещает 256 команд по 23 бита. Каждая команда содержит три адреса синхропрограмм. Одна команда выполняется за 42 такта.


=== Память синхропрограмм ===
=== Память микрокоманд (ПМК) ===
Память синхропрограмм вмещает 128 синхропрограмм, являющихся массивами из девяти шестибитных ячеек. Каждая ячейка синхропрограммы содержит адрес микрокоманды.
Память микрокоманд имеет размер 68×28 бит и вмещает 68 микрокоманд по 28 битов, из которых 27 [[Программируемые микрокалькуляторы. Устройство и пользование. (книга)|документированы]].


=== Память микрокоманд ===
За четыре микротакта (один макротакт) процессор выполняет четыре микрокоманды (над одной тетрадой), а по системной магистрали прогоняется одна тетрада битов. Биты микрокоманд определяют, какой набор источников взять для сумматора и куда положить результат.
Память микрокоманд вмещает 68 микрокоманд по 28 битов. За четыре микротакта процессор выполняет одну микрокоманду (над одной тетрадой).


Каждая микрокоманда обрабатывает одну тетраду. Биты микрокоманды определяют, какой набор источников взять для сумматора и куда положить результат. За один такт выполняется одна микрокоманда, а по системной магистрали прогоняется одна тетрада битов.
«Последовательность микрокоманд, выполняемых в течение одного или нескольких макротактов, удобно рассматривать как ''макрокоманду'', соответствующую более высокому архитектурному уровню работы микроЭВМ, отображая ее результаты в общем случае шестнадцатеричными цифрами.» ([[Программируемые микрокалькуляторы. Устройство и пользование. (книга)|Трохименко]], стр. 97)


По адресам от 60 до 63 хранятся по две микрокоманды. Какая из них выполнится, зависит от состояния ячейки L (для значения 0 — чётные номера больше 60, для 1 — нечётные). Таким образом, хоть адрес микрокоманды и 6-битный, но самих микрокоманд 68.
Четыре адреса от 60 до 63 (от 3c до 3f) содержат по две микрокоманды. Какая из этих «условных» микрокоманд выполнится, зависит от состояния ячейки L (для значения 0 — чётные номера, начиная с 60; для 1 — нечётные, начиная с 61). Таким образом, хоть адрес микрокоманды и 6-битный, но самих микрокоманд 68.


== Структура кристалла ==
== Структура кристалла ==
Строка 40: Строка 37:


== Процессоры на основе микроЭКВМ ИК13 ==
== Процессоры на основе микроЭКВМ ИК13 ==
[[Б3-34|«Электроника Б3-34»]] использовал две микросхемы ИК13, различающиеся только прошивкой. В [[МК-61|«Электронике МК-61»]] добавлена третья ИК13, прошивка которой обеспечивает дополнительные функции.
[[Б3-34|«Электроника Б3-34»]] использовала две микросхемы ИК13, различающиеся только прошивкой. В [[МК-61|«Электронике МК-61»]] добавлена третья ИК13, прошивка которой обеспечивает дополнительные функции.
 
В принятых в СССР обозначениях после ИК13 идут две цифры номера прошивки. Для второго семейства [[ПМК]] после номера прошивки ставился дефис и цифра 2. Также известно, что ранние версии [[Б3-34|«Электроники Б3-34»]] содержали ошибки, исправленные в более поздних [[ПМК]].


=== Операционная система [[ИК1302]] ===
=== Главный процессор ИК1302 ===
Процессор [[ИК1302]] отвечает за ввод/вывод и режимы работы ПМК. Известны две его версии:
* [[К145ИК1302]] — диспетчер, контроллер дисплея и клавиатуры, использованный в [[Б3-34|«Электронике Б3-34»]].
* [[К145ИК1302]] — диспетчер, контроллер дисплея и клавиатуры, использованный в [[Б3-34|«Электронике Б3-34»]].
* [[К745ИК1302-2]] — диспетчер, процессор, контроллер дисплея и клавиатуры [[МК-61|«Электроники МК-61»]].
* [[К745ИК1302-2]] — диспетчер, процессор, контроллер дисплея и клавиатуры [[МК-61|«Электроники МК-61»]] и [[МК-52|«Электроники МК-52»]].


=== Арифметический процессор [[ИК1303]] ===
=== Арифметический процессор [[ИК1303]] ===
* [[К145ИК1303]] — арифметический процессор, использованный в [[Б3-34|«Электронике Б3-34»]].
* [[К145ИК1303]] — арифметический процессор, использованный в [[Б3-34|«Электронике Б3-34»]].
* [[К745ИК1303-2]] — арифметический процессор [[МК-61|«Электроники МК-61»]].
* [[К745ИК1303-2]] — арифметический процессор [[МК-61|«Электроники МК-61»]] и [[МК-52|«Электроники МК-52»]].


=== Дополнительные функции [[ИК1306]] ===
=== Дополнительные функции [[ИК1306]] ===
* [[К745ИК1306-2]] — процессор дополнительных функций [[МК-61|«Электроники МК-61»]] (по сравнению с микрокалькуляторами семейства [[Б3-34]]).
* [[К745ИК1306-2]] — процессор дополнительных функций [[МК-61|«Электроники МК-61»]] и [[МК-52|«Электроники МК-52»]] (по сравнению с микрокалькуляторами семейства [[Б3-34]]).


== Ссылки ==
== Ссылки ==
* См. статью [[Микрокод]]
* См. статьи [[Микрокод]] и [[Системная магистраль]]
* [http://pmk.arbinada.com/ru/node/1313 Система микрокоманд ИК130x на сайте «Кон-Тики»]
* [http://pmk.arbinada.com/ru/node/1313 Система микрокоманд ИК130x на сайте «Кон-Тики»]
* Книга Я.К. Трохименко [[Программируемые микрокалькуляторы. Устройство и пользование. (книга)| Программируемые микрокалькуляторы. Устройство и пользование.]]
* Статья [https://habr.com/ru/post/505612/ «МК-61: история, эмуляция, устройство»] на Хабре
* Статья [https://habr.com/ru/post/505612/ «МК-61: история, эмуляция, устройство»] на Хабре
* Статья [https://habr.com/ru/post/467501/ « Внедрение в архитектуру советских программируемых калькуляторов «Электроника МК-52»»] на Хабре
* Статья [https://habr.com/ru/post/467501/ « Внедрение в архитектуру советских программируемых калькуляторов «Электроника МК-52»»] на Хабре
Строка 61: Строка 62:
[[Категория: микросхемы]]
[[Категория: микросхемы]]
[[Категория: микросхемы ПМК]]
[[Категория: микросхемы ПМК]]
[[Категория: микропрограммирование]]

Текущая версия от 19:27, 22 декабря 2021

МикроЭВМ К145ИК13 (К745ИК13) — основной элемент советских ПМК. Хотя устройство ИК13 опубликовано разработчиком в 1990 году, а три известные прошивки восстановлены энтузиастами в 2012, советский микрокод труден для понимания. Многое в нём не изучено и до сих пор остаётся загадкой.

Процессор калькулятора работает на частотах 75-100 кГц. В процессоре есть однобитное АЛУ (арифметическо-логическое устройство) с несколькими источниками и приемниками. Общение между ИК13 и доступ ко внешней памяти производятся по однобитной шине. Архитектура ИК13 не поддерживает произвольный доступ к ячейкам ОЗУ, адресом служит время обращения.

Оперативная память ИК13[править]

Процессор ИК13 оперирует 4-битными словами — тетрадами. Его динамическая память представлена тремя регистрами M, R и ST объёмом 42 тетрады каждый, а также регистрами S и S1 размером в одну тетраду и однобитными ячейками L, T и П.

Регистры М каждой ИК13 последовательно включены в системную магистраль ПМК. Через этот регистр ИК13 получает доступ к общей памяти калькулятора, циркулирующей по кольцевой магистрали. Место в общей памяти, доступное для считывания и записи, зависит от временных координат — на каком такте выполняется микрокоманда, осуществляющая обращение к регистру М.

Постоянная память ИК13[править]

ПЗУ ИК13 однократно запрограммировано при изготовлении микросхемы и не может быть изменено. Оно состоит из трёх раздельных адресных пространств: памяти команд емкостью 256х23 бит, памяти синхропрограмм 128х3х3х6 бит и памяти микрокоманд 68х28 бит.

В режиме исполнения программы ПМК выполняет около 3–4 шагов пользовательской программы в секунду. Для прохождения одного шага такт повторяется 23520 раз, выполняя 560 команд, прописанных в коде ПЗУ.

Память команд (ПК)[править]

Память команд вмещает 256 команд по 23 бита. Каждая команда содержит три адреса синхропрограмм. Одна команда выполняется за 42 такта.

Память синхропрограмм (ПСП)[править]

Память синхропрограмм вмещает 128 синхропрограмм, являющихся массивами из девяти шестибитных ячеек. Её объём — 128×3×3×6 бит. Каждая ячейка содержит адрес микрокоманды.

Синхропрограмма так называется оттого, что жёстко засинхронизирована с размером кольцевого регистра и номером такта 0-41 — одного кольцевого цикла. Некоторые исследователи предпочитают называть синхропрограммы микропрограммами.

Память микрокоманд (ПМК)[править]

Память микрокоманд имеет размер 68×28 бит и вмещает 68 микрокоманд по 28 битов, из которых 27 документированы.

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

«Последовательность микрокоманд, выполняемых в течение одного или нескольких макротактов, удобно рассматривать как макрокоманду, соответствующую более высокому архитектурному уровню работы микроЭВМ, отображая ее результаты в общем случае шестнадцатеричными цифрами.» (Трохименко, стр. 97)

Четыре адреса от 60 до 63 (от 3c до 3f) содержат по две микрокоманды. Какая из этих «условных» микрокоманд выполнится, зависит от состояния ячейки L (для значения 0 — чётные номера, начиная с 60; для 1 — нечётные, начиная с 61). Таким образом, хоть адрес микрокоманды и 6-битный, но самих микрокоманд 68.

Структура кристалла[править]

  • 1-й слой — метал (алюминий) самый верхний
  • 2-й слой — полисиликон (поликремний)
  • 3-й слой — межсоеденений
  • 4-й слой — кремний

Процессоры на основе микроЭКВМ ИК13[править]

«Электроника Б3-34» использовала две микросхемы ИК13, различающиеся только прошивкой. В «Электронике МК-61» добавлена третья ИК13, прошивка которой обеспечивает дополнительные функции.

В принятых в СССР обозначениях после ИК13 идут две цифры номера прошивки. Для второго семейства ПМК после номера прошивки ставился дефис и цифра 2. Также известно, что ранние версии «Электроники Б3-34» содержали ошибки, исправленные в более поздних ПМК.

Главный процессор ИК1302[править]

Процессор ИК1302 отвечает за ввод/вывод и режимы работы ПМК. Известны две его версии:

Арифметический процессор ИК1303[править]

Дополнительные функции ИК1306[править]

Ссылки[править]