пятница, 25 декабря 2020 г.

Cobalt-68: Предыстория проекта

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

Предыстория

В прошлый раз мы остановились на том, что я создал макет комепьютера на базе классического процессора Z80 (точнее, его "осовремененного" CMOS-аналога). На тот момент у меня в планах было сделать полноценную компьютерную систему в стиле микрокомпьютеров 80-ых.  Моя дальнейшая работа в области компьютеростроения базировалась на этом проекте, но приобрела некотрый сюжетный поворот, о котором я хочу рассказать чуть подробнее.

Начну издалека. Как вы, безусловно, знаете мир настолько и серверного вычисления достаточно прочно занят x86-процессорами (хотя по общему количеству вычислительных устройств ARM-архитектура уже вышла на первое место, в основном за счёт мобильных и встраиваемых устройств). Эта архитектура названа в честь легендарного процессора 8086, вариант которого который был выбран IBM для создания своего персонального компьютера (об этом я писал ранее). Именно IBM PC дал этому процессору и его наследникам "путёвку в жизнь", обеспечив его архитектуре почётное лидерское место на многие годы. Что интересно, IBM PC дал путёвку в жизнь и другому важному феномену IT-индустрии - компании Microsoft.  Кто знает, как бы выглядела сейчас наша индустрия, сделай инеженеры IBM в тот момент другой выбор...

Intel 8080 - первый
культовый процессор
В IBM PC использовался процессор 8088 - "усечённый" вариант знаменитого 8086. Этот процессор был разработан на базе другого очень успешного процессора - 8085, который являлся усовершенствованной версией 8080, который, в свою очередь, развивал идеи, заложенные в самом первом в истории 8-битном микропроцессоре - 8008. 

Процессор 8080 ста
Фредерико Фаджин -
разработчик первого в мире
микропроцессора 4004
и первого 8-битного
процессора 8008
л иконой первой "гаражной" волны персоналок. Его разработчик -  Фредерико Фаджин - после этого проекта ушёл из Intel и основал собственную компанию Zilog, которая стала выпускать процессоры Z80. Этот процессор был развитием 8080, сохранив бинарную совместимость со своим "папой", и став ему прямым конкурентом.

Первые процессоры делались в условиях недостатка опыта и более жёстких технических ограничений, что привело к созданию "вычурной" архитектуры команд. Их потомки унаследовали эти "родимые пятна" первых шагов прогресса, добавив к ним дополнительные навороты для сохранения совместимости. Когда я начал глубже изучать ассемблер Z80 я всё больше и больше разочаровывался в его архитектуре и системе команд. По сравнению   с моей собственной разработкой (писал тут) it looked like a mess. Я ни в коем случае не претендую на превосходство в инженерном искусстве над Фараджем, мой проект был сделан с совершенно иными целями в условиях намного более доступных и мощных технологий. Тем не менее, моё эстетическое чувство оказалось оскорблённым и я решил поискать альтернативу.

Альтернатива была найдена в виде архитектуры Motorola 68000 (часто пишут M68K). Эта компания так же конкурировала за рынок 8-битных микропроцессоров со своей предыдущей серией 6800, хотя её процессоры не были так же популярны как Intel-овские. Разработка этого процессора началась в 1976 году. В отличие от Intel, инженеры Motorola нацелились на создание совершенно новой, более совершенной архитектуры без цели сохранить бинарную или идологическую совместимость с предыдущими наработками. В результате появился процессор MC68000 - 32-битный процессор с 16-битной шиной данных (напомним, его "сверстник" 8086 был 16-битным). Архитектура команд этого процессора очень изящна и элеганта. Видно, что её авторы изрядно вдохновлялись другой легендарной архитектурой PDP-11, которая до сих пор считается эталоном CISC-архитектур. 

DEC PDP-11
Этот процессор предоставляет очень удобную схему с шестнадцатью 32-битными регистрами (восемь для данных и столько же для адресов) и плоскую модель памяти с 32-битными адресами, разделение на пользовательский и супервизорский режимы, удобную схему 8-,16-,32-битных команд и другие хорошие вещи. Надо ли говорить, что я влюбился в этот процессор с первых страниц его datasheet`а, поэтому свой следующий проект я решил делать именно на базе этой архитектуры. 

IBM в рамках проекта IBM PC рассматривала вариант использования процессоров 68000-серии, но к тому моменту они ещё не были полностью готовы. Этот пример хорошо показывает, что оказаться в нужное время в нужном месте намного важнее, чем иметь технологическое превосходство. "Motorola, with its superior technology, lost the single most important design contest of the last 50 years"  Walden Rhines (link).

Тем не менее, разработки Motorola нашли своё применение в большом количество компьютерных изделий. Например, на них были основаны станции Sun Microsystems и некоторые продукты Apple. Благодаря этому сейчас нет проблем найти процессоры любой модели из этой линейки процессоров. 

В следующей заметке я начну подробный рассказ о своём проекте, а пока для затравки рекламное фото моего компьютера. Здесь вы видите систему с потрясающей тактовой частотой в 8 МГц, огромной памятью в 512 килобайт, текстовым видеоадаптером (цветным! поддерживает целых два цвета - чёрный и белый) и клавиатурой. 

В следующих заметках я подбробнее  расскажу об истории проекта, "софте" и "железе". Надеюсь, что эта статья будет полезна и интересна таким же гикам-самодельщикам.

P.S. Ссылка на проект в gitlab: https://gitlab.com/alkid1/cobalt68


Комментариев нет:

Отправить комментарий