1 Arquitetura Von Neumann - notas de aula 1º.sem.2012 1. Modelo de Von Neumann • John von Neumann(Budapeste -28/12/1903) e colaboradores. • Conceito de programa armazenado na memória • Desenvolvido no IAS(Institute of Advanced Studies-Princeton\USA). Iniciado em1946 e finalizado em 1952 Programa armazenado na memória: • Um único controle centralizado (CPU única); • Uma memória única para dados e instruções; • As instruções devem fazer operações elementares sobre os dados. • Um programa para ser executado deve estar armazenado na memória. • Instruções devem ser levadas individualmente da memória principal para a CPU. 2 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Componentes básicos da arquitetura VNA: • Unidade lógico–aritmética (ULA); • Memória Principal (MP); • Dispositivos de entrada/saída; • Unidade de Controle coordena funcionamento dos componentes. • Barramentos o Diagrama básico do modelo de von Neumann. (MP) MEMÓRIA PRINCIPAL Unidade lógicoaritmética (ULA) Acumula dor (ACC) Unidade de controle (UC) Entrada e Saída (E/S) 3 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Modelo VNA (von Neumann Architeture) atual Componentes: CPU, Memória Principal, Dispositivos de Entrada e Saída e barramentos. Processadores (CPU -Central Processing Unit) Chips responsáveis pela: Execução de cálculos; Decisões lógicas e Execução de instruções. Fabricantes: Intel, AMD e VIA. Grande variedade de modelos. Conceitos e características comuns. Função da CPU: Controle, acesso e utilização da memória e dos dispositivos de entrada e saída. Componentes básicos da Arquitetura de von Neumann: • ULA (Unidade Lógica Aritmética); 4 Arquitetura Von Neumann - notas de aula 1º.sem.2012 • MP (memória Principal), • UC (Unidade de Controle). E • Dispositivos de Entrada e Saída (E/S) A ULA (Unidade Lógica e Aritmética) Componente que realiza as operações lógicas e aritméticas, tais como: • soma, • subtração, • multiplicação, • divisão e • operações lógicas tais como: • AND, OR,... De acordo com o modelo de processador, uma pequena memória armazena o resultado de operações da ULA – Acumulador (ACC). Registrador: 5 Arquitetura Von Neumann - notas de aula 1º.sem.2012 • Memória de alguns bits (registrador); • Em alguns modelos e=é denominado Acumulador (ACC) e tem a função de armazenar o resultado das operações realizadas pela ULA. UC (Unidade de Controle) Controla a execução do programa em atividades denominadas de ciclos de execução. Barramentos: Comunicação entre os dispositivos. Três tipos:: Endereços, dados e controle. Barramento de endereços: indica onde os dados devem ser enviados ou retirado. Comunicação unidirecional (da CPU para a memória principal) Barramento de dados: Por onde os dados transitam. Barramento de controle: Sincronização das atividades da 6 Arquitetura Von Neumann - notas de aula 1º.sem.2012 CPU; Habilitação ou desabilitação do fluxo de dados Funcionamento de um computador. Modo de Operação da CPU. Controle do funcionamento da CPU por um programa. Programa: série de instruções que o processador deverá executar para realização de suas tarefas. Carregamento do programa Um programa para ser executado deve ser transferido previamente para a memória principal (RAM).Nos computadores atuais os programas se encontram gravados em uma memória de grande capacidade de armazenamento,a a memória secundária (normalmente HD – Hard Disk). Este processo é denominado BOOT (bootstrap- jogar-se para dentro). Após o carregamento do programa ma memória principal o programa passa a ser executado. A execução consiste de vários ciclos. Ciclos de execução: Ciclo de busca: Busca da instrução na memória; 7 Arquitetura Von Neumann - notas de aula Ciclo de execução: execução da instrução. 1º.sem.2012 Interpretação e RESUMO: • Em máquinas VNA, as computacionais ocorrem na CPU. ações • Instruções e dados ficam armazenados na memória principal até que sejam requeridas pela CPU. Modelo revisado de um sistema computadorizado • Novos conceitos e tecnologias • Melhorar o Neumann desempenho • Mais velocidade • Novos métodos de operação • Memória cache de máquinas von 8 • Pipeline. Arquitetura Von Neumann - notas de aula 1º.sem.2012 Modelo de arquitetura que inclui memória cache. CPU ENTRADA SAÍDA CACHE MEMÓRIA PRINCIPAL CONTROLADORA DE CACHE Conceito de memória cache. A controladora de cache coordena o movimento de dados entre a memória principal e a memória cache. Memória cache Modo de operação da CPU: • A CPU busca instruções sequencialmente na memória principal. • A memória principal não consegue rapidamente as instruções à CPU • A CPU fica em estado de espera (wait state) fornecer 9 Arquitetura Von Neumann - notas de aula 1º.sem.2012 • Usadas para compensar limitação de velocidade da memória principal. • Tempo de resposta processamento próximo ao tempo de Tempo de resposta Intervalo de tempo que a informação é solicitada ao dispositivo até o momento que a informação é disponibilizada pelo dispositivo. A tecnologia das memórias cache SRAM (Static RAM) Maior desempenho que a Memória Principal (DRAM) Maior custo e maior consumo de energia Mais volumosas Função da memória cache Copiar previamente dados e instruções para serem usados pela Memória Principal. 10 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Capacidade da memória cache: Kilobytes até Megabytes. (Servidores usam memórias cache de alguns MB). Localização das memórias cache: • L1 (Level 1) - Internas à CPU • L2 (Level 2) – Na placa mãe. O modo de operação da CPU Mover e transformar dados binários. Transformação de dados Operações lógicas e aritméticas: AND, OR, NOT , + - * /... Movimento de dados Movimento de dados entre os componentes internos à CPU e para os dispositivos externos à CPU: 11 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Internos: Registradores, ULA, ... Externos: Memória e periféricos Modelo de CPU Intel: arquitetura 80XX. UC ULA AX BX CX DX IP Descrição dos componentes AX, BX, CX, DX, são registradores de 16 bits. IP (Instruction Pointer-ponteiro de instruções) contém o endereço da próxima instrução a ser executada. A ULA realiza operações lógicas ou aritméticas com dados em registradores. O movimento dos dados é feito via barramentos. Todo o processo é coordenado pela UC. 12 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Programa (em sua forma fundamental) - Deve estar codificado em linguagem binária. Exemplo: A soma entre dois valores binários. 1234H (0001 0010 0011 0100B) + 1022H (0001 0000 0010 0010B). H e B, indicam valores em Hexadecimal e Binário. Modo de Operação O programa contem instruções (em formato binário) que serão interpretadas pela CPU (via Unidade de Controle) para realizar a soma. Os valores estão armazenados em operandos. Linguagem de máquina Instrução em assembly : ADD AX, BX. Assembly significa linguagem de montagem. É uma codificação próxima à linguagem de máquina, baseada em mnemônicos (palavras reduzidas que representam a operação da CPU). Exemplos ADD é um MNEMONICO que significa SOMA. SUB é um MNEMONICO que significa SUBTRAÇÃO. ADD AX, BX realiza a soma entre os conteúdos dos registradores AX e BX e GUARDA o resultado da operação em AX. 13 Arquitetura Von Neumann - notas de aula tem a seguinte simbologia: AX 1º.sem.2012 AX + BX. Significado: O conteúdo do Registrador AX é somado com o conteúdo do registrador BX; O resultado é armazenado em AX. No exemplo: AX deverá conter previamente o valor 1234H. BX deverá conter o valor 1022H Estes valores são para as entradas da ULA A ULA é instruída para realizar a SOMA destes valores. O resultado desta operação será armazenado em AX. Nota: As operações realizadas pela CPU são definidas no projeto da arquitetura do computador. Após a operação SOMA (ADD), o registrador AX recebe o resultado da soma (1234H + 1022H= 2256H). O conteúdo anterior de AX (1234H) é perdido. O valor em BX permanece inalterado. Exercício. Sendo: AX = 0101H BX=F0F0 CX=1234H e DX=ABCD 14 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Efetue as operações e apresente os resultados: a) ADD AX,BX AX= BX= b) SUB DX,AX DX= AX c) AND DX,AX DX= AX= d) OR CX,BX CX= FX= e) XOR AX,BX AX= BX= f) MOV AX, DX AX= DX= Exercício: Uma operação muito importante em redes de computadores é o de identificação de redes. Sejam quatro grupos contendo cada um deles os valores em base decimal: 192.168.2.32 e 255.255.255.0. A operação AND entre estes valores é usada para identificar a rede. Qual o resultado da operação AND entre os valores acima. Faça a operação em grupos de elementos em binário. 15 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Leitura de dados na memória. A leitura da dados e programas é um passo fundamental na operação de um computador. Exemplo. Leitura do conteúdo do endereço de memória 0100H. Memória (RAM) Endereço Conteúdo 0000H 0101010101H ULA ULA AX, BX, .... UC B de dados B de endereços 0001H 11110000H 0100H 00001000 01010101B 0100H B. de controle (Read/Enable) FFFEH 011100111011B FFFFH 001100110011B Leitura de memória do conteúdo da posição de memória 0100H. (As setas indicam a direção dos movimentos) • O valor do endereço 0100H é colocado no barramento de endereços. • A CPU “avisa” a memória para leitura: Read (barramento de controle) • A memória disponibiliza os dados contidos no endereço 0100H • A CPU recebe os dados em seus registros internos. A escrita de um dado na memória é similar a leitura 16 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Quantidade de memória de um computador “A quantidade máxima de memória de um computador é definida pelo número de linhas (tamanho) do barramento de endereços.” Um barramento de endereços com n linhas de comunicação pode endereçar 2n posições de memória. Exemplos. Um sistema com barramento de endereço de 16 bits pode endereçar: 216= 65536 (10) posições de memória. Endereço inicial: 0(10) Endereço final: 65535 (10). (10) indica base decimal 17 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Exemplo. O 8088 e 8086 são processadores com barramento de endereços de 20 bits. Podem acessar: 1.048.576 (1Mega ou 2 20) posições de memória. O tamanho do barramento de endereços determina o limite físico da memória (RAM) Atualmente os barramentos de endereço tem tamanho de 32 bits, que lhes permitem acessar 232 posições, ou seja possui 4giga endereços. Exemplos de barramentos 8088 20bits 80286, 80386sx 24bits 80486, Pentium I 32bits 220 = 1 1048.576 Um Mega 24 2 =16.777.246 16Mega 232 = 4.294.976.296 Quatro Giga Sob o ponto de vista lógico a memória é uma lista linear de bytes. O endereço do primeiro byte é zero e O endereço do último byte é: 2n-1. Onde n é o numero de linhas (tamanho) do barramento de endereços. 18 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Nota. Existem valores bem conhecidos para potencias de 2: 210 = 1 024 220 = 1 1048.576 230 = 1 073 741 824 Um Kilo - 1K Um Mega - 1M Um Giga - 1G Valores para potencias de 2 podem ser obtidos pela propriedade matemática: 2n . 2m = 2n+m Exemplo: 232 = 22 . 230 = 4 . Giga Calcule as seguintes capacidades de memória: a) 222 = b) 216 = c) 234 = d) 225 = O Barramento de Controle 19 Arquitetura Von Neumann - notas de aula 1º.sem.2012 • Sinais eletrônicos para coordenar a comunicação entre os componentes do sistema • Possibilita o envio ou recebimento de dados • Informações de status ( a "A CPU está enviando ou recebendo dados"), ou de um dispositivo (ligado, desligado, em espera...). • Contêm sinais de alimentação, clock e muitos outros que dependem do processo em execução e do dispositivo. 20 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Execução de uma instrução. Mais detalhes. Em arquiteturas VNA, um programa em execução deve estar carregado na memória (RAM). Seja a instrução de soma: ADD AX,BX; AX ← AX+BX Somar o conteúdo dos registradores AX e BX e Guardar o resultado em AX. A expressão ADD é o mnemônico de soma Mnemônico compreendida assembly. é uma representação pelos programadores em A instrução deve ser traduzida por um programa montador (Assembler) que produz um formato que é entendido pela CPU: Linguagem de máquina ou linguagem de baixo nível. Instrução em assembly: ADD AX,BX Código de máquina: 01D8H. 21 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Execução da instrução ADD AX,BX (programa): • A instrução 01D8H está na memória • A CPU conhece o endereço da instrução • O endereço da instrução está no registrador IP (Instruction Pointer). *O IP é um registrador que contém o endereço da próxima instrução a ser executada pela CPU. • O conteúdo do IP é transferido ao barramento de endereços. • A memória recebe este valor e busca o conteúdo da posição da memória 0100H. • A memória devolver pelo barramento de dados o valor 01D8H • A CPU recebe este valor e através da UC interpreta este valor A ULA é programada para realizar a operação (ADD AX, BX). 22 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Memória (RAM) UC: 01D8H ULA B0100H de dados 01D8H B de endereços (Read) B. de controle Enable B. de controle Ready IP: 0100H Endereço Conteúdo 0100H 01D8H AX, BX, .... Execução da instrução ADD AX, BX. • O endereço 0100H é colocado no barramento de endereços. • A CPU envia sinais de controle: Read - indicando uma leitura; Enable - ativando a operação da memória. • A memória disponibiliza os dados contidos no endereço 0100H (valor 01D8H) • A memória informa que o dado está disponível (Ready) • A CPU recebe os dados em seus registros internos • A CPU interpreta a instrução para a execução pela ULA 23 Arquitetura Von Neumann - notas de aula 1º.sem.2012 *Setas indicam movimento: dados, endereço e controle. Notas. • Um componente da PCU, decodificador de instrução, converte as instruções que estão em linguagem de máquina para operações internas à CPU. • O código 01D8 (em assembly: add ax, bx) é convertida em instruções simples (micro instruções, microcódigo) que são executadas pelos dispositivos da CPU. Os sistemas processados podem ser classificados em: Abertos e proprietários. Os sistemas proprietários mantém o direito de posse completo sobre o mesmo (Sistema operacional Windows, Sistemas IBM, Apple,...). Sistemas abertos estão disponibilizados para uso sem custos (Sistema operacional Linux,...) 24 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Exercícios 1 – Considere uma CPU Intel 80xx. a) Qual a instrução assembly para realizar a subtração de dois valores que estejam em BX e AX?; Resp. ADD BX,AX b) Qual a instrução assembly para realizar a soma entre valores que estejam em CX e DX? Resp. ADD CX,DX c) Qual a instrução assembly para realizar a subtração entre valores que estejam em CX e DX. Resp. SUB CX<DX 2 – Considere um computador operando em modo DOS esteja operando com o DEBUG. a) Como carregar os registradores com os valores: AX 1012 BX 4572 CX 712F. b) Como executar a soma 1012 + 712F, após o item a. c) No item anterior diga como reconhecer os resultados 25 Arquitetura Von Neumann - notas de aula Evolução Tecnológica 1º.sem.2012 26 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Memória (RAM) 4 - Assinale V ou F ( ) Sistemas de memórias cache são implementadas com memórias de tecnologia DRAM com tempo de acesso da ordem de 1 a 5 ns ( ) Sistemas de memórias principal são implementadas com memórias de tecnologia SRAM com tempo de acesso da ordem de 10ns ( ) Pipeline é um método para acelerar o processamento diminuindo o tempo de acesso à memória principal. ( ) Os HD´s são sistemas de memória secundária implementadas com unidades magnéticas com tempo de acesso da ordem de 10ms. ( ) As memória cache em nível 1 são internas à CPU 5 - Complete (i) - Calcular a duração do pulso do clock para um computador de: 1,38GHz: _ _________b- 2,62GHZ:________c – 3,7GHz: ________________ (ii) – Calcular o tempo gasto para o sinal de clock percorrer as seguintes distancias: a –1,2 mm: ________b- 1,40 mm:__________c- 14 cm: _______ d- 1,25m:_____________ e- 15m:_____________ (iii)3 – Indique o valor de x nas seguintes expressões. Considere: B= Byte; b=bit; K=1024; M = 1K vezes 1K; 1G = 1M vezes 1K a) 524288b = x Kb x=__________ b) 196608K = xM x= _______________ c) 256KB = xb x=__________ d) x=_______________ 8GB = xb 27 Arquitetura Von Neumann - notas de aula 1º.sem.2012 (iv) – Escreva os seis endereços posteriores de 2B12H. Escreva os seis endereços anteriores a 2B12H: (v) – Considere uma memória de 1024KB (1024 posições e em cada posição existe 1 Byte). Responda: a ) Qual é o maior endereço desta memória em decimal. b) Qual é o tamanho do barramento de dados? c) Qual é o tamanho do barramento de endereços? 6Responda usando a questão A0 como referência. A0 - Explique todas as etapas de criação de um programa em assembly, desde a criação do arquivo fonte (edição) até a execução. Apresente os arquivos criados. Escreva um programa simples para imprimir o seu nome. A1 – Explique as diferenças entre as pseudoinstruções EXICODE e END. A2 – Explique como funciona a impressão de string utilizando a função 9 da INT 21H. A3 – Como é assembly A4 – Escreva um programa assembly completo para imprimir a sequencia: M, N,O,P,Q. construído um LOOP usando o A8- Sendo AX=00FFH. BX=01ABH; CX=F0FAH DX=000FH. Obtenha o resultado das instruções. E A5 – Escreva um programa assembly para imprimir a sequencia: 0, 2, 4, 6 , 8; O código ASCII do ZERO é 30H. ADD AX,BX. AX= _______________ BX=_____________ SUB CX,BX. BX=________________ CX=_____________ A6 – Escreva um programa para preencher toda a tela com o alfabeto (A, B, C, …Z). AND CX,DX CX=________________ DX=_____________ XOR AX,DX AX=________________ DX=_____________ A7 -Escreva um programa para: a – Posicionar o cursor na linha 10 e coluna OR BX,DX BX=________________ DX=_____________ 10 b – Receber um caractere, sem eco. c – Testar o caractere recebido: Se for 1, repetir o item a. Se for outro caractere, encerrar. 28 Arquitetura Von Neumann - notas de aula 1º.sem.2012 História da Arquitetura Intel Desde 1978 e as evoluções 8086 • Registradores de 16 bits; • Barramento externo (Entrada e saída) de 16 bits • Endereço de memória de 20 bits (Um Megabyte de memória principal). 8088 (semelhanças com o 8086) • Barramento de dados externo de 8 bits • Segmentação de memória • Registrador de segmento (16 bits) contêm um apontador para um segmento de memória de até 64 Kb. • Quatro registradores de segmentos endereçam até 256 Kb (sem efetuar a troca de segmentos). 286 • Operação em modo protegido. • Registrador de endereçamento de base de 24 bits Memória física se estenda até 16 MB. • Suporte para o gerenciamento de memória virtual • Mecanismos de proteção de memória • Até 4 níveis de privilégio para proteção do código do sistema operacional 29 Arquitetura Von Neumann - notas de aula 1º.sem.2012 386 • Registradores de 32 bits (manipulação de operando e endereçamento) • Um novo modo virtual do 8086 • Barramento de endereços de 32 bits (4 GB de memória física). • Conceito de paginação (páginas de 4 Kb) (gerenciamento de memória virtual) • Compatibilidade retroativa. • 6 estágios de operação pipeline: • 486 • Mais capacidade de execução em paralelo • Cinco estágios de pipeline. • Cache de 8 Kb em um chip • Integração do coprocessador x87 no chipset, • Suporte a conservação e gerenciamento de energia • Outras capacidades para notebooks. 30 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Pentium • Pipeline • Execução superescalar • O cache de primeiro nível (L1) 8 KB dedicados para codificar 8KB voltados para dados. • Os registradores principais de 32 bits • Barramentos internos de 128 e 256 bits (maior taxa de transferência interna). Pentium 4 • Velocidades maiores de clock. • Streaming SIMD Extensions 2 • (extensão da tecnologia MMX com 144 novas instruções) • Suporte a operações de inteiros e ponto flutuante com 128bits • Acelerar o processamento • (vídeo, voz, encriptação de dados e processamento de imagem e fotos digitais). • Throughput 3.2 GB por segundo • Compatibilidade retroativa com aplicações da família Intel de processadores (32 bits). 31 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Arquitetura AMD Características da arquitetura do AMD Athlon 64. I • Execução de aplicativos de 32 bits (sem necessidade de emulação) • HyperTransport (tecnologia de conexão ponto-a-ponto) • Controladora de memória integrada ao processador Modos de operação • Conexão direta das Memórias à controladora de memória (mesma frequência do processador). Nota: HyperTransport é uma conexão ponto a ponto, projetada para comunicação entre os circuitos integrados periféricos. 32 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Arquitetura AMD - Athlon 64 Outros recursos da arquitetura do processador • Registradores de Uso Geral (GPR - General Purpose Registers) de 64 bits. • Endereçamento: até 1 Terabyte de memória física 256 Terabytes de memória virtual. • Processador superescalar de 9 vias (9 instruções simultâneas) • Três unidades ULA´s • Três Unidades de Geracão de Endereços (AGU’s: Adress-Generation Units) • Três Unidades de Cálculo de Ponto-Flutuante (FPU’s: Floating Point Units) 33 Arquitetura Von Neumann - notas de aula 1º.sem.2012 AMD Athlon L1: 64 KB para instruções, 64 KB para dados L2: 512 KB de cache L2. A capacidade de cada tipo de cache varia conforme o modelo do processador. 34 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Processadores Multicore Características de Servidores e workstations Slots adicionais para processadores. Aplicações de grandes recursos de processamento. Elevados custos Nichos de mercado Taxa de clock interno designa desempenho. Limitações físicas e tecnológicas para aumento do clock. Maior frequência, significa maior aquecimento. 35 Arquitetura Von Neumann - notas de aula 1º.sem.2012 Processador Multicore Dual-core ou multi-core Dois ou mais núcleos no mesmo circuito integrado Dois ou mais processos por vez. Um para cada núcleo; Melhor desempenho como um todo, Execução de vários processos simultâneos. Intel Core 2 - Quad Q6600 2.4ghz 1066mhz Fsb 36 Arquitetura Von Neumann - notas de aula Bits dos processadores - 1º.sem.2012 Número de bits que o processador trata em cada operação; Quantidade de dados que a CPU processa por pulso de clock. Mais bits internos, mais desempenho. Exemplos 16 bits 80286 (Intel): 32 bits Pentium, PentiumII, PentiumIII e Pentium4 ou Athlon XP e Duron da AMD. 64 bits Core 2 Duo, da Intel ou Athlon 64, da AMD. 37 Arquitetura Von Neumann - notas de aula 1º.sem.2012