Was bedeutet der Ausdruck "Software kann Hardware ersetzen"?

90

Während des Einsteigerkurses in Hardware / Software-Schnittstelle und Betriebssystemen wird häufig die Frage aufgeworfen, ob es besser ist, einige Hardwareteile durch Software zu ersetzen und umgekehrt. Ich kann die Verbindung nicht herstellen.

Gabriele Scarlatti
quelle
7
Allzweck-CPUs verfügen über Befehlssätze, mit denen sie beliebige Logikoperationen ausführen können. Die Software wird zu einem Strom von Befehlen kompiliert, die vom CPU-Befehlssatz ausgeführt werden. Dies ist ein Beispiel für das Ausführen von Aufgaben "in Software". Umgekehrt kann ein Softwarealgorithmus direkt "in Hardware" ausgeführt werden, indem spezielle Anordnungen von Logikgattern in Silizium erzeugt werden.
Chimera
12
Die "Verbindung" besteht darin, dass sowohl Software als auch Hardware auf unterschiedliche Weise logische Anweisungen ausführen.
Chimera
14
Es bedeutet genau das, was es sagt. Software und Hardware machen Sachen. Manchmal kann man Sachen mit Software oder Hardware machen, also wählt man eine aus. Dann fragst du dich, ob es besser wäre, es mit dem anderen zu tun.
immibis
4
Natürlich können Sie nicht die gesamte Hardware durch Software ersetzen - es macht keinen Sinn, einen Softwaremonitor, eine Maus oder eine Tastatur zu erstellen. (Es sei denn, sie sind virtuelle)
immibis
2
Bedenken Sie, dass wir (Software-) Betriebssysteme verwenden, weil: 1) das Schreiben eines Betriebssystems direkt in Hardware einen unglaublich komplexen Chip erfordern würde, der viel kosten würde. 2) Hardware kann nicht einfach aktualisiert werden, daher würde ein Hardware-Betriebssystem keine Updates erhalten. Wenn ein Sicherheitsproblem gefunden wird, kann es nicht gepatcht werden usw. usw.
Bakuriu

Antworten:

176

Ich denke, der grundlegende Zusammenhang, den andere Antworten vermissen, ist folgender:

Bei einem Allzweckcomputer (z. B. einer CPU) kann man ihn so programmieren, dass er so ziemlich jede von uns definierte Berechnung ausführt. Spezialisierte Hardware kann jedoch eine bessere Leistung erbringen oder keinen Wert liefern.

(Diese Antwort konzentriert sich auf die Desktop-Verarbeitung und verwendet Beispiele aus dieser Domäne.)

Software durch Hardware ersetzen

Wenn Sie alt genug sind, um sich an PC-Spiele Mitte bis Ende der 90er Jahre zu erinnern, erinnern Sie sich wahrscheinlich an FPS-Spiele wie Quake . Zunächst wurde die Software gerendert, dh die CPU führte die zum Rendern der Grafiken erforderlichen Berechnungen durch. In der Zwischenzeit musste die CPU auch eine Eingangsverarbeitung, eine Audioverarbeitung, eine AI-Verarbeitung usw. ausführen. Es war sehr anstrengend für die CPU-Ressourcen. Darüber hinaus ist die Grafikverarbeitung für eine Mainstream-CPU (damals oder heute) nicht gut geeignet. Es handelt sich in der Regel um eine sehr parallele Aufgabe, die viel mehr Kerne erfordert als eine moderne High-End-CPU (8).

Wir haben die Grafikverarbeitung von der Software auf die Hardware verlagert: Geben Sie den 3dfx Voodoo und Nvidia TNT (jetzt GeForce ) ein. Dies waren spezialisierte Grafikkarten, die die Verarbeitung von der CPU auf die GPU verlagerten. Dies verteilte nicht nur die Arbeitslast und stellte mehr Rechenressourcen für die gleiche Arbeitsmenge bereit. Die Grafikkarten waren auch spezielle Hardware , die 3D-Grafiken viel schneller und mit mehr Funktionen als die CPU rendern konnte.

