Please enable JavaScript.
Coggle requires JavaScript to display documents.
PROCESSADOR (continuação) (Pipeline: Várias instruções são realizadas de…
PROCESSADOR (continuação)
Atualmente, a grande maioria dos sistemas de
computação é fabricado em torno de processadores que buscam maior velocidade na
realização de suas atividades.
Um dos processos mais usados é o que conhecemos na
indústria como linha de montagem ("
pipeline
"), no qual a UCP se divide em várias partes funcionais distintas
(estágios), cada uma correspondendo a uma determinada atividade.
Paralelismo a Nível de Instrução
: É possível obter maior desempenho computacional com: Tecnologias mais avançadas, tais como circuitos mais rápidos; Melhor organização da CPU, tais como o uso de múltiplos registradores e memória cache; Pipeline de instruções.
A idéia básica num pipeline de instruções é a de novas entradas serem aceitas, antes que as entradas aceitas previamente tenham terminado. Este conceito assume que uma instrução tem vários estágios.
Pipeline
: Várias instruções são realizadas de forma simultânea, embora em estágios diferentes. O tempo para cada instrução é o mesmo que sem
pipeline. O tempo total, de várias instruções, é menor. Potencialmente 3 vezes mais rápido que o processo não pipeline. A taxa de inserção de tarefas no pipeline é limitada pela
tarefa mais lenta; Meta é aumentar a produtividade (throughput). O pipeline melhora a performance por meio do throughput das instruções.
Conflitos do Pipeline
: Eventos em que a instrução seguinte não pode ser executada. 3 tipos: 1) estrutural; 2) Controle; e 3) Dados.
Conflito de Controle
: Ocorre quando há necessidade de se tomar uma decisão com base nos resultados de uma instrução enquanto outras estão sendo executadas.
Conflito por Dados
: Ocorre quando o efeito de uma instrução depende do resultado de uma instrução anterior.
Conflito Estrutural
: O hardware não pode suportar a combinação de instruções que o pipeline deseja executar no mesmo ciclo de clock.
Desempenho de um computador é determinado por 3 fatores principais:
a) Contagem de instrução; b) Tempo de ciclo de clock; e c) Ciclo de clock por instrução (CPI).
Compilador e a arquitetura do conjunto de instruções determinam a contagem de instruções necessárias para um determinado programa.
Elemento combinacional
(operam nos valores de dados, suas saídas dependem apenas das entradas atuais). Dada a mesma entrada, um elemento combinacional sempre produz a mesma saída, pois não possui qualquer armazenamento interno.
Elemento de estado
(um elemento de memória, como um registrador ou uma memória). Possui pelo menos duas entradas e uma saída.As entradas necessárias são os valores dos dados a serem escritos no elemento e o clock, que determina quando o valor dos dados deve ser escrito. A saída de um elemento de estado fornece o valor escrito em um ciclo de clock anterior. O clock é usado para determinar quando se deve escrever no elemento de estado; um elemento de estado pode ser lido a qualquer momento. os componentes lógicos que contem estado também são chamados de sequenciais porque suas saídas, dependem de suas entradas e do conteúdo do estado interno.
Metodologia de clocking
: tem o objetivo de garantir a previsibilidade. Define quando os sinais podem ser lidos e quando podem ser escritos. É um método usado para determinar quando os dados são válidos e estáveis em relação ao clock.
Sincronização acionada por transição
: quaisquer valores armazenados em um elemento lógico sequencial são atualizados apenas em uma transição do clock (transição rápida de baixo para alto, ou de alto para baixo). É um esquema de clocking em que todas as mudanças de estado ocorrem em uma transição do clock.
Uma metodologia acionada por transição permite que o elemento seja lido e escrito no mesmo ciclo de clock sem criar uma disputa que poderia levar a valores de dados indeterminados.
Sinal de controle
: um sinal usado para seleção de multiplexador ou para direcionar a operação de uma unidade funcional; contrasta com um sinal de dados , que contém informações operadas por uma unidade funcional.
Ativo
: O sinal logicamente alto ou verdadeiro.
Ativar
: especifica que um sinal deve ser conduzido e logicamente alto.
Inativo ou desativar
: representa o que é logicamente baixo ou falso.
A lógica combinacional , os elementos de estado e o clock estão intimamente relacionados.
Elemento de caminho de dados
: é uma unidade funcional usada para operar sobre os dados ou conter esses dados dentro de um processador. Na implementação MIPS, os elementos de caminho de dados incluem as memórias de instruções e de dados, o banco de registradores, a ULA, e os somadores.
Os elementos de estado são a memória de instrução e o contador de programa. Dois elementos de estado são necessários para armazenar e acessar instruções, e um somador é necessário para calcular o endereço da próxima instrução.
A memória de instruções só precisa fornecer o acesso de leitura porque o caminho de dados não escreve instruções. Como a memória de instruções apenas é lida, nós a tratamos como lógica combinatória.
O contador de programa é um registrador de 32 bits que é escrito no final de cada ciclo de clock, e portanto, não precisa de um sinal de controle de escrita. É o registrador que contém o endereço da instrução do programa sendo executado.
Banco de registradores
: coleção de registradores em que qualquer registrador pode ser lido ou escrito especificando o número do registrador no banco.
Os dois elementos necessários para para implementar operações para a ALU no formato R são o banco de registradores e a ALU.
As duas unidades necessárias para implementar loads e stores, além do banco de registradores e da ALU são a unidade de memória de dados e a unidade de extensão de sinal.
Endereço de destino do desvio
: torna-se o novo contador do programa se o desvio for tomado. É dado pela soma do campo offset da instrução e o endereço da instrução seguinte ao desvio (MIPS).
Operandos iguais
= o endereço de destino do desvio se torna o novo PC (desvio tomado). Condição satisfeita e o contador do programa se torna o destino do desvio. Todos os desvios incondicionais são desvios tomados.
Operandos desiguais
= o PC incrementado deve substituir o PC atual (exatamente como para qualquer outra instrução normal) - desvio não tomado. Um desvio em que a condição de desvio é falsa e o contador do programa se torna o endereço da instrução que acompanha sequencialmente o desvio.
Caminho de dados de desvio
: precisa realizar duas operações: a) Calcular o endereço de destino do desvio e; b) Comparar o conteúdo do registrador.
Detalhamento
: No conjunto de instruções MIPS, os desvios são atrasados, isso significa que a instrução imediatamente posterior ao desvio é sempre executada; independente da condição de desvio ser verdadeira ou falsa. Quando é falsa, a execução se parece com um desvio normal. Quando a condição é verdadeira, um desvio atrasado primeiro executa a instrução imediatamente posterior ao desvio na ordem sequencial antes de desviar para o endereço de destino do desvio.
Desvio atrasado
: um tipo de desvio em que a instrução imediatamente seguinte ao desvio é sempre executada, independente de a condição do desvio ser verdadeira ou falsa.
Portas lógicas
: AND: Produz resultado verdade (v=1) na saída se e somente se todas as entradas forem verdade. (X=A
B);
OR: Produz resultado verdade (v=1) na saída se pelo menos uma das entradas for verdade. (X=A+B);
NOT: Ele inverte o valor de um sinal binário colocado em sua entrada, produzindo uma saída com o valor oposto. (X=A/);
NAND (NOT AND): Complemento da porta AND. A saída é obtida ao se aplicar a regra da operação AND e inverter o resultado. (X=A
B)/
NOR: é o complemento ou inverso da porta OR. A saída é obtida ao efetuar a operação lógica OR sobre as entradas e inverter o resultado. (X=A+B)/
XOR (exclusive OR): A saída será verdade se exclusivamente uma ou outra entrada for verdade. (X=A+)