Вход

Просмотр полной версии : Электромеханический суперкомпьютер имени 1 апреля 2018 года



Patison
01.04.2018, 20:34
Суть вопроса: 1 апреля. Нужно успеть сделать что-то полезное.

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

Сразу оговорюсь. что все, о чем здесь пойдет речь, давно кем-то запатентовано, так что особой новизны в этом нет.
Как известно, все синхронные цифровые схемы основаны на последовательной обработке цифровых сигналов. При этом, если элементы выстроены в последовательную цепь или работают в закольцованных схемах, суммарная задержка всей цепи равна как минимум сумме всех задержек на каждом элементе этой последовательной цепи.
Поэтому, если задержка срабатывания, к примеру, одного электромеханического реле равна 0,1 сек, то 1000 реле, включенные последовательно, создадут задержку в 100 сек.
Однако, если не дожидаясь получения результата от предыдущих реле, за один такт 0,1 сек одновременно переключить все 1000 реле в нужную конфигурацию, то пустив ток через эту заранее сконфигурированную цепь, можно за время, лишь немногим превышающее 0,1 сек. получить результат. Ведь скорость установления тока в электрическом проводнике довольно близка к скорости света. Получим тысячекратный прирост скорости в строго последовательных операциях.
Естественно, чисто параллельные операции легко реализуются простым увеличением количества вычислительных модулей.
Конечно, такой принцип имеет ряд ограничений. Попробуем рассмотреть их в процессе разработки суперкомпьютера.

zx-kit
01.04.2018, 20:44
А как у него с клешингом ?

Patison
01.04.2018, 20:49
А как у него с клешингом ?
Это происки английских лордов, пэров и сэров Синклеров.
Наш ответ Чемберлену будет по-сибирски суров: сто тонн отборной щебенки на орбиту и нет их спутниковой группировки.
Но это шутки. А мы то настроены по-серьезному?

MM
02.04.2018, 15:13
Посоветую герконовые самодельные реле - в 1 шт. катушку можно напихать целый пучок маленьких геркончиков.
Работают они быстро ( от 3 до 10 мс на реле ), мало шумят, имеют умеренную стоимость, неподвержены влиянию жуков и пауков.

b2m
02.04.2018, 16:38
Посоветую герконовые самодельные реле
А как делать отрицание? Т.е. при подаче питания размыкать контакты?

Reobne
02.04.2018, 17:03
А как делать отрицание?
У катушки нужно сделать вторую обмотку, и постоянно гнать по ней ток во встречном направлении. :)

MM
02.04.2018, 18:05
А как делать отрицание?
Герконы бывают 3-х видов :
1. На зломыкание.
2. На размыкание
3. Переключательные.
4. ( Опция. ) Битые. Состояние научно не определено.

b2m
02.04.2018, 18:08
Герконы бывают 3-х видов
Не знал.

siemensC35
02.04.2018, 18:12
все уже украдено сделано до нас
https://geektimes.ru/post/299491/

barsik
02.04.2018, 19:21
Не сразу понял это юмористическая тема или серъёзная. Юмористическую тему лучше перенести в раздел флейм.

А вообще компьютер на реле не годится в качестве первоапрельской шутки, т.к все первые компьютеры 30-40-вых годов были именно на реле. По ключу "компьютер на реле" гуглится много, как исторических машин (например Z3 с тактом процессора 5.33 Гц), так и современных поделок, в том числе и фэйков.

