arsitektur ARM

dari Wikipedia, ensiklopedia gratis
Langsung ke navigasi Langsung ke pencarian

LENGAN
Arm logo 2017.svg
Perancang
bit32-bit , 64-bit
Diperkenalkan1985 ; 37 tahun yang lalu (1985)
DesainRISC
JenisDaftar -Daftar
PercabanganKode kondisi , bandingkan dan cabang
MembukaHak milik
ARM 64/32-bit
Diperkenalkan2011 ; 11 tahun yang lalu (2011)
Versi: kapanARMv8-A, ARMv8.1-A, ARMv8.2-A, ARMv8.3-A, ARMv8.4-A, ARMv8.5-A, ARMv8.6-A, ARMv8-R, ARMv9
pengkodeanAArch64 /A64 dan AArch32 /A32 menggunakan instruksi 32-bit, T32 (Thumb-2) menggunakan instruksi campuran 16- dan 32-bit [1]
EndiannessBi (sedikit sebagai default)
EkstensiSVE , SVE2, UKM, AES, SHA, TME; Semua wajib: Jempol-2 , Neon , VFPv4-D16, VFPv4; usang: Jazelle
Daftar
Tujuan umumRegister bilangan bulat 31 × 64-bit [1]
titik mengambangRegister 32 × 128-bit [1] untuk FP skalar 32- dan 64-bit atau FP SIMD atau bilangan bulat; atau kriptografi
ARM 32-bit (Korteks)
Versi: kapanARMv8-R, ARMv8-M, ARMv8.1-M, ​​ARMv7-A, ARMv7-R, ARMv7E-M, ARMv7-M, ARMv6-M
pengkodean32-bit, kecuali ekstensi Thumb-2 menggunakan instruksi campuran 16- dan 32-bit.
EndiannessBi (sedikit sebagai default)
EkstensiJempol-2 , Neon , Jazelle , DSP, Jenuh, FPv4-SP, FPv5, Helium
Daftar
Tujuan umum15 × register integer 32-bit, termasuk R14 (register tautan), tetapi tidak R15 (PC)
titik mengambangRegister hingga 32 × 64-bit, [2] SIMD/floating-point (opsional)
ARM 32-bit (warisan)
Versi: kapanARMv6, ARMv5, ARMv4T, ARMv3, ARMv2
pengkodean32-bit, kecuali ekstensi Thumb menggunakan instruksi campuran 16- dan 32-bit.
EndiannessBi (sedikit sebagai default) di ARMv3 dan di atasnya
EkstensiJempol , Jazelle
Daftar
Tujuan umum15 × register integer 32-bit, termasuk R14 (register tautan), tetapi tidak R15 (PC, pengalamatan 26-bit pada versi yang lebih lama)
titik mengambangTidak ada

ARM (ditulis dalam huruf kecil sebagai arm , sebelumnya merupakan akronim untuk Advanced RISC Machines dan awalnya Acorn RISC Machine ) adalah keluarga arsitektur set instruksi yang dikurangi (RISC) untuk prosesor komputer , dikonfigurasi untuk berbagai lingkungan. Arm Ltd. mengembangkan arsitektur dan melisensikannya kepada perusahaan lain, yang merancang produk mereka sendiri yang mengimplementasikan satu atau lebih arsitektur tersebut, termasuk desain sistem pada chip (SoC) dan sistem pada modul (SoM), yang menggabungkan berbagai komponen seperti memori, antarmuka, dan radio . Itu juga mendesaincore yang mengimplementasikan arsitektur set instruksi ini dan melisensikan desain ini ke banyak perusahaan yang menggabungkan desain inti tersebut ke dalam produk mereka sendiri.

Ada beberapa generasi desain ARM. ARM1 asli menggunakan struktur internal 32-bit tetapi memiliki ruang alamat 26-bit yang membatasi memori utama 64 MB . Batasan ini telah dihapus dalam seri ARMv3, yang memiliki ruang alamat 32-bit, dan beberapa generasi tambahan hingga ARMv7 tetap 32-bit. Dirilis pada tahun 2011, arsitektur ARMv8-A menambahkan dukungan untuk ruang alamat 64- bit dan aritmatika 64-bit dengan set instruksi panjang tetap 32-bit yang baru. [3] Arm Ltd. juga telah merilis serangkaian set instruksi tambahan untuk aturan yang berbeda; ekstensi "Thumb" menambahkan instruksi 32- dan 16-bit untuk meningkatkan kepadatan kode , sementara Jazellemenambahkan instruksi untuk menangani bytecode Java secara langsung . Perubahan yang lebih baru termasuk penambahan simultan multithreading (SMT) untuk meningkatkan kinerja atau toleransi kesalahan . [4]

Karena biayanya yang rendah, konsumsi daya yang minimal, dan pembangkitan panas yang lebih rendah daripada pesaingnya, prosesor ARM diinginkan untuk perangkat yang ringan, portabel, bertenaga baterai, termasuk smartphone , laptop dan komputer tablet , dan sistem tertanam lainnya . [5] [6] [7] Namun, prosesor ARM juga digunakan untuk desktop dan server , termasuk superkomputer tercepat di dunia . [8] Dengan lebih dari 200 miliar chip ARM diproduksi, [9] [10] [11] pada tahun 2021 , ARM adalah arsitektur set instruksi yang paling banyak digunakan(ISA) dan ISA diproduksi dalam jumlah terbesar. [12] [6] [13] [14] [15] Saat ini, core Cortex yang banyak digunakan , core "klasik" yang lebih tua, dan varian core SecurCore khusus tersedia untuk masing-masing untuk menyertakan atau mengecualikan kemampuan opsional.

Sejarah

BBC Mikro

Desain pertama yang sukses secara luas dari Acorn Computers adalah BBC Micro , yang diperkenalkan pada Desember 1981. Ini adalah mesin yang relatif konvensional berdasarkan pada CPU MOS Technology 6502 tetapi memiliki kinerja dua kali lipat dari desain pesaing seperti Apple II karena penggunaannya yang lebih cepat. memori akses acak dinamis (DRAM). DRAM khas zaman itu berjalan sekitar 2 MHz; Acorn mengatur kesepakatan dengan Hitachi untuk pasokan suku cadang 4 MHz yang lebih cepat. [16]

Mesin pada zaman itu umumnya berbagi memori antara prosesor dan framebuffer , yang memungkinkan prosesor memperbarui konten layar dengan cepat tanpa harus melakukan input/output (I/O) terpisah. Karena waktu tampilan video sangat tepat, perangkat keras video harus memiliki akses prioritas ke memori itu. Karena kekhasan desain 6502, CPU membiarkan memori tidak tersentuh selama separuh waktu. Jadi dengan menjalankan CPU pada 1 MHz, sistem video dapat membaca data selama waktu tidak aktif tersebut, menggunakan total bandwidth RAM sebesar 2 MHz. Di BBC Micro, penggunaan RAM 4 MHz memungkinkan teknik yang sama digunakan, tetapi berjalan dengan kecepatan dua kali lipat. Ini memungkinkannya untuk mengungguli mesin serupa di pasar. [17]

Komputer Bisnis Acorn

1981 juga merupakan tahun dimana IBM Personal Computer diperkenalkan. Menggunakan Intel 8088 yang baru-baru ini diperkenalkan , CPU 16-bit dibandingkan dengan desain 8-bit 6502 , ia mampu menawarkan kinerja keseluruhan yang lebih tinggi. Pengenalannya mengubah pasar komputer desktop secara radikal: apa yang sebagian besar merupakan pasar hobi dan permainan yang muncul selama lima tahun sebelumnya mulai berubah menjadi alat bisnis yang harus dimiliki di mana desain 8-bit sebelumnya tidak dapat bersaing. Bahkan desain 32-bit yang lebih baru juga datang ke pasar, seperti Motorola 68000 [18] dan National Semiconductor NS32016 . [19]

Acorn mulai mempertimbangkan bagaimana bersaing di pasar ini dan menghasilkan desain kertas baru bernama Acorn Business Computer . Mereka menetapkan tujuan untuk memproduksi mesin dengan kinerja sepuluh kali lipat dari BBC Micro, tetapi dengan harga yang sama. [20] Ini akan mengungguli dan menurunkan harga PC. Pada saat yang sama, pengenalan Apple Lisa baru-baru ini membawa konsep antarmuka pengguna grafis (GUI) ke khalayak yang lebih luas dan menyarankan masa depan milik mesin dengan GUI. [21] Namun, Lisa berharga $9.995, karena dikemas dengan chip pendukung, memori dalam jumlah besar, dan hard disk drive , semuanya sangat mahal saat itu. [22]

Para insinyur kemudian mulai mempelajari semua desain CPU yang tersedia. Kesimpulan mereka tentang desain 16-bit yang ada adalah bahwa mereka jauh lebih mahal dan masih "sedikit omong kosong", [23] hanya menawarkan kinerja yang sedikit lebih tinggi daripada desain BBC Micro mereka. Mereka juga hampir selalu menuntut sejumlah besar chip pendukung untuk beroperasi bahkan pada tingkat itu, yang menaikkan biaya komputer secara keseluruhan. Sistem ini tidak akan mencapai tujuan desain. [23] Mereka juga mempertimbangkan desain 32-bit yang baru, tetapi ini bahkan lebih mahal dan memiliki masalah yang sama dengan chip dukungan. [24] Menurut Sophie Wilson , semua prosesor yang diuji pada saat itu memiliki kinerja yang hampir sama, dengan bandwidth sekitar 4 Mbit/detik. [25][Sebuah]

Dua peristiwa penting membawa Acorn menuju ARM. Salah satunya adalah publikasi serangkaian laporan dari University of California, Berkeley , yang menyatakan bahwa desain chip sederhana dapat memiliki kinerja yang sangat tinggi, jauh lebih tinggi daripada desain 32-bit terbaru di pasar. [26] Yang kedua adalah kunjungan Steve Furber dan Sophie Wilson ke Western Design Center , sebuah perusahaan yang dijalankan oleh Bill Mensch dan saudara perempuannya, yang telah menjadi penerus logis tim MOS dan menawarkan versi baru seperti WDC 65C02 . Tim Acorn melihat siswa sekolah menengah membuat tata letak chip pada mesin Apple II, yang menyarankan agar siapa pun dapat melakukannya. [27] [28]Sebaliknya, kunjungan ke firma desain lain yang bekerja pada CPU 32-bit modern mengungkapkan sebuah tim dengan lebih dari selusin anggota yang sudah dalam revisi H desain mereka namun masih mengandung bug. Ini memperkuat keputusan mereka pada akhir tahun 1983 untuk memulai desain CPU mereka sendiri, Mesin Acorn RISC. [29]

Konsep desain

Desain asli Berkeley RISC dalam beberapa hal merupakan sistem pengajaran, tidak dirancang khusus untuk kinerja langsung. Pada konsep dasar register-heavy, ARM menambahkan sejumlah catatan desain yang diterima dengan baik dari 6502. Yang utama di antaranya adalah kemampuan untuk melayani interupsi dengan cepat , yang memungkinkan mesin menawarkan kinerja input/output yang wajar tanpa tambahan perangkat keras eksternal. . Untuk menawarkan interupsi berkinerja tinggi yang serupa dengan 6502, desain ARM membatasi ruang alamat fisiknya menjadi 24 bit pointer yang menangani kata-kata 4-byte, jadi 26 bit pointer yang menangani byte, menghasilkan 64 MB. Semua instruksi ARM disejajarkan pada batas kata sehingga alamat instruksi adalah alamat kata, jadipenghitung program (PC) sehingga hanya perlu 24 bit. Ukuran 24-bit ini memungkinkan PC untuk disimpan bersama dengan delapan flag prosesor dalam satu register 32-bit. Itu berarti bahwa pada penerimaan interupsi, seluruh status mesin dapat disimpan dalam satu operasi, sedangkan jika PC memiliki nilai 32-bit penuh, itu akan memerlukan operasi terpisah untuk menyimpan PC dan flag status. [30]

Perubahan lain, dan di antara yang paling penting dalam hal kinerja dunia nyata praktis, adalah modifikasi set instruksi untuk memanfaatkan mode halaman DRAM . Baru-baru ini diperkenalkan, mode halaman memungkinkan akses memori berikutnya berjalan dua kali lebih cepat jika mereka secara kasar berada di lokasi yang sama, atau "halaman". Desain Berkeley tidak mempertimbangkan mode halaman, dan memperlakukan semua memori secara setara. Desain ARM menambahkan instruksi akses memori seperti vektor khusus, "S-cycles", yang dapat digunakan untuk mengisi atau menyimpan beberapa register dalam satu halaman menggunakan mode halaman. Ini menggandakan kinerja memori ketika mereka dapat digunakan, dan sangat penting untuk kinerja grafis. [31]

Desain Berkeley RISC menggunakan jendela register untuk mengurangi jumlah penyimpanan dan pemulihan register yang dilakukan dalam panggilan prosedur ; desain ARM tidak mengadopsi ini.

Wilson mengembangkan set instruksi, menulis simulasi prosesor di BBC BASIC yang berjalan di BBC Micro dengan prosesor 6502 kedua . [32] [33] Ini meyakinkan para insinyur Acorn bahwa mereka berada di jalur yang benar. Wilson mendekati CEO Acorn, Hermann Hauser , dan meminta lebih banyak sumber daya. Hauser memberikan persetujuannya dan membentuk tim kecil untuk merancang prosesor yang sebenarnya berdasarkan ISA Wilson. [34] Proyek Acorn RISC Machine resmi dimulai pada Oktober 1983.

ARM1

Prosesor ARM1 ke-2 untuk BBC Micro

Acorn memilih Teknologi VLSI sebagai "mitra silikon", karena mereka adalah sumber ROM dan chip khusus untuk Acorn. Acorn menyediakan desain dan VLSI menyediakan tata letak dan produksi. Sampel pertama dari silikon ARM bekerja dengan baik saat pertama kali diterima dan diuji pada 26 April 1985. [5] Dikenal sebagai ARM1, versi ini berjalan pada 6 MHz. [35]

Aplikasi ARM pertama adalah sebagai prosesor kedua untuk BBC Micro, yang membantu dalam mengembangkan perangkat lunak simulasi untuk menyelesaikan pengembangan chip pendukung (VIDC, IOC, MEMC), dan mempercepat perangkat lunak CAD yang digunakan dalam pengembangan ARM2. Wilson kemudian menulis ulang BBC BASIC dalam bahasa rakitan ARM . Pengetahuan mendalam yang diperoleh dari merancang set instruksi memungkinkan kode menjadi sangat padat, menjadikan ARM BBC BASIC tes yang sangat baik untuk emulator ARM mana pun.

