Arquitetura dos Microprocessadores

Propaganda
Arquitetura dos Microprocessadores
Prof. Msc Eng. Getúlio Teruo Tateoki
Introdução
Do ponto de vista do programador, a Arquitetura de Computadores trata do
comportamento funcional de um sistema computacional (ex. tamanho de um tipo de dados – 32
bits para um inteiro) e a Organização de Computadores trata da estrutura interna que não é
visível para o programador (ex. freqüência do relógio ou tamanho da memória física). Existe um
conceito de níveis na arquitetura de computadores. A idéia básica é que existem muitos níveis
nos quais o computador pode ser considerado, do nível mais alto, onde o usuário executa
programas, ao nível mais baixo, que consiste de transistores e fios.[1]
Este trabalho tem por objetivo o conhecimento e o estudo da arquitetura básica de um
microprocessador hipotético tendo por base os microprocessadores Z8088 e Z80 da Zilog.
Histórico
Desde a invenção da escrita e do papel, um dos maiores problemas do homem era
saber utilizar com eficiência as informações gravadas, problemas estes que se persistiram até
ao advento dos microprocessadores. Basicamente, estes problemas eram:
1- Organização de catálogos ou fichas. Ex. Lista Telefônica, Catálogo de Clientes e
Fornecedores, etc.
2- Contabilidade. Ex. Senso demográfico, Saldo do Cliente, etc.
3- Consulta de um ponto ou localização geográfica. Ex. Cidade, Rios, etc.
Com a relação ao primeiro item, pode se notar que o procedimento a ser adotado, é o da
decisão, pois na prática se resume em uma sucessão de operações que devem ser decididas
segundo algum critério de ordem. No item dois, observa-se que devem der feitos milhares de
operações matemáticas e no três, a consulta de arquivo ou mapa.
Pode-se observar que as tarefas envolvidas nos dois primeiros itens são repetitivas, não
havendo nenhuma necessidade de qualquer criatividade para serem realizadas. Além disso, as
três tarefas envolvidas, podem ter um tempo de execução relativamente longo, fora a
possibilidade de erros na sua execução. Para sanar estes problemas ou pelo menos minimizalas ao máximo, a humanidade tem procurado soluções em alguma máquina que possa que
possa ordenar, calcular e executar uma infinidade de tarefas sem erros. Porém, dada à
Arquitetura de Microprocessadores
Página 1
diversidade das tarefas a ser executadas, seria necessário “ensinar” a máquina, de uma
maneira fácil, através de uma seqüência de operações repetitivas que devem obedecer a uma
operação lógica.
Assim sendo esta seqüência de comandos executadas pela máquina são denominados
PROGRAMA, que podem ser modificados com relativa facilidade tornando-a, pois, esta
máquina potente com alta flexibilidade. Porém, ainda há necessidade de solução de alguns
problemas como:
1- Realização de operações lógicas (maior que, menor que, etc.) e aritméticas;
2- Armazenamento de dados (para as operações acima) e seqüências de operações
(operações acima);
3- Execução de programas;
4- A obtenção dos dados e dos programas a partir de alguma ação do operador (teclado
por exemplo.)
5- A apresentação dos resultados como em algum display ou impressão em papel.
Estes problemas podem ser resolvidos separadamente e depois juntados para ser
construído uma máquina.
Realização das Operações Lógicas Aritméticas
As Operações Lógicas Discretas podem ser realizadas a nível físico utilizando portas
lógicas e implementadas com circuitos eletrônicos. Além da realização básica de dois números
binários, são também realizadas as suas comparações. Dá-se a denominação de Unidade
Lógica Aritmética (ULA) o bloco desde sistema que recebe nas entradas os operandos A e B, a
função de executar F, o resultado C (em se tratando de operação aritmética) ou K quando em
comparação (operação lógica). A figura 1, mostra uma ULA básica, com as flechas que
significam que podem ter mais de um único bit.
Figura 1 – ULA- Unidade Lógica Aritmética
Arquitetura de Microprocessadores
Página 2
Armazenamento de Dados e Programas
Suponhamos que nós quiséssemos somar dois números A e B. Para armazena-lo,
precisamos de dois registradores na entrada do ULA para que só assim possa ser efetuada a
soma (F indicando “soma”) como mostra a figura 2.
Figura 2 – Soma de dois números A e B
Se por acaso forem somados 10 valores D1, D2,...,D10 será necessário utilizar um
artifício de seleção P que recebesse na sua entrada os dados da saída de C, sendo: P=1 ->
S=A e P=0 -> S=C conforme descrito na figura 3. Portanto, o bloco Seleção faz a escolha entre
A e C conforme o comando P.
Figura 3 –Soma sucessiva de dois números
Por exemplo, para se somar dez valores, são efetuadas:
1- O registrador 1 é carregado com o valor D0 e o registrador 2 com o valor D1, com P=1;
Arquitetura de Microprocessadores
Página 3
2- É somado os valores dos registradores 1 e 2;
3- É armazenado o resultado no registrador 2, com P=0;
4- É colocado o próximo valor no registrador 1;
5- É retornado ao passo 2, até que o décimo valor tenha sido somado. O resultado será
armazenado no registrador 2.
Porém, há de se observar que os valores inseridos vieram de algum local que foram
previamente armazenados. Este Local é denominado Memória.
Memórias
As memórias podem ser idealizadas como uma rua onde existem várias casas. Estas
casas para serem devidamente identificadas deverão possuir um endereço com número e
também possuir, para se ter acesso a elas, uma porta para entrada e/ou saída. Pode-se
também ser representado de uma outra maneira conforme descrito na figura 4.
Figura 4 - Representação de uma memória
Portanto, para o acesso à memória teremos as duas condições básicas:
1-
Operação de Escrita: -É colocado em A o endereço da posição de memória que deve
armazenar o valor D e em seguida é acionado o sinal ESCREVE.
2-
Operação de Leitura: É posicionada em A o endereço da posição de memória da qual
se deseja saber do conteúdo. Este valor irá aparecer em D quando ativado o sinal LÊ.
Uma vez encontrado um local para o armazenamento de valores, será necessário um
registrador para o armazenamento de endereço da posição de memória que contém o dado
requerido. O conjunto do sistema pode ser esquematizado até agora como mostra na figura
5, donde pode-se observar que no bloco de SELEÇÃO 2, através do acionamento do sinal
Arquitetura de Microprocessadores
Página 4
R, o conteúdo da memória agora em D é armazenado no registrador 1 ou passa ser a
parcela A.
Figura 5 – Conjunto do Sistema com Memória
Armazenamento de Programas
Para a realização de um uma seqüência de operação, as instruções devem estar
contidas em um programa e a máquina deve ser capaz de entende-la. Um computador ou um
processador deve ser capaz de basicamente realizar um certo número fixo de operações
básicas. Este conjunto deve ser escolhido de tal forma que as ações complexas possam ser
decompostas nestas operações básicas. Por exemplo, uma expressão matemática tipo:
3 + 4 ∗ 8 + 9 − 10 ÷ 8 ( i )
Basicamente a expressão i não passa de uma combinação de quatro operações
aritméticas básicas. Uma vez selecionado este conjunto de operações básicas, são associados
a cada um, um número:
Operação
Soma
Subtração
e assim por diante..
Número Associado
4
1
A esses números associados é denominado CÓDIGO DE OPERAÇÃO. Assim, um
programa será codificado como uma seqüência de números, cada qual indicando uma
operação. Por exemplo, na realização das seguintes operações básicas:
1- armazenar um dado no registrador 1 - código 10
2- armazenar um dado no registrador 2 -código 17
3- somar os valores nos registradores 1 e 2, guardando o resultado no registrador 2 –
código 20.
Portanto, teremos um programa para efetuar a soma de 3 números:
Arquitetura de Microprocessadores
Página 5
Operação
- armazenar 1º valor no registrador 2
- armazenar 2º valor no registrador 1
- somar
- armazenar 3º valor no registrador 1
- somar
Código de
Operação
17
10
20
10
20
Ainda é necessário alocar uma posição da memória para guardar os códigos de
operação que é realizado dividindo a posição de memória em duas partes, sendo uma para
guardar os valores e outra para os códigos de operação conforme é mostrado na figura 6.
Figura 6 – Forma como é guardo as informações na memória
Execução dos Programas
Um programa é composto de instruções. Essas instruções devem ser executadas de
forma seqüencial, ou seja, uma nova operação só pode ser iniciada quando a anterior tiver sido
concluída. Este procedimento pode ser descrito como:
1- ler na memória um código de operação (ciclo de busca).
2- “entender” o que deve ser executado (decodificação da instrução).
3- ler na memória, eventualmente um ou mais dados (ciclo de extensão ou busca de
operandos).
4- executar a instrução (ciclo de instrução).
Arquitetura de Microprocessadores
Página 6
Por exemplo, para se executar a soma de três valores são realizados os seguintes
procedimentos:
1- o primeiro código de operação (18) deve ser lido da memória
2-
armazenar um dado no registrador 2.
3- A máquina deve ler na memória o primeiro valor (5) e posicionar os controles R e P dos
blocos de seleção.
4- Através de um ciclo de clock o registrador 2 para que este armazene o valor (5)
Portanto, a execução da primeira instrução estará completa. A próxima já estará em
condições de ser executada.É preciso notar que o ciclo de extensão para a instrução SOMA
não existe, já que os valores a somar estão nos registradores 1 e 2. O diagrama
esquemático pode ser atualizado agora de acordo com a figura 7que agora contém
adicionado novos blocos:
Figura 7- Esquema de um processador que executa um programa
Registrador de instruções: -Armazena o código de operações quando o bloco Seleção 2 o
seleciona como saída. O código de instrução , será entregue ao decodificador.
Arquitetura de Microprocessadores
Página 7
Decodificador: -É responsável pela “tradução” do código de instrução naquilo que ele significa,
ou seja é com ele que a maquina irá entender o que deve ser feito. Este significado é entregue
ao gerador de sinais de controle.
Gerador de Sinais de Controle: -Ele é encarregado de atuar sobre os diversos blocos para a
realização da operação desejada como os selecionadores e registradores, indicando o quê em
que momento deve ser feito.
Apontador de Instruções: -É o registrador qeu contém o endereço de memória da próxima
instrução a ser executada, fazendo com que o bloco Seleção 3 escolha este valor como
endereço A para a memória.
+1: -Representa um circuito que soma “1” ao valor apontador de instrução. Finalmente o sinal
LIMPA iniciaria todo o sistema, fazendo com que o apontador de instrução ficasse com o valor
“1” e a Seleção 3 colocasse esse valor como endereço para a memória.
Supondo que a tecla LIMPA tenha sido pressionada, uma nova instrução será
executada. Pode-se ser analisada em blocos com se segue:
1- leitura de um código de operação (ciclo de busca);
a) o valor atual do apontador é 1; o bloco Seleção 3 coloca como endereço ª
b) o gerador de sinais de controle gera o sinal LÊ.
c) A memória apresenta à saída D o valor do código de operação (17).
d) o gerador de sinais de controle atua sobre o bloco Seleção 2 para que o código
de operação fique armazenado no registrador de instrução.
e) o decodificador de instrução interpreta o valor 17 como “pegar o dado no
endereço 6 de memória e armazena-lo no registrador 2.
2- leitura do dado na memória:
a) o registrador de endereço fica com o valor 6.
b) o gerador de sinais de controle atua sobre seleção 3, para que o conteúdo do
registrador de endereço seja usado como endereço para a memória.
c) o gerador de sinais de controle gera o sinal LÊ.
d) a memória apresenta em D o conteúdo da posição de endereço 6 (3).
e) o gerador de controle atua sobre Seleção 2 e Seleção 1, armazenando o valor no
registrador 2.
3- preparação para a próxima instrução:
Arquitetura de Microprocessadores
Página 8
a) o gerador de controle atua sobre o bloco “+1” a fim de incrementar o valor do
apontador de instrução, de forma que o seu conteúdo passa a 2.
b) o sistema volta ao passo 1 para a execução de uma nova instrução.
Obtenção dos Dados e Programas a partir de ações externas
Se a máquina fosse somente fosse capaz de executar a soma de 3 valores seria de
pouca serventia. Seria interessante que pudesse mudar com facilidade os dados e/ou
programa. Por exemplo, um operador tendo em sua frente um teclado de máquina de escrever
pode-se nele digitar as instruções de mudança, fazendo-se que os códigos digitados sejam
armazenados na memória, porém primeiramente convertida em números binários e
armazenados em um registrador.
Apresentação dos Resultados
Se forem necessários a impressão do resultado da soma de 3 valores por exemplo, que
estava no registrador 2 em um papel, podem ser efetuados conforme mostra a figura 8.
Figura 8 – Registradores conectados a uma impressora.
Saída de Alta Impedância (Tri-State)
Os dispositivos de saída (Registradores) possuem na sua saída, além dos níveis lógicos
0 ou 1, uma terceira opção que é de Alta Impedância ou Tri-State. É como se houvesse uma
chave lógica e pudesse desconectar o circuito ou como se houvesse desfeito uma ligação
elétrica. Esta característica é extremamente importante, já que muitas vezes como, por
Arquitetura de Microprocessadores
Página 9
exemplo, em uma impressora onde não se quer que receba os dados o tempo todo a não ser
quando for preciso ser encaminhado alguma informação para ser impresso, normalmente a
saída destes registradores ficam em Tri-State. No caso específico da arquitetura em estudo,
pode-se os geradores de sinais atuar diretamente sobre os registradores ao invés dos blocos de
seleção. O esquema definitivo pode ser apresentado conforme mostra a figura 9. Como podem
ser observadas, as vias, que são conjuntos de conexões elétricas como, por exemplo, fios que
carregam o mesmo tipo de informação como dados e endereços, podem interconectar o
sistema principal que é chamado CPU - Unidade de Processamento Central dos demais outros
sub-sistemas como memórias e interfaces. A CPU (ou UCP) é considerada a “inteligência” da
máquina.
Figura 9 – Diagrama em Blocos do Sistema Definitivo
Um outro esquema mais simplificado pode ser representado através de um outro
diagrama de blocos como é mostrado na figura 10. Este é um esquema básico que é
praticamente encontrado na maioria dos livros de autores diversos, salvo com algumas
modificações.
Arquitetura de Microprocessadores
10
Página
Figura 10 – Diagrama de Blocos de um Microprocessador
Bibliografia:
1-Curso de Microprocessadores. Occidental Schools.(1986)
2-M. Murdocca, V. Heuring; Introdução à Arquitetura de Computadores.
Extraído do site: http://www.gta.ufrj.br/ensino/EEL580/apresentacoes/ (03.03.2008)
Arquitetura de Microprocessadores
11
Página
Download