Schneller Vorlauf in die Neuzeit, und auf dem Desktop sind Grafiken ohne CPU erforderlich . Auch das Betriebssystem kann ohne GPU nicht funktionieren. Es ist so wichtig, dass CPUs jetzt tatsächlich GPUs integrieren. 1

Hardware durch Software ersetzen

Damals, als DVD brandneu war, konnten Sie ein DVD-Laufwerk in Ihrem Desktop-Computer installieren. Die CPUs der damaligen Zeit waren jedoch nicht leistungsfähig genug, um die DVD-Video- und Audio-Streams ruckelfrei zu decodieren. Für die Dekodierung war zunächst eine spezielle PCI-Karte erforderlich. Hierbei handelt es sich um spezielle Hardware, die speziell zum Dekodieren des DVD-Formats und sonst nichts entwickelt wurde. Ähnlich wie bei 3D-Grafiken wurden nicht nur mehr Rechenressourcen bereitgestellt, sondern auch speziell für diese Aufgabe entwickelt, um die DVD-Wiedergabe reibungslos zu gestalten.

Da CPUs immer leistungsstärker wurden, wurde es möglich, DVDs "in Software" zu dekodieren, was "auf einem Allzweckcomputer" bedeutet. Selbst bei einem weniger effizienten Prozessor waren die Geschwindigkeit und die Pipeline-Optimierung ausreichend, um die DVD-Wiedergabe den Erwartungen der Benutzer anzupassen.

Wir haben jetzt CPUs Hunderte oder sogar Tausende Male so mächtig 2 wie wir hatten , als DVDs eingeführt wurden. Als Blu-ray auf den Markt kam, benötigten wir keine spezielle Hardware, da die Universalhardware mehr als leistungsfähig genug war, um diese Aufgabe zu bewältigen.

Beides tun

Moderne Intel-CPUs verfügen über spezielle Anweisungen für die H.264- Codierung und -Decodierung. Dies ist Teil eines Trends, bei dem Allzweck-CPUs spezialisierte Funktionen auf demselben Chip erhalten. Wir benötigen keine separate PCI Express-Karte, um H.264 effizient zu decodieren, wie dies bei DVDs der Fall war, da CPUs ähnliche Schaltkreise enthalten.


1 GPU bezieht sich auf einen Prozessor, der speziell für grafische Berechnungen entwickelt wurde. Ältere 2D-Grafikkarten waren keine GPUs: Sie waren lediglich Framebuffer mit DACs, um mit dem Monitor zu kommunizieren. Der Unterschied besteht darin, dass GPUs spezialisierte Prozessoren enthalten, die sich bei bestimmten Arten von Berechnungen auszeichnen und im Laufe der Zeit tatsächlich selbst programmierbar sind (Shader). Grafikhardware enthielt immer die spezielle Schaltung, die erforderlich war, um die Daten in einem Framebuffer in ein Format zu konvertieren, das über ein Kabel (VGA, DVI, HDMI, DisplayPort) ausgegeben und von einem Monitor verstanden werden kann. Dies ist für die Diskussion, die Berechnungen auf spezielle Hardware zu verlagern, irrelevant .

2 DVD-Video wurde 1997 veröffentlicht, zu einer Zeit, als der Pentium 2 auch neu auf den Markt kam. Dies war eine Zeit, in der die Leistung von CPUs rapide zunahm: Man könnte einen neuen P2-Computer mit einem DVD-Decoder in Betracht ziehen oder einen in einen etwas älteren P1 einbauen. Vergleichen Sie das mit einem modernen Core i7 der Generation 6, der die MIPS-Liste von Wikipedia verwendet , und eine moderne CPU ist zwischen 590 und 1.690 Mal schneller. Dies liegt zum Teil an der Taktrate, aber auch an der Verlagerung auf mehrere Kerne als Standard sowie an modernen CPUs, die pro Kern und Takt viel mehr Arbeit leisten. Ebenfalls relevant ist, dass Intel (das den Desktop- und den x86-Servermarkt beherrscht) im Zuge des technischen Fortschritts spezielle Anweisungen hinzufügt, um die von Desktop-Benutzern gewünschten Vorgänge (z. B. Videodekodierung) zu beschleunigen.


quelle
Ältere 2D-Grafikkarten waren keine GPUs im heutigen Sinne, aber spezielle Hardware für Grafikfunktionen war sehr präsent. Ein Blitter kann schnell große Mengen an Speicher von einem Ort zu einem anderen kopieren, möglicherweise mithilfe einer einfachen logischen Operation, um sie mit den Daten am Zielort zu kombinieren. Dies war in typischen 2D-Karten der VGA / SVGA-Ära vorhanden. Andere Computer hatten andere spezialisierte 2D-Hardware, wie Hardware-Sprites in Heimcomputern und Spielekonsolen der 80er und 90er Jahre.
Sebastian Redl
127

Ich bin überrascht, dass noch niemand eines der eklatantesten Beispiele erwähnt hat: softwaredefiniertes Radio.

Wenn Sie ein heutiges Smartphone etwa 50 Jahre zurücknehmen und es einem kompetenten Ingenieur ab Mitte der 1960er Jahre zeigen würden, wäre er in der Lage, das meiste davon zu verstehen. Dass ein Supercomputer auf etwas reduziert werden kann, das in Ihre Tasche passt? Prüfen. Dass Sie das Äquivalent eines hochqualitativen Farbfernsehers im Paket haben können? Prüfen. Dass es so viel schneller ist, so viel mehr Speicher usw. als Computer der damaligen Zeit? Prüfen. Wurde eine Software geschrieben, die so komplexe Funktionen ausführen kann? Prüfen.

Aber sagen Sie dem kompetenten Ingenieur, dass dieses Paket im Übrigen eine Reihe äußerst effizienter Sender und empfindlicher Empfänger enthält: einen digitalen Streuspektrum-Transceiver, der auf mehreren Kanälen gleichzeitig senden und empfangen kann und mit einem möglicherweise kilometerweit entfernten Infrastrukturturm kommuniziert ; ein weiterer digitaler Transceiver, der Hochgeschwindigkeitsdaten mit einer Basisstation irgendwo im Gebäude überträgt; ein weiterer digitaler Transceiver, der mit tragbaren Geräten mit geringem Stromverbrauch kommuniziert; und ein anderer Empfänger, der ein schwaches Signal von einem Satelliten im Zwischenorbit aufnimmt ... er würde Sie einen Lügner nennen.

Er würde Sie einen Lügner nennen, weil er weiß, dass Empfänger mit einer derart hohen Empfindlichkeit nicht ohne eine Vielzahl von abgestimmten Schaltkreisen aufgebaut werden können, die benachbarte Sender herausfiltern und das interessierende Signal auswählen. Und dass solche Schaltungen Teile mit Größen erfordern, die mehr von der Physik als von der Technologie bestimmt werden, wie Kondensatoren und Induktivitäten.

Dann müsste man erklären, dass in einem modernen Radio das meiste in Software gemacht wird. Nachdem das von der Antenne eingehende Signal in eine Zwischenfrequenz umgewandelt und ein wenig verstärkt wurde, wird es von einem Analog-Digital-Wandler abgetastet. und die nachfolgende Verarbeitung findet in einem digitalen Signalprozessor statt. All diese Abstimmung, diese Filterung, die früher eine Menge Hardware in einem High-End-Radio der alten Schule erforderte, kann in Form von mathematischen Gleichungen beschrieben werden. und wenn dies möglich ist, können diese Gleichungen vom DSP in Echtzeit ausgeführt werden.

Dies ist meines Erachtens eines der eklatantesten Beispiele dafür, wie Software Hardware ersetzt. Aus diesem Grund haben wir Smartphones in der Tasche, die selbst für einen kompetenten Ingenieur aus den 1960er Jahren wie ein Zaubertrick wären.

Im Vergleich dazu erscheint die Idee, dass die einfache Logik eines Garagentoröffners, einer elektronischen Personenwaage oder einer TV-Fernbedienung heutzutage mit einem universellen Mikrocontroller und Software anstelle von kundenspezifischer Hardware umgesetzt wird, fast trivial (und es wäre sicherlich viel verständlicher für unseren hypothetischen Ingenieur aus den 1960er Jahren als softwaredefiniertes Radio.)

Viktor Toth
quelle
16
Unterschätzte Antwort ist unterschätzt. Obwohl ich einen kleinen Hintergrund in der Elektronik habe und selbst einige Funkgeräte gebaut habe, wusste ich nie, dass die Signalabstimmung heutzutage über Software erfolgt. Ich denke an Bananen, die sich genau vorstellen wollen, wie das gemacht wird.
Machado
5
@Machado Wenn Sie jemals ernsthaft elektronisch konstruieren, werden Sie schnell feststellen, dass es sich im Grunde genommen um mathematische Gleichungen handelt. Physikalische Elektronik kann addieren, subtrahieren, dividieren, multiplizieren, differenzieren, integrieren usw. Statt eines physischen Kondensators, der alle niederfrequenten Störungen herausfiltert, erfolgt dies im Code. Das physikalische Signal wird über einen speziellen Hardwarebaustein, der als Analog-Digital-Wandler bezeichnet wird, in die Software "geladen".
CHendrix
6
@Machado dspguide.com/pdfbook.htm Dieses Lehrbuch enthält viele Pseudocode-Beispiele. Es ist ein Juwel.
brian_o
4
@Machado Vergessen Sie nicht, ein softwaredefiniertes Radio (für ca. 20 USD) zu kaufen und damit zu spielen !
Michael Hampton
5
Sagen Sie dem Mann aus den 1960er Jahren nur nicht, wofür Sie in erster Linie all diese Computerleistung und -funktionen verwenden. ist es, Bilder von deinem Essen zu posten, Katzenvideos zu streamen und Pokemons zu jagen ...
Baard Kopperud
42

Betrachten Sie diese Schaltung:

Bildbeschreibung hier eingeben

Es ist ein Flip Flop, auch bekannt als bistabiler Multivibrator. Es kann durch diesen Code ersetzt werden:

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;
Robert Harvey
quelle
1
Vielen Dank für Ihre Antwort und für die Korrektur des Beitrags! Haben Sie ein Buch, in dem Sie mehr darüber erfahren können? Gabriele
Gabriele Scarlatti
11
check Code: Die verborgene Sprache von Computerhardware und -software . Es deckt schön Übergang von Hardware zu Software
Igor Milla
4
@igormilla Ich kann für Ihren Vorschlag bürgen. Ich lese gerade das Buch und es ist mit Abstand das beste Buch über Computerarchitektur, das ich je gelesen habe. Es ist eine hervorragende Arbeit, jedes Konzept klar und präzise zu erklären, ohne zu viel Fachjargon in die Kehle zu schieben. Ich kann es jedem empfehlen, der ein tieferes Verständnis der Beziehung zwischen Hardware und Software haben möchte.
Christian Dean
1
@igormilla, nette Entdeckung! Glücklicherweise ist es als Teil von Safari Books Online verfügbar , sodass ich sofort mit dem Lesen beginnen kann. :) (Lies meinen Kommentar vor dem Posten noch einmal durch: Es klingt wie eine Werbung, aber ich bin nur ein zufriedener Kunde. Ich habe im letzten Jahr kein empfohlenes technisches Buch gefunden , das ich nicht sofort durchsuchen oder sogar vollständig lesen konnte online.)
Wildcard
29

Es bedeutet genau, wie es sich anhört.

Ein besonders bekanntes Beispiel ist das von Steve Wozniak für den Apple II entwickelte Disk II-Laufwerk :

Die Hauptinnovation bestand darin, die Steuerung durch den Einsatz von Software kompakt zu machen, während sich die Wettbewerber auf Hardware verlassen mussten. Bill Fernandez, damals Elektroniker bei Apple, erinnert sich daran: "Der Hauptvorteil von [Wozniaks] Design war, dass es nur sechs statt der üblichen 60 bis 70 Chips verwendete

Ein weiteres Beispiel, mit dem Sie wahrscheinlich besser vertraut sind: Emulatoren. Sie ersetzen ganze Sätze von Hardware (und Software) vollständig in Software. CPUs, verschiedene Steuerchips, sogar Speichergeräte.

