Cosa si intende con la frase "Il software può sostituire l'hardware"?


90

Studiando il corso per principianti sull'interfaccia hardware / software e sui sistemi operativi, spesso emerge l'argomento se sarebbe meglio sostituire alcune parti hardware con software e viceversa. Non riesco a stabilire la connessione.


7
Le CPU per scopi generici dispongono di set di istruzioni che consentono loro di eseguire operazioni logiche arbitrarie. Il software viene compilato in un flusso di comandi eseguiti dal set di istruzioni della CPU. Questo è un esempio di fare cose "nel software". Al contrario, un algoritmo software può essere eseguito direttamente "in hardware" creando array specializzati di porte logiche in silicio.
Chimera,

12
La "connessione" è che sia il software che l'hardware eseguono, con mezzi diversi, dichiarazioni logiche.
Chimera,

14
Significa esattamente ciò che dice. Software e hardware fanno cose. A volte puoi fare cose con software o hardware, quindi scegline uno. Quindi ti chiedi se sarebbe meglio farlo con l'altro.
user253751

4
Ovviamente non è possibile sostituire tutto l' hardware con il software: non ha senso provare a creare un monitor, un mouse o una tastiera software. (A meno che non siano virtuali)
user253751

2
Consideriamo che utilizziamo sistemi operativi (software) perché: 1) Scrivere un sistema operativo direttamente nell'hardware richiederebbe un chip incredibilmente complesso, che costerebbe molto 2) L'hardware non può essere facilmente aggiornato, quindi un sistema operativo hardware non riceverà aggiornamenti. Se viene rilevato un problema di sicurezza, non può essere
corretto

Risposte:


176

Penso che la connessione fondamentale che mancano altre risposte sia questa:

Dato un computer generico (ad esempio una CPU), è possibile programmarlo per eseguire praticamente qualsiasi calcolo che abbiamo definito. Tuttavia, hardware specializzato può offrire prestazioni migliori o non fornire alcun valore.

(questa risposta è focalizzata sull'elaborazione desktop e utilizza esempi di quel dominio)

Sostituzione del software con hardware

Se sei abbastanza grande da ricordare i giochi per PC dalla metà alla fine degli anni '90, probabilmente ricordi i giochi FPS come Quake . È iniziato con il "rendering del software", il che significa che la CPU ha eseguito i calcoli necessari per eseguire il rendering della grafica. Nel frattempo, la CPU doveva anche eseguire l'elaborazione di input, elaborazione audio, elaborazione AI, ecc. Era molto faticoso per le risorse della CPU. Inoltre, l'elaborazione grafica non è adatta a una CPU tradizionale (allora o adesso). Tende ad essere un'attività molto parallela, che richiede molti più core di persino una moderna CPU di fascia alta (8).

Abbiamo spostato l'elaborazione grafica dal software all'hardware: inserisci 3dfx Voodoo e Nvidia TNT (ora GeForce ). Queste erano schede grafiche specializzate che scaricavano l'elaborazione dalla CPU alla GPU. Questo non solo ha diffuso il carico di lavoro, fornendo più risorse di elaborazione per fare la stessa quantità di lavoro, ma le schede grafiche erano hardware specializzato che poteva rendere la grafica 3D molto più veloce e con più funzionalità di quante ne potesse fare la CPU.

Avanzamento veloce verso l'era moderna e sul desktop sono richiesti elementi grafici senza CPU . Anche il sistema operativo non può funzionare senza una GPU. È così importante che ora le CPU integrino effettivamente le GPU. 1

Sostituzione dell'hardware con il software

Quando il DVD era nuovo di zecca, era possibile installare un'unità DVD sul computer desktop. Tuttavia, le CPU del giorno non erano abbastanza potenti per decodificare i flussi video e audio del DVD senza balbettare. Inizialmente, era necessaria una scheda PCI specializzata per eseguire la decodifica. Si trattava di un hardware specializzato creato appositamente per decodificare il formato DVD e nient'altro. Proprio come con la grafica 3D, non solo ha fornito più risorse di elaborazione, ma è stato creato su misura per l'attività, rendendo la riproduzione del DVD fluida.

Man mano che le CPU diventavano molto più potenti, divenne possibile decodificare i DVD "nel software", che significa "su un computer generico". Anche con un processore meno efficiente, aveva abbastanza velocità raw e ottimizzazioni della pipeline per far funzionare la riproduzione DVD secondo le aspettative degli utenti.

Ora abbiamo CPU centinaia o addirittura migliaia di volte più potenti 2 , come abbiamo avuto quando sono stati introdotti i DVD. Quando è arrivato il Blu-ray, non abbiamo mai avuto bisogno di hardware specializzato, perché l'hardware generico era più che abbastanza potente da gestire l'attività.

Fare entrambe le cose

Le moderne CPU Intel hanno istruzioni specializzate per la codifica e decodifica H.264 . Questo fa parte di una tendenza in cui le CPU per scopi generici stanno guadagnando funzioni specializzate, tutte nello stesso chip. Non abbiamo bisogno di una scheda PCI Express separata per decodificare H.264 in modo efficiente come con i DVD, poiché le CPU contengono circuiti simili.


1 GPU si riferisce a un processore appositamente progettato per eseguire calcoli grafici. Le vecchie schede grafiche 2D non erano GPU: erano semplicemente framebuffer con DAC per parlare al monitor. La differenza è che le GPU contengono processori specializzati che eccellono in alcuni tipi di calcoli e, con il passare del tempo, ora sono effettivamente programmabili (shader). L'hardware grafico ha sempre contenuto i circuiti specializzati necessari per convertire i dati in un framebuffer in un formato che può essere emesso attraverso un cavo (VGA, DVI, HDMI, DisplayPort) e compreso da un monitor. Ciò è irrilevante per la discussione sull'offload dei calcoli su hardware specializzato.

2 DVD-Video è stato rilasciato nel 1997, in un momento in cui anche il Pentium 2 è stato appena rilasciato. Questo era un momento in cui le CPU aumentavano rapidamente di potenza: si poteva prendere in considerazione un nuovo computer P2 con un decodificatore DVD o installarne uno in un P1 leggermente più vecchio. Confrontalo con un Core i7 di nuova generazione 6 utilizzando l'elenco di MIPS di Wikipedia e una CPU moderna è ovunque tra 590 e 1.690 volte più veloce. Ciò è dovuto in parte alla velocità di clock, ma anche al passaggio a più core come standard e alle moderne CPU che fanno molto più lavoro per core per clock tick. Altrettanto rilevante è che mentre la tecnologia avanza, Intel (che domina il mercato dei server desktop e x86) aggiunge istruzioni specializzate per accelerare le operazioni che gli utenti desktop vogliono fare (ad es. Decodifica video).


Le vecchie schede grafiche 2D non erano GPU nel senso inteso oggi, ma era presente un hardware specializzato per le funzioni grafiche. Un blitter può copiare rapidamente grandi quantità di memoria da una posizione all'altra, possibilmente utilizzando alcune semplici operazioni logiche per combinarlo con i dati nella posizione di destinazione. Questo era presente nelle tipiche schede 2D dell'era VGA / SVGA. Altri computer avevano un altro hardware 2d specializzato, come sprite hardware nei computer di casa e console di gioco degli anni '80 e '90.
Sebastian Redl

127

Sono sorpreso che nessuno abbia menzionato ancora uno degli esempi più eclatanti: la radio definita dal software.

Se riprendessi uno smartphone attuale indietro nel tempo di circa 50 anni e lo mostrassi a un ingegnere competente dalla metà degli anni '60, sarebbe in grado di comprenderne la maggior parte. Che un supercomputer può essere ridotto a qualcosa che sta in tasca? Dai un'occhiata. Che puoi avere l'equivalente di un televisore a colori di altissima qualità nella confezione? Dai un'occhiata. Che è molto più veloce, ha molto più spazio di archiviazione, ecc. Rispetto ai computer dell'epoca? Dai un'occhiata. Quel software è stato scritto in grado di svolgere funzioni così complesse? Dai un'occhiata.

Ma dì a quell'ingegnere competente che oh, a proposito, questo pacchetto contiene una serie di trasmettitori e ricevitori sensibili estremamente efficienti: un ricetrasmettitore digitale a spettro diffuso che può trasmettere e ricevere simultaneamente su più canali, comunicando con una torre di infrastruttura che potrebbe essere a miglia di distanza ; un altro ricetrasmettitore digitale che comunica dati ad alta velocità con una stazione base da qualche parte nell'edificio; ancora un altro ricetrasmettitore digitale che comunica con dispositivi indossabili a bassa potenza; e un altro ricevitore che riceve un segnale debole da un satellite in orbita intermedia ... ti chiamerebbe bugiardo.

Ti chiamerebbe bugiardo perché sa che i ricevitori di così alta sensibilità non possono essere costruiti senza una moltitudine di circuiti sintonizzati, che filtrano le stazioni vicine e selezionano il segnale di interesse. E che tali circuiti richiedono parti con dimensioni definite più dalla fisica che dalla tecnologia, come condensatori e induttori.

Dovresti quindi spiegare che in una radio moderna, la maggior parte di ciò viene fatta tramite software. Che dopo che il segnale in arrivo dall'antenna viene convertito in una frequenza intermedia e amplificato un po ', viene quindi campionato da un convertitore analogico-digitale; e la successiva elaborazione avviene in un processore di segnale digitale. Tutto quel tuning, quel filtro, che in passato richiedeva tonnellate di hardware in una radio di fascia alta della vecchia scuola, può essere descritto sotto forma di equazioni matematiche; e se ciò può essere fatto, tali equazioni possono essere eseguite in tempo reale dal DSP.

Questo, penso, è uno degli esempi più eclatanti di software che sostituisce l'hardware. Di conseguenza, abbiamo in tasca degli smartphone che, anche per un ingegnere competente degli anni '60, sarebbero simili a un trucco magico.

Rispetto a questo, l'idea che la semplice logica di un apriporta da garage, una bilancia pesapersone elettronica o un telecomando TV al giorno d'oggi è implementata usando un microcontrollore e un software per uso generico invece di hardware personalizzato sembra quasi banale (e sarebbe sicuramente molto più comprensibile per il nostro ipotetico ingegnere degli anni '60 rispetto alla radio definita dal software.)


16
La risposta sottovalutata è sottovalutata. Anche se ho un piccolo background nell'elettronica e ho costruito alcuni dispositivi radio, non ho mai saputo che la sintonizzazione del segnale è stata fatta dal software in questi giorni. La mia mente sta andando banane cercando di immaginare esattamente come è fatto.
Machado,

5
@Machado Se fai qualche progetto elettronico serio, ti renderai presto conto che in pratica sono tutte equazioni matematiche. L'elettronica fisica può aggiungere, sottrarre, dividere, moltiplicare, differenziare, integrare, ecc. È solo che invece di un condensatore fisico per filtrare tutto il rumore a bassa frequenza, è fatto in codice. Il segnale fisico viene "caricato" nel software attraverso un pezzo di hardware specializzato chiamato convertitore da analogico a digitale.
CHendrix,

6
@Machado dspguide.com/pdfbook.htm Questo libro di testo contiene molti esempi di pseudocodici. È un gioiello.
brian_o,

4
@Machado Non dimenticare di prendere una radio definita da software (per circa $ 20) e iniziare a giocare con essa !
Michael Hampton,

5
Basta non dire al ragazzo degli anni '60 che per cosa usi principalmente tutta quella potenza e funzionalità del computer; è pubblicare foto del tuo cibo, guardare video in streaming e cacciare Pokemon ...
Baard Kopperud,

42

Considera questo circuito:

inserisci qui la descrizione dell'immagine

È un Flip Flop, noto anche come Multivibratore Bistabile. Può essere sostituito con questo codice:

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
grazie mille per la risposta e per aver corretto il post! Hai qualche libro da suggerire per saperne di più? Gabriele
Gabriele Scarlatti il

11
controllare il codice: il linguaggio nascosto dell'hardware e del software del computer . Copre piacevolmente la transizione dall'hardware al software
Igor Milla

4
@igormilla Posso garantire il tuo suggerimento. Attualmente sto leggendo il libro ed è di gran lunga il miglior libro di architettura informatica che abbia mai letto. Fa un ottimo lavoro nel spiegare in modo chiaro e conciso ogni concetto, senza spargere troppo gergo tecnico in gola. Lo consiglio vivamente a chiunque desideri una comprensione più profonda della relazione tra hardware e software.
Christian Dean,

1
@igormilla, bella scoperta! Fortunatamente per me, è disponibile come parte di Safari Books Online , quindi posso iniziare a leggere subito. :) (Leggere di nuovo il mio commento prima di pubblicare: sembra una pubblicità, ma sono solo un cliente felice. Non ho trovato alcun libro tecnico raccomandato nell'ultimo anno che non sono stato in grado di navigare o leggere completamente online.)
Wildcard il

29

Significa esattamente come suona.

Un esempio particolarmente famoso è il Disk II Drive progettato da Steve Wozniak per Apple II:

La principale innovazione consisteva nel rendere compatto il controller utilizzando il software mentre i concorrenti si affidavano all'hardware. Come ricorda Bill Fernandez, allora tecnico elettronico della Apple, "il vantaggio principale del design di [Wozniak] [era] che utilizzava solo sei chip invece dei soliti 60-70

Un altro esempio con cui probabilmente hai più familiarità: gli emulatori. Sostituiscono interi set di hardware (e software) interamente in software. CPU, vari chip di controllo, persino dispositivi di archiviazione.

Ora non puoi eliminare tutto l'hardware, alla fine hai bisogno di qualcosa su cui eseguire il software. Ma in generale, qualsiasi attività logica che è possibile implementare nell'hardware può anche essere implementata nel software (le prestazioni potrebbero non essere identiche, potrebbe essere più lenta, più veloce o in diverse situazioni, a seconda dell'hardware sottostante e dell'implementazione).


Quindi l'unica cosa di cui hai sempre bisogno è almeno un processore?
Gabriele Scarlatti,

3
@GabrieleScarlatti Avrai bisogno di un po 'di più, in particolare, i dispositivi I / O devono essere hardware (ma i controller possono essere software!) E la memoria deve essere hardware. Le connessioni tra loro devono essere hardware, ma la logica necessaria è limitata. Cavi semplici se hai abbastanza pin, registri a scorrimento leggermente meno semplici o dispositivi simili se non hai abbastanza pin.
8

Ahaha sì, ero un po 'troppo approssimativo, puoi suggerire qualche buon libro per saperne di più? Grazie mille per le risposte!
Gabriele Scarlatti,

1
La migliore risposta finora in questo argomento sono gli "emulatori".
Machado,

1
Non posso parlare di questo argomento senza menzionare il Woz!
James R.

11

Un altro campo in cui questo è vero sono i sintetizzatori.

I primi sintetizzatori erano hardware analogico al 100% che generava direttamente forme d'onda e poi le modificava tramite circuiti (filtri, amplificatori, ecc.). Era possibile sintetizzare digitalmente il suono, ma richiedeva risorse di elaborazione che la persona media non poteva permettersi (un vero mainframe e un hardware convertitore digitale-analogico personalizzato).

Man mano che la fabbricazione dei chip migliorava, i sintetizzatori si spostavano dai chip analogici a quelli sintetizzatori controllati da segnali digitali ma generando comunque segnali analogici, e quindi alla sintesi digitale pura (riproduzione del campione, sintesi FM , sintesi additiva reale e così via).

Oggi, i processori sono abbastanza economici e abbastanza veloci da consentire ai programmatori di creare versioni per computer dei classici sintetizzatori analogici che duplicano esattamente il comportamento dei circuiti originali simulandone il comportamento in tempo reale - infatti, telefoni e tablet sono ora in grado di funzionare abbastanza velocemente da eseguire queste ricreazioni; il Korg IMS-20 è un esempio.

Entrambi i sintetizzatori classici e quelli nuovi sono disponibili come plug-in VST o AU per programmi audio digitali come Ableton Live, Logic o Cubase, e questi forniscono l'accesso ai sintetizzatori a persone che altrimenti non avrebbero spazio o denaro per poter usare loro.

Modifica: a questo punto dovrei menzionare anche VCVRack , che simula la sintesi modulare analogica in tempo reale. Abbastanza un passo avanti rispetto ai tempi di rendering di più ore per alcuni secondi di musica.


1
Un Atari 2600 del 1977 ha una potenza della CPU sufficiente per generare musica a quattro voci con una gamma di cinque ottave, pur lasciando oltre il 39% del tempo della CPU disponibile per la generazione di display. Le tabelle di ricerca necessarie occuperebbero più della metà di una cartuccia 4K (circa 2300 byte), ma era ovviamente possibile che le cartucce fossero più grandi di 4K. Probabilmente non si potrebbe avere un gameplay terribilmente complicato durante la riproduzione di musica, ma una schermata del titolo piuttosto colorata con un testo di scorrimento sarebbe una possibilità definitiva >:*3.
supercat

Sì, ho lasciato fuori circa 10? 20? anni di sviluppo, quindi la mia risposta non si sarebbe trasformata in un romanzo. Ottimi punti! Avevo qualcosa chiamato (Musicworks) [ thinkclassic.org/viewtopic.php?id=550] sul mio Mac 512K in grado di gestire a malapena 4 voci.
Joe McMahon,

Il 68000 impiega più cicli per eseguire ciascuna istruzione di un 6502, ma con una codifica adeguata una sintesi di tabella d'onda a quattro voci dovrebbe essere abbastanza efficiente. Stimerei circa 240 cicli / campione con ridimensionamento di ampiezza usando una tabella da 256 byte per ciascuna impostazione di volume; l'eliminazione del ridimensionamento dell'ampiezza ridurrebbe quel tempo di 56 cicli / campione.
supercat

7

In passato, il taglio era abbastanza chiaro. La maggior parte delle cose che necessitavano di una rapida esecuzione dovevano essere implementate nell'hardware. Prendiamo ad esempio un multivibratore che genera una frequenza. Non molto tempo fa avevi bisogno di un paio di transistor, condensatori ed eventualmente un quarzo per generare una frequenza (fissa). Ora ci sono microcontroller economici che costano solo pochi centesimi circa. Dal momento che sono così veloci, puoi usarli facilmente per creare un multivibratore. Inoltre, puoi facilmente controllare tramite software quale frequenza generare dove in passato era necessario saldare hardware diverso. Tuttavia, andando oltre una certa frequenza (ma ora piuttosto alta) avresti ancora bisogno di hardware puro. Quindi vedi, c'è una linea tra entrambi, ma la parte che puoi risolvere con il software sta crescendo (in modo esponenziale).

Modifica In realtà "Il software può sostituire l'hardware" non è proprio corretto. È solo il fatto che l'hardware è diventato così potente che puoi usarlo per eseguire software che emula l'hardware. Quindi invece di alcuni transistor semplici ma saldati staticamente usi milioni di transistor che comprendono il software. Quindi il termine dovrebbe essere "Hardware ora può capire il software" invece.


Ad essere onesti, quasi tutti i microcontrollori hanno (almeno un) modulo PWM generico, implementato in hardware. Quindi raramente viene eseguito il bitbang di un'uscita in frequenza, utilizzando il software in esecuzione sulla CPU corretta.
Lyndon White il

@LyndonWhite Un PWM non è un multivibratore generale. Ha modulato l'ampiezza dell'impulso che è un sottoinsieme di un generatore di frequenza.
qwerty_so,

1
Anzi, questo è vero. Il mio punto era piuttosto che PWM è di gran lunga il tipo più comune di segnale che si vuole generare (con all'interno di una serie di cicli di lavoro) - motivo per cui i microproccessori hanno hardware speciale per esso. Probabilmente aggiungerei PWM vs bitbanging come esempio del contrario "l'hardware può sostituire il software".
Lyndon White il

@LyndonWhite Ho apportato una modifica alla mia risposta.
qwerty_so,

5

Un confronto tra il gioco arcade Tank (circa 1976) e il gioco console console Combat (1977) fornisce un bell'esempio di come il software potrebbe sostituire l'hardware anche 40 anni fa.

Il gioco arcade Tank (circa 1976) ha permesso a due giocatori di guidare carri armati e spararsi l'un l'altro. Non includeva alcun tipo di processore, ma aveva contatori hardware per tenere traccia delle posizioni orizzontale e verticale del fascio di elettroni, carri armati e colpi, nonché i punteggi del giocatore, gli angoli di rotazione, il tempo trascorso. Aveva una logica cablata per produrre i dati bitmap associati ai punteggi, alle forme dei carri armati dei giocatori e allo sfondo.

Il sistema video-computer Atari 2600 (una console di gioco domestica intorno al 1977) includeva l'hardware per tracciare le posizioni orizzontali (ma non verticali!) Di due oggetti bitmap e quattro generatori di impulsi a larghezza variabile, tenere premuto e far fuoriuscire un minimo di 20 bit risoluzione grafica del campo di gioco, nonché due motivi ad alta risoluzione a 8 bit, colori di aggancio per i giocatori, sfondo e campo di gioco e rilevamento delle collisioni tra i vari oggetti. Comprendeva anche un timer programmabile per scopi generici, ma l'hardware aveva ben altro che quanto sopra. Tuttavia, anche se l'hardware è molto più semplice di quello del gioco Tank, la cartuccia 2K ROM Combat consente al 2600 di giocare lo stesso gioco di base ma con molte altre funzionalità (una varietà di veicoli e sfondi, tiri che rimbalzano, ecc.) Perché può sostituire la maggior parte della macchina arcade ' s hardware con software. È interessante notare che, sebbene Atari 2600 sia probabilmente la seconda piattaforma hardware più semplice di qualsiasi sistema di videogioco basato su microprocessore venduto commercialmente, è così ben progettato per facilitare la sostituzione dell'hardware con software che, se programmato correttamente, può far girare molti dei i suoi concorrenti.


Ho trascorso molte ore e quarti giocando a Tank. Un mio amico ripristina quelle vecchie console di gioco e sono rimasto molto sorpreso di apprendere che è tutto hardware. Qualcuno ha trascorso molto tempo a creare mappe di Karnaugh per renderlo gestibile. La replica nel software è molto più semplice e richiede meno manutenzione. Lo stesso vale per gli asteroidi. Ma nessuno dei due finisce con la stessa sensazione se non lo si replica esattamente, inclusi i controlli della console. Inoltre, la grafica vettoriale non ha lo stesso aspetto sui display raster, IMO.
SDsolar,

@SDsolar: ricordo di aver letto un foglio, pubblicato penso da Atari, con alcune mod che un proprietario potrebbe fare per modificare vari aspetti del gameplay, penso che due mod coinvolte tenendo premuto abilitassero l'aggancio per l'angolo di tiro del giocatore (aggiungendo un "missile guidato "funzione) e forse aggiungendo qualcosa di simile a una funzione di serbatoio invisibile. La modifica del firmware avrebbe richiesto attrezzature più complicate e alcuni tipi di mod che sarebbero facili nell'hardware sarebbero impossibili nel firmware (ad esempio se la posizione del giocatore utilizza un contatore binario, avere un giocatore che appare due volte per linea di scansione è banale).
supercat

1

La frase "il software può sostituire l'hardware" è un avvertimento per non tentare di risolvere i problemi con l'hardware a meno che non ci siano vantaggi molto chiari. Il software è 10x-50x più economico da sviluppare e quasi infinitamente più economico da produrre per unità rispetto all'hardware. Fare X nell'hardware non sarà una soluzione vincente a meno che X non possa davvero essere fatto in modo efficiente nel software.


Non ho votato in negativo, ma sono abbastanza sicuro che sia inaccurato.
J. Allan,

@ JefréN. Si tratta solo di acquistare hardware piuttosto che svilupparlo.
Depresso

Hai ragione; Ho frainteso l'intento della domanda. Hai una citazione o un link a sostegno della tua affermazione che "il software è 10x-50x più economico da sviluppare ... rispetto all'hardware"? Sarei interessato a sapere se si tratta di una figura da baseball o se si tratta di una dichiarazione [comunemente accettata / verificata]. (Mi dispiace che tu sia triste, tra.; D)
J. Allan il

Non ho effettuato il downgrade ma non posso votare perché non è sempre vero che il software sia più economico. Spesso può essere molto più costoso. Inoltre, considera il concetto di ASIC e FPGA, in cui il software viene utilizzato per creare un equivalente hardware che può quindi essere eseguito più velocemente. Come l'ultima differenza tra programmi eseguibili e programmi interpretati, ma di più.
SDsolar,

1
@SDsolar Non ho sentito parlare di un caso in cui la stessa funzionalità è implementata in modo più economico nell'hardware rispetto al software. Se è possibile farlo nel software, sarà quasi universalmente più economico farlo nel software. Naturalmente, ad esempio, un renderer software si imbatterà in problemi di prestazioni prima rispetto a una scheda grafica. Ma questo va oltre alla fattibilità di un'implementazione del software per raggiungere una certa base di prestazioni.
Depresso

1

La sfumatura è stata ben affrontata, ma penso che sia possibile il ostacolo per OP, è che non è possibile sostituire l'hardware con il software. L '"hardware" comporta inevitabilmente un "hardware" significativamente inferiore rispetto alla soluzione "software".

La differenza è che la logica di un processo / algoritmo / calcolo può essere spostata tra hardware e software. Sono stati dati molti esempi, quindi non elaborerò.


-1

Nei primi computer con memoria virtuale, per caricare una nuova voce di pagina è stato necessario commutare un task su una mancanza TLB. Un software OS troverebbe il processo corretto e scorrerebbe le tabelle delle pagine, trovando la voce corretta e riscrivendola nel TLB. Prima di tornare al processo originale per continuare.

Ora la maggior parte delle CPU usa l'hardware per eseguire il processo, leggere la tabella delle pagine, percorrere le tabelle delle pagine e aggiornare TLB.

Entrambi i metodi devono utilizzare il software per gestire gli errori di pagina, ma poiché TLB non supera in modo semplice gli errori di pagina, l'hardware supera comunque il software.

In generel se hai una semplice procedura che devi gestire ripetutamente trovi una sostituzione hardware. Se si dispone di una soluzione hardware complessa con un flusso di controllo complicato, è possibile semplificare l'hardware utilizzando il software.


-2

Ci sono molti casi in cui il software può sostituire l'hardware e viceversa.

Un classico esempio di ciò è una tabella di ricerca matematica. Invece di calcolare i risultati in espressioni comuni ogni volta, vengono archiviati internamente nel coprocessore matematico e semplicemente citati quando necessario.

Molti probabilmente hanno già familiarità con filtri audio e software in grado di imitare strumenti e dispositivi reali come pedali o amplificatori.

Qualsiasi hardware che può essere creato virtualmente verrà utilizzato, se è più veloce e / o più economico dell'equivalente fisico.


-2

In contabilità, una copia cartacea di una fattura (ad esempio) ora può essere inviata elettronicamente e il software sta iniziando a gestire la ricezione di questo tipo di documenti e la sua elaborazione sempre più. È un eccellente esempio di hardware sostituito dal software.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.