Sei sulla pagina 1di 162

ORGANIZAO E ARQUITETURA DE COMPUTADORES

53

ORGANIZAO
E ARQUITETURA
DE COMPUTADORES
Srie Bibliogrfica Unit

Toniclay Andrade Nogueira

Organizao e Arquitetura
de Computadores

Jouberto Ucha de Mendona


Reitor
Amlia Maria Cerqueira Ucha
Vice-Reitora
Jouberto Ucha de Mendona Junior
Pr-Reitoria Administrativa - PROAD
Ihanmarck Damasceno dos Santos
Pr-Reitoria Acadmica - PROAC
Domingos Svio Alcntara Machado
Pr-Reitoria Adjunta de Graduao - PAGR
Temisson Jos dos Santos
Pr-Reitoria Adjunta de Ps-Graduao
e Pesquisa - PAPGP
Gilton Kennedy Sousa Fraga
Pr-Reitoria Adjunta de Assuntos
Comunitrios e Extenso - PAACE
Jane Luci Ornelas Freire
Gerente do Ncleo de Educao a Distncia - Nead
Andrea Karla Ferreira Nunes
Coordenadora Pedaggica de Projetos - Nead
Lucas Cerqueira do Vale
Coordenador de Tecnologias Educacionais - Nead
Equipe de Elaborao e
Produo de Contedos Miditicos:
Alexandre Meneses Chagas - Supervisor
Ancjo Santana Resende - Corretor
Andira Maltas dos Santos Diagramadora
Bruno Costa Pinheiro - Webdesigner
Claudivan da Silva Santana - Diagramador
Edilberto Marcelino da Gama Neto Diagramador
Edivan Santos Guimares - Diagramador
Fbio de Rezende Cardoso - Webdesigner
Geov da Silva Borges Junior - Ilustrador
Mrcia Maria da Silva Santos - Corretora
Matheus Oliveira dos Santos - Ilustrador
Monique Lara Farias Alves - Webdesigner
Pedro Antonio Dantas P. Nou - Webdesigner
Rebecca Wanderley N. Agra Silva - Designer
Rodrigo Otvio Sales Pereira Guedes - Webdesigner
Rodrigo Sangiovanni Lima - Assessor
Walmir Oliveira Santos Jnior - Ilustrador
Redao:
Ncleo de Educao a Distncia - Nead
Av. Murilo Dantas, 300 - Farolndia
Prdio da Reitoria - Sala 40
CEP: 49.032-490 - Aracaju / SE
Tel.: (79) 3218-2186
E-mail: infonead@unit.br
Site: www.ead.unit.br
Impresso:
Grfica Gutemberg
Telefone: (79) 3218-2154
E-mail: grafica@unit.br
Site: www.unit.br

Banco de Imagens:
Shutterstock

N778o

Nogueira, Toniclay Andrade.


Organizao e arquitetura de
computadores. / Toniclay Andrade
Nogueira. Aracaju : UNIT, 2010.
160 p.: il. : 22 cm.
Inclui bibliografia
1. Arquitetura de computador.
2. Organizao de computador. 3.
Informtica. I. Universidade Tiradentes
Educao a Distncia II. Titulo.
CDU : 004.2
Copyright Sociedade de educao Tiradentes.

Apresentao
Prezado(a) estudante,
A modernidade anda cada vez mais atrelada ao tempo,
e a educao no pode ficar para trs. Prova disso so as
nossas disciplinas on-line, que possibilitam a voc estudar
com o maior conforto e comodidade possvel, sem perder a
qualidade do contedo.
Por meio do nosso programa de disciplinas on-line
voc pode ter acesso ao conhecimento de forma rpida,
prtica e eficiente, como deve ser a sua forma de comunicao
e interao com o mundo na modernidade. Fruns on-line,
chats, podcasts, livespace, vdeos, MSN, tudo vlido para
o seu aprendizado.
Mesmo com tantas opes, a Universidade Tiradentes
optou por criar a coleo de livros Srie Bibliogrfica Unit como
mais uma opo de acesso ao conhecimento. Escrita por nossos
professores, a obra contm todo o contedo da disciplina que
voc est cursando na modalidade EAD e representa,
sobretudo, a nossa preocupao em garantir o seu acesso
ao conhecimento, onde quer que voc esteja.

Desejo a voc bom


aprendizado e muito sucesso!

Professor Jouberto Ucha de Mendona


Reitor da Universidade Tiradentes

Sumrio
Parte 1: Arquitetura Computacional . . . . . . . . . . . 11
Tema 01: Introduo arquitetura de computadores . . . . . . . . . . . 13
1.1 Nveis de abstrao do hardware . . . . . . . . . . . . . . . . . . . . 14
1.2 Hardware/Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3 Histria da Arquitetura de Computadores . . . . . . . . . . . . .31
1.4 Histria da Arquitetura de Computadores (4 Gerao
1980, a Famlia Intel e a Famlia Motorola). . . . . . . . . . . 40
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Tema 02: Organizao dos Sistemas de Computao . . . . . . . . . . . .49
2.1 Processadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2 Arquitetura Risc X Cisc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.3 Arquiteturas Paralelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.4 Memria Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Parte 2: Abordagem sobre Organizao e Arquitetura


de Computadores. . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Tema 03: Organizao dos Sistemas Operacionais . . . . . . . . . . . . . .89
3.1 Memria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.2 Entrada e Sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.3 ENTRADA E SADA (teclado, porta paralela, portas
seriais, Interrupes e Acesso direto memria) . . . . . .107
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
Tema 04: A Interface do Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.1 Formatos de Instrues em Linguagem de Mquina . . .124
4.2 Modos de Endereamento . . . . . . . . . . . . . . . . . . . . . . . . .133
4.3 Tipos de Instrues em linguagem de mquina . . . . . . . 141
4.4 Noes de Programao em Assembly . . . . . . . . . . . . . . 149
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Concepo da Disciplina
Ementa
Introduo Arquitetura de Computadores: Nveis de Abstrao do Hardware; Hardware/Software;
Histria da Arquitetura de Computadores; Histria da
Arquitetura de Computadores (4 Gerao 1980, a
Famlia Intel e a Famlia Motorola). Organizao dos
Sistemas de Computao: Processadores; Arquitetura
Risc x Cisc; Arquiteturas Paralelas; Memria Virtual. Introduo Organizao dos Sistemas de Computao:
Memrias; Entrada e Sada; Entrada e Sada (teclado,
porta paralela, portas seriais, Interrupes e Acesso
direto memria); Processo de Montagem de Microcomputadores. A Interface do Hardware: Formatos de
Instrues em Linguagem de Mquina; Modos de Endereamento; Tipos de Instrues em linguagem de
mquina; Noes de Programao em Assembly.

Objetivos:
Geral
Levar ao aluno os conceitos necessrios da Organizao e da Arquitetura dos Computadores, visando obteno do conhecimento necessrio interpretao de seu funcionamento nos requisitos fsicos
e lgicos, bem como a sua aplicao na estruturas de
processamento.

Objetivos Especficos

Nvelar os conceitos bsicos sobre Hardware.

Conhecer os conceitos sobre a estrutura de


funcionamento e as principais partes de um
computador.

Dominar e aplicar os recursos essenciais de


um computador e seus recursos operacionais.

Compreender a importncia do funcionamento dos componentes dos computadores.

Orientao para Estudo


A disciplina prope orient-lo em seus procedimentos de estudo e na produo de trabalhos cientficos, possibilitando que voc desenvolva em seus
trabalhos e pesquisas o rigor mtodolgico e o esprito crtico necessrios ao estudo.
Tendo em vista que a experincia de estudar
a distncia algo novo, importante que voc
observe algumas orientaes:
Cuide do seu tempo de estudo! Defina um
horrio regular para acessar todo o contedo
da sua disciplina disponvel neste material
impresso e no Ambiente Virtual de Aprendizagem (AVA). Organize-se de tal forma para
que voc possa dedicar tempo suficiente para
leitura e reflexo;

Esforce-se para alcanar os objetivos propostos na disciplina;


Utilize-se dos recursos tcnicos e humanos
que esto ao seu dispor para buscar esclarecimentos e para aprofundar as suas reflexes. Estamos nos referindo ao contato
permanente com o professor e com os colegas a partir dos fruns, chats e encontros
presenciais, alm dos recursos disponveis no
Ambiente Virtual de Aprendizagem AVA.
Para que sua trajetria no curso ocorra de forma
tranquila, voc deve realizar as atividades propostas
e estar sempre em contato com o professor, alm de
acessar o AVA.
Para se estudar num curso a distncia deve-se
ter a clareza de que a rea da Educao a Distncia
pauta-se na autonomia, responsabilidade, cooperao e colaborao por parte dos envolvidos, o que
requer uma nova postura do aluno e uma nova forma
de concepo de educao.
Por isso, voc contar com o apoio das equipes
pedaggica e tcnica envolvidas na operacionalizao do curso, alm dos recursos tecnolgicos que
contribuiro na mediao entre voc e o professor.

ARQUITETURA
COMPUTACIONAL
Parte 1

Introduo arquitetura
de computadores

Neste tema veremos uma introduo ao assunto abordado com


alguns conceitos, bem como uma definio clara sobre Hardware e
Software e uma breve histria da evoluo da Arquitetura de Computadores.
A definio para Arquitetura de Computadores ou Organizao
de Computadores o estudo de como projetar as partes de um computador que so visveis aos programadores.

14

Organizao e Arquitetura de Computadores

1.1 Nveis de abstrao do hardware


Para entender uma mquina digital, precisamos ler alguns conceitos.
Primeiramente, temos que definir o que
um computador digital, que uma mquina capaz
de solucionar problemas atravs da execuo de
instrues que lhe so fornecidas. Em consequncia desta definio j podemos definir o que um
programa. Ento, temos que um programa uma
sequncia de instrues que descreve como executar uma determinada tarefa ou tambm podemos
definir como um conjunto de instrues.
As instrues primitivas de um computador
formam uma linguagem que torna possvel a compreenso entre o ser humano e o computador. Esta
linguagem denominada Linguagem de Mquina
e as Instrues de Mquina so instrues que o
computador capaz de reconhecer e executar.
Exemplo de Instrues de Mquina:
Somar cinco nmeros
Verificar se um dos nmeros 1
Mover um dado de uma parte da memria
para outra
Exemplo de Linguagem de Mquina:
000010000100101111110000000000111
111111100000011010010100010000000
100000000000001001010010010101010
000001010101010101010000011110000
010101010101010100101010101010100
100101010101010101111100000110010
000010000100101111110000000000111
111111100000011010010100010000000
000010000100101111110000000000111
111111100000011010010100010000000

Tema 1

| Introduo arquitetura de computadores

As instrues da Linguagem de Mquina devem ser simples, compatveis com o uso da mquina, ser compatvel com o desempenho e ter o
custo e complexidade eletrnica reduzidos, pois a
linguagem de mquina est muito distante de uma
linguagem natural.
A organizao de computadores est dividida em vrias camadas que representam abstraes
do mundo real. A mquina virtual representa uma
imagem de uma mquina que no existe no plano fsico, mas que para funcionar precisa de uma
linguagem definida e que, na maioria das vezes, a
linguagem de mquina tem como caractersticas de
ser simples, mas de difcil utilizao.
No pargrafo anterior vimos que a linguagem
de mquina simples mas de difcil utilizao. Ento, para resolver este problema temos duas maneiras, ambas envolvendo um novo projeto com um
conjunto de instrues de uso mais conveniente
para as pessoas do que instrues embutidas em
mquina, pois, juntas, as novas instrues formam
uma linguagem que chamamos de L2, enquanto
que as instrues que esto embutidas na mquina
chamamos de L1.
Os dois so diferentes na maneira em que o
programa escrito em L2 executado pelo computador, e que o computador pode apenas executar
o programa escrito em linguagem de mquina L1.
O programa executado em L2 consiste em:

Substituir cada instruo nele por uma sequncia equivalente s instrues de L1.

O programa resultante inteiramente


composto de instrues de L1.

15

16

Organizao e Arquitetura de Computadores

O computador executa um novo programa em L1 em vez do programa em L2,


que se denomina Traduo.

O programa executado em L1 consiste em:

Receber os programas escritos em L2


como dados de entrada e efetuar a execuo examinando uma instruo de cada
vez e executar a sequncia equivalente
instruo L1, pois, esta tcnica no requer a execuo de um novo programa
em L1 que se denomina em interpretao
e o programa que executa denomina-se
interpretador.

Uma mquina multinvel: um comutador


que possui mquinas virtuais dispostas em camadas, uma sobre a outra.
Agora veremos as camadas que existem em
computadores atuais.

Tema 1

| Introduo arquitetura de computadores

Computador com 6 nveis: Mtodo pelo qual cada nvel que suportado indicado abaixo do nvel

O nvel 0, ou nvel de Lgica Digital, o hardware verdadeiro da mquina, onde os seus circuitos executam programas em linguagem de mquina de nvel 1.
Existe ainda um nvel mais baixo que o nvel 0,
que seria um nvel da engenharia eltrica intitulado
nvel de dispositivo.
O nvel 1, ou nvel de microprogramao, o
verdadeiro nvel de linguagem de mquina, onde verdadeiramente existe um programa que denominamos
microprograma. Cada mquina de nvel 1 tem um ou
mais microprogramas que so executados nela.

17

18

Organizao e Arquitetura de Computadores

O nvel 2 o nvel de mquina convencional,


que a cada microprograma definido no nvel 1 uma
linguagem que define uma linguagem de nvel 2.
O nvel 3, ou nvel de sistema operacional, um
nvel considerado hbrido, pois a maioria das instrues desta linguagem est tambm no nvel 2. Novas
facilidades do sistema operacional so adicionadas a
cada ano.
O nvel 4 o nvel de linguagem de montagem,
pois uma forma simblica para uma linguagem subjacente. Este nvel contm mtodos para que pessoas
escrevam nos nveis 1,2 e 3. (No confunda ASSEMBLY, que a linguagem de programao do nvel 4,
com ASSEMBLER, que o programa utilizado para
executar os cdigos fontes criados em ASSEMBLY).
O nvel 5 o nvel em linguagem projetada
para ser utilizado por programadores com aplicaes,
com problemas a serem resolvidos. Estas linguagens
so denominadas de linguagens de alto nvel.
Exemplo de linguagem de alto nvel:
BASIC
10 SCREEN 0: CLS : WIDTH 100
20 LOCATE 1, 1: PRINT Programas em Linguagem BASIC
30 Ik$ = INKEY$: IF Ik$ = THEN GOTO
30
40 CLS : END

C
#include <stdio.h>
int main()
{
int a,b,c,soma;
a = 4; b = 6; c = 23;
soma = a + b + c;
printf(soma = %d\n,soma);
}

Tema 1

| Introduo arquitetura de computadores

COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
*
PROCEDURE DIVISION.
PARA-1.
DISPLAY Hello, World!!.
*
STOP RUN.

FORTRAN
$ vi soma.f
C Programa para realizar a soma de 3
valores e imprimir o resultado
program sum
C Declaracao de variaveis
integer a, b, c, soma
C Atribuicao de valores
a = 33
b = 55
c = 34
C Soma das valores
soma = a + b + c
C Impressao do resultado
print*, soma
C Final do programa
stop
end
:wq!
$

O nvel das linguagens de alto nvel representada pela linguagem e pelo compilador, utilizados para facilitar a construo de aplicaes por parte do programa.

19

20

Organizao e Arquitetura de Computadores

Evoluo das Mquinas Multinvel


Em 1940:
Nesta poca as mquinas multinveis possuam dois nveis: lgica digital, ou nvel, e mquina
convencional, e eram de difcil construo e o seu
entendimento de mquina no confivel.
Em 1951:
Nesta poca as mquinas multinvel acrescentaram mais um nvel, passando a ter trs
nveis:microprogramao, lgica digital e mquina
convencional e seu interpretador era embutido e
imutvel e hardware com execuo de microprograsmas de confiabilidade.
Em 1950:
Nesta poca foram acrescentados s mquinas multinveis os montadores e os compiladores.
Em 1960:
Nesta poca as mquinas multinveis chegam
ao nvel de sistema operacional com Sistemas timesharing (tempo compartilhado) e Sistemas batchs
ou em lotes.
Em 1970:
Nesta dcada as mquinas multinveis passam a ter microprogramao e a generalizao da
interpretao.

Tema 1

| Introduo arquitetura de computadores

INDICAO DE LEITURA COMPLEMENTAR


TANENBAUM, Andrew S. Organizao estruturada
de computadores. 3. ed. Rio de Janeiro: Prentice
Hall, 2006.
Em seu livro explica os nveis de abstrao do
Hardware com maior detalhamento no Captulo 1.
MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Nesse livro voc encontrar mais informaes sobre
o assunto visto neste contedo.

PARA REFLETIR
Hardware e software so equivalentes logicamente,
ou seja, qualquer operao efetuada pelo software
poder tambm ser implementada pelo hardware e
qualquer instruo poder ser executada pelo hardware ou ser simulada pelo software. Tente perceber isso em um computador em sua casa ou no laboratrio de informtica. Sendo assim, coloque um
comentrio no frum do AVA sobre essa relao.

21

22

Organizao e Arquitetura de Computadores

1.2 Hardware/Software
Para darmos incio ao tema proposto neste
contedo temos que, primeiramente, definir o que
software, que so os programas. J o hardware,
nada mais do que um conjunto de trs elementos: circuitos eletrnicos, memria e dispositivos
de entrada e sada, ou, tambm podemos afirmar
que hardware composto por objetos tangveis,
placas, cabos, circuitos eletrnicos, fontes de alimentao e leitora de cartes.
Hardware e software so logicamente equivalentes, pois posso embutir qualquer operao executada por software diretor no hardware e vice-versa.
importante destacarmos que tambm existe o
firmware. Esta uma forma intermediria entre o
software e o hardware e consiste no software embutido em dispositivos eletrnicos durante sua fabricao. Notamos a presena de firmware na BIOS,
em leitores ou gravadores de CDs e DVD e tambm
em celulares e iPods, etc.

O firmware o conjunto de instrues operacionais programadas


diretamente no hardware de um equipamento eletrnico.

Quando dizemos que qualquer operao de


Software pode ser implementada em Hardware,
porque a deciso de se colocar certas funes em
hardware e outras em Software baseia-se em alguns
fatores como custo, velocidade e confiabilidade. No
existe tambm uma regra para dizer que X deve ser
implementado em Hardware e Y em Software.

Tema 1

| Introduo arquitetura de computadores

Nos primeiros computadores era bem mais


clara a definio em Hardware e Software, pois o
Hardware executava algumas tarefas simples como
o ADD (somar) e JUMP (saltar para), e tudo mais era
programado.

MICROPROGRAMAO
A microprogramao surgiu em 1951, com o
nvel lgico digital e Isa (circuitos complexos), pelo
pesquisador Maurice WilKes, da Universidade de
Cambridge, no trabalho intitulado como the best
way to design an automatic calculating machine,
onde ele descreve que as instrues ficaram mais
simples, com menos circuitos eletrnicos e em consequncia disso menos falha e mais confiabilidade.
O Hardware da unidade de controle microprogramada responsvel por buscar, uma a uma,
cada micro instruo do micro programa na memria de controle e armazen-las em um registrador
prprio. (MIR REGISTRADOR DE MICROINSTRUO). Uma das vantagens da microprogramao
a possibilidade de alterao do NVEL ISA, escrevendo outro microprograma com a concepo de
FAMLIA DE PROCESSADORES.
Os sinais de controle da CPU codificados na microinstruo que so armazenados na MIR so descodificados pelo hardware da unidade de controle. Com
isso, o hardware da unidade de controle microprogramada e responsvel por executar microinstrues e
aplicar os sinais de controle no caminho de dados da
CPU, de acordo com um tempo adequado.
Atualmente, muitas das operaes programadas no Nvel de mquina convencional passaram a ser
executadas pelo hardware ou microprogramas como:

