introdução a um computador simples

Propaganda
INTRODUÇÃO A UM COMPUTADOR SIMPLES
AULA 06 – Arquitetura de Computadores
Gil Eduardo de Andrade
O conteúdo deste documento é baseado no livro “Princípios Básicos de Arquitetura e
Organização de Computadores” – Linda Null e Julia Labur.
Introdução – Organização e Componentes básicos da UCP
Pelos estudos efetuados anteriormente sabemos que os dados manipulados dentro de um
computador são codificados em números binários. Vimos ainda que a memória é utilizada para
armazenar as instruções dos programas (também em binário).
O programa deve ser executado e os dados processados corretamente, para isso, a
Unidade Central de Processamento é responsável por carregar instruções de programas,
decodificar cada instrução e realizar a sequência indicada de operações sobre os dados corretos.
Todos os computadores possuem uma UCP que pode ser dividida em duas partes. A
primeira é o caminho de dados (datapath), que é uma rede de unidades de armazenamento
(registradores) e de unidades aritméticas e lógica (para executar diversas operações sobre dados)
que estão conectados por barramentos (capazes de mover dados de um lugar para o outro) em
que o ritmo é controlado por relógio.
A segunda parte da UCP é a unidade de controle, módulo responsável por sequenciar
operações e assegurar que os dados corretos estão onde eles devem estar no momento correto.
Juntos estes componentes realizam as tarefas da UCP: carregar instruções, decodificá-las e
realizar a sequência indicada de operações.
Os Registradores
São usados para armazenamento de uma grande variedade de dados, tais como endereços
de memória, contadores de programa ou dados necessários para a execução do mesmo. Mais
simplesmente o resgistrador é um dispositivo de hardware que armazena dados binários. Tem
como grande vantagem estarem localizados no processador, permitindo que a informação seja
acessada de forma muito rápida.
Circuitos lógicos denominados flip-flops são utilizados para implementação de
registradores. Um flip-flop “D”, por exemplo, equivale a um registrador de apenas 1 bit, e, assim,
com uma coleção deles é possível construir registradores para armazenar vários bits.
Registradores devem ser controlados por um relógio para trabalharem de forma síncrona, a cada
pulso do relógio, a entrada vai para o registrador, sendo armazenada, como mostra o circuito
abaixo. O dado só será alterado novamente quando houver um novo pulso do relógio.
Figura 01: Estrutura de um flip-flop “D”.
Em sistemas de computação modernos existem muitos tipos de registradores
especializados: registradores para armazenamento de informação, registradores para comparar
valores, registradores temporários (armazenam valores temporários) e registradores de contagem.
A maioria dos computadores possui conjuntos de registradores, e cada conjunto é usado
de uma maneira específica. Como exemplo podemos citar a arquitetura Pentium que possui um
conjunto de registradores de dados e um conjunto de registradores de endereços.
A ULA – Unidade Lógica Aritmética
A unidade lógica aritmética se encarrega das operações lógicas (tais como comparações)
e das operações aritméticas (tais como adição ou multiplicação) requeridas durante a execução
do programa. Normalmente uma ULA possui duas entradas e uma saída de dados. A ULA sabe
quais operações deve efetuar porque é controlada por sinais da unidade de controle.
A Unidade de Controle (UC)
A unidade de controle é quem “policia” ou “gerencia” a UCP. Ela monitora a execução
de todas as instruções e a transferência de todas as informações. A UCP extrai instruções da
memória, as decodifica, assegura que os dados estão no lugar certo e no momento correto,
informa a ULA quais registradores usar, atende as interrupções e ativa o circuito apropriado da
ULA para executar a operação desejada. A unidade de controle utiliza um contador de programa
para encontrar a próxima instrução para execução.
O Barramento
A UCP se comunica com os outros componentes via barramento. Um barramento é um
conjunto de fios que atuam como um caminho de dados comum, porém compartilhado, para
conectar vários subsistemas dentro do computador.
Barramentos têm baixo custo, mas são bem versáteis e facilitam a conexão de um novo
dispositivo com o sistema. Em um dado instante apenas um dispositivo (seja ULA, a memória ou
qualquer outro componente) pode usar o barramento, e por esse compartilhamento muitas vezes
temos como resultado o congestionamento de comunicações. A velocidade do barramento é
afetada pelo seu comprimento. Dispositivos também podem ser divididos nas categorias mestre
(master) e escravo (slave), onde o dispositivo mestre inicia as ações e o dispositivo escravo
responde a requisições de um mestre.
Abaixo são apresentados tipos de barramento: o ponto-a-ponto que conecta dois
dispositivos específicos e o caminho comum que conecta diversos dispositivos, requerendo que
estes dispositivos compartilhem o barramento, chamado de multiponto.
O barramento é formado por linhas de dados que são utilizadas para transferência dos
dados reais que devem ser movidos, pelas linhas de controle que informam qual dispositivo tem
permissão para usar o barramento e qual sua finalidade do uso, pelas linhas de endereços que
indicam a posição em que o dado deve ser lido ou escrito e as linhas de energia que fornecem a
energia elétrica necessária para o seu funcionamento.
Figura 02: Barramentos ponto-a-ponto
Figura 03: Barramentos compartilhados.
Tipos de transações típicas em barramentos incluem enviar um endereço (para leitura ou
escrita), transferir dados da memória para um registrador (leitura de memória) e transferir dados
de um registrador para memória (escrita na memória). Além disso, barramentos são usados para
leituras e escritas de dispositivos de E/S ou periféricos.
Figura 04: Componentes de um barramento.
Tipos de Barramentos
Existem diferentes tipos de barramentos, de acordo com as informações que transportam
e os dispositivos que os usam. Os Barramentos processador-memória são curtos e de alta
velocidade, fortemente associados a um sistema de memória na máquina para maximizar a
largura de banda (transferência de dados). Os Barramentos de E/S geralmente são mais longos
que os de processador-memória e admitem muito mais tipos de dispositivos com largura de
banda variáveis. Os Barramentos externos ou de expansão que conectam dispositivos externos,
periféricos e portas de E/S ao restante do computador.
Relógios
Os computadores possuem um relógio interno que regula quão rapidamente as instruções
podem ser executadas. Este relógio também tem a tarefa de sincronizar todos os componentes do
sistema. A Unidade Central de Processamento (UCP) utiliza este relógio para regular o seu
progresso. A frequência do relógio (pulsos de clock) é medida em megahertz (Mhz) ou gigahertz
(Ghz).
Parece óbvio concluir que quanto maior a velocidade do relógio maior será a velocidade
do computador, entretanto há um limite para isso, visto que quando o relógio pulsa novos dados
são carregados nos registradores, e sua saída vai mudar, esses valores devem ser propagados ao
restante dos circuitos da máquina, sendo assim o ciclo do relógio deve ser suficientemente longo
para permitir que essas alterações alcancem o restante dos circuitos.
Quando falamos em overclocking estamos nos referindo a tentativa de melhorar a
performance do sistema através da alteração da velocidade do relógio da UCP fazendo com que
ela trabalhe acima do limite superior especificado pelo fabricante. Embora isso possa aumentar o
rendimento do sistema, pode também criar falhas de temporização nele, ou ainda pior,
superaquecer a UCP.
O Subsistema de Entrada e Saída
Dispositivos de Entrada e Saída nos permitem a comunicação com o sistema de
computação. E/S é a transferência de dados entre a memória primária e os diversos periféricos de
E/S. Dispositivo de entrada e saída tais como teclados, mouses, leitoras de cartões, scanners,
sistemas de reconhecimento de voz e telas sensíveis ao toque nos permitem fornecer dados ao
computador. Já dispositivos de saída como monitores, impressoras e alto-falantes nos permitem
obter informações do computador.
Estes dispositivos não são conectados diretamente a uma UCP, ao invés disso há uma
interface que trata a transferência de dados. A comunicação acontece através do mapeamento de
dispositivos de entrada e saída na memória do computador, de acordo com a escrita/leitura dessa
área o computador e o dispositivos de E/S se comunicam. As interrupções desempenham um
papel importante na E/S, porque elas são uma maneira eficiente de notificar a UCP sobre qual
entrada ou saída está disponível para uso.
Interrupções
Alguns eventos são necessário para alterar o fluxo normal de execução no sistema, a este
evento damos o nome de interrupção. Uma interrupção pode ser disparada por diversas razões,
incluindo:
→ Requisições de E/S
→ Erros Aritméticos (divisões por 0)
→ Mau funcionamento do hardware
→ Pontos de parada definidos pelo usuário (depuração de programas)
→ Instruções Inválidas (geralmente, problemas com ponteiros)
As ações executadas por cada um desses tipos de interrupções (chamadas de tratamento
de interrupções) são muito diferentes. Informar a UCP, por exemplo, que uma requisição de E/S
terminou é muito diferente de terminar um programa devido uma divisão por 0, porém ambas as
a ações são manipuladas por interrupções porque elas exigem uma mudança do fluxo normal de
execução do programa.
Download