Sei sulla pagina 1di 79

Arquitetura e Organizao de Computadores

Prof. Alexandre Correia

Introduo
Primrdios
Necessidades do homem induziu ao uso de
Animais
Produo de alimento Transporte

Ferramentas rudimentares

Cresceram suas necessidades Suas tcnicas passaram a ser utilizadas em vrios campos, alm das necessidades bsicas

A necessidade de ultrapassar os limites do corpo fez com que o homem utilizasse melhor seu raciocnio Crescentes demandas
Expanso da capacidade/rapidez de raciocnio
Mquinas de calcular diversas Computador

Exemplo
conseguimos calcular o saldo de nossa conta corrente, mas se precisssemos saber o saldo de todos os clientes de uma nica agncia bancria...

Introduo

baco sculo V AC (Babilnia)

Histrico

Mquina de calcular de Blaise Pascal (Soma e subtrao)

Histrico

Mquina de calcular de Leibniz (evoluo de Pascal). Com mais duas engrenagens tambm multiplicava e dividia.

Maquina diferencial

Charles Babbage (computar e imprimir tabelas matemticas) Idia: se possvel construir diferentes mquinas para executar um determinado tipo de clculo, por que no ser possvel construir uma capaz de qualquer tipo de clculo?

Mquina de Tear de Jacquard

Usava um programa que lhe informava quais fios deveriam passar por cima ou por baixo, quando repetir o processo, etc. O ponto chave da mquina de Jacquard era o uso de uma srie de cartes cujos buracos estavam configurados para descrever o modelo a ser produzido

Mquina diferencial de Scheutz

Tabuladora de Herman Holleritch

Um empregado de apenas 19 anos do United States Census Office

Dispositivos eltricos (Sculo XX)

Analisador Diferencial de Lord Kelvin, um dispositivo para a soluo de sistemas de equaes diferenciais ordinrias

Analisador harmnico de Michelson

Durante a I Guerra Mundial tornaram-se estratgicos os problemas referentes aos clculos balsticos, o que foi um incentivo continuidade do desenvolvimento de mquinas computacionais.

Computao Eletrnica
No incio da Segunda Guerra, as necessidades de melhores tabelas de clculo para as trajetrias de tiros tornaram-se imperativas, pois os analisadores diferenciais estavam no seu limite.

ENIAC (Electronic Numerical Integrator and Computer) - A programao era feita com fios

Colossos

Esta primeira gerao de computadores caracterizou-se pelo fato de que as instrues de operao eram produzidas para tarefas especficas. Cada mquina tinha um programa em cdigo binrio diferente que indicava o fluxo das operaes. Isto dificultava a programao e limitava a versatilidade desses primeiros computadores.

IAS 1952

Desenvolvimento de hardware e de software nos primeiros tempos da computao

Linguagens
Desde o incio, o foco da computao era matemtico O ponto fundamental era verificar a validade das proposies matemticas Para isso era necessrio descobrir um procedimento efetivamente computvel para realizar essa tarefa

Linguagens
Um procedimento efetivo uma seqncia finita de instrues que podem ser executadas por um agente computacional, seja ele homem ou no. Propriedades:
I. a descrio deve ser finita; II. parte de um certo nmero de dados, pertencente a conjuntos especficos de objetos, e espera-se que produza um certo nmero de resultados que mantenham relao especfica com os dados; III. supe-se que exista um agente computacional humano, eletrnico, mecnico, etc. que execute as instrues do procedimento; IV. cada instruo deve ser bem definida; V. as instrues devem ser to simples que poderiam ser executadas por algum usando lpis e papel, em um espao de tempo finito.

Linguagens
Esse procedimento efetivo tambm chamado de algoritmo. Programas de computadores que terminam sua execuo, fornecido qualquer conjunto especfico de dados de entrada, so algoritmos. A descrio finita do algoritmo deve ser feita atravs de uma determinada linguagem. Essa linguagem algortmica deve pertencer a um subconjunto no ambguo de uma linguagem natural, tal como Francs ou Ingls, ou ser uma linguagem artificial construda para isso, como, por exemplo, as linguagens de programao

Nos primeiros tempos da computao propriamente dita os programas eram escritos em cdigo de mquina e colocados diretamente no computador por meio de cabos e fios. Por exemplo:
0000 0001 0110 1110 0100 0000 0001 0010 1100 0000 0000 1101

A frase mais freqente que ns ouvamos era que a nica maneira de se programar em um computador era em octal Grace Murray Hopper Uma linguagem de programao em sentido prprio consiste de construes que so (em ltima instncia) abstraes do cdigo de mquina

Percebeu-se claramente que os programas em cdigo de mquina eram extremamente difceis de editar e modificar, e quase impossveis de se compreender. A comunidade computacional logo entendeu que era necessrio inventar uma notao simblica para tornar os programas mais fceis de escrever. Nesta evoluo as instrues acima ficam com o formato: LOAD X ADD R1 R2 JUMPZ H

O programador prepararia o programa para ser executado, 'escrevendo' manualmente (em painis, atravs de um emaranhado de cabos e 'plugs') as instrues no correspondente cdigo de mquina. Este processo foi chamado de assembling. O que depois se queria fazer era que a prpria mquina executasse essa operao de converso.

Mas mesmo quando programava com esses cdigos de operao mnemnicos (tambm chamados de linguagem de montagem), o programador ainda estava trabalhando em termos dos conjuntos de instrues da mquina, isto , os algoritmos eram expressos em termos de instrues muito primitivas (detalhes sobre registradores, endereos, saltos, etc.). Da a denominao linguagens de baixo nvel. A busca de linguagens que pudessem permitir que os algoritmos fossem expressos em termos anlogos idia elaborada na mente do programador fez com que aparecessem os primeiros compiladores e comeassem a surgir as chamadas linguagens de alto nvel.

Duas tendncias pioneiras:


O que era possvel implementar O que era possvel escrever

Alan Mathison Turing

A revoluo do computador comeou efetivamente a realizar-se no ano de 1935, com Alan Turing

Alan Turing
Alan M. Turing, para tratar do problema da indecidibilidade, construiu uma linguagem muito primitiva para sua mquina. Nela s havia comandos para ler, testar uma condio e escrever smbolos sobre uma fita, movendo para a direita ou esquerda uma cabea de leitura e gravao. Turing definiu uma mquina terica que se tornou um conceito chave dentro da Teoria da Computao. Uma conceituao matemtica da noo de algoritmo, uma noo que ele modelou baseando-se nos passos que um ser humano d quando executa um determinado clculo ou cmputo. Ele formalizou definitivamente o conceito de algoritmo.

Jnos Louis Von Neumann (19031957)

Notvel matemtico. Interessou-se por computao e envolveu-se na construo do computador Colossus e do ENIAC

Este hngaro (naturalizado americano), era no final de sua vida um dos mais poderosos homens em cena no comando da poltica americana com relao s cincias. Durante a guerra, os seus conhecimentos em hidrodinmica, balstica, meteorologia, teoria dos jogos, e estatstica, foram colocados em uso em vrios projetos. No fim da II Guerra von Neumann tornou-se consultor, servindo a numerosos comits com sua prodigiosa habilidade de rapidamente ver a soluo de problemas.

Von Neuman e o IAS

A arquitetura de von Neuman


