Re[3]: Эльбрус
От: jamesq Россия  
Дата: 14.07.19 06:54
Оценка:
Здравствуйте, netch80, Вы писали:


N>А вообще, разные разрядности — тоже разные системы команд, и это давно делается (любой x86 их сейчас поддерживает аж три).


Ну нет, это не так конечно. Эти разрядности — просто различные варианты одной системы команд. Оно же в корне ничего не меняется: как были вот эти переходы в зависимости от регистра флагов, так и остаются. Те же команды FPU, более крупные регистры включают в себя более мелкие.
Там же не появляются вот эти вот shadow регистры, как в Z80
Re[7]: Эту ветку сразу можно отделять и в политику.
От: Sheridan Россия  
Дата: 14.07.19 07:59
Оценка:
Здравствуйте, playnext, Вы писали:

P>Но современное поколение в РФ в основном в армию старается не ходить. Это нормально.

Только почему то взятки теперь дают за то чтобы пойти в армию
Matrix has you...
Re[6]: Эльбрус
От: pagid Россия  
Дата: 14.07.19 08:21
Оценка: +2
Здравствуйте, LaptevVV, Вы писали:

LVV>Извини, но интел реально гуано после pdp-11.

Это было очень заметно до тех пор пока в системе на на х86 было 64К памяти, когда стало больше пусть даже 128К, а тем более 640, мнение уже должно было поменяться. А когда интел очень гладенько перешел на 32-модель, pdp-11 пришлось заменить другой, сходной только идейно системой, и в добавок степень "коровистости" стала уже близкой. Но Интел (AMD конечно, но без разницы) очень гладко переехал на 64бита. Можно сколько угодно извергать кирпичи, но у Интела работающая годная десктопно-серверная система
Re[7]: Эльбрус
От: LaptevVV Россия  
Дата: 14.07.19 08:37
Оценка: +1
LVV>>Извини, но интел реально гуано после pdp-11.
P>Это было очень заметно до тех пор пока в системе на на х86 было 64К памяти, когда стало больше пусть даже 128К, а тем более 640, мнение уже должно было поменяться. А когда интел очень гладенько перешел на 32-модель, pdp-11 пришлось заменить другой, сходной только идейно системой, и в добавок степень "коровистости" стала уже близкой. Но Интел (AMD конечно, но без разницы) очень гладко переехал на 64бита. Можно сколько угодно извергать кирпичи, но у Интела работающая годная десктопно-серверная система
РНе...
Дело не в объеме памяти, а архитектуре системы команд.
В pdp все было единообразно, аргументы могли располагаться где угодно. Методы адресации — единообразные.
Инкремент и декремент — единообразен. Это вообще ПЕСНЯ была.
Регистры внешних устройств адресовались адресами памяти — это блеск!
Командой пересылки осуществляется ввод-вывод!
Система команд небольшая, но за счет развитости и единообразия видов адресации возможности очень большие.
Одной командой можно было очистить ВСЮ память.

Я долго после pdp плевался на систему команд интела, где на каждый чих — отдельное специальное решение.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: Эльбрус
От: pagid Россия  
Дата: 14.07.19 09:06
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Дело не в объеме памяти, а архитектуре системы команд.

LVV>В pdp все было единообразно, аргументы могли располагаться где угодно. Методы адресации — единообразные.
Это очень красиво, я тоже был и до сих пор в восторге, но оно не помогло использовать более 64К памяти. Там страницы переключаюся с отображением на 64К, а в в x86 сегментная организация, что оказалось куда как гибче и работоспособнее и без напрягов переехало на 32-разрядеую архитектуру.

LVV>Инкремент и декремент — единообразен. Это вообще ПЕСНЯ была.

LVV>Регистры внешних устройств адресовались адресами памяти — это блеск!
LVV>Командой пересылки осуществляется ввод-вывод!
Это не так уж и важно.

LVV>Система команд небольшая, но за счет развитости и единообразия видов адресации возможности очень большие.

