Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tópico 2: Arquitetura (Conceitos iniciais) Prof. Jhonattan Cordoba Ramirez Escola de Engenharia Universidade Federal de Minas Gerais (UFMG) ELT123 - Arquitetura e Organização de Computadores Roteiro • Introdução • Linguagem assembly Introdução Nível de aplicação (Software) Sistema operacional Arquitetura Programas Controladores de dispositivos Registrador de instruções • Visão que tem o programador do computador • Definido por instruções e localização dos operadores. • Linguagem utilizada para codificar instruções no nível da arquitetura: Linguagem MIPS - ASSEMBLY • Assembly é um formato de instruções entendível pelos humanos. • Linguagem de maquina é um formato legível pelos computadores. Introdução Unidade de controle de hardware Caminho de dados Instruções da cache Dados da cache Memoria principal Instruções Dados Unidade de controle de hardware Instruções e caminho de dados Memoria de controle para o micro programa Cache Memoria principal Dados RISC – Computador com conjunto de instruções reduzidas CISC – Computador com conjunto de instruções complexas Introdução CISC – Computador com conjunto de instruções complexas Computador onde conjunto de instruções únicas, podem executar varias instruções de baixo nível. •A lógica de decodificação de instruções será Complexa. •Uma instrução é necessária para suportar vários modos de endereçamento. •Menos espaço no chip é suficiente para registradores de uso geral para as instruções que 0 são operadas diretamente na memória. •Vários projetos CISC são configurados com dois registradores especiais para o ponteiro de pilha, tratamento de interrupções, etc. •MUL é referido como uma “instrução complexa Introdução RISC – Computador com conjunto de instruções reduzidas Computador onde comandos simples que podem ser divididos em várias instruções que atingem a operação de baixo nível dentro de um único ciclo •O RISC utiliza modos de endereçamento simples e instruções de comprimento fixo para pipelining. •Separa as instruções “LOAD” e “STORE”. •O RISC contém um grande número de registradores. •No RISC, o Pipelining é fácil, pois a execução de todas as instruções será feita em um intervalo de tempo uniforme, ou seja, um clique. •No RISC, mais RAM é necessária para armazenar instruções em nível de montagem. •Instruções reduzidas precisam de um número menor de transistores no RISC. • Arquitetura de computadores é um conjunto de regras e métodos que descrevem a funcionalidade, organização e implementação de sistemas de computador. • Arquitetura do conjunto de instruções (ISA - Instruction Set Architecture): O ISA define o código de máquina que um processador lê, por exemplo, o tamanho das palavras, hierarquia de memória, os modos de endereço de memória, os registros do processador, os tipos de dados, etc. • Microarquitetura: Também conhecido como ORGANIZAÇÃO DE COMPUTADORES e describe como um processador vai implementar a ISA. • Projeto de sistema (System Design): Inclui todos os outro componentes de hardware dentro do sistema computacional Introdução • Ciclo de Instrução (Ciclo Busca-Execução ou ciclo de maquina) • Busca da instrução (Instruction Fetch). • Decodificação da instrução corrente e cálculo do endereço de memória da próxima instrução. • Busca dos operandos (Operand Fetch) ou cálculo do endereço dos operandos. • Execução da operação representada pela instrução. • Armazenamento do resultado em um endereço de memória Introdução Princípios para o desenho de arquiteturas proposto por Hennessy e Patterson: Introdução • Simplicidade favorece regularidade • Faça o caso comum rápido • Menor é mais rápido • Um bom design exige bons compromissos Instruções: Adição e Subtração add: Mnemônico indica operação para executar. b, c: Operandos de origem (nos quais a operação é executada). a: Operando de destino (em que o resultado é escrito) 𝑎𝑎 = 𝑏𝑏 + 𝑐𝑐; 𝑎𝑎𝑎𝑎𝑎𝑎 𝑎𝑎, 𝑏𝑏, 𝑐𝑐 Código em linguagem C Código em linguagem MIPS Assembly Adição Princípio para o desenho 1 (simplicidade favorece regularidade) Formato de instrução consistente Mesmo número de operandos (duas fontes e um destino) Mais fácil de codificar e manusear em hardware Instruções: Adição e Subtração 𝑎𝑎 = 𝑏𝑏 − 𝑐𝑐; 𝑠𝑠𝑠𝑠𝑏𝑏 𝑎𝑎, 𝑏𝑏, 𝑐𝑐 Código em linguagem C Código em linguagem MIPS Assembly Subtração Um código mais complexo é manipulado por várias instruções MIPS. Instruções múltiplas Código em linguagem C Código em linguagem MIPS Assembly 𝑎𝑎 = 𝑏𝑏 + 𝑐𝑐 − 𝑎𝑎; 𝑎𝑎𝑎𝑎𝑎𝑎 𝑡𝑡, 𝑏𝑏, 𝑐𝑐 #𝑡𝑡 = 𝑏𝑏 + 𝑐𝑐 𝑠𝑠𝑠𝑠𝑏𝑏 𝑎𝑎, 𝑡𝑡,𝑎𝑎 #𝑎𝑎 = 𝑡𝑡 − 𝑐𝑐 Princípio para o desenho 2 (faça o caso comum rápido) • O MIPS inclui apenas instruções simples e comumente usadas • Hardware para decodificar e executar instruções pode ser simples, pequeno e rápido • Instruções mais complexas (menos comuns) são realizadas usando várias instruções simples • O MIPS é um computador com conjunto de instruções reduzido (RISC), com um pequeno número de instruções simples • Outras arquiteturas, como o x86 da Intel, são computadores de conjunto de instruções complexas (CISC) Operandos: Registradores Onde estão localizados fisicamente os operandos no computador? Registradores Memorias Constantes, também chamadas imediatos. • O MIPS tem 32 registros de 32 bits • Registros são mais rápidos que a memória • MIPS chamado de “arquitetura de 32 bits” porque opera em dados de 32 bits • Registradores: • $ antes do nome • Exemplo: $0, “registro zero”, “cifrão zero” • Registrador é usado para propósitos específicos Código em linguagem C Código em linguagem MIPS Assembly 𝑎𝑎 = 𝑏𝑏 + 𝑐𝑐; 𝑎𝑎𝑎𝑎𝑎𝑎 $𝑠𝑠𝑠, $𝑠𝑠𝑠, $𝑠𝑠𝑠 # $𝑠𝑠𝑠 = 𝑎𝑎; $𝑠𝑠𝑠 = 𝑏𝑏; $𝑠𝑠𝑠 = 𝑐𝑐 Princípio para o desenho 3 (menor é mais rápido) O MIPS inclui apenas um pequeno número de registros Operandos: Registradores Tópico 2: Arquitetura (Conceitos iniciais) Slide Number 2 Slide Number 3 Slide Number 4 Slide Number 5 Slide Number 6 Slide Number 7 Slide Number 8 Slide Number 9 Slide Number 10 Slide Number 11 Slide Number 12 Slide Number 13 Slide Number 14
Compartilhar