А за такие наглые первоапрельские шутки, причём сдуру повторенные дважды первого апреля 2017 (https://geektimes.ru/post/287344/) и первого апреля 2018 (https://geektimes.ru/post/299491/) надо отрывать руки таким придуркам издевающимся над историей и засоряющим Интернет.

Patison
02.04.2018, 21:28
Не сразу понял это юмористическая тема или серьёзная. Юмористическую тему лучше перенести в раздел флейм.
Каждый волен сам для себя решить - это юмористическая тема или серъёзная.
Когда я был студентом Омского Политехнического института, (если я не ошибся +- одним годом) в 1982 году руководство нашего института меня направило во Владивосток из Омска на Всесоюзную студенческую конференцию, где я сделал доклад на данную тему, в котором, конечно, фигурировали не реле, а полупроводниковые приборы. Там же я показал несколько схемотехнических решений, основанных на данном принципе. Предварительно я провел в патентном бюро нашего города довольно длительный патентный поиск и убедился, что имеющиеся прототипы не полностью покрывают рассматриваемую мною область.

А вообще компьютер на реле не годится в качестве первоапрельской шутки, т.к все первые компьютеры 30-40-вых годов были именно на реле.
Надеюсь, наиболее проницательные форумчане заметили, что я не описываю обычный релейный компьютер, а нечто иное.

А за такие наглые первоапрельские шутки, причём сдуру повторенные дважды первого апреля 2017 (https://geektimes.ru/post/287344/) и первого апреля 2018 (https://geektimes.ru/post/299491/) надо отрывать руки таким придуркам издевающимся над историей и засоряющим Интернет.
Пневмонику я изучал еще в начале 80-х годов прошлого века. Еще есть книга тех же времен по основам чисто ферритовых компьютеров. Поэтому то, что молодой человек по вашим ссылкам на гиктаймсе что-то делает, если он делает, то это похвально, но он действительно, повторяет то, что уже давно было сделано другими.

HardWareMan
03.04.2018, 06:23
Поэтому то, что молодой человек по вашим ссылкам на гиктаймсе что-то делает, если он делает, то это похвально, но он действительно, повторяет то, что уже давно было сделано другими.
Да не, котег хотел сказать, что тот МЧ два года подряд один и тот же свой проект выдвинул. Более того, это вообще копия прошлогодней статьи.

barsik
03.04.2018, 08:12
Более того, это вообще копия прошлогодней статьи.
Это не довод, а вот дата публикаций и название изделия - это явная подсказка.

И всё-же хотелось бы иметь ответ на вопрос - это точно розыгрыш или человек действительно настолько загорелся идеей компьютера на реле. Это может быть и розыгрыш наоборот, реальность под видом фэйка. Высказывайтесь, кто, что думает.

Согласитесь, что если бы даты выхода обоих статей были не 1 апреля, то сомнения бы даже не возникли. Столько трахаться придумывая схемы, составляя тексты и подделывая фотографии, стал бы кто-нибудь только ради розыгрыша? Человек сделавший такой фэйк болен гораздо больше, чем если он реально имеет такое хобби. Можно понять человека решившего воплотить идею-бзик, но не понять придурка, которому настолько нравится обманывать людей.


я не описываю обычный релейный компьютер, а нечто иное
Но вот это "нечто иное" описано так, что выглядит именно, как первоапрельская шутка. Предлагается 1000 реле соединить последовательно. Что же таким образом можно вычислить?

На реле можно сделать лишь 4-х разрядный, 6-ти разрядный и может быть даже 8-ми разрядный обычный двоичный компьютер с фон-Неймановской архитектурой. С тактом процессора максимум в 10 Гц. И ничего больше. Разве возможности такого компьютера улучшатся, если разрядность поднять до сотни или тысячи битов?

Xrust
03.04.2018, 10:38
Разве возможности такого компьютера улучшатся, если разрядность поднять до сотни или тысячи битов?

Конечно улучшатся. Например майнинг биткойнов сильно зависит от разрядности.

Patison
13.04.2018, 15:31
Сегодня пятница, 13. Пора браться за страшилки (мои каракули).

Вот схема 2AND на реле с ее таблицей истинности:
http://zx-pk.ru/attachment.php?attachmentid=64982&d=1523621026

Схема 2OR:
http://zx-pk.ru/attachment.php?attachmentid=64983&d=1523621132

NOT:
http://zx-pk.ru/attachment.php?attachmentid=64991&d=1523622539

Попробуем из этих узлов собрать простую логическую схему Logic1:
http://zx-pk.ru/attachment.php?attachmentid=64985&d=1523621178

Надеюсь, я ничего не напутал в таблицах истинности.
Если что-то непонятно, спрашивайте.

JV-Soft
13.04.2018, 20:46
Если что-то непонятно, спрашивайте.
Теоретически просчитали задержку сигнала и максимальную частоту системы ? :)

siemensC35
13.04.2018, 21:26
Теоретически просчитали задержку сигнала и максимальную частоту системы ?
пока ехал сегодня домой вспомнил все это токо это была система ГРМ автомобиля на реле . поидеи вся задержка будет защет времени срабатывания и времени отпускания реле
с герконовыми былобы проще

Patison
22.04.2018, 21:06
Сегодня, 22 апреля был праздник: День Рождения В.И. Ленина. Нужно сделать что-то полезное.

Теоретически просчитали задержку сигнала и максимальную частоту системы ? :)
Я решил получить практически эти значения. Для этого сколхозил на куске ЭППС небольшую схему. Но чтобы не руками управлять, взял в качестве управляющего устройства обычную Arduino UNO. Arduino выдает входные сигналы X0, X1, X2, X3, а также анализирует результирующий сигнал Y3.
Вот что получилось:

