Por que os circuitos totalmente assíncronos não são mais prevalentes? [fechadas]

19

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?

Corsair64
fonte
4
Eu acho muito difícil programá-los de maneira processual.
mehmet.ali.anil
16
As arquiteturas atuais são híbridas. Blocos síncronos são interconectados de maneira assíncrona. E sim, a lógica assíncrona é muito mais complicada.
Eugene Sh.
5
Porque ainda não temos boas ferramentas para fechamento de tempo assíncrono.
Oldfart
2
Os sistemas estão se tornando cada vez mais assíncronos. Nas CPUs modernas, coisas como RAM, cache e núcleos de CPU são executados com relógios independentes. Os novos processadores Intel HEDT dão um passo adiante e permitem que cada um dos muitos núcleos dos chips funcione em relógios independentes um do outro e da RAM, cache e barramentos externos, etc.
J ...
1
Uma coisa a lembrar, os relógios síncronos introduzem um batimento cardíaco padronizado para o sistema, enquanto que, se você utiliza um design assíncrono puro, outras diferenças de tempo triviais, como o atraso de propagação, podem ter que ser acomodadas por outros meios. Também é relativamente eficiente implementar funções puras em projetos assíncronos, mas funções com estado (ou operações mais difíceis, como a raiz quadrada) podem ser complicadas. Os sinais de roteamento também podem ser difíceis (sem ônibus, você pode ficar preso ao conectar tudo a tudo).
jrh 04/02

Respostas:

45

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.

pjc50
fonte
Poderia ser intrinsecamente mais barato, mas mais lento.
Tony Stewart Sunnyskyguy EE75
3
Lembro-me de pensar sobre isso uma vez e também percebi: um chip sincronizado é trivialmente com underclock (para bateria / temp / etc), enquanto um chip assíncrono provavelmente é menos?
Mooing Duck
Em termos de ferramentas de design / paradigma, a lógica síncrona é capaz de ignorar totalmente falhas na saída da lógica combinatória e requer apenas que os sinais do relógio estejam livres de falhas. Também é mais provável que os circuitos assíncronos exijam a adição de atraso adicional para alguns sinais, para garantir que um sinal pronto não chegue ao próximo bloco antes da chegada dos dados, etc. Em circuitos síncronos, raramente é necessário um atraso artificial. Um dos poucos casos a se lembrar é atender aos requisitos de tempo de espera, que geralmente podem ser satisfeitos por um atraso natural. Além disso, algumas situações de domínio com relógio cruzado podem precisar de atraso.
Kevin Cathcart
Eu pensaria que, em muitas situações, o uso de um relógio de duas fases sem sobreposição poderia oferecer muitas vantagens em relação a um único relógio. Ao usar um único relógio, qualquer pulso de execução pode fazer com que um sistema salte nos trilhos, mas ao usar um relógio de duas fases gerado pela alimentação de uma entrada de relógio por dois comparadores, os pulsos de execução em uma fase de relógio seriam inofensivos se precedidos ou seguidos por um pulso de relógio de comprimento válido sem um pulso intermediário na fase oposta do relógio.
supercat
3
@MooingDuck Depende do paradigma lógico. Eu trabalhei em alguma lógica de convenção nula e ela funcionava o mais rápido que as condições (processo, tensão, temperatura) permitiam. Você não precisaria cronometrar o relógio por causa dessas condições, faria isso automaticamente .
W5VO
3

É 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.

bogl
fonte
0

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.

Tony Stewart Sunnyskyguy EE75
fonte
-1

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!

Aaron
fonte
1
Também existem metodologias de design assíncronas que garantem "corrigir por design" e "interfaces bem definidas". Elas são simplesmente diferentes das suposições simplificadoras feitas para projetos síncronos.
Edgar Brown