> man operating_systems
Создавая новое поколение - часть 1
Аппаратные средства
на Среда, 11 Август 2004, 23:41
добавил: Николас Блэхфорд (Nicholas Blachford) список авторов печатать элемент контента создать pdf-файл  элемент контента
категория Статьи
комментарии: 1
просмотров: 1788


Поточные процессоры
Поточные процессоры (Stream processors), это развитие DSP (цифровые сигнальные процессоры - Digital Signal Processors), которые были разработаны специально для требовательных вычислительных приложений.

Многие DSP процессы можно разбить в поток - последовательну серию алгоритмов. Во многих случаях проблемы, решаемые DSP, могут быть разделены на несколько потоков, а дальнейшее разделение может быть сделано на уровне алгоритмов, что делает DSP пригодными для задач, решаемых сейчас с помощью архитектуры SIMD (Single Instruction Multiple Data - одна инструкция, множество данных).

Экспериментальне параллельные поточные процессоры, построенные с учетом этих разделений, способны обрабатывать данные до 100 раз быстрее, чем самые мощные ЦП для настольных систем [stream]. К тому же, для алгоритмов, которые имеют тенденцию к локализации используемых данных, скорость обработки может вплотную приближаться к теоретическому пику - крайняя редкость в обычных универсальных процессорах.

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

Так что, я думаю, мы сможем использовать что-нибудь из этого в нашей новой платформе. Но, где это будет воплощено? Cell, новый процессор от Sony [Cell] позволит такого рода обработку. Каждый Cell имеет несколько ядер, которые имеют доступ к высокоскоростно памяти в чипе и эти процессоры могут быть сконфигурирован для обработки данных в поточном режиме. Cell процессоры будут производиться в больших объемах с самого начала и технология будет доступна также третьим сторонам, так что они должны быть дешевы, быстры и широкодоступны. Вам не захочется запускать ОС на них, они не для этого предназначены, а вот для видео, аудио и других требовательных к вычислительной мощи приложений они побьют что угодно на следующей неделе.

FPGA
FPGA (Field Programmable Gate Array) - это "подстраивающийся ", он состоит из частей и вы указываете ему во что он должен собраться. Они не так быстры, как чипы сделанные на заказ, но современные чипы на заказ стоят миллионов 15 долларов и больше только в разработке. Поточные процессоры смогут сделать многое из того, что могут FPGA, но поточные процессоры лучше всего подходят для работы с, хм, потоками. Не все есть поток.

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

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

Программировани под разные ЦП
Наличие 3 разных типов ЦП оставляет нам другую проблему - как нам под них программировать

Компьютерные компании пытались производить системы, которые ускорялись при помощи дополнительных DSP, но ни один из этих проектов не выжил. Изначальный проект BeBox базировался на двух ЦП и трех DSP, но программироватьтакую систему было очень сложно. У Commodore были в проектах машины с DSP, но они никогда не выпускались [CBM]. Только Apple производила машины с DSP, но и они были свернуты с выходом процессоров PowerPC.

С того времени технология DSP была встроена в процессоры общего назначения в форме векторных расширений, таких как SSE и Altivec. Однако, эти технологии все равно требуют специализированого программировани.

Тем не менее, только то, что что-то сложно, не означает, что это невозможно решить или как минимум сделать проще. Конечно, есть система, которая решает эту проблему, но чтобы найти ее, нам придется пойти в Россию (А что идти-то, вот мы тут - примечание переводчика)...

Российский производитель компьютеров (точнее - микропроцессоро, примечание переводчика), "" [Elbrus] спроектировал технологию, позволяющую получать оптимизированны бинарные приложения для разных версий ЦП, даже если ЦП меняется. Достигается это путем многоступенчато компиляции, когда выпускается и поставляется частично скомпилированны файл, а при первом запуске программы она компилируется и оптимизируется под систему, на которой она запускается. Для каждого процессора существует свой компилятор последней стадии, так что программисту не надо заботиться о поставке различных бинарных файлов для разных ЦП. Эта техника очень близка к методу морфинга кода ("code morphing"), используемому Transmeta, собственно, давно ходят слухи, что именно Эльбрус вдохновил их на создание этой технологии.

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

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