http://zx-pk.ru/attachment.php?attachmentid=65107&d=1524419992

В качестве исполнительных реле я использовал обычные силовые китайские реле с оптической развязкой:

http://zx-pk.ru/attachment.php?attachmentid=65108&d=1524420005

Ясно, что ни о какой сверхскорости их срабатывания речи не идет, но с ними измерять задержки и скорость работы будет даже проще.
Релюшки я запитал от компьютерного блока питания напряжением 12 В (на фото не показан), которое с помощью импульсного преобразователя (показан на первом фото чуть выше Arduino) преобразуется в +5 В, которое и поступает на все реле.
Схема проста и полностью соответствует Logic1, что я нарисовал в своем предыдущем посту. Единственое отличие - это я на последний узел, инвертор подаю не только +5 В, но и GND, чтобы вход Arduino, который измеряет Y3 в те моменты, когда инвертор не выдает +5 В, не висел в воздухе, а был надежно притянут к нулю. Индикатором Y3 является синий светодиод, который через токоограничительный резистор я подключил к этому сигналу. Этот светодиод расположен на макетке, которую можно видеть почти в центре первой фотографии.
По верхней стороне макетки идет шина +5 В. По нижней - GND. Сигнальные линии, соединяющие узлы, надеюсь, видно на фото. Чтобы было понятнее, я обвел фломастером логические элементы схемы Logic1.

Patison
27.04.2018, 18:31
Испытания схемы Logic1 на правильность функционирования:


https://youtu.be/AZd8J7OEzB8

Напомню, что синий светодод в центре кадра на макетке - значение выходного сигнала Y3.

Sergei Frolov
28.04.2018, 18:05
Схему релейного калькулятора "Вильнюс" видели?

Patison
01.05.2018, 10:18
Схему релейного калькулятора "Вильнюс" видели?
Нет, не видел. Хотелось бы взглянуть. Почему-то вспомнились мои лабораторные работы, когда я учился на первом курсе института в 1979 году. На аналоговых вычислительных машинах напряжение было, кажется до 100 В, хотя ток маленький. И часто нас при неосторожной коммутации било током результатов вычислений.
Однако, вернемся к нашим баранам, то есть к теме.

Сегодня 1 Мая, праздник Весны и Труда. Жизнь только начинается. Все расцветает.

Я провел тест на скорость работы релейной схемы Logic1:


https://youtu.be/9JS8SoS7Ljw

Алгоритм работы управляющего компьютера построен так, что при успешном прохождении очередного цикла, состощего из 16 проверок по вышеприведенной таблице, он уменьшает на 10 миллисекунд интервал между измерениями в следующем цикле. Как только будут обнаружены ошибки, в следующем цикле интервал измерений увеличивается. И так до тех пор, пока ошибки на перестанут появляться. При этом программный таймер некоторое время после того, как ошибки исчезнут, окончательно тестирует схему.
При нескольких запусках у меня Delay варьировалась от 12 до 20 мс. Это - суммарное время прохождения сигнала от входов X0..X3 через все логические элементы до выхода Y3 по самой длинной цепочке схемы.

Sergei Frolov
01.05.2018, 18:04
Нет, не видел. Хотелось бы взглянуть.

http://electronika-5.ru/calc/index.php?page=doc_calc

Patison
09.05.2018, 20:56
http://electronika-5.ru/calc/index.php?page=doc_calc
Что-то я там принципиальной электрической схемы не углядел. Может быть плохо смотрел?

Сегодня Праздник Великой Победы!!!
Нужно сделать что-то полезное. Выкладываю мой скетч для Arduino UNO, который рулил схемой на представленных выше двух видео:


/*
Релейная логическая схема Logic1 на основе релейных модулей 5V с оптической развязкой.
Перемычку на всех релейных модулях ставим между средним и левый контактом с надписью "H".
Входной разъем:
DC- подключаем к GND;
DC+ подключаем к +5V;
IN подключаем к PIN Arduino.
*/
//#define FuncTest // Тест на правильность функционирования логической схемы.
#define SpeedTest // Тест на скорость работы.

#ifdef FuncTest
#define logicDelay 300 // Время ожидания прохождения сигналов по всей релейной логической схеме.
#define cycleDelay 2000 // Задержка между шагами цикла.
#endif // FuncTest

#ifdef SpeedTest
#define plusDelta 1 // Значение на сколько миллисекунд нужно увеличивать currDelay.
#define minusDelta 10 // Значение на сколько миллисекунд нужно уменьшать currDelay.
#define startDelay 300 // Стартовое значение currDelay.
#define CycleMaxSpeedCountMax 100 // Максимальное количество циклов при максимальной скорости работы без ошибок.
bool errFound; // = False - ни одной ошибки с начала работы программы не было найдено; = True - ошибки были.
int currCycleMaxSpeedCountMax; // Текущее значение CycleMaxSpeedCountMax.
#endif // SpeedTest

int currDelay; // Текущее значение времени ожидания прохождения сигналов по всей релейной логической схеме.

int x0 = 2; // Пин 2.
int x1 = 3; // Пин 3.
int x2 = 4; // Пин 4.
int x3 = 5; // Пин 5.
int y3 = 6; // Пин 6.

byte xxxx; // x0, x1, x2, x3, представленные одним байтом, где x3 - младший бит 0, x0 - бит 3.

int currErrorsCount; // Счетчик количества ошибок в текущем цикле.
int totalErrorsCount; // Счетчик общего количества ошибок с начала запуска программы.
int currCycleCount; // Текущее значение цикла.

void setup() {
pinMode(x0, OUTPUT);
pinMode(x1, OUTPUT);
pinMode(x2, OUTPUT);
pinMode(x3, OUTPUT);
pinMode(y3, INPUT);

xxxx = 0;
totalErrorsCount = 0;
currCycleCount = 0;

#ifdef FuncTest
currDelay = logicDelay;
#endif // FuncTest

#ifdef SpeedTest
currDelay = startDelay;
errFound = false;
currCycleMaxSpeedCountMax = 0;
#endif // SpeedTest

Serial.begin(9600); // Для вывода результатов работы схемы.
Serial.println("Program Start");
}