ARM2

Hasil simulasi pada papan ARM1 menyebabkan pengenalan desain ARM2 pada akhir 1986 yang berjalan pada 8 MHz, dan versi awal 1987 dengan kecepatan 10 hingga 12 MHz. [b] Perubahan signifikan dalam arsitektur yang mendasarinya adalah penambahan pengganda Booth , sedangkan penggandaan sebelumnya harus dilakukan dalam perangkat lunak. [37] Selanjutnya, mode permintaan Interupsi Cepat yang baru, singkatnya FIQ, mengizinkan register 8 hingga 14 untuk diganti sebagai bagian dari interupsi itu sendiri. Ini berarti permintaan FIQ tidak harus menyimpan register mereka, lebih lanjut mempercepat interupsi. [38]

ARM2 kira-kira tujuh kali kinerja sistem berbasis 7 MHz 68000 seperti Commodore Amiga atau Macintosh SE . Kecepatannya dua kali lebih cepat dari Intel 80386 yang berjalan pada 16 MHz, dan kecepatannya hampir sama dengan komputer supermini multi-prosesor VAX-11/784 . Satu-satunya sistem yang mengalahkannya adalah workstation berbasis Sun SPARC dan MIPS R2000 RISC . [39] Lebih lanjut, karena CPU dirancang untuk I/O berkecepatan tinggi, ia tidak menggunakan banyak chip pendukung yang terlihat pada mesin ini, khususnya, ia tidak memiliki akses memori langsung khusus.(DMA) controller yang banyak dijumpai pada workstation. Sistem grafis juga disederhanakan berdasarkan asumsi dasar yang sama tentang memori dan waktu. Hasilnya adalah desain yang disederhanakan secara dramatis, menawarkan kinerja yang setara dengan workstation mahal tetapi pada titik harga yang mirip dengan desktop kontemporer. [39]

ARM2 menampilkan bus data 32-bit , ruang alamat 26-bit , dan 27 register 32-bit . ARM2 memiliki jumlah transistor hanya 30.000, [40] dibandingkan dengan model 68000 Motorola yang lebih tua dengan sekitar 68.000. Sebagian besar kesederhanaan ini berasal dari kurangnya mikrokode , yang mewakili sekitar seperempat hingga sepertiga dari transistor 68000, dan kurangnya (seperti kebanyakan CPU saat ini) cache . Kesederhanaan ini memungkinkan ARM2 memiliki konsumsi daya yang rendah, namun menawarkan kinerja yang lebih baik daripada Intel 80286 .

Penerusnya, ARM3, diproduksi dengan cache 4 KB, yang selanjutnya meningkatkan kinerja. [41] Bus alamat diperluas hingga 32 bit di ARM6, tetapi kode program masih harus berada dalam memori 64 MB pertama dalam mode kompatibilitas 26-bit, karena bit yang dicadangkan untuk flag status. [42]

Advanced RISC Machines Ltd. – ARM6

Sistem berbasis mikroprosesor pada sebuah chip
Mati dari mikroprosesor ARM610

Pada akhir 1980-an, Apple Computer dan VLSI Technology mulai bekerja dengan Acorn pada versi inti ARM yang lebih baru. Pada tahun 1990, Acorn memisahkan tim desain menjadi perusahaan baru bernama Advanced RISC Machines Ltd., [43] [44] [45] yang menjadi ARM Ltd. ketika perusahaan induknya, Arm Holdings plc, melayang di London Stock Exchange dan NASDAQ pada tahun 1998. [46] Pekerjaan Apple-ARM yang baru pada akhirnya akan berkembang menjadi ARM6, pertama kali dirilis pada awal tahun 1992. Apple menggunakan ARM610 berbasis ARM6 sebagai dasar untuk PDA Apple Newton mereka.

Pemegang lisensi awal

Pada tahun 1994, Acorn menggunakan ARM610 sebagai central processing unit (CPU) utama di komputer RiscPC mereka. DEC melisensikan arsitektur ARMv4 dan menghasilkan StrongARM . [47] Pada 233  MHz , CPU ini hanya menggunakan satu watt (versi yang lebih baru menarik jauh lebih sedikit). Pekerjaan ini kemudian diteruskan ke Intel sebagai bagian dari penyelesaian gugatan, dan Intel mengambil kesempatan untuk melengkapi lini i960 mereka dengan StrongARM. Intel kemudian mengembangkan implementasi kinerja tinggi sendiri bernama XScale, yang sejak itu dijual ke Marvell . Jumlah transistor inti ARM pada dasarnya tetap sama selama perubahan ini; ARM2 memiliki 30.000 transistor, [48]sementara ARM6 hanya tumbuh menjadi 35.000. [49]

Pangsa pasar

Pada tahun 2005, sekitar 98% dari semua ponsel yang terjual menggunakan setidaknya satu prosesor ARM. [50] Pada tahun 2010, produsen chip berdasarkan arsitektur ARM melaporkan pengiriman 6,1 miliar prosesor berbasis ARM , mewakili 95% dari smartphone , 35% dari televisi digital dan set-top box dan 10% dari komputer mobile . Pada tahun 2011, arsitektur ARM 32-bit adalah arsitektur yang paling banyak digunakan di perangkat seluler dan arsitektur 32-bit paling populer di sistem tertanam. [51] Pada tahun 2013, 10 miliar diproduksi [52] dan "chip berbasis ARM ditemukan di hampir 60 persen perangkat seluler dunia". [53]

Lisensi

Die dari mikrokontroler STM32F103VGT6 ARM Cortex-M3 dengan memori flashMB oleh STMicroelectronics

Lisensi inti

Bisnis utama Arm Ltd. adalah menjual inti IP , yang digunakan oleh pemegang lisensi untuk membuat mikrokontroler (MCU), CPU , dan sistem-on-chip berdasarkan inti tersebut. Pabrikan desain asli menggabungkan inti ARM dengan bagian lain untuk menghasilkan perangkat yang lengkap, biasanya perangkat yang dapat dibangun di pabrik fabrikasi semikonduktor (fab) yang ada dengan biaya rendah dan tetap memberikan kinerja yang substansial. Implementasi yang paling sukses adalah ARM7TDMI dengan ratusan juta terjual. Atmel telah menjadi pusat desain pendahulu dalam sistem tertanam berbasis ARM7TDMI.

Arsitektur ARM yang digunakan di smartphone, PDA, dan perangkat seluler lainnya berkisar dari ARMv5 hingga ARMv8-A.

Pada tahun 2009, beberapa produsen memperkenalkan netbook berbasis CPU arsitektur ARM, bersaing langsung dengan netbook berbasis Intel Atom . [54]

Arm Ltd. menawarkan berbagai persyaratan lisensi, bervariasi dalam biaya dan hasil. Arm Ltd. memberikan kepada semua pemegang lisensi deskripsi perangkat keras inti ARM yang dapat diintegrasikan serta perangkat pengembangan perangkat lunak yang lengkap ( kompiler , debugger , kit pengembangan perangkat lunak ) dan hak untuk menjual silikon yang diproduksi yang mengandung CPU ARM.

Paket SoC yang mengintegrasikan desain inti ARM termasuk tiga generasi pertama Nvidia Tegra, keluarga Quatro dari CSR plc, Nova dan NovaThor dari ST-Ericsson, Precision32 MCU dari Silicon Labs, produk OMAP dari Texas Instruments, produk Hummingbird dan Exynos dari Samsung, A4 , A5 , dan A5X dari Apple , dan i.MX NXP . _

Penerima lisensi Fabless , yang ingin mengintegrasikan inti ARM ke dalam desain chip mereka sendiri, biasanya hanya tertarik untuk memperoleh inti kekayaan intelektual semikonduktor terverifikasi yang siap diproduksi . Untuk pelanggan ini, Arm Ltd. memberikan deskripsi netlist gerbang dari inti ARM yang dipilih, bersama dengan model simulasi yang diabstraksi dan program pengujian untuk membantu integrasi dan verifikasi desain. Pelanggan yang lebih ambisius, termasuk produsen perangkat terintegrasi (IDM) dan operator pengecoran, memilih untuk memperoleh IP prosesor dalam RTL yang dapat disintesis ( Verilog) membentuk. Dengan RTL yang dapat disintesis, pelanggan memiliki kemampuan untuk melakukan pengoptimalan dan ekstensi tingkat arsitektur. Hal ini memungkinkan perancang untuk mencapai tujuan desain eksotis yang tidak mungkin dilakukan dengan netlist yang tidak dimodifikasi ( kecepatan clock tinggi , konsumsi daya sangat rendah, ekstensi set instruksi, dll.). Meskipun Arm Ltd. tidak memberikan hak kepada pemegang lisensi untuk menjual kembali arsitektur ARM itu sendiri, pemegang lisensi dapat dengan bebas menjual produk manufaktur seperti perangkat chip, papan evaluasi, dan sistem yang lengkap. Pengecoran pedagang bisa menjadi kasus khusus; mereka tidak hanya diizinkan untuk menjual silikon jadi yang mengandung inti ARM, mereka umumnya memegang hak untuk membuat ulang inti ARM untuk pelanggan lain.

Arm Ltd. memberi harga IP-nya berdasarkan nilai yang dirasakan. Core ARM berperforma lebih rendah biasanya memiliki biaya lisensi yang lebih rendah daripada core berperforma lebih tinggi. Dalam istilah implementasi, inti yang dapat disintesis harganya lebih mahal daripada inti makro keras (kotak hitam). Masalah harga yang rumit, pedagang pengecoran yang memegang lisensi ARM, seperti Samsung atau Fujitsu, dapat menawarkan pengurangan biaya lisensi kepada pelanggan yang luar biasa. Sebagai imbalan untuk memperoleh inti ARM melalui layanan desain in-house pengecoran, pelanggan dapat mengurangi atau menghilangkan pembayaran biaya lisensi dimuka ARM.

Dibandingkan dengan pengecoran semikonduktor khusus (seperti TSMC dan UMC ) tanpa layanan desain internal, Fujitsu/Samsung membebankan biaya dua hingga tiga kali lebih banyak per wafer yang diproduksi . [ kutipan diperlukan ] Untuk aplikasi volume rendah hingga menengah, pengecoran layanan desain menawarkan harga keseluruhan yang lebih rendah (melalui subsidi biaya lisensi). Untuk suku cadang produksi massal volume tinggi, pengurangan biaya jangka panjang yang dapat dicapai melalui harga wafer yang lebih rendah mengurangi dampak biaya NRE (Non-Recurring Engineering) ARM, menjadikan pengecoran khusus pilihan yang lebih baik.

Perusahaan yang telah mengembangkan chip dengan inti yang dirancang oleh Arm Holdings termasuk anak perusahaan Annapurna Labs Amazon.com , [55] Analog Devices , Apple , AppliedMicro (sekarang: MACOM Technology Solutions [56] ), Atmel , Broadcom , Cavium , Cypress Semiconductor , Semikonduktor Skala Bebas (sekarang Semikonduktor NXP ), Huawei , Intel , [ meragukan ] Maxim Integrated , Nvidia , NXP , Qualcomm , Renesas , Samsung Electronics , ST Microelectronics , Texas Instruments dan Xilinx .

Dibangun di atas lisensi Teknologi ARM Cortex

Pada bulan Februari 2016, ARM mengumumkan lisensi Built on ARM Cortex Technology, yang sering disingkat menjadi lisensi Built on Cortex (BoC). Lisensi ini memungkinkan perusahaan untuk bermitra dengan ARM dan membuat modifikasi pada desain ARM Cortex. Modifikasi desain ini tidak akan dibagikan dengan perusahaan lain. Desain inti semi-kustom ini juga memiliki kebebasan merek, misalnya Kryo 280 .

Perusahaan yang saat ini merupakan pemegang lisensi Teknologi Built on ARM Cortex termasuk Qualcomm . [57]

Lisensi arsitektur

Perusahaan juga dapat memperoleh lisensi arsitektur ARM untuk merancang inti CPU mereka sendiri menggunakan set instruksi ARM. Core ini harus sepenuhnya mematuhi arsitektur ARM. Perusahaan yang telah merancang inti yang menerapkan arsitektur ARM termasuk Apple, AppliedMicro (sekarang: Ampere Computing ), Broadcom, Cavium (sekarang: Marvell), Digital Equipment Corporation , Intel, Nvidia, Qualcomm, Samsung Electronics, Fujitsu , dan NUVIA Inc.

Akses Fleksibel ARM

Pada 16 Juli 2019, ARM mengumumkan ARM Flexible Access. Akses Fleksibel ARM menyediakan akses tak terbatas ke kekayaan intelektual (IP) ARM yang disertakan untuk pengembangan. Biaya lisensi per produk diperlukan setelah pelanggan mencapai tapeout pengecoran atau pembuatan prototipe. [58] [59]

75% dari IP terbaru ARM selama dua tahun terakhir termasuk dalam Akses Fleksibel ARM. Per Oktober 2019:

  • CPU: Cortex-A5 , Cortex-A7 , Cortex-A32 , Cortex-A34 , Cortex-A35 , Cortex-A53 , Cortex-R5 , Cortex-R8 , Cortex-R52 , Cortex-M0 , Cortex-M0+ , Cortex-M3 , Korteks-M4 , Korteks-M7 , Korteks-M23 , Korteks-M33
  • GPU: Mali-G52 , Mali-G31 . Termasuk Kit Pengembangan Driver Mali (DDK).
  • Interkoneksi: CoreLink NIC-400, CoreLink NIC-450, CoreLink CCI-400, CoreLink CCI-500, CoreLink CCI-550, ADB-400 AMBA, XHB-400 AXI-AHB
  • Pengontrol Sistem: CoreLink GIC-400, CoreLink GIC-500, PL192 VIC, Pembungkus Memori TrustZone BP141, CoreLink TZC-400, CoreLink L2C-310, CoreLink MMU-500, Antarmuka Memori BP140
  • IP Keamanan: CryptoCell-312, CryptoCell-712, TrustZone True Random Number Generator
  • Pengontrol Periferal: PL011 UART, PL022 SPI, PL031 RTC
  • Debug & Trace: CoreSight SoC-400, CoreSight SDC-600, CoreSight STM-500, CoreSight System Trace Macrocell, CoreSight Trace Memory Controller
  • Kit Desain: Corstone-101, Corstone-201
  • IP Fisik: PIK Artisan untuk Cortex-M33 TSMC 22ULL ​​termasuk kompiler memori, pustaka logika, GPIO, dan dokumentasi
  • Alat & Bahan: Socrates IP ToolingARM Design Studio, Model Sistem Virtual
  • Dukungan: Dukungan Teknis ARM Standar, pelatihan online ARM, pembaruan pemeliharaan, kredit untuk pelatihan di tempat dan ulasan desain

Inti

Arsitektur
Lebar bit inti
inti Profil Referensi
_
Arm Ltd. Pihak ketiga
ARMv1
32
ARM1
Klasik
ARMv2
32
ARM2 , ARM250, ARM3 Amber , STORM Buka Inti Lunak [60]
Klasik
ARMv3
32
ARM6 , ARM7
Klasik
ARMv4
32
ARM8 Core Prosesor Sumber Terbuka StrongARM , FA526, ZAP
Klasik
ARMv4T
32
ARM7TDMI , ARM9TDMI , SecurCore SC100
Klasik
ARMv5TE
32
ARM7EJ , ARM9E , ARM10E Skala X, FA626TE , Feroceon, PJ1/Mohawk
Klasik
ARMv6
32
ARM11
Klasik
ARMv6-M
32
ARM Cortex-M0 , ARM Cortex-M0+ , ARM Cortex-M1 , SecurCore SC000
ARMv7-M
32
ARM Cortex-M3 , SecurCore SC300 Apple M7
Mikrokontroler
ARMv7E-M
32
ARM Cortex-M4 , ARM Cortex-M7
Mikrokontroler
ARMv8-M
32
ARM Cortex-M23 , [62] ARM Cortex-M33 [63]
Mikrokontroler
ARMv7-R
32
ARM Cortex-R4 , ARM Cortex-R5 , ARM Cortex-R7 , ARM Cortex-R8
ARMv8-R
32
ARM Cortex-R52
Waktu sebenarnya
64
ARM Cortex-R82
Waktu sebenarnya
ARMv7-A
32
ARM Cortex-A5 , ARM Cortex-A7 , ARM Cortex-A8 , ARM Cortex-A9 , ARM Cortex-A12 , ARM Cortex-A15 , ARM Cortex-A17 Qualcomm Scorpion / Krait , PJ4/Sheeva, Apple Swift ( A6 , A6X )
ARMv8-A
32
ARM Cortex-A32 [68]
Aplikasi
64 /32
ARM Cortex-A35 , [69] ARM Cortex-A53 , ARM Cortex-A57 , [70] ARM Cortex-A72 , [71] ARM Cortex-A73 [72] X-Gene , Nvidia Denver 1/2 , Cavium ThunderX , AMD K12 , Apple Cyclone ( A7 )/Typhoon ( A8 , A8X )/Twister ( A9 , A9X )/Badai+Zephyr ( A10 , A10X ), Qualcomm Kryo , Samsung M1 /M2 ("Luwak") /M3 ("Meerkat")
Aplikasi
64
ARM Cortex-A34 [79]
Aplikasi
ARMv8.1-A
64/32
TBA Cavium ThunderX2
Aplikasi
ARMv8.2-A
64/32
ARM Cortex-A55 , [81] ARM Cortex-A75 , [82] ARM Cortex-A76 , [83] ARM Cortex-A77 , ARM Cortex-A78 , ARM Cortex-X1 , ARM Neoverse N1 Nvidia Carmel , Samsung M4 ("Cheetah"), Fujitsu A64FX (ARMv8 SVE 512-bit)
Aplikasi
64
ARM Cortex-A65 , ARM Neoverse E1 dengan simultan multithreading (SMT), ARM Cortex-A65AE [87] (juga memiliki misalnya ARMv8.4 Dot Product; dibuat untuk tugas-tugas penting keselamatan seperti sistem bantuan pengemudi tingkat lanjut (ADAS)) Apple Monsoon+Mistral ( A11 ) (September 2017)
Aplikasi
ARMv8.3-A
64/32
TBA
Aplikasi
64
TBA Apple Vortex+Tempest ( A12 , A12X , A12Z ), Marvell ThunderX3 (v8.3+) [88]
Aplikasi
ARMv8.4-A
64/32
TBA
Aplikasi
64
TBA Apple Lightning+Thunder ( A13 ), Apple Firestorm+Icestorm ( A14 ), Apple Firestorm+Icestorm ( M1 )
Aplikasi
ARMv8.5-A
64/32
TBA
Aplikasi
64
TBA Apel Longsor+Badai Salju ( A15 )
Aplikasi
ARMv8.6-A
64
TBA
Aplikasi
ARMv8.7-A
64
TBA
Aplikasi
ARMv9-A
64
ARM Cortex-A510 , ARM Cortex-A710 , ARM Cortex-X2, ARM Neoverse N2
Aplikasi
  1. ^ a b Meskipun sebagian besar jalur data dan register CPU pada prosesor ARM awal adalah 32-bit, memori yang dapat dialamatkan dibatasi hingga 26 bit ; dengan bit atas, kemudian, digunakan untuk flag status dalam register penghitung program.
  2. ^ a b c ARMv3 menyertakan mode kompatibilitas untuk mendukung alamat 26-bit dari versi arsitektur sebelumnya. Mode kompatibilitas ini opsional di ARMv4, dan dihapus seluruhnya di ARMv5.

Arm Holdings menyediakan daftar vendor yang menerapkan inti ARM dalam desain mereka (produk standar khusus aplikasi (ASSP), mikroprosesor, dan mikrokontroler). [92]

Contoh aplikasi core ARM

Tronsmart MK908, "mini PC" Android quad-core berbasis Rockchip , dengan kartu microSD di sebelahnya untuk perbandingan ukuran

Core ARM digunakan di sejumlah produk, terutama PDA dan smartphone . Beberapa contoh komputasi adalah perangkat Surface , Surface 2 dan Pocket PC generasi pertama Microsoft ( setelah 2002 ), iPad Apple dan komputer tablet Eee Pad Transformer Asus , dan beberapa laptop Chromebook . Lainnya termasuk smartphone iPhone Apple dan pemutar media portabel iPod , kamera digital Canon PowerShot , Nintendo Switch hybrid, prosesor keamanan Wii dan konsol game genggam 3DS , dan sistem navigasi belokan demi belokan TomTom .

Pada tahun 2005, Arm Holdings mengambil bagian dalam pengembangan komputer SpiNNaker Universitas Manchester , yang menggunakan inti ARM untuk mensimulasikan otak manusia . [93]

Chip ARM juga digunakan di Raspberry Pi , BeagleBoard , BeagleBone , PandaBoard dan komputer papan tunggal lainnya , karena mereka sangat kecil, murah dan mengkonsumsi daya yang sangat kecil.

Arsitektur 32-bit

ARMv7 digunakan untuk memberi daya pada versi lama komputer papan tunggal Raspberry Pi yang populer seperti Raspberry Pi 2 ini dari tahun 2015.
ARMv7 juga digunakan untuk memberi daya pada keluarga CuBox dari komputer papan tunggal.

Arsitektur ARM 32-bit ( ARM32 ), seperti ARMv7-A (menerapkan AArch32; lihat bagian tentang ARMv8-A untuk informasi lebih lanjut), adalah arsitektur yang paling banyak digunakan di perangkat seluler pada 2011 . [51]

Sejak 1995, berbagai versi Manual Referensi Arsitektur ARM (lihat Tautan eksternal ) telah menjadi sumber utama dokumentasi tentang arsitektur prosesor ARM dan set instruksi, membedakan antarmuka yang harus didukung oleh semua prosesor ARM (seperti semantik instruksi) dari detail implementasi yang mungkin berbeda. Arsitektur telah berkembang dari waktu ke waktu, dan versi tujuh dari arsitektur, ARMv7, mendefinisikan tiga "profil" arsitektur:

  • Profil-A, profil "Aplikasi", diimplementasikan oleh inti 32-bit dalam seri Cortex-A dan oleh beberapa inti non-ARM
  • R-profile, profil "Real-time", diimplementasikan oleh core dalam seri Cortex -R
  • Profil-M, profil "Mikrokontroler", diimplementasikan oleh sebagian besar inti dalam seri Cortex -M

Meskipun profil arsitektur pertama kali didefinisikan untuk ARMv7, ARM selanjutnya mendefinisikan arsitektur ARMv6-M (digunakan oleh Cortex M0 / M0+ / M1 ) sebagai subset dari profil ARMv7-M dengan instruksi yang lebih sedikit.

Mode CPU

Kecuali di M-profile, arsitektur ARM 32-bit menentukan beberapa mode CPU, tergantung pada fitur arsitektur yang diterapkan. Setiap saat, CPU hanya dapat berada dalam satu mode, tetapi dapat beralih mode karena peristiwa eksternal (interupsi) atau secara terprogram. [94]

  • Mode pengguna: Satu-satunya mode yang tidak memiliki hak istimewa.
  • Mode FIQ: Sebuah mode istimewa yang dimasukkan setiap kali prosesor menerima permintaan interupsi cepat .
  • Mode IRQ: Mode istimewa yang dimasukkan setiap kali prosesor menerima interupsi.
  • Mode Supervisor (svc): Mode istimewa yang dimasukkan setiap kali CPU direset atau ketika instruksi SVC dijalankan.
  • Abort mode: Mode istimewa yang dimasukkan setiap kali terjadi prefetch abort atau data abort exception.
  • Mode tidak terdefinisi : Mode istimewa yang dimasukkan setiap kali pengecualian instruksi yang tidak ditentukan terjadi.
  • Mode sistem (ARMv4 dan lebih tinggi): Satu-satunya mode istimewa yang tidak dimasuki oleh pengecualian. Itu hanya dapat dimasukkan dengan mengeksekusi instruksi yang secara eksplisit menulis ke bit mode Current Program Status Register (CPSR) dari mode istimewa lainnya (bukan dari mode pengguna).
  • Mode monitor (Ekstensi Keamanan ARMv6 dan ARMv7, ARMv8 EL3): Mode monitor diperkenalkan untuk mendukung ekstensi TrustZone di inti ARM.
  • Mode Hyp (Ekstensi Virtualisasi ARMv7, ARMv8 EL2): Mode hypervisor yang mendukung persyaratan virtualisasi Popek dan Goldberg untuk operasi CPU yang tidak aman. [95] [96]
  • Mode utas (ARMv6-M, ARMv7-M, ARMv8-M): Mode yang dapat ditentukan sebagai hak istimewa atau tidak. Apakah Main Stack Pointer (MSP) atau Process Stack Pointer (PSP) digunakan juga dapat ditentukan dalam register CONTROL dengan akses istimewa. Mode ini dirancang untuk tugas pengguna di lingkungan RTOS tetapi biasanya digunakan di bare-metal untuk super-loop.
  • Mode handler (ARMv6-M, ARMv7-M, ARMv8-M): Mode yang didedikasikan untuk penanganan pengecualian (kecuali RESET yang ditangani dalam mode Thread). Mode handler selalu menggunakan MSP dan bekerja di level yang diistimewakan.

Set instruksi

Implementasi ARM asli (dan selanjutnya) dibuat tanpa mikrokode , seperti prosesor 8-bit 6502 yang jauh lebih sederhana yang digunakan dalam mikrokomputer Acorn sebelumnya.

Arsitektur ARM 32-bit (dan sebagian besar arsitektur 64-bit) mencakup fitur RISC berikut:

  • Memuat/menyimpan arsitektur .
  • Tidak ada dukungan untuk akses memori yang tidak selaras dalam versi asli arsitektur. ARMv6 dan yang lebih baru, kecuali beberapa versi mikrokontroler, mendukung akses yang tidak selaras untuk instruksi pemuatan/penyimpanan setengah kata dan satu kata dengan beberapa batasan, seperti tidak ada atomisitas yang dijamin . [97] [98]
  • File register seragam 16 × 32-bit (termasuk penghitung program, penunjuk tumpukan, dan register tautan).
  • Lebar instruksi tetap 32 bit untuk memudahkan decoding dan pipelining , dengan biaya penurunan kepadatan kode . Kemudian, set instruksi Thumb menambahkan instruksi 16-bit dan meningkatkan kepadatan kode.
  • Sebagian besar eksekusi siklus-jam tunggal.

Untuk mengimbangi desain yang lebih sederhana, dibandingkan dengan prosesor seperti Intel 80286 dan Motorola 68020 , beberapa fitur desain tambahan digunakan:

  • Eksekusi bersyarat dari sebagian besar instruksi mengurangi overhead cabang dan mengkompensasi kurangnya prediktor cabang di chip awal.
  • Instruksi aritmatika mengubah kode kondisi hanya jika diinginkan.
  • Penggeser barel 32-bit dapat digunakan tanpa penalti kinerja dengan sebagian besar instruksi aritmatika dan perhitungan alamat.
  • Memiliki mode pengalamatan terindeks yang kuat .
  • Register tautan mendukung panggilan fungsi daun cepat.
  • Subsistem interupsi 2 tingkat prioritas yang sederhana namun cepat telah mengganti bank register.

Instruksi aritmatika

ARM mencakup operasi aritmatika bilangan bulat untuk menambah, mengurangi, dan mengalikan; beberapa versi arsitektur juga mendukung operasi pembagian.

ARM mendukung perkalian 32-bit × 32-bit dengan hasil 32-bit atau 64-bit, meskipun inti Cortex-M0 / M0+ / M1 tidak mendukung hasil 64-bit. [99] Beberapa inti ARM juga mendukung perkalian 16-bit × 16-bit dan 32-bit × 16-bit.

Instruksi pembagian hanya disertakan dalam arsitektur ARM berikut:

  • Arsitektur ARMv7-M dan ARMv7E-M selalu menyertakan instruksi pembagian. [100]
  • Arsitektur ARMv7-R selalu menyertakan instruksi bagi dalam set instruksi Thumb, tetapi secara opsional dalam set instruksi 32-bit. [101]
  • Arsitektur ARMv7-A secara opsional menyertakan instruksi pembagian. Instruksi mungkin tidak diimplementasikan, atau diimplementasikan hanya di set instruksi Thumb, atau diimplementasikan di set instruksi Thumb dan ARM, atau diimplementasikan jika Ekstensi Virtualisasi disertakan. [101]

Daftar

Mendaftar di seluruh mode CPU
usr sistem svc abt un irq fiq
R0
R1
R2
R3
R4
R5
R6
R7
R8 R8_fiq
R9 R9_fiq
R10 R10_fiq
R11 R11_fiq
R12 R12_fiq
R13 R13_svc R13_abt R13_und R13_irq R13_fiq
R14 R14_svc R14_abt R14_und R14_irq R14_fiq
R15
CPSR
SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

Register R0 hingga R7 sama di semua mode CPU; mereka tidak pernah bank.

Register R8 hingga R12 sama di semua mode CPU kecuali mode FIQ. Mode FIQ memiliki register R8 hingga R12 yang berbeda.

R13 dan R14 ditempatkan di semua mode CPU yang diistimewakan kecuali mode sistem. Artinya, setiap mode yang dapat dimasuki karena pengecualian memiliki R13 dan R14 sendiri. Register ini umumnya berisi penunjuk tumpukan dan alamat pengirim dari panggilan fungsi, masing-masing.

Alias:

Register Status Program Saat Ini (CPSR) memiliki 32 bit berikut. [102]

  • M (bit 0–4) adalah bit mode prosesor.
  • T (bit 5) adalah bit status Jempol.
  • F (bit 6) adalah bit penonaktifan FIQ.
  • I (bit 7) adalah bit penonaktifan IRQ.
  • A (bit 8) adalah bit penonaktifan pembatalan data yang tidak tepat.
  • E (bit 9) adalah bit endianness data.
  • IT (bit 10-15 dan 25-26) adalah bit state if-then.
  • GE (bit 16-19) adalah bit yang lebih besar dari atau sama dengan.
  • DNM (bit 20–23) adalah bit yang tidak dimodifikasi.
  • J (bit 24) adalah bit state Java.
  • Q (bit 27) adalah bit sticky overflow.
  • V (bit 28) adalah bit overflow.
  • C (bit 29) adalah bit carry/borrow/extend.
  • Z (bit 30) adalah bit nol.
  • N (bit 31) adalah negatif/kurang dari bit.

Eksekusi bersyarat

Hampir setiap instruksi ARM memiliki fitur eksekusi bersyarat yang disebut predication , yang diimplementasikan dengan pemilih kode kondisi 4-bit (predikat). Untuk memungkinkan eksekusi tanpa syarat, salah satu kode empat bit menyebabkan instruksi selalu dieksekusi. Sebagian besar arsitektur CPU lainnya hanya memiliki kode kondisi pada instruksi cabang. [103]

Meskipun predikat mengambil empat dari 32 bit dalam kode instruksi, dan dengan demikian mengurangi secara signifikan bit pengkodean yang tersedia untuk perpindahan dalam instruksi akses memori, itu menghindari instruksi cabang saat menghasilkan kode untuk ifpernyataan kecil . Selain menghilangkan instruksi cabang itu sendiri, ini mempertahankan jalur pengambilan/dekode/eksekusi dengan biaya hanya satu siklus per instruksi yang dilewati.

Sebuah algoritma yang memberikan contoh yang baik dari eksekusi bersyarat adalah algoritma Euclidean berbasis pengurangan untuk menghitung pembagi persekutuan terbesar . Dalam bahasa pemrograman C , algoritma dapat ditulis sebagai:

int gcd ( int a , int b ) {     
  while ( a != b ) // Kita memasuki loop saat a<b atau a>b, tetapi tidak saat a==b if ( a > b ) // Saat a>b kita melakukan ini a -= b ;     
          
        
    else // Ketika a<b kita melakukan itu (tidak perlu if(a<b) karena a!=b dicentang dalam kondisi while) b -= a ;         
        
  kembali ; _ 
}

Algoritme yang sama dapat ditulis ulang dengan cara yang lebih mendekati instruksi ARM target sebagai:

lingkaran :
    // Bandingkan a dan b 
GT = a > b ;        
    LT = a < b ;    
    TL = a != b ;    

    // Lakukan operasi berdasarkan hasil flag 
if ( GT ) a -= b ; // Kurangi *hanya* jika lebih besar dari jika ( LT ) b -= a ; // Kurangi *hanya* jika lebih kecil dari if ( NE ) goto loop ; // Loop *only* jika nilai yang dibandingkan tidak sama return a ;           
           
       
     

dan dikodekan dalam bahasa assembly sebagai:

; tetapkan a ke register r0, b ke r1 
loop:    CMP     r0 ,  r1        ; set kondisi "NE" jika (a != b), 
                            ; "GT" jika (a > b), 
                            ; atau "LT" jika (a < b) 
        SUBGT   r0 ,  r0 ,  r1    ; jika "GT" (Lebih Besar Dari), a = ab; 
        SUBLT   r1 ,  r1 ,  r0    ; jika "LT" (Kurang Dari), b = ba; 
        lingkaran BNE   ; jika "NE" (Tidak Sama), maka loop B lr ; jika loop tidak dimasukkan, kita dapat kembali dengan aman           
                         

yang menghindari cabang di sekitar klausa thenand . elseJika r0dan r1sama maka tak satu pun dari SUBinstruksi akan dieksekusi, menghilangkan kebutuhan cabang bersyarat untuk mengimplementasikan whilepemeriksaan di bagian atas loop, misalnya telah SUBLE(kurang dari atau sama) telah digunakan.

Salah satu cara kode Thumb menyediakan pengkodean yang lebih padat adalah dengan menghapus pemilih empat-bit dari instruksi non-cabang.

Fitur lain

Fitur lain dari set instruksi adalah kemampuan untuk melipat shift dan memutar ke dalam instruksi pemrosesan data (aritmatika, logis, dan register-register move), sehingga, misalnya, pernyataan dalam bahasa C :

a += ( j << 2 );    

dapat diterjemahkan sebagai instruksi satu kata, satu siklus: [104]

TAMBAHKAN   Ra ,  Ra ,  Rj ,  LSL  #2

Hal ini menyebabkan program ARM khas menjadi lebih padat dari yang diharapkan dengan akses memori yang lebih sedikit; sehingga pipa digunakan lebih efisien.

Prosesor ARM juga memiliki fitur yang jarang terlihat pada arsitektur RISC lainnya, seperti pengalamatan relatif PC (memang, pada ARM 32-bit [1] PC adalah salah satu dari 16 registernya) dan mode pengalamatan sebelum dan sesudah kenaikan.

Set instruksi ARM telah meningkat dari waktu ke waktu. Beberapa prosesor ARM awal (sebelum ARM7TDMI), misalnya, tidak memiliki instruksi untuk menyimpan kuantitas dua byte.

Pipeline dan masalah implementasi lainnya

ARM7 dan implementasi sebelumnya memiliki pipeline tiga tahap ; tahapannya adalah mengambil, mendekode, dan mengeksekusi. Desain berperforma lebih tinggi, seperti ARM9, memiliki pipeline yang lebih dalam: Cortex-A8 memiliki tiga belas tahapan. Perubahan implementasi tambahan untuk kinerja yang lebih tinggi mencakup penambah yang lebih cepat dan logika prediksi cabang yang lebih ekstensif . Perbedaan antara inti ARM7DI dan ARM7DMI, misalnya, adalah pengganda yang ditingkatkan; maka ditambahkan "M".

Koprosesor

Arsitektur ARM (pre-ARMv8) menyediakan cara non-intrusif untuk memperluas set instruksi menggunakan "koprosesor" yang dapat ditangani menggunakan MCR, MRC, MRRC, MCRR dan instruksi serupa. Ruang koprosesor dibagi secara logis menjadi 16 koprosesor dengan angka dari 0 hingga 15, koprosesor 15 (cp15) dicadangkan untuk beberapa fungsi kontrol tipikal seperti mengelola cache dan operasi MMU pada prosesor yang memilikinya.

Pada mesin berbasis ARM, perangkat periferal biasanya dilampirkan ke prosesor dengan memetakan register fisiknya ke dalam ruang memori ARM, ke dalam ruang koprosesor, atau dengan menghubungkan ke perangkat lain (bus) yang pada gilirannya menempel ke prosesor. Akses koprosesor memiliki latensi yang lebih rendah, sehingga beberapa periferal—misalnya, pengontrol interupsi XScale—dapat diakses dengan dua cara: melalui memori dan melalui koprosesor.

Dalam kasus lain, perancang chip hanya mengintegrasikan perangkat keras menggunakan mekanisme koprosesor. Misalnya, mesin pemrosesan gambar mungkin berupa inti ARM7TDMI kecil yang digabungkan dengan koprosesor yang memiliki operasi khusus untuk mendukung serangkaian primitif transkode HDTV tertentu.

Debug

Semua prosesor ARM modern mencakup fasilitas debugging perangkat keras, memungkinkan debugger perangkat lunak untuk melakukan operasi seperti menghentikan, melangkah, dan breakpointing kode mulai dari reset. Fasilitas ini dibangun menggunakan dukungan JTAG , meskipun beberapa inti yang lebih baru secara opsional mendukung protokol "SWD" dua-kawat milik ARM. Dalam inti ARM7TDMI, "D" mewakili dukungan debug JTAG, dan "I" mewakili keberadaan modul debug "EmbeddedICE". Untuk generasi inti ARM7 dan ARM9, EmbeddedICE melalui JTAG adalah standar debug de facto, meskipun tidak dijamin secara arsitektur.

Arsitektur ARMv7 mendefinisikan fasilitas debug dasar pada tingkat arsitektur. Ini termasuk breakpoint, watchpoint, dan eksekusi instruksi dalam "Mode Debug"; fasilitas serupa juga tersedia dengan EmbeddedICE. Baik debugging mode "halt mode" dan "monitor" didukung. Mekanisme transport aktual yang digunakan untuk mengakses fasilitas debug tidak ditentukan secara arsitektural, tetapi implementasi umumnya menyertakan dukungan JTAG.

Ada arsitektur debug "CoreSight" ARM yang terpisah, yang secara arsitektur tidak diperlukan oleh prosesor ARMv7.

Port Akses Debug

Debug Access Port (DAP) adalah implementasi dari Antarmuka Debug ARM. [105] Ada dua implementasi berbeda yang didukung, Serial Wire JTAG Debug Port (SWJ-DP) dan Serial Wire Debug Port (SW-DP). [106] CMSIS-DAP adalah antarmuka standar yang menjelaskan bagaimana berbagai perangkat lunak debugging pada PC host dapat berkomunikasi melalui USB ke firmware yang berjalan pada debugger perangkat keras, yang pada gilirannya berbicara melalui SWD atau JTAG ke CPU ARM Cortex yang mendukung CoreSight. [107] [108] [109] [110]

Instruksi peningkatan DSP

Untuk meningkatkan arsitektur ARM untuk pemrosesan sinyal digital dan aplikasi multimedia, instruksi DSP ditambahkan ke set. [111] Ini ditandai dengan "E" atas nama arsitektur ARMv5TE dan ARMv5TEJ. Varian-E juga menyiratkan T, D, M, dan I.

Instruksi baru umum dalam arsitektur prosesor sinyal digital (DSP). Mereka mencakup variasi pada perkalian–akumulasi bertanda , penambahan dan pengurangan jenuh, dan menghitung nol di depan.

Ekstensi SIMD untuk multimedia

Diperkenalkan dalam arsitektur ARMv6, ini adalah pendahulu dari SIMD Lanjutan, juga bernama Neon . [112]

Jazelle

Jazelle DBX (Direct Bytecode eXecution) adalah teknik yang memungkinkan bytecode Java untuk dieksekusi secara langsung dalam arsitektur ARM sebagai status eksekusi ketiga (dan set instruksi) di samping mode ARM dan Thumb yang ada. Dukungan untuk status ini ditandai dengan "J" dalam arsitektur ARMv5TEJ, dan dalam nama inti ARM9EJ-S dan ARM7EJ-S. Dukungan untuk status ini diperlukan mulai dari ARMv6 (kecuali untuk profil ARMv7-M), meskipun inti yang lebih baru hanya menyertakan implementasi sepele yang tidak menyediakan akselerasi perangkat keras.

Ibu jari

Untuk meningkatkan kepadatan kode yang dikompilasi, prosesor sejak ARM7TDMI (dirilis pada tahun 1994 [113] ) telah menampilkan set instruksi Thumb , yang memiliki statusnya sendiri. (The "T" dalam "TDMI" menunjukkan fitur Thumb.) Ketika dalam keadaan ini, prosesor mengeksekusi set instruksi Thumb, pengkodean 16-bit kompak untuk subset dari set instruksi ARM. [114] Sebagian besar instruksi Thumb langsung dipetakan ke instruksi ARM normal. Penghematan ruang berasal dari membuat beberapa operan instruksi implisit dan membatasi jumlah kemungkinan dibandingkan dengan instruksi ARM yang dieksekusi dalam keadaan set instruksi ARM.

Di Thumb, opcode 16-bit memiliki fungsionalitas yang lebih sedikit. Misalnya, hanya cabang yang dapat bersyarat, dan banyak opcode dibatasi untuk mengakses hanya setengah dari semua register tujuan umum CPU. Opcode yang lebih pendek memberikan peningkatan kepadatan kode secara keseluruhan, meskipun beberapa operasi memerlukan instruksi tambahan. Dalam situasi di mana port memori atau lebar bus dibatasi hingga kurang dari 32 bit, opcode Thumb yang lebih pendek memungkinkan peningkatan kinerja dibandingkan dengan kode ARM 32-bit, karena lebih sedikit kode program yang mungkin perlu dimuat ke prosesor melalui bandwidth memori yang dibatasi.

Tidak seperti arsitektur prosesor dengan instruksi panjang variabel (16 atau 32-bit), seperti Cray-1 dan Hitachi SuperH , set instruksi ARM dan Thumb ada secara independen satu sama lain. Perangkat keras tertanam, seperti Game Boy Advance , biasanya memiliki sejumlah kecil RAM yang dapat diakses dengan jalur data 32-bit penuh; mayoritas diakses melalui jalur data sekunder 16-bit atau lebih sempit. Dalam situasi ini, biasanya masuk akal untuk mengkompilasi kode Thumb dan mengoptimalkan beberapa bagian paling intensif CPU menggunakan instruksi ARM 32-bit penuh, menempatkan instruksi yang lebih luas ini ke dalam memori yang dapat diakses bus 32-bit.

Prosesor pertama dengan dekoder instruksi Thumb adalah ARM7TDMI. Semua keluarga ARM9 dan yang lebih baru, termasuk XScale, telah menyertakan dekoder instruksi Thumb. Ini termasuk instruksi yang diadopsi dari Hitachi SuperH (1992), yang dilisensikan oleh ARM. [115] Keluarga prosesor terkecil ARM (Cortex M0 dan M1) hanya menerapkan set instruksi Thumb 16-bit untuk kinerja maksimum dalam aplikasi biaya terendah.

Jempol-2

