Perché stanno mettendo "processori" su hard disk?


54

Che cosa significa quando i dischi rigidi hanno un processore sul disco rigido? Come funziona e quali vantaggi ha?

Non capisco: la CPU del computer è il processore e il disco rigido trasferisce i suoi contenuti alla RAM del computer host. Processori aggiuntivi pre-elaborano i dati in qualche modo?

Ecco alcuni esempi:

  1. Western Digital WD Black WD1002FAEX 1TB "Velocità doppio processore"
  2. NETGEAR ReadyNAS 312 Storage collegato in rete senza disco a 2 alloggiamenti "Processore Intel 2.1GHz dual-core e memoria integrata da 2 GB"

Inoltre, i router ora hanno anche processori. Perché è necessario? Immagino che abbia un senso: una logica deve accadere perché i pacchetti vengano letti per sapere su quali porte inviarli, ma perché i vecchi router non ne hanno bisogno?

Esempio di router wireless con processore : " Processore dual-core"

Sono sorpreso, perché il modello di macchina von Neumann non include processori in memoria diagramma.


19
Che Netgear non è solo un router ma un file server completo. Con il disco rigido, esegue solo una pre-elaborazione su uno e IO su altri. Teoricamente un po 'più veloce, ma un SSD è ancora il re della velocità. Sembra che il router ASUS abbia alcune funzionalità VPN e altre fantasie che dovrebbero avere una certa potenza di elaborazione, quindi il dual core.
user341814

17
Il modello Von Neumann non dice nulla sulla struttura dei dispositivi I / O. Hai ancora bisogno di una scheda grafica per pilotare un monitor, anche se quel modello lo raccoglie in un unico blocco "output".
user253751

10
L'architettura Von Neumann (dal 1945) è un ottimo punto di partenza (concettualmente) per comprendere i computer con programmi memorizzati. L' attuale implementazione dei computer moderni (inclusa la maggior parte delle periferiche) è significativamente più dettagliata. Nel 1945 non c'erano "periferiche intelligenti", quindi non sarebbero state rappresentate nel diagramma. Le auto sono concettualmente le stesse del 1945 (quattro ruote, un motore, il volante) ma non ti aspetteresti che un diagramma semplificato di un'auto del 1945 ti dia una comprensione completa di loro oggi.
Maxx Daymon,

7
Anche il diagramma di architettura von Neumann non include una freccia tra "Memoria" e "Memoria". Considera DMA .
un CVn il

3
Lo sapevi che (a parte Apple - a causa di Woz), ogni microcomputer domestico (che mi viene in mente) aveva un processore nell'unità floppy? Ricordi il suono chunk-chunk-chunk dei primi floppy drive Apple? Questo perché hanno trovato il settore zero spostando il braccio di trasmissione alla distanza massima tre volte.
Elliott Frisch,

Risposte:


81

Bene, l'HDD ha sempre avuto processori, principalmente per memorizzare nella cache i dati e fare altre cose sull'HDD come contrassegnare blocchi danneggiati ecc.

Il prodotto Netgear che hai collegato è un NAS, che ti consente di trasmettere contenuti multimediali da esso attraverso la rete, quindi non è proprio un HDD. È più simile a un HDD collegato in rete con un software sofisticato per consentire lo streaming di informazioni sulla rete.

Anche i vecchi router avevano processori, sebbene fossero lenti e non pubblicizzati affatto. Il WRT54G, uscito nel 2002, aveva un Broadcom BCM4702 a 125Mhz. Davvero non molto veloce. Tuttavia, oggigiorno chiediamo di più dai router e funzionalità come la VPN richiedono processori più veloci.


14
Gli HDD non hanno sempre avuto "processori" riconoscibili, ma sono sicuramente stati comuni per 15-20 anni.
Daniel R Hicks,

21
Le unità ST-506 erano unità "stupide" ed erano popolari all'inizio degli anni '90. IDE (Integrated Drive Electronics aka unità "smart") posiziona il controller (CPU) proprio sulle unità, così come SCSI.
Maxx Daymon,

11
I dischi rigidi contenenti processori risalgono ai primi anni '60 con i processori periferici della serie CDC 6000 e equivalenti in IBM System / 360 (e possibilmente macchine precedenti).
Andrew Medico,

3
Bene, hai bisogno di un processore per il funzionamento ottimale della cache, come decidere quali dati memorizzare nella cache
matthew5025

3
I dischi rigidi non hanno certamente sempre rintracciato internamente blocchi danneggiati. Perché pensi che MS-DOS 6.0 abbia introdotto Scandisk e la sua funzione di scansione di superficie per popolare il FAT con un elenco di cluster danneggiati?
un CVn il

125

Non capisco: la CPU del computer è il processore e il disco rigido trasferisce i suoi contenuti alla RAM del computer host. Processori aggiuntivi pre-elaborano i dati in qualche modo?

La CPU è un processore; ce ne sono altri. Un processore è ciò che esegue il codice del programma, quindi qualsiasi dispositivo che ha un firmware (che è un codice) ha un processore di qualche tipo.

Un disco rigido ha un proprio processore (piccolo) che esegue il firmware che implementa un protocollo di interfaccia (ad esempio SATA o SCSI) e controlla i motori del convertitore. Pensa al tuo disco rigido come a un computer specializzato all'interno di un computer; il cavo SATA è come un cavo di rete che consente di comunicare con il computer "principale". La CPU crea messaggi (come pacchetti di comandi SATA) per dire all'unità quali dati desidera e li invia all'unità tramite il cavo; il processore dell'unità esamina i messaggi dalla CPU e controlla i motori e le testine magnetiche dell'unità per leggere o scrivere effettivamente i dati.

Un NAS è un computer che esegue software per file server. In linea di principio non è diverso dall'impostazione di cartelle condivise sul PC; il NAS esegue un sistema operativo più leggero su un processore più lento, ma essenzialmente fa lo stesso lavoro. Lo stesso vale per un router.


53
Mi piace questa risposta. La CPU è un'unità centrale di elaborazione , quindi devono essercene altre.
gronostaj,

19
Il punto chiave è "qualsiasi dispositivo che ha il firmware (esegue il codice) ha un processore di qualche tipo". Ben fatto Wyzard!
Mindwin

2
Power Loss Protection è un esempio di una funzionalità che può essere implementata in un disco rigido con un processore e un codice di programma. L'unità è in grado di rilevare la perdita di energia dall'MB. Il programma in esecuzione nel processore dell'HD può quindi scrivere l'ultimo bit di dati bufferizzati sul disco (con l'alimentazione da un condensatore di bordo). Poiché l'MB non è alimentato, la CPU non ha alimentazione ed è inutile per qualsiasi operazione di scrittura HD incompiuta. Quindi ha senso che l'HD abbia il suo po 'di potenza, il processore e il codice del programma per completare le scritture bufferizzate e l'arresto in modo pulito.
MikeM,

2
E da Wikipedia: "Alcuni primi HDD per PC non hanno parcheggiato le teste automaticamente quando l'alimentazione è stata disconnessa prematuramente e le teste sarebbero atterrate sui dati. In alcune altre prime unità l'utente avrebbe eseguito un programma per parcheggiare manualmente le teste". - Con un processore e un codice di programma anche questo problema è stato risolto.
MikeM,

@gronostaj quindi abbiamo anche bisogno di unità di elaborazione decentrate?
Thorbjørn Ravn Andersen,

33

Se potessi esaminare in dettaglio il funzionamento di un tipico PC desktop, troverai processori ovunque. Se hai una tastiera e un mouse collegati alle porte USB, c'è un processore all'interno della tastiera e uno all'interno del mouse che parla il protocollo USB.

Nel caso di un disco rigido, ci sono un sacco di cose da fare per quel processore. Per prima cosa, il processore deve posizionare la testa, attendere il momento giusto e quindi inviare i dati ai piatti. Quando la CPU chiede di leggere un mucchio di dati, il processore trova l'ordine ottimale per recuperare quei dati dal disco e forse recupera anche alcuni dati extra che sono passati sotto la testa per metterli nella cache nel caso in cui la CPU lo richieda Il prossimo.

I moderni dischi rigidi possono anche eseguire controlli di integrità SMART in background. La CPU non deve occuparsi di queste cose, oltre a chiedere periodicamente i risultati.

I "router" SoHo moderni non sono solo router. Sono anche punti di accesso, switch, server DHCP, server Web e implementano NAT, firewall, a volte anche funzioni NAS e un sacco di altre cose. I loro processori hanno un sacco di lavoro da fare.

Fondamentalmente, un processore è così economico da implementare in questi giorni che vengono utilizzati in quasi tutti i casi in cui hanno senso. L'eccezione sarebbe nei casi in cui l'attività è molto semplice o dove sono richieste prestazioni elevate. Cavolo, probabilmente ce n'è anche uno nel tuo alimentatore per gestire la velocità della ventola e ottimizzare il consumo di energia.


1
"Se hai una tastiera e un mouse collegati alle porte USB, c'è un processore all'interno della tastiera e uno all'interno del mouse che parla il protocollo USB." Pensavo fosse il lavoro di un controller . I controller sono talvolta considerati le stesse cose dei processori?
Celeritas,

1
I controller possono essere hardware puro, ma i requisiti per questi tendono ad aumentare, rendendo l'hardware sempre più complesso. A un certo punto di complessità, è più facile usare un processore e fare le cose nel software. Ma ciò non dà al controller un nome diverso; gli utenti in genere non vogliono o devono sapere come viene implementato il controller. Inoltre, con i complessi ASIC hardware e FPGA al giorno d'oggi, la distinzione tra processori diventa un po 'confusa.
Guntram Blohm sostiene Monica il

L'ho letto come "cigolio del topo" all'inizio :)
Tom Zych,

21

Molte attuali apparecchiature "intelligenti" sono in realtà computer a tutti gli effetti, che spesso eseguono un clone di Linux. Se il dispositivo è abbastanza consentito o è stato rootato / jailbreak, potresti essere in grado di armeggiare con esso, installare nuovi pacchetti o persino cambiare il sistema operativo. Ovviamente usano le CPU.

Esempi includono telefoni, TV, lettori DVD, lettori di e-book, scatole NAS, router domestici, modem e gestione fuori banda nei server, che in realtà sono interi computer con il proprio sistema operativo.

Ma anche i dispositivi stupidi hanno processori, spesso chiamati microcontrollori, responsabili per esempio della lettura e della scrittura dei dati. La scheda Micro SD nel telefono contiene un processore e una scheda SIM ne ha un'altra, in grado di eseguire applicazioni Java.

Anche i semplici giocattoli per bambini, come un semaforo, hanno un microntroller, in quanto è più facile ed economico implementare la logica della luce nel software del microcontrollore rispetto ai componenti discreti.


8
in realtà poche persone sanno che la SIM card è un vero computer e puoi persino riprogrammarla al volo tramite SMS speciali
phuclv


Non solo schede SIM ma qualsiasi smart card Chip & Pin conforme allo standard ISO. Carte bancarie, carte fedeltà e molte altre ancora portano tutte queste cose e alcune sono sorprendentemente potenti.
shawty

20

Per rispondere alla tua domanda specifica sulle unità a disco rigido che nessuno sembra aver affrontato.

SATA (e tutte le altre interfacce di attaccamento del disco che mi viene in mente) funziona con i blocchi. I comandi sono definiti per (tra le altre cose) leggere e scrivere blocchi di archiviazione fisici specifici e i dati vengono forniti tramite il cablaggio dell'interfaccia dell'allegato. Tale comando deve essere elaborato da qualche parte, cosa che può essere eseguita sia in un software che gira su un processore di bordo, sia usando una sorta di configurazione hardware pura che probabilmente dovrebbe fare più o meno la stessa cosa.

Indovina cosa è più economico, fisicamente più piccolo, tutt'altro che improbabile, più facile da lavorare e di solito molto più versatile? Esatto, un processore, una piccola quantità di memoria del programma (flash, EPROM, ROM o qualsiasi altra cosa si adatti alle tue esigenze) e una piccola quantità di RAM, le ultime due delle quali se le tue esigenze sono abbastanza modeste potrebbero anche essere incluse all'interno del processore stesso (vedi ad esempio la famiglia di microcontrollori PIC ).

Inoltre, ricorda che i piatti del disco non memorizzano effettivamente i bit. Memorizzano le codifiche del flusso magnetico di bit. Qualcosa deve elaborare le letture del flusso provenienti dalla testina di lettura o elaborare i dati in transizioni di flusso da fornire alla testina di scrittura. Se una lettura è imperfetta, i dati di correzione degli errori (archiviati insieme ai dati) vengono utilizzati idealmente (purtroppo non è sempre il caso ) correggere l'errore e restituire dati validi anziché immondizia o restituire un errore se il problema è troppo grave per essere correggibile. Ancora una volta, è più facile da implementare nel software che deve essere eseguito su qualcosa e un processore con un po 'di memoria si adatta di nuovo abbastanza bene.

Avere molta potenza di elaborazione integrata significa poter utilizzare schemi di codifica e recupero errori più avanzati, che nel caso di dischi rigidi significa che è possibile raggruppare più dati sulla stessa superficie fisica. Il risultato finale è una capacità di archiviazione maggiore di quanto sarebbe altrimenti possibile. La potenza di elaborazione del microcontrollore del disco rigido stesso, tuttavia, non è di fondamentale importanza per l'utente dell'unità.


1
Per approfondire "o usare una sorta di configurazione hardware pura", i microcontrollori (come dici tu) e gli ASIC personalizzati erano molto più comuni. Oggi è spesso più economico e più semplice da costruire con processori "reali" che eseguono un sistema operativo incorporato fuori dalla ROM, piuttosto che progettare e fabbricare ASIC personalizzati e scrivere firmware altamente specializzato per i microcontrollori. Il problema hardware diventa un problema software e i componenti sono più standardizzati; entrambi riducono i costi ... e aprono la porta a nuove funzionalità.
eco il

12

Scusami se ho letto questo punto ma non l'ho ancora letto nelle risposte (anche se tutte le altre risposte sono fantastiche).

La distribuzione di processori su apparecchiature hardware riduce anche il carico di lavoro del processore centrale, che è la CPU sulla scheda madre.

Pensa a un computer con una sola CPU che deve fare tutto il lavoro che deve essere fatto. Controlla la memoria, controlla il bus, gestisci calcoli specifici del disco rigido (gira il disco, accedi, magnitudo per scrivere, leggere ecc.)

Se tutto ciò che deve essere fatto viene fatto dalla tua CPU, non rimarrebbe molto tempo per le tue attività effettive.


9

Cominciamo con l'ovvio: quei "processori" sono sempre stati lì a un certo livello. Con le unità più vecchie, queste erano nelle schede controller e con qualsiasi cosa si avvicinava ai dischi rigidi moderni, avevano controller del disco - la designazione "IDE" per le unità pata si riferisce al fatto che l'elettronica era a bordo invece di avere una scheda separata.

Mentre tradizionalmente si trattava di microcontroller, il mio ssd - un Samsung 840 ha un processore a tre core basato su braccio. Questi chip fanno cose come il livellamento dell'usura, la gestione di varie traduzioni interne (come la conversione dei comandi ATA o SCSI in qualcosa che fa brontolare l'elettronica dell'unità) e due fattori: l'hardware è molto più complicato di un tempo e i processori sono più economici e veloci di quanto non fossero in passato significa che ha senso gettare un nucleo tagliato per scopi generici in un disco. Tuttavia, sì, questi processori sono sempre stati lì.

Con i router, hanno sempre avuto mips o arm core: fondamentalmente hanno bisogno del potere di eseguire un server Web, il routing e così via. Molte unità collegate in rete utilizzano core simili o migliori in modo da poter gestire cose come smb o la pagina di amministrazione.

Del resto, per molti anni, le tastiere avevano gli stessi processori M68K che potresti trovare su molti vecchi computer, e ci sono topi con core arm per gestire cose come un'illuminazione elegante e risposte sempre più veloci.


Quando mai le tastiere hanno mai avuto microprocessori 68K !? E unità come l'ST-225 avevano davvero processori?
supercat

Bene, questa era una vecchia tastiera scadente di Packard Bell che ho smontato qualcosa come 4-5 anni fa, e all'epoca era di seconda mano. È stata una sorpresa. L'ST 225 ha preceduto l'IDE e quindi avevo bisogno di un controller separato suppongo. Difficilmente lo considererei qualcosa che potresti trovare in un PC negli ultimi 15 anni circa
Journeyman Geek

Sei sicuro che fosse un 68K contro qualcosa come un 68HC05?
supercat

Con riferimento a ST 225. Le unità MFM sono abbastanza vecchie da utilizzare la CPU del computer principale. L'azionamento stesso ha semplicemente un cavo con il segnale non elaborato dalla (e) testa (e) dell'inverter, un segnale per cambiare traccia, un segnale per la direzione di cambio traccia (verso una traccia superiore o una traccia inferiore) e un segnale per indicare la traccia zero è stato raggiunto. Tutta la gestione (inclusa la tracciabilità dei settori difettosi stampati sull'etichetta dei dischi) è stata eseguita tramite software sul computer principale.
Hennes,

5

Inoltre, i router ora hanno anche processori. Perché è necessario? Immagino che abbia un senso: una logica deve accadere perché i pacchetti vengano letti per sapere su quali porte inviarli, ma perché i vecchi router non ne hanno bisogno?

I router hanno sempre avuto un processore. I due router originali erano software in esecuzione su PDP-11 (sì, il successore della macchina su cui Unix era stato originariamente scritto). Uno è stato sviluppato a Stanford e l'altro al MIT. Il router Stanford è stato successivamente concesso in licenza a un piccolo start-up di nome Cisco Systems. Cisco ha reimballato i computer PDP in contenitori personalizzati, schiaffeggiato su un'etichetta "Cisco" e li ha venduti come router.

Ecco cosa usavano i vecchi router: i processori.

Ricordo di aver letto un'intervista di uno dei fondatori di Cisco che ha detto qualcosa del tipo: "questo è il vantaggio di vendere software come scatole di metallo - non è necessario convincere le persone a non consegnarne copie ai loro amici". Il mio google-fu oggi non mi riesce, quindi non riesco a trovare la citazione reale. Erano i giorni prima che un certo fondatore di una piccola azienda chiamata Microsoft convincesse le persone che dovevano pagare per il software (allora era una versione iniziale di Basic).


4

Tutte le apparecchiature semi-autonome sin dalla nascita della rivoluzione del computer hanno avuto una sorta di "Processore" su di esso, è solo fino ad ora non è mai stato realmente segnalato come tale.

Quello che vedi qui è la corruzione in corso e le mezze verità che sono diffuse nella nostra società da agenzie di marketing zelanti, in cui i venditori sono incoraggiati sempre di più e fatti credere che sono le star dello spettacolo, semplicemente perché stanno facendo i profitti.

Il fatto è che, tuttavia, tutto ciò che deve eseguire una serie di attività in cui la successiva iterazione di un processo può essere diversa dalla precedente iterazione, deve avere un qualche tipo di interprete in grado di dare un senso alle istruzioni fornite dal dispositivo e quindi reagire a tali istruzioni in qualche modo.

Indietro nella notte dei tempi, terminologia come "Controllers" dove la norma, ma queste si riducevano ancora alla stessa cosa.

Prendiamo ad esempio un "disco rigido IDE, con il suo controller IDE sulla scheda", mentre questa non è una CPU nello stesso senso in cui si pensa a una CPU sulla scheda principale del PC, non è mai meno una forma di CPU.

Il PC host invia "Codici OP" (abbreviazione di codici operativi) attraverso il bus (PCI, ISA, MCI, PCIe o altro) al controller delle unità, il controller quindi legge questo codice e tutti i dati forniti con esso e li trasforma in operazioni fisiche che inducono quindi l'unità a spostare le testine nel posto corretto e a leggere i dati richiesti.

I router hanno una storia ancora più lunga, Cisco ha ora creato dispositivi di rete per la maggior parte degli ultimi 50 anni o più, e ognuno di questi dispositivi ha sempre avuto un controller / CPU personalizzato. Questa CPU è stata progettata da Cisco, appositamente per Cisco allo scopo di programmare e controllare l'intera gamma o router e switch.

Le schede grafiche sono un'altra cosa, senti le persone che legano il termine "GPU" come se fosse qualcosa di mistico che fa solo grafica. Non lo è, è un processore di algoritmo matematico estremamente parallelo, Iv'e ha appena finito di fare la modifica tecnica in un libro su Nvidia CUDA, e quello che ho imparato sulle GPU di Nvidia è stato piuttosto sorprendente, queste cose sono Processor a sé stanti, processori che sono progettati per svolgere una serie specializzata di lavori, ma sono ancora semi-intelligenti e in grado di svolgere diversi tipi di operazioni.

Come è già stato sottolineato, Netgear Readynas è in realtà più simile a un PC completo. È appositamente progettato per funzionare solo come dispositivo di archiviazione remoto.

Se lo volessi, non ci sarebbe nulla che ti impedisca di riprogrammare il dispositivo Netgear con un nuovo software e di farlo funzionare perfettamente come un server Web, un server di database o anche un piccolo server di sviluppo Linux. (Una rapida ricerca ti mostrerà più di una manciata di progetti volti a fare una cosa del genere con queste unità NAS)

In termini di processore, potrebbe sorprenderti apprendere che non sono solo i dischi rigidi ad avere "Processori" in questi giorni, prova questo piccolo esperimento.

Vai in piedi in cucina e vedi quante CPU puoi contare.

Sono disposto a scommettere che il tuo frigorifero / congelatore, lavatrice, lavastoviglie, forno e microonde (almeno) hanno tutti una sorta di processore in, potrebbe non essere un Intel Core i7, ma è ancora un processore, ed è progettato per stare in silenzio, interpretando le istruzioni che gli vengono inviate da altri circuiti elettrici / digitali che poi si trasforma nelle operazioni fisiche che vedi.

Qual è la definizione di processore?

Beh, è ​​un po 'difficile da definire in questi giorni, ma in generale la definizione di "Processore" è qualcosa sulla falsariga di "Qualsiasi unità autonoma, che è in grado di agire su ingressi esterni in modo semi-intelligente e produrre un insieme noto di uscite derivate da tali ingressi "

Quindi qualsiasi unità autonoma, circuito, chip o macchina autonoma in grado di effettuare una manifestazione fisica di un processo noto basato su una serie di input predefiniti può essere considerata, nel suo senso più basilare e generico, un processore di qualche descrizione.


+1 trovo che questa sia una bella risposta lungimirante. Mi sarebbe piaciuto leggere della massiccia parallelizzazione della GPU in termini di "1024 core eseguono tutte le stesse istruzioni allo stesso tempo" per essere più precisi in quella direzione - ma comunque mi piace la tua risposta :)
Stefan,

1
Grazie :-) se sei interessato al massiccio parallelismo delle GPU tieni d'occhio la gamma di ebook gratuiti Syncfusions per "CUDA Succintly", che dovrebbe essere rilasciata in un futuro non molto lontano, ed è scaricabile gratuitamente.
shawty

4

Sebbene i dischi rigidi e le schede flash media non abbiano sempre incluso i processori, il loro design è soggetto a un principio abbastanza semplice: qualcosa con un processore deve sapere cosa è necessario per archiviare e recuperare i dati. Se un dispositivo di archiviazione non contiene un processore ma è collegato a qualcosa che lo fa, l'hardware deve consentire la memorizzazione e il recupero delle informazioni utilizzando la sequenza esatta di passaggi previsti dal dispositivo collegato. Anche se l'archiviazione e il recupero di informazioni in qualche altro modo potrebbero essere più efficienti, potrebbe non esserci alcun modo in cui il sistema connesso possa conoscerli.

Ad esempio, la maggior parte dei dischi rigidi funziona magnetizzando ogni pezzo del disco in una delle due direzioni. Se una "L" rappresenta la magnetizzazione in una direzione per un certo periodo di tempo e una "R" rappresenta la magnetizzazione nell'altra per lo stesso periodo di tempo, tentando di memorizzare i dati direttamente utilizzando "L" per rappresentare un "1" e " R "per rappresentare uno" 0 "sarebbe molto inaffidabile a causa di due fattori:

  1. Una lunga stringa di uno o zero rappresenterebbe una lunga stringa di L o R, che a sua volta potrebbe essere interpretata erroneamente come una stringa leggermente più lunga o leggermente più corta. Ad esempio, se il motore di azionamento sta rallentando del 5% quando i dati vengono letti rispetto a quando sono stati scritti, ciò che è stato scritto come una stringa di 20 L potrebbe non essere letto correttamente come una stringa di 21 L.

  2. Due stringhe di L separate da un piccolo numero di R possono diffondersi in quella piccola stringa di R e "divorare". Allo stesso modo due stringhe di R separate da un piccolo numero di L.

A causa di questi fattori, le unità in genere devono codificare le informazioni in esecuzioni di L e R la cui lunghezza è compresa tra un massimo e un minimo; i valori ottimali per la lunghezza massima e minima possono variare a seconda della qualità dell'elettronica, del motore, della testa e del materiale. Inoltre, poiché le tracce esterne su un disco sono più lunghe delle tracce interne, potrebbero essere in grado di memorizzare corse più brevi di L e R rispetto alle tracce esterne.

Affinché le informazioni possano essere memorizzate in un'unità, devono essere collegate a qualcosa che sappia convertire i dati in stringhe di L e R che il supporto sarà in grado di contenere. Se l'atto di convertire Ls e Rs fosse la responsabilità di un controller che era separato dall'unità stessa, allora un'unità avrebbe bisogno di usare solo formati che sarebbero compresi da qualsiasi controller a cui potrebbe essere collegato. Lo spostamento del controller nell'assieme di unità allevia questo problema: se ogni produttore spedisce un'unità con un controller in grado di capire come memorizza i dati, non dovrà preoccuparsi se altri controller capiranno quei dati, poiché le informazioni saranno solo memorizzato e recuperato dal controller contenuto nel gruppo unità.


3

Come già spiegato dalle persone, molte periferiche / dispositivi hanno sempre avuto processori per fornire le loro funzionalità di base e persino i router relativamente di base sono in effetti piccoli server (l'aspetto più visibile per l'utente finale sarebbero le procedure guidate di configurazione basate sul web, è necessario un Stack IP, un server Web, ecc. E un processore su cui eseguirli).

Ma dovresti anche capire che un moderno NAS consumer è ancora più di questo, di solito puoi accedere ad esso tramite un browser web e avrai accesso a una GUI con molte applicazioni, un sistema di gestione dei pacchetti software, più servizi per lo streaming di file multimediali, eseguire aggiornamenti automatici, leggere altri dispositivi di archiviazione collegati a una porta USB, ecc., quindi quasi un ambiente desktop completo (sebbene alcuni lavori per la GUI siano condivisi con il computer client ovviamente).


2

Tutti i dischi rigidi hanno sempre avuto processori. Tutti i router hanno sempre avuto processori.

La tua scheda grafica ha un processore. Lo ha sempre fatto. La scheda di interfaccia di rete ha un processore. Lo ha sempre fatto. La stampante ha un processore, la tastiera, il mouse, e ancora e ancora e ancora. Sarebbe difficile pensare a un dispositivo collegato al tuo computer che NON ha un processore di qualche tipo.

Ora vengono pubblicizzati di più perché le loro prestazioni sono più critiche, perché ci chiediamo a questi dispositivi di fare sempre di più.


2

Non c'è praticamente nessun dispositivo nell'elettronica del computer che sia così stupido da poter svolgere il suo ruolo senza un processore - per lo meno praticamente tutto deve codificare un segnale dentro o fuori in qualche momento. Se quel segnale varia, ci devono essere regole su come varia e un processore applica tali regole.

Andando un po 'più lontano dalla domanda, ma rafforzando il tutto ha il tema dei processori , negli anni '80 ero un amministratore di sistema responsabile di alcuni mainframe VAX / VMS.

Avevamo una stampante a banda molto veloce (rumorosa) che azionava una serie di martelli che colpiva una banda ad alta velocità e alta resistenza. Penso che fosse una stampante da 600 linee al minuto. Sono completamente formate 132 linee di caratteri, non una linea di punti.

Per controllare i tempi di come i martelli hanno colpito la band, aveva alcuni semplici circuiti elettronici. Ciò richiedeva un programma diverso a seconda della banda: si potevano avere bande ancora più veloci che avevano solo lettere maiuscole (diversi set di ASCII su una banda).

Il programma per quel processore veniva memorizzato su un pezzo di nastro di carta che veniva anche letto in un ciclo continuo, ogni volta che la stampante veniva accesa (sì, veniva lasciata in esecuzione per la maggior parte del tempo).

L'ho scoperto solo quando il mio operatore è stato entusiasta di pulire la stampante e ha trovato il nastro di carta. Fortunatamente si rese conto che non era solo un po 'di carta vagante e non cercò di rimuoverlo.


2

Che cosa significa quando i dischi rigidi hanno un processore sul disco rigido?

Significa che l'unità ha una piccola CPU. In generale, qualsiasi dispositivo che ha una CPU avrà il firmware.

Come funziona e quali vantaggi ha?

Le periferiche del computer sono complesse. Ad esempio, l'atto di leggere e scrivere dati su un'unità disco floppy è abbastanza coinvolto. È necessario manipolare l'hardware che sposta la testina dell'unità, quindi cercare le intestazioni di settore, scoprire se i dati che arrivano su una linea di lettura hanno un senso secondo un protocollo, ecc.

Facciamo un esempio semplificato di lettura di un'unità floppy: probabilmente il modo più rudimentale che una CPU può comunicare con il mondo esterno è attraverso le porte I / O. Queste porte sono collegate alle linee sulla scheda madre o alle prese: se l'elettricità passa attraverso una linea, un 1 è visibile alla CPU sulla porta quando viene letto, in caso contrario, uno 0 è visibile alla CPU. Analogamente per la scrittura, la CPU può scrivere un 1 su una porta per far passare l'elettricità attraverso la linea o impostarlo su 0 per fermarlo.

Quindi, per un'unità floppy, diciamo che in qualche modo hai una linea collegata alla testa di lettura / scrittura del floppy. Per leggere i dati, è necessario attendere un "inversione del flusso", sostanzialmente uno spostamento dell'energia magnetica che indurrebbe la linea a passare da 0 a 1 o da 1 a 0. Dovresti quindi tenere traccia di quanto tempo rilevi una seconda inversione del flusso e continui a farlo fino a quando non hai tutti i bit nel tuo settore e metti insieme le durate misurate per ricreare i dati. Ciò non influisce nemmeno su cose come spostare la testa del convertitore o attendere che il motore del motore raggiunga una velocità normale in modo che le durate non siano incasinate, e tenendo conto del fatto che due motori probabilmente non sono esattamente uguali, quindi è necessario per essere flessibile nelle tue misure in qualche modo.

Spero che sia sembrato complicato, perché lo è.

Quindi certo, puoi programmare una normale CPU del computer per farlo, ma poiché è molto sensibile al tempo, la CPU del tuo computer non può fare molto altro mentre sta succedendo. I vecchi computer che hanno effettivamente fatto qualcosa del genere in tutte le CPU / tutti i software per risparmiare denaro, come la vecchia Apple IIe, non potevano fare nient'altro durante la lettura / scrittura su disco per questo motivo.

Posizionando una piccola CPU nell'unità e avendo un controller sulla scheda madre che è in realtà solo un bus di comunicazione, la CPU può eseguire altri programmi, ottenere / inviare dati all'unità utilizzando il bus e scaricare la maggior parte del livello di lavoro per l'unità stessa. Inoltre, man mano che la tecnologia migliora, la programmazione di basso livello per gestirla può rimanere nell'unità e non è necessario modificare i programmi sul computer per funzionare con diversi formati di unità interna.

Per quanto riguarda i router, l'effettiva funzione di routing di basso livello non è difficile da eseguire nell'hardware e molti router di livello aziendale fanno proprio questo, ma sono cose come il firewall, il port forwarding, il controllo degli accessi e l'interfaccia web o la console che sono abbastanza complessi da richiedere una CPU per farlo.

Sono sorpreso, perché il modello di macchina von Neumann non include processori in memoria

Non c'è nulla nel modello von Neumann che dica che nessuna periferica possa essere essa stessa una macchina von Neumann. Ciò che rende una periferica una periferica è il fatto che la CPU può inviare comandi su una sorta di bus o altro meccanismo I / O e ottenere risultati.


2

---- Tutte le risposte in questa pagina erano troppo lunghe (o almeno così mi sentivo) - - - Quindi mi piacerebbe aggiungere uno ...

  • I dischi hanno processori perché l'attività fisica di passare da "Spot" a "Spot" sul disco, in un buon ordine, è un compito semi-difficile

  • Se leggi / scrivi i dati in un ordine "Cattivo" o "lento", in base alle distanze e simili da ciascuno a ciascuno, puoi rallentare notevolmente il trasferimento dei dati.

Il modo migliore per descriverlo è se lavori in un negozio e ti viene detto di prendere gli oggetti dagli angoli più distanti, prima di ottenere tutto ciò che ti circonda.

Un comando intelligente è quello di raccogliere tutto in rotta = = Questo è un po 'come funziona AHCI con NCQ.

NCQ ha bisogno di un'elaborazione più intelligente perché pianifica meglio le sue ricerche.

Prima di ciò, qualcosa chiamato PIO o "Processor controllato ... umm ... I / O. Che era lento perché 1. la distanza tra la CPU e l'HDD è vasta in termini di computer: Latenza. Latenza per decidere i comandi = trasferimento lento 2. La CPU fa (deve fare) altre cose 3. Ecco ... davvero le cose principali.

Il computer richiede i file qui e qui Il disco è responsabile di "COME" per arrivare al computer.

... sono fatto


Quello che stai descrivendo è noto come un algoritmo dell'elevatore . L'accodamento dei comandi (come NCQ di SATA) consente alla CPU di inviare più comandi all'unità come gruppo, in modo che l'unità possa decidere l'ordine più efficiente in cui eseguirli. Senza l'accodamento dei comandi, la CPU deve attendere che l'unità soddisfi ogni richiesta prima di inviare la successiva, quindi l'unità deve soddisfare le richieste nell'ordine in cui la CPU le invia. Ciò può essere meno efficiente poiché la CPU non conosce il layout fisico interno del disco.
Wyzard

PIO è qualcosa di diverso, però. Questa è una modalità in cui la CPU deve eseguire il codice per ricevere i dati letti dall'unità, il che è inefficiente. È generalmente sostituito da DMA , che consente all'unità di archiviare i dati direttamente nella RAM mentre la CPU funziona su altre cose.
Wyzard

Sì, non ero [esatto] [esatto] ma la funzione della performance è la latenza risultante per transazione.
TardisGuy
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.