Baixe o app para aproveitar ainda mais
Prévia do material em texto
ARQUITETURA DE VON NEUMANN E HARVARD Arquitetura de von Neumann A Arquitetura de von Neumann (de John von Neumann), é uma arquitetura de computador que se caracteriza pela possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de memória que os dados, podendo assim manipular tais programas. A máquina proposta por Von Neumann reúne os seguintes componentes: (i) uma memória, (ii) uma unidade aritmética e lógica, (iii) uma unidade central de processamento (CPU), composta por diversos registradores, e (iv) uma Unidade de Controle (UC), cuja função é a mesma da tabela de controle da Máquina de Turing universal: buscar um programa na memória, instrução por instrução, e executá-lo sobre os dados de entrada. Cada um dos elementos apresentados é realizado à custa de componentes físicos independentes, cuja implementação tem variado ao longo do tempo, consoante a evolução das tecnologias de fabricação, desde os relés electromagnéticos, os tubos de vácuo (ou válvulas), até aos semicondutores, abrangendo os transistores e os circuitos electrónicos integrados, com média, alta ou muito alta densidade de integração (MSI - medium scale, LSI - large scale, ou VLSI - very large scale integration), medida em termos de milhões transistores por pastilha de silício. As interações entre os elementos exibem tempos típicos que também têm variado ao longo do tempo, consoante as tecnologias de fabricação. Atualmente, as CPUs processam instruções sob controle de relógios cujos períodos típicos são da ordem de 1 nanosegundo, ou seja, 10 − 9 segundos. As memórias centrais têm tempos típicos de acesso da ordem da dezena de nanosegundos. As unidades de entrada e saída exibem tempos típicos extremamente variáveis, mas que são tipicamente muito superiores à escala do nanosegundo. Por exemplo, os discos rígidos exibem tempos da ordem do milisegundos (milésimo de segundo, 10 − 3). Outros dispositivos periféricos são inertes, a não ser que sejam activados por utilizadores humanos. Por exemplo, ao se fazer "copy and paste" nao se-percebe nada do que foi descrito acima, pois um teclado só envia informação para o computador após serem pressionada as devidas teclas. Assim, este dispositivo se comunica com a CPU eventualmente e, portanto, exibe tempos indeterminados. Os microcontroladores com uma arquitetura Von-Neumann, de "microcontroladores CISC" (Computador com um Conjunto Complexo de Instruções). Von Neumann é uma arquitetura de computador utilizada no ARM7, com barramento de dados de 32 bits que se caracteriza pela possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de memória que os dados, podendo assim manipular tais programas. Ela pode ser dividida nas seguintes partes: Pipeline de instruções: essa arquitetura utiliza pipeline de três estágios para melhorar o fluxo das instruções para o processador, permitindo operações múltiplas simultâneas. Durante uma operação normal, enquanto uma instrução está sendo executada, a instrução seguinte está sendo decodificada, e uma terceira instrução está sendo buscada na memória. Isso pode ser visto na figura1 abaixo: Figura 1 - ilustração de um pipeline de instrução da arquitetura von Neumann No exemplo acima, a instrução str leva mais de um ciclo para executar, fazendo com que qualquer instrução seguinte seja paralizada. Para solucionar esse problema, podemos dividir a etapa de decodificação em partes, conforme mostra a figura 1. Formato da memória: interface de memória projetada para permitir a melhor performance e menor uso da memória. Sinais de controle crítico da velocidade são colocadas na lista encadeada (pipeline) para permitir que funções de controle do sistema possam aproveitar o modo de acesso mais rápido aos sinais de transmissão através de várias tecnologias de memória. No ARM7 existem 4 tipos básicos de ciclo: - Interno - Não-seqüencial - Seqüencial - Transferência co-processador O ARM7 pode ser configurado para armazenar as palavras em formato little-endian ou big-endian. Processador ARM7 (assim como o ARM9) suporta os seguintes tipos de dados: - Word, 32-bit - Half word, 16-bit - Byte, 8-bit Modos de operação: possui 7 modos (também vale para o ARM9), mostrados a seguir: - User Mode(USR): modo normal de execução do ARM, utilizado para executar a maioria dos programas aplicativos - Fast Interrupt (FIQ): modo que trata de interrupções rápidas - Interrupt (IRQ): modo usado para tratar interrupção de propósito geral - Supevisor (SVC): modo protegido para sistema operacional - Abort (ABT): modo usado depois que uma busca de dados ou instrução é abortada - Undefined (UND): modo utilizado quando uma instrução não definida é executada - System (SYS): modo usuário privilegiado para o sistema operacional O ARM7 tem 37 registradores de 32-bits, porém nem todos são disponíveis para dado modo. Co-processador: pode ser conectado ao sistema do ARM7 até 16 co-processadores, que são unidades de processamento firmemente acoplados ao processador ARM. Um típico processador contém: - Pipeline de instrução - Lógica de decodificação de instrução - Lógica handshake - Banco de registradores - Lógica especial de processamento com sua própria via de dados Recursos de debug: estado interno de um núcleo ARM pode ser examinado utilizando interface JTAG para permitir a inserção de instruções no pipeline do núcleo e evitando o uso de barramento de dados externo. O núcleo ARM7TDMI inclui uma unidade funcional interna conhecida como Embbeded ICE Logic, que serve para monitorar ativamente o núcleo ARM7TDMI para especificas buscas de instruções e acesso a dados. Arquitetura Harvard A Arquitetura de Harvard baseia-se em um conceito mais recente que a de Von- Neumann, tendo vindo da necessidade de por o microcontrolador para trabalhar mais rápido. É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador. Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permitindo que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de Von Neumann, pois pode buscar uma nova instrução enquanto executa outra. A principal vantagem desta arquitetura é dada pela dupla ligação às memórias de dados e programa (código), permitindo assim que o processador leia uma instrução ao mesmo tempo que faz um acesso à memória de dados. A arquitetura Havard também possui um repertório com menos instruções que a de Von-Neumann, e essas são executadas apenas num único ciclo de relógio. Os microcontroladores com arquitetura Havard são também conhecidos como "microcontroladores RISC" (Computador com Conjunto Reduzido de Instruções), e os microcontroladores com uma arquitetura Von-Neumann, de "microcontroladores CISC" (Computador com um Conjunto Complexo de Instruções). A arquitetura Harvard de computadores se baseia na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados. Isto permite que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de von Neumann, pois pode também estar buscando uma nova instrução enquanto está executando outra. Pipeline de instruções: o funcionamento do pipeline de instruções da arquitetura Harvard é semelhante ao da arquitetura von Neumann. Porém, ao invés da instrução ser divida em 3 partes independentes, ela é dividida em 5 partes (figura 2), sendo elas: - IF: busca da instrução na memória - ID: leitura dos registradores e decodificação da instrução - EX: execução da instrução/cálculo do endereço - MEM: acessoa um operando na memória - WB: escrita de um resultado em um registrador Figura 2 - ilustração de um pipeline de instrução da arquitetura Harvard Formato da memória: a interface de memória da arquitetura Harvard é semelhante à da arquitetura von Neumann. Modos de operação: semelhantes às da arquitetura von Neumann Co-processador: semelhante ao da arquitetura von Neumann Recursos de Debug: semelhantes às da arquitetura von Neumann Comparação entre arquiteturas A arquitetura Harvard é um conceito mais recente que a de von Neumann. Ela adveio da necessidade de se obter uma arquitetura que pudesse trabalhar mais rapidamente. Em um computador baseado na arquitetura von Neumann, a CPU pode tanto ler uma instrução ou ler/escrever um dado da/para a memória. Ambos não podem ocorrer ao mesmo tempo, pois a instrução e o dado utilizam o mesmo sistema de barramento. Num computador usando arquitetura Harvard, a CPU pode ler uma instrução e executar um acesso de dado na memória ao mesmo tempo, mesmo sem um cachê. Como seu pipeline possui 5 estágios, esse tipo de arquitetura consegue processar um número maior de instruções por ciclo de clock. Além disso, pode ser mais rápido para um dado circuito complexo porque as buscas de instruções e acesso a dados não são sustentados por uma única via de memória
Compartilhar