Teknologi Thumb-2 diperkenalkan pada inti ARM1156 , diumumkan pada tahun 2003. Thumb-2 memperluas set instruksi Thumb 16-bit terbatas dengan instruksi 32-bit tambahan untuk memberikan set instruksi yang lebih luas, sehingga menghasilkan set instruksi dengan panjang variabel . Tujuan yang dinyatakan untuk Thumb-2 adalah untuk mencapai kepadatan kode yang mirip dengan Thumb dengan kinerja yang mirip dengan instruksi ARM yang ditetapkan pada memori 32-bit.

Thumb-2 memperluas set instruksi Thumb dengan manipulasi bit-field, cabang tabel dan eksekusi bersyarat. Pada saat yang sama, set instruksi ARM diperluas untuk mempertahankan fungsionalitas yang setara di kedua set instruksi. "Unified Assembly Language" (UAL) baru mendukung pembuatan instruksi Thumb atau ARM dari kode sumber yang sama; versi Thumb yang terlihat pada prosesor ARMv7 pada dasarnya sama mampunya dengan kode ARM (termasuk kemampuan untuk menulis penangan interupsi). Ini membutuhkan sedikit perhatian, dan penggunaan instruksi "IT" (jika-maka) baru, yang memungkinkan hingga empat instruksi berturut-turut untuk dieksekusi berdasarkan kondisi yang diuji, atau kebalikannya. Saat dikompilasi ke dalam kode ARM, ini diabaikan, tetapi saat dikompilasi ke dalam Thumb, ini menghasilkan instruksi yang sebenarnya. Sebagai contoh:

; if (r0 == r1) 
CMP  r0 ,  r1 
ITE  EQ         ; ARM: tidak ada kode ... Thumb: instruksi IT 
; maka r0 = r2; 
MOVEQ  r0 ,  r2   ; LENGAN: bersyarat; Jempol: kondisi melalui ITE 'T' (lalu) 
; lain r0 = r3; 
MOVNE  r0 ,  r3   ; LENGAN: bersyarat; Jempol: kondisi melalui ITE 'E' (else) 
; ingat bahwa instruksi Thumb MOV tidak memiliki bit untuk mengkodekan "EQ" atau "NE".

Semua chip ARMv7 mendukung set instruksi Thumb. Semua chip dalam seri Cortex-A, seri Cortex-R, dan seri ARM11 mendukung "status set instruksi ARM" dan "status set instruksi Thumb", sedangkan chip dalam seri Cortex-M hanya mendukung set instruksi Thumb. [116] [117] [118]

Lingkungan Eksekusi Jempol (ThumbEE)

ThumbEE (salah disebut Thumb-2EE dalam beberapa dokumentasi ARM), yang dipasarkan sebagai Jazelle RCT [119] (Runtime Compilation Target), diumumkan pada tahun 2005, pertama kali muncul di prosesor Cortex-A8 . ThumbEE adalah status set instruksi keempat, membuat perubahan kecil pada set instruksi tambahan Thumb-2. Perubahan ini membuat set instruksi sangat cocok untuk kode yang dihasilkan pada saat runtime (misalnya dengan kompilasi JIT ) di Lingkungan Eksekusi terkelola . ThumbEE adalah target untuk bahasa seperti Java , C# , Perl , dan Python , dan memungkinkan kompiler JITuntuk menghasilkan kode terkompilasi yang lebih kecil tanpa memengaruhi kinerja. [ rujukan? ]

Fitur-fitur baru yang disediakan oleh ThumbEE termasuk pemeriksaan null pointer otomatis pada setiap instruksi beban dan penyimpanan, instruksi untuk melakukan pemeriksaan batas array, dan instruksi khusus yang memanggil handler. Selain itu, karena menggunakan teknologi Thumb-2, ThumbEE menyediakan akses ke register r8–r15 (tempat status Java VM Jazelle/DBX diadakan). [120] Handler adalah bagian kecil dari kode yang sering disebut, biasanya digunakan untuk mengimplementasikan bahasa tingkat tinggi, seperti mengalokasikan memori untuk objek baru. Perubahan ini berasal dari penggunaan kembali beberapa opcode, dan mengetahui bahwa intinya berada dalam status ThumbEE yang baru.

Pada 23 November 2011, Arm Holdings menghentikan penggunaan set instruksi ThumbEE, [121] dan ARMv8 menghapus dukungan untuk ThumbEE.

Titik-mengambang (VFP)

Teknologi VFP (Vector Floating Point) adalah ekstensi koprosesor floating-point unit (FPU) ke arsitektur ARM [122] (diimplementasikan secara berbeda dalam ARMv8 – koprosesor tidak ditentukan di sana). Ini memberikan komputasi floating-point presisi tunggal dan presisi ganda yang sepenuhnya sesuai dengan Standar ANSI/IEEE Std 754-1985 untuk Binary Floating-Point Arithmetic. VFP menyediakan komputasi floating-point yang cocok untuk spektrum aplikasi yang luas seperti PDA, smartphone, kompresi dan dekompresi suara, grafik tiga dimensi dan audio digital, printer, set-top box, dan aplikasi otomotif. Arsitektur VFP dimaksudkan untuk mendukung eksekusi instruksi "mode vektor" pendek tetapi ini dioperasikan pada setiap elemen vektor secara berurutan dan dengan demikian tidak menawarkan kinerja paralelisme vektor instruksi tunggal, banyak data (SIMD) yang sebenarnya. Oleh karena itu, mode vektor ini dihapus segera setelah diperkenalkan, [123] untuk diganti dengan SIMD Lanjutan yang jauh lebih kuat, juga bernama Neon .

Beberapa perangkat seperti ARM Cortex-A8 memiliki modul VFPLite cut-down alih-alih modul VFP penuh, dan membutuhkan sekitar sepuluh kali lebih banyak siklus clock per operasi float. [124] Arsitektur pra-ARMv8 diimplementasikan floating-point/SIMD dengan antarmuka coprocessor. Unit floating-point dan/atau SIMD lainnya yang ditemukan di prosesor berbasis ARM yang menggunakan antarmuka coprocessor termasuk FPA , FPE, iwMMXt , beberapa di antaranya diimplementasikan dalam perangkat lunak dengan menjebak tetapi bisa juga diimplementasikan dalam perangkat keras. Mereka menyediakan beberapa fungsi yang sama seperti VFP tetapi tidak opcode -kompatibel dengannya. FPA10 juga memberikan presisi yang diperluas, tetapi menerapkan pembulatan yang benar (diperlukan oleh IEEE 754) hanya dalam presisi tunggal. [125]

VFPv1
Usang
VFPv2
Ekstensi opsional untuk instruksi ARM yang diatur dalam arsitektur ARMv5TE, ARMv5TEJ dan ARMv6. VFPv2 memiliki 16 register FPU 64-bit.
VFPv3 atau VFPv3-D32
Diimplementasikan pada sebagian besar prosesor Cortex-A8 dan A9 ARMv7. Ini kompatibel dengan VFPv2, kecuali bahwa ia tidak dapat menjebak pengecualian floating-point. VFPv3 memiliki 32 register FPU 64-bit sebagai standar, menambahkan instruksi VCVT untuk mengkonversi antara skalar, float dan ganda, menambahkan mode langsung ke VMOV sehingga konstanta dapat dimuat ke register FPU.
VFPv3-D16
Seperti di atas, tetapi hanya dengan 16 register FPU 64-bit. Diimplementasikan pada prosesor Cortex-R4 dan R5 dan Tegra 2 (Cortex-A9).
VFPv3-F16
Luar biasa; mendukung IEEE754-2008 setengah presisi (16-bit) floating point sebagai format penyimpanan.
VFPv4 atau VFPv4-D32
Diimplementasikan pada prosesor Cortex-A12 dan A15 ARMv7, Cortex-A7 secara opsional memiliki VFPv4-D32 dalam kasus FPU dengan Neon. [126] VFPv4 memiliki 32 register FPU 64-bit sebagai standar, menambahkan dukungan setengah presisi sebagai format penyimpanan dan instruksi akumulasi ganda yang digabungkan ke fitur VFPv3.
VFPv4-D16
Seperti di atas, tetapi hanya memiliki 16 register FPU 64-bit. Diimplementasikan pada prosesor Cortex-A5 dan A7 dalam kasus FPU tanpa Neon. [126]
VFPv5-D16-M
Diimplementasikan pada Cortex-M7 ketika opsi inti floating-point presisi tunggal dan ganda ada.

Di Debian Linux , dan turunannya seperti Ubuntu dan Linux Mint , armhf ( ARM hard float ) mengacu pada arsitektur ARMv7 termasuk ekstensi perangkat keras floating-point VFP3-D16 tambahan (dan Thumb-2) di atas. Paket perangkat lunak dan alat kompilator silang menggunakan sufiks armhf vs. arm/armel untuk membedakan. [127]

SIMD Lanjutan (Neon)

Ekstensi SIMD Lanjutan (alias Neon atau "MPE" Media Processing Engine) adalah kumpulan instruksi SIMD 64- dan 128-bit gabungan yang menyediakan akselerasi standar untuk aplikasi pemrosesan media dan sinyal. Neon disertakan di semua perangkat Cortex-A8, tetapi opsional di perangkat Cortex-A9. [128] Neon dapat menjalankan decoding audio MP3 pada CPU yang berjalan pada 10 MHz, dan dapat menjalankan codec ucapan GSM adaptif multi-rate (AMR) pada 13 MHz. Ini fitur set instruksi yang komprehensif, file register terpisah, dan perangkat keras eksekusi independen. [129]Neon mendukung 8-, 16-, 32-, dan 64-bit integer dan data floating-point presisi tunggal (32-bit) dan operasi SIMD untuk menangani pemrosesan audio dan video serta pemrosesan grafis dan game. Di Neon, SIMD mendukung hingga 16 operasi secara bersamaan. Perangkat keras Neon berbagi register titik-mengambang yang sama seperti yang digunakan dalam VFP. Perangkat seperti ARM Cortex-A8 dan Cortex-A9 mendukung vektor 128-bit, tetapi akan mengeksekusi dengan 64 bit pada suatu waktu, [124] sedangkan perangkat Cortex-A15 yang lebih baru dapat mengeksekusi 128 bit pada suatu waktu. [130] [131]

Keunikan Neon di perangkat ARMv7 adalah ia mem-flush semua angka subnormal ke nol, dan akibatnya kompiler GCC tidak akan menggunakannya kecuali -funsafe-math-optimizations, yang memungkinkan kehilangan denormal, dihidupkan. Neon "Ditingkatkan" didefinisikan karena ARMv8 tidak memiliki quirk ini, tetapi pada GCC 8.2 flag yang sama masih diperlukan untuk mengaktifkan instruksi Neon. [132] Di sisi lain, GCC menganggap Neon aman di AArch64 untuk ARMv8.

ProjectNe10 adalah proyek sumber terbuka pertama ARM (sejak awal; sementara mereka mengakuisisi proyek yang lebih lama, sekarang bernama Mbed TLS ). Pustaka Ne10 adalah seperangkat fungsi umum dan berguna yang ditulis dalam Neon dan C (untuk kompatibilitas). Pustaka dibuat untuk memungkinkan pengembang menggunakan pengoptimalan Neon tanpa mempelajari Neon, tetapi juga berfungsi sebagai kumpulan contoh kode intrinsik dan rakitan Neon yang sangat dioptimalkan untuk DSP umum, aritmatika, dan rutinitas pemrosesan gambar. Kode sumber tersedia di GitHub. [133]

Teknologi ARM Helium

Helium adalah M-Profile Vector Extension (MVE). Ia menambahkan lebih dari 150 instruksi skalar dan vektor. [134]

Ekstensi keamanan

TrustZone (untuk profil Cortex-A)

Ekstensi Keamanan, dipasarkan sebagai Teknologi TrustZone, ada di ARMv6KZ dan arsitektur profil aplikasi yang lebih baru. Ini memberikan alternatif berbiaya rendah untuk menambahkan inti keamanan khusus lainnya ke SoC, dengan menyediakan dua prosesor virtual yang didukung oleh kontrol akses berbasis perangkat keras. Ini memungkinkan inti aplikasi beralih di antara dua status, yang disebut sebagai dunia(untuk mengurangi kebingungan dengan nama lain untuk domain kemampuan), untuk mencegah kebocoran informasi dari dunia yang lebih tepercaya ke dunia yang kurang tepercaya. Sakelar dunia ini umumnya ortogonal terhadap semua kemampuan prosesor lainnya, sehingga setiap dunia dapat beroperasi secara independen satu sama lain saat menggunakan inti yang sama. Memori dan periferal kemudian disadarkan tentang dunia operasi inti dan dapat menggunakan ini untuk memberikan kontrol akses ke rahasia dan kode pada perangkat. [135]

Biasanya, sistem operasi yang kaya dijalankan di dunia yang kurang tepercaya, dengan kode khusus keamanan yang lebih kecil di dunia yang lebih tepercaya, yang bertujuan untuk mengurangi permukaan serangan . Aplikasi umum termasuk fungsionalitas DRM untuk mengontrol penggunaan media pada perangkat berbasis ARM, [136] dan mencegah penggunaan perangkat yang tidak disetujui.

Dalam praktiknya, karena detail implementasi spesifik dari implementasi TrustZone eksklusif belum diungkapkan kepada publik untuk ditinjau, tidak jelas tingkat jaminan apa yang diberikan untuk model ancaman tertentu , tetapi mereka tidak kebal dari serangan. [137] [138]

Virtualisasi Terbuka [139] adalah implementasi open source dari arsitektur dunia tepercaya untuk TrustZone.

AMD telah melisensikan dan memasukkan teknologi TrustZone ke dalam Teknologi Prosesor Amannya . [140] Diaktifkan di beberapa tetapi tidak semua produk, APU AMD menyertakan prosesor Cortex-A5 untuk menangani pemrosesan yang aman. [141] [142] [143] Faktanya, inti Cortex-A5 TrustZone telah disertakan dalam produk AMD sebelumnya, tetapi tidak diaktifkan karena keterbatasan waktu. [142]

Samsung Knox menggunakan TrustZone untuk tujuan seperti mendeteksi modifikasi kernel, menyimpan sertifikat, dan mengesahkan kunci. [144]

TrustZone untuk ARMv8-M (untuk profil Cortex-M)

Ekstensi Keamanan, dipasarkan sebagai TrustZone untuk Teknologi ARMv8-M, diperkenalkan dalam arsitektur ARMv8-M. Meskipun mengandung konsep yang mirip dengan TrustZone untuk ARMv8-A, ia memiliki desain arsitektur yang berbeda, karena peralihan dunia dilakukan menggunakan instruksi cabang alih-alih menggunakan pengecualian. Ini juga mendukung penanganan interleaved interleaved yang aman dari kedua dunia terlepas dari status keamanan saat ini. Bersama-sama, fitur-fitur ini memberikan panggilan latensi rendah ke dunia yang aman dan penanganan interupsi yang responsif. ARM menyediakan tumpukan referensi kode dunia aman dalam bentuk Trusted Firmware untuk M dan PSA Certified .

Perlindungan halaman tanpa eksekusi

Pada ARMv6, arsitektur ARM mendukung perlindungan halaman no-execute , yang disebut sebagai XN , untuk eXecute Never . [145]

Ekstensi Alamat Fisik Besar (LPAE)

Large Physical Address Extension (LPAE), yang memperluas ukuran alamat fisik dari 32 bit menjadi 40 bit, ditambahkan ke arsitektur ARMv7-A pada tahun 2011. [146] Ukuran alamat fisik lebih besar, 44 bit, di Cortex-A75 dan Cortex-A65AE. [147]

ARMv8-R dan ARMv8-M

Arsitektur ARMv8-R dan ARMv8-M , diumumkan setelah arsitektur ARMv8-A, berbagi beberapa fitur dengan ARMv8-A, tetapi tidak menyertakan instruksi AArch64 64-bit.

ARMv8.1-M

Arsitektur ARMv8.1-M, ​​yang diumumkan pada Februari 2019, merupakan peningkatan dari arsitektur ARMv8-M. Ini membawa fitur-fitur baru termasuk:

  • Ekstensi set instruksi vektor baru. M-Profile Vector Extension (MVE), atau Helium, adalah untuk pemrosesan sinyal dan aplikasi pembelajaran mesin.
  • Perangkat tambahan set instruksi tambahan untuk loop dan cabang (Perpanjangan Cabang Overhead Rendah).
  • Petunjuk untuk dukungan floating-point setengah presisi .
  • Peningkatan set instruksi untuk manajemen TrustZone untuk Floating Point Unit (FPU).
  • Atribut memori baru di Memory Protection Unit (MPU).
  • Penyempurnaan dalam debug termasuk Performance Monitoring Unit (PMU), Unprivileged Debug Extension, dan fokus dukungan debug tambahan pada pengembangan aplikasi pemrosesan sinyal.
  • Ekstensi Keandalan, Ketersediaan, dan Kemudahan Servis (RAS).

Arsitektur 64/32-bit

Platform ARMv8-A dengan Cortex A57/A53 MPCore chip CPU besar.LITTLE

ARMv8

ARMv8-A

Diumumkan pada Oktober 2011, [3] ARMv8-A (sering disebut ARMv8 sedangkan ARMv8-R juga tersedia) merupakan perubahan mendasar pada arsitektur ARM. Ia menambahkan arsitektur 64-bit opsional (misalnya Cortex-A32 adalah CPU ARMv8-A 32-bit [148] sementara sebagian besar CPU ARMv8-A mendukung 64-bit), bernama "AArch64", dan instruksi "A64" baru yang terkait mengatur. AArch64 menyediakan kompatibilitas ruang pengguna dengan ARMv7-A, arsitektur 32-bit, di dalamnya disebut sebagai "AArch32" dan set instruksi 32-bit lama, sekarang bernama "A32". Set instruksi Thumb disebut sebagai "T32" dan tidak memiliki padanan 64-bit. ARMv8-A memungkinkan aplikasi 32-bit untuk dieksekusi di OS 64-bit,[1] ARM mengumumkan inti Cortex-A53 dan Cortex-A57 mereka pada tanggal 30 Oktober 2012. [70] Apple adalah yang pertama merilis inti yang kompatibel dengan ARMv8-A dalam produk konsumen ( Apple A7 di iPhone 5S ). AppliedMicro , menggunakan FPGA , adalah yang pertama mendemonstrasikan ARMv8-A. [149] ARMv8-A SoC pertama dari Samsung adalah Exynos 5433 yang digunakan di Galaxy Note 4 , yang menampilkan dua cluster empat inti Cortex-A57 dan Cortex-A53 dalam konfigurasi besar.LITTLE; tetapi itu hanya akan berjalan dalam mode AArch32. [150]

Untuk AArch32 dan AArch64, ARMv8-A membuat standar VFPv3/v4 dan SIMD (Neon) lanjutan. Itu juga menambahkan instruksi kriptografi yang mendukung AES , SHA-1 / SHA-256 dan aritmatika medan hingga . [151] AArch64 diperkenalkan di ARMv8-A dan revisi selanjutnya. AArch64 tidak disertakan dalam arsitektur ARMv8-R dan ARMv8-M 32-bit.

ARMv8-R

Dukungan AArch64 opsional telah ditambahkan ke profil ARMv8-R, dengan inti ARM pertama yang mengimplementasikannya adalah Cortex-R82. [152] Ia menambahkan set instruksi A64.

ARMv9

ARMv9-A

Diumumkan pada Maret 2021, arsitektur yang diperbarui menempatkan fokus pada eksekusi dan kompartementalisasi yang aman. [153] [154]

Sistem LenganSiap

Arm SystemReady , sebelumnya bernama Arm ServerReady, adalah program sertifikasi yang membantu mendaratkan sistem operasi generik dan hypervisor ke sistem berbasis Arm dari server pusat data hingga perangkat industri dan IoT. Blok bangunan utama dari program ini adalah spesifikasi untuk persyaratan perangkat keras dan firmware minimum yang dapat diandalkan oleh sistem operasi dan hypervisor. Spesifikasi ini adalah:

Spesifikasi ini dikembangkan bersama oleh Arm Holdings dan mitranya di Komite Penasihat Arsitektur Sistem (SystemArchAC).

Arsitektur Kepatuhan Suite (ACS) adalah alat uji yang membantu untuk memeriksa kepatuhan spesifikasi ini. Spesifikasi Persyaratan Siap Sistem Arm mendokumentasikan persyaratan sertifikasi.

Program ini diperkenalkan oleh Arm Holdings pada tahun 2020 di acara DevSummit pertama. Pendahulunya Arm ServerReady diperkenalkan pada 2018 di acara Arm TechCon. Program ini saat ini mencakup empat band:

  • SystemReady SR: pita ini untuk server yang mendukung sistem operasi dan hypervisor yang mengharapkan antarmuka UEFI , ACPI , dan SMBIOS . Windows Server, Red Hat Enterprise Linux dan VMware ESXi-Arm memerlukan antarmuka ini sementara distro Linux dan BSD lainnya juga dapat mendukung. [ klarifikasi diperlukan ]
  • SystemReady LS: pita ini untuk server yang digunakan hyperscaler untuk mendukung sistem operasi Linux yang mengharapkan firmware LinuxBoot bersama dengan antarmuka ACPI dan SMBIOS.
  • SystemReady ES: pita ini untuk perangkat industri dan IoT yang mendukung sistem operasi dan hypervisor yang mengharapkan antarmuka UEFI, ACPI, dan SMBIOS. Windows IoT Enterprise, Red Hat Enterprise Linux dan VMware ESXi-Arm memerlukan antarmuka ini sementara distro Linux dan BSD lainnya juga dapat mendukung. [ klarifikasi diperlukan ]
  • SystemReady IR: pita ini untuk perangkat industri dan IoT yang mendukung sistem operasi yang mengharapkan antarmuka UEFI dan devicetree . Embedded Linux (misalnya, Yocto ) dan beberapa distro Linux/BSD (misalnya, Fedora, Ubuntu, Debian dan OpenSUSE) juga dapat mendukung. [ klarifikasi diperlukan ]

Bersertifikat PSA

PSA Certified , sebelumnya bernama Platform Security Architecture, adalah kerangka kerja keamanan arsitektur dan skema evaluasi. Ini dimaksudkan untuk membantu mengamankan perangkat Internet of Things (IoT) yang dibangun di atas prosesor system-on-a-chip (SoC). [155] Itu diperkenalkan untuk meningkatkan keamanan di mana lingkungan eksekusi tepercaya penuh terlalu besar atau kompleks. [156]

Arsitekturnya diperkenalkan oleh Arm Holdings pada 2017 di acara tahunan TechCon. [157] [158] Meskipun skema arsitektur agnostik, pertama kali diimplementasikan pada inti prosesor Arm Cortex-M yang ditujukan untuk penggunaan mikrokontroler. PSA Certified mencakup model ancaman dan analisis keamanan yang tersedia secara gratis yang menunjukkan proses untuk memutuskan fitur keamanan dalam produk IoT umum. [159] Ini juga menyediakan paket antarmuka pemrograman aplikasi (API) yang dapat diunduh secara gratis, spesifikasi arsitektur, implementasi firmware sumber terbuka, dan rangkaian pengujian terkait. [160]

Mengikuti pengembangan kerangka keamanan arsitektur pada tahun 2017, skema jaminan Bersertifikat PSA diluncurkan dua tahun kemudian di Dunia Tertanam pada tahun 2019. [161] Bersertifikat PSA menawarkan skema evaluasi keamanan multi-level untuk vendor chip, penyedia OS, dan pembuat perangkat IoT. [162] Presentasi Dunia Tertanam memperkenalkan vendor chip ke Sertifikasi Level 1. Draf perlindungan Level 2 dipresentasikan pada saat yang bersamaan. [163] Sertifikasi Level 2 menjadi standar yang dapat digunakan pada Februari 2020. [164]

Sertifikasi ini dibuat oleh Pemangku Kepentingan Bersama PSA untuk memungkinkan pendekatan keamanan berdasarkan desain untuk rangkaian produk IoT yang beragam. Spesifikasi Bersertifikat PSA adalah implementasi dan arsitektur agnostik, sebagai akibatnya spesifikasi tersebut dapat diterapkan ke chip, perangkat lunak, atau perangkat apa pun. [165] [163] Sertifikasi ini juga menghilangkan fragmentasi industri untuk produsen dan pengembang produk IoT . [166]

Dukungan sistem operasi

Sistem operasi 32-bit

Sistem operasi historis

Komputer pribadi berbasis ARM 32-bit pertama, Acorn Archimedes , pada awalnya dimaksudkan untuk menjalankan sistem operasi ambisius yang disebut ARX . Mesin dikirimkan dengan OS RISC yang juga digunakan pada sistem berbasis ARM dari Acorn dan vendor lainnya. Beberapa mesin Acorn awal juga dapat menjalankan port Unix yang disebut RISC iX . (Jangan bingung dengan RISC/os , varian Unix kontemporer untuk arsitektur MIPS.)

Sistem operasi tertanam

Arsitektur ARM 32-bit didukung oleh sejumlah besar sistem operasi tertanam dan waktu nyata , termasuk:

Sistem operasi perangkat seluler

Arsitektur ARM 32-bit adalah lingkungan perangkat keras utama untuk sebagian besar sistem operasi perangkat seluler seperti:

Sebelumnya, tetapi sekarang dihentikan:

Sistem operasi desktop/server

Arsitektur ARM 32-bit didukung oleh RISC OS dan oleh beberapa sistem operasi mirip Unix termasuk:

Sistem operasi 64-bit

Sistem operasi tertanam

Sistem operasi perangkat seluler

Sistem operasi desktop/server

Porting ke sistem operasi ARM 32- atau 64-bit

Aplikasi Windows yang dikompilasi ulang untuk ARM dan ditautkan dengan Winelib, dari proyek Wine , dapat berjalan pada ARM 32-bit atau 64-bit di Linux, FreeBSD, atau sistem operasi lain yang kompatibel. [193] [194] binari x86, misalnya ketika tidak dikompilasi secara khusus untuk ARM, telah didemonstrasikan pada ARM menggunakan QEMU dengan Wine (di Linux dan lebih banyak lagi), [ rujukan? ] tetapi tidak bekerja dengan kecepatan penuh atau kemampuan yang sama seperti dengan Winelib .

Catatan

  1. ^ Menggunakan kata 32-bit, 4 Mbit/detik sama dengan 1 MIPS.
  2. ^ Matt Evans mencatat bahwa tampaknya versi yang lebih cepat hanya disimpan lebih tinggi, dan tampaknya tidak memiliki perubahan mendasar. [36]

Lihat juga

Referensi