LVV>Одной командой можно было очистить ВСЮ память.
LVV>Я долго после pdp плевался на систему команд интела, где на каждый чих — отдельное специальное решение.
Угу. Только интеловская плавно расширилась на 32 разряда и на 64, а для той такой возможности не было.
Re[11]: Эльбрус
От: pagid Россия  
Дата: 14.07.19 09:25
Оценка:
Здравствуйте, 0xCAFEDEAD, Вы писали:

CAF>Зачем нужна своя VLIW архитектура?

Она уже есть и по большому счету ничем не хуже любой другой собственной архитектуры.
Re: Эльбрус
От: ononim  
Дата: 14.07.19 09:40
Оценка:
С колокольни околосистемного программиста, никогда процессоры не разрабатывавшего у VLIW есть свои плюсы, которые однако же и одновременно минусы. CISC/RISC позволяют более гибкую оптимизацию на уровне процессора, VLIW же с ее параллелизацией на уровне компилятора подразумевает что однажды скомпиленный код на будущих процессорах будет параллелиться точно так же как и на старых. То есть такая "низкоуровневость" нативного кода сильно урезает возможности новых версий процессоров более оптимально исполнять старый код. С другой стороны умные декодеры, те самые, которые в х86 позволяют параллелить код, они тоже кушать хотят, потому offload их работы на компилятор теоретически снижает энергопотребление.
Потому мое ИМХО таково, что VLIW оптимален для эмбеддеда/мобильников и всяких JIT сред исполнения, а для десктопа/нативного кода — ну так себе. Хотя для opensource тоже норм, если не лень пересобирать мир под каждый новый проц.
Как много веселых ребят, и все делают велосипед...
Отредактировано 14.07.2019 9:44 ononim . Предыдущая версия .
Re[5]: Хм
От: Wolverrum Ниоткуда  
Дата: 14.07.19 10:07
Оценка:
Здравствуйте, 0xCAFEDEAD, Вы писали:

W>>Она не "еще одна", а "одна из уже" существующих в промышленных масштабах.

CAF>Эльбрус существует в промышленных масштабах?
Интел с аналогичной архитектурой.

PS Как-то не предполагал, что придется разжевать, и в рот положить
Re[7]: Эту ветку сразу можно отделять и в политику.
От: Пацак Россия  
Дата: 14.07.19 10:08
Оценка: +3
Здравствуйте, playnext, Вы писали:

P>Ну а так почти в тему. Процессор военный ведь?


- На танке установлена рация...
— Товарищ майор, а рация на лампах или на транзисторах?
— Для тупых повторяю: рация на танке!


Можно подумать то, что "военность" проца — это какая-то индульгенция для того, чтобы тридцать лет кормить всех "завтраками", насилуя теоретические разработки советского времени. Смысл разработки процессора — в том, чтобы выпускать его серийно, в промышленных масштабах. Если производства нет, то какая нахрен разница, что там за "не имеющие аналогов" технологии используются и насколько они опережали время в эпоху 80386.
Ку...
Re[2]: Эльбрус
От: a7d3  
Дата: 14.07.19 10:51
Оценка: +1
Здравствуйте, ononim, Вы писали:

O>Потому мое ИМХО таково, что VLIW оптимален для эмбеддеда/мобильников и всяких JIT сред исполнения, а для десктопа/нативного кода — ну так себе. Хотя для opensource тоже норм, если не лень пересобирать мир под каждый новый проц.


