?

Log in

No account? Create an account
Несбалансированная история ОКМД-машин - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Несбалансированная история ОКМД-машин [Dec. 12th, 2012|11:13 pm]
Yuri Panchul
[Tags|]

Термин SIMD (по русски «ОКМД») появился в том же самом 1966 году, в котором феминистки изобрели термин women's liberation («освобождение женщин»). Изобретателем термина SIMD стал инженер Майкл Флинн, который предложил разделить компьютерные архитектуры на четыре группы – по признаку параллельности потоков инструкций и потоков команд. Одной из таких групп и стала группа SIMD (Single Instruction, Multiple data), по-русски ОКМД (одиночный поток команд, множественный поток данных).

----------

С термином SIMD связана занятная путаница – под этим термином сваливают в одну кучу две совершенно разных категории устройств:

1. Системы с множественными процессорными элементами а-ля ILLIAC-IV (1970) и Thinking Machines CM-1 (Connection Machine, 1983)

2. Векторые процессоры а-ля Cray-1 (1975) и векторное расширение MIPS SIMD Architecture (MSA - 2012)

Например эта путаница присутствует в русской википедии, где после довольно неплохого пассажа про системы типа (1) стоит неверная фраза «SIMD-процессоры называются также векторными». Лучше было бы начинать первый абзац словами «традиционные SIMD-компьютеры состояли из ...», а второй переписать как «другой группой SIMD-устройств являются векторные процессоры»:



http://ru.wikipedia.org/wiki/SIMD

SIMD-компьютеры состоят из [Yuri Panchul: некорректно. Лучше было бы написать «традиционные SIMD-компьютеры состояли из ...»] одного командного процессора (управляющего модуля), называемого контроллером, и нескольких модулей обработки данных, называемых процессорными элементами. Управляющий модуль принимает, анализирует и выполняет команды. Если в команде встречаются данные, контроллер рассылает на все процессорные элементы команду, и эта команда выполняется на нескольких или на всех процессорных элементах. Каждый процессорный элемент имеет свою собственную память для хранения данных. Одним из преимуществ данной архитектуры считается то, что в этом случае более эффективно реализована логика вычислений. До половины логических инструкций обычного процессора связано с управлением выполнением машинных команд, а остальная их часть относится к работе с внутренней памятью процессора и выполнению арифметических операций. В SIMD компьютере управление выполняется контроллером, а «арифметика» отдана процессорным элементам.
SIMD-процессоры называются также векторными. [Yuri Panchul: некорректно. Лучше было бы написать «другой группой SIMD-устройств являются векторные процессоры»]



----------

Классический SIMD-компьютер ILLIAC-IV создавался во время войны во Вьетнаме. К сожалению, на него обратили внимание американские студенты-белоленточники, которые не хотели идти в армию и по этому поводу объявили ILLIAC-IV нехорошим устройством. В результате ILLIAC-IV увезли от греха подальше от университетских студентов и спрятали на военную базу в Калифорнии, рядом с которой я живу (Moffett Field), а потом поставили в близлежащий центр NASA.



http://en.wikipedia.org/wiki/ILLIAC_IV

Starting in 1970, the machine became the subject of student demonstrations at Illinois. First, that the project had been secretly created on campus. When this claim proved to be false, the focus shifted to the role of Universities in secret military research. Slotnick was not in favor of running classified programs on the machine. ARPA wanted the machine room encased in copper to prevent off site snooping of classified data. Slotnick refused to do that. He went further and insisted that all research performed on Illiac IV would be published. If the machine had been installed in Urbana this would have been the case. However, two things caused the machine to be delivered to NASA Ames. One was that Slotnick was concerned that the physical presence of the machine on campus might attract violence on the part of student radicals. This and the requirement to do secret research with the machine lead ARPA to move the machine to NASA Ames Research Center, where it was installed in a secure environment. The machine was never delivered to Illinois, arriving in 1972. Rumor has it that simulations run on the machine made the nuclear test ban treaties possible. In 1972, when the first (and only quadrant) was operational at NASA, it was 13 times faster than any other machine operating at the time. The Control Unit and a few PEs may be seen today at the Computer History Museum in California.



