Akses TLB dalam prosesor SMT

0

Dalam prosesor SMT (multithreading simultan) di mana utas berbagi TLB, bagaimana TLB membedakan akses satu utas dari yang lain? Setiap utas memiliki set halamannya sendiri yang dimuat ke dalam memori, dan utas independen tidak berbagi halaman. Saya kira ada semacam dukungan perangkat keras untuk itu di TLB, seperti beberapa bit tambahan. Tapi saya ingin tahu lebih detail.

aminfar
sumber

Jawaban:

2

Jika utas berbagi TLB, tidak perlu membedakan akses satu utas dari yang lain. Jika utas berbagi vm, mereka memiliki tampilan memori yang sama persis. Jika tidak, maka mereka tidak membagikan TLB.

David Schwartz
sumber
jika utas berasal dari proses yang berbeda, maka utas tersebut tidak memiliki pandangan memori yang sama. Jadi pemetaan halaman virtual ke fisik mereka berbeda. Dalam prosesor SMT, dua (atau lebih, tergantung pada implementasi) thread dari proses yang berbeda dapat dijalankan secara bersamaan. Jadi sejauh yang saya tahu, mereka berbagi TLB yang sama.
aminfar
1
Ada dua desain TLB dasar yang berbeda. Dalam satu, TLB adalah per-virtual-core, dan seluruh TLB memerah jika vm berubah. Di sisi lain, TLB dapat dibagikan di antara inti atau tidak, tidak memerah ketika vm berubah, tetapi berisi tag yang menunjukkan untuk entri mana vm .
David Schwartz
@aminfar, AFAIK jika utas berasal dari dua proses yang berbeda, maka saya tidak berpikir itu berbeda dari 2 proses berbagi TLB. Beberapa cpus support sharing (entri TLB ditandai untuk mengidentifikasi proses miliknya), yang lain menghapus TLB pada pengalih konteks.
Peon
1
@aminfar Bagian yang Anda sebutkan menyebutkan Nomor Bilangan Alamat (hal yang sama seperti ASID, kadang-kadang disebut ID Proses), yang didefinisikan untuk Alpha ISA. (Angka mungkin nama yang lebih tepat tetapi kurang umum karena angka dapat digunakan kembali [dengan validasi TLB yang sesuai] sehingga angka tersebut bukan pengidentifikasi unik yang agak tersirat oleh ID.) Ini adalah "bit tambahan" yang membedakan halaman dari proses yang berbeda (address space).
Paul A. Clayton
1
@aminfar Thread dalam proses (dengan cara yang biasa bahwa thread ditangani) tidak memiliki izin akses halaman yang berbeda atau metadata lainnya sehingga tidak perlu perbedaan dalam TLB.
Paul A. Clayton