Sistem asinkron

Dalam **Sistem Asinkron**, operasi seperti instruksi, kalkulasi, dan logika dikoordinasikan oleh satu atau lebih sinyal jam terpusat. Semua komponen dalam sistem sinkron bekerja sesuai dengan sinyal jam tersebut, yang memastikan bahwa setiap proses dilakukan pada waktu yang tepat.

Sebaliknya, sistem asinkron tidak menggunakan sinyal jam global. Dalam sistem ini, operasi tidak bergantung pada waktu kedatangan sinyal atau pesan yang ketat untuk memastikan operasi berjalan dengan andal. Sebagai gantinya, koordinasi antara komponen dicapai melalui arsitektur berbasis peristiwa. Peristiwa ini dipicu oleh berbagai faktor, seperti kedatangan paket data dalam jaringan, perubahan atau transisi sinyal, protokol jabat tangan, dan metode lainnya.

Sistem asinkron menawarkan fleksibilitas lebih besar dalam mengelola waktu dan sumber daya, karena tidak ada kebutuhan untuk menunggu sinyal jam yang terpusat, memungkinkan proses lebih efisien dan responsif terhadap peristiwa yang terjadi.

## Konsep
Sistem asinkron, seperti perangkat lunak berorientasi objek, biasanya dibangun dari modul-modul perangkat keras modular, masing-masing dengan antarmuka komunikasi yang terdefinisi dengan baik. Modul-modul ini dapat beroperasi pada kecepatan yang bervariasi, yang disebabkan oleh beberapa faktor, seperti pemrosesan yang bergantung pada data, penskalaan tegangan dinamis, atau variasi dalam proses manufaktur. Modul-modul ini kemudian dapat digabungkan untuk membentuk sistem yang berfungsi dengan baik tanpa perlu mengandalkan sinyal jam global.

Salah satu keuntungan utama dari sistem asinkron adalah daya rendah, karena komponen hanya diaktifkan ketika diperlukan, mengurangi pemborosan energi. Selain itu, beberapa gaya desain asinkron juga telah terbukti mendukung antarmuka yang diberi sinyal jam, memungkinkan pengaturan waktu campuran di dalam sistem. Ini berarti sistem asinkron dapat mengakomodasi kebutuhan untuk menggabungkan elemen-elemen yang beroperasi dengan sinyal jam, sambil tetap memanfaatkan keuntungan dari operasi asinkron.

Karena fleksibilitas dan efisiensinya, sistem asinkron sangat cocok untuk merakit sistem heterogen dan skala besar yang membutuhkan metodologi yang benar dalam konstruksi dan pengaturan. Desain ini memungkinkan pengembangan sistem yang dapat diskalakan dan disesuaikan dengan berbagai kondisi operasional, menjadikannya pilihan yang ideal untuk aplikasi yang memerlukan efisiensi dan skalabilitas tinggi.

## Gaya desain
Terdapat spektrum gaya desain asinkron yang luas, dengan berbagai trade-off antara ketahanan dan kinerja, serta faktor lain seperti konsumsi daya. Pilihan gaya desain asinkron bergantung pada target aplikasi, dengan pertimbangan antara keandalan/kemudahan desain dan kecepatan. Berikut adalah beberapa jenis desain asinkron berdasarkan ketahanan dan kinerjanya:

# Sirkuit Tidak Peka terhadap Penundaan: Desain ini adalah yang paling tangguh dan andal. Sirkuit ini beroperasi dengan benar meskipun terdapat penundaan pada gerbang dan kabel. Namun, desain ini terbatas pada aplikasi tertentu, karena hanya sistem yang sangat terkontrol yang dapat dirancang dengan gaya ini. Keuntungannya adalah keandalan yang sangat tinggi, tetapi kekurangannya adalah fleksibilitas yang terbatas.
# Sirkuit Tidak Peka terhadap Penundaan Semu (juga dikenal sebagai sirkuit yang tidak bergantung pada kecepatan): Desain ini sedikit kurang tangguh dibandingkan sirkuit pertama, namun lebih berguna dalam berbagai aplikasi. Sirkuit ini tetap beroperasi dengan benar meskipun ada penundaan pada gerbang, tetapi kabel pada setiap titik fanout harus disetel agar memiliki penundaan yang hampir seragam. Desain ini memberikan kompromi antara keandalan dan kegunaan, cocok untuk banyak aplikasi praktis.
# Sirkuit yang Lebih Cepat, tetapi Kurang Tangguh: Desain ini memerlukan kendala waktu satu sisi yang terlokalisasi sederhana, yang memungkinkan kinerja lebih cepat. Contoh dari desain ini termasuk pengontrol yang menggunakan operasi mode fundamental, di mana ada persyaratan pengaturan/penahanan saat input baru dapat diterima, serta jalur data yang dibundel dengan penundaan yang cocok. Meskipun lebih cepat, desain ini sedikit kurang tahan terhadap variasi waktu dan penundaan.
# Sirkuit Waktu Berkinerja Tinggi: Pada kondisi ekstrem, ada sirkuit waktu yang dirancang untuk kinerja sangat tinggi, yang menggunakan kendala waktu dua sisi yang ketat. Meskipun masih memungkinkan untuk menghindari penggunaan jam, sirkuit ini memerlukan penyetelan penundaan fisik yang sangat cermat. Desain ini umumnya digunakan untuk aplikasi berkecepatan tinggi, seperti pipa berkecepatan tinggi, di mana kinerja sangat bergantung pada ketepatan waktu.

Pilihan gaya desain asinkron sangat bergantung pada kebutuhan aplikasi spesifik—apakah lebih mengutamakan keandalan dan kemudahan desain, ataukah kecepatan dan efisiensi.

## Komunikasi asinkron
Komunikasi asinkron biasanya dilakukan melalui saluran komunikasi, yang digunakan untuk menyinkronkan operasi dalam sistem bersamaan dan juga untuk mentransfer data antar komponen. Saluran komunikasi yang sederhana biasanya terdiri dari dua kabel utama: permintaan dan pengakuan.
Berikut adalah dua contoh protokol jabat tangan yang digunakan dalam komunikasi asinkron:

# Protokol Jabat Tangan 4 Fase (atau Kembali ke Nol): Dalam protokol ini, komunikasi dimulai ketika komponen pengirim menegaskan permintaan. Kemudian, penerima merespons dengan menegaskan pengakuan. Setelah itu, kedua sinyal (permintaan dan pengakuan) dinetralisasi secara bergantian. Protokol ini memastikan bahwa kedua pihak siap untuk melakukan komunikasi, dan biasanya digunakan dalam sistem di mana pengendalian alur yang lebih presisi dibutuhkan.
# Protokol Jabat Tangan 2 Fase (atau Pensinyalan Transisi): Dalam protokol ini, pengirim cukup mengubah nilai pada kabel permintaan sekali, dan penerima kemudian merespons dengan mengubah nilai pada kabel pengakuan. Protokol ini lebih sederhana dan cepat, cocok untuk komunikasi yang tidak memerlukan kontrol alur yang rumit.

Selain itu, saluran komunikasi asinkron juga dapat diperluas untuk mentransfer data. Dalam hal ini, sinyal tambahan dapat digunakan untuk mengirimkan data selain permintaan dan pengakuan, memungkinkan pengiriman informasi yang lebih kompleks antara pengirim dan penerima.

Protokol jabat tangan ini adalah bagian dari mekanisme dasar dalam komunikasi asinkron, di mana dua komponen dapat saling berinteraksi tanpa bergantung pada sinyal jam global, tetapi tetap menjaga koordinasi yang efektif dalam pertukaran informasi.

## Jalur data asinkron
Jalur data asinkron biasanya dikodekan menggunakan beberapa skema pengkodean untuk memastikan komunikasi yang efektif antar komponen dalam sistem asinkron. Berikut adalah dua skema pengkodean yang umum digunakan:

# Pengodean Rel Ganda: Skema ini lebih kuat dan menggunakan dua kabel atau *rel* untuk setiap bit data yang dikirim. Dalam skema ini, satu *rel* dinyatakan mengirimkan nilai 0, sementara *rel* lainnya mengirimkan nilai 1. Setelah nilai data dikirimkan, *rel* yang dinyatakan (misalnya, rel pertama) direset ke nol sebelum nilai berikutnya dikirim. Proses ini juga menunjukkan bahwa tidak ada data yang dikirimkan pada saat *rel* berada dalam status reset, yang disebut status 'spacer'. Pengodean ini lebih tahan terhadap gangguan dan noise, tetapi lebih kompleks dan membutuhkan lebih banyak kabel.
# Data Bundel Rel Tunggal: Skema ini lebih sederhana dan lebih praktis digunakan dalam banyak aplikasi. Dalam pengodean ini, blok fungsi rel tunggal digunakan, di mana penundaan pencocokan kasus terburuk diterapkan. Ketika input data yang valid tiba, sinyal permintaan akan diberikan sebagai input ke penundaan yang telah dicocokkan. Setelah penundaan yang dicocokkan menghasilkan output "selesai", blok tersebut dijamin telah menyelesaikan komputasi, sehingga data dapat diproses lebih lanjut. Meskipun skema ini memiliki kendala waktu, kendala tersebut cenderung sederhana, terlokalisasi, dan satu sisi (berbeda dengan sistem sinkron yang lebih kompleks). Hal ini membuat skema ini lebih mudah untuk divalidasi dan diterapkan dalam banyak situasi praktis, meskipun ada beberapa pembatasan waktu yang perlu diperhatikan.

Secara keseluruhan, skema pengodean rel ganda lebih kuat namun lebih rumit, sementara data bundel rel tunggal lebih mudah diimplementasikan dan lebih banyak digunakan dalam aplikasi dunia nyata meskipun dengan beberapa kendala waktu yang lebih sederhana.

## Pustaka
Literatur dalam bidang sistem asinkron tersedia dalam berbagai prosiding konferensi dan jurnal yang terkemuka. Beberapa simposium dan konferensi yang menjadi platform penting untuk diskusi dan publikasi penelitian dalam bidang ini antara lain:

# Simposium Asinkron IEEE: Dikenal sebagai Simposium Internasional tentang Sirkuit dan Sistem Asinkron, simposium ini didirikan pada tahun 1994 dan telah menjadi salah satu acara utama dalam bidang desain dan penelitian asinkron.
# Konferensi Otomasi Desain IEEE/ACM: Konferensi ini juga merupakan salah satu tempat penting bagi para peneliti untuk mempresentasikan hasil penelitian terkait desain dan aplikasi sistem asinkron.
# Konferensi Internasional Desain Komputer IEEE: Di sini, berbagai makalah yang berhubungan dengan desain komputer, termasuk desain asinkron, sering dipublikasikan.
# Konferensi Internasional Desain Berbantuan Komputer IEEE/ACM: Konferensi ini juga menjadi platform untuk mempresentasikan karya-karya terbaru dalam bidang desain berbantuan komputer, termasuk dalam konteks sistem asinkron.
# Konferensi Sirkuit Solid-State Internasional: Sering kali menjadi tempat untuk memublikasikan penelitian terkait sirkuit asinkron, meskipun acara ini lebih fokus pada sirkuit solid-state secara umum.

Selain itu, jurnal terkemuka yang menerbitkan artikel-artikel tentang sistem asinkron termasuk:

* Transaksi IEEE pada Sistem VLSI
* Transaksi IEEE pada Desain Berbantuan Komputer Sirkuit dan Sistem Terpadu
* Transaksi pada Komputasi Terdistribusi

## Lihat juga

* Alur desain (EDA)
* Otomasi desain elektronik
* Desain sirkuit terpadu
* Waktu isochronous
* Jaringan mesokronis
* Sistem plesiokronus

## Referensi