Title: Dos sistemas digitais aos computadores e aos ?Ps
1Dos 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
2Arquitecturas 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)
3Arquitecturas 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...)
4O 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)
5A 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
6John 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
7O uso da memória e o von Neumann bottleneck
8Ainda sobre o uso da memória
- Na apresentação anterior omitiram-se
explicitamente vários pormenores
- 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?
9Ainda 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...)
10Ainda 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)
11Arquitectura 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
12Arquitectura 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...
13Etapas elementares na execução de uma instrução
14Etapas 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
15O 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) - 1958O 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)
16O 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)
17Conceitos 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
18Conceitos 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
19Transferê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
- Pela mesma razão, é necessário um registo para
armazenar temporariamente o resultado
20Controlo 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
21A 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)
22A 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
23Subrotinas 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
24O uso da stack
- Assumindo que a stack cresce para baixo, o que
nem sempre acontece, o seu uso começaria assim
25Conclusã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