Os processadores modernos têm redundância em suas unidades lógicas para compensar falhas de produção?

10

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.

jusaca
fonte
Apenas o meu palpite. O preço da produção de pastilhas de silício é relativamente baixo em grandes quantidades, e você pode testá-lo antes de instalar o gabinete, para produzir chips completos com taxa de falha relativamente baixa. > 50% do preço é puro marketing. Também acho que muitas variações de processador dentro da mesma família são feitas na mesma topologia e diferem apenas em alguns recursos / núcleos / caches desativados (como você escreveu), portanto, o fabricante possui uma grande lacuna para manter uma baixa taxa de falha de produção, mesmo com unidades danificadas. Mas duvido que eles tenham, digamos, várias ALUs reservadas para o mesmo núcleo.
cyclone125
Acho que o exemplo mais conhecido disso foi o Intel 486SX, que era o mesmo dado que o DX com uma FPU desativada. Mas eu estaria interessado em saber qual é o estado moderno disso.
Pjc50 11/03/19
Eu duvido muito disso. A quantidade de lógica e tempo de design necessários para permitir redundância de baixo nível na velocidade dos processadores contemporâneos não valeria a pena. A redundância em nível de bloco (core, fpu, cache) ou apenas a desativação de bloco seria muito mais do que suficiente para aumentar significativamente o rendimento. E, nos preços atuais dos processadores e tamanhos de wafer, até um rendimento de 5% pode ser rentável.
Edgar Brown
Então você pensa que, sempre que uma ALU não é utilizável, ela apenas desabilita o núcleo. Sim, pode ser uma possibilidade. Eu esperava que alguém aqui realmente soubesse.
jusaca
1
Sim, eles desabilitam o núcleo. É uma prática chamada "binning".
DKNguyen

Respostas:

3

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

StainlessSteelRat
fonte
Isso faz muito sentido, não pensei no impacto no desempenho, que as áreas de silício sobressalentes dentro de um núcleo podem ter. Desabilitar núcleos inteiros parece ser o caminho a seguir, pois as outras respostas também estão implicando.
jusaca
5

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.

Velhote
fonte
Você acha que esses bits OTP são programados eletronicamente, como queimar um fusível ou algo assim, ou os grandes fabricantes precisam ir diretamente à matriz com o corte a laser?
Jusaca # 14/19
1
OTP são fusíveis on-chip que podem ser programados eletronicamente (algo como EEPROM, mas, em seguida, permanentemente) Os usuários finais também pode gravá-los para números de série, endereço Ethernet, chaves de criptografia etc.
Oldfart
4

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

pouca fé perdida no SE
fonte
3

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:

Puro-sangue Athlon

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.

anrieff
fonte
Isso é certamente muito impressionante e parece até ser algum tipo de processo dinâmico, porque o sistema detectou a parte defeituosa do chip por si só. Ao fazer a pergunta, tive mais uma detecção por um sistema de teste na linha de produção. Mas esta história é definitivamente interessante;)
jusaca