Bilgisayarı 32 bitlik bir mikro denetleyicinin çevresine yerleştirebilir misiniz?


9

Hepimizin evlerinde (çoğunlukla) 32 bit makineler var. Ancak 32 bit makinelerin içinde bir mikroişlemci var. ARM Cortex hakkında bir makale okuyordum. 32 bitlik bir mikrodenetleyici. Şimdi bu içimdeki bir soruyu ilgilendirdi. Mikroişlemciler bir mikroişlemcinin çevresindeki dış devreyi azaltmak için yapılmış, daha sonra mikroişlemciler daha güçlü hale gelmişken, mikro denetleyiciler uzun süre 8 bit formda kalmıştır. Ama şimdi 32-bit mikrodenetleyicilere sahip olduğumuza göre, bu şeylere dayalı bir bilgisayar gibi olamaz mı?


Yanıtlar:


11

Bu 'bilgisayarı' nasıl tanımladığınıza bağlıdır.

Ölçeğin daha küçük ucunda, geleneksel mikro denetleyiciler olarak adlandırabileceğiniz şey, bellek yönetimi almazsınız ve nadiren çipte bulunan küçük miktardan daha fazla RAM görmezsiniz. Şu anda mevcut olan daha yetenekli mikro denetleyicilerin mimarisi hakkında çok az bilgiye sahip olacağımı itiraf edeceğim, ancak bu özelliklerin varlığı (veya eksikliği), gömülü uygulamalar veya genel amaçlı hesaplama için en uygun cihazı ayırt etmek için muhtemelen anahtardır. .

'Bellek yönetimi' ile, sanal adres alanlarındaki programları çalıştırma ve bunları sistemde bulunan fiziksel RAM ile eşleme yeteneğinden bahsediyorum, genellikle bellek yönetimi birimi (MMU) olarak adlandırılan bir işlev tarafından gerçekleştirilir.

MMU olmadan, birden fazla işlem yürütmeye çalışırsanız, bunların tümü tek bir adres alanını paylaşmaya zorlanır ve bu, ilgili tüm işlemler bellek ayırma şemanıza uymadıkça, bir işlemin diğerini kolayca çökerteceği anlamına gelir. Bu nedenle, gömülü bir sistemde olduğu gibi tüm süreçleri tasarlama konusunda tamamen kontrolünüz varsa, bu bir endişe değildir. Ancak, genel amaçlı hesaplamayı desteklemeye çalışıyorsanız, yürütülecek tüm kodların bellek ayırma düzenine saygı göstereceğini ve sistemin oldukça kırılgan olacağını garanti edemezsiniz.

RAM eksikliği de gömülü sistemler için çok fazla bir sorun değildir, (1) genellikle çok fazla flaş olduğundan ve (2) genel amaçlı bir bilgisayar olmaması, bir kullanıcının emri. Sistem üzerinde çalışacak tüm yazılımların toplamını önceden biliyorsunuz ve yalnızca bu yazılım için değişkenler için RAM'e ihtiyacınız var. Ancak, sisteminizi genel amaçlı bir bilgisayar haline getirmeye çalıştığınızda, kullanıcılar kendilerine uygun olanı çalıştırabilir ve bu da RAM gerektirir.

Şimdi, MMU'suz cihazlarda genel amaçlı hesaplama yapmak ve çok fazla bellek olmaması kesinlikle iyi. Orijinal 128K RAM, 8088 tabanlı (16 bit) IBM PC, bir seferde yalnızca bir program çalıştırmanız gerektiği sürece bunu ortadan kaldırdı.

Eğer 'bilgisayar'ı 1982 teknolojisi gibi bir şey olarak tanımlamak istiyorsanız, cevap kesinlikle evettir. Ya da yazılımın tasarımını dikkatlice kontrol ederek bir MMU ve / veya çok fazla ram (örneğin cep telefonları) olmamasını azaltabileceğiniz kapalı bir sisteminiz varsa, evet de. Veya, mikro denetleyicinizde yerleşik bir MMU ve RAM yığınları varsa (veya bunları harici olarak barındırabilirse), mevcut bilgisayarlara daha çok benzeyen bir sistem oluşturabilmeniz gerekir.


