25
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

Dos sistemas digitais aos computadores e aos Ps

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Dos sistemas digitais aos computadores e aos   Ps

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

Page 2: Dos sistemas digitais aos computadores e aos   Ps

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)

Page 3: Dos sistemas digitais aos computadores e aos   Ps

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...)

Page 4: Dos sistemas digitais aos computadores e aos   Ps

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)

Page 5: Dos sistemas digitais aos computadores e aos   Ps

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

Page 6: Dos sistemas digitais aos computadores e aos   Ps

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

Page 7: Dos sistemas digitais aos computadores e aos   Ps

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

Page 8: Dos sistemas digitais aos computadores e aos   Ps

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?

Page 9: Dos sistemas digitais aos computadores e aos   Ps

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...)

Page 10: Dos sistemas digitais aos computadores e aos   Ps

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”)

Page 11: Dos sistemas digitais aos computadores e aos   Ps

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:

Page 12: Dos sistemas digitais aos computadores e aos   Ps

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

Page 13: Dos sistemas digitais aos computadores e aos   Ps

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

Page 14: Dos sistemas digitais aos computadores e aos   Ps

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

Page 15: Dos sistemas digitais aos computadores e aos   Ps

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)

Page 16: Dos sistemas digitais aos computadores e aos   Ps

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)

Page 17: Dos sistemas digitais aos computadores e aos   Ps

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

Page 18: Dos sistemas digitais aos computadores e aos   Ps

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

Page 19: Dos sistemas digitais aos computadores e aos   Ps

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

Page 20: Dos sistemas digitais aos computadores e aos   Ps

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)

Page 21: Dos sistemas digitais aos computadores e aos   Ps

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)

Page 22: Dos sistemas digitais aos computadores e aos   Ps

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

Page 23: Dos sistemas digitais aos computadores e aos   Ps

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

Page 24: Dos sistemas digitais aos computadores e aos   Ps

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

Page 25: Dos sistemas digitais aos computadores e aos   Ps

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