void loop() {
if (xxxx == 0) {
#ifdef SpeedTest
if (currCycleMaxSpeedCountMax == 0) {
#endif // SpeedTest
Serial.println("");
Serial.print("Start Cycle N ");
Serial.print(currCycleCount, DEC);
Serial.print(". Current Delay ");
Serial.println(currDelay, DEC);
#ifdef SpeedTest
}
#endif // SpeedTest
currErrorsCount = 0;
}

#ifdef FuncTest
// Вывод текущего значения входных сигналов x0, x1, x2, x3.
Serial.print("xxxx = ");
Serial.print(xxxx, HEX);
Serial.print(" ");
#endif // FuncTest

setX0123(xxxx); // Установить новое значение входных сигналов релейной логической схемы.
delay(currDelay); // Время ожидания прохождения сигналов по всей релейной логической схеме.

switch (xxxx) {
case 0x0:
resultPrint(digitalRead(y3), HIGH);
break;
case 0x1:
resultPrint(digitalRead(y3), HIGH);
break;
case 0x2:
resultPrint(digitalRead(y3), HIGH);
break;
case 0x3:
resultPrint(digitalRead(y3), LOW);
break;
case 0x4:
resultPrint(digitalRead(y3), HIGH);
break;
case 0x5:
resultPrint(digitalRead(y3), HIGH);
break;
case 0x6:
resultPrint(digitalRead(y3), HIGH);
break;
case 0x7:
resultPrint(digitalRead(y3), LOW);
break;
case 0x8:
resultPrint(digitalRead(y3), HIGH);
break;
case 0x09:
resultPrint(digitalRead(y3), HIGH);
break;
case 0xa:
resultPrint(digitalRead(y3), HIGH);
break;
case 0xb:
resultPrint(digitalRead(y3), LOW);
break;
case 0xc:
resultPrint(digitalRead(y3), HIGH);
break;
case 0xd:
resultPrint(digitalRead(y3), LOW);
break;
case 0xe:
resultPrint(digitalRead(y3), HIGH);
break;
case 0xf:
resultPrint(digitalRead(y3), LOW);
break;
default:
break;
}

#ifdef FuncTest
delay(cycleDelay); // Задержка между шагами цикла.
#endif // FuncTest

// Инкремент входных сигналов x0, x1, x2, x3.
xxxx++;
if (xxxx > 0xf) {
xxxx = 0x0;

#ifdef SpeedTest
if (currCycleMaxSpeedCountMax == 0) {
#endif // SpeedTest
// Вывод количества обнаруженных ошибок.
Serial.print("Cycle Errors Count = ");
Serial.println(currErrorsCount, DEC);
Serial.print("Total Errors Count = ");
Serial.println(totalErrorsCount, DEC);
#ifdef SpeedTest
}
#endif // SpeedTest

#ifdef SpeedTest
if (errFound == true)
currCycleMaxSpeedCountMax++;
if (currCycleMaxSpeedCountMax >= CycleMaxSpeedCountMax) {
Serial.println("");
Serial.print("Delay ");
Serial.println(currDelay, DEC);
while (true) {};
}
if (errFound == false) {
if (currErrorsCount == 0) {
// Ускоряем работу логической схемы.
if (currDelay > 0) {
currDelay = currDelay - minusDelta;
}
}
}

if (currErrorsCount > 0) {
currCycleMaxSpeedCountMax = 0;
errFound = true;
// Замедляем работу логической схемы.
if (currDelay < startDelay) {
currDelay = currDelay + plusDelta ;
}
}
#endif // SpeedTest */

currErrorsCount = 0; // Обнуление количества ошибок цикла.
currCycleCount++; // Инкремент счетчика циклов.
}
}

// Функция вывода в терминал результата одной итерации.
// y3 - полученное из внешней схемы значение (HIGH или LOW).
// res - ожидаемое значение (HIGH или LOW).
void resultPrint(byte y3, byte res) {
if (y3 == res) {
#ifdef FuncTest
if (y3 == HIGH)
Serial.println("Ok: Y3 = 1");
else
Serial.println("Ok: Y3 = 0");
#endif // FuncTest
} else {
// Инкремент счетчиков ошибок.
currErrorsCount++;
totalErrorsCount++;
#ifdef FuncTest
if (y3 == HIGH)
Serial.println("Error: Y3 = 1");
else
Serial.println("Error: Y3 = 0");
#endif // FuncTest
}
}

// Функция вывода x0, x1, x2, x3 во внешнюю релейную логическую схему.
void setX0123(byte X0123) {
if ((X0123 & 0x1) == 0)
digitalWrite(x3, LOW);
else
digitalWrite(x3, HIGH);

if ((X0123 & 0x2) == 0)
digitalWrite(x2, LOW);
else
digitalWrite(x2, HIGH);

if ((X0123 & 0x4) == 0)
digitalWrite(x1, LOW);
else
digitalWrite(x1, HIGH);

if ((X0123 & 0x8) == 0)
digitalWrite(x0, LOW);
else
digitalWrite(x0, HIGH);
}


Из текста скетча видно, что нужно закомментировать первый #define и раскомментировать второй, либо сделать все наоборот для выбора одного из режимов работы схемы Logic1. Для контроля нужно в Arduino IDE запустить монитор порта на скорости 9600 бод.

siemensC35
09.05.2018, 21:28
Что-то я там принципиальной электрической схемы не углядел. Может быть плохо смотрел?
3 и 4 снизу

- - - Добавлено - - -

схема 67 года не канонічна, нужно 6ц21)

Patison
16.05.2018, 10:07
Сегодня праздник!!!. Открылся для движения легковых автомобилей Крымский Мост. Надо это отметить.