23

24

Organizao e Arquitetura de Computadores

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Instrues para multiplicar;


Instrues aritmticas;
Instrues aritmticas de dupla preciso;
Instrues para chamar e retornar procedimentos;
Instrues para acelerar laos;
Instrues de contagem;
Instrues para manipular cadeias de caracteres;
Matrizes;
Caractersticas para permitir que os programas fossem movidos na memria;
Relgios para temporizar programas;
Sistemas de interrupo;
Capacidade de parar um programa e iniciar outro utilizando poucas instrues.

Microprogramao: o verdadeiro nvel de mquina.

Tema 1

| Introduo arquitetura de computadores

INVENO DO SISTEMA OPERACIONAL


No incio os sistemas operacionais eram complexos em suas estruturas, por conta de o sistema
operacional no funcionar da mesma forma que um
programa, ou seja, com incio, meio e fim.
Todos os computadores precisam de um sistema operacional. ele que faz a parte fsica do
computador funcionar, pois temos vrios programas com diversas funes como editor de texto,
desenho, calcular e muitos outros.
Os sistemas operacionais so formados por conjuntos de procedimentos nos quais servios so oferecidos aos usurios do sistema e as suas aplicaes.
Os computadores eram operados e gerenciados pelo prprio programador e executava apenas
um programa por vez, que era disponvel apenas
para um usurio. O conjunto de rotina chamado
de Kernel. No Kernel temos algumas funes como
o tratamento de interrupes, a criao e eliminao de processos, sincronizao, escalonamento,
gerenciamento da memria, gerenciamento do sistema de arquivo, as operaes de entrada e sada
e a contabilizao e segurana do sistema.
Existia uma grande preocupao no desenvolvimento de um sistema operacional que era o mecanismo de proteo do sistema de acesso aos seus servios, pois caso uma aplicao tivesse acesso ao ncleo,
poderia danificar e o mesmo ficar inoperante. Quando
uma aplicao precisa de um servio do sistema operacional ele realiza uma chamada e suas rotinas atravs
de Systems Calls que so portas de entrada para o ncleo do sistema operacional. Para cada servio existe
um System Call associado e o sistema operacional tem
o seu prprio conjunto de chamadas.
Os System Calls so divididos em grupos de
funes que so o gerenciamento da memria, ge-

25

26

Organizao e Arquitetura de Computadores

renciamento de entrada e sada e gerenciamento


de processos.
Vamos observar no exemplo abaixo como era
a execuo de um programa em Fortran.
O primeiro passo era reservar horrio para
execuo do programa no computador e ir
com pacotes de cartes perfurados. O segundo passo era ir ao armrio da biblioteca de
programas e pegar o mao rotulado compilador FORTRAN e inserir no leitor e clicar em
START. O terceiro passo era inserir o programa e clicar CONTINUE. O quarto passo tinha
como finalidade a execuo da traduo. O
quinto passo seria executado se no houvesse erro. Assim, caso os erros no acontecessem, o compilador perfurava o carto com o
programa traduzido para linguagem de mquina e o sexto passo era colocar o programa
na leitora junto com suas subrotinas.

Cartes Perfurados

Quando o programa estivesse em execuo


e acontecesse algum erro, o programador teria que
mexer na chave de controle e observar como estavam as luzes da console para tentar resolver o problema. Se tudo estivesse ok, pegava o compilador
FORTRAN e reiniciava o processo.

Tema 1

| Introduo arquitetura de computadores

Exemplo de 1 job para o sistema operacional FMS

Contudo, no final da dcada de 50 foi criado


um sistema que automatizava o trabalho do operador que denominamos de sistema operacional.
Com o objetivo de facilitar a operao do computador o sistema operacional era mantido todo o
tempo no computador, onde os cartes de controle
comandavam as instrues do sistema operacional.

27

28

Organizao e Arquitetura de Computadores

Os sistemas operacionais evoluram incorporando


algumas instrues do ISA e tratamento de Entrada/
Sada. No ano de 1960 criou-se o Sistema operacional compartilhado com vrios usurios. Este ficou
conhecido como sistema de tempo compartilhado.

MICROCDIGOS
A microprogramao se tornou comum em
1970, quando se permitia incluir instrues de mquina via programao. O microcdigo escrito pelo coordenador do processador durante a fase de projeto.
Os microcdigos tem a finalidade do armazenamento de pequenos programas, as microinstrues so realizadas uma a uma, sequenciadas ou
escolhidas por um condicionador. Como exemplo
temos dois condicionadores: o COND e o ADDR na
microinstruo.

Microprogramada genrica

Tema 1

| Introduo arquitetura de computadores

FUNO DOS SISTEMAS OPERACIONAIS


O sistema operacional tem como funo trabalhar de modo cooperativo com funes de administrar os recursos de hardware e auxiliar na execuo de programas que o usurio precisa. O sistema
operacional pode ser dividido a grosso modo em
duas categorias: Programas do sistema so aqueles
que gerenciam as operaes do computador e os
Aplicativos so os que resolvem os problema para
o usurio.

FUNES DO COMPUTADOR
O computador tem como funo bsica a
execuo de um programa bsico, constitudo de
um conjunto de instrues que fica armazenado em
uma memria. com o processador que se realiza o trabalho de executar instrues especficas
no programa. Na sua forma simples o processador
possui duas maneiras para que sejam processadas
as instrues. A primeira, era o processo de se ler
ou busca na memria, sendo uma de cada vez e
a execuo de um programa consiste na repetio
do processo de busca e execuo das instrues, e
que cada instruo poder envolver diversas operaes a depender da natureza da instruo.
Quando temos uma execuo de processamento em uma instruo chamamos de ciclo de
instruo. Neste, temos dois passos: o de ciclo de
busca e o ciclo de execuo. A execuo de um
programa encerrada somente se a mquina for
desligada, se ocorrer algum erro irrecupervel ou se
for executada uma instruo de programa que pare
a operao do computador.

29

30

Organizao e Arquitetura de Computadores

Sistemas operacionais so programas


que controlam os recursos do computador e fornecem a base para o desenvolvimento dos programas e aplicaes

INDICAO DE LEITURA COMPLEMENTAR


COUSTAN, Dave; FRANKLIN, Curt. Como funcionam
os sistemas operacionais. Disponvel em <http://
informatica.hsw.uol.com.br/sistemas-operacionais.
htm> Acessado em 29/09/10.
Nesta pgina da web voc encontra mais informaes de como funcionam os sistemas operacionais.
MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro voc ter mais detalhe sobre a histria
do Hardware/Software, captulo 6.

PARA REFLETIR
O sistema operacional tem como objetivo organizar
e controlar o hardware e o software para que os
dispositivos funcionem corretamente de maneira
flexvel e previsvel. De acordo com o enunciado
acima, verifique em sua mquina quais os hardwares que seu sistema operacional est gerenciando.

Tema 1

| Introduo arquitetura de computadores

1.3 Histria da Arquitetura de Computadores


Iremos estudar a histria da arquitetura de
computadores partindo da sua evoluo com suas
geraes, pois muito do que vamos ver j foi visto
na disciplina Introduo informtica.
A histria do computador comeou quando o
homem sentiu a necessidade de efetuar clculos complexos de maneira automtica. Um dos primeiros elementos com que o homem contou para realizar seus
clculos foi o conjunto de dedos de suas mos, da
veio a palavra digital. Todavia, com a evoluo da humanidade, houve a necessidade de novas invenes.

O BACO

Shutterstcok / dominique landau

Um antigo instrumento que era utilizado para


realizar clculos formado por uma moldura com
bastes dispostos no sentido vertical onde cada
posio significava unidades e dezenas. Provavelmente surgiu h mais de 5.000 anos.

No caso do ingls a palavra abacus utilizada desde antes de 1387 e


foi emprestada do latim abacus.

31

32

Organizao e Arquitetura de Computadores

BASTES DE NAPIER (OSSOS DE NAPIER)


Os Bates de Napier foram inventados pelo escocs
John Napier (1550-1617). Tambm conhecidos como os ossos
de Napier, estes eram tabelas
de multiplicao gravadas em
basto, o que evitava a memorizao da tabuada na qual
trouxe grande auxlio para o
uso de logaritmos, em execuo de operaes aritmticas.
Ossos de Napier

RGUA DE CLCULO

Shutterstock/Graeme Dawes

A rgua de clculo foi criada por Edmund


Gunter (1581-1628), professor de astronomia e matemtica. A rgua de clculo considerada uma
evoluo dos ossos de Napier (bastes de Napier).

Rgua de clculo

Tema 1

| Introduo arquitetura de computadores

33

GERAO ZERO (1642-1945)


Essa gerao, que podemos tambm chamar da
gerao mecnica, foi marcada pela primeira mquina
de calcular, criada pelo cientista francs Blaise Pascal (1623-1662), em cuja homenagem deu-se o nome
da linguagem de programao Pascal. A mquina de calcular desta poca s realizava
duas operaes matemticas: a subtrao e
a soma. J em 1964 o matemtico alemo
Gottfried Wilhelm Von Leibnitz (1646-1716)
construiu uma outra mquina, mas muito parecida com a de Blaise Pascal, que realizava
a subtrao, soma, diviso e a multiplicao. Mquina de Blaise Pascal
Nada mais aconteceu durante 150
anos da construo da mquina de Leibniz.
Mas um professor da universidade de Cambridge,
Charles Babbage, inventor do velocmetro, projetou
uma mquina de diferenas, que s realizava soma
e subtrao, mas que servia para calcular tabelas
de nmeros para a navegao naval da poca, calculando algoritmos simples, com o mtodo das diferenas finitas utilizando polinmios. Um aspecto
interessante desta mquina era o seu resultado, Mquina de Leibnitz
que era impresso em uma placa de cobre.
Apesar da mquina de Babbage funcionar bem
ele queria construir uma mquina que executasse
mais de um algoritmo, passando a trabalhar em seu
novo projeto que se chamava mquina analtica. Esta
possua em seus componentes a memria, unidade de computao, unidade de entrada e unidade
de sada. O seu armazenamento consistia em 1000
palavras de 50 dgitos decimais utilizadas para armazenar variveis e resultados, pois a unidade de
computao podia aceitar operandos do armazenamento e retornar o seu resultado ao armazenamento.
O grande avano da mquina analtica era o seu uso
geral, pois ela lia instrues dos cartes perfurados
e as executavas. Uma vez que a mquina analti-

34

Organizao e Arquitetura de Computadores

Univac: primeiro computador vendido


comercialmente

ca era programvel numa linguagem de


montagem simples, ela precisaria de um
software. Ento, para produzir o software,
Babbage contratou uma jovem chamada
Ada Augusta Lovelace. Esta moderna linguagem de programao recebeu o nome
de Ada em homenagem jovem. A mquina analtica possua muitas engrenagens e
mecanismo de tamanha preciso que no
era possvel construir com a tecnologia da
poca, pois suas ideias para a poca eram
bastante avanadas.
Outro grande marco ocorreu nos
anos 30. Um estudante de engenharia construiu uma srie de mquinas de calcular
automticas utilizando rels. O nome dele
era Konrad Zuse, que no tinha conhecido
o trabalho de Babbage, mas suas mquinas
no foram alm devido a sua destruio na
guerra contra Berlim em 1944.
Temos alguns marcos no desenvolvimento do computador digital moderno

8080 da Intel

1834

Mquina analtica

1936

Z1 (primeira mquina calculadora de rels).

1943

COLOSSUS

1946

Mark I

1951

Univac I

1952

IAS

1961

1401 da IBM

1964

360 da IBM.

1970

PDT-11 de DEC

1974

8080 da Intel

1978

VAX da DEC

Tema 1

| Introduo arquitetura de computadores

35

PRIMEIRA GERAO (1945 - 1955)


Esta gerao se caracteriza pela utilizao das
vlvulas e tem como seu primeiro computador o COLOSSUS. Este computador foi criado para se decifrar
cdigos da mquina ENIGMA, que era utilizada pelos
alemes na segunda guerra mundial para passar mensagens cifradas. O COLOSSUS foi o primeiro computador digital eletrnico do mundo e ficou em segredo
por mais de 30 anos.
Depois do COLOSSUS veio o Eniac (Eletronic Numerical Integrator And Computer), que foi construdo
com o intuito de calcular tabelas de direo de tiro para
o exrcito americano. O ENIAC possua 18.000 vlvulas
e 1.500 rels, era onde se conectava um grande nmero
de cabos e soquetes. Tinha 30 toneladas e consumia
140KW e programado com 6 mil interruptores.
Nesta poca Jay Forrester criou a memria de
ncleos magnticos.
John von Neumann, que tinha participado do
projeto do ENIAC, criou a mquina IAS (mquina de
Von Neumann). Ele percebeu que o programa poderia ser representado em forma digital na memria do
computador com seus dados e observou tambm que
a aritmtica decimal utilizada pelo ENIAC era representada por 10 vlvulas e que poderia ser substituda
por uma aritmtica binria paralela. Em 1950 uma pequena empresa
surgia na fabricao de mquina
de cartes perfurados, a IBM, que
tambm dominou o mercado da
poca com mquinas cientficas.
A mquina de Von Neumann possua cinco partes bsicas: a memria, unidade lgicoaritmtica, unidade de controle
de programa e os equipamentos
ENIAC

36

Organizao e Arquitetura de Computadores

Mquina original de Von Neumann

de entrada e sada. A memria consistia em 4096


palavras. Cada palavra possua 40 bits e cada palavra armazenava duas instrues de 20 bits ou um
inteiro de 39 bits com sinal.
Quase na mesma poca em que Von Neumann construa o IAS, pesquisadores do M.I.T tambm construam um computador que, ao contrrio
do IAS o ENIAC e mquinas desse tipo, possuam
comprimentos longos de palavras que visavam ao
clculo numrico pesado.

SEGUNDA GERAO (1955 - 1965)


Esta gerao tem como caractersticas a utilizao dos transistores, que foram inventados por
John Bardeen, Walter Brattain e Willian Shockley.
Estes foram contemplados com o prmio Nobel de
Fsica nos anos 50, pois nesta poca os computadores a vlvulas j estavam obsoletos.
O primeiro computador de transitores foi o TX-0
(Transistorized eXperimental computer). Esse modelo
era meramente experimental, pois a finalidade era me-

Tema 1

| Introduo arquitetura de computadores

37

lhorar a fabricao do TX-2. A DEC


em 1957 construiu uma mquina
parecida com o TX-0 que ficou conhecido como PDP-1, que possua
4K, palavras de 18 bits e um tempo
de ciclo de 5 microssegundos, que
esse era a metade de desempenho
do IBM 7090. Um ponto muito importante da DEC foi a criao do
PDP-8, que era uma mquina de
12 bits, mas muito mais barata que
a verso anterior e que possua
um barramento nico.
Barramento um conjunto
de fios paralelos utilizados para
conectar os componentes de um
O omnibus (barramento nico) do PDP-8
computador.
A IBM construiu uma verso transitorizada: o
IBM 709 e o IBM 7090 e, nos anos seguintes, o 7094
que possua um tempo de ciclo de 2 microssegundos
e 32K palavras de 36 bits de memria de ncleo e,
com isso, marcou o fim das mquinas do tipo ENIAC.

Cronologia da segunda gerao


1960

criao do PDP-1 da DEc

1961

1401 da IBM

1962

7094 da IBM

1963

B500 da Burroughs

1964

IBM 360

1964

6600 da CDC, primeiro computador com


amplo uso de paralelismo internamente

38

Organizao e Arquitetura de Computadores

TERCEIRA GERAO (1965 - 1980)


Esta gerao conhecida como a gerao dos
circuitos integrados, a qual possibilitou a colocao
de vrios transistores em uma nica pastilha e com
isso passou-se fabricao de computadores cada
vez menores. A IBM lanou a srie de computadores System 32, que era baseada em circuitos integrados e projetados tanto para computao cientfica como para o comercial. Este computador tinha
vrias inovaes como uma mesma linguagem de
montagem, com tamanho e potncia crescentes e,
com isso, os clientes j poderiam trocar seus modelos como o 1401 pelo 360, modelo 30 e seu 7094
por um 360 modelo 75. O 360 modelo 75 era um
computador maior e mais rpido.

Circuito Integrado

Uma das inovaes desta gerao foi a multiprogramao que utilizava vrios programas na
memria do computador. O modelo 360, que poderia emular, ou seja, poderia simular outro computador, tambm resolveu o dilema do binrio-paralelo

Tema 1

| Introduo arquitetura de computadores

versus decimal serial. O 360 possua um sistema


operacional OS/360 e sua memria principal era
orientada a byte, ou seja, cada clula de MP que
armazena 8 bits de informao, independente do
tamanho de bits definido para a palavra de dados.

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro voc ter mais detalhe sobre as geraes dos computadores no captulo 1.
ALVES, Carlos Antonio. Introduo aos microprocessadores e microcomputadores. Disponvel em:
<http://www.dee.feis.unesp.br/graduacao/disciplinas/ele1078/teoria/Aula_T1_2008.pdf> Acessado em
29/09/10.
Neste site voc ter condies de verificar de forma
reduzida as geraes de computadores.

PARA REFLETIR
As geraes de computadores foram importantes
para diferenciar a sua evoluo desde as mquinas
analticas at os super computadores atuais. Ento,
observe os computadores em sua volta e tente detectar em que gerao eles estariam.

39

40

Organizao e Arquitetura de Computadores

1.4 Histria da Arquitetura de Computadores


(4 Gerao 1980, a Famlia Intel e a Famlia Motorola).
Iremos estudar a 4 gerao e as famlias de
computadores Intel e Motorola como grande marco
para a histria dos computadores.

QUARTA GERAO (1980 )

Intel 8080

Essa gerao e conhecida como a gerao


dos computadores pessoais e VLSI (integrao em
larga escala, onde se tornou possvel colocar vrias
dezenas de milhares de transistores em uma nica pastilha). Nesta dcada os computadores ficaram menores e com preos mais acessveis e com
isso deu-se incio era do computador pessoal. Os
computadores pessoais vinham em kits que possuam um processador. Nestes kits no vinha nenhum
software. Caso fosse necessrio o prprio usurio
teria que escrev-lo.
Os computadores pessoais eram utilizados diferentemente dos grandes computadores, pois eles eram
utilizados para processamento
de texto, planilhas e vrias outras aplicaes altamente interativas que os grande computadores no realizavam.
Os computadores podem ser divididos em
cinco categorias que se sobrepem. Tais categorias
so determinadas pelo tamanho fsico, pelo desempenho e pela rea de aplicao. Na categoria mais
baixa temos os computadores pessoais, mquinas
de mesa com apenas uma pastilha de processador,
dedicados para um nico usurio.

Tema 1

| Introduo arquitetura de computadores

A Apple e o Apple II foram


dois outros computadores pessoais criados na dcada de 80. Estes
computadores foram projetados por
Steve Jobs e Steve Wozniak, fundadores da Apple.
O supermini era essencialmente um minicomputador muito grande, quase sempre se baseando em
processador de 32 bits, geralmente
equipado com vrios megabytes de
memria.
Os superminis se diferenciavam
dos mainframes pela capacidade de
entrada e sada e nas aplicaes para
quais eram usados, pois um supermini tinha apenas um ou dois discos de
1 gigabyte, j o mainframe poderia ter
100 deles.
Os Computadores inicialmente
vinham com o sistema operacional
MS-DOS, fornecido pela Microsoft,
que j estava trabalhando para um
novo sistema operacional que viesse com interface grfica. A Microsoft
criou o Windows, que rodava em
cima do DOS.

41

Apple I

O Mainframe, o mais poderoso computador


do mundo, quando foi lanado pela IBM.

Nesta poca comeou a surgir


novos computadores com tecnologia RISC (computador com um conjunto reduzido de instrues).

DOS e Windows 3.1

42

Organizao e Arquitetura de Computadores

A FAMLIA INTEL

8088

80286

A Intel foi criada em 1968 para a fabricao


de pastilhas de memria. Nesta poca a Intel era
contactada por fabricantes de calculadoras para
que produzisse uma pastilha para suas calculadoras, bem como por fabricantes de terminais, pois
os mesmos queriam que seus controles estivessem em uma nica pastilha, criando assim as pastilhas 4004 de 4 bits e a 8008 com 8 bits, sendo
estas as primeiras CPUs numa nica pastilha do
mundo. A partir dessas criaes houve um interesse muito grande por pastilhas de memria, ento
a INTEL comeou a desenvolver uma pastilha
que superasse o limite de 16K de memria
do 8008, o que resultou na criao do 8080,
uma CPU de uso geral.
Em 1976 foram lanados pela INTEL
mais dois modelos: o 8085 e o 8080, que
tinham encapsulamento extra de entrada
e sada. Depois dos dois modelos surgiu o
8086, que era uma verdadeira CPU de 16 bits
em uma nica pastilha de memria. Ele foi
projetado para ter uma semelhana com seu
antecessor, mas que no era completamente
compatvel com seu antecessor. Em seguida
veio o modelo 8088, que tinha sua arquitetura igual ao 8086 e que executava os mesmos
programas, porm possua um barramento
de 8 bits ao invs de 16bits, tornando-o mais
lento. Mesmo assim a IBM tornou o 8088
como o IBM-PC original e rapidamente virou
o padro da indstria de computadores pessoais.
Os modelos 80186 e o 80188 foram

Tema 1

| Introduo arquitetura de computadores

os substitutos dos modelos 8086 e 8088. Esses


modelos nunca foram amplamente utilizados. Os
modelos 8086 e 8088 no podiam enderear mais
de 1 megabyte de memria, o que nos anos 80
tornou-se um problema. Sendo assim, a INTEL projetou o modelo 80286, que era uma verso compatvel
com o 8086, mas superior a ela. As instrues eram
iguais aos modelos 8086 e 8088, mas sua memria
era organizada de maneira muito diferente. Esta verso foi utilizada no IBM PC/AT e em seus modelos
intermedirios. O prximo passo da INTEL era criar
uma CPU que verdadeiramente tivesse 32 bits.
O 80386 e o 80286 eram compatveis com os
modelos anteriores. O modelo 80386SX era uma verso especial, pois foi projetada para ser compatvel
com o soquete do 80286 para prover um melhoramento parcial s mquinas 80286 existentes. A verso 80486, mais recente que o 80386, era superior,
mas compatvel com o 80386. Sua principal diferena era a presena de um co-processador de ponto
flutuante, um controlador de memria e uma memria cache de 8K na pastilha. O 80846 era de duas a
quatro vezes mais rpido que os 80386.
A empresa INTEL, atravs de sua famlia de
processadores, representa a evoluo de computadores, pois em uma dcada a empresa saiu de uma
CPU de 4 bits para uma CPU de 32 bits com ganho
de desempenho superior a 1000 bits. Os computadores foram constitudos com as pastilhas da srie
INTEL, bem como o Sistema Operacional MS-DOS
que na poca era executado atravs desses processadores.

43

44

Organizao e Arquitetura de Computadores

Principais momentos da evoluo


da famlia INTEL

1 Ou seja,
reprojetado.

1971

Modelo 4004 (primeiro microprocessador em uma pastilha)

1972

Modelo 8008 (primeiro microprocessador de 8 bits)

1974

Modelo 8080 (primeira CPU de uso geral


em uma pastilha)

1974

Modelo 8085 (8080 reencapsulado1)

1978

Modelo 8086 (primeira CPU de 16 bits


em uma pastilha).

1980

Modelo 8088 (processador utilizado no


IBM-PC)

1982

Modelo 80186 (suporte de entrada e sada em uma pastilha)

1982

Modelo 80286 (endereamento aumentado para 16 megabytes)

1985

Modelo 80386 (CPU de 32 bits em uma


pastilha)

1988

Modelo 80386SX (80386 com barramento de 80286)

1989

Modelo 80486 (verso mais rpida do


80386

1992

Pentium (verso melhorada do 80486)

1995

Pentium PRO ( Verso com cache nvel 2)

Tema 1

| Introduo arquitetura de computadores

A FAMLIA MOTOROLA
A Motorola, uma fbrica de semicondutores e
rival da INTEL, lanou sua verso 6800, que era uma
mquina de 8 bits comparvel ao 8080 da INTEL. Ela
foi muito bem recebida pelas empresas onde era utilizada como controlador embutido em equipamentos
industriais.
Em 1979 a Motorola lanou uma pastilha 68000
totalmente diferente e compatvel com o 6800 e com
o 6809. Ela tinha como ideia ganhar do modelo 8086,
pelo qual ganharia a ateno dos engenheiros. O
68000 na verdade foi uma grande mudana em relao ao passado, pois buscava na memria 16 bits de
cada vez e seus registradores eram vistos pelo programador com 32 bits. O 68000 foi utilizado pela ATARI, MACINTOSH E AMIGA devido a sua ruptura limpa
e seu comprimento de palavra de 32 bits, a qual fez
muito sucesso e deu incio sequncia de pastilhas
Motorola 680X0.
A 68008 foi a segunda pastilha da famlia Motorola. Ela tinha um barramento de dados de 8 bits.
A UNIX comeou a implementar seu sistema operacional no 68008, j o modelo 68012 possua pinos
de endereamento de forma que poderia enderear
2 gigabytes de memria ao invs de 16 megabytes.
Os dois modelos, porm, foram eliminados com o
surgimento do modelo 68020. Com uma pastilha de
32 bits, com um barramento tambm de 32 bits e
instrues de multiplicao e diviso de 32 bits esse
modelo foi um sucesso em estaes de trabalho cientfico e na engenharia.
O 68030 foi o substituto do 68020 e possua
uma unidade de gerenciamento de memria na pastilha. O modelo de pastilha 68040
contm uma CPU, co-processador de pontoflutuante, uma unidade de gerenciamento de
memria e cache na mesma pastilha.
68000

45

46

Organizao e Arquitetura de Computadores

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro voc ter mais detalhe sobre a histria
do Hardware/Software captulo 1.
WORLDLINGO. Famlia de Motorola 68000. Disponvel em <http://www.worldlingo.com/ma/enwiki/pt/
Motorola_68000_family> Acessado em 29/09/10.
Neste site voc encontra informaes sobre a famlia de processadores 68000 da Motorola.

PARA REFLETIR
A INTEL realmente um marco na construo de
pastilhas. Ento, para que possamos refletir, veja em
seu computador qual o processador que ele est
usando e faa um breve comentrio sobre o funcionamento dele com seu professor e publique no AVA.

Tema 1

| Introduo arquitetura de computadores

RESUMO
Voc aprendeu neste primeiro tema sobre a introduo arquitetura de computadores, com nfase
em nveis de abstrao do hardware.
J na segunda parte voc comeou a aumentar seu conhecimento apreendendo sobre hardware e software,
um pouco de microprogramao, bem como a inveno do sistema operacional e sobre os microcdigos.
Na terceira etapa conhecemos a histria da arquitetura de computadores, colocando os pontos mais
importante.
Na quarta etapa demos continuidade histria da
arquitetura, mas j na ltima gerao, quando comeamos a abordar sobre a famlia de processadores
Intel e Motorola.

47

Organizao dos Sistemas


de Computao

Este tema consiste em voc estudar mais a fundo o funcionamento e a estrutura dos processadores, a estrutura RISC X CISC, as arquiteturas paralelas e o paralelismo de instrues e sobre a memria.

50

Organizao e Arquitetura de Computadores

2.1 Processadores
Vimos no tema anterior diversos processadores da famlia INTEL e da MOTOROLA, pois a evoluo dos computadores passa pela evoluo dos
processadores, j que ele considerado como o
crebro do computador.
A figura abaixo mostra uma organizao simples do processador orientado a barramento (CPU).

Organizao de um computador com 1 CPU e 2 i/o

A unidade central de processamento, que


chamamos de CPU, o crebro do computador e
tem como funo executar programas armazenados
na memria principal, buscando suas instrues e
examinado-as, executando uma aps a outra.
O processador um componente que vital para um sistema operacional, pois ele no apenas realiza o processamento, ele tambm controla
todo o funcionamento do sistema que chamamos
de instruo. O processador tem que ser capaz de
realizar inmeras operaes, tais como somar, subtrair, dividir, multiplicar, ser capaz de modificar um
dado de um lado para o outro no armazenamento
e transferir valores para um dispositivo de sada.
As atividade realizadas pela CPU podem ser
dividas em duas grandes categorias: a de processamento e a de funo de controle.

Tema 2 | Organizao dos Sistemas de Computao

A CPU composta de vrias pastas como a


Unidade de Controle (UC), pois responsvel pela
busca de instrues na memria principal e pela
determinao do tipo de cada instruo. Ela envia
ordens de clculo para a Unidade Lgica Aritmtica
(ULA), que indica os valores a processar e os coloca
nos registradores, depois os valores so transferidos
para outras partes que constituem o computador.

Componentes do computador

A Unidade Lgica e Aritmtica (ULA) a responsvel por fazer operaes tais como adies e booleano, que so necessrias para a execuo das instrues. Sua funo a efetiva execuo das instrues.
A unidade lgica trata-se de um aglomerado de circuitos lgicos e componentes eletrnicos que integrados
realizam as operaes aritmticas e lgicas (soma,
subtrao, multiplicao, diviso, AND, OR).
J os registradores so pequenas memrias de
alta velocidade que so usadas para armazenar resultados temporrios e certas informaes de controle
e, por estarem situadas dentro do processador, os
registradores podem ser lidos e escritos a uma velocidade bastante alta e servem tambm como memria
auxiliar para UNIDADE LGICA E ARITMTICA.

51

52

Organizao e Arquitetura de Computadores

O registrador mais importante o Program


Counter (PC), que aponta para a prxima instruo
a ser buscada da memria para ser executada no
processador. O nome contador de programa um
tanto enganador porque ele no tem nada a ver
com a contagem de alguma coisa, mas o termo
universalmente usado. Outro registrador importante o Registrador de Instrues (IR) que armazena
instrues que esto sendo executadas.
Os registradores especiais de estado auxiliam
e complementam a realizao de operaes matemticas indicando a ULA, indicando o seu estado
de vrios elementos referentes operao em si.
Essa operao denominada por alguns fabricantes
como sendo PSW (Palavra de estado do sistema).
No projeto de um processador outros registradores podem ser includos, sejam eles de propsitos especfico ou geral.
O barramento um conjunto de fios paralelos que permitem a transmisso de dados, endereos, sinais de controle e instrues, que pode ser
interno ou externo ao processador.

Barramento

Tema 2 | Organizao dos Sistemas de Computao

A instruo registrador-memria permite que


uma palavra de memria (so unidades de dados
movidas entre a memria e os registradores) seja
armazenada no registrador e vice-versa. J a instruo registrador-registrador opera sobre dois registradores e coloca a sada em outro registrador e
a instruo memria-memria opera as instrues
aritmticas que usam trs operando e todos os
operandos podem estar na memria.
O acumulador (registrador de dados especiais) armazena um resultado de entrada ou de sada na execuo de vrias instrues.
Grupo de instrues:

Instrues aritmticas ADD, SUBTACT,


COMPARE;
Instrues Lgicas AND, OR, NOT;
Instrues de transferncias de dados
LOAD, STORE;
Instrues de desvio BRANCK IF POSITIVE;
Instrues de chamada de subrotina CALL;
Instrues de retorno RET;
Instrues diversas PUSH, WAIT, HALY.

Tipos de categorias de instrues:

registrador memria;
registrador registrador;
memria-memria.

EXECUO DE INSTRUES
Para que um programa possa ser executado
por um computador, ele deve ser constitudo de vrias instrues de mquina e estar armazenado em
clulas na memria principal. A unidade central de

53

54

Organizao e Arquitetura de Computadores

processamento que chamamos de UCP que tem


a responsabilidade de executar as instrues que
esto na memria do computador.
A CPU executa a instruo em uma srie de
pequenos passos.
1. Busca a prxima instruo na memria
para o registradores de instrues (IR).
2. Atualiza o contador de programa para
que ele aponte para a instruo seguinte.
3. Determina o tipo de instruo.
4. Determina os endereos dos dados, se a
instruo usa dados da memria.
5. Busca dados na memria, caso seja necessrio.
6. Executa a instruo.
7. Armazena os resultados em locais apropriados.
8. Volta ao passo um para nova execuo
da prxima instruo.
Essa sequncia que vimos acima referida
como BUSCA-DECODIFICA-EXECUTA. Ela o centro da operao de todos os computadores.
Exemplo de uma Execuo de Instrues:
PROGRAMA:
PRESSIONE A LETRA B DO TECLADO;
ARMAZENE A LETRA B NA MEMRIA;
IMPRIMA A LETRA B NA TELA DO MONITOR
DE VDEO.

Tema 2 | Organizao dos Sistemas de Computao

INSTRUES:
ENTRE COM OS DADOS NA PORTA 1 DE
ENTRADA;
ARMAZENE OS DADOS DA PORTA 1 NA
POSIO DE MEMRIA 200;
SAIA COM OS DADOS PARA A PORTA 10
DE SADA.

Exemplo de uma execuo de instrues

Um conjunto de instrues disponvel ao programador em um nvel chamado de conjunto de


instrues daquele nvel. Em um conjunto de instruo, o nmero de instrues varia de mquina
para mquina e de nvel para nvel.
No nvel de mquina convencional o tamanho
do conjunto de instrues era tipicamente entre as
faixas de 20 a 300. Pois um conjunto numeroso de
instrues no necessariamente melhor que um
pequeno. De fato o oposto tende a ser verdade.
Quando temos um conjunto de instrues numerosas, muitas das vezes as instrues no so gerais.
Um fabricante de processador precisa, antes de
produzir um chip, definir qual linguagem ele ir utilizar e quais instrues seu processador ir executar.

55

56

Organizao e Arquitetura de Computadores

Algumas das vantagens de utilizar um interpretador:


mais fcil corrigir erros de implementao;
mais fcil incorporar novas instrues
em um programa;
O desenvolvimento, realizao de teste e
gerao de documentao de um programa lgico mais simples.
Algumas desvantagens de utilizar um interpretador:
A execuo do programa mais lenta;
O cdigo original sempre ser lido quando for executado;
A estrutura de dados simples;
Sempre necessrio o fornecimento do
programa fonte para o utilizador.
Para que possamos ter um processador com
um potencial de utilizao, temos que analisar alguns itens:
1. O clock tem que ter sua velocidade em
pulsos por segundos com um valor alto.
Quando temos um processador com um
clock alto o aquecimento maior.
2. Quantidade de registradores, ou seja,
quanto mais registradores melhor.
3. Velocidade do barramento.
4. Quantidade de memria cache.
5. Quanto ao Bits, se ele de 32 ou 64,
pois os de 32 so capazes de enderear 2
ao elevado de 32, ou seja 4 gb, j os de
64 bits passam para 16 gb. Quanto mais
o processador puder enderear melhor.

Tema 2 | Organizao dos Sistemas de Computao

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Nesse livro, no captulo 06, voc poder ler mais informaes sobre o funcionamento do Processador.
TANENBAUM, Andrew S., Organizao estruturada
de computadores. 5. ed. Rio de Janeiro: Prentice
Hall, 2006.
Este livro, no captulo 02, possibilita um estudo
mais amplo das memrias virtuais.

PARA REFLETIR
A unidade de controle responsvel pela busca
de instrues da memria principal e determinao
dos seus tipos. Faa um comentrio com seus colegas no AVA sobre o funcionamento da unidade
de controle.

57

58

Organizao e Arquitetura de Computadores

2.2 Arquitetura Risc X Cisc


A evoluo da tecnologia de semicondutores,
que levou a indstria a criar processadores mais velozes, proporcionou o surgimento de diversos estudos
sobre arquitetura de computadores, com incio na dcada de 80. Esses estudos foram os precursores de
um novo tipo de arquitetura que se denominou RISC.
RISC vem da abreviatura de Reduced Instruction Set Computer em contraste com as mquinas
CISC que so Complex Instruction Set Computer.
Praticamente todos os microcomputadores lanados no mercado, desde os processadores de 8 bits
at os de 32 bits tiveram sua arquitetura com caracterstica CISC, ou seja, uma grande quantidade
de instrues com variedades de modos de endereamento, poucos registradores de dados na UCP
e processamento controlado por microprograma.
Com o aparecimento das estaes de trabalho
SPARC, na dcada de 80 pela Sun Microsystems, dos
EUA, a arquitetura RISC tornou-se de interesse para
grandes empresas de computador. A partir de 1992,
a IBM tambm passou a apostar na arquitetura RISC
com o lanamento das estaes de trabalho Alpha,
a MIPS uma companhia que se especializou em
estaes de trabalho com arquitetura RISC.
A arquitetura RISC teve incio por trs caminhos.
1. Um projeto da IBM, que foi desenvolvido
na dcada de 70, resultou na criao de
uma mquina de baixo desempenho e
que no teve valorizao comercial. A IBM
s veio a ter um respaldo comercial nesta
rea no ano de 1990 com a famlia de
processadores RS/6000 e com a famlia
POWER PC em parceria com a Motorola
e a Apple.

Tema 2 | Organizao dos Sistemas de Computao

2. Alguns estudos na Universidade Stanford,


Califrnia, por John Hennessy.
3. Estudos na Universidade de Berkeley, Califrnia, por David Patterson.
Nos anos 80 foram realizados vrios estudos
para verificar o comportamento das instrues de
mquina em relao ao seu desempenho dos sistemas na execuo de programas escritos em linguagem de alto nvel.
As linguagens de alto nvel possuam comandos poderosos, que foram criados para facilitar a
vida dos programadores mais do que o desempenho
dos computadores, ou seja, facilitando o processamento pelo hardware. Era uma das grandes vantagens que os programadores tinham em desenvolver
programas complexos com menor esforo, tendo em
vista os comandos disponveis na linguagem, pois
as instrues de mquinas eram primitivas, j que
realizavam tarefas simples e diretas.
O gap semntico a separao acentuada
entre as operaes em linguagem de alto nvel e
em linguagem de mquina. Para reduzir o gap semntico os arquitetos de processadores imaginaram algumas solues:

Aumentar a quantidade de instrues


de mquina e aperfeioar algumas delas
para atender aos requisitos de processamento de um comando, tornando mais
complicada;

Incluir mais modos de endereamento em


um conjunto de instrues;

A utilizao da microprogramao para realizao de certas operaes por firmware.

59

60

Organizao e Arquitetura de Computadores

CISC x RISC

Tema 2 | Organizao dos Sistemas de Computao

61

62

Organizao e Arquitetura de Computadores

Depois de alguns estudos, a IBM desenvolveu uma arquitetura de sistema de computao


que contemplava concluses, com o propsito de
reduzir o gap semntico entre as linguagens de
programao.

CARACTERSTICAS DAS ARQUITETURAS RISC

Menor quantidade de instrues e tamanho


fixo, o INTEL 80486 foi lanado com 147
instrues de mquina. Hoje, os atuais Pentium possuem mais de 200 instrues.

Execuo otimizada de chamada de funes. Umas das caractersticas que a distingue da arquitetura CISC o modo de
realizar chamadas de rotinas e passagem
de parmetros.

Menor quantidade de endereamento. As


mquinas RISC buscam por solues mais
simples, o que conduziu criao de um
modo geral de apenas dois tipos de instrues: a LOAD e a STORE, para terem
acesso memria utilizando-se apenas o
modo direto.

Modo de execuo com Pipelining ( uma


tcnica usada em microprocessadores,
onde uma segunda instruo realizada
antes da primeira instruo), uso altamente
produtivo, obtido em face do formato simples e nico das instrues de mquina.

As mquinas com arquitetura RISC podem diferir da arquitetura CISC em oito formas crticas,
como listado abaixo.
RISC instrues simples levando 1 ciclo.

Tema 2 | Organizao dos Sistemas de Computao

CISC instrues complexas levando mltiplos ciclos.


RISC Apenas LOADs/STOREs refernciam na memria.
CISC Qualquer instruo pode refernciar a memria.
RISC Altamente pipelined.
CISC No tem pipeline, ou tem pouco.
RISC Instrues executadas pelo hardware.
CISC Instrues interpretadas pelo microprograma.
RISC Instrues com formatos fixos.
CISC Instrues com vrios formatos.
RISC Poucas instrues e modos.
CISC Muitas instrues e modos.
RISC A complexidade est no compilador.
CISC A complexidade est no microprograma.
RISC Mltiplos conjuntos de registradores.
CISC Conjunto nico de registradores.

NENHUM MICROCDIGO
Em uma mquina com arquitetura RISC, suas
instrues so geradas pelo compilador diretamente no hardware, ou seja, no so interpretadas por
microcdigos. Sendo assim, elimina esse nvel de
interpretao, sendo este o segredo da velocidade
nas mquinas com arquiteturas RISC.
Uma vantagem da implementao da arquitetura CISC a economia em um pouco de memria.

INSTRUES REDUZIDAS
Neste ponto as mquinas RISC foram nomeadas, pois no existe nenhuma objeo em relao
a ter vrias instrues, sendo que cada uma seja
executada em ciclo. Neste caso existe um problema,
que a complexidade dos blocos decodificador, que
crescem com o nmero de instrues e, sendo assim, consomem uma quantidade da rea da pastilha.

63

64

Organizao e Arquitetura de Computadores

Os modos de endereamento so diferentes


por razes da velocidade e da sua complexidade,
pois no desejado ter mais de um nmero mnimo de modos de endereamentos.

MEDIDAS DE DESEMPENHO
Existem no mercado vrios mtodos de se
medir e divulgar o desempenho de processadores
e sistemas de computao, bem como as unidades de medidas decorrentes. Umas das unidades
de medidas mais conhecida o MIPS (milhes de
instrues por segundo). Contudo, o MIPS no
uma boa unidade de medida de comparao entre
a arquitetura RISC e a arquitetura CISC devido ao
princpio conceitual de ambas as arquiteturas.
O MFLOPS (milhes de operaes de ponto flutuante por segundo) uma unidade que mais apropriada para medir velocidade com clculos matemticos pelo processador. Os MFLOPS so os que mais
interessam aos pesquisadores e cientistas.
Atualmente os MFLOPS vm sendo empregados para medir o desempenho de mquinas RISC
a unidade SPECmark, denominada assim devido
sigla do comit que a criou.

OBSERVAES RISC X CISC


Existem inmeras mquinas com a arquitetura RISC, e uma grande quantidade daqueles que
relacionam diversas desvantagens desses processadores em prol da arquitetura CISC.

Tema 2 | Organizao dos Sistemas de Computao

O VAX foi projetado como um exemplo perfeito da arquitetura CISC

O desempenho entre RISC x CISC geralmente so medidos pelos seus vendedores atravs de
programas de testes chamados benchmarks.

Mquinas com arquitetura RISC

Os defensores da arquitetura CISC alegam ter


mais rapidez quando executam os programas escritos
em linguagem de alto nvel devido pouca quantidade
de cdigos binrios executveis. As mquinas RISC tendem a executar instrues mais rapidamente devido as
instrues possurem Cdigos de operaes com menor quantidade de bits, tendo como consequncia um
tempo de decodificao menor. Outro ponto que as
instrues so executadas diretamente pelo hardware
e no por microprogramas.
Os processadores RISC so otimizados em
operaes de uma nica tarefa devido ao grande
nmero de registradores que possuem e a grande
quantidade de pipelining.

65

66

Organizao e Arquitetura de Computadores

SISTEMAS COMERCIAIS RISC


H no mercado diversos sistemas com a arquitetura RISC, e suas aplicaes esto crescendo
com o passar do tempo, com grande interesse na
rea das estaes de trabalho e servidores de redes
locais. Entre alguns sistemas que existem podemos
citar: SPARC, RS/6000, ALPHA e o POWER -PC.

PROCESSADORES SPARC
Vamos estudar um pouco sobre a arquitetura dos
processadores SPARC, sigla que vem do ingls Scalable Processor Architecture, que a empresa SUN
denominou de unidade de inteiro (IU), na unidade
de ponto flutuante (FPU), no coprocessador (CP),
em um gerenciador de memria de (MmU) e em
uma memria cache, alm do barramento interno,
que interliga os diferentes dispositivos e barramentos do sistemas para ligar com a memria principal
externa e perifricos.

Diagrama de bloco da arquitetura SPARC

Tema 2 | Organizao dos Sistemas de Computao

Os processadores SPARC compartilham um mesmo


conjunto de instrues e um espao linear de memria.
O SPARC tem em sua arquitetura do tipo
LOAD/STORE, ou seja, as operaes restantes, executadas nos registradores.
Os processadores SPARC em sua maioria so
constitudos por mais de uma pastilha, sendo uma
para UCP, uma para UI, uma para FPU, uma para
MmU e outra para memria cache.

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro, no captulo 11, voc vai pode conhecer mais
detalhadamente os processadores e sua estrutura.
TANENBAUM, Andrew S. Organizao estruturada
de computadores. 5. ed. Rio de Janeiro: Prentice
Hall, 2006.
Neste livro, no captulo 2, voc vai pode conhecer
mais sobre RISC e CISC.

PARA REFLETIR
Os processadores com arquitetura RISC so realmente melhores que os processadores com arquitetura CISC? Com essa pergunta procure na internet
ou nas literaturas a diferena entre as arquiteturas
e poste no AVA o seu comentrio.

67

68

Organizao e Arquitetura de Computadores

2.3 Arquiteturas Paralelas


A estrutura tradicional de um computador
com uma nica CPU que envia requisies sequenciais atravs do barramento para memria a qual
responde uma requisio por vez ficou conhecida
como GARGALO DE VON NEUMANN.
As tentativas de se quebrar o gargalo de Von
Neumann comeam assumindo que um computador
consiste em algum nmero de unidades de controle: a Unidade Lgico-Aritmtica (ULA) e mdulos
de memria, que podem operar em paralelo. Essas
tentativas divergem quanto a unidades existentes,
como elas so e como elas esto conectadas.

VISO GERAL DOS COMPUTADORES PARALELOS


Existem trs questes que so fundamentais
para que possamos nos aproximar de novos sistemas de computao paralelos. A primeira descrever a natureza, tamanho e nmero de elementos
do processador, a segunda descrever a natureza,
tamanho e nmero de mdulos de memria e a terceira descrever a estratgia de interconexo entre
processadores e memrias.

Tema 2 | Organizao dos Sistemas de Computao

Os elementos dos processadores podem variar


de mnimas ULAs at CPUs completas, cujos tamanhos vo desde uma pequena poro de uma pastilha a vrios metros cbicos de circuitos por elemento.
Um computador pode se equipar ento de vrios elementos de processador. Quando temos um elemento
processador, somente possvel construir sistemas
contendo cerca de 1000 CPUs.
Os sistemas de memria so divididos com
frequncia em mdulos que podem ser operados
independentemente um do outro e em paralelo.
Em uma das suas extremidades esto os sistemas com milhares de elementos processadores,
cada qual com sua memria e no outro esto os
sistemas que consistem em alguns mdulos. Um
dos fatores crticos do elemento de processador
a velocidade relativa da memria. Porm, se a
memria relativamente lenta, os processadores
tero que esperar as requisies de memria. Neste caso, se a memria rpida, o pipeline poder
ser dispensado.
Temos dois esquemas de interconexo que
so os estticos e os dinmicos, onde as interconexes estticas podem ligar os componentes de forma fixa, tal como estrela, anel ou grade, enquanto
que no esquema de interconexo dinmico as suas
partes so ligadas a uma rede de interconexo que
pode dinamicamente rotear mensagens entre componentes. Alguns computadores em paralelos tm
condies de realizar tarefas independentes um do
outro e simultaneamente.
O paralelismo de granularidade grossa a
execuo de grandes pores de software em paralelo e com pouca ou nenhuma comunicao entre
elas. O extremo oposto do paralelismo de granularidade grossa chamado de paralelismo de granularidade fina.

69

70

Organizao e Arquitetura de Computadores

As CPUs que so chamadas de fracamente acopladas so aquelas que seus sistemas possuem um
nmero pequeno de CPUs grandes e independentes,
que suas conexes so de baixa velocidade entre
as CPUs. O oposto aos fracamente acoplados so
chamados de fortemente acoplados, onde seus componentes so geralmente pequenos, muito prximos
e frequentemente se interagem atravs de redes de
comunicao de altssima velocidade. Algumas vezes
os sistemas com problemas de paralelismo com granularidade grossa funciona melhor do que o sistema
fracamente acoplado, j o problema de paralelismo
com granuralidade fina funciona melhor em sistemas
fortemente acoplados.
Inmeros pesquisadores tm tentado produzir um esquema de classificao e taxonomia para
computao paralela, mas sem xito. Com isso, o
nico esquema o Flynn, que muito utilizado. O
FLYNN se baseia em dois conceitos, que so fluxo
de instrues e fluxo de dados, onde o fluxo de
instrues corresponde a um contador de programa
e o fluxo de dados consiste em um conjunto de
operadores. Em certo ponto os dois fluxos so independentes e, sendo assim, existem quatro combinaes conforme abaixo.
Fluxo de
instrues

Fluxo de
dados

Nome

Exemplo

SISD

Mquinas Von Neumann


clssicas

mltiplos

SIMD

Supercomputadores vetoriais

mltiplos

MISD

Questionvel, nenhum

mltiplos

mltiplos

MIMD

Multiprocessadores

Tema 2 | Organizao dos Sistemas de Computao

Precisamos agora analisar as combinaes


e vamos comear com SISD, que nada mais do
que o computador de Von Neumann. Ele por vez
possui um fluxo de instrues, um fluxo de dados
e realiza uma operao de cada vez. J as mquinas SIMD possuem uma nica unidade de controle
que executa uma instruo de cada vez, porm, ela
possui mltiplas ALUs para executar esta instruo
em mltiplos conjuntos de dados simultaneamente.
O SIMD tem como prottipo o ILLIAC IV. As mquinas MISD so de uma categoria com mltiplos fluxos
de instrues operando na mesma poro de dados.
Temos tambm a MIMD, que so mltiplas
CPUs independentes operando como parte de um
sistema maior. A maioria dos processadores paralelo caem nesta categoria.
A categoria MIMD foi dividida em mquinas
que possuem a memria principal compartilhada,
que chamamos de multiprocessadores, e as que
no possuem so chamadas de multicomputadores, computadores de memria privada ou computadores com memria disjunta.

Modelo Computacional SIMD

71

72

Organizao e Arquitetura de Computadores

Modelo Computacional MISD

Modelo Computacional MIMD

Tema 2 | Organizao dos Sistemas de Computao

Temos como exemplo trs situaes diferentes da simulao compartilhada em computadores disjuntos. Primeiro o Kai Li de 1988,
que sugere um nico espao virtual pginado
abrangendo todos os processos que trabalham
juntos. O segundo o Linda, um modelo de
programao baseada em um espao abstrato
de tuplas, onde cada tupla contm um ou mais
itens de dados, como um registro em pascal. O
terceiro e ltimo Orca, que uma linguagem
que permite aos programadores definir objetos
abstratos em conjunto com as operaes com
esses objetos.

COMPUTADORES MIMD COM MEMRIA DISJUNTA


O nosso primeiro sistema paralelo consiste em computadores com CPU que tem sua
prpria memria local, pois nenhuma memria
fisicamente compartilhada. Sendo assim, toda
comunicao realizada atravs de passagem
de mensagens. Quando precisamos passar estas
mensagens so necessrios canais de comunicaes. Um computador possui em sua estrutura
simples uma conexo com outro computador.
Embora a computao paralela possa ser
feita em uma rede cheia de estaes, a medida
que a carga aumenta, o barramento satura, ento, nenhum dos extremos, interconexo completa ou canal nico inteiramente satisfatrio.

73

74

Organizao e Arquitetura de Computadores

Topologias de Rede

MULTIPROCESSADORES SIMTRICOS
At pouco tempo, a maioria dos computadores pessoais e as estaes de trabalho possuam um nico microprocessador. Com a necessidade de se ter um maior desempenho os fabricantes
introduziram o sistema SMP, que tem essa denominao porque refere-se arquitetura de hardware do computador quanto ao funcionamento do
sistema operacional que reflete nesta arquitetura.

Tema 2 | Organizao dos Sistemas de Computao

O SMP definido como um sistema de computador independente que possui em suas caractersticas a existncia de dois ou mais processadores similares. Os processadores compartilham a
mesma memria principal com facilidades na entrada e sada dos dados, so conectados entre si
atravs de um barramento ou de um outro tipo de
conexo interno. Os processadores compartilham
acesso aos dispositivos de entrada e sada atravs de canais comuns ou por canais distintos que
venham a fornecer caminhos para os mesmos dispositivos. Os processadores podem desempenhar
as mesmas funes e o sistema controlado por
um sistema operacional integrado que prove uma
interao entre processadores e programas em seu
nvel de tarefa, de arquivos e de dados.
O sistema operacional de um SMP efetua
um escalonamento de processos sobre todos os
processadores. Sendo assim, a arquitetura SMP
possui vrias vantagens sobre uma arquitetura uniprocessador (um s processador).
Vantagens:
No desempenho, um computador com
mltiplos processadores possui mais vantagens do que um computador com um
processador, pois os de mltiplos processadores podem se organizar de maneira
que alguns trabalhos possam ser feitos
em paralelo.

Na disponibilidade, em multiprocessadores, em que os mesmos possuem a capacidade de realizar a mesma tarefa simultaneamente, uma falha em um nico
processador no causa a parada do sistema, mas compromete o seu desempenho.

75

76

Organizao e Arquitetura de Computadores

No crescimento incremental: se houver


necessidade o usurio poder incrementar mais processadores para melhora o
seu desempenho.

Na escabilidade: os fabricantes podem


oferecer um grande nmero de produtos
com desempenho e custos diferentes,
tendo como base o nmero de processadores.

TRANSPUTERS
O transputer uma mquina RISC que foi
projetada especialmente para computadores paralelos construdos a partir de um grande nmero de
transputers arranjados em uma grade retangular. O
transputer possui trs registradores, ao contrrio
das mquinas RISC.

INDICAO DE LEITURA COMPLEMENTAR


GALANTE, Guilherme. Computao cientfica paralela: uma introduo. 2007. Disponvel em <http://
www.inf.unioeste.br/~guilherme/>.
No link cursos nesse site voc encontrar um texto
sobre introduo de computao cientifica paralela.
MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro, no captulo 06, voc ter mais informaes sobre arquitetura de computadores.

Tema 2 | Organizao dos Sistemas de Computao

PARA REFLETIR
Os Computadores paralelos podem ser divididos
em MIMD e SIMD. Coloque no Ava a diferena entre eles, criando assim um debate sobre o tema.

2.4 Memria Virtual


No incio da era dos computadores as memrias eram pequenas e muita caras. Um exemplo era
o IBM 650, o melhor computador da poca (1950),
que possua 2000 palavras de memria.
Naquela poca os programadores tinham que
espremer o mximo possvel seus cdigos para caber nas pequenas memrias, os programadores na
poca tinham que dividir os seus programas em
vrios pedaos. Esse mtodo era chamado de overlays, pois funcionava com a colocao do primeiro
pedao na memria e ele era lido por algum tempo,
depois que ele era lido se colocava o outro pedao
e assim por diante.
Em 1961 um grupo de pessoas, na Inglaterra, props um mtodo para realizar o processo de
overlays automaticamente sem que o programador
sequer soubesse o que estava acontecendo. Esse
mtodo ficou conhecido como memria virtual, que
uma tcnica bastante poderosa no gerenciamento
da memria, onde a memria principal e secundria so combinadas, oferecendo ao usurio uma
impresso de existir uma memria muito maior que
a memria principal. O seu conceito est baseado
em desvincular o endereamento feito pelo processo dos endereos fsicos da memria principal, pois

77

78

Organizao e Arquitetura de Computadores

desta maneira os processos e suas estruturas de


dados deixam de estar limitados ao tamanho da
memria fsica disponvel. Na dcada de 70 a maioria dos computadores j possua a memria virtual.

Um programa que est no ambiente de memria virtual no faz referncia a endereos fsicos
de memria, mas ao endereo virtual. No momento
da execuo de uma instruo o endereo virtual
traduzido para o endereo fsico para poder ser
atendido pela CPU. O mecanismo de traduo do
endereo virtual para endereo fsico chamado
de mapeamento e o conjunto de endereos virtuais que os processos endeream so chamados
de espao de endereamento virtual. A maneira do
conjunto de endereos reais chamado de espao
de endereamento real.

Tema 2 | Organizao dos Sistemas de Computao

Memria virtual

MAPEAMENTO
Todo programa quando executado em seu contexto precisa estar no espao de endereamento real
para poder ser refernciado pelo processador. Sendo
assim, deve existir um mecanismo que transforme endereos virtuais em endereos reais, sendo que cada
processo tem que ter o mesmo espao de endereamento virtual, como se ele possusse sua prpria
memria. O mecanismo de traduo fica responsvel
em manter as tabelas de mapeamento exclusivas para
cada processo, relacionando os endereos virtuais do
processo a sua posio na memria fsica.

Processo de mapeamento de parte da memria virtual para uma memria de 4096 palavras - memria virtual

79

80

Organizao e Arquitetura de Computadores

Paginao
Os pesquisadores tinham a ideia de separar
os conceitos de espao de endereamento e de posies de memria.
A tcnica de overlay automtico que chamamos de paginao e as pores de programas que
so lidos na memria secundria so chamadas de
pginas, que em seu espao virtual tem denominao de pginas virtuais, enquanto que as pginas
no seu espao real so chamadas de pginas reais.

(a) Os primeiros 64 K do espao de endereos virtuais so divididos em


16 pginas de 4 K cada uma. (b) Memria principal de 32 K dividida em 8
molduras de pgina, de 4 k cada

Tema 2 | Organizao dos Sistemas de Computao

O mapeamento realizado atravs de tabelas de pginas, pois cada pgina do processo


possui uma entrada com informaes de seu mapeamento. Para que possamos enfatizar melhor, a
paginao d ao programador uma iluso de uma
memria principal grande, contnua e linear com
o mesmo tamanho no espao de endereamento,
quando na verdade a memria principal disponvel
pode ser menor ou maior que o espao de endereamento.
A simulao da memria principal grande
atravs da paginao no pode ser detectada pelo
programa. Quando quer que um endereo seja refernciado, a instruo ou dado apropriado parece
estar presente. Como o programador pode programar como se no existisse paginao, o mecanismo
fica conhecido como transparncia.

Paginao POR DEMANDA


(DEMAND PAGINP)
No tema, temos que a pgina virtual refernciada estava na memria principal, entretanto
podemos afirmar que esta afirmao nem sempre
verdadeira, porque no existe lugar na memria
principal para todas as pginas virtuais. Quando
temos uma referncia para um endereo em pgina
que no est presente na memria principal chamamos de falta de paginao. Sabemos tambm
que possvel iniciar a execuo de um programa
em mquina com memria virtual mesmo quando
nada do programa est na memria principal. A tabela de pgina dever ser usada meramente a ser
estabelecida para indicar que toda e qualquer pgina virtual est na memria secundria, e no na
memria principal.

81

82

Organizao e Arquitetura de Computadores

Paginao POR ANTECIPAO


(ANTECIPATORY PAGING)
So as pginas prximas quelas refernciadas e
carregadas, simulando uma previso de quais pginas
sero necessrias, trazendo-as antecipadamente para
a memria. As pginas pequenas elas necessitam de
tabelas de mapeamento maiores, maior taxa de paginao, aumento de acessos memria secundria e geram
uma menor fragmentao. Esse tamanho varia de sistema para sistema, mas est entre 512 bytes a 4 kbytes.

Paginao REALOCAO DE PGINAS


O problema no gerenciamento de memria virtual por paginao no decidir qual a pgina carregar para a memria e sim quais sero removidas,
pois qualquer estratgia de realocao de pgina deve
considerar se uma pgina foi ou no modificada antes
de liber-la par outro processo, sendo que possveis
alteraes feitas na pgina quando ocupada podem
ser perdidas. O sistema possui um arquivo de paginao chamado de Page file onde as pginas modificadas ficam armazenadas e, sempre que o sistema libera
uma pgina, dever grav-la no arquivo de pginas
chamado de Page out, preservando o seu contedo.
Quando uma destas pginas alteradas for refernciada
novamente ela ser recuperada do arquivo de pgina
e trazida para o Working Set Processo (Page in). O
sistema, por sua vez, sabe se uma pgina foi alterada
ou no atravs do bit de modificao, que existe na
ETP de cada tabela de pgina. Sendo assim, a melhor
estratgia de realocao seria aquela em que a escolha
casse sobre uma pgina que no fosse refernciada
num futuro prximo, porm o sistema operacional
tem dificuldade em prever isso.
Existem algumas estratgias a serem adotadas pelos sistemas operacionais para a realocao de pginas.

Tema 2 | Organizao dos Sistemas de Computao

ALEATRIA
Essa escolha no utiliza nenhum critrio para
a seleo.
Todas as pginas do working set tm a mesma chance de serem selecionadas.
Essa estratgia consome poucos recursos
mas no muito comum.

FIRTS IN FIRST OUT (FIFO)


Essa pgina que foi utilizada ser a primeira a
ser escolhida.
Sua implementao muito simples, sendo apenas necessrio uma fila onde as pginas mais antigas
esto no incio da fila e as mais novas no final da fila.
Essa pginas podem ter que voltar vrias vezes fila.

LEAST RECENTLY USED (LRU)


Essa estrtegia seleciona a pgina utilizada e
menos recentemente, ou seja, a pgina que est h
mais tempo sem ser referenciada.
Essa estratgia gera o overhead causado pela atualizao em cada pgina refernciada, do momento do
ltimo acesso, alm do algoritmo de busca de pginas.

NOT USED RECENTLY (NRU)


Essa estratgia bastante parecida com a
LRU, pois existe um flag que permite ao sistema a
implementao do algoritmo. O flag de referncia
indica quando a pgina foi refernciada ou no, e

83

84

Organizao e Arquitetura de Computadores

est associado a cada entrada na tabela de pginas. medida que as pginas so refernciadas o
flag modificado para (1).
Todas as pginas que esto com flag indicando que no foram refernciadas recebem (0).

LEAST FREQUENTLY USED (LFU)


Nessa estratgia a pgina menor referenciada, ou seja, a que for menos utilizada ser a pgina
a ser escolhida. Para isso ser mantido um contador de nmero de referncias s pginas.

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Este livro possibilita um estudo mais amplo das
memrias virtuais. Captulo 5.
TANENBAUM, Andrew S. Organizao estruturada
de computadores. 5. ed. Rio de Janeiro: Prentice
Hall, 2006.
Este livro possibilita um estudo mais amplo das
memrias virtuais. Captulo 6.

85

Tema 2 | Organizao dos Sistemas de Computao

PARA REFLETIR
As memrias virtuais so realmente importantes
para o funcionamento dos sistemas operacionais?
Coloque no sistema Ava a sua opinio.

RESUMO
Voc aprendeu at aqui o funcionamento dos processadores, um pouco sobre arquitetura RISC X
CISC, sobre a arquitetura paralela e sobre a memria virtual mostrando sua importncia, bem como o
seu funcionamento.

85

lgebra Linear

86

ABORDAGEM SOBRE ORGANIZAO E ARQUITETURA DE


COMPUTADORES
Parte 2

Organizao dos Sistemas


Operacionais

Este tema consiste em voc estudar como funciona a memria


do computador, os dispositivos de entrada e sada do mesmo, bem
como o processo de montagem de microcomputadores.

90

Organizao e Arquitetura de Computadores

3.1 Memria
Neste tema vamos introduzir o conceito de
hierarquia de memria, memria principal e memrias auxiliares, tais como discos magnticos, etc. A
operao e a organizao de memrias associativas
sero explicadas em detalhes.
O gerenciamento de memria introduzido
atravs da apresentao de requisitos de hardware
para um sistema de memria virtual que estudamos no tema 2 deste livro.

Memria principal
A memria principal a unidade central de
armazenamento em um sistema computacional.
uma memria relativamente grande e rpida, usada
para armazenar dados e programas durante a operao do computador.
A principal tecnologia usada na construo
da memria principal baseada em circuitos integrados em semicondutores. Os chips de circuito
integrado de RAM esto disponveis em dois modos de operao possveis, esttico e dinmico. A
memria RAM esttica consiste essencialmente de
flip-flops (um circuito digital, capaz de servir uma
memria de um bit internos que armazenam a informao binria.
A unidade bsica de memria o digito binrio. A informao armazenada permanece vlida enquanto uma tenso especfica aplicada unidade.
A memria RAM dinmica armazena a informao binria na forma de cargas eltricas que so
aplicadas a capacitores. Os capacitores so dispostos dentro do chip por meio de transistores. A carga
armazenada nos capacitores tende a se descarregar

Tema 3

| Organizao dos Sistemas Operacionais

com o tempo, e a atualizao da memria dinmica deve ser feita periodicamente, por meio da
recarga dos capacitores, pois esta atualizao se
d pela varredura das posies de memria a cada
intervalo de alguns milissegundos, de modo a restaurar a carga decadente. A memria RAM dinmica
permite o consumo reduzido de potncia e capacidade maior de armazenamento em um nico chip
de memria.
A memria RAM esttica mais fcil de usar
e possui ciclos mais curtos de leitura e escrita. A
maioria das memrias principais em um computador de propsito geral feita de chips de circuitos
integrados RAM, mas uma poro da memria pode
ser construda com chips de memria ROM.
Originalmente a RAM era usada para se referir a uma memria de acesso aleatrio, mas atualmente ela usada pra designar uma memria de
leitura e escrita, para distingui-la de uma memria
somente de leitura.
importante sabermos ainda que a memria
RAM usada para armazenar o corpo dos programas e dados que so sujeitos a mudanas, enquanto que a memria ROM usada para armazenar
programas que so permanentemente mantidos no
computador e para tabelas de constantes que no
mudam o seu valor aps a concluso da produo
do computador.
A poro ROM da memria principal necessria para armazenar um programa inicial, chamado
de carregador de bootstrap. Este carregador um
programa cuja funo iniciar a operao do software do computador quando o mesmo ligado.
Uma vez que a RAM uma memria voltil, o seu contedo se perde ao computador ser
desligado. J os contedos da ROM permanecem
intactos aps o computador ser desligado e ligado
novamente. Neste sentido, a inicializao de um

91

92

Organizao e Arquitetura de Computadores

computador consiste na alimentao do mesmo


por eletricidade e no incio da execuo de um programa inicial, assim, quando a fora ligada, o
hardware do computador seta o seu contador de
programa para o primeiro endereo do carregador
de bootstrap. Este programa carrega uma poro
do sistema operacional a partir de um disco para
a memria principal e o controle transferido para
o sistema operacional, que prepara o computador
para uso geral.
Memrias RAM e ROM esto disponveis em
uma variedade de tamanhos e capacidades.

MEMRIAS ROM e RAM


Uma memria RAM mais adequada para a
comunicao com a CPU, se esta possuir uma ou
mais entradas de controle que selecionem o chip
somente quando for necessrio.
O barramento de dados bidirecional quem
permite a transferncia de dados da memria para
a CPU, durante uma leitura, e da CPU para a memria, durante a operao de escrita. Um barramento
bidirecional pode ser construdo com buffers triestado. Uma sada de buffer tri-estado pode ser inserida em um dos trs estados possveis: um sinal
equivalente ao lgico 1, um sinal equivalente ao
lgico 0 ou um estado de alta impedncia (impedncia a oposio que um meio material oferece
propagao de um campo), normalmente representado pela letra z.
Os sinais lgicos 1 e 0 so sinais digitais normais. O estado de alta impedncia se comporta
como um circuito aberto, o que significa que a sada no conduz sinal algum, por isso no possui
significado lgico.

Tema 3

| Organizao dos Sistemas Operacionais

Diagrama de blocos

A memria possui 128 palavras de 8 bits (um


byte) por palavra. Isto requer um barramento de
endereo de 7 bits, e um barramento de dados
bidirecional de 8 bits. As entradas de leitura e escrita especificam a operao da memria, e as duas
entradas de controle CHIP SELECT, servem para habilitar o chip somente quando este selecionado
pelo microprocessador.

Chip select

93

94

Organizao e Arquitetura de Computadores

A disponibilidade de mais de uma entrada de


controle para selecionar o chip facilita a decodificao das linhas de endereo quando mltiplos chips
so usados no microcomputador.
Entradas de leitura e escrita so algumas vezes combinadas em uma nica linha, chamada R/W.
Quando o chip selecionado, os dois estados binrios nesta linha especificam as duas operaes de
leitura ou escrita.
Um chip ROM organizado externamente de
maneira similar. Entretanto, j que uma ROM pode
apenas ler dados, o barramento de dados pode
estar somente em um modo de sada.
Para um chip de mesmo tamanho, possvel
haver mais bits de ROM do que de RAM, porque as
clulas binrias internas na ROM ocupam menos
espao do que na RAM.
ROM: a memria que s permite a leitura
de dados e so lentas. Em contrapartida, o seu
contedo no perdido ao desligar o computador;
RAM: Memrias rpidas que permitem a leitura e escrita. As informaes nelas gravadas, ao
desligar o computador, so inteiramente perdidas.

Memrias RAM

Memrias ROM

Tema 3

| Organizao dos Sistemas Operacionais

Mapa de Endereos de Memria


Um projeto de um sistema computacional deve
calcular a quantidade de memria requerida para
a aplicao particular, e atribu-la tanto memria
RAM quanto memria ROM. A interconexo entre
memria e processador ento estabelecida atravs
do prvio conhecimento do tamanho da memria
necessria e do tipo de chip RAM e ROM disponvel.
Endereamento de memria pode ser estabelecido por meio de uma tabela que especifica o
endereo de memria atribudo a cada chip.
Mapa de endereos de memria uma representao ilustrada de espaos de endereo atribudos para cada chip no Componente Endereo
Hexadecimal Barramento de Endereos

Mapa de memria dos registros do 8051

A coluna Componente especifica se um chip


RAM ou ROM ser usado. A coluna de endereo hexadecimal atribui uma variedade de endereos hexadecimais equivalentes para cada chip. As linhas de
barramento de endereos so listadas na terceira coluna e assume-se que os seus valores sejam iguais a

95

96

Organizao e Arquitetura de Computadores

zero. Os pequenos x sob as linhas de barramento de


endereo designam aquelas linhas que devem estar
conectadas s entradas de endereo em cada chip.

Conexo da Memria com a CPU


Os chips RAM e ROM so conectados CPU
atravs de barramento de dados e de endereos. As
linhas de baixa ordem no barramento de endereos
selecionam o byte dentro dos chips, e outras linhas
no barramento de endereos selecionam um chip particular atravs das suas entradas chip select. Esta configurao fornece uma capacidade de memria de 512
bytes de RAM e 512 bytes de ROM.
Cada RAM recebe os sete bits de baixa ordem
do barramento de endereos para selecionar um dos
128 bytes possveis. O chip RAM particular selecionado determinado pelas linhas 8 e 9 no barramento
de endereos. Isto feito atravs de um decodificador
2x4 cujas sadas vo para as entradas CS1 em cada
chip RAM. Assim, quando as linhas de endereo 8 e
9 so iguais a 00, o primeiro chip RAM selecionado,
quando forem 01, o segundo chip RAM selecionado,
e assim por diante.
As sadas RD e WR (entrada de leitura e entrada
de escrita, respectivamente) do microprocessador so
aplicadas s entradas de cada chip RAM e a seleo
entre RAM e ROM obtida atravs da linha de barramento 10. RAMs so selecionadas quando o bit nesta
linha for 0, e a ROM selecionada quando o bit for 1.
A outra entrada de chip select na ROM conectada
linha de controle RD para que o chip ROM seja habilitado somente durante uma operao de leitura. As linhas do barramento de endereos 1 a 9 so aplicadas
s entradas de endereos da ROM sem a necessidade
de passar pelo decodificador, sendo atribudos os endereos 0 a 511 para a RAM, e 512 a 1023 para a ROM.

Tema 3

| Organizao dos Sistemas Operacionais

Circuito utilizando o processador M++ em conjunto com uma memria


RAM e uma memria ROM, que so externas ao processador mapa de
memria dos registos do 8051

O barramento de dados da ROM possui apenas a funo de sada, ao passo que o barramento
de dados conectado s RAMs pode transferir informao em ambas as direes.
O projetista precisa estabelecer um mapa de
memria que atribua endereos aos vrios chips a
partir dos quais as conexes requeridas.
As memrias auxiliares mais comuns usadas
em sistemas computacionais so discos magnticos, discos pticos (Cds e DVDs) e fitas.
Outras comunicaes usadas, mas no to
frequentemente, so tambores magnticos, bolhas
de memria magnticas, entre outros.

97

98

Organizao e Arquitetura de Computadores

Memria Associativa
Muitas aplicaes de processamento de dados requerem a busca de itens em uma tabela armazenada na memria, com um programa em assembler e realiza a busca pela tabela de endereos
de smbolos, de modo a extrair o equivalente em
binrio do smbolo. Um nmero de conta-corrente,
por exemplo, pode ser buscado em um arquivo para
determinar o nome do seu titular e a sua situao.
O nmero de acessos memria depende da
localizao do item e da eficincia do algoritmo de
busca. Muitos desses algoritmos foram desenvolvidos para minimizar o nmero de acessos enquanto
buscam por um item em uma memria de acesso
aleatrio ou sequencial.
Uma unidade de memria acessada pelo seu
contedo chamada de memria endereada por
contedo. Quando uma palavra escrita em uma
memria associativa, no fornecido um endereo.

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro, no captulo 05, voc poder conhecer
melhor o funcionamento das memrias.
TANENBAUM, Andrew S. Organizao estruturada
de computadores. 5. ed. Rio de Janeiro: Prentice
Hall, 2006.
Neste livro, no captulo 02, voc poder conhecer
melhor o funcionamento das memrias.

Tema 3

| Organizao dos Sistemas Operacionais

99

PARA REFLETIR
As memrias ROM so memrias de semicondutores que atingem 3 objetivos, que ter desempenho
semelhante s memrias R/W, no so volteis e
tm uma segurana permitindo apenas leitura do
seu contedo, procure em seu computador onde
est caracterizada a presena desta memria, colocando um comentrio no Ava.

3.2 Entrada e Sada

Entrada x sada

Shutterstock/300dpi

A arquitetura de computadores (entrada e sada) constitui em uma interface com o meio externo. A arquitetura de entrada e sada foi projetada
para permitir um controle sistemtico de interao
com o exterior e permitir ao sistema operacional
informaes que ele necessita para gerenciar as
atividade de entrada e sada.
Quando precisamos de rapidez e flexibilidade
em um computador no seria apenas o seu poder
de armazenamento em memria dos programas, e
nem informaes que seriam necessrias para o processamento e nem tambm a possibilidade de se executar
milhes de instrues. Seria preciso
que o programa escrito em um
papel e seus dados a serem
manipulados fossem inseridos
em um sistema bit a bit
incluindo seus espaos,
sinais e smbolos.

100

Organizao e Arquitetura de Computadores

Para que possamos realizar determinada tarefa necessrio de um meio de comunicao entre
o usurio e o computador e, da mesma forma, a
necessidade de comunicao inversa, de maneira
que o usurio possa entender o resultado do processamento, pois os perifrico so os dispositivos
responsveis pela entrada e sada das informaes.
Os dispositivos de entrada e sada funcionam
geralmente caracterizados por diversos elementos
mesmo que realizem a mesma tarefa, por possurem
caracterstica diversificadas. Sendo assim, a integrao dos diversos elementos que cooperam no processamento de entrada e de sada em um subsistema fazem parte do sistema de computador.
Um subsistema de entrada/sada (I/O) realiza
duas funes muito importante:
1.

Enviar e receber informaes ao meio exterior;

2. Converter as informaes de entrada ou


sada em uma forma compreensvel para
a mquina ou para o usurio.
Um perifrico compostos de subsistema de
entrada e sada que possui caractersticas diferentes, como a sua velocidade e sua taxa de transferncia de dados ou informao.

Viso da CPU em relao s entradas/sadas

Tema 3

| Organizao dos Sistemas Operacionais

As diferentes ligaes entre os dispositivos


de controle e a unidade central de processamento
no so realizadas de maneira direta ou individual.
Aconteceria uma ligao direta caso houvesse uma
ligao direta entre a unidade central de processamento e o teclado. Quando a CPU necessita se conectar com algum dispositivo realizada uma traduo e a verificao de compatibilidade das suas
caractersticas de perifricos para a unidade central
de processamento, sendo que ainda so realizadas
outras tarefas.
Estes dispositivos costumam ser chamados
de interface de entrada e sada ou simplesmente
(I/O), existem outros nome que so dados como
controlador, adaptador e canal
A funo dos dispositivos de compatibilizar
os perifricos com suas caractersticas diferentes com
a unidade central de processamento, permitindo assim um fluxo contnuo de dados com uma velocidade
adequada para os elementos que esto conectados.
Existem duas maneiras de se realizar uma
transmisso e sua recepo de dados: entre os
perifricos e as interfaces e entre as interfaces e
a unidade central de processamento. So elas a
transmisso serial e a transmisso paralela.

Transmisso serial

101

102

Organizao e Arquitetura de Computadores

Transmisso paralela

Quando temos uma transmisso serial porque


a informao foi transmitida e recebida bit a bit e
quando realizada uma transmisso paralela dito
que a informao foi transmitida e recebida em conjunto de bits.
Quando temos a relao de velocidade de
um perifrico e a CPU podemos afirmar que a taxa
de transferncia de informao de um perifrico
menor do que da CPU.
No se conecta perifricos a barramento local, pois isso tende a reduzir a velocidade de transmisso entre a unidade central de processamento
e a memria principal. Pois cada perifrico possui
sua velocidade diferente, como o teclado, que
muito mais lento do que um disco. Sendo assim,
no se utiliza um caminho nico, mas sim vrios,
que so interligados ao barramento.
Quando temos perifrico de entrada e sada
que utilizam tamanhos diferentes em sua unida-

Tema 3

| Organizao dos Sistemas Operacionais

de de transferncia o mesmo que os fabricantes


adotam em seus tamanhos de palavras de dados,
pois estas caractersticas garante a necessidade do
emprego de um dispositivo intermedirio que faz a
ligao entre a unidade central de processamento
e memria principal a um perifrico de entrada ou
sada. As interfaces podero servir para uma ligao de um dispositivo de udio ou at mesmo pra
a ligao de vrios dispositivos USB.
Um controlador responsvel por realizar as
seguintes tarefas:
1. Estabelecer um sincronismo e um controle
entre o fluxo de dados e entre unidade
central de processamento e os perifricos.
2. De fazer a comunicao com a unidade
central de processamento;
3. Ser uma memria auxiliar entre as informaes e os componentes;
4. Detectar e corrigir erros que porventura
ocorram em uma transmisso.
Quando necessria a utilizao de buffer
interno por uma interface preciso compatibilidade
de velocidade diferentes, entre um barramento do
sistema e uma linha externa.

CONEXES PADRES DE PERIFRICOS DE ENTRADA E SADA


Nas placas-me dos computadores atuais os
circuitos de controle dos perifricos j esto incorporados, ou seja, os de entrada e sada, em alguns
casos, ainda se precisa de ajuda de placas auxiliares que so incorporadas s placas-me.
Quando temos, por exemplo, um teclado,

103

104

Organizao e Arquitetura de Computadores

o mesmo j vem acoplado placa-me desde os


primeiros computadores, porm o vdeo no vinha
diretamente na placa me e sim em um outra placa
que se acoplava na placa-me. Hoje, a maioria das
placas-me j vm com esse dispositivo de sada.
Caso o usurio necessite de mais resoluo, poder
adquirir uma placa com maior capacidade de gerao de grfico e acoplar a placa-me.
Em um computador temos conexes de entrada e sada como o monitor, teclado, mouse, as
portas paralelas e seriais. Para cada item deste a
placa-me possui uma especificao de pinos e conectores diferentes e especficos, onde so ligados
os diversos dispositivos.
Para que possamos conectar um dispositivo
precisamos das portas de comunicao, que so
utilizadas entre a comunicao do micro com os
perifricos externos ou at mesmo a comunicao
com outros computadores.

MOUSE
O mouse, que no considerado perifrico
padro de Sistemas de Informao, mas hoje essencial, um dispositivo de entrada cujo propsito facilitar o trabalho do usurio em sua comunicao com o sistema. Os mouses
do tipo TICO-MECNICO possuem
o mesmo mecanismo de esfera e rolete que os dispositivos mecnicos,
sendo que os roletes so conectados
a rodas vazadas e medida que as
rodas giram, elas ora bloqueiam, ora
permitem a passagem de luz, que
produzida pelo LED, e estas transies so detectadas por semicondutores sensveis luz
Mouse por dentro

Tema 3

| Organizao dos Sistemas Operacionais

105

MONITOR
Em qualquer microcomputador necessrio a existncia de um sistema de vdeo para
que as operaes realizadas sejam mostradas
ou verificar o que est sendo digitado, carregado e at mesmo os resultados de clculos
solicitados pelo usurio.
Hoje todos os monitores so geralmente
coloridos com uma resoluo mxima em sua frequncia. Os monitores geralmente vm interligados
placa me do computador. Mas se houver necessidade de uma maior resoluo e rapidez na passagem dos grficos pode-se obter as placas de vdeos
chamadas de off board, ou seja, placas externas com
quantidade de memria prpria e modelo de chipset.
Os monitores utilizam o padro super-VGA,
mas a tecnologia vem modificando diariamente podendo este mudar a qualquer momento. Os adaptadores de vdeo se conectam ao monitor atravs de
pinos (DB-15), com o cabo ligado ao monitor que
possui uma interface macho e o conector que faz a
conexo com a placa usa a interface fmea.
Hoje com novas interfaces grficas os fabricante de placas de vdeos sentiram a necessidade de
utilizar recurso de acelerao de vdeo, o que ocorre
hoje em praticamente todas as placas de vdeo.
J nas aplicaes com 3D, que necessitam de
uma demanda maior de clculos matemticos e um
grande consumo de memria, necessrio a
instalao de placas 2D e mais placas acele-radoras.

Shutterstock/tatniz

Shutterstock/ravl

15 pinos
i
(DB
(DB-15))

106

Organizao e Arquitetura de Computadores

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro voc poder estudar mais detalhadamente os perifricos de entrada e sada no captulo 10.
CARTER, Nicholas. Arquitetura de computadores. 1.
ed. So Paulo: Bookman, 2003.
Neste livro voc poder ler mais sobre os dispositivos de entrada de sada.

PARA REFLETIR
No passado os monitores eram grandes e tinha
como caractersticas serem monocromticos. Hoje
em dia muito difcil encontrar estes monitores,
pois os novos monitores cada vez mais finos e com
uma qualidade cada vez melhor. Para que possamos melhor entender os monitores coloque no
ambiente AVA os diferente tipos de monitores com
suas caractersticas.

Tema 3

| Organizao dos Sistemas Operacionais

3.3 ENTRADA E SADA (teclado, porta paralela, portas seriais, Interrupes e acesso direto memria)
Neste contedo iremos ler sobre o dispositivo de entrada (teclado), sobre as portas paralelas
que transmitem 8 bits de dados de cada vez e as
portas seriais que transmitem um bit de dados de
cada vez, sobres as interrupes e, por ltimo, sobre o acesso direto memria.

TECLADO
Entre os perifricos de entrada o teclado,
juntamente com o mouse, so os mais utilizados.
Desde o incio da sua utilizao nos computadores
os teclados vm sendo modificados para melhor
utilizao como a quantidade de teclas que vm
aumentando. O teclado comeou com 84 teclas e,
nos dias de hoje, j tem teclado com 111 teclas.
Muitas delas so teclas de atalho, que possibilitam
a entrada em um determinado programa, apenas
clicando na tecla programada.
A maioria dos teclados vem utilizando um padro que chamamos de QWERTY US-Internacional,
mas a ABNT tambm padronizou seu layout de teclas baseado no QWERTY. Sendo assim, foi possvel
a colocao de teclas a mais com o e com uma
melhora significativa em relao s teclas com a
acentuao, tendo como finalidade facilitar os trabalhos dos usurios da lngua brasileira.
Os teclados utilizam dois padres pra sua conexo: a placa me, o DIN de cinco pinos e MINIDIN com at 6 pinos, com o surgimento do modelo
PS/2. Temos ainda alguns adaptadores
caso alguma placa me no venha com
algum dos tipos. Atualmente, alm dos
modelos citados, temos os teclados
que se conectam placa me atravs
da conexo USB.
Shutterstock/ilker canikligil

107

108

Organizao e Arquitetura de Computadores

PORTA PARALELA
As portas paralelas so dispositivos que permitem que os dados do computador saiam diretamente para um dispositivo externo (byte a byte),
ou seja, um conjunto de 8 bits um byte. A sua
comunicao paralela extremamente rpida e segura, mas est sujeita a rudos. Sendo assim, no
se pode usar em comunicaes com dispositivos
com uma grande distncia.
Quando temos uma porta paralela tradicional dizemos que unidirecional, ou seja, permite
apenas que os dados sejam enviados apenas pelo
computador ao perifrico especfico.
As portas paralelas so constitudas por interfaces com conectores de pinagem de 25 pinos
(DB-25) do tipo fmea, o que se diferencia das impressoras que em sua interface paralela utilizam os
conectores Centronics com pinagem de 36 pinos do
tipo fmea. Para que se possa realizar uma ligao
deve-se utilizar de um padro de conector DB-25
do tipo macho em uma das pontas e o Centronics
macho na outra ponta.
As portas paralelas possuem trs modos
de operao: as operaes SPP (standard paralel port), que um modo
de operao padro, com
caracterstica unidirecional e com uma taxa de
transferncia de no mximo 150 KB/s; o modo de
operao EPP (Enhanced
Parallel Port) que permite
uma maior taxa de transferncia de dados com o
Cabo paralelo

Tema 3

| Organizao dos Sistemas Operacionais

modo bidirecional, que pode ser de 500 kilobytes a


2 megabytes por segundo e o modo ECP (Extended
Capabilities Port) que foi lanado pela Microsoft e
a Hewlett Packard em 1992 que possibilita
uma taxa de transferncia de 2MB/s.
A porta paralela uma conexo muito
utilizada para conexo de perifricos como impressora e outros ao computador. Mas, atualmente, um nmero grande de perifricos vem surgindo
mais que podem tambm serem conectados as portas
paralelas com os scanners, Zip-drive. O uso tpico da
porta paralela a conexo do micro com a impressora.
Porm, atualmente, est surgindo um nmero maior
de perifricos que podem ser ligados porta paralela
como unidades de armazenamento (Zip-drive), scanners, unidade pticas externas.
Com a evoluo da tecnologia as portas paralelas
comearam a permitir a comunicao chamada bidirecional, ou seja, com duas linhas de comunicao, ficando assim mais rpida em sua transmisso de dados.

Portas seriais
A comunicao das portas seriais so realizadas bit a bit, no sendo possvel palavra por
palavras. Sendo assim, a comunicao literalmente
fica mais lenta e com um probabilidade de acontecerem erros. As portas seriais no necessitam de
muitos fios para se conectarem entre dispositivos
e possibilita que a ligao entre os meios acontea
em uma maior distncia. Os tipos de comunicao
serial podem ser do tipo sncrona, que transmite
um bit a cada pulso de clock e com caracteres back-to-back e assncrona, que utiliza o mesmo canal
sinalizando com um start bit para o incio de cada
caracter ou o fim de um conjunto de dados.

109

Shutterstock/SM

Scanners

Shutterstock/Kitch Bain

zip drive

110

Organizao e Arquitetura de Computadores

COMUNICAO ENTRE CPU E INTERFACE DE I/O


Para que possamos organizar a comunicao
entre a unidade central de processamento, memria principal e dos dispositivos de entrada e sada
necessrio utilizar os mtodos de memria compartilhados e o mtodo de entrada e sada isolada.
No mtodo de memria compartilhada a memria principal toma parte tanto por instrues de
um programas quanto por instrues de operao
de I/O. No mtodo de memria isolada criado um
espao com memria prpria de I/O que difere da
memria principal.
Quando temos uma memria compartilhada
no barramento de controle basta uma linha para
leitura e escrita, temos ento uma mesma memria que poder realizar somente uma operao de
escrita e leitura, seja ela para unidade central de
processamento/memria principal ou da unidade
central de processamento para a entrada e sada.
J na memria isolada ser necessrio um sinal que
seja identificado no topo da operao, pois quando
um endereo est no barramento para que se
possa saber se de I/O ou no.
Os perifricos de entrada e sada sempre utilizam endereos de I/O para que haja uma comunicao com o processador e as portas de comunicao utilizam endereo padro de entrada e sada.

Interrupes
Um problema da entrada e sada programada
a necessidade que o processador tem de esperar um bom tempo para que o mdulo de entrada e sada que foi requerido esteja em estado de
pronto, para que se possa enviar/receber os dados.
Enquanto h uma espera por parte do processador

Tema 3

| Organizao dos Sistemas Operacionais

o mesmo tem que testar continuamente o mdulo


de entrada e sada. Sendo assim, o desempenho
do sistema duramente afetado. Uma alternativa
seria o processador enviar um comando de entrada
e sada para um mdulo e continuar seu processamento. O processador seria interrompido quando o
mdulo de entrada e sada estivesse pronto para
troca de dados com o processador. Com isso, o
processador efetua a transferncia dos dados como
na tcnica anterior e retoma o seu processamento
que parou.
Vamos agora ver como isso funciona do ponto
de vista de entrada e sada. Quando temos uma entrada de dados o mdulo de entrada e sada recebe
um comando de leitura do processador. Os dados
so lidos e requeridos ao perifrico especfico. Quando esse dado estiver em seu registrador de dados o
mdulo de entrada e sada sinaliza com a interrupo do processo no processador por meio de uma
linha controladora. Ento, ele espera que o dado
lido seja solicitado pelo processador. A requisio
recebida e o dado colocado no barramento de dados, onde ficar preparado para uma nova operao
de entrada e sada.
No processamento das interrupes, quando
acontece uma ocorrncia, disparado um nmero
X de eventos para o hardware e para o software do processador. Quando temos uma operao
completa de entrada e sada ocorre uma sequncia
de eventos: o primeiro que o dispositivo envia
um sinal de interrupo; o segundo que antes
de responder a esta interrupo o processador tem
que terminar a execuo da instruo que estava
trabalhando; o terceiro, o processador tem que
testar a existncia de uma interrupo pendente e
quando a mesma detectada envia um sinal para
o dispositivo que enviou a interrupo; o quarto,
o processador se prepara para que haja a transfe-

111

112

Organizao e Arquitetura de Computadores

rncia, o controle para uma rotina de tratamento


de interrupo; o quinto, o processador carrega o
contador de programa com seu endereo de rotina
de tratamento de interrupo; o sexto, o valor do
contador de programa ter sido armazenado em
uma pilha do sistema para uma futura restaurao;
o stimo, o tratamento da interrupo iniciado:
o oitavo, o processo de interrupo concludo e
os valores que anteriormente foram armazenados
na pilha so restaurados em seus registradores e,
por ltimo, o contedo do contador do programa
restaurado.

Uso de interrupes nos PCs modernos

Acesso direto memria


A entrada e sada dirigida por interrupo
mais eficiente que a entrada e Sada programada
ainda necessita requerer uma interveno no processamento para que se possa transferir um dado
entre a memria e a entrada e sada. Essa transfe-

Tema 3

| Organizao dos Sistemas Operacionais

rncia realizada por uma caminho que passa pelo


processador. Sendo assim, existem duas desvantagens destas duas forma que vimos acima.
A primeira a taxa de tranferncia de entrada
e sada que se torna limitada e a segunda que
o processador ocupa no gerenciamento de transferncia de dados de entrada e sada, tendo que
executar um bom nmero de instruo para cada
transferncia.

DMA Controller Block Diagram

113

114

Organizao e Arquitetura de Computadores

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro voc poder estudar mais detalhadamente os perifricos de entrada e sada no captulo 10.
CARTER, Nicholas. Arquitetura de computadores.
So Paulo: Bookman, 2003.
Neste livro voc poder ler mais sobre os dispositivos de entrada de sada no captulo 9.

PARA REFLETIR
Os computadores pessoais tratam o teclado e o
monitor como dispositivos independentes. Ento,
para uma melhor interao, coloque no AVA os dispositivos de entradas e sada que voc conhece
apresentando as caractersticas deles, interagindo
assim com seus colegas.

Tema 3

| Organizao dos Sistemas Operacionais

3.4 Processo de Montagem de Microcomputadores


Neste captulo iremos mostrar como funciona um montador, sendo que cada mquina possui
sua prpria linguagem. O processo de montagem
bastante semelhante em mquinas diferentes, de
forma que possvel descrev-lo em formas gerais.

MONTADOR DE DOIS PASSOS


Constitui-se de um programa em linguagem
de montagem com uma srie de comandos de uma
linha. Poderia parecer natural ter um montador que
lesse um comando e se traduzisse para linguagem
de mquina. E, a partir dessa sada, a linguagem
de mquina iria gerar um arquivo junto com a parte
correspondente da listagem, se existir, em um outro arquivo. Esse processo seria repetido enquanto
todo o programa tivesse sido traduzido. Esse mtodo no funciona.
Um comando pode estar perto do fim do
programa, que torna impossvel ao montador encontrar o endereo sem primeiro ler quase todo o
programa, que denominamos de problema de referncia futura.
A referncia futura, que chamamos em ingls
de forward references, pode ser tratada de duas
maneiras, a primeira onde o programa fonte lido
pelo montador duas vezes e cada leitura chamada de um passo, e qualquer tradutor que ler duas
vezes chamado de tradutor de dois passos.
No passo um de um montador de dois passos as definies de smbolos so colecionadas e
armazenadas em uma tabela. No exato momento
em que o segundo passo comea os valores de
todos os passos so conhecidos. Assim, no restar quaisquer referncias futuras e os comandos

115

116

Organizao e Arquitetura de Computadores

podero ser lidos, montados e dar sada. Apesar


de este mtodo necessitar de mais um passo ele
conceitualmente direto.
O segundo passo constitui em realizar a montagem de qualquer jeito em um passo, quando um
comando for encontrado, e no possa ser montado
por conter uma referncia futura, ento nenhuma
sada ser gerada.
O montador de um passo mais complexo e
tem dificuldades em imprimir uma listagem que inclua o cdigo objeto real produzido. Sendo assim,
a maioria dos montadores so de dois passos.

PASSO UM

Tema 3

| Organizao dos Sistemas Operacionais

A funo do passo um construir uma tabela


que chamamos de tabela de smbolos, que contm
valores de todos os smbolos. Um smbolo um valor no qual atribudo um nome simblico, atravs
de uma instruo como o exemplo abaixo:
SIZE EQU 100
(EQU associa um valor definido pelo programador a um smbolo)
MOVE #SIZE, D0
(associa o valor decimal 100 ao smbolo SIZE,
que pode ser posteriormente refernciado em
outras instrues)
Quando temos a atribuio de um valor a um
smbolo em um campo de uma instruo, o montador dever saber em qual endereo essa instruo
dever estar durante a execuo do programa. Ento,
para que se possa informar o endereo da instruo
em tempo de execuo que est sendo montada,
o montador mantm a varivel durante o processo
de montagem. Isso conhecido como contador de
posio de instruo. A varivel sempre zerada no
incio do passo um e incrementada do comprimento
durante as prximas instrues processadas.
Alguns montadores permitem escrever instrues se utilizando de endereamento imediato,
mesmo que no exista qualquer instruo em linguagem. Quando o montador reserva alguma constante em memria isso denominado de literal.
Com isso o trabalho do programador poupado,
alm de melhorar a legibilidade do programa.
Em alguns montadores, aps ser lido um comando, ele ser armazenado em uma tabela. Se
esta tabela encher completamente, ela dever ser
escrita em um disco, que possivelmente ser escrito vrias vezes. Quando temos um pseudo END que
lido, o passo termina.

117

118

Organizao e Arquitetura de Computadores

SEGUNDO PASSO
A funo do segundo passo de gerar o programa objeto e, se possvel, imprimir a listagem de
montagem. O passo dois deve produzir informaes
necessrias ao linker para que se possa ligar o procedimento montado em suas instncias diferentes.

O comando fonte original e o cdigo objeto


gerado a partir dele sero impressos ou armazenados para posterior impresso.
Os Erros mais comuns na construo de um
programa fonte so:
1. smbolo usado, mas no declarado;
2. smbolo definido vrias vezes;
3. nome do campo cdigo de operaes
no um cdigo de operao vlida;

Tema 3

| Organizao dos Sistemas Operacionais

4. um cdigo de operao no foi provido


como nmero suficiente de operandos;
5. um cdigo de operao foi provido com
um grande nmero de operandos.
6. um octal contendo 8 ou um 9.
7. uma expresso com registrador foi utilizada ou no permitida.
8. falta do comando END.
Os programadores geralmente so muito hbeis
para inventar tipos de erros. Os erros de smbolos
que no so definidos, na sua maioria so causados
com frequncia por erros de datilografia e a melhor
coisa a se fazer em um erro o montador enviar uma
mensagem de erro e tentar continuar o programa.

TABELA DE SMBOLOS
Durante o passo um de um processo de
montagem, o montador acumula informaes acerca dos smbolos e de seus valores que devem ser
armazenados na tabela de smbolos, para uma pesquisa no passo dois.
Existem vrios mtodos para que se possa
organizar uma tabela, mas todos eles tentam simular uma memria associativa, que nada mais
do que um conjunto de pares, smbolos ou valor.
Dado o smbolo, a memria associativa deve produzir um valor. O modo de ordenar por smbolo
usar algoritmo de busca binria pra se procurar
outro smbolo.
O algoritmo funciona comparando o smbolo
ao meio de entrada da tabela. Quando o smbolo
estiver antes da entrada do meio, em ordem alfabtica, ele deve estar localizado na primeira parte
da tabela e se o smbolo estiver aps a entrada do

119

120

Organizao e Arquitetura de Computadores

meio, deve estar na segunda parte da tabela e se o


smbolo for igual a sua entrada do meio, a temos
o final da busca.
Quando temos uma entrada do meio que no
seja igual ao smbolo procurado, ao menos sabemos em qual metade da tabela se deve procurar. A
busca binria poder ser aplicada da metade correta, o que vai resultar em um compatibilidade ou em
um quarto correto da tabela.
Quando utilizamos as aplicaes recursivas do
algoritmo, a tabela de n entradas de tamanho poder ser pesquisada em cerca de log de n tentativas.
Este modo bem mais rpido que o modo anterior.

Tcnica de hashing ou espelhamento

Uma tcnica diferente de simular uma memria associativa a tcnica conhecida como
HASHING. Essa tcnica requer uma funo chamada
HASH, que mapeia os smbolos em inteiros na faixa
de 0 a K -1.
Uma possvel funo seria multiplicar os cdigos da tabela ASCII dos caracteres do smbolo,
ignorando o overflow e tomando o resto da diviso
por K.

Tema 3

| Organizao dos Sistemas Operacionais

Tabela ASCII

INDICAO DE LEITURA COMPLEMENTAR


TANENBAUM, Andrew S. Organizao estruturada de
computadores. 5. ed. Rio de Janeiro: Prentice Hall, 2006.
Neste livro voc poder ler mais sobre o processo
de montagem no captulo 7.
MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro voc poder ler mais sobre tabela de
smbolos no captulo 9.

121

122

Organizao e Arquitetura de Computadores

PARA REFLETIR
Quando temos a tabela de smbolos temos o algoritmo de pesquisa binria. Ento, para que possamos ter conhecimento sobre a pesquisa binria,
vamos pesquisar nas literaturas o que seria o algoritmo de pesquisa binria e colocar em discusso
no Ava.

RESUMO
Voc aprendeu neste tema sobre as memrias, conhecendo um pouco da memria principal, as definies sobre a memria RAM e ROM, o mapa de
endereos de memria, a conexo da memria com
a CPU e sobre a memria associativa. Com isso, foi
possvel aumentar o seu conhecimento em relao
ao tema abordado.
Voc tambm pde conhecer sobre os dispositivos
de entrada e sada com suas estruturas e ligaes
com o computador, bem como sobre o processo de
montagem possibilitando um conhecimento sobre
este processo desde o montador de dois passos
at a tabela de smbolos.

A Interface do Hardware

Neste tema iremos estudar os formatos de instrues em linguagem de mquina, os modos de endereamento, os tipos de instrues em linguagem de mquina e as noes da linguagem de
programao Assembly.

124

Organizao e Arquitetura de Computadores

4.1 Formatos de Instrues em Linguagem de


Mquina
Um programa constitudo de uma sequncia
de instrues, cada uma especificando uma ao
particular. Essas instrues contm a localizao do
dado que foi utilizado pela instruo.
Endereamento o local onde os operandos
esto, ou seja, seus endereos.
Existem alguns formatos tpicos de instrues:

(a) Instruo sem endereo. (b) Instruo com um endereo. (c) Instruo com dois endereos. (d) instruo com trs endereos. instruo
sem endereo.

As instrues podem ser curtas, longas ou do


mesmo tamanho de uma palavra.

CRITRIOS DE PROJETO PARA FORMATOS DE


INSTRUES
Quando precisamos escolher um formato de
instruo para uma mquina, devemos considerar
alguns fatores importantes.
Primeiro: as instrues curtas so melhores
que as longas (este o mais importante). Quando
temos um programa de n instrues de 16 bits,
este toma apenas a metade do espao de endereamento da memria necessria a n instrues
de 32 bits.

Tema 4 | A Interface do Hardware

Segundo: que cada memria tem sua taxa


de transferncia particular que determinada pela
tecnologia e seu projeto de engenharia da memria. O nmero de bits por segundo que pode ser
lido da memria visto como taxa de transferncia.
Quando temos uma memria rpida porque ela
fornece a um processador mais bits por segundo
do que uma memria lenta. Aumentar o nmero de
instrues por segundo , portanto, um importante
critrio na hora de um projeto.
Terceiro: que o comprimento da palavra de
mquina seja um mltiplo inteiro de seu comprimento de caracteres. Quando o cdigo de caracteres
possui K bits o comprimento de palavra deve ser k,
2k, 3k, 4k..., pois de outra forma ser desperdiado
espao no armazenamento de caracteres. possvel
armazenar 3,5 caracteres por palavra, o que causa
acessos muitos ineficientes aos caracteres.
O quarto critrio quando o projeto diz respeito ao nmero de bits no campo de endereo.

EXEMPLOS DE FORMATO DE INSTRUO


Vamos estudar agora os formatos de nveis
convencionais de mquina do PDP-11, INTEL e MOTOROLA, onde inclumos o PDP-11 por sua simplicidade e sua regularidade.

PDP-11.
As instrues de dois operandos do PDP-11
so codificados como na figura 2, onde cada instruo deve conter um cdigo de operao de 4 bits
e mais dois campos de endereamento de 6 bits.
O bit que fica mais para a esquerda do cdigo de
operao indica se a instruo opera sobre bytes.

125

126

Pdp -11

Organizao e Arquitetura de Computadores

Os campos de endereamento
que se subdividem em um de trs bits
para o modo e outro de trs bits para
o registrador.
Quando temos um conjunto de
instrues em que o mtodo especificado dos endereos dos operandos
independente do cdigo de operao,
ele chamado de ORTOGONAL.
Poucas outras instrues, inclusive as instrues de um operando, o
PDP-11 utiliza-se de um esquema de
cdigos de operao expandindo, com cdigos de
operao do x111( binrio), que se utiliza como escape para cdigos de operaes maiores. As instrues do PDP-11 que endeream memria possuem
uma ou duas palavras de 16 bits adicionais para
as seguintes instrues de se especificar os endereos.
Cdigo de operao de expanso

Tema 4 | A Interface do Hardware

FAMLIA INTEL
As CPUs Intel tm uma situao diferente
e muito menos regular. Temos instrues de dois
operandos: quando um operando est na memria
o outro operando no poder estar na memria.
Sendo assim, existem instrues para se adicionar o contedo de dois registradores e adicionar o
contedo de um registrador ao contedo de uma
localizao de memria, e adicionar um contedo
de uma localizao de memria ao contedo do
registrador, mas quando no existe instrues para
adicionar o contedo de uma localizao de memria ao contedo de uma outra localizao de
memria, algo em que o PDP-11 permite sua ortogonalidade.

127

128

Organizao e Arquitetura de Computadores

Tipos de instrues

Os segmentos de 32 bits, como no caso do


80386, que bem diferente daqueles do 80888 e
do 80286, requerem um byte adicional que chamamos de SIB, que prove uma especificao adicional.
FAMLIA MOTOROLA
Na codificao de instrues dos modelos
Motorola apresentada uma diferena muito interessante em relao aos modelos PDP-11 e INTEL. Isso muito evidente quando um conjunto
de instrues e modos de endereamento foram
influenciados pelos projetistas do modelo 68000
em relao codificao de instrues.
O PDP-11 tinha como filosofia de codificao
das instrues a ortogonalidade do cdigo de operao e operandos.
O 68000 tem muito mais instrues que PDP11 e com trs comprimentos de dados em vez de
dois. Com isso os projetistas poderiam se dar ao
luxo da codificao ortogonal regular de instrues.

Tema 4 | A Interface do Hardware

Formatos de instrues do sparc

Mais do que a ortogonalidade os projetistas


do 68000 tentavam alocar mais espaos de cdigos
de operao para as instrues importantes e um
espao menor para o cdigo de operao que no
fosse importante.
As codificaes no apenas levam a compiladores e montadores complexos, que tm de gerar
formatos estranhos, mas tambm a microprogramaes complicadas que tm de desmembrar os
formatos durante sua execuo.
Este enfoque geralmente leva a programao
a ser mais eficiente, porm a compilao mais complicada. A instruo MOVE a mais importante em
qualquer programada e sua codificao utiliza o 1,
com tamanho de campo 1 igual a byte, 2 igual a palavra longa e 3 igual a palavra, e com dois campos
de operandos de seis bits. O campo de operando

129

130

Organizao e Arquitetura de Computadores

possui um modo de trs bits e um campo de registrador de trs bits.


Em algumas instrues com formatos e deslocamento com rotao, h uma variante no formato de oito, com uma constante de deslocamento
CONTADOR com uma parte de instruo e outra no
formato de cinco, onde temos o nmero de deslocamento que especificado em um registrador.
J os formatos sete e nove existem porque
grandes estudos vm mostrando que, na maioria
das constantes que aparecem nos programas, so
de pequeno valor. O de sete permite que uma constante de oito bits seja carregada em um nico registrador e em uma nica instruo de dezesseis
bits j o formato de nove permite que um nmero
na faixa de um a oito seja adicionado ou subtrado
com eficincia de um operando. Para que possamos adicionar o nove a um registro, utilizamos uma
instruo ADDI no formato treze, juntamente com
uma palavra de dezesseis bits extra, para que seja
armazenada a constante nove.
PENTIUM II
Quando temos formatos de instruo no Pentium II, temos uma variedade de instrues, pois
apenas o campo de cdigo de operao est presente em todos os seus formatos. As instrues
contm de zero a quatro prefixos de intrues operacionais, cdigo de operao de um ou dois bytes,
campo de endereo opcional, que consiste no byte
Mod r e no byte Scale Index, um campo opcional de
operando imediato e um deslocamento.
Os bytes de prefixo possuem um prefixo de
instruo que, caso esteja presente, poder ser o
prefixo LOCK. Este prefixo utilizado para assegurar o uso da memria compartilhada em ambiente
de multiprocessamento. A seleo de registrador

Tema 4 | A Interface do Hardware

de segmento responsvel por especificar o registrador de segmento que dever ser usado na
execuo da instruo. O tamanho de endereo, o
processador poder enderear de 16 a 32 bits, pois
o prefixo de tamanho de endereo quem indica
se deve utilizar um tamanho diferente do padro.
POWER PC
As instrues do PowerPC possuem um tamanho de 32 bits e tm um formato regular. Em
sua formatao os seis primeiros bits so aqueles
que identificam a operao que ser efetuada. Na
maioria das instrues em operaes de aritmtica
e ponto flutuante, inclui um bit, que ir indicar o
resultado de cada operao e que dever ser anotado no registrador. Essa caracterstica muito til
no processamento de previso de desvio.
Quando temos as instrues de ponto flutuante os mesmos possuem trs campos para trs
registradores fontes, sendo que em muitos casos
s so utilizados apenas dois registradores. Em
algumas instrues que envolvem a multiplicao
com dois registradores fontes com a colocao de
um terceiro registrador. A colocao dessa instruo composta se deve frequncia com que so
utilizadas.

131

132

Organizao e Arquitetura de Computadores

INDICAO DE LEITURA COMPLEMENTAR


MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro voc poder verificar mais informaes sobre instrues em linguagem de mquina no captulo 1.
TANENBAUM, Andrew S. Organizao estruturada de
computadores. 5. ed. Rio de Janeiro: Prentice Hall,
2006.
Neste livro voc poder verificar mais informaes sobre instrues em linguagem de mquina no captulo 1.

PARA REFLETIR
Um formato de instruo quem determina a disposio de bits da instruo. Para que possamos
melhorar o nosso conhecimento vamos colocar em
frum no Ava como o formato de instruo do
VAX.

Tema 4 | A Interface do Hardware

4.2 Modos de Endereamento


Um conjunto de registradores numerados em
uma CPU constitui uma memria de alta velocidade e define um espao de endereamento. So comuns as instrues que especificam um, dois ou
trs endereos.
So denominadas de acumulador as mquinas que fazem aritmtica com um endereo apenas
e um registrador especial.
Exemplo de uma instruo para adio com o
contedo do endereo m de uma palavra de memria:

acumulador:= acumulador + memria [m]


Quando temos instrues com dois endereos de soma como fonte e outro como
destino a fonte somada ao destino.

destino:= destino + fonte


Quando temos instrues com trs endereos so especificadas duas fontes e um
destino, onde as duas fontes so adicionadas e armazenadas no destino.

ENDEREAMENTO IMEDIATO
Os operandos imediatos so aqueles que so
especificados na instruo propriamente dita, onde
o campo do operando contm o que ser de fato
usado em conjuno com a operao especificada na instruo. Quando temos o endereamento
imediato no existe uma referncia extra memria para buscar o operando, como desvantagem de
restringir o operando a um nmero que possa caber em um campo de endereamento.
No 68000 algumas instrues permitem constantes de 8 a 16 bits, sendo que no 68020 todos

133

134

Organizao e Arquitetura de Computadores

os trs comprimentos so permitidos em qualquer


lugar. As instrues especiais como ADDI, ADDQ
permitem instrues imediatas.

ENDEREAMENTO DIRETO
O endereamento direto igual ao endereo
contido na instruo, ou seja, o operando est na
memria e especificado no campo do endereo.
As CPUs da INTEL possuem endereamento
direto, os modelos 8088 e o modelo 80286 utilizam endereos diretos de 16 bits, j o modelo
80386 utiliza 16 bits nos modos real e virtual com
segmentos de 16 bits em modo protegido. Quando
temos o modo protegido de 32 bits, os endereos
diretos so de 32 bits.

Tema 4 | A Interface do Hardware

ENDEREAMENTO DE REGISTRADOR
No modo registrador o campo endereo especifica um registrador do processador, e os operandos so os valores nos registradores.
Uma pgina com 16 registradores e 65.536
palavras de memria possui, na realidade, dois espaos de endereamento. Como neste caso existe
menos registradores do que palavras de memria,
ento precisa-se de um endereo menor, e assim instrues de diferentes formatos so frequentemente
utilizadas para operandos tipo registrador e operando do tipo memria. Assim, se temos uma instruo
de registrador para cada instruo que endereasse
memria, ento a metade dos cdigos de operao
seria para operandos do tipo memria e a outra metade para tipo registrador, pois seria necessrio um
bit no cdigo do operando para designar qual o espao de endereamento a ser usado.
Temos duas razes que nos mostra por que
os registradores foram projetados com registradores.
Na primeira os registradores so mais rpidos do
que a memria principal e, na segunda, como eles
so em pequeno nmero, so necessrios apenas
alguns bits para endere-los.
A INTEL e a MOTOROLA possuem um amplo
repertrio de instrues que obtm seus operandos
de registradores e depositam o resultado em um
registrador.

ENDEREAMENTO INDIRETO
O endereamento indireto um modelo no
qual o endereo quem especifica qual palavra de
memria contm no o operando, mas sim o endereo do operando.

135

136

Organizao e Arquitetura de Computadores

Os processadores INTEL possuem endereamento indireto via um registrador. Em alguns processadores so permitidos endereamento indireto
de mltiplos nveis. Neste modo de endereamento, o apontador utilizado para localizar uma palavra de memria que aponta para uma palavra de
memria e assim por diante.
Os endereamentos direto, indireto, imediatos e
indiretos de mltiplos nveis exibem uma certa progresso, pois o endereamento imediato no necessita de
quaisquer referncias na memria, j o endereamento
direto requer uma referncia de memria para buscar
o operando. O endereamento indireto, por sua vez,
requer duas referncias a memria, sendo uma para
o apontador e a outra para o operando. E os endereamentos indiretos de mltiplos nveis requerem pelo
menos trs referncias na memria, sendo duas ou
mais para apontadores e uma para o operando.
Pontos importantes entre INTEL e MOTOROLA:

Intel:
As unidades centrais de processamentos possuem endereamento direto. Os
8088/80286 possuem endereos diretos
de 16 bits, j o 80386 utiliza endereos
diretos de 16 bits, possui segmentos de
16 bits no modo protegido e utiliza endereos diretos de 32 bits no seu modo
protegido de 32 bits.

Motorola:
No Motorola existem duas formas de
endereamento direto, a de 16 bits e a
32bits. As formas de endereamento direto so indicadas no campo MODO de 3
bits, em que os operandos de instruo
so aplicados.

Tema 4 | A Interface do Hardware

INDEXAO
Embora alguns programas que modificam a
si prprio tenham sido populares, isto atualmente considerado uma m prtica de se programar.
Elas so difceis de depurar e geralmente dificultam
o compartilhamento de um programa entre vrios
usurios de um sistema de tempo compartilhado
ou TIME SHARING SYTEM. O problema de se ter
uma cpia pode ser resolvido atravs do endereamento indireto, onde um registrador ou posio de
memria carregado com um endereo e o outro
carregado com outro endereo. As instrues utilizam o MOVE que utiliza os dois endereos como
apontador e depois que cada palavra foi copiada
os apontadores para ele so incrementados de 1.
Endereamento Indexado

137

138

Organizao e Arquitetura de Computadores

Os apontadores fazem parte dos dados e no


fazem parte do programa, logo no sero compartilhados entre usurios simultneos. Uma soluo
a que poderamos utilizar os registradores de ndice, que possuem endereos com duas partes onde
uma parte o nmero de um registrado e a outra
uma constante.
O endereo do operando a soma da constante com o contedo do registrador de ndice.
A indexao tambm utilizada para enderear um campo com um deslocamento conhecido,
em relao ao incio de uma dada estrutura.
Alguns algoritmos necessitam da execuo
de algumas operaes sequenciais de estrutura de
dados armazenados em posies consecutivas de
memria.
Exemplo:

B, B + 1, B + 2, ..., B + N 1
QUANDO COPIADO NAS POSIES

C, C +1, C + 2,... C + N 1
A Mquina POSSUI UMA INSTRUO

MOVE B,C
O CONTEDO DE B VAI SER COPIADO PARA
O CONTEDO C, PODER-SE-IA EXECUTAR
ESTA INSTRUO, MODIFICAR A PRPRIA INSTRUO PARA
MOVE B + 1, C + 1
CPUs MOTOROLA e INTEL possuem diversos
modos de endereamento que envolvem indexao.

Tema 4 | A Interface do Hardware

ENDEREAMENTO DE PILHA
J percebemos que as instrues de mquina
so to curtas quanto possvel, ou seja, para que
se possa economizar memria e tempo da CPU.
A Pilha consiste em itens de dados armazenados em ordem consecutiva na memria. Sempre
que o primeiro item colocado na pilha denominado fundo da pilha, e teremos associado a cada
pilha um registrador ou palavra de memria que
contm o endereo do topo da pilha, o que denominamos de Apontador da Pilha.

Uso da pilha para armazenar variveis locais. (a) Enquanto A est ativo.
(b) Aps A ter chamado B. (c) Aps B ter chamado C. (d) Aps Ce B
terem retornado e A ter chamado D

Os computadores orientados a pilha possuem uma instruo para inserir o contedo e uma
posio de memria ou de um registrador na pilha.
Essa instruo deve tanto incrementar o apontador
de pilha quanto copiar o item.
As instrues que no possuem endereos
so utilizadas conjuntamente com uma pilha. Sendo assim, esta forma de endereamento especifica
que os dois operandos devem ser retirados da pilha, um aps o outro, a operao executada e o
resultado recolocado da pilha.

Utilizao de uma pilha em aritmtica

139

140

Organizao e Arquitetura de Computadores

INDICAO DE LEITURA COMPLEMENTAR


TANENBAUM, Andrew S. Organizao estruturada
de computadores. 5. ed. Rio de Janeiro: Prentice
Hall, 2006.
Neste livro, no captulo 05, voc encontrar mais
detalhadamente sobre os endereamentos.
<http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node110.html>.
Neste link voc encontrar mais sobre os endereamentos.

PARA REFLETIR
No endereamento direto o valor binrio contido
no campo operando da instruo vai indicar o endereo de memria, onde se localiza o dado, j o
endereamento indireto, o valor binrio do campo
operando vai representar o endereo de uma clula. Com essa explicao faa uma anlise sobre o
endereamento direto e indireto criando um frum
no AVA e postando um comentrio.

Tema 4 | A Interface do Hardware

4.3 Tipos de Instrues em linguagem de mquina


As instrues convencionais de mquinas
podem ser divididas aproximadamente em dois
grupos: as de instrues de propsito geral e as
instrues de propsito especial.
As instrues de propsito geral podem ser
usadas em vrias aplicaes, o que diferencia das
aplicaes especiais, que tem sua aplicaes bem
restritas.
Quando temos um conjunto simples de instruo de mquina podemos implementar um comando apenas com trs instrues com a seguinte
sequncia:
1. O registrador deve ser carregado na posio de memria.
2. Adicionar um contedo na posio de
memria.
3. Armazenar o contedo na posio de
memria.
Acima, podemos verificar que uma instruo
de alto nvel pode requerer vrias outras instrues
de mquina. Isso tpico de uma relao entre a
linguagem de mquina e a linguagem de alto nvel.
Quando temos uma linguagem de alto nvel
as operaes so colocadas de maneira algbricas,
se utilizando de variveis, e na linguagem de mquina as operaes so colocadas de maneira mais
bsica, tendo a movimentao de dados para o registrador.
As instrues de mquinas possuem quatro
tipos:

141

142

Organizao e Arquitetura de Computadores

1. Processamento de dados: que engloba as


instrues aritmticas e lgicas.
2. Armazenamento de dados: que so as
instrues de memria.
3. Movimentao de dados: que so as instrues de entrada e sada.
4. Controle: que so as instrues de teste
e desvio.
As instrues aritmticas fornecem a capacidade para o processamento dos dados numricos.
As instrues lgicas vo operar sobre bits de uma
palavra, sendo com bits e no com nmeros, tendo
a capacidade de processar qualquer outro tipo de
dados que se deseje empregar.
Essas operaes so realizadas inicialmente
com dados armazenados em registradores. Com isso
devem existir instrues de memria para que se
possam movimentar os dados entre a memria e os
registradores. As instrues de entrada e sada so
necessrias para que se possa transferir programas
e dados para a memria e para que se possa transferir os resultados para o usurio do computador.
As instrues de teste so necessrias porque so
as que realizam os teste do valor de uma palavra de
dados. As instrues de desvio servem para que seja
feito um desvio na execuo do programa corrente
para uma nova instruo.

AS INSTRUES DE TRANSFERNCIA DE DADOS


Quando temos instrues de transferncia de
dados precisamos colocar inicialmente que a cpia
de dados de um lugar para outro uma operao

Tema 4 | A Interface do Hardware

essncia, pois entendemos por cpia como sendo a


criao de um novo objeto, com suas caractersticas
semelhantes ao original e a palavra transferncia
em instrues significa que um dado foi transferido
para outro endereo, mas o original permaneceu no
mesmo endereo de origem.
O termo instrues de transferncia de dados
poderia at se chamar de duplicao de dados pelo
motivo que descrevemos acima.
Os dados podem ser armazenados em lugares diferentes. O que difere no modo em que as
palavras so acessadas em trs lugares comuns
uma palavra na memria especfica, uma pilha ou
um registrador. A pilha mantida em dois locais
especficos, na memria e no registrador especial,
mas a maneira em que podemos acess-la diferenciada dos padres de acesso memria.
As instrues precisam indicar de alguma maneira o modo e a quantidade de dados necessrios
para transferncia, algumas instrues para que se
possa mover uma quantidade de dados desde 1 bit
at a memria inteira e, quando temos palavras
com um tamanho fixo, o nmero de palavras a serem transferidas especificado pela instruo.

OPERAES DIDICAS
As operaes didicas so aquelas que combinam dois operandos para que possa produzir um
nico resultado. Na maioria das mquinas do nvel
2 visto esse tipo de operao, por conter instrues que realizam adio e subtrao, o que
uma exceo nos microcomputadores com 8 bits,
multiplicao e diviso que tambm bastante comum. Em outras operaes didicas so includas
as operaes booleanas, tendo como caracterstica

143

144

Organizao e Arquitetura de Computadores

as suas 16 funes booleanas com duas variveis,


mas poucas mquinas de nvel 2 possuem instrues para as 16 funes.
H trs instrues que esto presentes na
maioria das mquinas. So com AND, OR e EXCLUSIVE OR, j nas mquinas com tamanho fixo de palavra o AND calcula bit a bit os argumentos da palavra,
obtendo um resultado tambm de uma palavra.
O AND muito utilizado na extrao de bits
de palavras, pois para extrair um caractere feito
um AND, na palavra contendo o caractere e uma
constante que chamamos de mscara. O resultado
que encontramos da operao que o bit que no
necessrio trocado para 0.
EXEMPLO:
10110111 10111100 11011011 10001011 A
00000000 11111111 11111111 00000000 B (mscara)
____________________________________
00000000 10111100 11011011 00000000
A AND B
Em operaes com AND ele tende sempre a
remover o nmero 1, pois nunca haver mais nmeros 1 no resultado do que qualquer lugar das
operaes.
Um fato importante era que os primeiros
computadores realizavam suas operaes de ponto
flutuante chamado de procedimento em software.
Hoje alguns computadores que so projetados para
projetos cientficos possuem instrues de ponto
flutuante no nvel 2 para uma melhor velocidade.

Tema 4 | A Interface do Hardware

OPERAES MONDICAS
As operaes mondicas tm como caracterstica fundamental ter um operando e produzir um
nico resultado. Nelas so especificados muito menos endereos que as operaes didicas. Sendo
assim, so mais curtas em muitas das vezes.
As instrues utilizadas para deslocar ou rodar um contedo de um palavra so teis e frequentemente providas de formas diferenciadas.
Os deslocamentos so operaes em que o
bit removido para a direita ou para a esquerda,
perdendo, assim, bit de deslocamento para fora da
palavra. As rotaes so os bits que so jogados
para fora da palavra que reaparece em outro lado.
Sendo assim, a diferena entre uma rotao e um
deslocamento de 2 bits mostrada abaixo.
00000000 00000000 00000000 01100011 A
00000000 00000000 00000000 00011000 A Deslocamento
11000000 00000000 00000000 00011000 A Rotao
As unidades centrais de processamento Intel
possuem instrues INC e DEC para soma e subtrao. J as unidades centrais de processamento do
680x0 possuem instrues gerais, como o ADDQ e
o SUBQ, que somam e subtraem uma constante na
faixa de 1 a 8.

INSTRUES DE CHAMADA DE PROCEDIMENTOS


Um grupo de instrues que realiza uma tarefa
e pode chamar vrias partes de um programa chamamos de procedimentos. A sub-rotina geralmente
utilizada no lugar do procedimento, principalmente
quando um programa de linguagem de montagem.
Quando um procedimento finaliza sua tarefa,

145

146

Organizao e Arquitetura de Computadores

preciso que ele retorne o comando. Sendo assim,


o endereo retorna para o procedimento, de modo
que ele saiba aonde dever retornar.
O endereo de retorno pode ser colocado em
trs lugares essenciais: na memria, no registrador
ou na pilha, sendo que uma das piores situaes
seria a colocao em uma nica posio na memria. Uma pequena melhora haveria se a instruo
de chamada de procedimento armazenasse o endereo de retorno na primeira palavra do procedimento, desde que a primeira instruo executvel
estivesse na segunda palavra. Sendo assim, o procedimento poderia retornar saltando indiretamente
para a primeira palavra.
Um procedimento tambm pode chamar
outros procedimentos, pois cada procedimento,
possui um espao para um endereo de retorno.
Quando um procedimento se chama e este falha
porque o primeiro endereo de retorno ser destrudo na segunda chamada.
Quando um procedimento chama a si prprio
denominamos de recurso, que muito importante
para os programadores.
Se quisermos, ainda, melhorar o procedimento, podemos solicitar que a instruo de chamada de procedimento coloque o seu endereo de
retorno em um registrador, tendo como responsabilidade o seu armazenamento, poder requerer
o endereo e se o procedimento for recursivo ele
ter que colocar o retorno em algum lugar diferente cada vez que for chamado. E a melhor coisa
a se fazer para instruo de chamada de procedimento fazer um endereo de retorno e coloc-lo
numa pilha.

Tema 4 | A Interface do Hardware

147

CONTROLE DE LOOP
Quando temos a necessidade de um grupo
de instrues executar um nmero fixo de vezes
repetidamente, algumas mquinas possuem instrues para facilitar este processo, pois todo o
processo envolvido por um contador que a cada
passo incrementado ou decrementado de certa
maneira a fazer um loop. Este contador testado
cada vez no loop. Se uma condio for atingida o
loop ser encerrado.
Um loop com um teste no final sempre ser
realizado uma vez.
As famlias de processadores possuem uma
instruo que primeiro testa os cdigos de condio
para uma outra condio, passando pelo loop. Se o
loop for V, (verdadeiro), se esta condio for F, (falso)
o registrador ele ser decrementado e se o resultado
for >=0, o loop ser repetido, ou ento o loop ser
encerrado e a instruo seguinte ser executada.
Exemplo de um LOOP:
X:=1;
1: { temos aqui o primeiro comando }
{ temos aqui o segundo comando }
{ temos aqui o terceiro comando }
.
.
.
{comando final }
X:= x +1;
If X<=N then goto 1;
2: {neste ponto ser realizado o primeiro comando aps
o loop}

148

Organizao e Arquitetura de Computadores

INDICAO DE LEITURA COMPLEMENTAR


TANENBAUM, Andrew S. Organizao estruturada
de computadores. 5. ed. Rio de Janeiro: Prentice
Hall, 2006.
Neste livro voc encontrar mais detalhadamente
sobre as instrues em linguagem de mquina no
captulo 5.
MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
Neste livro voc encontrar mais detalhadamente
sobre as instrues em linguagem de mquina no
captulo 8.

PARA REFLETIR
As operaes mondicas so aquelas que tm um
operando e produzem um resultado. Neste caso
elas so mais curtas que as operaes didicas.
Com essa informao coloque no ambiente AVA sua
opnio sobre as operaes mondicas e didicas.

Tema 4 | A Interface do Hardware

4.4 Noes de Programao em Assembly


Assembly, traduzida para o portugus, significa conjunto. Na rea de informtica significa uma
linguagem de construo de programas, uma linguagem de montador.
O Assembly uma linguagem que se diferencia das linguagens Pascal, pois no passa por um
compilador e sim por um montador. O montador
traduz a linguagem de baixo nvel enquanto que o
compilador traduz linguagem de alto nvel.
Os programas em Assembly tem como caractersticas que cada instruo representa uma
instruo em linguagem de mquina, ou seja, a relao entre instrues Assembly e Cdigo de Mquina de 1 para 1.
O processo de montagem se d em dois momentos. O primeiro deles a gerao do cdigo
objeto. Este cdigo j a traduo do programa,
mas em blocos separados. O segundo passo a
traduo propriamente dita, gerando o cdigo objeto. Aps a gerao do cdigo objeto necessrio
acionar o ligador, que responsvel por conectar
todos os arquivos objetos e gerar um arquivo nico
com todos os programas.
POS
DS.W
1
; Busca 0 na sequencia de inteiros
SRCH0
MOVEA.L
#DATUM,A0;
(DATUM) definido alhures
MOVE.L
#DATUM,D0; guarda
incio
CLR.W
D1
LOOP
CMP.W
(A0)+,D1
BNE
LOOP
SUB.L
A0,D0
MOVE.W
D0,POS
RTS
END
(cdigo de um tpico programa assembly)

149

150

Organizao e Arquitetura de Computadores

Entretanto, o assembly utilizado no mercado em algumas reas. Por exemplo, os programas


escritos em assembly conseguem maior velocidade
e tamanho reduzido, superando a capacidade dos
melhores compiladores.

LINGUAGEM DE MONTAGEM
As principais diferenas entre as linguagens
simblicas como as usadas para os processadores
hipotticos RAMSES e CESAR e o montador comercial como o MASM so:

Possibilidade de declarao e uso de labels. As labels so usadas para designar


variveis como instruo. Um label corresponde a uma posio de memria e
substitui um endereo, seja este de operao ou de desvio.

Existncia de diretivas do montador.

Um montador no gera cdigo executvel


e no deve ser confundido com conjunto de instrues de um processador, pois temos as diretivas, que so apenas comandos para informar ao
montador algumas opes do programador e para
facilitar a escrita do programa.
Um montador apenas um programa. Podem
existir vrios tipos de montador de diferentes arquitetura. Os montadores para uma mesma arquitetura aceita o mesmo mnemnico para as instrues
de mquina, porm podem apresentar diferenas
significativas quanto quantidade e aplicao de
pseudoinstrues.
Colocaremos algumas diretivas do montador
MASM neste captulo. Um montador assembler utiliza basicamente dois formatos de linha:

Tema 4 | A Interface do Hardware

LINHA DE INSTRUO
LINHA DE DIRETIVA
Uma linha de instruo contm um mnemnico
de uma instruo e vai gerar uma instruo de mquina. Tem o formato que apresenta vrios campos.
Uma linha de diretiva possui o formato como
abaixo:
Nome diretiva operandos; comentrio
O nome no seguido de :

FIM DO PROGRAMA FONTE


Sua diretiva representada por ; END
Sua funo indica para o montador o fim do
programa. Essa diretiva deve ser usada no
fim do programa.
Seu formato: END [label-name]
A informao contida em label-name opcional e indica ao montador o label da primeira
instruo do program a ser executado. Se no for
fornecida, o montador assume a execuo a partir
da primeira instruo;
Exemplo:
.
;DECLARAO DE VARIVEIS
START . ;...
.
; PRIMEIRA INSTRUO
.
;
END START ; FIM DO PROGRAMA FONTE
A diretiva END poder aparecer com diferentes

151

152

Organizao e Arquitetura de Computadores

terminaes (ENDIF, ENDM, ENDP, ENDS). O END sempre determina o fim de um trecho do programa fonte.

TIPOS DE DADOS PARA O MONTADOR


O montador reconhece trs tipos de dados:
as constantes, as variveis e as labels. A constante
um nome associado a um nmero, sem qualquer
atributo. As variveis identificam os objetos manipulveis e formam os operandos para instruo de
manipulao de dados como (MOV, ADD, AND, MUL
...). As labels identificam principalmente o cdigo
ou instruo que formam os operandos das instrues de saltos condicionais, saltos incondicionais e
chamada de subrotina.
As labels esto associadas a trs atributos:
1. SEGMENTO
2. DESLOCAMENTO DENTRO DO SEGMENTO
3. TIPO OU DISTNCIA.

DEFINIO DE NOME E NMERO


Os nomes de variveis, labels, constantes,
segmentos e procedure seguem as seguintes regras:
1. Nomes podem usar letras, dgitos e os
seguintes caracteres: ? @ _ $
2. O primeiro caractere de um nome no
pode ser um dgito;
3. Nomes podem ter qualquer comprimento,
mas o montador s vai considerar os primeiros 31 caracteres;
4. Nomes reservados no podem ser utilizados.

Tema 4 | A Interface do Hardware

Os nmeros podem ser especificados em binrio, decimal e hexadecimal. Os nmeros devem


sempre iniciar por um dgito de 0 a 9.
1. Para nmeros decimais basta utilizar de
0 a 9;
2. Para nmeros binrios, devem-se utilizar
os nmeros 0 a 9 e as letras A a F, e
acrescentar um H no final do nmero.

DEFINIES DE CONSTANTES
A constante um nmero sem atributo e sem
nenhuma posio reservada na memria. Nomes
podem ser associados a constantes atravs da diretiva equate.
Diretiva: EQU
Funo: ela associa um nome a uma
constante sem ter que reservar espao.
Formato: [name] EQU valor
Exemplo:
LEOPOLDO EQU 33 ; LEOPOLDO representa o valor 33
SIMONNE EQU 25 ; SIMONNE representa o valor 25
GIOVANNA EQU 10; GIOVANNA representa o valor 10

DEFINIO DE ESPAO PARA VARIVEIS (DB,


DW,DD)
Diretiva: DB, DW, DD
Funo: Tem com funo reservar um espao
para varivel.
DB
reserva um byte
DW
reserva dois bytes
DD
reserva quatro bytes

153

154

Organizao e Arquitetura de Computadores

Formato:
[variable-name] DB valor inicial/duplicao
[variable-name] DW valor inicial/duplicao
[variable-name] DD valor inicial/duplicao

Exemplo de um programa em linguagem ASSEMBLY:


Programa TASM da Borland:
;nome do programa: one.asm
;
.model small
.stack
.code
mov AH,1h
;Funo 1 do DOS
int 21h ;l caracter e retorna cdigo
ASCII ao registrador AL
mov DL,AL; move o cdigo ASCII para o
registrador DL
sub DL,30h
;subtrai de 30h para converter a um dgito de 0 a 9
cmp DL,9h
;compara se o dgito est
entre 0 e 9
jle digit1
;se verdadeiro obtm o
primeiro nmero (4 bits)
sub DL,7h
;se falso, subtrai de 7h
para converter a uma letra A-F
digit1:
mov CL,4h
;prepara para multiplicar
por 16
shl DL,CL
;multiplica para converter
dentro dos 4 bits mais altos
int 21h
;obtm o prximo caracter
sub AL,30h
;repete a operao de
converso
cmp AL,9h
;compara o valor 9h com o
contedo do registrador AL

Tema 4 | A Interface do Hardware

jle digit2
;se verdadeiro, obtm o
segundo dgito
sub AL,7h
;se falso, subtrai de 7h
digit2:
add DL,AL
;adiciona o segundo dgito
mov AH,4Ch
;funo 4Ch do DOS (exit)
Int 21h
;interrupo 21h
End
;finaliza o programa

Este programa l dois caracteres e os imprime na tela.

INDICAO DE LEITURA COMPLEMENTAR


Weber, Raul Fernando, Fundamentos de arquitetura
de computadores. 3. ed. Porto alegre: Instituto de
informtica da UFRG, 2004.
[neste livro voc ter mais informaes sobre Assembly]
http://pt.wikipedia.org/wiki/Assembly
[Neste link voc tem uma definio sobre Assembly}

PARA REFLETIR
Um montador uma ferramenta indispensvel para
o desenvolvimento de um programa que deve acessar os recursos de arquitetura de um processador.
Tente, junto ao seu professor, bolar um pequeno
programa em Assembly e poste no AVA, para uma
eventual discusso.

155

156

Organizao e Arquitetura de Computadores

RESUMO
Neste tema pudemos aumentar o nosso conhecimento lendo sobre a interface do hardware nos
seus respectivos assuntos. Destacamos o estudo
das formas de instrues com seus critrios de projeto, alguns exemplos de formato de instruo e,
por ltimo, pudemos ver tambm um pouco sobre
endereamento, os tipos de instrues e sobre a
linguagem de programao Assembly.

Tema 4 | A Interface do Hardware

Referncias
TANENBAUM, Andrew S. Organizao estruturada
de computadores. 5. ed. Rio de Janeiro: Prentice
Hall, 2006.
MONTEIRO, Mrio A. Introduo organizao de
computadores. 4. ed. Rio de Janeiro: LTC, 2001.
STALLINGS, William. Arquitetura e organizao de
computadores. 5. ed. So Paulo: Prentice-Hall,
2002.
WEBER, Raul Fernando. Fundamentos de arquitetura de computadores. 3. ed. Porto alegre: Instituto
de informtica da UFRG, 2004.
SICA, Carlos. Sistema Automticos com microcontoladores 8031/8051. So Paulo: Novatec, 2006.

157

158

Organizao e Arquitetura de Computadores

Anotaes

Organizao e Arquitetura de Computadores

Anotaes

159

160

Organizao e Arquitetura de Computadores

Anotaes

ORGANIZAO E ARQUITETURA DE COMPUTADORES


53

ORGANIZAO
E ARQUITETURA
DE COMPUTADORES
Srie Bibliogrfica Unit

Potrebbero piacerti anche