ARM - это RISC?
От: Дрободан Фрилич СССР  
Дата: 13.06.17 11:33
Оценка:
ARM — это RISC, то есть сокращенный набор инструкций?
Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re: ARM - это RISC?
От: ononim  
Дата: 13.06.17 11:35
Оценка:
ДФ>ARM — это RISC, то есть сокращенный набор инструкций?
ДФ>Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?
Потому что это попсовый RISC. А опопсение началось еще с THUMB mode. Особенно с THUMB 2
Как много веселых ребят, и все делают велосипед...
Re: ARM - это RISC?
От: Kernighan СССР  
Дата: 13.06.17 11:59
Оценка:
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>ARM — это RISC, то есть сокращенный набор инструкций?

ДФ>Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?

Разве это противоречит РИСК-идеологии?
Re: ARM - это RISC?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.06.17 12:07
Оценка: -1
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>ARM — это RISC, то есть сокращенный набор инструкций?


RISC — это не сокращённый _набор_ инструкций. Это каждая инструкция _сокращённая_ — выполняет одно простое действие. Есть ещё расшифровка с Rational вместо Reduced.

Самих инструкций может быть и больше, но в них не будет эквивалента всяких MOV @(R1)+, @-(R2), как в PDP-11.

ДФ>Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?


Именно затем, чтобы покрывать SIMD.

UPD: ARM отличается тем, что в нём часто делают, что инструкция делает не одно простое действие, а 2 одновременно
The God is real, unless declared integer.
Отредактировано 13.06.2017 12:15 netch80 . Предыдущая версия .
Re: ARM - это RISC?
От: jazzer Россия Skype: enerjazzer
Дата: 13.06.17 12:15
Оценка:
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>ARM — это RISC, то есть сокращенный набор инструкций?


Outside of the desktop arena, however, the ARM architecture (RISC) is in widespread use in smartphones, tablets and many forms of embedded device. It is also the case that since the Pentium Pro (P6) Intel has been using an internal RISC processor core for its processors.[32]


ДФ>Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?

А как ты предлагаешь SIMD считать без новых команд?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: ARM - это RISC?
От: ononim  
Дата: 13.06.17 12:20
Оценка:
ДФ>>Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?
J>А как ты предлагаешь SIMD считать без новых команд?
Ну, например можно распознавать определенные последовательности обычных инструкций, которые реализуют функционал, который реализуется SIMD инструкций, описать это в документации как мета-инструкции, и обрабатывать ее в процессоре соответствующим образом. Но это конечно усложнение декодера.
Как много веселых ребят, и все делают велосипед...
Re[2]: ARM - это RISC?
От: Дрободан Фрилич СССР  
Дата: 13.06.17 12:23
Оценка:
jazzer:

ДФ>>ARM — это RISC, то есть сокращенный набор инструкций?


J>

J>Outside of the desktop arena, however, the ARM architecture (RISC) is in widespread use in smartphones, tablets and many forms of embedded device. It is also the case that since the Pentium Pro (P6) Intel has been using an internal RISC processor core for its processors.[32]

А пень причём? RISC там как внутренний, промежуточный код.

ДФ>>Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?

J>А как ты предлагаешь SIMD считать без новых команд?
Никак не предлагаю.
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re[2]: ARM - это RISC?
От: Дрободан Фрилич СССР  
Дата: 13.06.17 12:29
Оценка:
netch80:

N>UPD: ARM отличается тем, что в нём часто делают, что инструкция делает не одно простое действие, а 2 одновременно

Не путаешь с VLIW?
Я так понимаю, идея RISC в простом декодировании простых команд, что дает преимущество в конвеерном одновременном исполнении.
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re[3]: ARM - это RISC?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.06.17 13:02
Оценка: +3
Здравствуйте, ononim, Вы писали:

O>Ну, например можно распознавать определенные последовательности обычных инструкций, которые реализуют функционал, который реализуется SIMD инструкций, описать это в документации как мета-инструкции, и обрабатывать ее в процессоре соответствующим образом. Но это конечно усложнение декодера.

А ещё дополнительные задержки, потому что декодеру команд придётся "вытягивать" эту последовательность по одной — т.к. заранее неизвестно, является ли она "метаинструкцией" или всего лишь обычной последовательностью.
[КУ] оккупировала армия.
Re[3]: ARM - это RISC?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.06.17 13:06
Оценка:
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>Я так понимаю, идея RISC в простом декодировании простых команд, что дает преимущество в конвеерном одновременном исполнении.