Java gibi şeyler için tam zamanında derleyicilerdeki gelişmeler, MMU'yu belki de tarihsel olarak olduğundan daha az gerekli kılmaktadır. JIT ile ilgili hataların yokluğunda, MMU'su olmayan Java Sanal Makinelerinde bağımsız platformlar çalıştıran birden fazla bağımsız işleme sahip olabilir ve JIT, belleğe uygun olmayan bir program için talimat üretmeyeceğinden birbirlerinden izole edilebilir. diğeri tarafından kullanılır.
supercat

16

Kesinlikle! Hemen hemen her cep telefonu gibi bir göz atın. Örneğin, Motorola Droid, Android'i Linux üzerinde çalıştıran TI OMAP ARM tabanlı mikrodenetleyici kullanıyor. Temel olarak, tam bir üflemeli bilgisayar işletim sistemi ve diğer birçok aygıt üzerinde. Müşterimin geliştirdiği bazı ürünlerde, Linux üzerinde çalışabilen FreeScale PowerQuicc I & II 32 bit işlemci / denetleyiciler kullanıyorlar. PowerQuicc'in temel olarak bir PowerPC çekirdeği ve tüm çevre birimlerini son derece yapılandırılabilir bir şekilde işlemek için ayrı bir RISC işlemci vardır. Yüceltilmiş bir mikrodenetleyici.

Yıllar önce bilgisayarların 32 bit işlemcilerde çalışmadığını, ancak Commodore 64 gibi 8 bit işlemcilere (o zamanlar 4 bit) benzediğini hatırlamanız gerekir. Sonra 16 bit, 32 bit'e geçtiler Bir mikrodenetleyici ile eşdeğer bit mimarisi ve hızının mikroişlemcisi arasında pek bir fark yoktur. Mikrodenetleyiciler genellikle kayan nokta biriminden yoksundur, ancak bu sabit nokta matematiği ile telafi edilebilir. Örneğin, orijinal Motorola 68000 işlemci (16 bit), eski Macintosh bilgisayarlara güç sağlamak için kullanıldı ve daha sonra yıllarca birçok gömülü elektronik uygulama için mikrodenetleyici sürümüne dönüştürüldü.

Nasıl kullanıldığını anlamak için mikrodenetleyicinin rolüne bakmanız gerekir. Normalde, bir mikrodenetleyici ile tasarlarken, çok özel bir uygulamanız var ve bunu PC Tower'dan daha küçük bir alana sığdırmaya çalışıyorsunuz. Oysa bilgisayar çok genel bir amaçtır: crunch numaraları ve proses kullanıcı girişi. Bir mikrodenetleyici aradığınızda, uygulamanız için oluşturduğunuz arayüz türünü destekleyecek bir tane arıyorsunuz. 3 USB portu, 2 ethernet, 2 UART, SPI portu, ATM ve CAN arayüzüne mi ihtiyacınız var? Bu arabirimlerden bazıları SPI, ATM ve CAN gibi tipik bir bilgisayara gelmez ve bir mikro denetleyici, kart alanını azaltmak için yerleşik olarak bulunur. Mikrodenetleyicilere belirli bir çözüm için tasarlanmış işlemciler olarak bakabilirsiniz.


Herhangi bir "genel amaçlı bilgisayarın" 8 bit işlemciden daha küçük bir şey kullandığını düşünmüyorum. Genel amaçlı bilgisayarların kullanılabilir bir programı tutmak için yeterli RAM'e erişebilmesi gerekir ve kullanılabilir boyutlu bir RAM kod deposu olan dört bitlik bilgisayarları bilmiyorum.
supercat

belki ticari olarak değil, büyükbabam da dahil olmak üzere birçok hacker yaptı. Commodore 64 ve TRS-80'ler popüler olmadan önce atölyesinde 4 bitlik bir bilgisayar vardı. RAM de vardı (DIP yığınları).
Jay Atkinson

