Pelo meu entendimento, as CPUs de consumidor mais modernas são baseadas em lógica síncrona. Algumas aplicações de alta velocidade (processamento de sinal, etc.) usam a lógica ansync para obter maior velocidade.
No entanto, no mercado atual, a velocidade nos produtos de consumo é um dos principais pontos de venda (consulte AMD vs Intel.) O desenvolvimento de litografia mais complicada é mais rápido do que a adoção de lógica totalmente assíncrona? Ou a lógica ansync é muito complicada / impraticável para aplicativos VLSI?
digital-logic
vlsi
synchronous
Corsair64
fonte
fonte
Respostas:
Passei alguns anos em uma startup comercializando tecnologia de design assíncrona, por isso estou familiarizado com os motivos:
assíncrono não é intrinsecamente mais rápido. O atraso do caminho do pior caso permanece o mesmo. Às vezes, você pode tirar vantagem de uma execução mais rápida do caminho.
o async também possui uma sobrecarga na detecção de conclusão.
Ferramentas de design. Essa é realmente a grande: não existe realmente um "fluxo" assíncrono completo de ferramentas disponíveis com a mesma qualidade que o design síncrono.
Treinamento. Você precisaria treinar efetivamente todos os seus designers no novo paradigma e ferramentas.
Risco e conservadorismo. Grande parte da indústria "produz algo semelhante ao último, mas um pouco diferente". Isso tem uma chance muito alta de funcionar. As empresas são muito mais relutantes em criar algo totalmente diferente, pois tem muito mais chances de ser uma baixa total que custa dezenas de milhões de dólares.
fonte
É muito tentador projetar circuitos integrados assíncronos. As outras respostas já cobrem muitos motivos para pensar duas vezes antes de fazê-lo. Aqui está mais um:
O desenvolvimento do IC não terminou com o design. Verificação e teste são igualmente importantes. Não apenas as ferramentas de design são muito avançadas para circuitos síncronos, mas também as ferramentas de simulação e o equipamento de teste.
Verificação
Não é suficiente ter os circuitos funcionando em condições de laboratório. Eles precisam ser robustos com relação à faixa de tensão operacional (V), temperatura de operação (T) e variação devido ao processo de fabricação (P). Para lógica síncrona, isso pode ser garantido com a ajuda da análise de tempo estático. O circuito é dividido em todos os caminhos de tempo, de flip-flop a flip-flop. Os tempos de configuração e espera são verificados para cada caminho de tempo único e para diferentes combinações de P, T e V. Essas combinações de PTV são os chamados cantos de simulação.
Uma verificação semelhante pode ser feita para circuitos assíncronos, mas é muito mais difícil e muito menos suportado pelas ferramentas de design. Também restringe o designer a construções assíncronas que realmente podem ser verificadas. Não há verificação confiável para circuitos assíncronos arbitrários.
Teste
Dificuldades semelhantes existem quando se trata de testar o hardware. O teste da lógica síncrona é totalmente suportado pelos padrões e equipamentos de teste. Testar circuitos assíncronos não é apenas mais complicado, mas devido à falta de abstração de tempo, não é suficiente provar que o circuito funcionará em todos os cantos de PTV. O circuito pode falhar devido às condições da corrida em alguma combinação de PTV, que não é coberta pelos cantos.
Sumário
Os projetistas de IC não abandonaram o paradigma assíncrono, mas a lógica assíncrona traz grandes desvantagens durante a verificação e validação. Em um contexto industrial, o design de CI assíncrono precisa ser restrito à construção que possa comprovadamente funcionar em todo o espaço de parâmetros da variação do processo, bem como nas faixas de operação para temperatura e tensão.
O chamado design "localmente síncrono globalmente assíncrono" é uma maneira de obter mais benefícios e menos desvantagens dos dois paradigmas de temporização.
fonte
Os contadores binários assíncronos são mais simples porque usam apenas 1 célula de memória ou flip flop T por divisão por dois. Portanto, o CD antigo e os 74HC4020 e 4040 oferecem muitos estágios binários mais baratos. O atraso do suporte em cada estágio significa que ele não pode ser usado sem condições de corrida ou falhas com decodificação de porta dos endereços binários, a menos que o atraso do suporte seja menor que 1/2 do ciclo do relógio de entrada usando a borda traseira para travar o resultado. A latência de saída é então multiplicada por N estágios.
Contadores binários síncronos usam uma célula de memória extra para DFF para atrasar, mas minimizam o atraso para 1 valor para qualquer comprimento de contadores, para que consuma mais área.
Portanto, todas as CPUs usam relógios complementares para otimizar a latência esperada nas leituras / gravações de endereço e memória para maximizar a aceleração, mas não exceder os tempos de atraso, configuração e espera.
Agora, a memória usa muitas fases, como DDR, 3DR, 4DR, 5DR, especialmente para a memória gráfica, mas com os relógios da CPU indo muito mais rápido que a taxa de RAM de ciclo único, para que os atrasos nos endereços de leitura e gravação possam ser cronometrados por uma ou várias contagens ou meia da superclock (por exemplo, 100MHz xN) designado por T fracionário ou inteiro conta para cada parâmetro. Esses atrasos de suporte aumentam com a temperatura. Para o CMOS, reduza com tensão Vram mais alta que, se resfriada adequadamente, pode reduzir a latência ou outro aumento de Pd e aumento da temperatura e piorar (mais devagar). Portanto, o resfriamento, V, f, T é fundamental para a latência ideal, seja ele usado para operações assíncronas ou sincronizadas.
fonte
Os primeiros projetos lógicos eram assíncronos. Muitas vezes eles também eram misturados com circuitos analógicos. No entanto, com o passar do tempo, os projetos se tornaram mais complicados, exigindo mais engenheiros para trabalhar em um único projeto. Os diagramas de temporização de assíncrono. a lógica pode ser complicada quando há muitos estados. Agora, adicione uma equipe de engenheiros tentando fazer a interface de diferentes blocos de lógica, mas o tempo entre eles não está alinhado muito bem. Os desenhos se tornam frágeis às mudanças de maneiras imprevistas.
Digite o design lógico síncrono. Agora, todos os fluxos de estado estão alinhados a um sinal de clock que permite que as interfaces sejam muito bem definidas e mais robustas contra as mudanças no projeto. Sim, ele pode usar mais portões, mas é (geralmente) estável por design; ao contrário de estável, desde que ninguém toque!
fonte