Quanto può essere flessibile l'hardware? [chiuso]

-1

Questo argomento è già da tempo in preparazione per me e in particolare è decollato quando stavo cercando bootloader per computer ed elettronica di consumo, che, noterò, differiscono drasticamente. Ho appreso quanto sia antico e inflessibile l'hardware x86 e quanto sia limitata la struttura del software. Esempi di ciò di cui sto parlando:

  • I bootloader non possono avere una dimensione arbitraria.
  • Funzioni specializzate come l'hardware con memoria mappata.
  • Legami di un processore Intel con un particolare tipo di firmware.

Quindi mi sono chiesto dei sistemi che potrebbero essere progettati in questo modo:

  • Scrittura di testo sullo schermo gestito pixel per pixel da un sistema operativo anziché da un microcontrollore intermedio.
  • Unità disco senza settore in cui un computer inizia semplicemente l'esecuzione al primo indirizzo e il bootloader può essere di qualsiasi dimensione.
  • Funzionalità dei microcontrollori trasferiti nel software.

Capisco che ciò toglierebbe molta semplicità, ma esistono sistemi come questo? Immagino che questo sarebbe più prevalente nei sistemi embedded. Per capire meglio questa domanda, immagina un dispositivo in cui non ci sono controller o sistemi indipendenti e tutto è controllato dalla CPU.

    
posta Melab 02.01.2013 - 23:53
fonte

3 risposte

6

Affrontare in modo specifico i tuoi articoli:

  • Scrittura di testo sullo schermo gestito pixel per pixel da un sistema operativo anziché da un microcontrollore intermedio. I primi personal computer hanno fatto questo, più o meno. La maggior parte delle prime macchine che posso immaginare aveva una sorta di chip video per generare il segnale video che in realtà guidava il display, scrivendo i pixel nel buffer del display (spesso una regione della memoria principale) di solito era lasciato alla CPU. L'aggiornamento del display ha consumato una buona parte del tempo della CPU (e legato anche il bus di memoria). Scaricare tutto ciò che funziona su un processore grafico è stato un passo avanti nel rendere le macchine più veloci.

  • Dischi rigidi senza senso in cui un computer inizia semplicemente ad essere eseguito al primo indirizzo. Dove si trova il "primo indirizzo" su un disco rigido? Senza una sorta di informazioni di formattazione, non c'è modo di trovare la posizione qualsiasi su un disco. Detto questo, c'è una grande varietà di formati di dischi. Uno interessante era Spiradisc , in cui c'era essenzialmente una sola traccia a spirale. Molti formati di dischi ottici (ad esempio CD-ROM) sono anche disposti con tracce a spirale. Più precisamente, però, i microprocessori sono generalmente impostati per "iniziare semplicemente l'esecuzione al primo indirizzo" in memoria, che è il modo in cui gli stessi bootloader vengono eseguiti.

  • Funzionalità dei microcontrollori spostati nel software. di quale funzionalità stai parlando? Potresti essere interessato a Elaborazione dell'insieme di istruzioni ridotto , un'architettura di chip che richiede istruzioni semplificate che possono essere eseguite rapidamente. Ad esempio, i processori RISC spesso non hanno istruzioni per la moltiplicazione o la divisione; invece, quelle operazioni sono costruite con istruzioni più semplici come shift e add. Questo è un chiaro esempio di funzionalità trasferita nel software.

risposta data 03.01.2013 - 00:40
fonte
4

Oltre l'ormai tradizionale architettura x86, ci sono molte altre forme di hardware di elaborazione - fino ai processori analogici e viceversa.

Non penso di poter affrontare tutti i tuoi punti (o di fornire quelli più ampi) ma tu fai apparire microcontrollori e sistemi embedded. La flessibilità in embedded non è uno dei software, ma uno di modularità. Se si dispone di un protocollo di comunicazione chiaramente definito; una collezione di controllori e sensori modulari e monouso; e uno strumento di configurazione per collegare gli input e gli output di ogni modulo, quindi hai una configurazione hardware estremamente flessibile.

Il problema è che la flessibilità porta i costi della complessità - quindi la maggior parte dei sistemi embedded modulari sono tipicamente limitati e richiedono un controller centrale per ottenere qualsiasi risultato che vada oltre il semplice input / output. Infatti, almeno nella costruzione di sistemi di controllo, le cose che erano un tempo guidate dall'hardware in moduli (come il ciclo di feedback control relativo ai controlli delle valvole all'ingresso della temperatura) sono state trasferite in un software integrato in un controller centrale - creando hardware meno flessibile, ma più flessibile sistemi.

    
risposta data 03.01.2013 - 00:11
fonte
1

L'hardware può diventare il più flessibile possibile, ad es. implementando CPU con FPGA basati su RAM. Immagina: un processo su Intel, un altro su ARM ...

Ma hai davvero bisogno di questa flessibilità? A volte, anche nel software, la semplicità delle configurazioni cablate o hardcoded è un enorme vantaggio.

    
risposta data 03.01.2013 - 10:53
fonte

Leggi altre domande sui tag