Fiziksel olarak yapılmış 4 bit Von-Neumann mimarisi makineleri hakkında herhangi bir belgeleriniz var mı?
supercat

5

Kesinlikle yapabiliriz. Örneğin iPad, beyni için bir ARM Cortex A8 işlemci kullanıyor.


2
Bu bir mikroişlemci, mikrodenetleyici değil,
JPC'nin

3

Bahsedilen ARM'lerin (OMAP ve A8) Flash bellek ve RAM içermeyen mikroişlemciler olduğunu belirtmek gerekir (A8 için tamamen doğru değildir). Cortex-M3 mikrodenetleyici daha küçüktür, küçük dahili belleğe ve çevre birimlerine daha kolay erişime sahiptir.

Aralarında oldukça büyük bir boşluk (performans ve özellik bakımından) var.


Cortex-A ve Cortex-M serisi arasındaki farkı işaret etmek için +1 ...
Johan

1
mikrodenetleyici gömülü flaş ve koç vardır. Mikroişlemcilerin bellekleri harici olarak bulunur.
Kortuk


2

Eski bir iş parçacığını diriltmeye çalışmıyorum, ancak Zaurus SL5500'um gömülü linux'u RAM gob'ları ve CF ve SD yuvaları aracılığıyla daha fazla depolama alanı olan bir ARM işlemcisi üzerinde çalıştırdı. Bildiğim kadarıyla MMU çoğunlukla yazılımda uygulandı (yine de bir linux sistemi için mantıklı). Genel amaçlı bilgi işlem yalnızca mümkün olmakla kalmadı, aynı zamanda üçüncü taraf yazılımlar, derleyiciler ve standart * nix yardımcı programlarının ve özelliklerinin çoğunu sağlayan esnek bir komut kabuğu aracılığıyla tamamen kullanılabilir hale getirildi.

Dünyanın en hızlı GP bilgisayarı değildi, ancak ARM (ve / veya Samsung eşdeğerleri - içerdiği yüzde 100 emin değilim) çok yetenekli görünmesini sağladı. Özellik ve performans açısından, çok daha yeni bir WinMobile Ipaq (belirli Samsung StrongArm klonu) ile oldukça güzel bir şekilde karşılaştırıldı. Her iki makine de çok fazla RAM ve çok fazla depolama alanına sahipti.


2

"Mikroişlemciler" ve "mikrodenetleyiciler" den bahsediyorsunuz, ancak giderek artan bir şekilde "SOCs" olarak bilinen üçüncü bir cihaz kategorisi var (oldukça çirkin bulduğum bir terim olan "çip üzerinde sistem" anlamına geliyor).

Mikrodenetleyiciler çok küçük miktarlarda koç içerir ve tipik olarak bellek eşlemesi ve çok sınırlı bellek koruması yoktur. Bu, onları genel amaçlı bilgisayarlar olarak kullanmak için uygun değildir.

SOC'ler, her şeyi bir yonga üzerinde entegre eden geleneksel mikrodenetleyiciler ile büyük miktarda destek devresi gerektiren geleneksel mikroişlemciler arasında bir orta yol olarak görülebilir. SOC'lerin işlemci çekirdeği ve tek bir çip üzerine entegre olan özellikleri vardır, ancak mikrodenetleyicilerin aksine harici bellek kullanırlar. Genellikle bu SOC'ler, farklı uygulamalar için sanal adres alanı oluşturabilen tam bir MMU'ya sahiptir. Birçok SoC'da 3D grafikler, DSP, video kodlama / kod çözme vb. İçin özel fonksiyon blokları vardır.

SOC'ler, modern bir masaüstü bilgisayar kadar güçlü değildir, ancak engellenmemiş bir yazılım ortamıyla birleştirildiğinde, "genel amaçlı bilgisayarlar" olarak sayılabilecek kadar güçlü ve işlevseldir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.