jurnal orkom.docx

26
Bersama TLBs terakhir -Level untuk Chip Multiprocessors Abstrak Terjemahan lookaside Buffer (TLBs) sangat penting untuk kinerja prosesor. Penelitian terakhir banyak yang ditangani uniprocessor TLBs, menurunkan waktu akses dan jumlah kesalahan. Namun, seperti Multiprocessors Chip (CMPS) menjadi tersebar, desain TLB harus dievaluasi ulang. Artikel ini adalah yang pertama untuk mengusulkan dan mengevaluasi tingkat (SLL) TLBs sebagai alternatif komersial norma swasta, per-core L2 TLBs. SLL TLBs menghilangkan 7- 79% dari seluruh sistem utama untuk beban kerja paralel. Ini merupakan rata-rata 27% lebih baik dari konvensional swasta, per-core L2 TLBs, menerjemahkan keuntungan runtime. SLL TLBs juga memberikan manfaat yang sebanding untuk baru-diusulkan Inter- Core Koperasi (ICC) TLB prefetchers, tetapi dengan hardware jauh lebih sederhana. Selanjutnya, tidak seperti prefetchers ini, SLL TLBs dapat membantu aplikasi berjalan berurutan, menghilangkan 35-95% dari TLB merindukan untuk berbagai kombinasi Multiprogrammed aplikasi berurutan. Hal ini terkait dengan 21% rata-rata kenaikan TLB dieliminasi dibandingkan untuk pribadi, per-core L2 TLBs. Karena manfaatnya untuk paralel dan sekuensial aplikasi, dan perangkat keras mudah-diimplementasikan mereka, SLL TLBs menjanjikan besar untuk CMPS. 1. Pengantar Prosesor mendukung instruksi menggunakan memori virtual dan data Terjemahan lookaside Buffer (TLBs) untuk menyimpan umumnya menggunakan terjemahan halaman virtual-to-fisik dan untuk menghindari tingginya latency akses ke operasi tabel sistem (OS) halaman. TLBs sangat penting untuk kinerja sistem karena hukuman kehilangan panjang mereka [2, 7, 15, 20, 23]. Sementara kinerja sebelumnya telah dibahas pilihan untuk penempatan TLB dan lookup [6, 22], kontemporer sistem menempatkan mereka secara paralel dengan cache L1. TLB ukuran dan associativity juga telah dieksplorasi [6], memiliki superpaging [29] dan prefetching [15, 24]. Namun, proposal ini memiliki semua uniprocessors ditargetkan. Sebagai multiprocessors Chip (CMPS) menjadi dominan, itu sangat penting untuk memeriksa TLBs dalam konteks ini. Abhishek Bhattacharjee Departemen Ilmu Komputer Universitas Rutgers Daniel Lustig Departemen Teknik Elektro Universitas Princeton Margaret Martonosi Departemen Ilmu Komputer Universitas Princeton

Upload: faridbagass

Post on 10-Feb-2016

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: jurnal orkom.docx

Bersama TLBs terakhir -Level untuk Chip Multiprocessors

Abstrak

Terjemahan lookaside Buffer (TLBs) sangat penting untuk kinerja prosesor Penelitian terakhir banyak yang ditangani uniprocessor TLBs menurunkan waktu akses dan jumlah kesalahan Namun seperti Multiprocessors Chip (CMPS) menjadi tersebar desain TLB harus dievaluasi ulang

Artikel ini adalah yang pertama untuk mengusulkan dan mengevaluasi tingkat (SLL) TLBs sebagai alternatif komersial norma swasta per-core L2 TLBs SLL TLBs menghilangkan 7-79 dari seluruh sistem utama untuk beban kerja paralel Ini merupakan rata-rata 27 lebih baik dari konvensional swasta per-core L2 TLBs menerjemahkan keuntungan runtime SLL TLBs juga memberikan manfaat yang sebanding untuk baru-diusulkan Inter-Core Koperasi (ICC) TLB prefetchers tetapi dengan hardware jauh lebih sederhana Selanjutnya tidak seperti prefetchers ini SLL TLBs dapat membantu aplikasi berjalan berurutan menghilangkan 35-95 dari TLB merindukan untuk berbagai kombinasi Multiprogrammed aplikasi berurutan Hal ini terkait dengan 21 rata-rata kenaikan TLB dieliminasi dibandingkan untuk pribadi per-core L2 TLBs Karena manfaatnya untuk paralel dan sekuensial aplikasi dan perangkat keras mudah-diimplementasikan mereka SLL TLBs menjanjikan besar untuk CMPS

1 Pengantar

Prosesor mendukung instruksi menggunakan memori virtual dan data Terjemahan lookaside Buffer (TLBs) untuk menyimpan umumnya menggunakan terjemahan halaman virtual-to-fisik dan untuk menghindari tingginya latency akses ke operasi tabel sistem (OS) halaman TLBs sangat penting untuk kinerja sistem karena hukuman kehilangan panjang mereka [2 7 15 20 23] Sementara kinerja sebelumnya telah dibahas pilihan untuk penempatan TLB dan lookup [6 22] kontemporer sistem menempatkan mereka secara paralel dengan cache L1 TLB ukuran dan associativity juga telah dieksplorasi [6] memiliki superpaging [29] dan prefetching [15 24] Namun proposal ini memiliki semua uniprocessors ditargetkan Sebagai multiprocessors Chip (CMPS) menjadi dominan itu sangat penting untuk memeriksa TLBs dalam konteks ini Makalah ini adalah yang pertama untuk mengusulkan dan menganalisa bersama tingkat (SLL) TLBs dulu untuk CMPS Sementara prosesor vendor telah membahas peningkatan memori aplikasi jejak kaki yang terkait TLB stres dengan menerapkan dua tingkat TLB hirarki (misalnya Intel i7 [11] AMD K8 dan arsitektur K10 [1]) desain ini menggunakan swasta per-core L2 TLBs Tidak ada shared terakhir tingkat TLB telah dibangun secara komersial Sedangkan penggunaan komersial bersama cache terakhir tingkat dapat membuat TLBs SLL tampak cocok masalah pentingnya desain tetap untuk dieksplorasi Kami menunjukkan bahwa single terakhir tingkat TLB dibagi di antara semua CMP core secara signifikan melebihi L2 pribadi TLBs untuk aplikasi paralel Lebih mengherankan itu juga sering membantu beban kerja Multiprogrammed dari sekuensial aplikasi Untuk aplikasi paralel SLL TLBs mengeksploitasi fakta bahwa beberapa benang

Abhishek BhattacharjeeDepartemen Ilmu Komputer

Universitas Rutgersabhibcsrutgersedu

Daniel LustigDepartemen Teknik Elektro

Universitas Princetondlustigprincetonedu

Margaret MartonosiDepartemen Ilmu Komputer

Universitas Princetonmrmprincetonedu

mengalami TLB pada entri terjemahan alamat identik Kecenderungan program paralel untuk menunjukkan berbagi antar-core baru-baru ini diamati [3] dan kemudian dieksploitasi untuk mengembangkan Inter-Core Cooperative (ICC) TLB prefetchers [4] Namun tidak seperti prefetchers ICC yang membutuhkan hardware yang kompleks SLL TLBs dapat sebanding dengan hardware mudah-diimplementasikan Selain itu tidak seperti prefetchers ICC SLL TLBs juga bermanfaat mengurangi beban kerja dan menggabungkan aplikasi berurutan Masalah desain dari SLL TLBs untuk Multiprogrammed kombinasi dari aplikasi berurutan berada di kebutuhan studi tertentu Untuk ini beban kerja aplikasi tidak mengakses entri TLB sama jadi salah satu kekuatan SLL TLBs menunjukkan sedikit perbaikan dari swasta TLBs atau bahkan kinerja mendegradasi jika array yang lebih besar membutuhkan waktu akses lebih lama Bertentangan dengan ini SLL TLBs biasanya tidak mudah rusak dan benar-benar meningkatkan kinerja lebih TLBs L2 pribadi Mereka dapat memungkinkan penggunaan yang lebih fleksibel dan adaptif dari kolam tunggal sumber TLB daripada pembatasan per-core entri dalam pendekatan L2 TLB pribadi Secara keseluruhan kontribusi kami adalah sebagai berikut

1 paling utama pekerjaan kami adalah yang pertama untuk mengeksplorasi SLL Desain TLB Sementara memiliki lastlevel bersama cache pada CMPS saat ini pengorbanan desain unik mereka dan persyaratan menjamin studi terfokus Hasil kami menunjukkan bahwa SLL TLBs memberikan kinerja yang cukup bermanfaat tidak hanya untuk program paralel di mana kinerja keuntungan yang diharapkan tetapi juga untuk Multiprogrammed beban kerja sekuensial juga

2 Kami menganalisis manfaat SLL TLB untuk program paralel Kami menunjukkan bahwa dapat menghilangkan 7-79 dari yang meleset sebuah Peningkatan 27 rata-rata dibandingkan dengan L2 pribadi TLBs dengan persyaratan hardware yang setara Dengan ini manfaat yang sebanding dengan yang dicapai oleh ICC prefetchers tetapi dengan hardware sederhana Kemudian kita menyelidiki menambah baseline SLL TLB dengan dasar melangkah teknik prefetching meningkatkan lebih lanjut hit tarif rata-rata 5 Kami juga mempelajari tingkatan efektivitas SLL TLBs saat jumlah inti yang lebih tinggi menunjukkan bahwa mereka menghilangkan tambahan 6 dari dasar TLB rata-rata Akhirnya kita mempertimbangkan kinerja implikasi dari eliminasi ini menunjukkan bahwa mereka dapat ditebang TLB dengan penanganan hingga 025 CPI

3 Kami kemudian menganalisis beban kerja yang terdiri dari sekuensial aplikasi yang berjalan satu per inti dalam multi mode diprogram Kita berharap beban kerja dapat menunjukkan kesamaan yang cukup untuk mendapatkan keuntungan dari SLL TLBs Meskipun demikian di campuran beban kerja kami menemukan bahwa SLL TLBs menghilangkan 35-95 dari kesalahan dibandingkan dengan ada L2 TLBs Lebih khususnya mereka mengungguli per-core swasta L2 TLBs menghilangkan tambahan 21 dari rata-rata Perbaikan ini timbul karena yang SLL TLB lebih mampu mengalokasikan sumber daya yang berbeda dengan kebutuhan set kerja secara simultan-running aplikasi berurutan Ini biasanya menyebabkan kinerja perbaikan menghemat sebanyak 04 CPI Makalah ini disusun sebagai berikut Bagian 2 bahan latar belakang dan Bagian 3 rincian SLL TLBs Bagian 4 menyajikan metodologi evaluasi kami Kemudian Bagian 5 menunjukkan hasil untuk beban kerja paralel sementara Bagian 6 melakukan hal yang sama untuk sekuensial Multiprogrammed beban kerja Akhirnya Bagian 7 menawarkan kesimpulan

2 Latar Belakang

21 Karakterisasi Uniprocessor TLB

Arsitektur kontemporer biasanya mempertahankan swasta per-core TLBs ditempatkan secara paralel dengan tingkat pertama cache [1 11] TLBs banyak penelitian masa lalu diukur sebagai terdiri dari 5 sampai 10 dari sistem runtime [7 15 20 23] dengan kasus-kasus ekstrim pada 40 [10] Menanggapi nomor teknik tambahan yang diusulkan Awal pekerjaan ditangani karakteristik perangkat keras seperti TLB ukuran dan associativity [6] Akhirnya teknik prefetching [15 24] dan superpaging [29] juga dipelajari dengan hasil yang menjanjikan Sebagaimana dengan pekerjaan ini sebelum menargetkan secara khusus uniprocessors Sebagai CMPS yang ada di mana saja kita harus mengevaluasi kembali peran dan desain TLBs Meskipun ada adalah sangat sedikit pekerjaan di daerah ini vendor prosesor dan komunitas riset telah mengusulkan beberapa solusi seperti yang dibahas di bawah

22 Swasta Hierarki Multilevel TLB

Menyadari peran yang semakin penting dari TLBs untuk kinerja sistem vendor prosesor memiliki lebih tahun diperpanjang konsep hirarki bertingkat dari cache ke TLBs Sejak pergantian dekade AMD K7 K8 dan K10 i7 Intel dan HAL SPARC64-III telah memeluk dua tingkat TLB hierarki [1 11 28] Swasta L2 TLBs pertama kali muncul di uniprocessors tetapi mereka telah menjadi lebih umum dengan adopsi CMPS dengan L2 TLBs mendekati relatif ukuran besar dengan 512 dan 1024 entri Meskipun mereka bermanfaat semua komersial L2 TLBs diimplementasikan sebagai pribadi ke inti individu makalah ini menunjukkan bahwa strategi ini adalah kekurangan dalam dua cara Pertama per-core TLBs swasta tidak bisa memanfaatkan intercore yang Perilaku berbagi TLB program paralel Kedua bahkan untuk kombinasi Multiprogrammed dari sekuensial aplikasi per-core TLBs mengalokasikan seperangkat tetap sumber daya untuk masing-masing inti individu terlepas dari kebutuhan aplikasi yang berjalan pada mereka Oleh karena itu salah satu inti dapat menjalankan aplikasi dengan hanya TLB kecil jejak dan inti lain secara bersamaan mungkin mengalami TLB meronta-ronta Ini limbah sumber sejak terpakai Entri TLB inti pertama akan lebih baik digunakan jika dibuat tersedia untuk inti meronta-ronta Seperti yang kita tampilkan SLL TLBs mengatasi kedua kekurangan ini dengan memanfaatkan berbagi antar-core paralel program dan mengalokasikan sumber daya anggun antara berurutan aplikasi dalam beban kerja Multiprogrammed

23 InterCore

Prefetching Koperasi Komunitas riset juga baru-baru belajar dampak yang muncul beban kerja paralel pada TLBs [3] Penokohan beberapa beban kerja paralel menunjukkan bagaimana signifikan kesamaan ada di pola rindu TLB core di dari CMP yang mengarah ke dua jenis diprediksi TLB merindukan dalam sistem Tipe pertama adalah Inter Core-Bersama (ICS) Hal ini terjadi ketika beberapa core TLB miss pada terjemahan yang sama Merindukan ini sering terjadi pada program paralel misalnya 94 rindu Streamcluster dan 80 dari Canneal ini misses dilihat oleh minimal 2 core pada 4-core CMP dengan asumsi 64-entry TLBs [3] Karya terbaru telah mengusulkan Pemimpin-Follower prefetching untuk menghilangkan misses ICS seperti [4] Dalam pendekatan ini pada setiap rindu TLB saat-hilang inti (yang Pemimpin) isi ulang yang TLB dengan entri yang sesuai dan juga mendorong terjemahan ini ke yang lain (pengikut) CMP core The prefetches didorong ke per-core Prefetch Buffer (PBS) ditempatkan

secara paralel dengan TLBs TLBs SLL kami menangkap ini kelas yang sama dari ICS TLB meleset tapi melakukannya dengan hardware yang jauh lebih ramping Tipe kedua dari TLB Miss didefinisikan sebagai Inter-Core Stride diprediksi (ICPs) Ini terjadi ketika beberapa core TLB miss pada halaman virtual dengan langkah yang konsisten diantara mereka Misalnya Blackscholes aktif mempekerjakan langkah antar-inti plusmn 4 halaman membuat 86 dari misses yang diprediksi [3] Berdasarkan jarak lintas-Core prefetching target ICPs meleset [4] Skema ini toko berulang langkah antar-core di halaman virtual dalam pusat bersama Jarak Table (DT) Pada TLB merindukan DT memprediksi terjemahan yang diperlukan selanjutnya yang dapat PREFETCHED Dalam evaluasi kami kami merujuk pada ICC prefetching sebagai menggabungkan kedua Pemimpin-Follower dan Distancebased Lintas-Core prefetching Sementara SLL TLBs tidak langsung menyerang ICPs merindukan kami menunjukkan bahwa SLL TLBs ditambah dengan langkah sederhana prefetching dapat memenuhi atau melebihi kinerja berbasis Jarak prefetchers Lintas Inti lebih rumit dan dapat melakukannya dengan overhead hardware yang lebih kecil (tidak ada meja) dan implementasi sederhana Selanjutnya makalah ini menunjukkan bahwa SLL TLBs manfaat yang tidak hanya paralel beban kerja tetapi juga dalam banyak kasus bantuan Multiprogrammed kombinasi dari aplikasi berurutan ICC prefetchers belum dievaluasi pada beban kerja tersebut

24 Pendekatan kami Bersama lastlevel TLBs

Setelah rinci keterbatasan strategi yang ada kita sekarang membahas kebaruan pendekatan kami Kita mulai dengan membandingkan masalah desain dari SLL TLBs dan berbagi cache terakhir tingkat Sementara pada pandangan pertama mungkin tampak ada menjadi paralel antara shared cache lalu-tingkat dan bersama TLB banyak perbedaan utama tetap Pertama dan terutama SLL TLBs melihat lebih banyak berbagi antar-core sejak granularity penyimpanan dalam bentuk halaman yang agak dari garis cache meningkatkan kemungkinan berbagi dan sehingga pola pembagian yang berbeda secara fundamental Kedua karena TLBs jauh lebih kecil dari cache penggusuran dan berbagi bermain peran yang berbeda dan penting dalam kinerja Memahami perilaku mereka terutama di konteks beberapa thread bersaing dan berbagi sumber daya memerlukan studi dalam dirinya sendiri Selain itu hukuman miss TLB biasanya jauh lebih parah dari cache miss sejak mahal tabel halaman berjalan terlibat Oleh karena itu TLBs bersama menjamin rinci Pemeriksaan berbeda dari cache

3 Bersama terakhir-Level TLBs

Kami pertama menggambarkan SLL TLBs dan rinci operasi mereka dan implementasi Kami kemudian mendiskusikan menambah SLL TLBs dengan prefetching mekanisme juga

31 Konsep

Gambar 1 menyajikan CMP dengan swasta per-core L1 TLBs didukung oleh SLL L2 TLB Sementara contoh ini menggunakan hanya satu tingkat dari TLBs swasta tingkat lebih mungkin ditampung (misalnya masing-masing inti bisa mempertahankan dua tingkat per-core TLB swasta diikuti dengan L3 SLL TLB) Seperti cache lalu-tingkat SLL TLB adalah diakses ketika ada miss dalam L1 TLB The SLL TLB berusaha untuk dimasukkan dengan L1 TLB sehingga entri yang

diakses oleh satu inti yang tersedia untuk orang lain Gambar 1 menunjukkan SLL TLB yang berada di lokasi pusat diakses oleh semua core Sementara ini terpusat Pendekatan adalah implementasi mungkin kita membahas ini dan isu-isu implementasi lainnya di Bagian 33 SLL TLBs menikmati dua manfaat orthogonal Pertama mereka mengeksploitasi berbagi antar-inti dalam program paralel Secara khusus inti ini TLB rindu membawa masuk ke SLL TLB sehingga L2 berikutnya merindukan pada entri yang sama dari core lainnya dieliminasi Kedua bahkan untuk unshared meleset SLL TLBs lebih fleksibel mengenai di mana entri dapat ditempatkan TLB hit timbul dari ini bantuan fleksibilitas baik paralel dan sekuensial beban kerja

32 Algoritma

Gambar 1 rincian SLL meleset dan hits di dua contoh kasus masing-masing Sementara kasus ini diberi nomor tidak ada pemesanan tersirat di antara mereka Kami rinci kasus di bawah ini

Kasus 1 Gambar 1 berikut merupakan L1 TLB dan SLL TLB miss Pertama ada L1 TLB miss (langkah 1a) Sebagai tanggapan pesan dikirim ke SLL TLB Setelah Akses latency kita menderita kehilangan SLL (langkah 1b) The tabel halaman kemudian berjalan dan terjemahan yang tepat dimasukkan ke kedua SLL dan L1 TLB Dengan memasukkan yang masuk ke SLL TLB (langkah 1c) masa depan merindukan pada entry ini dihindari oleh kedua inti memulai serta sebagai core lainnya

Kasus 2 Sekarang kita menggambarkan langkah-langkah yang terlibat dalam SLL TLB hit Pertama L1 TLB melihat miss (langkah 2a) dan pesan dikirim ke SLL TLB Sekarang anggaplah ada hit SLL TLB (langkah 2b) Sebagai rinci sebelumnya ada dua kemungkinan penyebab hit ini Pertama Saat inti hilang mungkin sebelumnya membawa ini masuk ke SLL TLB Bergantian entri mungkin inter-core bersama dan inti lain sebelumnya mungkin memiliki diambil ke dalam SLL TLB Apapun alasannya hit SLL TLB menghindari tabel halaman berjalan Sebaliknya entri yang sama kini dimasukkan ke dalam L1 TLB (langkah 2c) di harapan bahwa masa depan akses ke entri ini akan jadi hits L1

33 Pilihan Implementasi

Setelah rinci operasi dasar SLL TLBs kami sekarang membahas beberapa atribut pelaksanaan kunci TLB Entries SLL TLB entri menyimpan informasi identik dengan L1 TLB Setiap entri menyimpan sedikit valid entri terjemahan dan penggantian bit kebijakan Kita juga menyimpan konteks penuh atau ID proses dengan masing-masing entri Kurang hardware bisa digunakan dengan lebih sedikit bit tapi SLL kami TLB kecil membuat optimasi seperti tidak perlu Kebijakan Penggantian Untuk meningkatkan berbagi antar-core dalam program paralel L1 dan SLL TLBs perlu inklusif Namun seperti cache bertingkat menjamin inklusi ketat memerlukan koordinasi yang erat antara L1 dan L2 SLL TLB pengendali dan penggantian logika [9] Sebaliknya kita menggunakan pendekatan yang diambil oleh x86 cache [9] dan menerapkan hirarki TLB multilevel yang sebagian besar-inklusif Di sini sementara entri ditempatkan ke kedua L1 dan SLL TLB pada miss masing-masing TLB diperbolehkan untuk membuat keputusan penggantian independen membutuhkan hardware jauh lebih sederhana Selanjutnya prosesor vendor telah mencatat bahwa sementara pendekatan ini tidak tidak menjamin inklusi ketat itu mencapai hampir sempurna inklusi dalam praktek Misalnya dalam aplikasi kami kita menemukan bahwa di atas 97 dari semua entri L1 TLB hadir di SLL TLB

Konsistensi TLBs SLL kami dirancang untuk menjadi shootdown-sadar Setiap kali kebutuhan entri terjemahan akan batal baik SLL dan L1 TLBs harus diperiksa untuk kehadiran entri ini Memiliki SLL kami TLB menjadi ketat termasuk L1 TLBs ini akan tidak diperlukan dalam kasus kehilangan SLL Namun sejak dua tingkat TLB kami sebagian besar termasuk adalah mungkin untuk masuk ke absen dari SLL TLB tapi hadir di L1 TLBs Oleh karena itu sebuah shootdown membutuhkan pemeriksaan dalam semua TLBs sistem Meskipun demikian shootdowns yang langka dan hardware sederhana diberikan oleh kebijakan sebagian besar-inclusive membuatnya sesuai untuk Pendekatan yang diusulkan kami Penempatan Di sini kita asumsikan terpadu terpusat SLL TLB berjarak sama dari semua core Ini layak untuk ukuran saat SLL TLBs kita mempelajari (512 entri seperti yang dijelaskan dalam Bagian 4) yang menikmati kali hit singkat (2 siklus untuk teknologi 45nm dari CACTI percobaan [19]) Jika TLBs SLL masa depan yang jauh lebih besar dan memerlukan lagi hit kali mereka dapat didistribusikan sama untuk NUCA cache [16] Seperti cache media komunikasi yang ada antara core dan SLL TLB (misalnya on-chip jaringan atau bus) Oleh karena itu SLL latency jemput terdiri dari traversal jaringan dan SLL TLB waktu akses Mengingat latency akses singkat dari 2 siklus waktu jaringan traversal mendominasi Kami berasumsi kali jaringan traversal dari 20 siklus mirip dengan [4] Meskipun hal ini berarti bahwa 22 siklus Total dihabiskan untuk SLL TLB hit kami akan menunjukkan bahwa ini masih sangat meningkatkan kinerja dengan menghilangkan halaman meja berjalan yang bisa mengambil ratusan siklus [12 13] Teknik yang mengurangi latency komunikasi ini akan hanya memperkuat manfaat SLL TLB Akhirnya karena SLL TLB terpusat dibagi di antara semua core akan membutuhkan waktu akses lebih lama dari swasta L2 TLBs Berdasarkan simulasi CACTI di 45nm memindai swasta L2 TLB membutuhkan jumlah yang sama waktu sebagai SLL TLB (2 siklus) Namun karena swasta L2 TLBs tidak perlu terpusat di antara core mereka memiliki waktu komunikasi yang lebih pendek dengan 6 siklus Kebijakan akses Sementara L1 TLBs menangani hanya satu permintaan pada suatu waktu dan memblokir SLL TLBs bisa berpotensi dirancang untuk melayani beberapa permintaan bersama-sama Ini bagaimanapun mempersulit baik hardware dan bagaimana OS menangani tabel halaman berjalan desain kami karena itu mengasumsikan memblokir SLL TLBs Namun demikian nonblocking SLL TLBs kemungkinan akan memberikan lebih kinerja manfaat

34 SLL TLBs dengan Simple Stride Prefetching

Dalam beberapa percobaan kami kami juga mempertimbangkan augmenting TLBs SLL dengan ekstensi prefetching sederhana Sejumlah studi sebelumnya telah menunjukkan bahwa karena berskala lokalitas spasial dalam pola akses memori TLBs sering menunjukkan langkah diprediksi di Diakses maya halaman Langkah ini terjadi pada memori akses sungai dari satu inti [15] serta antara beberapa beberapa core [3 4] Sementara prefetchers canggih memiliki telah diusulkan untuk mengeksploitasi ini pekerjaan ini mengeksplorasi gelar yang sederhana berbasis langkahnya prefetching ditambahkan ke baseline SLL TLB dapat memberikan manfaat Secara khusus pada miss TLB kita memasukkan terjemahan diminta menjadi entri prefetch SLL TLB dan juga untuk halaman maya berturut-turut dengan yang sekarang Gambar 2 menggambarkan SLL TLBs dengan prefetching terintegrasi

Langkah 1 Pertama kita asumsikan bahwa miss TLB telah terjadi baik di L1 dan L2 SLL TLBs Setelah berjalan tabel halaman untuk menemukan terjemahan yang sesuai dengan terjawab halaman virtual (halaman 0 dalam contoh ini) yang sesuai entri ditempatkan ke dalam L1 TLB

Langkah 2 Setelah diisi ulang entri L1 TLB dalam pertama langkah kita sekarang mengisi entri yang sama ke dalam SLL TLB Berikutnya prefetching diaktifkan Untuk menangkap potensi intra-core dan langkah antar-core kita entri sekarang prefetch untuk virtual halaman berturut-turut untuk satu hanya merindukan saat The jumlah dan khususnya langkah dari entri PREFETCHED adalah pilihan desain yang bagian berikutnya akan membahas

Dalam contoh ini halaman virtual 0 telah terjawab pada sehingga kami memilih untuk juga terjemahan prefetch untuk halaman 1 2 dan 3

Langkah 3 Misalkan inti yang 1 permintaan terjemahan untuk halaman virtual 1 karena memiliki langkah antar-inti

1 halaman dari inti 0 Dengan asumsi bahwa kita kehilangan di L1 TLB kita memindai entri dalam struktur SLL TLB Untungnya karena langkah prefetching kami menemukan bahwa entri sudah ada di SLL TLB Mahal tabel halaman berjalan dihilangkan dan semua yang tersisa adalah untuk entri yang akan diisi ulang ke dalam L1 TLB juga Hal ini penting untuk memastikan bahwa prefetches ini tidak menambah overhead dengan mengharuskan tabel halaman ekstra berjalan Menghindari ini kami mengusulkan pendekatan penanganan kuda-kudaan sederhana Ketika TLB miss dan halaman yang sesuai tabel berjalan terjadi kami akhirnya menemukan terjemahan yang diinginkan Sekarang terjemahan ini baik yang sudah berada dalam cache atau dibawa ke cache dari memori utama Karena ukuran baris cache yang lebih besar dari entri terjemahan satu line akan mempertahankan beberapa entri terjemahan Untuk baris cache 64-byte kami (lihat Bagian 4) entri untuk maya halaman 1 2 dan 3 halaman jauh juga akan berada di baris yang sama Oleh karena itu kami prefetch entri ini ke dalam SLL TLB tanpa persyaratan tambahan halaman berjalan Selain itu kami mengizinkan hanya prefetches non-faulting

4 Metodologi

Untuk mengukur manfaat SLL TLBs kita fokus pada dua set yang berbeda dari evaluasi Pertama kita menunjukkan bagaimana paralel program manfaat dari SLL TLBs Kami kemudian juga mengevaluasi beban kerja di mana aplikasi yang berbeda berurutan berjalan pada setiap inti Bagian ini menjelaskan setiap metodologi pada gilirannya Sementara SLL TLBs menguntungkan kedua I-TLBs dan D-TLBs Penelitian ini berfokus pada D-TLBs karena jauh mereka dampak yang lebih besar pada kinerja sistem [3 24] Pendekatan kami akan tetapi mengurangi I-TLB merindukan juga

41 Aplikasi Paralel

Infrastruktur 411

Simulasi Kami belajar TLBs SLL dengan program paralel menggunakan Multifacet GEMS simulator [18] dari Tabel 1 Kami simulator menggunakan Virtutech Simics [30] sebagai yang fungsional Model untuk mensimulasikan 4-core dan 16-core CMPS berdasarkan Sun UltraSPARC III Cu dengan arsitektur Sunfire ini MMU [27] Seperti ditunjukkan ini menggunakan dua L1 TLBs yang mendongak bersamaan OS ini menggunakan 16-entry fullyassociative struktur terutama untuk mengunci halaman Kedua 64-entri TLB digunakan untuk terjemahan terkunci L1 kami Ukuran TLB sesuai dengan studi ICC prefetcher dari [4] Selanjutnya ukuran ini sama dengan L1 TLBs dari prosesor kontemporer seperti Intel i7 (64-entry) dan AMD K10 (48-entry) Untuk

menilai manfaat SLL TLBs kita membandingkan mereka terhadap kedua per-core swasta L2 TLBs danPrefetchers ICC (termasuk Pemimpin-Follower dan Jarak jauh lintas-Core prefetching) dengan sama Total hardware Kami pertama kali membandingkan TLBs SLL kita terhadap prefetchers ICC dari [4] yang menganggap 4-core CMP dengan konfigurasi rinci pada Tabel 2 Sebagai ditampilkan berdasarkan konfigurasi ini sama-sama berukuran SLL TLB membutuhkan 512 entri Hal ini pada gilirannya berarti bahwa untuk 4-core CMP kita membandingkan SLL TLBs ke L2 pribadi TLBs dari 128 entri Akhirnya TLB akses kali ditugaskan dari CACTI [19] dengan asumsi node 45nm Ini hukuman termasuk waktu untuk melintasi jaringan on-chip serta waktu untuk memindai array TLB Kami menemukan bahwa TLB memindai kali untuk kedua pendekatan tetap sama (2 siklus) Namun sejak TLBs L2 pribadi ditempatkan lebih dekat ke inti dari L2 SLL TLB mereka memiliki traversal jaringan lebih cepat (dengan 6 siklus) Setelah membandingkan manfaat SLL TLBs dengan ICC prefetchers dan swasta per-core TLBs L2 pada 4-core CMP kita mempelajari dampak dari jumlah inti pada SLL TLBs Untuk percobaan ini kita model 16-core CMP sebagai

ditunjukkan pada Tabel 2 Dalam rangka cukup membandingkan 16-core CMP dengan swasta per-core TLBs dari 128 entri kita model 2048 SLL TLB untuk studi ini Karena memperlambat kecepatan penuh sistem waktu simulasi kita Hasil hadir untuk 1 miliar petunjuk Instruksi kami Jendela dipilih sedemikian rupa sehingga di bawah 5 dari total DTLB misses yang merindukan dingin Secara historis studi TLB [2 3] fokus pada tingkat penghapusan rindu daripada kinerja karena tidak layak untuk menjalankan aplikasi dengan panjang cukup jangka waktu pada waktu simulator untuk memberikan praktis angka-angka kinerja runtime Kami melampaui sebelumnya bekerja dan menyelidiki kinerja (selain rindu eliminasi) dengan hati-hati mempertimbangkan TLB rindu penanganan strategi dan analitis pemodelan manfaat kami tepat

412 Benchmark Paralel dan Set Masukan

Kami menggunakan benchmark parsec suite nextgeneration program bersama-memori untuk CMPS [5] Meja 3 daftar beban kerja yang digunakan dalam penelitian ini Dari 3 beban kerja yang tersedia kita dapat mengkompilasi 9 terdaftar untuk simulator1 kami The beban kerja menggunakan beragam paralelisasi strategi (terstruktur data-paralel dan pipa-paralel) dan dijalankan dengan benang ditempelkan ke masing-masing inti CMP Sejak TLB misses lebih jarang terjadi dari cache misses kami menggunakan data input yang tersedia terbesar mengatur layak untuk simulasi Simlarge ditetapkan

Gambar 4 D-TLB merindukan per juta instruksi (MMI)

untuk beban kerja CPU2006 SPEC digunakan dalam makalah ini Beban kerja menunjukkan tingkat kehilangan beragam dengan mcf dan cactusADM menunjukkan MMIs sangat tinggi

Gambar 3 menyajikan beban kerja D-TLB merindukan per uta instruksi (MMIs) Seperti yang diharapkan benchmark seperti Canneal dan Ferret yang memiliki kerja besar set lihat MMIs tinggi Menariknya Blackscholes melihat MMI tertinggi karena pola aksesnya meskipun ukuran set kerja yang relatif sederhana Ini nomor MMI menyajikan dasar yang berguna untuk lebih memahami kami Hasil berikutnya

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 2: jurnal orkom.docx

mengalami TLB pada entri terjemahan alamat identik Kecenderungan program paralel untuk menunjukkan berbagi antar-core baru-baru ini diamati [3] dan kemudian dieksploitasi untuk mengembangkan Inter-Core Cooperative (ICC) TLB prefetchers [4] Namun tidak seperti prefetchers ICC yang membutuhkan hardware yang kompleks SLL TLBs dapat sebanding dengan hardware mudah-diimplementasikan Selain itu tidak seperti prefetchers ICC SLL TLBs juga bermanfaat mengurangi beban kerja dan menggabungkan aplikasi berurutan Masalah desain dari SLL TLBs untuk Multiprogrammed kombinasi dari aplikasi berurutan berada di kebutuhan studi tertentu Untuk ini beban kerja aplikasi tidak mengakses entri TLB sama jadi salah satu kekuatan SLL TLBs menunjukkan sedikit perbaikan dari swasta TLBs atau bahkan kinerja mendegradasi jika array yang lebih besar membutuhkan waktu akses lebih lama Bertentangan dengan ini SLL TLBs biasanya tidak mudah rusak dan benar-benar meningkatkan kinerja lebih TLBs L2 pribadi Mereka dapat memungkinkan penggunaan yang lebih fleksibel dan adaptif dari kolam tunggal sumber TLB daripada pembatasan per-core entri dalam pendekatan L2 TLB pribadi Secara keseluruhan kontribusi kami adalah sebagai berikut

1 paling utama pekerjaan kami adalah yang pertama untuk mengeksplorasi SLL Desain TLB Sementara memiliki lastlevel bersama cache pada CMPS saat ini pengorbanan desain unik mereka dan persyaratan menjamin studi terfokus Hasil kami menunjukkan bahwa SLL TLBs memberikan kinerja yang cukup bermanfaat tidak hanya untuk program paralel di mana kinerja keuntungan yang diharapkan tetapi juga untuk Multiprogrammed beban kerja sekuensial juga

2 Kami menganalisis manfaat SLL TLB untuk program paralel Kami menunjukkan bahwa dapat menghilangkan 7-79 dari yang meleset sebuah Peningkatan 27 rata-rata dibandingkan dengan L2 pribadi TLBs dengan persyaratan hardware yang setara Dengan ini manfaat yang sebanding dengan yang dicapai oleh ICC prefetchers tetapi dengan hardware sederhana Kemudian kita menyelidiki menambah baseline SLL TLB dengan dasar melangkah teknik prefetching meningkatkan lebih lanjut hit tarif rata-rata 5 Kami juga mempelajari tingkatan efektivitas SLL TLBs saat jumlah inti yang lebih tinggi menunjukkan bahwa mereka menghilangkan tambahan 6 dari dasar TLB rata-rata Akhirnya kita mempertimbangkan kinerja implikasi dari eliminasi ini menunjukkan bahwa mereka dapat ditebang TLB dengan penanganan hingga 025 CPI

3 Kami kemudian menganalisis beban kerja yang terdiri dari sekuensial aplikasi yang berjalan satu per inti dalam multi mode diprogram Kita berharap beban kerja dapat menunjukkan kesamaan yang cukup untuk mendapatkan keuntungan dari SLL TLBs Meskipun demikian di campuran beban kerja kami menemukan bahwa SLL TLBs menghilangkan 35-95 dari kesalahan dibandingkan dengan ada L2 TLBs Lebih khususnya mereka mengungguli per-core swasta L2 TLBs menghilangkan tambahan 21 dari rata-rata Perbaikan ini timbul karena yang SLL TLB lebih mampu mengalokasikan sumber daya yang berbeda dengan kebutuhan set kerja secara simultan-running aplikasi berurutan Ini biasanya menyebabkan kinerja perbaikan menghemat sebanyak 04 CPI Makalah ini disusun sebagai berikut Bagian 2 bahan latar belakang dan Bagian 3 rincian SLL TLBs Bagian 4 menyajikan metodologi evaluasi kami Kemudian Bagian 5 menunjukkan hasil untuk beban kerja paralel sementara Bagian 6 melakukan hal yang sama untuk sekuensial Multiprogrammed beban kerja Akhirnya Bagian 7 menawarkan kesimpulan

2 Latar Belakang

21 Karakterisasi Uniprocessor TLB

Arsitektur kontemporer biasanya mempertahankan swasta per-core TLBs ditempatkan secara paralel dengan tingkat pertama cache [1 11] TLBs banyak penelitian masa lalu diukur sebagai terdiri dari 5 sampai 10 dari sistem runtime [7 15 20 23] dengan kasus-kasus ekstrim pada 40 [10] Menanggapi nomor teknik tambahan yang diusulkan Awal pekerjaan ditangani karakteristik perangkat keras seperti TLB ukuran dan associativity [6] Akhirnya teknik prefetching [15 24] dan superpaging [29] juga dipelajari dengan hasil yang menjanjikan Sebagaimana dengan pekerjaan ini sebelum menargetkan secara khusus uniprocessors Sebagai CMPS yang ada di mana saja kita harus mengevaluasi kembali peran dan desain TLBs Meskipun ada adalah sangat sedikit pekerjaan di daerah ini vendor prosesor dan komunitas riset telah mengusulkan beberapa solusi seperti yang dibahas di bawah

22 Swasta Hierarki Multilevel TLB

Menyadari peran yang semakin penting dari TLBs untuk kinerja sistem vendor prosesor memiliki lebih tahun diperpanjang konsep hirarki bertingkat dari cache ke TLBs Sejak pergantian dekade AMD K7 K8 dan K10 i7 Intel dan HAL SPARC64-III telah memeluk dua tingkat TLB hierarki [1 11 28] Swasta L2 TLBs pertama kali muncul di uniprocessors tetapi mereka telah menjadi lebih umum dengan adopsi CMPS dengan L2 TLBs mendekati relatif ukuran besar dengan 512 dan 1024 entri Meskipun mereka bermanfaat semua komersial L2 TLBs diimplementasikan sebagai pribadi ke inti individu makalah ini menunjukkan bahwa strategi ini adalah kekurangan dalam dua cara Pertama per-core TLBs swasta tidak bisa memanfaatkan intercore yang Perilaku berbagi TLB program paralel Kedua bahkan untuk kombinasi Multiprogrammed dari sekuensial aplikasi per-core TLBs mengalokasikan seperangkat tetap sumber daya untuk masing-masing inti individu terlepas dari kebutuhan aplikasi yang berjalan pada mereka Oleh karena itu salah satu inti dapat menjalankan aplikasi dengan hanya TLB kecil jejak dan inti lain secara bersamaan mungkin mengalami TLB meronta-ronta Ini limbah sumber sejak terpakai Entri TLB inti pertama akan lebih baik digunakan jika dibuat tersedia untuk inti meronta-ronta Seperti yang kita tampilkan SLL TLBs mengatasi kedua kekurangan ini dengan memanfaatkan berbagi antar-core paralel program dan mengalokasikan sumber daya anggun antara berurutan aplikasi dalam beban kerja Multiprogrammed

23 InterCore

Prefetching Koperasi Komunitas riset juga baru-baru belajar dampak yang muncul beban kerja paralel pada TLBs [3] Penokohan beberapa beban kerja paralel menunjukkan bagaimana signifikan kesamaan ada di pola rindu TLB core di dari CMP yang mengarah ke dua jenis diprediksi TLB merindukan dalam sistem Tipe pertama adalah Inter Core-Bersama (ICS) Hal ini terjadi ketika beberapa core TLB miss pada terjemahan yang sama Merindukan ini sering terjadi pada program paralel misalnya 94 rindu Streamcluster dan 80 dari Canneal ini misses dilihat oleh minimal 2 core pada 4-core CMP dengan asumsi 64-entry TLBs [3] Karya terbaru telah mengusulkan Pemimpin-Follower prefetching untuk menghilangkan misses ICS seperti [4] Dalam pendekatan ini pada setiap rindu TLB saat-hilang inti (yang Pemimpin) isi ulang yang TLB dengan entri yang sesuai dan juga mendorong terjemahan ini ke yang lain (pengikut) CMP core The prefetches didorong ke per-core Prefetch Buffer (PBS) ditempatkan

secara paralel dengan TLBs TLBs SLL kami menangkap ini kelas yang sama dari ICS TLB meleset tapi melakukannya dengan hardware yang jauh lebih ramping Tipe kedua dari TLB Miss didefinisikan sebagai Inter-Core Stride diprediksi (ICPs) Ini terjadi ketika beberapa core TLB miss pada halaman virtual dengan langkah yang konsisten diantara mereka Misalnya Blackscholes aktif mempekerjakan langkah antar-inti plusmn 4 halaman membuat 86 dari misses yang diprediksi [3] Berdasarkan jarak lintas-Core prefetching target ICPs meleset [4] Skema ini toko berulang langkah antar-core di halaman virtual dalam pusat bersama Jarak Table (DT) Pada TLB merindukan DT memprediksi terjemahan yang diperlukan selanjutnya yang dapat PREFETCHED Dalam evaluasi kami kami merujuk pada ICC prefetching sebagai menggabungkan kedua Pemimpin-Follower dan Distancebased Lintas-Core prefetching Sementara SLL TLBs tidak langsung menyerang ICPs merindukan kami menunjukkan bahwa SLL TLBs ditambah dengan langkah sederhana prefetching dapat memenuhi atau melebihi kinerja berbasis Jarak prefetchers Lintas Inti lebih rumit dan dapat melakukannya dengan overhead hardware yang lebih kecil (tidak ada meja) dan implementasi sederhana Selanjutnya makalah ini menunjukkan bahwa SLL TLBs manfaat yang tidak hanya paralel beban kerja tetapi juga dalam banyak kasus bantuan Multiprogrammed kombinasi dari aplikasi berurutan ICC prefetchers belum dievaluasi pada beban kerja tersebut

24 Pendekatan kami Bersama lastlevel TLBs

Setelah rinci keterbatasan strategi yang ada kita sekarang membahas kebaruan pendekatan kami Kita mulai dengan membandingkan masalah desain dari SLL TLBs dan berbagi cache terakhir tingkat Sementara pada pandangan pertama mungkin tampak ada menjadi paralel antara shared cache lalu-tingkat dan bersama TLB banyak perbedaan utama tetap Pertama dan terutama SLL TLBs melihat lebih banyak berbagi antar-core sejak granularity penyimpanan dalam bentuk halaman yang agak dari garis cache meningkatkan kemungkinan berbagi dan sehingga pola pembagian yang berbeda secara fundamental Kedua karena TLBs jauh lebih kecil dari cache penggusuran dan berbagi bermain peran yang berbeda dan penting dalam kinerja Memahami perilaku mereka terutama di konteks beberapa thread bersaing dan berbagi sumber daya memerlukan studi dalam dirinya sendiri Selain itu hukuman miss TLB biasanya jauh lebih parah dari cache miss sejak mahal tabel halaman berjalan terlibat Oleh karena itu TLBs bersama menjamin rinci Pemeriksaan berbeda dari cache

3 Bersama terakhir-Level TLBs

Kami pertama menggambarkan SLL TLBs dan rinci operasi mereka dan implementasi Kami kemudian mendiskusikan menambah SLL TLBs dengan prefetching mekanisme juga

31 Konsep

