Если вы обращаете внимание на отечественную чип-индустрию, то наверняка испытываете немалую растерянность. Насколько сложно разработать технологию, способную затруднить науку и технику больших стран?
На самом деле, чипы - это, мягко говоря, очень сложно. Возьмем для примера 5-нм литографическую машину. Она состоит из более чем 100 000 деталей. Если пересчитать их по одной, то окажется, что большинство из них мы не сможем изготовить уже сейчас.
Однако, как утверждается, чип очень прост. В принципе, если у вас есть определенная база знаний, вы можете разобраться с ним. На данный момент верно утверждение, что "технология не знает границ". По крайней мере, до сих пор соответствующие книги, статьи и другие знания находятся в открытом доступе. Основное различие заключается в промышленном опыте и технической силе.
Сегодня я рассмотрю, насколько простым является чип. Цель этой статьи - популяризировать некоторые базовые математические знания, а затем спроектировать простейший чип!
Основы чипирования
Микросхемы, как важнейшие полупроводниковые изделия, реализуют определенные функции. Например, центральный процессор компьютера реализует множество функций, таких как вычисление, отображение, чтение и запись данных в память и на жесткий диск, а также прием ввода с мыши и клавиатуры.
Задумывались ли вы когда-нибудь о том, что лежит в основе чипа?
Некоторые люди сразу же вспоминают о кремнии. Будучи полупроводниковым материалом, кремний является основой чипов. Однако питьевой стакан также содержит кремний, который ничего не стоит, поэтому кремний не является фундаментальной основой. Почему в микросхемах используется кремний? Потому что интегральные схемы создаются на кремнии! Особенность кремния в том, что он может интегрировать большое количество схемных устройств на небольшой площади.
Значит, основой микросхемы является цепь? Существует множество типов схем. Лампочки и выключатели у вас дома тоже образуют цепь, которая не имеет никакого отношения к микросхеме. В микросхеме используются логические схемы.
Попробуйте еще раз, в основе чипа лежит логическая схема? Ну, это очень близко, но пока нет. Логические схемы выполняют логические операции, а логические операции также называются операциями булевой алгебры.
Поэтому фундаментальной основой микросхем является математика! Точнее, булева алгебра!
Этот вывод совсем не удивителен. Всем известно, что основой физики является математика. Даже великий физик Ньютон является одним из трех крупнейших математиков мира, наряду с Архимедом и Гауссом.
Булева алгебра
Поймите самые основы булевой алгебры, и вы будете знать, как работает машина, а также поймете, как спроектировать микросхему.
Далее я познакомлю вас с двоичной и булевой алгеброй и постараюсь сделать следующее содержание понятным для детей.
Почему ее могут понять даже дети? Потому что сам математик Буль никогда не учился в колледже, он стал самоучкой, а в 19 лет открыл начальную школу и руководил ею более 10 лет. Своей основной профессией он считает преподавание, и его желание - помочь детям найти способы понять и освоить сложные законы.
Истоки булевой алгебры - это надежда на использование математики для выражения логического мышления людей.
Среди них есть несколько важных булевых операций, связанных с компьютерами:
1. Операция AND
Например: Я люблю есть шашлыки
Пусть A означает "барбекю", а B - "шампуры из баранины".
Тогда приведенное выше выражение становится:
И A, и B истинны, и результат операции истинен. Например, для говяжьих шампуров на гриле A=1, B=0, AandB=0. Поэтому я не люблю якитори.
2. Операция ИЛИ
Например: Я люблю есть барбекю или горячий горшок.
Пусть A означает барбекю, а B - горячий горшок.
Тогда приведенное выше выражение становится:
Будь то барбекю или горячий горшочек, я съем и то, и другое, но, конечно, лучше иметь и то, и другое!
3. Неработающий
Например: Я не люблю острую пищу.
Пусть A означает "острый".
Тогда приведенное выше выражение становится:
4. Операция XOR
Например: Я больше всего люблю есть шашлык и мороженое, но их совместное употребление вызовет диарею.
Пусть A означает барбекю, а B - мороженое.
Тогда приведенное выше выражение становится:
Понять эту операцию может быть немного сложно. Что она означает? Она означает, что A и B не могут быть одним и тем же. Они определенно не могут без барбекю и мороженого, но они не могут вынести это вместе!
Помимо вышеперечисленных четырех булевых операций, существуют также операции AND, NOT, NOR и XOR. На примере операции XOR видно, что все операции могут быть получены путем комбинирования операций AND, OR и NOT.
Бинарные операции
Далее поговорим о двоичной арифметике.
В двоичной системе для представления всех чисел используются 0 и 1. Каждый бит может быть только 0 и 1, и когда он достигает 2, он должен переноситься.
Например, 2 в десятичной системе должно переноситься при выражении в двоичной системе и становится двузначным числом 10, а 3 в десятичной системе - 11.
Двоичная система была изобретена немецким математиком Лейбницем более 300 лет назад. В то время от компьютеров не осталось и следа. Зачем Лейбниц придумал бесполезную на тот момент двоичную систему? Честно говоря, никто не может этого понять.
Говоря о бинарах, я должен рассказать о сплетнях в нашей стране. Не о сплетнях индустрии развлечений, о которых говорят повсюду, а о настоящих сплетнях.
Багуа подчеркивает, что два ритуала порождают четыре образа, а четыре образа порождают Багуа:
Многие считают, что сплетни - это предшественники двоичной системы. Лянъи - это инь и ян, то есть 0 и 1, Сисянь - двузначные двоичные цифры, Багуа - трехзначные двоичные цифры, а гексаграмма Фуси 64 - шестизначные двоичные цифры:
Похоже, что правда на самом деле одна и та же. Честно говоря, я не знаю, какие сплетни придумывали наши предки на ее основе в то время.
Однако кто-то раскопал письма между Лейбницем и миссионером, жившим в то время в Пекине, чтобы попытаться доказать, что изобретение двоичного числа Лейбницем было вдохновлено китайскими сплетнями, и многие люди поверили этому утверждению.
На самом деле процесс происходил следующим образом: Лейбниц написал тогдашнему миссионеру, надеясь, что тот представит двоичную систему императору Канси. Миссионер увидел, что это всего лишь китайская сплетня, и написал Лейбницу ответ. Ситуация со сплетнями. Затем Лейбниц написал статью, в которой обсуждалось практическое применение двоичной системы в Китае.
Вдохновлялся ли Лейбниц сплетнями - это все домыслы. Даже если Лейбниц был вдохновлен сплетнями, что с того? Когда Лейбниц изобрел двоичную систему, наш император Канси воевал с У Саньгуем, а наша современная цивилизация еще не была цивилизованной.
Итак, что касается вопроса о багуа и двоичных вычислениях, давайте просто будем считать, что это багуа, и продолжим говорить о двоичных вычислениях.
Предположим, что нужно сложить два однобитных двоичных числа, тогда существует четыре возможности:
В первых трех случаях перенос не требуется. В последнем случае S - двузначное двоичное число, поэтому перенос необходим. Мы устанавливаем отдельный флаг переноса C.
Вы обнаружили, что двоичное сложение - это то же самое, что и булева операция, представленная выше:
Сумма сложения - это операция XOR двух слагаемых.
Флаг переноса при сложении - это операция AND двух слагаемых.
С помощью булевых операторов мы составляем логическую схему, например, такую:
Приведенный выше полусумматор представлен с помощью булевых операторов, которые можно представить следующим образом:
Почему он называется полусумматором? Потому что при вычислении AB он не учитывает, есть ли перенос из предыдущего бита, поэтому этот полусумматор может вычислить только сложение последнего бита двоичного числа.
Если A и B не являются числами в последнем разряде, то необходимо рассмотреть, есть ли перенос в результате вычисления предыдущего разряда (Cin - флаг переноса предыдущего разряда, а Cout - ситуация переноса предыдущего разряда после вычисления текущего разряда). Возможны 8 ситуаций:
Этот процесс может быть реализован с помощью 2 полусумматоров и операции ИЛИ:
Это полный сумматор:
Смотрите, мы реализовали сложение одноразрядных двоичных чисел, используя всего четыре оператора булевой алгебры.
На самом деле мы использовали только три оператора, потому что операцию XOR можно представить как комбинацию операций AND, OR и NOT. Конечно, это слишком хлопотно.
То же самое относится и к полному сумматору. Если мы не боимся трудностей, то можем аккуратно нарисовать комбинацию операций XOR, AND и OR.
Восьмиразрядный двоичный сумматор
Видите ли, компьютерная математика тоже несложная.
Далее нас ждет самое удивительное. Нам предстоит использовать знания булевой алгебры, которые мы только что изучили, для разработки простейшего чипа.
Это сумматор, способный складывать восьмибитные двоичные числа.
Остаются некоторые сложности. Если этот сумматор будет построен, его можно будет считать простейшим чипом. Это действительно микросхема!
На вход этого сумматора подаются 2 восьмибитных двоичных числа:
Один из них обозначается A, а восемь битов - A[0],...,A[7];
Другой представлен символом B, а восемь битов - B[0],...,B[7];
Есть также вход, который является флагом переноса Cin. Если этот сумматор используется в одиночку, то этот вход всегда установлен в 0.
На выходе получается S, а восемь битов - S[0],...,S[7];
Флаг переноса на выходе - Cout.
Давайте посмотрим, как выглядит этот сумматор:
Это восьмиразрядный двоичный сумматор, состоящий из 8 полных сумматоров. Разве это не волшебно?
Мы больше ничего не добавляли, только полный сумматор, который мы только что изучили. Если вам интересно, вы можете расширить каждый полный сумматор двумя половинными сумматорами и оператором OR.
Кроме того, каждый полусумматор можно расширить с помощью оператора XOR и оператора AND. Не знаю, кому из читателей это интересно. В любом случае, если я нарисую его от руки, то потерплю крах.
Все это делается с помощью программного обеспечения EDA во время проектирования чипа.
Последующие действия
На данный момент мы логически спроектировали восьмибитную микросхему двоичного сумматора с простейшей функцией.
Почему вы говорите "логически"? Потому что до сих пор мы не использовали никаких схемных знаний. Все, что задействовано, - это булева алгебра, так что чип логически возможен, но пока не может быть изготовлен.
Как же сделать чип, который действительно работает?
Сначала нам понадобятся электронные компоненты, соответствующие вышеупомянутым булевым операторам для выполнения одной и той же функции. Затем соедините эти компоненты в соответствии с проектом. Таким образом, получается реальная схема, которая называется схемой затвора. Компонент, реализующий вышеуказанную булеву операцию, называется компонентом затвора.
В конечном итоге мы должны изготовить такой компонент затвора на кремниевой пластине, чтобы на ней была реализована схема затвора, то есть интегральная схема.
Наконец, интегральную схему вырезают, делают входные и выходные контакты, затем упаковывают, и получается готовый чип!