- Центральный процессор – дома с нуля
- Общие архитектурные заметки:
- Маленькие хитрости
- BMOW – Big Mess of Wires
- MyCPU
- Harry Porter’s Relay Computer
- Magic-1
- Mark-1 Forth computer
- Как сделать свой процессор своими руками
- реклама
- Как создать микропроцессор в домашних условиях. Энтузиаст создал интегральную схему с 1200 транзисторами у себя в гараже
- Прошлая его ИС имела лишь 6 транзисторов
- Строим декоративный транзисторный компьютер — шаг 1
- Подстановка задачи и архитектура
Центральный процессор – дома с нуля
Если в последние лет 40 для выполнения задачи нужен микропроцессор – единственный рассматриваемый вариант это купить готовый. Ну или в крайне редких случаях «накатить» стандартное конфигурируемое FPGA ядро (например Nios II) с парой дополнительных инструкций. Многие сейчас даже не могут представить, что процессоры могут получаться каким-то другим путем 🙂 Это всё равно что считать что продукты беруться в магазине, а вырастить их самому – абсолютно невозможно.
С одной стороны, зачем помнить основы технологии если все производится промышленно? На мой взгляд – чтобы быть уверенным, что технология не будет утеряна, что даже если случиться ядерная война компьютеры можно будет собирать из подручных материалов (так же как и с продуктами в начале 90 — многим пришлось возвращаться к технологии 100-летней давности из-за краха инфраструктуры производства и доставки).
Оказывается есть такие люди, которые до сих пор в качестве хобби делают центральные процессоры из дискретных компонент(транзисторов, реле) и микросхем низкой степени интеграции (счетчики, регистры). Единственные применяемые микросхемы – память (оперативная и перепрограммируемая).
В этой статье я хочу рассказать кратко об архитектуре и о нескольких реально работающих процессорах, сделаных в домашних условиях.
Общие архитектурные заметки:
Большинство самодельных процессоров работают (почти как и большинство современных процессоров )– на микрокоде, считываемого из flash/SRAM-памяти – тут обычно и находится самое медленное место: за последние лет 20 прогресс в латентности работы flash памяти остался почти на месте, и для широко доступных микросхем составляет 70нс, следовательно быстрее 14 МГц на процессоре на микрокоде во флеше не разогнаться. Процессоры обычно имеют шину данных 8 или 16 бит, адресную шину 16-20-24 бита (ограничивать себя 65Кб никому не хочется, особенно с нынешними ценами на память). ALU(вычислительное ядро) делается либо однобитным (т.е. для 16-и битной операции надо 16 тактов), либо используется готовое ALU на 2-4 бита (из которых собирается 8-16-и битное ALU). Процессоры на микрокоде обычно и код и данные хранят в одной и той же памяти (архитектура Фон-Неймана). RISC-подобные процессоры без микрокода обычно работают по Гарвардской архитектуре (данные и код отдельно, зачастую программа не может ничего писать в память кода). В абсолютно всех самодельных процессорах длина всех инструкций одинакова – переменная длина инструкций создает трудности даже при разработке «промышленных» процессоров. В качестве памяти используют обычно SRAM – раньше её использовали только для кэша из-за большой цены. От обычной SDR/DDR памяти отличается крайней простотой и неприхотливостью интерфейса, не нужно следить за «обновлением» памяти (в обычной SDR/DDR памяти данные выживают всего 32-64 миллисекунды).
Маленькие хитрости
Несмотря на то, что обычно используются простые микросхемы, есть некоторые хитрости, которые раньше(30 лет назад) были не доступны: готовые ALU (не совсем простая микросхема), SRAM память(например 1Мб SRAM памяти — это около 48млн транзисторов) и использование EEPROM-памяти как ALU (например, на микросхеме памяти 65кб 8бит можно сделать сумматор или мультипликатор, а на 1Мб микросхеме можно «проводить» 16 разных 8-битных операций — FPGA использует тот же принцип для построения произвольных логических схем). Также, сейчас можно использовать намного больше памяти для хранения микрокода и самого программного кода в памяти.
А теперь несколько самых выдающихся реализаций:
BMOW – Big Mess of Wires
http://www.stevechamberlin.com/cpu/bmow1
Собран из простых микросхем. Тактовая частота – 2 МГц.
MyCPU
http://www.mycpu.eu/
Собран из простых микросхем. Тактовая частота – 8 МГц. Развитая переферия – вплоть до доступа к сети. Кстати, сам Web-сайт http://www.mycpu.eu/ обслуживается именно этим самодельным сервером. Конструкция посторяемая, собрано много экземпляров.
Harry Porter’s Relay Computer
harry/Relay/index.html
Собран на 415 реле, на взгляд около 7Гц 🙂
Magic-1
200 простых микросхемах, рабочая частота до 4МГц. Порт Minux, сам сайт работает на этом самодельном сервере.
Mark-1 Forth computer
http://www.holmea.demon.co.uk/Mk1/Architecture.htm
Собран на простых микросхемах, рабочая частота 1МГц. Как нетрудно понять из названия, оптимизирован для программ на языке Форт. Микрокод хранится в диодной матрице, вместо «неспортивных» микросхем флеш-памяти.
http://www.6502.org/users/dieter/
Самое вкусное на последок: 16-и битный процессор, собранный на самых простых низкочастотных биполярных транзисторах (около 3000 штук). Тактовая частота – 500КГц, из микросхем только память и генерация синхросигнала. Производство таких транзисторов на кухне вполне реально наладить уже через год после ядерной войны
Источник
Как сделать свой процессор своими руками
Сегодня на рынке высокопроизводительных процессоров тесно. Если отбросить в сторону мобильные архитектуры, где существует целый ряд перспективных наработок, то только две компании всё ещё способны выпускать настольные и серверные Х86 процессоры. Вообще, в последнее время настольный сегмент атакует Apple. Инженеры яблочной компании создали настоящего монстра, который способен тягаться с самыми быстрыми процессорами конкурентов. Мало того, он выполнен на архитектуре ARM и обладает отличной энергоэффективностью. Возможно, в будущем примеру Apple последуют и другие, но пока компании довольствуются смартфонами и планшетами, предпочитая не выходить из мобильного сектора.
реклама
Всё это говорит о чрезвычайно высокой сложности разработки, предполагающей огромные вложения. Как оказалось, при должном усердии и знании предмета можно даже в домашних условиях создать процессор. На самом деле созданный студентом по имени Сэм Зелооф чип правильнее относить к интегральной схеме, но сам он гордо величает его процессором. Поэтому не будем спорить с автором 10-микронного камня. Весь процесс доступен на видео ниже, не ждите длительных описаний, Сэм не очень разговорчив, предпочитая останавливаться на основных моментах. Это значит, что вы вряд ли сможете повторить успех парня в домашних условиях.
В качестве источника для создания чипа он использовал 12 микросхем Z2, каждая из которых включала 100 транзисторов, произведённых по нормам 10 микрометров (не путать с нанометрами). Это значит, что внутри расположилось 1200 транзисторов. Сэм отмечает, что первый процессор Intel 4004 был построен по аналогичному техпроцессу на 10 микрометров и включал 2000 транзисторов. На видео можно заметить, что энтузиаст использует пусть и устаревшее, но весьма дорогостоящее оборудование, которое точно не встретишь в доме каждого человека.
Во время создания процессора использовались так называемые грязные химикаты, что позволило обойтись без доступа к сверхчистому помещению. Сам разработчик отмечает, что каждый следующий чип будет отличаться от предыдущего, поэтому наладить производство идентичных интегральных схем в домашних условиях нереально. К сожалению, Сэм Зелооф не рассказал о производительности доморощенного процессора. Поэтому мы можем только догадываться на что способно такое чудо инженерной мысли.
Источник
Как создать микропроцессор в домашних условиях. Энтузиаст создал интегральную схему с 1200 транзисторами у себя в гараже
Прошлая его ИС имела лишь 6 транзисторов
Современные процессоры опираются на сверхтонкие техпроцессы и включают миллиарды транзисторов, упакованных в крошечных чипах. Можно ли создать подобный CPU дома? Конечно, нет, но всё же создать в домашних условиях примитивный процессор вполне возможно.
Несколько лет назад известный в определённых кругах энтузиаст-самоучка Сэм Зелуф (Sam Zaloof) создал первый в своём роде чип Z1 в домашних условиях. Он состоял всего из 6 транзисторов. Теперь Зелуф решил повторить эксперимент, создав нечто существенно более сложное. И у него получилась интегральная схема Z2 с 1200 транзисторами, выполненными по техпроцессу 10 мкм. Для сравнения, Intel 4004 — первый в мире коммерчески доступный однокристальный микропроцессор — производился по тому же техпроцессу и содержал 2300 транзисторов.
Процесс изготовления достаточно подробно описывается как на сайте Зелуфа, так и в видео. Основное — не было никаких чистых помещений и чистых химикатов.
Для изготовления ИС энтузиасту понадобилась вода, алкоголь, ацетон, фосфорная кислота, фоторезист, 2-процентный раствор гидроксида калия, SOG-плёнка Filmtronics P509, 1-процентная плавиковая кислота и азотная кислота. Последние два вещества можно заменить. Что касается оборудования, нужно иметь электроплиту, трубчатую печь, специальный аппарат для литографии, микроскоп и вакуумную камеру для плавки металла.
Источник
Строим декоративный транзисторный компьютер — шаг 1
Недавно на хабре была статья о проектировании собственного компьютера, где автор хотел сначала строить компьютер из транзисторов, но затем решил продолжить на микросхемах 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 (
3000 транзисторов), не смотря на требование 16-и битной шины адреса.
Взаимодействие с пользователем: Классическая реализация — это клавиатура + вывод на телевизор или VGA-монитор. Сделать удобную «свою» клавиатуру слишком сложно — нужно использовать стандартные PS/2 или USB. PS/2 клавиатуры уже редкость — а USB в транзисторном компьютере поддержать — будет затруднительно, без использования грязных хаков (вроде микроконтроллера).
Вероятно, оптимальным и простым решением может быть терминальный интерфейс — когда компьютер общается с внешним миром через последовательный порт (RS232), таким же образом можно загружать программы. Т.е. в простейшем случае транзисторный компьютер подключается к настольному компьютеру (или специализированному терминалу) через USB<>COM адаптер, и в любой программе-терминале (например Putty) можно с ним работать.
Также, нужна и возможность подключать внешние устройства через GPIO-пины.
Последовательный или параллельный ALU? 8 или 16 бит?: Поскольку количество транзисторов очень ограничено (
Схему для симуляции в LTspice IV можно скачать тут.
Принцип работы следующий: т.к. порядок слагаемых не имеет значения, мы их просто аналогово смешиваем, и точно подбирая пороговое напряжение сдвоенного инвертора — сразу получаем перенос. Затем вычитая на транзисторе Q3 из аналоговой суммы перенос — получаем сумму. Конечно, все это требует точного подбора уровней срабатывания, и симуляции с учетом температуры. Диоды Шоттки — для предотвращения входа транзисторов в глубокое насыщение, что резко снижает скорость работы.
Использование полевых транзисторов возможно, и обеспечивает лучшую температурную стабильность, главное чтобы у них было достаточно низкое пороговое напряжение.
Сдвиговой регистр — самая ответственная часть этого транзисторного компьютера. Классическая реализация на синхронных D-триггерах — требует чудовищного количества транзисторов на бит.
У меня получилось уместиться в 2 транзистора на бит, со следующими особенностями:
1) Регистры — основаны на конденсаторах, и если их «не двигать» — то со временем данные пропадут. Но с полевым транзистором время хранения достаточно большое.
2) Передача данных на следующую ступень — биполярным транзистором. В половине случаев он работает в обратном, нестандартном режиме — пробивное напряжение намного меньше (но 3.3В должно держать), и коэффициент усиления намного ниже прямого включения (но я надеюсь будет достаточно).
3) Каждая следующая ступень — инвертирует сигнал, это не проблема когда нужен только последовательный доступ (например в случае регистров процессора). Если же будет нужен не инвертированный параллельный выход — нужно будет добавить 8 инверторов (т.е. 16-и битный сдвиговой регистр потребует 40 транзисторов, а не 32).
4) Остается проблема с насыщением биполярного транзистора.
График работы:
С этими компактными реализациями цифровых схем — уложиться в 1000 транзисторов думаю будет вполне реально.
На этом пока все — меня же ждет впереди чудовищно много работы
А теперь — несколько вопросов к читателям: Какие варианты кажутся вам приемлемыми?
Источник