Системная магистраль

Материал из ПМК вики
Перейти к навигации Перейти к поиску

Суммарно два регистра M (см. ИК13) процессоров ИК1302 и ИК1303, вместе с двумя регистрами ИР2, по 1008 бит каждый, образуют системную магистраль ПМК — кольцо размером в 42×4 + 42×4 + 1008 + 1008 = 2352 бита.

Всю память магистрали разработчики разбили на три одинаковые области по 784 бита (196 тетрад или 98 байт), каждая из которых делится на 14 страниц по 56 бит (14 тетрад или 7 байт). В первой области М1 хранятся регистры данных (14 регистров с номерами 0-9, a, b, c, d по странице каждый), в третьей области М3 хранится программа пользователя (98 шагов), а вторая область М2 — служебная.

Три области не идут друг за другом. В синхропрограмме есть несколько повторяющихся операций, которые отнимают три такта и приводят к тому, что числа в регистрах хранятся на каждой третьей ячейке. В данных кольца это и реализовано. Сначала передаётся первая тетрада области М1, затем первая тетрада области М2 и затем первая тетрада области М3. Потом идут вторые тетрады и так далее. И пока за три такта отрабатываются микрокоманды 3, 4, 5 в синхропрограмме, ненужные области пропускаются.

Второе семейство ПМК

Через несколько лет после появления Б3-34 появились две новые модели — МК-61 и МК-52. У них добавился ещё один процессор К745ИК1306, в котором вычисляются операции с градусами и логические операции.

В К745ИК1306 есть такой же регистр М, как и в К145ИК1302 и К145ИК1303. Появление этой микросхемы добавило в кольцо один регистр памяти (14 тетрад), ещё семь шагов программы (14 тетрад) и на 14 тетрад увеличилась служебная область.

Размер кольца в МК-61 и МК-52 стал 42×4×3 + 1008×2 = 2520 бит, а в трёх 15-страничных областях памяти (М1, М2 и М3) стало по 840 бит (210 тетрад или 105 байт).

Область памяти данных М1

В области М1 находятся регистры памяти 0-9, a, b, c, d, e. В них интересно то, что для хранения чисел надо 12 тетрад (1 — знак мантиссы, 8 — мантисса, 3 — порядок), а на один регистр выделяется 14 тетрад (чтобы делилось на 42 в процессоре). В итоге две тетрады на каждый регистр не используются.

Хранение десятичных чисел

Одно число с 8-разрядной мантиссой и 2-х разрядным порядком занимает 14 тетрад (одна треть от 42). В кольцевой регистр влезает ровно три числа.

Разряды числа в памяти хранятся в двоично-десятичной форме, т. е. одна тетрада битов кодирует одну десятичную цифру (хотя может кодировать и шестнадцатеричную). Сами числа представлены в экспоненциальной форме и занимают 12 ячеек (вообще 14 – треть от длины регистра, но два разряда – служебные), при этом первая ячейка обозначает знак порядка, следующие две – сам порядок, потом ещё одна ячейка – знак мантиссы и восемь – собственно мантисса.

Хотя на знак отведено аж четыре бита, используются только два значения: 0 для положительных чисел и нуля, и 9 для отрицательных. При переполнении следующий разряд порядка записывается в ячейку его знака, т. е. 10 ВП 50 В↑ × даёт  ЕГГOГ , но в памяти записан порядок (1, 0, 0), где единица стоит в ячейке знака. Над этим значением можно производить некоторые операции, как над обычным числом, правда, до тех пор, пока порядок находится в пределах второй сотни – дальше начинаются сложности. Как это выглядит со стороны владельца ПМК, см. Электронный океан.

Служебная область памяти М2

Область М2 самая интересная. В ней кроме регистров X, Y, Z, T, X1, располагается подобласть Ms, канал связи КС и Метка.

Подобласть Ms

