Computadores Introdução Histórico erjacobi/ensino/OAC/Historico.pdf · Histórico e Introdução...

Post on 01-Jun-2020

6 views 0 download

Transcript of Computadores Introdução Histórico erjacobi/ensino/OAC/Historico.pdf · Histórico e Introdução...

Universidade de Brasília

Histórico eIntrodução

Organização e Arquitetura deComputadores

Apresentar a evolução doscomputadores, sua estrutura emtermos de componentes básicos efunções principais.

Objetivo

Abstração

Projeto Urbano:• características da cidade

• definição dos setores

• vias de circulação

• sistema hidráulico e energético

• sistema de esgotos

• ...

AbstraçãoProcessador:• características: - para que serve ? - Que tipo de aplicações deve atender ?

• projeto da arquitetura: - conjunto de instruções - tipos de dados - registradores - ...

• projeto da organização: - blocos principais - barramentos - alimentação e relógio - ...

Abstração

• o ser humano consegue tratar um conjunto pequeno de conceitosao mesmo tempo

• em um projeto, a abstração permite ignorar detalhes, focandoaspectos mais gerais em primeiro lugar

• os conceitos ou relações abstratos são sucessivamentedetalhados, até chegar a uma descrição do projeto em nível deimplementação

• através da abstração se controe uma hierarquia de conceitos erelações, que auxilia a divisão do problema em unidades maissimples

Marcos na História da Computação

1642 Pascal Soma, subtração Transferência devai-um

1671 Leibinitz *, -, +, / Mecanismo paramul. e div.

1827 Babbage:Difference Engine

Avaliaçãopolinomial

Automação deoperações

1834 Babbage:Analytical Engine

Computador depropósito geral

Controle dosequênciamento

1941 Zuse: Z3 Computador depropósito geral

Dispositivoseletro-mecânicos

1944 Aiken:Harvard Mark I

Computador depropósito geral

Válvulas

No princípio (pré-computadores)

No início do século 17 iniciou-se a automação de tarefas commáquinas (ex.:adição mecanizada). Com resultados utilizados atéhoje!

Blaise Pascal,matemático efilósofo doséculo 17.

Por exemplo:

Máquina de Pascal

Mais tarde no mesmo século foram adicionadasmultiplicação e divisão à máquina.

Cartões perfurados codificados com instruções para amáquina vieram da indústria de tecelagem.

Máquina de Babbage

• em 1823, Charles Babbage concebeu aDifference Engine, para cômputo automático detabelas matemáticas utilizando o método dasdiferenças finitas

• foi concebida para polinômios de grau 6 enúmeros binários de 20 bits

• não foi concluída por dificuldades no projetomecânico

Máquina de Babbage

• em 1934 concebeu a Analytical Engine, queintroduziu conceitos de armazenamento deinformações (memória), unidade operadora econtrole, presentes nos computadores atuais

• a entrada de dados era via cartões perfurados

Máquina de Babbage

ENIACO primeiro computador eletrônico

ENIAC• Início dos anos 40

• Universidade da Pennsylvania

• 18000 válvulas e 1500 relés

• Electronic Numerical Integrator And Calculator.

• 5000 adições por segundo ou 357 multiplicações por segundo.

• programado por cartões perfurados e podia ler dois números por segundo.

O MARK I

A série de computadores Mark foidesenvolvida na Universidade de Harvarddurante os anos 40.

O primeiro, Mark I, entrou em operação em1944 e foi utilizado até 1959.

O MARK I

Armazenava e contava números mecanicamente,utilizando 3000 discos de armazenamento decimais,1400 chaves circulares (rotary dial switches) e 500milhas de fios. Transmitia e lia os dados eletricamente.

Era programado por cartões perfurados, pesava 5toneladas e realizava uma operação de multiplicação em6 segundos.

O MARK I

Os dados eram armazenados em local diferente dasinstruções (programa). Este tipo de organização ficouconhecida como Arquitetura de Harvard

As instruções também eram armazenadas numformato diferente dos dados

A arquitetura von Neumann

• Nos primeiros computadores o controle (instruções) tinha natureza diferente dos dados. O controle era usualmente manipulado através de fios e chaves, os dados lidos de fita ou cartão

• A equipe de von Neumann (ENIAC) desenvolveu a idéia de representar dados e instruções da mesma forma, armazenando o programa na memória, como os dados. Este conceito ficou conhecido como arquitetura de von Neumann. Muitos pesquisadores contestam este termo por ignorar o trabalho de Eckert e Mauchly, engenheiros do projeto

Mudanças no hardware

Mudanças no hardware

Os primeiros dispositivos utilizados eram os relés(eletromecânicos)

A utilização de válvulas aumentou a velocidade deoperação, com comutação eletrônica

Para o final dos anos 50 foi introduzido o uso dotransistor. 1/200 do tamanho da válvula. Podiam suportaraté 100.000 instruções por segundo.

Gerações de Computadores

Geração Período Tecnologia Velocidade(op / seg)

1 1946-57 Válvula 40.000

2 1958-64 Transistor 200.000

3 1965-71 Integraçãomédia e baixa

1.000.000

4 1972-77 Integração alta 10.000.00

5 1978- Integraçãomuito alta

100.000.000

Principais Módulos

Controle

Operação

Memória

Entrada

Saída

Processador

Sistema computacional típico

O processador

O Processador

• para executar uma instrução, o processadorinternamente utiliza:– registradores para armazenar dados e instruções

– circuitos lógicos para executar operações simples

– máquinas de estado para executar sequências deoperações, implementando as instruções

Como a memória é organizada

Como a memória é organizada

A memória de acesso randômico é utilizada para trocade informações ou para o armazenamento deprogramas (do disco ou outro periférico) para executá-los.

Este tipo de memória não preserva seu conteúdoquando o sistema é desligado.

Ciclo de Execução

• o ciclo típico de execução de uma instrução emum computador divide-se em etapas:– busca instrução na memória

– decodifica

– busca operando(s)

– realiza operação

– armazena resultado

Dispositivos periféricos

Dispositivos periféricos

Dispositivos periféricos

Dispositivos periféricos

Software

Níveis deabstração

Nível 0Lógica digital

Nível 1Microprogramação

Nível 2Máquina convencional

Nível 3Sistema Operacional

Nível 4Linguagem de montagem

Nível 5Linguagem orientada para problemas

Tradução (compilador)

Tradução (montador)

Interpretação (SO)

Interpretação (µprograma)

µprograma executado pelo hardware

Linguagens de baixo-nível

Enquanto os sistemas von Neumann lidam bem comas instruções em linguagem de máquina, ela não émuito fácil para os programadores lerem ouescreverem.

A linguagem assembly foi desenvolvida nos anos 50.Utiliza códigos mnemônicos (ADD, SUB, ...), maisfáceis de aprender e memorizar que os códigosnuméricos.

Linguagens de baixo-nível

Na linguagem assembly cada instrução tem umacorrespondência de um-para-um com asinstruções em linguagem de máquina.

Linguagens assembly exigem o uso demontadores: programas que traduzem alinguagem assembly em linguagem de máquina.

Linguagens de baixo-nível

Como cada processador tem seu próprio conjunto deinstruções, também tem seu próprio montador.

Isto significa que um programa em linguagem assemblysó pode ser escrito para um tipo particular de máquina.

Linguagem de máquina e linguagem assembly sãochamadas linguagens de baixo-nível.

Linguagens de alto-nível

Para resolver os problemas das linguagens assembly foinecessário desenvolver outro tipo de linguagens: aslinguagens de alto-nível.

Mais naturais para o programador e independentes demáquina.

O programador pode se preocupar com um problema emparticular e não como traduzí-lo para o nível decompreensão da máquina.

Linguagens de alto-nívelPor exemplo, escrever

A = B + C

é mais fácil do que escrever

MOV @C, R1;

ADD @B, R1;

MOV R1, @A;

A primeira é mais abstrata e faz menos considerações sobre amáquina alvo.

Linguagens de alto-nível

Linguagens de alto-nível foram desenvolvidas nosmeados dos anos 50.

A primeira foi FORTRAN, seguida pelo ALGOL eLISP.

As linguagens de alto-nível modernas incluem Pascal,C, C++, Smalltalk, Java, ...

Linguagens de alto-nível

Estas linguagens requerem o uso de compiladores:programas que traduzem o código fonte de alto-nível nalinguagem de máquina do computador alvo.

A cada instrução do código fonte podem correspondervárias instruções da linguagem de máquina.

Um programa simples

FOR I = 1 TO 4 PRINT I

END

Um programa equivalente em assembly:

PUT 1 INTO Register 1PUT 4 INTO Register 2LOOP: COMPARE Register 1 WITH Register 2IF EQUAL BRANCH TO "END"ADD 1 TO Register 1BRANCH TO "LOOP"END: STOP

I think there is a world

market for maybe five

computers.

” TTTThhhhoooommmmaaaassss WWWWaaaattttssssoooonnnn SSSSeeeennnniiiioooorrrr,,,,

CCCChhhhaaaaiiiirrrrmmmmaaaannnn ooooffff IIIIBBBBMMMM,,,, 1111999944443333