По направлению к свободному харду
АрхивЧто общего у открытого софта с разработкой интегральных схем? Разве что работа в таинственной процессорной фирме Transmeta [1] Линуса Торвальдса и других светил движения за открытый софт, - такой ответ до недавнего времени был бы наиболее вероятным.
Определенное внимание привлекло и прошлогоднее сообщение о том, что соперник Merced, новый процессор Бабаяна E2K [2], тестировался с помощью Linux. Однако по мере все более широкого признания Linux подобные события становятся нормой. Портирование (перенос) Linux на Merced, проведенное Intel, и на PowerPC, финансировавшееся IBM, шло параллельно с разработкой устройств и систем на базе этих процессоров. Сейчас IBM начинает продвигать "тонкие серверы", работающие под Linux на процессорах PowerPC [3].
По ходу дела эти и другие компании начали осознавать, какой потенциал для разработки и даже производства харда скрыт в подходах, рожденных движением за открытый софт. Первой крупной компанией, сделавшей шаг в направлении реализации этого потенциала, была Sun. Еще в марте Sun сделала доступным Verilog-описание своего процессора picoJava при условии соблюдения Community Source License [4]. Free Software Foundation, FSF [5] и Open Source Initiative, OSI [6] пока не признают эту лицензию соответствующей своему пониманию того, что такое открытый код. Однако это был заметный шаг на пути к подключению более широкого сообщества разработчиков и производителей к созданию и выпуску Java-процессоров. В сентябре Sun выпустила под той же лицензией описание еще одного процессора - SPARC V8.
Не желая отставать, IBM этим летом сделала доступными схемы материнской платы для PowerPC. Хотя описание до сих пор остается не совсем полным, лицензия IBM была менее ограничительной, чем у Sun. Это немедленно привело к возникновению группы волонтеров OpenPPC [7], взявшейся за разработку платы. Результаты не заставили себя ждать: две недели назад группа объявила о создании первой компании по производству и продаже плат - Pop Computers [8].
Одновременно с этим карту Sun побило Европейское космическое агентство, ESA, которое выпустило описание процессора SPARC под открытой лицензией (general public license) FSF. Это самое крупное устройство, описание функционально-логической структуры которого выпущено под такой лицензией. Аналогичные описания, созданные группами волонтеров, были выпущены ранее лишь для ряда сравнительно небольших процессоров [10].
Кстати, такие группы разработчиков-любителей существуют уже давно. Во времена первых микрокомпьютеров термин "хакер" (hacker) применялся как к программистам, так и к "хардверщикам". Находившийся в Силиконовой Долине Homebrew Computer Club, участники которого обменивались новыми схемами компьютеров и обсуждали их, стал инкубатором многих идей, использованных при создании PC (в том числе первых машин Apple) в 80-х годах. Однако в восьмидесятые любителям стало очень трудно держаться на уровне передовых технологий. Некоторые, подобно московской группе Novatec [11], предались ностальгии, работая над усовершенствованием игровых машин, созданных еще до эпохи PC. Однако серьезная работа над системами современного уровня становилась невозможной с ростом размера устройств, количества слоев печатных плат и переноса основных функциональных блоков на ИС.
Однако те же самые факторы, которые заставляют Sun и другие фирмы публиковать описания своих процессоров, сегодня снова позволили любителям на равных состязаться с крупными корпорациями. Разделение процессов конструирования и производства привело к появлению рынка "ядер" (cores) - функционально-логических схем харда, предназначенных для реализации на программируемых логических матрицах, ПЛМ (FPGA), или на специализированных ИС (ASIC). Такие схемы копируются так же легко, как программы. В то время как крупные фирмы стремятся найти способы защиты от нелегального копирования, разработчики-любители с этой проблемой не сталкиваются. Наоборот, приципиальная позиция таких групп в том, чтобы их разработки были общедоступными. Так, возникшая совсем недавно в Словении группа OpenCORES [12] ставит следующие задачи:
- разработка системы базовых IP (IP-intellectual property) блоков (микропроцессор, контроллеры PCI и SDRAM, и др.);
- разработка и выпуск прототипной системы на ПЛМ с несколькими сотнями тысяч вентилей;
- для архитектуры микропроцессора поддержка Си-компилятора ядра Linux и ряда софтверных продуктов GNU.
Это амбициозные планы. Если их удастся выполнить, OpenCORES станет первой группой волонтеров-разработчиков, перешедшей от конструирования к производству.
В настоящее время такая деятельность невозможна без поддержки компаний, спонсирующих приобретение программных средств разработки харда. Такие средства всегда были одной из самых дорогих категорий программного обеспечения. Однако есть группы, работающие над созданием систем разработки в открытом варианте. Быстрее всех развивается система gEDA [13], выросшая из простого чертежного пакета для рисования схем. Сейчас она уже может работать в качестве симулятора, и начались дискуссии о том, как дополнить ее возможностью синтеза. За последний год появились и бесплатные компиляторы для обоих важнейших языков описания харда - VHDL и Verilog [14]. Но они тоже пока способны обеспечить лишь тестирование, но не синтез.
Вероятно, в течение ближайшей пары лет работы по созданию открытых средств разработки харда и по открытому функционально-логическому проектированию станут неотделимы друг от друга. И тогда будет ясно, имеет ли открытая разработка харда столь же мощный потенциал, какой продемонстрировала открытая разработка программ на примере систем GNU/Linux.
[1] www.transmeta.com
[2] www.elbrus.ru
[3] www.chips.ibm.com/products/powerpc/linux
[4] www.sun.com/microelectronics/communitysource
[5] www.fsf.org
[6] www.opensource.org
[7] www.openppc.org
[8] www.popcomputers.com/main.html
[9] www.popcomputers.com/main.html
[10] collector.hscs.wmin.ac.uk
[11] cisip.sonnet.ru/MSX
[12] www.opencores.org
[13] www.geda.seul.org
[14] icarus.com/eda/verilog, www.ececs. uc.edu/~paw/savant
Перевод с англ.Леонида Левковича-Маслюка
Грэм Симэн (Graham Seaman) - старший лектор в Школе компьютерных наук Университета Вестминстера (Лондон). Научные интересы: разработка интегральных схем, сжатие информации.