Os processadores modernos consistem em bilhões de transistores e as novas tecnologias de produção geralmente têm problemas com o rendimento, pelo menos nos primeiros meses, mas acho que mesmo depois de anos haverá chips defeituosos de vez em quando.
Eu sei que em grandes blocos (por exemplo, o cache) existe a possibilidade de desativar partes dele e, ao reduzir a quantidade de memória disponível (para que você possa pelo menos vender o chip a um preço mais baixo, em vez de jogá-lo fora). Mas há algo semelhante para as unidades lógicas? Estou ciente de que existem várias ALUs para distribuição, mas isso pode desabilitar uma delas apenas se houver uma falha de produção? Ou existem ALUs extras ainda? Porque, para mim, é difícil acreditar que as fabs simplesmente descartam todos os chips em que há um transistor com defeito nas partes lógicas, enquanto a desativação de uma ALU completa provavelmente reduziria significativamente o poder de processamento possível.
fonte
Respostas:
Como outros já disseram, é difícil ver a lógica ALU redundante dentro de um núcleo.
Um núcleo foi projetado para otimizar a taxa de transferência. Qualquer lógica adicional para uma ALU redundante afetaria o desempenho e o aumento da área diminuiria a velocidade de todo o núcleo. À medida que a tecnologia evoluiu, o silício se tornou menor, tornando os núcleos mais rápidos, mas essencialmente usando a mesma propriedade intelectual. Por que ter ALUs redundantes, quando há espaço disponível para núcleos redundantes para aumentar o rendimento da produção?
Em 2011, a Intel registrou uma patente de pelo menos 32 núcleos, com 16 ativos e 16 sobressalentes. A patente declara que os núcleos em falha teriam temperaturas mais altas, permitindo a troca de um núcleo sobressalente. Essencialmente, alocação dinâmica de núcleo conforme necessário.
Você pode ter núcleos de alta e baixa potência alocados conforme exigido pelas tarefas. Ou troque um núcleo defeituoso detectado por níveis mais altos de temperatura. Opere os núcleos de maneira quadriculado para reduzir o calor.
Patente Intel: aumentando a confiabilidade de um processador com vários núcleos
fonte
Não está na lógica.
No entanto, se houver grandes memórias (SRAM), é comum usar uma memória com 'redundância'. Eles possuem lógica especial que pode ser programada para substituir uma área, geralmente um número de linhas ou colunas.
A área com falha é detectada durante o teste e a memória redundante é programada para substituir o (s) local (is) defeituoso (s).
No entanto, essa 'substituição' deve ser configurada usando bits OTP (One-Time-Programmable) ou alguma outra memória que mantenha seu valor. Assim, essas memórias são usadas apenas em chips que possuem um recurso de 'memória permanente' ou um recurso de programação também deve ser adicionado, com todos os custos que isso implica.
fonte
Esse certamente não é o caso de MCUs simples ou processadores típicos de núcleo único. O custo de ter blocos de reposição não valeria a pena, e esses processadores não usam processos de gravação de ponta e não exigem grandes áreas de silício, portanto o rendimento é bom o suficiente.
No entanto, isso é feito para alguns processadores com vários núcleos, para os quais a área de silício é bastante grande e que utiliza processos mais finos de gravação que podem levar a taxas de defeitos mais altas. Nesses processadores, núcleos inteiros podem ser desativados (que são blocos lógicos bastante grandes, contendo muito mais que uma ALU) quando estão com defeito. O processador é então vendido como um modelo de gama baixa.
Fonte: /skeptics/15704/are-low-spec-computer-parts-just-faulty-high-spec-computer-parts
fonte
Certamente não posso responder à sua pergunta com certeza. Não faz muito sentido desabilitar unidades menores que 1 núcleo, uma vez que se torna um "conjunto de recursos" muito refinado que pode ser ativado ou não, e o produto cartesiano de todos os recursos possíveis tornaria inúmeros modelos possíveis de CPU. Já existem muitos modelos de CPU, tornando-os 10 a 100 vezes mais definitivamente não ajudarão!
Outro aspecto é que bilhões de transistores são usados (na maioria das vezes) na fabricação de caches, e para os transistores defeituosos, os fabricantes definitivamente vendem CPUs com partes de seu cache na matriz desativadas (por exemplo, veja AMD Thorton vs AMD Barton).
Mas posso contar uma anedota que ouvi de uma pessoa em quem confio. Há muito tempo, eu era um curioso overclocker. Nos meus dias, o CPU com opção de overclock do orçamento era o AMD Athlon Thoroughbred:
Ao montar soluções de refrigeração personalizadas, era preciso ter muito cuidado ao conectar o dissipador de calor, pois ele pressiona diretamente contra a matriz. Se você aplicasse pressão desigual, as matrizes eram notórias por racharem facilmente nos cantos, se você aplicasse força em um canto primeiro.
Essa pessoa fez exatamente a mesma coisa, uma parte significativa de um canto se foi, mas a CPU estava milagrosamente funcionando bem, embora com desempenho de memória muito reduzido. O canto continha apenas o cache L2; portanto, com essa parte perdida, o protocolo de cache estava de alguma forma trabalhando em torno do dado agora com muito defeito. Provavelmente, estava relatando falhas de cache para todas as consultas nessa parte; portanto, a CPU foi reduzida apenas ao cache L1 (ou apenas parte de L2); portanto, era muito mais lenta na maioria dos testes, mas tinha praticamente o mesmo desempenho em loops apertados.
Na mesma linha de pensamento, pode-se concluir que, se uma ALU estiver com defeito e for capaz de, de alguma forma, sinalizar que rejeitou o trabalho, a CPU poderá ser capaz de recorrer a outras ALUs. Se isso está sendo feito pelos fabricantes de CPU é desconhecido (e duvido), mas o exemplo de cache (de 15 anos atrás) mostra que é definitivamente factível.
fonte