Você está na página 1de 116

Organização e Arquitetura

de Computadores
Material teórico
Tópicos de Arquitetura de computadores

Responsável pelo Conteúdo:


Prof Ms Vagner Silva

Revisão Textual:
Profa Esp. Vera Lidia de Sá Cicaroni
Tópicos de Arquitetura de computadores

• Introdução – Histórico

• Conceitos básicos

• Arquitetura de Von Neumann

• Computadores de uso geral e


computadores de uso específico

• Medidas de desempenho

• Representação da Informação

Nesta primeira aula, você irá conhecer um pouco sobre a evolução


dos computadores, os conceitos que envolvem a arquitetura básica de
um computador e outros conceitos, como medida de desempenho,
computadores de uso geral e específico e representação da
informação. Iniciaremos com um breve histórico e, depois, ao ler o
Aprendizado
Objetivo de

texto, você poderá compreender a ideia de Von Neumann e a


arquitetura básica de um computador.
Você poderá esclarecer os pontos sobre os quais ainda tenha dúvidas
através do fórum de discussão. Sua participação é importante como
contribuição para o desenvolvimento de todos.

Atenção

Para um bom aproveitamento do curso, leia o material teórico atentamente antes de realizar
as atividades. É importante também respeitar os prazos estabelecidos no cronograma.

5
Unidade: Tópicos de Arquitetura de computadores

Contextualização

Abaixo, encontram-se trechos do artigo “Um Processador Básico para o Ensino de


Conceitos de Arquitetura e Organização de Computadores” de Morandi. D. et al. disponível
em <http://revistaseletronicas.pucrs.br/ojs/index.php/hifen/article/view/3779/2891>, acessado em
22.04.2012. Nesse artigo é apresentada a importância do conhecimento da Arquitetura para
uma melhor compreensão da programação. Leia, abaixo, alguns pontos relevantes.

“O estudo do funcionamento de um computador e de seu processador é


fundamental na formação de alunos de cursos de graduação em Computação.
Isso porque determinados conceitos utilizados nas disciplinas da área de
Algoritmos e Programação são melhor compreendidos pelos alunos quando
eles entendem os seus significados ao estudar a arquitetura do computador.

Para as fases iniciais, a seleção de processadores para o ensino concorrente da


lógica de programação e de conceitos de arquitetura de computadores deve
facilitar o estabelecimento de relações entre as abstrações lógicas necessárias à
programação e a implementação dessas abstrações em hardware.

Nesse contexto, ao buscar estabelecer uma relação entre as necessidades dos


alunos que estão iniciando a programar e as representações em hardware
correspondentes, devem-se identificar os principais pontos em comum que são
tradicionais fontes de incompreensão para os estudantes e que podem ser
elucidados de forma concreta. Como exemplo, podem ser mencionadas as
relações entre: (i) declaração de variável e alocação de memória; (ii)
constantes e operandos imediatos; (iii) atribuição de variáveis e sua
correspondência com as operações de acesso à memória; e (iv) operações
aritméticas e sua execução no hardware,; entre outras relações.”

Estudar a arquitetura de computadores realmente nos ajuda a entender determinados


conceitos abstratos tratados isoladamente nas disciplinas de programação de computadores.

6
Introdução – Histórico

O computador consiste em um conjunto de circuitos eletrônicos organizados para


funcionar como um sistema integrado, realizando inúmeras tarefas de uso geral. Esta incrível
máquina funciona devido a programas, como sistemas operacionais e aplicativos, que
comandam os circuitos ao qual chamamos de hardware. Estudar arquitetura e organização
dos computadores nos ajudará a entender determinados aspectos que podem influenciar o
desenvolvimento de aplicativos. Para que possamos entender a arquitetura atual, é
interessante conhecermos a evolução dos computadores, portanto prepare-se para voltar ao
tempo em que os computadores não eram essenciais à vida dos seres humanos.

No dicionário, o verbete para a palavra computador apresenta, entre outras, a seguinte


definição: “aquele que faz cômputos, cálculos". Quem já estudou a história dos computadores
terá em mente que o primeiro computador eletrônico desenvolvido foi o "ENIAC", mas,
se considerarmos a definição do dicionário, então, chegaremos à conclusão de que o ENIAC
não foi o primeiro aparelho desenvolvido para computar. Mais abaixo você irá notar que ele
foi o primeiro computador digital projetado. Mas vamos por partes até chegar a ele.

As primeiras anotações, segundo Garbi, aconteceram com a invenção da escrita em


meados do quarto milênio a.C. Com a evolução da escrita e com o conhecimento que o
homem já tinha em relação a quantidades, foi possível desenvolver técnicas para fazer
anotações em tablets de barro cozido. Conforme o homem foi evoluindo, as necessidades de
realizar cálculos mais rápidos também foram crescendo. Uma das primeiras ferramentas
desenvolvidas para auxiliar o cálculo chama-se Ábaco. A data do desenvolvimento do ábaco é
imprecisa; algumas fontes descrevem que os babilônios o usavam para realizar cálculos por
volta de 2.400 a.C. Na Idade Média os romanos também o usavam, no entanto o
aperfeiçoamento dessa ferramenta foi feita pelos japoneses e chineses.

Figura 1: Ábaco, Fonte: http://www.educ.fc.ul.pt/docentes/opombo/seminario/abaco/index.htm

7
Unidade: Tópicos de Arquitetura de computadores

É lógico que outras ferramentas foram inventadas para auxiliar o homem a calcular
com maior rapidez; não é nossa intenção descrever todas elas. Vamos nos concentrar somente
naquelas que contribuíram, de alguma forma, para o desenvolvimento e evolução dos
computadores digitais. O ábaco não supria todas as necessidades dos intelectuais do século
XVII, portanto novas iniciativas para o desenvolvimento de novas ferramentas foram feitas.
Foi nesse século que o inglês Willian Oughtred inventou a régua de cálculo, que consistia em
uma régua que apresentava resultados pré-definidos de multiplicações.

Figura 2: Régua de Cálculo, fonte http://www.inf.ufrgs.br/~cabral/museu.html

Nesse mesmo século, Blaise Pascal inventou uma máquina para cálculos. Essa
máquina, chamada máquina de Pascal, resolvia alguns cálculos que a régua de cálculo não
estipulava, pois apresentava alguns resultados pré-definidos.

A régua de Oughtred auxiliou o desenvolvimento de logaritmos.

Charles Babbage, conforme Garbi, foi outro notável precursor que gastou quase toda a
vida e a fortuna no aperfeiçoamento de uma máquina de calcular concebida dentro de
princípios válidos até hoje. Não chegou a ir muito longe, pois a tecnologia da época não
permitia o desenvolvimento de peças no nível de que precisava.

Na primeira metade do século XX, Alan Turing, natural da Inglaterra, começou a


questionar as máquinas de cálculos desenvolvidas até então. Uma de suas áreas de interesse
era a lógico-matemática e, aproveitando-se das pesquisas e do seu envolvimento nessa área,
ele forneceu uma descrição geral da teoria dos computadores. Conforme Garbi, seu artigo "On
Computable Numbers", publicado em 1937, marcou o início de uma era. Seu doutorado foi
feito nos Estados Unidos, na Universidade de Princeton. Foi nessa época que conheceu John
Von Neumann. Neumann reconheceu a importância das ideias de Turing relacionadas aos
futuros computadores. Devido à Segunda Guerra Mundial, Turing foi lembrado pelos Ingleses
como colaborador de grande importância para decifrar as mensagens usadas pelos Alemães.
Essas mensagens eram enviadas após serem submetidas a um equipamento ao qual
chamaram de Enigma. Turing e a equipe de pesquisadores que comandava desenvolveram
uma máquina chamada Colossus com o objetivo de encontrar padrões nas mensagens
enviadas. Com essa máquina conseguiu ajudar seu país, decifrando mensagens e,
consequentemente, combatendo os submarinos alemães.

8
John Von Neumann, ainda na Segunda Guerra Mundial, dedicou-se ao
desenvolvimento do computador, tomando como base a teoria de Turing. Ele conseguiu
resolver um dos principais problemas técnicos da época, relacionado ao armazenamento de
dados em memórias magnéticas. Esse importante passo possibilitou que os programas
pudessem ser armazenados diretamente em componentes eletrônicos e não mais em fitas
perfuradas. Esse e outros fatos ocorridos na história da evolução dos computadores
permitiram que, hoje, possamos ter um computador para ser usado em casa, em empresas,
nas universidades e em qualquer outro local onde se faça necessário.

A contribuição de Neumann para a computação foi fundamental; ele fez parte da


equipe que desenvolveu o ENIAC, considerado o primeiro computador eletrônico. Até pelas
condições tecnológicas da época, o ENIAC ocupou um grande espaço físico e científico: para
se ter ideia do espaço físico, o conjunto todo ocupava três andares de um prédio.

Figura 3: ENIAC, Fonte: http://www.museudocomputador.com.br/enciteclado.php

Felizmente a tecnologia evoluiu muito rapidamente; a válvula (1907), um dos


principais componentes eletrônicos do ENIAC, começou a ser substituída pelos transistores
(1947) e circuitos integrados (1958). Como consequência, os computadores tornaram-se bem
menores, ocupando menos espaço e passando a ter custo mais acessível para as empresas. O
processador (1971) alavancou a produção de computadores pessoais; com ele foi possível
diminuir ainda mais essas máquinas e reduzir muito o custo de produção e,
consequentemente, o preço. Atualmente, podemos notar que não há grandes invenções na
linha desses semicondutores; o que se faz é inserir uma quantidade maior de componentes
dentro de uma pastilha de silício, o que permite presenciarmos manchetes de notícias como
“Processador com 32 núcleos, como isto é possível?”.

A evolução tecnológica não tem fim, sempre teremos novidades, no entanto a linha
que se está seguindo é o da miniaturização dos componentes e também dos equipamentos. A
tendência caminha para o processamento, ou seja, inclusão do microprocessador na maioria
dos equipamentos eletrônicos, como micro-ondas, televisões, geladeiras, fogões e até
automóveis e outros.

9
Unidade: Tópicos de Arquitetura de computadores

Atualmente o termo computação ubíqua ou computação invisível está se tornando


mais comum. Os processadores e os softwares fazem parte de nossas vidas e, muitas vezes,
não nos damos conta disso. Com certeza, ao seu redor deve haver muitos objetos com essa
característica. Alguns exemplos? Celulares, tablets, notebooks, televisão, circuito fechado de
TV, câmeras fotográficas, filmadoras, alarmes e outros que, futuramente, farão parte de nossas
vidas como roupas, tênis, blusas, bolsas, etc.

Conceitos básicos

O conceito de arquitetura e organização de computador refere-se à forma como se


interligam e se comunicam os vários componentes eletrônicos e mecânicos do computador.
Essa organização determina aspectos relacionados à qualidade, desempenho e aplicação para
os quais o computador vai ser usado.

Chamo a sua atenção para o fato de que um computador digital é uma máquina que
pode resolver problemas executando um conjunto limitado de instruções e essas instruções
estão estritamente relacionadas ao microprocessador de um determinado fabricante, um
programa escrito em linguagem de alto nível, como Java, C++, VB.NET, C# e outras, que,
quando executadas, passam por algumas conversões até virarem instruções que o
microprocessador possa entender.Os microprocessadores só entendem os bits “1” e “0”,
portanto qualquer programa é convertido a uma dessas instruções, constituídas de “1” e “0”,
limitadas do microprocessador. Esse procedimento é usado por ser mais confiável para
codificar informações digitais e por propiciar maiores velocidades de processamento. As
instruções primitivas de um processador formam uma linguagem por meio da qual as pessoas,
desde que tenham conhecimento, podem se comunicar. Essa linguagem é denominada
linguagem de máquina.

O diagrama básico de um computador é composto por três elementos: unidade


central de processamento, dispositivos de entrada e saída e a memória.

10
Figura 4: Diagrama básico de um computador. Fonte: Tanenbaum

A unidade central de processamento é considerada o cérebro do computador. Sua


função é executar programas que foram armazenados na memória principal, à qual damos o
nome de memória RAM. Nesse dispositivo ficam os programas e os aplicativos que estão
sendo executados no momento, portanto o sistema operacional tem a função de controlar
essa arquitetura, buscando as instruções, examinando-as e disponibilizando para execução
uma após a outra.

Os componentes eletrônicos e mecânicos são conectados por um conjunto de fios


paralelos ao qual damos o nome de barramento. Eles têm a função de servir de via para a
transmissão de endereços, dados e sinais de controles. Os barramentos podem ser externos à
CPU; neste caso ele serve para conectar a memória e os dispositivos de entrada e saída, mas
também podem ser internos à CPU, ou seja, dentro do chip da CPU há barramentos que são
usados para o tráfego de instruções ou dados capturados da memória.

Analisando a figura 4, podemos notar que a CPU é composta por algumas outras
partes. Uma delas é a unidade de controle, que é responsável por endereçar, ou seja, apontar
para uma posição da memória onde estará o dado ou instrução a ser carregada para o
processador e controlar se esses dados serão lidos ou escritos na memória principal.
Analogamente podemos considerar que a memória é parecida com um vetor; cada linha é
composta por oito bits e tem um número ao qual damos o nome de endereço. A CPU tem
que, de alguma maneira, capturar as informações contidas na memória para serem
processados. Essas informações são capturadas pela indicação do endereço de onde eles estão
armazenados.

A outra é a unidade lógica e aritmética, que efetua operações básicas como adição,
subtração, multiplicação, divisão e comparação dos dados.

11
Unidade: Tópicos de Arquitetura de computadores

Figura 5: Unidade Lógica e Aritmética. Fonte: Tanenbaum.

Conforme pode ser verificado na figura 5, a unidade lógica e aritmética recebe duas
informações, uma de cada registrador. Esses dados serão processados pela unidade lógica e
aritmética, que retornará um resultado e irá inseri-lo em um dos registradores. Portanto você
pode perceber que os dados vêm dos registradores, passam pela unidade lógica e aritmética e
um resultado é obtido e enviado para um dos registradores. Basicamente é assim que
funciona a unidade lógica e aritmética: os dados são enviados da memória principal para os
registradores e o resultado da operação pode ser inserido em um dos registradores ou, então,
voltar direto para a memória principal.

Os microprocessadores atuais contêm uma pequena memória de alta velocidade usada


para armazenar resultados temporários e controlar informações. Essa memória, chamada
registrador, é composta de uma pequena quantidade de espaço. Normalmente, todos os
registradores têm o mesmo tamanho. Cada registrador tem uma função específica e eles
podem ser lidos e escritos em altas velocidades, pois são internos à CPU e usam o seu
barramento interno.

Registradores são memórias, portanto sua função é armazenar dados


temporariamente. Por estarem dentro do microprocessador e devido ao material
utilizado na sua fabricação, os registradores são memórias de altíssimas
velocidades, eles têm uma função importante, pois o microprocessador usa as
informações contidas nos registradores para processamento.

Arquitetura de Von Neumann

12
John Von Neumann, conforme já mencionado, era uma matemático com grande
interesse na área da computação. Ele apresentou uma arquitetura de computador que é usada
ainda hoje no projeto de computadores. Sua arquitetura reúne os seguintes componentes:
uma memória, uma unidade aritmética e lógica, uma unidade central de processamento,
composta por diversos registradores, e uma unidade de controle, que tem a função de auxiliar
na busca de um programa na memória instrução por instrução.

Figura 6: Arquitetura de Von Neumann. Fonte: Tanenbaum.

Todas as máquinas construídas até o início do projeto do ENIAC eram programadas e