Точка зрения понятно, но есть нюанс.
Открываем https://www.archlinux32.org/packages/ смотрим на Arch.
Даже такие маргиналы как мейнтейнеры 32-х битного ArchLinux держат в репозиториях бинарники собранные под разные варианты 32-разрядного x86.
Re[3]: Эльбрус
От: ononim  
Дата: 14.07.19 10:58
Оценка:
O>>Потому мое ИМХО таково, что VLIW оптимален для эмбеддеда/мобильников и всяких JIT сред исполнения, а для десктопа/нативного кода — ну так себе. Хотя для opensource тоже норм, если не лень пересобирать мир под каждый новый проц.
A>Точка зрения понятно, но есть нюанс.
A>Открываем https://www.archlinux32.org/packages/ смотрим на Arch.-+
A>Даже такие маргиналы как мейнтейнеры 32-х битного ArchLinux держат в репозиториях бинарники собранные под разные варианты 32-разрядного x86.
Ну я ж писал что в опенсурсе тоже норм. В целом более тесная связка компонентов системы подразумевает большие возможности для оптимизации и меньшие — для унификации. В данном случае компоненты — проц и компилятор.
Как много веселых ребят, и все делают велосипед...
Re[4]: Эльбрус
От: a7d3  
Дата: 14.07.19 12:11
Оценка:
Здравствуйте, ononim, Вы писали:

O>>>Потому мое ИМХО таково, что VLIW оптимален для эмбеддеда/мобильников и всяких JIT сред исполнения, а для десктопа/нативного кода — ну так себе. Хотя для opensource тоже норм, если не лень пересобирать мир под каждый новый проц.

A>>Точка зрения понятно, но есть нюанс.
A>>Открываем https://www.archlinux32.org/packages/ смотрим на Arch.-+
A>>Даже такие маргиналы как мейнтейнеры 32-х битного ArchLinux держат в репозиториях бинарники собранные под разные варианты 32-разрядного x86.
O>Ну я ж писал что в опенсурсе тоже норм. В целом более тесная связка компонентов системы подразумевает большие возможности для оптимизации и меньшие — для унификации. В данном случае компоненты — проц и компилятор.

А много ли народу в современных линуксах что-то там пересобирают на своих компах?
Поголовно качают уже готовые бинарники с репозиториев. Даже когда пользователями являются профессиональные специалисты из мира разработки софта. Сколько реально осталось source based дистрибутивов линукса и какое количество пользователей у них?

Будет в репозиториях лежать несколько вариантов бинарников — под разные варианты поколения VLIW, так же как делали последние года с вариациями 32-разрядного x86.

В тоже время, у Эльбрусов давно есть встроенный бинарный транслятор x86-инструкций в VLIW-машкод. А это гораздо сложнее, чем сконвертировать VLIW-инструкции одного поколения под более новое. Так что вопрос унификации под разные VLIW может решаться и бинарной трансляцией — как динамической, так и с кэшированием. Например, как в случае приложений под современные Android'ы, то самое «выполняется оптимизация приложений».
Re[8]: Эльбрус
От: Privalov  
Дата: 14.07.19 13:02
Оценка:
Здравствуйте, LaptevVV, Вы писали:

Как человек, никогда не видевший PDP-11, могу ли я поинтересоваться?

LVV>Дело не в объеме памяти, а архитектуре системы команд.


Ее в самом деле сильно хвалили, но в чем там фишка, не рассказывали.

LVV>В pdp все было единообразно,


В чем заключалось единообразие, можешь просветить?

LVV>аргументы могли располагаться где угодно.


Это как? Разве не через стек шла передача аргументов? Это на ЕС не было стека, приходилось выделять память, оставлять адрес выделенной области в одном из регистров, потом на входе все очищать. Поэтому на ЕС рекомендовали не злоупотреблять вызовами подпрограмм.

LVV>Методы адресации — единообразные.


И этого не понял. Во все времена адресация была прямая, непосредственная, несколько типов косвенной. Я что-то пропустил?

LVV>Инкремент и декремент — единообразен. Это вообще ПЕСНЯ была.


То есть, выполнялся одной командой?

LVV>Регистры внешних устройств адресовались адресами памяти — это блеск!

LVV>Командой пересылки осуществляется ввод-вывод!

Такое было на Motorola 68040. Часть памяти отображалась на ввод/вывод. Не нужна была отдельная команда чтения/записи в порт. Но какие преимущества это давало при программировании, я не очень понимаю.

Пока все, пожалуй. Может, еще что потом вспомню.

P.S. на третьем курсе один из наших преподов любил повторять: глупых вопросов не бывает.
Re[9]: Эльбрус
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.07.19 13:41
Оценка: +1
Здравствуйте, pagid, Вы писали:

LVV>>Дело не в объеме памяти, а архитектуре системы команд.

LVV>>В pdp все было единообразно, аргументы могли располагаться где угодно. Методы адресации — единообразные.
P>Это очень красиво, я тоже был и до сих пор в восторге, но оно не помогло использовать более 64К памяти.

Это не имеет никакого отношения к архитектуре системы команд.
VAX и M68k имели по сути такую же архитектуру — вершина CISC, любой аргумент почти любого типа. Но у них уже было 32-битное пространство без сложностей по рассматриванию огромного мира в крошечное окошко.

P> Там страницы переключаюся с отображением на 64К, а в в x86 сегментная организация, что оказалось куда как гибче и работоспособнее и без напрягов переехало на 32-разрядеую архитектуру.


Не переезжало оно без напрягов: в 32 битах его тупо не используют — безумных нет, а в 64 и нельзя использовать напрямую.

Вот если бы они сделали в стиле IBM, что в 32 и 64 битах сегментные регистры выбирают корневой страничный каталог — их бы использовали и по делу.

LVV>>Система команд небольшая, но за счет развитости и единообразия видов адресации возможности очень большие.

LVV>>Одной командой можно было очистить ВСЮ память.
LVV>>Я долго после pdp плевался на систему команд интела, где на каждый чих — отдельное специальное решение.
P>Угу. Только интеловская плавно расширилась на 32 разряда и на 64, а для той такой возможности не было.

Ничего такого "плавного" в x86 не было. Парсинг команд в 32 и 64 заметно другой и разный между ними самими. Дополнительные регистры добавлены костылями, как и 64-битные данные большинства команд. Методы адресации заметно перестроились.
Видимость сходства, да, но внутри совсем другое.
Лучше бы, сохраняя общую архитектуру, полностью перекроили построение системы команд с нуля.
Но AMD были нищие и не могли это себе позволить.
The God is real, unless declared integer.
Re[9]: Эльбрус
От: pagid Россия  
Дата: 14.07.19 13:46
Оценка: 2 (1) +2
Здравствуйте, Privalov, Вы писали:

P>Ее в самом деле сильно хвалили, но в чем там фишка, не рассказывали.

Там очень простая, но универсальная система команд. Восемь регистров, практически равноценных, за исключением, того, предпоследний это указатель стека, а последний указатель команд. Все методы адресации применимы практически ко всем командам и операндам.

P>Это как? Разве не через стек шла передача аргументов?

Видимо не аргументы, а операнды

LVV>>Методы адресации — единообразные.

P>И этого не понял. Во все времена адресация была прямая, непосредственная, несколько типов косвенной. Я что-то пропустил?
С автоинкрементом и автодекрементом
Вот это
*(p++) = *(s++)
компилируется в одну машинную команду
Re[8]: Эльбрус
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.07.19 13:52
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>РНе...

LVV>Дело не в объеме памяти, а архитектуре системы команд.
LVV>В pdp все было единообразно, аргументы могли располагаться где угодно. Методы адресации — единообразные.

Неправда. На единообразие им тупо не хватило места в 16 битах.
ADDB, SUBB байтные — не введены.
XOR, MUL, DIV, ASH, ASHC имеют одним аргументом только регистр.
Для обычной группы сдвигов (ASL, ASR, ROL, ROR) не хватило места на аргумент — величину сдвига.
Про плавучку вообще молчу — группа FIS брала аргументы со стека и возвращала результат на стек, потому что иначе не нашли места для аргументов.

LVV>Инкремент и декремент — единообразен. Это вообще ПЕСНЯ была.


Причём косвенные их варианты использовались чуть чаще, чем никогда (режим 3 по PC не в счёт).

