özet
ARMCortex-M işlemci ailesinin artık 8 işlemci üyesi var. Bu yazıda, ürün uygulamasına göre doğru Cortex-M işlemcinin nasıl seçileceğine odaklanarak Cortex-M serisi işlemciler arasındaki ürün özelliklerini karşılaştıracağız. Bu makale, Cortex-M serisi işlemcilerin komut seti ve gelişmiş kesinti işleme yeteneklerini ayrıntılı olarak karşılaştıracak ve ayrıca SoC sistem düzeyindeki özelliklerin, hata ayıklama ve izleme işlevlerinin ve performansının karşılaştırılmasını sağlayacaktır.
Bugün ARM Cortex-M işlemci ailesinin 8 işlemci üyesi var. Ek olarak, ARM ürün hattında başka birçok işlemci üyesi var. Bu ürünleri yeni başlayanlar, hatta belirli yonga tasarımlarında deneyimli ancak ARM serisi işlemcilere aşina olmayan tasarımcılar için bile karıştırmak kolaydır. Farklı ARM işlemcilerin farklı komut setleri, sistem işlevleri ve performansı vardır. Bu makale, Cortex-M serisi işlemciler arasındaki temel farklılıkları ve diğer ARM serisi işlemcilerden nasıl farklı olduklarını derinlemesine gösterecektir.
1.1 ARM işlemci ailesi
Yıllar içinde, ARM epeyce farklı işlemci ürünleri geliştirdi. Aşağıdaki şekilde gösterildiği gibi (Şekil 1): ARM işlemci ürünleri, klasik ARM işlemci serisine ve en son Cortex işlemci serisine ayrılmıştır. Ve farklı uygulamalara göre, ARM işlemciler 3 seri halinde sınıflandırılabilir.
Uygulama İşlemcileri (uygulama işlemcileri) -mobil bilgi işlem, akıllı telefonlar, sunucular ve diğer pazarlar için son teknoloji işlemciler. Bu tür işlemci, çok yüksek bir saat frekansında (1GHz üzeri) çalışır ve Linux, Android, MS Windows ve mobil işletim sistemleri gibi eksiksiz bir işletim sistemi için gerekli olan bellek yönetim birimini (MMU) destekler. Yukarıdaki işletim sistemlerinden birini çalıştırması gereken bir ürün geliştirmeyi planlıyorsanız, ARM uygulama işlemcisini seçmeniz gerekir.
Gerçek Zamanlı İşlemciler - Sabit disk denetleyicileri, otomotiv iletim sistemleri ve kablosuz iletişim temel bant denetimi gibi gerçek zamanlı uygulamalar için bir dizi yüksek performanslı işlemci. Gerçek zamanlı işlemcilerin çoğu MMU'yu desteklemez, ancak genellikle MPU, Önbellek ve endüstriyel uygulamalar için tasarlanmış diğer bellek işlevlerine sahiptir. Gerçek zamanlı işlemci nispeten yüksek bir saat frekansında çalışır (örneğin, 200MHz ila > 1GHz), yanıt gecikmesi çok düşüktür. Gerçek zamanlı işlemci, Linux ve Windows işletim sistemlerinin tam sürümünü çalıştıramasa da, çok sayıda gerçek zamanlı işletim sistemini (RTOS) destekler.
Mikrodenetleyici İşlemcileri-Mikrodenetleyici işlemcileri genellikle küçük bir alana ve yüksek enerji verimliliğine sahip olacak şekilde tasarlanmıştır. Genellikle bu işlemcilerin kısa boru hatları ve düşük maksimum saat frekansları vardır (ancak piyasada 200Mhz üzerinde çalışabilen bu tür işlemciler vardır). Üstelik yeni Cortex-M işlemci ailesi, kullanımı çok kolay olacak şekilde tasarlandı. Bu nedenle, ARM mikro denetleyici işlemcileri, mikro denetleyici ve derin gömülü sistem pazarlarında çok başarılı ve popülerdir.
Tablo 1, üç işlemci ailesinin temel özelliklerini özetlemektedir.
Tablo 1: İşlemci özelliklerinin özeti
1.2 Cortex-M işlemci ailesi
Cortex-M işlemci ailesi, düşük performans tarafına daha fazla odaklanır, ancak bu işlemciler, birçok mikro denetleyici tarafından kullanılan geleneksel işlemcilere kıyasla hala çok güçlüdür. Örneğin Cortex-M4 ve Cortex-M7 işlemciler birçok yüksek performanslı mikrodenetleyici ürününde kullanılır ve maksimum saat frekansı 400Mhz'e ulaşabilir.
Elbette, performans bir işlemci seçmenin tek göstergesi değil. Birçok uygulamada, düşük güç tüketimi ve maliyet anahtar seçim kriterleridir. Bu nedenle Cortex-M işlemci ailesi, farklı ihtiyaçları karşılamak için çeşitli ürünler içerir:
Eski klasik ARM işlemcilerin (örneğin, ARM7TDMI, ARM9) aksine, Cortex-M işlemciler çok farklı bir mimariye sahiptir. Örneğin:
-Yalnızca ARM Thumb® talimatlarını destekler ve hem 16-bit hem de 32-bit talimatları desteklemek için genişletilmiştir Thumb-2 sürümü
-Dahili yuvalanmış vektör kesme kontrolü, kesme işleminden, kesme önceliğinin otomatik olarak işlenmesinden, kesme maskelemesinden, kesme yuvalanmasından ve sistem istisnalarının işlemesinden sorumludur.
-Kesinti işleme işlevi standart C dilinde programlanabilir ve iç içe yerleştirilmiş kesme işleme mekanizması, hangi kesmeye yanıt verilmesi gerektiğini belirlemek için yazılım kullanmaktan kaçınır. Aynı zamanda, kesinti yanıt hızı belirleyicidir ve düşük gecikme süresi
-Vektör tablosu, atlama komutundan kesme ve sistem istisna işleme fonksiyonunun başlangıç adresine değişir.
-Kayıt bankası ve belirli programlama modları da değiştirildi.
Bu değişiklikler, klasik ARM işlemciler için yazılan birçok montaj kodunun değiştirilmesi gerektiği ve Cortex-M ürünlerine geçmek için eski projelerin değiştirilip yeniden derlenmesi gerektiği anlamına geliyor. Yazılım geçişinin belirli ayrıntıları ARM belgesine kaydedilir:
ARM7TDMI İşlemci Programcıları için ARM Cortex-M3 İşlemci Yazılım Geliştirme
1.3 Cortex-M serisi işlemcilerin ortak özellikleri
Cortex-M0, M0 +, M3, M4 ve M7'nin birçok benzerliği vardır, örneğin:
Temel programlama modeli (bölüm 3.1)
Yuvalanmış Vektörlü Kesme Denetleyicisinin (NVIC) kesinti yanıtı yönetimi
Mimari tasarımın uyku modu: uyku modu ve derin uyku modu (Bölüm 4.1)
-İşletim sistemi destek özellikleri (bölüm 3.3)
Hata ayıklama işlevi (bölüm 6)
-Kullanım kolaylığı
Örneğin, yuvalanmış vektör kesme denetleyicisi, yerleşik bir kesme denetleyicisidir.
Şekil 2: Cortex-M işlemcinin yuvalanmış vektörlü kesinti denetleyicisi
Birçok çevresel aygıtın kesme girişini, maskelenemez bir kesme isteğini, yerleşik saatten (SysTick) bir kesme isteğini (bkz. Bölüm 3.3) ve belirli sayıda sistem istisna isteğini destekler. NVIC, bu kesintilerin ve istisnaların önceliğini ve kalkan yönetimini ele alır.
NVIC ve istisna işleme modelinin daha fazla içeriği bölüm 3.2'de açıklanmaktadır. Diğer Cortex-M işlemciler arasındaki benzerlikler ve farklılıklar bu makalenin geri kalanında açıklanacaktır.