Лекция 06. «Железная» логика компьютера - 2
Мочли и Экерт и ЭНИАК, фон Нейман и архитектура компьютера, Лаплас, Буль и двоичная логика, Цузе и Z3, Шеннон и релейная логика, Эклс, Джордан и триггер.
Машина «Эниак» предназначалась для вычисления баллистических таблиц, в которых остро нуждалась армия США во время второй мировой войны. Такие таблицы давали артиллеристам возможность выбрать надлежащий угол вертикальной наводки орудия при заданном расстоянии до цели и определенном весе снаряда с учетом атмосферных условий и скорости ветра. При использовании электромеханического настольного арифмометра квалифицированный специалист затрачивал на вычисление одной траектории около трех дней, а для каждой комбинации орудия и снаряда требовалось 2-4 тыс. таких расчетов. В конце 1945 г., когда Эниак ENIAC был наконец собран, он успешно выдержал испытания, обработав около миллиона перфокарт фирмы IBM. По своим размерам (около 6 м в высоту и 26 м в длину) этот компьютер более чем вдвое превосходил Марк-1 Говарда Эйкена и тысячекратно превосходил в быстродействии.
Главным недостатком компьютера Эниак были трудности, возникавшие при изменении вводимых в него инструкций, т. е. программы. Объема внутренней памяти машины едва хватало для хранения числовых данных, используемых в расчетах. Это означало, что для выполнения другой программы приходилось подсоединять и отсоединять сотни контактов, как на ручном телефонном коммутаторе (пререпрограммировать = перекоммутировать). Надо было переключить сотни кабелей, и придумывали, в какие положения установить примерно 6 тыс. тумблеров и переключателей. В зависимости от сложности программы такая работа занимала от нескольких часов до двух дней. Это было достаточно веским аргументом, чтобы отказаться от попыток использовать Эниак в качестве универсального компьютера. Среди первых программистов машины «Эниак» созданной в Высшем техническом училище Пенсильванского университета, была математик Кэтлин Макналти Группой программирования для ENIAC руководила бывшая учительница математики Адель Кац (Гольдштейн) – жена Германа Голдстейна. Адель Гольдштейн была первой программисткой в современном понимании, она же написала руководство по эксплуатации ENIAC и подготовила первую группу программисток из шести человек (тогда считалось, что программирование — занятие женское).
В конце 1944 г., когда Мочли и Экерт трудились над машиной Эдвак, способной хранить про граммы в памяти, на помощь им был направлен консультант Джону фон Нейман.
Попросил его подключиться к работе сам Герман Голдстейн. Однажды (https://www.osp.ru/os/2008/06/5345473/) встречи фон Неймана с лейтенантом Германом Гольдштейном. Великий ученый и никому не известный лейтенант поздним вечером ждали прибытия поезда на железнодорожной платформе крошечного городка Абердин, известного лишь тем, что неподалеку находился артиллерийский полигон.
И вот, когда на платформе г. Абердин (рядом с которым был артиллерийский полигон) Голдстейн узнал в попутчике фон Неймана, чьи лекции о машине Тьюринга ему приходилось слышать, Гольдштейн решился обратиться к нему со своими проблемами.
Побывав несколько раз в Муровской школе и ознакомившись с положением дел, он сумел понять причины сложности программирования ENIAC и нащупал способы их преодоления. Фон Нейман осознал, что необходимо воспользоваться идеей машины Тьюринга, , а именно последовательное выполнение команд и программирование. Для этого следовало уравнять в правах программы и данные и перенести гипотетическую тьюринговскую бесконечную ленту с записанными на ней командами в оперативную память компьютера.
В процессе работы во время многочисленных дискуссий со своими коллегами Г. Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в статье «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства». Имя фон Неймана было достаточно широко известно в науке того времени, что отодвинуло на второй план его соавторов, и данные идеи получили название «принципы фон Неймана». Некоторые черты «архитектуры фон Неймана» рассмотрим ниже.
Первым пунктом стояло использование двоичных чисел вместо десятичных.
Двоичная система исчисления Первым написал о двоичной системе счисления Готфрид Лейбниц в середине 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. Для перевода двоичного числа в десятичное следует воспользоваться таблицей ряда двоек, возведенных в степени, соответствующие разряду
Для числа 35 имеем:
Для перевода десятичного числа в двоичное следует воспользоваться обратной процедурой: делить исходной число на 2 и регистрировать остатки от деления. Наличие остатка от деления на 2 в разряде i означает, что данное число больше 2i, т. е., что оно должно отображаться цифрой 1. Округленный (без остатка) результат деления вновь делиться на 2 и новый результат оценивается на наличие остатка. Процедура повторяется до числа 1 (остаток 1). После проведения операции цепочка цифр 0 и 1 переписывается в обратном порядке – это и есть двоичное число. Для числа 35 имеем: 35/ 2 = 17 (16+1); 17 / 2 = 8.5 (8+1) ...
Результат пример вид 3510 = 1000112. |
Самое любопытное в истории компьютера состоит в том, что она представляет собой не серию, а древо событий. Независимо от американцев компьютер создавался в Германии. Одним из самых ярких примеров является компьютер Z3 Конрада Цузе. При этом он уже применил двоичную систему кодирования.
Конрад Цузе прежде все-го был гражданским инженером, и начал создавать компьютеры для облегчения своей профессиональной деятельности – расчеты в авиапромышленной компании 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.
Сложное суждение, образованное в результате логического сложения (дизъюнкции), истинно только тогда, когда истинно хотя бы одно из входящих в него простых суждений F = A v B.
Логическое отрицание (инверсия) делает истинное высказывание ложным, а ложное – истинным: для A инверсия равна F = Ā.
Составное высказывание. образованное с помощью операции логического следования (импликации), ложно только тогда, когда из истинной предпосылки (первого суждения) следует ложный вывод (второй суждение). F = A B.
Составное высказывание. образованное с помощью операции логического эквивалентности, истинно только тогда, когда оба суждения одинаковы (либо истинны, либо ложны) F = A = B.
В строгом математическом смысле булевой алгеброй называется непустое множество A с двумя бинарными операциями & (аналог конъюнкции), v (аналог дизъюнкции), унарной операцией ˉ (аналог отрицания) и двумя выделенными элементами: 0 (или Ложь) и 1 (или Истина) такими, что для всех a, b и c из множества A верны следующие аксиомы:
|
Применение булевой алгебры в вычислительной технике обосновал Клод Шеннон.
В 1932 году Шеннон был зачислен в Мичиганский университет, где выбрал курс, посещая который начинающий ученый познакомился с работами Джорджа Буля. В 1936 г. Клод оканчивает Мичиганский университет, получив степень бакалавра по двум специальностям математика и электротехника, и устраивается в Массачусетский технологический институт, где он работал ассистентом-исследователем на дифференциальном анализаторе Ванневара Буша — аналоговом компьютере. Изучая сложные, узкоспециальные электросхемы дифференциального анализатора, Шэннон увидел, что концепции Буля могут получить достойное применение. Символический анализ релейных и переключательных схем в MIT, в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. Статья, написанная с его магистерской работы 1937 года «Символический анализ реле и коммутаторов», была опубликована в 1938 году в издании Американского института инженеров-электриков (AIEE). Она также стала причиной вручения Шэннону премии Американского института инженерии имени Альфреда Нобеля в 1940 году. Говард Гарднер из Гарвардского университета отозвался о работе Шэннона, как о «возможно, самой важной, а также самой известной магистерской работе столетия». Цифровые цепи — это основа современной вычислительной техники, таким образом результаты его работ являются одними из наиболее важных научных результатов ХХ столетия. На диссертации Шеннона по существу основана вся современная цифровая техника.
Позже Шеннон работает над докторской диссертацией «Алгебра для теоретической генетики» по математике в MIT в рамках совместных биологических работ по генетике. В период с 1941 по 1956 гг. Шеннон преподает в Мичиганском университете и работает в компании Белл (Bell Labs). С началом Второй мировой войны Шеннон работал над устройствами, засекавшими самолеты противника и нацеливавшими зенитные установки, также он разрабатывал криптографические системы, в том числе и правительственную связь, которая обеспечивала переговоры Черчилля и Рузвельта через океан. Как говорил сам Шеннон, работа в области криптографии подтолкнула его к созданию теории информации. С 1950 по 1956 Шеннон занимался созданием логических машин, таким образом, продолжая начинания фон Неймана и Тьюринга. Он создал машину, которая могла играть в шахматы. В 1952 Шеннон создал обучаемую машину поиска выхода из лабиринта. Шеннон уходит на пенсию в возрасте пятидесяти лет в 1966 году.
Смысл работы «Символический анализ реле и коммутаторов» состоял в том, что Шенном предложил «вычислять» электрические сети связи, используя язык формальной двоичной логики – булевой алгебры. Некоторые цитаты показывают путь решения проблемы конструирования компьютера.
«Метод подхода к решению поставленных проблем может быть кратко описан следующим образом. Любая схема представляется в виде системы уравнений, составленных из символов, соответствующих различным реле и переключателям схемы. Разрабатывается аппарат для преобразования этих уравнений с помощью простых математических приемов, большинство из которых подобно обычным алгебраическим алгоритмам. Показывается, что этот аппарат в точности аналогичен исчислению высказываний символической логики. Для синтеза схемы заданные условия сначала записываются в виде системы уравнений, затем уравнения преобразуются к виду, соответствующему простейшей схеме. Тогда схема может быть получена непосредственно из уравнений....
Ограничим наше исследование схемами, содержащими только контакты реле и переключателей. Такие схемы между любыми двумя своими полюсами в каждый момент времени либо замкнуты (нулевое сопротивление), либо разомкнуты (бесконечное сопротивление). Контакты реле или переключателей изображаются в схемах, как показано на рис. 1, где буквы — это соответствующие функции сопротивления.
Такой выбор символики делает операции над сопротивлениями очень похожими на обычные алгебраические преобразования. Очевидно, что при приведенных выше определениях справедливы следующие постулаты.
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)
В компьютере логические элементы воплощены в «железо» с помощью реле – переключателей. Прежде механические реле заменили электронные лампы, затем транзисторы и, наконец, компоненты микросхем и интегральных микросхем.
Выше было показано, что электромеханическое реле - это катушка с якорем (ползающим сердечником). При подведении электрического тока сердечник втягивается в катушку и замыкает нужный электрический контур. Для элемента НЕ нужно только одно реле, подключающее или отключающее контакты. Для элементов И, ИЛИ требуется по два реле с разными схемами контактов.
ИЛИ
И
Основная задача компьютера состоит в том, чтобы сохранять значение 0 или 1 в памяти независимо от тог, есть ли на входе логического элемента напряжение или нет. На этой способности основана память компьютера и регистры процессора. Функцию хранения единицы информации берет на себя логическое устройство – триггер.
Схему переключающего устройства, имеющего два устойчивых рабочих состояния, впервые предложил 1918 году М. А. Бонч-Бруевич под названием «катодное реле». Независимо от него в 1919 г. английские физики Вильяма Генри Эклса и Ф. В. Джордана разработали электрическую схему, сохраняющую информацию. Схема с обратной связью и двумя устойчивыми состояниями (0 и 1) называется триггером (flip-flop, trigger – гашетка, спусковой крючок). Триггер представляет собой электронное реле, он содержит 2 лампы (или диода) и в каждый момент может находиться в одном из двух устойчивых состояний.
Триггер как логическое устройство построен из 4 логических элементов – двух ИЛИ и двух НЕ.
В исходном состоянии на входы R (reset, сброс) и S (set, установить) поданы сигналы 0 и 0. На выходе Q (quit, выход) также регистрируется 0. Однако если на вход S подать сигнал 1, то выход станет равным 1. Если убрать сигнал 1 со входа S, то все равно на входе останется 1. Повторные подачи сигнала ничего не меняют. Если же подать 1 на вход R, то выход обнулиться (одновременно подавать на входы две единицы запрещено, такой сигнал не проходит). Таким образом триггер и хранит одну единицу (1 бит) информации. На обслуживание триггера требуется 6 полупроводниковых реле.
15 12 2014
1 стр.
17 12 2014
1 стр.
16 12 2014
1 стр.
26 09 2014
1 стр.
13 10 2014
1 стр.
12 10 2014
1 стр.
11 10 2014
1 стр.
11 10 2014
1 стр.