1 Информатика 06 Лекция 06. «Железная» логика компьютера - 2 Ключевые слова настоящей лекции Мочли и Экерт и ЭНИАК, фон Нейман и архитектура компьютера, Лаплас, Буль и двоичная логика, Цузе и Z3, Шеннон и релейная логика, Эклс, Джордан и триггер. В то же самое время, когда шло строительство МАРК-1, на базе Пристонского университета Джон У. Мочли и Дж. Преспер Экерт стали создавать компьютер нового типа – на электронных лампах. В августе 1942 г. Мочли написал заявку на финансирование проекта, которое поначалу не выделили. Однако прикомандированный к Высшему училищу (Муровскую школу) при университете лейтенант Герман Голдстейн случайно услышал об этой идее. Один из коллег показал ему статью «Использование высокоскоростных электронных ламп для вычислительных устройств» (The Use of High Speed Vacuum Tube Devices for Calculating). Ее написал в 1942 году сотрудник Муровской школы Джон Мочли (сегодня Moore School of Electrical Engineering входит в состав университета штата Пенсильвания). В то время армия крайне нуждалась в новых баллистических таблицах. Голдстейн, до войны преподававший математику в Мичиганском университете. Оценив идею, он помог провести проек при поддержке военного командования. 9 апреля 1943 г. армия заключила с училищем контракт на 400 тыс. долл., предусматривающий создание компьютера Эниак (ENIAC, аббревиатура от Electronic Numerical Integrator and Computer – электронный цифровой интегратор и вычислитель),. Группа выросла до 50 человек. Конструкция машины содержала 17468 ламп, поскольку Эниак должен был работать с десятичными числами, чтобы по словам Мочли «машина была понятна человеку». Однако 17 тыс. ламп, одновременно работающих с частотой 100 тыс. импульсов в секунду, ежесекундно возникало 1,7 млрд. ситуаций, в которых хотя бы одна из ламп могла не сработать. Экерт разрешил эту проблему, подавая несколько меньшее напряжение, и количество аварий снизилось до одной-двух в неделю. В ENIAC'е 10 вакуумных триодов соединялись в кольцо, образуя десятичный счетчик (который исполнял роль счетного колеса механической машины), 10 таких колец плюс 2 триггера для представления знака образовывали запоминающий регистр. Всего ENIAC имел 20 регистров, каждый из которых было снабжен схемой передачи десятков и мог быть использован для операций суммирования и вычитания. Другие арифметические операции выполнялись в специализированных блоках. Числа передавались из одной части машины в другую посредством 11 проводников, по одному для каждого десятичного разряда и для знака. Значение передаваемой цифры равнялось числу импульсов, прошедших по данному проводнику. Работой отдельных блоков машины управлял задающий генератор, который определял последовательность тактовых и синхронизирующих импульсов, эти импульсы "открывали" и "закрывали" соответствующие электронные блоки машины. Ввод чисел в машину производился с помощью перфокарт, а последовательность выполнения операций задавалась с помощью курбелей и коммутационных полей, как на АТС. Машина «Эниак» предназначалась для вычисления баллистических таблиц, в которых остро нуждалась армия США во время второй мировой войны. Такие таблицы давали артиллеристам возможность выбрать надлежащий угол вертикальной наводки орудия при заданном расстоянии до цели и определенном весе снаряда с учетом атмосферных условий и ско- 2 рости ветра. При использовании электромеханического настольного арифмометра квалифицированный специалист затрачивал на вычисление одной траектории около трех дней, а для каждой комбинации орудия и снаряда требовалось 2-4 тыс. таких расчетов. В конце 1945 г., когда Эниак ENIAC был наконец собран, он успешно выдержал испытания, обработав около миллиона перфокарт фирмы IBM. По своим размерам (около 6 м в высоту и 26 м в длину) этот компьютер более чем вдвое превосходил Марк-1 Говарда Эйкена и тысячекратно превосходил в быстродействии. Главным недостатком компьютера Эниак были трудности, возникавшие при изменении вводимых в него инструкций, т. е. программы. Объема внутренней памяти машины едва хватало для хранения числовых данных, используемых в расчетах. Это означало, что для выполнения другой программы приходилось подсоединять и отсоединять сотни контактов, как на ручном телефонном коммутаторе (пререпрограммировать = перекоммутировать). Надо было переключить сотни кабелей, и придумывали, в какие положения установить примерно 6 тыс. тумблеров и переключателей. В зависимости от сложности программы такая работа занимала от нескольких часов до двух дней. Это было достаточно веским аргументом, чтобы отказаться от попыток использовать Эниак в качестве универсального компьютера. Среди первых программистов машины «Эниак» созданной в Высшем техническом училище Пенсильванского университета, была математик Кэтлин Макналти Группой программирования для ENIAC руководила бывшая учительница математики Адель Кац (Гольдштейн) – жена Германа Голдстейна. Адель Гольдштейн была первой программисткой в современном понимании, она же написала руководство по эксплуатации ENIAC и подготовила первую группу программисток из шести человек (тогда считалось, что программирование — занятие женское). В конце 1944 г., когда Мочли и Экерт трудились над машиной Эдвак, способной хранить про граммы в памяти, на помощь им был направлен консультант Джону фон Нейман. Джон фон Нейман (англ. John von Neumann; или Иоганн фон Нейман, нем. Johann von Neumann; при рождении Янош Лайош Нейман, 28 декабря 1903, Будапешт - 8 февраля 1957, Вашингтон) - венгро-американский математик, сделавший важный вклад в квантовую физику, квантовую логику, функциональный анализ, теорию множеств, информатику, экономику и другие отрасли науки. применением теории операторов к квантовой механике, создатель теории игр и концепции клеточных автоматов. Он был необыкновенно одарённым ребёнком. Уже в 6 лет он мог разделить в уме два восьмизначных числа и беседовать с отцом на древнегреческом. Попросил его подключиться к работе сам Герман Голдстейн. Однажды (http://www.osp.ru/os/2008/06/5345473/) встречи фон Неймана с лейтенантом Германом Гольдштейном. Великий ученый и никому не известный лейтенант поздним вечером ждали прибытия поезда на железнодорожной платформе крошечного городка Абердин, известного лишь тем, что неподалеку находился артиллерийский полигон. И вот, когда на платформе г. Абердин (рядом с которым был артиллерийский полигон) Голдстейн узнал в попутчике фон Неймана, чьи лекции о машине Тьюринга ему приходилось слышать, Гольдштейн решился обратиться к нему со своими проблемами. Побывав несколько раз в Муровской школе и ознакомившись с положением дел, он сумел понять причины сложности программирования ENIAC и нащупал способы их преодоления. Фон Нейман осознал, что необходимо воспользоваться идеей машины Тьюринга, , а именно последовательное выполнение команд и программирование. Для этого следовало уравнять в правах программы и данные и перенести гипотетическую тьюринговскую бесконечную ленту с записанными на ней командами в оперативную память компьютера. В процессе работы во время многочисленных дискуссий со своими коллегами Г. Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в статье «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства». Имя фон Неймана было достаточно широко известно в науке того времени, что отодвинуло 3 на второй план его соавторов, и данные идеи получили название «принципы фон Неймана». Некоторые черты «архитектуры фон Неймана» рассмотрим ниже. Первым пунктом стояло использование двоичных чисел вместо десятичных. Двоичная система исчисления Первым написал о двоичной системе счисления Готфрид Лейбниц в середине 17 века. Возможно, предметное воплощение десятичной системы в конструкцию своего арифмометра заставило Лейбница подумать о том, что хорошо было бы, если число разрядов барабана было меньше, чем 10, – 5, 3, 2. Так или иначе, но Готфрид Лейбниц первым описал двоичную систему счисления с цифрами 0 и 1, на которой основана современная компьютерная техника. Вначале следует сказать о римской непозиционной системе, когда значение числа определялось только видом символа, а общее значение было равно сумме чисел, обозначенных символами. I, V, X, L, C, B, M = 1, 5, 10, 50, 100, 500, 1000. Если меньший по значению символ ставился перед большим, это означало вычитание из большего. 35 = XXXV, 2010 г. = ММХ, 1991 г. = ХММI. В арабской позиционной системе написания чисел положение цифры (символа) в записи числа изменяло ее количественное значение. Десятичная система соотносит положение цифры (разряд) с числом 10. При этом цифра a принимает значения от 0 до 9, всего 10 символов. Например, 5 в первой справа позиции означает 5, а во второй – уже 50. Обобщенно десятичное число можно записать как сумму произведения цифры на основание 10 в степени, равной ее позиции (разряду): ... + a5∙105 + a4∙104 + a3∙103 + a2∙102 + a1∙101 + a0∙100 Число 35 имеет числа в первой и второй позиции и будет выглядеть как a1∙101 + a0∙100 = 3∙101 + 5∙100 = 30 + 5 = 35. Двоичная система счисления отличается от десятичной только тем, что для приведенной формулы берется основание 2, т. е. числа а принимают только два значения (два символа) – 0 и 1. Формат двоичного числа таков: ... + a5∙25 + a4∙24 + a3∙23 + a2∙22 + a1∙21 + a0∙20. Десятичное число 35 в двоичной системе примет вид 100011. ... + 1∙25 + 0∙24 + 0∙23 + 0∙22 + 1∙21 + 1∙20 = 32 + 0 + 0 + 0 + 2 + 1 = 35. Для перевода двоичного числа в десятичное следует воспользоваться таблицей ряда двоек, возведенных в степени, соответствующие разряду число, аi … разряд i … 5 4 3 2 1 0 i значение 2 … 32 16 8 4 2 1 Для числа 35 имеем: число, аi … 1 0 0 0 1 1 результат Σ разряд i … 5 4 3 2 1 0 i значение 2 … 32 16 8 4 2 1 аi ∙ 2i … 32 0 0 0 2 1 35 Для перевода десятичного числа в двоичное следует воспользоваться обратной процедурой: делить исходной число на 2 и регистрировать остатки от деления. Наличие остатка от деления на 2 в разряде i означает, что данное число больше 2i, т. е., что оно должно отображаться цифрой 1. Округленный (без остатка) результат деления вновь делиться на 2 и новый результат оценивается на наличие остатка. Процедура повторяется до числа 1 (остаток 1). После проведения операции цепочка цифр 0 и 1 переписывается в обратном порядке – это и есть двоичное число. 4 Для числа 35 имеем: 35/ 2 = 17 (16+1); 17 / 2 = 8.5 (8+1) ... число 35 17 8 4 2 1 делитель 2 2 2 2 2 2 результат 17 8 4 2 1 1 остаток 1 1 0 0 0 1 Результат пример вид 3510 = 1000112. Самое любопытное в истории компьютера состоит в том, что она представляет собой не серию, а древо событий. Независимо от американцев компьютер создавался в Германии. Одним из самых ярких примеров является компьютер Z3 Конрада Цузе. При этом он уже применил двоичную систему кодирования. Конрад Цузе (Konrad Zuse) (22.06.1910 - 18.12.1995) был первым, кто объединил двоичное исчисление, двоичную алгебру и телефонные релейные переключатели и создал первую программируемую вычислительную машину. В 1936 году он устроил на квартире родителей "мастерскую", в которой через два года завершил постройку машины, занимавшую площадь 4 кв.м., названную Z1. Это была полностью механическая программируемая цифровая машина. Это был двоичный механический вычислитель с электрическим приводом и ограниченной возможностью программирования при помощи клавиатуры. Z1 была механической и использовалась лишь для опытов. Затем Цузе вместе с несколькими друзьями построил первый в мире электронный программируемый калькулятор, Z3 ( использовал электромагнитные телефонные реле) Результат вычислений в десятичной системе отображался на ламповой панели. Машина работала с числами с плавающей запятой, преобразовывала десятичные числа в двоичные и наоборот, а также «понимала» ввод/вывод данных. Ввод данных осуществлялся при помощи перфоленты, изготовленной приятелем Цузе из кинопленки. На таких же реле было реализовано и устройство хранения данных. Их общее количество составляло около 2200. Порядок вычислений можно было выбрать заранее, однако условные переходы и циклы отсутствовали. Тактовая частота Z3 составляла 5,33 Гц. Машину представил вниманию научной общественности 12 мая 1941 года (главным отличием от первой машины Z1 (1938) была возможность вычисления квадратного корня). Американский компьютер «ЭНИАК» был создан на 4 года позже Z3. Машина Z3 была значительно меньше машины Марк-1 Эйкена и гораздо дешевле в производстве. Z3 хранила в оперативной памяти целых 64 машинных слова по 22 бита каждое. Z3 использовался для расчётов, связанных с конструированием самолётов и управляемых ракет немецким Исследовательским институтом аэродинамики (нем. Aerodynamische Versuchsanstalt). Единственный образец компьютера вместе с другими ранними разработками Цузе был уничтожен во время налёта союзнической авиации в 1945 году. В 1942 г. Цузе предложил создать Z4 (заменив телефонные реле вакуумными электронными лампами для повышения надежности) Предполагалось, что новый компьютер можно будет использовать для криптографии и расшифровки закодированных сообщений. Однако в связи с тем, что Гитлер запретил долговременные научные разработки в годы войны, предложение инженеров отклонили. Весной 1945 г. появилась улучшенная версия — Z4. Однако логическая структура у обеих моделей (Z1 и Z3) была одинакова. Чуть ранее частично законченный Z4 был погружен на подводу и перевезён в безопасное место в баварской деревне. Другим экстраординарным достижением К.Цузе был первый алгоритмический язык программирования Планкалкюль (Plankalkuel — от plan calculus) (прообраз современных CAD), разработанный им в 1945–1946 гг. В сентябре 1950 года Z4 был, наконец, закончен и поставлен в ETH Zürich. В 1960 году компанией Zuse KG была выполнена реконструкция Z3, машина разме- 5 щена в экспозиции «Немецкого музея» в Мюнхене(Германия).. В то время он был единственным работающим компьютером в континентальной Европе и первым компьютером в мире, который был продан. В этом Z4 на пять месяцев опередил Марк I и на десять UNIVAC. Конрад Цузе прежде все-го был гражданским инженером, и начал создавать компьютеры для облегчения своей профессиональной деятельности – расчеты в авиапромышленной компании Henshel. В 1946 году Цузе организовал коммерческую компанию по производству компьютеров «Инженерная служба Цузе в Хопферау» (нем. Zuse-Ingenieurbüro Hopferau). Венчурный капитал был получен от Швейцарской высшей технической школы и компании IBM. В 1949 г. на основал фирму Zuse KG в городе Нойкирхене (Neukirchen). Она разрабатывала программно-управляемые электромеханические компьютеры. В 1956-м фирма была куплена концерном Siemens AG. К этому моменту у Цузе работало уже 1500 сотрудников. В Siemens Цузе был тем, что теперь называют ведущим научным сотрудником. Цузе и его компанией были построены и другие компьютеры. Наиболее известны машины Z11, продававшийся предприятиям оптической промышленности и университетам, и Z22 — первый компьютер с памятью на магнитных носителях. Второй из принятых фон Нейманом принципов организации компьютера состояла в том, что поле для хранения и распространения данных и команд должно быть одно. Это значит, что команды должны также выражены в двоичных терминах – соответствовать двоичной логике. Математические основы двоичной логики разработаны английским математиком 200 лет назад. Булева алгебра Джордж Буль (George Boole; 1815, Линкольн —1864, Баллинтемпл) — английский математик и логик. Буль умер на пятидесятом году жизни от воспаления лёгких. В 1854 году английский математик Джордж Буль опубликовал знаковую работу, описывающую алгебраические системы применительно к логике, которая в настоящее время известна как Булева алгебра или алгебра логики. Эта булева алгебра наиболее часто используется в логике, так как является точной моделью классического исчисления высказываний. Выражения, содержащие булевы операции и переменные, представляют собой высказывательные формы. Понятие – это форма мышления, Фиксирующая существенные признаки объекта (с точки зрения исследователя). Суждение (высказывание) – это форма мышления, в которой что-то утверждается о свойствах реальных предметов, поэтому высказывание может быть истинным или ложным. Ложное суждение утверждает то, чего нет в действительности. Простые суждения состоят из двух частей – субъекта (предмета мысли) и предиката (основного свойства, на которое падает логически акцент). Сложные суждения состоят из нескольких простых суждений, соединенных разными пропозициональными союзами – конъюнкции (логическое умножение), дизъюнкции (логическое сложение), отрицанием, импликации (логическое условие), эквивалентности (равенство). В алгебре высказываний простые суждение обозначаются именами переменных (a, b .. A, B..), которые могут принимать лишь два. значения – 0 «Ложь» и 1 («Истина»). Сложные суждения образуются при соединении простых суждений знаками бинарных операций: –, &, V, . Сложное (составное) высказывание. образованное в результате операции логического умножения (конъюнкции), истинно только тогда, когда истинны все входящие в него простые высказывания F = A & B. A 0 0 1 1 B 0 1 0 1 A&B 0 0 0 1 0 1 0 0 0 1 0 1 6 Сложное суждение, образованное в результате логического сложения (дизъюнкции), истинно только тогда, когда истинно хотя бы одно из входящих в него простых суждений F = A v B. A 0 0 1 1 B AvB 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 Логическое отрицание (инверсия) делает истинное высказывание ложным, а ложное – истинным: для A инверсия равна F = Ā. A Ā 0 1 1 0 Составное высказывание. образованное с помощью операции логического следования (импликации), ложно только тогда, когда из истинной предпосылки (первого суждения) следует ложный вывод (второй суждение). F = A B. A 0 0 1 1 B AB 0 1 1 1 0 0 1 1 Составное высказывание. образованное с помощью операции логического эквивалентности, истинно только тогда, когда оба суждения одинаковы (либо истинны, либо ложны) F = A = B. A 0 0 1 1 B A=B 0 1 1 0 0 0 1 1 В строгом математическом смысле булевой алгеброй называется непустое множество A с двумя бинарными операциями & (аналог конъюнкции), v (аналог дизъюнкции), унарной операцией ˉ (аналог отрицания) и двумя выделенными элементами: 0 (или Ложь) и 1 (или Истина) такими, что для всех a, b и c из множества A верны следующие аксиомы: коммутативность avb=bva a&b=b&a ассоциативность a v (b v c) = (a v b) v c a & (b & c) = (a & b) & c законы поглощения a v (a & b) = a a & (a v b) = a дистрибутивность a v (b & c) = (a v b) & (a v c) a & (b v c) = (a & b) v (a & c) дополнительность avā=1 a&ā=0 Применение булевой алгебры в вычислительной технике обосновал Клод Шеннон. Клод Элвуд Шеннон (30 апреля 1916 — 24 февраля 2001) — американский математик и инженер. В 1932 году Шеннон был зачислен в Мичиганский университет, где выбрал курс, посещая который начинающий ученый познакомился с работами Джорджа Буля. В 1936 г. 7 Клод оканчивает Мичиганский университет, получив степень бакалавра по двум специальностям математика и электротехника, и устраивается в Массачусетский технологический институт, где он работал ассистентом-исследователем на дифференциальном анализаторе Ванневара Буша — аналоговом компьютере. Изучая сложные, узкоспециальные электросхемы дифференциального анализатора, Шэннон увидел, что концепции Буля могут получить достойное применение. Символический анализ релейных и переключательных схем в MIT, в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. Статья, написанная с его магистерской работы 1937 года «Символический анализ реле и коммутаторов», была опубликована в 1938 году в издании Американского института инженеров-электриков (AIEE). Она также стала причиной вручения Шэннону премии Американского института инженерии имени Альфреда Нобеля в 1940 году. Говард Гарднер из Гарвардского университета отозвался о работе Шэннона, как о «возможно, самой важной, а также самой известной магистерской работе столетия». Цифровые цепи — это основа современной вычислительной техники, таким образом результаты его работ являются одними из наиболее важных научных результатов ХХ столетия. На диссертации Шеннона по существу основана вся современная цифровая техника. Позже Шеннон работает над докторской диссертацией «Алгебра для теоретической генетики» по математике в MIT в рамках совместных биологических работ по генетике. В период с 1941 по 1956 гг. Шеннон преподает в Мичиганском университете и работает в компании Белл (Bell Labs). С началом Второй мировой войны Шеннон работал над устройствами, засекавшими самолеты противника и нацеливавшими зенитные установки, также он разрабатывал криптографические системы, в том числе и правительственную связь, которая обеспечивала переговоры Черчилля и Рузвельта через океан. Как говорил сам Шеннон, работа в области криптографии подтолкнула его к созданию теории информации. С 1950 по 1956 Шеннон занимался созданием логических машин, таким образом, продолжая начинания фон Неймана и Тьюринга. Он создал машину, которая могла играть в шахматы. В 1952 Шеннон создал обучаемую машину поиска выхода из лабиринта. Шеннон уходит на пенсию в возрасте пятидесяти лет в 1966 году. Смысл работы «Символический анализ реле и коммутаторов» состоял в том, что Шенном предложил «вычислять» электрические сети связи, используя язык формальной двоичной логики – булевой алгебры. Некоторые цитаты показывают путь решения проблемы конструирования компьютера. (К.Шеннон Работы по теории информации и кибернетике. Изд-во Иностранной литературы. Москва, 1963. http://www.twirpx.com/file/95371/ или http://information.nglib.ru/book_view.jsp?idn=005699&page=10&format=free). «Метод подхода к решению поставленных проблем может быть кратко описан следующим образом. Любая схема представляется в виде системы уравнений, составленных из символов, соответствующих различным реле и переключателям схемы. Разрабатывается аппарат для преобразования этих уравнений с помощью простых математических приемов, большинство из которых подобно обычным алгебраическим алгоритмам. Показывается, что этот аппарат в точности аналогичен исчислению высказываний символической логики. Для синтеза схемы заданные условия сначала записываются в виде системы уравнений, затем уравнения преобразуются к виду, соответствующему простейшей схеме. Тогда схема может быть получена непосредственно из уравнений.... Ограничим наше исследование схемами, содержащими только контакты реле и переключателей. Такие схемы между любыми двумя своими полюсами в каждый момент времени либо замкнуты (нулевое сопротивление), либо разомкнуты (бесконечное сопротивление). Контакты реле или переключателей изображаются в схемах, как показано на рис. 1, где буквы — это соответствующие функции сопротивления. 8 Такой выбор символики делает операции над сопротивлениями очень похожими на обычные алгебраические преобразования. Очевидно, что при приведенных выше определениях справедливы следующие постулаты. 1а. 0 ∙ 0 = 0 Замкнутая схема, соединенная параллельно с замкнутой схемой, есть замкнутая схема. 1b. 1 + 1 = 1 Разомкнутая схема, соединенная последовательно с разомкнутой схемой, есть разомкнутая схема. 2а. 1 + 0 = 0 + 1 = 1 Разомкнутая схема, соединенная последовательно с замкнутой схемой в любом порядке (т. е. разомкнутая схема справа или слева от замкнутой), есть разомкнутая схема. 2b. 0 ∙ 1 = 1 ∙ 0 = 0 Замкнутая схема, соединенная параллельно с разомкнутой схемой (в любом порядке), есть замкнутая схема. 3а. 0 + 0 = 0 Замкнутая схема, соединенная последовательно с замкнутой схемой, есть замкнутая схема. 3b. 1 ∙ 1 = 1 Разомкнутая схема, соединенная параллельно с разомкнутой схемой, есть разомкнутая схема. 4. В каждый момент либо X = 0, либо X = 1. Этих постулатов достаточно, чтобы вывести все теоремы, которые будут использованы в связи со схемами, образованными только из последовательных и параллельных соединений... Определим теперь новую операцию, которую назовем отрицанием. Отрицание сопротивления X обозначается через X' и определяется как переменная, равная 1, когда X равно 0, и равная О, когда X равно 1 . Если X — сопротивление замыкающего контакта реле, то X' — сопротивление размыкающего контакта того же реле». Если Буль перевел логику (слова) на язык математики, то Шеннон перевел на тот же язык электротехнику (устройства). К. Шеннон разработал способ реализации двоичных схем, собираемых из электронных реле, т. е. показал путь конструирования логических элементов компьютера. Вслед за Шенноном можно говорить о трех логических элементах – И, ИЛИ, НЕ. На вход элементов И, ИЛИ подается два сигнала, на выходе регистрируется один. Логический элемент И. Элемент НЕ имеет 1 вход и один выход. И, ИЛИ НЕ Работа каждого элемента соответствует таблице логических действий. Логический элемент И (умножение ) дает на выходе 1 только в случае, если на входе 1 и 1; в остальных случаях – выход 0. Логический элемент ИЛИ (сложение) дает на выходе 0 только в случае, если на входе 0 и 0; в остальных случаях – выход 1. Логический элемент НЕ (инверсия) дает на выходе 1, если на входе 0 и 0 – если 1. (практика с цифрами 0 и 1) В компьютере логические элементы воплощены в «железо» с помощью реле – переключателей. Прежде механические реле заменили электронные лампы, затем транзисторы и, наконец, компоненты микросхем и интегральных микросхем. Выше было показано, что электромеханическое реле - это катушка с якорем (ползающим сердечником). При подведении электрического тока сердечник втягивается в катушку и замыкает нужный электрический контур. Для элемента НЕ нужно только одно реле, подключающее или отключающее контакты. Для элементов И, ИЛИ требуется по два реле с разными схемами контактов. 9 ИЛИ НЕ И Основная задача компьютера состоит в том, чтобы сохранять значение 0 или 1 в памяти независимо от тог, есть ли на входе логического элемента напряжение или нет. На этой способности основана память компьютера и регистры процессора. Функцию хранения единицы информации берет на себя логическое устройство – триггер. Схему переключающего устройства, имеющего два устойчивых рабочих состояния, впервые предложил 1918 году М. А. Бонч-Бруевич под названием «катодное реле». Независимо от него в 1919 г. английские физики Вильяма Генри Эклса и Ф. В. Джордана разработали электрическую схему, сохраняющую информацию. Схема с обратной связью и двумя устойчивыми состояниями (0 и 1) называется триггером (flip-flop, trigger – гашетка, спусковой крючок). Триггер представляет собой электронное реле, он содержит 2 лампы (или диода) и в каждый момент может находиться в одном из двух устойчивых состояний. Триггер как логическое устройство построен из 4 логических элементов – двух ИЛИ и двух НЕ. S ИЛИ S НЕ ИЛИ Q ИЛИ R НЕ Q В исходном состоянии на входы R (reset, сброс) и S (set, установить) поданы сигналы 0 и 0. На выходе Q (quit, выход) также регистрируется 0. Однако если на вход S подать сигнал 1, то выход станет равным 1. Если убрать сигнал 1 со входа S, то все равно на входе останется 1. Повторные подачи сигнала ничего не меняют. Если же подать 1 на вход R, то выход обнулиться (одновременно подавать на входы две единицы запрещено, такой сигнал не проходит). Таким образом триггер и хранит одну единицу (1 бит) информации. На обслуживание триггера требуется 6 полупроводниковых реле. НЕ R НЕ ИЛИ 10 Упорядоченную последовательность триггеров, число которых соответствует числу разрядов в слове называется регистр. Это последовательностное логическое устройство, используемое для хранения n-разрядных двоичных слов (чисел) и выполнения преобразований над ними. С каждым регистром обычно связано комбинационное цифровое устройство, с помощью которого обеспечивается выполнение некоторых операций над «словами» компьютера. Фактически любое цифровое устройство можно представить в виде совокупности регистров, соединённых друг с другом при помощи комбинационных цифровых устройств.