Gambar 1 menyajikan CMP dengan swasta per-core L1 TLBs didukung oleh SLL L2 TLB Sementara contoh ini menggunakan hanya satu tingkat dari TLBs swasta tingkat lebih mungkin ditampung (misalnya masing-masing inti bisa mempertahankan dua tingkat per-core TLB swasta diikuti dengan L3 SLL TLB) Seperti cache lalu-tingkat SLL TLB adalah diakses ketika ada miss dalam L1 TLB The SLL TLB berusaha untuk dimasukkan dengan L1 TLB sehingga entri yang

diakses oleh satu inti yang tersedia untuk orang lain Gambar 1 menunjukkan SLL TLB yang berada di lokasi pusat diakses oleh semua core Sementara ini terpusat Pendekatan adalah implementasi mungkin kita membahas ini dan isu-isu implementasi lainnya di Bagian 33 SLL TLBs menikmati dua manfaat orthogonal Pertama mereka mengeksploitasi berbagi antar-inti dalam program paralel Secara khusus inti ini TLB rindu membawa masuk ke SLL TLB sehingga L2 berikutnya merindukan pada entri yang sama dari core lainnya dieliminasi Kedua bahkan untuk unshared meleset SLL TLBs lebih fleksibel mengenai di mana entri dapat ditempatkan TLB hit timbul dari ini bantuan fleksibilitas baik paralel dan sekuensial beban kerja

32 Algoritma

Gambar 1 rincian SLL meleset dan hits di dua contoh kasus masing-masing Sementara kasus ini diberi nomor tidak ada pemesanan tersirat di antara mereka Kami rinci kasus di bawah ini

Kasus 1 Gambar 1 berikut merupakan L1 TLB dan SLL TLB miss Pertama ada L1 TLB miss (langkah 1a) Sebagai tanggapan pesan dikirim ke SLL TLB Setelah Akses latency kita menderita kehilangan SLL (langkah 1b) The tabel halaman kemudian berjalan dan terjemahan yang tepat dimasukkan ke kedua SLL dan L1 TLB Dengan memasukkan yang masuk ke SLL TLB (langkah 1c) masa depan merindukan pada entry ini dihindari oleh kedua inti memulai serta sebagai core lainnya

Kasus 2 Sekarang kita menggambarkan langkah-langkah yang terlibat dalam SLL TLB hit Pertama L1 TLB melihat miss (langkah 2a) dan pesan dikirim ke SLL TLB Sekarang anggaplah ada hit SLL TLB (langkah 2b) Sebagai rinci sebelumnya ada dua kemungkinan penyebab hit ini Pertama Saat inti hilang mungkin sebelumnya membawa ini masuk ke SLL TLB Bergantian entri mungkin inter-core bersama dan inti lain sebelumnya mungkin memiliki diambil ke dalam SLL TLB Apapun alasannya hit SLL TLB menghindari tabel halaman berjalan Sebaliknya entri yang sama kini dimasukkan ke dalam L1 TLB (langkah 2c) di harapan bahwa masa depan akses ke entri ini akan jadi hits L1

33 Pilihan Implementasi

Setelah rinci operasi dasar SLL TLBs kami sekarang membahas beberapa atribut pelaksanaan kunci TLB Entries SLL TLB entri menyimpan informasi identik dengan L1 TLB Setiap entri menyimpan sedikit valid entri terjemahan dan penggantian bit kebijakan Kita juga menyimpan konteks penuh atau ID proses dengan masing-masing entri Kurang hardware bisa digunakan dengan lebih sedikit bit tapi SLL kami TLB kecil membuat optimasi seperti tidak perlu Kebijakan Penggantian Untuk meningkatkan berbagi antar-core dalam program paralel L1 dan SLL TLBs perlu inklusif Namun seperti cache bertingkat menjamin inklusi ketat memerlukan koordinasi yang erat antara L1 dan L2 SLL TLB pengendali dan penggantian logika [9] Sebaliknya kita menggunakan pendekatan yang diambil oleh x86 cache [9] dan menerapkan hirarki TLB multilevel yang sebagian besar-inklusif Di sini sementara entri ditempatkan ke kedua L1 dan SLL TLB pada miss masing-masing TLB diperbolehkan untuk membuat keputusan penggantian independen membutuhkan hardware jauh lebih sederhana Selanjutnya prosesor vendor telah mencatat bahwa sementara pendekatan ini tidak tidak menjamin inklusi ketat itu mencapai hampir sempurna inklusi dalam praktek Misalnya dalam aplikasi kami kita menemukan bahwa di atas 97 dari semua entri L1 TLB hadir di SLL TLB

Konsistensi TLBs SLL kami dirancang untuk menjadi shootdown-sadar Setiap kali kebutuhan entri terjemahan akan batal baik SLL dan L1 TLBs harus diperiksa untuk kehadiran entri ini Memiliki SLL kami TLB menjadi ketat termasuk L1 TLBs ini akan tidak diperlukan dalam kasus kehilangan SLL Namun sejak dua tingkat TLB kami sebagian besar termasuk adalah mungkin untuk masuk ke absen dari SLL TLB tapi hadir di L1 TLBs Oleh karena itu sebuah shootdown membutuhkan pemeriksaan dalam semua TLBs sistem Meskipun demikian shootdowns yang langka dan hardware sederhana diberikan oleh kebijakan sebagian besar-inclusive membuatnya sesuai untuk Pendekatan yang diusulkan kami Penempatan Di sini kita asumsikan terpadu terpusat SLL TLB berjarak sama dari semua core Ini layak untuk ukuran saat SLL TLBs kita mempelajari (512 entri seperti yang dijelaskan dalam Bagian 4) yang menikmati kali hit singkat (2 siklus untuk teknologi 45nm dari CACTI percobaan [19]) Jika TLBs SLL masa depan yang jauh lebih besar dan memerlukan lagi hit kali mereka dapat didistribusikan sama untuk NUCA cache [16] Seperti cache media komunikasi yang ada antara core dan SLL TLB (misalnya on-chip jaringan atau bus) Oleh karena itu SLL latency jemput terdiri dari traversal jaringan dan SLL TLB waktu akses Mengingat latency akses singkat dari 2 siklus waktu jaringan traversal mendominasi Kami berasumsi kali jaringan traversal dari 20 siklus mirip dengan [4] Meskipun hal ini berarti bahwa 22 siklus Total dihabiskan untuk SLL TLB hit kami akan menunjukkan bahwa ini masih sangat meningkatkan kinerja dengan menghilangkan halaman meja berjalan yang bisa mengambil ratusan siklus [12 13] Teknik yang mengurangi latency komunikasi ini akan hanya memperkuat manfaat SLL TLB Akhirnya karena SLL TLB terpusat dibagi di antara semua core akan membutuhkan waktu akses lebih lama dari swasta L2 TLBs Berdasarkan simulasi CACTI di 45nm memindai swasta L2 TLB membutuhkan jumlah yang sama waktu sebagai SLL TLB (2 siklus) Namun karena swasta L2 TLBs tidak perlu terpusat di antara core mereka memiliki waktu komunikasi yang lebih pendek dengan 6 siklus Kebijakan akses Sementara L1 TLBs menangani hanya satu permintaan pada suatu waktu dan memblokir SLL TLBs bisa berpotensi dirancang untuk melayani beberapa permintaan bersama-sama Ini bagaimanapun mempersulit baik hardware dan bagaimana OS menangani tabel halaman berjalan desain kami karena itu mengasumsikan memblokir SLL TLBs Namun demikian nonblocking SLL TLBs kemungkinan akan memberikan lebih kinerja manfaat

34 SLL TLBs dengan Simple Stride Prefetching

Dalam beberapa percobaan kami kami juga mempertimbangkan augmenting TLBs SLL dengan ekstensi prefetching sederhana Sejumlah studi sebelumnya telah menunjukkan bahwa karena berskala lokalitas spasial dalam pola akses memori TLBs sering menunjukkan langkah diprediksi di Diakses maya halaman Langkah ini terjadi pada memori akses sungai dari satu inti [15] serta antara beberapa beberapa core [3 4] Sementara prefetchers canggih memiliki telah diusulkan untuk mengeksploitasi ini pekerjaan ini mengeksplorasi gelar yang sederhana berbasis langkahnya prefetching ditambahkan ke baseline SLL TLB dapat memberikan manfaat Secara khusus pada miss TLB kita memasukkan terjemahan diminta menjadi entri prefetch SLL TLB dan juga untuk halaman maya berturut-turut dengan yang sekarang Gambar 2 menggambarkan SLL TLBs dengan prefetching terintegrasi

Langkah 1 Pertama kita asumsikan bahwa miss TLB telah terjadi baik di L1 dan L2 SLL TLBs Setelah berjalan tabel halaman untuk menemukan terjemahan yang sesuai dengan terjawab halaman virtual (halaman 0 dalam contoh ini) yang sesuai entri ditempatkan ke dalam L1 TLB

Langkah 2 Setelah diisi ulang entri L1 TLB dalam pertama langkah kita sekarang mengisi entri yang sama ke dalam SLL TLB Berikutnya prefetching diaktifkan Untuk menangkap potensi intra-core dan langkah antar-core kita entri sekarang prefetch untuk virtual halaman berturut-turut untuk satu hanya merindukan saat The jumlah dan khususnya langkah dari entri PREFETCHED adalah pilihan desain yang bagian berikutnya akan membahas

Dalam contoh ini halaman virtual 0 telah terjawab pada sehingga kami memilih untuk juga terjemahan prefetch untuk halaman 1 2 dan 3

Langkah 3 Misalkan inti yang 1 permintaan terjemahan untuk halaman virtual 1 karena memiliki langkah antar-inti

1 halaman dari inti 0 Dengan asumsi bahwa kita kehilangan di L1 TLB kita memindai entri dalam struktur SLL TLB Untungnya karena langkah prefetching kami menemukan bahwa entri sudah ada di SLL TLB Mahal tabel halaman berjalan dihilangkan dan semua yang tersisa adalah untuk entri yang akan diisi ulang ke dalam L1 TLB juga Hal ini penting untuk memastikan bahwa prefetches ini tidak menambah overhead dengan mengharuskan tabel halaman ekstra berjalan Menghindari ini kami mengusulkan pendekatan penanganan kuda-kudaan sederhana Ketika TLB miss dan halaman yang sesuai tabel berjalan terjadi kami akhirnya menemukan terjemahan yang diinginkan Sekarang terjemahan ini baik yang sudah berada dalam cache atau dibawa ke cache dari memori utama Karena ukuran baris cache yang lebih besar dari entri terjemahan satu line akan mempertahankan beberapa entri terjemahan Untuk baris cache 64-byte kami (lihat Bagian 4) entri untuk maya halaman 1 2 dan 3 halaman jauh juga akan berada di baris yang sama Oleh karena itu kami prefetch entri ini ke dalam SLL TLB tanpa persyaratan tambahan halaman berjalan Selain itu kami mengizinkan hanya prefetches non-faulting

4 Metodologi

Untuk mengukur manfaat SLL TLBs kita fokus pada dua set yang berbeda dari evaluasi Pertama kita menunjukkan bagaimana paralel program manfaat dari SLL TLBs Kami kemudian juga mengevaluasi beban kerja di mana aplikasi yang berbeda berurutan berjalan pada setiap inti Bagian ini menjelaskan setiap metodologi pada gilirannya Sementara SLL TLBs menguntungkan kedua I-TLBs dan D-TLBs Penelitian ini berfokus pada D-TLBs karena jauh mereka dampak yang lebih besar pada kinerja sistem [3 24] Pendekatan kami akan tetapi mengurangi I-TLB merindukan juga

41 Aplikasi Paralel

Infrastruktur 411

Simulasi Kami belajar TLBs SLL dengan program paralel menggunakan Multifacet GEMS simulator [18] dari Tabel 1 Kami simulator menggunakan Virtutech Simics [30] sebagai yang fungsional Model untuk mensimulasikan 4-core dan 16-core CMPS berdasarkan Sun UltraSPARC III Cu dengan arsitektur Sunfire ini MMU [27] Seperti ditunjukkan ini menggunakan dua L1 TLBs yang mendongak bersamaan OS ini menggunakan 16-entry fullyassociative struktur terutama untuk mengunci halaman Kedua 64-entri TLB digunakan untuk terjemahan terkunci L1 kami Ukuran TLB sesuai dengan studi ICC prefetcher dari [4] Selanjutnya ukuran ini sama dengan L1 TLBs dari prosesor kontemporer seperti Intel i7 (64-entry) dan AMD K10 (48-entry) Untuk

menilai manfaat SLL TLBs kita membandingkan mereka terhadap kedua per-core swasta L2 TLBs danPrefetchers ICC (termasuk Pemimpin-Follower dan Jarak jauh lintas-Core prefetching) dengan sama Total hardware Kami pertama kali membandingkan TLBs SLL kita terhadap prefetchers ICC dari [4] yang menganggap 4-core CMP dengan konfigurasi rinci pada Tabel 2 Sebagai ditampilkan berdasarkan konfigurasi ini sama-sama berukuran SLL TLB membutuhkan 512 entri Hal ini pada gilirannya berarti bahwa untuk 4-core CMP kita membandingkan SLL TLBs ke L2 pribadi TLBs dari 128 entri Akhirnya TLB akses kali ditugaskan dari CACTI [19] dengan asumsi node 45nm Ini hukuman termasuk waktu untuk melintasi jaringan on-chip serta waktu untuk memindai array TLB Kami menemukan bahwa TLB memindai kali untuk kedua pendekatan tetap sama (2 siklus) Namun sejak TLBs L2 pribadi ditempatkan lebih dekat ke inti dari L2 SLL TLB mereka memiliki traversal jaringan lebih cepat (dengan 6 siklus) Setelah membandingkan manfaat SLL TLBs dengan ICC prefetchers dan swasta per-core TLBs L2 pada 4-core CMP kita mempelajari dampak dari jumlah inti pada SLL TLBs Untuk percobaan ini kita model 16-core CMP sebagai

ditunjukkan pada Tabel 2 Dalam rangka cukup membandingkan 16-core CMP dengan swasta per-core TLBs dari 128 entri kita model 2048 SLL TLB untuk studi ini Karena memperlambat kecepatan penuh sistem waktu simulasi kita Hasil hadir untuk 1 miliar petunjuk Instruksi kami Jendela dipilih sedemikian rupa sehingga di bawah 5 dari total DTLB misses yang merindukan dingin Secara historis studi TLB [2 3] fokus pada tingkat penghapusan rindu daripada kinerja karena tidak layak untuk menjalankan aplikasi dengan panjang cukup jangka waktu pada waktu simulator untuk memberikan praktis angka-angka kinerja runtime Kami melampaui sebelumnya bekerja dan menyelidiki kinerja (selain rindu eliminasi) dengan hati-hati mempertimbangkan TLB rindu penanganan strategi dan analitis pemodelan manfaat kami tepat

412 Benchmark Paralel dan Set Masukan

Kami menggunakan benchmark parsec suite nextgeneration program bersama-memori untuk CMPS [5] Meja 3 daftar beban kerja yang digunakan dalam penelitian ini Dari 3 beban kerja yang tersedia kita dapat mengkompilasi 9 terdaftar untuk simulator1 kami The beban kerja menggunakan beragam paralelisasi strategi (terstruktur data-paralel dan pipa-paralel) dan dijalankan dengan benang ditempelkan ke masing-masing inti CMP Sejak TLB misses lebih jarang terjadi dari cache misses kami menggunakan data input yang tersedia terbesar mengatur layak untuk simulasi Simlarge ditetapkan

Gambar 4 D-TLB merindukan per juta instruksi (MMI)

untuk beban kerja CPU2006 SPEC digunakan dalam makalah ini Beban kerja menunjukkan tingkat kehilangan beragam dengan mcf dan cactusADM menunjukkan MMIs sangat tinggi

Gambar 3 menyajikan beban kerja D-TLB merindukan per uta instruksi (MMIs) Seperti yang diharapkan benchmark seperti Canneal dan Ferret yang memiliki kerja besar set lihat MMIs tinggi Menariknya Blackscholes melihat MMI tertinggi karena pola aksesnya meskipun ukuran set kerja yang relatif sederhana Ini nomor MMI menyajikan dasar yang berguna untuk lebih memahami kami Hasil berikutnya

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 3: jurnal orkom.docx

21 Karakterisasi Uniprocessor TLB

Arsitektur kontemporer biasanya mempertahankan swasta per-core TLBs ditempatkan secara paralel dengan tingkat pertama cache [1 11] TLBs banyak penelitian masa lalu diukur sebagai terdiri dari 5 sampai 10 dari sistem runtime [7 15 20 23] dengan kasus-kasus ekstrim pada 40 [10] Menanggapi nomor teknik tambahan yang diusulkan Awal pekerjaan ditangani karakteristik perangkat keras seperti TLB ukuran dan associativity [6] Akhirnya teknik prefetching [15 24] dan superpaging [29] juga dipelajari dengan hasil yang menjanjikan Sebagaimana dengan pekerjaan ini sebelum menargetkan secara khusus uniprocessors Sebagai CMPS yang ada di mana saja kita harus mengevaluasi kembali peran dan desain TLBs Meskipun ada adalah sangat sedikit pekerjaan di daerah ini vendor prosesor dan komunitas riset telah mengusulkan beberapa solusi seperti yang dibahas di bawah

22 Swasta Hierarki Multilevel TLB

Menyadari peran yang semakin penting dari TLBs untuk kinerja sistem vendor prosesor memiliki lebih tahun diperpanjang konsep hirarki bertingkat dari cache ke TLBs Sejak pergantian dekade AMD K7 K8 dan K10 i7 Intel dan HAL SPARC64-III telah memeluk dua tingkat TLB hierarki [1 11 28] Swasta L2 TLBs pertama kali muncul di uniprocessors tetapi mereka telah menjadi lebih umum dengan adopsi CMPS dengan L2 TLBs mendekati relatif ukuran besar dengan 512 dan 1024 entri Meskipun mereka bermanfaat semua komersial L2 TLBs diimplementasikan sebagai pribadi ke inti individu makalah ini menunjukkan bahwa strategi ini adalah kekurangan dalam dua cara Pertama per-core TLBs swasta tidak bisa memanfaatkan intercore yang Perilaku berbagi TLB program paralel Kedua bahkan untuk kombinasi Multiprogrammed dari sekuensial aplikasi per-core TLBs mengalokasikan seperangkat tetap sumber daya untuk masing-masing inti individu terlepas dari kebutuhan aplikasi yang berjalan pada mereka Oleh karena itu salah satu inti dapat menjalankan aplikasi dengan hanya TLB kecil jejak dan inti lain secara bersamaan mungkin mengalami TLB meronta-ronta Ini limbah sumber sejak terpakai Entri TLB inti pertama akan lebih baik digunakan jika dibuat tersedia untuk inti meronta-ronta Seperti yang kita tampilkan SLL TLBs mengatasi kedua kekurangan ini dengan memanfaatkan berbagi antar-core paralel program dan mengalokasikan sumber daya anggun antara berurutan aplikasi dalam beban kerja Multiprogrammed

23 InterCore

Prefetching Koperasi Komunitas riset juga baru-baru belajar dampak yang muncul beban kerja paralel pada TLBs [3] Penokohan beberapa beban kerja paralel menunjukkan bagaimana signifikan kesamaan ada di pola rindu TLB core di dari CMP yang mengarah ke dua jenis diprediksi TLB merindukan dalam sistem Tipe pertama adalah Inter Core-Bersama (ICS) Hal ini terjadi ketika beberapa core TLB miss pada terjemahan yang sama Merindukan ini sering terjadi pada program paralel misalnya 94 rindu Streamcluster dan 80 dari Canneal ini misses dilihat oleh minimal 2 core pada 4-core CMP dengan asumsi 64-entry TLBs [3] Karya terbaru telah mengusulkan Pemimpin-Follower prefetching untuk menghilangkan misses ICS seperti [4] Dalam pendekatan ini pada setiap rindu TLB saat-hilang inti (yang Pemimpin) isi ulang yang TLB dengan entri yang sesuai dan juga mendorong terjemahan ini ke yang lain (pengikut) CMP core The prefetches didorong ke per-core Prefetch Buffer (PBS) ditempatkan

secara paralel dengan TLBs TLBs SLL kami menangkap ini kelas yang sama dari ICS TLB meleset tapi melakukannya dengan hardware yang jauh lebih ramping Tipe kedua dari TLB Miss didefinisikan sebagai Inter-Core Stride diprediksi (ICPs) Ini terjadi ketika beberapa core TLB miss pada halaman virtual dengan langkah yang konsisten diantara mereka Misalnya Blackscholes aktif mempekerjakan langkah antar-inti plusmn 4 halaman membuat 86 dari misses yang diprediksi [3] Berdasarkan jarak lintas-Core prefetching target ICPs meleset [4] Skema ini toko berulang langkah antar-core di halaman virtual dalam pusat bersama Jarak Table (DT) Pada TLB merindukan DT memprediksi terjemahan yang diperlukan selanjutnya yang dapat PREFETCHED Dalam evaluasi kami kami merujuk pada ICC prefetching sebagai menggabungkan kedua Pemimpin-Follower dan Distancebased Lintas-Core prefetching Sementara SLL TLBs tidak langsung menyerang ICPs merindukan kami menunjukkan bahwa SLL TLBs ditambah dengan langkah sederhana prefetching dapat memenuhi atau melebihi kinerja berbasis Jarak prefetchers Lintas Inti lebih rumit dan dapat melakukannya dengan overhead hardware yang lebih kecil (tidak ada meja) dan implementasi sederhana Selanjutnya makalah ini menunjukkan bahwa SLL TLBs manfaat yang tidak hanya paralel beban kerja tetapi juga dalam banyak kasus bantuan Multiprogrammed kombinasi dari aplikasi berurutan ICC prefetchers belum dievaluasi pada beban kerja tersebut

24 Pendekatan kami Bersama lastlevel TLBs

Setelah rinci keterbatasan strategi yang ada kita sekarang membahas kebaruan pendekatan kami Kita mulai dengan membandingkan masalah desain dari SLL TLBs dan berbagi cache terakhir tingkat Sementara pada pandangan pertama mungkin tampak ada menjadi paralel antara shared cache lalu-tingkat dan bersama TLB banyak perbedaan utama tetap Pertama dan terutama SLL TLBs melihat lebih banyak berbagi antar-core sejak granularity penyimpanan dalam bentuk halaman yang agak dari garis cache meningkatkan kemungkinan berbagi dan sehingga pola pembagian yang berbeda secara fundamental Kedua karena TLBs jauh lebih kecil dari cache penggusuran dan berbagi bermain peran yang berbeda dan penting dalam kinerja Memahami perilaku mereka terutama di konteks beberapa thread bersaing dan berbagi sumber daya memerlukan studi dalam dirinya sendiri Selain itu hukuman miss TLB biasanya jauh lebih parah dari cache miss sejak mahal tabel halaman berjalan terlibat Oleh karena itu TLBs bersama menjamin rinci Pemeriksaan berbeda dari cache