----------

Похоже звучащая SIMD-идея применялась и в советском компьютере ПС-2000 созданном для мирных геофизиков:


http://www.osp.ru/cw/2000/14/4312/

... Геофизика и была основной сферой применения ПС-2000. Эта мощная машина позволила разгрести наконец залежи данных сейсморазведки, которые в огромных объемах накапливались ежегодно.

В ПС-2000 реализована архитектура с одним потоком команд и многими потоками данных (SIMD). Центральным компонентом системы является мультипроцессор, включавший от 8 до 64 одинаковых процессорных элементов. Процессорные элементы обрабатывали множество потоков данных по программе из общего модуля управления (один модуль на каждые восемь элементов).


----------

Но вообще ILLIAC-IV нельзя назвать успешным проектом. Зато коммерчески успешной стала машина с другой стороны SIMD – векторно-конвейерный процессор Cray-1, выпущенная в 1976 году, когда годовалая советская феминистка Наталия Радулова уже ползала по своему украинскому селу в памперсах. Первыми приложениями для Cray-1 было моделирование ядерных взрывов и только потом предсказание погоды.

Про Cray-1 и его советскую сестру Электронику СС БИС я уже писал - http://panchul.livejournal.com/144842.html

Идея векторных команд Cray-1 довольно очевидна из следущего слайда, взятого мною из презентации Peter Kemper из MIT:

http://www.cs.wm.edu/~kemper/cs654/slides/l11.pdf

Обратите внимание на С-код и векторный код на ассемблере, где одна команда "ADDV.D V3, V1, V2" складывает вектор из 64-х 64-битных чисел (64x64 бита) в векторном регистре V1 c вектором из 64 чисел в векторном регистре V2 и помещает 64 числа суммы в векторный регистр V3:


vector_code_example


Если судить чисто по системе команд, то именно Cray-1 по-видимому оказал наибольшее влияние на последующих разработчиков разнообразных векторных расширений для цифровой обработки сигналов и графики, включая расширения архитектуры MIPS – уже имплементированного во многих ядрах расширения MIPS DSP и объявленного на прошлой неделе MIPS SIMD Architecture (MSA).

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

----------

Вы можете получить начальное представление о расширении MIPS для DSP с пары слайдов на моей презентации в Зеленогорске в прошлом октябре:

http://microchip.com.ru/Support/MASTERs2012/P3212.pdf


mips_dsp_slide_1


mips_dsp_slide_2


----------

Но SIMD-ность в MIPS DSP довольно скромная. Зато в MIPS SIMD Architecture (MSA) – SIMD встает во весь рост - при правильно имплементированной микроархитектуре можно сделать 16 сложений небольших чисел за один такт.


Основные черты MIPS SIMD Architecture (MSA):


http://www.mips.com/technologies/simd

MSA Features:


  • 32 vector registers of 16 x 8-bit, 8 x 16-bit, 4 x 32-bit, and 2 x 64 bit vector elements

  • Efficient vector parallel arithmetic operations on integer, fixed-point and floating-point data

  • Operations on absolute value operands

  • Rounding and saturation options available

  • Full precision multiply and multiply-add

  • Conversions between integer, floating-point, and fixed-point data

  • Complete set of vector-level compare and branch instructions with no condition flags

  • Vector (1D) and array (2D) shuffle operations

  • Typed load and store instructions for endian-independent operation

  • IEEE Standard for Floating-Point Arithmetic 754™-2008 compliant

  • Element precise floating-point exception signaling

  • Pre-defined scalable extensions for chips with more gates/transitions





Полезные ссылки для интересующихся новым векторным расширением:

Пресс-релиз от 6 декабря 2012 - http://www.mips.com/news-events/newsroom/newsindex/index.dot?id=79069
Общая информация - http://www.mips.com/technologies/simd
Страничка со ссылками на статьи про новые расширения - http://www.mips.com/products/architectures/r5_landing/

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


mips_simd_architecture


mips_simd_architecture




Какая часть моей истории понравилась вам больше всего?

Про Флинна и феминисток
1(6.2%)
Про бардак в русской Википедии
1(6.2%)
Про войну во Вьетнаме
2(12.5%)
Про мирных советских геофизиков
2(12.5%)
Про моделирование ядерных взрывов
1(6.2%)
MIPS DSP
1(6.2%)
MIPS SIMD Architecure
1(6.2%)
Я возмущен(а) неупоминанием Neon и SSE
1(6.2%)
Почему нет ничего про GPU?
0(0.0%)
Я жду такого же поста про виртуализацию
4(25.0%)
Из-за бугра плюете?
2(12.5%)
LinkReply

Comments:
[User Picture]From: raydac
2012-12-13 07:29 am (UTC)
в принципе SIMD архитектуры нплохо и на старых восьмибитках можно было строить
p.s.
правда когда я в 90-х предложил такое местным восьмибитным патриархам то был заклеймен как вероотступник

Edited at 2012-12-13 07:31 am (UTC)
(Reply) (Thread)
[User Picture]From: panchul
2012-12-13 07:38 am (UTC)
Вы имеете в виду многопроцессорные системы или векторный сопроцессор у 8-битного микропроцессора?

Если последнее, то векторный сопроцессор у 8-битного микропроцессора не имеет экономического смысла, ибо еще Сеймур Крей, проанализировав неудачи предшественников (например CDC STAR), сказал, что у потенциально успешного векторного компьютера должна быть достойная скалярная производительность.

Если же вы говорите про многопроцессорные системы из большого количества маленьких процессоров, то это конечно имело смысл в свое время для специализированных задач, хотя все тот же Крей высказал по этому поводу спорное утверждение, что "два вола вспашут поле лучше, чем тысяча куриц".
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: lrlay777
2012-12-13 07:59 am (UTC)
А вы в курсе , что подобная статья подходит под статью УК ЖЖ "интеллектуальный терроризм" и карается циком с гвоздями и поражением в СК на срок до... лет?!
(Reply) (Thread)
[User Picture]From: panchul
2012-12-13 08:20 am (UTC)
Хм, а что такое "поражение в СК"?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: dom3d
2012-12-13 08:08 am (UTC)
Юра, ты бы написал статью для таких людей как я (не соображаю в чипостроении) про процессоры Intel и архитектуры ARM.
Это сейчас актуальная и интересная тема с точки зрения будущего.
(Reply) (Thread)
[User Picture]From: panchul
2012-12-13 08:17 am (UTC)
Статьи про Intel и ARM на русском языке пусть пишут русские инженеры компаний Intel и ARM.

Я работаю в MIPS и пишу про новое векторное расширение MIPS. Это актуальная и интересная тема в связи с тем, что независимо от варианта развития MIPS-архитектуры в будущем (в составе Imagination или в составе CEVA), будут появляться и новые ядра MIPS. В частности MIPS proAptiv имеет хорошие шансы отобрать у ARM определенные аккаунты.
(Reply) (Parent) (Thread) (Expand)
From: realurix
2012-12-13 08:50 am (UTC)
Сколько ни говори слово мёд, а во рту слаще не становится. Где можно купить этот microAptiv чтоб его в живую пощупать?

Анекдот в тему:
Бабушка была трижды замужем и осталась девственницей. Что делали два первых мужа рассказываь не буду.
- Ну а третий? Вроде бы все варианты испробованы? Должен же он был тебя лишить девственности?
- А третий был партийный теоретик. Он мне е**л мозги.

Пока мы тут мозго**ством занимались, ребята вон что учудили http://mikrotik.ru/katalog/katalog/besprovodnye-marshrutizatory. А мог бы нечто подобное, даже ещё лучше, ибо исхожу из практики, и я, если бы MIPS был не теоретик, а практик. Типа социализма с человеческим лицом. Хотя, горбатого...

Edited at 2012-12-13 08:51 am (UTC)
(Reply) (Thread)
[User Picture]From: panchul
2012-12-13 09:01 am (UTC)
Atheros - это лицензиат MIPS, у них своя SoC, наверное ты можешь попробовать обратиться в Atheros. Мы в MIPS даже при большом желании как правило не можем раздавать документацию на чипы наших лицензиатов (она у нас иногда лежит под грифом "для внутреннего использования"), а лицензиаты часто не хотят делать документацию открытой, чтобы не тратить много денег на постановку внешнего суппорта. Надеюсь, что когда все утрясется с новым корпоративным менеджментом после Нового Года, я могу лучше ответить на твой вопрос, где взять открытую документацию на чипы лизензиатов различных ядер MIPS таких как Atheros.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: alexey_zharikov
2012-12-13 09:21 am (UTC)
По украинскому селу в 1976 году можно было ползать разве что в пелёнках. Но никак не в памперсах, которые в СССР появились только в перестройку.
(Reply) (Thread)
[User Picture]From: vic_nikob
2012-12-13 01:25 pm (UTC)
полэунки уже были и подгузники. и ЭВМ..
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2012-12-13 05:03 pm (UTC)
Я почитаю документацию, и если она мне понравится, то закажу плату
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: _iga
2012-12-14 11:02 pm (UTC)
> к сожалению, на него обратили внимание американские студенты-белоленточники, которые не хотели идти в армию и по этому поводу объявили ILLIAC-IV нехорошим устройством.

Панчул, а в этом нехорошем устройстве будет процессор MIPS?
(Reply) (Thread)
[User Picture]From: panchul
2012-12-14 11:17 pm (UTC)
Туда можно запросто поставить чип с каким-нибудь недорогим миниатюрным низкопотребляющим ядром, например MIPS M14K.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: maratyszcza
2012-12-16 06:44 am (UTC)
Ок, есть MIPS R5 с SIMD-расширениями, но
1. Где спецификация?
2. Какой официальный метод детектирования поддержки расширенных наборов инструкций в user-mode? В частности:
a. Как определить, поддерживает ли процессор MIPS R2/R3/R5?
d. То же самое для Paired-single инструкций?
e. То же самое для MIPS DSP (R2)?
f. Как насчёт параметров кэша и микроархитектуры?
g. Доколе будет продолжаться параноя с доступом к CPUID регистрам (а также счётчику тактов) только из kernel-mode?
(Reply) (Thread)
[User Picture]From: panchul
2012-12-16 06:54 am (UTC)
Прищлите мне е-мейл на panchul@mips.com (на анг.) я зафорвардю емейл человеку который отвечает за SIMD в architecture group.

Про DSP вы можете скачать сейчас

http://www.mips.com/secure-download/index.dot?product_name=/auth/MD00375-2B-MIPS64DSP-AFP-02.34.pdf
(требует регистрации)
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: abelits
2012-12-16 08:10 am (UTC)
Ну, вот.

А меня как раз за день до вашего релиза уволили из компании, в которой я бы в связи с этим мог порекомендовать MIPS как один из кандидатов на архитектуру DSP.
(Reply) (Thread)
[User Picture]From: panchul
2012-12-16 07:38 pm (UTC)
Бывает. Я как-раз хотел тебя порекомендовать у нас в конторе, как специалиста по DSP и драйверам, но у нас объявили hiring freeze на период merger-а с Imagination или CEVA - как получится.

При этом, так как у тебя на время поиска работы появляется дополнительное время, можно на следущей неделе прошвырнуться погулять в лес, как ты на это смотришь?


Edited at 2012-12-16 07:41 pm (UTC)
(Reply) (Parent) (Thread) (Expand)