“Yazılım donanımı değiştirebilir” ifadesiyle ne kastedilmektedir?


90

Donanım / yazılım arayüzü ve işletim sistemleri hakkında yeni başlayanlar için eğitim almak, çoğu zaman bazı donanım parçalarını yazılımla değiştirmenin daha iyi olup olmadığı konusunu gündeme getirmiştir. Bağlantıyı kuramıyorum.


7
Genel amaçlı CPU'lar, keyfi mantık işlemlerini gerçekleştirmelerini sağlayan komut kümelerine sahiptir. Yazılım, CPU komut seti tarafından yürütülen komut akışına derlenir. Bu, "yazılımda" bir şeyler yapmanın bir örneğidir. Tersine, bir yazılım algoritması doğrudan silikonda özel mantık kapıları dizileri tarafından "donanımda" çalıştırılabilir.
Chimera,

12
"Bağlantı", hem yazılım hem de donanımın farklı yöntemlerle mantık ifadeleri yürütmesidir.
Chimera,

14
Ne yazdığını tam olarak ifade ediyor. Yazılım ve donanım işleri yapar. Bazen bir yazılım veya donanım kullanarak bir şeyler yapabilirsiniz, böylece bir tanesini seçersiniz. O zaman diğeriyle yapmanın daha iyi olup olmadığını merak ediyorsunuz.
immibis

4
Açıkçası, tüm donanımı yazılımla değiştiremezsiniz - bir yazılım monitörü, fare veya klavye yapmaya çalışmanın bir anlamı yoktur. (Sanal olanlar olmadıkça)
immibis

2
İşletim sistemi kullandığımızı (yazılım) kullandığımızı düşünün çünkü: 1) Bir işletim sistemini doğrudan donanıma yazmak, inanılmaz derecede karmaşık bir yonga gerektirecektir, 2'ye mal olur 2) Donanım kolayca güncellenemez; Bir güvenlik sorunu tespit edilirse, vs vs yamalı edilemez
Bakuriu

Yanıtlar:


176

Bence diğer cevapların eksik olduğu temel bağlantı şudur:

Genel amaçlı bir bilgisayar (örneğin bir CPU) göz önüne alındığında, bir kişi onu tanımladığımız hemen hemen her hesaplamayı yapacak şekilde programlayabilir. Bununla birlikte, özel donanım daha iyi performans gösterebilir veya herhangi bir değer sağlayamayabilir.

(bu cevap masaüstü işlemeye odaklanır ve bu alandan örnekler kullanır)

Yazılımı donanımla değiştirme

1990'lı yılların ortalarında PC oyunlarını hatırlayacak kadar büyükseniz, muhtemelen Quake gibi FPS oyunlarını hatırlarsınız . İşlemcinin grafikleri oluşturmak için gerekli hesaplamaları yaptığı anlamına gelen “yazılım oluşturma” başlamıştır. Bu arada, işlemci giriş işlemesi, ses işlemesi, AI işlemesi vb. İşlemleri de yapmak zorunda kaldı. Ek olarak, grafik işleme bir ana işlem CPU'suna (o zaman veya şimdi) uygun değildir. Modern bir high-end işlemciden bile çok daha fazla çekirdek gerektiren, oldukça paralel bir görev olma eğilimindedir (8).

Grafik işlemeyi yazılımdan donanıma taşıdık : 3dfx Voodoo ve Nvidia TNT'ye (şimdi GeForce ) girin. Bunlar, işlemciyi işlemciden GPU'ya yükleyen özel grafik kartlarıydı. Bu sadece iş yükünü yaymakla kalmadı, aynı miktarda iş yapmak için daha fazla bilgi işlem kaynağı sağladı, grafik kartları da 3B grafikleri CPU'nun yapabileceğinden daha hızlı ve daha fazla özelliğe sahip olacak özel bir donanıma sahipti.

Modern çağa hızlı ileri ve masaüstünde CPU olmayan grafikler gerekir . İşletim sistemi bile bir GPU olmadan çalışamaz. İşlemcilerin şimdi GPU'ları entegre etmeleri çok önemlidir. 1

Donanımı yazılımla değiştirme

DVD yepyeni olduğunda, masaüstü bilgisayarınıza bir DVD sürücüsü takabilirsiniz. Ancak, günün işlemcileri, DVD video ve ses akışlarını kekemelik olmadan çözmek için yeterince güçlü değildi. İlk önce, kod çözme işlemini gerçekleştirmek için özel bir PCI kartı gerekiyordu. Bu, özellikle DVD formatını ve başka bir şeyi çözmek için özel olarak geliştirilmiş bir donanımdı. 3D grafiklerde olduğu gibi, sadece daha fazla bilgi işlem kaynağı sağlamakla kalmadı, aynı zamanda DVD oynatmayı sorunsuz hale getirmek için özel olarak tasarlandı.

CPU'lar çok daha güçlendikçe, DVD'leri "genel amaçlı bir bilgisayarda" anlamına gelen "yazılımda" çözmek mümkün hale geldi. Daha az verimli bir işlemciyle bile DVD oynatımını kullanıcıların beklentilerine göre yapmak için yeterli ham hıza ve boru hattı optimizasyonuna sahipti.

Biz şimdi güçlü olarak kez CPU'lar yüzlerce hatta binlerce var 2 DVD'ler tanıtıldı biz vardı. Blu-ray ortaya çıktığında, hiçbir zaman özel bir donanıma ihtiyacımız olmadı, çünkü genel amaçlı donanım, görevi yerine getirmek için yeterince güçlüydü.

İkisini birden yapmak

Modern Intel CPU'ları H.264 kodlama ve kod çözme için özel talimatlara sahiptir . Bu, genel amaçlı CPU'ların hepsi aynı çipte özel işlevler kazandığı bir eğilimin parçası. İşlemcilerde benzer devreler bulunduğundan H.264'ü DVD'lerin başında olduğu gibi etkin bir şekilde çözmek için ayrı bir PCI Express anakartına ihtiyacımız yok.


1 GPU, özellikle grafik hesaplamaları gerçekleştirmek için tasarlanmış bir işlemciyi ifade eder. Daha eski 2D grafik kartları GPU'lar değildi : sadece DAC'lerin monitörle konuşması için çerçevelendiler. Aradaki fark, GPU'ların belirli hesaplama türlerinde üstün olan ve zaman geçtikçe şu anda aslında programlanabilir olan özel işlemciler içermesidir (gölgelendiriciler). Grafik donanımı her zaman bir çerçevedeki veriyi bir kablodan (VGA, DVI, HDMI, DisplayPort) çıkarıp bir monitör tarafından anlaşılabilecek bir formata dönüştürmek için gereken özel devreyi içermiştir. Bu, hesaplamaların özel donanıma boşaltılmasının tartışılması ile ilgili değildir .

2 DVD-Video, Pentium 2'nin yeni piyasaya sürüldüğü bir zamanda 1997 yılında piyasaya sürüldü. CPU'ların gücü hızla arttığı bir zamandı: DVD kod çözücülü yeni bir P2 bilgisayarı ya da biraz daha eski bir P1'e takmak bir tane düşünebilirdi. Bunu Wikipedia'nın MIPS listesini kullanarak modern bir nesil 6 Core i7 ile karşılaştırın ve modern bir CPU 590 ile 1.690 kat daha hızlıdır. Bu, kısmen saat hızına bağlı olarak, aynı zamanda standart olarak çoklu çekirdeğe geçmenin yanı sıra, saat başına tik başına çekirdek başına çok daha fazla iş yapan modern CPU'ların taşınmasından kaynaklanıyor. Ayrıca, teknoloji ilerledikçe, Intel'in (masaüstüne ve x86 sunucu pazarına hakim olan), masaüstü kullanıcılarının yapmak istediği işlemleri hızlandırmaya yardımcı olacak özel talimatlar (örneğin video kod çözme) eklemesi de geçerlidir.


