Arquitecturas pré von Neumann: O ENIAC O paradigma do

Propaganda
Arquitecturas pré von
Neumann: O ENIAC
• Apresentado ao público
em 1945, o ENIAC foi o
primeiro computador
electrónico (Electronic
Numerical Integrator And
Computer)
• As suas 18.000 válvulas permitiam-lhe executar
5.000 adições por segundo (mas o recorde de
funcionamento ininterrupto foi de apenas 20
horas...)
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 1
O paradigma do programa
residente em memória
• Uma das principais desvantagens do ENIAC era o
facto de a programação do computador ser
efectuada por recablagem da unidade de controlo
• Foi ainda durante o desenvolvimento do ENIAC
que o conceito de programa residente em
memória tomou forma, com base no célebre
documento de John von Neumann, First Draft of a
Report on the EDVAC (que compilava o trabalho
de um grupo de 32 pessoas)
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 2
A “arquitectura
de von Neumann”
CPU
ALU
E/S
MEM.
EXT.
CONTR.
• As principais características da arquitectura
proposta no First Draft of a Report on the EDVAC
são as seguintes:
– Usava o sistema binário para representar os dígitos
– Advogava o processamento em série, bit a bit
– Propunha que as operações a executar fossem
armazenadas em memória, em vez de serem definidas
pelo estabelecimento de ligações físicas
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 3
John von
Neumann (cont.)
CPU
ALU
MEM.
E/S
EXT.
CONTR.
• Nas arquitecturas de von Neumann,
– O programa a executar é definido pelo conjunto de
instruções suportadas pela unidade de processamento
central, sendo a introdução do programa em memória e
a saída de resultados asseguradas pela unidade de E/S
– A execução do programa tem lugar pela repetição de
um ciclo com as seguintes etapas: i) leitura da instrução
a executar, ii) obtenção dos operandos, iii) realização
da operação e iv) armazenamento do resultado
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 4
O uso da memória e o von
Neumann bottleneck
Endereço da posição
Endereço da posição
(…)
(…)
SOMAR
SOMAR
VALOR
Conteúdo:
INSTR.
Código de
instrução
Código da (…)
instrução A1 =
VALOR + A2 Memória
VALOR
ALU
Registo de
instrução
A1
A2
Conteúdo:
(…)
Operando
SOMAR
Memória
Registo de
instrução
CPU
Endereço da posição
A1
A2
CPU
Endereço da posição
(…)
(…)
SOMAR
SOMAR
VALOR
VALOR
ALU
INSTR.
Conteúdo:
INSTR.
(…)
Operando
(…)
Memória
ALU
INSTR.
SOMAR
Registo de
instrução
A1
A2
ALU
Conteúdo:
Memória
Código de
instrução
CPU
INSTR.
A2+VAL
Registo de
instrução
A1
A2
CPU
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 5
Ainda sobre o uso da
memória
• Na apresentação anterior
omitiram-se explicitamente
vários pormenores:
Endereço da posição
(…)
SOMAR
VALOR
Conteúdo:
INSTR.
Código de
instrução
(…)
ALU
– Como são gerados os
endereços?
– Como é que é indicado à ALU qual a operação a
realizar em cada instante?
– Como é que se indica aos vários registos quando
devem carregar um novo conteúdo?
Memória
Registo de
instrução
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 6
A1
A2
CPU
Arquitectura básica da UPC
• Para facilitar a nossa abordagem, começaremos
por considerar a arquitectura mínima que nos
permite a
CPU
execução de
um programa
residente em
memória:
Memória
Registo de
programa (PC)
Registo
R1
m bits
(3Eh)
(55h)
00111110
01010101
Descodificação e
controlo de execução
das instruções
Registo de
Instrução
(IR)
n bits
(código de
instrução)
Barramento
de endereços
Barramento
de dados
incr_RP
carr_R1
carr_RI
(sinais de
controlo)
n bits
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 7
Arquitectura básica da UPC
(cont.)
• Assumindo que se pretende apenas executar uma
instrução que permita a carga de um operando em
memória, deverá ser fácil concluir porque é que a
arquitectura apresentada é de facto a mínima...
Memória
CPU
Registo de
programa (RP)
m bits
(3Eh)
(55h)
00111110
01010101
Registo de
Instrução
(IR)
Descodificação e
controlo de execução
das instruções
n bits
(código de
instrução)
Barramento
de endereços
Barramento
de dados
incr_RP
n bits
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 8
Registo
R1
carr_R1
carr_RI
(sinais de
controlo)
Etapas elementares na
execução de uma instrução
• Instrução LD R1,#55H:
CPU
Memória
Registo de
programa (PC)
m bits
(3Eh)
(55h)
00111110
01010101
Registo
R1
Registo de
Instrução
(IR)
A
carr_IR
(carrega registo
de instrução)
B
incr_PC
(incrementa PC para
ler o operando 55h)
Descodificação e
controlo C
de execução
das instruções
n bits
(código de
D
instrução)
Barramento
de endereços
Barramento
de dados
incr_RP
carr_R1
carr_R1
(carrega o operando
no registo R1)
incr_PC
(incrementa PC para
apontar para o código da
instrução seguinte)
carr_RI
(sinais de
controlo)
n bits
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 9
Etapas elementares (cont.)
Carrega
IR
Increm.
PC
Carrega
R1
Increm.
PC
• O diagrama de estados para a execução da
instrução LD R1,#55H tem uma correspondência
directa com o seguinte diagrama
temporal:
(carrega registo
A
carr IR
T1
Relógio (CLK)
carr_IR
T2
T3
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 10
T4
(incrementa PC para
ler o operando 55h)
B
incr PC
C
carr R1 no registo R1)
incr_PC
carr_R1
de instrução)
D
(carrega o operando
incr PC
(incrementa PC para
apontar para o código da
instrução seguinte)
O impacto da
microelectrónica
• Na época posterior aos computadores baseados
em válvulas electrónicas, os principais marcos
tecnológicos foram os seguintes:
– 1947: O transístor (primeiro computador baseado em
transístores: NCR 304, em 1957)
– 1958:O circuito integrado (primeiros computadores
baseados em CI: IBM System 360, DEC PDP-8, em
1965)
– 1971: O microprocessador (primeiro computador
baseado num microprocessador: Micral, em 1973)
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 11
O i4004: O primeiro
microprocessador
• O Intel 4004 foi o primeiro microprocessador,
tendo sido inventado por Ted Hoff (a quem tinha
sido dado o encargo de projectar uma calculadora
para uma firma Japonesa)
• Com 2.300 transístores, o i4004 baseava-se numa
arquitectura de 4 bits e apresentava um custo
unitário de 200 dólares (o i4004 não chegou no
entanto a constituir o CPU de nenhum
computador)
EEC2104 – Microprocessadores - FEUP / DEEC / JMF - 12
Download