Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dos sistemas digitais aos computadores e aos microprocessadores - 1 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
25
Embed
Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dos sistemas digitais aos computadores e aos microprocessadores - 1 Dos sistemas digitais.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 1
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 2
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 3
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 4
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 5
A “arquitectura de von Neumann”• 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
MEM.E / S
ALU
CONTR.
EXT.
CPU
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 6
John von Neumann (cont.)• 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
MEM.E / S
ALU
CONTR.
EXT.
CPU
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 7
O uso da memória e o von Neumann bottleneck
SOMAR
VALOR
INSTR.
(…)
(…)
Endereço da posição
Conteúdo:
Código deinstrução
Registo deinstrução
A1 A2
ALU
Memória
CPU
SOMAR
VALOR
INSTR.
(…)
(…)
Endereço da posição
Registo deinstrução
A1 A2
ALU
SOMARMemória
CPU
Conteúdo:
Operando
SOMAR
VALOR
INSTR.
(…)
(…)
Endereço da posição
Registo deinstrução
A1 A2
ALU
Memória
CPU
SOMAR
Conteúdo:
Operando
SOMAR
VALOR
INSTR.
(…)
(…)
Endereço da posição
Registo deinstrução
A1 A2
ALU
Memória
CPU
INSTR.
Conteúdo:
Código deinstrução A2+VAL
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 8
Ainda sobre o uso da memória• Na apresentação anterior
omitiram-se explicitamente vários pormenores:
SOMAR
VALOR
INSTR.
(…)
(…)
Endereço da posição
Conteúdo:
Código deinstrução
Registo deinstrução
A1 A2
ALU
Memória
CPU
– 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?
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 9
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 10
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 11
Arquitectura básica da UPC
• Para facilitar a nossa abordagem, começaremos por considerar a arquitectura mínima que nos permite a
RegistoR1
Registo deInstrução
(IR)
Descodificação econtrolo de execução
das instruções
Registo deprograma (PC)
0011111001010101
Memória
(3Eh)
incr_RP carr_R1 carr_RI
n bits(código deinstrução)
(sinais decontrolo)
Barramentode endereços
m bits
(55h)
Barramentode dados
n bits
CPUexecução de um programa residente em memória:
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 12
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...
RegistoR1
Registo deInstrução
(IR)
Descodificação econtrolo de execução
das instruções
Registo deprograma (RP)
0011111001010101
Memória
(3Eh)
incr_RP carr_R1 carr_RI
n bits(código deinstrução)
(sinais decontrolo)
Barramentode endereços
m bits
(55h)
Barramentode dados
n bits
CPU
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 13
Etapas elementares na execução de uma instrução• Instrução LD R1,#55H:
RegistoR1
Registo deInstrução
(IR)
Descodificação econtrolo de execução
das instruções
Registo deprograma (PC)
0011111001010101
Memória
(3Eh)
incr_RP carr_R1 carr_RI
n bits(código deinstrução)
(sinais decontrolo)
Barramentode endereços
m bits
(55h)
Barramentode dados
n bits
CPU
carr_R1
incr_PC
carr_IR
incr_PC
(carrega registode instrução)
(incrementa PC paraler o operando 55h)
(carrega o operandono registo R1)
(incrementa PC paraapontar para o código dainstrução seguinte)
A
B
C
D
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 14
Etapas elementares (cont.)
• O diagrama de estados para a execução da instrução LD R1,#55H tem uma correspondência directa com o seguinte diagrama temporal:
carr_R1
incr_PC
carr_IR
incr_PC
(carrega registode instrução)
(incrementa PC paraler o operando 55h)
(carrega o operandono registo R1)
(incrementa PC paraapontar para o código dainstrução seguinte)
A
B
C
D
Relógio (CLK)
carr_IR
incr_PC
carr_R1
T1 T2 T3 T4
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 15
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 16
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 17
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 18
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
R0 IR
Descodificação econtrolo de execução
das instruções
Barramento de dados
Barramentode endereços
PCSP
R1
ALU
Acumulador
Variáveisde estado
Reg. temp.
n
m
n n
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 19
Transferência interna de dados• Repare-se que o bloco acumulador
é necessário para nos permitir aplicar às entradas da ALU os dois operandos em simultâneo, uma vez que temos apenas um barramento interno de dados
ALU
Acumulador
Variáveisde estado
Reg. temp.
n n
• Pela mesma razão, é necessário um registo para armazenar temporariamente o resultado
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 20
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
Dados[7:0] (oito bits)
R0 R1 R2 RK
8 8 8 8
Dados[0]
abre_reg
Dados[7]
Dados [7:0](oito bits)
Bit 0
Bit 7
RK (um qualquer dosregistos na figura 5.8)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 21
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 22
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 MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 23
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:
Cód. da instr. actual
Código de instrução
Cód. da instr. seguinte
Cód. instr. de retorno
Código“principal”
Código queé executado“a pedido”
Memória
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 24
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ódigo de instrução
Cód. da instr. seguinte
Cód. instr. de retorno
(RP)
? (livre)
? (livre)(AP)
(a apontar para a posiçãocom endereço “A”)
Pilha
(endereçoscrescentes)
Subrotina
Cód. da instr. actual
Código de instrução
Cód. da instr. seguinte
Cód. instr. de retorno
(RP)
? (livre)
Ender. da posição A+1
(AP)
Pilha
(endereçoscrescentes)
Subrotina
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresDos sistemas digitais aos computadores e aos microprocessadores - 25
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