| Процессор глазами маркетолога |
[Sep. 20th, 2010|03:22 am] |
|
|
|
|
| Comments: |
Потому что 99% населения, считающего, что знает, как работают компьютеры, имеет представления на уровне 1970х годов. Неудивительно, примерно тогда в совке и перестали разрабатывать компьютеры, плюс международная изоляция — школа сдулась. Мифов вокруг x86 десятки, и я не знаю, с какого стоит начать разоблачение. Если что-то конкретное интересует, я отвечу.
Это не миф, а попросту глупость. Даже на заре индустрии больше трети хранилище микрокода не занимало (что объяснимо низким бюджетом транзисторов — десятки тысяч). Две трети процессора сейчас заняты кэшем, что можно легко увидеть на каждой презентационной картинке. Именно разрыв в производительности между процессором и памятью является одной из главных проблемой (вторая — энергопотребление).
Декодер команд — штука довольно простая, но полезная. Программа, записанная крупными инструкциями, имеет меньший объем, чем записанная мелкими, а это экономит пропускную способность памяти и место в кэше (особенно, первого уровня). Реализация новой крупной инструкции в микрокоде весьма дешева (часто бесплатна), а выигрыш зачастую велик.
Статическая компиляция в микроинструкции не всегда приводит к повышению производительности. Во-первых, оверхед на декодирование крупных инструкций по сравнению с мелкими не превышает 10%, что ничтожно, если принять во внимание медленную память. Во-вторых, без компрессии кода все равно не обойтись, т.к. нужно экономить пропускную способность шины и место в кэше первого уровня, т.е. оверхед не будет сильно меньше. В-третьих, зачастую (по крайней мере при нынешнем развитии техник статического анализа) динамическая компиляция генерирует лучший код, т.к. есть доступ к статистике от предсказателя ветвлений и контроллера памяти, собранной для конкретного исполняемого в данный момент приложения.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | | From: | ketmar |
| Date: | September 20th, 2010 - 01:15 pm |
|---|
| | | (Link) |
|
не с того начал, тащемта. хер с ним, с декодером — это дело десятое. а вот важное дело — это совершенно ебанутая неортогональность системы команд и специализация регистров (которых и так нихера почти нет).
Ортогональность — слишком дорогая и приносящая мало пользы штука, реализовывать ее невыгодно. Аналогично с универсальностью регистров. Также нужно различать архитектурные и физические регистры. От переименования регистров все равно не уйти при внеочередном исполнении, так что большое число архитектурных регистров не требуется. | |