Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Общие темы > Болтовня

Болтовня Разговоры на любые темы (думайте, о чем пишите)

Ответ
 
Опции темы
Старый 15.07.2014, 20:33   #1
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Процессоры - груз обратной совместимости.

В одном паблике у школьников и прочей аудитории разрыв шаблона был, когда я написал, что раньше в байте могло и 6, и 7, и даже 9 бит. Восьмеричная запись чисел в Си, думаю, оттуда пришла - удобно 9 бит тремя символами писать.
Так вот, мне кажется нерациональным, что байты до сих пор используются. Было бы логично забить на остальные типы и оставить только int на 32 бита и на 64. (К слову, в JVM так и есть, для всяких byte и short есть только команды загрузки в регистр и сохранения обратно)
Зачем может быть нужен отдельный байт? Хранить bool? Простите, уже нерационально 8 бит занимать. Ну а тут 32, всего лишь в 4 раза больше. Если кто-то захочет экономить, может как и сейчас, упаковать 32 значения в инт. Хранить символ текста? Кодировки типа юникод всё равно не влазят. При хранении структур компилятор их любит выравнивать, чтобы кратно 4 байтам было.
В итоге из 32 бит адреса последние два практически не используются. Ещё в наследие достался всякий треш с регистрами - ah, al, ax, eax, rax - по всем из них доступно практически одно и то же. Есть всякие флаги типа флага чётности, которые никто не использует, но нет исключений при переполнении - хотя второе нужнее.
Есть расширения типа x87 и MMX, которые делают почти одно и то же, но которые непоиспользовать одновременно, есть ещё SSE. Но для работы с ними данные в памяти, опять же, надо выравнивать (к слову о ненужности современных байтов), я не встречал способа кратко и красиво написать SIMD команды в высокоуровневом языке программирования. Компиляторы, имхо, самостоятельно могут сделать криво или вообще не сделать.
Да, интел пытались сделать Itanium c несовместимой системой команд и провалились. Мне интересно - когда будет адекватная новая архитектура? Возможно, с уклоном в параллельность или ещё что-нибудь, не важно. Но груз совместимости, имхо, пора сбросить и забыть.
Можно проанализировать кучу современного ПО, понять, как часто та или иная инструкция выполняется, в каком контексте это происходит. Можно на основе этого разработать систему команд, удобную для декодирования процессором и компактную по объёму кода.
ПО с открытым исходным кодом, опять же, при желании можно скомпилировать под другую архитектуру - надо только компилятор переписать.
Ядра процессора, имхо, можно начать делать разными. Пусть, например, из 4 ядер в обычном ноуте два медленно работают c floating-point, но зато тратят минимум энергии и исполняют процессы, которые вычисления с плавающей запятой не используют. Другие два - работают быстро с чем угодно, но жрут энергию.
P.S. А ещё если бы ячейки были по 32 бита - адресного пространства хватило бы на 16 современных гигабайт.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 15.07.2014, 21:14   #2
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Процессоры - груз обратной совместимости.

Сообщение от Igor Посмотреть сообщение
я не встречал способа кратко и красиво написать SIMD команды в высокоуровневом языке программирования.
Посмотри как это реализовано в компиляторе от интела.

Первые высокоуровневые языки шейдеров были ограничены примерно так как ты говоришь, но все стали требовать short, half и т. п. Значит видимо нужно.

А вообще сделай виртуальную машину, и мы посмотрим удобно кодить под такую или нет.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 21:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com