Как считает компьютер на транзисторах

Обновлено: 04.07.2024

Первые процессоры были абсолютно не похожи на то, что вы можете видеть, приоткрыв крышку системного блока вашего ПК.

Вместо микросхем в 40-е годы XX века использовались электромеханические реле, дополненные вакуумными лампами. Лампы выполняли роль диода, регулировать состояние которого можно было за счет понижения или повышения напряжения в цепи. Выглядели такие конструкции так: Для работы одного исполинского компьютера нужны были сотни, иногда тысячи процессоров. Но, при этом, вы не смогли бы запустить на таком компьютере даже простенький редактор, как NotePad или TextEdit из штатного набора Windows и macOS. Компьютеру банально не хватило бы мощности.

Первые полевые транзисторы появились еще в 1928 году. Но настоящая революция наступила в 1959 году, когда ученый Жан Энри разработал первый кремниевый планарный (плоский) транзистор, который стал основой для монолитных интегральных схем.

Итак, задача такого электрического компонента как транзистор заключается в управлении током. Проще говоря, этот немного хитрый переключатель, контролирует подачу электричества.

Основное преимущество транзистора перед обычным переключателем в том, что он не требует присутствия человека. Т.е. управлять током такой элемент способен самостоятельно. К тому же, он работает намного быстрее, чем вы бы самостоятельно включали или отключали электрическую цепь.

Из школьного курса информатики вы, наверняка, помните, что компьютер «понимает» человеческий язык за счет комбинаций всего двух состояний: «включено» и «выключено». В понимании машины это состояние "0" или "1".

Задача компьютера заключается в том, чтобы представить электрический ток в виде чисел.

И если раньше задачу переключения состояний выполняли неповоротливые, громоздкие и малоэффективные электрические реле, то теперь эту рутинную работу взял на себя транзистор.

С начала 60-х транзисторы стали изготавливать из кремния, что позволило не только делать процессоры компактнее, но и существенно повысить их надежность.

В зависимости от подаваемого напряжения, транзистор может быть либо открыт, либо закрыт. Если напряжение недостаточное для преодоления потенциального барьера (того самого на стыке p и n пластин) – транзистор будет находится в закрытом состоянии – в состоянии «выключен» или, говоря языком двоичной системы – "0".

При достаточно напряжении транзистор открывается, а мы получаем значение «включен» или "1" в двоичной системе.

Такое состояние, 0 или 1, в компьютерной индустрии назвали «битом».

Т.е. мы получаем главное свойство того самого переключателя, который открыл человечеству путь к компьютерам!

В первом электронном цифровом вычислителе ЭНИАК, а проще говоря – первом компьютере, использовалось около 18 тысяч ламп-триодов. Размер компьютера был сопоставим с теннисным кортом, а его вес составлял 30 тонн.

После того, как в 1952 году британский радиотехник Джеффри Дамер предложил размещать простейшие электронные компоненты в монолитном кристалле полупроводника, компьютерная индустрия сделал семимильный шаг вперед.

От интегральных схем, предложенных Дамером, инженеры быстро перешли на микрочипы, в основе которых использовались транзисторы. В свою очередь, нескольких таких чипов уже образовывали сам процессор.

Разумеется, что размеры таких процессоров мало чем схожи с современными. К тому же, вплоть до 1964 года у всех процессоров была одна проблема. Они требовали индивидуального подхода – свой язык программирования для каждого процессора.

А дальше началась гонка техпроцессов. Задачей чипмейкеров стало в производственных масштабах как можно плотнее разместить транзисторы друг возле друга, добившись уменьшенного технологического процесса.

1964 год IBM System/360. Компьютер, совместимый с универсальным программным кодом. Набор инструкций для одной модели процессора мог использоваться и для другой.

70-e годы. Появление первых микропроцессоров. Однокристальный процессор от Intel. Intel 4004 – 10 мкм ТП, 2 300 транзисторов, 740 КГц.

1973 год Intel 4040 и Intel 8008. 3 000 транзисторов, 740 КГц у Intel 4040 и 3 500 транзисторов при 500 кГц у Intel 8008.

1974 год Intel 8080. 6 мкм ТП и 6000 транзисторов. Тактовая частота около 5 000 кГц. Именно этот процессор использовался в компьютере Altair-8800. Отечетсвенная копия Intel 8080 – процессор КР580ВМ80А, разработанный Киевским НИИ микроприборов. 8 бит.

1976 год Intel 8080. 3 мкм ТП и 6500 транзисторов. Тактовая частота 6 МГц. 8 бит.

1976 год Zilog Z80. 3 мкм ТП и 8500 транзисторов. Тактовая частота до 8 МГц. 8 бит.

1978 год Intel 8086. 3 мкм ТП и 29 000 транзисторов. Тактовая частота около 25 МГц. Система команд x86, которая используется и сегодня. 16 бит.

1980 год Intel 80186. 3 мкм ТП и 134 000 транзисторов. Тактовая частота – до 25 МГц. 16 бит.

1982 год Intel 80286. 1,5 мкм ТП и 134 000 транзисторов. Частота – до 12,5 МГц. 16 бит.

1982 год Motorola 68000. 3 мкм и 84 000 транзисторов. Этот процессор использовался в компьютере Apple Lisa.

1985 год Intel 80386. 1,5 мкм тп и 275 000 транзисторов.Частота – до 33 МГц в версии 386SX.

Казалось бы, продолжать список можно было бы до бесконечности, но тут инженеры Intel столкнулись с серьезной проблемой.

На дворе конец 80-х. Еще в начале 60-х один из основателей компании Intel Гордон Мур формулировал так называемый «Закон Мура». Звучит он так:

Каждые 24 месяца количество транзисторов, размещенных на кристалле интегральной схемы, удваивается.

Назвать этот закон законом сложно. Вернее будет окрестить его эмпирическим наблюдением. Сопоставив темпы развития технологий, Мур сделал вывод, что может сформироваться подобная тенденция.

Но уже во время разработки четвертого поколения процессоров Intel i486 инженеры столкнулись с тем, что уже достигли потолка производительности и больше не могут разместить большее количество процессоров на той же площади. На тот момент технологии не позволяли этого.

В качестве решения был найден вариант с использованием рядом дополнительных элементов: кэш-памяти;конвейера;встроенного сопроцессора;множителя.

Часть вычислительной нагрузки ложилась на плечи этих четырех узлов. В результате, появление кэш-памяти с одной стороны усложнило конструкцию процессора, с другой – он стал значительно мощнее.

Процессор Intel i486 состоял уже из 1,2 млн транзисторов, а максимальная частота его работы достигла 50 МГц.

В 1995 году к разработке присоединяется компания AMD и выпускает самый быстрый на тот момент i486-совместимый процессор Am5x86 на 32-битной архитектуре. Изготавливался он уже по 350 нанометровому техпроцессу, а количество установленных процессоров достигло 1,6 млн штук. Тактовая частота повысилась до 133 МГц.

Но гнаться за дальнейшим наращиванием количества установленных на кристалле процессоров и развитии уже утопической архитектуры CISC (Complex Instruction Set Computing) чипмейкеры не решились. Вместо этого американский инженер Дэвид Паттерсон предложил оптимизировать работу процессоров, оставив лишь самые необходимые вычислительные инструкции.

Так производители процессоров перешли на платформу RISC (Reduced Instruction Set Computing]. Но и этого оказалось мало.

В 1991 году выходит 64-битный процессор R4000, работающий на частоте 100 МГц. Через три года появляется процессор R8000, а еще через два года – R10000 с тактовой частотой вплоть до 195 МГц. Параллельно развивался рынок SPARC-процессоров, особенностью архитектуры которых стало отсутствие инструкций умножения и деления.

Вместо борьбы за количество транзисторов, производители чипов стали пересматривать архитектуру их работы. Отказ от «ненужных» команд, выполнение инструкций в один такт, наличие регистров общего значения и конвейеризация позволили оперативно наращивать тактовую частоту и мощность процессоров, не извращаясь с количеством транзисторов.

Вот лишь некоторые из появившихся с период с 1980 по 1995 год архитектур: SPARC;ARM;PowerPC;Intel P5;AMD K5;Intel P6.

В их основе лежала платформа RISC, а в некоторых случаях и частичное, совмещенное использование CISC-платформы. Но развитие технологий вновь подталкивало чипмейкеров продолжить наращивание процессоров.

В августе 1999 года на рынок выходе AMD K7 Athlon, изготовленный по 250 нанометровому техпроцессу и включающий 22 млн транзисторов. Позднее планку подняли до 38 млн процессоров. Потом до 250 млн.

Увеличивался технологический процессор, росла тактовая частота. Но, как гласит физика, всему есть предел.

В 2007 году Гордон Мур выступил с весьма резким заявлением:

Закон Мура скоро перестанет действовать. Устанавливать неограниченное количество процессоров до бесконечности невозможно. Причина тому — атомарная природа вещества.

Невооруженным глазом заметно, что два ведущих производителям чипов AMD и Intel последние несколько лет явно замедлили темпы развития процессоров. Точность технологического процесса выросла всего до нескольких нанометров, но размещать еще больше процессоров невозможно.

И пока производители полупроводников грозятся запустить многослойные транзисторы, проводя параллель с 3DNand памятью, у упершейся в стену архитектуры x86 еще 30 лет назад появился серьезный конкурент.

«Закон Мура» признан недействительным еще с 2016 года. Об этом официально заявил крупнейший производитель процессоров Intel. Удваивать вычислительную мощность на 100% каждые два года чипмейкеры больше не состоянии.

И теперь у производителей процессоров есть несколько малоперспективных вариантов.

Первый вариант – квантовые компьютеры. Попытки построить компьютер, который использует для представления информации частицы, уже были. В мире существует несколько подобных квантовых устройств, но они способны справляться лишь с алгоритмами небольшой сложности.

К тому же, о серийном запуске подобных устройств в ближайшие десятилетия не может идти и речи. Дорого, неэффективно и… медленно!

Да, квантовые компьютеры потребляют намного меньше энергии, чем их современные коллеги, но при этом работать они будут медленнее до тех пор, пока разработчики и производители комплектующих не перейдут на новую технологию.

Второй вариант – процессоры со слоями транзисторов. О данной технологии всерьез задумались и в Intel, и в AMD. Вместо одного слоя транзисторов планируют использовать несколько. Похоже, что в ближайшие годы вполне могут появится процессоры, в которых будут важны не только количество ядер и тактовая частота, но и количество транзисторных слоев.

Решение вполне имеет право на жизнь, и таким образом монополистам удастся доить потребителя еще пару десятков лет, но, в конце концов, технология опять-таки упрется в потолок.

Сегодня же, понимая стремительное развитие ARM-архитектуры, Intel провела негромкий анонс чипов семейства Ice Lake. Процессоры будут изготавливаться по 10-нанометровому технологическому процессу и станут основой для смартфонов, планшетов и мобильных устройств. Но произойдет это в 2019 году.

Итак, архитектура x86 появилась в 1978 году и относится к типу платформы CISC. Т.е. сама по себе она предполагает наличие инструкций на все случаи жизни. Универсальность – главный конек x86.

Но, в тоже время, универсальность сыграла с этими процессорами и злую шутку. У x86 есть несколько ключевых недостатков:

сложность команд и откровенная их запутанность;

высокое потребление энергии и выделение теплоты.

За высокую производительность пришлось попрощаться с энергоэффективностью. Более того, над архитектурой x86 сейчас трудятся две компании, которых можно смело отнести к монополистам. Это Intel и AMD. Производить x86-процессоры могут только они, а значит и правят развитием технологий только они.

В тоже время разработкой ARM (Arcon Risk Machine) занимаются сразу несколько компания. Еще в 1985 году в качестве основы для дальнейшего развития архитектуры разработчики выбрали платформу RISC.

В отличие от CISC, RISC предполагает разработку процессора с минимально необходимым количеством команд, но максимальной оптимизацией. Процессоры RISC намного меньше CISC, более энергоэффективны и просты.

Более того, ARM изначально создавался исключительно как конкурент x86. Разработчики ставили задачу построить архитектуру, более эффективную чем x86.

Еще с 40-х годов инженеры понимали, что одной из приоритетных задач остается работа над уменьшением габаритов компьютеров, а, в первую очередь — самих процессоров. Но вряд ли почти 80 лет назад кто-либо мог предположить, что полноценный компьютер будет меньше спичечного коробка.

