ARM (Advanced RISC Machines)
Gömülü sistemlere ilgi duyan herkes son zamanlarda iki terimin ismini bolca duymaya başladı. Bunlar ARM ve Gömülü Linux’dur. Artık herkes bu alanlara yönelme çalışmalarına girdi. Özgür ortamda kod yazmak, masrafı milyonlarca lirayı bulan yazılım lisanslarından kurtulmanın vermiş olduğu rahatlıkla birleşince gömülü linux son zamanlarda populerliğini arttırdı. Bizim bu konumuzda değineceğimiz ARM konusu ise kuşkusuz dünyada ve Türkiye’de çok popüler bir yer işgal etmektedir. Belki de bir sonra ki diyeceğimiz cümleyi bir çok defa duymuş olacaksınız.
“ Gömülü Sistemlerle yapılan projelerin büyük bir çoğunluğunda ARM temelli işlemciler kullanılmakdır. “
Evet, evet tahmin edebiliyorum bunu çok duydunuz
ki ARM işlemcileri öğrenmeye karar verdiniz. ARM öğrenmek isteyen birçok kişi olmasına rağmen arm öğrenmek için pek fazla döküman ve kaynak bulunmamaktadır. Bizde bu durumda kod ARM temellerine giriş yapalım dedik. Burada vakit buldukça ARM işlemcilerinin mantığını, çalışma prensibi gibi temel açıklayıcı bilgileri dilimizin döndüğünce açıklamaya çalışacağım. Bunları açıklarken tabiki hata yapacağız, bazen eksik bilgi verebileceğiz vs. Lütfen bunlar için sitede benimle iletişime geçerek hatalı gördüğünüz yerleri düzeltme imkanı sağlarsanız çok sevinirim. İlk açıklamalarımızı yaptıktan sonra artık yavaş yavaş konumuza geçelim.
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.



merhaba iletişim kısmını göremedim bu yazıyı sitemde kaynak göstererek paylaşabilirmiyim.
Merhaba Zafer Bey, tabi ki paylaşabilirsiniz.