Arquitetura de Computadores Prof. João Bosco Jr. Aula 2 (CPU) Modelo do Computador Von Neumann ● ● Processadores Memórias ● ● E/S Barramentos Modelo do Computador Von Neumann CPU Fluxo de Execução Normal PC => PC+1 Memória 0 PC PC 1 ADD $3,$5 2 3 REGISTRADORES BARRAMENTO IR IR 7 4 5 6 7 6 Processador Organização ● Instruções – – ● OPCODE OPERANDOS (0 ou mais) Unidade de Controle – – Busca Decodifica (Determina o tipo) instruções Instruções de Desvio ● Instruções de Movimentação de Dados ● Instruções Lógicas e Aritméticas Unidade Lógica e Aritmética ● ● – Executa instruções Lógicas e Aritméticas (Obvio!) Processador Organização - Instruções ● Addlw 50 (PIC) 1 1 1 0 OPCODE 0 1 0 0 1 1 0 0 1 0 LITERAL ALU W Processador Organização – Unidade de Controle ● Addlw 50 (PIC) 1 1 1 0 OPCODE 0 1 0 0 1 1 0 0 1 MUX 0 LITERAL MEM Unidade De Controle ALU W Processador Organização (Cont...) ● Registradores – – – Memória interna a CPU de Alta velocidade Usados para armazenamento temporário e controle Registradores comuns (Não acessíveis geralmente) ● ● ● ● ● – PC (Program Counter): End. Próxima instrução IR (Instruct Register): Instrução sendo executada MBR(Memory Buffer Register): dado a ser lido/escrito na mem. MAR (Mememory Address Register ): endereço de/para onde o dado será lido/escrito STATUS: Resultado das operações (igual, overflow), modo de execução (supervisor, normal), etc Registradores de uso geral (Acessíveis) Modelo do Computador Von Neumann Memória CPU 0 PC PC 1 MAR MAR ADD $3,$5 2 3 REGISTRADORES BARRAMENTO IR IR MBR MBR 7 4 5 6 7 6 Processador Caminho de dados ● Registradores, ALU e Barramentos Ciclo do Caminho de Dados Processador Demo Processador Execução de Instrução 1) Mover a próxima instrução entre reg e mem 2) Alterar o Registrador PC 3) Determinar o tipo da instrução trazida 4) Se a instrução usar operandos verifica a localização 5) Buscar operandos para registradores internos, se for o caso 6) Executar a instrução 7) Voltar a passo inicial ● Ciclo Buscar – Decodificar - Executar Processador RISC x CISC ● CISC: Conjunto Complexo de Instruções – – – A evolução da tecnológica dos processadores levaram ao uso de microcódigo para fornecer mais instruções ao programador Instruções de máquina parecidas com as instruções de alto nível Consequência: Baixa complexidade do compilador Processador RISC x CISC ● ● ● RISC: Conjunto Reduzido de Instruções Registradores (até 32), ALU e Barramentos Instruções – – – ● ● Registrador-Memória (STORE) Memória-Registrador (LOAD) Registrador-Registrador (passam pela ALU) Compilador complexo Instruções executadas diretamente pelo nível da lógica digital Processador RISC x CISC - Resumo ● ● ● ● ● ● ● ● ● CISC ● Instruções complexas em múltiplos ciclos Qualquer instrução referencia memória Menor possibilidade de pipeline Microprograma interpreta instruções Instruções de tamanho variado Muitas instruções e modos de endereçamento Complexidade no microprograma Conjunto pequeno de registradores ● ● ● ● ● ● ● ● RISC Instruções consomem somente um ciclo Somente Load/Store referenciam memória Uso de pipeline Hardware (nível da logica digital) executa a instrução Instruções de tamanho fixo Poucas instruções e modo de endereçamento Complexidade esta no compilador Muitos conjuntos de registradores Processador Princípios de Projeto (RISC) ● ● ● Todas instruções devem ser executadas pelo HW (Abaixo o microcódigo!) Maximize a taxa de execução de instruções Instruções devem ser fáceis de decodificar – – ● Acesso à memória: – ● Comprimento fixo Número de campos pequeno Somente LOAD e STORE Registradores: Quanto mais melhor – Pelo menos 32 Processador Paralelismo ● Velocidade de Execução = Instruções/s – – ● De Instrução – ● Aumento do Clock (Limites tecnológicos) Aumento do número de unidade funcionais Pipeline, Arquiteturas Super Escalares De Processador – Maquinas Matriciais, Vetoriais, sistemas multiprocessados e MultiComputadores Processador Paralelismo de instrução Pipelining ● ● ● Divide a execução da instrução em etapas Permite uso otimizado das estruturas internas do processador Etapas – – – – – Busca da Instrução Decodifica a Instrução Busca de Operandos Execução da Instrução Armazenamento do resultado no registrador Processador Paralelismo de instrução Pipelining Processador Paralelismo de Instrução ● Arquiteturas Superescalares – – Executa várias instruções em um único ciclo Várias ALUs no estágio 4 ● Neste estágio as instruções levam vários ciclos Processador Paralelismo de processador ● Sistemas Multiprocessados – – UMA (SMP) NUMA Processador Paralelismo de Processador ● Multicompudadores – – ● Sistemas Distribuidos Clusters computacionais Supercomputadores – Matriciais ● – Vetoriais ● – ● Grande número de precessadores idênticos executando a mesma sequencia de instruções em diferentes conjuntos de dados Processadores com auto grau de paralelismo de entrada de dados Uso para processamento de matrizes Capitulo 8 (Tem mais sobre maq. paralelas) Processador Taxonomia de Flynn ● Classificação das Arquiteturas – ● SISD - Single Instruction single Data – ● Uma única instrução agindo sobre um conjunto de dados MISD Multiple Instruction Single Data – – ● Uma única instrução agindo sobre um dado SIMD - Single Instruction Multiple Data – ● Proposta por Michael Flynn em 1966 Multiplas instruções Agindo sobre um dado Nunca se ouviu falar de exemplos MIMD Multiple Instruction Multiple Data – Varias Instruções agindo sobre vários dados Processador Taxonomia de Flynn Processador Taxonomia de Flynn Aula 3 Memória Memória Bit ● ● ● 0 ou 1 Aritmética eficiente para computadores Fácil de representar usando fenômenos físicos – ● Ausência ou presença de tensão ou corrente Representação decimal (BCD) – Binary Coded Decimal (IBM) ● ● ● ● Conjuntos de 4 bits representando os digitos 0-9 Disperdício 16 bits BCD = 0 - 9999 Binário = 0 - 65535 Memória Bit ● ● Notações (representação de Binários) Reduzem o tamanho da string – Octal ● ● – 3 Bits (0-7) Ex: 110 101 100 011 -> 65438 Hexa(decimal) ● 4 Bits (0-F) – ● – A=11,B=12,C=13,D=14,F=15 1101 0110 0011 -> C6316 ou 0xC63 Questão: ● ● 738 -> binario? 0xFF -binario? Memória Endereços de Memória ● ● ● ● ● Celula: Armazena informações Memória: Conjunto de celulas endereçáveis Memória: N Celulas -> 0 a N-1 Endereços Celula: K bits -> 2k combinações diferente Palavra: (?) – – Agrupamento de Bytes Unidade de transferencia entre CPU e Memória Memória Endereços de Memória ● Diferentes disposições de uma memória de 96 bits Memória Ordenação de Bytes ● Big Endian – – Bytes numerados da esquerda para direita Sparc, MainFrame, Arm (celulares com android) Little Endian ● – – Bytes numerados da direita para a esquerda Intel Memória Ordenação de Bytes ● ● ● Isso é um questão de arquitetura ou organização? Problema na transmissão de dados entre hosts com diferentes tipos de ordenação. Little Endian x Big Endian – “Jim Smith, 21, 260” Memória Empacotamento e Tipos ● Tecnologias de construção – – SRAM (estática) – Uso de Flip-Flops – Cache DRAM (dinâmica) – Uso de Capacitor ● Refresh Necessário Memória Empacotamento e Tipos ● Assincronas – FPM (Fast Page Mode) ● – Usadas nos primeiros 486 EDO (Extended Data Out) Usadas em Pentium e 486 Síncronas: SDRAM (Frequencia do FSB) ● ● – SDR-SDRAM (Single data Rate) ● – DDR-SDRAM (Dual Data Rate) ● – Modos de operação: PC66, PC100, PC133 Dois lotes de dados por ciclo QDR-SDRAM (Quad Data Rate) ● ● Quatro lotes por ciclo RAMBUS Memória Empacotamento e Tipos ● SIPP - Single Inline Pin Package – ● SIMM - Single In Line Memory Module – ● 30 ou 72 contatos DIMM - Dual In Line Memory Module – ● Usado nos 286 e 386 168 e 184 (DDR) contatos RIMM – Rambus In Line Memory Modules Pin # Memória Empacotamento e Tipos EX.: SIMM-30 Pin # Signal Name Signal Description Signal Name Signal Description 1 VCC +5 VDC 16 DQ4 Data 4 2 /CAS Column Address Strobe 17 A8 Address 8 3 DQ0 Data 0 18 A9 Address 9 4 A0 Address 0 19 A10 Address 10 5 A1 Address 1 20 DQ5 Data 5 6 DQ1 Data 1 21 /WE Write Enable 7 A2 Address 2 22 GND Ground 8 A3 Address 3 23 DQ6 Data 6 9 GND Ground 24 A11 Address 11 10 DQ2 Data 2 25 DQ7 Data 7 11 A4 Address 4 26 QP Data Parity Out 12 A5 Address 5 27 /RAS Row Address Strobe 13 DQ3 Data 3 28 /CASP Something Parity 14 A6 Address 6 29 DP Data Parity In 15 A7 Address 7 30 VCC +5 VDC Memória Cache ● Problema – – ● ● ● CPU: evolução leva a aumento velocidade Memória: evolução leva aumento do tamanho Solução: Trazer memória para dentro da CPU – ● ● ● Restrição: Custo Funcionamento: Principio da Localidade de Referência Memória estática: SRAM Técnicas de escrita na cache – – ● Memórias mais lentas que CPU Causa: Barramento Write-Back Write-Through Cache em níveis – L1, L2, L3 Memória Cache FIM