Сегодня разберёмся, почему в процессорах и различных видах памяти используются транзисторы и как они работают. Без сложной теории и скучных формул - объясняю понятным языком!

Почему так популярны транзисторы и что это такое?

Транзистор - это устройство, позволяющее управлять проходимым через него током (потоком электронов)

Принцип работы транзисторов лучше всего понятен при использовании аналогий с устройствами повседневной жизни, например, рукомойником.

Есть бак или ёмкость с водой (аналогия - источник тока , например, аккумулятор). Ёмкость соединена трубопроводом (аналогия - провод ) с шаровым краном (аналогия - транзистор ). За шаровым краном идёт сливная труба, из которой может (по необходимости) выливаться вода.

Принцип работы транзистора аналогичен работе шарового крана Принцип работы транзистора аналогичен работе шарового крана

Если шаровой кран закрыт, вода не проходит через него. Если же повернуть ручку крана, то вода устремляется наружу.

Перейдём теперь к транзисторам.

В компьютеростроении наибольшее распространение получили полевые транзисторы с изолированным затвором , или MOSFET (Metal Oxide Semiconductor Field Effect Transistor). Они бывают разных форм и размеров. Вот так, например, выглядит силовой полевой транзистор:

MOSFET транзистор имеет 3 контакта со специальными названиями:

Исток - место, откуда начинает течь ток (аналог - конец шарового крана со стороны бака).
Сток - место, куда может течь ток (аналог - другой конец шарового крана со стороны сливной трубы).
Затвор - контакт, который управляет потоком тока (ручка шарового крана).

У MOSFET транзистора ток (поток электронов) хочет течь от истока к стоку , а затвор может или разрешить ему течь, или запретить.

Затвор тоже управляется током. Есть ток на затворе - транзистор пропускает ток от истока к стоку, нет тока - не пропускает.

Итак, MOSFET транзистор может либо проводить ток, либо не проводить его. Такое поведение отлично накладывается на компьютерную двоичную (булеву) логику: " 0 / 1 " или " включено / выключено ".

Современные микросхемы (микрочипы) процессоров, модулей оперативной (RAM) и постоянной (NAND) памяти состоят из миллиардов малюсеньких транзисторов, соединённых определённым образом. Как соединены транзисторы знают только сотрудники, занимающиеся разработкой архитектуры микрочипов.

Однако, в основе сложной архитектуры лежат простые соединения транзисторов для выполнения простейших двоичных (булевых) операций - "НЕ", "И" и "ИЛИ". Помните о таких из курса школьной информатики? Ничего, сейчас освежим память 😊

Операция "ИЛИ"

Рассмотрим тот же бак с водой. Только теперь к баку параллельно подключены 2 шаровых крана (смотрим рисунок). После шаровых кранов два трубопровода соединяются в один, из которого может вытекать вода.

Логическая операция "ИЛИ" на примере трубопровода. Вода не течёт, только когда оба крана закрыты Логическая операция "ИЛИ" на примере трубопровода. Вода не течёт, только когда оба крана закрыты

Два крана дают 4 возможных состояния трубопровода. Вода будет течь, когда открыт хотя бы один кран, и не будет течь, только если оба крана закрыты.

Вода течёт, когда открыт ИЛИ верхний, ИЛИ нижний, ИЛИ оба крана.

Сказанное отражено в таблицах:

Кажется, что я слишком сложно объясняю простые вещи 😊

Операция "И"

Соединим теперь бак с двумя кранами, идущими последовательно друг за другом.

Логическая операция "И". Вода вытекает из трубопровода, только когда оба крана открыты, то есть открыт кран 1 И кран 2. Логическая операция "И". Вода вытекает из трубопровода, только когда оба крана открыты, то есть открыт кран 1 И кран 2.

Здесь обратная ситуация. Вода будет вытекать только если оба крана открыты: кран 1, И кран 2.

Левая таблица - состояния трубопровода. Правая таблица - то же самое, но в булевой логике. Левая таблица - состояния трубопровода. Правая таблица - то же самое, но в булевой логике.

Операция "НЕ"

Операция " НЕ " - это инверсия состояния, или операция отрицания.

