Aula 18: Organização de Computadores

Propaganda
Aula 18: Organização de Computadores
Execução de instruções
Rodrigo Hausen
[email protected]
13 de outubro de 2011
http://cuco.pro.br/ach2034
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
1 / 10
Apresentação
1. Bases Teóricas
I
I
I
1.0. Sistemas de numeração
1.1. Representação de dados
1.2. Lógica e circuitos digitais
2. Organização de computadores
I
I
2.1. Introdução
2.2. Execução de instruções
3. Histórico, evolução e performance
Aula de hoje: Stallings (5a. edição), “3.2. Funções dos Computadores”
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
2 / 10
controle
endereço
dados
Barramento do Sistema
Unidade Central de Processamento (UCP)
ou
Central Processing Unit (CPU)
Memória Principal
Obs.: Não inclui subsistema de Entrada/Saída.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
3 / 10
...
Rn
PC
IR
M
B
R
M
A
R
ULA
Unidade de Controle (UC)
Unidade Central de Processamento (UCP)
ou
Central Processing Unit (CPU)
endereço
R2
controle
R1
dados
Barramento do Sistema
Memória Principal
Obs.: Não inclui subsistema de Entrada/Saída.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
3 / 10
...
...
Rn
PC
IR
M
B
R
M
A
R
ULA
Unidade de Controle (UC)
Unidade Central de Processamento (UCP)
ou
Central Processing Unit (CPU)
endereço
R2
controle
R1
dados
Barramento do Sistema
Memória Principal
Obs.: Não inclui subsistema de Entrada/Saída.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
3 / 10
...
...
Rn
PC
IR
M
B
R
M
A
R
ULA
Unidade de Controle (UC)
Unidade Central de Processamento (UCP)
ou
Central Processing Unit (CPU)
endereço
R2
controle
R1
dados
Barramento do Sistema
Memória Principal
Obs.: Não inclui subsistema de Entrada/Saída.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
3 / 10
...
...
Rn
PC
IR
M
B
R
M
A
R
ULA
Unidade de Controle (UC)
Unidade Central de Processamento (UCP)
ou
Central Processing Unit (CPU)
endereço
R2
controle
R1
dados
Barramento do Sistema
Memória Principal
Obs.: Não inclui subsistema de Entrada/Saída.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
3 / 10
...
...
Rn
PC
IR
M
B
R
M
A
R
ULA
Unidade de Controle (UC)
Unidade Central de Processamento (UCP)
ou
Central Processing Unit (CPU)
dados
R2
endereço
R1
Barramento do Sistema
controle
Barramento interno à CPU
Memória Principal
Obs.: Não inclui subsistema de Entrada/Saída.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
3 / 10
Execução de instruções
Função básica desempenhada por um computador: executar
programa.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
4 / 10
Execução de instruções
Função básica desempenhada por um computador: executar
programa.
Programa = conjunto de instruções, armazenadas na memória.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
4 / 10
Execução de instruções
Função básica desempenhada por um computador: executar
programa.
Programa = conjunto de instruções, armazenadas na memória.
Como cada instrução é executada?
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
4 / 10
Execução de instruções
Função básica desempenhada por um computador: executar
programa.
Programa = conjunto de instruções, armazenadas na memória.
Como cada instrução é executada? Basicamente:
I
1) Processador lê uma instrução da memória
(passo de busca, ou fetch).
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
4 / 10
Execução de instruções
Função básica desempenhada por um computador: executar
programa.
Programa = conjunto de instruções, armazenadas na memória.
Como cada instrução é executada? Basicamente:
I
I
1) Processador lê uma instrução da memória
(passo de busca, ou fetch).
2) Processador executa instrução da memória
(passo de execução).
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
4 / 10
Execução de instruções
Função básica desempenhada por um computador: executar
programa.
Programa = conjunto de instruções, armazenadas na memória.
Como cada instrução é executada? Basicamente:
I
I
1) Processador lê uma instrução da memória
(passo de busca, ou fetch).
2) Processador executa instrução da memória
(passo de execução).
O passo de execução de uma instrução pode envolver diversas
operações, dependendo da instrução.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
4 / 10
Execução de instruções
Função básica desempenhada por um computador: executar
programa.
Programa = conjunto de instruções, armazenadas na memória.
Como cada instrução é executada? Basicamente:
I
I
1) Processador lê uma instrução da memória
(passo de busca, ou fetch).
2) Processador executa instrução da memória
(passo de execução).
O passo de execução de uma instrução pode envolver diversas
operações, dependendo da instrução.
Execução de um programa: repetição do processo envolvendo os
passos de busca e execução, ordenadamente.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
4 / 10
Ciclo de Instrução Básico
Tabém chamado ciclo de busca e execução ou ciclo de
fetch-execute.
Início
Busca da
próxima
instrução
na memória
Passo de busca
(ou subciclo de busca)
Rodrigo Hausen ([email protected])
Execução
da instrução
Parada
Passo de execução
(ou subciclo de execução)
Aula 18: Organização de Computadores
13 de outubro de 2011
5 / 10
Ciclo de Instrução Básico
Tabém chamado ciclo de busca e execução ou ciclo de
fetch-execute.
Início
Busca da
próxima
instrução
na memória
Passo de busca
(ou subciclo de busca)
Execução
da instrução
Parada
Passo de execução
(ou subciclo de execução)
Ciclo é interrompido apenas se: máquina for desligada;
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
5 / 10
Ciclo de Instrução Básico
Tabém chamado ciclo de busca e execução ou ciclo de
fetch-execute.
Início
Busca da
próxima
instrução
na memória
Passo de busca
(ou subciclo de busca)
Execução
da instrução
Parada
Passo de execução
(ou subciclo de execução)
Ciclo é interrompido apenas se: máquina for desligada; ocorrer erro
não recuperável (por exemplo, defeito no hardware);
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
5 / 10
Ciclo de Instrução Básico
Tabém chamado ciclo de busca e execução ou ciclo de
fetch-execute.
Início
Busca da
próxima
instrução
na memória
Passo de busca
(ou subciclo de busca)
Execução
da instrução
Parada
Passo de execução
(ou subciclo de execução)
Ciclo é interrompido apenas se: máquina for desligada; ocorrer erro
não recuperável (por exemplo, defeito no hardware); for executada
uma instrução específica que pare a operação do computador
(geralmente chamada halt ou hlt).
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
5 / 10
Exemplo de execução de instruções
Considere uma arquitetura hipotética a seguir.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
6 / 10
Exemplo de execução de instruções
Considere uma arquitetura hipotética a seguir.
Registrador de uso geral: chamado AC (acumulador), de 16 bits
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
6 / 10
Exemplo de execução de instruções
Considere uma arquitetura hipotética a seguir.
Registrador de uso geral: chamado AC (acumulador), de 16 bits
Registradores de uso específico PC (program counter), IR (instruction
register), MAR (memory address register), MBR (memory buffer
register); PC e MAR têm 12 bits; IR e MBR têm 16 bits.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
6 / 10
Exemplo de execução de instruções
Considere uma arquitetura hipotética a seguir.
Registrador de uso geral: chamado AC (acumulador), de 16 bits
Registradores de uso específico PC (program counter), IR (instruction
register), MAR (memory address register), MBR (memory buffer
register); PC e MAR têm 12 bits; IR e MBR têm 16 bits.
Instruções são palavras de 16 bits, no formato:
15
12 11
0
endereço
opcode
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
6 / 10
Exemplo de execução de instruções
Considere uma arquitetura hipotética a seguir.
Registrador de uso geral: chamado AC (acumulador), de 16 bits
Registradores de uso específico PC (program counter), IR (instruction
register), MAR (memory address register), MBR (memory buffer
register); PC e MAR têm 12 bits; IR e MBR têm 16 bits.
Instruções são palavras de 16 bits, no formato:
15
12 11
0
endereço
opcode
I
I
opcode, ou código de operação, é um código de 4 bits que indica a
instrução a ser executada.
endereço, em 12 bits, é a posição de memória que contém um dado a
ser obtido, ou a posição onde devemos escrever um dado.
Neste exemplo, a memória está organizada em palavras também de
16 bits.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
6 / 10
Exemplo de execução de instruções
Considere uma arquitetura hipotética a seguir.
Registrador de uso geral: chamado AC (acumulador), de 16 bits
Registradores de uso específico PC (program counter), IR (instruction
register), MAR (memory address register), MBR (memory buffer
register); PC e MAR têm 12 bits; IR e MBR têm 16 bits.
Instruções são palavras de 16 bits, no formato:
15
12 11
0
endereço
opcode
I
I
opcode, ou código de operação, é um código de 4 bits que indica a
instrução a ser executada.
endereço, em 12 bits, é a posição de memória que contém um dado a
ser obtido, ou a posição onde devemos escrever um dado.
Neste exemplo, a memória está organizada em palavras também de
16 bits.
Quantas posições de memória, no máximo, podemos acessar?
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
6 / 10
Exemplo de execução de instruções
Considere uma arquitetura hipotética a seguir.
Registrador de uso geral: chamado AC (acumulador), de 16 bits
Registradores de uso específico PC (program counter), IR (instruction
register), MAR (memory address register), MBR (memory buffer
register); PC e MAR têm 12 bits; IR e MBR têm 16 bits.
Instruções são palavras de 16 bits, no formato:
15
12 11
0
endereço
opcode
I
I
opcode, ou código de operação, é um código de 4 bits que indica a
instrução a ser executada.
endereço, em 12 bits, é a posição de memória que contém um dado a
ser obtido, ou a posição onde devemos escrever um dado.
Neste exemplo, a memória está organizada em palavras também de
16 bits.
Quantas posições de memória, no máximo, podemos acessar?
212 = 4096 palavras de memória, com 16 bits cada uma.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
6 / 10
Exemplo de execução de instruções
Instruções são palavras de 16 bits, no formato:
15
12 11
opcode
endereço
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
0
13 de outubro de 2011
7 / 10
Exemplo de execução de instruções
Instruções são palavras de 16 bits, no formato:
15
12 11
opcode
endereço
0
Opcodes da máquina hipotética:
00012 = 116
(AC ← Mem[end.])
carregar AC com conteúdo do end. de memória indicado
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
7 / 10
Exemplo de execução de instruções
Instruções são palavras de 16 bits, no formato:
15
12 11
opcode
endereço
0
Opcodes da máquina hipotética:
00012 = 116
(AC ← Mem[end.])
carregar AC com conteúdo do end. de memória indicado
00102 = 216
(Mem[end.] ← AC )
armazenar conteúdo de AC no end. de memória indicado
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
7 / 10
Exemplo de execução de instruções
Instruções são palavras de 16 bits, no formato:
15
12 11
opcode
endereço
0
Opcodes da máquina hipotética:
00012 = 116
(AC ← Mem[end.])
carregar AC com conteúdo do end. de memória indicado
00102 = 216
(Mem[end.] ← AC )
armazenar conteúdo de AC no end. de memória indicado
01012 = 516
(AC ← AC + Mem[end.])
soma conteúdo de AC com conteúdo do end. de memória indicado
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
7 / 10
Exemplo de execução de instruções
Instruções são palavras de 16 bits, no formato:
15
12 11
opcode
endereço
0
Opcodes da máquina hipotética:
00012 = 116
(AC ← Mem[end.])
carregar AC com conteúdo do end. de memória indicado
00102 = 216
(Mem[end.] ← AC )
armazenar conteúdo de AC no end. de memória indicado
01012 = 516
(AC ← AC + Mem[end.])
soma conteúdo de AC com conteúdo do end. de memória indicado
11112 = F16
(halt)
interrompe o ciclo de instrução (endereço é ignorado)
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
7 / 10
Exemplo de execução de instruções
Instruções são palavras de 16 bits, no formato:
15
12 11
opcode
endereço
0
Opcodes da máquina hipotética:
00012 = 116
(AC ← Mem[end.])
carregar AC com conteúdo do end. de memória indicado
00102 = 216
(Mem[end.] ← AC )
armazenar conteúdo de AC no end. de memória indicado
01012 = 516
(AC ← AC + Mem[end.])
soma conteúdo de AC com conteúdo do end. de memória indicado
11112 = F16
(halt)
interrompe o ciclo de instrução (endereço é ignorado)
Para facilitar a escrita e a compreensão do programa, escreveremos os
opcodes e endereços em hexadecimal.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
7 / 10
Execução do ciclo de instrução
0. Estado inicial
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
300
????
????
???
????
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
1.1. Fetch: MAR ← PC
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
300
????
????
300
????
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
1.2. Fetch: MBR ← Mem[MAR]
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
300
????
????
300
1940
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
1.3. Fetch: IR ← MBR
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
300
????
1940
300
1940
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
1.4. Execute: MAR ← IR11 . . . IR0
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
300
????
1940
940
1940
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
1.5. Execute: MBR ← Mem[MAR]
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
300
????
1940
940
0003
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
1.6. Execute: AC ← MBR
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
300
0003
1940
940
0003
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
1.7. Execute: PC ← PC + 1
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
301
0003
1940
940
0003
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
2.1. Fetch: MAR ← PC
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
301
0003
1940
301
0003
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
2.2. Fetch: MBR ← Mem[MAR]
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
301
0003
1940
301
5941
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
2.3. Fetch: IR ← MBR
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
301
0003
5941
301
5941
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
2.4. Execute: MAR ← IR11 . . . IR0
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
301
0003
5941
941
5941
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
2.5. Execute: MBR ← Mem[MAR]
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
301
0003
5941
941
0002
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
2.6. Execute: na ULA, faz AC + MBR
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
301
0003
5941
941
0002
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
2.7. Execute: AC ← resultado da ULA
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
301
0005
5941
941
0002
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
2.8. Execute: PC ← PC + 1
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
302
0005
5941
941
0002
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
3.1. Fetch: MAR ← PC
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
302
0005
5941
302
0002
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
3.2. Fetch: MBR ← Mem[MAR]
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
302
0005
5941
302
2941
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
3.3. Fetch: IR ← MBR
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
302
0005
2941
302
2941
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
3.4. Execute: MAR ← IR11 . . . IR0
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
302
0005
2941
941
2941
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
3.5. Execute: MBR ← AC
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0002
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
302
0005
2941
941
0005
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
3.6. Execute: Mem[MAR] ← MBR
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0005
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
302
0005
2941
941
0005
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
3.7. Execute: PC ← PC + 1
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0005
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
303
0005
2941
941
0005
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
4.1. Fetch: MAR ← PC
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0005
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
303
0005
2941
303
0005
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
4.2. Fetch: MBR ← Mem[MAR]
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0005
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
303
0005
2941
303
FFFF
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
4.3. Fetch: IR ← MBR
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0005
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
303
0005
FFFF
303
FFFF
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Execução do ciclo de instrução
4.4. Execute: pare a máquina
Memória
end.
.
.
.
significado
300
dado
.
.
.
1940
301
5941
AC ← AC + Mem[941]
302
2941
Mem[941] ← AC
303
.
.
.
940
941
.
.
.
FFFF
.
.
.
0003
0005
.
.
.
Pare (halt)
AC ← Mem[940]
Registradores da CPU
PC
AC
IR
MAR
MBR
303
0005
FFFF
303
FFFF
= +3
= +2
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
8 / 10
Múltiplos operandos
Nas instruções vistas para essa máquina hipotética, sempre temos
apenas 1 operando (um endereço de memória).
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
9 / 10
Múltiplos operandos
Nas instruções vistas para essa máquina hipotética, sempre temos
apenas 1 operando (um endereço de memória).
Como seria o ciclo de instrução se tivéssemos múltiplos operandos?
Por exemplo, se quiséssemos implementar a instrução
Mem[X ] ← Mem[Y ] + Mem[Z ] diretamente (3 operandos)?
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
9 / 10
Múltiplos operandos
Nas instruções vistas para essa máquina hipotética, sempre temos
apenas 1 operando (um endereço de memória).
Como seria o ciclo de instrução se tivéssemos múltiplos operandos?
Por exemplo, se quiséssemos implementar a instrução
Mem[X ] ← Mem[Y ] + Mem[Z ] diretamente (3 operandos)?
Busca de
instrução
Armazenamento de
resultado
Busca de
operando
múltiplos
operandos
Cálculo de
endereço de
instrução
Decodificação
de instrução
Cálculo de
endereço de
operando
múltiplos
resultados
Execução
da operação
Cálculo de
endereço de
operando
busca da próxima instrução
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
9 / 10
Interrupções
Seção 3.2.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
10 / 10
Para casa
Ler seções 3.1 e 3.2.
Exercícios do cap. 3 (5a edição): 3.1 a 3.5.
Rodrigo Hausen ([email protected])
Aula 18: Organização de Computadores
13 de outubro de 2011
11 / 10
Download