Home Arsitektur dan Implementasi Mikroprosesor ARM Cortex-A8 Arsitektur dan Implementasi Mikroprosesor ARM Cortex-A8 personAnugrahRiyanHadiTirtana October 25, 2024 0 share Tinjauan Umum Arsitektur Cortex Teknologi pemersatu prosesor Cortex adalah teknologi Thumb-2. Set instruksi Thumb-2 menggabungkan instruksi 16- dan 32-bit untuk meningkatkan kepadatan dan kinerja kode. Set instruksi ARM asli terdiri dari instruksi 32-bit dengan panjang tetap, sedangkan set instruksi Thumb menggunakan instruksi 16-bit. Karena tidak semua operasi dipetakan ke dalam set instruksi Thumb asli, beberapa instruksi terkadang diperlukan untuk meniru tugas dari satu instruksi 32-bit. Teknologi Thumb-2 menambahkan sekitar 130 instruksi tambahan ke Thumb. Fungsionalitas tambahan tersebut menghilangkan kebutuhan untuk beralih antara mode ARM dan Thumb untuk melayani interupsi, dan memberikan akses ke set lengkap register prosesor. Kode yang dihasilkan mempertahankan kepadatan kode tradisional dari instruksi Thumb saat berjalan pada tingkat kinerja kode ARM 32-bit. Seluruh aplikasi kini dapat ditulis dalam teknologi Thumb-2, sehingga menghilangkan arsitektur asli yang diperlukan untuk peralihan mode. Seluruh aplikasi dapat ditulis menggunakan instruksi Thumb-2 yang menghemat ruang, sedangkan dengan mode Thumb asli, prosesor harus beralih antara mode ARM dan Thumb. Yang pertama kali muncul dalam prosesor ARM adalah teknologi media dan pemrosesan sinyal NEON yang ditujukan untuk audio, video, dan grafik 3D. Teknologi ini merupakan arsitektur SIMD hibrida 64/128-bit. Teknologi NEON memiliki berkas register dan jalur eksekusi sendiri yang terpisah dari jalur integer ARM utama. Teknologi ini dapat menangani nilai floating-point integer dan presisi tunggal, dan mencakup dukungan untuk akses data yang tidak selaras dan pemuatan mudah data yang disisipkan yang disimpan dalam bentuk struktur. Dengan menggunakan teknologi NEON untuk menjalankan fungsi multimedia yang umum, prosesor Cortex-A8 dapat mendekode video VGA MPEG-4 (termasuk dering, filter deblock, dan yuv2rgb) pada 30 bingkai/detik pada 275 MHz, dan video H.264 pada 350 MHz. Teknologi Jazelle RCT juga merupakan teknologi baru, perluasan arsitektur yang memangkas jejak memori aplikasi bytecode just-in-time (JIT) hingga sepertiga dari ukuran aslinya. Ukuran kode yang lebih kecil menghasilkan peningkatan kinerja dan pengurangan daya. Teknologi TrustZone disertakan dalam Cortex-A8 untuk memastikan privasi data dan perlindungan DRM dalam produk konsumen seperti ponsel, asisten digital pribadi, dan dekoder yang menjalankan sistem operasi terbuka. Diimplementasikan dalam inti prosesor, teknologi TrustZone melindungi periferal dan memori dari serangan keamanan. Monitor aman dalam inti berfungsi sebagai penjaga gerbang yang mengalihkan sistem antara status aman dan tidak aman. Dalam status aman, prosesor menjalankan kode "tepercaya" dari blok kode aman untuk menangani tugas-tugas yang sensitif terhadap keamanan seperti autentikasi dan manipulasi tanda tangan. Selain berkontribusi pada kinerja pemrosesan sinyal prosesor, teknologi NEON memungkinkan solusi perangkat lunak untuk aplikasi pemrosesan data. Hasilnya adalah platform fleksibel yang dapat mengakomodasi algoritme dan aplikasi baru saat muncul hanya dengan mengunduh perangkat lunak baru atau driver. Teknologi VFPv3 merupakan penyempurnaan dari teknologi VFPv2. Fitur-fitur baru termasuk penggandaan jumlah register presisi ganda menjadi 32, dan pengenalan instruksi yang melakukan konversi antara angka titik tetap dan angka titik mengambang. Menjelajahi Fitur Mikroarsitektur Cortex-A8 Prosesor Cortex-A8 adalah desain berdaya rendah paling canggih yang pernah diproduksi oleh ARM. Untuk mencapai tingkat kinerja yang tinggi, fitur mikroarsitektur baru ditambahkan yang secara tradisional tidak ditemukan dalam arsitektur ARM, termasuk jalur pipa integer ARM dengan masalah urutan ganda, cache L2 terintegrasi, dan jalur pipa 13 tahap yang dalam. Jalur Pipa Superskalar Barangkali fitur baru yang paling signifikan adalah jalur produksi bilangan bulat ARM yang terjadwal secara statis, berurutan, dan dengan dua masalah. Prosesor ARM sebelumnya hanya memiliki satu jalur produksi bilangan bulat. Kemampuan untuk mengeluarkan dua instruksi pemrosesan data pada saat yang sama secara signifikan meningkatkan potensi instruksi maksimum yang dieksekusi per siklus. Diputuskan untuk tetap menggunakan produksi berurutan untuk menjaga daya tambahan yang dibutuhkan seminimal mungkin. Produksi dan penghentian yang tidak berurutan dapat memerlukan sejumlah besar logika yang menghabiskan daya ekstra. Pilihan untuk menggunakan produksi berurutan juga memungkinkan produksi instruksi yang dapat dihentikan dan dilupakan, sehingga menghilangkan jalur kritis dari desain dan mengurangi kebutuhan untuk desain khusus dalam jalur produksi. Penjadwalan statis memungkinkan pengaturan jam yang ekstensif untuk mengurangi daya selama eksekusi. Jalur produksi ALU (unit logika aritmatika) ganda (ALU 0 dan ALU 1) simetris dan keduanya dapat menangani sebagian besar instruksi aritmatika. Jalur produksi ALU 0 selalu membawa instruksi yang lebih lama dari sepasang instruksi yang dikeluarkan. Prosesor Cortex-A8 juga memiliki jalur produksi pengali dan penyimpanan beban, tetapi ini tidak membawa instruksi tambahan ke dua jalur produksi ALU. Ini dapat dianggap sebagai pipeline "bergantung". Penggunaannya memerlukan penggunaan simultan dari salah satu pipeline ALU. Pipeline pengali hanya dapat digabungkan dengan instruksi yang ada di pipeline ALU 0, sedangkan pipeline muat-simpan dapat digabungkan dengan instruksi di salah satu ALU. Prediksi Cabang Pipeline 13 tahap dipilih untuk memungkinkan frekuensi operasi yang jauh lebih tinggi daripada generasi mikroarsitektur ARM yang berharga. Perhatikan bahwa tahap F0 tidak dihitung karena hanya pembuatan alamat. Untuk meminimalkan penalti cabang yang biasanya dikaitkan dengan pipeline yang lebih dalam, prosesor Cortex-A8 mengimplementasikan prediktor cabang riwayat global dua tingkat. Ini terdiri dari dua struktur yang berbeda: Branch Target Buffer (BTB) dan Global History Buffer (GHB) yang diakses secara paralel dengan pengambilan instruksi. BTB menunjukkan apakah alamat pengambilan saat ini akan mengembalikan instruksi cabang dan alamat target cabangnya atau tidak. Ini berisi 512 entri. Pada hit di BTB, cabang diprediksi dan GHB diakses. GHB terdiri dari 4096 penghitung saturasi 2-bit yang mengodekan informasi kekuatan dan arah cabang. GHB diindeks oleh riwayat 10-bit arah sepuluh cabang terakhir yang ditemui dan 4 bit PC. Selain prediktor cabang dinamis, tumpukan pengembalian digunakan untuk memprediksi alamat pengembalian subrutin. Tumpukan pengembalian memiliki delapan entri 32-bit yang menyimpan nilai register tautan di r14 (register 14) dan status ARM atau Thumb dari fungsi pemanggil. Ketika instruksi tipe pengembalian diprediksi diambil, tumpukan pengembalian menyediakan alamat dan status terakhir yang didorong. Cache Level-1 Prosesor Cortex-A8 memiliki penalti penggunaan beban siklus tunggal untuk akses cepat ke cache Level-1. Cache data dan instruksi dapat dikonfigurasi ke 16k atau 32k. Masing-masing adalah asosiatif set 4 arah dan menggunakan skema prediksi jalur Hash Virtual Address Buffer (HVAB) untuk meningkatkan pengaturan waktu dan mengurangi konsumsi daya. Cache tersebut dialamatkan secara fisik (indeks virtual, tag fisik) dan memiliki dukungan perangkat keras untuk menghindari entri alias. Paritas didukung dengan satu bit paritas per byte. Kebijakan penggantian untuk cache data adalah penulisan kembali tanpa alokasi penulisan. Juga disertakan buffer penyimpanan untuk penggabungan data sebelum menulis ke memori utama. HVAB adalah pendekatan baru untuk mengurangi daya yang diperlukan untuk mengakses cache. Ia menggunakan skema prediksi untuk menentukan arah RAM mana yang akan diaktifkan sebelum akses. Cache Level-2 Prosesor Cortex-A8 menyertakan cache Level-2 terintegrasi. Ini memberi cache Level-2 antarmuka latensi rendah dan bandwidth tinggi khusus ke cache Level-1. Ini meminimalkan latensi pengisian baris cache Level-1 dan tidak berbenturan dengan lalu lintas pada bus sistem utama. Cache ini dapat dikonfigurasi dalam ukuran dari 64k hingga 2M. Cache Level-2 dialamatkan secara fisik dan diatur secara asosiatif 8 arah. Cache ini merupakan cache data dan instruksi terpadu, dan mendukung ECC dan Paritas opsional. Kebijakan penulisan kembali, penulisan melalui, dan alokasi-tulis diikuti menurut pengaturan tabel halaman. Kebijakan alokasi pseudo-acak digunakan. Konten cache data Level-1 eksklusif dengan cache Level-2, sedangkan konten cache instruksi Level-1 merupakan bagian dari cache Level-2. RAM tag dan data dari cache Level-2 diakses secara serial untuk penghematan daya. Mesin media NEON Alur kerja mesin pemrosesan media NEON prosesor Cortex-A8 dimulai di akhir alur kerja integer utama. Hasilnya, semua pengecualian dan kesalahan prediksi cabang diselesaikan sebelum instruksi mencapainya. Yang lebih penting, tidak ada penalti penggunaan beban untuk data dalam cache Level-1. Unit integer ARM menghasilkan alamat untuk muatan NEON dan menyimpannya saat melewati jalur, sehingga memungkinkan data diambil dari cache Level-1 sebelum dibutuhkan oleh operasi pemrosesan data NEON. Instruksi mendalam dan buffering data muatan antara mesin NEON, unit integer ARM, dan sistem memori memungkinkan latensi akses Level-2 disembunyikan untuk data yang dialirkan. Buffer penyimpanan mencegah penyimpanan NEON memblokir jalur dan mendeteksi tabrakan alamat dengan akses unit integer ARM dan muatan NEON. Unit NEON dipisahkan dari jalur integer ARM utama oleh antrean instruksi NEON (NIQ). Unit Eksekusi Instruksi ARM dapat mengeluarkan hingga dua instruksi yang valid ke unit NEON setiap siklus clock. NEON memiliki jalur muat dan simpan selebar 128-bit ke cache Level-1 dan Level-2, dan mendukung streaming dari keduanya. Mesin media NEON memiliki jalur 10 tahapnya sendiri yang dimulai pada jalur integer ARM terakhir. Karena semua kesalahan prediksi dan pengecualian telah diselesaikan di unit integer ARM, setelah instruksi dikeluarkan ke mesin media NEON, instruksi tersebut harus diselesaikan karena tidak dapat menghasilkan pengecualian. NEON memiliki tiga jalur integer SIMD, jalur muat-simpan/permutasi, dua jalur floating-point presisi tunggal SIMD, dan unit Vector Floating-Point non-pipelined (VFPLite). Instruksi NEON dikeluarkan dan dihentikan secara berurutan. Instruksi pemrosesan data adalah instruksi integer NEON atau instruksi floating-point NEON. Unit Cortex-A8 NEON tidak mengeluarkan dua instruksi pemrosesan data secara paralel untuk menghindari overhead area dengan menduplikasi blok fungsional pemrosesan data, dan untuk menghindari pengaturan waktu jalur kritis dan overhead kompleksitas yang terkait dengan muxing port register baca dan tulis. Jalur data integer NEON terdiri dari tiga jalur: jalur perkalian/akumulasi integer (MAC), jalur integer Shift, dan jalur integer ALU. Jalur load-store/permute bertanggung jawab atas semua pemuatan/penyimpanan NEON, transfer data ke/dari unit integer, dan operasi permute data seperti interleave dan de-interleave. Jalur data floating-point (NFP) NEON memiliki dua jalur utama: jalur multiply dan jalur add. Unit VFPLite yang terpisah adalah implementasi non-pipelined dari Spesifikasi Floating Point ARM VFPv3 yang ditargetkan untuk dukungan floating point yang sesuai dengan IEEE 754 dengan kinerja sedang. VFPLite digunakan untuk menyediakan kompatibilitas mundur dengan kode titik mengambang ARM yang ada dan untuk menyediakan aritmatika presisi tunggal dan ganda yang sesuai dengan IEEE 754. "Lite" mengacu pada area dan kinerja, bukan fungsionalitas. Implementasi Karena target kinerja, daya, dan area (PPA) yang agresif dari prosesor Cortex-A8, alur implementasi baru telah dikembangkan untuk memenuhi tujuan tanpa harus menggunakan implementasi kustom penuh. Alur yang dihasilkan memungkinkan penyempurnaan desain ke aplikasi yang diinginkan. Hasilnya pada dasarnya adalah alur berbasis sel, tetapi di bawahnya terdapat teknik semi-kustom yang telah digunakan jika diperlukan untuk memenuhi kinerja. Prosesor Cortex-A8 menggunakan kombinasi sirkuit yang disintesis, terstruktur, dan kustom. Desain dibagi menjadi tujuh unit fungsional, kemudian dibagi lagi menjadi blok, dan teknik implementasi yang tepat dipilih untuk masing-masing blok. Karena seluruh desain dapat disintesis, blok yang dapat dengan mudah memenuhi tujuan PPA-nya dapat mengikuti alur sintesis standar. Alur terstruktur digunakan untuk blok yang berisi logika yang dapat memanfaatkan pendekatan penempatan dan perutean yang terkontrol untuk memenuhi tujuan waktu atau area. Pendekatan ini adalah alur semi-kustom yang memetakan blok secara manual ke dalam netlist tingkat gerbang dan menentukan penempatan relatif untuk semua sel di blok. Penempatan relatif tidak menentukan lokasi sel yang tepat, tetapi bagaimana setiap sel ditempatkan sehubungan dengan sel lain di blok. Pendekatan terstruktur biasanya digunakan untuk blok data yang memiliki struktur reguler. Implementasi logika dan pemetaan teknologi blok dilakukan secara manual untuk mempertahankan struktur bus berorientasi data reguler dari blok tersebut alih-alih menghasilkan struktur gerbang acak melalui sintesis. Gerbang logika blok ditempatkan sesuai dengan aliran data melalui blok. Pendekatan ini menawarkan kontrol yang lebih besar atas desain daripada pendekatan sintesis otomatis dan mengarah pada penutupan waktu yang lebih dapat diprediksi. Dimungkinkan juga untuk mendapatkan kinerja dan area yang lebih baik pada desain yang kompleks dan berkinerja tinggi daripada teknik tradisional. Netlist yang dihasilkan dapat diinterpretasikan dengan teknik pemasangan ubin tradisional menggunakan ARM Artisan® Advantage-CE™ atau pustaka yang kompatibel. Pustaka Artisan Advantage-CE berisi lebih dari seribu sel. Selain sel standar yang digunakan pustaka sintesis yang umum, banyak sel taktis disertakan lebih sesuai dengan teknik implementasi khusus. Ini digunakan secara otomatis dalam aliran terstruktur. Pustaka ini secara khusus dirancang untuk menangani persyaratan perutean kepadatan tinggi dari prosesor berkinerja tinggi dengan fokus pada operasi kecepatan tinggi dan daya statis dan dinamis yang rendah. Pengurangan kebocoran dicapai melalui sel MT-CMOS yang memiliki gerbang daya dan flip-fop retensi untuk mendukung mode tidur dan siaga. ARM telah bekerja sama dengan vendor alat untuk memastikan dukungan untuk aliran baru yang penting ini. Akhirnya, beberapa blok sensitif waktu dan area yang paling penting dari desain dicadangkan untuk teknik khusus penuh. Ini termasuk array memori, file register, dan papan skor. Blok-blok ini berisi campuran logika statis dan dinamis. Tidak ada sirkuit yang diatur waktunya sendiri yang digunakan. Facebook Twitter Whatsapp Newer Older