| 01.06.2010 11:00 | |
Лучший способ предсказать будущее — это создать его (Bob Noyce основатель Intel). В этой статье поговорим о возможном развитии микропроцессорной индустрии. Развитие данной индустрии проводится в нескольких направлениях:
- Обновление элементной базы (нанотрубки, другие заменители кремния)
- Ввод совершенно новой архитектуры отличной от Неймановской (например нейронные сети)
- Обновление существующей архитектуры (ввод многоядерности, переход на 64 бит)
Эти три основные направления по которым ведутся исследовательские робо’ты. Обновлением существующей архитектуры занимаются все без исключения от Intel и IBM до производителей чипов каскадного усиления.
Думаете не реально?
Сейчас для многих будет откровение, никто не нервничает, глубоко вдохнули и поехали.
Если кто-то считает программирование на ассемблере "прямым" общением с компьютером, то он ошибается. Ассемблер - это язык высокого уровня (пускай и самый низкоуровневый среди остальных высокоуровневых языков). Да-да, тот самый ассемблер на котором пишут драйвера и шелкоды, далеко не тет-а-тет программиста и куска кремния.
Каждая команда на “низкоуровневом” ассемблере состоит из нескольких микрокоманд, эти микрокоманды и есть микрокод, о котором можно почитать тут и тут. АГА не слышал об таком, а надо больше изучать .NET Framework и Action Script 3 глядишь поймешь архитектуру микропроцессора. А если серьезно то каждая команда ассемблера это мнемоника группы микрокоманд, пример:
ADD EAX,5; Добавить 5 к значению регистра EAX и результат поместить в тот же EAX
Но что приходится проделывать микропроцессору в действительности от этой команды:
1 Прочитать значение регистра EAX
2 Прочитать значение числа 5
3 Сложить
4 Результат записать в EAX
Из этого ууупрощенного примера понятно что ADD это всего-навсего ссылка в таблице микрокода на последовательность микрокоманд. И эту последовательность можно изменить и прошить в центральном процессоре!

Слева на право: Intel 386 SX (25 MHz), Intel Itanium 2, Процессор 48 Ядер.
Полтора слова о архитектуре современных процессоров
Детально о процессорах читаем тут. Если взять камень семейства Pentium, и посмотреть под рентгеном, увидим что внешние команды реализованы по философии CISC, но все команды разбиваются на элементарные микрокоманды на основании ядра RISC.
- Школа CISC гласит “Пойди купи хлеба”
- Школа RISC гласит “Оденься, обуйся, пройди к магазину, купи хлеб, вернись”
Зачем вообще ввели микрокоды?
По роду своей деятельности центральному процессору приходится выполнять объединяющие функции. Он должен управлять работой различных компонентов аппаратного обеспечения компьютера, таких как дисководы, графические дисплеи и сетевой интерфейс, с тем чтобы обеспечить их согласованную работу.
Что нам может дать программирование собственных команд процессора?
Для начала вспомним священные войны 90-ых прошлого столетия о необходимости 3D акселератора в персональных компьютерах. Сейчас же, чипы для роботы с графикой интегрируют даже в системную плату. А некоторые видео карты имеют кеш и оперативной памяти больше чем центральный процессор и системная плата.

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

Знакомьтесь первый физический ускоритель Asus P1 Ageia PhysX. 9 мая 2006 года
И что вообще там считать в этой физике?
Также можно вспомнить о DSP
Процессор цифровой обработки сигналов (digital signal processor — DSP) — это специализированный программируемый микропроцессор, предназначенный для манипулирования в реальном масштабе времени потоком цифровых данных. DSP-процессоры широко используются для обработки потоков графической информации, аудио- и видеосигналов.

Creative Sound Blaster X-Fi Fatal1ty FPS – в процессор звуковой карты встроена половина добротной звукозаписывающей студии, включая DSP чип.
“Гламурный” пример использования собственных инструкций
Представьте у вас есть очень важная информация. Вы ее зашифровали какой-нибудь программой шифрования к примеру алгоритмом md5. И как обычно забыли пароль, что делать, даже распределенным перебором можно потратить пару лет. А эта информация нужна позарез максимум к вечеру.
Но вы вспоминаете что у одного из 8 ядер центрального процессора можно перепрограммировать инструкции. Открываете программу “MSmicrocod” пишете ассемблерную инструкцию, к примеру поиска коллизий, нажимаем кнопку “Add to processor” и теперь представьте себе программу переборщика пароля в которой одна инструкция находит коллизию в хеш функции. Скорее всего ваш пароль найдется за пару часов и вы сможете достать свой список покупок в магазине.
Опять скажите фантастика? А вот студентишки одного университетишка разработали микрочип для специализированной обработки нейронных сетей. И компьютер с таким чипом работает с нейронными сетями в 300 раз быстрее хотя его частота в 15 раз меньше частоты центрального процессора.

Одним щелчком мыши ми переключаем процессор карты Sound Blaster X-Fi Fatal1ty FPS
В три разных режима роботы: Например, в игровом режиме эффект-процессор и аппаратные буферы используются для EAX5, в то время как в режиме Creation они освобождаются для поддержки аппаратного MIDI-синтезатора.
Стоны скептиков
Особо тонкие скептики сразу говорят, зачем делать трансформера, если специализированные микрочипы вполне давно выпускаются промышленностью и отлично работают. Приводя примеры:
- “Ведь автомобильная индустрия не делает в одном корпусе внедорожник и легковую машину”
Это конечно верно гибрид внедорожника и легковой как минимум будет стоить очень дорого, но компьютерная индустрия развивается совсем в других временных и ценовых масштабах, а также можно вспомнить кроссоверы. И если взглянуть на рынок микроконтроллеров в которые уже можно зашивать до 1 Мб кода управляющего микроконтроллером. Видно что компьютерная индустрия таки любит трансформеров.
Философы могут сказать:
- “В любом случае специализированный чип эффективней чем чип который может быть запрограммированным на любую специализацию.”
Здесь философам нужно вспомнить о комбайнах три в одном (Принтер-Сканер-Копер). Конечно специализированный принтер будет печатать лучше, но три в одном явно стоят дешевле, занимают намного меньше места и сними быстрей работать.
ИТОГИ
Сегодня мы детальней рассмотрели возможные перспективы обновления микропроцессорной архитектуры, в свете перепрограммирования и добавления собственных инструкций процессора. Уверен потенциал микрокода еще спит также, как, к примеру и технология виртуального пространства.
И есть другой вариант, купить перепрограммируемый микропроцессор, и спокойно на нем сколько угодно раз отладить все инструкции. Думаю у такого подхода есть будущее.
Бурлий Ярослав
Компания «Spiribit»
Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.
Комментарии (0) 
Обратная ссылка (0)
Оставить комментарий 
jarikus
|
