ARM Programlama Temelleri: Arm Cortex-M Ailesi

Yetkin AKYÜZ
3 min readApr 12, 2021

Serinin ilk bölümünde de biraz bahsettiğim ARM Cortex-M, düşük silikon kalıp boyutuna ve çok yüksek enerji verimliliğine sahip olacak şekilde tasarlanmış bir mikroişlemci ailesidir. Bu işlemciler tipik olarak, kısa boru hatlarına sahiptir ve genellikle düşük maksimum frekansları vardır. Kullanımı çok kolay olacak şekilde tasarlanmış olmalarından dolayı mikrodenetleyici ve gömülü sistemler pazarında çok popülerdir.

Cortex-M İşlemci Ailesi

Cortex-M ailesi, performans yelpazesinin alt bölümünde yer alır. Ancak mikrodenetleyiciler için tasarlanmış diğer işlemcilere göre yine de daha güçlüdür. Performans çok önemli olsa da, mikroişlemci seçimi için tek kriter değildir. Bir çok uygulama için güç tüketimi ve maliyet, mikroişlemci seçimi için kilit noktadır. Cortex-M işlemci ailesi, farklı ihtiyaçlara yönelik bir çok ürün barındırmaktadır.

Şekil 1: Cortex-M mikroişlemcilerin komut setleri (M0 — M7) [1]

Cortex-M0, ARMv6-M mimarisine sahiptir. Oldukça küçük bir silikon kalıp boyutu ve düşük güç tüketimi ile dikkat çekmektedir. Neredeyse tüm komutları ile Thumb1 ve bazı komutları ile Thumb2 komut setlerinin yanında 3 aşamalı boru hattına sahiptir.

Cortex-M0+, Cortex-M0’ın optimize edilmiş bir süper setidir. Küçük gömülü sistemler için enerji açısından en verimli seçenektir. Boru hattı Cortex-M0’a kıyasla 2 aşamaya düşürülmüştür. Komut seti Cortex-M0 ile aynıdır.

Cortex-M1, ARMv6-M mimarisine sahiptir. Özellikle FPGA yongalarında kullanılmak üzere tasarlanmıştır. 3 aşamalı boru hattına ve Cortex-M0 ile aynı komut setine sahiptir.

Cortex-M3, ARMv7-M mimarisine sahiptir. Zengin komut setine sahip olmasıyla düşük güç tüketimli mikrodenetleyici uygulamaları için oldukça güçlüdür. Dallanma örgüsü ile 3 aşamalı boru hattına sahiptir. Thumb1 ve Thumb2 komut setlerinin tamamını barındırmaktadır.

Cortex-M4, ARMv7E-M mimarisine sahiptir. Cortex-M3’teki tüm özelliklere ek olarak, Sayısal İşaret İşleme (DSP) komutları barındırır.

Cortex-M7, Cortex-M4’e göre neredeyse iki kat yüksek güç verimliliği ile üst düzey mikro denetleyiciler ve işleme yoğun uygulamalar için tasarlanmıştır. ARMv7E-Mmimarisine ve dallanma örgüsü ile 6 aşamalı olmasıyla ailenin en uzun boru hattına sahiptir.

Von Neumann ve Harvard Mimarileri

Şekil 2: Von Neumann & Harvard Mimarileri [5, 6]

İki adet bilgisayar mimarisi vardır. Veri ve komutların, aynı bellekte saklandığı Von Neumann mimarisi ve birbirinden fiziksel olarak ayrı iki bellekte saklandığı Harvard mimarisi. Von Neumann mimarisin daha ucuz olmasına karşılık, Harvard mimarisi daha hızlıdır ve daha az enerji harcar.

Cortex-M0 /M0+ /M1 çekirdekleri Von Neumann mimarisine sahipken, Cortex-M3/ M4/ M7 çekirdekleri Harvard mimarisine sahiptir. Fakat Harvard mimarisine sahip olan çekirdekler incelendiğine tasarımlarından dolayı Von Neumann ile karıştırılabilir. Bunun sebebi bu çekirdeklerin aslında değiştirilmiş Harvard mimarisine sahip olmasıdır.

Daha ayrıntılı bilgi için, bu iki mimariyi anlattığım yazıma buradan ulaşabilirsiniz.

Komut Setleri

Cortex-M çekirdeklerinin hepsi, Thumb-1 komutlarının büyük bir kısmını, Thumb-2 komutlarının bazılarını ve 32-bit çarpım komutlarını içermektedir. Çekirdeğin modeli yükseldikçe, sahip olduğu özellikler de artmaktadır.

Cortex-M0 / M0+ / M1, ARMv7-M mimarisinde eklenen CBZ, CBNZ, IT komutlarınının dışında, Thumb-1 komutlarının büyük bir çoğunluğunu ve Thumb-2 komut setinin küçük bir alt kümesini içerir (BL, DMB, DSB, ISB, MRS, MSR).

Cortex-M3 / M4 / M7, Thumb-1 ve Thumb-2 komut setlerinin tüm komutlarını içermektedir. Cortex-M3’te donanım tamsayı bölme ve satürasyon aritmetiği komutları eklenmiştir. Cortex-M4’te DSP komutları ve isteğe bağlı tek hassasiyetli kayan nokta birimi (VFPv4-SP) eklenmiştir. Cortex-M7’de ise isteğe bağlı çift hassasiyetli bir kayan nokta birimi (VFPv5) eklenmiştir.

Şekil 3: ARM Cortex-M Komut Varyasyonları (M0 — M7) [3]
Şekil 4: ARM Cortex-M Komut Grupları (M0 — M7) [3]

Kaynaklar

  1. Yiu, J. (2016 & 2017). ARM® Cortex®-M for Beginners
  2. Wikipedia. ARM Architecture
  3. Wikipedia. ARM Cortex-M
  4. ARM Ltd. Website
  5. Wikipedia. Von Neumann Architecture
  6. Wikipedia. Harvard Architecture

--

--

Yetkin AKYÜZ
0 Followers

Düzce Üniversitesi, EEM son sınıf öğrencisiyim. Gömülü sistemler ve ARM mimarisi alanlarında kendimi geliştirmeye odaklandım. Problem çözmekten çok zevk alırım.