ARM mimarisi

ARM mimarisi (orijinal adı Acorn RISC Machine) RISC tabanlı bir işlemci mimarisidir, 32 ve 64 bit versiyonları vardır, genel itibarıyla düşük güç tüketimi, diğer RISC tabanlı işlemcilere göre yüksek performanslı oluşu ve x86-x64 işlemcilere göre daha hesaplı olmasından dolayı gömülü sistemlerde, taşınabilir aygıtlarda kullanılan yongasetlerinde genelde ARM işlemci tercih edilir.
ARM firması kendi başına işlemci üretmez, dizayn ve lisansı satar, CISC tabanlı işlemcilere göre özelleştirilebildiğinden aynı jenerasyon işlemci farklı üreticilerden değiştirilmiş olarak çıkabilir, bağlı olarak da performans farklılıkları görülür. Bu yüzden işlemci jenerasyonları ve karakteristikleri incelenirken ARM referans tasarımı ele alınır.
Tarihi
Acorn Computers Ltd tarafından geliştirme projesi olarak ARM dizaynı 1983 yılında başladı.
Roger Wilson and Steve Furber liderliğinde takım, gelişmiş bir MOS Technology 6502'sinin neye benzeyeceğinin geliştirilmesine başladı. Acorn, 6502'sini temel aldığı için programa benzer chip, şirket için önemli bir avantaj sağladı.
Takım, ARM1 isimli geliştirilmiş örneği Nisan 1985'te ve takip eden yılda ilk gerçek ürün olan ARM2'yi tamamladı. ARM2'nin göze çarpan özellikleri, 32-bit veri yolu, 26-bit address space, 64 Mbayt adres alanı ve 16 adet 32-bitlik yazmaç sağlar. Bu yazmaçlardan birtanesi program sayacı olarak kullanılır. Bu sayacın en fazla 6 bit'i ve en az 2 bit'i işlemci durum göstergesi'ni tutar. 30,000 transistör ile yeryüzündeki en basit kullanışlı 32-bit mikroişlemcisi ARM2 işlemcisidir. Bu basitliğin çoğu microkod bulundurmamasından ve günümüzün çoğu işlemcisinde olduğu gibi önbellek içermemesidir. Bu basitlik Intel 80286 işlemcisinden hem daha iyi performans gösterirken hem de daha az güç kullanımı sağlıyordu. ARM3, performansı daha fazla arttırmasını sağlayan 4KB önbellek ile geliştirildi.
ARM6'nın ilk modeli 1991 yılında piyasaya sürüldü ve Apple, kendi Apple Newton PDA'ları için temel olarak ARM6-based ARM 610'nu kullandı. 1994 yılında, Acorn kendi Risc PC bilgisayarlarında ana CPU olarak the ARM6-based ARM 610'nu kullandı.
ARM çekirdekleri
Tasarım Notları
Tasarımın açık, basit ve hızlı olabilmesi için Acorn microbilgisayarlarında kullanılan 8-bit 6502 işlemcisine benzer bir şekilde mikrokod barındırmayacak şekilde geliştirildi.
ARM Mimarisi, aşağıda belirtilen RISC özellikleri içerir:
Load/store mimarisi
Yanlış hafıza erişimlerine karşı desteği yok. (ARMv6 çekirdeklerinde destekleniyor.)
Geniş 16 32-bit yazmaç dosyası
Intel 80286 ve Motorola 68020 işlemcilerindeki gibi bazı bilindik tasarım özellikleri kullanıldı:
Güçlü indeksleme,
Basit ama hızlı 2-öncelikli-bölüm kesme altsistemi,
Aritmetik yönergelerde ve adres hesaplamalarında performans sorunu olmadan 32-bit barrel shifter
Her yönergenin öncesinde 4-bit condition code'u kullanması ARM tasarımına ilginç bir eklemedir.
Hafıza erişim talimatlarında yerini almalar olduğu için bu kesmeler, önemli şekilde geçerli bitlerin kodlanmasını..., fakat öbür tarafdan da küçük if koşulları için kodlar oluşturulurken dallanma talimatlarından kaçınılır. Euclid'in Euclidean algorithm örneği en bilinen ve standart örnektir:
C programlama dilinde, döngü :
int gcd (int i, int j)
{
while (i!= j)
{
if (i > j)
i -= j;
else
j -= i;
}
return i;
}

ARM assembly dilinde, döngü:

loop CMP Ri, Rj ; set condition "NE" if (i!= j)
; "GT" if (i > j),
; or "LT" if (i < j)
SUBGT Ri, Ri, Rj ; if "GT", i = i-j;
SUBLT Rj, Rj, Ri ; if "LT", j = j-i;
BNE loop ; if "NE", then loop
then ve else yantümcelerinde dallanmalardan kaçınılır.
Komut kümelerinin başka tek özelliği de kaydırma ve döndürmeleri "veri işlemleri" (aritmetik, mantıksal, ve yazmaç-yazmaç hareketi) komutlarına bağlayabilmesidir. Örneğin C dilinde
a += (j 2);
Arm işlemcisinde tek çevrim komutu ve tek bir kelimeymiş gibi dönüştürülür.
ADD Ra, Ra, Rj, LSL #2
Tipik Arm programında bu sonuç beklenenden daha az hafıza erişimi ve boru hattının daha verimli kullanılmasını sağlar. ARM işlemcisinin yavaş hızla çalıştığı düşünülmesine karşın daha gelişmiş işlemciler ile yine de yarışabilir durumdadır.
ARM lisansları
ARM lisanslarını elinde tutan bazı firmalar: Analog Devices, Atmel, Broadcom, Cirrus Logic, Faraday technology, IBM, Infineon Technologies, Nintendo, NXP Semiconductors (spun off from Philips in 2006), OKI, Samsung, Sharp, STMicroelectronics, Texas Instruments ve VLSI
Yaklaşık lisans bedeli
2.45 milyar ünitenin lisanslama sonucu, ARM'nin yıllık raporuna göre lisans bedeli toplam 164.1 milyon Amerikan Doları'dır. Bu yaklaşık ünite başına 0.067 Amerikan dolarına denk gelir. Tüm çekirdeklerin ortalaması olmasına karşın pahalı ve ucuz eski çekirdekleri de buna dahildir.