Sei sulla pagina 1di 64

Aula 18: Organizao de Computadores

Execuo de instrues Rodrigo Hausen


hausen@usp.br

13 de outubro de 2011 http://cuco.pro.br/ach2034

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

1 / 10

Apresentao

1. Bases Tericas
1.0. Sistemas de numerao 1.1. Representao de dados 1.2. Lgica e circuitos digitais

2. Organizao de computadores
2.1. Introduo 2.2. Execuo de instrues

3. Histrico, evoluo e performance Aula de hoje: Stallings (5a. edio), 3.2. Funes dos Computadores

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

2 / 10

Barramento do Sistema

Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU)

Obs.: No inclui subsistema de Entrada/Sada.


Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 3 / 10

controle Memria Principal

endereo

dados

Barramento do Sistema

R1

R2

...

Rn

PC IR ULA

M B R M A R

Unidade de Controle (UC)

Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU)

Obs.: No inclui subsistema de Entrada/Sada.


Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 3 / 10

controle Memria Principal

endereo

dados

Barramento do Sistema

R1

R2

PC IR ULA

M A R

Unidade de Controle (UC)

Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU)

Obs.: No inclui subsistema de Entrada/Sada.


Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 3 / 10

controle Memria Principal

endereo

dados

... ...

Rn

M B R

Barramento do Sistema

R1

R2

PC IR ULA

M A R

Unidade de Controle (UC)

Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU)

Obs.: No inclui subsistema de Entrada/Sada.


Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 3 / 10

controle Memria Principal

endereo

dados

... ...

Rn

M B R

Barramento do Sistema

R1

R2

PC IR ULA

M A R

Unidade de Controle (UC)

Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU)

Obs.: No inclui subsistema de Entrada/Sada.


Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 3 / 10

controle Memria Principal

endereo

dados

... ...

Rn

M B R

Barramento interno CPU

Barramento do Sistema

R1

R2

PC IR ULA

M A R

Unidade de Controle (UC)

Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU)

Obs.: No inclui subsistema de Entrada/Sada.


Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 3 / 10

controle Memria Principal

endereo

dados

... ...

Rn

M B R

Execuo de instrues

Funo bsica desempenhada por um computador: executar programa.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

4 / 10

Execuo de instrues

Funo bsica desempenhada por um computador: executar programa. Programa = conjunto de instrues, armazenadas na memria.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

4 / 10

Execuo de instrues

Funo bsica desempenhada por um computador: executar programa. Programa = conjunto de instrues, armazenadas na memria. Como cada instruo executada?

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

4 / 10

Execuo de instrues

Funo bsica desempenhada por um computador: executar programa. Programa = conjunto de instrues, armazenadas na memria. Como cada instruo executada? Basicamente:
1) Processador l uma instruo da memria (passo de busca, ou fetch).

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

4 / 10

Execuo de instrues

Funo bsica desempenhada por um computador: executar programa. Programa = conjunto de instrues, armazenadas na memria. Como cada instruo executada? Basicamente:
1) Processador l uma instruo da memria (passo de busca, ou fetch). 2) Processador executa instruo da memria (passo de execuo).

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

4 / 10

Execuo de instrues

Funo bsica desempenhada por um computador: executar programa. Programa = conjunto de instrues, armazenadas na memria. Como cada instruo executada? Basicamente:
1) Processador l uma instruo da memria (passo de busca, ou fetch). 2) Processador executa instruo da memria (passo de execuo).

O passo de execuo de uma instruo pode envolver diversas operaes, dependendo da instruo.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

4 / 10

Execuo de instrues

Funo bsica desempenhada por um computador: executar programa. Programa = conjunto de instrues, armazenadas na memria. Como cada instruo executada? Basicamente:
1) Processador l uma instruo da memria (passo de busca, ou fetch). 2) Processador executa instruo da memria (passo de execuo).

O passo de execuo de uma instruo pode envolver diversas operaes, dependendo da instruo. Execuo de um programa: repetio do processo envolvendo os passos de busca e execuo, ordenadamente.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

4 / 10

Ciclo de Instruo Bsico


Tabm chamado ciclo de busca e execuo ou ciclo de fetch-execute.

Incio

Busca da prxima instruo na memria


(ou subciclo de busca)

Execuo da instruo Passo de execuo

Parada

Passo de busca

(ou subciclo de execuo)

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

5 / 10

Ciclo de Instruo Bsico


Tabm chamado ciclo de busca e execuo ou ciclo de fetch-execute.

Incio

Busca da prxima instruo na memria


(ou subciclo de busca)

Execuo da instruo Passo de execuo

Parada

Passo de busca

(ou subciclo de execuo)

Ciclo interrompido apenas se: mquina for desligada;

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

5 / 10

Ciclo de Instruo Bsico


Tabm chamado ciclo de busca e execuo ou ciclo de fetch-execute.

Incio

Busca da prxima instruo na memria


(ou subciclo de busca)

Execuo da instruo Passo de execuo

Parada

Passo de busca

(ou subciclo de execuo)

Ciclo interrompido apenas se: mquina for desligada; ocorrer erro no recupervel (por exemplo, defeito no hardware);

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

