>>Сравнивать разные архитектуры по тактовым частотам. Кто вас такому научил? O_O
>
>Вот, еще одна затёртая до дыр фраза:) Вот именно, что сравнение уже
>не в пользу IBM. Еще с десяток лет назад IBM'овцы гордились
>тем фактом, что благодаря "прогрессивной" архитектуре имея _МЕНЬШУЮ_ тактовую частоту, PowerPC
>оказывался более производительным. Сейчас же ситуация _ПОЛНОСТЬЮ ОБРАТНАЯ_ - тактовая частота
>Поверов уже под 5ГГц, а у Core 2 Duo редко доходит
>до трёх. Уяснили разницу? И еще сравниваем энергопотребление и цену. И
>помним про историю с Apple ;)
>А я так и написал - не угнались;D
>>PPC не угнался за Intel. Между ними не такая уж и большая
>>разница. Но у x86 корявая система команд и переключение контекстов задач
>>занимает много времени. В PPC такого нет, но это преимущество проявляется
>>только на микроядре:)
>
>Ха-ха-ха:) Опять я слышу это "корявая система команд", упомянутое вскольз, с опаской
>и без конкретики... Напоминаю предыдущий свой пост:
>
Хоть бы почитали об истории создания первого интеловского проца:D Я его не просто так назвал корявой. Он создавался для терминала. Накладки с заказчиком и понеслось.
>>Если говорить откровенно, то вообще-то 99.9% программистам начхать на процессор, по той причине, что никто из них не пишет на ассемблере и понятия не имеет какая там используется система команд и уж тем более, микроархитектура. Поэтому для них процессор - черный ящик, который исполняет их программы (которые в последнее время все больше пишутся уже даже не на C/C++, а на различных Java/Python/Mono/Tcl - короче говоря очень далеких от конкретной архитектуры команд) и ОС, а испольняет он их _очень_ быстро, именно это на данный момент является критерием качества архитектуры (всё остальное - уже забота компиляторов)
>
>А про преимущества, которые проявляются лишь "на микроядре" вообще порадовало - хорошее
>наверное преимущество с учетом того факта, что самые распространенные ОС на
>данный момент обладают монолитными ядрами (ну или более близкие к монолитным).
>А про время переключения контекста Вы подтвердить сможете, или просто воздух
>сотрясаете? Ссылочка будет?
>
>
Вот именно, что монолитные.
<<<>>>
> почему на x86 переключение контекстов -- такая страшная операция, сильно тяжелее переключения userland/kernel стеков
Переключение контекста между нитями (пользовательскими) требует пересечения границы kernel/user и замены значений регистров, не связанных с управлением защитой памяти. Переключение контекста между задачами - это переключение контекста между нитями + переключение контекста защиты памяти. Последнее требует сброса TLB, а это дорогая операция с дорогими последствиями.
<<<>>>
Можно и поискать. Давно читал об этом.
>>Знаю, не заблуждайтесь поэтому:) http://www.terralab.ru/system/235565/
>>ARM хорош условными инструкциями.
>>Архитектура ARM (Advanced RISC Machines) разработана в 1983-85 годах в компании Acorn
>>Computers. http://itc.ua/node/3723/
>
>Пятёрка Вам за ответ:) Вы знаете как расшифровывается эта абревиатура и её
>краткую историю, но не более.
>P.S. Условные инстукции есть во всех процессорах, и инлелловских в том числе.
>Именно они основную головную боль и создают. Короче говоря, учите матчасть
>и не повторяйте за другими всякие глупости
Посмешили. Сразу видно - статью не прочел:)
Вот оно - инструкции с условным кодом:
Идея условных инструкций проста, как все гениальное: инструкция с условным кодом выполняется, только если в процессоре выставлен бит соответствующего условия. В противном случае она игнорируется. Ближайший аналог в наборе инструкций x86 - инструкции условного перехода, срабатывающие, только если в процессоре был выставлен тот или иной флаг; в архитектуре ARM подобные "условности" применимы к любой инструкции, а флаги можно определять самостоятельно. Идея в том, что в коде типа
Если (условие) то Выполнить1 иначе Выполнить 2
вместо того, чтобы записать традиционную конструкцию
1. Вычислить условие
2. Если условие выполнено, то идти к 5
3. Выполнить2
4. Идти к 6
5. Выполнить1
6. …
используя условные инструкции, можно записать
1. Вычислить условие и поставить Флаг1 по результатам вычисления
2. Выполнить1 при условии выставленного Флаг1
3. Выполнить2 при условии невыставленного Флаг1
Обратите внимание, что получившийся код не только более компактен, но и лишен одного условного и одного безусловного перехода, присутствовавших в классическом варианте, - тех самых переходов, которые обычно больно бьют по производительности конвейерных архитектур.
Вариант x86 и ARM.