SPARC (Scalable Processor Architecture, artinya Arsitektur Prosesor yang Dapat Diskalakan) adalah arsitektur set instruksi komputer yang disederhanakan (RISC) yang awalnya dikembangkan oleh Sun Microsystems.[1][2] Desainnya sangat dipengaruhi oleh sistem RISC Berkeley eksperimental yang dikembangkan pada awal 1980-an.[3][2] Pertama kali dikembangkan pada tahun 1986 dan dirilis pada tahun 1987, SPARC adalah salah satu sistem RISC komersial awal yang paling sukses, dan keberhasilannya menyebabkan pengenalan desain RISC serupa dari banyak vendor melalui tahun 1980-an dan 1990-an.

Logo SPARC
Prosesor mikro Sun UltraSPARC II (1997)

Desainnya diserahkan kepada kelompok perdagangan Internasional SPARC pada tahun 1989, dan sejak itu arsitekturnya telah dikembangkan oleh para anggotanya. SPARC International juga bertanggung jawab untuk melisensikan dan mempromosikan arsitektur SPARC, mengelola merek dagang SPARC (termasuk SPARC, yang dimilikinya), dan menyediakan pengujian kesesuaian. SPARC International dimaksudkan untuk menumbuhkan arsitektur SPARC untuk menciptakan ekosistem yang lebih besar; SPARC telah dilisensikan ke beberapa produsen, termasuk Atmel, Bipolar Integrated Technology, Cypress Semiconductor, Fujitsu, Matsushita, dan Texas Instruments. Karena SPARC International, SPARC sepenuhnya terbuka, tidak berpemilik dan bebas royalti.

Implementasi pertama dari arsitektur 32-bit asli (SPARC V7) digunakan di komputer stasiun kerja Sun-4 dan sistem peladen, menggantikan sistem Sun-3 sebelumnya yang didasarkan pada prosesor seri Motorola 68000. SPARC V8 menambahkan sejumlah peningkatan yang merupakan bagian dari seri prosesor SuperSPARC yang dirilis pada tahun 1992. SPARC V9, dirilis pada tahun 1993, memperkenalkan arsitektur 64-bit dan pertama kali dirilis pada prosesor UltraSPARC pada tahun 1995. Kemudian, prosesor SPARC digunakan dalam peladen multiprosesor simetris (SMP) dan akses memori yang tidak seragam (CC-NUMA) yang diproduksi oleh Sun, Solbourne, dan Fujitsu, antara lain.

Mulai September 2017, prosesor SPARC komersial kelas atas terbaru adalah SPARC64 XII Fujitsu (diperkenalkan pada 2017 untuk peladen SPARC M12-nya) dan SPARC M8 Oracle yang diperkenalkan pada September 2017 untuk peladen kelas atas.

Pada hari Jumat, 1 September 2017, setelah putaran PHK yang dimulai di Oracle Labs pada November 2016, Oracle menghentikan desain SPARC setelah menyelesaikan M8. Sebagian besar grup pengembangan inti prosesor di Austin, Texas, diberhentikan, begitu pula tim di Santa Clara, California, dan Burlington, Massachusetts.[4][5]

Fujitsu juga akan menghentikan produksi SPARC mereka (telah beralih memproduksi CPU berbasis ARM mereka sendiri), setelah dua versi "disempurnakan" dari server SPARC M12 Fujitsu yang lebih tua pada tahun 2020–22 (sebelumnya direncanakan untuk tahun 2021) dan lagi pada tahun 2026–27, akhir penjualan pada tahun 2029, server UNIX dan setahun kemudian untuk komputer bingkai utama dan akhir dukungan mereka pada tahun 2034 "untuk mempromosikan modernisasi pelanggan".[6]

Arsitektur SPARC sangat dipengaruhi oleh desain RISC sebelumnya, termasuk RISC I dan II dari University of California, Berkeley dan IBM 801. Desain RISC asli ini minimalis, termasuk sesedikit mungkin fitur atau kode operasi dan bertujuan untuk mengeksekusi instruksi dengan kecepatan hampir satu instruksi per siklus jam. Ini membuat mereka mirip dengan arsitektur MIPS dalam banyak hal, termasuk kurangnya instruksi seperti perkalian atau pembagian. Fitur lain dari SPARC yang dipengaruhi oleh gerakan RISC awal ini adalah slot penundaan cabang.

Prosesor SPARC biasanya berisi sebanyak 160 register tujuan umum. Menurut spesifikasi "Oracle SPARC Architecture 2015", sebuah "implementasi dapat berisi 72 hingga 640 register 64-bit tujuan umum".[7] Pada titik mana pun, hanya 32 dari mereka yang langsung terlihat oleh perangkat lunak — 8 adalah satu set register global (salah satunya, g0, terprogram ke nol, jadi hanya tujuh dari mereka yang dapat digunakan sebagai register) dan 24 lainnya adalah dari tumpukan register. Ke-24 register ini membentuk apa yang disebut jendela register, dan pada panggilan/pengembalian fungsi, jendela ini dipindahkan ke atas dan ke bawah tumpukan register. Setiap jendela memiliki 8 register lokal dan berbagi 8 register dengan masing-masing jendela yang berdekatan. Register bersama digunakan untuk meneruskan parameter fungsi dan mengembalikan nilai, dan register lokal digunakan untuk mempertahankan nilai lokal di seluruh panggilan fungsi.