Von Neumann ficou encarregado de escrever o First draft of a report on the EDVAC (1945), documento que nunca passou da fase de rascunho (foi publicado na ntegra somente anos mais tarde, com forma ligeiramente editada Existem controvrsias sobre quem teria sido o primeiro a propor o conceito de programa armazenado O trabalho terico de Turing, com o qual von Neumann estava familiarizado, j indicava essa possibilidade.

O documento redigido por von Neumann a primeira descrio minuciosa e quase completa da arquitetura de um computador. Muitas idias continuam vlidas at hoje: a separao entre arquitetura lgica e fsica, a diviso do projeto em unidades de controle, aritmtica, memria, entrada e sada, precursoras de todos os projetos posteriores.

Arquitetura de von Neuman

Arquitetura de von Neuman


Uma memria principal, que armazena dados e instrues. Uma unidade lgica e aritmtica (ULA), capaz de realizar operaes com dados binrios. Uma unidade de controle, que interpreta e executa instrues armazenadas na memria. Dispositivos de entrada e sada (EIS), operados pela unidade de controle.

Primeiros computadores
Dois nveis de linguagem
Nvel de linguagem de mquina (programao) Nvel de lgica digital (execuo de programas)

1951
Computador de 3 nveis
Interpretador armazenado permanentemente, executava os programas em linguagem de mquina.

O hardware poderia ser simplificado: teria apenas que executar um pequeno conjunto de microinstrues armazenadas (para a converso para linguagem de mquina) Exigia menos circuitos eletrnicos A partir da comearam a evoluir as linguagens e as arquiteturas das mquinas

Primeira gerao (1945 1955)


Vlvulas e rels 10 dgitos decimais

Segunda gerao (1956 - 1963)


Impulsionada pela inveno do transistor (1948) Surgimento das impressoras, fitas magnticas, discos para armazenamento etc

Os computadores passaram a ter um desenvolvimento rpido, impulsionados principalmente por dois fatores essenciais: os sistemas operacionais e as linguagens de programao. Lei de Moore Em 1965, juntamente com a evoluo dos circuitos integrados, surge uma lei que iria estabelecer uma pseudo-regra para a evoluo de computadores, a Lei de Moore, criada por Gordon Moore. Tal lei dizia que o nmero de transistores dos chips dobraria a cada 18 meses, mantendo o mesmo custo.

Terceira gerao (1964 - 1970)


Os circuitos integrados propiciaram um novo avano

Quarta gerao*
As tecnologias LSI, VLSI e ULSI abrigam milhes de componentes eletrnicos em um chip

Quinta gerao*
Paralelismo e inteligncia artificial

Todos querem um

Alguns no sabem viver sem ele

Cada vez mais dependentes

Componentes Bsicos do Sistema Computacional


Um sistema de computao consiste em um processador, memria, dispositivos de EIS e interconexes entre esses componentes principais. Falta alguma coisa?

Conceitos Bsicos
Um computador composto apenas por dispositivos eletrnicos?
Hardware Software

Hardware e software
O hardware a parte fsica do computador, seus circuitos eletrnicos, cabos, placas, dispositivos perifricos conectados etc. O software a parte no fsica: programas, instrues e procedimentos escritos por programadores para controlar o hardware de modo que este possa executar as tarefas de que precisamos.

Computadores
De processadores de um nico chip (baratos) at supercomputadores (muito caros) O PC tambm conhecido como desktop, notebooks, caixas-eletrnicos, telefones celulares, cmeras digitais, palmtops e robs

Computador Digital
Essa variedade apresenta-se no apenas em relao ao custo, mas tambm em relao ao tamanho, ao desempenho e aplicao Apesar da variedade e da rapidez de evoluo da rea de computao, certos conceitos fundamentais aplicam-se a qualquer projeto de computadores

Computador Digital
Mquina capaz de resolver problemas atravs da execuo de instrues que lhe so passadas. Os circuitos eletrnicos do computador executam um conjunto limitado de instrues simples: adio, subtrao, deslocamento, OR, AND.

Computador Digital

Computador Digital

Programa
Seqncia de instrues que mostra como executar uma determinada tarefa. Pode ser escrito em uma linguagem especfica. Exemplo:
Some dois nmeros Imprima positivo se o resultado for > 0 Imprima negativo se o resultado for < 0

Programa
Problema

Programa

Computador

Soluo Qual a linguagem que o computador entende?

Programa
Computador executa um conjunto limitado de instrues simples: adio, subtrao, deslocamento, OR, AND. Os programas so convertidos nestas instrues antes de serem executados. Cada instruo deve ser executada pela mquina na qual o programa est instalado. Apenas algumas linguagens contm instrues que podem ser diretamente executadas.

Programa
Traduo e Execuo Os programas cujas instrues no podem ser diretamente executadas devem ser compilados ou interpretados para a linguagem que permita a execuo direta de suas instrues.

Programa

Linguagem no executvel Programa fonte

Linguagem executvel Programa objeto

Programa

Programa
O processo de execuo de um programa envolve
Executar cada instruo do programa objeto Obter os dados necessrios para computao Produzir as sadas resultantes da computao

Elementos Bsicos de Hardware


Memria Unidade aritmtica e lgica Unidade de controle Barramento Dispositivos de entrada e sada

Elementos Bsicos
O sistema no qual o programa ser executado deve ser capaz de:
Armazenar o programa e os dados utilizados na computao. Localizar cada instruo e identificar a ao que deve ser realizada. Executar a ao, possivelmente obtendo, transformando e armazenando dados. Comunicar- se com outros dispositivos (entrada e sada).

Elementos Bsicos

Mquina Multinvel
Uma mquina pode ser vista como tendo vrios nveis, cada um capaz de executar um conjunto de instrues especficas. Cada nvel possui linguagens apropriadas para descrever as instrues que nele podem ser executadas.

Mquina Multinvel

Mquina Multinvel

Mquina Multinvel

Mquina Multinvel

Mquina Multinvel

Mquina Multinvel

Mquina Multinvel

Mquina Multinvel

Mquina Multinvel

Abordagem de Hardware
Antigamente o conceito de Sistema operacional e linguagem de programao no eram claros A programao era feita no hardware

Abordagem de Software
O amadurecimento tecnolgico fez evoluir a abordagem de programao

CAMADAS

Aproximar os seres humanos ao computador

Potrebbero piacerti anche