LVV>Регистры внешних устройств адресовались адресами памяти — это блеск!


Да, это впервые появилось именно в PDP-11. Позднее из неё распространилось на всех. Так же как схема флагов NZVC.

LVV>Командой пересылки осуществляется ввод-вывод!


А вот то, что MOV ставила флаги, признано ошибкой и с 80-х никем не повторяется.

LVV>Система команд небольшая, но за счет развитости и единообразия видов адресации возможности очень большие.

LVV>Одной командой можно было очистить ВСЮ память.

Если бы она после этого останавливалась, был бы смысл. А так — нелепое хакерство на померяться дурью удалецкой.

LVV>Я долго после pdp плевался на систему команд интела, где на каждый чих — отдельное специальное решение.


Зато идейный последователь подхода PDP-11 в лице M68k — умер в начале 90-х, потому что не смог перейти со своей универсальностью в мир, где out-of-order исполнение, переименование регистров и иерархия кэшей.
The God is real, unless declared integer.
Отредактировано 14.07.2019 16:07 netch80 . Предыдущая версия .
Re[4]: Эльбрус
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.07.19 13:57
Оценка: 1 (1)
Здравствуйте, jamesq, Вы писали:

N>>А вообще, разные разрядности — тоже разные системы команд, и это давно делается (любой x86 их сейчас поддерживает аж три).


J>Ну нет, это не так конечно. Эти разрядности — просто различные варианты одной системы команд. Оно же в корне ничего не меняется:


У них разные, несовместимые парсеры.
В отличие, например, от IBM zSeries, у которой добавлены 64-битные команды, не ломая старые, а разрядность адреса (24/31/64) свободно управляется непривилегированной командой.
При совершенно разных системах команд сделать совместимость по общей части пула регистров — банально, это делали и PDP-11+VAX, и ARM/32+ARM/64, и x86-32+IA64, и x86 со всеми тремя режимами. Но это не создаёт всем одинаковую систему команд.

J> как были вот эти переходы в зависимости от регистра флагов, так и остаются. Те же команды FPU,


Которое фактически deprecated и Intel регулярно грозится исключить его совсем, или перевести на микрокод, с замедлением на порядок.

J> более крупные регистры включают в себя более мелкие.

J>Там же не появляются вот эти вот shadow регистры, как в Z80

Эээ... не знаю, почему для вас shadow регистры это признак другой системы команд, а не системного расширения текущей, но на всякий случай напомню, что в x86 пул FP регистров = пулу MM, но не пулу XMM/YMM/ZMM, последний — совсем другие регистры.
The God is real, unless declared integer.
Отредактировано 15.07.2019 5:52 netch80 . Предыдущая версия .
Re[9]: Эльбрус
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.07.19 14:11
Оценка: 2 (1)
Здравствуйте, Privalov, Вы писали:

P>Как человек, никогда не видевший PDP-11, могу ли я поинтересоваться?


LVV>>Дело не в объеме памяти, а архитектуре системы команд.

P>Ее в самом деле сильно хвалили, но в чем там фишка, не рассказывали.

Для некоторого основного набора команд (MOV, ADD, SUB, BIS, CMP...) источник и приёмник могли быть абсолютно любого типа из поддерживаемых, и независимо друг от друга. Память, регистры — не важно.
Плюс к тому:
1) Работа со стеком без отдельных приёмов — работал автоинкремент и автодекремент.
2) Эти самые автоинкремент и автодекремент работали для любого регистра, сокращая операции на последовательную работу с областью памяти.
3) Сюда же универсально легли методы задать любой команде константу-литерал или абсолютный адрес в памяти через использование регистра PC для адресации; тут же была адресация относительно PC (которую в x86 сделали только в 64 битах, раньше не было) — для позиционно-независимого кода.

LVV>>аргументы могли располагаться где угодно.

P>Это как? Разве не через стек шла передача аргументов?

Можно было и через регистры, и через стек.
Но на PDP-11 был ещё один интересный фокус: аргументы подпрограммы посреди вызывающего кода, сразу за командой JSR — вызова подпрограммы. Использовался для этого регистр связи, отличающийся от PC.

P> Это на ЕС не было стека, приходилось выделять память, оставлять адрес выделенной области в одном из регистров, потом на входе все очищать. Поэтому на ЕС рекомендовали не злоупотреблять вызовами подпрограмм.


Сейчас там точно так же нет стека, но GCC компилирует в ABI, в котором стек сделан на R13. И используют — почти как на x86: декрементировал на входе в подпрограмму, попользовался в локальных смещениях (доступны и отрицательные, но команда на 2 байта длиннее), инкрементировал обратно на выходе.

LVV>>Методы адресации — единообразные.

P>И этого не понял. Во все времена адресация была прямая, непосредственная, несколько типов косвенной. Я что-то пропустил?

См. выше. Например, непосредственная константа в команде — через (PC)+, абсолютная адресация — через @(PC)+.

Например, команда "записать 41 по адресу 25" (считаем, оба восьмеричные):

MOV #41, @#25

на самом деле она превращалась в последовательность:

MOV (PC)+, @(PC)+
.WORD 41
.WORD 25

В x86 и аналогах для непосредственной константы надо делать отдельный тип команды.

Что интересно, можно было делать и следующую хохму:

MOV R0, (PC)+
X: .WORD 0

записал себе в ячейку прямо в коде и пошёл дальше потом из этой X прочитать (в относительной адресации).

LVV>>Регистры внешних устройств адресовались адресами памяти — это блеск!

LVV>>Командой пересылки осуществляется ввод-вывод!
P>Такое было на Motorola 68040. Часть памяти отображалась на ввод/вывод. Не нужна была отдельная команда чтения/записи в порт. Но какие преимущества это давало при программировании, я не очень понимаю.

Так на x86 тоже такого сейчас до чёрта, и даже рекомендуют укладывать большие области регистров на память.
Из стандартных устройств только на память отображаются все APIC, HPET...
И на MIPS, ARM, многих других нет отдельного I/O, только через пространство памяти.
X86 старый в этом смысле — уникум.
The God is real, unless declared integer.
Re[11]: Эльбрус
От: Gt_  
Дата: 14.07.19 15:26
Оценка:
CAF>>>А что потом то? И зачем оборонке своя архитектуры. Ну вот сделали Байкал — понимаю, свой завод — понмаю. Все железо — да. Но Эльбрус то зачем?

Gt_>>что бы не грустить потом как хуавей, с его байкалом. упаковать арм ядра может и хуавей, но нужен то всем полноценный проц, а не еще один байкал.


CAF>Зачем нужна своя VLIW архитектура?


что бы не упереться в производительность одного потока как интел с x86. vliw позволяет больше инструкций за такт + перенести блок предсказаний в компилятор.
пытаться с двумя деревянными рублями догнать интел просто глупо, посоревноваться с интелом и арм сможет лишь то, что будет в разы больше инструкций за такт прожевывать. например vliw.
Re[3]: Эльбрус
От: barrett Россия  
Дата: 14.07.19 15:51
Оценка: +1
Здравствуйте, 0xCAFEDEAD, Вы писали:

CAF>А как все эти вложения окупятся вот в чем вопрос? Я пока не вижу ответа.


Вот именно такой подход ("А когда мы отобъем своё бабло и с каким наваром?") в сфере национальной безопасности приводит
к ситуации, которая сейчас наблюдается, например в США в области производства обогащенного урана.
Американская обогатительная корпорация была в своё время приватизирована (неужели наши приватизаторы надоумили? ) именно с целью
максимизации прибыли от отрасли. В итоге оказалось, что выгоднее перепродавать российский уран, чем добывать и обогащать свой.
В итоге имеются признаки развала урановой отрасти (капитилистического народного хозяйства ).
Я полагаю, не надо повторять, что свои микропроцессоры — это тоже сфера национальной безопасности.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.