Современные процессоры состоят из миллиардов транзисторов, а новые производственные технологии часто имеют проблемы с выходом, по крайней мере, в первые месяцы, но я предполагаю, что даже спустя годы время от времени будут появляться неисправные микросхемы.
Я знаю, что в больших блоках (например, в кеше) есть возможность просто отключить некоторые его части и тем самым уменьшить доступный объем памяти (так что вы можете по крайней мере продать чип по более низкой цене вместо того, чтобы выбрасывать его). Но есть ли что-то похожее для логических модулей? Я знаю, что существует несколько ALU для диспетчеризации, но стоит ли просто отключить один из них в случае сбоя в работе? Или есть даже дополнительные запасные ALU? Потому что для меня трудно поверить, что потрясающие устройства просто избавляются от каждого чипа, где в логических частях присутствует неисправный транзистор, в то время как отключение полного ALU значительно уменьшит достижимую вычислительную мощность.
источник
Ответы:
Как уже говорили другие, трудно увидеть избыточную логику ALU в ядре.
Ядро было разработано для оптимизации пропускной способности. Любая дополнительная логика для избыточного ALU повлияет на производительность, а увеличенная площадь замедлит все ядро. По мере развития технологий кремний становился все меньше, делая ядра быстрее, но по существу используя ту же интеллектуальную собственность. Зачем иметь избыточные ALU, когда для резервных ядер доступно место для увеличения производительности?
В 2011 году Intel подала патент как минимум на 32 ядра с 16 активными и 16 запасными. Патент заявляет, что неисправные сердечники будут иметь более высокие температуры, что позволит включить запасное ядро. По существу, динамическое распределение сердечника по мере необходимости.
Вы можете иметь ядра с высоким и низким энергопотреблением, выделенные в соответствии с требованиями задач. Или отключите плохое ядро, обнаруженное при более высоких уровнях температуры Используйте сердечники в шахматном порядке, чтобы уменьшить нагрев.
Патент Intel: повышение надежности многоядерного процессора
источник
Не в логике.
Однако при наличии больших объемов памяти (SRAM) обычно используют память с «избыточностью». Они имеют специальную логику, которая может быть запрограммирована для замены области, часто ряда строк или столбцов.
Неисправная область обнаруживается во время тестирования, а затем запрограммирована избыточная память для замены неисправных мест.
Однако эта «замена» должна быть настроена с использованием битов OTP (одноразового программирования) или какой-либо другой памяти, которая содержит свое значение. Таким образом, эти запоминающие устройства используются только в микросхемах, которые имеют такую функцию «постоянной памяти», или такая функция программирования должна быть добавлена также со всеми затратами, которые это несет.
источник
Это, конечно, не относится к простым MCU или типичным одноядерным процессорам. Стоимость наличия запасных блоков не будет стоить того, и эти процессоры не используют передовые процессы гравировки и не требуют огромных кремниевых поверхностей, поэтому выход достаточно хороший.
Однако это делается для некоторых многоядерных процессоров, для которых кремниевая область довольно велика, и в которых используются более точные процессы гравировки, которые могут привести к более высокой частоте дефектов. На этих процессорах целые ядра могут быть отключены (которые являются довольно большими логическими блоками, содержащими гораздо больше, чем ALU), если они неисправны. Процессор затем продается как младшая модель.
Источник: /skeptics/15704/are-low-spec-computer-parts-just-faulty-high-spec-computer-parts
источник
Я, конечно, не могу ответить на ваш вопрос наверняка. Нет особого смысла отключать блоки меньше 1 ядра, поскольку он становится очень детализированным «набором функций», который можно включить или нет, а декартово произведение всех возможных функций сделало бы множество возможных моделей ЦП. Уже есть много моделей процессоров, их увеличение в 10-100 раз точно не поможет!
Другой аспект заключается в том, что миллиарды транзисторов используются (по большей части) для создания кешей, и для дефектных транзисторов производители, безусловно, продают ЦП с отключенной частью встроенного кеша (например, см. AMD Thorton против AMD Barton).
Но я могу рассказать вам анекдот, который я услышал от человека, которому доверяю. Давным-давно я был любопытным оверклокером. В мои дни бюджетным разгоняемым процессором был AMD Athlon Thoroughbred:
При установке нестандартных решений для охлаждения нужно было быть очень осторожным при установке радиатора, так как он давит прямо на матрицу. Если вы применяли неравномерное давление, штампы были известны тем, что легко ломались по углам, если сначала вы прикладывали усилие к одному углу.
Этот человек сделал то же самое, значительная часть одного угла исчезла, но процессор чудесным образом работал нормально, хотя и значительно снизил производительность памяти. Уголок содержал только кэш-память второго уровня, так что после того, как эта часть исчезла, протокол кэширования каким-то образом работал вокруг теперь очень дефектного кристалла. Вероятно, он сообщал об ошибках в кеше для всех запросов в этой части, поэтому ЦП был сокращен только до своего кеша L1 (или только части L2), поэтому он был намного медленнее в большинстве тестов, но при этом имел практически одинаковую производительность при сжатых циклах.
В том же ключе можно сделать вывод, что если АЛУ неисправен и способен каким-то образом сигнализировать о том, что он отказался от работы, ЦП может быть в состоянии переключиться на другие АЛУ. Делается ли это производителями процессоров, неизвестно (и я сомневаюсь в этом), но пример кеша (15 лет назад) показывает, что это определенно выполнимо.
источник