Cortex-M işlemci talimat seti

2.1 Komut setine giriş

Çoğu durumda, uygulama kodu C veya diğer yüksek seviyeli dillerde yazılabilir. Bununla birlikte, Cortex-M işlemci tarafından desteklenen komut setinin temel bir anlayışı, geliştiricilerin belirli bir uygulama için uygun Cortex-M işlemciyi seçmelerine yardımcı olur. Yönerge seti (ISA) işlemci mimarisinin bir parçasıdır ve Cortex-M işlemci birkaç mimari özelliğe bölünebilir.

Tablo 3: Cortex-M işlemci ARM mimarisi özellikleri

Tüm Cortex-M işlemciler Başparmak komut setini destekler. Başparmak talimat setinin tamamı, Thumb-2 versiyonuna genişletildiğinde oldukça büyük hale gelir. Ancak, farklı Cortex-M işlemcileri, Şekil 3'te gösterildiği gibi Başparmak komut setinin farklı alt kümelerini destekler:

Şekil 3: Cortex-M işlemcinin talimat seti

2.2 Cortex-M0 / M0 + / M1 komut seti

Cortex-M0 / M0 + / M1 işlemciler, ARMv6-M mimarisini temel alır. Bu, yalnızca 56 komutu destekleyen küçük bir komut kümesidir. Talimatların çoğu, Şekil 3'te gösterildiği gibi 16 bitlik talimatlardır. Ancak, bu tür işlemcilerdeki kayıtların ve işlenen verilerin uzunluğu 32 bittir. En basit G / Ç kontrol görevleri ve genel veri işleme için bu talimatlar yeterlidir. Bu kadar küçük bir komut seti, işlemci tasarımını az sayıda devre geçidi ile gerçekleştirebilir.Cortex-M0 ve Cortex-M0 + 'ın minimum konfigürasyonu sadece 12K geçittir. Ancak, bu talimatların birçoğu yüksek sıralı yazmaçları (R8 ila R12) kullanamaz ve anlık veri oluşturma yetenekleri sınırlıdır. Bu, ultra düşük güç tüketimi ve performans gereksinimlerini dengelemenin sonucudur.

2.3 Cortex-M3 komut seti

Cortex-M3 işlemci, ARMv7-M mimarisine dayanan bir işlemcidir ve yüksek sıralı kayıtları verimli bir şekilde kullanabilen birçok 32 bit talimat dahil olmak üzere daha zengin bir komut setini destekler. M3 ayrıca şunları da destekler:

· Tablo atlama talimatları ve koşullu yürütme (BT talimatlarını kullanarak)

· Donanım bölümü talimatı

· Çarpın ve talimat ekleyin (MAC)

· Çeşitli bit işleme talimatları

Daha zengin bir komut seti, performansı çeşitli şekillerde geliştirir; örneğin, 32-bit Başparmak komutları, bellek veri aralıklarında daha geniş bir anlık veri aralığını, atlama ofsetlerini ve adres ofsetlerini destekler. Temel DSP işlemlerini destekleyin (örneğin, yürütmek için birden fazla saat döngüsü gerektiren birkaç MAC talimatının yanı sıra doygunluk hesaplama talimatlarını destekler). Son olarak, bu 32-bit komutlar, tek bir komutun birden fazla veri üzerinde birlikte varil kaydırma işlemleri gerçekleştirmesine izin verir.

Daha fazla talimatın desteklenmesi, daha büyük alan maliyetlerine ve daha yüksek güç tüketimine yol açar. Tipik bir mikro denetleyici olan Cortex-M3, Cortex-M0 ve Cortex-M0 + 'dan iki kat daha fazla devre geçidine sahiptir. Bununla birlikte, işlemcinin alanı, çoğu modern mikro denetleyicinin yalnızca küçük bir parçasıdır ve ekstra alan ve güç tüketimi çoğu zaman o kadar önemli değildir.

2.4 Cortex-M4 komut seti

Cortex-M4, birçok yerde Cortex-M3 ile aynıdır: boru hattı, programlama modeli. Cortex-M4, Cortex-M3'ün tüm işlevlerini destekler ve ek olarak, SIMD, doygunluk işlem talimatları, bir dizi tek döngülü MAC talimatı gibi DSP uygulamaları için çeşitli talimatları destekler (Cortex-M3 yalnızca sınırlı sayıda MAC talimatını destekler ve çok döngülüdür) Yürütülmüş) ve isteğe bağlı tek duyarlıklı kayan noktalı aritmetik komutlar.

