Проблема в том, что транслятор на внутренний код - это штука толщиной в сотни раз больше, чем весь микрокод. А есть и другие части, включая АЛУ с его хитрой логикой, внутренние шины, шлюзы на внешние шины и так далее. И то же АЛУ переложить в формат некоей последовательности битов, которую можно было бы запатчить, невозможно в принципе.
Поэтому я уверен, что сделано иначе. Есть некоторая уже несколькими поколениями проверенная постоянная часть, которую считают надёжной и которая микрокодом уже не меняется. А для остального предусмотрены опции замедления, замены алгоритма на более надёжный и т.п., и микрокод это установки значений внутренних регистров в более "безопасный" вариант. Поэтому каждая часть "патча" это запись вида "R453176=0" (если у него дефолт=1), или аналогичная модификация (например, есть глюки при попытке одновременного исполнения 6 команд => поставим максимум 5; совсем глючный один из конвейеров => выключим нафиг...)
no subject
Date: 2016-01-14 11:03 am (UTC)Поэтому я уверен, что сделано иначе. Есть некоторая уже несколькими поколениями проверенная постоянная часть, которую считают надёжной и которая микрокодом уже не меняется. А для остального предусмотрены опции замедления, замены алгоритма на более надёжный и т.п., и микрокод это установки значений внутренних регистров в более "безопасный" вариант. Поэтому каждая часть "патча" это запись вида "R453176=0" (если у него дефолт=1), или аналогичная модификация (например, есть глюки при попытке одновременного исполнения 6 команд => поставим максимум 5; совсем глючный один из конвейеров => выключим нафиг...)