Bagikan melalui


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.

Diagram memperlihatkan struktur data USB 3.0 yang mewakili pengontrol host dan perangkat yang terhubung dengan konteks perangkat, konteks slot, dan konteks titik akhir.

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.

Diagram yang mengilustrasikan struktur data USB 3.0 dengan konteks titik akhir yang berisi beberapa TRB dengan data dan TD.

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

Inovasi Debugging USB di Windows 8