Eski 2d grafik kartları bugün anlaşılan anlamda GPU'lar değildi, ancak grafik işlevleri için özel donanımlar çok vardı. Bir karıştırıcı, büyük miktarda belleği bir konumdan diğerine hızlı bir şekilde kopyalayabilir, muhtemelen hedef konumdaki verilerle birleştirmek için bazı basit mantıksal işlemler kullanır. Bu, VGA / SVGA döneminin tipik 2d kartlarında mevcuttu. Diğer bilgisayarlarda, ev bilgisayarlarındaki donanım spriteları ve 80'li ve 90'lı yıllardaki oyun konsolları gibi başka özel 2d donanımlar vardı.
Sebastian Redl

127

Yazılım tanımlı radyo: Hiç kimsenin bahsetmediğine, en göze batan örneklerden birinin bahsettiğine şaşırdım.

Bugünün akıllı telefonunu 50 yıl içinde geri aldıysanız ve 1960'ların ortasından itibaren yetkin bir mühendise göstermiş olsaydı, çoğunu anlayabilecekti. Bir süper bilgisayarın cebinize sığacak bir şeye indirgenebileceğini mi? Kontrol. Paketteki ultra yüksek kaliteli renkli televizyon eşdeğeri olabilir mi? Kontrol. O kadar hızlı olduğu, dönemin bilgisayarlarından çok daha fazla depolama alanı vb. Olduğu? Kontrol. Bu yazılım, bu tür karmaşık işlevleri yerine getirebilecek şekilde yazıldı mı? Kontrol.

Ancak bu mühendisin, bu paketin bir dizi son derece verimli verici ve hassas alıcılar içerdiğini söyleyin: aynı anda birden fazla kanalda iletebilen ve alan, mil ötedeki bir altyapı kulesi ile iletişim kuran dijital bir yayılı spektrum alıcı-verici. ; yüksek hızlı veriyi binanın herhangi bir yerinde bir baz istasyonuyla ileten başka bir dijital alıcı verici; düşük güçlü giyilebilir cihazlarla iletişim kuran bir başka dijital alıcı-verici; ve orta yörüngede bir uydudan zayıf bir sinyal alan başka bir alıcı ... sana yalancı derdi.

Sana yalancı diyecekti, çünkü böyle yüksek hassasiyete sahip alıcıların, komşu istasyonları filtreleyen ve ilgi sinyalini seçen çok sayıda ayarlanmış devre olmadan yapılamayacağını biliyor. Ve bu tür devrelerin kapasitörler ve indüktörler gibi teknolojiden ziyade fizik tarafından daha fazla tanımlanmış boyutlara sahip parçalar gerektirdiğini.

Daha sonra modern bir radyoda çoğunun yazılımda yapıldığını açıklamanız gerekir. Antenden gelen sinyal ara frekansa dönüştürüldükten ve biraz yükseltildikten sonra analog-dijital dönüştürücü tarafından örneklenir; ve sonraki işlemler bir dijital sinyal işlemcisinde gerçekleşir. Tüm bu ayarlamalar, eski okul high-end bir radyoda tonlarca donanım gerektirmek için kullanılan bu filtreleme, matematiksel denklemler şeklinde tanımlanabilir; ve eğer bu yapılabilirse, bu denklemler DSP tarafından gerçek zamanlı olarak gerçekleştirilebilir.

Bu bence donanım yerine en çok göze çarpan yazılımlardan biri. Sonuç olarak, 1960'larda yetkin bir mühendis için bile sihir numarasına benzeyen ceplerimizde akıllı telefonlar taşıyoruz.

