Mobil bilgi işlem donanımını her düşündüğünüzde, ARM muhtemelen akla ilk gelen şirkettir veya olmalı. Tarihsel olarak Intel, yonga yapımında lider olarak kabul edilirken - ve bugüne kadar bu doğru kaldı - yıllardır, KOL bilgisayar aygıtlarının artık daha hızlı olması gerekmediği, ancak daha verimli ve taşınabilir olmaları gereken bir bükülme noktasına ulaşan bir nişe yavaşça oyulmuştur.

Bu yüzden ARM, mimarisinin üzerine inşa edilen hemen hemen tüm büyük sürümlerle mobil işlemci pazarına hakim. Gömülü uygulamalarda, biyometri sistemlerinde, akıllı TV'lerde, iPhone'larda, dizüstü bilgisayarlarda ve tabletlerde kullanılan milyarlarca yongadan bahsediyoruz. Peki neden böyle ve neden x86 gibi diğer mimariler tutunamadı? Bu yazıda, ARM'in ne olduğu, nereden geldiği ve neden bu kadar popüler hale geldiği hakkında teknik bir genel bakış sunacağız.

Dikkat edilmesi gereken ilk şey, ARM'nin (daha yakın zamanda küçük harfle 'kol' olarak stilize edilmiş) aslında işlemci yapmadığıdır. Bunun yerine bir CPU mimarisi tasarlarlar ve bu tasarımları Qualcomm veya Samsung gibi işlemcilere dahil eden diğer şirketlere lisanslarlar. Hepsi ortak bir standart kullandığından, bir Qualcomm Snapdragon işlemcide çalışan kod bir Samsung Exynos işlemcide de çalışacaktır.

ISA (Komut Seti Mimarisi) nedir?

Her bilgisayar yongasının çalışması için bir ISA'ya ihtiyacı vardır ve ARM'nin temsil ettiği şey budur. CPU'ların içeride nasıl çalıştığına ayrıntılı bir bakış için, CPU tasarım serisi bir zorunluluktur okumak. ARM'yi açıklamanın ilk adımı bir ISA'nın tam olarak ne olduğunu ve olmadığını anlamaktır.

Önbellek veya çekirdek gibi fiziksel bir bileşen değildir, aksine bir işlemcinin tüm yönlerinin nasıl çalıştığını tanımlar. Bu, çipin ne tür talimatları işleyebileceği, giriş ve çıkış verilerinin nasıl biçimlendirilmesi gerektiği, işlemcinin RAM ile nasıl etkileşimde bulunduğu ve çok daha fazlası gibi şeyleri içerir. Bunu düşünmenin bir başka yolu, bir CPU bu spesifikasyonların gerçekleştirilmesi veya uygulanması iken bir ISA'nın bir dizi spesifikasyon olmasıdır. Bir CPU'nun tüm parçalarının nasıl çalışacağına dair bir taslak.




Örneğin, ISA'lar her bir veri parçasının boyutunu 64-bit modeli kullanarak en modern olanlarla belirtir. Tüm işlemciler, talimatları okumak, bu talimatları yürütmek ve sonuçlarını sonuçlara göre güncelleştirmek için üç temel işlevi yerine getirirken, farklı ISA'lar bu adımları daha da bozabilir. X86 gibi karmaşık bir ISA, verimi artırmak için genellikle bu işlemi birkaç düzine küçük işleme böler. Koşullu talimatlar için şube tahmini ve gelecekteki veri parçalarının önceden getirilmesi gibi diğer görevler de ISA tarafından belirtilir.

Bir işlemcinin mikro mimarisini tanımlamanın yanı sıra, ISA da işleyebileceği bir dizi talimat belirleyecektir. Talimatlar CPU'nun her çevrimi yürüttüğü ve bir derleyici tarafından üretildiğidir. Bellek okuma / yazma, aritmetik işlemler, dal / atlama işlemleri ve daha fazlası gibi birçok talimat türü vardır. Bir örnek "bellek adresi 1'in içeriğini bellek adresi 2'nin içeriğine ekleyin ve sonucu bellek adresi 3'te saklayın."

Her komut tipik olarak 32 veya 64 bit uzunluğunda olacak ve birkaç alana sahip olacaktır. En önemlisi işlemkodu hangi işlemciye ne tür bir talimat olduğunu söyler. İşlemci, daha sonra ne tür bir talimat yürüteceğini bildiğinde, söz konusu işlem için gerekli verileri getirir. Verilerin yeri ve türü opcode'un başka bir bölümünde verilecektir. İşte bazı bölümleri için bağlantılar KOL ve x86 opcode listeleri.




