Dos sistemas digitais aos
computadores e aos Ps
• Organização:
–
–
–
–
–
–
–
Arquitecturas pré- von Neumann
O paradigma do programa residente em memória
Sobre o uso da memória
Arquitectura básica da unidade de processamento central
Etapas elementares na execução de uma instrução
O impacto da microelectrónica
Conceitos básicos sobre os microprocessadores de 8 bits
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 1
Arquitecturas pré von
Neumann
• Computadores electro-mecânicos:
– Konrad Zuse (Z1 a Z3)
– Howard Aiken (Mark I)
• Computadores baseados em válvulas
– John Atanasoff e Clifford Berry (ABC)
– John P. Eckert e John W. Mauchly (ENIAC)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 2
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...)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 3
O paradigma do programa
residente em memória
• Uma das principais desvantagens do ENIAC consistia
no facto de a programação do computador ser
efectuada por recablagem da sua 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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 4
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 5
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 6
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
(…)
VALOR
ALU
Memória
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
CPU
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 7
Memória
ALU
Conteúdo:
Código de
instrução
INSTR.
A2+VAL
Registo de
instrução
A1
A2
CPU
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 8
A1
A2
CPU
Ainda sobre o uso da
memória (cont.)
• O CPU necessita por vezes de suspender
temporariamente o “programa principal”, para
executar um outro segmento de programa:
– Quando se efectua a chamada a uma “subrotina”
– Quando um evento exterior requer a “atenção” do CPU
• Após esta suspensão, a execução do programa
principal deve ser retomada no mesmo ponto (o que
obriga naturalmente a guardar esta informação...)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 9
Ainda sobre o uso da
memória (cont.)
• O programa principal só pode ser retomado no local
onde foi suspenso se o endereço da instrução que
iria ser executada a seguir for armazenado em
memória (de leitura e escrita)
• À zona de memória que é usada para armazenar o
endereço da instrução seguinte é dada a designação
de stack (“pilha”)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 10
Arquitectura básica da UPC
• Para facilitar a nossa abordagem, começaremos por
considerar a arquitectura mínima que nos permite a
execução de
um programa
residente em
memória:
CPU
Memória
Registo de
programa (PC)
m bits
(3Eh)
(55h)
00111110
01010101
Registo
R1
Registo de
Instrução
(IR)
n bits
(código de
instrução)
Barramento
de endereços
Barramento
de dados
incr_RP
n bits
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 11
Descodificação e
controlo de execução
das instruções
carr_R1
carr_RI
(sinais de
controlo)
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
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
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 12
Registo
R1
Registo de
Instrução
(IR)
carr_R1
carr_RI
(sinais de
controlo)
Etapas elementares na
execução de uma instrução
• Instrução LD R1,#55H:
Memória
CPU
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
controloC
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_RI
n bits
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 13
(sinais de
controlo)
carr_R1
(carrega o operando
no registo R1)
incr_PC
(incrementa PC para
apontar para o código da
instrução seguinte)
Etapas elementares (cont.)
• O diagrama de estados para a execução da instrução
LD R1,#55H tem uma correspondência directa com o
registo
seguinte diagrama temporal: A carr_IR (carrega
de instrução)
T1
T2
Relógio (CLK)
carr_IR
T3
B
C
incr_PC
carr_R1
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 14
D
T4
(incrementa PC para
incr_PC ler o operando 55h)
(carrega o operando
carr_R1 no registo R1)
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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 15
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)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 16
Conceitos básicos sobre
Ps de 8 bits
• Apesar das arquitecturas de 32 e 64 bits serem hoje
em dia comuns, os componentes de 8 bits
continuarão a existir por tempo indeterminado, já que:
– Muitas aplicações (em particular em domínios com o
controlo de máquinas, electrodomésticos, etc.) não obtêm
benefícios de um maior número de bits
– Passar de 8 para 16 bits representa em princípio maior
área de silício e maior número de pinos, logo maior custo,
sendo que o baixo custo é fundamental para o sucesso
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 17
Conceitos básicos sobre
Ps de 8 bits (cont.)
• Repare-se que a arquitectura apresentada abaixo,
face à arquitectura mínima analisada, acrescenta dois
blocos: o stack pointer e a ALU
Barramento de dados
n
SP
Descodificação e
controlo de execução
das instruções
PC
R1
R0
IR
Acumulador
Variáveis
de estado
n
n
ALU
m
Barramento
de endereços
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 18
Reg. temp.
Transferência interna de
dados
• Repare-se que o bloco acumulador
Acumulador
é necessário para nos permitir
n
n
Variáveis
aplicar às entradas da ALU os dois de estado
operandos em simultâneo, uma vez
ALU
que temos apenas um barramento
Reg. temp.
interno de dados
• Pela mesma razão, é necessário um registo para
armazenar temporariamente o resultado
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 19
Controlo de estado nas
saídas dos registos
• A solução apresentada na
transparência anterior requer
que as saídas dos registos
possam ser colocadas em
terceiro estado, para garantir a
inexistência de conflitos no
acesso ao barramento
RK (um qualquer dos
registos na figura 5.8)
abre_reg
Bit 0
Dados[0]
Dados [7:0]
(oito bits)
Bit 7
Dados[7]
Dados[7:0] (oito bits)
R0
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 20
8
8
R1
8
R2
8
RK
A comunicação com o
exterior
• A unidade de processamento central comunica com o
exterior através de três barramentos:
– Endereços, onde se especifica qual a posição (de
memória ou E/S) a aceder
– Dados, pelo qual circula a informação de / para o CPU
– Controlo, que reúne as linhas que codificam o tipo de
operações a executar (e.g. se o CPU pretende ler ou
escrever na memória)
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 21
A memória revisitada:
Subrotinas e interrupções
• Referimos já que a suspensão temporária do
programa principal pode ocorrer em duas situações:
– Por chamada a uma subrotina
– Por ocorrência de um evento assíncrono com a execução
do programa principal, que o interrompe para poder ter a
“atenção” do CPU
• A sequência de acções que tem lugar é no entanto
idêntica em ambos os casos e será agora analisada
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 22
Subrotinas e interrupções
(cont.)
• A progressão na execução
de um programa,
temporariamente suspensa
por uma das razões
apontadas na
transparência anterior,
pode ser ilustrada como se
apresenta à direita:
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 23
Memória
Cód. da instr. actual
Código
“principal”
Cód. da instr. seguinte
Código de instrução
Código que
é executado
“a pedido”
Cód. instr. de retorno
O uso da stack
• Assumindo que a stack cresce para baixo, o que nem
sempre acontece, o seu uso começaria assim:
Chamada a subrotina
Cód. da instr. seguinte
(RP) (a apontar para a posição
com endereço “A”)
Cód. da instr. actual
Cód. da instr. seguinte
(endereços
crescentes)
(AP)
? (livre)
(AP)
(endereços
crescentes)
Ender. da posição A+1
? (livre)
Código de instrução
Código de instrução
(RP)
Pilha
Pilha
Subrotina
Subrotina
Cód. instr. de retorno
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 24
? (livre)
Cód. instr. de retorno
Conclusão
• Objectivo principal do capítulo: Efectuar a ponte entre
as duas alternativas principais de projecto
– Hardware dedicado (com funções pré-definidas ou DLP)
– Código residente em memória
• Pistas para a continuação do estudo:
– Arquitectura de computadores (princípios gerais e
evolução desde von Neumann)
– Impacto da tecnologia
Introdução ao Projecto com Sistemas Digitais e Microcontroladores
Dos sistemas digitais aos computadores e aos microprocessadores - 25
Download

Dos Sistemas Digitais aos Computadores e aos MPs