Buscar

AULA_6_Modelo_Von_Neumann_

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

FACULDADE ESTÁCIO 
 
SISTEMAS DE INFORMAÇÃO / REDES DE COMPUTADORES
AULA 6 – Modelo de Von Neumann
Organização de Computadores 
PROF :DJACIR MACIEL
maciel.estacio@gmail.com
1.Breve Histórico 
Componentes do computador 
1.Breve Histórico – ENIAC – Estrutura 
Componentes do computador 
2.Princípios Básicos 
Operação 
Operando 
Componentes do computador 
 INSTRUÇÃO 
2.Princípios Básicos 
Programa – Conjuntos de Instruções 
Memória – Endereço 
Componentes do computador 
2.Princípios Básicos 
Programa 
Componentes do computador 
Princípios Básicos 
Instruções e dados são executadas em uma sequência determinada por suas posições de memórias; 
Instruções e dados são distribuídos em posições de memórias; 
Componentes do computador 
2.Princípios Básicos 
A unidade lógica e aritmética realiza ações indicada 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 unidade lógica e aritmética formam a unidade central de processamento (UCP em inglês ou CPU), ou simplesmente processador.
Componentes do computador 
2.Princípios Básicos 
Quando um sequencia de execução de instruções tem início, a instrução cujo o endereço está no contador de instruções é trazida da memória para o registrador de instrução;
Esse processo é conhecido como Busca de Instrução.
Componentes do computador 
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
Componentes do computador 
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.
Componentes do computador 
3.Elementos funcionais básicos
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
Componentes do computador 
Circuito de dados de um processador
Componentes do computador 
3.Elementos funcionais básicos
Memórias, unidades operacionais, unidades de controle e dispositivos de entrada e saída são formados por elementos de menor complexidade, tais como registradores,contadores, multiplexadores, seletores, decodificadores, somadores e portas lógicas (AND, OR,INVERSOR);
Componentes do computador 
Registradores são elementos digitais com capacidade de armazenar dados;
Elementos digitais necessitam ser ativados ou habilitados para operação;
Os sinais responsáveis pela ativação ou habilitação de conhecidos como Sinais de Controle.
Componentes do computador 
3.Elementos funcionais básicos
Dados são transferidos, entre os diversos elementos de um computador, por caminhos físicos chamados Barramentos;
Memória
Componentes do computador 
3.Elementos funcionais básicos
Unidade operacional : Executa as transformações sobre dados especificadas pelas instruções de um computador; 
Compõe-se basicamente de uma unidade lógica e aritmética, de registradores de uso geral e específico e dos barramentos que interligam todos esses elementos.
Componentes do computador 
3.Elementos funcionais básicos
Unidade lógica e aritmética (ULA)
A ULA realiza operações aritméticas e operações lógicas sobre um ou mais operandos.
São exemplos de operações realizadas pela ULA: 
Soma de dois operandos; 
Negação de um operando;
Inversão de um operando;
AND ("E" lógico) de dois operandos; 
OR ("OU" lógico) de dois.
Componentes do computador 
3.Elementos funcionais básicos
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:
Componentes do computador 
3.Elementos funcionais básicos
Overflow : estouro de campo 
Sinal : indica se o resultado da operação é negativo ou positivo;
Carry: representa o bit de deslocamento em uma operação binária;
Zero: Indica se o resultado realizada é nulo. 
Componentes do computador 
3.Elementos funcionais básicos
Modelo estrutural da unidade lógica e aritmética
Componentes do computador 
3.Elementos funcionais básicos
Uma ULA se caracteriza por : 
Comprimento em bits dos operandos;
Número e tipo de operações;
Códigos de condição gerados.
Componentes do computador 
3.Elementos funcionais básicos
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; 
Em algumas arquiteturas mais complexas vários registradores podem desempenhar as funções de um acumulador.
Componentes do computador 
3.Elementos funcionais básicos
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;
Esses sinais são fornecidos por um elemento conhecido por unidade de controle.
Componentes do computador 
3.Elementos funcionais básicos
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 obtidos a partir dos sinais de entrada e do estado anterior do sistema; 
Componentes do computador 
3.Elementos funcionais básicos
Lógica combinacional: os sinais de saída são obtidos exclusivamente pelos sinais de entrada; 
Componentes do computador 
Formas de Implementação da lógica Sequencial : 
Organização convencional : A unidade de controle é formada por componentes digitais como flip-flops,contadores e decodificadores;
Organização microprogramada: Neste forma de implementação, os sinais de controles estão armazenados em uma memória denominada de Memória de Controle
Componentes do computador 
3.Elementos funcionais básicos
A unidade de controle, baseada em sinais de entrada obtidos do registrador de estado (RST) e do registrador de instruções (RI), gera como saída todos os sinais de controle necessários para a unidade operacional.
Componentes do computador 
3.Elementos funcionais básicos
Registradores especiais -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 (ou pC, do inglês Program Counter).
Componentes do computador 
3.Elementos funcionais básicos
Registradores especiais -Registrador de instruções (RI): 
Ele 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.
Componentes do computador 
3.Elementos funcionais básicos
Registradores especiais -Registrador de estado (RST):
Ele armazena códigos de condição gerados pela unidade lógica e aritmética e ocasionalmente por outros elementos, como os sinais de interrupção gerados por dispositivos de entrada e saída).
Componentes do computador 
3.Elementos funcionais básicos
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. 
Componentes
do computador 
3.Elementos funcionais básicos
Classificações comuns incluem, entre outras: 
Instruções de transferência de dados
Instruções aritméticas e lógicas
Instruções de teste e desvio
Componentes do computador 
Um conjunto de todas as instruções que um determinado computador reconhece e pode executar é chamado de conjunto de instruções;
Qualquer sequencia finita de instruções de um determinado conjunto de instruções compõe um programa; 
Componentes do computador 
 Programação de um processador:
A única linguagem que um processador entende e tem condições de executar é a linguagem de máquina; 
Linguagem de máquina é uma imagem numérica (binária) que representa a codificação do conjunto de instruções de um Computador; 
Todos os programas objeto de um computador estão representados e armazenados em linguagem de máquina.
Componentes do computador 
Programação de um processador:
Para facilitar as tarefas de programação e depuração, mnemônicos (em inglês) foram associados aos códigos das instruções, nomes aos operandos e rótulos (labels) às posições ocupadas pelo programa;
Um programa escrito com auxílio de símbolos, ou seja em linguagem simbólica, precisa ser traduzido em linguagem de máquina para que possa ser executado; 
Essa tradução recebe o nome de Montagem e, quando automatizada, o programa que a realiza recebe o nome de Montador.
Componentes do computador 
Modelo de Computador – O EDVAC 
No ENIAC, assim como nas máquinas que o antecederam, os programas e os dados eram armazenados em memórias separadas; 
O armazenamento inicial de programas e sua alteração constituía-se em uma atividade extremamente cansativa; 
A ideia de armazenar programas e dados na mesma unidade de memória - que corresponde ao conceito de programa armazenado é atribuída ao matemático húngaro John von Neumann. 
Componentes do computador 
Sua proposta foi publicada em 1945 para um computador novo, o EDVAC (Electronic Discrete Variable Computer); 
Além de facilitar o processo de programação, o conceito de programa armazenado torna possível ao programa modificar suas próprias instruções.
Componentes do computador 
Além de ser um computador de programa armazenado, o EDVAC trazia outras inovações:
Memória de capacidade bastante aumentada (principal com 1024 palavras de 44 bits cada, implementada através de uma linha de atraso em mercúrio, e secundária magnética de 20K palavras);
Representação interna em binário; 
E circuitos aritméticos binários seriais, devido à entrada de dados serial.
Componentes do computador 
Estrutura do EDVAC 
Componentes do computador 
O formato da instrução, a arquitetura e a organização escolhidas para a implementação do EDVAC resultaram em alguns problemas: 
Vamos considerar uma instrução matemática,que no EDVAC tem a seguinte forma : 
A(1)A(2)A(3)A(4)OP 
Componentes do computador 
A(1)A(2)A(3)A(4)OP 
Significa a operação OP com os conteúdos das posições A(1) e A(2), colocar o resultado em A(3), e depois vá para a próxima instrução que está em A(4); 
Todos os operandos correspondem a endereços de memória : dois são endereços de parcela,um é endereço de armazenamento do resultado final e o outro é endereço da próxima instrução;
Componentes do computador 
O que significa um grande número de interações com a memória. 
Como havia apenas um barramento para trafegar as informações,o que acontecia : 
Vai endereço da instrução e volta instrução;
Vai endereços dos operandos;
Vão e volta os operandos.
Componentes do computador 
O fato de existir somente um barramento de sistema que interliga seus componentes acarreta o chamado Gargalo de Von Neumann;
Isto porque a cada ciclo do computador somente uma instrução ou um dado trafega pelo barramento do sistema;
Componentes do computador 
O fato de instruções e dados utilizarem o mesmo caminho para serem transferidos da memória principal para a CPU inviabiliza a possibilidade de se explorar o paralelismo de operações para acelerar o processamento;
Para se eliminar o gargalo se propôs : 
Manter Informações na CPU;
Diminuir tamanho de bits das informações 
Inclusão de registradores.
Componentes do computador 
4. Modelo de von Neumann: o computador IAS
Em 1946, von Neumann e sua equipe iniciaram o projeto de um novo computador de programa armazenado: O computador IAS, elaborado no lnstituto de Estudos Avançados de Princeton(Princeton lnstitute for Advanced Studies);
Esta máquina influenciou de sobremaneira o projeto subsequente de outras máquinas. 
Componentes do computador 
Os blocos básicos componentes do IAS são:
Componentes do computador 
Uma unidade de processamento central, para execução de operações aritméticas e lógicas;
Uma unidade de controle de programa, para determinar o sequenciamento das instruções a serem executadas e gerar os sinais de controle para as outras unidades;
Estes sinais determinam as ações a serem executadas;
Componentes do computador 
Uma unidade de memória principal, com capacidade de 4096 palavras;
Uma unidade de entrada e saída.
Componentes do computador 
Na unidade central de processamento do IAS existe um novo elemento de armazenamento de dados, que é o acumulador (AC).
Este elemento atua como uma memória rápida que guarda de forma imediata o resultado das operações realizadas na unidade lógico-aritmética.
O acumulador é empregado intensamente em instruções que realizam estas operações.
Componentes do computador 
Suponha-se a realização de um programa que executa a soma de dois números.
Os dois números a serem somados estão armazenados nas posições 100 e 101 de memória. 
O resultado deve ser guardado na posição 102. 
Componentes do computador 
Exemplo de soma no IAS 
Componentes do computador 
Conjunto de Instruções
As instruções são divididas em agrupamentos de acordo com a sua função: instruções de transferência, de desvio condicional e incondicional, aritméticas e de modificação de endereço.
As instruções de transferência possibilitam a transferência entre posições de memória e registradores da UCP, sem que haja modificação nas informações (exceto nos casos em que é alterado o sinal). 
Componentes do computador 
As instruções de desvio fazem com que seja buscado um novo endereço, para a próxima instrução, na memória (se atendida uma condição, no caso do desvio condicional).
Estas instruções portanto permitem a alteração da sequencia de execução de um programa
Componentes do computador 
As instruções aritméticas fornecem os comandos básicos de processamento de informações ao computador.
As instruções de modificação de endereço permitem a manipulação de endereços na unidade lógico-aritmética e sua inserção posterior em instruções armazenadas na memória;
Componentes do computador 
Organização da UCP
A UCP do IAS contém alguns registradores para armazenamento temporário de instruções,endereços de memória e dados. 
O processamento de dados é realizado pelos circuitos lógico-aritméticos.
Componentes do computador 
Os circuitos de controle decodificam instruções, direcionam a informação através do sistema, e fornecem a temporização dos sinais para todas as ações.
Existe um relógio para a sincronização da operação do sistema. 
Componentes do computador 
Basicamente, existem as seguintes estruturas, cujas funções são descritas resumidamente:
Memória principal M: para o armazenamento de programas e dados;
Registrador de dados DR (com 40 bits): recebe dados lidos da posição X da memória (DR <- M(X)) ou fornece dados que serão gravados na posição X da memória (M(X) <- DR);
Também pode ser usado para armazenar dados temporariamente, durante a execução de uma instrução;
Componentes do computador 
Registrador de endereços AR (com 12 bits): armazena o endereço que servirá para apontar posições da memória;
Acumulador AC: armazenamento
temporário de operandos;
Registrador multiplicador-quociente MQ: armazenamento temporário de operandos;
Contador de programa PC ou registrador de endereço da instrução: armazena o endereço da próxima instrução a ser executada.
Componentes do computador 
Arquiteturas de 4, 3, 2, 1 e 0 endereços
Enquanto o EDVAC trabalhava basicamente com 4 endereços, o IAS apresentava somente um endereço; 
Mesmo assim, ambas as arquiteturas possuíam as mesmas capacidades. 
Componentes do computador 
Vamos fazer um estudo com relação a influência de endereços de memória nas instruções; 
Ao invés de uma análise detalhada de arquiteturas típicas de cada caso, será apresentada unicamente a programação de uma equação aritmética;
A = ((B + C)*D + E- F) / (G + H)
Componentes do computador 
As letras A até H denotam posições de memória (endereços), e supõe-se que a arquitetura analisada possui as quatro operações aritméticas (ADD para soma, SUB para subtração, MUL para multiplicação e DIV para divisão); 
Componentes do computador 
Arquitetura de 4 endereços
Em uma arquitetura típica de 4 endereços, as instruções apresentam o formato : 
OP E(1) E(2) E(3) E(4) 
Componentes do computador 
A prática demonstrou que normalmente os programas eram escritos seqüencialmente, isto é, uma instrução seguindo a anterior. 
Com isto modificou-se o mecanismo de
sequenciamento das instruções, o que deu origem às arquiteturas de três endereços.
Componentes do computador 
Arquitetura de 3 endereços
Em uma arquitetura típica de 3 endereços, as instruções apresentam o formato : 
 OP E(1) E(2) E(3)
Componentes do computador 
Instruções de três endereços, entretanto, ainda consomem muita memória; 
Além disto,observando-se o programa acima, nota-se que na maioria da vezes um dos operandos fonte e o operando destino indicam o mesmo endereço (como é o caso do operando A); 
Com isto modificou-se de maneira de indicar os operandos, o que deu origem às arquiteturas de dois endereços.
Componentes do computador 
Arquitetura de 02 endereços
Em uma arquitetura típica de 2 endereços, as instruções apresentam o formato: 
OP E(1) E(2) 
Componentes do computador 
Comparando este programa corn o da arquitetura de três endereços, nota-se que a primeira instrução (ADD B C A) foi substituída por outras duas, uma de movimentação (MOV A B) e outra de manipulação de dados (ADD A C).
O resultado final é o mesmo, mas o programa
possui mais instruções.
Entretanto, as instruções são menores, o que em termos finais proporciona uma grande economia de bits
Componentes do computador 
Arquitetura de um endereço
Em uma arquitetura típica de um endereço, as instruções apresentam o formato : 
OP E(1) 
Onde OP representa a operação a ser realizada e E(1) indica a localização de um operando de memória (normalmente um dos operandos fontes da operação). 
Componentes do computador 
O outro operando é: implicitamente assumido como sendo um registrador –específico,o Acumulador (normalmente abreviado por AC); 
O Acumulador assume os papéis de um dos operandos fonte e do operando destino.
Componentes do computador 
Arquitetura de um endereço
Componentes do computador 
Comparando-se este programa com o da arquitetura de três endereços, nota-se que existem duas instruções adicionais de transferência de dados, uma no início do programa (LDA B) e outra no fim (STA A); 
A grande vantagem deste tipo de arquitetura está na economia dos acessos à memória: praticamente cada operando foi lido ou escrito uma única vez, o que não ocorre nasarquiteturas anteriores.
Componentes do computador 
Este é justamente o papel dos registradores locais (ou acumuladores):
Permitir que resultados intermediários ou dados muito utilizados não precisem ser lidos ou escritos da memória a cada vez que forem utilizados.
Componentes do computador 
Arquitetura de zero endereços 
Em uma arquitetura típica de zero endereços, as instruções apresentam o formato : 
 OP 
Não existe nenhuma referência explícita a endereços de memória onde estejam localizados os operandos
Componentes do computador 
Uma possível solução para determinar a posição dos operandos é colocá-los em uma região específica de memória, com determinado mecanismo de acesso;
Uma estrutura muito utilizada para estes fins é uma pilha: os operandos são sempre retirados do topo da pilha, e o resultado da operação sempre é colocado no topo da pilha. 
Componentes do computador 
Para facilitar a operação desta estrutura de pilha, as equações são escritas utilizando-se notação polonesa reversa, onde o símbolo da operação é escrito após os dois operandos; 
Assim, por exemplo, A+B seria escrito AB+;
Com isto a equação exemplo fica : 
HCFEDCB+*+-//
Componentes do computador 
Arquitetura de zero endereços 
Componentes do computador 
Note-se que duas instruções (PUSH e POP) na realidade utilizam endereços.
Estas são, entretanto, as duas únicas instruções que necessitam referenciar endereços, e são somente operações de transferência de dados.
Componentes do computador 
Arquiteturas puras de zero endereços não apresentam vantagens marcantes sobre arquiteturas de um ou dois endereços, e por causa disto não são muito difundidas.
Os computadores atuais, entretanto, possuem estruturas do tipo pilha para propósitos específicos.
Componentes do computador 
Uso de Push / Pop em pilha – Estrutura de Dados 
Componentes do computador 
 OBRIGADO !!

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais