O verdadeiro problema é a largura de banda. A frequência mais alta que uma linha de dados pode gerar (bem, sem contar a taxa de variação) é quando está enviando um padrão de dados 101010, que ocorre na metade da taxa de dados. Com a transmissão de taxa única de dados (SDR), o relógio produz um ciclo completo para cada bit de dados, executando, portanto, o dobro da frequência do que você pode ver em uma linha de dados no pior dos casos. A taxa de dados dupla executa o relógio na metade da taxa de dados com uma borda por bit de dados; portanto, o pior padrão de dados produz a mesma frequência que o relógio.
Geralmente, a velocidade de uma interface será limitada pela largura de banda disponível através dos pacotes de chips, pinos, placa, conectores etc. Se o relógio exigir o dobro da largura de banda que os dados, a alta frequência do sinal do relógio limitará a largura de banda geral do link. Com o DDR, a largura de banda necessária é a mesma para o relógio e os dados, permitindo que o link utilize com mais eficiência a largura de banda disponível.
A desvantagem do uso de DDR é que é mais difícil projetar. Os flip-flops usados para capturar os bits de dados no lado de recebimento operam em uma borda do relógio, na borda ascendente da borda descendente. Os dados precisam estar estáveis na entrada por um tempo de configuração antes da borda e um tempo de espera após a borda para serem travados com segurança. Com o SDR, o relógio pode ser simplesmente invertido em algum lugar para atender aos requisitos de tempo. No entanto, com o DDR, é necessária uma mudança de fase de 90 graus, que é mais difícil de gerar, exigindo PLLs ou linhas de atraso.
Então, para resumir:
SDR
- Pro: Simples de implementar
- Con: Utilização ineficiente da largura de banda como sinal de clock requer o dobro da largura de banda que os sinais de dados
DDR
- Pro: utilização eficiente da largura de banda, pois todos os sinais exigem a mesma largura de banda
- Con: complexo para implementar