Попытаемся представить неправдоподобную ситуацию, что когда Вы закрываете кран, то вода начинает течь, но когда открываете - вода течь перестаёт. Сложно такое представить, не так ли? 😊

В компьютере если на входе имеется логическая "1", то после операции НЕ на выходе имеем логический "0" и наоборот.

Заключительная часть

Из цепочек простых логических элементов " И ", " ИЛИ " и " НЕ " строятся различные сложные устройства: сумматоры , шифраторы , дешифраторы и т.д. - не будем забивать ими голову и оставим это специалистам.

И процессоры, и чипы памяти состоят из миллиардов различных транзисторов со сложными соединениями друг с другом. Такие соединения позволяют управлять током (потоком электронов) нужным образом, производя различные логические и арифметические операции.

Я постарался объяснить всё "на пальцах", не вдаваясь в физику полупроводниковых переходов.


Недавно на хабре была статья о проектировании собственного компьютера, где автор хотел сначала строить компьютер из транзисторов, но затем решил продолжить на микросхемах 7400-серии из-за того, что на транзисторах ему это показалось слишком сложным и дорогим занятием.

Похожая задача интересовала и меня последние 3 года — но от изначальной идеи строить на транзисторах я не отказался, и сейчас могу рассказать свои соображения и показать текущие наработки, а также — хочу спросить вашего мнения о том, каким на ваш взгляд должен быть _серийный_ транзисторный декоративный компьютер. Но сразу нужно заметить, что работы впереди еще на пару лет :-)

Главный вопрос — зачем все это нужно, если есть FPGA и всякие Raspberry Pi?

Ответ простой:
1) Мне интересно этим заниматься в свободное время и
2) Декоративный компьютер (декоративный — это вопрос отношения к компьютеру, а не его внешности) — он как декоративные домашние животные: мопс не отгрызет ногу грабителю, а персидский котик не победит в бою метрокрысу. Но с ними интересно играть и показывать гостям — даже если в области вычислений, охраны и охоты они сильно уступают «боевым» аналогам.

Какие будут у нас требования к декоративному компьютеру?

  • Разработка под автоматизированную сборку. Руками паять по 5000 деталей на компьютер — поседеть можно.
  • Производительность — не существенна, главное чтобы 100тыс+ операций в секунду было (на уровне Радио-86РК). Даже 100тыс оп/с позволит решать очень многие задачи.
  • Практика показывает, что 64 КиБ памяти — реалистичный минимальный объем памяти. В 1-4 КиБ многое не влезет, потому уменьшать шину адреса меньше 16 бит не стоит.
  • Программирование — на C. Нельзя заставлять людей тратить своё свободное время на ассемблер (но если желание есть — то все карты в руки).
  • В базовой модели — из транзисторов сделан только сам процессор. Память и обвязка — может быть из микросхем. Полностью транзисторный вариант возможен в будущем, но это уже будет дальнейшее развитие (со своими ограничениями — более 1-2 КиБ памяти иметь будет затруднительно)
  • В процессоре — отключаемые светодиоды показывают состояние внутренних регистров (IP, аккумулятор, запись/чтение из памяти. )
  • Не слишком высокая цена. Себестоимость одного транзистора с обвязкой и автоматическим монтажом — около 2 рублей, соответственно, использовать больше 1000 транзисторов не желательно для серийного продукта. Это означает, что схема должна быть проще, чем i8080 (4500 транзисторов), i4004 (2300 транзисторов), и MT15 (

Взаимодействие с пользователем: Классическая реализация — это клавиатура + вывод на телевизор или VGA-монитор. Сделать удобную «свою» клавиатуру слишком сложно — нужно использовать стандартные PS/2 или USB. PS/2 клавиатуры уже редкость — а USB в транзисторном компьютере поддержать — будет затруднительно, без использования грязных хаков (вроде микроконтроллера).

Вероятно, оптимальным и простым решением может быть терминальный интерфейс — когда компьютер общается с внешним миром через последовательный порт (RS232), таким же образом можно загружать программы. Т.е. в простейшем случае транзисторный компьютер подключается к настольному компьютеру (или специализированному терминалу) через USB<>COM адаптер, и в любой программе-терминале (например Putty) можно с ним работать.

Также, нужна и возможность подключать внешние устройства через GPIO-пины.

Последовательный или параллельный ALU? 8 или 16 бит?: Поскольку количество транзисторов очень ограничено (<1000), придется жертвовать производительностью, и все операции проводить последовательно. Это очень сильно снижает требуемое количество транзисторов — фактически нужна логика на 1 бит и 16-и битные сдвиговые регистры. Но при тактовой частоте 1Мгц — мы будем иметь только 62тыс. операций в секунду, желательно конечно частоту иметь по-выше.

Архитектура процессора: Безусловно, полноценному компьютеру нужно иметь возможность писать в свою память кода. Потому, если есть возможность переложить это на внешнюю обвязку процессора — то Гарвардская архитектура (с раздельной памятью кода и данных) будет проще в реализации, и быстрее в работе. Но если обвязка процессора транзисторная — то придется использовать совместную память кода и данных. Так что тут выбор зависит от голосования в конце статьи :-)

