Você está na página 1de 34

INTRODUÇÃO À ARQUITETURA DE

COMPUTADORES

Arquitetura de Computadores
Prof. Gaio B. Oliveira
O QUE É UM COMPUTADOR?

Um computador digital é uma máquina eletrônica


que possui a capacidade de realizar diversos tipos
de tarefas que auxiliem o ser humano em seu dia a
dia como a realização de cálculos, a construção de
esquemas, desenhos, gráficos, formatação de
textos, organização e comunicação remota de
informações etc.
O QUE É UM COMPUTADOR?

• Os computadores de uso pessoal mais populares há


cerca de dez anos eram desktops (computadores de
mesa) com uma crescente utilização dos laptops ou
notebooks (computadores portáteis).
• Atualmente, outros dispositivos eletrônicos possuem
características básicas e realizam as tarefas essenciais de
um computador como os tablets e os smartphones. Por
esse motivo, muitas vezes esses equipamentos recebem
o nome mais abrangente de dispositivos
computacionais.
INSTRUÇÃO E PROGRAMA

• Para realizar as tarefas desejadas pelo ser humano um


computador ou um dispositivo computacional executa
um conjunto de instruções.
• Uma instrução pode ser uma operação bem simples que
o computador pode realizar como: ler um valor, somar
dois números, exibir o resultado de uma operação na tela
do dispositivo etc.
• Um conjunto de diversas instruções formam um
programa ou um software.
CICLO DE PROCESSAMENTO

• Basicamente, para processar uma instrução, o computador recebe um dado, um


valor de entrada, depois realiza o processamento a partir da entrada e envia o
resultado para uma saída de dados. Veja a Figura 1, que mostra essa sequência de
trabalho do computador.
Figura 1 – Ciclo Básico de Processamento

Entrada Processamento Saída

Fonte: Elaborado pelo autor.


INSTRUÇÃO E PROGRAMA

• Os circuitos eletrônicos (componentes físicos) de um


computador podem reconhecer e executar um conjunto
limitado de instruções simples para o qual todos os
programas devem ser convertidos antes de serem
executados (como as instruções dos exemplos dados no
slide anterior).
• Esse conjunto de instruções constituem o vocabulário
que forma a linguagem entendida pelo computador: a
linguagem de máquina. Ela é considerada de baixo nível
pela proximidade com o hardware do dispositivo.
INSTRUÇÃO E PROGRAMA

• Para que um novo software seja desenvolvido como um


aplicativo (app) para smartphone, é necessário que um
profissional (o programador) escreva as instruções que o
dispositivo deverá executar, dando origem ao código do
novo software.
• Entretanto, é muito trabalhoso para o ser humano
escrever programas ou softwares diretamente em
linguagem de máquina.
LINGUAGEM DE PROGRAMAÇÃO

• Para resolver esse problema, um outro tipo de linguagem


foi criada, possuindo em seu vocabulário a representação
das instruções que o dispositivo computacional pode
executar de uma forma mais próxima da linguagem
humana.
• Esse tipo de linguagem é conhecido como linguagem de
programação (lp). Ela é considerada de alto nível por
estar mais próxima da linguagem humana.
LINGUAGEM DE PROGRAMAÇÃO

• Após escrever um programa em uma lp, para que seja


possível executá-lo, outro software entra em ação para
utilizar as instruções correspondentes do código da lp no
código de máquina.
• Esse software pode ser um interpretador ou um
compilador.
COMPILADOR x INTERPRETADOR

• Um compilador “varre” todo o código traduzindo as


instruções para um código intermediário chamado
código objeto e este, por sua vez, é ligado à recursos
externos, dando origem ao código executável em
linguagem de máquina. Exemplo de linguagens que
utilizam compilador: C, C++, Object Pascal etc.
• Já o interpretador analisa o código em tempo de
execução, convertendo uma instrução de cada vez para o
código de máquina. Nenhum código adicional é gerado.
São linguagens interpretadas: Python, JavaScript etc.
LINGUAGEM DE PROGRAMAÇÃO

• Como ambas abordagens possuem vantagens e


desvantagens, algumas linguagens de programação bem
conhecidas atualmente fazem uso de compilador e de
interpretador. Ex: Java, linguagens .NET como C# e VB
etc.
• Um código-fonte dessas linguagens (código original da
lp) é compilado em um bytecode que será executado
(interpretado) por uma máquina virtual.
MÁQUINA MULTINÍVEL

• Uma outra maneira de lidar com a distância do nível da


linguagem humana e da linguagem de máquina é pensar
em uma máquina que possa executar o código de uma lp
diretamente. Embora não exista fisicamente, essa
máquina pode ter uma implementação virtual (máquina
virtual).
• Um software da máquina virtual (interpretador ou
compilador) se encarregaria de executar ou tornar
executável o código da lp como se fosse uma máquina
física.
MÁQUINA MULTINÍVEL

• Para tornar o código cada vez mais próximo do ser


humano, níveis mais altos de lp podem ser
implementados, cujos códigos sejam traduzidos ou
executados na linguagem de máquina da máquina virtual
que se encontre no nível inferior. Veja a Figura 2.
• O programador, então, precisa conhecer apenas as
instruções da lp de nível mais alto em que está
trabalhando.
MÁQUINA MULTINÍVEL

Figura 2 – Representação de uma máquina multinível.

Fonte: Tanenbaum e Austin (2013)


HARDWARE DE UM DISPOSITIVO
COMPUTACIONAL

• Hardware (parte física) composto basicamente por CPU,


memória e dispositivos de entrada e saída de dados.
Figura 3 – Hardware de um computador pessoal.

Dispositivo
Processador
de Saída

Memória

Dispositivos
Fonte: Elaborado pelo autor. de Entrada
HARDWARE DE UM DISPOSITIVO
COMPUTACIONAL

• O papel da CPU é análogo ao papel do


cérebro para o ser humano. A parte que
processa as instruções que devem ser
executadas.
• A memória é o local onde os dados e as
instruções ficam armazenados tempora-
riamente para serem utilizados pela CPU e
antes de serem enviadas para alguma saída.
HARDWARE DE UM DISPOSITIVO
COMPUTACIONAL

• Os dispositivos de entrada são responsáveis


por inserir dados no sistema.
• Os dispositivos de saída possibilitam que os
dados processados (resultados) sejam
conhecidos pelo usuário, por exemplo,
exibidos na tela do computador ou de outro
dispositivo computacional.
PARTES COMPONENTES DE UM SISTEMA
COMPUTACIONAL

• Software (parte lógica) composto


basicamente por sistema operacional
(SO) e programas aplicativos.
• O SO é o software responsável por
fazer a comunicação entre o usuário
e demais programas e entre os
programas e o hardware do
computador. Exemplos: Microsoft
Windows 7, 8, 10; GNU Linux; IOS
etc.
PARTES COMPONENTES DE UM SISTEMA
COMPUTACIONAL

• Software aplicativo é todo programa utilizado para fins


específicos como o web browser (navegador de
internet), software para trocas de mensagens, software
para ouvir música, assistir ou editar vídeos, editor de
texto etc.
• No mundo dos dispositivos móveis esse tipo de
programa é conhecido como app (abreviação do termo
em inglês application que pode ser traduzido para
aplicação ou aplicativo).
SISTEMA COMPUTACIONAL

Figura 4 – Sistema Computacional

Representa tanto o hardware como o


software que dele faz uso. Veja uma
representação simplificada de um sistema
computacional na Figura 4.

Fonte: https://www.gta.ufrj.br/grad/09_1/versão-
final/virtualizacao/conceitos%20chave.html
SISTEMA COMPUTACIONAL

Figura 4 – Sistema Computacional


Você deve estar perguntando: “Mas o que é
esse Assembler?”
Nos primórdios da programação de
computadores, para evitar a escrita direta
em código de máquina, foi criada uma
representação simbólica, uma linguagem de
baixo nível conhecida como Assembly.
Já o Assembler ou Montador é o software
responsável por converter um código Fonte: https://www.gta.ufrj.br/grad/09_1/versão-

Assembly em código de máquina. final/virtualizacao/conceitos%20chave.html


SISTEMA COMPUTACIONAL

Figura 4 – Sistema Computacional


Na realidade os compiladores traduzem o
código de uma lp para um código em
Assembly e, depois, o Assembler converte-o
para código de máquina.
Assim, a etapa de operação do Assembler (a
montagem) pode ser invocada pelo
compilador.
Vale observar que cada arquitetura de CPU
possui a sua própria linguagem Assembly. Fonte: https://www.gta.ufrj.br/grad/09_1/versão-
final/virtualizacao/conceitos%20chave.html
SISTEMA BINÁRIO

• A linguagem ou código de máquina utiliza como seu


“alfabeto” o sistema numérico binário que trabalha apenas
com 2 símbolos: 0 (zero) e 1 (um).
• Então, todas as informações para o processador (CPU) são
expressas em conjuntos de algarismos desses dois símbolos.
• Um algarismo desse sistema é chamado de bit, uma
contração de binary digit.
• Outra unidade muito utilizada para representar conjuntos de
bits é o byte que equivale a 8 bits.
HISTÓRICO DO COMPUTADOR DIGITAL

• Embora tenham surgido antes do uso da


eletricidade, a fim de restringirmos nossa
abordagem, consideraremos a evolução dos
computadores a partir do primeiro computador
digital.
HISTÓRICO DO COMPUTADOR DIGITAL

Primeira Geração (1945-1955):


• Motivado pelas estratégias de guerra da Segunda Guerra
Mundial, foi desenvolvido pelos britânicos o 1º computador
eletrônico digital do mundo com a ajuda do matemático
Alan Turing: o Colossus (1943). Era um equipamento de
propósito específico.
HISTÓRICO DO COMPUTADOR DIGITAL

Primeira Geração (1945-1955):


• Nos Estados Unidos foi desenvolvido um pouco depois o
ENIAC (1946), o primeiro computador eletrônico de
propósito geral. O projeto contou com a ajuda do
matemático John von Neumann (guarde esse nome).
• Esses computadores ocupavam um grande espaço físico e
utilizavam milhares de válvulas.
ARQUITETURA VON NEUMANN

Figura 5 – Máquina de von Neumman


• Após o desenvolvimento do
ENIAC, von Neumman percebeu a
necessidade de melhorias na
arquitetura do computador e
propôs uma máquina
representada na Figura 5, que
conta com o uso de programa
armazenado.
• Vale observar que a máquina de
Fonte: Tanenbaum e Austin (2013).
von Neumann ainda é a base dos
dispositivos computacionais da
atualidade.
HISTÓRICO DO COMPUTADOR DIGITAL

Segunda Geração (1955-1965):


• Em 1948 foi inventado o transistor. Esse componente
eletrônico revolucionou o mercado de computadores,
permitindo um salto em desempenho e redução de espaço
físico ocupado por essas máquinas.
• Essa evolução fez surgir a geração e o mercado dos
minicomputadores como o PDP-1, lançado em 1961. Alguns
anos mais tarde foi lançado o PDP-8 que possuía um
barramento único interligando memória, CPU e E/S.
HISTÓRICO DO COMPUTADOR DIGITAL

Terceira Geração (1965-1980)


• Marcada pela utilização do circuito integrado de silício (que
foi divulgado em 1958), permitiu o empacotamento de
dezenas de transistores em um único chip. Houve nova
redução na dimensão dos computadores e aumento de
poder de processamento.
• Nessa época a IBM laçou a linha System/360 com modelos
de computadores que eram compatíveis entre si, ou seja,
possuíam a mesma linguagem de montagem (Assembly).
HISTÓRICO DO COMPUTADOR DIGITAL

Terceira Geração (1965-1980):


• Outra inovação foi o uso da multiprogramação, que permite
o carregamento de mais de um programa na memória
principal e a alternância destes no uso da CPU. Por exemplo:
enquanto um programa aguarda por uma entrada ou saída,
outro programa pode fazer uso da CPU.
• Os minicomputadores também foram beneficiados com a
nova arquitetura, sendo lançado nessa época o PDP-11, um
irmãozinho para o computador de computação científica da
2ª geração, que foi um sucesso nas universidades.
HISTÓRICO DO COMPUTADOR DIGITAL

Quarta Geração (1980-?):


• Com o surgimento da VLSI (Very Large Scale Integration –
integração em escala muito grande) o número de
transistores em um único chip subiu para dezenas de
milhares, depois centenas de milhares, até milhões.
• Essa geração provocou o “boom” no mercado dos
computadores, permitindo a redução de tamanho, de custo
e o aumento de desempenho fazendo surgir o computador
pessoal (PC) ou microcomputador.
HISTÓRICO DO COMPUTADOR DIGITAL

Quinta Geração:
• Há autores que tratam a quinta geração de computadores
com o lançamento da ULSI (Ultra Large Scale Integration),
escala que possibilita mais de um bilhão de componentes
dentre de um chip.
• Já Tanenbaum(2013), considera como a quinta geração, a
computação ubíqua ou pervasiva, ou seja, a inserção de
poder computacional e comunicacional a dispositivos os
mais variados, de forma transparente, como: relógios,
cartões bancários, Smart TV etc.
Por hoje é só!
REFERÊNCIAS

TANENBAUM, A. S. Organização Estruturada de Computadores. 6ª edição.


São Paulo: Pearson, 2013

Você também pode gostar