Из предыдущей части публикации мы узнали, что на одной микросхеме К155ЛА3 можно реализовать достаточно много устройств. Причём у неискушённого читателя мог возникнуть вопрос, зачем же потребовалась разработка других микросхем серии 74, если функциональность любой из них можно реализовать на логических элементах типа 2И-НЕ?
В этой части мы рассмотрим схемотехнические решения на элементах 2И-НЕ более сложных устройств, а также дадим ответ на вопрос неискушённого читателя по результатам анализа работы этих решений.
Полный сумматор
Двоичный сумматор предназначен для формирования на выходе суммы поданных на его входы двоичных сигналов по модулю 2 и сигнала переполнения (переноса).
С формированием результата в виде суммы входных бинарных сигналов по модулю 2 отлично справляется рассмотренная в предыдущей части публикации схема элемента «исключающее ИЛИ». Если дополнить эту схему цепями формирования сигнала переноса, можно превратить её в «полусумматор».
Проще всего это сделать, дополнив схему «исключающего ИЛИ» на четырёх элементах 2И-НЕ ещё одним инвертором, как показано на рисунке ниже:
Теперь схема формирует сигнал (флаг) переноса в случае, когда на входы «полусумматора» поданы две логические единицы.
Схему «полусумматора» можно применять только для сложения аргументов разрядностью один бит или младших разрядов многобитных аргументов. Старшие разряды должны суммироваться с учётом значения сигнала переноса при суммировании младших разрядов. Это делает схема «полного сумматора».
На входы схемы «полного сумматора» подаются три двоичных сигнала: два значения суммируемого разряда слагаемых и сигнал переноса, полученный в результате сложения более младших разрядов этих слагаемых. На выходе «полного сумматора» формируется результат сложения этих трёх сигналов, а также сигнал переноса для вычисления суммы более старших разрядов.
«Канонический» вид схемы «полного сумматора» приведён на рисунке ниже:
Логические формулы состояния выхода «полного сумматора» и состояния сигнала переноса приведены ниже:
(8) | ||
(9) |
На взгляд неискушённого разработчика цифровой электроники, схема выглядит просто великолепно. Опытный же разработчик, глядя на неё, тут же начнёт рассуждать на тему «гонки состояний».
Задержка распространения сигнала...
В том, чтобы разобраться, что же такое «гонка состояний», нам поможет схема, приведённая ниже:
Схема может показаться бессмысленной: казалось бы, какой бы сигнал ни был подан на вход схемы, на её выходе всегда будет сигнал высокого логического уровня, потому что на входах элемента 2И-НЕ, обозначенного как D1.1, всегда будут сигналы разных логических уровней.
Но это – в «статике». В «динамике» же мы попадаем в реальный мир, где фронты логических сигналов никогда не бывают вертикальными, а сигналы распространяются с задержкой.
Рассмотрим временные диаграммы сигналов сбоку от схемы. Изначально на входе схемы и непосредственно на выводе «1» элемента D1.1 присутствует сигнал низкого логического уровня. Цепочка элементов D1.2, D1.3 и D1.4 ведёт себя как инвертор, и на выводе «2» элемента D1.1, присутствует сигнал высокого логического уровня. В результате получаем логическую «единицу» на выходе схемы.
Теперь подадим на вход схемы «единичный» импульс. В момент времени начинаются переходные процессы в элементах D1.1 и D1.2, и в момент времени на выходе инвертора D1.2 устанавливается сигнал низкого логического уровня. На выходе элемента D1.1 тоже устанавливается сигнал низкого логического уровня, поскольку на выходе инвертора D1.4 всё ещё присутствует логическая «единица».
Если обозначить среднее время задержки распространения сигнала одним логическим элементом как:
(10) |
Феномен «гонки состояний» заключается в том, работа схемы «в железе» может отличаться от работы математической модели этой схемы. В этом нам помог убедиться пример схемы формирователя импульса по фронту входного сигнала, работу которой мы и разбирали выше.
…имеет свойство накапливаться
Вернёмся к нашему «полному сумматору». Пусть нам нужно найти сумму двух четырёхразрядных чисел. Для этого нам понадобятся четыре подобных сумматора.
Подаём соответствующие разряды слагаемых на соответствующие входы соответствующих сумматоров. Выходы сигналов переноса подаём на входы сигналов переноса следующих разрядов. На вход переноса первого разряда подаём логический «ноль».
Попытаемся оценить время в , за которое схема вычислит сумму двух четырёхразрядных чисел.
С первым разрядом всё просто: достоверный сигнал переноса формируется за время, равное , достоверное значение суммы – за .
Со вторым разрядом немного сложней: достоверное значение суммы без учёта сигнала переноса сформируется за время, равное , что справедливо и для третьего и четвёртого разрядов, а вот сигнал переноса для сумматора третьего разряда будет формироваться ещё .
Обобщаем: к концу отрезка времени будет получено достоверное значение суммы первых разрядов и получено значение сигнала переноса для сложения третьих разрядов; сигнал переноса для сложения четвёртых разрядов будет получен через ещё , а достоверное значение суммы двух четырёхразрядных чисел будет получено ещё через три.
Итого, рассматриваемая схема производит суммирование двух четырёхразрядных чисел за период времени, равный , а сигнал переноса в пятый разряд будет получен за . При среднем значении времени задержки распространения сигнала для микросхем серии 74 равном 13 нс время суммирования двух четырёхразрядных чисел рассматриваемой схемой четырёхразрядного сумматора на дискретных элементах составит около 130 нс, и всё это время сигналы на выходах нашего четырёхразрядного сумматора будут недостоверны.
Убеждаемся, что для корректной работы рассматриваемого сумматора ей необходимо запоминающее устройство на входе с запретом записи на всё время переходных процессов в схеме, а также запоминающее устройство на выходе с разрешением записи только после окончания переходных процессов. Переходим к триггерам.
Триггер как ячейка памяти...
Самым простым способом реализации ячейки памяти на элементах 2И-НЕ является схема RS-триггера. Устройство имеет два устойчивых состояния, переключение между которыми производится подачей сигналов низкого логического уровня на один из двух входов. При подаче логического «ноля» на вход S (Set) на «прямом» выходе RS-триггера устанавливается сигнал высокого уровня, а при подаче логического «ноля» на вход R (Reset) сигнал высокого логического уровня устанавливается на инверсном выходе триггера и производится сброс «прямого» выхода RS-триггера в «ноль».
С точки зрения применения «классической» схемы RS-триггера в качестве ячейки памяти вычислительных устройств, у неё есть два существенных недостатка: возможность изменения состояния в любой момент времени (асинхронность) и разнесение сигналов управления состоянием по двум разным входам.
На рисунке выше слева приведена схема RS-триггера на двух элементах 2И-НЕ, а справа – схема «тактируемого» RS-триггера (RST-триггера). Выход RST-триггера устанавливается в «единицу», если на входе S (Set) RS-триггера на элементах D1.1 и D1.2 появится сигнал низкого логического уровня. Он, в своё время, может появиться только при подаче на вход C (Clock) сигнала высокого логического уровня, при условии, что на входе D (Data) присутствует сигнал высокого логического уровня. Если в этот момент времени на входе D установлен логический «ноль», сигнал низкого логического уровня появится на входе R (Reset), что приведёт к «сбросу» триггера.
…должен переключаться по фронту тактирующего сигнала
Казалось бы, оба недостатка устранены, но посмотрим, что произойдёт, если во время, пока на входе C присутствует сигнал высокого логического уровня, сигнал на входе D изменится? А приведёт это к тому, что вместе с этим изменится и сигнал на выходе триггера.
Решений этой проблемы два: триггер, организованный по схеме «ведущий – ведомый»; и триггер, переключаемый по фронту тактового сигнала.
Триггер по схеме «ведущий – ведомый» состоит из двух RST-триггеров со всеми их недостатками. Хитрость заключается в том, что запись в эти триггеры производится по разным фронтам тактирующего сигнала. Когда производится запись в «ведущий» триггер, «ведомый» хранит прошлое состояние и изменение состояния на выходах «ведущего» триггера влияния на него не оказывает. Когда же производится запись в «ведомый» триггер, состояние выходов «ведущего» измениться уже не может.
Схема D-триггера, переключаемого по фронту, выглядит не так понятно, но триггеры именно такого типа и получили наибольшее распространение. На рисунке ниже приведена реализация схемы одного из двух триггеров из состава микросхемы К155ТМ2 (7474) только на элементах 2И-НЕ. Для упрощения восприятия из схемы исключены цепи асинхронного сброса и установки.
До прихода «переднего» фронта тактового сигнала на входах RS-триггера на элементах D1.1 и D1.2 присутствует сигнал высокого логического уровня. В момент прихода фронта на входах RS-триггера на элементах D1.1 и D1.2 формируется импульс сброса или установки в зависимости от уровня сигнала на входе D. В этот момент времени в триггер записывается его новое состояние, и последующее изменение сигнала на входе D на состояние триггера не влияет до прихода на вход C следующего «переднего» фронта тактового сигнала.
На элементах D2.3, D2.4 и D1.4 реализован элемент 3И-НЕ, о схеме замены которого упоминалось в предыдущей части публикации.
Цветущее разнообразие модельного ряда
Теперь, когда мы убедились в том, что сможем собрать из элементов 2И-НЕ всё что угодно, поговорим про то, почему так обычно не делают.
Вернёмся к четырёхразрядному сумматору на дискретных элементах и посчитаем состав оборудования: пять элементов 2И-НЕ на первый разряд и ещё по девять на три последующих, итого 32 элемента 2И-НЕ (восемь корпусов К155ЛА3) на сумматор. Чтобы запомнить слагаемые на входе, используем восемь D-триггеров на восьми элементах 2И-НЕ каждый (64 элемента, 16 корпусов). Чтобы записать полученную сумму, нужно ещё четыре D-триггера (32 элементов, 8 корпусов). В итоге нам понадобится 32 микросхемы К155ЛА3.
Теперь возьмём за основу готовый четырёхразрядный сумматор К155ИМ3 (7483), а для хранения данных будем использовать три счетверённых D-триггера К155ТМ8 (74175).
Функциональность схемы осталась той же, но четыре корпуса займут на печатной плате гораздо меньше места, чем 32. Приятным дополнением к уменьшению размеров платы послужит ещё и то, что задержка распространения сигнала по цепи суммы микросхемы К155ИМ3 составляет не более 37,5 нс, а по цепи переноса – не более 40 нс. А это в три с небольшим раза быстрее (130 нс / 40 нс) схемы четырёхразрядного сумматора на дискретных элементах.
От автора
Надеюсь, что две первые части публикации освежили в памяти читателей основы разработки цифровых устройств электроники.
Также надеюсь, что мне удалось убедить читателей, что в разработке техники всегда есть несколько путей решения задач.
Проектирование изделия на ограниченном по номенклатуре модельном ряде «типовых» элементов может упростить процесс закупки комплектующих, но при этом увеличить время разработки. Использование же «специализированных» микросхем может уменьшить габариты, энергопотребление и быстродействие, и при этом не повысить себестоимость, но зато усложнить, допустим, логистику. Любой вариант решения в чём-то неидеален, поэтому выбор варианта решения и производится на основе технико-экономического обоснования.
В следующей, заключительной, части публикации речь пойдёт об аналоговом режиме работы элементов микросхемы К155ЛА3.
▍ Использованные источники:
- Гутников. Интегральная электроника в измерительных устройствах. Энергоатомиздат, 1988.
- Шило. Популярные цифровые микросхемы. 2-изд. Радио и связь, 1989.
- Хоровиц, Хилл. Искусство схемотехники. 2-изд. Мир, 1993.
Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх ????️
Комментарии (32)
nbkgroup
13.04.2023 10:12+13Напоминаю про https://nandgame.com/
где всё это можно проделать прямо из браузера
ivanokunev
13.04.2023 10:12+3Я честно хочу сказать Вам спасибо, когда увидел ссылку в предыдущий раз - пропал на день с головой. Не скажу что все было очевидно (например DFF), но арифметика и АЛУ меня захватили - решил на компонентах, затем оптимизировал разложив на гейты.
piuzziconezz
13.04.2023 10:12Да, в реальности часто определяющее значение имеют цена, доступность компонента, его популярность, сроки поставки. Внутренняя сложность чаще всего не имеет значения. (понимаю, что автор это прекрасно знает и цель статьи образовательная)
atd
13.04.2023 10:12+1цель статьи образовательная
А вот тут я посмею себе усомниться. Эта статья зайдёт тем, кто уже разбирается в теме, но для новичков образовательный эффект будет нулевой, если не отрицательный.
Всё слишком быстро, по вершкам, с непонятными переходами:
вроде только считали элементы, потом фигак! динамическая дисциплина, но не задерживаясь на гонке состояний мы раз — и обложили всё защёлками на входе и выходе. А потом оп, ячейка памяти, что, как почему 2и-не? Одна, вторая, другая, какие-то буквы R, S, третья.
А потом раз, и мы собираем из ЛА3 ТМ2. Или он реально внутри так устроен (нет)? Из текста не понятно. А потом мы 130нано меняем на 40, и 32 корпуса на 4. Но почему ИМ3 шустрее? Непонятно, магия. У новичков после этого в голове останется только каша.
Надеюсь, что две первые части публикации освежили в памяти читателей основы разработки цифровых устройств электроники.
↑ В конце автор справедливо заметил, что это действительно не образовательная статья, а краткий рекап для тех, кто уже в курсе. В этом плане в статье всё на месте.
checkpoint
13.04.2023 10:12+1Но почему ИМ3 шустрее? Непонятно, магия. У новичков после этого в голове останется только каша.
Интересную тему Вы затронули. Сразу скажу, что дело тут не в паразитных емкостях, хотя они конечно тоже сказываются на времени срабатывания логических элементов.
Описываемый в этой статье 4-х битный полный сумматор на логических микросхемах выполнен по схеме "последовательного переноса" (ripple carry adder). Это самый медленный полный сумматор из всех возможных. Микросхема сумматора К155ИМ3 (SN7483A) выполннена по иной схеме, а именно по схеме "с упреждающим переносом" (carry-lookahead adder). Такой сумматор работает в несколько раз быстрее за счет упреждающего вычисления переноса.
Существуют еще несколько разновидностей сумматоров которые работаю еще быстрее. Например "параллельно префексный сумматор с ускоренным групповым переносом" (parallel prefix adders). Такой сумматор работает еще в два раза быстрее, но он имеет смысл только для многобитовых слогаемых (таких, что бы можно было разбить по 4 бита) и требует огромного количества параллельно соединенных логических элементов. Более подробно тут: https://ru.wikipedia.org/wiki/Сумматор
VT100
13.04.2023 10:12+1Но почему ИМ3 шустрее?
Потому, что паразитные ёмкости внутри кристалла ИМС — меньше.
atd
13.04.2023 10:12Не на столько же. А в 555й серии там отрицательные паразитные ёмкости должны быть, учитывая разницу с дискретными? )))
VT100
13.04.2023 10:12+1Именно настолько.
В 555-й транзисторы удерживаются на грани насыщения (с помощью диода Шоттки катодом к коллектору и анодом к базе), что и позволяет ускориться несмотря на увеличение номиналов резисторов.
"Параллельный перенос", как пишет gleb_l, — относится к формированию выходного сигнала переноса. 4 выходных сигнала суммы — расчитываются "древовидной" схемой, где сигнал от входного переноса и младших разрядов неспешно дефилирует через все биты суммы.
gleb_l
13.04.2023 10:12+2Не только. В ИМ3 используются базовые элементы И-ИЛИ-НЕ (часты для построения мультиплексоров и (полу-)сумматоров - так как их быстродействие равно базовому xИ-НЕ, а гибкости порядково больше), а не соединенные последовательно xИ-НЕ (инверсия выхода которого превращает следующую секцию И как раз в ИЛИ в негативной логике, плюс еще инвертор. Вот внутрянка 155ЛР1 (вернее, его оригинала SN7450) - видно, что а) ИЛИ внутри монтажное, ничего не стоит с точки зрения задержек, и к тому же расширяемое до любого количества разрядов тоже бесплатно; б) по сравнению с реализацией на отдельных логических элементах И-ИЛИ-НЕ в три раза быстрее (имеет три каскада против 3 x 3 для реализации на xИ-НЕ -> xИ-НЕ -> НЕ).
Так что Шоттки, конечно, рулят, но в рамках одной технологии вся номенклатура серии находится в равных условиях - и здесь у более функционально-насыщенных ИМС есть большое преимущество как раз за счет оптимизации вутренних связей.
VT100
13.04.2023 10:12+1ИЛИ внутри монтажное, ничего не стоит с точки зрения задержек
Не думаю. Емкость на нижнем выводе резистора в 1,6 кОм растёт пропрорционально числу ИЛИ — быстродействие снижается.
gleb_l
13.04.2023 10:12+1Строго говоря, да. Абсолютно бесплатно ничего не бывает. Практически же можно сравнить по паспортам заявленные быстродействия скажем 133ЛА1 (http://www.155la3.ru/datafiles/133la1.pdf) и 133ЛР3 (http://www.155la3.ru/datafiles/k1lr333_pasp.pdf)
gleb_l
13.04.2023 10:12+3Если я не ошибаюсь, ИМ3 шустрее потому, что это сумматор с параллельным переносом - то есть с анализом всех четырех пар входов и входного переноса одной схемой. Схема такого сумматора довольно нетривиальна, и если эмулировать ее на 2И-НЕ, то быстрее не получится - здесь нужны как минимум многовходовые элементы.
Если же сделать 4-х разрядный сумматор на "россыпи", то время установления достоверных выходных данных у него будет 40t, что вам вряд ли понравится, особенно если вы захотите пойти еще дальше, и обрабатывать вашим самодельным АЛУ за раз целые байты :)
PS - параллельный сумматор с достаточно неплохим быстродействием можно сделать из ПЗУ на пережигаемых перемычках (155РТ3-РТ7) - для 4-х разрядного сумматора нужно будет 9 входных и 5 выходных разрядов - зато выходные значения будут появляться на всех выводах строго синхронно :)
PPS - вот нашел внутреннюю схему ИМ3 - не сказать, чтобы он полностью параллельный, но полупараллельный точно :)
atd
13.04.2023 10:12Да, всё так. Небольшой нитпик:
ИМ3 шустрее потому, что это сумматор с параллельным переносом
СУП в оригинальной 155/133 насколько я знаю, нет. Но он заявлен как обязательно присутствующий в 555 1533 ит.д. Правильно прошитая ПЗУ будет настолько же быстрой, да
checkpoint
13.04.2023 10:12+3Правильно прошитая ПЗУ будет настолько же быстрой, да
Зависит от схемы дешифраторов внутри ПЗУ. Если брать ПЗУ тех же времен, что и К155 (SN74), то вероятнее всего ПЗУ будет медленнее и жутко дорогущей, по сравнению с микросхемой сумматора.
SIISII
13.04.2023 10:12+2Судя по буржуйскому даташиту на 7483 (девичье имя К155ИМ3), там действительно параллельный перенос:
Ну и в порядке придирок :)
1) В 155-й серии нет РТ, насколько помню, но там есть К155РЕ3 -- она с пережигаемыми перемычками и должна бы обозначаться РТ, а не РЕ (возможно, РТ введено позже, а возможно, просто ошиблись в обозначении -- такое тоже бывает). РТ -- это, в первую очередь, 556-я серия.
2) Даже если сделать на ПЗУ, выходы всё равно не будут строго синхронными: никто не отменял индивидуальные свойства транзисторов и разное влияние на них локальных нагревов кристалла и фазы Луны. Так что, если говорить о задержках, строго одинаковое время недостижимо.
aumi13
13.04.2023 10:12+1как будто снова в универ вернулся)))
lws0954
13.04.2023 10:12И это даже бывает полезно :)
Сейчас я больше программист, но когда-то (сразу после института) достаточно плотно "дружил" с паяльником. Приходится брать мне его в руки и сейчас, но, права, уже гораздо реже. Тем не менее, я взял на себя смелость смоделировать поведение схемы, демонстрирующей гонку сигналов. И вот, что у меня получилось:
Гонка сигналов
Это не очень сильно, но все же отличается от картинке в статье. Во-первых, по моим представлениям фронты сигналов гораздо меньше задержек, вносимых элементами и это отражают приведенные диаграммы выходов элементов. Во-вторых, переходные процессы при включении схемы могут быть не столь простыми. Возможно, они не такие, как на диаграмме, но для идеальных элементов они будут именно такими. Ну, уж при сбросе входного сигнала, думаю, будет именно так (речь о задержке установления сигнала на выходе элемента D1.4).
Есть у меня замечания и к описанию поведения RS-триггера. Например, не отражено "запрещенное состояние" его выходов при переключении между его устойчивыми состояниями. И насколько я в курсе, разработчикам схем с этим часто приходится даже бороться, т.к. это может служить источником помех в работе схемы.
... Как будто вернулся во времена моей молодости :)
dmitriyrudnev Автор
13.04.2023 10:12Спасибо за комментарий!
- Можно Вас попросить поменять время задержки распространения сигнала в модели с t=0.2с на t=13нс и поделиться результатом?
- У RS-триггера "запрещённое состояние" есть, но конкретные приведённые далее схемы RST- и D-триггеров в это состояние "загнать" невозможно, поэтому о нём и говорится, чтобы не переусложнять. Поэтому я и убрал оттуда схемы асинхронного сброса-установки
lws0954
13.04.2023 10:12Можно Вас попросить поменять время задержки распространения сигнала в модели с t=0.2с на t=13нс и поделиться результатом?
Вы же, надеюсь, понимаете, что это невозможно ;) Могу, конечно, уменьшить, но до минимум - 1 мсек. Но если очень уж нужно, то тогда необходимо строить соответствующую модель элемента и моделировать уже в масштабе. Пока же модель самая простая, но с обязательной задержкой ровно на один такт моделирования. Извините, но пока только так ;) Но вопрос первый - а как соотносятся между собой длительность фронта сигнала и длительность задержки элемента 155-й серии? И уж сразу второй - можно ли собрать генератор на одном элементе И-НЕ, соединив его выход с его входами? Это без всякого прикола. Хотелось бы знать.
По поводу запрещенных состояний. В тех схемах, о которых вы говорите, выходами являются по-прежнему выходы RS-триггера, а это означает ровно то, что при его переключении на выходах кратковременно будет возникать запрещенное состояние. Это входит в его обязательное поведение. И с этим ни чего не поделать. В свое время, когда я с этой проблемой разбирался, то к выходам триггера 155-й серии подключал более быстродействующую серию - тоже элемент И-НЕ. Затем к выходу последнего - счетчик и он ... считал. Так должно быть и в случае приведенных Вами схем. Нужно только подобрать более шустрые элементы-индикаторы запрещенного состояния и счетчика. Так, кстати, поступают в, так называемой, асинхронной схемотехнике (см. кн. Варшавского по этой теме).
dmitriyrudnev Автор
13.04.2023 10:12+1Я тут совершил пять неудачных попыток скачать этот симулятор...
Если возможности уменьшить масштаб пока нет, вопрос снимается.
Длительность (наклон) фронта сигнала определяется быстродействием и нагрузочной способностью выхода, электрической ёмкостью нагрузки (подключенных входов и проводников между входами и выходом). Время задержки распространения сигнала как раз и определяется ёмкостью входа, быстродействием схемы и нагрузочной способностью выхода. У серии К155 с этим всё не очень хорошо… У К555 (ТТЛШ) уже получше, а у серии 74AC фронты сигналов, как на Вашем симуляторе :)
Генератор можно собрать введением ПОС в схему неинвертирующего усилителя (Гутников). Когда-то давно видел схему кварцевого генератора на одном элементе КМОП, каком, не помню. На ТТЛ таких схем не видел никогда. "Классикой" считается собрать неинвертирующий усилитель из двух 2И-НЕ в аналоговом режиме и подать сигнал с выхода на вход через конденсатор или кварцевый резонатор. Об этом, как раз в том числе, третья заключительная часть этого цикла и будет
lws0954
13.04.2023 10:12Модель, если соединить выход со входом (разорвать 4, 5 и соединить 3, 5), входит в режим генерации. Например, в пакете SimInTech, это выглядит так:
Генератор на элементах И-НЕ
А как на Ваш взгляд будет вести себя в этом случае реальная схема?
dmitriyrudnev Автор
13.04.2023 10:12+3Ближайшее время буду макетировать несколько схем на К155ЛА3 для следующей части публикации, которая выйдет 27.04.2023, если ничего не изменится.
Заодно сниму осциллограммы со схемы определения переднего фронта на частотах порядка мегагерц и поделюсь ими обязательно!
LAutour
13.04.2023 10:12"запрещенное состояние" иногда применяется специально. Из простого - при необходиости можно сделать простой инвертор.
RV3EFE
13.04.2023 10:12Класс. Люблю логику
dmitriyrudnev Автор
13.04.2023 10:12+2Я этот цикл пишу с большой любовью, как Вы понимаете.
73 de RD9F
lws0954
13.04.2023 10:12+2Разделяю Вашу любовь :) Моделируя именно ее - цифровую логику, я тестирую проблемы своего "программного параллелизма". Просто потому, что проблемы современного параллельного программирования во многом были исследованы задолго до его появления разработчиками цифровых схем на базе теории конечных автоматов. А вот программисты, похоже, об этом не знают, да и, если совсем прямо, - не хотят знать.
SIISII
13.04.2023 10:12Можно ещё упомянуть, что в древности вычислительные машины хоть и не делали на одном типе микросхем, но могли (а точней, были вынуждены) обходиться очень скромным набором. Скажем, логическая часть процессора ЕС-1030 была выполнена на девяти типах микросхем 155-й серии: ЛА1, ЛА2, ЛА3, ЛА4, ЛА6, ЛА7, ЛР1, ЛР3 и ЛД1 (правда, она появилась в 1971-72 годах, когда эти микросхемы обозначались по-другому -- скажем, К155ЛА3 была К1ЛБ553; привычные обозначения были введены, если память не изменяет, в 1975-м). Современные цифровые микросхемы на нижнем уровне "собирают" из библиотечных компонентов -- по сути, из тоже весьма ограниченного набора логических элементов, триггеров и т.п. Правда, сейчас сей процесс обычно скрыт от разработчика, так как логику проектируют на языках описания аппаратуры (обычно VHDL, Verilog, System Verilog), но внизу -- всё равно логические элементы :) А ещё ниже таки транзисторы, да.
lgorSL
Огромное спасибо! Очень доступно и понятно рассказано, при том что я эту тему практически не знал.