Сам процессор — будет hard-wired (логика по работе с микрокодом, и сам микрокод — могли бы занять очень много транзисторов), неизбежно будет иметь очень простой набор инструкций (бинарная логика + add, сдвиги на 8 и 1 бит), и минимальное количество регистров (1-2) с возможностью использовать оперативную память как псевдо-регистры (как в 6502). Возможно, в простейшем случае все команды будут выполнятся по единой жесткой схеме ax = mem[imm] = mem[imm] op ax + бит условного перехода — это позволит уменьшить до минимума логику процессора, и положить максимальный объем работы на относительно быструю оперативную память.

Аппаратного стека и аппаратной обработки прерываний не будет — реализовать это можно и в софте: памяти у нас больше, чем транзисторов.

Напряжение питания: 3.3 и 5В? Большинство старых компьютеров используют 5В, а современная электроника — уже давно ориентируется на 3.3В для внешних соединений. Этот компьютер также будет использовать 3.3В — но потому, что низкоомные резисторы подтяжки будут потреблять в 2.5 раза меньше энергии — и соответственно, можно дальше уменьшить их сопротивление и увеличить скорость.

Безусловно, сделать процессор из менее чем 1000 транзисторов, пользуясь стандартными подходами к построению логических схем (даже с учетом последовательного ALU) не выйдет — и нужно применять различные схемотехнические компромиссы и ухищрения с целью уменьшения количества транзисторов.

Также немаловажен вопрос скорости — и в предыдущей статье на хабре и в MT15 — тактовая частота, на которой могли работать логические блоки получилась очень низкой. Для последовательного компьютера этот вопрос становится животрепещущим.

Скорость простой логики

Как оказалось, есть несколько простых трюков, которые очень сильно ускоряют логику на биполярных транзисторах: это добавление диода Шоттки для предотвращения входа транзистора в глубокое насыщение (выход из которого очень медленный, до 200-500нс), и опционально — добавление конденсатора на 25-50 пФ параллельно резистору базы для того, чтобы быстро перезаряжать паразитные емкости схемы. Ну и конечно, как и для любых скоростных цифровых схем — нужна развязка питания керамическими конденсаторами рядом с потребителями, и длинные цифровые дорожки в некоторых случаях будут требовать терминирование.

После применения этих хитростей получаем следующее (здесь обе оптимизации — в самой правой части схемы):



И работает это очень резво, на осциллограмме — 100нс/деление, фронты/задержки порядка 10нс:


Также, подбирая сопротивление резистора от базы к земле — можно управлять передаточной характеристикой логики, чтобы пороговое напряжение было примерно как у CMOS, около 3.3/2 = 1.65В. Такое изменение помимо помехоустойчивости даст еще одно важное преимущество: пологие фронты на входе — будут становится более резкими после прохождения логики. Также, если электричество нам экономить не нужно, мы можем выкинуть «верхний» транзистор, и заменить его резистором. Схема получается такая:


А передаточная характеристика:

3 цветные линии — это симуляция при разной температуре (20, 40 и 60 градусов), параметры биполярных транзисторов ощутимо плывут с температурой, и это обязательно нужно учитывать в более сложных схемах.

Более сложная логика

T-триггер — Т-триггер по тактовому сигналу изменяет своё состояние на противоположное. Может использоваться для построения параллельного счетчика инструкций, но использоваться вероятно не будет т.к. все будет работать последовательно. Принцип работы — бистабильный мультивибратор, по короткому отрицательному синхроимпульсу — переключается в противоположное состояние за счет конденсаторов параллельно резисторам R8 и R9.


Схема была реализована «в железе», вместе с инверторами. Инверторы показали ожидаемую скорость (т.е.

10-20нс фронты). Не пугайтесь качеству пайки — плата пережила множество экспериментов и вариантов транзисторов/параметров:


Полный сумматор — один из наиболее важных и сложных цифровых блоков. Каноническая реализация КМОП полного сумматора — требует 28 транзисторов:

Самый минимум, который приходилось видеть — из 6 транзисторов, с использованием конденсаторов (но надежность вызывает вопросы). Известные реализации на биполярных транзисторах — также требуют 22 транзистора.


Но можно ли обойтись всего 4 транзисторами? Я немного пораскинул мозгами, и получилось следующее:



Схему для симуляции в LTspice IV можно скачать тут.

Принцип работы следующий: т.к. порядок слагаемых не имеет значения, мы их просто аналогово смешиваем, и точно подбирая пороговое напряжение сдвоенного инвертора — сразу получаем перенос. Затем вычитая на транзисторе Q3 из аналоговой суммы перенос — получаем сумму. Конечно, все это требует точного подбора уровней срабатывания, и симуляции с учетом температуры. Диоды Шоттки — для предотвращения входа транзисторов в глубокое насыщение, что резко снижает скорость работы.

Использование полевых транзисторов возможно, и обеспечивает лучшую температурную стабильность, главное чтобы у них было достаточно низкое пороговое напряжение.

Сдвиговой регистр — самая ответственная часть этого транзисторного компьютера. Классическая реализация на синхронных D-триггерах — требует чудовищного количества транзисторов на бит.

У меня получилось уместиться в 2 транзистора на бит, со следующими особенностями:
1) Регистры — основаны на конденсаторах, и если их «не двигать» — то со временем данные пропадут. Но с полевым транзистором время хранения достаточно большое.
2) Передача данных на следующую ступень — биполярным транзистором. В половине случаев он работает в обратном, нестандартном режиме — пробивное напряжение намного меньше (но 3.3В должно держать), и коэффициент усиления намного ниже прямого включения (но я надеюсь будет достаточно).
3) Каждая следующая ступень — инвертирует сигнал, это не проблема когда нужен только последовательный доступ (например в случае регистров процессора). Если же будет нужен не инвертированный параллельный выход — нужно будет добавить 8 инверторов (т.е. 16-и битный сдвиговой регистр потребует 40 транзисторов, а не 32).
4) Остается проблема с насыщением биполярного транзистора.



График работы:

С этими компактными реализациями цифровых схем — уложиться в 1000 транзисторов думаю будет вполне реально.
На этом пока все — меня же ждет впереди чудовищно много работы

А теперь — несколько вопросов к читателям: Какие варианты кажутся вам приемлемыми?

Все электронные компоненты компьютера построены на основе транзисторов. Принцип работы транзистора был открыт тремя учёными в конце 40-х годов, работавшими в компании Bell Labs. Этими учёными были Вильям Шоклей (William Shockley), Джон Бардин (John Bardeen) и Вальтер Брэтнен (Walter Brettain). В 1954 году им была присуждена Нобелевская премия. Важность и значение открытия транзистора для дальнейших разработок в компьютерной отрасли равносильно открытию в своё время колеса и способов добычи огня.

Первый компьютер получивший название ENIAC (elecronic Numeracal Integrator and Computer), был разработан в начале 40-х годов.

Первый компьютер ENIAC

Компьютер ENIAC на основе электронных ламп.

В то время не были изобретены транзисторы, поэтому компьютер был изготовлен на основе тысяч громоздких и неудобных вакуумных ламп, а для его размещения потребовалось несколько комнат. Вес достигал 27 тонн. Вакуумные лампы сильно нагревались, были очень ненадёжными и требовали много электроэнергии. Когда ENIAC включали — огни близлежащего города каждый раз тускнели. ENIAC выполнял всего несколько функций. Сегодня эти операции делает любой карманный калькулятор.

