Struktur Data USB 3.0
Topik ini menjelaskan struktur data yang digunakan oleh driver pengontrol host USB 3.0. Memahami struktur data ini akan membantu Anda menggunakan perintah ekstensi debugger USB 3.0 dan RCDRKD secara efektif. Struktur data yang disajikan di sini memiliki nama yang konsisten dengan spesifikasi USB 3.0. Keakraban dengan spesifikasi USB 3.0 akan semakin meningkatkan kemampuan Anda untuk menggunakan perintah ekstensi untuk men-debug driver USB 3.0.
Driver pengontrol host USB 3.0 adalah bagian dari tumpukan driver inti USB 3.0. Untuk informasi selengkapnya, lihat Arsitektur Stack Driver USB.
Setiap pengontrol host USB 3.0 dapat memiliki hingga 255 perangkat, dan setiap perangkat dapat memiliki hingga 31 titik akhir. Diagram berikut menunjukkan beberapa struktur data yang mewakili satu pengontrol host dan perangkat yang terhubung.
Array Dasar Konteks Perangkat
Array Dasar Konteks Perangkat adalah array penunjuk ke struktur Konteks Perangkat. Ada satu struktur Konteks Perangkat untuk setiap perangkat yang terhubung ke pengontrol host. Elemen 1 hingga 255 menunjuk ke struktur Konteks Perangkat. Elemen 0 menunjuk ke struktur konteks untuk pengontrol host.
Konteks Perangkat dan Konteks Slot
Struktur Konteks Perangkat menyimpan array pointer ke struktur Konteks Titik Akhir. Ada satu struktur Konteks Titik Akhir untuk setiap titik akhir pada perangkat. Elemen 1 hingga 31 menunjuk ke struktur Konteks Titik Akhir. Elemen 0 menunjuk ke struktur Konteks Slot, yang menyimpan informasi konteks untuk perangkat.
Cincin Perintah
Cincin Perintah digunakan oleh perangkat lunak untuk meneruskan perintah ke pengontrol host. Beberapa perintah ini diarahkan ke pengontrol host, dan beberapa diarahkan pada perangkat tertentu yang terhubung ke pengontrol host.
Cincin Peristiwa
Event Ring digunakan oleh pengontrol host untuk meneruskan peristiwa ke perangkat lunak. Artinya, Event Ring adalah struktur yang digunakan pengontrol host untuk memberi tahu driver bahwa tindakan telah selesai.
Doorbell Register Array
Doorbell Register Array adalah array daftar bel pintu, satu untuk setiap perangkat yang terhubung ke pengontrol host. Elemen 1 sampai 255 adalah daftar bel pintu. Elemen 0 menunjukkan apakah ada perintah yang tertunda di Cincin Perintah.
Perangkat lunak memberi tahu pengontrol host bahwa ia memiliki pekerjaan terkait perangkat atau terkait titik akhir untuk dilakukan dengan menulis informasi konteks ke dalam daftar bel pintu untuk perangkat.
Diagram berikut berlanjut ke sebelah kanan diagram sebelumnya. Ini menunjukkan struktur data tambahan yang mewakili satu titik akhir.
Transfer Cincin
Setiap titik akhir memiliki satu atau beberapa Cincin Transfer. Cincin Transfer adalah array Blok Permintaan Transfer (TRB). Setiap TRB menunjuk ke blok data yang berdekatan (hingga 64 KB) yang akan ditransfer antara perangkat keras dan memori sebagai satu unit.
Ketika tumpukan inti USB 3.0 menerima permintaan transfer dari driver klien USB, ia mengidentifikasi Konteks Titik Akhir untuk transfer, dan kemudian memecah permintaan transfer menjadi satu atau beberapa Deskriptor Transfer (TD). Setiap TD berisi satu atau beberapa TRB.
Konteks Titik Akhir
Struktur Konteks Titik Akhir menyimpan informasi konteks untuk satu titik akhir. Ini juga memiliki anggota Dequeue dan Enqueue , yang digunakan untuk melacak di mana TRB digunakan oleh perangkat keras dan di mana TRB ditambahkan oleh perangkat lunak.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk