Resumo dos Fundamentos de Arquitetura de Computadores

Estarei postando um resumo que fiz para estudos da primeira parte da matéria de Arquitetura de Computadores.

Recomendo o livro para qualquer estudante/orientando. Estou lendo ainda, porém até a parte em que li, o livro é bem didático e de fácil compreensão.

Livro: Fundamentos de Arquitetura de Computadores – Número 8 – 3ª edição.

Instituto de Informática da UFRGS, página da editora.

Autor: Raul Fernando Weber – Dr. em Ciência da Computação.

Fundamentos de Arquitetura de Computadores

Princípios básicos

 

Cada computador tem um conjunto de operações e convenções único para determinar as posições dos dados com os quais a operação será realizada. Os vários computadores diferem nas operações específicas que fornecem e nos métodos que usam para referenciar os dados que serão manipulados por uma operação. Em geral um instrução é: (operação + operandos).

A operação especifica a função que será desempenhada. Operandos fornece a maneira de calcular a posição atual dos dados com os quais a operação será realizada. Um programa é constituído de uma sequência pré-determinada de instruções, que deve ser seguida para que seja atingido o objetivo computacional. Este programa e os dados estão armazenados na memória da máquina, desta forma, o programa deve ser interpretada para realização do processamento, isto é, a informação codificada correspondente às ações e aos operandos deve ser entendida e então processada.

A memória de um sistema de computador tem a função de armazenar dados e instruções; é organizada em posições, que podem ser visualizadas como elementos em uma matriz. Cada elemento tem um endereço na memória. Desta forma, pode-se falar que uma memória que tem 4096 posições, existem posições de memória 0,1,2,3,4…4094 e 4095. Quando um destes números aparece nos circuitos de controle conectados à memória, o conteúdo(o valor que está na posição) será trazido da memória para os circuitos da unidade de processamento ou a informação na unidade de processamento será armazenada na memória, dependendo do trabalho associado com o endereço.

Instruções em um computador são executadas em uma sequência determinada por suas posições de memória. Na maioria dos computadores as instruções e dados são distribuídos em posições de memória.

A  unidade lógica e aritmética realiza ações indicadas nas instruções, executando operações numéricas(aritméticas) e não numéricas(lógicas) além da preparação de informações para desvios do programa. O controle do programa e a ULA formam a unidade central de processamento(UCP ou CPU em inglês), ou simplesmente processador.

        

 

Busca – decodificação – execução de instruções

 

Um elemento no processador, denominado de contador de instruções ou apontador de instruções, contém a posição da próxima instrução a ser executada. Quando uma sequência de execução de instruções tem inicio, a instrução cujo endereço está no contador de instruções é trazida da memória para um área de armazenamento chamada registrador de instrução. Este processo é conhecido como busca de instrução.

         A instrução é interpretada por circuitos de decodificação que fazem com que sinais eletrônicos sejam gerados no processador como resultado do valor do campo de operação, isto é, decodificam a informação correspondente à operação a ser realizada.

Esses sinais, ou essa sequencia de sinais, resultam na execução da instrução. Execução é a aplicação da função do operador nos operandos. Quando a execução de uma instrução é terminada, o contador de instruções é atualizado para o endereço de memória da próxima instrução. Esta instrução é então trazida da memória para o registrador de instruções e executada, repetindo-se assim o ciclo de busca-decodificação-execução, podendo mudar quando o resultado de uma instrução direciona-se para um desvio(Comando if(x == true), é um exemplo de desvio).

Elementos funcionais básicos

 

Um computador é composto por blocos convencionalmente chamados de memória, unidades operacionais, unidades de controle e dispositivos de entrada e saída.

A unidade operacional e a unidade de controle tem cada uma, funções especificas. Reunidas, entretanto, recebem no seu conjunto a denominação de unidade central de processamento(UCP) ou processador. Memórias, unidades operacionais, unidades de controle e dispositivos de entrada e saida são formados por elementos de menor complexidade, tais como registradores, contadores, multiplexadores, seletores, decodificadores, somadores e portas lógicas(AND, OR, INVERSOR).

Registradores são elementos digitais com capacidade de armazenar dados temporariamente. Têm associados a si sinais de carga, que determinam quando serão armazenados novos conteúdos neles. Ao ser acionado o sinal de carga, o registrador copia para si o dado que está em suas linhas de entrada.

Contadores, multiplexadores, seletores, decodificadores, somadores e portas lógicas são elementos com capacidade de operar sobre dados, alterando-os ou fornecendo um novo dado como resultado da operação que realizam.

Elementos digitais necessitam ser ativados ou habilitados para realizar uma determinada operação. Os sinais responsáveis pela ativação ou habilitação de componentes digitais são conhecidos como sinais de controle.

Dados são transferidos, entre os diversos elementos de um computador, por caminhos físicos chamados barramentos. Barramentos são caminhos que permitem o transporte de dados entre os vários elementos da parte operacional, memória e sistema  de entrada e saída. Um barramento só pode receber dados de uma fonte de cada vez. Do ponto de vista de arquitetura, um barramento se caracteriza pela sua largura em bits.

Memória

 

         A memória é formada por elementos armazenadores de informação. Uma memória está dividida em palavras. Cada palavra é identificada univocamente por um endereço. O conteúdo armazenado nas palavras da memória tanto pode representar dados como instruções.

REM: registrador de endereços da memória – contém o endereço do dado a ser lido ou escrito na memória.

RDM: registrador de dados da memória – contém o dado a ser  escrito na memória, no caso de uma operação de escrita(write), ou o dado lido da memória, no caso de uma operação de leitura(read).

Os sinais de controle significam:

read: leitura da memória – o conteúdo da posição de memória endereçada por REM é copiado em RDM.

Write: escrita na memória – a posição de memória endereçada por REM recebe o conteúdo de RDM.

No nível de arquitetura, os parâmetros que caracteriza a memória que interessa, é somente o tamanho da palavra em bits e o tamanho da memória em palavras. Estes tamanhos geralmente são indicados sob a forma de potências de dois. O tamanho da palavra determina o comprimenta em bits do RDM(registrador de dados) e o tamanho da memória o comprimento em bits do REM(registrador de endereços).

 

 

Unidade operacional

 

Esta unidade executa as transformações sobre dados especificadas pelas instruções de um computador. Compõe-se de uma ULA, registradores de uso geral e específico e dos barramentos que interligam todos esses elementos.

Unidade lógica e aritmética (ULA)

 

         As operações da ULA são, geralmente, muito simples. Funções mais complexas, exigidas pelas instruções da máquina, são realizadas pela ativação sequencial das várias operações básicas disponíveis.

A ULA fornece o resultado da operação e também algumas indicações sobre a operação realizada. Tais indicações são chamadas códigos de condição. Exemplos de alguns códigos de condição comumente gerados na ULA são:

–      Overflow: indica que o resultado de uma operação aritmética não pode ser representado no espaço(tamanho da palavra) disponível.

–      Sinal: indica se o resultado da operação é negativo ou positivo.

–      Carry: dependendo da operação realizada poderá representar o bit de vai-um ou vem-um. Usado muitas vezes também em operações de deslocamento para guardar e fornecer o bit deslocado.

–      Zero: indica se o resultado da operação é nulo.

Os sinais de controle que devem ser fornecidos para a ULA servem para selecionar a operação desejada entre as operações básicas disponíveis.

A ULA se caracteriza por: comprimento em bits dos operandos, número e tipo de operações, códigos de condição gerados.

Acumulador

 

O acumulador é um registrador e tem por função armazenar um operando e/ou um resultado fornecido pela ULA. Nos computadores mais simples é encontrado apenas um acumulador. O acumulador é ativado por um sinal de controle de carga. Um acumulador é caracterizado ao nível de arquitetura apenas pelo seu comprimento em bits.

Unidade de Controle

 

Para gerenciar o fluxo interno de dados e o instante preciso em que ocorrem as transferências entre uma unidade e outra são necessários sinais de controle. Esse sinais são fornecidos por um elemento conhecido por unidade de controle.

         Cada sinal de controle comanda uma microoperação. Um microoperação pode ser responsável pela realização de uma carga em um registrador, uma seleção de um dado para entrada em um determinado componente, uma ativação da memória, a seleção de uma operação da ULA ou a habilitação de um circuito lógico, para citar alguns exemplos.

Unidades de controle são máquinas de estado finitas(FSM) realizadas por lógica sequencial.

-Lógica sequencial: os sinais de saída são função dos sinais de entrada e do estado anterior do sistema.

-Lógica combinacional: os sinais de saída são função exclusiva dos sinais de entrada.

