Por que eles estão colocando “processadores” em discos rígidos?

54

O que significa quando os discos rígidos têm um processador no disco rígido? Como funciona e que benefícios tem?

Eu não entendo - a CPU no computador é o processador e o disco rígido transfere seu conteúdo para a RAM do computador host. Processadores adicionais pré-processam os dados de alguma forma?

Aqui estão alguns exemplos:

  1. Western Digital WD Preto WD1002FAEX 1TB "Velocidade do processador dual"
  2. NETGEAR ReadyNAS 312 Armazenamento conectado à rede sem disco de 2 baias "Processador dual-core Intel de 2,1 GHz e 2 GB de memória interna "

Além disso, os roteadores agora também têm processadores. Por que isso é necessário? Eu acho que isso faz sentido - alguma lógica precisa acontecer para que os pacotes sejam lidos para saber em quais portas eles serão enviados, mas por que roteadores antigos não precisam deles?

Exemplo de um roteador sem fio com processador : "Processador dual-core"

Estou surpreso, porque o modelo de máquina von Neumann não inclui processadores no armazenamento .

    
por Celeritas 20.08.2014 / 06:14

14 respostas

81

Bem, o HDD sempre teve processadores, principalmente para armazenar dados em cache e fazer outras coisas no disco rígido, como marcar blocos danificados, etc.

O produto Netgear que você vinculou é um NAS, que permite transmitir mídia a partir dele pela rede, portanto, não é realmente um HDD. É mais como um HDD conectado em rede com algum software sofisticado para permitir que você transmita informações pela rede.

Roteadores antigos também tinham processadores, apesar de serem lentos e não serem anunciados. O WRT54G, lançado em 2002, tinha um Broadcom BCM4702 rodando a 125Mhz. Na verdade não é muito rápido. No entanto, atualmente, exigimos mais dos roteadores, e recursos como VPN exigem processadores mais rápidos.

    
por 20.08.2014 / 06:30
124

A CPU é um processador ; há outros. Um processador é o que executa o código do programa, portanto, qualquer dispositivo que tenha firmware (que é código) tem algum tipo de processador.

Um disco rígido possui seu próprio firmware (pequeno) de execução de processador que implementa um protocolo de interface (por exemplo, SATA ou SCSI) e controla os motores do inversor. Pense no seu disco rígido como um computador especializado dentro de um computador; o cabo SATA é como um cabo de rede que permite a comunicação com o computador "principal".

Um NAS é um computador que executa software de servidor de arquivos. Em princípio, não é diferente de configurar pastas compartilhadas no seu PC; o NAS está executando um sistema operacional mais leve em um processador mais lento, mas fazendo essencialmente o mesmo trabalho. O mesmo vale para um roteador.

    
por 20.08.2014 / 08:14
33

Se você pudesse examinar detalhadamente o funcionamento de um PC de mesa típico, encontraria processadores em todo o lugar. Se você tiver um teclado e um mouse conectados a portas USB, há um processador dentro do teclado e outro dentro do mouse, falando o protocolo USB.

No caso de um disco rígido, há muitas coisas para esse processador fazer. Por um lado, o processador tem que posicionar a cabeça, aguardar o momento certo e depois enviar os dados para os pratos. Quando a CPU pede para ler um monte de dados, o processador encontra a ordem ideal para recuperar os dados do disco, e talvez até mesmo busque alguns dados extras que passaram por baixo da cabeça para colocar no cache caso a CPU os solicite. a seguir.

Os discos rígidos modernos também podem fazer verificações de integridade do SMART em segundo plano. A CPU não precisa se preocupar com essas coisas, além de possivelmente solicitar periodicamente os resultados.

Os "roteadores" modernos do SoHo não são apenas roteadores. Eles também são pontos de acesso, switches, servidores DHCP, servidores web e implementam NAT, firewall, às vezes até funções NAS e muitas outras coisas. Seus processadores têm muito trabalho a fazer.

Basicamente, um processador é tão barato para implementar nos dias de hoje que eles são usados em quase todos os casos em que fazem sentido. A exceção seria em casos em que a tarefa é muito simples ou quando é necessário alto desempenho. Heck, provavelmente há um em sua fonte de alimentação para gerenciar a velocidade dos ventiladores e otimizar o consumo de energia.

    
por 20.08.2014 / 15:01
21

Muitos aparelhos "inteligentes" atuais são na verdade computadores completos, geralmente executando algum clone do Linux. Se o dispositivo é permitido o suficiente, ou foi enraizado / jailbroken, você pode ser capaz de mexer com ele, instalar novos pacotes ou até mesmo alterar o sistema operacional. Eles, claro, usam CPUs.

Exemplos incluem telefones, TVs, aparelhos de DVD, leitores de livros eletrônicos, caixas NAS, roteadores domésticos, modems e gerenciamento fora de banda em servidores, que na verdade são computadores completos com seu próprio sistema operacional.

Mas mesmo os dispositivos burros têm processadores, frequentemente chamados de microcontroladores, responsáveis por, e. lendo e escrevendo dados. O cartão Micro SD do seu telefone contém um processador e um cartão SIM tem outro, capaz de executar aplicativos Java.

Até brinquedos infantis simples, como um semáforo, têm microntrolador, pois é mais fácil e mais barato implementar a lógica da luz no software do microcontrolador do que em componentes discretos.

    
por 20.08.2014 / 10:03
20

Para responder à sua pergunta específica sobre unidades de disco rígido que ninguém parece ter abordado.

SATA (e todas as outras interfaces de anexo de disco que eu posso pensar) funciona com blocos. Os comandos são definidos para (entre muitas outras coisas) ler e gravar blocos de armazenamento físicos específicos, e os dados são fornecidos pelo cabeamento da interface de anexo. Esse comando deve ser processado em algum lugar, o que pode ser feito tanto em software que roda em um processador on-board ou usando algum tipo de configuração de hardware puro que provavelmente precisaria fazer a mesma coisa.

Adivinhe o que é mais barato, fisicamente menor, longe de improvável mais fácil de trabalhar, e geralmente muito mais versátil? É isso mesmo, um processador, uma pequena quantidade de memória de programa (flash, EPROM, ROM ou qualquer outra que atenda às suas necessidades) e uma pequena quantidade de RAM, sendo que as duas últimas, se suas necessidades forem modestas o suficiente, podem ser incluídas processador em si (veja, por exemplo, a família de microcontroladores PIC ).

Além disso, lembre-se de que os discos não armazenam bits. Eles armazenam codificações de fluxo magnético de bits. Algo deve processar as leituras de fluxo vindas da cabeça de leitura ou processar os dados em transições de fluxo a serem dadas à cabeça de gravação. Se uma leitura é imperfeita, então os dados de correção de erros (armazenados junto com os dados) são usados para idealmente (isto é, infelizmente não é sempre o caso ) corrija o erro e retorne dados válidos em vez de lixo, ou retorne um erro se o problema for muito grave para ser corrigido. Novamente, é mais fácil implementá-lo em um software que precisa ser executado em algo, e um processador com alguma memória se ajusta bem ao projeto.

Ter muito poder de processamento a bordo significa que você pode usar esquemas mais avançados de codificação e recuperação de erros, o que, no caso de discos rígidos, significa que você pode armazenar mais dados na mesma área de superfície física. O resultado final é uma capacidade de armazenamento maior do que o que seria possível de outra forma. O poder de processamento do próprio microcontrolador de disco rígido, no entanto, não é de importância crítica para o usuário da unidade.

    
por 20.08.2014 / 16:33
12

Perdoe-me se eu tiver superado esse ponto, mas ainda não o li nas respostas (embora todas as outras respostas sejam ótimas).

A implantação de processadores em equipamentos de hardware também reduz a carga de trabalho de seu processador central, que é sua CPU na placa-mãe.

Pense em um computador com uma única CPU que tenha que fazer todo trabalho que precisa ser feito. Controlar a memória, controlar o barramento, gerenciar cálculos específicos do disco rígido (girar a unidade, acessar, magnitude para gravar, ler, etc.)

Se tudo precisar ser feito pela sua CPU, não sobra muito tempo para suas tarefas reais.

    
por 20.08.2014 / 10:20
9