Не только. Ещё преимущество RISC в более эффективном использовании аппаратных субблоков процессора, а равно как в меньшем их количестве, что позволяет уменьшить энергопотребление, упростить производство и повысить тактовую частоту, на которой работает чип.
[КУ] оккупировала армия.
Re[3]: ARM - это RISC?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.06.17 13:37
Оценка:
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>netch80:


N>>UPD: ARM отличается тем, что в нём часто делают, что инструкция делает не одно простое действие, а 2 одновременно

ДФ>Не путаешь с VLIW?

Не-а.
Например, в ARM обоих разрядностей операция вида LDR R1, [R2, #-12]! одновременно грузит содержимое в регистр 1 (из адреса [R2]-12) и записывает в регистр 2 новое значение (уменьшает на 12). Таким стилем пользуются, в частности, операции со стеком.
В ARM/64 есть ldp и stp — одновременные чтение или запись пары регистров.

ДФ>Я так понимаю, идея RISC в простом декодировании простых команд, что дает преимущество в конвеерном одновременном исполнении.


Да. А также, если реализация не просто конвейер, а OoO, команды не требуют перетрансляции в простые операции (как приходится делать в x86).
The God is real, unless declared integer.
Отредактировано 13.06.2017 13:39 netch80 . Предыдущая версия .
Re[3]: ARM - это RISC?
От: jazzer Россия Skype: enerjazzer
Дата: 13.06.17 14:15
Оценка: 2 (2) +1
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>jazzer:


ДФ>>>ARM — это RISC, то есть сокращенный набор инструкций?


J>>

J>>Outside of the desktop arena, however, the ARM architecture (RISC) is in widespread use in smartphones, tablets and many forms of embedded device. It is also the case that since the Pentium Pro (P6) Intel has been using an internal RISC processor core for its processors.[32]

ДФ>А пень причём? RISC там как внутренний, промежуточный код.

При том, что это деление весьма условно. Начиная с пня там RISC-процессор, а классические CISC-команды просто в качестве RISC-макросов работают. Что, кстати говоря, гораздо проще и быстрее странслировать, чем извраты с "а вот если записаны вот такие десять RSIC-инструкций вот в таком вот порядке, то они все вместе значат нечто совершенно другое".

ДФ>>>Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?

J>>А как ты предлагаешь SIMD считать без новых команд?
ДФ>Никак не предлагаю.

Ну и нафиг он такой нужен, без SIMD

ЗЫ Ну и классическая цитата:

It's not clear what RISC is. RISC is a term like artificial intelligence. It's a jargon word that tends to get used for everything.
— Joseph Henry Condon, Bell Labs

jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: ARM - это RISC?
От: jazzer Россия Skype: enerjazzer
Дата: 13.06.17 14:23
Оценка: 1 (1) +3
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>ARM — это RISC, то есть сокращенный набор инструкций?



A common misunderstanding of the phrase "reduced instruction set computer" is the mistaken idea that instructions are simply eliminated, resulting in a smaller set of instructions.[21] In fact, over the years, RISC instruction sets have grown in size, and today many of them have a larger set of instructions than many CISC CPUs.[22][23] Some RISC processors such as the PowerPC have instruction sets as large as the CISC IBM System/370, for example; conversely, the DEC PDP-8—clearly a CISC CPU because many of its instructions involve multiple memory accesses—has only 8 basic instructions and a few extended instructions.

Так что RISC ни разу не означает, что должно быть как можно меньше команд и ни в коем случае нельзя вводить новые.

ДФ>Тогда зачем вводят всякие NEON-расширения в духе MMX/SSE?


Все вполне в духе RISC. Суть RISC, как я ее понимаю — что нет такого, что одна и та же команда может делать кучу разных вещей. Т.е. если в СISC будет одна команда ADD, которая будет работать и с памятью, и с регистрами, и со смесью памяти и регистров, то в RISC либо будет несколько отдельных команд на каждый случай, либо (что обычно и делается) одна только регистровая команда, а если хочешь поскладывать значения из памяти — изволь их сначала загрузить в регистры, потом позвать регистровую ADD, потом выгрузить результат из регистра в память.

Ровно ту же самую философию можно применять и к SIMD и иметь как RISC-, так и CISC-инструкции.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: ARM - это RISC?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.06.17 17:31
Оценка:
Здравствуйте, netch80, Вы писали:

N>В ARM/64 есть ldp и stp — одновременные чтение или запись пары регистров.

Это потому, что там регистров-то и нет в классическом их понимании. Есть нечто, называемое "регистровый файл", которое на самом деле представляет из себя область статической оперативной памяти, размещённой прямо на кристалле, и её ячейки как раз и служат для хранения значений "регистров". Кстати, в некоторых суперскалярных ядрах в этом регистровом файле может оказаться несколько "копий" одного и того же регистра одновременно.

N>Да. А также, если реализация не просто конвейер, а OoO, команды не требуют перетрансляции в простые операции (как приходится делать в x86).

Почти все ARM'овские ядра имеют конвейер, который как раз и обеспечивает OOO за счёт динамической перетасовки инструкций в соответствии с их таймингами, т.к. конвейер обеспечивает оптимальную пропускную способность (throughput, не путать с латентностью) за счёт "выравнивания" таймингов разных команд.
[КУ] оккупировала армия.
Re[5]: ARM - это RISC?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.06.17 18:08
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, netch80, Вы писали:


N>>В ARM/64 есть ldp и stp — одновременные чтение или запись пары регистров.

K>Это потому, что там регистров-то и нет в классическом их понимании. Есть нечто, называемое "регистровый файл", которое на самом деле представляет из себя область статической оперативной памяти, размещённой прямо на кристалле, и её ячейки как раз и служат для хранения значений "регистров". Кстати, в некоторых суперскалярных ядрах в этом регистровом файле может оказаться несколько "копий" одного и того же регистра одновременно.

Если Вы хотели сказать, что там OoO на основе переименования регистров (и скорее всего Tomasulo или его развитие), то это кэпство. Но оно никак не объясняет, почему ARM сделал такие действия на паре регистров, а MIPS, у которого тоже есть OoO реализации — нет.

N>>Да. А также, если реализация не просто конвейер, а OoO, команды не требуют перетрансляции в простые операции (как приходится делать в x86).

K>Почти все ARM'овские ядра имеют конвейер, который как раз и обеспечивает OOO за счёт динамической перетасовки инструкций в соответствии с их таймингами, т.к. конвейер обеспечивает оптимальную пропускную способность (throughput, не путать с латентностью) за счёт "выравнивания" таймингов разных команд.

И это никак не относится к тому, что я сказал — про простоту одиночных команд.
The God is real, unless declared integer.
Re[6]: ARM - это RISC?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 13.06.17 18:42
Оценка:
Здравствуйте, netch80, Вы писали:

N>Если Вы хотели сказать, что там OoO на основе переименования регистров (и скорее всего Tomasulo или его развитие), то это кэпство. Но оно никак не объясняет, почему ARM сделал такие действия на паре регистров, а MIPS, у которого тоже есть OoO реализации — нет.

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

N>И это никак не относится к тому, что я сказал — про простоту одиночных команд.

Простота команд не имеет никакого значения. Имеет значение отсутствие трансляции опкодов в "командные слова" управляющего блока.
[КУ] оккупировала армия.
Re[7]: ARM - это RISC?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.06.17 04:52
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Здравствуйте, netch80, Вы писали:


N>>Если Вы хотели сказать, что там OoO на основе переименования регистров (и скорее всего Tomasulo или его развитие), то это кэпство. Но оно никак не объясняет, почему ARM сделал такие действия на паре регистров, а MIPS, у которого тоже есть OoO реализации — нет.

K>Сама постановка вопроса не имеет смысла. Не сделали потому что не посчитали нужным, или просто не подумали об этом, или ещё чего. Всё равно что сейчас спрашивать, зачем Intel реализовала 4 кольца защиты в процессорах, хотя всегда использовались только два.

Так это Вы, а не я, к простой констатации, что в ARM любят такие штуки, притянули левое обоснование. У меня был просто факт.

Касательно колец защиты — во многих ранних разработках использовались минимум 3 из тех 4, да и сейчас иногда встречается — в микроядерных решениях. Но поменялась концепция: то же SMM — это пример "минус первого" уровня.
В новых реализациях это отражают даже нумерацией (нулевой, то есть точка отсчёта — юзерский, а над ним начинают наворачивать следующие: supervisor, hypervisor, machine...)

N>>И это никак не относится к тому, что я сказал — про простоту одиночных команд.

K>Простота команд не имеет никакого значения. Имеет значение отсутствие трансляции опкодов в "командные слова" управляющего блока.

Это я и называю: простая команда — которую не нужно транслировать. И это было сказано явно.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.