Registrador (informática)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

O registrador (português brasileiro) ou registo (português europeu) de uma CPU (unidade central de processamento) é uma unidade de memória capaz de armazenar n bits. Os registradores estão no topo da hierarquia de memória, sendo assim, são o meio mais rápido e caro de se armazenar um dado.

Lembrando que os registradores são circuitos digitais capazes de armazenar e deslocar informações binárias, e são tipicamente usados como um dispositivo de armazenamento temporário. [1]

São utilizados na execução de programas de computadores, disponibilizando um local para armazenar dados. Na maioria dos computadores modernos, quando da execução das instruções de um programa, os dados são movidos da memória principal para os registradores. Então, as instruções que utilizam estes dados são executadas pelo processador e, finalmente, os dados são movidos de volta para a memória principal.

Registradores Gerais[editar | editar código-fonte]

Nos dias de hoje os computadores necessitam de muito mais espaço para armazenar as informações em todos os tipos de memória, a partir desse momento,as informações que são armazenadas por conjuntos de dígitos binários nos sistemas digitais internos do computador também tem que ser maior, ocupando um espaço de 32, 64 ou 128 bits, sendo que em períodos mais antigos essa memória dos conjuntos de dígitos binários possuiam no máximo 16 bits.

Os sistemas digitais necessitam de comunicação com a parte de hardware do computador, para que seja armazenado n conjuntos de dígitos binários. Dentro dos sistemas digitais temos os circuitos digitais capazes de realizar o armazenamento de informações sendo eles os registradores.

O nome utilizado para armazenar dados em um registrador é carregar, embora as palavras escrever e armazenar também sejam usadas. A ação oposta a carregar um registrador é conhecida como ler os conteúdos de um registrador. A leitura consiste simplesmente em se conectar às saídas do registrador. Assim percebe-se que a leitura não está sincronizada com o relógio, além disso não remove os bits do registrador nem os modifica de nenhum modo.[2]

Exemplos de registadores gerais[editar | editar código-fonte]

  • Registrador acumulador (EAX): registador acumulador expandido de arquiteturas 8086
  • Registradores de base (EBX): registador de base estendido de arquiteturas 8086
  • Registrador contador (ECX): registador de laços de repetição em arquiteturas 8086
  • Registradores de dados (EDX): registador estendido de "contas" com palavras de arquiteturas 8086

Registrador acumulador[editar | editar código-fonte]

Realiza operações aritméticas, acessa portas de entrada e saída, faz chamadas de interrupções.[3]

Registradores de base[editar | editar código-fonte]

Registradores de base são registradores que recebem o endereço-base de um dado objeto. Este tipo de registrador oferece aos programadores um subterfúgio para a criação de "ponteiros" (variáveis, contendo o caminho para um endereço no software). Imagine-se da seguinte forma:

Um programa que, tendo dois números, recebe de um outro programa outros valores. Então, o que se faz é criar "atalhos" (path) que indicam qual valor será usado. Assim, havendo somente uma imagem do valor, podem ser usados os valores, sem alterá-los diretamente.

Registrador contador[editar | editar código-fonte]

Conta todas as repetições e deslocamentos, podendo ser atribuido um valor de interrupção.[3]

Registradores de dados[editar | editar código-fonte]

Registradores de dados são utilizados para armazenar valores, tais como inteiros e pontos flutuante. Em algumas UCPs (CPUs, em inglês) antigas e mais baratas, é um registrador de dados especial, conhecido como acumulador, e é utilizado implicitamente em muitas operações. O acumulador funciona como um recipiente onde são colocados e somados valores de cálculos e comparações.

Registrador de carga paralela[editar | editar código-fonte]

O tipo mais simples de registrador é um conjunto de flip-flops que são carregados a cada ciclo de relógio. Este registrador básico será útil como registrador de estado em um bloco de controle, onde são carregados em todos os ciclos do relógio. Porém, para algumas aplicações queremos controlar se dentro desse ciclo do relógio o registrador vai ser carregado ou apenas manter o valor anterior. Assim, utilizaremos um registrador de carga paralela. No qual terá uma linha de carga que controlará se o registrador é carregado com entradas externas, com todas elas carregadas em paralelo.

A entrada externa utilizada para obter o controle sobre a carga do registrador pode ser um multiplexador 2X1, que será colocado na frente de cada flip-flop, no caso de um registrador de 4 bits.

Registrador de deslocamento[editar | editar código-fonte]

Pode-se também deslocar os conteúdos de um registrador para a direita ou para a esquerda. Deslocar a direita significa mover um bit armazenado (em um flip-flop) para o flip-flop que lhe está à direita. Por exemplo: Se um registrador de quatro bits armazena originalmente 1101, então o deslocamento à direita resultará em 0110, ou seja, perdemos o bit que estava mais à direita (1), e colocamos um 0 no bit à esquerda. Basicamento temos 4 tipos desses registradores dependendo da forma como entra e como sai a informação dos mesmos, sendo eles: [4]

  • SISO: entrada em série (serial) e uma saída em série (serial).
  • PISO: entrada em paralelo e uma saída em série (serial).
  • SIPO: entrada em série (serial) e uma saída em paralelo.
  • PIPO: entrada paralela e uma saída paralela.

Registrador circular[editar | editar código-fonte]

A partir do momento que tem-se um registrador de deslocamento, pode-se obter o registrador circular, que nada mais é que uma variação do registrador de deslocamento. Essa variação consiste em uma adição de rotação no registrador, ou seja, o bit que sai, volta. Assim, o bit que estiver mais à direita do registrador será automaticamente deslocado para o bit que estiver mais à esquerda. Este registrador precisa de algum recurso para que possa alocar alguma informação no registrador, sendo este recurso por deslocamento ou carga paralela.

Considerações[editar | editar código-fonte]

Apesar dos registradores apresentarem um bom desempenho no quesito rapidez, possuem uma capacidade de armazenamento baixíssima comparada a outros circuitos de armazenamento, como é o caso da memória secundária.

Referências

  1. Floyd, Thomas L. Sistemas digitais: fundamentos e aplicações . 9 ed - Porto Alegre: Bookman,2007.
  2. Vahid, Frank. Sistemas digitais: projeto,otimização e HDLs - Porto Alegre: Artmed, 2008.
  3. a b Informática da Aldeia.
  4. Lição 11 - COMO FUNCIONAM OS REGISTRADORES DE DESLOCAMENTO (SHIFT-REGISTERS).