Baixe o app para aproveitar ainda mais
Prévia do material em texto
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INSTRUÇÕES ARITMÉTICAS Críjina Chagas AGENDA 1. Organização de um Computador • Arquitetura de Von Neumann (rápida revisão) 2. Arquitetura MIPS • Componentes básicos • Conceito de programa armazenado • Instruções básicas • Linguagem de Montagem (Assembly) • Instruções aritméticas Programa adaptado da aula Sistemas Processadores e Periféricos Prof. Frank Sill Torres DELT – Escola de Engenharia UFMG ORGANIZAÇÃO DE UM COMPUTADOR Arquitetura de Von Neumann ORGANIZAÇÃO DE UM COMPUTADOR ARQUITETURA MIPS MIPS (Microprocessor without Interlocking Pipeline Stages) Arquitetura tipo RISC Versões de 32 e 64 bits (nós usamos: 32 bits) Quase 100 milhões de processadores MIPS fabricados em 2009 Usada pela NEC, Nintendo, Cisco, Silicon Graphics, Sony, impressoras HP e Fuji, etc. ARQUITETURA MIPS Componentes básicos: Barramento Unidade de controle Banco de registradores Unidade lógica e aritmética (ALU) Contador de programa (PC) Registrador de instruções (IR) Memória ARQUITETURA MIPS ARQUITETURA MIPS Barramento A interconexão dos componentes básicos (exceto unidade de controle) se dá por meio do barramento (bus) Barramento é um conjunto de condutores por meio dos quais os bits são transmitidos Maior parte dos barramentos do MIPS tem 32 bits de largura ARQUITETURA MIPS Unidade de controle Implementado no nível de hardware para buscar uma sequencia de sinais de controle na memória (programa) e executá-las Envia sinais de controle para orientar os MUX sobre qual barramento de entrada deve ser selecionado para saída As trilhas de controle não estão mostradas no diagrama simplificado ARQUITETURA MIPS Banco de registradores A arquitetura MIPS possui um banco de 32 registradores Cada um deles comportam valores de 32 bits O nome de todos os registradores começa com o símbolo do cifrão: $ ARQUITETURA MIPS Banco de registradores Adota-se uma convenção que especifica quais deles devem ser utilizados em certas circunstâncias Os registradores PC (contador de programas) e IR (registrador de instrução) não fazem parte do banco de registradores ARQUITETURA MIPS Banco de registradores ARQUITETURA MIPS Unidade lógica e aritmética (ALU) Responsável pela execução (em binário) das seguintes operações: - Aritméticas - Lógicas (AND, OR, NOT, XOR) A operação a ser realizada depende do código de operação buscado na memória principal ARQUITETURA MIPS Contador de programa (PC) É um registrador que é inicializado pelo sistema operacional com o endereço da primeira instrução do programa armazenado na memória Todas as instruções têm 32 bits de tamanho Após uma instrução ser buscada na memória e armazenada no IR, o PC é incrementado em quatro Bytes, de forma que o CPU terá o endereço da próxima instrução a ser executada ARQUITETURA MIPS Memória Pode ser vista como um grande arranjo de células: •onde informações são armazenadas (store) •de onde informações são buscadas (load) Tais operações são realizadas sobre uma palavra por vez A arquitetura MIPS define palavras de 4 Bytes de tamanho A menor unidade de endereçamento é um Byte ARQUITETURA MIPS Registrador de instrução (IR) É um registrador de 32 bits que possui uma cópia da mais recente instrução buscada na memória A depender do código contido no IR, a unidade de controle determinará qual a operação a ser realizada ARQUITETURA MIPS Conceito de Programa Armazenado John Von Neumann em 1942 (também: “Arquitetura-von-Neumann”) Instruções são codificadas em bits add $17, $18, $19 00000010010100111000100000100000 Programas são armazenados na memória Instruções são lidas e escritas da memória assim como os dados que serão transformados (processados) ARQUITETURA MIPS Conceito de Programa Armazenado Ciclo de busca e execução da instrução (simplificado) 1. Instruções são lidas da memória e carregadas no registrador RI 2. Os bits da instrução guardada no registrador RI são decodificados e controlam as ações subsequentes 3. A instrução é executada e o endereço para a leitura da próxima instrução é calculado ARQUITETURA MIPS Linguagem de Montagem (Assembly) Todas as instruções aritméticas e lógicas com três operandos A ordem dos operandos é fixa (destino primeiro) Sintaxe de instruções assembly: o1. Label: opcional, identifica bloco do programa o2. Código de operação: indicado por um Mnemônico o3. Operandos: Registradores ou memória o4. Comentários: opcional, tudo que vem depois do # ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Sabendo-se que: 1) O código de instrução de soma é add; 2) Somente uma operação é feita por instrução; 3) Cada instrução tem três operandos: nesse caso 2 para serem somados e1 para guardar a soma; Como ficaria a sequencia de instruções para: a = b + c ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Sabendo-se que: 1) O código de instrução de soma é add; 2) Somente uma operação é feita por instrução; 3) Cada instrução tem três operandos: nesse caso 2 para serem somados e1 para guardar a soma; Como ficaria a sequencia de instruções para: a = b + c + d + e ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Exigir que cada instrução tenha exatamente 3 operandos, está de acordo com a filosofia de manter o hardware simples: 1) O hardware para um número variável de operandos é mais complicado do que o hardware para um número fixo; 1° Princípio de Projeto MIPS: A simplicidade favorece a regularidade ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Sabendo-se que: 1) O código de instrução da subtração é sub; 2) Somente uma operação é feita por instrução; 3) Cada instrução tem três operandos; Como ficaria a sequencia de instruções para: a = b + c d = a - e ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Sabendo-se que: 1) O código de instrução da subtração é sub; 2) Somente uma operação é feita por instrução; 3) Cada instrução tem três operandos; 4) Necessidade de estruturas temporárias; Como ficaria a sequencia de instruções para: f = (g+h) – (i+j) ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Operandos de hardware do computador: 1) Os operandos das instruções são restritos e precisam ser de um grupo limitado de locais especiais embutidos diretamente no hardware, chamados registradores. 2) Cada um dos 3 operandos das instruções aritméticas do MIPS precisa ser escolhido a partir dos 32 registradores de 32 bits. ARQUITETURA MIPS Linguagem de Montagem (Assembly) Motivo de serem 32 registradores: - Uma quantidade maior de registradores pode aumentar o ciclo do clock simplesmente porque os sinais eletrônicos levam mais tempo quando precisam atravessar uma distância maior. 2° Princípio de Projeto MIPS: menor significa mais rápido ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Operandos de hardware do computador: - Embora pudéssemos simplesmente escrever instruções usando números para os registradores, de 0 a 31, a convenção do MIPS é usar nomes com um sinal de cifrão seguido por dois caracteres para representar um registrador. Por convenção, teremos: - $s0,$s1..., $s7 - para registradores que correspondem às variáveis dos programas em C, Java... - $t0,$t1,...,$t7 – para registradores que possuem valores temporários para compilar o programa nas instruções MIPS. ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Exemplo Some b com c e coloque o resultado em a Equivalente ao comando em linguagem C : Instrução de linguagem de montagem : ARQUITETURA MIPS Exemplo INSTRUÇÕES ARITMÉTICAS Exemplo f = (g+h) – (i+j) As variáveis f,g,h,i e j são associadas aos registradores $s0, $s1, $s2, $s3 e $s4, respectivamente. Qual é o código MIPS compilado? INSTRUÇÕES ARITMÉTICAS Instruções imediatas: Constantes são usadas com frequência em operações; Nesses casos, incluir constantes em uma instrução agiliza as operações, em vez de carregar as constantes a partir da memória; Tais instruções são conhecidas como instruções imediatas. 3° Princípio de Projeto MIPS: Agilize os casos mais comuns As instruções imediatas ilustram este princípio. INSTRUÇÕES ARITMÉTICAS Instrução addi: addi = add immediate = operação usada para somar com uma constante Ex: a = b + 4; addi $s0, $s1,4 # $s0 $s1 + 4 ARQUITETURA MIPS Linguagem de Montagem (Assembly) Pseudo-Instruções: Instruções que não existem para o processador MIPS. Elas são chamadas pseudo-instruções e podem ser utilizadas pelo programador porque são traduzidas pelo montador para uma sequencia de instruções MIPS existentes. São algumas delas: li – load imediate (carregador imediato) Ex: li $t0,4 # $t0 4 ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Pseudo-Instruções: mult – Multiplicação Ex: mult $s0, $s1, $s2 # $s0 $s1 X $s2 div – Divisão Ex: div $s0, $s1, $s2 # $s0 $s1 / $s2 ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Exercícios: Escreva um código de instruções do MIPS que forem necessários para as situações abaixo: 2 X 5; 1° Passo: Carregar os números nos registradores li $t0,2 # $t0 2 li $t1,5 # $t1 5 2° Passo: Operação de multiplicação mult $t2, $t0,$t1 # $t2 $t0 x $t1 ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Exercícios: Escreva um código de instruções do MIPS que forem necessários para as situações abaixo: 8 + 3 - 7; 1° Passo: Carregar os números nos registradores li $t0,8 # $t0 8 li $t1,3 # $t1 3 li $t2,7 # $t2 7 ARQUITETURA MIPS Linguagem de Montagem (Assembly) – Instruções aritméticas Exercícios: Escreva um código de instruções do MIPS que forem necessários para as situações abaixo: 8 + 3 - 7; 2° Passo: Operação de adição add $t3, $t0,$t1 # $t3 $t0 + $t1 3° Passo: Operação de subtração sub $t4, $t3,$t2 # $t4 $t3 - $t2
Compartilhar