Escolar Documentos
Profissional Documentos
Cultura Documentos
Electrotécnica e de Computadores
1º Ano – 1º Semestre – Ano Letivo 2013/2014
Sistemas Embebidos
Tempo-Real
Prof. Nuno Peixoto
(npeixoto@ipca.pt)
Revisões
S. E. Tempo-Real
Sumário
Introdução
Blocos Digitais Fundamentais
Blocos Digitais Combinatórios
Blocos Digitais Sequenciais
Arquitetura de Computadores
Linguagem Assembly
Linguagem Máquina
Compilação de código C
Processador de ciclo único
Processador multiciclo
Processador com pipeline
Compiladores
Sistemas operativos
Assemblers
Multiplexers
Memórias
Somadores
Multiplicadores
Comparadores
ALUs
MEEC Prof. Nuno Peixoto 3
S. E. Tempo-Real
Introdução
Assembler
Multiplexador
Comparador (igualdade)
Comparador (magnitude)
Compara cada bit, desde
o mais significativo até
ao menos significativo
Shifter (Lógico)
LSL – Logic Shift Left (esquerda)
• Um deslocamento de 𝑁 bits para a esquerda é um
caso especial, uma vez que corresponde ao
mesmo que multiplicar o número por 2𝑁
– 0011102 = 1410 ≪ 2 = 1110002 = 5610 , 14 × 22 = 56
LSR – Logic Shift Right (direita)
Os bits vazios são preenchidos com 0’s (zeros)
Exemplo:
• 101110 LSL2 ou 101110 << 2 = 111000
• 101110 LSR2 ou 101110 >> 2 = 001011
MEEC Prof. Nuno Peixoto 14
S. E. Tempo-Real
Blocos Digitais Combinatórios
Shifter (Lógico)
N Multiplexadores de N:1
LSR LSL
MEEC Prof. Nuno Peixoto 15
S. E. Tempo-Real
Blocos Digitais Combinatórios
Shifter (Aritmético)
ASL – Aritmetic Shift Left (esquerda)
ASR – Aritmetic Shift Right (direita)
No deslocamento para a direita os bits vazios
são preenchidos com o MSbit mais antigo (antes
do deslocamento)
O deslocamento aritmético para a esquerda é
igual ao deslocamento lógico
O deslocamento aritmético para a direita é
fundamental nas operações de multiplicação e
divisão de números com sinal
MEEC Prof. Nuno Peixoto 16
S. E. Tempo-Real
Blocos Digitais Combinatórios
Shifter (Aritmético)
Exemplo:
• 101110 ASR2 = 111011
• 011110 >>> 2 = 000111
• 101011 >>> 3 = 111101
Rotator
Implementa um deslocamento circular, ou seja,
os lugares vazios são preenchidos com os bits
que abandonariam o número binário, devido ao
deslocamento
ROR – Rotação para a direita
• Exemplo:
– 101110 ROR2 = 101011
ROL – Rotação para a esquerda
• Exemplo:
– 101110 ROL2 = 111010
Multiplicação
A multiplicação de números binários sem sinal é
semelhante à multiplicação decimal
Multiplicação (4-bits)
Divisor (4-bits)
Contador de 𝑁-bits
Registo de deslocamento
Entrada paralela, Saída série
Máquina de estados
Máquina de estados
Arrays de memória
Mask ROM
SRAM
DRAM
Cada célula de memória (1-bit) é constituída por
um transístor e um condensador
Tipos de Arquitecturas
RISC (Reduced Instruction Set Computer)
• Têm um conjunto de instruções mais reduzido
• A implementação de hardware é mais simples
• No entanto, são necessárias mais instruções para
operações mais complexas
CISC (Complex Instruction Set Computer)
• Têm um conjunto amplo de instruções
• O hardware é muito mais complexo
• Permite executar operações mais complexas com
apenas uma instrução
MEEC Prof. Nuno Peixoto 38
S. E. Tempo-Real
Arquitectura de Computadores
add a, b, c
a = b + c – d sub t, c, d # t = c – d
add a, b, t # a = b + t
Constante de 32 bits
Código C Código Assembly do MIPS
# $s0 = a
int a = 0x6D5E4F3C; lui $s0, $0, 0x6D5E # a=0x6D5E0000
ori $s0, $s0, 0x4F3C # a=0x6D5E4F3C
label:
add $s1, $s1, $s0 # $s1 = $s1 + $s0 = 4 + 4 = 8
MEEC Prof. Nuno Peixoto 65
S. E. Tempo-Real
Compilação de Código C
label:
add $s1, $s1, $s0 # $s1 1 + 4 = 5
if(i == j)
f = g + h;
else
f = f – i;
Ciclos (For/While)
Arrays
Um array de 5 inteiros (4 bytes) está
armazenado na memória a partir do endereço
0x10007000
Arrays
Arquitectura Harvard
A memória de código (programa) e de dados
estão separadas
Tipicamente utilizada em microcontroladores
Processador
Unidade de controlo
• Tem como função controlar o datapath, ou seja,
definir o tipo de operação a efectuar de acordo
com a instrução lida da memória de código
• Determina os valores nas linhas de controlo do
datapath
Datapath
• Contém toda a lógica capaz de efectuar
operações lógicas e aritméticas
Registos ALU
Porquê?
Unidade de Controlo
Unidade de controlo
Máquina de estados
Conceito de pipeline
Conceito de pipeline
Conceito de pipeline
Fetch da instrução
Descodificação da instrução
Execução da instrução
Acesso à memória