Vamos começar com o óbvio - esses "processadores" sempre estiveram lá em algum nível. Com as unidades mais antigas, elas estavam em placas controladoras, e com qualquer coisa que se aproximasse dos discos rígidos modernos, eles tinham controladores de disco < - a designação "IDE" para drives pata refere-se ao fato de a eletrônica estar a bordo, em vez de ter um cartão separado.

Embora tradicionalmente estes tenham sido micro-controladores, o meu ssd - um samsung 840 tem um processador baseado no braço três núcleos . Esses chips fazem coisas como wear leveling, manipulação de várias traduções internas (como converter comandos ATA ou SCSI para algo que a eletrônica do drive gera), e dois fatores - que hardware é um muito mais complicado do que costumava ser e os processadores são mais baratos e mais rápidos do que costumavam ser, faz sentido introduzir um núcleo de propósito geral numa unidade. No entanto, sim, esses processadores sempre estiveram lá.

Com roteadores, eles sempre tinham mips ou núcleos de braço - eles basicamente precisam do poder de executar um servidor da Web, roteamento e assim por diante. Muitas unidades conectadas à rede usam núcleos semelhantes ou melhores para lidar com coisas como o smb ou a página de administração.

Por muitos anos, os teclados tinham os mesmos processadores M68K que você encontraria em muitos computadores antigos, e há mouses com núcleos de braço para lidar com coisas como iluminação sofisticada e respostas cada vez mais rápidas.

    
por 20.08.2014 / 15:30
5

Also, routers now have processors, too. Why is that necessary? I guess it sort of makes sense - some logic needs to happen for the packets to be read in to know which ports to send them out on, but why did old routers not need them?

Os roteadores sempre tiveram um processador. Os dois roteadores originais eram softwares rodando em PDP-11s (sim, o sucessor da máquina na qual o Unix foi originalmente escrito). Um foi desenvolvido em Stanford e o outro no MIT. O roteador de Stanford foi posteriormente licenciado para uma pequena start-up chamada Cisco Systems. A Cisco reempacotou computadores PDP em gabinetes personalizados, inseriu um rótulo "Cisco" e os vendeu como roteadores.

Então é isso que os roteadores antigos usavam - processadores.

Eu me lembro de ler uma entrevista de um dos fundadores da Cisco que disse algo como: "essa é a vantagem de vender software como caixas de metal - você não precisa convencer as pessoas a não passar cópias delas para suas amigos". Meu google-fu me falha hoje, então não consigo encontrar a cotação real. Aqueles eram os dias antes de um certo fundador de uma pequena empresa chamada Microsoft convencer as pessoas de que eles deveriam pagar pelo software (naquela época era uma versão inicial do Basic).

    
por 22.08.2014 / 10:55
4

Todo o equipamento semi-autônomo desde o nascimento da revolução dos computadores tem algum tipo de "Processador", até agora nunca foi realmente sinalizado como tal.

O que você vê aqui é a corrupção contínua e meias verdades que estão espalhadas por nossa sociedade por agências de marketing mais zelosas, onde as pessoas de vendas são encorajadas cada vez mais e feitas para acreditar que são as estrelas do show, simplesmente porque são a pessoa está fazendo os lucros.

O fato da questão é esta no entanto, qualquer coisa que tenha que executar um conjunto de tarefas onde a próxima iteração de um processo pode ser diferente da iteração anterior, deve ter algum tipo de intérprete que possa dar sentido às instruções dispositivo é dado, e depois reagir a essas instruções de alguma forma.

De volta às névoas do tempo, terminologia como "Controladores", onde a norma, mas estes ainda se resumem à mesma coisa.

Tomemos por exemplo um "disco rígido IDE, com o seu controlador IDE integrado", enquanto este não é um processador no mesmo sentido em que você pensa em uma CPU na placa principal do seu computador, ela nunca é a menos ainda uma forma de CPU.

