Sunteți pe pagina 1din 40

Organização de Computadores

Introdução

ICAMAAN B. VIEGAS

MARÇO, 2011
Roteiro
Introdução

 Qual a importância de saber conceitos de


arquitetura/organização de computadores?

 Computadores estão cada vez mais presentes no


nosso dia a dia
Introdução
Introdução
Introdução

 Para resolver um dado problema um computador


 Precisa receber instruções descrevendo que tarefa realizar

 Um programa é constituído por um conjunto de instruções


para a realização de uma dada tarefa

 Linguagem de Máquina
 Instruções primitivas

 Baixo nível

 O mais simples possível


Organização de computadores

 As linguagens de máquinas são de difícil compreensão


e utilização
 Cria-se uma lacuna entre o que é facilmente compreendido por
nós e por um computador

 Neste contexto
 Surgem as abstrações, cada uma acumulando àquela que lhe
precede
 O principal objetivo é dominar a complexidade e produzir
sistemas de computação estruturados e sistematicamente
Linguagens, Níveis e Máquinas Reais

 Novas linguagens mais compreensíveis para o


usuário
 Como as linguagens de máquinas, estas possuem um conjunto
de instruções

 Como um computador pode executar instruções de


uma linguagem em um nível mais alto?
Linguagens, Níveis e Máquinas Reais

 Linguagem de Máquina
 1011101

 Assembly – Linguagem de Montagem


 Mnemônicos – load, add, sub
 Assembler

 Linguagens alto nível


 Compiladores – Ligação (LinkEditor)
 Interpretadores
Linguagens, Níveis e Máquinas Reais

 Compilação
 Tempo de execução menor

 Menor consumo de memória durante a execução

 Interpretação
 Erros em tempo de execução facilmente identificáveis
Linguagens, Níveis e Máquinas Reais

 Um computador pode ser representado por uma


hierarquia de níveis de abstração

 Cada nível representa uma abstração distinta na qual


estão presentes diferentes objetos e operações

 O conceito de arquitetura está relacionado ao


conjunto de tipo de dados, operações e
características de um nível
Níveis de Abstração
Níveis de Abstração
Multiníveis

(BASIC, C, C++, Java,


Nível 5 Nível de Linguagem Orientada a Problemas LISP, Prolog, ...)
Tradução (compilador)

Nível 4 (mnemônicos para as


Nível de Linguagem de Montagem (Assembly)
Instruções de máquina)
Tradução (montador ou assembler)
(instruções para permitir
Nível 3 Nível de Máquina de Sistema Operacional concorrência e uma organização
diferente da memória)
Interpretação parcial (sistema operacional)

Nível 2 Nível de Arquitetura de Conjunto de Instruções (instruções de máquina)


Interpretação (microprograma) ou execução direta

Nível 1 Nível de Microarquitetura (registradores e o circuito ALU –


Arithmetic Logic Unit)
Hardware

Nível 0 Nível de Lógica Digital (gates – constituídos de transistores –


e registradores – que compõem a memória)
Níveis de Abstração

 Nível 0 – lógico digital


 Portas – AND, OR, OR-EXCLUSIVO, etc.

 Podem ser combinadas para formar uma memória de 1 bit

 Memórias pode ser combinadas para formar registradores

 Não existe o conceito de programa


Níveis de Abstração

 Nível 1 – Microarquitetura
 Conjuntos de registradores que formam uma memória local

 Unidade Lógica e Aritmética (ULA) capaz de operações


simples, ex: soma, subtração
 Registradores se conectam a ULA formando o caminho dos
dados
 Caminho dos dados consiste na seleção de 1 ou 2 registradores,
fazendo com que a ULA execute operações com eles e
armazene o resultado em um outro registrador
 Microprograma: interpreta as instruções do nível 2
Níveis de Abstração

 Nível 2 – arquitetura de conjunto de instruções (ISA)


 Linguagem de máquina
 Interpretado
 Interpretador denominado SO

 Nível 3 – máquina de sistema operacional


 Híbrido
 Parte das instruções em sua linguagem está no nível ISA, sendo
executadas diretamente pelo microprograma
 Outra parte sendo interpretado pelo Sistema Operacional

 Capacidade de executar dois ou mais programas ao mesmo tempo


Níveis de Abstração

 Nível 4 – linguagem de montagem (Assembly)


 Primeiro nível a ser utilizados pelo programador comum

 Fornece um meio para os programadores escreverem


instruções para os níveis mais baixos

 Nível 5 – linguagens de alto nível


 Linguagens de alto nível

 Em geral, linguagens nesse nível são traduzidas para os níveis


3 ou 4
Níveis de Abstração

 Os níveis 2 e 3 são sempre interpretados


 As linguagens utilizadas são numéricas

 Os níveis 4 e 5 são, na maioria das vezes, traduzidos


 As linguagens utilizadas são simbólicas, contendo palavras e/ou
abreviaturas

 Hardware e software são logicamente equivalentes


 Qualquer operação efetuada pelo software pode ser
implementada pelo hardware e qualquer instrução executada
pelo hardware pode ser simulada pelo software
Níveis de Abstração

 O hardware é constituído por objetos tangíveis


 Circuitos integrados, placas, cabos, memórias, fontes, etc.

 O software é constituído pelos programas

 O firmware consiste no software embutido em


dispositivos eletrônicos durante a fabricação
 Em muitos computadores, o microprograma está em
firmware
Evolução das Máquinas Multiníveis

 Invenção da microprogramação
 Os primeiros computadores (anos 40) possuíam somente
dois níveis
 Nível ISA – onde era feita toda a programação
 Nível de Lógica Digital – era complicado, difícil de entender e
construir, e de baixa confiabilidade.

 Em 1951, Maurice Wilkes (University of Cambridge) sugeriu


a introdução de um nível intermediário
 Para simplificar o hardware
 Um interpretador (microprograma) imutável para executar as
instruções especificadas no nível acima.
Evolução das Máquinas Multiníveis

 Sistema Operacional, criado por volta de 1960


 Que ficaria constantemente em execução no computador
com a função de automatizar o trabalho do operador do
computador

 Batch system: execução seqüencial de jobs


 Timesharing system: terminais remotos conectados ao
computador central através de linhas de telefone
Evolução das Máquinas Multiníveis

 Sistema Operacional, criado por volta de 1960


 Que ficaria constantemente em execução no computador
com a função de automatizar o trabalho do operador do
computador

 Iniciar um novo job, carregar o compilador de FORTRAN,


carregar o programa a ser compilado, executar o programa
resultante da compilação, entrar os dados para o programa,
imprimir os resultados do programa, etc.
Evolução das Máquinas Multiníveis

 Com a microprogramação os projetistas perceberam


que podiam criar novas instruções
 Apenas ampliando o microprograma

 Isso acarretou numa explosão de novas e melhores


instruções

 Além de novas instruções os projetistas passaram a


buscar novas características
Evolução das Máquinas Multiníveis

 Eliminação dos microprogramas


 Estes passaram a “engordar” incorporando cada vez mais
novas instruções
 A medida que se tornavam mais volumosos se tornavam mais e
mais lentos

 Finalmente, os projetistas perceberam que eliminando o


microprograma e fazendo que o caminho dos dados fosse
controlado diretamente por hardware haveria um razoável
ganho de performance
Evolução dos Computadores

 Geração 0 – Computadores Mecânicos (1642-1945)


 Geração 1 – Computadores com Tubos a Vácuo ou
Válvulas Eletrônicas (1945-1955)
 Geração 2 – Computadores com Transistores (1955-
1965)
 Geração 3 – Computadores com Circuitos Integrados
(1965-1980)
 Geração 4 – Computadores com Integração em
Escala Muito Grande - VLSI (1980-?)
Geração 0 – Computadores Mecânicos

 Blaise Pascal (1623-1662, França)


 Construiu em 1642 a primeira máquina de calcular, baseada
em engrenagens e alavancas, e que permitia fazer adições e
subtrações

 Baron Gottfried Wilhelm von Leibniz (1646-1716,


Alemanha)
 Construiu outra máquina no mesmo estilo, e que permitia
também fazer multiplicações e divisões.
Geração 0 – Computadores Mecânicos

 Charles Babbage (1792-1871, Inglaterra)


 Construiu na Universidade de Cambridge duas máquinas:
 Difference Engine: executava sempre o mesmo algoritmo (tratava
tabelas de números para fins de navegação naval), a saída era
gravada em pratos de cobre e aço
Geração 0 – Computadores Mecânicos

 Charles Babbage (1792-1871, Inglaterra)


 Construiu na Universidade de Cambridge duas máquinas:
 Analytical Engine – Quatro componentes: memória, unidade de
cálculo, leitora de cartões perfurados e a saída impressa e perfurada
 A unidade de computação lia números da memória, fazia cálculos
e podia retornar o resultado para a memória.
 Surgia a intuição de programas

 Primeira pessoa a escrever programas: Ada Augusta Lovelace


Geração 1 – Computadores com Tubos a Vácuo

 Governo Britânico construiu em 1943


 O primeiro computador digital eletrônico, o COLOSSUS

 Para fins de decodificar as mensagens trocadas pelos alemães


durante a Segunda Guerra Mundial
 Que eram criptografadas por uma máquina chamada ENIGMA
 O projeto foi mantido em segredo por 30 anos, por isso, não
houve evolução.
 Alan Turing participou do projeto.
Geração 1 – Computadores com Tubos a Vácuo

 ENIAC (Electronic Numerical Integrator and


Computer)
 John Mauchley e J. Presper Eckert (Estados Unidos da
América) construíram em 1946 para fins militares
 30 toneladas
 140 quilowatts
 20 registradores de números decimais de 10 dígitos
 Programação feita através de 6.000 switches e de milhares de
jumpers (cabos de conexão)
 John von Neumann participou do projeto
Geração 1 – Computadores com Tubos a Vácuo

 John von Neumann


 Matemático

 Construiu em 1952 o computador IAS


 Programas e dados representados de forma digital em memória
 Processamento baseado em aritmética binária, ao invés de decimal

 Arquitetura de von Neumann


 Programa pode ser armazenado na memória como os dados
 Ainda hoje é a base da maioria dos computadores digitais
 Gargalo de von Neumman
Arquitetura de von Neumann
Geração 1 – Computadores com Tubos a Vácuo

 Enquanto isso, uma pequena empresa começava a se


interessar pela fabricação de computadores
 IBM
Geração 2 - Transistors

 O transistor revolucionou os computadores


 Em 10 anos computadores baseados em válvulas estavam
obsoletos

 O primeiro computador baseado em transistors foi o


TX-0
Geração 3 – Circuitos Digitais

 Circuito integrado
 Inventado por Robert Noyce em 1958

 Permitiu a fabricação de computadores menores,


mais rápidos e mais baratos que seus predecessores
Geração 4 – Integração em Larga Escala

 Permitiu colocar milhões de transistors em um único


chip
 Computadores ainda mais rápidos e menores
Lei de Moore

 Gordon Moore, um dos fundadores da Intel


 Número de transistors em um chip dobraria a cada 18 meses
Lei de Moore
Referências

S-ar putea să vă placă și