Buscar

Aula 04 - Arquitetura e Organização de Computadores - Instruções Aritméticas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais