Arquitetura de Computadores: Conceitos Fundamentais

Classificado em Computação

Escrito em em português com um tamanho de 13,64 KB.

O conceito de programa armazenado foi uma das ideias fundamentais apresentadas por Von Neumann que permitiu a flexibilidade do computador. Os dados e os programas são armazenados na memória, em regiões distintas, sendo que um programa é composto por uma coleção de instruções que são lidas e executadas em sequência. Os programas são formados, essencialmente, por comandos que são lidas sequencialmente da memória, uma após a outra. A memória cache surgiu quando as memórias não eram mais capazes de acompanhar o processador em velocidade, fazendo com que muitas vezes ele tivesse que ficar "esperando" os dados serem liberados pela memória RAM para poder concluir suas tarefas, perdendo muito em desempenho. Para solucionar este problema, começou a ser usada a memória cache, um tipo ultra-rápido de memória que serve para armazenar os dados mais frequentemente usados pelo processador, evitando na maioria das vezes que ele tenha que recorrer a memória RAM que é mais lenta. Sem ela, o desempenho do sistema ficará limitado à velocidade da memória, podendo cair em até 95%. São usados dois tipos de cache, chamados de cache primário, ou cache L1, e cache secundário, ou cache L2. L1 é embutido no próprio processador e é rápido o bastante para acompanhá-lo em velocidade. Sempre que um novo processador é desenvolvido, é preciso desenvolver também um tipo mais rápido de memória cache para acompanhá-lo. Como este tipo de memória é extremamente caro (chega a ser algumas centenas de vezes mais cara que a memória RAM convencional) usamos apenas uma pequena quantidade dela. Para complementar, usamos também um tipo um pouco mais lento de memória cache na forma do cache secundário, que por ser muito mais barato, permite que seja usada uma

quantidade muito maior. Barramento é um caminho comum pelo qual os dados trafegam dentro do computador, usado para comunicações e pode ser estabelecido entre dois ou mais elementos do computador. O tamanho determina quantos dados podem ser transmitidos em uma única vez.b de 32 bits transmite 32 bits por vez. A grande vantagem do uso do barramento é ser um padrão de comunicação entre o dispositivo e o processador. A principal desvantagem dos barramentos em geral é que tem uma largura de banda fixa que precisa ser compartilhada por todos os dispositivos que estão sobre ele. Podem ser classificados em Unidirecionais e bidirecionais, que podem transmitir dados somente em uma direção (linha simplex), ou nas duas, em uma direção por vez, half-duplex, ou em ambas as direções simultaneamente, fullduplex. Um barramento que transporta sinais de uma única origem específica para um único destino específico é identificado como barramento ponto a ponto. (o cabo que conecta a porta USB em um computador pessoal a uma impressora). Multiponto pode ser utilizado para interconectar diversos pontos. Conhecido como broadcast, pois os sinais produzidos por uma origem no barramento são “difundidos” para cada um dos demais pontos nobarramento da mesma maneira que uma estação de rádio transmite seu sinal a qualquer um que o sintonize. Os barramentos podem ser caracterizados por três propriedades distintas: Capacidade direcional para transmissão de dados. Modo de interconexão aos componentes. Modo de transmissão de

dados. E três funções: Barramento de endereços : unidirecional por onde trafegam os endereços de memória ou dispositivos. Só o processador fornece endereços. Barramento de dados. Bidirecional - Por onde trafegam os dados do processador para memória e dispositivos e vice-versa processador envia e recebe. Barramento de controle. Trafegam os sinais de controle do microprocessador para memória e dispositivos, e vice-versa. indica que o processador quer executar determinada ação ou receber um sinal indicando