RISC Vs. CISC

Şimdi bir ISA'nın ne olduğu ve ne yaptığı hakkında temel bir fikrimiz olduğuna göre, ARM'yi özel yapana bakmaya başlayalım. En önemli özellik ARM'nin bir RISC (İndirgenmiş Komut Seti Hesaplama) mimarisi, x86 ise bir CISC (Karmaşık Komut Seti Hesaplama) mimarisi olmasıdır. Bunlar işlemci tasarımının iki ana paradigmasıdır ve her ikisinin de güçlü ve zayıf yanları vardır.

Bir RISC mimarisi ile, her komut CPU'nun gerçekleştireceği bir eylemi doğrudan belirtir ve bunlar nispeten basittir. Öte yandan, bir CISC mimarisindeki talimatlar daha karmaşıktır ve CPU için daha geniş bir fikir belirtir. Bu, bir CISC CPU'nun tipik olarak her bir talimatı bir dizi mikro operasyona ayıracağı anlamına gelir. Bir CISC mimarisi, performansı büyük ölçüde artırabilecek tek bir talimatta çok daha fazla ayrıntı kodlayabilir. Örneğin, bir RISC mimarisinde yalnızca bir veya iki "Ekle" talimatı bulunabilirken CISC mimarisinde hesaplama türüne ve veri türüne bağlı olarak 20 tane olabilir. RISC ve CISC arasında daha ayrıntılı bir karşılaştırma bulunabilir buraya.

CISC RİSK
Donanımı zorlayın Yazılımın karmaşıklığını zorlayın
Talimatlar için birçok farklı tip ve format Talimatlar benzer biçimi izler
Birkaç dahili kayıt Birçok dahili kayıt
Talimat parçalarını parçalamak için karmaşık kod çözme Ayrıntılı talimatlarla kod yazmak için karmaşık derleyici
Bellek etkileşiminin karmaşık formları Birkaç bellek etkileşimi biçimi
Talimatlar bitirmek için farklı sayıda döngü gerektirir Tüm talimatlar bir döngüde tamamlanır
İşi bölmek ve paralelleştirmek zor Paralel çalışma kolaylığı

Buna bakmanın bir başka yolu, bir ev inşa etmekle karşılaştırmaktır. Bir RISC sistemi ile, sadece temel bir çekiç ve testereye sahip olursunuz, CISC sistemi ile düzinelerce farklı çekiç, testere, matkap ve daha fazlasına sahipsiniz. CISC benzeri bir sistem kullanan bir inşaatçı, araçları daha özel ve güçlü olduğu için daha fazla iş yapabilir. RISC kurucu hala işi halledebilir, ancak araçları çok daha temel ve daha az güçlü olduğu için daha uzun sürer.

Muhtemelen "Neden bir CISC sistemi çok daha güçlü olursa neden RISC sistemini kullanacaksınız?" Performans, dikkate alınması gereken tek şey olmaktan çok uzaktır. Her araç için özel bir beceri seti gerektirdiğinden, CISC üreticimiz bir sürü ekstra işçi kiralamak zorundadır. Bu, şantiyenin çok daha karmaşık olduğu ve çok fazla planlama ve organizasyon gerektirdiği anlamına gelir. Her biri farklı türde bir malzeme ile çalışabileceğinden, tüm bu araçları yönetmek çok daha maliyetlidir. Temel araçlarının herhangi bir şeyle çalışabilmesi nedeniyle RISC arkadaşımız bunun için endişelenmek zorunda değildir.

Ev tasarımcısı, evlerinin nasıl inşa edilmesini istediklerine dair bir seçeneğe sahiptir. RISC üreticimiz için basit planlar oluşturabilirler veya CISC üreticimiz için daha karmaşık planlar oluşturabilirler. Başlangıç ​​fikri ve bitmiş ürün aynı olacak, ancak ortadaki çalışma farklı olacak. Bu örnekte, ev tasarımcısı bir derleyiciye eşdeğerdir. Bir programcı (ev tasarımcısı) tarafından üretilen giriş kodu (ev çizimi) olarak alır ve hangi stilin tercih edildiğine bağlı olarak bir dizi talimat (bina planı) çıkarır. Bu, ortaya çıkan talimatlar listesi çok farklı olmasına rağmen, bir programcının bir ARM CPU ve x86 CPU için aynı programı derlemesini sağlar.

Daha az güce ihtiyacımız var!