Проприетарная аппаратура vs Существующая в продаже
В 80-х разработка собственной аппаратной части означала, что вы можете добиться реального преимущества против других производителей. Оригинальная Amiga со своим собственным чипсетом была на долгие года впереди PC именно по этой причине. Однако, сегодняшним днем в нашем веке разработка собственного чипа - запретная роскошь и лучше оставить это компаниям, которые специализируются в данной области или хотя бы могут себе это позволить.

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

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

Вывод
Итак, у нас есть довольно радикальное железо, которое скушает самые быстрые PC как мелкую закуску между приемами пищи. Какое же ПО мы будем запускать на этом монстре? Под какой операционной системой он будет работать?

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

Ссылки

[Cray] Многие из технологий, используемых сегодня в микропроцессора были разработаны Сеймуром Креем 30-40 лет назад, здесь приведено несколько интереснейших интервью с ним.
http://americanhistory.si.edu/csr/comphist/cray.htm
http://americanhistory.si.edu/csr/comphist/montic/cray.htm

[Mouse] ГИП (GUI) и множество других "" концепций были разработаны в 1960-х
http://inventors.about.com/library/weekly/aa081898.htm
Некоторые разрабатываемыетехнологии
http://www.bootstrap.org/chronicle/pix/pix.html
Интервью с Дугласом Энгельбартом (Douglas Engelbart)
http://americanhistory.si.edu/csr/comphist/englebar.htm
Посмотрите на его рабочую станцию - 1964-1966!
http://www.bootstrap.org/chronicle/pix/img0023.jpg

[TISC] The Incredible Shrinking CPU, если ЦП собираются прогрессироватьв скорости, то им придется стать гораздо проще.
здесь

[stream] Поточные процессоры
здесь

[Cell] Заявка на патент на процессор Cell от Sony здесь.
Примечание: Похоже, что HTML диаграмм совместим только с IE.

[CBM] Amiga A3000+ могла иметь или имела DSP
http://amiga.emugaming.com/prototypes/a3000plus.html

[Elbrus] Технология Эльбруса
http://www.elbrus.ru/mcst/eng/e2k_arch.shtml
(Дана ссылка на английский вариант сайта, но, думаю, заинтересовавшися найдут документацию на русском без особых проблем - примечание переводчика)
Недавно Intel договорилась с Эльбрусом и наняла большинство сотрудников компании.
Пресс релиз (на русском)

Copyright © Nicholas Blachford July 2004

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

индекс статьи
страница 1 : страница без заголовка
страница 2 - текущая : страница без заголовка

Комментарии
batu |12.08.2004 13:42
Комментарии: 10

Зарегистрирован: 03.07.2004 22:20

Могу сказать как я вижу современный процессор. Естественно, многопроцессорная работа, естественно диспетчер процессоров и памяти. Стековая система команд наиболее подходит к такой архитектуре. Так как алгоритмы распаралеливания выполнения команд проще, и проще алгоритиы возможности кэширования. От двухадресных команд как сейчас толку мало. И обязательно апаратная реализация проверки типов (для этого специальное представление данных а не просто байты) и вызов процедур и функций тоже реализация аппаратная. Естественно тут же работа для диспетчера памяти.. В таком виде это будет шикарная молотилка. Кстати, у меня все это расписано..
Мне кажется что это очевидные вещи.. Можно и подробнее.
То что многопроцессорные системы нужны это очевидно..
В таком виде как это делается сейчас это бессмысленно. Распаралеливание работы процессора должно происходить более эффективно.



Комментарии доступны только авторизованным пользователям, авторизуйтесь или зарегистрируйтесь на сайте здесь

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.