Jetzt können Sie nicht mehr die gesamte Hardware eliminieren, sondern benötigen irgendwann etwas, auf dem Sie die Software ausführen können. Im Allgemeinen kann jede Logikaufgabe, die Sie in Hardware implementieren können, auch in Software implementiert werden (die Leistung ist möglicherweise nicht identisch, langsamer, schneller oder in verschiedenen Situationen, abhängig von der zugrunde liegenden Hardware und der Implementierung).

8bittree
quelle
Sie brauchen also immer nur mindestens einen Prozessor?
Gabriele Scarlatti
3
@GabrieleScarlatti Sie brauchen ein bisschen mehr, insbesondere müssen E / A-Geräte Hardware sein (aber die Controller können Software sein!), Und der Speicher muss Hardware sein. Die Verbindungen zwischen ihnen müssen Hardware sein, aber die erforderliche Logik ist begrenzt. Einfache Drähte, wenn Sie genug Stifte haben, etwas weniger einfache Schieberegister oder ähnliche Geräte, wenn Sie nicht genug Stifte haben.
8bittree
Ahaha, ja, ich war ein bisschen zu ungefähr. Können Sie ein gutes Buch vorschlagen, um mehr darüber zu erfahren? Vielen Dank für die Antworten!
Gabriele Scarlatti
1
Die bisher beste Antwort in diesem Thema sind "Emulatoren".
Machado
1
Ich kann nicht über dieses Thema sprechen, ohne das Woz zu erwähnen!
James R.
11

Ein weiteres Gebiet, auf dem dies zutrifft, sind Synthesizer.

Frühe Synthesizer waren zu 100% analoge Hardware , die Wellenformen direkt generierten und dann über Schaltkreise (Filter, Verstärker usw.) modifizierten. Es war möglich, Ton digital zu synthetisieren, aber es erforderte Rechenressourcen , die sich der Durchschnittsbürger nicht leisten konnte (ein tatsächlicher Mainframe und kundenspezifische Digital-Analog-Wandler-Hardware).

Mit der Verbesserung der Chipherstellung wechselten die Synthesizer von reinen analogen zu Synthesizerchips, die von digitalen Signalen gesteuert werden, aber immer noch analoge Signale erzeugen, und dann zu reinen digitalen Synthesen (Sample-Wiedergabe, FM-Synthese , echte additive Synthese usw.).

Heutzutage sind Prozessoren so billig und schnell, dass Programmierer Computerversionen von klassischen analogen Synthesizern erstellen können, die das Verhalten der ursprünglichen Schaltkreise exakt nachbilden, indem sie ihr Verhalten in Echtzeit simulieren. Tatsächlich können Telefone und Tablets jetzt schnell genug ausgeführt werden führe diese Nachbildungen aus; Das Korg iMS-20 ist ein Beispiel.

Sowohl klassische als auch neue Synthesizer sind als VST- oder AU-Plug-Ins für digitale Audioprogramme wie Ableton Live, Logic oder Cubase verfügbar. Diese ermöglichen den Zugriff auf Synthesizer für Benutzer, die sonst keinen Platz und kein Geld zur Verfügung hätten Sie.

Edit: Ich sollte an dieser Stelle auch VCVRack erwähnen , das eine analoge modulare Synthese in Echtzeit simuliert. Ein ganzer Schritt vorwärts von mehrstündigen Renderzeiten für einige Sekunden Musik.

Joe McMahon
quelle
1
Ein Atari 2600 von 1977 verfügt über genügend CPU-Leistung, um Musik mit vier Stimmen und einer Reichweite von fünf Oktaven zu erzeugen, obwohl mehr als 39% der CPU-Zeit für die Display-Generierung zur Verfügung stehen. Die erforderlichen Nachschlagetabellen würden mehr als die Hälfte einer 4-KByte-Kassette (etwa 2300 Byte) beanspruchen, aber es war natürlich möglich, dass Kassetten größer als 4 KByte waren. Wahrscheinlich konnte man während der Musikwiedergabe kein schrecklich kompliziertes Gameplay haben, aber ein ziemlich bunter Titelbildschirm mit einem Scroll-Text wäre definitiv eine Möglichkeit >:*3.
Supercat
Ja, ich habe ungefähr 10 ausgelassen? 20? Jahre der Entwicklung, damit meine Antwort nicht zu einem Roman wird. Sehr gute Punkte! Früher hatte ich auf meinem Mac 512K einen Namen (Musicworks) [ thinkclassic.org/viewtopic.php?id=550] , der mit 4 Stimmen kaum umgehen konnte.
Joe McMahon
Der 68000 benötigt mehr Zyklen, um jeden Befehl auszuführen als ein 6502, aber bei richtiger Codierung sollte eine Vierstimmen-Wellentabellensynthese ziemlich effizient sein. Ich würde ungefähr 240 Zyklen / Sample mit Amplitudenskalierung unter Verwendung einer 256-Byte-Tabelle für jede Lautstärkeeinstellung schätzen. Das Eliminieren der Amplitudenskalierung würde diese Zeit um 56 Zyklen / Abtastung verkürzen.
Supercat
7