Tekrar ARM'ye dönelim. Noktaları birleştiriyorsanız, ARM'yi mobil sistem tasarımcıları için neyin çekici kıldığını tahmin edebilirsiniz. Buradaki anahtar verimliliktir. Gömülü veya mobil bir senaryoda, güç verimliliği performanstan çok daha önemlidir. Hemen hemen her seferinde bir sistem tasarımcısı, güçten tasarruf anlamına gelirse küçük bir performans isabeti alacaktır. Pil teknolojisi gelişene kadar, bir mobil ürün tasarlarken ısı ve güç tüketimi ana sınırlayıcı faktör olarak kalacaktır. Bu yüzden cep telefonlarımızda büyük masaüstü ölçekli işlemciler görmüyoruz. Elbette, bunlar mobil yongalardan daha hızlıdır, ancak telefonunuz tutmak için çok ısınır ve pil birkaç dakika dayanır. Üst düzey bir masaüstü x86 CPU yükte 200 Watt çekebilirken, bir mobil işlemci maksimum 2 ila 3 Watt.

Kesinlikle daha düşük güçlü bir x86 CPU yapabilirsiniz, ancak CISC paradigması daha güçlü yongalar için en uygunudur. Bu yüzden masaüstlerinde ARM çiplerini veya telefonlarda x86 çiplerini sık görmüyorsunuz; sadece bunun için tasarlanmamıştır. ARM neden bu kadar iyi enerji verimliliği sağlayabiliyor? Her şey RISC tasarımına ve mimarinin karmaşıklığına geri dönüyor. Çok sayıda talimatı işleyebilmesi gerekmediğinden, iç mimari de çok daha basit olabilir. Bir RISC işlemcisinin yönetiminde daha az ek yük de vardır.

Bunların hepsi doğrudan enerji tasarrufuna dönüşür. Daha basit bir tasarım, daha fazla transistörün, mimarinin diğer bölümlerini yönetmek için kullanmak yerine doğrudan performansa katkıda bulunabileceği anlamına gelir. Belirli bir ARM yongası, belirli bir x86 yongasına kıyasla çok sayıda talimatı veya hızlı bir şekilde işleyemez, ancak bunu verimlilikte telafi eder.

Küçük dostuma merhaba de

ARM'nin masaya getirdiği bir diğer önemli özellik ise büyük küçük heterojen bilişim mimarisi. Bu tür tasarım, aynı çip üzerinde iki tamamlayıcı işlemci içerir. Biri çok düşük güçlü bir çekirdek, diğeri çok daha güçlü bir çekirdek olacaktır. Çip, hangi çekirdeğin etkinleştirileceğini belirlemek için sistem kullanımını analiz edecektir. Diğer senaryolarda, derleyici, hesaplama açısından yoğun bir görevin geldiğini biliyorsa, çipe daha güçlü çekirdeği getirmesini söyleyebilir.

Cihaz boştaysa veya yalnızca temel bir hesaplama yapıyorsa, düşük güçlü (LITTLE) çekirdek açılır ve daha güçlü (büyük) çekirdek kapanır. ARM, bunun% 75'e kadar güç tasarrufu sağlayabileceğini belirtti. Geleneksel bir masaüstü CPU, daha hafif yük dönemlerinde güç tüketimini kesinlikle düşürse de, asla kapanmayan bazı parçalar vardır. ARM bir çekirdeği tamamen kapatma yeteneğine sahip olduğundan, rekabette açıkça daha iyi performans gösterir.

İşlemci tasarımı her zaman sürecin her adımında bir dizi değiş tokuştur. ARM, RISC mimarisinde her şeyi yaptı ve cömertçe ödedi. 2010 yılında cep telefonu işlemcilerinde% 95 pazar payı vardı. Diğer şirketler pazara girmeye çalıştıkça bu durum biraz düştü, ancak hala kimse yakın değil.

Lisanslama ve yaygın kullanım

ARM'nin işletmeye yönelik lisanslama yaklaşımı pazar hakimiyetlerinin bir başka nedenidir. Fiziksel olarak cips inşa etmek son derece zor ve pahalıdır, bu yüzden ARM bunu yapmaz. Bu, tekliflerinin daha esnek ve özelleştirilebilir olmasını sağlar.

Kullanım durumuna bağlı olarak, bir lisans sahibi istedikleri özellikleri seçip seçebilir ve daha sonra ARM'nin onlar için en iyi çip türünü seçmesini sağlayabilir. Müşteriler ayrıca kendi özel yongalarını tasarlayabilir ve sadece ARM'nin talimat setlerini uygulayabilirler. teknoloji şirketleri listesi ARM'nin mimarisini kullanmak buraya sığmayacak kadar büyük, ancak birkaç isim: Apple, Nvidia, Samsung, AMD, Broadcom, Fujitsu, Amazon, Huawei ve Qualcomm hepsi ARM teknolojisini kullanıyor.

