Masalah sebenarnya adalah bandwidth. Frekuensi tertinggi yang dapat dihasilkan oleh jalur data (well, tidak termasuk laju perubahan tegangan) adalah ketika mengirim pola data 101010, yang terjadi pada setengah dari laju data. Dengan transmisi data rate tunggal (SDR), jam menghasilkan satu siklus lengkap untuk setiap bit data, sehingga berjalan pada frekuensi dua kali lipat dari apa yang mungkin Anda lihat pada garis data dalam kasus terburuk. Kecepatan data ganda menjalankan jam di setengah kecepatan data dengan satu tepi per bit data, maka pola data kasus terburuk menghasilkan frekuensi yang sama dengan jam.
Umumnya kecepatan sebuah antarmuka akan dibatasi oleh bandwidth yang tersedia melalui paket chip, pin, board, konektor, dll. Jika jam membutuhkan dua kali lipat bandwidth sebagai data, maka frekuensi tinggi sinyal clock akan membatasi keseluruhan bandwidth dari tautan. Dengan DDR, bandwidth yang diperlukan sama untuk jam dan data, memungkinkan tautan untuk lebih efisien memanfaatkan bandwidth yang tersedia.
Kelemahan dari menggunakan DDR adalah lebih sulit untuk mendesain. Sandal jepit yang digunakan untuk menangkap bit data di sisi penerima beroperasi pada satu tepi jam, baik tepi naik dari tepi jatuh. Data harus stabil pada input untuk pengaturan waktu sebelum tepi dan waktu penahanan setelah tepi agar dapat dikunci dengan aman. Dengan SDR, jam dapat dengan mudah dibalikkan di suatu tempat untuk memenuhi persyaratan waktu. Namun, dengan DDR, diperlukan pergeseran fasa 90 derajat, yang lebih sulit untuk dihasilkan, membutuhkan PLL atau saluran tunda.
Jadi, untuk meringkas:
SDR
- Pro: Mudah diimplementasikan
- Con: Penggunaan bandwidth yang tidak efisien sebagai sinyal clock membutuhkan bandwidth dua kali lipat dari sinyal data
DDR
- Pro: Penggunaan bandwidth yang efisien karena semua sinyal memerlukan bandwidth yang sama
- Con: Kompleks untuk diterapkan