Register nol memungkinkan penyimpanan beberapa opcode saat merancang arsitektur set instruksi (ISA) baru.
Misalnya, spesifikasi RISC-V utama memiliki 32 instruksi semu yang bergantung pada register nol (lih. Tabel 26.2 dan 26.3). Instruksi semu adalah instruksi yang dipetakan oleh assembler ke instruksi nyata lainnya (misalnya, cabang-jika-sama-ke-nol dipetakan ke cabang-jika-sama). Sebagai perbandingan: spesifikasi RISV-V utama mencantumkan 164 opcode instruksi nyata (yaitu menghitung basis/ekstensi RV(32|64)[IMAFD], alias RV64G). Itu berarti tanpa register nol RISC-V RV64G akan menempati 32 opcode lebih banyak untuk instruksi tersebut (yaitu 20% lebih banyak). Untuk implementasi CPU RISC-V yang konkrit, rasio instruksi real-to-pseudo ini dapat bergeser ke arah mana pun bergantung pada ekstensi mana yang dipilih.
Memiliki lebih sedikit opcode menyederhanakan dekoder instruksi.
Decoder yang lebih kompleks memerlukan lebih banyak waktu untuk mendekode instruksi atau menempati lebih banyak gerbang (yang tidak dapat digunakan untuk unit CPU yang lebih berguna) atau keduanya.
ISA yang sudah ada dan dikembangkan secara bertahap harus berurusan dengan kompatibilitas ke belakang. Jadi, jika desain ISA asli Anda tidak menyertakan register nol, Anda tidak bisa menambahkannya begitu saja di revisi selanjutnya tanpa merusak kompatibilitas. Selain itu, jika ISA Anda yang ada sudah memerlukan decoder yang sangat kompleks, menambahkan register nol tidak akan membuahkan hasil.
Selain ISA RISC-V modern (dikembangkan sejak 2010, ratifikasi pertama pada tahun 2019), ARMv8 AArch64 (ISA 64 Bit yang dirilis pada tahun 2011), berbeda dengan ISA ARM 32 bit sebelumnya, juga dilengkapi register nol. Karena hal ini dan perubahan lainnya, ISA AArch64 memiliki lebih sedikit kesamaan dengan ISA ARM 32 Bit sebelumnya dibandingkan - katakanlah - ISA x86 dan x86-64.
Berbeda dengan AArch64, x86-64 tidak memiliki register nol. Meskipun x86-64 lebih modern dibandingkan ISA x86 32 bit sebelumnya, ISA-nya hanya berubah secara bertahap. Oleh karena itu, ia menampilkan semua opcode x86 yang ada ditambah varian 64 bit, dan dengan demikian dekodernya sudah sangat kompleks.
person
maxschlepzig
schedule
28.12.2019