Bununla karşılaştırıldığında, günümüzde garaj kapısı açıcı, elektronik banyo skalası veya TV uzaktan kumandasının basit mantığı, özel donanım yerine genel amaçlı bir mikrodenetleyici ve yazılım kullanılarak gerçekleştirilmekte olduğu fikri oldukça önemsiz görünüyor (ve kesinlikle çok fazla olurdu. varsayımsal 1960'lı mühendisimiz için yazılım tanımlı radyodan daha anlaşılır.)


16
Yetersiz cevap yetersizdir. Elektronikte küçük bir geçmişe sahip olmama ve birkaç radyo cihazı kendim yapmış olsam da, sinyal ayarının bu günlerde yazılım tarafından yapıldığını bilmiyordum. Aklım tam olarak nasıl yapıldığını hayal etmeye çalışan muz oluyor.
Machado

5
@ Machado Eğer ciddi bir elektronik tasarım yaparsanız, temelde tüm matematiksel denklemlerin olduğunu hemen anlayacaksınız. Fiziksel elektronikler, toplama, çıkarma, bölme, çarpma, farklılaştırma, entegre etme vb. İşlemleri yapabilir. Fiziksel sinyal, analog-dijital dönüştürücü adı verilen özel bir donanım parçası aracılığıyla yazılıma "yüklenir".
CHendrix

6
@ Machado dspguide.com/pdfbook.htm Bu kitapta pek çok sahte kod örneği var. Bu bir mücevher.
brian_o

4
@ Machado Bir yazılım tanımlı radyo almayı unutmayın (yaklaşık 20 $ için) ve onunla oynamaya başlayın !
Michael Hampton,

5
Sadece 1960'lı yıllardaki adama, bilgisayar gücünü ve özelliklerini esas olarak kullandığınızı söylemeyin; yemeğinizin resimlerini yayınlamak, cat-videosu yayınlamak ve Pokemons'u avlamaktır ...
Baard Kopperud

42

Bu devreyi göz önünde bulundurun:

görüntü tanımını buraya girin

Bu bir Flip Flop, yani Bistable Multivibrator. Bu kodla değiştirilebilir:

static bool toggle;

if (toggle == true) 
{
    lblTop.BackColor = Color.Black;
    lblBottom.back Color = Color.Red;
}
else
{
    lblTop.BackColor = Color.Red;
    lblBottom.BackColor = Color.Black;
}
toggle = !toggle;

1
Cevabınız için ve yazı düzeltmek için çok teşekkür ederim! Bunun hakkında biraz daha bilgi edinmek için önerebileceğiniz bir kitap var mı? Gabriele
Gabriele Scarlatti,

11
Çek Kodu: Bilgisayar Donanımı ve Yazılımının Gizli Dili . Donanımdan sofware'e güzel bir şekilde geçişi kapsıyor
Igor Milla

4
@igormilla Senin önerin için kefil olabilir. Şu anda kitabı okuyorum ve şu ana kadar okuduğum bilgisayar mimarisindeki en iyi kitap. Boğazınıza çok fazla teknik jargon atmadan, her bir konsepti net ve kesin bir şekilde açıklamak için mükemmel bir iş çıkarır. Donanım ve yazılım arasındaki ilişkiyi daha iyi anlamak isteyen herkese tavsiye ederim.
Christian Dean,

1
@igormilla, güzel bul! Mutlu bir şekilde benim için Safari Çevrimiçi Kitaplar'ın bir parçası olarak mevcut , bu yüzden hemen okumaya başlayabilirim. :) (Yayınlamadan önce yorumumu tekrar okudum: bir reklam gibi geliyor, ama ben sadece mutlu bir müşteriyim. Geçen yıl içinde hemen göz atamadığım veya tam okuyamadığım hiçbir teknik kitap bulamadım. çevrimiçi.)
Wildcard

29

Kulağa tam olarak neye benzediği anlamına geliyor.

Özellikle ünlü bir örnek, Apple II için Steve Wozniak tarafından tasarlanan Disk II Sürücüsü :

Baş yenilik, rakipler donanıma güvenirken yazılımı kullanarak denetleyiciyi kompakt hale getirmekti. O zaman Apple'da bir elektronik teknisyeni olan Bill Fernandez'in hatırladığı gibi, "[Wozniak's] tasarımının [en] avantajı, normal 60 ila 70 yerine altı fiş kullanmasıydı

Muhtemelen aşina olduğunuz başka bir örnek: Emülatörler. Tamamen yazılımdaki tüm donanım setlerini (ve yazılımı) değiştirirler. İşlemciler, çeşitli kontrol yongaları, hatta depolama aygıtları.

Artık tüm donanımı ortadan kaldıramazsınız, sonunda yazılımı çalıştırmak için bir şeye ihtiyacınız vardır . Ancak genel olarak, donanımda uygulayabileceğiniz herhangi bir mantık görevi de yazılımda da uygulanabilir (performans aynı olmayabilir, temel donanıma ve uygulamaya bağlı olarak daha yavaş, daha hızlı veya farklı durumlarda olabilir).


Yani her zaman ihtiyacın olan tek şey en az bir işlemci mi?
Gabriele Scarlatti,

3
@GabrieleScarlatti Daha fazlasına ihtiyacınız olacak, özellikle, G / Ç cihazlarının donanım olması gerekir (ancak kontrolörler yazılım olabilir!) Ve belleğin donanım olması gerekir. Aralarındaki bağlantıların donanım olması gerekir, ancak gerekli mantık sınırlıdır. Yeterli pininiz varsa basit teller, yeterli pininiz yoksa biraz daha az basit vardiya kaydı veya benzeri cihazlar.
15'de

Ahaha evet biraz fazla yaklaşmıştım, daha fazla bilgi edinmek için iyi bir kitap önerebilir misin? Cevaplar için çok teşekkür ederim!
Gabriele Scarlatti,

1
Şimdiye kadar bu konuda en iyi cevap "emülatörleri" dir.
Machado

1
Woz'dan bahsetmeden bu konu hakkında konuşamam!
James R. 19

11

Bunun doğru olduğu bir başka alan sentezleyicilerdir.

İlk sentezleyiciler, doğrudan dalga formları üreten daha sonra devreler (filtreler, amplifikatörler, vb.) İle değiştirilen % 100 analog donanımdı . Sesi dijital olarak sentezlemek mümkündü, ancak ortalama bir insanın karşılayamayacağı bilgisayar kaynaklarına ihtiyaç duyuyordu (gerçek bir ana bilgisayar ve özel dijital-analog dönüştürücü donanımı).

Talaş üretimi arttıkça, sentezleyiciler saf analogdan dijital sinyaller tarafından kontrol edilen, ancak yine de analog sinyaller üreten sentezleyici yongalara ve daha sonra saf dijital senteze (örnek oynatma, FM sentezi , gerçek katkı sentezi vb.) Geçtiler.

Bugün, programcıların klasik analog sentezleyicilerin bilgisayar versiyonlarını, orijinal devrelerin davranışını gerçek zamanlı olarak simüle ederek tam olarak çoğaltan bilgisayar versiyonları oluşturmalarına izin verecek kadar ucuz ve yeterince hızlı işlemciler - aslında, telefonlar ve tabletler artık yeterince hızlı çalışabiliyor bu yeniden yaratımları yürütün; Korg IMS-20 bir örnektir.

Hem klasik sentezleyiciler hem de yenileri, Ableton Live, Logic veya Cubase gibi dijital ses programları için VST veya AU eklentileri olarak mevcuttur ve bunlar, başka türlü kullanabilecekleri alan veya paraya sahip olmayan kişilere sentezleyicilere erişim sağlar. onlar.

Düzenleme: Bu noktada , gerçek zamanlı olarak analog modüler sentezi simüle eden VCVRack'ten de bahsetmeliyim . Birkaç saatlik müzik için çok saatlik oluşturma sürelerinden bir adım öne çıkın.


1
Bir 1977 Atari 2600, beş oktav aralığında dört sesli müzik üretmek için yeterli CPU beygir gücüne sahipken, ekran oluşturma için CPU zamanının% 39'undan fazlasını açık bırakıyor olsa da. Gerekli arama tabloları, 4K'lik bir kartuşun yarısından fazlasını alır (yaklaşık 2300 byte), ancak elbette kartuşların 4K'dan büyük olması mümkündü. Biri müzik çalarken muhtemelen karmaşık bir oyun deneyimi yaşayamazdı, ancak kaydırma metni içeren oldukça renkli bir başlık ekranı kesin bir olasılık olabilir >:*3.
supercat,

Evet, 10'a kadar çıktım mı? 20? Yıllar süren gelişme, benim cevabım bir romana dönüşmeyecek. Çok iyi noktalar! Mac 512K'mde 4 sese zorlukla dokunabilecek (Musicworks) [ thinkclassic.org/viewtopic.php?id=550] adlı bir şeye sahip oldum .
Joe McMahon,

68000, her talimatı yerine getirmek için 6502'den daha fazla döngü alır, ancak uygun kodlamayla dört sesli bir dalga tablosu sentezi oldukça verimli olmalıdır. Her bir hacim ayarı için 256 baytlık bir tablo kullanarak genlik ölçeklendirme ile yaklaşık 240 devir / örnek tahmin ediyorum; genlik ölçeklendirmesinin kaldırılması, o zaman 56 devir / numune ile tıraş olur.
Supercat,

7

Eski zamanlarda, kesim oldukça açıktı. Hızlı uygulama gerektiren çoğu şeyin donanımda uygulanması gerekiyordu. Örneğin, bir frekans üreten bir multivibratör alın. Çok uzun zaman önce (sabit) bir frekans oluşturmak için birkaç transistör, kapasitör ve nihayetinde bir kuvars gerekliydi. Şimdi sadece birkaç kuruşa mal olan ucuz mikro kontrolörler var. Çok hızlı olduklarından, bir multivibratör oluşturmak için bunları kolayca kullanabilirsiniz. Dahası, yazılımları kullanarak, eski zamanlarda farklı donanımları lehimlemek için ihtiyaç duyduğunuz yerde hangi frekansı oluşturacağınızı kolayca kontrol edebilirsiniz. Yine de, kesin (ama şimdi oldukça yüksek) bir frekanstan geçmek, hala saf donanıma ihtiyacınız olacaktır. Görüyorsunuz, ikisi arasında bir çizgi var, ancak yazılımla çözebileceğiniz kısım büyüyor (katlanarak).

Düzenleme Aslında “Yazılım donanımı değiştirebilir” gerçekten doğru değil. Donanım o kadar güçlü bir hale geldi ki, donanımı taklit eden yazılımı çalıştırmak için kullanabilirsiniz. Bu yüzden birkaç basit fakat statik olarak lehimlenmiş transistör yerine, yazılımı anlayan milyonlarca transistör kullanırsınız. Bu nedenle, bunun yerine "Donanım artık yazılımı anlayabilir" terimi olmalıdır.


Yine de adil olmak gerekirse, hemen hemen bütün mikro kontrolörlerin (en az bir) genel amaçlı PWM modülü donanımda uygulanmaktadır. Bu nedenle, CPU üzerinde çalışan yazılımı kullanarak, bir frekans çıktısını bitbitlemek için nadiren yapılır.
Lyndon White,

@ LyndonWhite Bir PWM genel multivibratör değildir. Bir frekans üretecinin alt kümesi olan darbe genişliğini değiştirdi.
qwerty_so

1
Aslında bu doğrudur. Benim açımdan daha doğrusu, PWM'nin şu ana kadar üretmek istediği en yaygın sinyal türü olmasına rağmen (bazı görev döngülerinde) - mikroişlemciler bunun için özel bir donanıma sahipti. Muhtemelen PWM vs bitbanging yerine "donanımın yerini alabileceği yazılımın" bir örneği olarak koyuyorum.
Lyndon White,

@LyndonWhite Yanıtımı değiştirdim.
qwerty_so

5

Oyun salonu Tankı (yaklaşık 1976) ve ev konsolu oyunu Combat (1977) arasında yapılan bir karşılaştırma, yazılımın 40 yıl önce bile donanımın yerini alabileceğinin güzel bir örneğini verir.

Oyun salonu Tank (yaklaşık 1976), iki oyuncunun tankların etrafında dolaşmasına ve birbirlerine ateş etmesine izin verdi. Herhangi bir işlemciyi içermiyordu; bunun yerine elektron ışınının, tankların ve atışların, ayrıca oyuncunun puanlarının, dönme açılarının, geçen zamanın yatay ve dikey konumlarını takip etmek için donanım sayaçlarına sahipti. Skorlar, oyuncuların tank şekilleri ve arka planla ilgili bitmap verilerini çıktısını almak için kablolu mantık vardı.

Atari 2600 Video Bilgisayar Sistemi (1977 dolaylarında bir ev oyun konsolu), iki bitmap nesnesinin ve dört değişken genişlikte puls üretecinin yatay (fakat dikey değil!) Konumlarını takip etmek, 20 bit genişliğinde düşük tutmak ve saatlemek için donanım içeriyordu. Çözünürlüklü oyun alanı grafik desen yanı sıra iki yüksek çözünürlüklü 8 bit desen, oyuncular için mandal renkleri, arka plan ve oyun alanı ve çeşitli nesneler arasında çarpışmalar algılar. Aynı zamanda genel amaçlı bir programlanabilir zamanlayıcı içermekteydi, ancak donanım yukarıdakilerden daha azdı. Yine de, donanım oyun tankından çok daha basit olmasına rağmen, 2K ROM kartuşu Combat 2600'ün aynı temel oyunu oynamasına izin veriyor, ancak diğer birçok özelliğe sahip (çeşitli araçlar ve arka planlar, zıplayan atışlar, vs.). arcade makinesinin çoğunun yerini alabilir ' yazılımı olan donanım. İlginçtir ki, Atari 2600 muhtemelen ticari olarak satılan herhangi bir mikroişlemci tabanlı ev video oyun sisteminin ikinci en basit donanım platformu olsa da, doğru programlandığında birçok yerde çemberler çalıştırabilen yazılımların yerine donanımın değiştirilmesini kolaylaştıracak şekilde tasarlanmıştır. rakipleri.


Tank oynayarak çok fazla saat ve çeyrek geçirdim. Bir arkadaşım o eski oyun konsollarını restore ediyor ve hepsinin donanım olduğunu öğrenmek beni çok şaşırtmıştı. Birileri yönetilebilir hale getirmek için Karnaugh haritaları yaparken çok zaman harcadı. Yazılımda kopyalamak çok daha kolaydır ve daha az bakım gerektirir. Asteroitler ile aynı. Ancak, konsol kontrolleri de dahil olmak üzere, aynısını çoğaltmazsanız, aynı hisle de bitmez. Artı, vektörel grafikler sadece raster ekranlarda IMO ile aynı görünmüyor.
SDsolar

@SDsolar: Atari tarafından yayınlanan, bir sahibinin oyunun çeşitli yönlerini ince ayar yapmak için yapabileceği bazı modları olan bir sayfa okuduğumu hatırlıyorum, tutan iki modun oyuncu atış açısı için mandal sağladığını düşünüyorum (güdümlü bir füze ekleyerek) "özellik) ve belki görünmez bir tank özelliği gibi bir şey ekleyerek. Firmware değiştirmek daha karmaşık donanımlar gerektirecekti ve donanımda kolay olacak bazı modlar donanım yazılımında imkânsız olacaktı (örneğin, oynatıcı konumu ikili bir sayaç kullanıyorsa, oynatıcının tarama satırı başına iki kez görünmesi önemsizdir).
Süperkat

1

"Yazılım donanımı değiştirebilir" ifadesi, çok açık avantajlar olmadıkça, donanımla ilgili sorunları denememek ve çözmek için bir uyarıdır. Yazılım geliştirmek için 10x-50x daha ucuzdur ve donanım başına bir birim başına neredeyse sonsuz ucuza üretilir. X'i donanımda yapmak, X yazılımda gerçekten verimli bir şekilde yapılamadığı sürece kazanılmış bir çözüm olmaz.


Oy vermedi, ama bunun yanlış
J. Allan,

@ JefréN. Bu sadece onu geliştirmek yerine donanım satın almakla ilgili.
DepressedDaniel

Haklısın; Sorunun amacını yanlış anladım. "Yazılımın donanımdan ziyade 10x-50x daha ucuza ..." olduğu iddiasını destekleyecek bir alıntı veya bağlantınız var mı? Bunun bir basketbol sahası olup olmadığını veya [genel kabul görmüş / doğrulanmış] bir ifade olup olmadığını bilmek isterim. (Üzgünüm, üzgünsün, btw.; D)
J. Allan,

Oy vermedim ama oy kullanamıyorum çünkü yazılımın daha ucuz olduğu her zaman doğru değildir. Genellikle daha pahalı olabilir. Ayrıca, daha sonra daha hızlı çalışabilen bir donanım eşdeğeri oluşturmak için yazılımın kullanıldığı ASIC'ler ve FPGA'lar kavramını göz önünde bulundurun. Uygulanabilirler vs yorumlanmış programlar arasındaki nihai fark gibi, ama daha fazlası.
SDsolar

1
@SDsolar Aynı özelliğin donanımdan yazılımdan daha ucuza kullanıldığı bir durum duymadım . Yazılımda yapmak uygunsa, yazılımda yapmak evrensel olarak daha ucuz olacaktır. Tabii ki, örneğin, bir yazılım üreticisi bir grafik kartına kıyasla daha erken bir zamanda performans problemleriyle karşılaşacaktır. Ancak bu, belirli bir performans temelini elde etmek için bir yazılım uygulamasının uygulanabilirliğine daha da fazla gider.
DepressedDaniel

1

Nüans iyi bir şekilde ele alındı, ancak OP için tökezleyen bloğun mümkün olduğunu düşünüyorum, bunun donanımla yazılımı değiştirmesinin mümkün olmadığıdır. 'Donanım' her zaman 'yazılım' çözümünden önemli ölçüde daha az 'donanım' içerir.

Fark, bir işlem / algoritma / hesaplama mantığının donanım ve yazılım arasında hareket ettirilebilmesidir. Pek çok örnek verildi, bu yüzden detaylandırmayacağım.


-1

Sanal belleğe sahip ilk bilgisayarlarda, yeni bir sayfa girişi yüklemek için bir TLB özeti üzerine bir görev değişikliği yapmanız gerekiyordu. Bir işletim sistemi yazılımı doğru işlemi bulur ve sayfa tablolarında dolaşarak doğru girişi bulur ve TLB'ye geri yazar. Devam etmek için orijinal işleme geri dönmeden önce.

Artık çoğu CPU, işlemi yapmak, sayfa tablosu okumak, sayfa tablolarını yürümek ve TLB'yi güncellemek için donanım kullanıyor.

Her iki yöntemin de sayfa hatalarını işlemek için yazılım kullanması gerekir, ancak TLB'nin sayfa sayfa hatalarından çok daha fazla özlediği için donanım yürüyüşü yine de iyi performans gösterir.

Genel olarak, tekrar tekrar ele almanız gereken basit bir prosedür varsa, bir donanım değişimi bulacaksınız. Karmaşık bir kontrol akışına sahip karmaşık bir donanım çözümünüz varsa, yazılımı kullanarak donanımı basitleştirebilirsiniz.


-2

Yazılımın donanımı değiştirebileceği birçok durum vardır ve bunun tersi de geçerlidir.

Bunun klasik bir örneği matematik arama tablodur. Sonuçları her seferinde genel ifadelere göre hesaplamak yerine, matematik işlemcinizde dahili olarak saklanır ve gerektiğinde basitçe ifade edilir.

Çoğu muhtemelen zaten ses filtrelerine ve pedal veya amplifikatörler gibi gerçek aletleri ve cihazları taklit edebilecek yazılımlara aşinadır.

Fiziksel eşdeğerden daha hızlı ve / veya daha ucuzsa, hemen hemen oluşturulabilecek herhangi bir donanım kullanılacaktır.


-2

Muhasebede, faturanın basılı bir kopyası (örneğin) artık elektronik olarak gönderilebilir ve yazılım bu tür evrakların alınmasını ve işlenmesini gittikçe daha fazla işlemeye başlamaya başlar. Yazılım tarafından değiştirilen mükemmel bir donanım örneğidir.

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.