[МУЗЫКА] [МУЗЫКА] [МУЗЫКА] Современные ЭВМ работают на базе цифровой логики. Разберемся, что это такое. Ну, вообще-то логику придумал Джон Буль. Опять-таки не удержусь, скажу: он отец Войнич, автора книги «Овод». Современные молодые могут и не знать, а в мои годы это была очень знаменитая книга, «Овод». Так вот, Джон Буль придумал двоичную логику, вот те самые И, ИЛИ, НЕ. В советское время эту логику называли «алгебра Жегалкина». Ну тогда была такая мода, что Россия — родина слонов и все так. Жегалкин был действительно ученый, действительно занимался логикой, но все-таки намного позже, чем Буль. Так вот, в машине вся эта цифровая логика представлена в виде сигналов. Вот поглядите на этот слайд. Есть идеальный сигнал, такая полочка. На самом деле таких идеальных сигналов в природе не бывает. Если вы посмотрите на осциллограф, то вы увидите: стрелочка вот такой вот, дребезжащий сигнал. И компьютер должен еще понять, что вот эта какая-то кривая играет роль единички, а именно, вот такой полки. Знаете, вот с этим отличием от идеального сигнала у меня связана одна довольно грустная моя личная история. В 1987 году мы сделали машину, новую, не ворованную, не копию никакой американской машины — УВК «Самсон». Мы когда ее сделали, мы объехали с десяток заводов в нашей дорогой стране и везде спрашивали: «Что было прототипом вашей машины?» «Ничего, сами придумали». «До свидания». Все боялись. Тогда было время, делали только копии американских машин. И в результате только в Болгарии, в городе Пловдиве нам удалось найти завод, который взялся сделать нашу машину, и сделали первые 100 экземпляров. Все это было оформлено, как подарок к 70-летию советской власти. В 1987 году праздновалось 70-летие советской власти. И болгары сделали нам машину по нашим схемам, мы ее налаживали, и была назначена демонстрация членам Политбюро как СССР, так и болгарским членам Политбюро — 5 ноября 1987 года, 14 часов. В 13 часов машина еще не работала. Все дело в том... Потом нам болгары притащили хороший осциллограф, и мы вот этот сигнал... Там был сигнал вот такой, и там был такой пичок, который на советском осциллографе было не видно, а на хорошем американском или французском, я уж там не помню, но на хорошем осциллографе он был виден. Когда инженеры этот пичок увидели, тут же припаяли какой-то конденсатор — это помеха — пичок пропал, и машина заработала. И когда в два часа уже члены Политбюро пришли, мы им продемонстрировали один тест. Я еще в это время трясся, как осиновый лист: а вдруг попросят второй тест. А у меня работал пока только один тест. Итак, все заработало после того, как мы этот пичок увидели на неправильном сигнале. Вот я в этом курсе довольно часто буду отвлекаться и рассказывать вам разные истории. Понимаете, для меня это не история, это моя жизнь, и я через многое из этого прошел, и мне хотелось бы, чтобы вы поняли, что вот из того, что я математик... Ну откуда мне, математику, было знать, что сигналы бывают неправильной формы? Только когда это удалось увидеть, удалось понять, что из-за этого у нас перестала работать машина, не стала работать машина, только после этого мы сумели все починить, и заработала. Хотелось бы, чтобы и вы понимали, что не все в жизни идеально. Идеальный сигнал представляет собой вовсе не идеально. Тем не менее компьютеры работают, и в общем, с этим люди научились справляться. Следующее понятие, с которым я хочу вас познакомить — это Clock, тактовая частота. Если у вас есть последовательность таких сигналов, то расстояние между двумя фронтами, как представлено на слайде, называется такт, по-английски Clock. Чем выше тактовая частота, тем быстрее компьютер. Понятно, что не все команды делаются за один такт, тем не менее, компьютер, у которого 2 ГГц частота — это более быстрый компьютер, чем компьютер, у которого 1 ГГц частота. Как я уже сказал, цифровая логика представлена основными операциями: И, ИЛИ, НЕ, исключающее ИЛИ. На самом деле, если вы хотя бы чуть-чуть изучаете логику, вы будете знать, что... вы должны знать, что логических операций с двумя операндами — 16. И многие из них выражаются через другие. Вот часто через И, ИЛИ и унарную операцию НЕ можно выразить все остальные операции. Это называется алгебра Буля, а как я уже говорил, в советское время у нас принято говорить было, что это алгебра Жегалкина. Ну, все-таки это первым придумал Буль. Более того, есть такие две операции: знак Шеффера и стрелка Пирса, через которые... через одну операцию можно выразить все остальные 15 операций. Ну, мы в эти дебри сейчас не полезем. Важно, что есть электронные схемы, которые умеют отрабатывать вот эти вот основные логические операции. Следующий элемент — это триггер. Это ячейка памяти на один разряд, схема с двумя устойчивыми состояниями: 1 и 0. И нужно подать довольно мощный сигнал, чтобы триггер из 1 перешел в 0 или из 0 в 1. Мне особенно приятно сказать, что триггер был изобретен в нашем городе, который тогда назывался Петроград. В 1918 году наш соотечественник, наш земляк Бонч-Бруевич, именем которого назван сейчас институт связи в нашем городе, в Петербурге, изобрел сначала в 1916 году катодное реле — триггер, триод лампу такую: анод, катод и сетка. А потом, в 1918 году — схему с двумя устойчивыми состояниями. Только через год два американца, кстати, тоже независимо друг от друга изобрели похожую схему. И вот они ввели термин «триггер», который укоренился. Но первым такую схему придумал наш соотечественник, земляк, и я не устаю об этом повторять. Иногда возникает спор на всяких конференциях, что правда это, не правда. Я всех отправляю в музей института связи Бонч-Бруевича, там это все подробно расписано. Ведь Бонч-Бруевич в отличие от Попова все свои результаты закрепил за собой, опубликовал, поэтому формально к этому не придраться, это действительно наш результат. Дальше. Регистр — это несколько триггеров, просто рассматриваем, как единое целое: 16, 32. Вот устройство, которое состоит из 16 триггеров, рассматривается, как единое целое — это регистр. И последнее, что я хочу здесь сказать — это счетчик, специальный регистр, который умеет выполнять только одну операцию: +1. И вот прибавляется единичка, и вот единичка так постепенно бежит. Мой отец, а он был военный инженер-электронщик, рассказывал мне, что еще до войны уже использовались электронные схемы, в которых очень массово применялись счетчики. Ну, для всяких служебных целей, не для ЭВМ, для разных других целей. Но счетчики на электронных устройствах применялись еще до войны. Теперь перейдем к более современным делам. Дело в том, что сегодняшние компьютеры, сегодняшние ЭВМ не делаются из И или НЕ и триггеров. Они делаются из существенно более крупных элементов — чипов, кристаллов. Чипы бывают двух разных типов: жесткие кристаллы и гибкие кристаллы. Жесткий кристалл — это множество вентилей, причем их миллионы вентилей, соединенных в какую-то схему, и они спрятаны в один «камень», как фаланга пальца, вот такой. Вот такая штучка называется чип или жесткий кристалл. Микропроцессоры, вот Intel 8086 — это примеры таких чипов. Они хорошо работают, они очень быстрые, мало потребляют тока, но страшное неудобство в том, что если ты хоть чуть-чуть ошибся в проектировании кристалла, надо все выкинуть и все начать сначала. Никаких исправлений сделать уже нельзя, это действительно «камень». Как хотите, так и понимайте. Вот все сделано так, что внутри ни единого проводка ты не подправишь. А разработка жесткого кристалла занимает миллионы долларов и несколько лет работы, это тяжелая работа. Чтобы моделировать жесткие кристаллы, перед тем, как делать жесткий кристалл, который в массовом производстве стоит дешево, но его разработка очень, очень дорогая, люди придумали гибкие кристаллы. Это тоже множество вентилей, но схемы соединений между ними управляются специальной памятью, которая называется bitmap. Вот если в определенном разряде стоит 1, то вот между этим вентилем и этим вентилем есть проводок. А если стоит 0, то между ними проводка нет. Сами понимаете, что если у вас там миллион вентилей, то схем соединения может быть миллион в квадрате пополам. Ну, нетрудно сообразить. То есть 10¹² — бешеное количество, и понятно, что люди нарисовать такую последовательность из ноликов и единичек без ошибок не смогут. Ну и слава богу, придумали такие программные средства, которые позволяют вам описать логику поведения кристалла в виде нормальной программы. Там есть процедуры, условия, циклы. А потом есть специальные программы, их всего три — вот на следующем слайде я их представил: Mentor Graphics, Cadence и Synopsys. Это названия фирм, которые продают программное обеспечение, которое позволяет из языка описания высокого уровня получить искомый bitmap. Языков несколько, главные из них — VHDL и Verilog. Ну, есть еще SystemC, но он меньше применяется. Это языки придуманы более 20 лет назад и совсем для других целей, для целей документирования, поэтому когда инженеры стали применять эти языки для целей проектирования кристалла, то получилось довольно тяжело. И в общем, программирование на VHDL стоит дорого. Теперь я уже говорю не как завкафедрой, а как директор предприятия. Люди, программирующие на VHDL, мне обходятся намного дороже, чем обычные программисты. И причем это все еще медленно и очень малопродуктивно, с большим количеством ошибок. Поэтому мы много лет назад придумали наш собственный язык, который мы назвали HaSCoL — Hardware and Software Codesign Language. И программы на HaSCoL в 5-6 раз короче, намного более читабельны, и производительность программиста на HaSCoL существенно, во много раз превышает производительность программиста на VHDL и Verilog. Надо вам сказать, что даже гибкие кристталы — все-таки тоже сложная штука, и когда я говорю, что там проводки соединяют вентили, это я вас немножко обманываю. Там есть такие LUT-ы — logical unit. Так вот фирмы, которые производят гибкие кристаллы — Xilinx, Altera, держат структуру LUT-ов в страшном коммерческом секрете. То есть никто не знает, какие у них выводы, какие они умеют делать функции, и поэтому вот повторить, скопировать, грубо говоря, своровать кристалл гибкий очень-очень тяжело. В нашей стране, особенно в связи с санкциями, это открытая проблема. И сейчас мы ведем переговоры с Министерством промышленности и торговли, чтобы нам заказали разработку собственных логических LUT-ов и собственных кристаллов гибких. Возможно, это удастся. Я по крайней мере, на это надеюсь. Если будет финансирование, мы это сделать сумеем, похожие работы мы уже делали. Но на данный момент мы вынуждены пользоваться только американскими гибкими кристаллами. Это к сожалению.