arquitectura de computadores

Propaganda
ARQUITECTURA DE
COMPUTADORES
CAPÍTULO IV
AULA I
Abril 2014
Ricardo Mendão Silva
[email protected]
Índice
• Processadores
•
•
•
•
Intro
Overview
Convenção de desenho lógico
Construir um datapath
Ricardo Mendão Silva
[email protected]
Processadores
Introdução
• Como introduzido no capitulo I, a
performance de um computador assenta em três
factores:
• Número de instruções por programa
• Tempo do ciclo de relógio
• Número de ciclos de relógio por instrução (CPI)
• No capítulo II foi demonstrado que os
compiladores juntamente com a ISA
(Instruction Set Architecture) determinam o
número de instruções por programa.
Ricardo Mendão Silva
[email protected]
Processadores
Introdução
• Porém, o número de ciclos por instrução e o
tempo de cada ciclo de relógio continuam a
ser definidos pela implementação do
processador.
• Este capítulo aborda precisamente a
construção e modo de funcionamento de um
processador, focando-se na arquitetura MIPS.
• Iremos construir um datapath e uma unidade de
controlo.
• Abordar abstracismo, paralelismo e pipelining
Ricardo Mendão Silva
[email protected]
Processadores
Overview
Ricardo Mendão Silva
[email protected]
Processadores
Overview
• Modelo implícito de praticamente
todas as ISAs.
• PC – Program Counter: instrução.
Fetch PC
Descodifica
• Ordem total: Next PC = PC++, até
ordem contrária.
Lê os inputs
Executa
Escreve os output
• Ordem e chamadas ao disco definem
computação.
Next PC
Ricardo Mendão Silva
[email protected]
Processadores
Overview
• Em geral, todas as ações de execução
implícitas no modelo sequencial seguem a
mesma formula, sejam.
•
•
•
referências de memória,
aritmética-lógica, ou
condicionais (branches).
• Por exemplo, todas as classes de instruções,
exceto os jumps utilizam a ALU.
•
•
•
cálculos de memória;
aritmética;
comparações.
Ricardo Mendão Silva
[email protected]
Processadores
Overview
• Seguidamente à execução, então cada tipo tem
um seguimento diferente.
• Uma operação de memória pode ter que aceder à
memória para ler ou escrever.
• Um cálculo aritmético irá escrever o resultado num
dos registos.
• Uma comparação poderá forçar a alterar o endereço da
próxima instrução a ser executada.
Ricardo Mendão Silva
[email protected]
Processadores
Overview
• Esquema básico de um processador.
Ricardo Mendão Silva
[email protected]
Processadores
Overview
• Apesar da simplicidade, as ligações entre
componentes não podem ser diretamente
ligadas.
• É necessário um multiplexer para determinar o output
com base no selector.
• Para além disso, também deverá existir um
distinção entre leitura e escrita em memória.
Ricardo Mendão Silva
[email protected]
Processadores
Overview
• Esquema completo de um processador.
MUX:
1- Decide se a próxima instrução é a
seguinte ou se existe um branch que força
o salto para PC + 4.
1
2
3
2- Decide se guarda num registo o
resultado de uma operação aritmética
proveniente da ALU ou um valor carregado
de memória por um load.
3- Decide se o segundo input da ALU é um
operando aritmético ou o offset de uma
instrução de load ou store.
Ricardo Mendão Silva
[email protected]
Processadores
Convenção de desenho lógico
• A figura anterior mostra-nos diferentes
componentes de diferentes naturezas, tais
como:
• Elementos combinacionais – elementos que para cada
conjunto de entrada determinam sempre o mesmo valor
de saída. Ex: ALU.
• Elementos de estado – elementos que mantêm
determinado estado guardado num elemento de memória
interno. Ex: instruções, registos, memórias.
• Por norma os elementos de estado recebem dois
parâmetros:
• Conteúdo a escrever.
• Relógio que determina o momento de escrita.
• Retornam o último valor escrito.
Ricardo Mendão Silva
[email protected]
Processadores
Convenção de desenho lógico
• Todo e qualquer processo deverá ser
controlado por uma metodologia de relógio.
• Essa metodologia é responsável por determinar
quando devem ocorrer escritas e quando devem
ocorrer leituras.
• Deste modo evita-se que se esteja a ler valores
antigos e/ou errados.
• Deste modo a metodologia de relógio define a
validade e o estado dos dados face a
determinado relógio.
Ricardo Mendão Silva
[email protected]
Processadores
Convenção de desenho lógico
• Em MIPS utiliza-se uma metodologia edgetriggered clocking.
• Qualquer passagem de estado ocorre nas passagens
entre estados do ciclo de relógio:
• Alto para baixo e vice-versa.
• Num ciclo é possível ler o elemento, operar sobre o
mesmo e reescrever o seu valor.
Ricardo Mendão Silva
[email protected]
Processadores
Construir um datapath
• Um datapath é constituído por um conjunto de
elementos.
• Cada elemento do datapath é responsável por
conter ou operar sobre dados.
• Em MIPS os elementos de datapath são:
•
•
•
•
•
Ricardo Mendão Silva
As instruções;
Os registos;
A ALU;
Os componentes de adição;
A memória de dados.
[email protected]
Processadores
Construir um datapath
1º Passo:
• Obter um elemento que contenha as instruções a serem
executadas.
• Utilizar um registo que guarde o endereço da instrução
em execução (Program Counter).
• Utilizar um componente de adição que permita iterar as
instruções.
Ricardo Mendão Silva
[email protected]
Processadores
Construir um datapath
2º Passo (Considere-se uma instrução aritmética com o
formato R-Type: add $t0,$t1,$t2):
• Utilizar um quarto elemento, nomeadamente um ficheiro
de registos que contenha os 32 registos, acedidos
diretamente através do número correspondente.
• Utilizar a ALU como um quinto elemento, responsável por
receber os dois operandos e devolver o resultado da
operação.
Ricardo Mendão Silva
[email protected]
Processadores
Construir um datapath
3º Passo (Considere-se uma instrução de load ou store
com o formato I-Type:
lw $t0,offset($t2) ou sw $t0, offset ($t2):
• Como vimos nas aulas práticas, estas instruções somam o offset de 16
bits à base $t2 para obter o endereço de memória desejado.
• No load o valor de offset($t2) é escrito no registo $t0, enquanto
que no store o valor do registo $t0 é lido e escrito no endereço de
offset($t2).
• Como tal, necessitamos do ficheiro de registos e da ALU, como no
caso anterior.
• Para além disso vai ser necessário:
•
•
Ricardo Mendão Silva
um conversor de 16 bits para 32 bits, de modo a converter o offset.
um elemento de memória com capacidade de leitura e escrita.
[email protected]
Processadores
Construir um datapath
3º Passo (Considere-se uma instrução de load ou store
com o formato I-Type: lw $t0,offset($t2) ou sw $t0, offset ($t2):
• Para além do ficheiro de registos e da ALU vai ser
necessário:
• um conversor de 16 bits para 32 bits, de modo a extender o
offset.
• um elemento de memória com capacidade de leitura e escrita.
Ricardo Mendão Silva
[email protected]
Processadores
Construir um datapath
4º Passo (Considere-se uma instrução de
branche beq $t0,$t1,loop.
• As labels ou etiquetas são identificadores
de 16 bits.
• As mesmas utilizam-se para calcular o
branch target address.
• O branch target address é o resultado da
soma da label, após convertida para 32
bits e multiplicada por 4, com o PC da
instrução seguinte ao branch.
Ricardo Mendão Silva
[email protected]
Processadores
Construir um datapath
Juntando todos os elementos do datapath:
Ricardo Mendão Silva
[email protected]
Dúvidas e Questões
Ricardo Mendão Silva
Abril 2014
[email protected]
Ricardo Mendão Silva
[email protected]
Download