Escolar Documentos
Profissional Documentos
Cultura Documentos
Organização e Arquitetura
de Computadores
Leopoldo França
Linguagens de programação
•Linguagens de programação: Consiste dos 1s e 0s do
código binário
• Exemplo:
• MIPS: 32 registradores de 32 bits
• Zero: $zero
Adição e Subtração
• Exemplo:
f = (g + h) – (i + j);
f $s0
g $s1
add $t0, $s1, $s2 h $s2
add $t1, $s3, $s4 i $s3
• or $t0,$s0,$s1
Operandos Imediatos
• Imediatos são constantes numéricas.
• São comuns em códigos, logo existem
instruções especiais para eles.
• Somar imediato:
addi $t0, $t1, 10 # $t0 = $t1 + 10
Imediato
Operandos Imediatos
• Subtração imediato:
subi $t0, $t1, 10 # $t0 = $t1 – 10
sw $t0,12($s0)
Essa instrução tomará o ponteiro em $s0, somará 12 bytes a ele, e
então armazenará o valor do registrador $t0 no endereço de memória
apontado pela soma calculada
Instruções de desvio
A instrução de desvio no MIPS é a jump (pule, ou
desvie para)
sintaxe:
j L1 # desvie para o label L1
Exemplo:
if (a == 0)
a = a+1;
else
a = a-1;
Desvios condicionais
Vamos executar o nosso trecho de código na linguagem do
MIPS:
a : $s0
do{
a = a + 1;
}while (a != 10);
Reescrevendo:
LOOP: a = a + 1;
if(a != 10)
goto LOOP;
Laços
a: $s0 , 10 : $s1
do{
LOOP: addi $s0,$s0,1 a = a + 1;
bne $s0,$s1,LOOP }while (a != 10);
Exercício
Traduza os seguintes trechos de código para o assembly do Mips:
(Usar o MARS (MIPS Assembler and Runtime Simulator) disponível
em http://courses.missouristate.edu/KenVollmar/mars/download.htm )
a) b = 0;
do{
b = b + 5;
} while (b != 50);
b) if (b == 10)
b = b - 1; Exemplo de uso do MARS:
else https://www.youtube.com/watch?v=dqfaWMotoCE
Vários outros vídeos disponíveis (buscar por MIPS)
b = b * 2;
Software: MARS - MIPS Assembler and Runtime Simulator
Memória
• Parte do computador onde os programas e os dados são armazenados.
• Elemento a ser manipulado: bit (armazena a informação na forma de bits)
• Unidade de informação a ser armazenada, recuperada ou transferida
(célula) - Grupo de n bits (n = 8) 1 Byte
• ENDEREÇO: código de identificação da localização das células
(informações).
Operações:
• ESCRITA: transferência de informações de outro componente do sistema
de computação para a memória (CPU memória)
• LEITURA: transferência de bits da memória para a CPU, disco.
Memória
• Memória de um computador subsistema - construída de
vários componentes (vários tipos diferentes de memória)
interligados e integrados, com o objetivo de armazenar e
recuperar informações.
• Conceitos Importantes
• Tempo de acesso
• Capacidade
• Volatilidade
• Tecnologia de fabricação
• Temporariedade
• Custo
Memória
• Em um sistema de computação não é possível construir
e utilizar apenas um tipo de memória.
Hierarquia de Memória
Hierarquia de Memória
Custo alto
Velocidade alta Hierarquia de Memória
Baixa capacidade
Registradores
Memória Cache
Memória Principal
Discos
Memória Secundária
Custo baixo CD-ROM
Velocidade baixa
Capacidade elevada
Hierarquia de Memória
Registradores
Os principais
registradores do
Pentium II
Registradores
• Parâmetros: Menor tempo de acesso, baixa capacidade (Ex.:
32 bits, 64 bits), dispositivos voláteis, memória de
semicondutores, armazenamento temporário e apresenta o
custo mais elevado.
EAX
RAX
Memória Principal
Soluções
• Processador deve executar outras instruções enquanto aguarda acesso à
memória. Isto nem sempre é possível e é difícil de implementar.
• Colocar memória principal no Chip do processador. Isto tornaria o chip
maior e mais caro.
• Uso de uma memória menor e mais rápida (em relação à memória
principal) chamada Memória Cache.
Problema: Processador - Memória
Memória Cache
Falha no acesso à cache – ocorre sempre que o processador procura uma informação na
cache e essa informação não está armazenada neste local, havendo necessidade de
buscá-la na memória principal.
Memória Cache
• Cache unificada
• Instruções e dados usando a mesma cache;
• Mais simples de projetar;
• Estabelece automaticamente um equilíbrio entre as buscas de
instruções e as buscas de dados.
Memória
secundária
Cache L2 (separado)
OBRIGADO