Что придумали раньше двоичные системы или переходники
Троичный компьютер: Да, нет, может быть
В этом году мир мог бы отметить эпохальную дату — 60 лет назад было принято решение и начато проектирование Малой ЭВМ «Сетунь» — первого серийного троичного компьютера. Мог бы, но не будет, так как став первой, «Сетунь» стала и последней.
Прежде чем рассказывать о троичном компьютере, давайте немного разберемся в определениях. До конца 1930-х годов, до появления первого в мире релейного компьютера Конрада Цузе (Konrad Zuse) в Германии (www.drive2.ru/b/2506434/), был всплеск разработок аналоговых машин, продолжавшийся, по крайней мере в СССР, почти до начала 1970-х годов.
Аналоговая вычислительная машина (АВМ) – это устройство, решающее некоторый класс задач методом физического моделирования. АВМ могут быть механические, пневматические, гидравлические, электромеханические и электронные. Решение – это результаты измерения параметров процесса в виде отсчетов со шкал, графиков, выводимых на самописцы, электрических сигналов и т. д.
В общем подробнее тут — www.drive2.ru/b/2702749/
Нужно сказать, что достоинство АВМ – высокое быстродействие, но у них есть два плохих свойства: низкая точность и необходимость каждый раз придумывать и реализовывать аппаратно моделирующий процесс – занятие дорогое, требующее очень высокой квалификации.
Дискретные ЭВМ – электронные вычислительные машины или, как теперь говорят, цифровые – это компьютеры, в которых программы и данные представлены в цифровом виде (обычно в виде двоично-кодированных электрических сигналов). Они работали медленнее (особенно первые релейные и ламповые машины), но у них нет проблем с точностью – достаточно увеличить разрядность для представления чисел. Почему для функционирования цифровых компьютеров была выбрана двоичная система счисления? Прежде всего потому, что реализовать схему некоего переключателя, имеющего всего два состояния («включено» – «выключено», или «0» и «1»), гораздо проще, чем схему, в которой, скажем, три состояния. Кроме того, в XVIII веке была разработана булева алгебра, которая хорошо описывала работу схем, составленных из двоичных элементов. Короче говоря, все сложилось.
«Да» и «нет» не хватает
Однако если погрузиться в теорию, то у придуманной схоластами двоичной логики, т. е. логики, построенной на двух элементах (например, «истина» и «ложь»), есть глубокий недостаток: набор некоторых утверждений в ней приводит к парадоксам, то есть имеет противоречивое решение. От этого порока свободна троичная логика, которую исходно развивал великий гений древнего мира Аристотель. Естественно было попытаться сделать компьютер, реализующий троичную логику.
Итак, каждый разряд в троичной машине имеет не два, а три состояния («-1», «0» и «+1»). Все операции реализуются значительно проще и эффективней, чем в двоичных компьютерах. У такого компьютера есть и много других достоинств.
Николай Петрович Брусенцов: «В связи с тем, что при одной и той же точности представления чисел троичное слово в 1,6 раза короче двоичного, операции, подобные сложению, в троичном последовательном арифметическом устройстве выполняются в 1,6 раза быстрее, чем в двоичном. Благодаря наличию в этой системе “положительной” и “отрицательной” цифр, в коде числа нет особого разряда знака, что существенно упрощает логику арифметических операций. Операция сдвига в троичной системе счисления совмещает в себе функции таких разновидностей двоичного сдвига, как логический сдвиг, арифметический сдвиг без округления, арифметический сдвиг с округлением».
Справедливости ради сразу следует заметить: первую вычислительную машину с троичной системой счисления задолго до советских конструкторов построил английский изобретатель-самоучка Томас Фоулер в далеком 1840 году. Его машина была механической и полностью деревянной.
Томас Фоулер работал банковским служащим и по роду деятельности был вынужден производить сложные вычисления. Чтобы облегчить и ускорить свою работу, он сделал таблицы для счета степенями двойки и тройки, а позже опубликовал эти таблицы в виде брошюры.
Затем он пошел дальше, решив полностью автоматизировать расчеты по таблицам, и построил счетную машину. Английская патентная система того времени была несовершенна, предыдущее изобретение Фоулера (термосифон для систем парового отопления) было скопировано с минимальными изменениями и запатентовано множеством недобросовестных «изобретателей», поэтому, опасаясь, что его идею снова могут украсть, он решил изготовить машину в единственном экземпляре и — из дерева. Так как дерево — материал ненадежный, для обеспечения достаточной точности вычислений Фоулеру пришлось сделать машину весьма громоздкой, около 2 м в длину. Впрочем, как писал сам изобретатель в сопроводительной записке, отправляя машину в Лондонский королевский колледж, «если бы ее можно было изготовить из металла, она бы оказалась не больше пишущей машинки».
Машина Фоулера была проста, эффективна и использовала новаторский подход: вместо десятичной системы счисления оперировала «триадами», то есть степенями тройки. К сожалению, замечательное изобретение так и осталось незамеченным, оригинал машины не сохранился до наших времен, и о ее устройстве известно только из сочинения Фоулера-младшего, написавшего биографию отца.
Первые советские опыты
О практическом использовании троичной системы счисления забыли более чем на сто лет. Следующими, кто вернулся к этой идее, были инженеры с кафедры вычислительной математики механико-математического факультета МГУ.
Все началось в 1954 году: кафедре должны были передать электронно-вычислительную машину М-2, но не сложилось. А машину-то ждали, готовились ее устанавливать и налаживать, с нею связывались определенные ожидания и планы. И кто-то предложил: давайте построим свою.
Взяли — и построили, благо в то время в МГУ существовали некоторые теоретические наработки. Руководителем группы, осуществлявшей проектирование и изготовление машины, был назначен Николай Петрович Брусенцов.
Задача была такая: сделать машину предельно простой и недорогой (потому что никакого специального финансирования у проекта не было). Поначалу собирались делать двоичную ЭВМ, но позже — как раз из соображений экономичности и простоты архитектуры — пришли к решению, что она будет троичной, использующей «естественный» троичный симметричный код, простейший из симметричных кодов.
К концу 1958 года был закончен первый экземпляр машины, которой дали имя «Сетунь» — по названию московской речки. «Сетунь» была относительно невелика для вычислительных машин того поколения и занимала площадь 25−30 м2.
Благодаря своей изящной архитектуре она была способна выполнять 2000−4500 операций в секунду, обладала оперативной памятью в 162 девятитритных ячейки и запоминающим устройством на магнитном барабане емкостью 36−72 страницы по 54 ячейки каждая. Машинных команд было всего 27 (причем три так и остались невостребованными), благодаря чему программный код получался весьма экономным; программирование непосредственно в машинных кодах было настолько простым, что для «Сетуни» даже не разрабатывали свой ассемблер. Данные вводили в машину с перфоленты, результаты выводились на телетайп (причем, что любопытно, отрицательные цифры печатались как обычные, но перевернутые кверху ногами).
При эксплуатации машина показывала 95−98% полезного времени (расходуемого на решение задач, а не на поиск неисправностей и устранение неполадок), а в те времена очень хорошим результатом считалось, если машина могла дать хотя бы 60%.
На межведомственных испытаниях 1960 года машину признали пригодной для массового использования в КБ, лабораториях и вузах, последовало распоряжение о серийном выпуске «Сетуни» на Казанском заводе математических машин. С 1961 по 1965 год было построено 50 экземпляров, которые работали по всей стране.
Затем производство свернули. Почему перестали выпускать «Сетунь», если она успешно использовалась всюду от Калининграда до Якутска? Одна из возможных причин в том, что компьютер оказался слишком дешевым в производстве и потому невыгодным для завода. Другая причина- косность бюрократических структур, противодействие ощущалось на каждом из этапов.
Брусенцов вспоминал: «Чехи считали, что могли хорошо продавать «Сетунь» в соответствии с рыночными ценами и получать порядка полумиллиона долларов прибыли с каждой машины. По их приглашению я ездил в Чехословакию, мне показали завод, который планировалось использовать для производства машины «Сетунь», — «Зброевка Яна Швермы». Этот завод, кстати, во время войны делал самые лучшие пушки для немецкой армии, вроде нашей ЗИС-3. Завод меня просто восхитил. Они уже приготовили для «Сетуни» магнитные барабаны, печатающее устройство, устройство ввода. В общем, все было готово для производства «Сетуни». И они мне задают вопрос: „Ну, когда же, наконец, мы получим документацию? Нам обещали еще в декабре, а ее до сих пор нет”. А я молиться готов был на такой завод — настоящая высокая культура производства.
Когда я вернулся в СССР, меня вызвал референт Косыгина и попросил передать чешским товарищам, как тогда говорилось, что документацию на «Сетунь» они получат сразу после освоения крупносерийного производства этой машины в Советском Союзе. Но какое к черту крупносерийное производство, когда принимались все возможные меры, чтобы заморозить «Сетунь». Понятно, что тут не обошлось без ГКРЭ ( Государственный Комитет Радиоэлектроники).»
ГКРЭ лоббировал машину М-20, которую его сотрудники разрабатывали 2,5 года и потратили на нее несколько десятков миллионов рублей. На «Сетунь» было потрачено 27,5 тысяч.
Впоследствии Николай Брусенцов и Евгений Жоголев разработали более современную версию машины, использовавшую те же принципы троичности, — «Сетунь-70″, но она так и не пошла в серийное производство, единственный опытный образец работал в МГУ до 1987 года.
Настоящее и будущее троичных компьютеров
После «Сетуни» было несколько экспериментальных проектов, осуществлявшихся энтузиастами (таких, например, как американские Ternac и TCA2), однако это были либо весьма несовершенные машины, далекие от двоичных аналогов, либо и вовсе программные эмуляции на двоичном «железе».
Основная причина состоит в том, что использование в компьютерах троичных элементов пока не дает никаких существенных преимуществ перед двоичными: выпуск последних налажен массово, они проще и дешевле по себестоимости. Даже будь сейчас построен троичный компьютер, недорогой и по своим характеристикам сравнимый с двоичными, он должен быть полностью совместим с ними. Уже разработчики «Сетуни-70» столкнулись с необходимостью обеспечить совместимость: чтобы обмениваться информацией с другими университетскими машинами, пришлось добавить возможность читать с перфолент двоичные данные и при выводе также конвертировать данные в двоичный формат.
Однако нельзя сказать, что троичный принцип в компьютеростроении — это безнадежный анахронизм. В последнее десятилетие возникла необходимость в поиске новых компьютерных технологий, и некоторые из этих технологий лежат в области троичности.
Одно из таких исследовательских направлений — поиск альтернативных способов увеличения производительности процессоров. Каждые 24 месяца число транзисторов в кристалле процессора увеличивается примерно вдвое — эта тенденция известна как «закон Мура», и вечно продолжаться она не может: масштабы элементов и связей можно измерить в нанометрах, и очень скоро разработчики столкнутся с целым рядом технических сложностей. Кроме того, есть и экономические соображения — чем меньше, тем дороже разработки и производство. И с какого-то момента окажется дешевле поискать альтернативные способы делать процессоры мощнее, нежели продолжать гонку за нанометрами, — обратиться к технологиям, от которых раньше отказывались как от нерентабельных. Переход от однородных кремниевых структур к гетеропереходным проводникам, состоящим из слоев различных сред и способным генерировать несколько уровней сигнала вместо привычных «есть» и «нет», — это возможность повысить интенсивность обработки информации без увеличения количества элементов (и дальнейшего уменьшения их размеров). При этом от двухзначной логики придется перейти к многозначным — трехзначной, четырехзначной и т. д.
Другое направление, также нацеленное на увеличение производительности, — разработки в области асинхронных процессоров. Известно, что обеспечение синхронности процессов в современных компьютерах изрядно усложняет архитектуру и расходует процессорные ресурсы — до половины всех транзисторов в чипе работает на обеспечение этой самой синхронности. Компания Theseus Logic предлагает использовать «расширенную двоичную» (фактически — троичную) логику, где помимо обычных значений «истина» и «ложь» есть отдельный сигнал «NULL», который используется для самосинхронизации процессов. В этом же направлении работают еще несколько исследовательских групп.
Есть и более фантастические направления, где оправдано использование трехзначной логики: оптические и квантовые компьютеры.
Двоичная система счисления
Все что-то слышали о двоичной системе счисления, все знают, что это некий «язык компьютеров». Но почему именно так? Почему не пользоваться привычной десятичной системой? В чем, собственно, смысл?
Что такое двоичная система? Это позиционная система счисления с основанием 2. Вот только цифры «два» в ней нет, есть только 0 и 1, и так как цифры две, система называется двоичной (бинарной).
Современный цифровой язык, это ноли и единицы, больше ничего и не нужно. Самое интересное, так называемый машинный код использовался людьми задолго до появления самих машин, а, возможно, даже по появления чисел.
Зачем нужна двоичная система
Двоичная, или бинарная система счисления удобна своей простотой. С помощью комбинации нолей и единиц можно записать любой число и любую букву, что угодно может быть закодировано таким образом.
Но главное, что значения всего два. Это либо «ноль», либо «единица». Сигнал либо есть, либо его нет, свет горит или не горит, есть отверстие или нет (перфокарта), намагничен сектор или размагничен… Аналогии можно приводить бесконечно. Главное, что кодировать сигнал просто. Не нужно создавать сложные механизмы или устройства, достаточно только двух состояний.
Например, еще до того как люди научились считать и писать, сигналы передавались с помощью дыма от костра или ударов в барабаны.
Бинарная система — это просто, ничего проще просто нет. Есть, конечно, и древнейшая унитарная система, где значение всего одно (например, только 1) но с ее помощью нельзя ничего закодировать.
В любой микросхеме транзистор может прибывать в двух положениях «закрыто» или «открыто» (0 или 1) ток пропускается или нет.
Кстати, азбука Морзе — это тоже двоичный код (точка или тире), так же, как и древнейшая сигнальная система — «оптический телеграф». Это это просто огонь костра, который можно закрыть и открыть (огонь есть, или огня нет) ночью, а днем так же использовать дым.
Да, двоичная система используется потому, что с ее помощью удобно кодировать информацию, нужны всего 2 значения. Но удобно ли это считать?
Как считать
Как использовать двоичную систему для записи чисел? Так же как и десятичную. Самым простым примером можно считать кодовый замок, такой как на чемоданах. Каждый диск которого, вращается и может принимать значение от 0 до 9. Достаточно представить, что вместо десяти цифр есть только 2, ноль и единица.
Так как система позиционная, это будет выглядит так:
Сейчас здесь записано число «ноль». Чтобы получилась единица, нужно провернуть крайний правый диск один раз.
Начинается самое интересное, как будет выглядеть число «два»? Крутим правое колесико… И снова получаем 0, ведь других значений нет. Нужно поступить так же, как и в десятичной системе, перенести разряд влево. Только в десятичной, это происходит когда значение превышает 9, а в двоичной сразу после 1.
Двоичная система | Десятичная система |
0 | 0 |
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | 10 |
Сто в двоичной системе — это 1100100.
Очень интересно в бинарной системе выглядит таблица умножения:
Легко запомнить, неправда ли? 0*0=0, 0*1=0, 1*1=1… И все!
Все математические операции выполняются точно так же
Если сложит в столбик то получается нагляднее
100
Складываем ноли, получаем 0, складываем две единицы, получаем ноль (2 раза провернули диск) и единичку переносим вправо.
Как видите, математика та же, вот только запись чисел неудобная, слишком много нолей и единиц, для человека — неудобно, машине же все равно.
Так же как с цифрами можно поступить с буквами. Латинская буква «a» будет выглядеть как 01001010 кириллическая «а» — 000011100010111000011001, и даже пробел — 00010100.
История создания
Ясно, что человечество пользовалось двоичным кодом очень давно. И сигнальные системы с дымом от костров и даже китайская Книга Перемен (700 лет до нашей эры) с ее гексаграммами известны очень давно. Но окончательно практический смысл бинарный код получил совсем недавно (если не считать азбуку Морзе).
Великий Лейбниц занимался двоичной системой в 17 веке, но применить бинарную систему счисления было особо негде. В том же Веке Паскаль создал свою счетную машину (суммирующую), использующую десятичную систему. Оказалось, что считать на таком «калькуляторе» не так уж и удобно.
Суммирующая машина Паскаля (десятичная)
И только в 40-х годах 20 веке, вместе с появлением первых электронный вычислительных машин двоичный код явил всю свою безусловную полезность и красоту. Именно как машинный язык. Записывать информацию в котором гораздо проще, чем привычными нам средствами, буквами и цифрами.
То же самое, в двоичном коде можно сделать проще
Для чего нужна двоичная система счисления сегодня, мы прекрасно знаем, у каждого в кармане есть смартфон. На самом деле, ноли и единицы используются намного чаще, чем десятичная система, даже если мы, люди, этого и не видим. Не удивительно, мы использовали двоичную систему на протяжении всей истории, но до эры машин даже не замечали этого.
История ЭВМ: от перфокарт до персональных компьютеров
Ровно 33 года назад, 12 августа 1981 года, на свет появился первый массовый персональный компьютер IBM PC, который со временем стали называть просто PC (ПК). То, что для нас уже давно стало привычным делом, в то время было настоящей революцией. M24.ru выделило основные этапы развития электронно-вычислительных машин.
Электронные вычислительные машины того времени представляли из себя массивные конструкции весом в несколько тонн. Каждый новый этап развития ЭВМ был связан не только с техническим прогрессом, но и с программным. Взять хотя бы Windows, который пришел на смену «бездушному» DOS.
Именно IBM, годом основания которой считается 1889 год, внесла огромный вклад в развитие компьютерной техники. Ее прародительница, корпорация CTR (Computing Tabulating Recording) включала в себя сразу три компании и выпускала самое различное электрическое оборудование: весы, сырорезки, приборы учета времени. После смены директора в 1914 году компания начала специализироваться на создании табуляционных машин (для обработки информации). Спустя 10 лет CTR поменяло свое название на International Business Machines или IBM.
M24.ru выделило основные этапы развития ЭВМ и их основных представителей, давших толчок к развитию современных компьютеров.
При этом история компьютеров IBM началась спустя более полувека, в 1941 году, когда был разработан и создан первый программируемый компьютер «Марк 1» весом порядка 4,5 тонн, 17 метров в длину, 2,5 метра – в высоту. Президент IBM вложил в него 500 тысяч долларов. Впервые «Марк 1» был запущен в Гарвардском университете в 1944 году. Чтобы понять, насколько сложна была конструкция машины, достаточно сказать, что общая длина проводов составила 800 км. При этом компьютер осуществлял три операции сложения и вычитания в секунду.
Первое поколение ЭВМ
Первая ЭВМ, основанная на ламповых усилителях, под названием «Эниак» была создана в США в 1946 году. По размерам она была больше, чем «Марк 1»: 26 метров в длину, 6 метров в высоту, а ее вес составлял около 30 тонн. При этом по производительности «Эниак» в 1000 раз превышала «МАРК-1», а на ее создание ушло почти 500 тысяч долларов. Но у нее были существенные недостатки: очень мало памяти для хранения данных и долгое время перепрограммирования – от нескольких часов и до нескольких дней.
Кстати, среди создателей «Эниак» был ученый Джон фон Нейман, предложивший архитектуру ЭВМ, заложенную в компьютерах с конца 1940-х до середины 1950-х годов. Именно он осуществил переход к двоичной системе счисления и хранению полученной информации.
Второе поколение ЭВМ
Второе поколение ЭВМ использовало в своей основе транзисторы, созданные в 1947 году. Это была очередная революция, в результате которой существенно уменьшились размеры и энергопотребление компьютеров, так как сами биполярные транзисторы в разы меньше вакуумных ламп.
В 1959 году появились первые компьютеры IBM на транзисторах. Они были надежны, и ВВС США стали использовать их в системе раннего оповещения ПВО. А в 1960 году IBM разработала мощную систему Stretch или «IBM-7030». Она была и вправду сильна – создатели добились 100-кратного увеличения быстродействия. В течение трех лет он был самым быстрым компьютером в мире. Однако со временем IBM уменьшила его стоимость, а вскоре и вовсе сняла с производства.
Третье поколение ЭВМ
Третье поколение компьютеров связано с использованием интегральных схем (в которых используется от десятков до сотен миллионов транзисторов), впервые изготовленных в 1960 году американцем Робертом Нойсом.
В 1964 году IBM объявила о начале работы над целой линейкой IBM System/360.
Четвертое поколение ЭВМ
Четвертое поколение связано с использованием микропроцессоров. Первый такой микропроцессор под названием «Intel-4004» был создан в 1971 году компанией Intel, до сих пор остающейся в лидерах. Спустя 10 лет IBM выпустила первый персональный компьютер, который так и назывался IBM PC. Самая дорогая конфигурация стоила 3000 долларов и предназначалась для бизнеса, а конфигурация за 1500 долларов – для дома.
Интересно, что разработкой компьютера занимались всего четыре человека. Причем IBM не запатентовала ни операционную систему DOS, ни BIOS, что породило огромное количество клонов. Уже в 1996 году IBM уступило первое место по продажам ПК на ею же основанном рынке.
Несмотря на то, что современные гаджеты сильно отличаются по характеристикам от своего предшественника, все они относятся к тому же поколению ЭВМ.
Основные толчки для развития компьютеров дала наука (появление ламп, а затем транзисторов). В настоящее время распространяется ввод информации с голоса, общения с машиной на человеческом языке (приложение Siri в iPhone) и активная работа над роботами. Основное мнение, что будущее – за квантовыми компьютерами, которые будут использовать в своей основе молекулы и нейрокомпьютерами, использующими центральную нервную систему человека и непосредственно его мозг. Однако для того, чтобы эти технологии появились, необходимо досконально изучить эти системы.