controladas através de meios externos, como cartões perfurados, fitas perfuradas, painéis de
interruptores, cabos de conexões etc.; dispunham de pouquíssima memória para armazenar os
dados e os resultados intermediários dos cálculos. A construção do ENIAC, cuja capacidade
de armazenamento era de vinte números, consumiu mais de 17.000 válvulas eletrônicas. Um
fator decisivo para viabilizar o projeto de uma nova máquina foi a ideia de utilizar técnicas
para implementar memória de custo mais baixo para substituir as válvulas. Com essa ideia,
tornou-se possível pensar numa máquina com dezenas ou centenas de milhares de bits. John
Von Neumann foi um dos responsáveis pelo desenvolvimento das pesquisas em memórias,
pois sua ideia era fazer com que os programas fossem armazenados diretamente nos
computadores e que os meios descritos acima para armazená-los deixassem de ser utilizados.
Com sua contribuição, os computadores e os programas tornaram-se mais rápidos, mais
flexíveis e mais eficientes.

Computadores de uso geral e computadores de uso específico

Algumas vezes você poderá se deparar com as terminologias “computador de uso


geral” e “computador de uso específico”. Vamos conceituar cada uma delas e dar alguns
exemplos para elucidar essas definições.

Um computador de uso geral é aquele desenvolvido para executar uma variedade de


atividades; o projeto desses computadores é feito para que eles possam lidar com diversas

13
Unidade: Tópicos de Arquitetura de computadores

situações e circunstâncias. Como exemplo, podemos citar todos os computadores que são
anunciados para venda, geralmente, usando um sistema operacional Windows, Linux ou
MAC. Esses computadores são adquiridos para serem usados em uma variedade grande de
situações, como acesso à internet, leitura e-mails, telefonemas, desenvolvimento de textos,
planilhas, banco de dados, desenhos, execução de jogos, filmes, programas e aplicativos em
praticamente todos os ramos profissionais. Além disso, esses computadores permitem a
personalização de interfaces e áreas de trabalho conforme a preferência de cada um. É
importante que fique claro que esses computadores têm uma arquitetura que permite que isso
seja possível desde que sejam instalados os softwares aplicativos para executar as atividades
em questão.

Os computadores de uso específico já são projetados para executar uma quantidade


limitada de tarefas. A arquitetura desses computadores é projetada para potencializar o
desempenho em detrimento da variedade de atividades e quantidade de programas a serem
executados. Geralmente estes computadores são apresentados com formas apropriadas à
atividade para a qual ele foi desenvolvido. São exemplos de computadores de uso específico
os medidores de tráfego em redes de computadores, roteadores também usados em redes de
computadores, televisão, aparelho celular (smartphones), computadores usados em
computação gráfica para desenvolvimento de filmes e desenhos. Esses computadores,
conforme já foi descrito, usam componentes específicos para determinadas funções; os
processadores, as interfaces gráficas e os sistemas operacionais são desenvolvidos para
proporcionar o melhor desempenho do conjunto. Em linhas gerais, não há como executar
outras atividades a não ser aquela para a qual ele foi projetado, portanto, esses computadores
costumam ser mais caros.

Medidas de desempenho

O tempo de execução é, geralmente, a unidade de medida usada para determinar o


desempenho de um computador. Nesse sentido, devem ser consideradas algumas variáveis,
como: a quantidade de processos que estão sendo executados, a quantidade de memória
disponível, a velocidade do clock, a quantidade de instruções executadas por ciclo, dentre
outras. Resumindo, a medida de desempenho de um computador depende da velocidade de
cada um de seus diferentes principais componentes.

Muitas vezes a velocidade do clock e a quantidade de núcleos nos processadores são


anunciadas como referência ao desempenho dos computadores, no entanto outros fatores
devem ser analisados, embora muitos deles acabem sendo compatíveis entre si. Esses fatores
incluem o acesso aos dispositivos de entrada e saída, o software básico e a hierarquia de
memória.

14
Uma das partes mais prejudiciais ao desempenho refere-se aos dispositivos de E/S,
principalmente aqueles que envolvem partes mecânicas para acesso à informação, como é o
caso dos HDs e dispositivos de escrita e leitura ótica. O acesso a esses dispositivos ocorre com
menos evolução em relação aos processadores, aspecto que influencia o desempenho do
conjunto na execução de tarefas.

Vamos analisar o impacto do sistema de E/S no desempenho descrito por Guntzel:

Suponha que temos um benchmark que executa em 100 segundos divididos em: 90s
de processador + 10s de E/S. Se o tempo de processador melhorar em 50% ao ano para os
próximos anos, mas o tempo de E/S se mantiver, quanto esse programa vai ficar mais rápido
ao final de 5 anos?

Obs. Benchmark são programas específicos para medir o desempenho.

Solução:

Tempo decorrido = tempo de processador + tempo de E/S


100 = 90 + Tempo de E/S

Após n anos Tempo de Tempo de Tempo % Tempo


Processador E/S decorrido decorrido
gasto em E/S

0 90s 10s 100s 10%

1 90/1.5=60s 10s 70s 14%

2 60/1.5=40s 10s 50s 20%

3 40/1.5=27s 10s 37s 27%

4 27/1.5=18s 10s 28s 36%

5 18/1.5=12s 10s 22s 45%

Analisando a tabela acima, podemos notar que o tempo de execução do processador,


considerando uma melhora de cinquenta por cento ao ano, executa a atividade em 90
segundos no primeiro ano e chega a executar a mesma atividade em 12 segundos após cinco
anos. No entanto, se o tempo do dispositivo de E/S continuar o mesmo, ou seja, conforme o
exemplo, dez segundos, podemos perceber que, após cinco anos, a porcentagem do E/S
chega a quase cinquenta por cento na execução da atividade, ou seja, enquanto o
processador executa a atividade em doze segundos, o dispositivo de E/S continua levando dez
segundos para executá-la.

15
Unidade: Tópicos de Arquitetura de computadores

Algumas iniciativas estão sendo implementadas em notebooks e outros aparelhos,


como a utilização de memória flash no lugar de HDs. Esta iniciativa permite que seja
dispensada a parte mecânica na leitura desses dispositivos de armazenamento. Dessa forma
há um ganho considerável na leitura e escrita de dados que precisam ser armazenados para
uso futuro.

Em linhas gerais, se temos como objetivo avaliar o desempenho de um computador,


então temos que considerar o conjunto: processador, dispositivos de entrada e saída e
memória. Sendo assim, temos que avaliar o tempo de resposta, também chamado de tempo
de execução, que corresponde ao tempo total necessário para que o conjunto possa completar
uma tarefa e a vazão também conhecida como throughput, que tem a função de indicar a
quantidade de tarefas terminadas por unidade de tempo geralmente dada em segundos.
Como referência, a seguinte formula é usada para determinar o desempenho de um
computador:

Desempenho(x)=1/Tempo de execução(x)

Tomando como base dois computadores X e Y, se o desempenho de X é maior que o


desempenho de Y, então podemos expressá-lo da seguinte maneira:

Desempenho(x) > Desempenho de (Y), pois


1/tempo de execução(x) > 1/tempo de execução(Y)

Em análise de um projeto de computador, normalmente, relaciona-se o desempenho


de dois computadores diferentes de maneira quantitativa, usando a seguinte relação:

n=Desempenho(x)/Desempenho(y)

Exemplo: se um computador “A” executa um programa em 10 segundos e o


computador “B” executa o mesmo programa em 15 segundos, quanto o A é melhor que B?

Usando a fórmula acima teremos

n=15/10 = 1,5

Portanto, temos que A tem um desempenho 1,5 vezes maior que B.

16
Representação da Informação

Como já citado, os computadores usam uma forma diferente para tratar as informações
que devem ser processadas: enquanto nós, seres humanos, tratamos a informação através de
um conjunto de caracteres alfanuméricos, os computadores consideram apenas bits “1” e “0”,
ou seja, se há ou não um nível de voltagem, geralmente dada por +5v ou 0v, onde +5v
indica o valor binário “1” e o 0v indica o valor “0” em binário. Esta técnica de trabalho
garante às máquinas maior desempenho e facilidade na representação de cada informação.

Nós, seres humanos, trabalhamos com um sistema de numeração na base 10, ou seja,
com os números de 0 a 9 conseguimos representar qualquer número e com o alfabeto
conseguimos escrever sobre tudo. Os computadores trabalham com o sistema de numeração
binária, pois só há dois símbolos, “0” e “1”. Com esse sistema de numeração, ele consegue
representar qualquer número e também representar todas as letras do alfabeto.

Trabalhar com o sistema binário é quase impossível para nós seres humanos, no
entanto deve haver uma forma de tradução do que entendemos para que uma máquina possa
entender. Os primeiros computadores eram manipulados usando algum tipo de material que
pudesse representar 1 e 0; o cartão perfurado e as chaves on/off tinham essa finalidade. Essa
época foi marcada por baixa produtividade e complexidade no desenvolvimento de
programas para executarem determinadas tarefas. Com o passar do tempo, foram surgindo
alguns programas para controlar essas máquinas, aos quais foi dado o nome de sistemas
operacionais. Com eles foi possível tirar a responsabilidade do especialista sobre o controle
total da máquina. Sendo assim, o foco maior, por parte dos especialistas, voltou-se para o
desenvolvimento de programas para realizar determinadas tarefas. Mesmo assim, lidar apenas
com 1 e 0 para desenvolver um programa ainda tornava a atividade complexa e sacrificante,
principalmente se algum erro fosse cometido durante o desenvolvimento. Muitas vezes, era
melhor refazer o código em vez de procurar onde estava o erro.

Surgiram algumas linguagens de programação, às quais chamamos de linguagem de


alto nível. Essas linguagens têm como finalidade tornar a programação mais atraente. Elas
representam uma linguagem mais próxima daquela que um programador possa entender; são
utilizadas palavras mais próximas de nossa linguagem. Dessa forma o programador foca mais
na lógica da programação e não das particularidades da estrutura da linguagem de máquina.

De qualquer forma, após escrever um programa em linguagem de alto nível, ela deverá
ser convertida para a linguagem de máquina, ou seja, em “0” e “1”. Essa interpretação ou
compilação gera um custo relacionado ao desempenho na execução do programa, por esse
motivo aquelas aplicações que necessitam de velocidade na execução - como jogos, sistemas
operacionais, programas que têm a tarefa de renderização de imagens e outros - são
desenvolvidas usando linguagens de mais baixo nível como Assembler, C, C++.

17
Unidade: Tópicos de Arquitetura de computadores

Material Complementar

Aqui, disponibilizamos algumas sugestões de leitura para você aprofundar seu


conhecimento sobre o assunto estudado nesta unidade.

STALLINGS, W. Arquitetura e Organização de Computadores: Projeto Para o


Desempenho. 5. ed. São Paulo: Prentice Hall, 2004. (Biblioteca Digital)

TANENBAUM, A. S. Organização Estruturada de Computadores. 5 ed. São Paulo.


Pearson Prentice Hall, 2007. (Biblioteca Digital)

18
Referências

GARBI, G. G. A Rainha das Ciências: Um passeio Histórico pelo Maravilhoso mundo da


Matemática. 1 ed. São Paulo. Editora livraria da Física, 2006.

GUNTZEL J. L. Interface Processador/Periféricos: Introdução, Impacto do sistema de E/S


no desempenho, medidas de desempenho de E/S. Disponível em
http://www.inf.ufsc.br/~guntzel/ine641400/AOC2_aula19.pdf Acessado em 14 de abril de
2012.

SENGER, L. J. Avaliando e compreendendo o desempenho. Disponível em


http://www.ljsenger.net/2006/orgearq/org4.pdf Acessado em 25 de março de 2012.

UNIVERSIDADE Federal do Rio Grande do Sul. Museu de Informática. Disponível em


http://www.inf.ufrgs.br/~cabral/museu.html. Acessado em 24 de março de 2012.

MUSEU da Informática. Disponível em:


http://www.museudocomputador.com.br/enciteclado.php Acessado em 05 de Abril de 2012.

19
Unidade: Tópicos de Arquitetura de computadores

Anotações

_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
20
_________________________________________________________________________________
_________________________________________________________________________________
Responsável pelo Conteúdo:
Prof. Ms. Vagner Silva

Revisão Textual:
Profª. Esp. Vera Lidia de Sa Cicaroni
Sistemas de Numeração

Os sistemas de numeração são utilizados frequentemente por


nós, seres humanos, e pelas máquinas. Os seres humanos têm
mais facilidade em manipular o sistema de numeração
decimal, porém as máquinas manipulam melhor o sistema de
numeração binário. Há ainda os sistemas de numeração octal
e hexadecimal.
Nesta unidade você vai aprender a realizar conversões entre
bases de sistemas de numeração e conhecer como são feitos
os cálculos aritméticos com o sistema de numeração binário.
Leia atentamente o conteúdo disponibilizado, pois seu
entendimento irá facilitar o desenvolvimento das atividades.

Atenção

Para um bom aproveitamento do curso, leia o material teórico atentamente antes de realizar
as atividades. É importante também respeitar os prazos estabelecidos no cronograma.
Contextualização

Abaixo você irá encontrar parte de uma entrevista realizada com Renato Degiovani. Esta entrevista
está disponível em: http://meiobit.com/17470/entrevista-renato-degiovani/ Acessada em 01.05.2012.

Cenário: 1983. No exterior surgiam o Apple Lisa, o Apple IIe, o Atari 1200XL. A Lotus lançava o 1-2-
3, a IBM anunciava o PC-XT e a Microsoft mostrava o DOS 2.0. Por aqui, reserva de mercado. As
novidades eram o CP300, da Prológica; o TK85 da Microdigital e falava-se que a Gradiente fabricaria
um micro compatível com o poderoso padrão MSX.

A revista de informática mais influente do mercado era a “Micro Sistemas”, que trazia, na sua edição
de julho, um marco na história do desenvolvimento de jogos no Brasil: a listagem (é, naquela época se
digitavam os programas que vinham nas revistas) do “Aeroporto 83″. Sucesso imediato, a edição
esgotou rapidamente, deixando os leitores ávidos por mais e mais jogos. O responsável pelo feito:
Renato Degiovani.

MB: O senhor já disse que seu primeiro micro foi um NE-Z80. Portanto, o senhor teve que
aprender linguagem de máquina: assembly. Como foi a experiência, para alguém que não
veio de uma formação técnica na área? E qual linguagem utiliza hoje?

RD: Aprender linguagem de máquina foi uma das minhas maiores conquistas, porque, naquela época
(inicio dos anos 80), não existiam livros sobre o assunto, não existiam manuais e não tinha nem a
quem perguntar, ou tirar uma dúvida. Porém eu já tinha assimilado (via basic) a principal regra da
programação: o computador vai executar o que for programado, em sequência e instrução por
instrução.

Eu olhava para os códigos em LM e ficava me perguntando onde estava o sentido daquilo. As poucas
referências à programação eram do tipo “com linguagem de máquina você literalmente conversa com
o processador”. Ora, como tirar de frases como essa o sentido da programação e dos códigos? Para
mim era angustiante não compreender uma simples listagem. Só quando caiu a ficha e entendi que LD
A,10 significava “load register A with 10″ e que isso significava algo parecido com “LET A = 10″ do
basic, é que tudo passou a fazer sentido. Dai em diante não teve mais nenhum mistério.

Programei em linguagem de máquina (escrevendo os códigos hexa diretamente), depois em assembler


(porque a compilação era feita manualmente e não pelo computador) e finalmente em assembly
(usando o computador para compilar o código) até 96/97. Fazia tudo em asm. Daí em diante passei a
usar Delphi e nunca mais consegui “gostar” de outra linguagem de programação.
Atualmente, ainda se utiliza a linguagem de máquina em várias situações, no entanto há emuladores,
por exemplo, em linguagem C que convertem o programa em zeros e uns.
Sistemas de numeração

Em sua evolução, após deixar de ser nômade, o homem sentiu necessidade de


contabilizar. Devido a essa necessidade, foi desenvolvido o sistema de numeração que
utilizamos atualmente na representação de quantidades. Existem vários sistemas numéricos,
dentre os quais se destacam o sistema decimal, o qual já estamos acostumados a manipular, o
binário, o octal e o hexadecimal.
Os sistemas binário, octal e hexadecimal são importantes na área de técnicas digitais e
computação, pois são usados na representação dos sinais digitais, na programação em
linguagem de baixo nível, na representação de endereçamento de memória, nos dispositivos
de entrada e saída e no processamento dos microprocessadores.
O sistema binário de numeração é um sistema que possui apenas dois símbolos: o
símbolo 1 e o símbolo zero. Podemos representar qualquer número decimal em binário
usando apenas esses dois símbolos. Para representar o número zero, em binário, usamos o
algarismo 0 e para representar o número 1, em binário, usamos o algarismo 1. Pois bem, se
temos apenas esses dois algarismos, como poderíamos representar o algarismo 2 em binário?
Você já parou para pensar nisso? Não possuímos o símbolo 2 nesse sistema de numeração;
como faríamos, então, já que em binário só temos dois símbolos (0 e 1) ?
Não é tão complicado quanto parece. No sistema decimal, nós não possuímos o
algarismo dez e nós representamos a quantidade de uma dezena utilizando-nos do algarismo
1 seguido do algarismo zero, ou seja, passamos a repetir os algarismos que já existem nesse
sistema de numeração.
No sistema binário, com um bit, conseguimos representar as duas combinações (o 0 ou
o 1) e, para representar outros valores maiores que 0 e 1, usamos a mesma regra feita para o
sistema decimal. Portanto, para representar outros valores, temos que começar a agrupar
outros bits.
A unidade central de processamento, mais especificamente a CPU, trabalha apenas
com zeros e uns, ou seja, trabalha com sistema binário para processar as informações
armazenadas na memória. Essa forma de trabalhar aumenta a capacidade de processamento
e, consequentemente, aumenta a velocidade do processamento das informações. As
linguagens de baixo nível, linguagem de máquina e assembler são linguagens em que as
representações das instruções são feitas por números binários e hexadecimais.
O número hexadecimal tem as seguintes características:
são muito compactos;
são de fácil conversão para o sistema binário, ou seja, é fácil a conversão de hexadecimal para
binário e de binário para hexadecimal.
Em computação, o sistema de numeração hexadecimal é usado em várias situações,
como, por exemplo, quando calculamos a posição da cabeça leitora e os setores de um disco
rígido ou, então, quando usamos programas de editor do disco rígido para analisar algumas
características diferentes ou algum problema ocorrido. Para esses casos necessitaremos de um
bom conhecimento do sistema hexadecimal para ajudar na análise.
O sistema de numeração hexadecimal usa a base 16 e inclui somente os símbolos de 0
a 9 e as letras A, B, C, D, E, e F. Usamos a letra H depois do número para denotar que ele
está no sistema hexadecimal.

Método genérico de transformação de números.

A conversão entre bases é possível, usando-se o método de decomposição dos


números, portanto, para converter de uma base X para uma base Y, separamos cada número
em unidade, dezena, centena etc. e, então, multiplicamos pela base em que o número se
encontra elevada à sua representatividade (unidade, dezena, centena etc.), lembrando que o
expoente para a unidade será 0, para dezena será 1 e assim por diante.
Exemplo:

Decompor o decimal 6434 .

6434 : 10 = 643 , fica 4 100


643 : 10 = 64 , fica 3 101
64 : 10 = 6 , fica 4 102
6 : 10 = 0 , fica 6 103

Perceba que, a cada vez que vamos dividindo pela base, neste caso a base 10, o resto
é multiplicado pela base elevada à sua representatividade. Vamos analisar a primeira divisão:
(6434 : 10). Tivemos como resultado o número 643 e como resto ficou o número 4. O resto
da divisão (4) representamos da seguinte forma: 4x100. Sabemos que qualquer número
elevado a 0 tem como valor o número 1, então, como resultado, temos 4x1 = 4. E assim foi
feito com as outras divisões até decompormos o número 6434. Como resultado da
decomposição temos 6x103 + 4x102 + 3x101 + 4x100.
Para número real usamos a multiplicação para realizar a decomposição.
Vejamos um exemplo abaixo.

Decompor o número 0,8125 (decimal)


0,8125 * 10 = 8, 125 10-1
0,125 * 10 = 1, 25 10-2
0,25 * 10 = 2, 5 10-3
0,5 * 10 = 5, 0 10-4
0,0

Conforme pode ser visto acima, na decomposição de números reais, devemos


multiplicar pela base. Neste caso estamos na base 10. O valor inteiro multiplicamos pela base,
neste caso 10, elevada à sua representatividade negativa. Na primeira parte da decomposição,
fizemos 0,8125 * 10; como resultado, tivemos 8,125. A parte inteira (8) multiplicamos por 10 -
1
. Há uma propriedade na matemática que descreve o seguinte: toda e qualquer potência que
tenha expoente negativo é equivalente a uma fração na qual o numerador é a unidade
positiva e o denominador é a mesma potência, porém apresentando o expoente positivo.
Sendo assim, podemos representar 8x10-1 como 8x1/10, ou seja, invertemos o 10-1 e
tornamos o expoente positivo. Como resultado desse cálculo, temos novamente o 0,8 (8/10).
Esse procedimento é realizado com os outros números reais, conforme pode ser observado no
exemplo acima.

Conversão de decimal para binário

Para converter uma base decimal para qualquer outra base, seja ela binária, octal ou
hexadecimal, basta dividir, sucessivamente, o número decimal a ser convertido, pela base
para a qual se quer converter, guardando o resto da divisão. O resultado dessa operação é
novamente dividido pela base e devemos guardar o resto. Este processo irá se repetir até que
o resultado seja menor que a base. Exemplo.
Ao converter 29 (decimal) para binário, após o cálculo, devemos chegar ao resultado
111012.
Como queremos representar o número 29 na base binária, então devemos
dividi-lo por 2.
29 : 2 = 14 , resto 1 20
14 : 2 = 7 , resto 0 21
7 : 2 = 3 , resto 1 22
3 : 2 = 1 , resto 1 23
1 : 2 = 0 , resto 1 24

Conforme descrito acima, dividimos o número 29 por dois, guardamos o resto da


divisão (1). O resultado (14) dividimos novamente por dois e guardamos o resto. Esse
procedimento deve ser repetido até que o resultado seja menor que dois. O resultado final é
composto por todos aqueles restos da divisão que guardamos durante o processo. A leitura é
feita de baixo para cima, portanto temos como resultado 111012.

Conversão de números fracionários decimais em binário

Para converter números fracionários do sistema decimal em números fracionários do


sistema binário, devemos multiplicar o número fracionário decimal, aquele que está depois da
vírgula, por dois, pois é para essa base que estamos querendo converter. Este procedimento é
o mesmo que utilizamos para decompor um número real na base dez; a única diferença é que
estamos multiplicando pela base dois em vez de pela base dez.
Exemplo
Ao converter 0,8125 (decimal) para binário, o resultado, após o cálculo, deverá ser 0,11012.
Veja, abaixo, como é feito o cálculo.

0,8125 *2= 1, 625 2-1


0,625 *2= 1, 25 2-2
0,25 *2= 0, 5 2-3
0,5 *2= 1, 0 2-4

0,0

No exemplo acima, o valor 0,8125 foi multiplicado por dois, resultando o valor 1,625.
Guardamos o valor inteiro, neste caso o valor 1, e multiplicamos novamente o número
fracionário (0,625) por dois. Novamente guardamos o valor inteiro e multiplicamos o número
fracionário por dois. Repetimos esse procedimento até que o valor decimal seja zero. Há
casos, aqueles que caracterizam dízima, em que o valor do lado direito da vírgula nunca dará
zero; neste caso temos que, em algum momento, parar a multiplicação.

Veja abaixo outro exemplo


Converter 0,3 (decimal) para binário; o resultado deverá ser 0,01001 1001 1001… 2,

0,3 * 2 = 0, 6 2-1
0,6 * 2 = 1, 2 2-2
--------
0,2 * 2 = 0, 4 2-3
0,4 * 2 = 0, 8 2-4
0,8 * 2 = 1, 6 2-5
0,6 * 2 = 1, 2 2-6
--------

Se continuarmos com essa multiplicação, veremos que não haverá um fim, pois a
sequência 1001 começa a se repetir, o que caracteriza dízima, ou seja, essa mesma sequência
de números sempre irá aparecer.

Conversão de decimal para hexadecimal


Usamos a mesma regra da conversão de decimal para binário, no entanto temos que
usar a base adequada, ou seja, em vez de dividir o decimal por dois, iremos dividi-lo por 16,
pois esta é a base para a qual queremos converter o número em questão. Não podemos
esquecer que a base hexadecimal tem 16 símbolos: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E e F.
Para exemplificar, vamos converter o número 2540,34 (decimal) para hexadecimal e o
resultado deverá ser, aproximadamente 9EC, 570A316. A conversão será feita em duas
partes, conforme você poderá notar abaixo.
a) Primeiro, resolveremos o lado esquerdo da vírgula, lado em que temos o número
inteiro. Portanto devemos dividi-lo por 16.

2540 : 16 = 158 , resto 12 => C 160


158 : 16 = 9 , resto 14 => E 161
9 : 16 = 0 , resto 9 => 9 162

Na base 16, quando o resto da divisão for maior que 10, temos que representá-lo por
sua respectiva letra, portanto, para o cálculo efetuado acima, para o lado esquerdo da
vírgula teremos => 9EC 16
b) Em segundo lugar, vamos resolver o lado direito da vírgula, no qual temos o número
fracionário. Portanto devemos multiplicá-lo por 16. Veja, abaixo, como fica o cálculo.

0,34 * 16 = 5,44 5 => 5 16-1


0,44 * 16 = 7,04 7 => 7 16-2
0,04 * 16 = 0,64 0 => 0 16-3
0,64 * 16 = 10,24 10 => A 16-4
0,24 * 16 = 3,84 3 => 3 16-5

Continuando a multiplicação teremos => 0, 570A3… 16

Agora temos que agrupar os dois resultados, o que calculamos para o lado esquerdo da
vírgula e o que calculamos para o lado direito da vírgula, e temos como resultado final
~9EC,570A316

Convertendo de binário para decimal

Para fazer conversão do sistema binário para o sistema decimal, devemos proceder da
seguinte forma: multiplicamos o primeiro número binário, da direita para a esquerda, por dois
elevado a zero; o segundo número, da direita para a esquerda, multiplicamos por dois elevado
a um; e assim sucessivamente até que todos os dígitos binários sejam multiplicados por dois e
seu respectivo expoente. Os resultados dessas multiplicações devem ser somados para
obtermos o número decimal. Veja abaixo um exemplo.
Converter 110101 (binário) para número decimal:

110101 2 = 1*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20


= 1*25 + 1*24 + 1*22 + 1*20
= 1*32 + 1*16 + 1*4 + 1*1
= 53 10

Para melhor visualizar o que foi feito, vamos analisar a tabela abaixo:
1 1 0 1 0 1
25 24 23 22 21 20

Como pode ser visto, cada dígito binário, representado na primeira linha da tabela,
será multiplicado, da direita para a esquerda, pela base elevada a 0, depois a 1 e assim
sucessivamente. A soma dessas multiplicações será o número em decimal.
Vamos desenvolver uma conversão considerando um binário negativo e fracionário.
Vamos converter -11,101 (binário) para decimal.

-11,101 2 = - (1*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3)


= - (1*21 + 1*20 + 1*2-1 + 1*2-3)
= - (1*2 + 1*1 + 1*0,5 + 1*0,125)
= - 3 , 625

Para a parte à direita da vírgula, usamos o mesmo método do exemplo anterior a este.
A diferença está no cálculo do lado direito da vírgula. Perceba que multiplicamos o dígito
binário pela base elevada a um valor negativo, começando por 2 -1, depois 2-2, e assim
sucessivamente. Lembre-se de que usamos a propriedade do expoente negativo; sendo
assim, teremos ½ = 0.5 – ¼ = 0,25 e 1/8 = 0,125.
Conversão de hexadecimal para decimal

Para converter o sistema de numeração hexadecimal para o sistema de numeração


decimal, usamos a mesma regra de conversão do sistema de numeração binário para o
sistema de numeração decimal, no entanto temos que trocar a base.
Como exemplo, vamos converter o número hexadecimal 9EC,570A3 para decimal
9EC, 570A3 = 9*162 + 14*161 + 12*160 + 5*16-1 + 7*16-2 + 0*16-3 + 10*16-4 + 3*16-5
16

= 2304 + 224 + 12 + 0,3125+ 0,02734375 + 0,0001525878... +


0,00000286102...
= 2540 , 33999919891357421875

Novamente vamos recorrer à tabela para facilitar a explanação.


9 E C, 5 7 0 A 3

162 161 160 16-1 16-2 16-3 16-4 16-5

Conforme pode ser observado na tabela acima, devemos multiplicar a parte esquerda
da vírgula por 160, depois 161 e 162. A parte que está à direita da vírgula, multiplicamos por 16-
1
, depois 16-2 e assim sucessivamente. Para efetuar a multiplicação, não podemos esquecer de
converter as letras por números, conforme segue A=10, B=11, C=12, D=13, E=14, F=15.

Número binário e sua correspondência em hexadecimal e octal


Conforme a tabela abaixo, podemos perceber que precisamos de quatro dígitos
binários para representar todos os símbolos hexadecimais.

Binario Hex Binário Octal


0000 0 000 0
0001 1 001 1
0010 2 010 2
0011 3 011 3
0100 4 100 4
0101 5 101 5
0110 6 110 6
0111 7 111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15

Para fazer uma conversão rápida entre bases hexadecimais para binário, podemos
separar cada número hexadecimal e representá-lo em binário, depois basta agregar estes
números binários para a representação final. Veja o exemplo abaixo.

-6F,A16 =
6 F A
- 0110 1111 , 1010 2 = - 1101111 , 101 2

O contrário também é verdadeiro; para representar um número hexadecimal em


binário, devemos agrupar sempre em quatro dígitos, da direita para a esquerda, do lado
esquerdo da vírgula, e da esquerda para a direita, do lado direito da vírgula, e dar seu
equivalente em hexadecimal. Exemplo:

Converter 11,000011001 2 para hexadecimal:

11,000011001 2 = 11 , 0000 1100 1 2


= 0011 , 0000 1100 1000 2
= 3 , 0 C 8 16
= 3 , 0C8 16
Separando a parte esquerda da vírgula, sempre considerando da direita para a
esquerda, temos 11 e, como temos que agrupar sempre em quatro dígitos, completamos o 11
com dois zeros inseridos à esquerda, portanto teremos 0011. No lado direito da vírgula temos
000011001 e devemos proceder da mesma forma, ou seja, agrupamos em quatro dígitos a
partir da esquerda para a direita; portanto teremos 0000 – 1100 e sobrará um dígito 1, o qual
deverá ser agrupado com três zeros à direita, e, então, teremos 1000. Tendo os agrupamentos
já feitos, então devemos considerar cada grupo binário e convertê-lo para hexadecimal.
Vamos converter outro valor - 101011101- para hexadecimal. Agora não temos mais o
lado fracionário. O agrupamento fica da seguinte forma.

0001 0101 1101


1 5 D

Conforme a regra descrita, agrupamos da direita para a esquerda, os dígitos binários e


completamos com zero o dígito 1, que ficou sozinho. Agora é só converter cada grupo para o
hexadecimal. Portanto teremos o seguinte resultado: 15D16.
Conforme se pode perceber, podemos trabalhar com qualquer base, bastando, para
isso, usar os procedimentos descritos acima e alterar a base para realizar o cálculo.

Aritmética binária
Os processadores realizam vários cálculos aritméticos para resolverem os trabalhos a
eles entregues. Os cálculos aritméticos realizados na base binária são idênticos àqueles usados
na base dez, no entanto não podemos esquecer que, nessa base, temos apenas dois símbolos.

Adição no sistema binário.


A adição no sistema binário segue a seguinte regra:

0+0=0
0+1=1
1+0=1
1 + 1 = 0 e vai 1
Observe que no sistema decimal, 1 + 1 tem como resultado o valor 2. Em binário,
representamos o valor dessa soma como 102 , ou seja, o bit com valor 1 + o bit com valor 1,
conforme demonstrado acima, resulta 0 e vai 1. Sendo assim, temos 102.
Veja abaixo a adição de 112 + 102

Figura 1: Adição de números binários: Idoeta, Capuano, 1985

Conforme se pode observar na figura acima, a soma é feita da mesma forma como se
faz uma adição no sistema decimal, ou seja, primeiro somamos os primeiros termos da direita,
neste caso 1 + 0. Pela regra apresentada, o valor dessa adição tem como resultado o valor 1.
Depois, somamos o valor 1 + 1 e, pela regra apresentada, o resultado dará zero (0) e
vai 1. Este 1 que foi é somado com o próximo dígito, que, neste caso, não há, portanto o
resultado desta operação será o próprio 1 que foi. O resultado final desta operação, como
apresentado na operação, é 1012. Vamos ver outro exemplo mais elaborado.

Figura 2: Adição de números binários: Idoeta, Capuano, 1985

No exemplo acima, temos vários casos em que a soma dos termos tem como resultado
o zero e vai um. Analisando a figura, é possível acompanhar cada “vai um”; basta aplicar as
regras estabelecidas para o caso da adição para cada termo.
Subtração de números binários
A subtração de números binários é semelhante à feita para o sistema de numeração
decimal.

0–0=0
1–1=0
1–0=1
0 – 1 = 1 e “empresta 1”

A figura abaixo ilustra a subtração de números binários. Neste caso, temos que tomar
bastante cuidado para não nos perdermos nos resultados. Cada termo deve ser subtraído e
depois é preciso verificar se foi emprestado o valor 1 para ser considerado no resultado. Por
exemplo, os primeiros termos da direita (0 – 1) foram subtraídos, tendo como resultado o
valor 1, e foi emprestado 1 para o próximo termo. Perceba que este valor emprestado foi
inserido ao lado do próximo termo para ser considerado na subtração. No segundo termo da
direita para a esquerda foi efetuada a subtração ( 0 – 1 ). Pela regra temos como resultado o
valor 1 e é emprestado 1. O resultado ( 1 ) foi subtraído do valor que foi emprestado; sendo
assim temos 1 – 1 = 0. A subtração segue até que o último termo da direita para esquerda
seja subtraído.
Figura 3: Subtração de números binários: Idoeta, Capuano, 1985

Multiplicação de números binários


A multiplicação é idêntica à realizada no sistema decimal.

0x0=0
0x1=0
1x0=0
1x1=1
Vamos analisar o exemplo abaixo.

Figura 4: Multiplicação de números binários: Idoeta, Capuano, 1985

Como se pode perceber, a multiplicação é idêntica à feita no sistema decimal, no


entanto deve ser aplicada a regra da adição ao somar o resultado da multiplicação pelos
termos.
Material Complementar

STALLINGS, W. Arquitetura e Organização de Computadores: Projeto Para o


Desempenho. 5. ed. São Paulo: Prentice Hall, 2004. (Biblioteca Digital)

TANENBAUM, A. S. Organização Estruturada de Computadores. 5 ed. São Paulo.


Pearson Prentice Hall, 2007. (Biblioteca Digital)
Referências

IDOETA I, V.; CAPUANO, F. G. Elementos de Eletrônica Digital. 8. ed. São Paulo: Erica
Editora LTDA. 1985.
STALLINGS, W. Arquitetura e Organização de Computadores: Projeto Para o
Desempenho. 5. ed. Sao Paulo: Prentice Hall, 2004.

REED, D. A Balanced Introduction to Computer Science and Programming.


Creighton University, Prentice Hall. Tradução do capítulo 14. Disponível em
http://professores.faccat.br/assis/davereed/14-DentroDoComputador.html acessado em
20.03.2012.
Anotações

_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
Organização e
Arquitetura de
Computadores
Material Teórico
Função Processamento

Responsável pelo Conteúdo:


Prof. Ms Vagner Silva

Revisão Textual:
Profa Esp. Vera Lidia de Sá Cicaroni
UNIDADE Função Processamento

• Função processamento

• Processadores RISC e CISC

·· Nesta terceira aula, você irá estudar as características da


função processamento. Saber como funciona o processamento
Objetivo de
APRENDIZADO

das informações, ainda que de forma mais básica, facilitará


o desenvolvimento de seu trabalho em qualquer ramo da
computação em que possa atuar.

Nesta terceira aula referente à disciplina que estamos estudando, você irá se aprofundar um
pouco mais nos conceitos relacionados ao processador. Você começará a estudar detalhes
do processamento e também conhecerá a evolução dos processadores. Sabemos que os
processadores evoluem constantemente no sentido de melhorar o desempenho da máquina.
Por último você aprenderá a distinguir um processador com tecnologia CISC de outro com
tecnologia RISC.
Você poderá esclarecer os pontos sobre os quais ainda tenha dúvidas através do fórum de
discussão; é importante que participe inserindo suas dúvidas ou até mesmo respondendo
aos colegas.

5
Unidade: Arquitetura e Organização de Computadores

Contextualização

Os processadores estão se tornando comuns na maioria dos aparelhos eletrônicos. Veja, neste
vídeo, o processador fabricado pela Intel para facilitar a integração entre esses aparelhos e sua
importância nos dias atuais. Vale ressaltar que surgem novas possibilidades para desenvolvimento
de aplicações e de infraestrutura em redes de computadores.

http://olhardigital.uol.com.br/produtos/central_de_videos/dispositivos-inteligentes-a-caminho-da-sua-casa

6
1 - Função processamento

A Unidade Central de processamento (CPU) é


responsável por grande parte das operações de
um computador; ela é composta por milhares de
componentes encapsulados em uma pastilha de silício.
Os primeiros processadores tinham certa limitação em
relação ao processamento dos dados, mas, conforme
a tecnologia foi evoluindo, os processadores também
evoluíram e, atualmente, temos processadores com alta
capacidade de processamento. O primeiro processador
foi projetado pela Intel. Conforme pode ser visto na
figura abaixo, ele tem aparência de um chip comum. Figura 1. Processador 4004

http://historiacomputadoresl.webnode.
pt/servi%C3%A7os/componentes-ess

Depois, foram projetados outros processadores contendo mais componentes internos


sem aumentar o tamanho físico desses componentes. A figura 2 apresenta a evolução dos
processadores Intel e AMD,

O microprocessador 4004 da Intel era composto por 2000 transistores. Como já foi descrito,
ele era limitado em relação a operações e instruções a serem executadas. No início da década
de 80, mais precisamente em 1981, a Intel lançou o processador 8088, o primeiro a ter 16 bits.
Essa característica aumentou a velocidade de processamento, pois esses processadores podiam
receber 16 bits de informações. Fazendo uma análise um pouco mais profunda, trabalhar com
16 bits significa receber duas palavras de 8 bits. Até então os processadores podiam receber
apenas uma palavra de cada vez; com 16 bits passaram a receber duas palavras de uma vez,
ou seja, maior poder de processamento. O 8088 dispunha de 29.000 transistores e trabalhava
com clock de 10 MHz. Um ano depois, em 1982, a Intel lançou o 286 com 139.000 transistores.
Começava, então, a era x86, pois, até o momento, o 8086 era o único da série a ter sido lançado.

Em 1985, a Intel desenvolveu o 386 com 287.000 transistores e 32 bits. Foi o primeiro
microprocessador a executar tarefas múltiplas; operava com clock de 33 MHz. No fim da
década de 80, o 486 foi desenvolvido e oferecido ao mercado com um clock de 100 MHz.
No final da década de 90, a quantidade de transistores passou a ser três vezes maior com
o lançamento do Pentium III.

7
Unidade: Arquitetura e Organização de Computadores

O Pentium, que quebrou a série x86, foi apresentado em 1991 e continha 3 milhões de
transistores. Em 2005, começou a era do multicore com o Intel Pentium D. Começava, a partir daí, a
tecnologia Dual-Core em microprocessadores. Os avanços na tecnologia multicore continuaram
surgindo: os processadores de quatro núcleos Intel Core 2Quad e outros processadores com
mais núcleos em um único componente. Pelo que parece, essa evolução está longe de acabar.

Figura 2: http://www.hardware.com.br/dicas/processadores-iniciantes.html

A evolução dos microprocessadores não está em apenas integrar milhões de componentes


em um chip e aumentar a capacidade de clock. São desenvolvidos alguns meios para que
a velocidade de processamento aumente; um deles foi o desenvolvimento do coprocessador
aritmético. O coprocessador aritmético é um chip, ou parte de um chip, especialmente
desenvolvido para realizar operações aritméticas complicadas. Os microprocessadores 80486 e
Pentium têm um coprocessador interno. Esses coprocessadores aritméticos são especialistas em
resolver cálculos com números decimais; eles conseguem resolver problemas mais rápido que a
unidade Lógica e Aritmética.
A CPU, também conhecida como microprocessador, é encarregada de realizar as atividades
relacionadas com a efetiva execução de uma operação, ou seja, tem a função de processar.
Processar o dado é executar com ele uma ação que produza algum tipo de resultado. Esta é
a atividade fim do sistema de computação; ele existe para processar dados.

8
Entre as tarefas comuns a esta função - processamento - podem ser citadas as que realizam
operações aritméticas, lógicas, movimentação de dados, desvios e operações de entrada e
saída. O diagrama básico de um computador pode ser visto na figura abaixo. Note que há uma
grande ênfase no processador, pois ele, em conjunto com o sistema operacional, é responsável
pelo bom funcionamento do computador.

Figura 3: Diagrama básico do processador

Perceba que a unidade aritmética e a unidade de controle são implementadas dentro da


Unidade Central de Processamento (CPU). Ou seja, dentro do chip há circuitos combinacionais
que desenvolvem as funções relacionadas às operações aritméticas e lógicas e que executam as
instruções pela unidade de controle. Pela figura acima pode-se notar que as setas da unidade
aritmética têm acesso direto à memória principal tanto para escrita quanto para leitura dos dados.
A unidade de controle tem a função de receber instruções, mais precisamente instruções/
dados, da unidade aritmética para decodificá-la e executá-la. Essas instruções/dados são
enviadas pelo registrador de dados. Geralmente essas instruções/dados são endereçamentos
e são usados para posicionar as instruções em algum ponto da memória principal para que
possam ser lidas ou escritas.
A memória principal tem uma função bastante importante nos computadores digitais, pois é
nela que fica armazenado todo e qualquer programa que está sendo executado. Portanto, tudo
que nós vemos na tela, tudo que selecionamos com mouse está contido na memória principal
para ser processado pela CPU. Dessa forma podemos concluir que a CPU faz a comunicação
com a memória principal para capturar os dados ou instruções que nela estão armazenados.
Esse é o conceito de programa armazenado que Von Neumann havia descrito em um de seus
artigos e que é usado como base de todos os computadores digitais desenvolvidos atualmente.

9
Unidade: Arquitetura e Organização de Computadores

Pelo que foi descrito até agora, você já deve ter notado que a CPU faz o controle dos dados que
devem ser lidos ou escritos na memória. Na memória principal, a qual chamamos de memória
RAM, são armazenados dados e instruções: os dados, quando entram na CPU, são direcionados
para a unidade lógica e aritmética; as instruções, quando entram na CPU, são direcionadas
para a unidade de controle. É bom lembrar que os processadores contêm instruções próprias e
limitadas projetadas pelos fabricantes e são elas que são executadas pela unidade de controle.
Esse conceito, sobre dados e instruções, deve estar bem claro, pois iremos usá-lo futuramente.
O diagrama abaixo apresenta alguns componentes da unidade central de processamento
(CPU), mais precisamente chamado de processadores. Vamos, primeiramente, conceituar cada
um dos componentes internos do processador para depois entender a função de cada um deles
de forma integrada.

Figura 4: Diagrama detalhado do processador

UAL: a Unidade lógica e Aritmética tem como função receber dados para uma operação ou
então comparação entre eles. Observe, na figura acima, que em um dos lados há duas entradas
de dados para a UAL e do outro lado, uma saída. Isso significa que serão recebidos dois dados
para uma operação aritmética ou comparação entre eles e o resultado sairá pelo outro lado da
unidade lógica e aritmética.
Registradores (ACC): os dados vindos da memória principal ou os resultados obtidos pelo
processamento na unidade lógica e aritmética podem ser inseridos, temporariamente, nos
registradores. O acumulador (ACC) é um dos principais registradores dentro do processador, pois
toda e qualquer operação é feita em relação a ele. Convém conceituar que esses registradores
nada mais são que memórias de acesso rápido e estão inseridos dentro da unidade central de
processamento para que a velocidade de comunicação entre ele e a unidade lógica e aritmética
tenha melhor desempenho.

10
PC: significa contador de programas. Sua função é gerar endereços de memória para acessar
os dados ou as instruções. Quando ligamos o computador, o contador de programa inicia-se
com o endereço zero para que posicione no primeiro endereço de memória. Nesse endereço,
os computadores são projetados para encontrar a memória FLASH, conhecida como BIOS,
na qual se encontram as primeiras instruções para verificação do hardware e para carregar o
sistema operacional do disco rígido para a memória principal.
MBR: este Registrador de Barramento de Memória tem a função de receber dados ou instruções
que estão armazenados na memória ou de enviar dados ou instruções para a memória. Todos
os dados ou instruções passam por este registrador no momento de leitura ou escrita; ele é a
porta de saída ou de entrada do processador. Portanto, pelo conceito estabelecido, podemos
concluir que, pelo MBR, trafegam dados ou instruções que vêm ou que vão para a memória
principal.
MAR: o Registrador de Endereço de Memória recebe endereçamento tanto do contador de
programa (PC) como também dos registradores de instruções. Sua função é apontar para o
endereço de memória, indicando onde os dados ou instruções serão lidos ou escritos. Uma
instrução pode indicar uma posição de memória. Quando isso ocorre, o decodificador de
instruções envia para o registrador MAR esse endereço; por sua vez, o registrador MAR espelha
esse endereço para o contador de programa e posiciona a memória para que os dados possam
ser lidos ou escritos.
Relógio: o Relógio, como vimos anteriormente, tem a função de manter a sincronia de todos
os componentes que estão dentro da unidade central de processamento. Ele gera sinais digitais
síncronos para que os componentes mantenham, de forma síncrona, a comunicação dos dados.
UC: a Unidade de Controle tem como função receber uma instrução e decodificá-la. O
barramento de controle é ligado aos componentes externos que recebem informações sobre
leitura ou escrita e sobre o dispositivo em que essas ações devem ocorrer. Os dispositivos são
identificados também por um endereço. Ele recebe essas instruções do registrador de instruções.
RI: o Registrador de Instrução recebe as instruções que estão armazenadas na memória.
Sempre que uma instrução é carregada para a unidade central de processamento, ela é
direcionada para este registrador. Sua função é decodificar essas instruções e passar parte dela
para a unidade de controle e a outra parte para o registrador de endereçamento de memória.
Como se pode notar, muitos dos componentes são registradores que têm como função
armazenar, temporariamente, um determinado dado. Esses registradores podem afetar a
velocidade e, consequentemente, o desempenho do processador. Os computadores vendidos
atualmente operam com 32 ou 64 bits. Isso determina o tamanho da palavra com que eles
trabalham; quanto maior a palavra mais dados serão transportados em um ciclo. Portanto, se
todos os outros recursos forem os mesmos em relação ao desempenho, um processador que
usa um registrador que comporte palavras de 16 bits terá um desempenho duas vezes menor
em relação a um processador que usa um registrador que comporte uma palavra de 32 bits.
A tabela abaixo apresenta as características dos processadores durante toda a sua evolução, e,
nela, você poderá verificar dados, como a data de desenvolvimento, quantidade de transistores,
tamanho, velocidade de clock, o tamanho da palavra e quantos milhões de instruções por
segundo caracterizavam os processadores em cada momento.