3 Bersama terakhir-Level TLBs

Kami pertama menggambarkan SLL TLBs dan rinci operasi mereka dan implementasi Kami kemudian mendiskusikan menambah SLL TLBs dengan prefetching mekanisme juga

31 Konsep

Gambar 1 menyajikan CMP dengan swasta per-core L1 TLBs didukung oleh SLL L2 TLB Sementara contoh ini menggunakan hanya satu tingkat dari TLBs swasta tingkat lebih mungkin ditampung (misalnya masing-masing inti bisa mempertahankan dua tingkat per-core TLB swasta diikuti dengan L3 SLL TLB) Seperti cache lalu-tingkat SLL TLB adalah diakses ketika ada miss dalam L1 TLB The SLL TLB berusaha untuk dimasukkan dengan L1 TLB sehingga entri yang

diakses oleh satu inti yang tersedia untuk orang lain Gambar 1 menunjukkan SLL TLB yang berada di lokasi pusat diakses oleh semua core Sementara ini terpusat Pendekatan adalah implementasi mungkin kita membahas ini dan isu-isu implementasi lainnya di Bagian 33 SLL TLBs menikmati dua manfaat orthogonal Pertama mereka mengeksploitasi berbagi antar-inti dalam program paralel Secara khusus inti ini TLB rindu membawa masuk ke SLL TLB sehingga L2 berikutnya merindukan pada entri yang sama dari core lainnya dieliminasi Kedua bahkan untuk unshared meleset SLL TLBs lebih fleksibel mengenai di mana entri dapat ditempatkan TLB hit timbul dari ini bantuan fleksibilitas baik paralel dan sekuensial beban kerja

32 Algoritma

Gambar 1 rincian SLL meleset dan hits di dua contoh kasus masing-masing Sementara kasus ini diberi nomor tidak ada pemesanan tersirat di antara mereka Kami rinci kasus di bawah ini

Kasus 1 Gambar 1 berikut merupakan L1 TLB dan SLL TLB miss Pertama ada L1 TLB miss (langkah 1a) Sebagai tanggapan pesan dikirim ke SLL TLB Setelah Akses latency kita menderita kehilangan SLL (langkah 1b) The tabel halaman kemudian berjalan dan terjemahan yang tepat dimasukkan ke kedua SLL dan L1 TLB Dengan memasukkan yang masuk ke SLL TLB (langkah 1c) masa depan merindukan pada entry ini dihindari oleh kedua inti memulai serta sebagai core lainnya

Kasus 2 Sekarang kita menggambarkan langkah-langkah yang terlibat dalam SLL TLB hit Pertama L1 TLB melihat miss (langkah 2a) dan pesan dikirim ke SLL TLB Sekarang anggaplah ada hit SLL TLB (langkah 2b) Sebagai rinci sebelumnya ada dua kemungkinan penyebab hit ini Pertama Saat inti hilang mungkin sebelumnya membawa ini masuk ke SLL TLB Bergantian entri mungkin inter-core bersama dan inti lain sebelumnya mungkin memiliki diambil ke dalam SLL TLB Apapun alasannya hit SLL TLB menghindari tabel halaman berjalan Sebaliknya entri yang sama kini dimasukkan ke dalam L1 TLB (langkah 2c) di harapan bahwa masa depan akses ke entri ini akan jadi hits L1

33 Pilihan Implementasi

Setelah rinci operasi dasar SLL TLBs kami sekarang membahas beberapa atribut pelaksanaan kunci TLB Entries SLL TLB entri menyimpan informasi identik dengan L1 TLB Setiap entri menyimpan sedikit valid entri terjemahan dan penggantian bit kebijakan Kita juga menyimpan konteks penuh atau ID proses dengan masing-masing entri Kurang hardware bisa digunakan dengan lebih sedikit bit tapi SLL kami TLB kecil membuat optimasi seperti tidak perlu Kebijakan Penggantian Untuk meningkatkan berbagi antar-core dalam program paralel L1 dan SLL TLBs perlu inklusif Namun seperti cache bertingkat menjamin inklusi ketat memerlukan koordinasi yang erat antara L1 dan L2 SLL TLB pengendali dan penggantian logika [9] Sebaliknya kita menggunakan pendekatan yang diambil oleh x86 cache [9] dan menerapkan hirarki TLB multilevel yang sebagian besar-inklusif Di sini sementara entri ditempatkan ke kedua L1 dan SLL TLB pada miss masing-masing TLB diperbolehkan untuk membuat keputusan penggantian independen membutuhkan hardware jauh lebih sederhana Selanjutnya prosesor vendor telah mencatat bahwa sementara pendekatan ini tidak tidak menjamin inklusi ketat itu mencapai hampir sempurna inklusi dalam praktek Misalnya dalam aplikasi kami kita menemukan bahwa di atas 97 dari semua entri L1 TLB hadir di SLL TLB

Konsistensi TLBs SLL kami dirancang untuk menjadi shootdown-sadar Setiap kali kebutuhan entri terjemahan akan batal baik SLL dan L1 TLBs harus diperiksa untuk kehadiran entri ini Memiliki SLL kami TLB menjadi ketat termasuk L1 TLBs ini akan tidak diperlukan dalam kasus kehilangan SLL Namun sejak dua tingkat TLB kami sebagian besar termasuk adalah mungkin untuk masuk ke absen dari SLL TLB tapi hadir di L1 TLBs Oleh karena itu sebuah shootdown membutuhkan pemeriksaan dalam semua TLBs sistem Meskipun demikian shootdowns yang langka dan hardware sederhana diberikan oleh kebijakan sebagian besar-inclusive membuatnya sesuai untuk Pendekatan yang diusulkan kami Penempatan Di sini kita asumsikan terpadu terpusat SLL TLB berjarak sama dari semua core Ini layak untuk ukuran saat SLL TLBs kita mempelajari (512 entri seperti yang dijelaskan dalam Bagian 4) yang menikmati kali hit singkat (2 siklus untuk teknologi 45nm dari CACTI percobaan [19]) Jika TLBs SLL masa depan yang jauh lebih besar dan memerlukan lagi hit kali mereka dapat didistribusikan sama untuk NUCA cache [16] Seperti cache media komunikasi yang ada antara core dan SLL TLB (misalnya on-chip jaringan atau bus) Oleh karena itu SLL latency jemput terdiri dari traversal jaringan dan SLL TLB waktu akses Mengingat latency akses singkat dari 2 siklus waktu jaringan traversal mendominasi Kami berasumsi kali jaringan traversal dari 20 siklus mirip dengan [4] Meskipun hal ini berarti bahwa 22 siklus Total dihabiskan untuk SLL TLB hit kami akan menunjukkan bahwa ini masih sangat meningkatkan kinerja dengan menghilangkan halaman meja berjalan yang bisa mengambil ratusan siklus [12 13] Teknik yang mengurangi latency komunikasi ini akan hanya memperkuat manfaat SLL TLB Akhirnya karena SLL TLB terpusat dibagi di antara semua core akan membutuhkan waktu akses lebih lama dari swasta L2 TLBs Berdasarkan simulasi CACTI di 45nm memindai swasta L2 TLB membutuhkan jumlah yang sama waktu sebagai SLL TLB (2 siklus) Namun karena swasta L2 TLBs tidak perlu terpusat di antara core mereka memiliki waktu komunikasi yang lebih pendek dengan 6 siklus Kebijakan akses Sementara L1 TLBs menangani hanya satu permintaan pada suatu waktu dan memblokir SLL TLBs bisa berpotensi dirancang untuk melayani beberapa permintaan bersama-sama Ini bagaimanapun mempersulit baik hardware dan bagaimana OS menangani tabel halaman berjalan desain kami karena itu mengasumsikan memblokir SLL TLBs Namun demikian nonblocking SLL TLBs kemungkinan akan memberikan lebih kinerja manfaat

34 SLL TLBs dengan Simple Stride Prefetching

Dalam beberapa percobaan kami kami juga mempertimbangkan augmenting TLBs SLL dengan ekstensi prefetching sederhana Sejumlah studi sebelumnya telah menunjukkan bahwa karena berskala lokalitas spasial dalam pola akses memori TLBs sering menunjukkan langkah diprediksi di Diakses maya halaman Langkah ini terjadi pada memori akses sungai dari satu inti [15] serta antara beberapa beberapa core [3 4] Sementara prefetchers canggih memiliki telah diusulkan untuk mengeksploitasi ini pekerjaan ini mengeksplorasi gelar yang sederhana berbasis langkahnya prefetching ditambahkan ke baseline SLL TLB dapat memberikan manfaat Secara khusus pada miss TLB kita memasukkan terjemahan diminta menjadi entri prefetch SLL TLB dan juga untuk halaman maya berturut-turut dengan yang sekarang Gambar 2 menggambarkan SLL TLBs dengan prefetching terintegrasi

Langkah 1 Pertama kita asumsikan bahwa miss TLB telah terjadi baik di L1 dan L2 SLL TLBs Setelah berjalan tabel halaman untuk menemukan terjemahan yang sesuai dengan terjawab halaman virtual (halaman 0 dalam contoh ini) yang sesuai entri ditempatkan ke dalam L1 TLB

Langkah 2 Setelah diisi ulang entri L1 TLB dalam pertama langkah kita sekarang mengisi entri yang sama ke dalam SLL TLB Berikutnya prefetching diaktifkan Untuk menangkap potensi intra-core dan langkah antar-core kita entri sekarang prefetch untuk virtual halaman berturut-turut untuk satu hanya merindukan saat The jumlah dan khususnya langkah dari entri PREFETCHED adalah pilihan desain yang bagian berikutnya akan membahas

Dalam contoh ini halaman virtual 0 telah terjawab pada sehingga kami memilih untuk juga terjemahan prefetch untuk halaman 1 2 dan 3

Langkah 3 Misalkan inti yang 1 permintaan terjemahan untuk halaman virtual 1 karena memiliki langkah antar-inti

1 halaman dari inti 0 Dengan asumsi bahwa kita kehilangan di L1 TLB kita memindai entri dalam struktur SLL TLB Untungnya karena langkah prefetching kami menemukan bahwa entri sudah ada di SLL TLB Mahal tabel halaman berjalan dihilangkan dan semua yang tersisa adalah untuk entri yang akan diisi ulang ke dalam L1 TLB juga Hal ini penting untuk memastikan bahwa prefetches ini tidak menambah overhead dengan mengharuskan tabel halaman ekstra berjalan Menghindari ini kami mengusulkan pendekatan penanganan kuda-kudaan sederhana Ketika TLB miss dan halaman yang sesuai tabel berjalan terjadi kami akhirnya menemukan terjemahan yang diinginkan Sekarang terjemahan ini baik yang sudah berada dalam cache atau dibawa ke cache dari memori utama Karena ukuran baris cache yang lebih besar dari entri terjemahan satu line akan mempertahankan beberapa entri terjemahan Untuk baris cache 64-byte kami (lihat Bagian 4) entri untuk maya halaman 1 2 dan 3 halaman jauh juga akan berada di baris yang sama Oleh karena itu kami prefetch entri ini ke dalam SLL TLB tanpa persyaratan tambahan halaman berjalan Selain itu kami mengizinkan hanya prefetches non-faulting

4 Metodologi

Untuk mengukur manfaat SLL TLBs kita fokus pada dua set yang berbeda dari evaluasi Pertama kita menunjukkan bagaimana paralel program manfaat dari SLL TLBs Kami kemudian juga mengevaluasi beban kerja di mana aplikasi yang berbeda berurutan berjalan pada setiap inti Bagian ini menjelaskan setiap metodologi pada gilirannya Sementara SLL TLBs menguntungkan kedua I-TLBs dan D-TLBs Penelitian ini berfokus pada D-TLBs karena jauh mereka dampak yang lebih besar pada kinerja sistem [3 24] Pendekatan kami akan tetapi mengurangi I-TLB merindukan juga

41 Aplikasi Paralel

Infrastruktur 411

Simulasi Kami belajar TLBs SLL dengan program paralel menggunakan Multifacet GEMS simulator [18] dari Tabel 1 Kami simulator menggunakan Virtutech Simics [30] sebagai yang fungsional Model untuk mensimulasikan 4-core dan 16-core CMPS berdasarkan Sun UltraSPARC III Cu dengan arsitektur Sunfire ini MMU [27] Seperti ditunjukkan ini menggunakan dua L1 TLBs yang mendongak bersamaan OS ini menggunakan 16-entry fullyassociative struktur terutama untuk mengunci halaman Kedua 64-entri TLB digunakan untuk terjemahan terkunci L1 kami Ukuran TLB sesuai dengan studi ICC prefetcher dari [4] Selanjutnya ukuran ini sama dengan L1 TLBs dari prosesor kontemporer seperti Intel i7 (64-entry) dan AMD K10 (48-entry) Untuk

menilai manfaat SLL TLBs kita membandingkan mereka terhadap kedua per-core swasta L2 TLBs danPrefetchers ICC (termasuk Pemimpin-Follower dan Jarak jauh lintas-Core prefetching) dengan sama Total hardware Kami pertama kali membandingkan TLBs SLL kita terhadap prefetchers ICC dari [4] yang menganggap 4-core CMP dengan konfigurasi rinci pada Tabel 2 Sebagai ditampilkan berdasarkan konfigurasi ini sama-sama berukuran SLL TLB membutuhkan 512 entri Hal ini pada gilirannya berarti bahwa untuk 4-core CMP kita membandingkan SLL TLBs ke L2 pribadi TLBs dari 128 entri Akhirnya TLB akses kali ditugaskan dari CACTI [19] dengan asumsi node 45nm Ini hukuman termasuk waktu untuk melintasi jaringan on-chip serta waktu untuk memindai array TLB Kami menemukan bahwa TLB memindai kali untuk kedua pendekatan tetap sama (2 siklus) Namun sejak TLBs L2 pribadi ditempatkan lebih dekat ke inti dari L2 SLL TLB mereka memiliki traversal jaringan lebih cepat (dengan 6 siklus) Setelah membandingkan manfaat SLL TLBs dengan ICC prefetchers dan swasta per-core TLBs L2 pada 4-core CMP kita mempelajari dampak dari jumlah inti pada SLL TLBs Untuk percobaan ini kita model 16-core CMP sebagai

ditunjukkan pada Tabel 2 Dalam rangka cukup membandingkan 16-core CMP dengan swasta per-core TLBs dari 128 entri kita model 2048 SLL TLB untuk studi ini Karena memperlambat kecepatan penuh sistem waktu simulasi kita Hasil hadir untuk 1 miliar petunjuk Instruksi kami Jendela dipilih sedemikian rupa sehingga di bawah 5 dari total DTLB misses yang merindukan dingin Secara historis studi TLB [2 3] fokus pada tingkat penghapusan rindu daripada kinerja karena tidak layak untuk menjalankan aplikasi dengan panjang cukup jangka waktu pada waktu simulator untuk memberikan praktis angka-angka kinerja runtime Kami melampaui sebelumnya bekerja dan menyelidiki kinerja (selain rindu eliminasi) dengan hati-hati mempertimbangkan TLB rindu penanganan strategi dan analitis pemodelan manfaat kami tepat

412 Benchmark Paralel dan Set Masukan

Kami menggunakan benchmark parsec suite nextgeneration program bersama-memori untuk CMPS [5] Meja 3 daftar beban kerja yang digunakan dalam penelitian ini Dari 3 beban kerja yang tersedia kita dapat mengkompilasi 9 terdaftar untuk simulator1 kami The beban kerja menggunakan beragam paralelisasi strategi (terstruktur data-paralel dan pipa-paralel) dan dijalankan dengan benang ditempelkan ke masing-masing inti CMP Sejak TLB misses lebih jarang terjadi dari cache misses kami menggunakan data input yang tersedia terbesar mengatur layak untuk simulasi Simlarge ditetapkan

Gambar 4 D-TLB merindukan per juta instruksi (MMI)

untuk beban kerja CPU2006 SPEC digunakan dalam makalah ini Beban kerja menunjukkan tingkat kehilangan beragam dengan mcf dan cactusADM menunjukkan MMIs sangat tinggi

Gambar 3 menyajikan beban kerja D-TLB merindukan per uta instruksi (MMIs) Seperti yang diharapkan benchmark seperti Canneal dan Ferret yang memiliki kerja besar set lihat MMIs tinggi Menariknya Blackscholes melihat MMI tertinggi karena pola aksesnya meskipun ukuran set kerja yang relatif sederhana Ini nomor MMI menyajikan dasar yang berguna untuk lebih memahami kami Hasil berikutnya

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 4: jurnal orkom.docx

secara paralel dengan TLBs TLBs SLL kami menangkap ini kelas yang sama dari ICS TLB meleset tapi melakukannya dengan hardware yang jauh lebih ramping Tipe kedua dari TLB Miss didefinisikan sebagai Inter-Core Stride diprediksi (ICPs) Ini terjadi ketika beberapa core TLB miss pada halaman virtual dengan langkah yang konsisten diantara mereka Misalnya Blackscholes aktif mempekerjakan langkah antar-inti plusmn 4 halaman membuat 86 dari misses yang diprediksi [3] Berdasarkan jarak lintas-Core prefetching target ICPs meleset [4] Skema ini toko berulang langkah antar-core di halaman virtual dalam pusat bersama Jarak Table (DT) Pada TLB merindukan DT memprediksi terjemahan yang diperlukan selanjutnya yang dapat PREFETCHED Dalam evaluasi kami kami merujuk pada ICC prefetching sebagai menggabungkan kedua Pemimpin-Follower dan Distancebased Lintas-Core prefetching Sementara SLL TLBs tidak langsung menyerang ICPs merindukan kami menunjukkan bahwa SLL TLBs ditambah dengan langkah sederhana prefetching dapat memenuhi atau melebihi kinerja berbasis Jarak prefetchers Lintas Inti lebih rumit dan dapat melakukannya dengan overhead hardware yang lebih kecil (tidak ada meja) dan implementasi sederhana Selanjutnya makalah ini menunjukkan bahwa SLL TLBs manfaat yang tidak hanya paralel beban kerja tetapi juga dalam banyak kasus bantuan Multiprogrammed kombinasi dari aplikasi berurutan ICC prefetchers belum dievaluasi pada beban kerja tersebut

24 Pendekatan kami Bersama lastlevel TLBs

Setelah rinci keterbatasan strategi yang ada kita sekarang membahas kebaruan pendekatan kami Kita mulai dengan membandingkan masalah desain dari SLL TLBs dan berbagi cache terakhir tingkat Sementara pada pandangan pertama mungkin tampak ada menjadi paralel antara shared cache lalu-tingkat dan bersama TLB banyak perbedaan utama tetap Pertama dan terutama SLL TLBs melihat lebih banyak berbagi antar-core sejak granularity penyimpanan dalam bentuk halaman yang agak dari garis cache meningkatkan kemungkinan berbagi dan sehingga pola pembagian yang berbeda secara fundamental Kedua karena TLBs jauh lebih kecil dari cache penggusuran dan berbagi bermain peran yang berbeda dan penting dalam kinerja Memahami perilaku mereka terutama di konteks beberapa thread bersaing dan berbagi sumber daya memerlukan studi dalam dirinya sendiri Selain itu hukuman miss TLB biasanya jauh lebih parah dari cache miss sejak mahal tabel halaman berjalan terlibat Oleh karena itu TLBs bersama menjamin rinci Pemeriksaan berbeda dari cache

3 Bersama terakhir-Level TLBs

Kami pertama menggambarkan SLL TLBs dan rinci operasi mereka dan implementasi Kami kemudian mendiskusikan menambah SLL TLBs dengan prefetching mekanisme juga

31 Konsep

Gambar 1 menyajikan CMP dengan swasta per-core L1 TLBs didukung oleh SLL L2 TLB Sementara contoh ini menggunakan hanya satu tingkat dari TLBs swasta tingkat lebih mungkin ditampung (misalnya masing-masing inti bisa mempertahankan dua tingkat per-core TLB swasta diikuti dengan L3 SLL TLB) Seperti cache lalu-tingkat SLL TLB adalah diakses ketika ada miss dalam L1 TLB The SLL TLB berusaha untuk dimasukkan dengan L1 TLB sehingga entri yang

diakses oleh satu inti yang tersedia untuk orang lain Gambar 1 menunjukkan SLL TLB yang berada di lokasi pusat diakses oleh semua core Sementara ini terpusat Pendekatan adalah implementasi mungkin kita membahas ini dan isu-isu implementasi lainnya di Bagian 33 SLL TLBs menikmati dua manfaat orthogonal Pertama mereka mengeksploitasi berbagi antar-inti dalam program paralel Secara khusus inti ini TLB rindu membawa masuk ke SLL TLB sehingga L2 berikutnya merindukan pada entri yang sama dari core lainnya dieliminasi Kedua bahkan untuk unshared meleset SLL TLBs lebih fleksibel mengenai di mana entri dapat ditempatkan TLB hit timbul dari ini bantuan fleksibilitas baik paralel dan sekuensial beban kerja

32 Algoritma

Gambar 1 rincian SLL meleset dan hits di dua contoh kasus masing-masing Sementara kasus ini diberi nomor tidak ada pemesanan tersirat di antara mereka Kami rinci kasus di bawah ini

Kasus 1 Gambar 1 berikut merupakan L1 TLB dan SLL TLB miss Pertama ada L1 TLB miss (langkah 1a) Sebagai tanggapan pesan dikirim ke SLL TLB Setelah Akses latency kita menderita kehilangan SLL (langkah 1b) The tabel halaman kemudian berjalan dan terjemahan yang tepat dimasukkan ke kedua SLL dan L1 TLB Dengan memasukkan yang masuk ke SLL TLB (langkah 1c) masa depan merindukan pada entry ini dihindari oleh kedua inti memulai serta sebagai core lainnya

Kasus 2 Sekarang kita menggambarkan langkah-langkah yang terlibat dalam SLL TLB hit Pertama L1 TLB melihat miss (langkah 2a) dan pesan dikirim ke SLL TLB Sekarang anggaplah ada hit SLL TLB (langkah 2b) Sebagai rinci sebelumnya ada dua kemungkinan penyebab hit ini Pertama Saat inti hilang mungkin sebelumnya membawa ini masuk ke SLL TLB Bergantian entri mungkin inter-core bersama dan inti lain sebelumnya mungkin memiliki diambil ke dalam SLL TLB Apapun alasannya hit SLL TLB menghindari tabel halaman berjalan Sebaliknya entri yang sama kini dimasukkan ke dalam L1 TLB (langkah 2c) di harapan bahwa masa depan akses ke entri ini akan jadi hits L1

33 Pilihan Implementasi