Компьютеры и транзисторы

Первый транзистор заменял 40 электронных ламп, работал с большей скоростью, был дешевле и надёжнее.

Как можно заставить транзистор работать на нас? Говоря упрощённо, мы используем для этого программное обеспечение, которое и даёт указания компьютеру на включение и выключение транзисторов и в итоге приводит к решению поставленной задачи. В процессе выполнения любых программ происходит генерация последовательности электрических импульсов (цифровых сигналов) в виде наличия двух уровней напряжения. Данная последовательность и определяет работу транзисторов.

Естественно, чем более универсальным является программное обеспечение и чем больше транзисторов используется , тем более сложную и трудоёмкую работу может выполнить компьютер.

В компьютере используются миллионы транзисторов. Например процессор Intel core i7 содержит около миллиарда транзисторов.

Процессор intel core i7 под микроскопом

Процессор Intel core i7 под микроскопом

Транзисторы в процессоре, на материнской плате, различных картах расширения и периферийных устройствах реагируют на цифровые сигналы, поступающие от других устройств.

Таким образом современный компьютер представляет собой набор электронных переключателей – транзисторов.


Для подавляющего большинства пользователей то, как электрический ток из розетки превращается в компьютере или ноутбуке в реальные вычислительные действия, остаётся большой загадкой. Конечно, для того, чтобы пользоваться той или иной техникой, совершенно не обязательно знать, как она устроена.

Но что если разобраться с чудесным преобразованием всё-таки хочется? Выпускник технологического института в Джорджии Субходжит Чаттопадай (Shubhojit Chattopadhyay), успевший поработать в Oracle, Intel и Qualcomm, попытался объяснить всё «на пальцах».

Материя состоит из атомов, каждый из которых обладает определённым количеством электронов. Во Вселенной существует ещё множество элементарых частиц, но для того, чтобы понять работу компьютера, знаний об атомах и обращающихся вокруг их ядра электронов вполне достаточно, уточняет пользователь Quora.


Электроны являются носителями того, что называется электричеством. Чтобы использовать их, человечество научилось делать транзисторы, способные хранить или, наоборот, высвобождать электричество тогда, когда это необходимо.

Именно с их помощью «кодируются» базовые логические единицы 1 и 0. Например, у микроконтроллеров, предназначенных для управления электронными устройствами, логические уровни для единицы и нуля, например, могут быть пять и ноль вольт соответственно.

Из 8 бит состоит одна ячейка памяти комьютера (хотя её длина может быть и 16, и 32, и 64 бита). Совокупность множества блоков, состоящих из ячеек памяти, в итоге образует процессор и оперативную память компьютера.

Процессор (непосредственное переключение транзисторов в ячейках в положение ноль или один) управляется машинным кодом. Для удобства работы с ним был разработан так называемый язык ассемблера — машинно-ориентированный язык низкого уровня, благодаря которому машинный код представляется в удобночитаемом виде.

Так как язык ассемблера также довольно труден для восприятия человеком, для упрощения работы с ним были разработаны языки высокого уровня (С, C++ и другие). Любая программа, написанная на них, всё равно в итоге конвертируется в язык ассемблера, который в реальности и управляет переключением транзисторов в процессоре.

Все комьютерные программы таким образом (от браузеров до тех, что управляют действиями мыши) в целом действуют по одной и той же схеме: преобразуют действия пользователя в конкретные команды на С/С++, которые затем обрабатываются до уровня машинного кода и приводят к действию внутри процессора, то есть фактическому изменению вольт в транзисторах. Так электричество превращается в выполнение программ.

Как отмечает Субходжит Чаттопадай, описанная им система представляет собой очень сильно упрощённую модель, предназначенную в первую очередь для общего понимания.

Хочу заметить, что я «отупил» всё это до самого примитивного уровня. На самом деле я не коснулся в своём ответе и одного процента всех деталей. [. ] Но в целом всё так. Это именно то, что вы увидите, когда посмотрите на устройство компьютера со стороны.

Субходжит Чаттопадай, пользователь Quora

Сами компьютеры автор комментария называет настоящим чудом, на создание которого ушло больше 50 лет и силы миллионов умных людей.

Читайте также: