Organização Básica de computadores e linguagem de...
Transcript of Organização Básica de computadores e linguagem de...
Organização Básica de computadores e linguagem de
montagem
2o Semestre de 2015
Prof. Edson Borin
Estrutura de computadores de propósito geral
Computadores de Propósito Geral
- Programar o ENIAC era uma tarefa tediosa e demorada.
- Em 1945, projetistas do ENIAC, incluindo John von Neumann, propuseram o “conceito de programa armazenado”. O programa é armazenado na memória, juntamente com os dados.
- A idéia também foi concebida por Alan Turing.
- De 1946 a 1952, Neumann e seus colegas no Instituto de Estudos Avançados (IAS) de Princeton desenvolveram o computador “IAS”.
- O IAS serviu como protótipo para vários computadores de propósito geral subseqüentes.
Computadores de Propósito Geral
Estrutura do Computador IAS
Unidade lógica e
aritmética
MemóriaPrincipal
Equipamentode Entrada e
Saída
Unidade de Controle
Estrutura do Computador IAS
Unidade lógica e
aritmética
MemóriaPrincipal
Equipamentode Entrada e
Saída
Unidade de Controle
011110101010110110010
010000101011110000100
Instruções
Dados Operações com dados binários: +, -, x, /
Controle
Estrutura do Computador IAS: Memória
Memória Principal
0 01000 ... 001011 11011 ... 001102 01001 ... 00111... ...... ...
1021 01000 ... 001011022 11011 ... 001101023 01001 ... 00111
- Memória do IAS
- 1024 palavras de 40 bits
- Números e instruções representados na forma binária
40 bits
1024 palavras
Estrutura do Computador IAS: Memória
Memória Principal
0 01000 ... 001011 11011 ... 001102 01001 ... 00111... ...... ...
1021 01000 ... 001011022 11011 ... 001101023 01001 ... 00111
- Memória do IAS
- 1024 palavras de 40 bits
- Números e instruções representados na forma binária
40 bits
1024 palavras
Endereços
Dados ou Instruções
Estrutura do Computador IAS: Memória
0 1 39
Bit de sinal
Armazenamento de um Número
0 39
Código deoperação
Palavra para armazenamento de uma instrução7 8 19 20 28
Endereço Código deoperação
Endereço
Uni
dade
de
Con
trol
eEstrutura do Computador IAS: Controle
MemóriaPrincipal
MAR PC
IR IBR
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
MBR
AC MQ
Circuitos lógicos e aritméticos
Estrutura do Computador IAS: Controle
- Operação: execução de instruções, uma a uma.
- Processo de execução é dividido em dois ciclos:
1) ciclo de busca: a instrução é lida da memória
2) ciclo de execução: uma vez lida da memória, a instrução é executada
Estrutura do Computador IAS: Controle
Ciclo de busca (Simplificado)
1) Unidade de controle envia o endereço contido em PC (contador do programa) para a memória2) A memória lê o conteúdo da memória a partir do endereço fornecido.3) A Unidade de controle move o dado lido para o registrador IR (registrador de instrução)
Estrutura do Computador IAS: Controle
Ciclo de execução
1) Unidade de controle decodifica a instrução no registrador IR.2) Se necessário, a unidade de controle lê operandos da memória.3) A unidade de controle envia sinais para a unidade lógica e aritmética para realizar a operação4) Se necessário, a unidade de controle escreve o resultado na memória.
Estrutura do Computador IAS: Controle
Exemplo: Execução da instrução LOAD M(X)- Transfere M(X) para o acumulador- acumulador = registrador AC- M(X) = conteúdo da memória no endereço X- código de operaçao 00000001
0
Código deoperação
7 19
Endereço
00000001 0000000011008
LOAD M(12)Transfere o dado no
endereço 12 da memória para o registrador AC.
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Busca
0
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
Circuitos lógicos e aritméticos
00...0100... 01100
MemóriaPrincipal
01
...
999
PCMAR
IBRIR
MBR
MQAC
00...10 00... 00011
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Busca
0 0
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
UC move o endereço da instrução (em PC) para MAR (Memory
Address Register).
00...0100... 0110000...10 00... 00011 01
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Busca
0 0
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
A UC envia um sinal de controle para a memória requisitando a leitura do
endereço em MAR
00...0100... 0110000...10 00... 00011 01
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Busca
0
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
00...11
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
0
A Memória lê o dado e o envia para o registrador
MBR (Memory Buffer Register)
00...0100... 0110000...10 00... 00011 01
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Busca
0
00..001 00...11
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
00...100
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
00...1100
00...0100... 0110000...10 00... 00011
A UC transfere o código de operação da instrução lida da
memória para o registrador de instruções (IR), o endereço para
o registrador MAR
e a segunda metade da palavra de memória para o IBR
Exemplo LOAD M(X): Ciclo de Busca
- Ciclo de busca completo
- O código da instrução a ser executada está em IR
- O valor do campo endereço da instrução a ser executada está em MAR
- Vamos ver o ciclo de execução
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Execução
0
00..001
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
00...100
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
00...0100... 0110000...10 00... 00011 01
00...1100
00...11
A UC decodifica a operação em IR e descobre a operação
LOAD M(X)
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Execução
0
00..001
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
Cicuitos de controle
00...0100... 0110000...10 00... 00011 01 Os 12 bits do campo
endereço da instrução (bits11 a 19) já estão no registrador
MAR
00...100
00...1100
00...11
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Execução
0
00..001
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
00...100
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
Cicuitos de controle
A UC envia um sinal de controle para a memória requisitando a leitura do
endereço em MAR
00...0100... 0110000...10 00... 00011 01
00...1100
00...11
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Execução
0
00..001
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
0.1100
Cicuitos de controle
11...111A Memória lê o dado e o envia para o registrador
MBR (Memory Buffer Register)
00...0100... 0110000...10 00... 00011 01
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Execução
0
00..001
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
11...111
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
0.1100
Cicuitos de controle
11...111
00...0100... 0110000...10 00... 00011 01
A UC envia sinais para a unidade lógica e
aritmética (ULA) copiar o valor de MBR para o
registrador AC.
00...11
Exemplo LOAD M(X): Ciclo de Execução
- Ciclo de execução completo
- O conteúdo da memória no endereço 12 foi copiado para o registrador AC.
- A próxima instrução pode ser executada a partir do ciclo de busca.
- Note que o ciclo de busca da próxima instrução deve buscar a instrução do IBR, em vez da memória! – Ciclo de busca à direita!
Exemplo LOAD M(X): Ciclo de Execução
- Ciclo de execução completo
- O conteúdo da memória no endereço 12 foi copiado para o registrador AC.
- A próxima instrução pode ser executada a partir do ciclo de busca.
- Note que o ciclo de busca da próxima instrução deve buscar a instrução do IBR, em vez da memória!
E a instrução subsequente (3a)? De
onde ela deve ser buscada?
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Busca
1
00..001
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
00...100
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
00...1100
A UC deve incrementar o PC para apontar para a próxima instrução ao término do ciclo
de busca.
00...0100... 0110000...10 00... 00011 01
00...11
Uni
dade
de
Con
trol
eExemplo LOAD M(X): Ciclo de Busca
1
00..001
Cicuitos de controle
Sinais de controle
...
Equipamentos de entrada e saída
Unidade Lógicae Aritmética
00...100
Circuitos lógicos e aritméticos
MemóriaPrincipal
...
999
PCMAR
IBRIR
MBR
MQAC
00...1100
Isso não occore sempre, apenas quando instruções à
direita estão sendo executadas! (Veja apostila)
00...0100... 0110000...10 00... 00011 01
00...11
Estrutura do Computador IAS: Exercício
- A instrução ADD M(X) soma o valor na posição X da memória com o valor do registrador AC e grava o resultado no registrador AC.
1) Qual a diferença entre o ciclo de busca desta instrução e o ciclo de busca da instrução LOAD M(X)?
2) Descreva o ciclo de execução da instrução ADD M(X).
Computadores de Propósito Geral
Leitura
- Apostila: Programando o Computador IAS – Edson Borin e Rafael Auler.