determinado estado. Paralelo existe uma linha individual para cada bit de dados, endereço e controle sendo utilizada. Caracterizado por sua alta capacidade de vazão porque todos os bits de uma palavra de dados são transferidos de uma vez. são caros e consomem espaço. Os conectores utilizados também são caros devido ao grande número de pinos envolvido. Os externos, tais como os cabos de impressora, também são caros graças ao grande número de linhas exigido. Os barramentos paralelos estão sujeitos à interferência elétrica gerada por rádio entre as diferentes linhas que operam a altas taxas de transferência de dados. Quanto mais alta a taxa de dados, pior a interferência, que acaba limitando a velocidade na qual o barramento paralelo pode operar. Embora a taxa de transferência de um barramento serial possa parecer inferior à de um barramento paralelo,as limitações de um barramento paralelo tornam a transmissão serial atraente em muitas circunstâncias. Serial: os dados são transferidos sequencialmente, um bit por vez.Embora a taxa de transferência de um serial possa parecer inferior à de um paralelo, o paralelo tem muitas limitações. Seriais são preferidos atualmente para muitas aplicaçõesque requerem altas taxas de transferência de dados. possui um único par de linhas de dados e talvez algumas linhas de controle. Para a comunicação bidirecional simultânea, um segundo par de linhas de dados pode ser adicionado, não existem linhas de endereço individuais. são frequentemente configurados para conexão ponto a ponto, nenhum endereçamento é necessário nesse caso. Caso o endereçamento seja necessário em uma aplicação de barramento serial, o endereço pode ser multiplexado com os dados. Isto significa que a mesma linha é utilizada tanto para endereço quanto para dados, em momentos diferentes. • Em sua forma mais simples, o barramento serial pode ser reduzido a um único par de linhas de dados, utilizado para dados, controle e endereçamento. O firewire é um barramento serial padrão externamente rápido que suporta taxas de

transferências de dados de até 400 MBps. Um único ponto firewire pode ser usado para conectar até 63 dispositivos externos. Além da alta velocidade, o FireWire também suporta dados em tempo real, transmitindo dados com uma taxa garantida. Isto é ideal para dispositivos que necessitam altas taxas de transferências em tempo real, tal como dispositivos de vídeo. Embora muito rápido, o FireWire é muito caro.Pipelining amplia a estratégia de dividir a execução da instrução em duas partes. Busca e execução. Em vez de dividir a execução da instrução em apenas duas partes, muitas vezes ela é dividida em muitas partes, cada uma manipulada por uma parte dedicada do hardware, e todas elas podem executar em paralelo. O estágio 1 busca a instrução na memória e a coloca em um buffer até que ela seja necessária. O estágio 2 decodifica a instrução, determina seu tipo e de quais operandos ela necessita. O estágio 3 localiza e busca os operandos, seja nos registradores, seja na memória. O estágio 4 é que realiza o trabalho de executar a instrução, normalmente fazendo os operandos passar pelo caminho de dados. Por fim, o estágio 5 escreve o resultado de volta no registrador adequado. Durante o ciclo 1, o estágio S1 está trabalhando na instrução 1, buscando-a na memória. No ciclo 2, o estágio S2 decodifica a instrução 1, enquanto o estágio S1 busca a instrução 2. Durante o ciclo 3, o estagio S3 busca os operandos para a instrução 1, o estágio S2 decodifica a instrução 2, e o estágio S1 busca a terceira instrução. Durante o ciclo 4, o estágio S4 executa a instrução 1, S3 busca os operandos para a instrução 2, S2 decodifica a instrução 3 e S1 busca a instrução 4. Por fim, durante o ciclo 5, S5 grava o resultado da instrução 1 e volta no registrador, enquanto os outros estágios trabalham nas instruções seguintes. CISC – Computador com um conjunto complexo de instruções usado pela Intel e AMD. Suporta mais instruções, no entanto a execução fica mais lenta. RISC – Computador com conjunto reduzido de instruções usada em processadores PowerPC suporta menos instruções executando com maior rapidez o conjunto de instruções combinadas.Registradores: pequena memória de alta velocidade usada para armazenar resultados temporários e para um certo controle de informações, cada um tem um tamanho e função

específico, podem ser lidos e escritos em alta velocidade porque são internos à CPU. Seu tamanho, modo de conexão e operações refletem a função específica que ele exerce e são manipulados diretamente pela unidade de controle durante a execução de instruções. Quando se refere aos “dados” em um registrador, podemos estar falando de um valor qualquer, uma instrução, ou um endereço de memória. utilizado de muitas maneiras diferentes. Podendo conter dados que estão sendo processadas, instruções que estão sendo executado, endereço de memória ou de E/S a ser acessado. Alguns servem a muitos

propósitos diferentes, enquanto outros são projetados para executar uma única tarefa especializada, A unidade de controle contém diversos registradores importantes. PC, IR, O Registrador de Endereço de Memória (MAR) guarda o endereço de uma posição de memória. Buffer de Memória (MBR) guarda um valor do dado que está sendo armazenado ou recuperado da posição de memória endereçada no momento pelo MAR. O contador

de programa (PC) indica a próxima instrução a ser buscada para execução. Registrador de instrução (IR) contém a instrução que está sendo executada no momento em questão.


Unidade de controle comanda e interpreta a execução de instruções. Ela o faz seguindo uma sequência de ações que correspondem ao ciclo de busca-decodificação-execução. A


maioria destas ações corresponde a recuperações de instruções da memória seguidas de transferências de dados ou endereços de uma parte da CPU para outra. A unidade de


controle determina a instrução específica a ser executada lendo o conteúdo do PC. Normalmente, as instruções são executadas sequencialmente. A sequência de instruções é


modificada executando-se instruções que alteram o conteúdo PC.


A Unidade Lógica e Aritmética (ULA) é aquela parte da CPU que realmente realiza operações lógicas e aritméticas sobre os dados. Todos os outros elementos do sistema de


computação (unidade de controle, registradores, memória, E/S) existem principalmente para trazer dados para a ULA processar, e depois levar os resultados de volta. Os dados


são apresentados à ULA em registradores, e os resultados de uma operação são armazenados nos registradores.


A CPU é o “cérebro” do computador. Sua função é executar programas armazenados na memória principal buscando suas instruções, examinando-as e então executando-as uma


após a outra. Os componentes são conectados por um barramento. Barramentos podem ser externos à CPU, conectando-a à memória e aos dispositivos de E/S, mas também


podem ser internos à CPU. A CPU é composta por várias partes distintas. A unidade de controle é responsável por buscar instruções na memória principal e determinar seu tipo. A


unidade lógica e aritmética efetua as operações para executar as instruções.


Registrador-Memória e Registrador-Registrador. Instruções Registrador-Memória permitem que palavras de memória sejam buscadas em registradores, onde podem ser usadas


como entradas da ULA em instruções subsequentes, por exemplo, tbm permitem que registradores voltem à memória para armazenagem. Registrador-Registrador típicas buscam


dois operandos nos registradores, traz os dois até os registradores de entrada da ULA, efetua alguma operação com eles e armazena o resultado em um dos registradores.


Complemento de 1: troca-se os bits. Complemento de 2, soma um bit. Somente ocorre estouro quando os dois operandos tiverem sinais iguais, e este sinal for diferente do sinal


obtido para o resultado. Se os dois operandos tiverem sinais diferentes, nunca ocorre estouro.Instruções de Máquina - Cada instrução precisa conter as informações exigidas pelo processador para execução. Código de operação: especifica a operação a ser realizada (por exemplo, ADD, E/S). A operação é especificada por um código binário, conhecido como código de operação, ou opcode. Referência à operando fonte: a operação pode envolver um ou mais operandos fontes, ou seja, operandos que são entradas para a operação. Referência à operando destino: a operação pode produzir um resultado. Referência à próxima instrução: isso diz ao processador onde buscar a próxima instrução após o término da execução desta instrução. Na maior parte dos casos, a próxima instrução a ser buscada vem imediatamente após a instrução corrente. Nesses casos, não existe uma referência explícita à próxima instrução. Quando uma referência explícita é necessária, então o endereço da memória precisa ser fornecido. Operandos fonte e destino podem estar em uma destas quatro áreas: Memória principal ou virtual: assim como as referências à próxima instrução, o endereço da memória principal ou virtual precisa ser fornecido. Registrador do processador: a instrução precisa conter o número do registrador desejado. Imediato: o valor do operando está contido em um campo na instrução sendo executada. Dispositivo de E/S: a instrução precisa especificar o módulo e o

ispositivo de E/S para a operação.

Entradas relacionadas: