Как сделать процессор своими руками?

Центральный процессор – дома с нуля

Если в последние лет 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КГц, из микросхем только память и генерация синхросигнала. Производство таких транзисторов на кухне вполне реально наладить уже через год после ядерной войны

Как сделать процессор своими руками?

Дельта принтеры крайне требовательны к точности изготовления комплектующих (геометрия рамы, длины диагоналей, люфтам соединения диагоналей, эффектора и кареток) и всей геометрии принтера. Так же, если концевые выключатели (EndStop) расположены на разной высоте (или разный момент срабатывания в случае контактных концевиков), то высота по каждой из осей оказывается разная и мы получаем наклонную плоскость не совпадающая с плоскостью рабочего столика(стекла). Данные неточности могут быть исправлены либо механически (путем регулировки концевых выключателей по высоте), либо программно. Мы используем программный способ калибровки.
Далее будут рассмотрены основные настройки дельта принтера.
Для управления и настройки принтера мы используем программу Pronterface.
Калибровка принтера делится на три этапа:

1 Этап. Корректируем плоскость по трем точкам

Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.

Точки, по которым мы будем производить калибровку назовем аналогично (A, B, C) и позиция этих точек равна A= X-52 Y-30; B= X+52 Y-30; C= X0 Y60.

Алгоритм настройки:

  1. Подключаемся к принтеру. (В случае “крагозяб” в командной строке, необходимо сменить скорость COM порта. В нашем случае с 115200 на 250000 и переподключится)

    После чего мы увидим все настройки принтера.
  2. Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
    И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет.
  3. Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
  4. Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
  5. Теперь приступаем непосредственно к настройке наших трех точек.
    Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.

  • Последовательно перемещаясь между тремя точками (созданными ранее кнопками или командами) выясняем какая из них находится ниже всего (визуально) и принимает эту ось за нулевую, относительно нее мы будем менять высоту остальных двух точек.
  • Предположим, что точка A у нас ниже остальных. Перемещаем головку в точку B(Y) и клавишами управления высотой в Pronterface опускаем сопло до касания с нашим щупом, считая величину, на которую мы опустили сопло (в лоб считаем количество нажатий на кнопки +1 и +0.1)
    Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
    M666 Y0.75
    M500
    G28
  • Ту же операцию проделываем с оставшимися осями. После чего следует опять проверить высоту всех точек, может получится, что разброс высот после первой калибровки уменьшится, но высота все равно будет отличатся, при этом самая низкая точка может изменится. В этом случае повторяем пункты 6-7.
  • 2 Этап. Исправляем линзу

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

    Корректируется этот параметр т.н. дельта радиусом, который подбирается экспериментально.

    Калибровка:

    1. Отправляем головку на высоту щупа в любую из трех точек стола. Например G1 Z9 X-52 Y-30
    2. Сравниваем высоту центральной точки и высоту точек A,B,C. (Если высота точек A, B, C разная, необходимо вернутся к предыдущей калибровки.)
    3. Если высота центральной точки больше остальных, то линза выпуклая и необходимо увеличить значение дельта радиуса. Увеличивать или уменьшать желательно с шагом +-0,2мм, при необходимости уменьшить или увеличить шаг в зависимости от характера и величины искривления (подбирается экспериментально)
    4. Команды:
      G666 R67,7
      M500
      G28
    5. Подгоняем дельта радиус пока наша плоскость не выровняется
    3 Этап. Находим истинную высоту от сопла до столика

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

    • Командой M114 выводим на экран значение фактической высоты нашего HotEnd’а
    • Командой M666 L получаем полное значение высоты (Параметр H)
    • После чего вычитаем из полной высоты фактическую высоту.
    • Получившееся значение вычитаем из высоты щупа.

    Таким образом мы получаем величину недохода сопла до нижней плоскости, которое необходимо прибавить к полному значению высоты и и записать в память принтера командами:
    G666 H 235.2
    M500
    G28

    2 Способ:
    Второй способ прост как валенок. С “потолка”, “на глаз” прибавляем значение высоты (после каждого изменение не забываем “уходить” в home), добиваясь необходимого значения высоты, но есть шанс переборщить со значениями и ваше сопло с хрустом шмякнется об стекло.

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

    Создание микропроцессора в домашних условиях

    Появление ПЛИС совершило не меньшую революцию, чем появление первого микропроцессора. Шутка ли — используя язык описания аппаратуры появилась возможность создавать электронные устройства обладающие сложностью, которая была недоступна 30 лет назад даже крупным компаниям. Причём, получив при этом устройство обладающее быстродействием, недоступным обычным компьютерам. Разумеется, для достижения максимального быстродействия функционал устройства должен быть реализован аппаратно.

    Российских разработчиков микропроцессоров можно поделить на три категории. Прежде всего это компании, имеющие свои собтсвенные разработки с собственой системой команд. Самым ярким и живым примером является компания ЗАО «МЦСТ» и её процессоры семейства «Эльбрус». Хотя, на рынке представлены и другие компании, ведущие собственные разработки.

    Вторую категорию отечественных разработчиков микропроцессоров занимают компании, лицензировавшие IP-блоки (IP-Core) у ARM и MIPS. Такие компании, обычно, покупают IP-блоки ядра процессора и добавляют к ним свою обвязку, создавая кастомные «Системы на кристалле» (System On Chip — SoC). Ппреимуществом такого решения является получение готовых оптимизирующих компиляторов и великое множество готовых программных библиотек и решений.

    Наконец, третья категория это энтузиасты, чьё хобби — проектирование микропроцессоров. Мне известны, как минимум, два разработчика, создавших оригинальные микропроцессоры. Проявив чуточку старания, этих разработчиков вполне легко найти на специализированных форумах.

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

    Познакомиться с проектом создания микропроцессора и окунуться в мир на стыке программирования и электроники можно пройдя по следующей сслыке: Ядро «Эверест»

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

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

    вам не кажется, что идя той-же дорогой что и форварды — достаточно тяжеловато вырваться вперёд? но с другой стороны с нуля и своё, чтоб сделать усё — деградация КГБ.

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

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

    ЗЫ
    Конечно же есть способ, на уровне административных рычагов. Типа запретить более лучшее или там ещё дешевле. Но все же адекватные люди понимают — что это дорога в одиночное плавание, то бишь тихой заводи, то бишь деградации, то бишь застою, то бишь. ну вы помните из истории этот урок = вроде как многие слышали или проходили как минимум.

    Прежде всего скажу что административные рычаги не работают. Во первых, у разработчиков, живущих в глубинке, административных рычагов не существует. Во вторых, ни один чиновник не возьмёт на себя отвественность за решение в сфере IT, не проконсультировавшись со специалистами. Чиновники мудро переложили ответственность на посевные и венчурные фонды, типа «Сколково» и «Роснано». И это, по моему скромному мнению, правильно. Т.ч. из надежд на «добрых чиновников» наша команда выросла.

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

    Итак, чем же разработка в её текущем состоянии отличается от аналогов? Компактный код благодаря оптмизации системы команд под 32-х битную шину данных. Не очень сильный повод для городости, наверняка есть системы команд такие же эффективные, но при этом наша система команд легкорасширяема. При декодировании инструкций очень экономно используются логические элементы ПЛИС. Как следствие — в ПЛИС можно зашить прошивку целиком вместе с микропрограммами, получив при этом вполне законченное устройство. Это ответ на вопрос — «что вы готовы предложить сегодня».

    Всё меняется если спросить — «что должно получиться в результате». В результате «сердце» операционной системы реализуется в кремнии. Дабы не утомлять скучными техническими подробностями, замечу — эта идея не нова и активно использовалась при создании первых суперкомпьютеров. Впоследствии эти решения вытеснили универсальные процесоры, а часть идей трансформировалась во внешние устройства. В общем, если не случится форс-мажорных обстоятельств, то наша команда будет первой в мире, представившей аппаратную реализацию микроядра L4. Причём, шанс быть первыми весьма велик, пока лидеры индустрии — Intel, AMD, ARM и MIPS, а так же Altera и Xilinx, не начали работать в этом направлении.

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

    Наконец, об экономических причинах. Вы говорите:

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

    Во первых, цена на IP-блоки пока не названа. Вероятно, мы будем демпинговать, указывая на порядок меньшую цену по сравнению с IP-блоками зарубежных компаний. Касательно наворочености можно и поспорить — в нашей разработке интеллектуальной собственности наберётся на десяток патентов. Но об этом лучше поговорим как-нибудь в другой раз. Количество сэмплов и примеров — это проблема, но вполне решаемая. Со временем надеемся «обрасти жирком» в виде библиотек. Вот что реально беспокоит, так это потребители — технический опыт зачастую противоречит возможности убедить потенциального покупателя. Это действительно узкое место проекта.

    Что касается серийности и доставаемости, то в нашем случае это не проблема — интеллектуальная собственность это такой продукт, который можно продавать «по проводам», т.е. через Интернет.

    Таким образом бизнес-модель проекта видится в том, чтобы заинтересовать разработчиков ПЛИС и разработчиков встраиваемых систем — это единственная аудитория, которая способна вытянуть проект на следующий уровень без привлечения административного ресурса и, возможно, без привлечения инвестиций. Если Вы изучали наш сайт, то могли заметить что акцент статей направлен на то, чтобы убедить технарей в серьёзности проекта. И такой подход работает — Вы не увидите скепсиса в отношении проекта со стороны специалистов, но общественность постепенно привыкает и проникется доверием. В следующей версии демонстрационной прошивки мы постараемся сместить акцент в сторону практического применения и вызвать желание разработчи

    Пилим восьмибитный процессор. Часть первая: теория.

    Вступление к посту.
    Изначально я не хотел разбивать статью на несколько частей, ограничившись одним подробным постом только по окончанию работы. Но обстоятельства вынуждают меня переключиться на другую задачу, так что я решил просто сбросить сюда информацию о том, что уже сделано, иначе наверняка что-то забуду (это не учитывая того, что я УЖЕ забыл).
    К тому же объём информации предполагается таким, что его всё равно лучше разбить на несколько частей.
    Наслаждайтесь!
    Немногим ранее я рассказал о том, как меня увлекло проектирование логических схем в программе Logisim. Потренировавшись на простых схемах, я решил разработать процессор. И чтобы всё по настоящему, с исполнением машинного кода и полнотой Тьюринга.
    Для тех, кто не в теме — краткий ликбез. Процессор в электронике — устройство, которому на вход подаются команды и, иногда, их параметры (как правило, закодированные последовательностью битов), на выходе получаются результаты выполнения этих команд над этими данными. Пример простейшего процессора — схема, выполняющая инкремент/декремент поданного на вход значения в зависимости от наличия сигнала на другом входе.
    Полнота Тьюринга — свойство исполнителя (т.е. того же процессора) вычислять результат абсолютно любой вычислимой функции. То есть даже простейший тьюринг-полный процессор (если ему предоставить ресурс в виде бесконечной памяти) способен посчитать всё не хуже каких-нибудь пентиумов — только, скорее всего, программа будет сложнее, а исполнение займёт больше шагов. Пример того самого тьюринг-полного процессора — машина Тьюринга, придуманная знаменитым английским пидорасом великим английским математиком Аланом Тьюрингом; дабы не сверзиться в пучину всяких теорий вычислимости отправлю вас в Википедию. Впрочем, если вы пропустите этот момент — ничего страшного не случится, надеюсь — я обещаю писать так, чтобы понятно было даже человеку, далёкому от IT (но людям, знакомым с информатикой понять будет легче).

    Началу проектирования в Logisim предшествовали обширные прикидки логики на бумаге. Нужно было решить следующие вопросы:
    — Разрядность процессора.
    — Набор команд.
    — Архитектура.
    — Порядок следования данных (big-endian или little-endian).
    — и ещё куча всего, что просто не приходило сразу в голову.

    Сначала я хотел делать четырёхбитный процессор, который, в принципе, покрывал бы ту же машину Тюринга: ну а то, четырёх бит достаточно для операций из 16 команд над алфавитом в 15 символов + 0!
    Но я хотел сделать не простенькую игрушку, а что-то, работающее с архитектурой фон Неймана.

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

    Реализовать четырёхбитный процессор с архитектурой фон Неймана, конечно, можно. Но возникает слишком уж много ограничений.
    Например, если принять, что размер команды равен размеру данных (т.е. тем же четырём битам), то получаем ограничение в 16 инструкций, из которых только минимальный набор инструкций для работы с памятью займёт половину. Затем, процессор должен определить, что обозначают данные, которые ему передали. Константу? Номер регистра? Адрес в памяти? То есть после команды ещё должно быть что-то вроде маркера типа данных — а это ещё по два бита на параметр. И, наконец, четыре бита ограничивают максимально адресуемую память всего 64 байтами (16 адресов по 4 бита).
    Всё это решаемо. Можно, например, разграничить размер машинного слова: командное слово считать равным восьми битам, а команды брать четырёхбитные. И адреса тоже брать не четырёхбитные, а восьмибитные. И ещё маркеры типов данных куда-нить пристроить. И дрючиться, высчитывая смещения в памяти, вместо работы с аккуратными идентичными последовательностями.
    Но почему бы сразу не сделать восемь бит, благо в Logisim разрядность элементов переключается на лету? На сём и остановился.
    Кстати, первый процессор от Intel 4004, хоть и был четырёхбитным, мог адресовать 640 байт памяти, а команд в нём было аж 46. Впрочем, это достигалось тем, что он, как раз, был построен по Гарвардской архитектуре — там с этим проще.

    С набором команд тоже пришлось подумать. Делать много команд — усложнять разработку процессора, делать мало команд — усложнять разработку под процессор. Так что я исходил из того, что нужно реализовать самые основные, а потом, по мере необходимости, добавлять остальные.
    Затем я посмотрел, с чем будут работать команды. Что будет в моём процессоре:
    — Восемь восьмибитных регистров, от A до H (один из которых флаговый, один — адресный, остальные пока решено сделать регистрами общего назначения).
    — Память (восьмибитный процессор адресует 256 адресов по восемь бит — итого аж два килобайта).
    — Отдельный стек (об этом ниже).
    — Ну и просто числа (константы).
    Изначально — четыре типа данных, на перечисление которых нужно два бита. Если у каждой команды по два параметра (например, MOV A,B), то получается, что нужно засунуть набор «команда»+4 бита в пространство, кратное восьми битам. Брать шестнадцать бит — несколько избыточно, восемь — как-то маловато (четыре бита на команду — не от этого ли я хотел убежать?).
    Но, тем не менее, я выбрал именно восьмибитный размер опкода. Я рассудил так: вряд ли меня хватит для реализации более чем 16 полноценных команд. А если хватит — расширить размер опкода можно будет без проблем.

    Как сделать свой собственный процессор?

    Сообщений: 150
    Из: Москва

    Уже давно меня интересует тема: почему в России не выпускают собственных процессоров? То есть их выпускают, но не для массового потребления (см. http://www.mcst.ru/). Как мне кажется, создание процессора в современных условиях является не столь сложной задачей, посильной даже небольшой компании. Я имею ввиду различные проекты открытого аппаратного обеспечения и прежде всего OpenSPARC (http://www.opensparc.net/). На сегодняшний день создана лишь одна реализация S1 core: http://ru.wikipedia.org/wiki/S1_Core.
    Из этого у меня появляются такие вопросы:
    1) Какие трудности возникают при разработке процессора на основе открытого кода?
    2) Где в России могут сделать опытную партию процессоров, если я прихожу и даю им код на Verilog? Сколько такое удовольствие может стоить?
    Если послушать речи наших властей, то они серьёзно намерены поддерживать инновационные технологии. Другое дело, что коррупция съест большую часть средств. Так почему бы не собрать людей и не попробовать выпустить что-то своё на базе OpenSPARC T2? В нём 8 ядер по 8 потоков в каждом: мы могли бы конкурировать с core i7!

    Сообщений: 8 380
    Из: ада

    Фабрик нет. Их строить надо. Денег отдать надо много. Опять же из-за коррупции часть денежных средств уйдет в небытие.
    Не надо никогда сравнивать x86 совместимые процы с ARM-, RISC- и прочими архитектурами. Там отличий очень много.

    Сообщений: 150
    Из: Москва

    Не обязательно иметь свои фабрики. Та же Sun выпускала свои процессоры совместно с Fujitsu и Texas Instruments. Интересно, в России есть такие фирмы, которые выпускают СБИС под заказ?

    Сообщений: 4 708

    В Зеленограде наверняка есть. Я слышал, что там даже планируют строить фабрики по производству микросхем по 45-нм нормам техпроцесса. А бабла на эту вашу затею точно немеряно нужно. Можете для примера поискать информацию по процессору Эльбрус 2000 (E2K), который Лужков обещал финансировать. Там, если не ошибаюсь, где-то озвучивали цифры по необходимим затратам на этот проект.

    Я смотрю, не закрыли тему, развиваются даже:

    Развитие микропроцессорной архитектуры «Эльбрус» предполагается вести в направлении создания системы на кристалле, увеличения числа процессорных ядер и повышения тактовых частот путем включения большего числа блоков, реализованных с использованием технологии полностью заказного проектирования, а также развития технологии эффективной совместимости с архитектурами IA-32 и Intel 64 [5].

    В 2009 году завершается разработка микропроцессора «Эльбрус-S» (техпроцесс – 90 нм, тактовая частота – 500 МГц), представляющего собой систему на кристалле. В него встроены каналы доступа в память, включая контроллеры DDR2 с общей пропускной способностью 8 Гбайт/с, а для создания многопроцессорных систем на общей памяти – три дуплексных канала когерентного обмена с другими процессорами и канал доступа к внешним устройствам. Пиковая производительность микропроцессора возрастет пропорционально тактовой частоте, а производительность на реальных задачах – в два раза по сравнению с микропроцессором «Эльбрус».

    Параллельно начата реализация гибридного микропроцессора, содержащего два ядра с архитектурой «Эльбрус» и четыре специализированных ядра для обработки сигналов (техпроцесс – 90 нм, тактовая частота – 600 МГц). Пиковая производительность этого микропроцессора превысит 30 GFLOPS.

    В планах МЦСТ – освоить технологические нормы 65, 45 и 32 нм, поднять тактовую частоту микропроцессора выше 2 ГГц и увеличить число ядер в нем до 16. Это позволит получить универсальный микропроцессор терафлопного диапазона, а за счет развития линии гибридных микропроцессоров поднять производительность еще на порядок. При проектировании предполагается использовать технологию энергосбережения.

    Сообщение отредактировал jem — May 12 2010, 09:39

    Как сделать апгрейд компьютера своими руками?

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

    Самая частая проблема компьютеров, которые часто используются – пыль. Она препятствует теплообмену и может даже коротить контакты, что приводит к самым разным проблемам.

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

    Есть несколько способов, каждый из которых имеет свои достоинства и недостатки. Можно их комбинировать, не обязательно ограничиваться только одним. Способы очистки компьютера от пыли:

    • Кисточка и сухая салфетка. Самый доступный и долгий путь избавления от пыли. На самом деле, при должном подходе этого вполне хватит. Но вам придется полностью разобрать системный блок и снять крышку с блока питания для того, чтобы добраться до самых неудобных мест. Из преимуществ можно выделить то, что вам не придется выносить компьютер на улицу и пыли в помещении будет минимум.
    • Сжатый воздух. Самый эффективный, простой и наиболее грязный способ почистить ПК. Лучше всего использовать автомобильный компрессор, но сжатый воздух в баллончиках тоже подойдет. Разница в давлении, полноразмерный компрессор выдует все остатки пыли, а баллончик может оставить небольшой намагниченный слой пыли на платах.
    • Пылесос. Чтобы средний пылесос всосал пыль, нужно ее согнать с поверхности кисточкой или тряпкой. Положительный момент – минимум грязи. Отрицательный – разбирать компьютер все-таки придется.

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

    Отвод тепла

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

    Что нужно апгрейдить?

    Сделайте небольшой тест – запустите несколько современных игр с высокими системными требованиями. Это может быть один из последних Assassins Creed, Total War, Cyberpunk 2077, The Wither 3, Watch Dogs 2, Red Dead Redemption 2 или что-угодно на ваш вкус, лишь бы эта игра могла нагрузить ваш компьютер. Если вы фанат онлайн-игр, то показательными проектами для вас будут World of Tanks, Black Desert, Battlefield, ARK Survival Evolved и другие.

    Теперь разберем проблемы и их решение:

    • Низкий FPS. Видеокарта не справляется с графикой в игре. Обратите внимание на загрузку графического процессора по время игры. Есть небольшая вероятность, что процессор не может нагрузить видеокарту на 100%.
    • Тормоза и зависания. Все зависит от частоты, если зависания долгие и неравномерные, то беда с процессором. Короткие и равномерные зависания – виновата оперативная память, а точнее ее недостаток. Если тормозить начинает через несколько минут игры, то это тоже вопросы к оперативной памяти.
    • Долгие загрузки системы и игр. Медленный жесткий диск, в редких случаях может быть из-за слабого процессора. Надо смотреть на график загрузки в диспетчере задач.
    • Самопроизвольные выключения. Слабое охлаждение процессора, видеокарты или блока питания. В редких случаях может быть из-за перегрева цепи питания на материнской плате. Нужно замерять температуру с помощью специального ПО, сделать это поможет программа Everest, но есть еще много других вариантов, которые имеют схожий функционал.

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

    Как выбрать и заменить нужное железо

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

    Видеокарта

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

    Как выбрать видеокарту

    Частоты, объем памяти, частота памяти и ширина шины имеют огромное значение для производительности, но бесполезны для обычного пользователя. Самый простой способ узнать мощность карточки – это посмотреть сравнительную таблицу. Все тесты проводились на максимальных настройках графики. Указано значение FPS в FullHD/2K/4K. Тут подобраны пусть и не самые раскрученные игры, но самые новые, это свежие проекты 2021 года.

    Кадров в секунду в FullHD/2K/4K Outriders The Medium RTX Off The Medium RTX ON+DLSS 2.0 King Arthur Knight’s Tale Nioh 2 The Complete Edition HITMAN 3
    RTX 3090 131/131/84 110/88/54 83/69/44 288/218/124 120/114/73 133/133/99
    RTX 3080 131/131/78 104/80/49 78/63/41 268/202/116 119/103/66 133/133/9
    RTX 3070 131/99/55 80/63/37 64/49/31 191/146/84 93/74/45 133/107/65
    RTX 3060 Ti 121/87/48 70/55/33 56/43/27 168/128/74 82/65/40 133/94/57
    RTX 2080 Ti 131/102/56 83/63/37 57/42/25 214/157/88 102/79/49 133/116/68
    RTX 2080 SUPER 122/87/50 71/52/31 55/40/23 185/134/75 101/76/48 133/98/55
    RTX 2080 113/8146 66/48/29 51/37/21 171/124/6 93/71/45 130/94/57
    RTX 2070 SUPER 103/73/42 60/44/26 46/34/19 156/113/63 85/64/41 119/82/46
    RTX 2070 91/65/37 53/39/23 41/30/17 138/100/56 75/57/36 105/73/41
    RTX 2060 SUPER 87/62/36 51/37/22 39/29/16 132/96/56 72/55/35 101/70/39
    RTX 2060 80/57/30 48/36/20 37/26/15 116/83/47 63/49/31 94/66/37
    GTX 1660 Ti 67/48/25 40/30/17 Не поддерживает RTX и DLSS 90/70/39 53/41/26 79/55/31
    GTX 1660 SUPER 66/47/25 39/30/16 Не поддерживает RTX и DLSS 95/68/39 52/40/25 77/54/30

    Комфортный FPS – 60 кадров. В таблице указан средний показатель, который может немного колебаться до 10-15% в обе стороны. Так как нагрузка в играх не равномерная, лучше брать с небольшим запасом. Оцените свой бюджет и имеющуюся мощность процессора, чтобы определить на какое разрешение лучше рассчитывать.

    Что нужно учесть при замене видеокарты

    Самое главное – мощность блока питания. Одна видеокарта может «скушать» энергии больше, чем все остальные компоненты ПК вместе взятые. Сравните необходимую мощность БП и наличие разъемов дополнительного питания. Если у вас модульный блок питания, убедитесь, что у вас есть необходимые провода или переходники. Недостаток питания может обломать любой апгрейд.

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

    Есть еще более условный показатель – отвод тепла из корпуса ПК. Сама видеокарта может гонять воздух вокруг своего радиатора, чтобы охлаждать его, но корпус должен обеспечить ей поставку свежего холодного потока. Для этого на нем должны быть установлено минимум 2 вентилятора 120 мм на забор воздуха (передняя часть корпуса) и минимум 1 вентилятор сзади для выдувания воздуха из корпуса. Так работает охлаждение на большинстве корпусов. Но есть уникальные модели с особой схемой продувки, в таком случае нужно убедится, что все слоты для вентиляторов заняты, а они направлены в нужную сторону.

    Процессор

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

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

    Какое разрешение потянет процессор?

    Условно камушки можно разделить на три категории:

    • 2-4 ядра – FullHD;
    • 4-6 – 2К;
    • 8 и больше – 4К.

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

    Как заменить процессор

    Для замены камушка вам потребуется термопаста. Размазать ее можно пластиковой картой или просто пальцем (оберните его в полиэтилен или пищевую пленку).

    • Начните с того, что отключите вентилятор, который расположен на радиаторе охлаждения ЦП.
    • Снимите сам радиатор. Крепления быстрозажимные, отвертки не надо.
    • Аккуратно вытащите радиатор из корпуса и спиртом промойте место крепления от старой термопасты. Очень важно не повредить и не поцарапать обе прилегающие плоскости – поверхность процессора и вышлифованную контактную платформу радиатора.
    • Отогните лапку крепления процессора и снимите старую модель. А на ее место установите новый процессор и зажмите его лапкой.
    • Смажьте процессор или контактную платформу радиатора термопастой. Используйте не больше спичечной головки термопасты. Чем меньше – тем лучше.
    • Установите радиатор и подключите вентилятор к материнской плате.
    • Все, можно запускать компьютер, ждать ничего не нужно.

    Хитрость с ЦП

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

    При увеличении вольтажа и частоты увеличивается тепловыделение, но с заменой радиатора можно легко решить и эту проблему. Так что, выбрав процессор с припиской «K», можно легко увеличить мощность. Есть небольшой риск перегрева цепей питания на материнской плате, но на них также можно установить маленькие алюминиевые решетки-радиаторы, которые помогут отвести тепло с этой линии.

    Оперативная память

    Если с видеокартами и процессорами все просто: чем мощнее – тем лучше, то с оперативной памятью еще проще – минимум 8 GB, лучше 16, если планируете играть на 4К, то 32 GB. Частоту выбирайте под возможности вашего процессора и материнской платы.

    А если нужен гарантированно правильный подбор комплектующих при апгрейде или решение отдельных проблем – помогут специалисты HYPERPC Upgrade Center.