11
Unidade: Arquitetura e Organização de Computadores

Nome Data Transistores Microns Veloc de Clock Largura de dados MIPS


8080 1974 6.000 6 2 MHz 8 bits 0,64
16 bits
8088 1979 29.000 3 5 MHz 0,33
8 bits
80286 1982 134.000 1,5 6 MHz 16 bits 1
80386 1985 275.000 1,5 16 MHz 32 bits 5
80486 1989 1.200,000 1 25 MHz 32 bits 20
32 bits
Pentium 1993 3.100,00 0,8 60 MHz 100
64 bits
32 bits
Pentium II 1997 7.500,00 0,35 233 MHz 300
64 bits
32 bits
Pentium III 1999 9.500,000 0,25 450 MHz 510
64 bits
32 bits
Pentium 4 2000 42.000,000 0,18 1,5 GHz 1.700
64 bits
Pentium 4 32 bits
2004 125.000,000 0,09 3,6 GHz 7.000
“Prescott” 64 bits
2,8 GHz
Pentium D 2005 230.000,000 90 nm 32 bits
3,2 GHz
1,33
Core2 2006 152.000,000 65 nm 32 bits 26.000
2,33 GHz
Core 2 Duo 2007 820.000,000 45 nm 3 GHz 64 bits 53.000
2,66 GHz
Core i7 2008 731.000,000 45 nm 64 bits 76.000
3,2 GHz

Tabela 1: Microprocessadores Intel – fonte http://www.intel.com/pressroom/kits/quickreffam.htm

2.1 – Como funciona o processamento das informações

Acima, você conheceu a função de cada um dos componentes da unidade central de


processamento. Esses componentes devem trabalhar de forma integrada, cada um executando
as tarefas pelas quais são responsáveis. Mas o que acontece com os dados ou instruções que
circulam pela unidade central de processamento?
Logo que o computador é ligado, o contador de programas (PC) é zerado, ou seja, o endereço
do contador de programa é colocado em zero. Essa informação servirá como primeiro endereço
para acessar uma instrução na memória, conforme descrito acima. Geralmente é no endereço
zero que está a memória ROM com as primeiras instruções que, neste caso, se referem a um
endereço. Sendo assim, o contador de programas envia essa informação (endereço) para o
registrador de endereço (MAR), o qual posiciona-a no endereço zero da memória; neste caso,
para os computadores atuais, esse endereço aponta para a BIOS.

12
Essa memória contém as primeiras instruções de verificação de periféricos e instruções para
carregar o sistema operacional para memória principal. O registrador de endereço não lê as
informações que estão na memória; ele apenas aponta para um determinado endereço, neste
caso, informado pelo contador de programas (PC). Uma vez informado o endereço, o registrador
de dados lerá a informação da primeira posição da memória; essa instrução será carregada e
enviada, através do barramento interno, para o registrador de instrução (RI), pois, na primeira
posição de memória, é conveniente que tenha uma instrução para iniciar todo o processo de
boot. Deve ficar bem claro, até este momento, que todas as instruções seguirão esse fluxo, ou
seja, passarão do registrador de dados para o registrador de instrução, o que ocorrerá caso a
informação lida seja uma instrução. O registrador de instrução analisará essa instrução enviada
a ele. Se essa instrução informar que um determinado dado deve ser lido em outra posição
de memória, parte dessas informações, que neste caso é o endereço, vai para o registrador de
endereço (MAR) e a outra parte da instrução, que será a instrução de leitura, irá para a unidade
de controle. O registrador de endereço irá se posicionar nesse novo endereço informado pela
instrução, e a unidade de controle acionará o circuito de leitura da memória, pois é exatamente
isso que a instrução solicitou. Se já se tem o endereço e a unidade de controle solicitou a leitura
dos dados, novamente o registrador de endereço pegará esse dado, posicionando-o em uma
das entradas da unidade lógica e aritmética. Esse procedimento ocorre milhões de vezes por
segundo na unidade central de processamento: ora é lida uma instrução, ora é lido um dado;
a instrução é enviada para o registrador de instruções (RI) para ser decodificada, os dados são
enviados para unidade lógica e aritmética para serem processados, executando uma operação
aritmética ou comparação. Uma vez processados os dados da unidade lógica e aritmética, será
retornado um resultado, o qual poderá ficar no acumulador ou em um dos registradores. Isso
dependerá da instrução que está sendo executada.
De qualquer forma, o resultado será armazenado na memória principal. Dois fatos podem
ocorrer aí: o resultado sairá da unidade lógica e aritmética e será gravado diretamente na memória
principal através do registrador de dados ou o resultado da unidade lógica e aritmética será
enviado para um registrador para, posteriormente, ser enviado para a memória principal. Todo
esse conjunto tem que trabalhar de forma sincronizada. Os microprocessadores, conforme já
descrito em aulas anteriores, têm um conjunto de instruções reduzidas e são essas instruções que
vão determinar as operações que devem ocorrer dentro da unidade central de processamento.
Qualquer linguagem de programação de alto nível, que tenha vários comandos para serem
aplicados em um determinado programa, quando se apresentar em baixo nível, será convertida
a uma dessas instruções de que o microprocessador dispõe.
Há outro exemplo simples e mais genérico na análise do
processamento dos dados. Conforme Norton (1996), pode-se utilizar
a ideia de um cálculo matemático, neste caso, a multiplicação, para
analisar o fluxo que os dados seguem para se obter o resultado. A
ideia baseia-se no uso de uma calculadora sendo executada na tela
do computador, idêntica à que está sendo apresentada na figura 5.

Figura 5: Calculadora

13
Unidade: Arquitetura e Organização de Computadores

Suponha que a finalidade seja a multiplicação dos números 4 x 46 = e que a unidade de


controle já enviou para a memória o primeiro número, o operador de multiplicação e também
o segundo número. Dessa forma todos os dados para a operação já foram armazenados e, ao
digitar o sinal de igual, o programa enviará uma instrução para a CPU efetuar a multiplicação.
Para cada instrução do programa, a CPU passa por um ciclo, do qual constam as seguintes
etapas:
a. um registrador recebe uma instrução da memória;
b. procura-se o microcódigo correspondente àquela instrução;
c. por último, executa-se o microcódigo.

Considerando o problema da multiplicação, a execução do microcódigo funcionará da


seguinte forma:

a. Carregue o primeiro número (4) para um registrador, neste caso, o registrador ax;
b. carregue o segundo número (46) para o outro registrador, neste caso, o registrador bx;
c. multiplique o valor contido no registrador ax pelo valor contido no registrador bx; o
resultado insira no registrador cx;
d. armazene o valor de cx na memória.

As duas primeiras instruções são muito parecidas. O que diferencia uma da outra é o
registrador no qual serão armazenados os valores: o valor 4 será armazenado no registrador
AX e o registrador BX receberá o valor 46. Ao ler a terceira instrução, a unidade de controle
passa para a Unidade de Lógica e Aritmética a responsabilidade de efetuar a operação de
multiplicação.
Conforme já foi citado, os processadores contêm um conjunto limitado de instruções e, dentre
estas, há muitas que podem ser usadas para realizar a operação de multiplicação. Uma das
técnicas que podem ser usadas na multiplicação entre dois números chama-se deslocamento
de bits, ou seja, basta deslocar os bits para a esquerda na quantidade que se deseja multiplicar.
Vamos analisar como funciona essa técnica com os valores que estamos trabalhando ( 4 x 46 ).
O número 46, representado em binário, equivale a 00101110. Ao se deslocarem uma vez os bits
para a esquerda, temos como resultado o valor 01011100, que, convertido para decimal, tem
como resultado o número 92. Como os bits do número 46 foram deslocados apenas uma vez,
a multiplicação efetuada foi 46 x 2, tendo como resultado o valor 92. Isso significa que, para
obter o resultado da operação 46 x 4, temos que deslocar os bits do número 46 mais uma vez,
portanto ele ficará da seguinte forma 10111000. Convertendo esse valor para o decimal, temos
o número 184, que corresponde ao valor esperado da multiplicação.
O resultado será enviado pela unidade central de processamento para a memória e, finalmente,
ele será enviado para o monitor de vídeo.

14
2 - Processadores RISC e CISC

Os processadores mais comuns encontrados em pequenos computadores são processadores


para computação com um conjunto complexo de instrução – CISC. Eles têm como característica
um conjunto de instruções grandes com centenas de instruções.
Outro tipo de processador foi projetado sob a seguinte teoria: se for um conjunto de instruções
pequenas, então muitas instruções serão repetidas e, consequentemente, serão executadas de
forma mais rápida, permitindo ao processador concluir mais instruções durante um período
de tempo com um custo menor de fabricação, pois serão necessários menos componentes
internos para interpretar as instruções. A este tipo de CPU foi dado o nome de processadores
RISC (ReducedInstruction Set Computing) ou processadores para computação com conjunto
reduzido de instruções.
São exemplos de processadores CISC o 386 e 486, portanto, conforme conceito estabelecido,
esses processadores são capazes de executar várias centenas de instruções complexas diferentes.
Atualmente os processadores são projetados com uma arquitetura híbrida, ou seja, usam o
que tem de melhor a arquitetura RISC e o que tem de melhor a arquitetura CISC. São exemplos
de processadores que utilizam arquitetura híbrida os processadores Pentium II, III e AMD e
também o G4, utilizado nos Macintoshs.

15
Unidade: Arquitetura e Organização de Computadores

Material Complementar

Aqui, disponibilizamos algumas sugestões de leitura para você aprofundar seu conhecimento
sobre o assunto estudado nesta unidade.

STALLINGS, W. Arquitetura e Organização de Computadores: Projeto Para o Desempenho. 5.


ed. São Paulo: Prentice Hall, 2004. (Biblioteca Digital)

TANENBAUM, A. S. Organização Estruturada de Computadores. 5 ed. São Paulo. Pearson


Prentice Hall, 2007. (Biblioteca Digital)

16
Referências

História do processador
http://historiacomputadoresl.webnode.pt/servi%C3%A7os/componentes-essenciais-ao-
funcionamento-de-um-computador-processador/historia-do-processador/.
Acessado em 10.07.2012

Iniciantes: entendendo os processadores


http://www.hardware.com.br/dicas/processadores-iniciantes.html. Acessado em 25.06.2012

MicroprocessorQuickReferenceGuide
http://www.intel.com/pressroom/kits/quickreffam.htm. Acessado em 14.07.2012

NORTON, P. Introdução a Informática. 1 ed, Mackron Books.São Paulo, 1996.

17
Unidade: Arquitetura e Organização de Computadores

Anotações

18
www.cruzeirodosulvirtual.com.br
Campus Liberdade
Rua Galvão Bueno, 868
CEP 01506-000
São Paulo SP Brasil
Tel: (55 11) 3385-3000
Organização e Arquitetura
de computadores
Material Teórico
Unidade de Controle e Clock

Responsável pelo Conteúdo:


Prof. Ms. Vagner Silva

Revisão Textual:
Profª. Vera Lidia de Sá Cicaroni
Unidade Unidade de Controle e Clock

• Unidade de Controle

• O relógio (clock)

• Registrador de Instruções

• Contador e decodificador de Instruções

Nesta quarta aula, você poderá se aprofundar, mais ainda, nos


conceitos relacionados ao processador e começará a estudar
a unidade de controle, que terá algumas de suas funções
Objetivo de
aprendizado

e características detalhadas. Logo após, você aprenderá o


que é e para que serve o clock de um computador. Algumas
características e particularidades desse componente serão
descritas. Você conhecerá também, ao estudar o texto, algumas
instruções assembly e seu significado.

O primeiro material a ser lido encontra-se em Material Didático. Trata-se da contextualização,


na qual você poderá conhecer a técnica usada pela Intel para aumentar o desempenho do
processador.
Logo após, você deverá ler o conteúdo teórico sobre a aula. Nesse documento, você encontrará,
como primeiro assunto, a unidade de controle. Você verá uma descrição mais detalhada sobre
a função da unidade de controle e sobre como funcionam os principais blocos. É importante
que entenda bem como esses blocos se comunicam. Caso não consiga entender em uma
primeira leitura, leia novamente, quantas vezes sejam necessárias para compreender bem.
Estes conceitos são importantes para as demais aulas. Logo após, você estudará como se dá
a sincronização e como as instruções são executadas tendo como referência o relógio (clock).
A explanação abordará o relógio, a velocidade e o grande problema encontrado em relação
ao aumento da taxa de velocidade. Por último você encontrará mais detalhes do registrador
de instruções em relação à decodificação e à execução das instruções.

5
Unidade: Unidade de Controle e Clock

Contextualização

Aumentar a velocidade de processamento é também objetivo das indústrias. No conteúdo


desta aula, você irá estudar a técnica chamada de overclock, que se usa com o objetivo de
aumentar o desempenho do processador.

Explore

Veja, no link abaixo, uma técnica usada pela Intel para aumentar esse desempenho sem prejudicar
a vida útil do processador.
http://informatica.hsw.uol.com.br/arquitetura-processador-nehalem4.htm

6
A unidade de controle tem funções pré-determinadas dentro do processador, as quais são
executadas pelas instruções que são estabelecidas no projeto. Sendo assim, ela tem os circuitos
necessários para acionar a memória ou os dispositivos de entrada e saída e ainda controlar se
os dados serão armazenados ou lidos. Nesta aula você irá estudar, de forma um pouco mais
detalhada, as funções da unidade de controle.

1. Unidade de Controle
A Unidade de Controle (UC) faz parte de um dos blocos do processador; ela é responsável
pela decodificação e execução das instruções, fornecendo os sinais de sincronização adequados
para as diversas partes do processador e do próprio computador. Além das funções citadas
acima, ela contém registradores para armazenamento da Informação Binária (dados, endereços
e instruções).
Ela coordena o computador na execução das instruções armazenadas em um programa. A
unidade de controle contém os circuitos eletrônicos arranjados de forma que possa executar as
instruções da CPU.
A unidade de controle é como um maestro de uma orquestra, pois comanda algumas partes
do sistema. Para isso, o conjunto de instruções, embutido nos circuitos da unidade de controle,
nada mais é que uma lista de todas as operações que a CPU é capaz de executar.
As CPUs, que são fabricadas por empresas diferentes, têm conjuntos de instruções diferentes,
e até mesmo modelos diferentes de CPU fabricados pela mesma empresa podem apresentar
conjuntos de instruções também diferentes.

Quando uma nova CPU é desenvolvida, seu conjunto de instruções tem as mesmas
instruções de sua antecessora e, geralmente, são incluídos mais alguns comandos
novos. Essa estratégia é conhecida como Compatibilidade ascendente.

1.1 Função Controle


Desempenhada pela unidade de Controle, esta função coordena o andamento de todas as
atividades da CPU. A Unidade de Controle (UC) é a responsável pela execução da Função
Controle e é, também, um dos elementos mais complexos da CPU.
Clock IR

Gerador Unidade de Flags


de tempo Controle

Barramento Interno Sistemas Internos


de Controle de Controle
Figura 1: Diagrama da unidade de Controle

7
Unidade: Unidade de Controle e Clock

A imagem apresentada na figura acima refere-se à unidade de controle e, fisicamente,


encontra-se dentro da CPU. Abaixo você estudará as características de cada bloco.
O registrador de instruções (IR), através do processo de busca, recebe as instruções da memória
principal (RAM) e passa-as para a unidade de controle já preparada para ser executada.
A unidade de controle, recebendo essas instruções no formato binário, aciona os circuitos
correspondentes para que a ação seja executada. Dentre as ações temos: acionamento da
escrita na memória ou dispositivo de entrada e saída, acionamento da leitura da memória ou
dispositivo de entrada e saída, e acionamento da memória ou dispositivo de entrada e saída
para qualquer outra atividade que necessite desses componentes.
O Gerador de Tempo, também conhecido como sincronização, conforme pode ser observado
na figura acima, tem como função gerar e enviar para a unidade de controle (UC) a temporização
necessária para a sincronização das operações. Esse bloco toma como base de tempo o relógio
(clock) do sistema, que é a referência de tempo do sistema. O relógio é expresso em valores de
frequência Hertz (Hz) e é largamente utilizado para definir a velocidade da CPU.
Para melhor entendimento, vamos considerar que, a cada ciclo de instrução, a unidade de
controle (UC) deve coordenar a execução de uma instrução completa, que consiste na execução
de uma tarefa básica da CPU (Ex: Incrementar acumulador ACC).

Atenção
Algumas instruções do processador precisam de mais que um ciclo para poderem ser
totalmente executadas.

Cada instrução de máquina é subdividida em um conjunto de operações ainda menores,


denominadas “micro-operações”. A micro-operação é a menor ação que pode ser realizada
pelo processador. Dessa forma, cada ciclo de relógio é dividido pelo Gerador de Tempo em
intervalos de tempo menores, nos quais é realizada a micro-operação.
Exemplo: Micro-operações realizadas em um ciclo de busca:
t0: MAR <- PC
t1: PC <- PC + i
MBR <- MEM(MAR)
t2: IR <- MBR
O pequeno trecho de código acima significa o seguinte: no tempo zero (t0), o contador
de programa (PC) insere, no registrador de endereço (MAR), o seu conteúdo. No tempo um (t1),
o contador de programa é incrementado de um (PC +1), uma informação é solicitada de um
endereço da memória (MEM(MAR)) e inserido no registrador MBR. No tempo (t2) o registrador
MBR insere a instrução no registrador IR.

8
1.2 Tipos de Controle em uma CPU
Como já foi descrito acima, a principal função de uma unidade de controle (UC) é decodificar
uma instrução e sequenciar as micro-operações correspondentes. Cada micro-operação deve ser
previamente definida na unidade de controle, seja através de hardware (Programação Direta no
Hardware) ou de software (Microprogramação). Vamos detalhar um pouco mais cada uma delas.

1.2.1 Controle Programado no Hardware


Na implementação através de Programação Direta no Hardware, a unidade de controle é
implementada através de circuitos digitais combinacionais, de forma que os sinais de controle
são gerados diretamente por hardware.
A principal vantagem deste tipo de implementação é o ganho de desempenho na execução
das instruções, pois elas são executadas diretamente pelo hardware sem a necessidade de
interpretadores e a principal desvantagem está no maior custo, pois todas as instruções devem
ter um circuito que a execute. Outra desvantagem está na inflexibilidade para se fazer qualquer
alteração, pois, por ser implementada diretamente no hardware, fica complexo qualquer tipo
de alteração. Este tipo de controle é utilizado em máquinas RISC, por possuírem um conjunto
de instruções reduzido.

1.2.2 Controle por Microprogramação


No controle por Microprogramação, cada instrução de máquina deve ser decodificada em
uma série de microinstruções menores para ser executada de acordo com um hardware. As
microinstruções constituem um processo prático de definir as micro-operações.
Para fazer isto, a unidade de controle deve possuir, em sua estrutura interna:
• Memória de controle – tipicamente uma ROM, que armazena os códigos das microinstruções;
• MPC – Microcontador de instruções (análogo ao PC);
• MIR – Registrador de microinstrução (análogo ao IR).

O Microprograma é considerado o conjunto de microinstruções necessárias para a realização


de uma instrução de máquina (Firmware).
A cada ciclo de instrução, a unidade de controle deve localizar e executar o microprograma
correspondente à instrução a ser executada. Um problema para executar esses microprogramas
estaria em localizar o início de cada um deles, considerando que temos vários, de forma correta, na
memória de controle. Uma solução é utilizar o próprio valor do OpCode da instrução, ou seja, parte
da instrução, para fazer parte desse endereço para identificar o início da microinstrução. No esquema
abaixo, cada OpCode aponta para um espaço de 4 palavras. No caso de mais microinstruções
serem necessárias, pode-se incluir, nesse espaço, um desvio para o espaço entre os endereços
1000000 e 11111111, reservados às microinstruções excedentes. Nesse espaço poderiam estar
alocados também os microprogramas fundamentais, como o ciclo de busca, por exemplo.

9
Unidade: Unidade de Controle e Clock

OPCODE
Endereço Micromemória 0 0011 00

Figura 2: Pinagem do microprocessador Z80

Conforme apresenta a figura acima, os terminais MREQ, IOREQ, WR e RD pertencem a


funções da unidade de controle, sendo que o MREQ tem a função de enviar um sinal para
habilitar a memória, o IOREQ envia um sinal para habilitar um dispositivo de entrada e saída,
notificando-o de que está pronto para enviar ou receber uma informação, e o terminal WR,
quando acionado, habilita a memória ou o dispositivo de E/S para escrita e o RD habilita a
memória ou o dispositivo de E/S para escrita para leitura. Com esses terminais, é possível ler e
escrever, na memória ou nos dispositivos de entrada e saída, da seguinte forma: ao habilitar o
terminal MREQ e o WR juntos, a unidade de controle está indicando que será feita, na memória,
uma escrita, ou seja, alguma informação será enviada para a memória. Caso os terminais IOREQ
e RD sejam acionados juntos então a unidade de controle está indicando que será efetuada uma
leitura de dados de um dispositivo de entrada ou saída, ou seja, o processador irá receber uma
informação de um dispositivo de Entrada e Saída.
Conforme já descrito até agora, podemos chegar à conclusão de que o computador é
composto por diversos componentes, dentre os quais o processador é o mais importante, pois é
ele que recebe instruções para controlar grande parte dos componentes. Abaixo você irá estudar
como é feito o sincronismo entre esses componentes e como a velocidade de processamento
pode ser afetada. Você irá estudar também algumas instruções em assembly. Essa linguagem
é usada com instruções que ficam bem próximas do hardware, portanto ela permite que o
processamento seja feito mais rápido que uma linguagem de alto nível como Vb.NET, C++,
Java, Python e outras.

10
2. O relógio (clock)
Quando decidimos comprar ou trocar um computador, a primeira coisa em que pensamos
é o desempenho da máquina. Mas será que quanto mais veloz, melhor? Nem sempre. São
muitas variáveis que afetam o desempenho do computador. Ao analisar os componentes de
um computador, deparamo-nos com diversos termos técnicos, como é o caso do Clock. Abaixo
você terá uma descrição sobre esse componente e qual sua função no computador.
Pelos estudos que já realizamos, chegamos à conclusão de que tudo gira em torno do
processador, considerado o “cérebro” do sistema computacional. Esse componente, também
chamado de microprocessador ou CPU (Central Processing Unit), é o responsável por processar
os dados e as instruções. A maneira como essa operação será processada dependerá do
programa, que pode ser desde um editor de textos até mesmo um jogo. Para o processador, o
tipo de aplicativo a ser executado não faz a menor diferença, pois ele apenas obedece às ordens
(chamadas de comandos ou instruções) contidas nos softwares, as quais serão convertidas em
uma ou mais instruções de que o processador dispõe. Portanto qualquer instrução recebida
de um programa de alto nível será interpretada para uma instrução que o processador possa
entender. Essas instruções podem ser desde um simples cálculo matemático chegando até a
dados complexos para a placa de vídeo, por exemplo.

2.1 Mais o que é o Clock?


Em um sistema computacional, para que os resultados das execuções das atividades sejam
perfeitas, todas elas irão necessitar de um sincronismo entre as comunicações dos componentes.
O relógio, também conhecido como clock, serve justamente para isso; ele atua como um sinal
digital para sincronizar essas atividades. Ele é gerado por um componente chamado cristal de
quartzo, que vibra alguns milhões de vezes por segundo, com uma precisão quase absoluta,
quando nele é inserida uma voltagem.
Esses sinais gerados pelas vibrações do cristal são inseridos em um
chip que irá digitalizá-los para sincronizar os ciclos dos componentes
da placa-mãe, que sabe que, a cada sinal digital gerado no cristal,
deve gerar um determinado número de ciclos de processamento
das informações. O funcionamento de todos os periféricos, da placa
de vídeo ao disco rígido, é coordenado por esse “relógio”, que faz
com que eles trabalhem de forma sincronizada. Figura 3: Cristal de quartzo

Portanto, a cada pulso de clock, os dispositivos executam suas atividades, param e vão para
o próximo ciclo de forma sincronizada. Tecnicamente falando, o pulso gerado pelo cristal, após
passar por um chip, é uma onda quadrada passando de “0” a “1” a uma taxa fixa, em que
o início de cada ciclo é quando o sinal passa de “0” a “1”. A unidade de medida usada para
determinar a velocidade de vibração do quartzo é dada em Hertz (Hz), que significa o número
de pulsos que o quartzo vibra por segundo. Portanto, um processador de 100 MHz indica que,
em um segundo, há 100 milhões de pulsos de clock.

11
Unidade: Unidade de Controle e Clock

001 010 101 011 100 111 100 101


Dentro do processador, todas as instruções
precisam de um determinado número de ciclos
para serem executadas. O processador conhece
quantos pulsos cada instrução vai requerer, pois
ele tem uma tabela em que estão registrados todos
os tipos de instruções suportados por ele. Portanto,
se há duas instruções para execução e a primeira
A1 A2 A3 A4 A5 A6 A7 A8
vai levar sete ciclos de clock, a segunda iniciará,
Figura 4: Sinal digital automaticamente, no oitavo pulso de clock.

É lógico que essa é uma explicação para fins didáticos, tomando como exemplo apenas
uma unidade de execução sobre o funcionamento do processador, pois os processadores
atuais possuem mais que um núcleo trabalhando em paralelo, capazes de executar várias
tarefas em paralelo e muitas instruções necessitam de mais que um ciclo de clock para que
sejam totalmente executadas.

É importante ressaltar que cada processador lançado no mercado tem um projeto


diferente e conta com características que determinam seu desempenho.

No caso de dois chips completamente idênticos, o que estiver rodando


a uma taxa de clock mais alta, teoricamente, será o mais rápido. Nesse caso,
com uma taxa mais alta, o tempo entre cada ciclo será menor, e as tarefas serão
desempenhadas em menos tempo, resultando em uma execução maior de
informações por segundo.

2.2 Multiplicação de Clock


Podemos notar que as velocidades de clock dos computadores estão aumentando, mas
essa evolução da velocidade passou por algumas restrições. Como os processadores atuais
atingem frequências mais elevadas, muito superiores às frequências das placas-mãe, os
fabricantes de chips começaram a usar um novo conceito chamado multiplicação de clock. O
objetivo desta técnica é evitar que os processadores fiquem limitados à frequência da placa-
mãe e, para que isso fosse possível, foram desenvolvidos e implementados os conceitos de
clock interno e o clock externo.
Dentro de qualquer computador, os dados são transmitidos e gerenciados na forma de sinais
digitais. Para que você tenha uma ideia, o processador é pequeno, mede em torno de 1,5
centímetros quadrados. A placa-mãe, por sua vez, é muito maior que isso, com várias trilhas
(ou caminhos). Essas trilhas são fios, geralmente colocados em paralelo para conectarem vários
componentes do computador. O problema é que, com taxas de clock muito altas, esses fios
começam a funcionar como antenas interferindo um ao outro.

12
Como a velocidade está restrita à placa-mãe, pelos motivos descritos acima, a frequência do
processador não é fixada. Ela pode ser maior ou menor do que o especificado pelos fabricantes;
isto depende de como a placa-mãe está configurada e é, neste ponto, que algumas pessoas,
com conhecimentos mais avançados, costumam alterar as velocidades de vibração do quartzo,
implementando o que chamamos de overclocks, o que faz com que o processador trabalhe com
taxas superiores às recomendadas pelos fabricantes.

Desde o desenvolvimento dos computadores 486 até os dias atuais, os processadores usam
o clock externo para transferir dados para a memória RAM e dispositivos de entrada e saída. É
usado um chip controlador na placa-mãe, chamado de “ponte norte”, que tem a finalidade de
adequar a velocidade entre diferentes barramentos da placa-mãe. Por exemplo, em um Pentium
4 de 3 GHz, a velocidade de 3 GHz refere-se ao clock interno do processador, que é obtido
quando multiplicamos por 15 seu clock externo de 200 MHz.

200 MHz 3,4 GHz


(800 MHz QDR) 200 MHz 17

Barramento
Chipset Local Processador
(ponte Norte)
Figura 5: Chipset controlador de velocidade

Por terem valores de velocidade muito distintos, diversas técnicas são usadas para minimizar
o impacto da diferença de clock interno e externo. Uma delas é o uso de quantidade maior
de memória cache dentro do processador. Outra técnica, considerada mais comum, é fazer
a transferência de mais de uma informação por pulso de clock. Tanto os processadores AMD
como os processadores da Intel, que são os fabricantes mais conhecidos de chips, usam esse
tipo de recurso. Os processadores da AMD transferem dois dados por ciclo de clock e os da
Intel, quatro dados por ciclo de clock.

Com a transferência de dois dados por ciclo, considerando um clock externo de 100 MHz,
podemos concluir que, na verdade, o processador está trabalhando a uma velocidade de 200
MHz, ou seja, o dobro da velocidade. Como podemos ver, não é somente o clock que influencia
o desempenho do computador.

Pense
Atualmente, o recurso de multiplicação de clock é indispensável, pois sem ele seria impossível
desenvolver processadores muito rápidos, já que não é possível aumentar a frequência das placas-
mãe e dos demais periféricos na mesma proporção do aumento do clock dos processadores.

13
Unidade: Unidade de Controle e Clock

3. Registrador de Instruções

Mesmo os microprocessadores mais simples e para uso específico têm um conjunto de


instruções que determinará como serão tratadas as informações passadas a eles. As instruções
são executadas de acordo com bits padrões e circuitos combinacionais determinados para cada
microprocessador; cada instrução tem um significado diferente e, antes que sejam decifradas,
elas são armazenadas em um registrador chamado registrador de instrução (RI). Nós, seres
humanos, não somos rápidos o suficiente para compreender com clareza uma instrução em
forma de bits, portanto, ao longo do tempo, para facilitar o entendimento de um programa em
bits, foi desenvolvida a linguagem Assembly. Há alguns programas que convertem a linguagem
assembly em 0 e 1´s correspondente às instruções de um microprocessador. Abaixo encontram-
se algumas instruções em Assembly.

Assembly Descrição

LOADA mem Carrega para o registrador A o endereço de memória

LOADB mem Carrega para o registrador B o endereço de memória.

CONB con Coloca um valor constante no registrador B

SAVEB Mem Salva registrador B do endereço de memória

SAVEC Mem Salva registrador de endereço de memória C

ADD Adiciona A e B e armazena o resultado em C

SUB Subtrai A e B e armazena o resultado em C

MUL Multiplica A e B e armazena o resultado em C

DIV Divide A e B e armazena o resultado em C

COM Compara A e B e armazena o resultado no FLAG

JUMP addr Vai para um endereço

JEQ addr Salta, se há igualdade, para o endereço

JNEQ addr Salta, se não for igual, para o endereço

JG addr Salta, se for maior que, para o endereço

JGE addr Salta, se for igual ou superior, para o endereço

JL addr Salta, se for menor, para o endereço

JLE addr Salta, se for igual ou inferior, para o endereço

STOP Para a execução

