> процессоре обнаружат ошибку, напр. Pentium FDIV bug. С помощью микрокода можно
> исправлять такие ошибки не выбрасывая процессор на свалку и не заменяя его по гарантии.Есть и иные соображения. Можно передать по шине компактную команду, а внутри чипа она распакуется в широченное нечто, которое распихается в кучу блоков. Понятно что это имеет свои ограничения, но в целом это позволяет разгрузить внешние шины.
> Микрокод - это не "прошивка", он не добавляет нового функционала, ничего не
> улучшает и ничего не ускоряет, только исправляет выявленные аппаратные ошибки.
Микрокод - это некий ROM table, описывающий как декодировать наружные команды в внутренние микрооперации. Ничему не противоречит добавить в очередной ревизии новые команды, регистры и проч.
> Ускорение возможно только если были ошибки в предустановленном в процессор микрокоде.
Ускорение возможно только если команда перед релизом процессора груши околачивала и прошляпила возможность оптимизации до релиза. Поскольку это подмачивает смысл выпуска нового чипа - так стараются не делать.
> Линукс, так что...
Что - так что? Утверждается что сбой - в Linux? Или что?
> Бытует неправильная точка зрения, что микрокод появился из-за необходимости перевода CISC
> в RISC. Те, кто распространяют эти слухи, просто не в курсе,
Скорее переводит в нечто типа VLIW, чтоли. VLIW можно с натягом рассматривать как кучку параллельно работающих RISC, но это условно. А так - в итанике попытались декодер оборвать, но оптимизировать vliw-образные конструкции существующие компилеры изначально не умеют, в режиме эмуляции x86 скорость аховая, чипы стоили как самолет и разработчики не рвались их покупать, соответственно. Ну и в целом интел пролетел. Хотя сам по себе подход и не обязан быть фэйловым. КМК могло взлететь, если б сделали облегченные варианты за копейки, чтобы разработчики это понакупили.
> что в ARM (который изначально RISC) тоже есть микрокод и появился
> он там по тем же самым причинам, что и у Intel.
Это в каком месте у ARM микрокод, загружаемый снаружи? Вот прямо цитату из ARMовского референс мануала давай (он у меня есть - я проверю). Конечно же мы про rom table декодера. У ARMов нет такого декодера и набор команд RISC'овый. Вплоть до того что в instruction set побитово впихано что, куда, с какими регистрами. Это простые операции, для них не требуется ROM decoder.