TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O Processador: Caminho de Dados e Controle

Por:   •  26/9/2018  •  Trabalho acadêmico  •  3.086 Palavras (13 Páginas)  •  257 Visualizações

Página 1 de 13

O Processador: Caminho de Dados e Controle

Durante este semestre vimos que o desempenho de uma máquina é determinado por três fatores principais:

- Números de instruções executadas.

- Período de clock (freqüência).

-Número de ciclos gastos por instrução (CPI).

Vimos também que o compilador e a arquitetura do conjunto de instruções afetam o funcionamento da máquina porque determinam o número de instruções executadas. Por outro lado, tanto o tempo do freqüência de clock, quanto o número de ciclos por instrução são determinados pelo processador. Por este motivo, vamos estudar o conceito de caminho de dados e verificaremos que a escolha da estratégia de implementação afeta a freqüência do clock e a CPI da máquina.

O estudo aqui apresentado inclui o projeto de implementação de um pequeno subconjunto das instruções do processador MIPS. Considera-se este subconjunto de instruções representativo dos princípios fundamentais de um projeto de um caminho de dados e de uma unidade de controle. Isto porque qualquer conjunto de instruções possui pelo menos estas três classes de instruções: as de acesso à memória, as lógicas e aritméticas, e as de transferência de controle.

Lembre-se sempre que descrever uma arquitetura implica em definir quais são os seus componentes, a funcionalidade de cada um deles e como eles interagem entre si.

Visão Geral de Implementação

Para qualquer tipo de instrução a ser executada, o processador passa inicialmente por dois passos:

- Enviar o valor armazenado no PC (program counter)1 para a memória que contém o código, trazendo para o caminho de dados a instrução armazenada nesta memória.

- Ler um ou dois registradores, usando os campos de instrução para selecionar os registradores a serem lidos.

Após a execução desses passos, as ações necessárias para completar a execução de uma instrução dependem da classe de instrução em curso, mas deve-se lembrar que mesmo entre classes diferentes existem algumas semelhanças. Por exemplo, todas as classes usam a ULA após a leitura dos registradores:

- As instruções de referência à memória usam a ULA para calcular o endereço.

- As aritméticas e lógicas para execução da própria operação.

- As de desvio para efetuar comparações.

[1]

Após usar a ALU, as ações necessárias para completar a execução das instruções de cada classe são diferentes. Uma instrução que referencia a memória precisa realizar o acesso à memória. Nas instruções lógicas e aritméticas é preciso armazenar o resultado produzido pela ALU num registrador. E, numa instrução de desvio pode ser necessário modificar o endereço da próxima instrução a ser buscada da memória.

Uma primeira visão do caminho de dados de um computador nos levaria ao seguinte modelo simplificado (Figura 1).

[pic 1]

Figura 1 – Caminho de Dados Básico.

As unidades funcionais componentes do MIPS são construídas a partir de:

- Elementos que operam sobre dados (combinacionais).

- Elementos de estado (seqüenciais e de memorização).

- O sinal de clock determina quando um elemento de estado é lido ou escrito, determinando a cadência de funcionamento do hardware.

Metodologia de Temporização

A metodologia de temporização define quando os dados podem ser lidos ou escritos em cada um desses componentes.

O mais importante dos dispositivos de memória é o flip-flop, que pode ser construído com a ajuda de um conjunto de portas lógicas básicas. Embora, individualmente, tais portas não tenham capacidade de memória, a conexão adequada entre elas permite o armazenamento de informações.

A partir do flip-flop básico apresentado na figura abaixo, pode-se compreender os princípios que norteiam o projeto e funcionamento de outros tipos de flip-flop, como o JK, o mestre-escravo,o T e o D.

[pic 2]

Figura 2 – Flip-Flop RS.

A metodologia mais simples é àquela sensível às transições do sinal de clock, que é demonstrada abaixo. A atualização do estado armazenado somente nas transições não cria condições de corrida, o que evita a indeterminação dos valores dos dados.

[pic 3]

Figura 3 – Metodologia de Temporização.

Todos os sinais precisam se propagar do elemento de estado 1 para o 2 através da lógica combinacional durante o tempo de um ciclo de clock, sem que haja realimentação e é isto que determina a freqüência de clock de uma máquina.

[pic 4]

Figura 4 – Propagação dos Dados.

Implementação

Inicialmente mostraremos uma implementação bem simples do subconjunto de instruções. Ela é baseada num único ciclo de clock que é suficiente longo para atender todas as instruções consideradas (projeto monociclo). Assim, toda instrução começa sua execução em uma transição ativa do clock e termina na próxima transição ativa do clock. Dessa forma, todas as instruções gastam o mesmo tempo para serem executadas.

Utilizando esta metodologia, é necessário que o tempo escolhido para determinar a freqüência de clock seja o da instrução mais demorada. Este implementação é apresentada por ser mais a simples de entender, mas não é implementado na realidade porque é muito ineficiente.

Busca da Instrução

O primeiro passo de qualquer instrução é a busca. Para tanto são necessários três componentes: dois elementos de estado e um somador. Um dos elementos de estado armazena instruções (memória de instruções) e o outro armazena o endereço da próxima instrução a ser executada (Program Counter - PC). O terceiro componente calcula o endereço da próxima instrução a ser executada (somador).

A tarefa do somador é incrementar o valor do PC. Ele pode ser visto como uma ULA muito simples que só realiza operação de soma. O valor 4 numa das entradas do somador indica que a próxima instrução está armazenada 4 bytes depois do valor corrente do PC.

Instruções Aritméticas

Já examinamos os principais elementos básicos de um caminho de dados, em que foi possível perceber que toda e qualquer instrução começa com a busca da instrução na memória. Para preparar a próxima instrução, incrementa-se o PC, fazendo-o apontar para a próxima instrução (4 bytes depois do endereço corrente).

Agora vamos analisar as instruções do tipo R que precisam ler 2 registradores, realizar uma operação na ULA e escrever o resultado em um registrador. Deve-se considerar que estas instruções possuem 3 operandos em registradores, dessa forma conclui-se que é necessário ler 2 palavras de dados do banco de registradores. Para realizar tal leitura, é necessária uma entrada para o banco de registradores que especifique o número do registrador a ser lido, além de uma saída do banco de registradores para o valor lido.

...

Baixar como (para membros premium)  txt (20.1 Kb)   pdf (496.7 Kb)   docx (267.2 Kb)  
Continuar por mais 12 páginas »
Disponível apenas no TrabalhosGratuitos.com