hierarquia de níveis – arquitetura von neumman

Propaganda
HIERARQUIA DE NÍVEIS – ARQUITETURA VON NEUMMAN
AULA 02 – Arquitetura de Computadores
Gil Eduardo de Andrade
O conteúdo deste documento é baseado no livro “Princípios Básicos de Arquitetura e
Organização de Computadores” – Linda Null e Julia Labur.
Desenvolvimento Histórico
O caminho do desenvolvimento dos computadores passou por descobertas acidentais,
pressão comercial e ideias extravagantes. Durante seus mais de 50 anos de história inúmeras
tecnologias foram desenvolvidas, melhoradas e adaptadas, porém sem dúvida o componente que
revolucionou a era da eletrônica e consequentemente da informática foi o transistor.
Contudo para entendermos a história dos computadores ao longo de seus 50 anos de
existência (aproximadamente) dividimos sua evolução em gerações, cada geração sendo definida
pela tecnologia usada para construir a máquina.
Primeira Geração: Computadores à Válvulas (1945–1953)
John Mauchly e J. Presper Eckert foram os dois principais inventores do ENIAC,
apresentado em 1946. O ENIAC é reconhecido como sendo o primeiro computador digital de
uso geral totalmente eletrônico, que usava 17.468 válvulas, ocupava 1800 metros quadrados de
chão, pesava 30 toneladas e consumia 174 kilowatts de energia. O ENIAC tinha uma capacidade
de memória de cerca de 1000 bits de informação (cerca de 20 números de 10 dígitos decimais) e
usava cartões perfurados para armazenar dados.
Durante a Segunda Guerra Mundial, o exército do EUA tinha a necessidade de calcular
trajetórias dos novos equipamentos de tiro. Milhares de soldados trabalhavam na aritmética
necessária para obter resultados das balísticas. Considerando que dispositivos eletrônicos
poderiam diminuir o tempo de cálculo de dias para minutos, o exército liberou fundos para o
ENIAC, que realmente reduziu o tempo de cálculo de uma tabela, de 20 horas para 30 segundos,
mostrando que computadores com válvulas eram rápidos e viáveis. Durante a próxima década,
sistemas a válvula continuaram a melhorar e foram comercialmente bem-sucedidos.
→ O que é uma válvula?
São Tubos de vácuo que ficaram conhecidos como válvulas
pelo fato de controlarem o fluxo de elétrons em sistemas eletrônicos
da mesma forma como as válvulas controlam o fluxo de água em
sistemas encanados.
Observando uma válvula percebemos sua semelhança com
uma lâmpada, e essa semelhança não é mera coincidência. Tanto a
válvula eletrônica quanto as lâmpadas incandescentes são
dispositivos constituídos de um bulbo de vidro no interior do qual se
faz o vácuo e que contém um filamento condutor que deixa
atravessar uma corrente elétrica.
As válvulas são grandes, são frágeis e só funcionam depois
que o filamento fica em brasa, não somente demoram para entrar em
carga (antigamente esperava-se “esquentar” os rádios) como também
consomem muita potência elétrica.
Segunda Geração: Computadores com Transistores (1954–1965)
Em 1948, pesquisadores do Bell Laboratories – John Bardeen, Walter Brattain e William
Shockley – inventaram o transistor. Esta nova tecnologia não apenas revolucionou dispositivos
como televisões e rádios, mas também impulsionou a indústria de computadores para uma nova
geração. Visto que transistores consomem menos energia do que válvulas, são menores e
trabalham com mais confiabilidade, os circuitos de computadores consequentemente se tornaram
menores e mais confiáveis. Apesar do uso de transistores, os computadores desta geração ainda
eram grandes e bastante caros.
→ O que é um transistor
O transistor é uma versão em estado sólido de uma válvula,
elétrons se comportam melhor em um meio sólido do que no vazio
aberto de um tubo de vácuo. Transistores não são apenas pequenas
válvulas; eles também operam mais frios e são muito mais
confiáveis. Filamentos de tubos de vácuo, como filamentos de
lâmpadas, funcionam mais quentes e em algum momento queimam.
Computadores que usam componentes transistorizados são
naturalmente menores e funcionam em temperaturas menores do
que suas válvulas antecessoras. A miniaturização final, entretanto,
não é realizada apenas pela substituição de válvulas por
transistores, mas sim colocando circuitos inteiros em um pedaço de
silício.
Terceira Geração: Computadores com circuitos integrados (1965–1980)
A verdadeira explosão no uso de computadores veio com a geração de circuitos
integrados. Jack Kilby inventou o circuito integrado (CI), ou microchip, feito com germânio.
Seis meses depois, Robert Noyce (que também havia trabalhado em projeto de circuitos
integrados) criou um dispositivo similar usando silício em vez de germânio, foi sob este chip de
silício que foi construída a indústria de computadores.
Os CIs pioneiros permitiam que dezenas de transistores existissem em um único chip de
silício que era menor do que um transistor simples em “componente discreto”. Os computadores
se tornaram mais rápidos, menores e mais baratos, trazendo imensos ganhos ao poder de
processamento.
Quarta Geração: Computadores VLSI (1980–????)
Na terceira geração de evolução eletrônica, vários transistores foram integrados em um
chip. À medida que as técnicas de fabricação e as tecnologias de chip avançaram, um número
crescente de transistores foram empacotados em um chip. Contudo existem diversos níveis de
integração: SSI (small scale integration – integração em pequena escala), na qual existem de 10
a 100 componentes por chip; MSI (medium scale integration – integração em média escala), na
qual existem de 100 a 1.000 componentes por chip; LSI (large scale integration – integração em
larga escala), na qual existem de 1.000 a 10.000 componentes por chip; e, finalmente, VLSI
(very large scale integration – integração em muito larga escala), na qual existem mais de
10.000 componentes por chip. Este último nível, VLSI, marca o início da quarta geração de
computadores.
HIERARQUIA DE NÍVEIS DO COMPUTADOR
A organização de um sistema de computação pode ser abordada em camadas. Podemos
imaginar a máquina como sendo construída em uma hierarquia de níveis, em que cada nível tem
uma função específica. Cada nível pode ser visto como uma máquina virtual que executa seu
próprio conjunto de instruções, solicitando às máquinas dos níveis mais baixos que realizem as
tarefas quando necessário.
→ Nível 6: Nível do Usuário, composto pelas aplicações, é o nível com o qual todos estamos
familiarizados. Neste nível executamos programas como processadores de textos, pacotes
gráficos ou jogos, sendo os níveis inferiores praticamente invisíveis ao nível do usuário.
→ Nível 5: Nível das Linguagens de Alto Nível, como C, C++, FORTRAN, essas linguagens
devem ser traduzidas (usando um compilador ou um interpretador) para uma linguagem que a
máquina possa entender. Linguagens compiladas são traduzidas para a linguagem simbólica do
nível abaixo.
→ Nível 4: Nível da Linguagem Simbólica, são a tradução das linguagens compiladas de alto
nível para linguagem simbólica, que em níveis inferiores, será diretamente traduzida para
linguagem de máquina. Esta tradução ocorre um-a-um, ou seja, uma instrução em linguagem
simbólica é traduzida exatamente para uma instrução em linguagem de máquina (zeros e uns).
→ Nível 3: Nível do Software de Sistema, trata das instruções de operação do sistema. Este
nível é responsável por multiprogramação, proteção de memória, sincronização de processos e
várias outras funções importantes. Muitas vezes as instruções traduzidas da linguagem simbólica
para a linguagem de máquina são passadas por meio deste nível sem modificação.
→ Nível 2: Arquitetura do Conjunto de Instruções (ISA), ou Nível de Máquina, consiste da
linguagem de máquina reconhecida pela arquitetura particular do sistema de computação, podem
ser executados diretamente pelos circuitos eletrônicos sem quaisquer interpretadores, tradutores
ou compiladores.
→ Nível 1: Nível de Controle, é onde a unidade de controle se assegura de que as instruções
sejam decodificadas e executadas adequadamente e de que os dados sejam movidos para onde e
quando eles devem ser. A unidade de controle interpreta as instruções de máquina passadas para
ela, uma de cada vez, fazendo com que as ações requeridas sejam executadas.
→ Nível 0: Nível de Lógica Digital, onde encontramos os componentes físicos do sistema de
computação: as portas e os fios. Estes são os blocos básicos de construção, as implementações da
lógica matemática, que são comuns a todos os sistemas de computação.
ARQUITETURA VON NEUMMAN
Nas primeiras máquinas de computação eletrônicas, programar era sinônimo de conectar
fios a pinos, sendo assim trocar a programação, ou seja, o programa que uma máquina devia
executar era uma tarefa quase impossível, porém com a proposta de Arquitetura do matemático
Von Neumman, foi possível criar computadores com programas armazenados e estes tornaram-se
conhecidos como sistemas de Von Neumann.
Arquitetura Von Neumman consiste em três sistemas de hardware:
→ Uma unidade central de processamento (UCP), como unidade de controle, formada pela
unidade lógica aritmética (ULA), registradores (pequenas memórias) e um contador de
programa;
→ Um sistema de memória principal, que armazena programas que controlam a execução do
computador;
→ Um sistema de Entrada e Saída.
Seu funcionamento agrega os seguintes tópicos:
→ Capacidade de executar processamento sequencial de instruções;
→ Possui um único caminho, físico ou lógico, entre o sistema de memória principal e a unidade
de controle da UCP, forçando a alternância entre ciclos de instrução e execução.
Um ciclo de instrução (ou ciclo de busca-decodificação-execução) consiste em:
1. A unidade de controle busca a próxima instrução do programa na memória usando o
contador de programa para determinar onde a instrução está localizada.
2. A instrução é decodificada para uma linguagem que a ULA possa entender.
3. Qualquer operando de dados requerido para executar a instrução é carregado da memória e
colocados em registradores dentro da UCP.
4. A ULA executa a instrução e coloca os resultados em registradores ou na memória.
Download