Früher war der Schnitt ganz klar. Die meisten Dinge, die eine schnelle Ausführung erforderten, mussten in Hardware implementiert werden. Nehmen wir zum Beispiel einen Multivibrator, der eine Frequenz erzeugt. Vor nicht allzu langer Zeit brauchten Sie ein paar Transistoren, Kondensatoren und eventuell einen Quarz, um eine (feste) Frequenz zu erzeugen. Jetzt gibt es billige Mikrocontroller, die nur ein paar Cent oder so kosten. Da sie so schnell sind, können Sie sie leicht verwenden, um einen Multivibrator zu erstellen. Darüber hinaus können Sie per Software einfach steuern, welche Frequenz an welcher Stelle früher unterschiedliche Hardware gelötet werden musste. Wenn Sie jedoch eine bestimmte (aber jetzt ziemlich hohe) Frequenz überschreiten, benötigen Sie immer noch reine Hardware. Sie sehen, es gibt eine Grenze zwischen beiden, aber der Teil, den Sie mit Software lösen können, wächst (exponentiell).

Bearbeiten Tatsächlich ist "Software kann Hardware ersetzen" nicht richtig. Es ist nur die Tatsache, dass die Hardware so mächtig geworden ist, dass Sie damit Software ausführen können, die Hardware emuliert. Anstelle einiger einfacher, aber statisch gelöteter Transistoren verwenden Sie Millionen von Transistoren, die Software verstehen. Daher sollte der Begriff "Hardware kann jetzt Software verstehen" lauten.

qwerty_so
quelle
Um fair zu sein, haben fast alle Mikrocontroller (mindestens ein) Universal-PWM-Modul, das in Hardware implementiert ist. Daher wird selten ein Frequenzausgang mit einer auf der eigentlichen CPU ausgeführten Software bitbangen.
Lyndon White
@LyndonWhite Eine PWM ist kein allgemeiner Multivibrator. Es moduliert die Impulsbreite, die eine Teilmenge eines Frequenzgenerators ist.
qwerty_so
1
In der Tat ist das wahr. Mein Punkt war vielmehr, dass PWM bei weitem die häufigste Art von Signal ist, die man erzeugen möchte (in einem gewissen Bereich von Arbeitszyklen) - weshalb Mikroprozessoren spezielle Hardware dafür haben. Ich würde wahrscheinlich PWM vs Bitbanging als Beispiel für das Gegenteil "Hardware kann Software ersetzen" setzen.
Lyndon White
@LyndonWhite Ich habe meine Antwort bearbeitet.
qwerty_so
5

Ein Vergleich zwischen dem Arcade-Spiel Tank (um 1976) und dem Heimkonsolenspiel Combat (1977) liefert ein schönes Beispiel dafür, wie Software bereits vor 40 Jahren Hardware ersetzen konnte.

Das Arcade-Spiel Tank (um 1976) ermöglichte es zwei Spielern, Panzer zu umrunden und aufeinander zu schießen. Es enthielt keinen Prozessor, sondern Hardware-Zähler, mit denen die horizontale und vertikale Position des Elektronenstrahls, der Panzer und Schüsse sowie die Punktzahlen, Drehwinkel und die verstrichene Zeit des Spielers verfolgt werden konnten. Es gab eine festverdrahtete Logik, um die Bitmap-Daten auszugeben, die den Punktzahlen, den Panzerformen der Spieler und dem Hintergrund zugeordnet waren.

Das Atari 2600 Video Computer System (eine Heimspielkonsole um 1977) enthielt Hardware zum Verfolgen der horizontalen (aber nicht vertikalen!) Positionen von zwei Bitmap-Objekten und vier Impulsgeneratoren mit variabler Breite, um ein 20 Bit breites Tief zu halten und auszutakten Grafikmuster für das Spielfeld sowie zwei hochauflösende 8-Bit-Muster, Latch-Farben für die Player, den Hintergrund und das Spielfeld und Erkennung von Kollisionen zwischen den verschiedenen Objekten. Es enthielt auch einen programmierbaren Allzweck-Timer, aber die Hardware hatte nur wenig anderes als die oben genannten. Obwohl die Hardware viel einfacher ist als die des Panzerspiels, ermöglicht es der 2K ROM Cartridge Combat dem 2600, dasselbe Grundspiel zu spielen, jedoch mit vielen anderen Funktionen (verschiedene Fahrzeuge und Hintergründe, Bouncing Shots usw.), weil es kann den größten Teil des Arcade-Automaten ersetzen s Hardware mit Software. Interessanterweise ist der Atari 2600, obwohl er wahrscheinlich die zweiteinfachste Hardwareplattform aller im Handel erhältlichen Heimvideospielsysteme auf Mikroprozessorbasis ist, so gut konzipiert, dass er das Ersetzen von Hardware durch Software erleichtert und bei korrekter Programmierung viele Kreise umlaufen kann seine Konkurrenten.

Superkatze
quelle
Ich habe viele Stunden und Viertel damit verbracht, Tank zu spielen. Ein Freund von mir hat diese alten Spielekonsolen restauriert und ich war sehr überrascht zu erfahren, dass es sich nur um Hardware handelt. Jemand verbrachte viel Zeit damit, Karnaugh-Karten zu erstellen, um sie handhabbar zu machen. Das Replizieren in Software ist viel einfacher und erfordert weniger Wartung. Gleiches gilt für Asteroiden. Aber keiner von beiden hat das gleiche Gefühl, es sei denn, Sie replizieren es genau, einschließlich der Konsolensteuerelemente. Außerdem sehen Vektorgrafiken auf Rasterbildschirmen einfach nicht gleich aus, IMO.
SDsolar
@SDsolar: Ich erinnere mich, dass ich ein Blatt gelesen habe, das von Atari veröffentlicht wurde. Es enthält einige Mods, mit denen ein Besitzer verschiedene Aspekte des Gameplays optimieren kann. Ich glaube, zwei Mods, die das Halten des Riegels für den Schusswinkel des Spielers betrafen (Hinzufügen einer "Lenkwaffe") "feature) und vielleicht etwas wie ein unsichtbares Panzerfeature hinzufügen. Das Ändern der Firmware hätte eine kompliziertere Ausrüstung erfordert, und einige Arten von Mods, die in der Hardware einfach wären, wären in der Firmware unmöglich (z. B. wenn die Playerposition einen Binärzähler verwendet, ist es trivial, dass ein Player zweimal pro Scan-Zeile angezeigt wird).
Supercat
1

Der Ausdruck "Software kann Hardware ersetzen" warnt davor, Probleme mit Hardware zu lösen, es sei denn, es gibt eindeutige Vorteile. Die Entwicklung von Software ist 10- bis 50-mal billiger und die Produktion pro Einheit fast unendlich billiger als die von Hardware. X in Hardware zu machen, wird keine gewinnbringende Lösung sein, es sei denn, X kann in Software nicht wirklich effizient durchgeführt werden.