"Scalable" di SPARC berasal dari fakta bahwa spesifikasi SPARC memungkinkan implementasi untuk menskalakan dari prosesor tertanam hingga prosesor server besar, semuanya berbagi set instruksi inti (tanpa hak istimewa) yang sama. Salah satu parameter arsitektur yang dapat diukur adalah jumlah jendela register yang diimplementasikan; spesifikasi memungkinkan dari tiga hingga 32 jendela untuk diimplementasikan, sehingga implementasi dapat memilih untuk mengimplementasikan semua 32 untuk memberikan efisiensi tumpukan panggilan maksimum, atau untuk menerapkan hanya tiga untuk mengurangi biaya dan kompleksitas desain, atau untuk mengimplementasikan beberapa nomor di antaranya. Arsitektur lain yang menyertakan fitur berkas register serupa termasuk Intel i960, IA-64, dan AMD 29000.

Arsitektur ini telah melalui beberapa revisi. Ini memperoleh fungsionalitas perkalian dan pembagian perangkat keras di Versi 8.[8][9] 64-bit (pengalamatan dan data) ditambahkan ke spesifikasi SPARC versi 9 yang diterbitkan pada tahun 1994.[10]

Dalam SPARC Versi 8, berkas register titik kambang memiliki 16 register presisi ganda. Masing-masing dapat digunakan sebagai dua register presisi tunggal, menyediakan total 32 register presisi tunggal. Sepasang register presisi ganda ganjil genap dapat digunakan sebagai register presisi quad, sehingga memungkinkan 8 register presisi quad. SPARC Versi 9 menambahkan 16 register presisi ganda (yang juga dapat diakses sebagai 8 register presisi quad), tetapi register tambahan ini tidak dapat diakses sebagai register presisi tunggal. Tidak ada CPU SPARC yang mengimplementasikan operasi quad-presisi dalam perangkat keras pada tahun 2004.[11]

Instruksi penambahan dan pengurangan yang ditandai melakukan penambahan dan pengurangan pada nilai dengan memeriksa bahwa dua bit terbawah dari kedua operan adalah 0 dan melaporkan overflow jika tidak. Ini dapat berguna dalam implementasi waktu nyata untuk ML, Lisp, dan bahasa serupa yang mungkin menggunakan format integer yang diberi tag.

Endian arsitektur SPARC V8 32-bit adalah murni endian besar. Arsitektur SPARC V9 64-bit menggunakan instruksi endian besar, tetapi dapat mengakses data dalam urutan bita endian besar atau endian kecil, dipilih baik pada level instruksi aplikasi (muat-simpan) atau pada level halaman memori (melalui pengaturan MMU). Yang terakhir ini sering digunakan untuk mengakses data dari perangkat endian kecil, seperti yang ada di bus PCI.

Referensi

sunting
  1. ^ "Fujitsu to take ARM into the realm of Super | The CPU Shack Museum". The CPU Shack Museum | CPU History Museum for Intel CPUs, AMD Processor, Cyrix Microprocessors, Microcontrollers and more. 2016-06-22. Diakses tanggal 2022-06-23. 
  2. ^ a b "Timeline | SPARC International, Inc" (dalam bahasa Inggris). Diakses tanggal 2022-06-23. 
  3. ^ "cpu-collection.de >> SPARC >> Fujitsu". www.cpu-collection.de. Diakses tanggal 2022-06-23. 
  4. ^ "Sun set: Oracle closes down last Sun product lines". ZDNet (dalam bahasa Inggris). Diakses tanggal 2022-06-23. 
  5. ^ Francisco, Shaun Nichols in San. "Oracle finally decides to stop prolonging the inevitable, begins hardware layoffs". www.theregister.com (dalam bahasa Inggris). Diakses tanggal 2022-06-23. 
  6. ^ "Roadmap : Fujitsu Global". www.fujitsu.com. Diakses tanggal 2022-06-23. 
  7. ^ "Oracle SPARC Architecture 2015: One Architecture ... Multiple Innovative Implementations" (PDF). Diarsipkan dari versi asli (PDF) tanggal 2016-04-24. 
  8. ^ "SPARC Options (Using the GNU Compiler Collection (GCC))". gcc.gnu.org. Diakses tanggal 2022-06-23. 
  9. ^ "SPARC Optimizations With GCC – OSnews". www.osnews.com. Diakses tanggal 2022-06-23. 
  10. ^ "The SPARC Architecture Manual, Version 9" (PDF). Diarsipkan dari versi asli tanggal 2012-01-18. 
  11. ^ "A P P E N D I X B - SPARC Behavior and Implementation". docs.oracle.com (dalam bahasa Inggris). Diakses tanggal 2022-06-23. 

Pranala luar

sunting