netch80: (bird)
[personal profile] netch80
А мне эта новость нравится. Потому что она означает, что идёт развитие и перекраивается внутренняя организация. А ещё тем, что фикс, говорят, есть.
Скорее всего, он будет в паре бит конфигурации типа "вот этот суперрежим мы пока отменим, он опасный", но хорошо, что предусмотрели такую возможность для каждой мелкой части.
http://habrahabr.ru/company/pt/blog/274939/
http://arstechnica.co.uk/gadgets/2016/01/intel-skylake-bug-causes-pcs-to-freeze-during-complex-workloads/

Date: 2016-01-14 10:17 am (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Фикс, как обычно, будет патчем на микрокод, изменяющим компиляцыю нескольких инструкцый во внутренний код процэссора.

Date: 2016-01-14 11:03 am (UTC)
From: [identity profile] netch80.livejournal.com
Проблема в том, что транслятор на внутренний код - это штука толщиной в сотни раз больше, чем весь микрокод. А есть и другие части, включая АЛУ с его хитрой логикой, внутренние шины, шлюзы на внешние шины и так далее. И то же АЛУ переложить в формат некоей последовательности битов, которую можно было бы запатчить, невозможно в принципе.

Поэтому я уверен, что сделано иначе. Есть некоторая уже несколькими поколениями проверенная постоянная часть, которую считают надёжной и которая микрокодом уже не меняется. А для остального предусмотрены опции замедления, замены алгоритма на более надёжный и т.п., и микрокод это установки значений внутренних регистров в более "безопасный" вариант. Поэтому каждая часть "патча" это запись вида "R453176=0" (если у него дефолт=1), или аналогичная модификация (например, есть глюки при попытке одновременного исполнения 6 команд => поставим максимум 5; совсем глючный один из конвейеров => выключим нафиг...)

Date: 2016-01-14 02:35 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
1) Да, там есть постоянная (зашытая в схему соединений) часть.
2) Дело не в том, что она надёжная -- а в том, что она сравнительно просто транслируется в малое число (по-моему, до трёх по построению) команд RISC-микрокода.
3) Но дажэ любую команду из этой постоянной части можно превратить в компилируемую в микрокод, поскольку таблицы компилируемых команд имеют приоритет над встроенным микрокодом (кстати, я так понимаю, что компилятор там тожэ что-от вроде FPGA и память, где простенькая логика FPGA фигачит шаблоны из памяти).
4) Шанс, что это решат настройками ALU, конечно, есть, но в большынстве случаев так это не решается, по факту. Потому придумывают какие-то вещи типа вставления дополнительной проверки аргументов.

Date: 2016-01-17 03:57 pm (UTC)
From: [identity profile] netch80.livejournal.com
> в малое число (по-моему, до трёх по построению) команд RISC-микрокода.

Где можно об этом прочитать подробнее?

Date: 2016-01-18 07:26 am (UTC)
From: [identity profile] tzirechnoy.livejournal.com
По-моему, я читал это во введении в какой-то интеловский мануал по оптимизацыи для одной из старых (порядка Core2) линееки.

Впрочем, не на 100% уверен. То есть помню, что читал именно интеловское описание с сухим, но очень пиарским описанием забивания трёх конвееров ALU, скольких-то там FPU и пр., при помощи риск-подобных команд, но не помню, какое.

Сейчас найти не очень получается. Ну, например, вот здесь http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html , на стр.624 PDF-а, есть про то, что в современных процах 4 uops могут полчаться из одной команды без обращения к софтовому декодеру.

Это про всё, кроме FPGA, моё мнение про FPGA -- это чисто догадки. Я некоторое время назады пытался выяснить формат этого описания микрокода, но обломился. Так, общие соображэния, говорят, что это должно быть именно так.

Date: 2016-01-23 10:09 pm (UTC)
From: [identity profile] netch80.livejournal.com
Немного деталей тут есть:
https://www.dcddcc.com/pubs/paper_microcode.pdf
я пока изучаю.

Date: 2016-01-25 10:14 am (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Спасибо, интересно.

Profile

netch80: (Default)
netch80

August 2017

S M T W T F S
  12345
67 89101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 20th, 2017 09:15 pm
Powered by Dreamwidth Studios