5 / 10

Ciclo de Instruo Bsico


Tabm chamado ciclo de busca e execuo ou ciclo de fetch-execute.

Incio

Busca da prxima instruo na memria


(ou subciclo de busca)

Execuo da instruo Passo de execuo

Parada

Passo de busca

(ou subciclo de execuo)

Ciclo interrompido apenas se: mquina for desligada; ocorrer erro no recupervel (por exemplo, defeito no hardware); for executada uma instruo especca que pare a operao do computador (geralmente chamada halt ou hlt).
Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 5 / 10

Exemplo de execuo de instrues


Considere uma arquitetura hipottica a seguir.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

6 / 10

Exemplo de execuo de instrues


Considere uma arquitetura hipottica a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

6 / 10

Exemplo de execuo de instrues


Considere uma arquitetura hipottica a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso especco PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buer register); PC e MAR tm 12 bits; IR e MBR tm 16 bits.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

6 / 10

Exemplo de execuo de instrues


Considere uma arquitetura hipottica a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso especco PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buer register); PC e MAR tm 12 bits; IR e MBR tm 16 bits. Instrues so palavras de 16 bits, no formato: 15 12 11 0 endereo opcode

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

6 / 10

Exemplo de execuo de instrues


Considere uma arquitetura hipottica a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso especco PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buer register); PC e MAR tm 12 bits; IR e MBR tm 16 bits. Instrues so palavras de 16 bits, no formato: 15 12 11 0 endereo opcode
opcode, ou cdigo de operao, um cdigo de 4 bits que indica a instruo a ser executada. endereo, em 12 bits, a posio de memria que contm um dado a ser obtido, ou a posio onde devemos escrever um dado.

Neste exemplo, a memria est organizada em palavras tambm de 16 bits.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

6 / 10

Exemplo de execuo de instrues


Considere uma arquitetura hipottica a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso especco PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buer register); PC e MAR tm 12 bits; IR e MBR tm 16 bits. Instrues so palavras de 16 bits, no formato: 15 12 11 0 endereo opcode
opcode, ou cdigo de operao, um cdigo de 4 bits que indica a instruo a ser executada. endereo, em 12 bits, a posio de memria que contm um dado a ser obtido, ou a posio onde devemos escrever um dado.

Neste exemplo, a memria est organizada em palavras tambm de 16 bits. Quantas posies de memria, no mximo, podemos acessar?
Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 6 / 10

Exemplo de execuo de instrues


Considere uma arquitetura hipottica a seguir. Registrador de uso geral: chamado AC (acumulador), de 16 bits Registradores de uso especco PC (program counter), IR (instruction register), MAR (memory address register), MBR (memory buer register); PC e MAR tm 12 bits; IR e MBR tm 16 bits. Instrues so palavras de 16 bits, no formato: 15 12 11 0 endereo opcode
opcode, ou cdigo de operao, um cdigo de 4 bits que indica a instruo a ser executada. endereo, em 12 bits, a posio de memria que contm um dado a ser obtido, ou a posio onde devemos escrever um dado.

Neste exemplo, a memria est organizada em palavras tambm de 16 bits. Quantas posies de memria, no mximo, podemos acessar? 212 = 4096 palavras de memria, com 16 bits cada uma.
Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 6 / 10

Exemplo de execuo de instrues


Instrues so palavras de 16 bits, no formato: 15 12 11 opcode endereo 0

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

7 / 10

Exemplo de execuo de instrues


Instrues so palavras de 16 bits, no formato: 15 12 11 opcode endereo Opcodes da mquina hipottica: 00012 = 116 (AC Mem[end .]) carregar AC com contedo do end. de memria indicado 0

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

7 / 10

Exemplo de execuo de instrues


Instrues so palavras de 16 bits, no formato: 15 12 11 opcode endereo Opcodes da mquina hipottica: 00012 = 116 (AC Mem[end .]) carregar AC com contedo do end. de memria indicado 00102 = 216 (Mem[end .] AC ) armazenar contedo de AC no end. de memria indicado 0

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

7 / 10

Exemplo de execuo de instrues


Instrues so palavras de 16 bits, no formato: 15 12 11 opcode endereo Opcodes da mquina hipottica: 00012 = 116 (AC Mem[end .]) carregar AC com contedo do end. de memria indicado 00102 = 216 (Mem[end .] AC ) armazenar contedo de AC no end. de memria indicado 01012 = 516 (AC AC + Mem[end .]) soma contedo de AC com contedo do end. de memria indicado 0

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

7 / 10

Exemplo de execuo de instrues


Instrues so palavras de 16 bits, no formato: 15 12 11 opcode endereo Opcodes da mquina hipottica: 00012 = 116 (AC Mem[end .]) carregar AC com contedo do end. de memria indicado 00102 = 216 (Mem[end .] AC ) armazenar contedo de AC no end. de memria indicado 01012 = 516 (AC AC + Mem[end .]) soma contedo de AC com contedo do end. de memria indicado 11112 = F16 (halt) interrompe o ciclo de instruo (endereo ignorado) 0

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

7 / 10

Exemplo de execuo de instrues


Instrues so palavras de 16 bits, no formato: 15 12 11 opcode endereo Opcodes da mquina hipottica: 00012 = 116 (AC Mem[end .]) carregar AC com contedo do end. de memria indicado 00102 = 216 (Mem[end .] AC ) armazenar contedo de AC no end. de memria indicado 01012 = 516 (AC AC + Mem[end .]) soma contedo de AC com contedo do end. de memria indicado 11112 = F16 (halt) interrompe o ciclo de instruo (endereo ignorado) Para facilitar a escrita e a compreenso do programa, escreveremos os opcodes e endereos em hexadecimal.
Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 7 / 10

Execuo do ciclo de instruo


0. Estado inicial Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 300 ???? ???? ??? ????

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


1.1. Fetch: MAR PC Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 300 ???? ???? 300 ????

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


1.2. Fetch: MBR Mem[MAR ] Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 300 ???? ???? 300 1940

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


1.3. Fetch: IR MBR Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 300 ???? 1940 300 1940

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


1.4. Execute: MAR IR11 . . . IR0 Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 300 ???? 1940 940 1940

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


1.5. Execute: MBR Mem[MAR ] Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 300 ???? 1940 940 0003

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


1.6. Execute: AC MBR Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 300 0003 1940 940 0003

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


1.7. Execute: PC PC + 1 Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 301 0003 1940 940 0003

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


2.1. Fetch: MAR PC Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 301 0003 1940 301 0003

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


2.2. Fetch: MBR Mem[MAR ] Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 301 0003 1940 301 5941

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


2.3. Fetch: IR MBR Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 301 0003 5941 301 5941

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


2.4. Execute: MAR IR11 . . . IR0 Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 301 0003 5941 941 5941

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


2.5. Execute: MBR Mem[MAR ] Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 301 0003 5941 941 0002

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


2.6. Execute: na ULA, faz AC + MBR Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 301 0003 5941 941 0002

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


2.7. Execute: AC resultado da ULA Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 301 0005 5941 941 0002

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


2.8. Execute: PC PC + 1 Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 302 0005 5941 941 0002

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


3.1. Fetch: MAR PC Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 302 0005 5941 302 0002

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


3.2. Fetch: MBR Mem[MAR ] Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 302 0005 5941 302 2941

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


3.3. Fetch: IR MBR Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 302 0005 2941 302 2941

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


3.4. Execute: MAR IR11 . . . IR0 Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 302 0005 2941 941 2941

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


3.5. Execute: MBR AC Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0002 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 302 0005 2941 941 0005

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


3.6. Execute: Mem[MAR ] MBR Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0005 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 302 0005 2941 941 0005

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


3.7. Execute: PC PC + 1 Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0005 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 303 0005 2941 941 0005

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


4.1. Fetch: MAR PC Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0005 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 303 0005 2941 303 0005

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


4.2. Fetch: MBR Mem[MAR ] Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0005 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 303 0005 2941 303 FFFF

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


4.3. Fetch: IR MBR Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0005 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 303 0005 FFFF 303 FFFF

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Execuo do ciclo de instruo


4.4. Execute: pare a mquina Memria end. . . . 300 301 302 303 . . . 940 941 . . . dado . . . 1940 5941 2941 FFFF . . . 0003 0005 . . . signicado AC Mem[940] AC AC + Mem[941] Mem[941] AC Pare (halt) = +3 = +2 Registradores da CPU PC AC IR MAR MBR 303 0005 FFFF 303 FFFF

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

8 / 10

Mltiplos operandos
Nas instrues vistas para essa mquina hipottica, sempre temos apenas 1 operando (um endereo de memria).

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

9 / 10

Mltiplos operandos
Nas instrues vistas para essa mquina hipottica, sempre temos apenas 1 operando (um endereo de memria). Como seria o ciclo de instruo se tivssemos mltiplos operandos? Por exemplo, se quisssemos implementar a instruo Mem[X ] Mem[Y ] + Mem[Z ] diretamente (3 operandos)?

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

9 / 10

Mltiplos operandos
Nas instrues vistas para essa mquina hipottica, sempre temos apenas 1 operando (um endereo de memria). Como seria o ciclo de instruo se tivssemos mltiplos operandos? Por exemplo, se quisssemos implementar a instruo Mem[X ] Mem[Y ] + Mem[Z ] diretamente (3 operandos)?
Busca de instruo Busca de operando
mltiplos operandos

Armazenamento de resultado
mltiplos resultados

Clculo de endereo de instruo

Decodificao de instruo

Clculo de endereo de operando

Execuo da operao

Clculo de endereo de operando

busca da prxima instruo


Rodrigo Hausen (hausen@usp.br) Aula 18: Organizao de Computadores 13 de outubro de 2011 9 / 10

Interrupes

Seo 3.2.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

10 / 10

Para casa

Ler sees 3.1 e 3.2. Exerccios do cap. 3 (5a edio): 3.1 a 3.5.

Rodrigo Hausen (hausen@usp.br)

Aula 18: Organizao de Computadores

13 de outubro de 2011

11 / 10

Potrebbero piacerti anche