Página 1
©
Anderson Hosken (hosken@computer.org)
Organização de Computadores
1 INTRODUÇÃO
1.1 – CONCEITUAÇÃO
1.1.1 – Processamento de Dados
O que é um computador?
Uma máquina capaz de
coletar informações iniciais
(dados), manipular (processar) e
fornecer resultados
da manipulação (informação), para um ou mais objetivos.
Diz-se que realiza o
processamento (eletrônico)
de dados (Data Processing).
Atentar para a diferença entre Dado e Informação:
o
Dado: matéria-prima originalmente obtida de uma ou mais fontes (etapa
de coleta);
o
Informação: é o resultado do processamento,
isto é, o dado processado ou acabado.
A informação, resultado de um processamento, pode ser um dado, para outro processamento.
DADOS PROCESSAMENTO RESULTADO:
Informação
Etapas básicas de um processamento de dados.
Exemplo:
Loteria
Dados:
Processamento:
Resultado:
apostas, números sorteados
comparações, classificações
apostas premiadas, prêmios
□
Exemplo:
Controle de estoque:
1ª Rodada
Dados:
Processamento:
Resultado:
itens recebidos e retirados, posição do dia anterior
somas e subtrações
posição do estoque
2ª Rodada
Dados:
Processamento:
Resultado:
posição do estoque
verificação de itens em falta
pedido de compra
□
O Processamento de Dados é uma atividade que vem sendo exercida
desde
os primórdios da
civilização. O que tem variado, com o correr
do tempo, é a tecnologia, o volume de dados e a eficiência
da manipulação.
Página 2
©
Anderson Hosken (hosken@computer.org)
Organização de Computadores
X Arquitetura
de Computadores
Organização de Computadores – parte do estudo da ciência da computação que trata dos aspectos
relativos à parte do computador mais conhecida dos especialistas que o construíram e cujo entendimento é
desnecessário ao programador. Define COMO é feito.
São aspectos como: tecnologia utilizada na construção da memória, freqüência do relógio, etc.
Arquitetura de Computadores – parte do estudo da ciência da computação que trata dos aspectos
que têm impacto direto na elaboração de um programa. São elementos de uma arquitetura: o conjunto de
instruções de um processador, os modos de endereçamento das instruções, o tipo e o tamanho dos dados
manipulados pelo processador. Define O QUÊ o computador pode fazer.
Um fabricante pode definir elementos característicos da arquitetura de uma família de
processadores e construir vários deles, cada um com uma diferente organização, com um modelo
diferente para venda.
Exemplo:
Arquitetura: Intel x86
Organizações: 80386, 80486, Pentium, ...
□
Exemplo: Da vida cotidiana: um prédio de apartamentos
Arquitetura:
quantidade e qualidade dos cômodos, tipo de revestimento, etc.
Organização:
estrutura, cálculos de peso e de vigas, encanamentos, etc.
□
Classificação das Arquiteturas
Existem diversos tipos diferentes de arquiteturas de computadores. A fim de organizá-las foram
criadas diferentes classificações. Uma das mais conhecidas foi elaborada por Michael Flynn, em 1972, e é
conhecida como
taxonomia1
de Flynn:
•
SISD (Single Instruction, Single
Data) ou Instrução Única, Dado Único
Essa arquitetura é usada nos computadores que temos em casa. Segue o modelo proposto por
John von Neumann (1945) e é por isso denominada de “Arquitetura de von Neumann”,
também chamado de computador serial;
•
MISD (Multiple Instruction,
Single Data) ou Múltiplas Instruções, Dado
Único
???
•
SIMD (Single Instruction, Multiple
Data) ou Instrução Única, Múltiplos Dados
Uma unidade de controle, várias ALU;
•
MIMD (Multiple Instruction,
Multiple Data) ou Múltiplas Instruções, Múltiplos
Dados
Essa é a arquitetura dos computadores paralelos: multicomputadores e multiprocessadores.
1
ciência ou técnica de classificação
Página 3
©
Anderson Hosken (hosken@computer.org)
Fluxo de instruções e de dados
1.1.2 – Sistemas
Sistema pode ser definido de diferentes maneiras.
“Conjunto de partes coordenadas que concorrem para a realização de um determinado
objetivo.”
Exemplo: Sistema de transporte
Conjunto de partes – ônibus, ruas, motoristas, trocadores, pessoas
Que se integram – normas e trajetos
Objetivo – transportar pessoas
□
O processamento eletrônico de dados é um sistema porque é um conjunto de partes que se
coordenam para a realização de um objetivo, que é computar. Por isso é chamado de Sistema de
Computação.
Sistemas de Processamento de Dados (SPD) – são responsáveis pela coleta,
armazenamento,
processamento e recuperação, em equipamentos de processamento eletrônico, dos dados
necessários ao
funcionamento de um outro sistema maior: o Sistema de Informações.
O SPD faz parte do Sistema de Informações –
conjunto de métodos, processos e equipamentos
necessários para se obter, processar e utilizar informações dentro da empresa.
Um SPD compreende duas partes:
•
Sistema de Computação –
o computador e os programas básicos;
•
Sistemas de Aplicação –
desenvolvido pelo usuário ou por terceiros.
1.1.3 – Sistemas de Computação
Qualquer processamento de dados (manual ou eletrônico) requer a execução ordenada de uma
série de etapas, que são constituídas por instruções.
Chama-se
algoritmo o conjunto
de etapas finitas, ordenadamente definidas, com o propósito de
obter solução para um determinado problema. O termo “finitas” significa a necessidade de um requisito
qualquer que estabeleça o final da execução do algoritmo.
As etapas de um algoritmo são as
instruções.
O conjunto de instruções constitui o que é chamado de
programa.
Um
programa de computador é a
formalização de um algoritmo em linguagem inteligível pelo
computador.
Página 4
©
Anderson Hosken (hosken@computer.org)
A linguagem empregada pelos computadores é a
linguagem binária (chamada de linguagem de
máquina), formada apenas por 0 e 1. Todo dado, instrução e resultado, são sempre armazenados e
manipulados como conjuntos ordenados de zeros e uns.
Como a linguagem de máquina é, para os seres humanos, tediosa de manipular, difícil de
compreender e fácil de acarretar erros, foram desenvolvidas outras linguagens, mais próximas do
entendimento dos usuários, chamadas genericamente de
linguagens de programação.
Os computadores não conseguem entender, diretamente, as instruções expressas através das
linguagens de programação.
Todo computador é construído com circuitos eletrônicos capazes de reconhecer e executar
diretamente apenas um conjunto limitado e simples de
instruções de máquina
(escritas em linguagem
binária), nas quais todo programa de computador deve ser convertido antes de ser executado. Quem
realiza esta operação é uma ferramenta chamada
compilador.
Existem mais de cem linguagens de programação diferentes, que podem ser classificadas de
acordo com vários critérios. São chamadas de
linguagens de programação
de alto nível aquelas cuja
estruturação está mais próximas do entendimento do programador, do ser humano, tendo características
semelhantes às nossas linguagens de comunicação. Em contrapartida, são chamadas de
linguagens de
programação de baixo nível aquelas cuja estruturação e entendimento estão mais próximos da máquina.
As Linguagens de programação de alto nível podem ser definidas para atender a requisitos e
intenções específicas de emprego.
Exemplo:
FORTRAN (
FORmula TRANSlation)
– cálculos científicos complexos, modelagem em
engenharia, estatística e processamento de sinais.
LISP – inteligência artificial.
□
Vantagens do uso de linguagens de alto nível sobre a linguagem de máquina:
•
Concisão – os programas em linguagem de máquina são mais longos
e de difícil
entendimento, em face das instruções serem mais simples.
•
Clareza – as linguagens de alto nível possuem uma estrutura
de comandos que são
identificados por palavras da nossa linguagem, o que facilita o entendimento do
programador.
Pode-se separar um computador em duas partes:
•
Hardware – é a parte física, visível, do computador.
•
Software – consiste nos programas, que são introduzidos na
máquina para fazê-la trabalhar.
O hardware não funciona sozinho, sem o software.
Os softwares podem ser divididos em dois tipos:
•
software básico; e
•
programas de aplicação.
O software básico e o hardware, constituem o que é chamado de
sistema
de computação.
Página 5
©
Anderson Hosken (hosken@computer.org)
1.2 – HISTÓRICO
Breve revisão histórica da evolução dos computadores, a fim de enfatizar o desenvolvimento da
arquitetura e da organização dos mesmos.
1.2.1 Dispositivos Mecânicos (500 a.C. – 1880)
±
500 a.C. – Tábuas de Contagem
(gregos, romanos) – Surgiram numa época na qual não havia um
sistema de numeração escrito (usavam-se os dedos, pedras, gravetos, etc.). Eram usadas por
mercadores (no caso, os Babilônios) para contar quantidades e calcular os custos das mercadorias.
Introduzem a idéia da utilização de um dispositivo mecânico como meio auxiliar na contagem.
Tábua de contagem datada de
±300 a.C., cujo uso
é
atribuído aos Babilônios.
Foi descoberta em 1846 na ilha de Salamis (Grécia).
±
190 d.C. – Ábaco (China) – Surgimento do ábaco, no formato como é conhecido hoje. O ábaco e as
tábuas de contagem constituem-se apenas em instrumentos auxiliares de cálculo. O operador
executa os cálculos (mentalmente) e utiliza o ábaco para armazenar resultados intermediários. O
formato atual do ábaco surgiu em
±1.200 d.C.,
na China.
Um ábaco tipo 1/4, utilizado no Japão.
Lá ele é chamado de
Soroban.
±
600 d.C. – Sistema de numeração
decimal (Índia) – Desenvolvido na Índia, pelos Hindus, e difundido
na Europa pelos Árabes, por volta do século XII d.C. Também chamado de algarismos Hindu-
Arábicos.
1623 – Wilhelm Schickard (1592-1635, alemão) – Criou o "Relógio Calculador". Este instrumento era
capaz de realizar as operações de soma e de subtração com números de até 6 dígitos. Caso o
número de dígitos do resultado fosse maior que 6, era tocado um sino (
overflow). As operações
eram feitas por manivela. É a
primeira calculadora mecânica de que, comprovadamente, se tem
notícia.
Página 6
©
Anderson Hosken (hosken@computer.org)
1642 – Blaise Pascal (1623-1662, francês) – Inventou a “Pascaline” (com 19 anos!). Era
um contador
mecânico capaz de realizar operações aritméticas de soma e subtração com números de até 8 dígitos.
Trazia como inovações o
“vai 1” de forma automática e o conceito de complemento (a
subtração
era realizada, na verdade, empregando-se a soma).
Frente
Diagrama do interior
Parte de trás
1670 – Gottfried Wilhelm von Leibniz (1646-1716, filósofo e matemático alemão) – “Calculador
mecânico”. Realizava as quatro operações básicas.
Página 7
©
Anderson Hosken (hosken@computer.org)
1701 – Gottfried Wilhelm von Leibniz – Sistema de Numeração Binário. Leibniz foi o primeiro a
documentar completamente o sistema de numeração binário, empregando 0 e 1.
1801 – Joseph Marie Jacquard (1752-1834, francês) – “Tear mecânico”. Era controlado
por programa
armazenado em cartões perfurados. É considerada a
primeira máquina mecânica
programável da
história.
1823 – Charles Babbage (1792-1871, matemático inglês) – “Máquina de diferenças”, sob
encomenda da
Marinha Real inglesa. Empregava o método de diferenças finitas para cálculo de fórmulas
(polinômios e funções trigonométricas). Possuía um dispositivo de gravação dos resultados em
chapa de cobre,
pioneiro em termos de armazenamento secundário.
1842 – Charles Babbage – “Máquina analítica”. Permitia que seu funcionamento fosse modificado
através
de programa (em cartões perfurados). Seu “conjunto de instruções” foi escrito por Ada Byron King,
Condessa de Lovelace, (1815-1852, matemática inglesa). Por isso ela é considerada a
primeira
programadora da história. A máquina possuía memória (rodas dentadas), processador
e saída (em
prensa ou em cartões perfurados). Introduziu o conceito de instrução de desvio. Nunca chegou a
ser implementado, por limitações tecnológicas da época.
Página 8
©
Anderson Hosken (hosken@computer.org)
Ada Lovelace
1.2.2 Dispositivos Eletromecânicos (1880 – 1930)
1889 – Herman Hollerith (1860-1929) – Cartão Perfurado para guardar dados.
Herman Hollerith, em 1880.
1890 – Herman Hollerith – Máquina Tabuladora Mecânica. Acionada por motor elétrico, contava,
classificava e ordenava informações armazenadas em cartões perfurados.
Máquina do censo
Perfuração de cartões
1935 – Konrad Zuse (1910-1995, alemão) – Primeira máquina de calcular eletrônica. Usava relés e
números binários.
Página 9
©
Anderson Hosken (hosken@computer.org)
1936 – Konrad Zuse – Z1. Usava um teclado como dispositivo de entrada e lâmpadas como dispositivo
de
saída.
Z3
1944 – Howard Hathaway Aiken (1900-1973, americano) - Mark I. Utilizava os
princípios da máquina
de Babbage. Era um sistema decimal, e era construído à base de engrenagens e relés
eletromecânicos. Empregava fita de papel perfurado para a introdução das instruções
de dois
operandos.
Protótipo
1.2.3 Dispositivos Eletrônicos (1930 – 1945)
1906 – Válvula. Mais rápida e confiável do que os dispositivos mecânicos e eletromecânicos.
Página 10
©
Anderson Hosken (hosken@computer.org)
1937 – Alan Mathison Turing (1912-1954, inglês) – “Máquina” de Turing. Definia o que
era computável.
1939 – John Vincent Atanasoff (1903-1995, americano) – Máquina Calculadora, para resolver equações
lineares. Não chegou a ser implementada. Seu trabalho, contudo, serviu de inspiração para John
Mauchly e John P. Eckert construírem o ENIAC.
John Vincent Atanasoff, em 1938.
1943 – Alan Mathison Turing – Colossus. Empregado para quebrar códigos secretos de comunicação dos
alemães.
Primeiro computador verdadeiramente eletrônico (válvulas).
Era, contudo, um
sistema de computação de programa único (não era geral).
Página 11
©
Anderson Hosken (hosken@computer.org)
Colossus trabalhando para o Dia D, 6 Jun 1944
1.2.4 A Evolução dos Computadores Eletrônicos (1945 – até os dias atuais)
Máquinas eletrônicas, automáticas e de emprego geral.
1.2.4.1 Primeira Geração: Computadores a Válvula
1943~1946 – John Mauchly e John Presper Eckert – ENIAC (Eletronic Numerical Integrator And
Computer), sob encomenda do Exército Americano.
Primeiro computador eletrônico
e digital de
emprego geral (programável). Mauchly se inspirou no trabalho de Atanasoff. Era
decimal e sua
programação era feita através de chaves (cerca de 6000) e conexão de plugues.
1945 – John von Neumann – Define uma arquitetura de computadores com programa armazenado,
conhecida como Arquitetura de von Neumann,
empregada até os dias atuais.
Uma máquina tipo Von Neumann consiste
de uma única unidade de controle conectando a
memória à unidade de processamento. Instruções e dados são lidos um de cada vez na memória e
alimentam a unidade de processamento, sob comando da unidade de controle.
A velocidade de processamento de toda a máquina é limitada pela taxa de instruções e dados que
podem ser transferidos da memória para a unidade de processamento.
Esta conexão estreita entre as instruções e dados contidos na memória e a única unidade de
processamento forma o que é chamado de gargalo de von Neumann.
Página 12
©
Anderson Hosken (hosken@computer.org)
Memória
Unidade de
Controle
Unidade de
Processamento
Dados
Instruções
Barramento
Gargalo de von Neumann:
A conexão entre o
processador e a memória
forma o gargalo.
1946~1952 – John von Neumann - Construção do IAS (Institute for Advanced Studies, da Universidade
de Princeton). O IAS implementava a Arquitetura de von Neumann.
1949 – John Mauchly e John Presper Eckert – Primeiro computador para fins comerciais, o UNIVAC 1
(UNIversal Automatic Computer).
1953 – IBM (International Business Machines) – Lança o IBM-701, da série 700, valvular.
1.2.4.2 Segunda Geração: Computadores Transistorizados
1947 – John Bardeen, Walter Bratain e William Schockley (todos do Bell Laboratories) – Transistor.
Menor custo e tamanho, e melhor desempenho, consumindo menos energia e gerando menos calor (em
relação à válvula).
Página 13
©
Anderson Hosken (hosken@computer.org)
1956 – MIT – Primeiro computador transistorizado, o TX-0.
1957 – John Bachus, IBM – Primeira linguagem de alto nível, FORTRAN.
DEC (Digital Equipment Corporation) – Lança o PDP-1.
1958 – IBM – Lança o IBM-7090, da série 7000, transistorizada. Era 25 vezes mais rápido que o IBM-
701.
1.2.4.3 Terceira Geração: Computadores com Circuitos Integrados
1958 – Jack St. Clair Kilby, Texas Instruments – Construção do primeiro circuito integrado, com
cinco
componentes (apenas um transistor). Solução para o problema de acomodação de componentes, que
aumentava cada vez mais.
Surgimento da microeletrônica.
Primeiro circuito integrado.
1964 – IBM – Lança o IBM/360, com circuitos integrados. Incorporou o
conceito de família de
computadores:
Conjunto de instruções
Sistema operacional Idênticos ou similares
Velocidade
Capacidade de I/O
Memória
Custo
Cada vez maiores
1965 – DEC - Lança o PDP-8. Incorporou uma estrutura de barramento.
Página 14
©
Anderson Hosken (hosken@computer.org)
Console
controller CPU Main
memory
I/O
module
I/O
module
1.2.4.4 Quarta Geração: Computadores que utilizam VLSI
Aumento da escala de integração, que facultou o surgimento dos computadores pessoais.
1971 – Intel – Lança o chip 4004, primeiro a conter todos os componentes de uma CPU em um único
chip.
Nasce o microprocessador.
1974 – Intel - Lança o microprocessador 8080, projetado para ser a CPU de um microcomputador de
finalidade geral.
1974 – É lançado o primeiro microcomputador de 8 bits, o Altair. Usava o microprocessador 8080, da
Intel.
Página 15
©
Anderson Hosken (hosken@computer.org)
Resumo da evolução dos processadores da Intel:
Página 16
©
Anderson Hosken (hosken@computer.org)
Intel® Pentium® 4 Processor
Processor Clock
Speed(s)
Intro Date(s) Mfg.
Process/
Transistors
Cache Bus
Speed
Typical Use
Intel® Pentium® 4 Processor Extreme Edition supporting
HT Technology
3.73 GHz Feb. 21, 2005 90nm
169 million
2 MB L2
cache
1066
MHz
Gaming and Computing
Enthusiasts
Intel® Xeon™ Processor Family
Processor Clock
Speed(s)
Intro Date(s) Mfg. Process/
Transistors
Cache Bus Speed Typical Use
Intel® Xeon™ Processor MP
3.60 GHz Feb. 14, 2005 90 nm 2 MB
Integrated L2 Cache
800 MHz Workstations and servers
Intel® Itanium® Processor Family
Processor Clock
Speed(s)
Intro Date(s) Mfg. Process/
Transistors
Cache Typical Use
Intel® Itanium® 2 Processor
1.60 GHz Nov.8, 2004 0.13 micron
592 million
9 MB L3 Cache Demanding enterprise-class servers and high-performance applications
Página 17
©
Anderson Hosken (hosken@computer.org)
Referências
História de um grupo, do qual Turing faz parte,
formado na Inglaterra durante a 2ª Guerra Mundial
para construir uma máquina (Colossus) capaz de
decifrar as mensagens dos alemães.
História da captura de uma máquina ENIGMA.
História de como Bill Gates (Microsoft) e Steve Jobs
(Apple) começaram.