Slide 1 - Arquitetura de Computadores UFS 2008/1

Propaganda
Processadores – Aula 01
Professor: André Luis Meneses Silva
E-mail/msn: [email protected]
Página: www.dcomp.ufs.br/index.php/docentes:Andre
Agenda






RISC vs CISC
Processadores
Execução de uma instrução
Convenções Lógicas de Projeto
Metodologia de Clocking
Construindo um caminho de dados.
RISC vs CISC

Um pouco de história...


Durante o final da década de 70, houve
experimentos com processadores que faziam uso de
instruções muito complexas possibilitadas através de
interpretador.
 Os pesquisadores ainda tentavam fechar a lacuna
entre o que as máquinas podiam fazer e o que as
linguagens de programação
de
alto nível
demandavam.
Por outro lado, a IBM trabalhou em um
minicomputador de alto desempenho, denominado
801, que pregava o contrário, ou seja, instruções
bastante simples, sem uso de interpretador.
RISC vs CISC


Em 1980, David Patterson e Carlo Séquin
começaram a projetar chips para CPU e
cunharam o termo RISC para os chips que
produziram.
Em 1984, Hennessy projetou e fabricou o MIPS.
A partir daí começou a diferenciação e a
guerra entre os defensores do CISC e RISC.
RISC vs CISC

CISC (Complex Instruction Set Computer)




RISC (Reduced Instruction Set Computer)




Se caracteriza por possuir um conjunto de instruções
bastante complexo.
Possui uma quantidade muito maior de instruções.
Possui uma quantidade menor de registradores.
Se caracteriza por possuir um conjunto de instruções
bastante simples.
Possui uma quantidade pequena de instruções.
Possui muitos registradores
Mas afinal quem venceu a batalha?
RISC vs CISC

Embora processadores RISC, na época,
possuíssem desempenho muito superior aos do
CISC, os CISC não foram derrotados.


Várias empresas já tinham desenvolvidos projetos de
software completos para processadores CISC.
A Intel, grande fabricante de processadores CISC,
adequou as idéias da arquitetura RISC em sua
arquitetura CISC.
 Desde os 486, os processadores Intel são híbridos,
possuindo um núcleo RISC para instruções mais
simples e um núcleo CISC para as instruções mais
complexas.
Processadores

CPU (Unidade Central de processamento)


“Cérebro” do computador
 Executar
programas armazenados na memória
principal.
Os componentes de um sistema computacional são
ligados através de um barramento.
 Barramento é um conjunto de fios paralelos que
transmitem endereços, dados e sinais de controle.
 Barramentos podem ser:


Externos à CPU.
Internos à CPU.
Processadores

Elementos de uma CPU


Unidade de controle
 Responsável por buscar instruções na memória
principal e determinar o seu tipo.
Caminho de Dados:
 Elementos que manipulam ou armazenam dados.



Unidade Lógica e Aritmética (ALU)
 Responsável por efetuar as operações de adição,
subtração, and, or, etc.
Registradores
 Memórias locais de alta velocidade.
Cache
Organização de um computador:
Visão Geral
CPU
CPU: Execução de Instrução

Passos:







Trazer a próxima instrução da memória até o registrador.
Alterar o contador do programa para indicar a próxima
instrução.
Determinar o tipo de instrução trazido.
Se a instrução usar uma palavra na memória, determinar
onde essa palavra está.
Trazer a palavra para dentro de um registrador da CPU, se
necessário.
Executar a instrução
Voltar a etapa 1 para iniciar a execução da instrução
seguinte.
CPU
1.
Trazer
a
próxima
instrução da memória até
o registrador.
CPU
2. Alterar o contador do
programa para indicar a
próxima instrução.
CPU
3. Determinar o tipo de
instrução trazido.
CPU
4. Se a instrução usar uma
palavra
na
memória,
determinar onde essa
palavra está.
CPU
5. Trazer a palavra para
dentro de um registrador
da CPU, se necessário.
CPU
6. Executar a instrução
7. Repetir os passos
apresentados
CPU
Quem é o
responsável
por controlar
estes
elementos de
hardware?
Alguma
coisa
está
faltando neste hardware?
Qual dos dois
valores
é
usado para o
PC,
por
exemplo?
Multiplexador
Multiplexador
Unidade de
Controle
Multiplexador
Qual
o
papel
de
cada MUX?
Passar para PC o
valor
da
próxima
instrução (PC + 4) ou
o valor do endereço
do desvio
Conduzir a saída da
ALU, ou da memória
de dados para o
banco
de
registradores.
Conduzir o valor do
registrador
ou
do
campo offset de uma
instrução.
Convenções lógicas de Projeto

Elementos funcionais de um processador:

Elementos que operam nos valores de dados





São os elementos combinacionais.
Suas saídas dependem apenas da entrada atual.
Dada a mesma entrada, estes elementos
produzem uma mesma saída.
Não possuem memória.
sempre
Elementos que contêm estados



São os elementos seqüenciais
Possuem um armazenamento interno
Possuem, no mínimo, duas entradas e uma saída.



Valores de entrada: clock e o dado a ser escrito.
Valor de saída: dado a ser lido.
Clock informa quando se deve escrever. Porém, a leitura
pode ser feita a qualquer momento.
Convenções lógicas de Projeto

Sinal Ativo


Quando o sinal de clock está logicamente alto
Sinal Inativo

Quando o sinal de clock está logicamente baixo
Metodologia de clocking

Define quando os sinais podem ser lidos e
quando podem ser escritos.

Importante para estabelecer a sincronização destas
operações.
 Sem uma metodologia de clocking, ou seja, sem a
sincronização das leituras/escritas não teríamos
garantia que o sinal lido corresponde ao valor antigo,
ao valor recém-escrito ou ainda a uma mistura de
ambos.
Metodologia de clocking

Sincronização acionada por transição

Quaisquer valores armazenados em um elemento
seqüencial é atualizado apenas em uma transição
de clock (transição de subida ou descida).
Construindo um caminho de Dados

Baseado no processador MIPS que vimos na
disciplina, iremos listar progressivamente cada
um dos elementos necessários para a
construção do caminho de dados.

Cada elemento de um caminho de dados é uma
unidade funcional usada para operar sobre os dados
ou conter esses dados dentro de um processador.
Construindo um caminho de Dados

Elementos de um caminho de dados

Para lidar com as instruções precisamos:
 Memória de instruções
Armazena instruções de um programa
 Fornece uma instrução de acordo com o endereço
passado
Registrador PC (contador do programa)
 Contém o endereço da instrução atual
Somador
 Utilizado, neste caminho de dados, para incrementar
o valor do PC.



Construindo um caminho de dados
Os
três
primeiros
elementos
do
caminho de dados e
suas interconexões.
Construindo um caminho de Dados

Elementos do caminho de dados

Banco de registradores
 Utilizado
para execução de instruções
necessitam fazer acesso a registradores.
 Exemplo: Instruções de formato R.

que
Revisando: No Mips, instruções de formato R são aquelas
que lêem valores de 2 registradores, realizam uma
operação na ALU com o conteúdo destes dois registradores
e escrevem o resultado em um outro registrador.
Construindo um caminho de Dados

Devido às instruções de formato R, o banco de
registradores precisa:


Para a leitura:
 Duas entradas para identificar o registrador que
desejamos fazer a leitura.
 Duas saídas para obter os valores destes registradores.
Para a escrita:
 Duas entradas. Uma para identificar o valor a ser
escrito e outra entrada para o registrador no qual
desejamos realizar a escrita.
Construindo um caminho de Dados

Banco de registradores
Construindo um caminho de Dados

lw $t1, offset($t2)




As instruções lw e sw, calculam um endereço de
memória somando o registrador de base com o
campo offset de 16 bits.
No caso de sw, além desta operações, precisamos ler
o valor de $t1 para podermos armazená-lo em
memória.
No caso de lw, precisamos escrever o valor da
memória em $t1.
Logo, além do registrador esta instrução também
necessita de uma ALU para realização das
operações aritméticas.
Construindo um caminho de Dados

Banco de registradores + ALU
Construindo um caminho de Dados

Adicionalmente, para lw e sw, também é
necessário uma memória de dados.


A memória de dados também precisa dar suporte a
leitura e escrita.
Além disso, é necessário um hardware
adicional para transformar a constante offset
de 16 bits em um número de 32 bits.
Construindo um caminho de Dados
Construindo um caminho de dados

Instruções de desvio





BEQ $t1, $t2, offset
Para termos o comportamento desta instrução
precisamos calcular o desvio que é obtido estendo o
sinal do campo offset de 16 bits para 32.
Em seguida, o campo offset é deslocado de 2
posições.
 Porque?
Após isso o campo offset é somado ao valor de PC +
4 (o endereço da próxima instrução).
Também utilizamos a ALU para verificarmos se os
valores de $t1, $t2 são iguais.
Construindo um caminho de dados
Construindo um caminho de dados

Esta mesma idéia é válida para as instruções de desvio
incondicional. Sendo necessário fazer alguns pequenos
ajustes.
 Substituímos os 28 bits menos significativos de PC+4 pelos
26 bits significativos do offset deslocados de duas
posições.
Próxima Aula
Referências

Organização e Projeto de Computadores

Seções 5.1 a 5.3
Download