Setelah rinci operasi dasar SLL TLBs kami sekarang membahas beberapa atribut pelaksanaan kunci TLB Entries SLL TLB entri menyimpan informasi identik dengan L1 TLB Setiap entri menyimpan sedikit valid entri terjemahan dan penggantian bit kebijakan Kita juga menyimpan konteks penuh atau ID proses dengan masing-masing entri Kurang hardware bisa digunakan dengan lebih sedikit bit tapi SLL kami TLB kecil membuat optimasi seperti tidak perlu Kebijakan Penggantian Untuk meningkatkan berbagi antar-core dalam program paralel L1 dan SLL TLBs perlu inklusif Namun seperti cache bertingkat menjamin inklusi ketat memerlukan koordinasi yang erat antara L1 dan L2 SLL TLB pengendali dan penggantian logika [9] Sebaliknya kita menggunakan pendekatan yang diambil oleh x86 cache [9] dan menerapkan hirarki TLB multilevel yang sebagian besar-inklusif Di sini sementara entri ditempatkan ke kedua L1 dan SLL TLB pada miss masing-masing TLB diperbolehkan untuk membuat keputusan penggantian independen membutuhkan hardware jauh lebih sederhana Selanjutnya prosesor vendor telah mencatat bahwa sementara pendekatan ini tidak tidak menjamin inklusi ketat itu mencapai hampir sempurna inklusi dalam praktek Misalnya dalam aplikasi kami kita menemukan bahwa di atas 97 dari semua entri L1 TLB hadir di SLL TLB

Konsistensi TLBs SLL kami dirancang untuk menjadi shootdown-sadar Setiap kali kebutuhan entri terjemahan akan batal baik SLL dan L1 TLBs harus diperiksa untuk kehadiran entri ini Memiliki SLL kami TLB menjadi ketat termasuk L1 TLBs ini akan tidak diperlukan dalam kasus kehilangan SLL Namun sejak dua tingkat TLB kami sebagian besar termasuk adalah mungkin untuk masuk ke absen dari SLL TLB tapi hadir di L1 TLBs Oleh karena itu sebuah shootdown membutuhkan pemeriksaan dalam semua TLBs sistem Meskipun demikian shootdowns yang langka dan hardware sederhana diberikan oleh kebijakan sebagian besar-inclusive membuatnya sesuai untuk Pendekatan yang diusulkan kami Penempatan Di sini kita asumsikan terpadu terpusat SLL TLB berjarak sama dari semua core Ini layak untuk ukuran saat SLL TLBs kita mempelajari (512 entri seperti yang dijelaskan dalam Bagian 4) yang menikmati kali hit singkat (2 siklus untuk teknologi 45nm dari CACTI percobaan [19]) Jika TLBs SLL masa depan yang jauh lebih besar dan memerlukan lagi hit kali mereka dapat didistribusikan sama untuk NUCA cache [16] Seperti cache media komunikasi yang ada antara core dan SLL TLB (misalnya on-chip jaringan atau bus) Oleh karena itu SLL latency jemput terdiri dari traversal jaringan dan SLL TLB waktu akses Mengingat latency akses singkat dari 2 siklus waktu jaringan traversal mendominasi Kami berasumsi kali jaringan traversal dari 20 siklus mirip dengan [4] Meskipun hal ini berarti bahwa 22 siklus Total dihabiskan untuk SLL TLB hit kami akan menunjukkan bahwa ini masih sangat meningkatkan kinerja dengan menghilangkan halaman meja berjalan yang bisa mengambil ratusan siklus [12 13] Teknik yang mengurangi latency komunikasi ini akan hanya memperkuat manfaat SLL TLB Akhirnya karena SLL TLB terpusat dibagi di antara semua core akan membutuhkan waktu akses lebih lama dari swasta L2 TLBs Berdasarkan simulasi CACTI di 45nm memindai swasta L2 TLB membutuhkan jumlah yang sama waktu sebagai SLL TLB (2 siklus) Namun karena swasta L2 TLBs tidak perlu terpusat di antara core mereka memiliki waktu komunikasi yang lebih pendek dengan 6 siklus Kebijakan akses Sementara L1 TLBs menangani hanya satu permintaan pada suatu waktu dan memblokir SLL TLBs bisa berpotensi dirancang untuk melayani beberapa permintaan bersama-sama Ini bagaimanapun mempersulit baik hardware dan bagaimana OS menangani tabel halaman berjalan desain kami karena itu mengasumsikan memblokir SLL TLBs Namun demikian nonblocking SLL TLBs kemungkinan akan memberikan lebih kinerja manfaat

34 SLL TLBs dengan Simple Stride Prefetching

Dalam beberapa percobaan kami kami juga mempertimbangkan augmenting TLBs SLL dengan ekstensi prefetching sederhana Sejumlah studi sebelumnya telah menunjukkan bahwa karena berskala lokalitas spasial dalam pola akses memori TLBs sering menunjukkan langkah diprediksi di Diakses maya halaman Langkah ini terjadi pada memori akses sungai dari satu inti [15] serta antara beberapa beberapa core [3 4] Sementara prefetchers canggih memiliki telah diusulkan untuk mengeksploitasi ini pekerjaan ini mengeksplorasi gelar yang sederhana berbasis langkahnya prefetching ditambahkan ke baseline SLL TLB dapat memberikan manfaat Secara khusus pada miss TLB kita memasukkan terjemahan diminta menjadi entri prefetch SLL TLB dan juga untuk halaman maya berturut-turut dengan yang sekarang Gambar 2 menggambarkan SLL TLBs dengan prefetching terintegrasi

Langkah 1 Pertama kita asumsikan bahwa miss TLB telah terjadi baik di L1 dan L2 SLL TLBs Setelah berjalan tabel halaman untuk menemukan terjemahan yang sesuai dengan terjawab halaman virtual (halaman 0 dalam contoh ini) yang sesuai entri ditempatkan ke dalam L1 TLB

Langkah 2 Setelah diisi ulang entri L1 TLB dalam pertama langkah kita sekarang mengisi entri yang sama ke dalam SLL TLB Berikutnya prefetching diaktifkan Untuk menangkap potensi intra-core dan langkah antar-core kita entri sekarang prefetch untuk virtual halaman berturut-turut untuk satu hanya merindukan saat The jumlah dan khususnya langkah dari entri PREFETCHED adalah pilihan desain yang bagian berikutnya akan membahas

Dalam contoh ini halaman virtual 0 telah terjawab pada sehingga kami memilih untuk juga terjemahan prefetch untuk halaman 1 2 dan 3

Langkah 3 Misalkan inti yang 1 permintaan terjemahan untuk halaman virtual 1 karena memiliki langkah antar-inti

1 halaman dari inti 0 Dengan asumsi bahwa kita kehilangan di L1 TLB kita memindai entri dalam struktur SLL TLB Untungnya karena langkah prefetching kami menemukan bahwa entri sudah ada di SLL TLB Mahal tabel halaman berjalan dihilangkan dan semua yang tersisa adalah untuk entri yang akan diisi ulang ke dalam L1 TLB juga Hal ini penting untuk memastikan bahwa prefetches ini tidak menambah overhead dengan mengharuskan tabel halaman ekstra berjalan Menghindari ini kami mengusulkan pendekatan penanganan kuda-kudaan sederhana Ketika TLB miss dan halaman yang sesuai tabel berjalan terjadi kami akhirnya menemukan terjemahan yang diinginkan Sekarang terjemahan ini baik yang sudah berada dalam cache atau dibawa ke cache dari memori utama Karena ukuran baris cache yang lebih besar dari entri terjemahan satu line akan mempertahankan beberapa entri terjemahan Untuk baris cache 64-byte kami (lihat Bagian 4) entri untuk maya halaman 1 2 dan 3 halaman jauh juga akan berada di baris yang sama Oleh karena itu kami prefetch entri ini ke dalam SLL TLB tanpa persyaratan tambahan halaman berjalan Selain itu kami mengizinkan hanya prefetches non-faulting

4 Metodologi

Untuk mengukur manfaat SLL TLBs kita fokus pada dua set yang berbeda dari evaluasi Pertama kita menunjukkan bagaimana paralel program manfaat dari SLL TLBs Kami kemudian juga mengevaluasi beban kerja di mana aplikasi yang berbeda berurutan berjalan pada setiap inti Bagian ini menjelaskan setiap metodologi pada gilirannya Sementara SLL TLBs menguntungkan kedua I-TLBs dan D-TLBs Penelitian ini berfokus pada D-TLBs karena jauh mereka dampak yang lebih besar pada kinerja sistem [3 24] Pendekatan kami akan tetapi mengurangi I-TLB merindukan juga

41 Aplikasi Paralel

Infrastruktur 411

Simulasi Kami belajar TLBs SLL dengan program paralel menggunakan Multifacet GEMS simulator [18] dari Tabel 1 Kami simulator menggunakan Virtutech Simics [30] sebagai yang fungsional Model untuk mensimulasikan 4-core dan 16-core CMPS berdasarkan Sun UltraSPARC III Cu dengan arsitektur Sunfire ini MMU [27] Seperti ditunjukkan ini menggunakan dua L1 TLBs yang mendongak bersamaan OS ini menggunakan 16-entry fullyassociative struktur terutama untuk mengunci halaman Kedua 64-entri TLB digunakan untuk terjemahan terkunci L1 kami Ukuran TLB sesuai dengan studi ICC prefetcher dari [4] Selanjutnya ukuran ini sama dengan L1 TLBs dari prosesor kontemporer seperti Intel i7 (64-entry) dan AMD K10 (48-entry) Untuk

menilai manfaat SLL TLBs kita membandingkan mereka terhadap kedua per-core swasta L2 TLBs danPrefetchers ICC (termasuk Pemimpin-Follower dan Jarak jauh lintas-Core prefetching) dengan sama Total hardware Kami pertama kali membandingkan TLBs SLL kita terhadap prefetchers ICC dari [4] yang menganggap 4-core CMP dengan konfigurasi rinci pada Tabel 2 Sebagai ditampilkan berdasarkan konfigurasi ini sama-sama berukuran SLL TLB membutuhkan 512 entri Hal ini pada gilirannya berarti bahwa untuk 4-core CMP kita membandingkan SLL TLBs ke L2 pribadi TLBs dari 128 entri Akhirnya TLB akses kali ditugaskan dari CACTI [19] dengan asumsi node 45nm Ini hukuman termasuk waktu untuk melintasi jaringan on-chip serta waktu untuk memindai array TLB Kami menemukan bahwa TLB memindai kali untuk kedua pendekatan tetap sama (2 siklus) Namun sejak TLBs L2 pribadi ditempatkan lebih dekat ke inti dari L2 SLL TLB mereka memiliki traversal jaringan lebih cepat (dengan 6 siklus) Setelah membandingkan manfaat SLL TLBs dengan ICC prefetchers dan swasta per-core TLBs L2 pada 4-core CMP kita mempelajari dampak dari jumlah inti pada SLL TLBs Untuk percobaan ini kita model 16-core CMP sebagai

ditunjukkan pada Tabel 2 Dalam rangka cukup membandingkan 16-core CMP dengan swasta per-core TLBs dari 128 entri kita model 2048 SLL TLB untuk studi ini Karena memperlambat kecepatan penuh sistem waktu simulasi kita Hasil hadir untuk 1 miliar petunjuk Instruksi kami Jendela dipilih sedemikian rupa sehingga di bawah 5 dari total DTLB misses yang merindukan dingin Secara historis studi TLB [2 3] fokus pada tingkat penghapusan rindu daripada kinerja karena tidak layak untuk menjalankan aplikasi dengan panjang cukup jangka waktu pada waktu simulator untuk memberikan praktis angka-angka kinerja runtime Kami melampaui sebelumnya bekerja dan menyelidiki kinerja (selain rindu eliminasi) dengan hati-hati mempertimbangkan TLB rindu penanganan strategi dan analitis pemodelan manfaat kami tepat

412 Benchmark Paralel dan Set Masukan

Kami menggunakan benchmark parsec suite nextgeneration program bersama-memori untuk CMPS [5] Meja 3 daftar beban kerja yang digunakan dalam penelitian ini Dari 3 beban kerja yang tersedia kita dapat mengkompilasi 9 terdaftar untuk simulator1 kami The beban kerja menggunakan beragam paralelisasi strategi (terstruktur data-paralel dan pipa-paralel) dan dijalankan dengan benang ditempelkan ke masing-masing inti CMP Sejak TLB misses lebih jarang terjadi dari cache misses kami menggunakan data input yang tersedia terbesar mengatur layak untuk simulasi Simlarge ditetapkan

Gambar 4 D-TLB merindukan per juta instruksi (MMI)

untuk beban kerja CPU2006 SPEC digunakan dalam makalah ini Beban kerja menunjukkan tingkat kehilangan beragam dengan mcf dan cactusADM menunjukkan MMIs sangat tinggi

Gambar 3 menyajikan beban kerja D-TLB merindukan per uta instruksi (MMIs) Seperti yang diharapkan benchmark seperti Canneal dan Ferret yang memiliki kerja besar set lihat MMIs tinggi Menariknya Blackscholes melihat MMI tertinggi karena pola aksesnya meskipun ukuran set kerja yang relatif sederhana Ini nomor MMI menyajikan dasar yang berguna untuk lebih memahami kami Hasil berikutnya

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 5: jurnal orkom.docx

diakses oleh satu inti yang tersedia untuk orang lain Gambar 1 menunjukkan SLL TLB yang berada di lokasi pusat diakses oleh semua core Sementara ini terpusat Pendekatan adalah implementasi mungkin kita membahas ini dan isu-isu implementasi lainnya di Bagian 33 SLL TLBs menikmati dua manfaat orthogonal Pertama mereka mengeksploitasi berbagi antar-inti dalam program paralel Secara khusus inti ini TLB rindu membawa masuk ke SLL TLB sehingga L2 berikutnya merindukan pada entri yang sama dari core lainnya dieliminasi Kedua bahkan untuk unshared meleset SLL TLBs lebih fleksibel mengenai di mana entri dapat ditempatkan TLB hit timbul dari ini bantuan fleksibilitas baik paralel dan sekuensial beban kerja

32 Algoritma

Gambar 1 rincian SLL meleset dan hits di dua contoh kasus masing-masing Sementara kasus ini diberi nomor tidak ada pemesanan tersirat di antara mereka Kami rinci kasus di bawah ini

Kasus 1 Gambar 1 berikut merupakan L1 TLB dan SLL TLB miss Pertama ada L1 TLB miss (langkah 1a) Sebagai tanggapan pesan dikirim ke SLL TLB Setelah Akses latency kita menderita kehilangan SLL (langkah 1b) The tabel halaman kemudian berjalan dan terjemahan yang tepat dimasukkan ke kedua SLL dan L1 TLB Dengan memasukkan yang masuk ke SLL TLB (langkah 1c) masa depan merindukan pada entry ini dihindari oleh kedua inti memulai serta sebagai core lainnya

Kasus 2 Sekarang kita menggambarkan langkah-langkah yang terlibat dalam SLL TLB hit Pertama L1 TLB melihat miss (langkah 2a) dan pesan dikirim ke SLL TLB Sekarang anggaplah ada hit SLL TLB (langkah 2b) Sebagai rinci sebelumnya ada dua kemungkinan penyebab hit ini Pertama Saat inti hilang mungkin sebelumnya membawa ini masuk ke SLL TLB Bergantian entri mungkin inter-core bersama dan inti lain sebelumnya mungkin memiliki diambil ke dalam SLL TLB Apapun alasannya hit SLL TLB menghindari tabel halaman berjalan Sebaliknya entri yang sama kini dimasukkan ke dalam L1 TLB (langkah 2c) di harapan bahwa masa depan akses ke entri ini akan jadi hits L1

33 Pilihan Implementasi

Setelah rinci operasi dasar SLL TLBs kami sekarang membahas beberapa atribut pelaksanaan kunci TLB Entries SLL TLB entri menyimpan informasi identik dengan L1 TLB Setiap entri menyimpan sedikit valid entri terjemahan dan penggantian bit kebijakan Kita juga menyimpan konteks penuh atau ID proses dengan masing-masing entri Kurang hardware bisa digunakan dengan lebih sedikit bit tapi SLL kami TLB kecil membuat optimasi seperti tidak perlu Kebijakan Penggantian Untuk meningkatkan berbagi antar-core dalam program paralel L1 dan SLL TLBs perlu inklusif Namun seperti cache bertingkat menjamin inklusi ketat memerlukan koordinasi yang erat antara L1 dan L2 SLL TLB pengendali dan penggantian logika [9] Sebaliknya kita menggunakan pendekatan yang diambil oleh x86 cache [9] dan menerapkan hirarki TLB multilevel yang sebagian besar-inklusif Di sini sementara entri ditempatkan ke kedua L1 dan SLL TLB pada miss masing-masing TLB diperbolehkan untuk membuat keputusan penggantian independen membutuhkan hardware jauh lebih sederhana Selanjutnya prosesor vendor telah mencatat bahwa sementara pendekatan ini tidak tidak menjamin inklusi ketat itu mencapai hampir sempurna inklusi dalam praktek Misalnya dalam aplikasi kami kita menemukan bahwa di atas 97 dari semua entri L1 TLB hadir di SLL TLB

Konsistensi TLBs SLL kami dirancang untuk menjadi shootdown-sadar Setiap kali kebutuhan entri terjemahan akan batal baik SLL dan L1 TLBs harus diperiksa untuk kehadiran entri ini Memiliki SLL kami TLB menjadi ketat termasuk L1 TLBs ini akan tidak diperlukan dalam kasus kehilangan SLL Namun sejak dua tingkat TLB kami sebagian besar termasuk adalah mungkin untuk masuk ke absen dari SLL TLB tapi hadir di L1 TLBs Oleh karena itu sebuah shootdown membutuhkan pemeriksaan dalam semua TLBs sistem Meskipun demikian shootdowns yang langka dan hardware sederhana diberikan oleh kebijakan sebagian besar-inclusive membuatnya sesuai untuk Pendekatan yang diusulkan kami Penempatan Di sini kita asumsikan terpadu terpusat SLL TLB berjarak sama dari semua core Ini layak untuk ukuran saat SLL TLBs kita mempelajari (512 entri seperti yang dijelaskan dalam Bagian 4) yang menikmati kali hit singkat (2 siklus untuk teknologi 45nm dari CACTI percobaan [19]) Jika TLBs SLL masa depan yang jauh lebih besar dan memerlukan lagi hit kali mereka dapat didistribusikan sama untuk NUCA cache [16] Seperti cache media komunikasi yang ada antara core dan SLL TLB (misalnya on-chip jaringan atau bus) Oleh karena itu SLL latency jemput terdiri dari traversal jaringan dan SLL TLB waktu akses Mengingat latency akses singkat dari 2 siklus waktu jaringan traversal mendominasi Kami berasumsi kali jaringan traversal dari 20 siklus mirip dengan [4] Meskipun hal ini berarti bahwa 22 siklus Total dihabiskan untuk SLL TLB hit kami akan menunjukkan bahwa ini masih sangat meningkatkan kinerja dengan menghilangkan halaman meja berjalan yang bisa mengambil ratusan siklus [12 13] Teknik yang mengurangi latency komunikasi ini akan hanya memperkuat manfaat SLL TLB Akhirnya karena SLL TLB terpusat dibagi di antara semua core akan membutuhkan waktu akses lebih lama dari swasta L2 TLBs Berdasarkan simulasi CACTI di 45nm memindai swasta L2 TLB membutuhkan jumlah yang sama waktu sebagai SLL TLB (2 siklus) Namun karena swasta L2 TLBs tidak perlu terpusat di antara core mereka memiliki waktu komunikasi yang lebih pendek dengan 6 siklus Kebijakan akses Sementara L1 TLBs menangani hanya satu permintaan pada suatu waktu dan memblokir SLL TLBs bisa berpotensi dirancang untuk melayani beberapa permintaan bersama-sama Ini bagaimanapun mempersulit baik hardware dan bagaimana OS menangani tabel halaman berjalan desain kami karena itu mengasumsikan memblokir SLL TLBs Namun demikian nonblocking SLL TLBs kemungkinan akan memberikan lebih kinerja manfaat

34 SLL TLBs dengan Simple Stride Prefetching

Dalam beberapa percobaan kami kami juga mempertimbangkan augmenting TLBs SLL dengan ekstensi prefetching sederhana Sejumlah studi sebelumnya telah menunjukkan bahwa karena berskala lokalitas spasial dalam pola akses memori TLBs sering menunjukkan langkah diprediksi di Diakses maya halaman Langkah ini terjadi pada memori akses sungai dari satu inti [15] serta antara beberapa beberapa core [3 4] Sementara prefetchers canggih memiliki telah diusulkan untuk mengeksploitasi ini pekerjaan ini mengeksplorasi gelar yang sederhana berbasis langkahnya prefetching ditambahkan ke baseline SLL TLB dapat memberikan manfaat Secara khusus pada miss TLB kita memasukkan terjemahan diminta menjadi entri prefetch SLL TLB dan juga untuk halaman maya berturut-turut dengan yang sekarang Gambar 2 menggambarkan SLL TLBs dengan prefetching terintegrasi

Langkah 1 Pertama kita asumsikan bahwa miss TLB telah terjadi baik di L1 dan L2 SLL TLBs Setelah berjalan tabel halaman untuk menemukan terjemahan yang sesuai dengan terjawab halaman virtual (halaman 0 dalam contoh ini) yang sesuai entri ditempatkan ke dalam L1 TLB

Langkah 2 Setelah diisi ulang entri L1 TLB dalam pertama langkah kita sekarang mengisi entri yang sama ke dalam SLL TLB Berikutnya prefetching diaktifkan Untuk menangkap potensi intra-core dan langkah antar-core kita entri sekarang prefetch untuk virtual halaman berturut-turut untuk satu hanya merindukan saat The jumlah dan khususnya langkah dari entri PREFETCHED adalah pilihan desain yang bagian berikutnya akan membahas

Dalam contoh ini halaman virtual 0 telah terjawab pada sehingga kami memilih untuk juga terjemahan prefetch untuk halaman 1 2 dan 3

Langkah 3 Misalkan inti yang 1 permintaan terjemahan untuk halaman virtual 1 karena memiliki langkah antar-inti

1 halaman dari inti 0 Dengan asumsi bahwa kita kehilangan di L1 TLB kita memindai entri dalam struktur SLL TLB Untungnya karena langkah prefetching kami menemukan bahwa entri sudah ada di SLL TLB Mahal tabel halaman berjalan dihilangkan dan semua yang tersisa adalah untuk entri yang akan diisi ulang ke dalam L1 TLB juga Hal ini penting untuk memastikan bahwa prefetches ini tidak menambah overhead dengan mengharuskan tabel halaman ekstra berjalan Menghindari ini kami mengusulkan pendekatan penanganan kuda-kudaan sederhana Ketika TLB miss dan halaman yang sesuai tabel berjalan terjadi kami akhirnya menemukan terjemahan yang diinginkan Sekarang terjemahan ini baik yang sudah berada dalam cache atau dibawa ke cache dari memori utama Karena ukuran baris cache yang lebih besar dari entri terjemahan satu line akan mempertahankan beberapa entri terjemahan Untuk baris cache 64-byte kami (lihat Bagian 4) entri untuk maya halaman 1 2 dan 3 halaman jauh juga akan berada di baris yang sama Oleh karena itu kami prefetch entri ini ke dalam SLL TLB tanpa persyaratan tambahan halaman berjalan Selain itu kami mengizinkan hanya prefetches non-faulting

4 Metodologi

Untuk mengukur manfaat SLL TLBs kita fokus pada dua set yang berbeda dari evaluasi Pertama kita menunjukkan bagaimana paralel program manfaat dari SLL TLBs Kami kemudian juga mengevaluasi beban kerja di mana aplikasi yang berbeda berurutan berjalan pada setiap inti Bagian ini menjelaskan setiap metodologi pada gilirannya Sementara SLL TLBs menguntungkan kedua I-TLBs dan D-TLBs Penelitian ini berfokus pada D-TLBs karena jauh mereka dampak yang lebih besar pada kinerja sistem [3 24] Pendekatan kami akan tetapi mengurangi I-TLB merindukan juga

41 Aplikasi Paralel

Infrastruktur 411

Simulasi Kami belajar TLBs SLL dengan program paralel menggunakan Multifacet GEMS simulator [18] dari Tabel 1 Kami simulator menggunakan Virtutech Simics [30] sebagai yang fungsional Model untuk mensimulasikan 4-core dan 16-core CMPS berdasarkan Sun UltraSPARC III Cu dengan arsitektur Sunfire ini MMU [27] Seperti ditunjukkan ini menggunakan dua L1 TLBs yang mendongak bersamaan OS ini menggunakan 16-entry fullyassociative struktur terutama untuk mengunci halaman Kedua 64-entri TLB digunakan untuk terjemahan terkunci L1 kami Ukuran TLB sesuai dengan studi ICC prefetcher dari [4] Selanjutnya ukuran ini sama dengan L1 TLBs dari prosesor kontemporer seperti Intel i7 (64-entry) dan AMD K10 (48-entry) Untuk

menilai manfaat SLL TLBs kita membandingkan mereka terhadap kedua per-core swasta L2 TLBs danPrefetchers ICC (termasuk Pemimpin-Follower dan Jarak jauh lintas-Core prefetching) dengan sama Total hardware Kami pertama kali membandingkan TLBs SLL kita terhadap prefetchers ICC dari [4] yang menganggap 4-core CMP dengan konfigurasi rinci pada Tabel 2 Sebagai ditampilkan berdasarkan konfigurasi ini sama-sama berukuran SLL TLB membutuhkan 512 entri Hal ini pada gilirannya berarti bahwa untuk 4-core CMP kita membandingkan SLL TLBs ke L2 pribadi TLBs dari 128 entri Akhirnya TLB akses kali ditugaskan dari CACTI [19] dengan asumsi node 45nm Ini hukuman termasuk waktu untuk melintasi jaringan on-chip serta waktu untuk memindai array TLB Kami menemukan bahwa TLB memindai kali untuk kedua pendekatan tetap sama (2 siklus) Namun sejak TLBs L2 pribadi ditempatkan lebih dekat ke inti dari L2 SLL TLB mereka memiliki traversal jaringan lebih cepat (dengan 6 siklus) Setelah membandingkan manfaat SLL TLBs dengan ICC prefetchers dan swasta per-core TLBs L2 pada 4-core CMP kita mempelajari dampak dari jumlah inti pada SLL TLBs Untuk percobaan ini kita model 16-core CMP sebagai

ditunjukkan pada Tabel 2 Dalam rangka cukup membandingkan 16-core CMP dengan swasta per-core TLBs dari 128 entri kita model 2048 SLL TLB untuk studi ini Karena memperlambat kecepatan penuh sistem waktu simulasi kita Hasil hadir untuk 1 miliar petunjuk Instruksi kami Jendela dipilih sedemikian rupa sehingga di bawah 5 dari total DTLB misses yang merindukan dingin Secara historis studi TLB [2 3] fokus pada tingkat penghapusan rindu daripada kinerja karena tidak layak untuk menjalankan aplikasi dengan panjang cukup jangka waktu pada waktu simulator untuk memberikan praktis angka-angka kinerja runtime Kami melampaui sebelumnya bekerja dan menyelidiki kinerja (selain rindu eliminasi) dengan hati-hati mempertimbangkan TLB rindu penanganan strategi dan analitis pemodelan manfaat kami tepat

412 Benchmark Paralel dan Set Masukan

Kami menggunakan benchmark parsec suite nextgeneration program bersama-memori untuk CMPS [5] Meja 3 daftar beban kerja yang digunakan dalam penelitian ini Dari 3 beban kerja yang tersedia kita dapat mengkompilasi 9 terdaftar untuk simulator1 kami The beban kerja menggunakan beragam paralelisasi strategi (terstruktur data-paralel dan pipa-paralel) dan dijalankan dengan benang ditempelkan ke masing-masing inti CMP Sejak TLB misses lebih jarang terjadi dari cache misses kami menggunakan data input yang tersedia terbesar mengatur layak untuk simulasi Simlarge ditetapkan

Gambar 4 D-TLB merindukan per juta instruksi (MMI)

untuk beban kerja CPU2006 SPEC digunakan dalam makalah ini Beban kerja menunjukkan tingkat kehilangan beragam dengan mcf dan cactusADM menunjukkan MMIs sangat tinggi

Gambar 3 menyajikan beban kerja D-TLB merindukan per uta instruksi (MMIs) Seperti yang diharapkan benchmark seperti Canneal dan Ferret yang memiliki kerja besar set lihat MMIs tinggi Menariknya Blackscholes melihat MMI tertinggi karena pola aksesnya meskipun ukuran set kerja yang relatif sederhana Ini nomor MMI menyajikan dasar yang berguna untuk lebih memahami kami Hasil berikutnya

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 6: jurnal orkom.docx

Konsistensi TLBs SLL kami dirancang untuk menjadi shootdown-sadar Setiap kali kebutuhan entri terjemahan akan batal baik SLL dan L1 TLBs harus diperiksa untuk kehadiran entri ini Memiliki SLL kami TLB menjadi ketat termasuk L1 TLBs ini akan tidak diperlukan dalam kasus kehilangan SLL Namun sejak dua tingkat TLB kami sebagian besar termasuk adalah mungkin untuk masuk ke absen dari SLL TLB tapi hadir di L1 TLBs Oleh karena itu sebuah shootdown membutuhkan pemeriksaan dalam semua TLBs sistem Meskipun demikian shootdowns yang langka dan hardware sederhana diberikan oleh kebijakan sebagian besar-inclusive membuatnya sesuai untuk Pendekatan yang diusulkan kami Penempatan Di sini kita asumsikan terpadu terpusat SLL TLB berjarak sama dari semua core Ini layak untuk ukuran saat SLL TLBs kita mempelajari (512 entri seperti yang dijelaskan dalam Bagian 4) yang menikmati kali hit singkat (2 siklus untuk teknologi 45nm dari CACTI percobaan [19]) Jika TLBs SLL masa depan yang jauh lebih besar dan memerlukan lagi hit kali mereka dapat didistribusikan sama untuk NUCA cache [16] Seperti cache media komunikasi yang ada antara core dan SLL TLB (misalnya on-chip jaringan atau bus) Oleh karena itu SLL latency jemput terdiri dari traversal jaringan dan SLL TLB waktu akses Mengingat latency akses singkat dari 2 siklus waktu jaringan traversal mendominasi Kami berasumsi kali jaringan traversal dari 20 siklus mirip dengan [4] Meskipun hal ini berarti bahwa 22 siklus Total dihabiskan untuk SLL TLB hit kami akan menunjukkan bahwa ini masih sangat meningkatkan kinerja dengan menghilangkan halaman meja berjalan yang bisa mengambil ratusan siklus [12 13] Teknik yang mengurangi latency komunikasi ini akan hanya memperkuat manfaat SLL TLB Akhirnya karena SLL TLB terpusat dibagi di antara semua core akan membutuhkan waktu akses lebih lama dari swasta L2 TLBs Berdasarkan simulasi CACTI di 45nm memindai swasta L2 TLB membutuhkan jumlah yang sama waktu sebagai SLL TLB (2 siklus) Namun karena swasta L2 TLBs tidak perlu terpusat di antara core mereka memiliki waktu komunikasi yang lebih pendek dengan 6 siklus Kebijakan akses Sementara L1 TLBs menangani hanya satu permintaan pada suatu waktu dan memblokir SLL TLBs bisa berpotensi dirancang untuk melayani beberapa permintaan bersama-sama Ini bagaimanapun mempersulit baik hardware dan bagaimana OS menangani tabel halaman berjalan desain kami karena itu mengasumsikan memblokir SLL TLBs Namun demikian nonblocking SLL TLBs kemungkinan akan memberikan lebih kinerja manfaat

34 SLL TLBs dengan Simple Stride Prefetching

Dalam beberapa percobaan kami kami juga mempertimbangkan augmenting TLBs SLL dengan ekstensi prefetching sederhana Sejumlah studi sebelumnya telah menunjukkan bahwa karena berskala lokalitas spasial dalam pola akses memori TLBs sering menunjukkan langkah diprediksi di Diakses maya halaman Langkah ini terjadi pada memori akses sungai dari satu inti [15] serta antara beberapa beberapa core [3 4] Sementara prefetchers canggih memiliki telah diusulkan untuk mengeksploitasi ini pekerjaan ini mengeksplorasi gelar yang sederhana berbasis langkahnya prefetching ditambahkan ke baseline SLL TLB dapat memberikan manfaat Secara khusus pada miss TLB kita memasukkan terjemahan diminta menjadi entri prefetch SLL TLB dan juga untuk halaman maya berturut-turut dengan yang sekarang Gambar 2 menggambarkan SLL TLBs dengan prefetching terintegrasi

Langkah 1 Pertama kita asumsikan bahwa miss TLB telah terjadi baik di L1 dan L2 SLL TLBs Setelah berjalan tabel halaman untuk menemukan terjemahan yang sesuai dengan terjawab halaman virtual (halaman 0 dalam contoh ini) yang sesuai entri ditempatkan ke dalam L1 TLB

Langkah 2 Setelah diisi ulang entri L1 TLB dalam pertama langkah kita sekarang mengisi entri yang sama ke dalam SLL TLB Berikutnya prefetching diaktifkan Untuk menangkap potensi intra-core dan langkah antar-core kita entri sekarang prefetch untuk virtual halaman berturut-turut untuk satu hanya merindukan saat The jumlah dan khususnya langkah dari entri PREFETCHED adalah pilihan desain yang bagian berikutnya akan membahas

Dalam contoh ini halaman virtual 0 telah terjawab pada sehingga kami memilih untuk juga terjemahan prefetch untuk halaman 1 2 dan 3

Langkah 3 Misalkan inti yang 1 permintaan terjemahan untuk halaman virtual 1 karena memiliki langkah antar-inti

1 halaman dari inti 0 Dengan asumsi bahwa kita kehilangan di L1 TLB kita memindai entri dalam struktur SLL TLB Untungnya karena langkah prefetching kami menemukan bahwa entri sudah ada di SLL TLB Mahal tabel halaman berjalan dihilangkan dan semua yang tersisa adalah untuk entri yang akan diisi ulang ke dalam L1 TLB juga Hal ini penting untuk memastikan bahwa prefetches ini tidak menambah overhead dengan mengharuskan tabel halaman ekstra berjalan Menghindari ini kami mengusulkan pendekatan penanganan kuda-kudaan sederhana Ketika TLB miss dan halaman yang sesuai tabel berjalan terjadi kami akhirnya menemukan terjemahan yang diinginkan Sekarang terjemahan ini baik yang sudah berada dalam cache atau dibawa ke cache dari memori utama Karena ukuran baris cache yang lebih besar dari entri terjemahan satu line akan mempertahankan beberapa entri terjemahan Untuk baris cache 64-byte kami (lihat Bagian 4) entri untuk maya halaman 1 2 dan 3 halaman jauh juga akan berada di baris yang sama Oleh karena itu kami prefetch entri ini ke dalam SLL TLB tanpa persyaratan tambahan halaman berjalan Selain itu kami mengizinkan hanya prefetches non-faulting

4 Metodologi

Untuk mengukur manfaat SLL TLBs kita fokus pada dua set yang berbeda dari evaluasi Pertama kita menunjukkan bagaimana paralel program manfaat dari SLL TLBs Kami kemudian juga mengevaluasi beban kerja di mana aplikasi yang berbeda berurutan berjalan pada setiap inti Bagian ini menjelaskan setiap metodologi pada gilirannya Sementara SLL TLBs menguntungkan kedua I-TLBs dan D-TLBs Penelitian ini berfokus pada D-TLBs karena jauh mereka dampak yang lebih besar pada kinerja sistem [3 24] Pendekatan kami akan tetapi mengurangi I-TLB merindukan juga

41 Aplikasi Paralel

Infrastruktur 411

Simulasi Kami belajar TLBs SLL dengan program paralel menggunakan Multifacet GEMS simulator [18] dari Tabel 1 Kami simulator menggunakan Virtutech Simics [30] sebagai yang fungsional Model untuk mensimulasikan 4-core dan 16-core CMPS berdasarkan Sun UltraSPARC III Cu dengan arsitektur Sunfire ini MMU [27] Seperti ditunjukkan ini menggunakan dua L1 TLBs yang mendongak bersamaan OS ini menggunakan 16-entry fullyassociative struktur terutama untuk mengunci halaman Kedua 64-entri TLB digunakan untuk terjemahan terkunci L1 kami Ukuran TLB sesuai dengan studi ICC prefetcher dari [4] Selanjutnya ukuran ini sama dengan L1 TLBs dari prosesor kontemporer seperti Intel i7 (64-entry) dan AMD K10 (48-entry) Untuk

menilai manfaat SLL TLBs kita membandingkan mereka terhadap kedua per-core swasta L2 TLBs danPrefetchers ICC (termasuk Pemimpin-Follower dan Jarak jauh lintas-Core prefetching) dengan sama Total hardware Kami pertama kali membandingkan TLBs SLL kita terhadap prefetchers ICC dari [4] yang menganggap 4-core CMP dengan konfigurasi rinci pada Tabel 2 Sebagai ditampilkan berdasarkan konfigurasi ini sama-sama berukuran SLL TLB membutuhkan 512 entri Hal ini pada gilirannya berarti bahwa untuk 4-core CMP kita membandingkan SLL TLBs ke L2 pribadi TLBs dari 128 entri Akhirnya TLB akses kali ditugaskan dari CACTI [19] dengan asumsi node 45nm Ini hukuman termasuk waktu untuk melintasi jaringan on-chip serta waktu untuk memindai array TLB Kami menemukan bahwa TLB memindai kali untuk kedua pendekatan tetap sama (2 siklus) Namun sejak TLBs L2 pribadi ditempatkan lebih dekat ke inti dari L2 SLL TLB mereka memiliki traversal jaringan lebih cepat (dengan 6 siklus) Setelah membandingkan manfaat SLL TLBs dengan ICC prefetchers dan swasta per-core TLBs L2 pada 4-core CMP kita mempelajari dampak dari jumlah inti pada SLL TLBs Untuk percobaan ini kita model 16-core CMP sebagai

ditunjukkan pada Tabel 2 Dalam rangka cukup membandingkan 16-core CMP dengan swasta per-core TLBs dari 128 entri kita model 2048 SLL TLB untuk studi ini Karena memperlambat kecepatan penuh sistem waktu simulasi kita Hasil hadir untuk 1 miliar petunjuk Instruksi kami Jendela dipilih sedemikian rupa sehingga di bawah 5 dari total DTLB misses yang merindukan dingin Secara historis studi TLB [2 3] fokus pada tingkat penghapusan rindu daripada kinerja karena tidak layak untuk menjalankan aplikasi dengan panjang cukup jangka waktu pada waktu simulator untuk memberikan praktis angka-angka kinerja runtime Kami melampaui sebelumnya bekerja dan menyelidiki kinerja (selain rindu eliminasi) dengan hati-hati mempertimbangkan TLB rindu penanganan strategi dan analitis pemodelan manfaat kami tepat

412 Benchmark Paralel dan Set Masukan

Kami menggunakan benchmark parsec suite nextgeneration program bersama-memori untuk CMPS [5] Meja 3 daftar beban kerja yang digunakan dalam penelitian ini Dari 3 beban kerja yang tersedia kita dapat mengkompilasi 9 terdaftar untuk simulator1 kami The beban kerja menggunakan beragam paralelisasi strategi (terstruktur data-paralel dan pipa-paralel) dan dijalankan dengan benang ditempelkan ke masing-masing inti CMP Sejak TLB misses lebih jarang terjadi dari cache misses kami menggunakan data input yang tersedia terbesar mengatur layak untuk simulasi Simlarge ditetapkan

Gambar 4 D-TLB merindukan per juta instruksi (MMI)

untuk beban kerja CPU2006 SPEC digunakan dalam makalah ini Beban kerja menunjukkan tingkat kehilangan beragam dengan mcf dan cactusADM menunjukkan MMIs sangat tinggi

Gambar 3 menyajikan beban kerja D-TLB merindukan per uta instruksi (MMIs) Seperti yang diharapkan benchmark seperti Canneal dan Ferret yang memiliki kerja besar set lihat MMIs tinggi Menariknya Blackscholes melihat MMI tertinggi karena pola aksesnya meskipun ukuran set kerja yang relatif sederhana Ini nomor MMI menyajikan dasar yang berguna untuk lebih memahami kami Hasil berikutnya

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 7: jurnal orkom.docx

Langkah 2 Setelah diisi ulang entri L1 TLB dalam pertama langkah kita sekarang mengisi entri yang sama ke dalam SLL TLB Berikutnya prefetching diaktifkan Untuk menangkap potensi intra-core dan langkah antar-core kita entri sekarang prefetch untuk virtual halaman berturut-turut untuk satu hanya merindukan saat The jumlah dan khususnya langkah dari entri PREFETCHED adalah pilihan desain yang bagian berikutnya akan membahas

Dalam contoh ini halaman virtual 0 telah terjawab pada sehingga kami memilih untuk juga terjemahan prefetch untuk halaman 1 2 dan 3

Langkah 3 Misalkan inti yang 1 permintaan terjemahan untuk halaman virtual 1 karena memiliki langkah antar-inti

1 halaman dari inti 0 Dengan asumsi bahwa kita kehilangan di L1 TLB kita memindai entri dalam struktur SLL TLB Untungnya karena langkah prefetching kami menemukan bahwa entri sudah ada di SLL TLB Mahal tabel halaman berjalan dihilangkan dan semua yang tersisa adalah untuk entri yang akan diisi ulang ke dalam L1 TLB juga Hal ini penting untuk memastikan bahwa prefetches ini tidak menambah overhead dengan mengharuskan tabel halaman ekstra berjalan Menghindari ini kami mengusulkan pendekatan penanganan kuda-kudaan sederhana Ketika TLB miss dan halaman yang sesuai tabel berjalan terjadi kami akhirnya menemukan terjemahan yang diinginkan Sekarang terjemahan ini baik yang sudah berada dalam cache atau dibawa ke cache dari memori utama Karena ukuran baris cache yang lebih besar dari entri terjemahan satu line akan mempertahankan beberapa entri terjemahan Untuk baris cache 64-byte kami (lihat Bagian 4) entri untuk maya halaman 1 2 dan 3 halaman jauh juga akan berada di baris yang sama Oleh karena itu kami prefetch entri ini ke dalam SLL TLB tanpa persyaratan tambahan halaman berjalan Selain itu kami mengizinkan hanya prefetches non-faulting

4 Metodologi

Untuk mengukur manfaat SLL TLBs kita fokus pada dua set yang berbeda dari evaluasi Pertama kita menunjukkan bagaimana paralel program manfaat dari SLL TLBs Kami kemudian juga mengevaluasi beban kerja di mana aplikasi yang berbeda berurutan berjalan pada setiap inti Bagian ini menjelaskan setiap metodologi pada gilirannya Sementara SLL TLBs menguntungkan kedua I-TLBs dan D-TLBs Penelitian ini berfokus pada D-TLBs karena jauh mereka dampak yang lebih besar pada kinerja sistem [3 24] Pendekatan kami akan tetapi mengurangi I-TLB merindukan juga

41 Aplikasi Paralel

Infrastruktur 411

Simulasi Kami belajar TLBs SLL dengan program paralel menggunakan Multifacet GEMS simulator [18] dari Tabel 1 Kami simulator menggunakan Virtutech Simics [30] sebagai yang fungsional Model untuk mensimulasikan 4-core dan 16-core CMPS berdasarkan Sun UltraSPARC III Cu dengan arsitektur Sunfire ini MMU [27] Seperti ditunjukkan ini menggunakan dua L1 TLBs yang mendongak bersamaan OS ini menggunakan 16-entry fullyassociative struktur terutama untuk mengunci halaman Kedua 64-entri TLB digunakan untuk terjemahan terkunci L1 kami Ukuran TLB sesuai dengan studi ICC prefetcher dari [4] Selanjutnya ukuran ini sama dengan L1 TLBs dari prosesor kontemporer seperti Intel i7 (64-entry) dan AMD K10 (48-entry) Untuk

menilai manfaat SLL TLBs kita membandingkan mereka terhadap kedua per-core swasta L2 TLBs danPrefetchers ICC (termasuk Pemimpin-Follower dan Jarak jauh lintas-Core prefetching) dengan sama Total hardware Kami pertama kali membandingkan TLBs SLL kita terhadap prefetchers ICC dari [4] yang menganggap 4-core CMP dengan konfigurasi rinci pada Tabel 2 Sebagai ditampilkan berdasarkan konfigurasi ini sama-sama berukuran SLL TLB membutuhkan 512 entri Hal ini pada gilirannya berarti bahwa untuk 4-core CMP kita membandingkan SLL TLBs ke L2 pribadi TLBs dari 128 entri Akhirnya TLB akses kali ditugaskan dari CACTI [19] dengan asumsi node 45nm Ini hukuman termasuk waktu untuk melintasi jaringan on-chip serta waktu untuk memindai array TLB Kami menemukan bahwa TLB memindai kali untuk kedua pendekatan tetap sama (2 siklus) Namun sejak TLBs L2 pribadi ditempatkan lebih dekat ke inti dari L2 SLL TLB mereka memiliki traversal jaringan lebih cepat (dengan 6 siklus) Setelah membandingkan manfaat SLL TLBs dengan ICC prefetchers dan swasta per-core TLBs L2 pada 4-core CMP kita mempelajari dampak dari jumlah inti pada SLL TLBs Untuk percobaan ini kita model 16-core CMP sebagai

ditunjukkan pada Tabel 2 Dalam rangka cukup membandingkan 16-core CMP dengan swasta per-core TLBs dari 128 entri kita model 2048 SLL TLB untuk studi ini Karena memperlambat kecepatan penuh sistem waktu simulasi kita Hasil hadir untuk 1 miliar petunjuk Instruksi kami Jendela dipilih sedemikian rupa sehingga di bawah 5 dari total DTLB misses yang merindukan dingin Secara historis studi TLB [2 3] fokus pada tingkat penghapusan rindu daripada kinerja karena tidak layak untuk menjalankan aplikasi dengan panjang cukup jangka waktu pada waktu simulator untuk memberikan praktis angka-angka kinerja runtime Kami melampaui sebelumnya bekerja dan menyelidiki kinerja (selain rindu eliminasi) dengan hati-hati mempertimbangkan TLB rindu penanganan strategi dan analitis pemodelan manfaat kami tepat

412 Benchmark Paralel dan Set Masukan

Kami menggunakan benchmark parsec suite nextgeneration program bersama-memori untuk CMPS [5] Meja 3 daftar beban kerja yang digunakan dalam penelitian ini Dari 3 beban kerja yang tersedia kita dapat mengkompilasi 9 terdaftar untuk simulator1 kami The beban kerja menggunakan beragam paralelisasi strategi (terstruktur data-paralel dan pipa-paralel) dan dijalankan dengan benang ditempelkan ke masing-masing inti CMP Sejak TLB misses lebih jarang terjadi dari cache misses kami menggunakan data input yang tersedia terbesar mengatur layak untuk simulasi Simlarge ditetapkan

Gambar 4 D-TLB merindukan per juta instruksi (MMI)

untuk beban kerja CPU2006 SPEC digunakan dalam makalah ini Beban kerja menunjukkan tingkat kehilangan beragam dengan mcf dan cactusADM menunjukkan MMIs sangat tinggi

Gambar 3 menyajikan beban kerja D-TLB merindukan per uta instruksi (MMIs) Seperti yang diharapkan benchmark seperti Canneal dan Ferret yang memiliki kerja besar set lihat MMIs tinggi Menariknya Blackscholes melihat MMI tertinggi karena pola aksesnya meskipun ukuran set kerja yang relatif sederhana Ini nomor MMI menyajikan dasar yang berguna untuk lebih memahami kami Hasil berikutnya

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 8: jurnal orkom.docx

menilai manfaat SLL TLBs kita membandingkan mereka terhadap kedua per-core swasta L2 TLBs danPrefetchers ICC (termasuk Pemimpin-Follower dan Jarak jauh lintas-Core prefetching) dengan sama Total hardware Kami pertama kali membandingkan TLBs SLL kita terhadap prefetchers ICC dari [4] yang menganggap 4-core CMP dengan konfigurasi rinci pada Tabel 2 Sebagai ditampilkan berdasarkan konfigurasi ini sama-sama berukuran SLL TLB membutuhkan 512 entri Hal ini pada gilirannya berarti bahwa untuk 4-core CMP kita membandingkan SLL TLBs ke L2 pribadi TLBs dari 128 entri Akhirnya TLB akses kali ditugaskan dari CACTI [19] dengan asumsi node 45nm Ini hukuman termasuk waktu untuk melintasi jaringan on-chip serta waktu untuk memindai array TLB Kami menemukan bahwa TLB memindai kali untuk kedua pendekatan tetap sama (2 siklus) Namun sejak TLBs L2 pribadi ditempatkan lebih dekat ke inti dari L2 SLL TLB mereka memiliki traversal jaringan lebih cepat (dengan 6 siklus) Setelah membandingkan manfaat SLL TLBs dengan ICC prefetchers dan swasta per-core TLBs L2 pada 4-core CMP kita mempelajari dampak dari jumlah inti pada SLL TLBs Untuk percobaan ini kita model 16-core CMP sebagai

ditunjukkan pada Tabel 2 Dalam rangka cukup membandingkan 16-core CMP dengan swasta per-core TLBs dari 128 entri kita model 2048 SLL TLB untuk studi ini Karena memperlambat kecepatan penuh sistem waktu simulasi kita Hasil hadir untuk 1 miliar petunjuk Instruksi kami Jendela dipilih sedemikian rupa sehingga di bawah 5 dari total DTLB misses yang merindukan dingin Secara historis studi TLB [2 3] fokus pada tingkat penghapusan rindu daripada kinerja karena tidak layak untuk menjalankan aplikasi dengan panjang cukup jangka waktu pada waktu simulator untuk memberikan praktis angka-angka kinerja runtime Kami melampaui sebelumnya bekerja dan menyelidiki kinerja (selain rindu eliminasi) dengan hati-hati mempertimbangkan TLB rindu penanganan strategi dan analitis pemodelan manfaat kami tepat

412 Benchmark Paralel dan Set Masukan

Kami menggunakan benchmark parsec suite nextgeneration program bersama-memori untuk CMPS [5] Meja 3 daftar beban kerja yang digunakan dalam penelitian ini Dari 3 beban kerja yang tersedia kita dapat mengkompilasi 9 terdaftar untuk simulator1 kami The beban kerja menggunakan beragam paralelisasi strategi (terstruktur data-paralel dan pipa-paralel) dan dijalankan dengan benang ditempelkan ke masing-masing inti CMP Sejak TLB misses lebih jarang terjadi dari cache misses kami menggunakan data input yang tersedia terbesar mengatur layak untuk simulasi Simlarge ditetapkan

Gambar 4 D-TLB merindukan per juta instruksi (MMI)

untuk beban kerja CPU2006 SPEC digunakan dalam makalah ini Beban kerja menunjukkan tingkat kehilangan beragam dengan mcf dan cactusADM menunjukkan MMIs sangat tinggi

Gambar 3 menyajikan beban kerja D-TLB merindukan per uta instruksi (MMIs) Seperti yang diharapkan benchmark seperti Canneal dan Ferret yang memiliki kerja besar set lihat MMIs tinggi Menariknya Blackscholes melihat MMI tertinggi karena pola aksesnya meskipun ukuran set kerja yang relatif sederhana Ini nomor MMI menyajikan dasar yang berguna untuk lebih memahami kami Hasil berikutnya

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 9: jurnal orkom.docx

42 Multiprogrammed beban kerja dari Aplikasi berurutan Infrastruktur

421 Simulasi Kami juga menyediakan hasil untuk berurutan Multiprogrammed beban kerja Adapun beban kerja paralel aplikasi sekuensial kami menggunakan full-sistem 4-core CMP simulator dari

Tabel 1 Menggunakan pendekatan yang sama dengan studi sebelumnya [8 14 25] kita maju simulasi dengan empat miliar petunjuk dan mengevaluasi kinerja selama jendela sepuluh miliar petunjuk Berbeda dengan percobaan beban kerja paralel kami mengevaluasi beban kerja Multiprogrammed menggunakan simulasi fungsional saja Hal ini sebagian karena ini beban kerja sekuensial Multiprogrammed adalah tidak banyak dipengaruhi dengan yang paralel dengan interthread interaksi waktu Selain itu fungsional kami Pendekatan memungkinkan kita untuk menangkap petak besar eksekusi yang penting karena dataset Ref besar kita gunakan untuk sepenuhnya melaksanakan TLB Sejak efek TLB terjadi selama rentang waktu yang panjang tersebut kuncinya adalah untuk jendela menjadi cukup besar untuk mengamati dan kontras perilaku dari berbagai beban kerja Simulasi fungsional kami juga termasuk efek OS yang secara alami cukup penting untuk penelitian kami Akhirnya seperti dengan beban kerja paralel sementara kita tidak bisa hadir baku runtime penuh Program angka-angka kinerja kami memberikan kinerja intuisi melalui analisis yang cermat dari TLB Miss penanganan overhead dan model analitis Kami menggunakan aplikasi berurutan dari SPEC CPU2006 [26] Suite untuk membentuk Multiprogrammed kami beban kerja Kami memilih untuk mengevaluasi beban kerja yang ditunjuk oleh [21] sebagai menangkap rentang kinerja keseluruhan dari SPEC CPU2006 suite Gambar 4 memberikan awal karakterisasi benchmark tersebut yang meliputi 6 integer dan 7 aplikasi floating-point Seperti yang ditunjukkan

Tabel 4 The beban kerja Multiprogrammed digunakan dalam kertas Lima dari beban kerja yang dibangun untuk menjadi heterogen (Het-1 ke Het-5) sementara dua homogen (Hom-1 dan Hom-2) Beban kerja yang dirancang untuk menunjukkan berbagai tingkat TLB stres aplikasi lihat bervariasi D-TLB MMIs untuk 64- entri TLBs disimulasikan dalam sistem ini Secara khusus kami menemukan mcf itu dan cactusADM paling parah menekankan kami TLBs dengan MMIs dari 6786 dan 4809 masing-masing Sementara analisis sepenuhnya komprehensif Multiprogrammed beban kerja terdiri dari empat aplikasi akan melibatkan simulasi semua 1048576294 Kombinasi benchmark ini praktis tidak layak Dalam hubungannya dengan Gambar 4 maka kami menarik dari metode dan data dalam [21] untuk membentuk tujuh beban kerja dari empat SPEC Aplikasi CPU2006 setiap Tabel 4 daftar kombinasi ini secara terperinci Seperti ditunjukkan pada Tabel 4 kombinasi ini menekankan TLBs untuk berbagai derajat Kita memisahkan theminto lima heterogen beban kerja (Het-1 ke Het-5) dan dua homogen beban kerja (Hom-1 dan Hom-2) Heterogen beban kerja memberikan wawasan tentang bagaimana baik SLL TLBs beradaptasi dengan program dengan kebutuhan memori yang berbeda Sebaliknya orang-orang yang homogen skenario Model di mana tidak ada aplikasi tunggal menguasai orang lain Kami membangun beban kerja sebagai berikut Pertama kita desain dua beban kerja yang heterogen dengan perantara tingkat TLB stres dengan menggabungkan satu aplikasi high-stres dengan tiga yang lebih rendah-stres Di sini mcf dan cactusADM berfungsi sebagai tolok ukur tinggi-stres dan karena itu digunakan untuk membuat beban kerja menengah stres Het-1 dan Het-3 bersama dengan tiga aplikasi lebih rendah-stres lainnya Kedua untuk perbandingan kita menciptakan sepasang dari beban kerja stres rendah Het-2 dan Het-4 Akhirnya kami beban kerja yang heterogen terakhir dirancang untuk menjadi sangat highstress Oleh karena itu dalam hal ini kita menggabungkan kedua mcf dan cactusADM bersama dengan dua beban kerja lainnya di Het-5 Untuk beban kerja yang homogen kami sekali lagi fokus pada-

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 10: jurnal orkom.docx

stres yang tinggi dan kasus stres rendah Tinggi-stres beban kerja dibangun menggunakan empat salinan dari mcf sementara beban kerja stres rendah menggunakan empat salinan xalancbmk

5 SLL TLBs Hasil ParallelWorkload

Kita sekarang belajar SLL TLBs untuk beban kerja paralel Pertama Bagian 51 membandingkan SLL TLBs terhadap komersial per-core TLBs L2 pribadi Kedua Bagian 52 membandingkan SLL TLBs dengan ICC prefetching Bagian 53 mengevaluasi manfaat meningkatkan dasar SLL Operasi TLB dengan langkah prefetching Bagian 54 kemudian mempelajari manfaat dari SLL TLB dengan meningkatnya inti jumlah Akhirnya Bagian 55 melakukan kinerja yang rinci analisis pendekatan kami

51 SLL TLBs vs Swasta L2 TLBs

Gambar 5 menunjukkan tingkat hit single 512-entry SLL TLB dan per-core swasta 128-entri L2 TLBs di 4-core CMP Tolok ukur yang dipesan dari tertinggi ke terendah berbagi antar-core [3] Pengamatan utama adalah bahwa SLL TLBs menghilangkan secara signifikan lebih misses dari swasta L2 TLBs menggunakan hardware total yang sama untuk setiap aplikasi tunggal Rata-rata perbedaan di tingkat hit adalah 27 Kedua aplikasi high-ICS seperti Canneal Facesim dan Streamcluster melihat hit tinggi terutama Tingkat kenaikan dibandingkan dengan kasus L2 swasta (oleh 23 57 dan 38 masing-masing) Hal ini terjadi karena SLL TLBs sengaja menargetkan antar-core merindukan bersama

Gambar 5 juga menunjukkan bahwa x264 melihat peningkatan terbesar menggunakan SLL TLBs dibandingkan swasta L2 TLBs Sebagai kami akan menunjukkan hal ini karena banyak entri di setiap pribadi L2 yang direplikasi untuk aplikasi ini sebaliknya yang SLL TLB menghilangkan redundansi ini memungkinkan untuk lebih entri TLB untuk di-cache untuk perangkat keras yang sama

Gambar 6 mengeksplorasi masalah ini replikasi secara lebih rinci Untuk menganalisis ini pada setiap rindu L1 TLB kita memindai semua TLBs L2 swasta untuk mencari jumlah yang ada salinan dari entri terjemahan hilang Kemudian sebagai persentase dari total merindukan L1 yang ada di setidaknya satu L2 TLB kami menunjukkan secara terpisah jumlah misses yang memiliki salinan satu atau beberapa Copy-jumlah yang lebih tinggi indikasi dari aplikasi yang akan mendapatkan bahkan lebih dari SLL TLBs yang menghapus redundansi dan menggunakan ekstra hardware cache terjemahan lebih unik

Gambar 6 menunjukkan bahwa replikasi berat ada di tolok ukur Misalnya Canneal melihat bahwa 45 penggusuran L1 yang direplikasi di semua 4 core Sebagai disebutkan x264 menderita dari copycount sangat tinggi yang SLL TLBs menghilangkan Pada kenyataannya bahkan di hilir Benchmark ICS seperti Ferret dan Swaptions melihat tinggi tarif replikasi Oleh karena itu jelas bahwa mempertahankan Hasil L2 TLBs terpisah dan swasta di sumber daya terbuang dibandingkan dengan bersatu SLL TLB

52 SLL TLBs terhadap ICC Prefetching

Kami sekarang mempertimbangkan keuntungan versus previouslyproposed ICC prefetching (yang meliputi Pemimpin-Follower dan Jarak berbasis Lintas-Core prefetching)

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 11: jurnal orkom.docx

Gambar 7 menunjukkan tingkat hit dari 512-entri SLL TLB dibandingkan dengan prefetcher ICC Rata-rata SLL TLBs menikmati hit rate dari 47 Tarif hit ini saingan orang-orang dari prefetchers ICC tapi SLL TLBs mencapainya dengan hardware sederhana Rata-rata SLL TLBs melihat hanya penurunan 4 di hit tingkat dibandingkan dengan prefetchers ICC Selain itu Gambar 7 menunjukkan bahwa dalam banyak beban kerja tinggi ICS seperti Canneal Facesim dan Streamcluster SLL TLBs sebenarnya mengungguli ICC prefechers Bahkan SLL TLBs menghilangkan tambahan 24 6 dan 21 TLB merindukan untuk ini beban kerja Namun aplikasi seperti Blackscholes yang sangat ICPs melihat manfaat lebih rendah dari dari ICC prefetching Namun demikian SLL TLBs masih berhasil untuk menghilangkan tinggi 62 dari TLB merindukan untuk Blackscholes Secara keseluruhan SLL TLBs menghilangkan sangat sukses 7 sampai 79 dari dasar TLB merindukan seluruh aplikasi sementara yang membutuhkan hardware sederhana dari ICC prefetchers Terlepas dari manfaat SLL TLBs hal ini juga berguna untuk memahami pola berbagi mereka Gambar 8 plot untuk setiap rindu L1 TLB dan SLL TLB hit nomor core dari yang berbeda yang akhirnya menggunakan SLL tertentu entri Kami menyebut ini core yang berbeda sebagai sharers Pada suatu 4-core CMP ada yang sampai 4 sharers per entri Benchmark tinggi ICS menikmati tinggi masuk SLL TLB berbagi Misalnya 81 hits Streamcluster ini adalah untuk entri dibagi di antara semua 4 core Kurang intuitif tetapi lebih menarik adalah kenyataan bahwa bahkan benchmark dengan berbagi antar-core yang lebih rendah seperti x264 VIP dan Swaptions melihat jumlah pembagian tinggi untuk hit SLL mereka entri Hal ini karena SLL TLB efektif memprioritaskan entri tinggi ICS dalam algoritma penggantinya maka entri ini tetap cache lagi Rata-rata sekitar 70 dari semua hits untuk entri dibagi di antara di Setidaknya dua core Kami juga mempertimbangkan berbagi pola terjemahan digusur

Gambar 9 menggambarkan jumlah sharers untuk setiap diusir entri SLL TLB Sebagian besar (rata-rata 75) dari penggusuran yang unshared Ini menegaskan kembali kami hipotesis sebelumnya bahwa struktur SLL membantu apriori Tize bersama entri TLB dalam aplikasi paralel Yaitu entri diakses oleh beberapa core sering dipromosikan ke posisi MRU sedangkan yang diakses oleh single core lebih mungkin untuk menjadi LRU dan karena itu kandidat utama untuk penggusuran Sejak beban kerja paralel kami memiliki banyak ICS meleset SLL TLBs tembolok terjemahan yang akan sering digunakan oleh beberapa core

53 SLL TLBs dengan Simple Stride Prefetching

Setelah mempelajari tingkat hit dari baseline SLL TLB kita sekarang mempertimbangkan tambahan rendah kompleksitas Secara khusus kita sekarang menambahkan langkah prefetching sederhana untuk terjemahan yang berada pada baris cache yang sama seperti saat ini entri hilang Ini menawarkan manfaat dari prefetching tanpa kompleksitas teknik ICC Sebagai tertutup dalam Bagian 34 calon PREFETCHED adalah 1 2 dan 3 halaman dari halaman yang sedang hilang

Gambar 10 membandingkan diusulkan SLL TLB saja versus SLL TLB yang juga mencakup prefetching langkahnya Pertama kita melihat bahwa manfaat dari pendekatan ini bervariasi aplikasi di Blackscholes yang memiliki berulang Langkah 4 halaman [4] melihat sedikit manfaat karena satu-satunya langkah dieksploitasi di sini adalah 1 2 dan 3 halaman Namun Fluidanimate dan Swaptions menikmati sangat meningkat memukul tarif karena mereka memang membutuhkan langkah 1 dan 2 halaman [4] Demikian pula bahkan Facesim melihat tambahan 10 hit rate karena mengeksploitasi 2 dan 3 halaman langkah

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 12: jurnal orkom.docx

Gambar 10 juga menunjukkan bahwa aplikasi kurang menonjol langkah (misalnya Canneal dan Streamcluster) dapat benar-benar melihat tarif hit sedikit lebih rendah Hal ini karena prefetches berguna dapat menggantikan berguna entri SLL TLB Secara keseluruhan sementara langkah prefetching memberikan manfaat untuk sebagian besar aplikasi salah satu juga dapat mempertimbangkan prospek menggabungkan prefetchers ICC dengan SLL TLBs Sementara ini tentu mungkin motivasi utama SLL TLBs adalah untuk mencapai kinerja yang mirip dengan prefetchers ICC tetapi dengan kompleksitas hardware yang jauh lebih rendah Dengan demikian TLBs SLL dengan sederhana langkah prefetching yang elegan dan alternatif yang efektif 54 SLL TLBs di Higher Inti Counts Hasil kami menunjukkan bahwa SLL TLBs sederhana namun efektif pada 4 core Hal ini juga penting namun untuk mengukur manfaatnya pada jumlah inti yang lebih tinggi Untuk tujuan ini kita sekarang membandingkan manfaat SLL TLBs terhadap pribadi per-core TLBs L2 di 16 core

Gambar 11 plot peningkatan hit rate yang SLL TLBs menyediakan lebih dari 128-catatan pribadi per-core L2 TLBs (bar yang lebih tinggi lebih baik) untuk 4-core dan 16-core Sejak

Gambar 11 Peningkatan hit rate yang menyediakan SLL TLBs vs swasta per-core L2 TLBs untuk 4-core dan 16-core CMPS Sejak swasta L2 TLBs adalah 128-entry yang SLL TLB adalah 512-entry dan 2048-entri untuk 4-core dan 16-core CMPS masing-masing Perhatikan meningkat tarif hit pada jumlah inti yang lebih tinggi setiap pribadi L2 TLB adalah 128 entri sama-berukuran SLL TLBs adalah 512-entri untuk kasus 4-core dan 2048- entri untuk kasus 16-core

Gambar 11 menunjukkan bahwa tidak hanya SLL TLBs secara konsisten mengungguli swasta L2 TLBs (masing-masing bar lebih besar dari nol) manfaat sebenarnya cenderung meningkat pada jumlah inti yang lebih tinggi Sebagai contoh Streamcluster dan VIP untuk CMPS 16-core menikmati tambahan 10 peningkatan hit rate lebih kasus 4-core Bahkan manfaat meningkat 6 rata-rata Ada dua alasan utama untuk perbaikan ini Pertama jumlah inti yang lebih tinggi cenderung melihat bahkan lebih tinggi inter-core berbagi [3] yang eksploitasi SLL TLB Selanjutnya karena jumlah inti yang lebih besar memiliki lebih banyak on-chip real estate yang ditujukan untuk TLB sebuah gabungan SLL TLB memiliki entri bahkan lebih dalam kasus 16-core daripada di 4-core kasus (2048 entri vs 512 entri) Efek bersih adalah yang SLL TLBs akan lebih berguna di masa depan CMP sistem dengan jumlah inti yang lebih tinggi Analisis Kinerja 55 Sampai saat ini kami telah memfokuskan pada TLB murni hit tarif Namun tujuan akhir dari pekerjaan kami adalah untuk mencapai manfaat kinerja Bagian ini sketsa analisis biaya-manfaat untuk memperkirakan keuntungan kinerja dari TLBs SLL terhadap alternatif Untuk percobaan ini kita membandingkan kinerja SLL TLB terhadap norma komersial TLBs L2 pribadi Seperti sebelumnya rinci analisis kinerja kami dilakukan dengan asumsi 4-core CMP Selain itu karena penuh run siklus tingkat simulasi akan mengambil minggu per datapoint untuk menyelesaikan Kami bukannya menggunakan analisis CPI terinspirasi oleh [24]

Tabel 5 Khas TLB lewatkan kali handler Setelah miss TLB buffer menyusun ulang (ROB) memerah kode setup handler dijalankan TSB diakses dan jika diperlukan halaman tabel berjalan dilakukan diikuti dengan kode pembersihan

Gambar 12 CPI diselamatkan oleh SLL TLBs terhadap pribadi L2 TLBs Setiap manfaat aplikasi dari SLL TLBs dengan keuntungan yang sebenarnya meningkat dengan hukuman miss Sementara SLL TLBs jangan memberikan hit jauh lebih baik tarif dari swasta L2 TLBs mereka juga memerlukan jaringan lagi kali traversal Oleh karena itu penting untuk berhati-hati menimbang manfaat ini dengan biaya akses Kami menggunakan Siklus per Instruksi (CPI) untuk menilai kinerja SLL TLBs dengan berfokus pada CPI disimpan pada TLB lewatkan penanganan

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 13: jurnal orkom.docx

waktu versus TLBs L2 pribadi Metrik ini akan mengadakan terlepas dari CPI program yang sebenarnya yang bisa berubah arsitektur di Untuk menghitung CPI diselamatkan kita perlu mempertimbangkan berbagai biaya yang terkait dengan miss TLB bagaimana kita menanggulanginya analitis memodelkan tabungan ini dan akhirnya menghasilkan berbagai manfaat kinerja mungkin Kita mulai dengan mempertimbangkan langkah-langkah dalam TLB khas handler miss Kami fokus pada Solaris TLB penangan dalam analisis Namun langkah-langkah dan strategi yang sama berlaku untuk strategi penanganan rindu lain juga

Tabel 5 Rincian khas TLB lewatkan langkah handler melanggar mereka ke dalam empat kategori Untuk semua penangan yang pemesanan ulang penyangga (ROB) adalah memerah setelah interupsi dan kode setup handler dijalankan Dalam Solaris ini diikuti oleh lookup di Translation Storage Buffer (TSB) struktur data perangkat lunak yang menyimpan paling baru diakses elemen tabel halaman Tsb seperti setiap struktur data perangkat lunak dapat cache Sebuah akses TSB yang hits di cache L1 meminimalkan total handler Hukuman untuk sekitar 50 siklus (Tipe 1) sementara yang lain lewatkan di L1 mengakibatkan pencarian di cache L2 (Tipe 2) atau DRAM (Tipe 3) dengan hukuman semakin besar Di kasus terburuk terjemahan yang diminta akan absen di TSB dan skala penuh tiga tingkat tabel halaman berjalan harus dilakukan yang mengambil ratusan siklus The sebenarnya TLB rindu menangani kali per aplikasi akan bervariasi tergantung pada campuran jenis rindu ini Oleh karena itu daripada berfokus pada nilai handler kehilangan tunggal kami sekarang menganalisis kinerja SLL TLB di berbagai mungkin handler kali rata-rata Kami bervariasi dari optimis kasus 50 siklus untuk lebih realistis dari 100-150 siklus dan di luar untuk 200 siklus Kami mencatat di sini bahwa penanganan TLB merindukan dalam perangkat lunak adalah salah satu dari strategi penanganan sejumlah rindu saat ini bekerja komersial Secara khusus sejumlah komersial sistem menggunakan hardware dikelola TLBs [12] Dalam sistem ini miss TLB ditangani oleh dedicated mesin negara yang terbatas yang berjalan tabel halaman pada miss Perangkat keras tambahan untuk memberikan halaman lebih cepat meja berjalan dari software rindu penangan tapi memiliki kurang fleksibel Manajemen OS tabel halaman [13] Sistem ini menikmati TLB latency penanganan kehilangan sekitar 50 siklus mark [12] Oleh karena itu analisis kami berikutnya yang menunjukkan angka CPI untuk TLB rindu latency dari 50 siklus juga menyediakan informasi tentang kinerja SLL TLB untuk hardware-dikelola TLB berjalan

Gambar 12 plot CPI diselamatkan oleh pendekatan kami terhadap norma komersial TLBs L2 pribadi ketika menggunakan dasar SLL TLB dan yang rekan-prefetching ditambah Untuk setiap aplikasi jumlah CPI disediakan untuk TLB rindu hukuman mulai dari 50 sampai 200 siklus di penambahan sebesar 50 Seperti ditunjukkan setiap patokan paralel manfaat dengan SLL TLB bahkan di bawah asumsi bahwa semua penangan dijalankan dalam 50 siklus Dengan asumsi hukuman kehilangan rata-rata lebih realistis dari 150 siklus manfaat rata-rata adalah sekitar 005 CPI dan setinggi 025 CPI untuk Blackscholes Manfaat yang tepat juga bervariasi untuk skema yang digunakan misalnya Fluidanimate terutama manfaat dengan prefetcher-augmented SLL TLB Selain itu keuntungan menjadi lebih besar sebagai lewatkan hukuman meningkat Oleh karena itu bahkan dengan optimis rendah TLB lewatkan hukuman SLL TLB kami melebihi swasta L2 TLBs meskipun menggunakan hanya hardware total yang sama Seperti SLL TLBs adalah alternatif yang efektif dan elegan untuk pribadi L2 TLBs Untuk lebih menunjukkan utilitas mereka kita sekarang fokus pada beban kerja berurutan Multiprogrammed

Gambar 13 Tekan tarif untuk beban kerja Multiprogrammed untuk kedua SLL L2 TLB dan swasta L2 TLBs SLL TLB hit tarif total untuk setiap kombinasi beban kerja yang heterogen secara

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 14: jurnal orkom.docx

substansial lebih tinggi dari swasta untuk L2 TLBs (rata-rata 21) Selanjutnya aplikasi stres tinggi seperti mcf melihat perbaikan besar tanpa terasa merendahkan aplikasi rendah-stres Bahkan kombinasi beban kerja homogen lihat hit rate meningkat dengan SLL TLBs

6 SLL TLBs Multiprogrammed

Hasil beban kerja Kita sekarang belajar SLL TLBs untuk beban kerja terdiri aplikasi berurutan berjalan satu per inti dalam mode Multiprogrammed Bagian 61 mengkuantifikasi L2 TLB hit tarif untuk lima heterogen dan homogen dua beban kerja Dibandingkan dengan swasta per-core L2 TLBs kami menunjukkan baik per-aplikasi dan acrossworkload manfaat Untuk beban kerja yang heterogen kita mempelajari seberapa efektif tunggal bersama terakhir tingkat TLB menyesuaikan dengan aplikasi dengan secara simultan mengeksekusi- persyaratan memori yang berbeda Kami juga menggunakan homogen beban kerja untuk mempelajari manfaat SLL TLB ketika beberapa program dari sifat yang sama mengeksekusi Setelah mempelajari aplikasi memukul tarif Bagian 62 rincian keuntungan kinerja yang berasal dari SLL TLBs vs swasta L2 TLBs Seperti beban kerja paralel ini Bagian melakukan analisis biaya-manfaat dan mengkuantifikasi CPI disimpan menggunakan pendekatan kami

61 Multiprogrammed beban kerja dengan Satu Aplikasi Pinned per Inti

Gambar 13 mengkuantifikasi SLL L2 dan swasta L2 TLB hit tarif untuk lima heterogen (Het-1 ke Het-5) dan dua beban kerja homogen (Hom-1 dan Hom-2) dijelaskan Untuk setiap kombinasi beban kerja kami secara terpisah Plot TLB hit tarif untuk setiap aplikasi berurutan dan juga menunjukkan jumlah tarif hit TLB di semua aplikasi Pertama kita mempelajari tingkat hit untuk beban kerja yang heterogen Seperti ditunjukkan baik SLL TLBs dan per-core swasta L2 TLBs menghilangkan sebagian besar misses L1 TLB (35 sampai 95 untuk SLL TLBs rata-rata) Selanjutnya kita menemukan bahwa untuk setiap kombinasi beban kerja jumlah SLL TLB hit tingkat lebih tinggi daripada L2 hit pribadi tarif Rata-rata para SLL TLB menghilangkan 21 tambahan L1 merindukan lebih TLBs L2 pribadi untuk heterogen beban kerja sebuah peningkatan yang substansial Peningkatan ini terjadi karena SLL L2 TLB mampu mengalokasikan sumber daya fleksibel antara aplikasi yang berbeda dalam persyaratan memori Sebaliknya swasta percore L2 TLBs menyediakan hardware tetap untuk semua aplikasi terlepas dari kebutuhan aktual mereka Kedua dan lebih mengejutkan Gambar 13 menunjukkan bahwa SLL TLBs umumnya tidak menurunkan tarif hit untuk lowerstress aplikasi ketika menjalankan dengan yang stres tinggi Satu awalnya mungkin berharap benchmark tinggi-stres menangkap porsi yang lebih besar dari SLL TLB menurunkan lainnya Aplikasi memukul tarif secara signifikan Namun misalnya di Het-1 sementara mcf memukul tarif untuk SLL TLBs peningkatan 50 lebih TLB pribadi xalancbmk dan libquantum masih menikmati memukul kenaikan tingkat 5 dan 9 masing-masing Perilaku ini juga terlihat di semua kombinasi beban kerja lainnya khususnya di Het-5 di mana mcf pada SLL TLB menikmati hit rate 52 meningkat sementara setiap aplikasi lainnya di beban kerja juga melihat peningkatan hit rate Hal ini terjadi karena aplikasi stres rendah mengalami ledakan singkat TLB merindukan Oleh karena itu sementara SLL TLB umumnya menyediakan ruang pemetaan lebih untuk aplikasi high-stres seperti mcf juga cepat menyesuaikan dengan ini bursty periode menyediakan aplikasi lebih rendah-stres dengan ruang TLB mereka butuhkan Hasilnya adalah bahwa SLL TLBs menunjukkan peningkatan menyolok swasta L2 TLBs untuk kombinasi beban kerja secara umum meningkatkan aplikasi high-stres tanpa substansial menurunkan yang lebih rendah-stres (dan biasanya meningkatkan mereka juga) Ketiga Gambar 13 juga membandingkan hit SLL TLB tarif vs tarif hit L2 TLB swasta untuk homogen beban kerja menunjukkan 2 sampai 4 perbaikan

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 15: jurnal orkom.docx

Seperti yang diharapkan tingkat hit konsisten untuk semua empat core Karena masing-masing inti sekarang tempat permintaan yang sama pada SLL TLB pada dasarnya sama-sama membagi entri di antara mereka kami berharap sedikit manfaat dari pendekatan ini Namun bahkan dalam kasus ini kami menemukan bahwa SLL TLBs sedikit meningkatkan tingkat hit selama L2 pribadi TLBs Hal ini terjadi karena empat tolok ukur tidak berjalan di fase yang tepat Oleh karena itu kebutuhan jangka pendek setiap program yang cukup bervariasi untuk mengambil keuntungan dari fleksibilitas yang SLL TLBs menyediakan dalam mengalokasikan entri antara aplikasi Selain itu OS dapat menempati proporsional ruang kurang dalam SLL TLB daripada yang dilakukannya di setiap swasta L2 TLBs memberikan lebih banyak ruang untuk keseluruhan tolok ukur untuk beroperasi Efek ini menghasilkan perbaikan dari TLBs SLL terhadap TLBs pribadi untuk kedua beban kerja yang homogen Oleh karena itu hasil kami sangat menyarankan bahwa SLL TLB menunjukkan fleksibilitas yang jauh lebih besar dalam menyesuaikan Total hardware yang TLBs L2 pribadi gunakan untuk tuntutan berbagai bersamaan melaksanakan beban kerja berurutan Hasilnya adalah bahwa baik total beban kerja hit tarif dan per-aplikasi tarif hit menikmati kenaikan Gambar 14 CPI disimpan menggunakan SLL TLBs dibandingkan swasta L2 TLBs untuk aplikasi individu dan rata-rata per-beban kerja Lebih tinggi TLB hukuman rindu menghasilkan keuntungan kinerja yang lebih besar

Analisis Kinerja 62

Bagian sebelumnya menunjukkan bahwa aplikasi berurutan sebenarnya manfaat dari SLL TLBs dalam hal hit rate relatif terhadap TLBs L2 pribadi Namun karena hukuman hit untuk SLL TLB lebih tinggi daripada untuk L2 pribadi TLB penting untuk melakukan analisis biaya-manfaat dari sumber-sumber TLB overhead dan bagaimana kita mengurangi mereka Oleh karena itu kita sekarang memperluas program paralel analisis kinerja berdasarkan penanganan kali TLB dijelaskan dalam Bagian 55 untuk kombinasi Multiprogrammed dari beban kerja berurutan Sekali lagi fokusnya adalah pada pemahaman CPI disimpan menggunakan pendekatan kami untuk realistis berbagai TLB lewatkan hukuman dengan metodologi terinspirasi oleh [24] Gambar 14 menunjukkan CPI diselamatkan dari SLL TLBs relatif untuk pribadi per-core TLBs L2 untuk aplikasi individu dan per-beban kerja rata-rata Sementara individu CPIS aplikasi dapat dihitung dengan menggunakan khusus mereka Tarif rindu TLB rata-rata per-beban kerja didasarkan pada pembobotan tingkat kehilangan L1 TLB untuk setiap berurutan konstituen Program Hasilnya ditunjukkan dengan asumsi rindu hukuman mulai dari 50 sampai 200 siklus secara bertahap dari 50 siklus Gambar 14 menunjukkan bahwa seluruh beban kerja yang heterogen tingkat hit lebih tinggi biasanya sesuai dengan peningkatan kinerja untuk rata-rata per-beban kerja Khususnya Het-1 dan Het-5 melihat tabungan CPI terkenal The SLL TLB juga memberikan penghematan CPI untuk Het-2 meskipun lebih diredam sementara Het-4 melihat sedikit perubahan Kecenderungan ini bisa lebih baik dipahami oleh sifat aplikasi campuran The SLL TLB biasanya memberikan manfaat paling beban kerja campuran di mana aplikasi high-stres berjalan dengan yang lebih rendah-stres Dalam hal ini swasta L2 TLBs mengalokasikan sumber daya yang tidak terpakai untuk aplikasi stres rendah sedangkan aplikasi stres tinggi menderita SLL TLBs di sisi lain dapat lebih baik mendistribusikan sumber daya ini antara aplikasi berurutan membantu stres tinggi beban kerja tanpa menyakiti orang-orang yang lebih rendah-stres Ini perilaku sangat umum untuk Het-1 dan Het-5 di mana Mcf menderita dalam hal L2 TLB swasta Di kehadiran SLL TLB bagaimanapun Mcf meningkatkan dalam kinerja tanpa menyakiti aplikasi lain di Het-1 dan hanya sedikit menurunkan cactusADM di Het-5 Hal ini menyebabkan penghematan CPI mendekati 02 bahkan di TLB hukuman terkecil dari 50 siklus Seperti yang diharapkan imbalan tersebut menjadi bahkan lebih jelas di lebih realistis TLB lewatkan hukuman sekitar 100 sampai 150 siklus Gambar 14 juga menunjukkan bahwa

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 16: jurnal orkom.docx

cactusADM dilihatnya menurunkan kinerja di Het-3 dan Het-5 Hal ini mengejutkan karena cactusADM adalah aplikasi tinggi stres TLB satu Oleh karena itu mungkin telah diharapkan bahwa SLL TLB akan sangat bermanfaat Pada kenyataannya cactusADM telah terbukti memiliki reuse TLB sangat miskin dan karenanya pengalaman tarif hit tidak berubah bahkan ketika TLB jangkauan meningkat [17 31] Oleh karena itu kami lebih besar SLL TLB hanya sedikit meningkatkan hit rate-nya (lihat Gambar 13) dan dapat mengatasi tambahan hukuman akses relatif untuk pribadi L2 TLBs Ini berarti bahwa cactusADM menderita penurunan kinerja marjinal Namun demikian cactusADM adalah outlier terkenal dalam hal ini [17 31] sebagian besar aplikasi menunjukkan lebih baik TLB menggunakan kembali karakteristik membuat mereka cenderung untuk meningkatkan kinerja dengan SLL TLBs Akhirnya seperti yang diharapkan Hom-1 dan Hom-2 sedikit perubahan dengan SLL TLB Sejak benchmark individu dalam beban kerja ini sama-sama menekankan SLL TLB tidak melihat sebuah peningkatan yang signifikan dalam entri yang tersedia Oleh karena itu kinerja hanya sedikit menurun karena tambahan waktu akses dan ini beban kerja yang homogen cenderung untuk mewakili-kasus terburuk untuk SLL TLBs Secara keseluruhan TLBs SLL memberikan peningkatan kinerja yang signifikan untuk paralel dan beberapa sekuensial heterogen beban kerja sementara sebagian besar performanceneutral pada orang lain Hal ini membuat mereka efektif dan lowcomplexity alternatif untuk inti per-L2 TLBs

7 Kesimpulan

Makalah ini menunjukkan manfaat SLL TLBs untuk baik beban kerja sekuensial paralel dan Multiprogrammed Kami menemukan bahwa mudah-diimplementasikan SLL TLBs mengeksploitasi paralel program berbagi antar-core untuk menghilangkan 7-79 dari L1 TLBs merindukan memberikan manfaat yang sebanding untuk prefetchers ICC Mereka bahkan mengungguli konvensional per-core TLBs L2 swasta dengan rata-rata 27 menyebabkan runtime perbaikan setinggi 025 CPI Selanjutnya mengintegrasikan prefetching langkahnya menyediakan peningkatan tarif hit (rata-rata 5) Selain itu SLL TLBs juga agak mengejutkan dapat meningkatkan kinerja untuk beban kerja sekuensial Multiprogrammed lebih swasta L2 TLBs Bahkan perbaikan atas L2 pribadi TLBs adalah 21 rata-rata dengan tingkat hit lebih tinggi juga mengalami per aplikasi dalam campuran beban kerja Hal ini dapat menyebabkan setinggi 04 perbaikan CPI Pada akhirnya karya ini dapat digunakan untuk merancang SLL TLBs di prosesor modern Hasil kami menyediakan wawasan untuk kedua pengembang perangkat lunak sekuensial dan paralel pada manfaat yang diharapkan dari pendekatan ini menggunakan rendah kompleksitas hardware

8 Ucapan Terima Kasih

Kami berterima kasih kepada pengulas anonim untuk umpan balik mereka Kami juga berterima kasih Joel Emer untuk diskusi ini kerja Bahan ini didasarkan pada pekerjaan didukung oleh National Science Foundation di bawah Hibah No CNS-0627650 dan SSP-07205661 Para penulis juga mengakui dukungan dari Penelitian Gigascale Sistem Pusat salah satu dari enam pusat yang didanai di bawah Fokus Pusat Penelitian Program (FCRP) Research Semiconductor Korporasi entitas Akhirnya kita mengakui dukungan dari hadiah penelitian dari Intel Corp

Referensi

[1] Advanced Micro Devices httpwwwamdcom

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 17: jurnal orkom.docx

[2] T Barr A Cox dan S Rixner Terjemahan Caching Loncat Jangan Berjalan (Tabel Page) ISCA 2010[3] A Bhattacharjee dan M Martonosi Karakteristik TLB Perilaku Muncul Paralel beban kerja on Chip Multiprocessors PACT 2009[4] A Bhattacharjee dan M Martonosi Inter-Core Koperasi TLB prefetchers untuk Chip Multiprocessors Asp-LOS 2010[5] C Bienia dkk The parsec Benchmark Suite Karakterisasi dan Implikasi Arsitektur PACT 2008[6] J B Chen A Borg dan N Jouppi Sebuah Simulasi Berdasarkan Studi Kinerja TLB ISCA 1992[7] D Clark dan J Emer Kinerja VAX-11780 Buffer Terjemahan Simulasi dan PengukuranACM Trans di Comp Sys 3 (1) 1985[8] E Ebrahimi dkk Keadilan melalui Sumber Throttling a Dikonfigurasi dan High-Performance Keadilan Substrat untuk Multi-Core Sistem Memory ISCA 2010[9] G Hinton TheMicroarchitecture dari Pentium 4 Intel Teknologi Journal 2001[10] H Huck dan H Hays Dukungan arsitektur untuk Terjemahan Manajemen meja di besar Mesin Alamat SpaceISCA 1993[11] Intel Corporation httpwwwintelcom[12] B Jacob dan T Mudge Sebuah Lihatlah Beberapa Memory Unit manajemen TLB-Refill dan Halaman Tabel Organisasi ASPLOS 1998[13] B Jacob dan T Mudge Virtual Memory di Kontemporer Mikroprosesor IEEE Micro 1998[14] G Kandiraju dan A Sivasubramaniam Karakteristik d-TLB Perilaku SPEC CPU2000 Benchmark Sigmetrics 2002[15] G Kandiraju dan A Sivasubramaniam Pergi dengan Jarak untuk TLB Prefetching Permohonan-Driven Studi ISCA 2002[16] C Kim D Burger dan S Keckler NUCA A Non Seragam Cache Arsitektur forWire-tunda Didominasi On-Chip Cache IEEE Micro Top Picks 2003[17] W Korn dan M Chang SPEC CPU2006 Sensitivitasuntuk Memory Halaman Ukuran ACM SIGARCH Comp ArchBerita 35 (1) 2007[18] M Martin et al Multifacet Umum Eksekusi-DrivenMultiprosesor Simulator (GEMS) toolset CompArch Berita 2005[19] N Muralimanohar R Balasubramonian dan N JouppiCACTI 60 Sebuah Alat untuk Model Cache besar HP LabsTech Laporan HPL-2009-85 2009[20] D Nagle dkk Pengorbanan desain untuk Software DikelolaTLBs ISCA 1993[21] A Phansalkar dkk Subsetting SPEC CPU2006Suite patokan ACM SIGARCH Comp Arch Berita35 (1) 2007[22] X Qui dan M Dubois Pilihan untuk Dinamis AlamatTerjemahan dalam koma ISCA 1998[23] M Rosenblum et al Dampak Tren Arsitekturpada Operasi Kinerja Sistem Trans pada Mod danComp Sim 1995[24] A Saulsbury F Dahlgren dan P Stenstr om Recency-Berdasarkan TLB Preloading ISCA 2000

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010

Page 18: jurnal orkom.docx

[25] A Sharif dan H-H Lee Mekanisme Data Prefetchingoleh Pemanfaatan global dan lokal Access Pola Jurnal-nal Instruksi-Level Paralelisme data prefetchingChampionship 2009[26] Standard Performance Evaluation Corporationhttpwwwspecorgcpu2006[27] Sun UltraSPARC III Cu Pedoman Pengguna 2004[28] Sun Microsystems httpwwwsuncom[29] M Talluri ANMD Bukit Melebihi Kinerja TLBdari superpages dengan Kurang Sistem Operasi Dukungan AS-PLoS 1994[30] Virtutech Simics untuk Multicore Software 2007[31] D HWoo dkk 3D-StackedMemory Arsitektur Dioptimalkanoleh Pemanfaatan berlebihan High-Density TSVBandwidth HPCA 2010