ARM’i taniyalim

Iyi geceler sevgili okurlarim. Bu gece biraz uyku tutmadi ve arm uzerine yazmak istedim. Arm islemci kelimesini genelde Gomulu sistem terimi ile birlikte duymaya basladik. Yada son kullanici noktasinda Cep telefonlari, Tablet PC’ler ile birlikte. Android ile gelisen ARM üzerindeki coklu mimari gucu git gide artan bir pazarida ortaya cikartmis oldu. Arm’n kelime anlamina bakcak olursakta Advanced RISC Machines kelimelerinin ilk harfleri cikmakta.

Benim blogda bahsettigim ARM üzerinde bir isletim sistemi bulundurmadan direk yazilmis keil C kodlarini calistiriyor olacak. internetten derledigim bazi yazilar ile de aciklmalari su sekilde birlestirip size sunayim :

ARM  Nedir ?

ARM uzun adı Advanced RISC Machines olan bir işlemci mimarisidir. Mimari 32bitlik olmasının yanında düşük maliyeti ile günümüzde çok tutulan işlemci çekirdeklerinin ortaya çıkmasına neden olmuştur. ARM  ürettiği çekirdekleri çeşitli firmalara lisanslandırarak bu firmaların değişik uygulamalar yapmasına olanak sağlamaktadır. Yani ARM firması tümleşik devre üretimi gerçekleştirmemektedir. Bunun yerine  Samsung, Hp, Altera, Micronas, Mitsubishi, Motorola, Sanyo, Triscend gibi birçok firma ARM çekirdeklerini alıp bunun üzerine uygulmalarını geliştirmekte veya ARM tabanlı kendi işlemcilerini piyasaya sürmektedir.

Bayağı uzun sürecek yazı dizimizde ARM komutlarına değineceğiz. Sitede ARM ile c programlama örnekleri başka konularda yer alabilir ancak biz konularımızı ARM komut seti ile devam ettireceğiz. Çünkü bir mikroişlemciyi tanımak için bence onun komut setini, registerlarını öğrenmekle mümkün olur. Zaten c programlama bildikten sonra bu bilgilerinizi daha efektif bir şekilde kullanabilirsiniz.

Temel olarak ARM komut setleri 2 alt kısma ayrılır bunlar  16 bitlik THUMB ve 32 bitlik ARM komut setleridir. Biz öncelikle 32 bitlik komut setlerine değineceğiz. Bu işlemlerimizi sırasında herhangi bilgisayar veya board kullanımı gerçekleştirmeyi düşünmüyorum ancak vakit bulabilirsem birkaç bütünleyici uygulama yapıp görsellerini paylaşabiliriz. ARM uygulamalar içinde elimde bulunan geliştirme kiti aşağıda görülmektedir.

ARM Özellikleri

ARM tam olarak olmasa da RISC sınıfı bir işlemcidir. (Reduced Instruction Set Computer) yani komut seti azaltılmış bir işlemcidir. Neden tam olarak RISC işlemci olmadığını açıklayalım. Öncelikle R1 den R16’ya kadar 32 bitlik registerlara sahiptir ayrıca bütün komut setlerini conditional yani durumsal olarak kontrol edebiliriz ve son olarak 32bitlik barrel shifter’a sahiptir bu da bilindiği üzere combinational bir devredir yani saat sinyalinden bağımsız olarak bir saat darbesinde birkaç işlem yapmaya olanak sağlar. Saydığımız tüm bu özellikler ARM işlemcileri tam olarak RISC sınıfı bir mikroişlemci yapmaz.

ARM toplamda 6 tane işlem moduna sahiptir ve 37 tane register yani yazmaçdan oluşmaktadır.  Bu yazıcılarda 31 tanesi 32bitlik genel amaçlı yazmaçlar, 6 tanesi durum yazmaçları ve R0’dan R14’e kadar 15 adet programcı tarafından programlanabilen yazmaçlara sahiptir.  Genel olarak little endian sisteme sahip olmakla birlikte istenirse big endian olarak da ayarlanabilir. Burada Little Endian ve Big Endian’nın tam olarak türkçelerini bilemediğimden dolayı türkçelerini yazmıyorum J. Litlle endian gösterim formatı bildiğiniz üzere en düşük adresli konumda yazmaç içindeki en düşük değerli (least significant bit) bit tutulur.

Bugünluk giriş konusu yeter sanırım. Bundan sonraki konumuzda ARM hakkında yavaş yavaş teknik konulara değineceğiz ve örneklendirmelere geçeceğiz. Konumuzu bitirmeden yazının daha iyi anlaşılması için okuyucu arkadaşların RISC, Little Endian, Big Endian gibi terimleri tekrar ederek bilgilerini pekiştirmesinde fayda var. İlerleyen yazılarımızda görüşmek üzere iyi günler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.