Kutipan

  1. ^ a b c d e Grisenthwaite, Richard (2011). "Pratinjau Teknologi ARMv8-A" (PDF) . Diarsipkan dari versi asli (PDF) pada 11 November 2011 . Diakses tanggal 31 Oktober 2011 .
  2. ^ "Standar Panggilan Prosedur untuk Arsitektur ARM" (PDF) . Kepemilikan Lengan . 30 Nopember 2013 . Diakses pada 27 Mei 2013 .
  3. ^ a b "ARM Mengungkapkan Detail Teknis Versi Berikutnya dari Arsitektur ARM" (Siaran pers). Kepemilikan Lengan . 27 Oktober 2011. Diarsipkan dari versi asli pada 1 Januari 2019 . Diakses pada 20 September 2013 .
  4. ^ "Mengumumkan Platform ARM Neoverse N1" . komunitas.arm.com . Diakses pada 8 April 2020 .
  5. ^ a b "Beberapa fakta tentang Mesin RISC Acorn" posting Roger Wilson ke comp.arch, 2 November 1988. Diakses tanggal 25 Mei 2007.
  6. ^ a b Hachman, Mark (14 Oktober 2002). "ARM Cores Mendaki ke Wilayah 3G" . Teknologi Ekstrim . Diakses tanggal 24 Mei 2018 .
  7. ^ Turley, Jim (18 Desember 2002). "Solusi Dua Persen" . Tertanam _ Diakses tanggal 24 Mei 2018 .
  8. ^ Cuttress, Ian (22 Juni 2020). "Superkomputer #1 Baru: Fugaku dan A64FX Fujitsu membawa Arm ke Puncak dengan 415 PetaFLOP" . www.anandtech.com . Diakses tanggal 25 Januari 2021 .
  9. ^ "Mitra Lengan Telah Mengirimkan 200 Miliar Chip" . Lengan (Siaran pers) . Diakses pada 3 November 2021 .
  10. ^ "Merancang dunia yang cerdas dan memberdayakan Kecerdasan Buatan: ARM" . Ulasan Silikon . 2019 . Diakses pada 8 April 2020 .
  11. ^ "Mengaktifkan konektivitas Mass IoT sebagai mitra ARM mengirimkan 100 miliar chip" . komunitas.arm.com . Diakses pada 8 April 2020 . penyebaran kumulatif 100 miliar chip, setengahnya dikirim dalam empat tahun terakhir. [..] mengapa tidak satu triliun atau lebih? Itulah target kami, melihat satu triliun perangkat yang terhubung dikerahkan selama dua dekade ke depan.
  12. ^ "Pasar MCU pada Jalur Migrasi ke Perangkat berbasis 32-bit dan ARM: penjualan 32-bit teratas; 16-bit memimpin dalam pengiriman unit" . Wawasan IC. 25 April 2013 . Diakses pada 1 Juli 2014 .
  13. ^ Turley, Jim (2002). "Solusi Dua Persen" . tertanam.com.
  14. ^ "Arm Holdings menginginkan perluasan PC dan server" . Daftar . 1 Februari 2011.
  15. ^ McGuire-Balanza, Kerry (11 Mei 2010). "ARM dari nol hingga miliaran dalam 25 tahun yang singkat" . Kepemilikan Lengan . Diakses pada 8 November 2012 .
  16. ^ Fairbairn, Douglas (31 Januari 2012). "Sejarah Lisan Sophie Wilson" (PDF) . Diarsipkan (PDF) dari versi asli pada 3 Maret 2016 . Diakses pada 2 Februari 2016 .
  17. ^ Smith, Tony (30 November 2011). "BBC Micro berusia 30 tahun" . Perangkat Keras Daftar . Diarsipkan dari versi asli pada 12 Desember 2011 . Diakses pada 12 Desember 2011 .
  18. ^ Polsson, Ken. "Kronologi Mikroprosesor" . Prosesortimeline.info . Diakses pada 27 September 2013 .
  19. ^ Leedy, Glenn (April 1983). "Keluarga Mikroprosesor Semikonduktor Nasional NS16000" . Byte . hal.53–66 . Diakses pada 22 Agustus 2020 .
  20. ^ Evans 2019 , 6:00.
  21. ^ Tata krama, David (29 April 1998). "cara ARM" . Mingguan Elektronik . Diarsipkan dari versi asli pada 29 Juli 2012 . Diakses pada 26 Oktober 2012 .
  22. ^ Evans 2019 , 05:30.
  23. ^ a b Evans 2019 , 7:45.
  24. ^ Evans 2019 , 8:30.
  25. ^ Sophie Wilson di Alt Party 2009 (Bagian 3/8) . Diarsipkan dari versi asli pada 11 Desember 2021.
  26. ^ Chisnall, David (23 Agustus 2010). Memahami Arsitektur ARM . Diakses pada 26 Mei 2013 .
  27. ^ Evans 2019 , 9:00.
  28. ^ Furber, Stephen B. (2000). Arsitektur sistem-on-chip ARM . Boston: Addison-Wesley. ISBN 0-201-67519-6.
  29. ^ Evans 2019 , 9:50.
  30. ^ Evans 2019 , 23:30.
  31. ^ Evans 2019 , 26:00.
  32. ^ "Sejarah desain Set Instruksi ARM dengan Sophie Wilson (Bagian 3)" . 10 Mei 2015. Diarsipkan dari versi asli tanggal 11 Desember 2021 . Diakses pada 25 Mei 2020 – melalui YouTube.
  33. ^ "Sejarah Lisan Sophie Wilson – Anggota Museum Sejarah Komputer 2012" (PDF) . Museum Sejarah Komputer . 31 Januari 2012 . Diakses pada 25 Mei 2020 .
  34. ^ Harker, T. (Musim Panas 2009). "ARM menjadi serius tentang IP (Kedua dalam seri dua bagian [Pandangan Editor Terkait]" . IEEE Solid-State Circuits Magazine . 1 (3): 8–69. doi : 10.1109/MSSC.2009.933674 . ISSN 1943-0590 .S2CID 36567166 . _  
  35. ^ Evans 2019 , 20:30.
  36. ^ Evans 2019 , 22:00.
  37. ^ Evans 2019 , 21:30.
  38. ^ Evans 2019 , 22:0030.
  39. ^ a b Evans 2019 , 14:00.
  40. ^ Retribusi, Markus. "Sejarah Arsitektur ARM: Dari Awal hingga IPO" (PDF) . Diakses pada 14 Maret 2013 .
  41. ^ Santanu Chattopadhyay (2010). Desain Sistem Tertanam . PHI Belajar Pvt. Ltd. hal. 9. ISBN 978-81-203-4024-4.
  42. ^ Richard Murray. "operasi 32 bit" .
  43. ^ Pencapaian ARM , situs web perusahaan ARM. Diakses pada 8 April 2015
  44. ^ Andrews, Jason (2005). "3 Topik Verifikasi SoC untuk Arsitektur ARM". Co-verifikasi perangkat keras dan perangkat lunak untuk desain ARM SoC . Oxford, Inggris: Elsevier . hal  69 . ISBN 0-7506-7730-9. ARM dimulai sebagai cabang dari Acorn Computer di Cambridge, Inggris, dengan pembentukan perusahaan patungan antara Acorn, Apple dan VLSI Technology. Sebuah tim yang terdiri dari dua belas karyawan menghasilkan desain mikroprosesor ARM pertama antara tahun 1983 dan 1985.
  45. ^ Weber, Jonathan (28 November 1990). "Apple Bergabung dengan Acorn, VLSI dalam Usaha Pembuatan Chip" . Los Angeles Times . Los Angeles . Diakses tanggal 6 Februari 2012 . Apple telah menginvestasikan sekitar $3 juta (kira-kira 1,5 juta pound) untuk 30% kepemilikan di perusahaan, yang dijuluki Advanced Risc Machines Ltd. (ARM) [...]
  46. ^ "ARM Corporate Backgrounder" Diarsipkan 4 Oktober 2006 di Wayback Machine , ARM Technology .
  47. ^ Montanaro, James dkk. (1997). "Mikroprosesor CMOS RISC 160-MHz, 32-b, 0,5-W" . Jurnal Teknis Digital , vol. 9, tidak. 1. hal.49–62.
  48. ^ DeMone, Paul (9 November 2000). "Perlombaan ARM Menuju Dominasi Dunia Tertanam" . Teknologi Dunia Nyata . Diakses pada 6 Oktober 2015 .
  49. ^ "Pawai Mesin" . review teknologi.com . Tinjauan Teknologi MIT . 20 April 2010 . Diakses pada 6 Oktober 2015 .
  50. ^ Krazit, Tom (3 April 2006). "Bersenjata untuk ruang tamu" . CNET.
  51. ^ Tracy Robinson (12 Februari 2014). "Merayakan 50 Miliar Chip bertenaga ARM yang dikirimkan" .
  52. ^ Sarah Murry (3 Maret 2014). "Jangkauan ARM: 50 Miliar Chip Milestone" .
  53. ^ Brown, Eric (2009). "ARM netbook dikirimkan dengan tablet yang dapat dilepas" . Diarsipkan dari versi asli pada 3 Januari 2013 . Diakses tanggal 19 Agustus 2009 .
  54. ^ Peter Clarke (7 Januari 2016). "Amazon Sekarang Menjual Chip ARM Sendiri" .
  55. ^ "MACOM Berhasil Menyelesaikan Akuisisi AppliedMicro" (Siaran pers). 26 Januari 2017.
  56. ^ Frumusanu, Andrei. "Rincian ARM Dibangun di atas Lisensi Teknologi ARM Cortex" . AnandTech . Diakses pada 26 Mei 2019 .
  57. ^ Pembantu, Ian. "Akses Fleksibel ARM: Rancang SoC Sebelum Menghabiskan Uang" . AnandTech . Diakses pada 9 Oktober 2019 .
  58. ^ "Pertanyaan Umum Akses Fleksibel ARM" . LENGAN . Diakses pada 9 Oktober 2019 .
  59. ^ Nolting, Stephan. "Sistem Prosesor STORM CORE" (PDF) . OpenCore . Diakses pada 1 April 2014 .
  60. ^ "krevanth/ZAP" . GitHub . Diakses pada 13 Oktober 2016 .
  61. ^ "Prosesor Cortex-M23" . LENGAN . Diakses pada 27 Oktober 2016 .
  62. ^ "Prosesor Cortex-M33" . LENGAN . Diakses pada 27 Oktober 2016 .
  63. ^ "Arsitektur ARMv8-M Menyederhanakan Keamanan untuk Smart Embedded" . LENGAN . Diakses tanggal 10 November 2015 .
  64. ^ "Arsitektur ARMv8-R" . Diakses tanggal 10 Juli 2015 .
  65. ^ "Arsitektur ARM Cortex-R" (PDF) . Kepemilikan Lengan. Oktober 2013 . Diakses pada 1 Februari 2014 .
  66. ^ Smith, Ryan (20 September 2016). "ARM Mengumumkan CPU Cortex-R52: Deterministik & Aman, untuk ADAS & Lainnya" . AnandTech . Diakses pada 20 September 2016 .
  67. ^ "Prosesor Cortex-A32" . LENGAN . Diakses pada 10 Oktober 2019 .
  68. ^ "Prosesor Cortex-A35" . LENGAN . Diakses tanggal 10 November 2015 .
  69. ^ a b "ARM Meluncurkan Seri Cortex-A50, Prosesor 64-bit Paling Hemat Energi di Dunia" (Siaran pers). Kepemilikan Lengan . Diakses tanggal 31 Oktober 2012 .
  70. ^ "Prosesor Cortex-A72" . LENGAN . Diakses tanggal 10 Juli 2015 .
  71. ^ "Prosesor Cortex-A73" . LENGAN . Diakses pada 2 Juni 2016 .
  72. ^ "Arsitektur ARMv8-A" . Diakses tanggal 10 Juli 2015 .
  73. ^ Pratinjau Teknologi Arsitektur ARMv8 (Slide); Kepemilikan Lengan.
  74. ^ "Cavium Thunder X meningkatkan jumlah inti ARM menjadi 48 pada satu chip" . Semi Akurat . 3 Juni 2014.
  75. ^ "Cavium di Supercomputing 2014" . Yahoo Keuangan . 17 November 2014. Diarsipkan dari versi asli tanggal 16 Oktober 2015 . Diakses tanggal 15 Januari 2017 .
  76. ^ "Cray untuk Mengevaluasi Chip ARM di Superkomputernya" . eMinggu . 17 November 2014.
  77. ^ "Samsung Mengumumkan Exynos 8890 dengan Modem Cat.12/13 dan CPU Kustom" . AnandTech .
  78. ^ "Prosesor Cortex-A34" . LENGAN . Diakses pada 10 Oktober 2019 .
  79. ^ "D21500 [AARCH64] Tambahkan dukungan untuk Broadcom Vulcan" . review.llvm.org .
  80. ^ "Prosesor Cortex-A55" . LENGAN . Diakses pada 29 Mei 2017 .
  81. ^ "Prosesor Cortex-A75" . LENGAN . Diakses pada 29 Mei 2017 .
  82. ^ "Prosesor Cortex-A76" . LENGAN . Diakses pada 11 Oktober 2018 .
  83. ^ Berenice Mann (April 2017). "Arsitektur ARM – Evolusi dan pengiriman ARMv8.2-A" . komunitas.ARM.com .
  84. ^ Frumusanu, Andrei. "Samsung Mengumumkan SoC Exynos 9825: Chip Silikon EUV 7nm Pertama" . AnandTech . Diakses pada 11 Oktober 2019 .
  85. ^ "Fujitsu mulai menghasilkan miliaran super-kalkulasi Jepang dengan prosesor ARM terkuat A64FX" . Berita TI Cina . Diakses pada 17 Agustus 2019 . Chip ARMv8 SVE (Scalable Vector Extension), yang menggunakan floating point 512bit.
  86. ^ "Korteks-A65AE – LENGAN" . LENGAN . Diakses pada 8 April 2020 . dapat mengeksekusi dua utas secara paralel pada setiap siklus. Setiap utas dapat berada pada tingkat pengecualian yang berbeda dan menjalankan sistem operasi yang berbeda.
  87. ^ Frumusanu, Andrei. "Marvell Mengumumkan ThunderX3: 96 Cores & 384 Thread 3rd Gen ARM Server Processor" . AnandTech . Diakses pada 26 Mei 2020 .
  88. ^ "Fitur baru untuk arsitektur Armv8-A - blog Arsitektur dan Prosesor - blog Komunitas Arm - Komunitas Arm" . komunitas.arm.com . Diakses tanggal 28 Desember 2021 .
  89. ^ "Solusi Arm untuk kebutuhan AI, keamanan, dan komputasi khusus di masa depan adalah v9" . lengan . Diakses pada 16 Agustus 2021 .
  90. ^ "CPU Armv9 Cortex Pertama untuk Komputasi Konsumen" . komunitas.arm.com . Diakses pada 16 Agustus 2021 .
  91. ^ "Kartu Garis" (PDF) . 2003 . Diakses pada 1 Oktober 2012 .
  92. ^ Parrish, Kevin (14 Juli 2011). "Satu Juta ARM Cores Tertaut untuk Mensimulasikan Otak" . Waktu EE . Diakses pada 2 Agustus 2011 .
  93. ^ "Mode prosesor" . Kepemilikan Lengan . Diakses pada 26 Maret 2013 .
  94. ^ "KVM/ARM" (PDF) . Diakses pada 3 April 2013 .
  95. ^ Kurang ajar, David (Agustus 2010). "Ekstensi ke Arsitektur ARMv7-A" (PDF) . ARM Ltd. Diakses pada 6 Juni 2014 .
  96. ^ "Bagaimana ARM Compiler mendukung akses yang tidak selaras?" . 2011 . Diakses tanggal 5 Oktober 2013 .
  97. ^ "Akses data tidak selaras" . Diakses tanggal 5 Oktober 2013 .
  98. ^ Manual Referensi Teknis Cortex-M0 r0p0; Kepemilikan Lengan.
  99. ^ "Manual Referensi Arsitektur ARMv7-M; Arm Holdings" . lengan.com . Diakses pada 19 Januari 2013 .
  100. ^ a b "Manual Referensi Arsitektur ARMv7-A dan ARMv7-R; Arm Holdings" . lengan.com . Diakses pada 19 Januari 2013 .
  101. ^ "Pusat Informasi ARM" . Diakses tanggal 10 Juli 2015 .
  102. ^ "Kode Kondisi 1: Bendera dan kode kondisi" . Komunitas ARM . Diakses pada 26 September 2019 .
  103. ^ "9.1.2. Siklus instruksi dihitung" .
  104. ^ "Komponen CoreSight: Tentang Port Akses Debug" .
  105. ^ "The Cortex-M3: Debug Access Port (DAP)" .
  106. ^ Mike Anderson. "Memahami Opsi Debug ARM HW" .
  107. ^ "Panduan Pengguna Debugger CMSIS-DAP" .
  108. ^ "CMSIS-DAP" .
  109. ^ "SWDAP vs CMSIS-DAP vs DAPLink" .
  110. ^ "Ekstensi Set Instruksi ARM DSP" . lengan.com . Diarsipkan dari versi asli pada 14 April 2009 . Diakses tanggal 18 April 2009 .
  111. ^ "DSP & SIMD" . Diakses tanggal 10 Juli 2015 .
  112. ^ Halaman Manual Referensi Teknis ARM7TDMI ii
  113. ^ Jaggar, Dave (1996). Manual Referensi Arsitektur ARM . Aula Prentice. hal.6-1. ISBN 978-0-13-736299-8.
  114. ^ Nathan Willis (10 Juni 2015). "Menghidupkan kembali arsitektur SuperH" . LWN.net .
  115. ^ "Arsitektur Kumpulan Instruksi Prosesor ARM" . ARM.com. Diarsipkan dari versi asli tanggal 15 April 2009 . Diakses tanggal 18 April 2009 .
  116. ^ "ARM bertujuan putra Thumb di UCs, ASSPs, SoCs" . Linuxdevices.com. Diarsipkan dari versi asli pada 9 Desember 2012 . Diakses tanggal 18 April 2009 .
  117. ^ "Pusat Informasi ARM" . Infocenter.arm.com . Diakses tanggal 18 April 2009 .
  118. ^ "Jazelle" . ARM Ltd. Diarsipkan dari versi asli pada 2 Juni 2017.
  119. ^ Tom R. Halfhill (2005). "ARM memperkuat kompiler Java: Instruksi 16-Bit Thumb-2EE Baru Menghemat Memori Sistem" (PDF) . Diarsipkan dari versi asli (PDF) pada 5 Oktober 2007.
  120. ^ Manual Referensi Arsitektur ARM, edisi ARMv7-A dan ARMv7-R, edisi Cb, Bagian A2.10, 25 Juli 2012.
  121. ^ "Rantai alat Kompilator ARM Menggunakan Assembler – koprosesor VFP" . ARM.com . Diakses pada 20 Agustus 2014 .
  122. ^ "Petunjuk VFP dan notasi vektor" . ARM.com . Diakses pada 21 November 2011 .
  123. ^ a b "Perbedaan antara ARM Cortex-A8 dan Cortex-A9" . Shervin Emami . Diakses pada 21 November 2011 .
  124. ^ "Lembar Data FPA10" (PDF) . chrisacorns.computinghistory.org.uk . Semikonduktor Plessey GEC. 11 Juni 1993 . Diakses pada 26 November 2020 . Sehubungan dengan IEEE 754-1985, FPA mencapai kesesuaian dalam aritmatika presisi tunggal [...] Kadang-kadang, perkalian presisi ganda dan diperpanjang dapat dihasilkan dengan kesalahan 1 atau 2 unit di tempat paling tidak signifikan dari mantissa .
  125. ^ a b "Manual Referensi Teknis Cortex-A7 MPCore – 1.3 Fitur" . LENGAN . Diakses tanggal 11 Juli 2014 .
  126. ^ "ArmHardFloatPort – Debian Wiki" . Wiki.debian.org. 20 Agustus 2012 . Diakses pada 8 Januari 2014 .
  127. ^ "Prosesor Cortex-A9" . lengan.com . Diakses pada 21 November 2011 .
  128. ^ "Tentang Cortex-A9 NEON MPE" . lengan.com . Diakses pada 21 November 2011 .
  129. ^ "US20050125476A1" .
  130. ^ "US20080141004A1" .
  131. ^ "Opsi LENGAN" . Manual Pengumpulan Kompilator GNU . Diakses pada 20 September 2019 .
  132. ^ "Ne10: Proyek perpustakaan perangkat lunak terbuka yang dioptimalkan untuk Arsitektur ARM" . GitHub . Diakses pada 20 September 2019 .
  133. ^ Joseph Yiu. "Pengantar arsitektur ARMv8.1-M" (PDF) . Diakses pada 5 Maret 2020 .
  134. ^ "Genode – Eksplorasi Teknologi ARM TrustZone" . Diakses tanggal 10 Juli 2015 .
  135. ^ "ARM Mengumumkan Ketersediaan Solusi Perangkat Lunak DRM Konsumen Seluler Berdasarkan Teknologi ARM TrustZone" (Siaran pers). Berita.thomasnet.com . Diakses tanggal 18 April 2009 .
  136. ^ Laginimaineb (8 Oktober 2015). "Bit, Tolong!: Eksploitasi TrustZone Penuh untuk MSM8974" . Bit, Tolong! . Diakses pada 3 Mei 2016 .
  137. ^ Di Shen. "Menyerang 'Inti Tepercaya' Anda Mengeksploitasi TrustZone di Android" (PDF) . Pengarahan Topi Hitam . Diakses pada 3 Mei 2016 .
  138. ^ "Perangkat Lunak Sumber Terbuka ARM TrustZone dan ARM Hypervisor" . Buka Virtualisasi. Diarsipkan dari versi asli pada 14 Juni 2013 . Diakses pada 14 Juni 2013 .
  139. ^ "Teknologi Aman AMD" . AMD . AMD . Diakses pada 6 Juli 2016 .
  140. ^ Smith, Ryan (13 Juni 2012). "APU AMD 2013 untuk menyertakan Prosesor ARM Cortex A5 untuk Kemampuan Trustzone" . AnandTech . Diakses pada 6 Juli 2016 .
  141. ^ a b Shimpi, Anand Lal (29 April 2014). "Pratinjau Kinerja AMD Beema Mullins Arsitektur A10 mikro 6700T" . AnandTech . Diakses pada 6 Juli 2016 .
  142. ^ Walton, Jarred (4 Juni 2014). "AMD Meluncurkan APU Kaveri Seluler" . AnandTech . Diakses pada 6 Juli 2016 .
  143. ^ "Platform Samsung KNOX" (PDF) . Samsung Elektronik . April 2016.
  144. ^ "Manual Referensi Arsitektur ARM" (PDF) . P. B4-8. Diarsipkan dari versi asli (PDF) pada 6 Februari 2009. Bit APX dan XN (execute never) telah ditambahkan di VMSAv6 [Arsitektur Sistem Memori Virtual]
  145. ^ Manual Referensi Arsitektur ARM, edisi ARMv7-A dan ARMv7-R . ARM Terbatas.
  146. ^ "Korteks-A65AE" . Pengembang ARM . Diakses pada 26 April 2019 .
  147. ^ "Prosesor Cortex-A32 – ARM" . Diakses pada 18 Desember 2016 .
  148. ^ "AppliedMicro Menampilkan 64-bit ARM v8 Core Pertama di Dunia" (Rilis pers). Mikro Terapan 28 Oktober 2011 . Diakses pada 11 Februari 2014 .
  149. ^ "Exynos 5433 Samsung adalah SoC ARM A57/A53" . AnandTech . Diakses pada 17 September 2014 .
  150. ^ "Manual Referensi Teknis Prosesor ARM Cortex-A53 MPCore: Ekstensi Kriptografi" . LENGAN . Diakses pada 11 September 2016 .
  151. ^ Frumusanu, Andrei (3 September 2020). "ARM Mengumumkan Cortex-R82: Prosesor Waktu Nyata 64-bit Pertama" . AnandTech .
  152. ^ Frumusanu, Andrei (30 Maret 2021). "Arm Mengumumkan Arsitektur Armv9: SVE2, Keamanan, dan Dekade Berikutnya" . AnandTech .
  153. ^ Harrod, Alex (30 Maret 2021). "Arm meluncurkan arsitektur v9" (Siaran pers). Arm Ltd.
  154. ^ Osborne, Charlie. "ARM mengumumkan arsitektur keamanan PSA untuk perangkat IoT" . ZDNet.
  155. ^ Wong, William G. (25 Oktober 2017). "Arsitektur Keamanan Platform Arm Menargetkan Cortex-M" . Desain Elektronik.
  156. ^ Wong, William. "Arsitektur Keamanan Platform ARM Menargetkan Cortex-M" . Desain Elektronik .
  157. ^ Hoffenberg, Steve. "ARM: Keamanan Bukan Sekedar Imperatif Teknologi, Ini Tanggung Jawab Sosial" . Riset VDC .
  158. ^ ARMasu, Lucian. "ARM Mengungkapkan Lebih Detail Tentang Arsitektur Keamanan Platform IoT" . Perangkat keras Tom .
  159. ^ Williams, Chris. "ARM PSA IoT API? BRB... Kotak peralatan teknologi untuk mengamankan kit yang terhubung ke jaringan terbuka lagi" . Daftar .
  160. ^ Hayes, Caroline (25 Februari 2019). "Embedded World: Arm memperkenalkan elemen keamanan keempat ke PSA" . Mingguan Elektronik .
  161. ^ "Bersertifikat PSA: membangun kepercayaan di IoT" . Bersertifikat PSA .
  162. ^ a b "Bersertifikat PSA–membangun kepercayaan, membangun nilai" . Waktu EE . 4 Maret 2019.
  163. ^ "Pentingnya standar dan regulasi keamanan senilai $6 triliun di era IoT" . IoT Sekarang. 16 Maret 2020.
  164. ^ McGregor, Jim (4 Maret 2019). "Arm Memperkenalkan Pengujian Sertifikasi Keamanan Untuk IoT" . Forbes .
  165. ^ Kecepatan, Richard (26 Februari 2019). "Azure IoT mengarah ke luar angkasa untuk menjaga konektivitas tetap terdepan, berkat Inmarsat" . Daftar .
  166. ^ "Spesifikasi OS-9" . Perangkat mikro .
  167. ^ a b "Pharos" . SumberForge . Diakses tanggal 24 Mei 2018 .
  168. ^ "Virtualisasi PikeOS Aman dan Aman" . Diakses pada 10 Juli 2013.
  169. ^ a b "Sistem Operasi Real-Time Bersertifikat Keamanan – CPU yang Didukung" .
  170. ^ "Port Platform ARM" . opensolaris.org. Diarsipkan dari versi asli pada 2 Desember 2012 . Diakses tanggal 29 Desember 2012 .
  171. ^ "Multivisor Berbasis INTEGRITAS Perangkat Lunak Green Hills Menghadirkan Solusi Virtualisasi Aman 64-bit Tertanam Pertama di Industri" . ghs.com . Diakses pada 14 Maret 2018 .
  172. ^ "Sistem operasi waktu-nyata Enea OSE untuk 5G dan LTE-A | Enea" . www.enea.com . Diakses pada 17 April 2018 .
  173. ^ "Platform yang Didukung" . docs.sel4.systems . Diakses pada 23 November 2018 .
  174. ^ "Platform Pengembangan Perangkat Lunak QNX (SDP 7.0) | BlackBerry QNX" . www.blackberry.qnx.com . Diakses pada 27 Juli 2020 .
  175. ^ Linus Torvalds (1 Oktober 2012). "Re: [GIT PULL] arm64: port kernel Linux" . Milis kernel Linux (milis) . Diakses pada 2 Mei 2019 .
  176. ^ Larabel, Michael (27 Februari 2013). "Ubuntu/Debian Versi ARM 64-bit Sedang Booting" . Phoronix . Diakses pada 17 Agustus 2014 .
  177. ^ "Berita Proyek Debian – 14 Agustus 2014" . Debian . 14 Agustus 2014 . Diakses pada 17 Agustus 2014 .
  178. ^ "Server Ubuntu untuk ARM" . ubuntu.com .
  179. ^ "Arsitektur/AArch64" . Diakses pada 16 Januari 2015 .
  180. ^ "Portal: ARM/AArch64" . Diakses pada 16 Januari 2015 .
  181. ^ "Catatan Rilis SUSE Linux Enterprise 12 SP2" . Diakses pada 11 November 2016 .
  182. ^ "Red Hat memperkenalkan dukungan server ARM untuk Red Hat Enterprise Linux" . redhat.com . Diakses pada 18 Januari 2019 .
  183. ^ "Pembaruan proyek arsitektur ARM 64-bit" . Yayasan FreeBSD. 24 November 2014.
  184. ^ "OpenBSD/arm64" . Diakses pada 7 Agustus 2017 .
  185. ^ "NetBSD/arm64" . Diakses tanggal 5 Agustus 2018 .
  186. ^ "HP, Asus mengumumkan PC Windows 10 ARM pertama: masa pakai baterai 20 jam, gigabit LTE" . Ars Technica . Diakses pada 22 Januari 2018 . Versi baru Windows 10 ini adalah sistem operasi ARM 64-bit pertama Microsoft. Ini akan menjalankan aplikasi ARM x86 dan 32-bit dari Store, dan pada waktunya, aplikasi ARM 64-bit. Namun, Microsoft belum menyelesaikan ARM SDK 64-bit. Banyak bagian telah tersedia (misalnya, ada kompiler ARM 64-bit), tetapi perusahaan belum mengambil aplikasi ARM 64-bit yang dikirimkan ke Store, dan juga tidak ada aplikasi desktop ARM 64-bit.
  187. ^ Hassan, Mehedi (10 Desember 2016). "Windows 10 pada ARM64 mendapatkan aplikasi terkompilasi pertamanya" . Pengguna MSPower .
  188. ^ Filippidis, Katrina (1 Juni 2018). "VLC menjadi salah satu aplikasi Windows ARM64 pertama" . Engadget .
  189. ^ Sweetgall, Marc (15 November 2018). "Dukungan resmi untuk Windows 10 pada pengembangan ARM" . Pengembang Windows. Blog Windows . Microsoft . Diakses pada 17 Desember 2019 .
  190. ^ Gartenberg, Chaim (12 November 2020). "macOS Big Sur sekarang tersedia untuk diunduh" . The Verge . Diakses pada 13 November 2020 .
  191. ^ Semanggi, Juli (23 Juni 2020). "Rosetta Tidak Akan Mendukung Aplikasi Virtualisasi x86 yang Menjalankan Windows" . MacRumor . Diakses pada 13 November 2020 .
  192. ^ "ARM – Wiki Anggur Resmi" . Diakses tanggal 10 Juli 2015 .
  193. ^ "ARM64 – Wiki Anggur Resmi" . Diakses tanggal 10 Juli 2015 .
  194. ^ "Pembaruan Keamanan ARM" . Pengembang ARM . Diakses tanggal 24 Mei 2018 .

Daftar Pustaka

Bacaan lebih lanjut

Tautan eksternal

manual arsitektur
Kartu Referensi Cepat
0.11766600608826