О чем говорят инженеры
Выдержки из дискуссии:
Chris Rowen, CTO at Tensilica;
Andrew Caples, senior product manager at Mentor Graphics;
Drew Wingard, CTO at Sonics;
Larry Hudepohl, vice president of hardware engineering at MIPS;
Barry Pangrle, senior power methodology engineer at Nvidia.
"There are examples of chip companies that were started to do some very clever things, but they never got off the ground because no one could figure out how to develop the software. It’s easy to build embarrassingly parallel hardware that is programmable, but building a software environment that people are willing to use is a different matter."
Как бы вдогонку к обсуждению Мультиклета.
Chris Rowen, CTO at Tensilica;
Andrew Caples, senior product manager at Mentor Graphics;
Drew Wingard, CTO at Sonics;
Larry Hudepohl, vice president of hardware engineering at MIPS;
Barry Pangrle, senior power methodology engineer at Nvidia.
"There are examples of chip companies that were started to do some very clever things, but they never got off the ground because no one could figure out how to develop the software. It’s easy to build embarrassingly parallel hardware that is programmable, but building a software environment that people are willing to use is a different matter."
Как бы вдогонку к обсуждению Мультиклета.
no subject
Либо количество страниц в виртуальном пространстве получится ограниченным, либо страницы большими и wasteful.
Хуже же всего, что void* окажется 128-битным типом, и адресация к каждому элементу памяти будет медленной из-за необходимости постоянных перезагрузок сегментных регистров.
И наконец, last but not least, в х86/х64 с помощью сегментных регистров можно задать защиту KW, EW, SW и UW, но не UR или URKW.
no subject
Указатель должен быть адресовать всё адресное пространство, приключения с разными категориями указателей никому не нужны.
Указатели данных могут приходить из самых разных, наперед неизвестных сегментов, поэтому перегрузка сегментного регистра потребуется практически перед каждой инструкцией или, в лучшем случае, коротким блоком инструкций. Поскольку же выяснится, что данные могут также пересекать границы сегментов-страниц, то реально проверка на переполнение указателя потребуется при каждом обращении с индексацией или инкрементом или попросту при возможности того, что поле атомарного типа пересечет границу сегментов. См. FAR-указатели в 16-битном Windows.
no subject
Как только вводится виртуальная память, возникает агностическое разбиение ядром адресного пространства на страницы фиксированного размера, реализация которых с помощью сегментов x86 ведёт ко всем перечисленным последствиям.
Кодогенератор может что-то знать об размещении данных, и то лишь в каком-то проценте случаев, лишь для модулей которые вместе прошли через оптимизатор. Ан масс он ничего о характере указателей не знает.
Сегменты нарезал пейджер.
no subject
И, конечно, собственно вообще иметь paging.