Все, что было описано выше в данной теме - только присказка.
Приступим к тому, для чего затевалась вся данная тема.
Из предыдущего материала видно, что логическая схема работает последовательно. Первыми срабатывают логические элементы, расположенные в самом начале части логической схемы Logic1. Затем, после небольшой задержки, обусловленной временем срабатывания реле этих логических элементов, на входе следующих логических элементов появляются правильные сигналы, которые через некоторое время преобразуются в выходные сигналы этих логических элементов. И так далее. Именно из-за такого последовательного принципа работы такая схема может выдать выходной сигнал только через время, требуемое для последовательного прохождения сигналов от самых дальних входов до выхода Y3. При этом суммарная задержка будет равна или больше сумм всех задержек в логических элементах при прохождении сигнала по наиболее длинному пути в схеме.

Давайте попробуем хотя бы частично преодолеть физические ограничения данного способа построения логических схем. Для этого вначале посмотрим, какие виды кодирования логического сигнала существуют.
1. Кодирование логической единицы с помощью высокого уровня напряжения любой полярности в единственном проводнике, а нуля с помощью нулевого уровня.
2. Кодирование логической единицы с помощью высокого положительного уровня напряжения в единственном проводнике, а нуля с помощию высокого отрицательного напряжения.
3. Кодирование логической единицы высоким положительным уровнем напряжения в первом проводнике и высоким отрицательным уровнем во втором проводнике. Кодирование логического нуля высоким отрицательным уровнем напряжения в первом проводнике и высоким положительным уровнем во втором проводнике.
4. Кодирование логической единицы высоким положительным уровнем напряжения в первом проводнике и нулевым уровнем во втором проводнике. Кодирование логического нуля нулевым уровнем напряжения в первом проводнике и высоким положительным уровнем во втором проводнике.
Разумеется, существуют и другие виды кодирования. Но нам пока будет достаточно перечисленных.

Выберем четвертый вариант. Изобразим релейные схемы логических элементов, основанных на двухпроводном кодировании.

Вот схема 2AND на реле с ее таблицей истинности:

http://zx-pk.ru/attachment.php?attachmentid=64986&d=1523621208

Схема 2OR:

http://zx-pk.ru/attachment.php?attachmentid=64987&d=1523621242

NOT:

http://zx-pk.ru/attachment.php?attachmentid=64988&d=1523621261

Для преобразования однопроводного кодирования согласно первого варианта в четвертый нам потребуется конвертор:

http://zx-pk.ru/attachment.php?attachmentid=64989&d=1523621301

Kakos_nonos
16.05.2018, 20:23
Я тоже рисовал такие схемы, интересовался релейными компьютерами, много листов изрисовал :-)
Для меня камнем преткновения была организация адресной шины, и адресного регистра, ведь его надо уметь инкрементировать и устанавливать, если jmp.
Больше всего мне нравился релейный компьютер tim8, у него всего 130 реле, при этом у него полноценное АЛУ (правда, последовательное, то есть 8 команд надо выполнить, чтоб сложить два числа), он может делать циклы и прочие штуки (Программа находится на бумаге, которая ходит туда-сюда)
На 3:36 тест

https://www.youtube.com/watch?v=nDJTVGIzOPU

- - - Добавлено - - -

Компьютеры на релюшках - уже усталело, вот новый тренд - компьютер на ПЗУшках :-) Сорри за оффтоп :-)

https://www.youtube.com/watch?v=J94FavGqvCQ

Patison
02.06.2018, 09:48
Что-то устал я от праздников. Точнее от их количества.
Поэтому сегодня просто изображу схему, которую собираюсь построить на основе вышеописанных модулей.
Это схема Logic1 2, которая имеет точно такую же таблицу истинности, как и Logic1:

http://zx-pk.ru/attachment.php?attachmentid=64990&d=1523621350

Схема предполагается двухтактной. В первом такте на входные цепи одновременно подаются все исходные аргументы.
После суммарной задержки, примерно равной максимальной задержке срабатывания самого медленного модуля
во втором такте управляющий компьютер должен считать результат с выхода Y3.

JV-Soft
03.06.2018, 15:24
https://spectrum.ieee.org/geek-life/hands-on/recreating-the-first-flipflop

Reobne
05.06.2018, 09:26
Тема забавная! Слежу. :)

В схеме Logic1 2 двойной сигнал проходит сквозь цепочку логических элементов без ветвлений. Что будет, если мы уберём диоды из нутров элементов? А ничего не изменится. Диоды нужны только там, где сигнал разветвляется.

Нашёл небольшую помарку. (см. картинку)