Resposta curta: os gerentes desejam uma PROVA de função simples e testável antes de comprometer milhões (ou mais) com um projeto. As ferramentas atuais, simplesmente não fornecem respostas assíncronas aos designs.
Microcomputadores e microcontroladores normalmente utilizam um esquema de relógio para garantir o controle de tempo. Todos os cantos do processo precisam manter o tempo em todos os efeitos de tensão, temperatura, processo, etc. nas velocidades de propagação do sinal. Não há portas lógicas de corrente que mudam instantaneamente: cada porta muda de acordo com a tensão fornecida, a unidade que recebe, a carga que dirige e o tamanho dos dispositivos usados para fazê-la (e, é claro, o nó do processo (tamanho do dispositivo) em que é fabricado e com que rapidez esse processo está realmente realizando --- ISSO passa pela fábrica). Para obter a comutação "instantânea", você teria que usar a lógica quântica, e isso pressupõe que os dispositivos quânticos possam mudar instantaneamente; (Não tenho certeza).
A lógica cronometrada faz PROVING que o tempo em todo o processador funcione nas variáveis esperadas de tensão, temperatura e processamento. Existem muitas ferramentas de software disponíveis que ajudam a medir esse tempo, e o processo líquido é chamado de "fechamento de tempo". Overclock pode (e, na minha experiência, não ) tomar em algum lugar entre 1/3 a 1/2 da energia usada em um microprocessador.
Então, por que não design assíncrono? Existem poucas, se houver, ferramentas de fechamento de tempo para suportar esse estilo de design. Existem poucas, se houver, ferramentas automatizadas de local e rota que podem lidar e gerenciar um grande design assíncrono. Se nada mais, os gerentes NÃO aprovam nada que não tenha uma PROVA de funcionalidade direta e gerada por computador.
O comentário de que o design assíncrono requer "uma tonelada de" sinais de sincronização, que requeriam "muito mais transistores", ignora os custos de roteamento e sincronização de um relógio global e o custo de todos os chinelos que o sistema de clock exige. Os projetos assíncronos são (ou deveriam ser) menores e mais rápidos do que seus equivalentes com clock. (Um simplesmente pega o caminho de sinal mais lento do ONE e o usa para alimentar um sinal de "pronto" para a lógica anterior).
A lógica assíncrona é mais rápida, porque nunca precisa esperar por um relógio que precisava ser estendido para outro bloco em outro lugar. Isso é especialmente verdadeiro nas funções de registro em lógica para registro. A lógica assíncrona não possui vários problemas de "configuração" e "retenção", pois apenas as estruturas de coletor final (registradores) têm esses problemas, em oposição a um conjunto de lógica em pipeline com flip-flops intercalados para espaçar os atrasos de propagação lógica no relógio limites.
Isso pode ser feito? Certamente, mesmo em um bilhão de transistores. É mais difícil? Sim, mas apenas porque provar que ele funciona em um chip inteiro (ou mesmo no sistema) está muito mais envolvido. Obter o tempo no papel é razoavelmente direto para qualquer bloco ou subsistema. Controlar esse tempo em um sistema automatizado de local e rota é muito mais difícil, porque as ferramentas NÃO são configuradas para lidar com um conjunto potencial muito maior de restrições de tempo.
Os microcontroladores também têm um conjunto potencialmente grande de outros blocos que fazem interface com sinais externos (relativamente) lentos, adicionados a toda a complexidade de um microprocessador. Isso torna o tempo um pouco mais envolvido, mas não muito.
Conseguir um mecanismo de sinal de "bloqueio" do "primeiro a chegar" é um problema de projeto de circuito e existem maneiras conhecidas de lidar com isso. As condições da corrida são um sinal de 1). má prática de projeto; ou 2). sinais externos entrando no processador. O relógio realmente introduz uma condição de corrida sinal-contra-relógio, que está relacionada às violações de "configuração" e "espera".
Eu, pessoalmente, não entendo como um design assíncrono pode entrar em um estado parado ou em qualquer outra condição de corrida. Essa pode ser a minha limitação, mas, a menos que isso aconteça na entrada de dados no processador, NUNCA deve ser possível em um sistema lógico bem projetado e, mesmo assim, como pode ocorrer à medida que os sinais entram, você planeja lidar com isso.
(Eu espero que isso ajude).
Tudo isso dito, se você tiver o dinheiro ...