Подобласть, обозначенная как Ms, довольно большая. Она занимает одну шестую часть всей области данных кольца, больше половины области М2. И эта область не используется в калькуляторе. При разработке архитектуры разработчики предусматривали возможность сделать «область программ-данных». Это — такая область, в которую можно записывать или программу, или регистры с данными. Причем довольно большая область — 56 программных шагов или 8 регистров.

В калькуляторах предполагались включить специальные функции в комбинации с кнопкой  K  для обмена (над кнопками  1  и  2 , сейчас там пустое место). В серийных моделях эта область пропала, а так у нас могло бы быть больше регистров памяти или программа длиннее на 56 шагов. Об этой области вскользь упоминалось в журнале «Техника-молодежи», № 7 за 1986 год.

Метка и адресация в кольце

Самый важный элемент синхронизации в данных кольца — так называемая «Метка». Это последовательность из девяти тетрад, состоящих из единиц. При появлении кода «Метка» внутренний счетчик у процессоров сбрасывается, и начинается отсчет данных кольца относительно кода Метка. В самом начале после включения машинки головной процессор К145ИК1302 инициализирует кольцо и формирует Метку. Команды и содержимое регистров подобраны так, что код Метка не может встретиться ни в данных, ни в программе.

Продвинутые пользователи калькуляторов семейства Б3-34 наслышаны о «пустышке» — недокументированной ситуации, когда на индикаторе отображается только десятичная точка. Это — код, состоящий только из единиц. Когда этот код появляется, внутренний счетчик сбивается, и калькулятор начинает чудить — появляется два кода Метка и вся синхронизация сбивается — калькулятор принимает одну область памяти за другую.

Внутренняя адресация относительна относительно кода Метка. При появлении процессора К745ИК1306 с дополнительным регистром М, количество ячеек увеличилось, и они условно добавились в конец, потому что в архитектуре вся область данных в кольце непрерывна. В этой архитектуре можно добавить еще один процессор ИК13, тогда станет больше еще на один регистр памяти, и добавится еще 7 шагов программы (максимально — 112).

Максимум в 112 шагов получается, так как в архитектуру заложили страницы по 7 байтов. В Б3-34 — 14 страниц × 7 = 98 шагов, в МК-52 — 15 страниц — 105 шагов, если добавить еще одну страницу, получится 16 страниц — 112 шагов, а дальше 4 бита на номер страницы переполнится. 5-битовые номера страниц не поддерживаются, значит больше нельзя.

Канал связи (КС)

«Канал связи» — это две тетрады, в которые главный процессор может поместить число — байт с кодом операции.

Если при работе по программе или в ручном режиме головной процессор не может обработать операцию с каким-то кодом своими силами, то он кладет код операции в регистр КС кольца и начинает ждать.

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

Одновременно с выставлением кода операции в канал связи в головном чипе включается специальный счетчик ожидания по типу сторожевого таймера. Если ни один ведомый процессор не сможет обработать команду по каналу связи, то через определенное время головной процессор сам очистит канал связи и выдаст на индикаторе сообщение об ошибке  ЕГГOГ .

Этим таймаутом пользуются ведомые процессоры, если в процессе вычисления произошла ошибка с числом. Например, пользователь попытался извлечь корень из отрицательного числа. В этом случае ведомый процессор ничего не выставляет в канал связи, а головной процессор через несколько секунд сам выводит сообщение об ошибке. Оттого в калькуляторах вывод надписи  ЕГГOГ  при подобного рода ошибках занимал так много времени.

Главный процессор может не знать, какие есть в кольце другие процессоры. Он всего лишь выставляет код в канал связи, а его обрабатывают другие процессоры. Можно, например, заменить микросхему К745ИК1306 на другую или сделать свою разработку на основе микроконтроллера, как сделали ещё в советские времена в калькуляторе «Электроника МС-1104».

Область памяти программ М3

В области М3 располагается память программ. Там всё просто — 98 шагов для Б3-34 и 105 шагов (на 14 тетрад больше) для МК-61 и МК-52.

Ссылки


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.