Escolar Documentos
Profissional Documentos
Cultura Documentos
Centro Tecnológico
Departamento de Informática e Estatística
Ciências da Computação & Engenharia Eletrônica
Sistemas Digitais
INE 5406
Aula 7-T
O Processador MIPS: conjunto de instruções e exemplos de
uso (noções de programação assembly).
”Icestorm”
Launched on Oct. 2021 (5nm TSMC CMOS tech.) CPU Cores ”Firestorm” CPU Cores
Sources:
https://en.wikipedia.org/wiki/Apple_M1_Pro_and_M1_Max
https://macmagazine.com.br/post/2021/10/25/site-faz-analise-aprofundada-dos-chips-m1-pro-e-m1-max/
CPU Memória
(SRAM)
barramento
do sistema
vídeo teclado
HD/SSD
vídeo teclado
HD/SSD
barramento
do sistema
vídeo teclado
HD/SSD
* Específico para a
linguagem de alto nível Compilador*
e CPU escolhidos Programa em Linguagem de
máquina (i.e., “executável”)**
Programa em swap: muli $2,$5, 4
Linguagem de 00000000101000010000000000011000
add $2,$4,$2
00000000100011100001100000100001
montagem lw $15, 0($2)
Montador** 10001100011000100000000000000000
lw $16, 4($2) (assembler)
(assembly 10001100111100000000000000000100
sw $16, 0($2)
10101100111100100000000000000000
language) sw $15, 4($2)
10101100011000100000000000000100
jr $31 ** Específico da
CPU escolhida
31 26 25 0
opcode
6 bits 26 bits
AND bit a bit R and $s1, $s2, $s3 $s1 ¬ $s2 and $s3
Decodificador 3:8
001 palavra1
(”word”) end 3
010
011
palavra2
palavra3
8 linhas
• Cada palavra possui 1 byte (8bits) 100 palavra4
101 palavra5
110 palavra6
111 palavra7
escrever ler
Valor lido
habilitação de
leitura/escrita
Decodificador 3:8
001 palavra1
(”word”) end 3
010
011
palavra2
palavra3
8 linhas
• Cada palavra possui 2 bytes (16 bits) 100 palavra4
101 palavra5
110 palavra6
111 palavra7
16
escrever ler
Valor lido
habilitação de
leitura/escrita
(”word”)
Decodificador n:2n
2 palavra2
3 palavra3
• Cada palavra possui 4 bytes (32 bits)
2n linhas
end n 4 palavra4
5 palavra5
6 palavra6
7 palavra7
... ….
2n-2 palavra2n-2
2n-1 palavra2n-1
32
escrever ler
Valor lido
habilitação de
INE/CTC/UFSC Slide 7T.16 Profs. Güntzel e Meinhardt
Sistemas Digitais - semestre 2022/1 leitura/escrita & Est. André Bräscher
O Processador MIPS Monociclo
Estrutura de uma Memória RAM: conceito geral
Exemplo: Memória de 2n linhas, endereços das
linhas Valor ser
com 4 bytes por linha (32 bits) (em binário...) 32 escrito
0 palavra0
• Cada linha armazena uma palavra 1 palavra1
(”word”)
Decodificador n:2n
2 palavra2
3 palavra3
• Cada palavra possui 4 bytes (32 bits)
2n linhas
end n 4 palavra4
5 palavra5
6 palavra6
7 palavra7
Problema: todos os processadores precisam ... ….
acessar dados cujo comprimento pode ser de 2n-2 palavra2n-2
• 4 bytes (contíguos na memória) 2n-1 palavra2n-1
Decodificador 3n:232
11 10 9 8
• 1 palavra (word) = 4 bytes byte11 byte10 byte9 byte8
15 byte15 14 byte14 13 byte13 12 byte12
• Meia palavra (half-word) = 2 bytes 32 19 18 17 16
byte19 byte18 byte17 byte16
2n linhas
end
• 1 byte 23 byte23 22 byte22 21 byte21 20 byte20
Por ciclo de acesso 27 byte27 26 byte26 25 byte25 24 byte24
31 byte31 30 byte30 29 byte29 28 byte28
• Só depende do tipo do dado ... …. ... …. ... …. ... ….
usado …. …. …. ….
232-1 232-2 232-3 232-4
byte232-4 byte232-3 byte232-2 byte232-1
8 8 8 8
escrever ler
Valor lido, em byte, half-word ou word (conforme o tipo do dado)
Decodificador 3n:232
8 9 byte10 10 11
byte11 byte9 byte8
12 13 14 15
byte15 byte14 byte13 byte12
• Endereçamento a byte à 32 16
byte19
17
byte18 18
byte17
19
byte16
2n linhas
end
232 bytes 20
24
byte23
21
25
byte22
22
26
byte21
23
27
byte20
byte27 byte26 byte25 byte24
• usa o endereçamento do 28
byte31
29
byte30
30
byte29
31
byte28
tipo ”Big Endian”: ...
….
...
….
...
….
...
….
• byte3 à end. 0 232-4
….
232-3
….
232-2
….
232-1
….
• byte2 à end. 1 byte232-4 byte232-3 byte232-2 byte232-1
• byte1 à end. 2 8 8 8 8
• byte0 à end. 3
escrever ler
Valor lido, em byte, half-word ou word (conforme o tipo do dado)
endereço dados
0 100
4 10
8 101
12 1
.. ..
. .
4294967292 77
2. David Money Harris and Sarah L. Harris. Digital Design and Computer
Architecture - Second Edition. Morgan Kaufmann, 2013
6 26
32 32 32
Endereço 32 Endereço Dado
lido
Instrução Memória
lida de dados
32
Memória Dado a ser
de Instruções escrito
ck
6 26
32 32 32
Endereço 32 Endereço Dado
lido
Instrução Memória
lida de dados
32
Memória Dado a ser
de Instruções escrito
ck
opcode 6 26
32 32 32
Endereço 32 Endereço Dado
lido
Instrução Memória
lida de dados
32
Memória Dado a ser
de Instruções escrito
uma instrução ck
31 26 25 0
opcode
6 bits 26 bits
opcode 6 26
32 32 32
Endereço 32 Endereço Dado
lido
Instrução Memória
lida de dados
32
Memória Dado a ser
de Instruções escrito
uma instrução ck
31 26 25 0
opcode
6 bits 26 bits
31 26 25 21 20 16 15 11 10 6 5 0
registradores-fonte registrador-destino
31 26 25 21 20 16 15 0
Simbólico
lw $s1, deslocam($s2) ($s1 ¬ Mem[$s2 + deslocam] )
31 26 25 21 20 16 15 0
Simbólico
sw $s1, deslocam($s2) (Mem[$s2 + deslocam] ¬ $s1 )
registradores a serem
comparados
Simbólico
beq $s1, $s2, deslocam ( if ($s1== $s2) then PC¬PC + 4 + (deslocam << 2))
31 26 25 0
opcode address
6 bits 26 bits
Simbólico
j Label (PC¬ ((PC+4)[31-28]) || (endereço destino << 2))
2. David Money Harris and Sarah L. Harris. Digital Design and Computer
Architecture - Second Edition. Morgan Kaufmann, 2013