As formas de implementação da lógica sequencial caracterizam a organização da unidade de controle. As duas organizações usuais são:

-Organização convencional: a unidade de controle é composta por componentes como flip-flops, contadores e decodificadores, que geram, sequencialmente e nos instantes de tempo adequados, todos os sinais de controle necessários à ativação da unidade operacional, do sistema de entrada e saída e da memória.

-Organização microprogramada: em uma unidade de controle microprogramada, os sinais de controle estão armazenados numa memória especial chamada memória de controle. Vários sinais de controle são buscados a cada acesso à memória de controle. Esses sinais estão agrupados em longas palavras chamadas microinstruções. Um conjunto de microinstruções forma um microprograma.

A unidade de controle, baseada em sinais de entrada obtidos do registrador de estado(RST) e do elemento de instruções(RI), gera como saída todos os sinais de controle necessários para a unidade operacional.

O registrador de instruções é um elemento do bloco de controle, o registrador de estado é um elemento da interface entre a unidade de controle e a unidade operacional. Em função de uma arquitetura especifica, esse último registrador tanto pode aparecer classificado numa unidade com em outra.

Apontador de instruções

 

         O apontador de instruções é um registrador e tem por função manter atualizado o endereço de memória da próxima instrução que deve ser executada. Também é chamado de contador do programa(Program Counter). O apontador é caracterizado pelo seu comprimento em bits.

Registrador de instruções (RI)

 

         O registrador de instruções armazena a instrução que está sendo executada. Em função do conteúdo desse registrador, a unidade de controle determina quais os sinais de controle devem ser gerados para executar as operações determinadas pela instrução. O RI é caracterizado pelo seu comprimento em bits.

Registrador de estado (RST)

 

         O registrador de estado armazena códigos de condição gerados pela ULA(e, eventualmente, por outros elementos, como os sinais de interrupção gerados por dispositivos de entrada e saída). Em função do conteúdo desse registrador, a unidade de controle toma decisões sobre a geração a geração ou não de certos sinais de controle. Um RST é caracterizado pelo seu comprimento em bits, que é uma função do número de códigos de condição implementados na máquina.

Conjunto de instruções e modos de endereçamento

 

Uma instrução é um conjunto de bits devidamente codificados que indica ao computador que sequencia de microoperações ele deve realizar. Instruções são classificadas por semelhança de propósito e formato. Classificações comuns incluem, entre outras:

-instruções de transferências de dados.

-instruções aritméticas e lógicas.

-instruções de teste e desvio.

O conjunto de todas as instruções que um determinado  computador reconhece e pode executar é chamado de conjunto de instruções. Qualquer sequência finita de instruções de um determinado conjunto de instruções compõe um programa.

         Muitas das instruções de um computador realizam operações sobre operandos. Operandos podem estar em qualquer posição da memória ou em qualquer registrador. Para que a unidade de controle saiba onde achar um operando é necessário que o endereço do operando apareça junto à instrução. Nas instruções de desvio é necessário indicar, ao invés de endereço de operando, para qual posição ou endereço de programa se quer desviar.

Ciclo de busca-decodificação-execução de instruções

 

Busca, decodificação e execução de instruções são as tarefas básicas realizadas por um processador. Caracteriza-se de ciclo pois as tarefas são executadas repetidamente até que uma instrução indique parada ao computador.

-Busca: na fase de busca é lida uma instrução da memória. Essa fase envolve: copiar o apontador de programa(PC) para o registrador de endereços da memória(REM), ler uma instrução da memória, copiar o registrador de dados da memória(RDM) para o registrador de instruções(RI), atualizar o apontador de programa(PC).

-Decodificação: nessa fase é determinada qual instrução deve ser executada. Geralmente, a decodificação é realizada por lógica combinacional.

-Execução: na fase de execução, para cada tipo de instrução é realizado, conforme necessário: cálculo de endereço de operandos, busca de operandos da memória, seleção de operação da ULA, carga de registradores, escrita de operandos na memória e atualização do PC para desvios.

O controle de todas as operações do ciclo de instruções é de responsabilidade da unidade de controle.

Anotações finais:

–      a ULA, unidade de controle e alguns registradores formam o processador.

–      Os resultados e os operandos vão estar sempre nos registradores.

–      O NEANDER tem um acumulador.

–        Lógica sequencial depende dos dados que entraram e os que estão para sair.

Abraço.

Anúncios

Obrigado pelo comentário.

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s