14
4. Contador e decodificador de Instruções.
As instruções a serem executadas por um microprocessador estão em forma de códigos de
instruções. Essas instruções devem ser processadas de forma correta e na sequência lógica
correta e, para que isso seja possível, deve haver um controle preciso sobre essas instruções. A
sequência lógica é feita de acordo com o que foi estabelecido nos programas desenvolvidos por
nós, sejam eles em qualquer linguagem de programação. A unidade de controle é a responsável
pelo controle da sequência de eventos necessários para a execução das instruções, ou seja, de
acordo com a definição feita na programação, esta irá auxiliar a execução das instruções. Cada
instrução é executada de acordo com o clock, conforme já explanado acima.
O contador de programas indica onde o próximo byte de instrução está localizado na
memória. Uma instrução recebida da memória pode alterar o contador de programa para que
outra posição da memória seja lida ou escrita. O sincronismo do contador de programas também
está relacionado ao relógio (Clock) e pode indicar que uma ou mais instruções foram carregadas
da memória para o microprocessador.
O microprocessador utiliza o registrador de instruções para armazenar as últimas instruções
obtidas da memória. O primeiro byte de uma instrução é passado para o decodificador de
instruções, que tem a função de interpretá-las para determinar qual operação deve ser efetuada
com os dados.

ADD
8-Bit
SUB
Instruction Instruction Instruction
IN Memory
Decoder Register
OUT
MOV

Program Counter
Pulses Reset
16-Bit Address
Memory Address 16-Bit Address
Register

Figura 6: Diagrama do registrador de instruções

Qualquer linguagem de programação de alto nível tem seu programa traduzido para uma das
instruções que o processador pode interpretar. Por esse motivo é que colocamos o interpretador
e compiladores como influenciadores no desempenho da máquina, pois, se o programa estivesse
desenvolvido em linguagem de máquina, não haveria a necessidade de interpretá-los. Como
exemplo, entre as operações decodificadas, estão as que foram descritas acima.

15
Unidade: Unidade de Controle e Clock

A unidade de controle tem um papel fundamental na execução das instruções dos


processadores; ela tem circuitos específicos para acionar a memória e os dispositivos de
entrada e saída. A grande maioria dos códigos de operações (OPCODES) passa para ser
decodificada por ela. De acordo com as instruções que chegam até a unidade de controle,
uma ação é executada.

16
Material Complementar

Para saber mais procure os livros abaixo


STALLINGS, W. Arquitetura e Organizacao de Computadores: Projeto Para o
Desempenho. 5. ed. Sao Paulo: Prentice Hall, 2004. (Biblioteca Digital)
TANENBAUM, A. S. Organização Estruturada de Computadores. 5 ed. São Paulo:
Pearson Prentice Hall, 2007. (Biblioteca Digital)

17
Unidade: Unidade de Controle e Clock

Referências
STALLINGS, W. Arquitetura e Organização de Computadores: Projeto Para o Desempenho. 5.
ed. Sao Paulo: Prentice Hall, 2004.

B. Marshall. Como Funcionam os Microprocessadores. Disponível em http://computer.


howstuffworks.com/microprocessor4.htm Acessado em 04.08.2012.

18
Anotações

19
www.cruzeirodosulvirtual.com.br
Campus Liberdade
Rua Galvão Bueno, 868
CEP 01506-000
São Paulo SP Brasil
Tel: (55 11) 3385-3000
Organização e Arquitetura
de Computadores
Material teórico
Memória e Dispositivos de E/S

Responsável pelo Conteúdo:


Prof. Ms. Vagner Silva

Revisão Textual:
Profª. Dra. Maria Isabel Andrade Sousa Moniz
Memória e Dispositivos de E/S

• Memórias

• Dispositivos de Entrada e Saída

Nesta unidade, você irá estudar sobre os meios de


armazenamento primário e secundário, além de conhecer
características básicas de alguns dispositivos de entrada e saída. Os
trabalhos que desenvolvemos devem ficar armazenados em algum
dispositivo para que possamos utilizá-los. Você irá aprender que estes
dispositivos são chamados de memória primária (ou memória RAM) e
Aprendizado

memória secundária. Todas as informações que estão na memória


Objetivo de

RAM são apagadas assim que o computador é desligado, por este


motivo foram desenvolvidos os dispositivos secundários.
Nesta quinta aula, você irá estudar sobre os vários dispositivos
para armazenamento primário e secundário disponíveis, irá entender
como são construídos e como a evolução da tecnologia nos permite
gravar mais informações sem aumentar o tamanho destes dispositivos.
Você encontrará também informações sobre alguns dispositivos de
entrada e saída.

Nesta quinta e última aula você irá estudar sobre os dispositivos de armazenamento,
principalmente os vários tipos de memória RAM e memórias secundárias, além de uma
introdução básica aos dispositivos de entrada e saída.

O primeiramente deve-se ler a contextualização, e nela você irá conhecer algumas


técnicas para melhorar o desempenho do seu computador sem ter que investir em hardware.

5
Unidade: Memória e Dispositivos de E/S

Logo em seguida, você deverá ler o conteúdo da aula, você encontrará, como primeiro
assunto, detalhes da memória RAM. Hoje há vários tipos de memórias e você irá conhecer
quais as diferenças entre elas. Além disto, poderá verificar alguns procedimentos executados
pelo computador em relação à memória que prejudicam seu desempenho. Seguindo o texto,
você estudará também características das memórias secundárias. Há vários modelos de
memória secundária e nela armazenamos nossos trabalhos para poder usá-los futuramente.
Houve uma evolução significativa nas memórias secundárias e você poderá conhecer algumas
delas. Além destes assuntos, você irá estudar sobre dispositivos de entrada e saída.

Todo o conteúdo deve ser lido com bastante atenção e deve ser compreendido. Desta
forma, você estará apto a prosseguir com as atividades que serão propostas.

Após estudar o texto, você deverá analisar a apresentação narrada. Nele você poderá
estudar os pontos relevantes do assunto desta quinta aula.

Com estes conceitos já desenvolvidos, você estará pronto para participar do fórum e
das atividades.

Participe do fórum de discussão, poste suas dúvidas para que possamos esclarecê-las.

Vamos iniciar?

6
Contextualização

A velocidade de processamento dos trabalhos submetidos ao processador depende


também de como a memória está sendo usada. Se a memória RAM estiver com quase toda a
capacidade sendo usada, então você terá problemas. E se a memória secundária também
estiver com sua capacidade quase que tomada, então também você terá problemas de
desempenho. Veja no link abaixo como fazer para deixar o seu computador com um
desempenho aceitável sem ter que investir em hardware.

http://windows.microsoft.com/pt-BR/windows7/Optimize-Windows-7-for-better-performance

7
Unidade: Memória e Dispositivos de E/S

1. Memórias

Numa breve definição, memória é um dispositivo capaz de armazenar informações e,


quando solicitado, fornecê-las. A memória eletrônica começou a ser viabilizada a partir da
ideia de programa armazenado, elaborada por Von Neumann. Até então, havia a
possibilidade de armazenamento das informações em dispositivos que não eram eletrônicos,
como fita de papel.

Na década de 40, algumas iniciativas em busca de formas de armazenamento digital


foram feitas, porém algumas delas foram desenvolvidas para uso específico, como o
computador eletrônico digital projetado pelo professor John Vincent Atanasoff da
Universidade de Iowa nos EUA. Este computador utilizava memória de varredura mecânica,
usando capacitores com cilindros rotativos que continham contatos elétricos interligados por
capacitores de papel.

Figura 1: Computador ABC. Fonte: en.wikimedia.org.

O ENIAC, um dos primeiros computadores digitais, já usava o conceito de memória.


No entanto, sua programação ainda tinha algumas restrições, pois era feita através de uma
central de comutação, muito parecida com uma mesa telefônica. Isto tornava a programação
muito lenta. Era necessário que a programação pudesse ser feita de forma eletrônica também.
8
Para armazenamento das informações, o ENIAC usava válvulas, componente que tem
um tamanho considerável em relação aos componentes utilizados atualmente, por este motivo
que o ENIAC ocupava grande espaço para comportar sua estrutura.

Figura 2: Parte da estrutura do ENIAC. Fonte: en.wikimedia.org.

O UNIVAC começou a inovar a forma de armazenar as informações. Utilizava uma


memória de ferrite, que ainda era uma forma rudimentar de armazenar informações. Esta
memória tinha 1024 bits e conseguia armazenar 128 Bytes de informação, muito pouco para
os dias atuais.

Na década de 70, a Intel lançou o primeiro chip DRAM (Dynamic Random Access
Memory ) que veio substituir a memória de ferrite. Este chip foi usado no computador HP
9800. Atualmente, o acesso à memória de forma aleatória, conhecida como memória RAM,
ainda é largamente usada no armazenamento de informações que estão sendo executadas. As
memórias evoluíram e tornaram-se cada vez menores. Alguns problemas ainda são
encontrados, como velocidade de acesso e resposta, no entanto as pesquisas continuam no
sentido de melhorar estas características.

Vamos estudar vários dispositivos de armazenamento, ver como eles funcionam e


conhecer suas características.

9
Unidade: Memória e Dispositivos de E/S

Memória RAM

A memória RAM é basicamente formada por conjuntos de transistores combinados que


acabam formando uma estrutura chamada flip flops. Este tipo de memória tem como
característica a vantagem de ser lida e escrita pela CPU continuamente, no entanto, quando a
máquina é desligada, perde suas informações.

A memória DRAM (Memória de Acesso Aleatório Dinâmico) é composta por um


transistor e um capacitor conectados formando uma célula de memória capaz de armazenar
um bit de dado. O capacitor é um componente que tem como característica manter, mesmo
que seja por milésimos de segundos, a informação desejada. Se não houver uma atualização
(à qual chamamos de refresh), o dado é perdido. Para evitar que as informações sejam
perdidas, o controlador de memória ou a própria CPU devem carregar todos os capacitores
mantendo a informação armazenada. Esta técnica acontece várias vezes por segundo, neste
tipo de memória, e tem como agravante o processo para manter estas informações
armazenadas, o que acaba tornando a memória lenta.

Figura 3: Representação de células em uma memória DRAM.


Fonte: http://blogdjau.blogspot.com.br/2011_02_01_archive.html

Na figura acima, podemos observar que cada intersecção entre linhas e colunas tem
uma célula de memória composta um por um transistor e um capacitor. A intersecção entre
linha e coluna é ativada para representar o bit 1 ou desativada para representar o bit 0. Cada
célula é definida por um endereço que se dá por esta intersecção.

A memória RAM estática usa uma técnica totalmente diferente da memória dinâmica.
Ela é construída de maneira que um conjunto de quatro ou seis transistores, montados de
forma combinacional (FLIP FLOPS), represente uma célula para armazenar uma informação.
10
Neste tipo de técnica, não há necessidade de refrescamento da memória, pois o conjunto de
transistores mantem a informação sempre ativa, além de ser significativamente mais rápida
que a RAM dinâmica. Uma desvantagem deste tipo de técnica fica por conta do tamanho do
componente (chip) para armazenar as informações. Isto se deve à quantidade de transistores
usados para compor uma célula. Como visto acima, temos que ter de quatro a seis transistores
para formar uma célula com capacidade de armazenar apenas um bit.

Por ser mais rápida, a memória RAM estática é usada como memória cache,
geralmente implementada dentro dos processadores, e a memória RAM dinâmica é usada
como memória RAM, mais conhecida como memória DRAM.

Além da SRAM (memória estática) e da DRAM (memória dinâmica), há outros


modelos de memória RAM, cada um com uma característica diferente, conforme pode ser
observado abaixo.

 FPM DRAM (Fast Page Mode ou memória RAM de modo de paginação rápida): usa a
mesma técnica de armazenamento da memória dinâmica, no entanto evolui na forma
de leitura e escrita na memória. Ela parte do princípio de que a maioria das
informações é gravada de forma sequencial na memória, com isto é possível trabalhar
na forma de enviar o endereçamento para a leitura das informações.
 EDO DRAM (Extended Data-Out ou memória RAM de saída estendida): segue a
técnica usada na FPM RAM, porém não aguarda toda a leitura de um bit para começar
a ler o próximo. Com esta técnica é possível aumentar o desempenho em até 5% em
relação à memória FPM DRAM.
 SDRAM (Synchronous DRAM ou memória DRAM síncrona): também tem como
princípio que os dados são colocados sequencialmente na memória, sendo assim é
posicionado na linha e movido rapidamente pela coluna para obter as informações. O
sincronismo refere-se ao uso do mesmo ciclo de clock da placa mãe para leitura e
escrita.
 DDR SDRAM (Double Data Rate SDRAM ou Memória SDRAM com taxa de
transferência dupla): tomou como base a técnica usada na SDRAM, no entanto
transfere dois dados por pulso de clock. Teoricamente obtém-se o dobro do
desempenho se tomarmos como base a transferência de um dado a cada pulso de
clock.
 RDRAM (Rambus DRAM ou memória RAM dinâmica de Rambus): é uma memória
dinâmica, porém alterou sua arquitetura em relação à DRAM. Ela usa um barramento
interno de alta velocidade batizado como Rambus, opera com taxa de dados de 800
Mhz ou 1.600 MB/s.
 VRAM (Vídeo RAM): é uma memória usada em adaptadores de vídeo ou aceleradores
3D. Este tipo de memória tem duas portas (multiporta) e isto acelera a gravação e
leitura, pois simultaneamente pode ser acessada pela CPU e pelo processador gráfico.

11
Unidade: Memória e Dispositivos de E/S

A memória RAM é muito importante no conjunto da arquitetura de computadores. Ela


armazena todos os programas e dados que serão executados pelo processador, no entanto é
uma memória volátil, ou seja, desligando o computador as informações serão perdidas. Esta
característica exige que a maioria das informações processadas seja gravada em um tipo de
memória não volátil para uso futuro (veremos alguns exemplos mais abaixo), no entanto
sempre que executamos um programa que não esteja na memória RAM ele deverá ser
buscado na memória não volátil e inserido na memória RAM para que seja executado pelo
processador.

Analisando desta forma, é fácil verificarmos que quanto mais aplicativos abrirmos
simultaneamente, mais memória acaba sendo consumida e se o computador for composto de
pouca memória RAM, então a concorrência pelo seu uso será inevitável. O aplicativo que
queremos executar será carregado para a memória RAM, no entanto algum outro aplicativo
deverá deixar a memória para que este ocupe um espaço. Este controle é feito pelo sistema
operacional, que decide, por algumas técnicas implementadas, qual aplicativo deixará a
memória volátil para que o outro aplicativo ocupe este espaço. Este processo de liberar espaço
na memória RAM para carregar outro aplicativo de uma memória não volátil é chamado de
“swap” e quanto mais swaps ocorrerem, mais lenta ficará a execução dos programas. A
lentidão ocorre porque os itens abaixo devem ser checados:

• Verificar se há espaço na memória RAM;


• Não havendo espaço, analisar qual aplicativo pode deixar a memória RAM para
execução do outro;
• Salvar status das informações e dos aplicativos que irão ser descarregados da
memória RAM em uma memória não volátil;
• Liberar espaço na memória RAM conforme verificação feita;
• Carregar o aplicativo e as informações para a memória RAM.

Os itens descritos acima são controlados pelo sistema operacional e levam um tempo
para serem executados. Dois itens - “salvar status das informações...” e “Carregar o aplicativo
e as informações...” - descritos acima, contribuem ainda mais para a lentidão, pois envolvem
leitura e escrita através do acionamento de partes eletromecânicas. Geralmente os aplicativos
que queremos executar estão gravados em uma memória não volátil, por exemplo, o HD
(Hard Disk) e como veremos mais abaixo, a leitura e escrita nestes dispositivos de entrada e
saída exigem o acionamento de partes mecânicas que contribuem para a lentidão do
conjunto.

12
Na figura abaixo, pode-se verificar a troca de processos entre memória RAM e o HD: a
memória RAM já está cheia e deve ser liberado espaço para que o programa a ser executado
ocupe um espaço. Vale ressaltar que algumas informações sobre o aplicativo que está saindo
da memória RAM, e também as informações, devem ter seu status armazenado em algum
lugar, pois se o usuário voltar ao aplicativo que está ainda em aberto para ele, este
procedimento de swap deve novamente ser feito para trazer, no ponto em que estavam, o
aplicativo e as informações.

Figura 4: Swapping. Fonte: http://ces33.wikidot.com/gerenciamento-de-memoria

1.1 Memória Secundária

Conforme estudado até agora nesta unidade, você pôde perceber que se desligarmos o
computador, as informações que estão armazenadas na memória RAM são perdidas, portanto
temos que gravar os trabalhos que estamos desenvolvendo em algum local onde poderemos
resgatá-los quando for preciso. Para estes casos, as informações são armazenadas em algum
dispositivo de memória secundária.

Existem vários tipos de armazenamento secundário que são divididos em três grupos:
armazenamento magnético, armazenamento óptico e armazenamento usando memória Flash.

13
Unidade: Memória e Dispositivos de E/S

Os principais tipos de armazenamento magnético são:

• Disquetes (pouquíssimo utilizados atualmente);


• Discos Rígidos;
• Fitas magnéticas;

Os principais tipos de armazenamento óptico são:

• CD-ROM
• DVD

O armazenamento em memória Flash usa um chip de memória para gravação.

1.1.1. Armazenamento Magnético

As informações relevantes para nós, seres humanos, devem ser gravadas em


dispositivos para que possamos recuperá-las futuramente. Como já vimos, chamamos estes
dispositivos de memória secundária. Estes dispositivos se diferenciam na forma como os bits
são gravados para posterior resgate. No armazenamento magnético, os dados são gravados de
forma semelhante, mesmo que os dispositivos tenham formatos diferentes. Os meios
magnéticos de armazenamento são cobertos de partículas minúsculas de ferro que, quando
estimuladas por uma corrente elétrica, formam um campo magnético semelhante a um imã.

Conforme apresentado na figura abaixo o cabeçote de leitura e gravação percorre a


superfície com partículas de ferro carregando-as magneticamente quando passa por elas,
portanto no momento de gravação das informações há uma corrente elétrica no cabeçote de
leitura e gravação. Os bits “1” e “0” são representados alterando a direção da corrente
elétrica.

Figura 5: Leitura e Gravação no meio magnético


Fonte: http://palazzo.pro.br/Joomla/pt-BR/homepage/tecnologia/152-disco-magnetico.html

14
Para ler os dados que estão gravados, o cabeçote de leitura e gravação passa pela
superfície sem corrente elétrica, porém como a superfície magnética do meio de
armazenamento tem carga magnética, então ela emite uma pequena corrente que é capturada
pela cabeça de leitura e gravação. Dependendo do sentido da carga magnética, obtêm-se os
bits 1 e 0.
Os disquetes e as fitas magnéticas têm esta característica e foram usados por um
período grande para armazenar informações.

Figura 6: Disquete 31/2. Fonte: toca do tazbugado

O problema com este tipo de armazenamento está no transporte e no local onde serão
guardados, pois não podem ficar expostos próximos a imãs e qualquer situação onde possa
ser criado um campo magnético, como é o caso de transporte em metrô e fios de alta tensão.
Os discos rígidos têm o mesmo princípio de gravação e leitura de um disquete, mas
são diferentes quanto ao material usado: enquanto um disquete usa uma superfície flexível, o
disco rígido, como o próprio nome já define, é construído com uma superfície rígida e com
vários discos (que chamamos também de pratos de metal), que gira sobre um eixo. Os pratos
são revestidos de óxido de ferro e são envoltos por uma caixa selada conforme pode ser visto
na figura 7. Todas estas características ajudam na precisão da leitura e gravação das
informações,

Figura 7: Discos rígidos. Fonte: Projeto idec

15
Unidade: Memória e Dispositivos de E/S

Tanto os disquetes quanto os discos rígidos são organizados na forma de setores e


trilhas, organização que ocorre quando os formatamos. Conforme pode ser observado na
figura 5, cada trilha é composta por vários setores; quando se formata um disco, um conjunto
de trilhas é criado. Cada trilha de um disco é dividida em partes menores, a que chamamos de
setores e cada setor recebe um número de identificação. Desta forma, fica mais fácil a cabeça
leitora se deslocar de uma forma aleatória e não sequencial, como acontece com as fitas
magnéticas. Para aumentar a capacidade de armazenamento, é possível armazenar
informações dos dois lados do disco.

1.1.2 Armazenamento Óptico

Com o passar do tempo, conforme a quantidade de dados foi crescendo, houve a


necessidade de desenvolver meios de armazenamento cada vez mais compactos e com maior
poder de armazenamento. Uma das soluções foi gravar as informações em CD/DVD.
Para gravar dados em CD/DVD usa-se a técnica de armazenamento óptico, que
oferece precisão altíssima através do feixe de luz. Desta forma consegue-se representar um bit
no menor espaço possível, ou seja, em uma área com proporções pequenas podemos gravar
muito mais informações. O laser produz um feixe de luz concentrado, ou seja, toda a energia
da luz é alinhada na mesma direção, permitindo que seja focalizada com uma precisão
máxima uma área muito pequena.
Para entender como os dados são gravados em um CD/DVD precisamos primeiro
entender como eles são desenvolvidos.
Conforme podemos ver na
figura 8, os CDs têm quatro camadas.
A maior parte do material corresponde
ao policarbonato (99%), o restante
(1%) divide-se em uma camada
refletiva, uma de proteção e por
último, a camada que decora o disco,
que se define como etiqueta. A
camada refletora, geralmente
composta de prata, armazena as
informações no CD em forma de
plataforma ou depressão. O ponto que
reflete a luz do sensor de laser é a
plataforma e o ponto que dispersa a
luz é chamado de depressão. Com esta
técnica, os valores binários são
armazenados no CD. Figura 8: Composição de um CD.
Fonte:http://www.tecmundo.com.br/dvd/8778-como-sao-
feitos-os-discos-de-cds-dvds-e-blu-rays-.htm

16
A diferença entre um CD-R e um CD-RW, está em um material a mais, adicionado
entre a camada de policarbonato e a camada protetora, que consiste em uma tinta que
permite que o laser modifique os dados gravados.

A capacidade de armazenamento de uma empresa e até mesmo de um usuário


residencial tem que ser bastante grande, pois a cada dia necessitamos de mais espaço para
armazenar filmes, músicas, dados, imagens e fotos. O mercado nos oferece algumas
alternativas, como o DVD e o Blu-ray. O processo de gravação e leitura são os mesmos
usados pelos CDs, no entanto, como pode ser observado na figura 9, o laser usado tem o
feixe de luz mais fino, possibilitando ler e escrever mais informações em uma área semelhante
à dos CDs.

O problema do armazenamento nestes dispositivos está no tempo de acesso às


informações. Este tempo está relacionado a dois fatores: a velocidade com que o disco gira e
o tempo para levar a cabeça de leitura até a trilha onde se encontram as informações
solicitadas. Por ter partes mecânicas envolvidas em todo o processo, desde a requisição da
informação até a disponibilização dela para o usuário, torna-se lento em relação às
informações que já se encontram na memória RAM.

A evolução não para e novos dispositivos estão sendo projetados para substituir,
gradativamente, os dispositivos que usam partes mecânicas para armazenamento. Atualmente,
principalmente em substituição de HDs, os componentes SSDs (Unidade de Estado Sólido)
estão sendo usados.

Figura 9: Característica CD, DVD e Blu-Ray.


Fonte: http://www.tecmundo.com.br/dvd/8778-como-sao-feitos-os-discos-de-cds-dvds-e-blu-rays-.htm

Estes componentes são conhecidos por memória Flash e já são vendidos no formato de
pen drive. O futuro destes componentes é promissor. Há uma vertente que acredita que em
um futuro próximo, assim que o preço começar a baixar devido à produção em massa, estes
componentes se tornarão comuns em computadores pessoais e servidores de grande porte.

17
Unidade: Memória e Dispositivos de E/S

2. Dispositivos de Entrada e Saída

Introduzir dados do meio externo para processamento em uma máquina ou então ter
acesso a informações processadas por ela é uma das características mais importantes na
interação homem máquina. Os aplicativos e/ou programas têm esta função de interação, no
entanto para que isto seja viabilizado há vários dispositivos que permitem a introdução, ao
quais chamamos de “dispositivos de entrada” e a apresentação destas informações, ao quais
chamamos de “dispositivos de saída”. Como dispositivos de entrada, podemos citar o teclado,
caneta ótica e o mouse, dentre outros. Como dispositivos de saída, temos a impressora, o
monitor, plotter e outros que você irá estudar nesta unidade.

Na arquitetura de um computador há componentes que se encarregam de intermediar


a comunicação do meio externo com o interno e também do meio interno para o meio
externo. Estes componentes têm a função de portas de I/O (Input / Output, ou Entrada e
Saída). Portanto, as portas de I/O são os dispositivos encarregados de estabelecer
comunicação entre o meio interno do qual fazem parte e um dispositivo externo qualquer.
Considerando desta forma, existem I/Os desde os mais elementares, até os que algumas vezes
chegam a ser mais sofisticados do que a própria CPU ao qual estão ligados, que em alguns
casos podem até ter dentro de si outro microprocessador para coordenar o trabalho.

2.1. Tipos de I/O

Podemos, em princípio, usar qualquer método em hardware para retirar ou colocar


informações para processamento. Os métodos mais comuns usados são:

• Comunicação entre equipamentos (Série ou Paralela);


• Comunicação com o usuário (Controle de teclado, displays, vídeo);
• Controle de equipamentos (sensores, motores, conversores);
• Funções especiais (Timers, priorizadores, etc.);

A comunicação serial foi uma das primeiras a serem disponibilizadas nas máquinas
para viabilizar a comunicação com o meio externo. Este tipo de comunicação caracteriza-se
pelo envio dos dados usando um único canal de comunicação. Ou seja, para transmitir uma
palavra de 8 bits, eles devem passar por um componente que irá serializá-los, dispondo cada
bit no tempo para depois efetuar a transmissão. A figura abaixo demonstra a transmissão
serial.

18
Figura 10: Transmissão serial. Fonte: http://pt.kioskea.net/contents/pc/serie.php3

Este tipo de transmissão tem um desempenho menor que a transmissão paralela, pois
os dados devem ser enfileirados para depois serem transmitidos.

A transmissão paralela consiste em enviar todos os 8 bits de forma paralela de uma


única vez. Desta forma, conforme pode ser observado na figura abaixo, não há necessidade
de enfileirar cada bit da palavra para transmiti-los.

Figura 11: Transmissão Paralela. Fonte: http://pt.kioskea.net/contents/pc/serie.php3

Transmitindo desta forma o desempenho é bem melhor, embora o custo deste tipo de
transmissor seja mais elevado que o serial, pois, para uma transmissão serial há apenas um
circuito para transmissão e na transmissão paralela, vários circuitos deverão ser montados,
aumentando assim o custo.

A comunicação com usuários é feita através de dispositivos de saída que convertem os


sinais elétricos em um formato que possamos entender e os dispositivos de entrada convertem
os sinais que entendemos para sinais elétricos. Vamos conhecer o funcionamento de alguns
dispositivos de entrada e depois veremos alguns dispositivos de saída.

2.2. Teclado

Para Pensar

Como bem sabemos, o teclado é um dispositivo de entrada. Sua principal função é converter em sinais
elétricos o que está sendo digitado. Até este ponto nada de novidade. Mas, como funcionam os
teclados?

19
Unidade: Memória e Dispositivos de E/S

O teclado é composto por um controlador ou processador e uma grade de circuitos


(matriz), combinados de forma a representar qualquer tecla que compõe o teclado. Em linhas
gerais, quando uma tecla é pressionada, o controlador recebe um sinal que identifica a tecla
pressionada; de posse desta informação, ele envia uma solicitação de interrupção para o
processador (CPU). O programa ou aplicativo que está sendo utilizado avalia a solicitação que
está armazenada em um buffer para dar a resposta adequada.

Figura 12: Detalhes do esquema técnico de um teclado tipo spectrum.


Fonte: http://www.garrettimus.org/CantinhoSpeccy/print/tecladopc_00.html.

Existem vários tipos de materiais usados para identificar a tecla pressionada, dentre eles
podemos citar:

• Domo de borracha
• Membrana
• Contato metálico
• Elemento de espuma.

2.3. Mouse

A partir do momento que a interface gráfica foi desenvolvida, o mouse passou a ter sua
importância no mundo dos computadores. Os primeiros mouses foram desenvolvidos
utilizando-se de uma técnica a partir de um plano de coordenadas cartesianas (pontos x e y).
Para isto utiliza-se uma bola e duas rodinhas, uma representando o eixo x e outra
representando o eixo y. Quando o mouse é movimentado sobre uma superfície plana, a bola
movimenta as rodinhas e esses movimentos são detectados por sensores que enviam as
informações para o computador na forma de alterações na posição atual do ponteiro ou
cursor.

20
O mouse ótico não tem partes mecânicas e sim um fotodetector que percebe o
movimento efetuado sobre uma plataforma plana e envia as coordenadas para o computador.

2.4. Tela sensível ao toque

Algumas telas atualmente são desenvolvidas para reconhecimento de toque. A ideia é


basicamente a mesma para todas, ou seja, o objetivo é detectar alterações a partir do
momento que há uma intervenção (toque) na superfície. Há vários tipos de circuitos
desenvolvidos para detectar esta alteração a partir do toque, as mais usadas são as que usam
circuito para monitorar as mudanças de estados. Os tablets permitem que seja usado um
sistema de reconhecimento de multitoques. Ou seja, pode-se tocar em dois pontos da tela
para, por exemplo, realizar um zoom ou então reduzir uma imagem ou texto.

2.5. Monitor de vídeo

Há vários dispositivos de saída, sendo os mais importantes o monitor de vídeo, a


impressora e o sistema de som.

O monitor de vídeo, segundo Norton (1996), cria imagens com um tipo especial de
cristal líquido que normalmente é transparente, mas fica opaco quando carregado com
eletricidade.

2.6. Impressoras

A impressora ainda tem função importante no conjunto computacional, pois não foi
totalmente substituída apenas por documentos digitais. Há vários tipos de impressoras, desde
as matriciais, jato de tinta, laser, toner e até impressoras em 3D.

Há vários outros dispositivos de entrada e saída disponíveis para computadores; o que


diferencia um do outro são as interfaces para serem conectadas aos slots e os drivers
desenvolvidos pelos fabricantes para comunicação com o sistema operacional.

21
Unidade: Memória e Dispositivos de E/S

Material Complementar

Para complementar seus estudos recomendo essas duas leitura:

• STALLINGS, W. Arquitetura e organização de computadores: projeto para o


desempenho. 5. ed. São Paulo: Prentice Hall, 2004. (Biblioteca Digital)

• TANENBAUM, A. S. Organização Estruturada de Computadores. 5 ed. São


Paulo: Pearson Prentice Hall, 2007. (Biblioteca Digital)

22
Anotações

_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________

23
Unidade: Memória e Dispositivos de E/S

Referências

A primeira Geração (1940– 1950), disponível em: http://www.fazano.pro.br/port153.html.


Acesso em: 05 set. 2012.

CIRIACO, D. Como são feitos os discos de CDs, DVDs e Blu-rays? Disponível em:
http://www.tecmundo.com.br/dvd/8778-como-sao-feitos-os-discos-de-cds-dvds-e-blu-rays-.htm
24.02.2011. Acesso em: 05 out. 2012.

MUSEU DO COMPUTADOR. História da primeira memória. Disponível em:


http://www.museudocomputador.com.br/encimemo.php. Acesso em: 09 set. 2012.

NORTON, P. Introdução à Informática. São Paulo: Makron Books, 1996.

Partes do Computador. Disponível em:


http://jtrevas.projetoidec.pro.br/informatica/pparte1.htm. Acesso em: 10 set. 2012.

TOCA DO TAZBUGADO. Disponível em:


http://tazbugado.wordpress.com/2011/06/08/marcha-imperial-tocada-por-um-drive-de-
disquete/ . Acesso em 15 set. 2012.

24

Você também pode gostar