Akıllı telefonlara (el bilgisayarları) güç vermenin ötesinde, Microsoft, Surface ve diğer hafif cihazlarının mimarisini zorluyor. İçin tam bir inceleme yazdık ARM'de Windows 10 bir yıl önce ve bu çaba işletim sistemini henüz bitiş çizgisine götürmese de, o zamandan beri daha yeni ve daha iyi girişimler gördük Surface Pro X. Apple da uzun zamandır macOS - ARM, teorik olarak, bir telefon kadar verimli çalışan dizüstü bilgisayarlara sahip olabilmemiz için.

Veri merkezinde bile, yıllar boyunca Arm’un vaadi temel olarak güç tasarruflarıydı - binlerce ve binlerce sunucuyu konuşurken kritik bir faktör. Ancak son zamanlarda, büyük ölçekli bilişim Intel ve AMD'nin mevcut çözümleri üzerinde hem güç hem de performans iyileştirmeleri sunmayı hedefleyen kurulumlar. Açıkçası, bu pek çok insanın yakında gerçekleşmesini beklediği bir şey değil.

ARM ayrıca mimarileri üzerinde çalışabilecek geniş bir ek Fikri Mülkiyet (IP) ekosistemi oluşturdu. Bu, müşterilerin ürünlerinde kullanmak için lisans haklarını satın alabilecekleri hızlandırıcı, kodlayıcı / kod çözücü ve medya işlemcisi gibi şeyleri içerir.

ARM aynı zamanda büyük çoğunluğu için tercih edilen mimaridir. IoT cihazları. Amazon'un Echo ve Google Home Mini, ARM Cortex işlemcilerde çalışıyor. Fiili standart haline geldiler ve gerçekten iyi bir nedene ihtiyacınız var. değil mobil elektronikler tasarlarken bir ARM işlemci kullanın.

Bunların hepsini bir çipe sığdırdınız mı?

Merkezi ISA iş birimlerine ek olarak ARM, çip üzerinde sistem (SoC) alanı. Mobil bilgi işlem pazarı, alan ve güç gereksinimleri daha da zorlaştıkça daha entegre bir tasarım yaklaşımına doğru kaymıştır. Bir CPU ve bir SoC birçok benzerliğe sahiptir, ancak bir SoC gerçekten yeni nesil mobil hesaplamadır.

Çip üzerindeki bir sistem tam olarak kulağa hoş geliyor. Verimliliği artırmak için birçok farklı bileşeni tek bir yonga üzerinde birleştirir. Tüm masaüstü anakartı tek bir yongaya indirdiğinizi düşünün ve bu bir SoC. Genellikle bir CPU, grafik işlemci, bellek, çevresel denetleyiciler, güç yönetimi, ağ ve bazı hızlandırıcılara sahiptir. Bu tasarım kabul edilmeden önce, sistemlerin bu işlevlerin her biri için ayrı bir yongaya ihtiyacı olacaktır. Yongalar arasındaki iletişim 10 ila 100x daha yavaş olabilir ve aynı kalıptaki dahili bağlantıdan 10 ila 100x daha fazla güç kullanabilir. Mobil pazarın bu konsepti bu kadar güçlü bir şekilde benimsemesinin nedeni budur.

ARM tabanlı Qualcomm SoC'de birçok özelliğin temsili

Açıkçası, SoC'lar her tür sistem için uygun değildir. SoC'lu masaüstü veya genel kullanıma uygun dizüstü bilgisayarlar görmüyorsunuz, çünkü tek bir çipte ne kadar şey sıkıştırabileceğiniz konusunda bir sınır var. Tüm ayrı bir GPU'nun işlevselliğine, yeterli miktarda RAM'e ve gerekli tüm ara bağlantılara tek bir yonga üzerinde uymanın hiçbir yolu yoktur. Tıpkı RISC paradigması gibi, SoC'lar düşük güçlü tasarımlar için harikadır, ancak daha yüksek performanslı olanlar için çok fazla değildir.

Şimdiye kadar, ARM'nin mobil işlemci pazarında neden bu kadar baskın hale geldiğini anladınız. RISC ISA modeli, üreticilerin yonga planlarını lisanslamalarını sağlar. RISC modeline giderek performans üzerinde güç verimliliğini en üst düzeye çıkarıyorlar. Mobil bilgi işlem söz konusu olduğunda, bu oyunun adıdır ve büyükannelerdir.