Anda di halaman 1dari 39

ARQUITETURA E ORGANIZAO DE COMPUTADORES

INSTRUES ARITMTICAS

Igor Luiz Oliveira de Souza

AGENDA
1. Organizao de um Computador

Arquitetura de Von Neumann (rpida reviso)


2. Arquitetura MIPS
Componentes bsicos
Conceito de programa armazenado
Instrues bsicas
Linguagem de Montagem (Assembly)
Instrues aritmticas
Programa adaptado da aula Sistemas Processadores e Perifricos
Prof. Frank Sill Torres
DELT Escola de Engenharia UFMG

ORGANIZAO DE UM COMPUTADOR

Arquitetura de Von Neumann

ORGANIZAO DE UM COMPUTADOR

ARQUITETURA MIPS
MIPS (Microprocessor without Interlocking Pipeline Stages)
Arquitetura tipo RISC
Verses de 32 e 64 bits (ns usamos: 32 bits)
Quase 100 milhes de processadores MIPS fabricados em 2009
Usada pela NEC, Nintendo, Cisco, Silicon Graphics, Sony, impressoras
HP e Fuji, etc.

ARQUITETURA MIPS
Componentes bsicos:
Barramento
Unidade de controle
Banco de registradores
Unidade lgica e aritmtica (ALU)
Contador de programa (PC)
Registrador de instrues (IR)
Memria

ARQUITETURA MIPS

ARQUITETURA MIPS
Barramento
A interconexo dos componentes bsicos (exceto unidade de
controle) se d por meio do barramento (bus)
Barramento um conjunto de condutores por meio dos quais os bits
so transmitidos
Maior parte dos barramentos do MIPS tem 32 bits de largura

ARQUITETURA MIPS
Unidade de controle
Implementado no nvel de hardware para buscar uma sequencia de
sinais de controle na memria (programa) e execut-las
Envia sinais de controle para orientar os MUX sobre qual barramento
de entrada deve ser selecionado para sada
As trilhas de controle no esto 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 comea com o smbolo do
cifro: $

ARQUITETURA MIPS
Banco de registradores
Adota-se uma conveno que especifica quais deles devem ser
utilizados em certas circunstncias
Os registradores PC (contador de programas) e IR (registrador
de instruo) no fazem parte do banco de registradores

ARQUITETURA MIPS
Banco de registradores

ARQUITETURA MIPS
Unidade lgica e aritmtica (ALU)
Responsvel pela execuo (em binrio) das seguintes operaes:
- Aritmticas
- Lgicas (AND, OR, NOT, XOR)
A operao a ser realizada depende do cdigo de operao buscado
na memria principal

ARQUITETURA MIPS
Contador de programa (PC)
um registrador que inicializado pelo sistema operacional com o
endereo da primeira instruo do programa armazenado na memria
Todas as instrues tm 32 bits de tamanho
Aps uma instruo ser buscada na memria e armazenada no IR, o PC
incrementado em quatro Bytes, de forma que o CPU ter o endereo
da prxima instruo a ser executada

ARQUITETURA MIPS
Memria
Pode ser vista como um grande arranjo de clulas:
onde informaes so armazenadas (store)
de onde informaes so buscadas (load)

Tais operaes so realizadas sobre uma palavra por vez


A arquitetura MIPS define palavras de 4 Bytes de tamanho
A menor unidade de endereamento um Byte

ARQUITETURA MIPS
Registrador de instruo (IR)
um registrador de 32 bits que possui uma cpia da mais recente
instruo buscada na memria
A depender do cdigo contido no IR, a unidade de controle determinar
qual a operao a ser realizada

ARQUITETURA MIPS
Conceito de Programa Armazenado
John Von Neumann em 1942 (tambm: Arquitetura-von-Neumann)

Instrues so codificadas em bits


add $17, $18, $19

00000010010100111000100000100000

Programas so armazenados na memria


Instrues so lidas e escritas da memria assim como os dados
que sero transformados (processados)

ARQUITETURA MIPS
Conceito de Programa Armazenado
Ciclo de busca e execuo da instruo (simplificado)
1. Instrues so lidas da memria e carregadas no registrador RI
2. Os bits da instruo guardada no registrador RI so decodificados e controlam
as aes subsequentes
3. A instruo executada e o endereo para a leitura da prxima instruo
calculado

ARQUITETURA MIPS
Linguagem de Montagem (Assembly)
Todas as instrues aritmticas e lgicas com trs operandos
A ordem dos operandos fixa (destino primeiro)

Sintaxe de instrues assembly:


o1. Label: opcional, identifica bloco do programa
o2. Cdigo de operao: indicado por um Mnemnico
o3. Operandos: Registradores ou memria
o4. Comentrios: opcional, tudo que vem depois do #

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Sabendo-se que:
1) O cdigo de instruo de soma add;
2) Somente uma operao feita por instruo;
3) Cada instruo tem trs operandos: nesse caso 2 para serem
somados e1 para guardar a soma;
Como ficaria a sequencia de instrues para:
a=b+c

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Sabendo-se que:
1) O cdigo de instruo de soma add;
2) Somente uma operao feita por instruo;
3) Cada instruo tem trs operandos: nesse caso 2 para serem
somados e1 para guardar a soma;
Como ficaria a sequencia de instrues para:
a=b+c+d+e

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Exigir que cada instruo tenha exatamente 3 operandos, est de acordo
com a filosofia de manter o hardware simples:
1) O hardware para um nmero varivel de operandos mais
complicado do que o hardware para um nmero fixo;
1 Princpio de Projeto MIPS: A simplicidade favorece a regularidade

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Sabendo-se que:
1) O cdigo de instruo da subtrao sub;
2) Somente uma operao feita por instruo;
3) Cada instruo tem trs operandos;
Como ficaria a sequencia de instrues para:
a=b+c
d=a-e

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Sabendo-se que:
1) O cdigo de instruo da subtrao sub;
2) Somente uma operao feita por instruo;
3) Cada instruo tem trs operandos;
4) Necessidade de estruturas temporrias;
Como ficaria a sequencia de instrues para:
f = (g+h) (i+j)

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Operandos de hardware do computador:
1) Os operandos das instrues so restritos e precisam ser de um
grupo limitado de locais especiais embutidos diretamente no hardware,
chamados registradores.
2) Cada um dos 3 operandos das instrues aritmticas 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 eletrnicos levam mais tempo
quando precisam atravessar uma distncia maior.
2 Princpio de Projeto MIPS: menor significa mais rpido

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Operandos de hardware do computador:
- Embora pudssemos simplesmente escrever instrues usando
nmeros para os registradores, de 0 a 31, a conveno do MIPS usar
nomes com um sinal de cifro seguido por dois caracteres para representar
um registrador. Por conveno, teremos:
- $s0, $s1..., $s7 - para registradores que correspondem s
variveis dos programas em C, Java...
- $t0,$t1,...,$t7 para registradores que possuem valores
temporrios para compilar o programa nas instrues MIPS.

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Exemplo
Some b com c e coloque o resultado em a
Equivalente ao comando em linguagem C :

Instruo de linguagem de montagem :

ARQUITETURA MIPS
Exemplo

INSTRUES ARITMTICAS
Exemplo
f = (g+h) (i+j)
As variveis f,g,h,i e j so associadas aos registradores $s0, $s1, $s2, $s3 e $s4,
respectivamente. Qual o cdigo MIPS compilado?

INSTRUES ARITMTICAS
Instrues imediatas:
Constantes so usadas com frequncia em operaes;
Nesses casos, incluir constantes em uma instruo agiliza as operaes, em vez de
carregar as constantes a partir da memria;
Tais instrues so conhecidas como instrues imediatas.
3 Princpio de Projeto MIPS: Agilize os casos mais comuns
As instrues imediatas ilustram este princpio.

INSTRUES ARITMTICAS
Instruo addi:
addi = add immediate = operao usada para somar com uma constante
Ex: a = b + 4;
addi $s0, $s1,4

# $s0

$s1 + 4

ARQUITETURA MIPS
Linguagem de Montagem (Assembly)
Pseudo-Instrues:
Instrues que no existem para o processador MIPS. Elas so chamadas
pseudo-instrues e podem ser utilizadas pelo programador porque so
traduzidas pelo montador para uma sequencia de instrues MIPS
existentes. So algumas delas:
li load imediate (carregador imediato)
Ex: li $t0,4 # $t0

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Pseudo-Instrues:
mult Multiplicao
Ex: mult $s0, $s1, $s2

# $s0

$s1 X $s2

# $s0

$s1 / $s2

div Diviso
Ex: div $s0, $s1, $s2

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Exerccios:
Escreva um cdigo de instrues do MIPS que forem necessrios para as
situaes abaixo:
2 X 5;
1 Passo: Carregar os nmeros nos registradores
li $t0,2
# $t0
2
li $t1,5
# $t1
5
2 Passo: Operao de multiplicao
mult $t2, $t0,$t1
# $t2

$t0 x $t1

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Exerccios:
Escreva um cdigo de instrues do MIPS que forem necessrios para as
situaes abaixo:
8 + 3 - 7;
1 Passo: Carregar os nmeros nos registradores
li $t0,8
# $t0
8
li $t1,3
# $t1
3
li $t2,7
# $t2
7

ARQUITETURA MIPS
Linguagem de Montagem (Assembly) Instrues aritmticas
Exerccios:
Escreva um cdigo de instrues do MIPS que forem necessrios para as
situaes abaixo:
8 + 3 - 7;
2 Passo: Operao de adio
add $t3, $t0,$t1
# $t3
3 Passo: Operao de subtrao
sub $t4, $t3,$t2
# $t4

$t0 + $t1

$t3 - $t2

Anda mungkin juga menyukai