Cortex-M4'ün SIMD işlemi, paralel olarak iki 16 bitlik veriyi ve dört 8 bitlik veriyi işleyebilir. Örneğin, Şekil 4'te gösterilen QADD8 ve QADD16 işlemleri:

Şekil 4: SIMD talimatı örneği: QADD8 ve QADD16

SIMD'nin kullanımı, hesaplama paralelleştirilebildiğinden, belirli DSP işlemlerinde 16 bit ve 8 bit verilerin çok daha hızlı hesaplanmasını sağlar.Ancak, genel programlamada, C derleyicilerinin SIMD özelliğini kullanması pek olası değildir. Bu nedenle tipik kıyaslama Cortex-M3 ve Cortex-M4'ün sonuçları. Bununla birlikte, Cortex-M4'ün dahili veri yolu, birkaç durumda daha hızlı işlemlere olanak tanıyan Cortex-M3'ten farklıdır (örn. tek döngülü MAC ve iki kaydın geri yazılmasına izin verir) Bazı DSP işlemlerinde, SIMD kullanımı 16 bitlik ve 8 bitlik verinin hesaplanmasını hızlandırabilir ve daha hızlı hale getirebilir, çünkü bu işlemler paralel olarak işlenebilir. Bununla birlikte, genel programlamada, C derleyicisi SIMD hesaplama gücünü tam olarak kullanamaz. Cortex-M3 ve Cortex-M4'ün tipik kıyaslama puanlarının benzer olmasının nedeni budur. Bununla birlikte, Cortex-M4'ün dahili veri yolu Cortex-M3'ten farklıdır.Cortex-M4 bazı durumlarda daha hızlı işleyebilir (örneğin, tek döngülü MAC bir döngüde iki kayda geri yazabilir).

2.5 Cortex-M7 komut seti

Cortex-M7 tarafından desteklenen talimat seti, aşağıdakilerin eklenmesiyle birlikte Cortex-M4'e benzer:

· Kayan nokta veri mimarisi, Cortex-M4'ün FPv4'üne değil, FPv5'e dayanmaktadır, bu nedenle Cortex-M7 ek kayan nokta talimatlarını destekler

İsteğe bağlı çift kesinlikli kayan noktalı veri işleme talimatları

Önbellek verilerini önceden getirme talimatını (PLD) destekleyin

Cortex-M7'nin boru hattı, Cortex-M4'ten çok farklı. Cortex-M7, daha yüksek performansa ulaşabilen 6 aşamalı çift başlatmalı bir boru hattıdır. Cortex-M4 için tasarlanmış çoğu yazılım doğrudan Cortex-M7 üzerinde çalışabilir. Ancak, en iyi optimizasyonu elde etmek için ardışık düzen farklılıklarından tam olarak yararlanmak için, yazılımın yeniden derlenmesi gerekir ve çoğu durumda, yazılım, Cache gibi yeni özelliklerden tam olarak yararlanabilmek için bazı küçük yükseltmelere ihtiyaç duyar.

2.6 Cortex-M23 komut seti

Cortex-M23'ün talimat seti, ARMv6-M'nin bir üst kümesi olan ARMv8-M'nin Temel alt spesifikasyonuna dayanmaktadır. Genişletilmiş talimatlar şunları içerir:

· Donanım bölümü talimatı

Karşılaştırma ve atlama talimatları, 32 bit atlama talimatları

TrustZone güvenlik uzantısı talimatlarını destekleyin

· Birbirini dışlayan veri erişim talimatları (genellikle semafor işlemleri için kullanılır)

· 16 bit anlık veri oluşturma talimatları

· Getirme ve saklama serbest bırakma talimatlarını yükleyin (destek C11)

Bazı durumlarda, bu gelişmiş yönerge setleri işlemci performansını artırabilir ve birden çok işlemci içeren SoC tasarımları için kullanışlıdır (örneğin, karşılıklı dışlayıcı erişim, çok işlemcili semafor işleme için yararlıdır)

2.7 I Cortex-M33 komut seti

Cortex-M33 tasarımı çok yapılandırılabilir olduğundan, bazı komutlar da isteğe bağlıdır. Örneğin:

· DSP talimatları (Cortex-M4 ve Cortex-M7 tarafından desteklenir) isteğe bağlıdır

· Tek duyarlıklı kayan noktalı aritmetik talimatlar isteğe bağlıdır Bu talimatlar FPv5'e dayanır ve Cortex-M4'ten birkaç tane daha fazladır.

: Cortex-M33 ayrıca ARMv8-M Mainline tarafından sunulan yeni talimatları da destekler:

2.8 Komut Seti Özelliklerinin Karşılaştırılması ve Özeti

ARMv6-M, ARMv7-M ve ARMv8-M mimarileri birçok komut seti özelliğine sahiptir ve tüm detayları tanıtmak zordur. Ancak, aşağıdaki tablo (Tablo 4) bu temel farklılıkları özetlemektedir.

Tablo 4: Komut Seti Özelliklerinin Özeti

Cortex-M işlemci talimat setinin en önemli özelliği yukarı doğru uyumluluktur. Cortex-M3 talimatları, Cortex-M0 / M0 + / M1'in bir üst kümesidir. Bu nedenle teoride, depolama alanı tahsisi tutarlıysa, Cortex-M0 / M0 + / M1 üzerinde çalışan ikili dosya doğrudan Cortex-M3 üzerinde çalıştırılabilir. Aynı ilke Cortex-M4 / M7 ve diğer Cortex-M işlemciler için de geçerlidir; Cortex-M0 / M0 + / M1 / M3 tarafından desteklenen talimatlar Cortex-M4 / M7'de de çalışabilir.

Cortex-M0 / M0 + / M1 / M3 / M23 işlemcinin kayan noktalı birim yapılandırma seçeneği olmasa da, işlemci kayan nokta veri işlemlerini gerçekleştirmek için yine de yazılımı kullanabilir. Bu, kayan nokta birimi olmayan Cortex-M4 / M7 / M33 tabanlı ürünler için de geçerlidir. Bu durumda, programda kayan nokta sayıları kullanıldığında, derleyici araç seti, bağlama aşaması sırasında gerekli çalışma zamanı yazılım kitaplığını ekleyecektir. Yazılım modundaki kayan nokta işlemleri daha uzun çalışma süresi gerektirir ve kod boyutunu biraz artırır. Bununla birlikte, kayan noktalı işlemler sık kullanılmıyorsa, bu çözüm bu uygulama için uygundur.

Yalama Ekran Süresi | Gerçek manga prensi belli ki Shun Oguri!
önceki
Elma mı saklayacaksın? Yeni MacBook Air veya i7 sürümü piyasaya sürülecek
Sonraki
Park alanlarından otoparklarda otonom sürüşe kadar, akıllı park teknolojisinin mevcut durumunun ayrıntılı açıklaması
Tiyatro deminingi Hakim olduğunu görelim
Saniyede bir "arkadan görünüm katiline" dönüşecek kadar yakışıklı olan NASA sırt çantası, uzayda kullanılabilecek kadar güçlü |
Haftalık Yapay Zeka Önemli Noktaları: Sogou, Yapay Zeka Sentetik Çapasını Başlattı, Tencent GPL İşbirliği Taahhüdüne Katıldı
Eğitim sırasına dayalı geliştirilmiş OFDM frekans senkronizasyon algoritması
Ona "As" dersen, gerçekten pislik olmadığını mı düşünüyorsun? Kaynaklar geliyor
Tanrı değil, bu dramanın gerçek mükemmelliği
Rongchang'daki bu aile "Büyük Usta" nın gerçekçi bir versiyonunu sahneledi.
Yüz milyar imparatorluğu "kopyala": ZARA'nın servet efsanesi
ARM Cortex-M işlemciye başlarken
Gece Okuması Kardeşim hasta karısını ameliyat etmesi için arabadan çıkardı: Alzheimer hastalığından muzdarip karısı "Alipay Kırmızı Paket" SMS'i sahte mi? Resmi hatırlatma: hiç yayınlanmadı!
Fragman doğru mu? "Öfkeli" resmi itme sahtekarlığı "Öfkeli 2" söylentileri
To Top