DepressedDaniel
quelle
Ich habe nicht abgelehnt, aber ich bin mir ziemlich sicher, dass dies ungenau ist.
J. Allan
@ JefréN. Es geht nur darum, Hardware zu kaufen, sondern sie zu entwickeln.
DepressedDaniel
Du hast recht; Ich habe die Absicht der Frage falsch verstanden. Haben Sie ein Zitat oder einen Link, um Ihre Behauptung zu untermauern, dass "Software 10x-50x billiger zu entwickeln ist ... als Hardware"? Ich würde gerne wissen, ob das eine Baseballfigur ist oder ob es sich um eine [allgemein akzeptierte / überprüfte] Aussage handelt. (Es tut mir leid, dass Sie übrigens traurig sind; D)
J. Allan
Ich habe nicht downvote, aber ich kann nicht upvote, weil es nicht immer wahr ist, dass Software billiger ist. Oft kann es viel teurer sein. Berücksichtigen Sie auch das Konzept von ASICs und FPGAs, bei denen mithilfe von Software ein Hardware-Äquivalent erstellt wird, das dann schneller ausgeführt werden kann. Wie der ultimative Unterschied zwischen ausführbaren und interpretierten Programmen, aber mehr noch.
SDsolar
1
@ SDsolar Ich habe noch nie von einem Fall gehört, in dem die gleiche Funktion billiger in Hardware als in Software implementiert ist. Wenn es in Software machbar ist, wird es fast allgemein billiger sein, dies in Software zu tun. Natürlich kann ein Software-Renderer im Vergleich zu einer Grafikkarte schneller auf Leistungsprobleme stoßen. Dies betrifft jedoch eher die Realisierbarkeit einer Softwareimplementierung zum Erreichen einer bestimmten Leistungsbasis.
DepressedDaniel
1

Die Nuance wurde gut angegangen, aber ich denke, es ist möglich, dass der Stolperstein für OP ist, dass es so gut wie nicht möglich ist, Hardware durch Software zu ersetzen. Bei der "Hardware" handelt es sich ausnahmslos um erheblich weniger "Hardware" als bei der "Software" -Lösung.

Der Unterschied besteht darin, dass die Logik eines Prozesses / Algorithmus / einer Berechnung zwischen Hardware und Software verschoben werden kann. Es wurden viele Beispiele angeführt, daher werde ich nicht näher darauf eingehen.

Einer
quelle
-1

In früheren Computern mit virtuellem Speicher mussten Sie bei einem TLB-Fehler einen Taskwechsel durchführen, um einen neuen Seiteneintrag zu laden. Ein Teil der Betriebssystemsoftware findet den richtigen Prozess, durchsucht die Seitentabellen, findet den richtigen Eintrag und schreibt ihn in den TLB zurück. Bevor Sie zum ursprünglichen Vorgang zurückkehren, fahren Sie fort.

Jetzt verwenden die meisten CPUs Hardware, um den Prozess durchzuführen, die Seitentabelle zu lesen, die Seitentabellen zu durchsuchen und den TLB zu aktualisieren.

Bei beiden Methoden muss Software zum Behandeln von Seitenfehlern verwendet werden, aber da TLB-Fehler die Anzahl der Seitenfehler deutlich übersteigen, übertrifft die Hardware die Software immer noch.

Wenn Sie eine einfache Prozedur haben, die Sie wiederholt ausführen müssen, finden Sie im Allgemeinen einen Hardware-Ersatz. Wenn Sie eine komplexe Hardwarelösung mit einem komplizierten Steuerungsablauf haben, können Sie die Hardware mithilfe von Software vereinfachen.

Surt
quelle
-2

Es gibt viele Fälle, in denen Software Hardware ersetzen kann und umgekehrt.

Ein klassisches Beispiel hierfür ist eine Mathe-Nachschlagetabelle. Anstatt die Ergebnisse jedes Mal in gebräuchlichen Ausdrücken zu berechnen, werden sie intern in Ihrem Mathe-Co-Prozessor gespeichert und bei Bedarf einfach referenziert.

Die meisten kennen wahrscheinlich bereits Audiofilter und Software, die echte Instrumente und Geräte wie Pedale oder Verstärker imitieren kann.

Jede Hardware, die virtuell erstellt werden kann, wird verwendet, wenn sie schneller und / oder billiger ist als die physische Entsprechung.

Christopher Oldfield
quelle
-2

In der Buchhaltung kann jetzt beispielsweise eine gedruckte Rechnungskopie elektronisch verschickt werden, und die Software beginnt zunehmend, den Eingang derartiger Papiere und deren Verarbeitung zu verwalten. Es ist ein hervorragendes Beispiel dafür, wie Hardware durch Software ersetzt wird.

Andrew Day
quelle