O PC host envia "OP Codes" (abreviação de códigos de operação) através do barramento (PCI, ISA, MCI, PCIe ou qualquer outro) para o controlador de drives, o controlador lê este código e todos os dados fornecidos e transforma-os em operações físicas que fazem com que a unidade mova as cabeças para o local correto e leia os dados solicitados.

Os roteadores têm um histórico ainda maior, a Cisco criou equipamentos de rede agora durante a maior parte dos últimos 50 anos ou mais, e cada um desses dispositivos teve um controlador / CPU personalizado neles durante todo esse tempo. Esta CPU foi projetada pela Cisco, para a Cisco expressamente com o propósito de programar e controlar toda a sua gama ou Roteadores & Switches.

Placas gráficas são outra coisa, você ouve as pessoas bandarem o termo "GPU" por aí como se fosse algo místico que só faz gráficos. Não, é um processador de algoritmo matemático maciçamente paralelo, eu terminei de fazer a edição técnica em um livro sobre Nvidia CUDA, e o que eu aprendi sobre GPUs da Nvidia foi bastante surpreendente, essas coisas são do próprio processador, processadores que são projetado para fazer um conjunto especializado de trabalhos, mas eles ainda são semi-inteligentes e capazes de muitos tipos diferentes de operação.

Como já foi apontado, o Netgear Readynas é na verdade mais um PC completo por si só. Ele é especialmente projetado para funcionar apenas como um dispositivo de armazenamento remoto.

Se você quisesse, não haveria nada que o impedisse de reprogramar o dispositivo Netgear com um novo software e fazê-lo funcionar perfeitamente como servidor web, servidor de banco de dados ou até mesmo um pequeno servidor de desenvolvimento Linux. (Uma pesquisa rápida mostrará mais do que um punhado de projetos destinados a fazer uma coisa dessas com unidades NAS)

Em termos de processador, você pode se surpreender ao saber que não são apenas discos rígidos que têm "processadores" nesses dias, experimente este pequeno experimento.

Entre na sua cozinha e veja quantas CPUs você pode contar.

Estou disposto a apostar que o seu Frigorífico / Freezer, Máquina de Lavar Roupa, Máquina de lavar louça, Forno e Microondas (pelo menos) têm algum tipo de Processador, pode não ser um Intel Core i7, mas ainda assim um processador, e ele é projetado para sentar-se tranquilamente, interpretando instruções enviadas a ele por outros circuitos elétricos / digitais que depois se transformam nas operações físicas que você vê.

Então, qual é a definição de um processador?

Bem, é um pouco difícil de definir atualmente, mas em geral a definição de um "Processador" é algo nos moldes de "Qualquer unidade autônoma, que é capaz de agir em entradas externas em uma semi maneira inteligente, e produzindo um conjunto conhecido de saídas derivadas dessas entradas "

Portanto, qualquer unidade independente, circuito, chip ou máquina autônoma que possa efetuar uma manifestação física de algum processo conhecido com base em um conjunto de entradas pré-definidas pode, em seu sentido mais básico e genérico, ser considerado um processador de alguns descrição.

    
por 20.08.2014 / 15:39
4

Embora os discos rígidos e os cartões de mídia flash nem sempre tenham incluído os processadores, seu design está sujeito a um princípio bastante simples: algo com um processador precisa saber o que é necessário para armazenar e recuperar dados. Se um dispositivo de armazenamento não contiver um processador, mas estiver conectado a algo que tenha, o hardware deverá permitir que as informações sejam armazenadas e recuperadas usando a sequência exata de etapas esperada pelo dispositivo conectado. Mesmo que armazenar e recuperar informações de alguma outra forma possa ser mais eficiente, talvez não haja maneira de o sistema conectado saber disso.

Como exemplo, a maioria dos discos rígidos funciona magnetizando cada parte do disco em uma das duas direções. Se um "L" representa magnetização em uma direção por um determinado período de tempo e um "R" representa magnetização na outra por esse mesmo período de tempo, tentando armazenar dados diretamente usando "L" para representar um "1" e "1" R "representar um" 0 "seria muito pouco confiável por causa de dois fatores:

  1. Uma string longa de uns ou zeros representaria uma longa string de Ls ou Rs, que por sua vez pode ser mal interpretada como uma string levemente maior ou menor. Por exemplo, se o motor da unidade estiver rodando 5% mais devagar quando os dados são lidos do que quando foram gravados, o que foi escrito como uma string de 20 L pode ser interpretado incorretamente como uma string de 21 Ls.

  2. Duas strings de Ls separadas por um pequeno número de Rs podem se espalhar nessa pequena string de Rs e "devorar". Da mesma forma, duas cadeias de Rs separadas por um pequeno número de Ls.

Devido a esses fatores, as unidades geralmente precisam codificar informações em execuções de Ls e Rs cujo comprimento fica entre um máximo e um mínimo; os valores ideais para o comprimento máximo e mínimo podem variar dependendo da qualidade da eletrônica, do motor, da cabeça e da mídia. Além disso, como as faixas externas de um disco são maiores que as faixas internas, elas podem armazenar trilhas mais curtas de Ls e Rs do que as faixas externas.

Para que as informações sejam armazenadas em uma unidade, elas devem estar conectadas a algo que saiba como converter dados em strings de Ls e Rs que a mídia poderá conter. Se o ato de converter Ls e Rs fosse de responsabilidade de um controlador separado da própria unidade, uma unidade precisaria usar apenas formatos que seriam compreendidos por qualquer controlador ao qual ela pudesse estar conectada. Mover o controlador para a montagem da unidade alivia esse problema: se cada fabricante envia uma unidade com um controlador que possa entender como ele armazena dados, ele não precisará se preocupar se outros controladores entenderiam esses dados, já que as informações só serão armazenados e recuperados pelo controlador contido no conjunto do inversor.

    
por 21.08.2014 / 01:27
3

Como as pessoas já explicaram, muitos periféricos / dispositivos sempre tiveram processadores para fornecer sua funcionalidade principal e até mesmo roteadores relativamente básicos são servidores pequenos (o aspecto mais visível para o usuário final seriam os assistentes de configuração baseados na web, você precisa de uma pilha IP, um servidor web, etc. e um processador para executá-los).

Mas você também deve perceber que um NAS moderno é ainda mais do que isso, geralmente você pode acessá-lo através de um navegador da Web e terá acesso a uma interface gráfica com muitos aplicativos, um sistema de gerenciamento de pacotes de software e vários serviços. arquivos de mídia, executar atualizações automáticas, ler outros dispositivos de armazenamento conectados a uma porta USB etc., de modo que quase um ambiente de trabalho completo (embora alguns trabalhos para a GUI sejam compartilhados com a máquina cliente, obviamente).

    
por 20.08.2014 / 11:52
2

Todos os discos rígidos têm sempre processadores. Todos os roteadores têm sempre processadores.

Sua placa gráfica tem um processador. Sempre tem. Sua placa de interface de rede possui um processador. Sempre tem. Sua impressora tem um processador, seu teclado, seu mouse, e assim por diante. Eu seria duramente pressionado para pensar em um dispositivo que está conectado ao seu computador que não tem algum tipo de processador.

Eles agora estão sendo anunciados mais porque seu desempenho é mais importante, porque pedimos a esses dispositivos que façam mais e mais.

    
por 22.08.2014 / 18:20
2

Não há virtualmente nenhum dispositivo em eletrônica de computador que seja tão burro que possa desempenhar seu papel sem um processador - no mínimo, virtualmente tudo tem que codificar um sinal para dentro ou para fora em algum momento. Se esse sinal variar, deve haver regras de como isso varia e um processador impõe essas regras.

Indo um pouco mais longe da questão, mas reforçando o tema tudo tem processadores , nos anos 80 eu era um administrador de sistemas de alguns mainframes VAX / VMS.

Tivemos uma impressora de bandas muito rápida (barulhenta) que carregava um monte de martelos que atingiam uma banda de alta velocidade e alta tensão. Eu acho que foi uma impressora de 600 linhas por minuto. Isso é completamente formado por 132 linhas de caracteres, não por uma linha de pontos.

Para controlar o timing de como os martelos atingiram a banda, ela tinha alguns circuitos eletrônicos simples. Isso precisava de um programa diferente dependendo da banda - você poderia ter bandas ainda mais rápidas que só tinham letras maiúsculas (vários conjuntos de ASCII em uma banda).

O programa para esse processador foi armazenado em uma fita de papel que também foi lida em um loop contínuo, toda vez que a impressora foi ligada (sim, foi deixada em execução na maior parte do tempo).

Eu só descobri quando minha operadora ficou entusiasmada limpando a impressora e encontrando a fita de papel. Felizmente, ele percebeu que não era apenas um pedaço de papel perdido e não tentou removê-lo.

    
por 24.08.2014 / 11:57
2

What does it mean when hard drives have a processor on the hard drive?

Isso significa que a unidade tem uma pequena CPU. Geralmente, qualquer dispositivo que tenha uma CPU terá firmware.

How does it work, and what benefit does it have?

periféricos de computador são complexos. Por exemplo, o ato de ler e gravar dados em uma unidade de disquete está bastante envolvido. Você precisa manipular o hardware que move a cabeça da unidade, depois procurar cabeçalhos de setor, descobrir se os dados que chegam em uma linha de leitura estão fazendo algum sentido de acordo com um protocolo, etc.

Vamos dar um exemplo simplificado de leitura de uma unidade de disquete: Provavelmente, a maneira mais rudimentar de uma CPU se comunicar com o mundo externo é através de portas de E / S. Essas portas estão conectadas a linhas na placa-mãe ou soquetes - se a eletricidade estiver passando por uma linha, um 1 é visível para a CPU na porta quando for lida, se não, então um 0 é visível para a CPU. Da mesma forma, para escrever, a CPU pode gravar um 1 em uma porta para fazer a eletricidade passar pela linha ou configurá-la para 0 para impedir isso.

Portanto, para uma unidade de disquete, digamos que você tenha uma linha conectada ao cabeçote de leitura / gravação do disquete. Para ler os dados, você precisa esperar por uma "inversão de fluxo" - basicamente uma mudança na energia magnética que faria com que a linha passasse de 0 para 1 ou 1 para 0. Você precisaria saber quanto tempo até você detecta uma segunda inversão de fluxo, e continua fazendo isso até ter todos os bits em seu setor e colocar essas durações medidas juntas para recriar os dados. Isso nem entra em coisas como mover a cabeça da unidade ou esperar que o motor acione uma velocidade normal para que suas durações não sejam confusas, e explicar o fato de que não há dois motores que sejam exatamente os mesmos, então você precisa para ser flexível em suas medições de alguma forma.

Espero que pareça complicado, porque é.

Então, com certeza, você pode programar uma CPU normal para fazer isso, mas como é muito sensível ao tempo, a CPU do seu computador não pode fazer muito mais enquanto isso está acontecendo. Computadores antigos que realmente faziam algo assim em todo o CPU / software para economizar dinheiro, como o antigo Apple IIe, não podiam fazer mais nada enquanto liam / gravavam no disco por esse motivo.

Colocando uma pequena CPU na unidade e tendo um controlador na placa-mãe que é realmente apenas um barramento de comunicação, sua CPU pode executar outros programas, obter / enviar dados para a unidade usando o barramento e descarregar a maior parte do trabalho físico de baixo nível para o próprio drive. Além disso, à medida que a tecnologia melhora, a programação de baixo nível para manuseá-la pode permanecer na unidade e não há necessidade de alterar programas no computador para trabalhar com diferentes formatos de unidade interna.

Em relação aos roteadores, a função de roteamento de baixo nível não é difícil de fazer em hardware, e muitos roteadores corporativos fazem isso, mas são coisas como firewall, redirecionamento de portas, controle de acesso e interface web ou console que são complexos o suficiente para precisar de uma CPU para fazer isso.

I'm surprised, because the von Neumann machine model doesn't include processors on storage

Não há nada no modelo de von Neumann que diga que quaisquer periféricos não podem ser máquinas de von Neumann. O que torna um periférico um periférico é o fato de que a CPU pode enviar comandos sobre algum tipo de barramento ou outro mecanismo de E / S e obter resultados de volta.

    
por 26.08.2014 / 21:41