Você está na página 1de 38

ARQUITETURA

DE

COMPUTADORES
Arquitetura de Computadores

INTRODUÇÃO

1.1- CONCEITOS

1.1.1 - Processamento Dados

Processar dados consiste em manipular informações iniciais com o objetivo


de produzir outras informações, outros dados ou os mesmos dados sob uma nova
forma, tarefa esta desenvolvida desde os primórdios da civilização em todas as
atividades.

1.1.2 - Computador

É um equipamento constituído de componentes eletrônicos e mecânicos


criados com a finalidade de executar operações repetitivas com grande velocidade.
Com o avanço do computador que passou a executar as tarefas repetitivas,
o processamento de dados passou a ser chamado de processamento eletrônico de
dados e quase como um acrônimo, voltou-se a chamar de Processamento de
Dados.
A necessidade de se criar uma máquina com as características do
computador nasceu do crescente volume de dados a serem manipulados e
demandada de tempo para a obtenção dos resultados, bem como a precisão
destes.
O termo dado é considerado como o elemento básico para a geração de
uma informação, entretanto, uma informação que acabamos de produzir pode ser
considerada apenas como um dado inicial para geração de outra informação.
Os avanços tecnológicos, principalmente da microeletrônica e da mecânica,
permitem o desenvolvimento de dispositivos capazes de coletar, armazenar e
processar dados cada vez mais rapidamente.

ENTRADA PROCESSAMENTO SAIDA

Figura 1.2 - Fluxo básico de um Processamento de Dados

1.1.3 - Programa

Conjunto de ordens, escrito em uma linguagem inteligível pelo computador.


Elaboradas e executadas sistematicamente com objetivo de realizar uma
determinada tarefa. Cada ordem é considerada como uma instrução para cada
computador, que as executa da forma e seqüência tal qual estão descritas no
programa.

2
Arquitetura de Computadores

1.1.4 - Sistema de Computação

É um conjunto de componentes integrados que realizam algum tipo de


operação sobre os dados com o objetivo de se obter um determinado resultado.

1.1.5- A Linguagem do computador

O computador possui uma linguagem própria, formada por conjuntos


específicos de zeros e uns (Linguagem Binária ou de Máquina) para a qual todos
os caracteres da linguagem humana são convertidos de modo que o computador
possa entender os comandos que desejamos que ele execute.
A Linguagem de Máquina é a forma de se representar os dois estados
(ligado/desligado) da corrente elétrica utilizados nos circuitos eletrônicos dos
computadores. É a única linguagem inteligível pelo computador.

1.1.6- Linguagem de Programação

Como a Linguagem de Máquina é de difícil compreensão e manipulação,


foram desenvolvidas linguagens intermediárias entre a da máquina e a do homem;
estas linguagens denominam-se Linguagens de Programação. Dizemos que quanto
mais próxima da linguagem humana for à linguagem de programação ela é de alto
nível, caso contrário é considerado baixo nível.
Os programas são geralmente, escritos em linguagem de programação e
convertidos para linguagem de máquina através de programas específicos.

1.1.7 – Hardware e Software

Chamamos de Hardware ao conjunto formado pelos circuitos eletrônicos e


partes eletromecânicas de um computador. De Software ao conjunto de qualquer
tipo de programa, em qualquer linguagem de programação, que seja utilizado pelo
computador.

3
Arquitetura de Computadores

1.2 -HISTÓRICO
Todo profissional deve conhecer, mesmo que basicamente, o histórico da
evolução e o desenvolvimento da sua ferramenta de trabalho.
A idéia de se criar um dispositivo que auxiliasse nos cálculos cada vez mais
esternos e complicados com os quais o homem se deparava a cada vez que
tentava progredir, data de muito tempo.

1.3 - GERAÇÕES DE COMPUTADORES ELETRÔNICOS

1.3.1 - Primeira Geração: Computadores à válvula

O ENIAC (Eletrônic Numeral Integrator And Computer) foi o primeiro


computador eletrônico digital construído para emprego geral, isto é, podia-se alterar
o tipo de cálculo a ser realizado com os dados, mudando-se o programa. Esta
máquina foi projetada por John Macuchlyn e John P. Eckert, de 1943 a 1946 e
funcionou até 1955.
O projeto foi proposto ao exército americano com a finalidade de auxiliar nos
cálculos de elaboração das tabelas balísticas (alcance e trajetória dos tiros de
armas), que na época empregava mais de 200 pessoas e gastavam muito tempo
para sua confecção.
O ENIAC era uma máquina de proporções gigantescas, contendo mais de
17.000 válvulas e 80.000 metros de cabos; pesava cerca de 30 toneladas e
consumia uma grande quantidade de energia elétrica, além do consumo com
válvulas, que queimavam com grande freqüência devido ao calor.
Como só ficou pronto após a guerra não foi utilizado para o seu propósito
inicial. Esta máquina era decimal e não binária, sendo cada dígito representado por
10 válvulas, e sua programação era feita através da combinação de cabos em
tomadas diferentes e de arranjo de chaves (cerca de 6.000), tarefas que
consumiam vários dias, porém, a sua velocidade de processamento era alta,
realizava 10.000 operações por segundo.
Nesta mesma época, John Von Neumann, colaborador no projeto ENIAC
iniciou o projeto do inicialmente chamado IAS (Institute for Advanced Studies da
Universidade de Princeton) que era um aperfeiçoamento do ENIAC. Enquanto
Macuchlyn e Eckert iniciaram a construção do EDVAC (Eletronic Discret Variable
Automatic Computer), este projeto não foi concluído, pois os dois cientistas
deixaram a Universidade para criarem sua própria empresa, que mais tarde tornou-
se a Univac que, uniu-se a Burroughs e atualmente denomina-se UNISYS.
Jhon Von Neumann assume o desenvolvimento do EDVAC e define uma
arquitetura de computadores com programa armazenado que é utilizada até os dias
atuais.
Em 1949, a univac de Macuchlyn e Eckert, construiu o primeiro computador
para fins comerciais, O UNIVAC II e a série 1110, voltada para computação
científica.

4
Arquitetura de Computadores

Em 1953, a IBM lança seu primeiro computador eletrônico de programa


armazenado, o IBM-701, com memória de 2K palavras de 36 bits, destinado ao
processamento científico, e em seguida os IBM-702 e 709, com 4K palavras de
memória, para fins comerciais.

1.3.2 - Segunda Geração: Computadores transistorizados

Os cientistas do Bell Laboratóries produzem em 1947 o transistor.


Dispositivos que permite controlar a condução de corrente elétrica de circuito
eletrônico (ligar/desligar) com uma velocidade muito maior, menor custo, menor
tamanho e menor consumo de energia do que as válvulas. Esse dispositivo tornou-
se a base de todos os computadores e da indústria eletrônica digital.
A NCR foi à primeira empresa a lançar o computador transistorizado,
seguido da RCA. Esta Geração teve grande participação da IBM com seus
computadores para fins comerciais e científicos, por exemplo, a série 7000 e
grande sucesso comercial que foi o IBM-1401.
Marcou, também esta geração, o surgimento da DEC (Digital Equipment
Corporation), que também lançou máquinas eficazes tecnologicamente, com nível
superior à família VAX e, o aparecimento de linguagens de programação com nível
superior ao Assembly.

1.3.3- Terceira Geração: Computadores com circuitos integrados

Em 1958 a Texas Instruments Co, através de Jack Kilby, criou o que seria o
primeiro circuito integrado, interligando dois circuitos em peça de germânio. Pouco
depois, Robert Noyce integrou vários circuitos em pastilha de silício, que provou ter
muita vantagem sobre o germânio.
Surgia uma nova geração de computadores mais poderosos e menores,
devido à integração em larga escala (LSI - Large Scale Integration) Proporcionada
pelos circuitos integrados.
A IBM, nesta geração, consolida sua posição como a maior fabricante no
mercado de computadores, pois se utilizou o novo avanço tecnológico da
microeletrônica e lançou a série 1360. Este sistema incorporou diversas inovações
que se tornaram um marco histórico em termos de computação, dentre elas,
podemos citar:
a) O conceito da família de computadores, em vez de máquina individual.
Este conceito permite que o fabricante ofereça o mesmo tipo de máquina, ou seja,
mesma arquitetura, linguagem de máquina semelhante etc, porém com diferentes
capacidades e preços, o que garantia uma maior quantidade de clientes. Como por
exemplo, a família 360 foi lançada com cinco modelos diferentes. A figura 1.3
mostra um quadro comparativo da família 360.

5
Arquitetura de Computadores

b) Emprego da técnica de multiprogramação, que permite que vários


programas compartilhem da mesma memória principal e o mesmo processador,
dando a impressão ao usuário de que vários programas estão sendo executados
simultaneamente.
c) Elevada capacidade de processamento, com palavras de 32 bits e ciclo de
instruções de até 250 nanosegundos e grande capacidade de armazenamento na
memória principal, 16 Mbytes, valores considerados surpreendentes para a época
(1964).
d) Memória Principal orientada a Byte, ou seja, em grupo de oito Bytes. Esta
característica tornou-se padrão no mercado, mantendo-se até hoje; exceto nos
computadores científicos.
Surgiram também, nesta geração, os microcomputadores da Dec, com
circuitos integrados, memória principal orientada a byte e palavra de 16 bits, o PDP-
11 e o seu sucessor, o VAX-11 que teve grande sucesso no ambiente universitário.

CARACTERÍSTICA DA FAMÍLIA IBM 360


Característica Modelo 30 Modelo 40 Modelo 50 Modelo 65 Modelo 75
Capacidade 64 Kb 256 Kb 256 Kb 512 Kb 512 Kb
máxima de MP
(Bytes)
Ciclo do
Processo em
micros
segundos 1 0,625 0,5 0,25 0,2
Quantidade 3 3 4 6 6
máxima de
canais (E/S)
Bytes movidos 1 2 4 16 16
da MP para
CPU por ciclo

Figura 1.3 - Características da Família IBM/360

1.3.4 - Quarta Geração: Computadores que utilizam VLSI

VLSI (Very Large Scale Integration) consiste na técnica de armazenar, em


um mesmo recipiente, milhões de microcomponentes eletrônicos. Este dispositivo
denominado chip (pastilha) constitui a base da estrutura da todos os sistemas de
computação modernos.
Esta técnica de miniaturização de componentes eletrônicos deu início ao
desenvolvimento dos microcomputadores ou computadores pessoais, isto por volta
de 1972.

6
Arquitetura de Computadores

CAPITULO 2

COMPONETES BÁSICOS DE UM SISTEMA DE COMPUTAÇÃO

2.1 - DESCRIÇÃO DOS COMPONENTES

Um sistema de computação é constituído de um conjunto de componentes


integrados, que tem por finalidade manipular dados de forma a se obter
informação.
No capitulo anterior, vimos os conceitos de hardware e software, que formam
basicamente um sistema de computação.
Para que um computador possa realizar uma determinada tarefa é
necessária à integração destes elementos.
Uma tarefa deve primeira ser escrita em uma linguagem (de programação)
que possa ser convertida para linguagem de máquina, pois só esta é entendida
pelo hardware do computador e, logicamente, nesta linguagem, serão executadas
todas as operações a ele submetidas.
A conversão transforma o programa em várias instruções que serão
executadas uma a uma e, as armazenem na memória. Também devem ser
introduzidos na memória, os dados a serem manipulados pelo programa.
A introdução dos programas e dados em um computador pode ser feita através do
teclado ou disco, por exemplo, a estes equipamentos chamamos de dispositivos ou
periféricos de entrada.
O processador central - CPU (Central Unit Processing), localiza, interpreta e
executa as instruções sobre os dados encontrados na memória e armazena o
resultado, também nas memórias.
Os resultados de um processamento podem ser exibidos ao usuário, numa
forma inteligível para ele, em um monitor de vídeo impresso em papel, ou
armazenado em outro formato para posterior utilização; como por exemplo, em
discos magnéticos. Aos dispositivos utilizados para estas finalidades, denominamos
dispositivos ou periféricos de saída.
A figura 2.1 mostra esquematicamente os procedimentos e os componentes
básicos envolvidos n processo de dados.
Entrada Saída
PERIFÉRICOS PROCESSADOR PERIFÉRICOS
DE ENTRADA CPU DE SAIDA

Dados
MEMÓRIA Controle

Figura 2.1 - Componentes Básicos de um Computador.

7
Arquitetura de Computadores

Unidade Central de Processamento - CPU ou CPU  É o principal componente


do sistema. Responsável pela execução e controle de todas as operações
executadas por todos os componentes do computador.
Memória  Local onde os dados e os programas são armazenados para
imediata execução (memória Principal - MP) ou para uso posterior (memória
secundária - MS), conforme veremos no próximo capítulo.
Periféricos ou dispositivos de Entrada ou Saída  Basicamente permitem
a comunicação entre o sistema e o mundo externo, ou seja, introduzir dados e/ou
programas e guardar e/ou exibir resultados. Também chamamos os periféricos que
armazenam dados de memória secundária.

Nos capítulos seguintes, esses componentes serão vistos detalhadamente.

2.2 - REPRESENTAÇÃO DAS INFORMAÇÕERS NO COMPUTADOR

2.2.1 - Bit, Caracter, Byte e Palavra

Os computadores são equipamentos eletrônicos digitais. Portanto, toda


informação a ser armazenada, movimenta e processada internamente, deve ser
transformada para o formato binário. Os circuitos eletrônicos digitais permitem que
represente os valores de voltagem elétrica de seus componentes com os dois
dígitos do sistema binário (0 e 1).
O principio de funcionamento dos circuitos digitais é totalmente básico na
lógica digital ou booleana, que admite apenas dois estados para um único elemento
(SIM/NÃO, LIGADO/DESLIGADOABERTO/FECHADO etc.).
Em vista disso, teremos como menor unidade de informação que pode ser
armazenado em um computador, o conhecido bit (Binary Digit), que admite apenas
dois valores: 0 e 1.
Um bit nos permite representar apenas duas informações, ou símbolos, um
de cada vez, e a linguagem humana possuem vários símbolos (Caracteres); por
essa razão, as informações manipuladas pelo computador são codificadas em
grupo ordenados de 8 bits, chamados byte(Binary Term). O nome Byte foi instituído
pela IBM e, utilizado por praticamente todos os fabricantes como unidade de
armazenamento e transferência de dados. Os caracteres podem ser codificados
com outras quantidades de bits diferentes de 8, através de outros códigos de
representação de caracteres, porém, neste trabalho, usaremos sempre o conceito
de byte.

Nas memórias dos computadores as operações de armazenamento e


recuperação de informação são realizadas byte ou palavra a palavra (grupo de
bytes), unidades de transferências. Portanto, é costume mencionar a quantidade de
mercadoria do computador em bytes. Porém, um byte armazena apenas um
caracter e precisamos de muitos mais para escrever um simples nome, como por
exemplos, logicamente, precisamos de quantidades maiores de memória para
efetuar qualquer trabalho.

8
Arquitetura de Computadores

Para representar valores maiores, - que aumentam a cada dia - utilizaremos


os símbolos de grandezas métricas, com alguma modificação, visto que nos
computadores as indicações numéricas são tratadas em potência de 2. (Sistema
binário lembra-se?).

Vejamos alguns exemplos:

1 byte  8 bits
Kilobytes ou KB 1024 bytes (potência de 2 é 1.024 = 210)
Megabytes ou MB  1024 KB ou 1.024 x 1.024 = 1.048.576 bytes
Gigabytes  1.024 MB = 1.048.576 x 1024 = 1.073.741.824 bytes
Terabytes ou TB  1024 x GB = 1.073.741.824 x 1024 =
1.099.511.627.776 bytes

Um outro conceito importante para o armazenamento e transferência de


dados entre a MP e a CPU é a palavra.
A definição de palavra não atende rigorosamente a todos os fabricantes de
computadores, pois cada um adota o conceito baseado em seus componentes
internos e outro, de uma forma mais abrangente.
De modo geral, usam-se dois valores diferentes: um relacionado à unidade
de armazenamento - o Byte (oito Bits) e outro para indicar unidade de transferência
e processamento - a palavra (na qual se emprega quantidade múltipla do byte - 16
(2 bytes) ou 32 (4 bytes são os valores mais usados)).

9
Arquitetura de Computadores

2.3 - CLASSIFICAÇÃO DE SISTEMAS DE COMPUTAÇÃO

Não existe um consenso no mercado em relação à classificação dos


computadores. No entanto, uma descrição básica de cada tipo de máquina
comumente utilizado atualmente nos ajudará a identificar as principais
nomenclaturas.
Microcomputador - O nome é relativo ao seu tamanho e à sua capacidade
de processamento; surgiu com advento dos microprocessadores nos meados da
década de 70. O micro, por ser utilizado por uma única pessoa de cada vez,
ganhou título de PC (Personal Computer).
Existem hoje em dia várias categorias de microcomputadores, baseadas em
seus tamanhos e seu grau de portabilidade. Eles podem ser do tipo de mesa ou
torre (Desktop), em geral, constituído por 3 partes separadas: unidade de
processamento (CPU, acionadores de discos e memória), monitor de vídeo e
teclado. Outros microcomputadores, ainda menores são conhecidos por Notebooks
(tamanho e formato parecidos com um livro) e Palmtops que têm tamanho pouco
maior que a da palma da mão.

Estação de Trabalho - É um micro projetado para efetuar tarefas mais


pesadas nas áreas industriais, Cientificas e gerais. Estas máquinas possuem maior
velocidade de processamento e capacidade de memória, requeridas por tarefas
com CAD (Computer Aided Design), CAM (Computer Aided Manufacturing) e
composição, manipulação e apresentação de imagens de altíssima resolução.
Minicomputadores - São máquinas empregadas para atender
simultaneamente a demanda de execução de programas de vários usuários. Para
suportar múltiplos usuários e programas, requerem maior velocidade /capacidade
de memória e uma grande potencialidade para manipular diversos periféricos.
Computadores de Grande Porte - São computadores projetados para
manusear grandes volumes de dados e executar simultaneamente programas de
uma grande quantidade de usuários e gerenciar unidades de armazenamento em
grande escala. Processos controlados por estes tipos de máquinas operam com
tempo de resposta muito rígidos, na casa de décimos de segundos.
Supercomputadores - São computadores construídos para atender um
propósito específico; realizar grandes quantidades de cálculos matemáticos com
grande velocidade, o que exige muito do processador e pouco dos demais
componentes. São empregados em tarefas como: Previsão do tempo, simulação
de situações que gerariam riscos a pessoas, modelagem tridimensional. Estas
máquinas são capazes de realizar dois bilhões de operações matemáticas por
segundo.

10
Arquitetura de Computadores

CAPITULO 3

SUBSISTEMA DE MEMÓRIA

3.1 - INTRODUÇÃO

A memória é um componente do Sistema do Computador, cuja função é


guardar (armazenar) informações (na forma de bits) e recuperá-las usando
desejado. Seu funcionamento baseia-se nas ações de escrita (transferência de bits
de outro componente do Sistema; por exemplo: da CPU de um disco) e de leitura
(transferência de bits da memória para a CPU, disco, etc.).
A ação de armazenar consiste em guardar uma informação (ou um conjunto
de informações) na memória e a operação é denominada escrita ou gravação
(“write”). Esta operação será sempre uma sobreposição de conteúdos da memória.
Recuperar uma informação (ou um conjunto de informações) da memória é
copiá-la para uma outra posição na memória ou para outro componente do
sistema. Esta operação é denominada leitura (‘read’).
A ação de armazenar ou recuperar uma informação em uma memória
denomina-se acesso.

No sistema de computador existe uma variedade grande de tipos de


memória, cada uma com sua finalidade e característica especificas, mas que
interligam e se integram para o funcionamento do sistema.
A figura 4.1 mostra uma pirâmide hierárquica dos tipos de memória, mais
mencionados, representando suas capacidades de armazenamento, velocidade,
tempo de uso e custo.

Custo alto
Velocidade alta Registradores
Baixa capacidade

Cache

Principal
Custo baixo
Velocidade baixa Discos
Alta capacidade Secundária
Fitas

Figura 4.1 - Pirâmide Hierárquica de tipos de memória

11
Arquitetura de Computadores

3.2.1 - Tempo de acesso: indica quanto tempo à memória gasta para


colocar uma informação no barramento de dados após uma determinada posição
ter sido endereçada, isto é, o período de tempo decorrido desde o instante em que
foi iniciada a operação de acesso até que a informação requerida tenha sido
efetivamente transferida.
3.2.2 - Ciclo de memória: é o período de tempo decorrido entre duas
operações sucessivas de acesso à memória, sejam de escrita ou de leitura.
3.2.3 - Capacidade de uma memória: é a quantidade de informação que
pode ser armazenada em uma memória; a unidade de medida mais comum é o
BYTE, embora também possam ser usadas outras unidade como células, setores e
bits.
3.2.4 - Volatilidade: memórias podem ser do tipo volátil ou não volátil. Não
volátil é a que retém a informação armazenada quando a energia elétrica e
desligada. Memória volátil é aquela que perde a informação armazenada quando a
energia elétrica desaparece.
3.2.5 - Tecnologia de fabricação: Memórias de semicondutores são
dispositivos fabricados com circuitos eletrônicos e baseados em semicondutores.
Memória de meio magnéticos possuem o armazenamento em uma superfície com
material magnético e um campo de magnético (HD, disquetes). Memória Óptica que
utiliza a luz para leitura e gravação de informações.
3.2.6 - Temporariedade: Trata-se de uma característica que indica o
conceito de tempo de permanência da informação em um dado tipo de memória.
3.2.7 - Custo: O custo de fabricação de uma memória é bastante variado em
função de diversos fatores como tecnologia de fabricação, maior ou menor tempo
de acesso, ciclo de memória, espaço físico e marketing.

12
Arquitetura de Computadores

3.3 - Registradores

Já sabemos que a CPU é responsável pela execução das instruções (parte


de um programa), manipulação dos dados e pela produção dos resultados. Porém,
para isto ocorrer, tanto o programa quantos dados, que estão armazenados na
memória principal, devem ser transferidos para CPU (uma cópia deles). A execução
é, na realidade, tarefa da Ual (Unidade Aritmética e Lógica), Componente da CPU.
Os registradores são unidades de memória que armazenam,
temporariamente, na CPU, os dados a serem manipulados por uma instrução ou
seus resultados parciais ou finais de um processamento. Sendo um resultado
parcial, armazenado em um registrado, este será transferido para a memória
principal (externa à CPU).
O registrador é o tipo de memória com maior velocidade de transferência no
computador, menor capacidade de armazenamento (armazena um único dado) e
maior custo devido a sua tecnologia de construção. Ele é uma memória se
semicondutores, portanto, é volátil, ou seja, para o seu funcionamento é necessário
que haja corrente elétrica.

3.4 - Memória Cache

Durante a execução de uma instrução, a CPU realiza um ou mais acessos à


memória principal, para buscar a instrução e transferi-la para um dos registradores,
para transferir os dados para a UAL ou para armazenar o resultado de operação
que se encontra em um registrador.
O tempo de acesso à memória principal é muito maior que o tempo de
execução de uma instrução, devido à diferença de velocidade entre a CPU e a MP
(Memória Principal). Isto causa ociosidade da CPU, pois esta precisa esperar que a
instrução e os dados sejam transferidos para a CPU.
A CACHE é uma memória construída com tecnologia similar à da CPU,
consequentemente, com velocidade de transferencia compatível, reduzindo
consideravelmente o tempo de espera da CPU por instruções e dados. A cache
está inserida entre a CPU e a MP; no mesmo CHIP da CPU (cache interna). A sua
capacidade de armazenamento é baixa, se compara com a MP.
A CPU acessa, primeiramente, a CACHE, para buscar a informação
requerida. Caso encontre, a transferência; é realizada com grande velocidade; caso
contrário, a informação terá que ser transferida da MP para a cache e daí para a
CPU, aumentando o tempo de acesso.
As memórias cache externas (localizadas na placa mãe) são constituídas de
circuitos eletrônicos, portanto também voláteis. A tecnologia empregada; é a SRAM
(Static RAM) - a corrente elétrica que mantém as informações armazenadas na
cache é contínua - não sendo necessário à recarga periódica de seus circuitos
(refreshing), como ocorre na memória principal. Esta tecnologia possui custo
elevado, causa da sua utilização baixa capacidade de armazenamento.

13
Arquitetura de Computadores

3.5 Memória Principal

A memória principal o memória primária é formada por dois tipos a de


memória: Memória Ram (Randomic Acess Memory) - memória de acesso aleatório
- o acesso a qualquer uma de suas posições consome o mesmo tempo e memória
ROM (Read Only Memory) - memória somente de leitura - os dados nela contidos
são gravados de fábrica, não sendo possível alterá-los, portanto, é uma memória
não volátil.
Ás informações gravado na ROM constitui basicamente um programa
denominado IPL (Initial Program Load), que contém rotinas, específicas de cada
processador, necessárias ao funcionamento do computador, tais como: contagem e
check eletrônico da memória RAM, as conexões da CPU com as interfaces que a
interligam aos periféricos e a leitura do Sistema Operacional do disco para a
memória RAM. Este programa é executado, automaticamente, assim que ligamos o
computador.
Ao final da execução do I.P. L e carga do Sistema Operacional estão prontos
para ser utilizado, o que, em ambientes de microcomputadores chamamos de
“boot”. Isto é devido ao Sistema Operacional D.O.S (Disk Operation System) 0
utilizar o conceito de setor de boot nos discos que possuem os seus formato.
A memória RAM é a memória básica do computador. Nela são
armazenados, os programas a ser executado e seus dados, que a CPU busca,
instrução por instrução, portanto, nesta memória podem ser executadas tanto as
operações de leitura quanto asa de gravação. Doravante, quando nos referimos à
memória principal ou primária , estaremos tratando apenas da RAM, onde
podemos, também, gravar dados.
A MP é construída, também, de semicondutores, portanto, volátil e com
grande velocidade de acesso; abaixo, porém, dos registradores e da cache. Devido
a sua finalidade, possui grande capacidade de armazenamento.
A tecnologia utilizada nas memórias RAM é, Geralmente, a Dram (Dinamic
Ram) - a corrente elétrica neste tipo de memória depende da carga de capacitores,
que com o tempo vão perdendo a carga, necessitando de periódicas recargas
(refreshing) para manter o valor do dado armazenado inalterado.
-3
O refreshing ocorre geralmente a cada 2ms (milisegundos –10 seg),
deixando a RAM indisponível por um longo tempo, visto que esta operação demora
muito mais que um acesso. Portanto, podemos constatar que em memórias Dram o
tempo de acesso é acrescido do tempo de refreshing, o que causa a sua baixa
velocidade de transferência de dados quando comparadas aos registradores e a
memória cache.

14
Arquitetura de Computadores

3.6 - Memória Secundária

A memória secundária, também chamada de auxiliar ou memória de massa,


tem a finalidade de armazenar de forma permanente às informações (dados e
programas) necessárias ao processamento. Consequentemente, a memória
secundária é não-volátil e possui maior capacidade de armazenamento que a
memória principal.
A memória secundária do computador pode ser constituída por diferentes
dispositivos periféricos, tais como: discos magnéticos rígidos (Hard Disk – HD), são
eletromecânicos e põem esta razão, seus tempos de acesso são relativamente
altos, se comparados com os dos outros tipos de memória.
Por exemplo, os discos rígidos possuem tempo de acesso na faixa de 10
milisegundos, o CD-ROM trabalha com tempos entre 200 e 800 milisegundos.

3.7 - MEMÓRIA CACHE

Como já foi descrito (ver item 3.1.2) a velocidade de processamento da CPU


é muito superior a de acesso à memória principal, devido à diferença de tecnologia
empregada na construção de cada um destes componentes. Isto gera períodos de
espera (“write state”) na CPU, até que os dados sejam transferidos da MP.
Os Projetos de memória cache baseiam-se em estatísticas de execução de
programas, avaliando-se que os acessos, geralmente, São repetidos, as mesmas
palavras de memória ou à palavra localizada continuamente na memória. São os
conceitos de localidade temporal e localidade especial.
Localidade Temporal - Quando um programa acessa uma palavra de
memória, há uma grande probabilidade de que em breve a mesma palavra seja
acessada novamente pelo Programa.
Localidade espacial - Quando um programa acessa uma palavra de
memória, há uma grande probabilidade de que o próximo acesso solicitado pelo
programa seja a uma palavra de endereço subseqüente ou adjacente àquela que
ele acabou de acessar.

15
Arquitetura de Computadores

CAPITULO 4

BARRAMENTO

Barramento é um conjunto de linhas elétricas por onde trafegam sinais


digitais entre o microprocessador e os dispositivos. Cada tipo de barramento pode
ou não possuir seu grupo de slots.
Iremos considerar duas formas básicas de interligar as unidades de um
sistema de computador: Ligação Dedicada e Barramento.

4.1 Ligação Dedicada.

A ligação Dedicada estabelece uma ligação única entre duas unidades. A


principal desvantagem deste tipo de ligação é a dificuldade de se adicionar uma
nova unidade ao sistema. Para cada nova unidade é necessário estabelecer um
novo circuito de interface e novos fios para a ligação. A principal vantagem é que a
velocidade de transferência de informação entre as duas unidades pode ser maior,
comparado com uma ligação por barramento. Isto é possível porque na ligação
dedicada as características específicas de cada uma das unidades são
consideradas no projeto de interface.

Figura 5.7 - Exemplo de um sistema com Ligações Dedicadas

A Ligação Dedicada é utilizada principalmente para a conexão de


computadores com periféricos de Entrada ou Saída. A ligação Dedicada pode ser
feita de forma Serial ou Paralela. A ligação serial é baseada na existência de um
único fio que transporta a informação binária bitabit em seqüência (em série). Na
ligação paralela a informação binária é transportada por diversos fios, um para cada
bit (em paralelo).

16
Arquitetura de Computadores

4.2 - Ligação por Barramento.

A ligação por barramento utiliza um único conjunto de fios para interligar


diversas unidades de um sistema de computadores. Desta forma o número de
ligações (fios) é independente do número de unidades a ser interligada. A adição de
uma nova unidade ao sistema é feita de forma bastante simples, basta plugar a
nova unidade ao barramento já existente. A ligação por barramento requer,
entretanto, que as unidades a serem adicionadas obedeçam rigorosamente às
características de interface amento com o barramento. Ou seja, o projetista de uma
unidade a ser adicionada considera cada sinal do barramento de acordo com as
mesmas características utilizadas pelas equipes que projetam as demais unidades
(por exemplo: definição de função, níveis de voltagem e capacidade de carga).
Muitas vezes as unidades a serem interligadas são desenvolvidas por equipes
distintas em empresas diferentes, o que impõe um rigor muito grande na
caracterização de um barramento. Esta caracterização dos sinais de um novo
barramento é feita normalmente através de comissões de representantes de
indústrias em entidades como, por exemplo, o ANSI, o EIA(Electronic Industries
Association), o IEC (International Electrotechnical Commission) e o IEEE . Estas
comissões definem então um padrão de interligação (um barramento) que passa a
ser obedecido pelos fabricantes. Como exemplo de barramentos que surgiram
através de comissões de fabricantes tem o padrão de barramento VME (IEC Com.
47b >std. 821) e o padrão FUTURE BUS (projeto IEEE 896)

Figura 2 - Exemplo de um sistema com ligações por barramento

A maior parte dos barramentos do mercado surgiu como barramento próprio


de equipamentos específicos, mas pela alta escala de aplicação eles se
transformaram em padrões de facto. Como exemplo disto tem o barramento S100,
que depois de ser muito utilizado na indústria de microprocessadores de 8 bits
passou por comissões do IEEE e se transformou no barramento padrão IEEE696.
Outro exemplo é o barramento MULTIBUS lançado pela INTEL Co. Que se
transformou na norma IEEE 796. O exemplo mais conhecido é o barramento do IBM
PC, o IOCHANNEL, que foi adotado por diversos fabricantes de placas e de
sistemas. Recentemente ele foi padronizado por um conjunto de fabricantes como o
padrão ISA (Industry Standard Architecture).
A ligação por barramento é a mais utilizada em computadores, às seções
seguintes são dedicadas ao estudo das características mais gerais de estruturas de

17
Arquitetura de Computadores

barramento. O nosso estudo de barramentos é concluído, então, pela descrição


introdutória dos barramentos ISA e VME.

4.3 Conceitos de Mestre e Escravo de Barramento.

MESTRE é a unidade que controla a transferência num barramento


ESCRAVO é a unidade que participa de uma transferência sob o controle de uma
unidade mestre.
Como exemplos podem citar um microprocessador ligado a uma memória.
Durante uma operação de leitura, as informações são retiradas da memória a partir
de sinais de controle do microprocessador. A memória é uma unidade ESCRAVO e
o microprocessador uma unidade MESTRE.

Os barramentos podem ser caracterizados por diversos fatores tais como:


o Tipos de Barramentos;
o Técnicas de Comunicação em Barramento;
o Métodos para a Mudança do Controlador do Barramento;
o Convenções para Transferência de Informação;
o Características Elétricas.

18
Arquitetura de Computadores

4.4 Tipos de Barramentos

Existem diversas formas de se classificar o tipo de barramento, as mais


comuns são:
Em função do número de fios que transportam a informação. São
classificados em barramentos Seriais e Paralelos.
Em função do tipo de informação transferida existem, por exemplo, os
barramentos de Dados, de Endereço, de Controle e Multiplexados.
Em função da localização física, podem ser citados os barramentos internos
às placas, os barramentos globais e os barramentos de Entrada e Saída.

4.4.1 Barramentos Seriais e Paralelos.

Os barramentos podem ser classificados de acordo com a quantidade de


fios necessários ao transporte das informações em barramentos Seriais e
barramentos Paralelos. No barramento serial a informação é transportada por um fio
(ou par de fios). A este fio estão ligadas diversas unidades. A informação transferida
deve estar formatada de acordo com um protocolo que identifique as unidades
transmissoras e receptoras. Este tipo de ligação por barramento serial é usado na
ligação entre computadores, entre estações de trabalho e entre computadores e
terminais remotos e ainda entre alguns periféricos internos como o HD SATA.
Diversos são os conceitos ligados à comunicação por barramento serial. Estes
conceitos e mais os diversos protocolos de comunicação são vistos em maiores
detalhes nas disciplinas de comunicação e de rede de computadores.

4.4.2 Barramentos de Dados, Endereçamento e Controle.

Um barramento pode ser classificado de acordo com o tipo de informação


que pode ser transportado por ele. De acordo com esta classificação os
barramentos podem ser:

Barramento de dados. Possui, em geral, uma linha (fio) para cada bit de
dados. Num microcomputador a largura do barramento de dados (bus width) é o
fator de especificação de barramento mais lembrado. Diz-se, por exemplo: "O
microprocessador 8086 tem um barramento de 16 bits e o microprocessador 80486
tem um barramento de 32 bits".

19
Arquitetura de Computadores

Barramento de Endereçamento. Possui uma linha (fio) para cada bit de


endereçamento. A largura do barramento de endereçamento é importante para
determinar a capacidade máxima de posições de memória acessíveis. A quantidade
n
de posições de memória endereçava q é igual a 2 , onde n é o número de bits do
barramento de endereçamento. Por exemplo, barramento de endereçamento com:
n
q=2
bits

65 536 64 kilo posições


6 bits

1 048 576 1 mega posições


0 bits

16 777 216 16 mega posições


4 bits

4 294 967 296 4 giga posições


2 bits

Barramento de Controle. Agrupa todos os sinais necessários ao controle


da transferência de informação entre as unidades do sistema.
Barramento Multiplexados. Os sinais deste tipo de barramento possuem
significados diferentes em função do tempo. Num determinado instante estes sinais
podem transportar informações de endereço, noutro informações de dados. A
presença de um tipo de informação ou de outro é indicado por sinal de controle.

20
Arquitetura de Computadores

4.5 Barramentos Interno, Global e de E/S

O tipo de barramento pode ser definido em função da sua localização física.


De acordo com esta classificação têm se:

Barramento interno. É o conjunto de sinais que interligam unidades de


computador dentro de uma mesma placa. É normalmente próprio de
cada fabricante de computador e considera os aspectos mais
específicos do processador utilizado.

Barramento Global. Este tipo de barramento é utilizado principalmente


para ligação entre unidades do computador localizadas em placas
diferentes. Normalmente é uma extensão do barramento interno.

Barramento de Comunicação ou de E/S. Os barramentos de


Comunicação ou de E/S são usados, principalmente, na ligação de
computadores os seus periféricos. Podem ser aplicados ainda à
interligação entre computadores.

4.6 Técnicas de Comunicação em barramento


Segundo a técnica de comunicação adotada, é possível classificar os
barramentos em:
o Barramento Síncrono
o Barramento Assíncrono

O barramento síncrono tem todas as suas operações sincronizadas por um


relógio central, enquanto que no barramento assíncrono cada operação possui o
seu próprio sinal de indicação de operação.
O barramento com comunicação síncrona requer menos fios, é mais
simples de entender, programar e testar. Entretanto eles são menos flexíveis que os
barramentos assíncronos. Isto se deve ao fato que eles estão condicionados a uma
taxa máxima de relógio, ou seja, estão amarrados a uma determinada tecnologia.
Assim sendo, os barramentos síncronos não podem tirar vantagem dos ganhos em
desempenho das novas tecnologias surgidas após a sua definição. A cada mudança
de tecnologia, para se aumentar o desempenho do sistema, é necessário trocar
todos os dispositivos da tecnologia anterior. Isto não acontece com os barramentos
assíncronos, pois cada operação pode definir a sua própria temporização. De forma
que, pode conviver num mesmo barramento assíncrono dispositivo de tecnologias
diferentes. Esta flexibilidade tem como custo, uma maior complexidade do
barramento.
À medida que os avanços tecnológicos aproximam dos limites físicos de
velocidade dos dispositivos, a vantagem da flexibilidade dos barramentos
assíncronos perde um pouco a sua importância. Pois numa mesma tecnologia, o

21
Arquitetura de Computadores

desempenho dos barramentos síncronos é um pouco maior que o desempenho dos


barramentos assíncronos.

4.6.2 Barramento síncrono


Um barramento síncrono é caracterizado pela existência de um sistema
central de relógio (clock) que define intervalos de tempo (time slots) de mesmo
tamanho para cada operação no barramento. Em geral estas operações são do tipo:
comunicação de dados entre um elemento mestre e outro escravo.
Existem duas técnicas básicas para a alocação do intervalo de tempo para
as operações, a saber: Intervalo Dedicado e Intervalo não dedicado.

comun1. 2 Intervalo dedicado a comunicação entre os dispositivos 1 e 2


comun3. 4 Intervalo dedicado a comunicação entre os dispositivos 3 e 4
Na técnica de Comunicação Síncrona por Intervalo Dedicada o tempo é
alocado permanentemente a uma operação, mesmo que esta não seja realizada. De
acordo com esta técnica os intervalos de tempo são definidos de forma a encobrir a
operação mais lenta. Isto compromete o desempenho do sistema, pois as
operações mais rápidas não poderão trabalhar a plena velocidade. Outra restrição
ao desempenho global do sistema ocorre se as operações que têm intervalos
dedicados não forem realizadas.

Na técnica Comunicação Síncrona com Intervalo Não Dedicado os


intervalos de tempo são alocados a uma operação somente se ela for realizada. Isto
implica na necessidade de se estabelecer um mecanismo de alocação de intervalos
em hardware para identificar se as operações vão ocorrer.

4.6.3 Barramento Assíncrono


Na técnica de comunicação assíncrona, o instante da transferência não é
conhecido a priori. Ele é indicado por sinais de controle próprios. O significado de
cada um destes sinais e o relacionamento entre eles definem o PROTOCOLO de
comunicação. O número dos sinais num barramento para este controle define o tipo
de comunicação assíncrona. Podendo ser Comunicação Assíncrona Controlada por
Um Fio (OWC One Way Controlled) ou Comunicação Assíncrona Controlada por
Dois Fios (Req/Ack).

22
Arquitetura de Computadores

4.7 Slots
Slots são conexões para placa de expansão. Toda conexão, ou grupo dela
pertence a um tipo de barramento. A chegada dos primeiros slots marcou não só
uma melhor modularização do PC, mais principalmente a introdução do conceito de
expansão no hardware.

4.7.2 Principais tipos de Slots


Slot ISA: o barramento ISA (Industry Standard Architeture) foi criado pela
IBM em 1980. Existem placas mãe que não trazem mais Slots ISA, mas o
barramento ISA ainda está presente e dele depende o controle de drives de
disquete, porta serial e PS/2, porta paralela CMOS, o auto falante e a Bios.
Slots PCI : (Peripheral Component Interconnect) criado pela Intel no início
dos anos 90 para suportar os requisitos do micro processador Pentium. É
totalmente compatível com a tecnologia plug and play e possui compartilhamento de
IRQs entre os dispositivos presentes no barramento. Possui uma taxa de
transferência de 133 mbps em sua versão mais popular.
Slots AGP : (Acelerated Graphics Port) também criado pela Intel em 1997
para suportar os requisitos do micro processador Pentium II. Ele possui 4 versões
de barramento e 5 de slots, sendo que, a ultima versão é 8x com uma taxa de
transferência de 2133 mbps.
Slots AMR : (Áudio Modem Riser) criado pela Intel para suportar modens e
placas de rede onboard.
Slots PCI Express: uma das principais características desse slot é possuir
uma comunicação baseada em barramentos seriais e não paralelo, aumentando
assim sua velocidade sob a taxa de transferência. Podem atingir uma taxa de
transferência de 12,8 gbps se possuírem 32 canais de transferência.

4.8 Barramentos USB


A especificação USB (Universal Serial Bus) surgiu de uma parceria entre as
empresas lideres do segmento de informática e telecomunicações como: Compac,
Microsoft e Nec, que procuravam desenvolver uma interface que proporcionava
altas taxas de velocidade de transmissão serial, flexível e com extrema facilidade de
uso. Além desses requisitos principais deveria ser compatível com plug and play,
permitir a inserção e remoção de periféricos com o computador ligado, sem a
necessidade de reiniciar o sistema operacional, ou configurar drives e programas
específicos.
Possui uma velocidade de comunicação negociável entre controladora e
periférico, variando desde 100 kbps para mouse e teclado até 400 mpbs para
armazenamento de dados. Transferência de dados bidirecional e interligando até
127 periféricos em rede através da utilização de hub. Seu cabo pode ter um
comprimento máximo de 5 metros.

4.9 Convenção para a Transferência de dados.


A quantidade de dados transferidos por ciclos de acesso ao barramento
pode ser definida em termos de palavras. Neste contexto palavra tem o significado
23
Arquitetura de Computadores

de unidade básica de comunicação entre os dispositivos, sem caracterizar a


quantidade de bits. Os dispositivos a serem ligados a um barramento podem
necessitar de transferências de palavras isoladas ou de blocos de palavras. Por
exemplo, uma unidade de memória de acesso aleatório (RAM) pode participar de
transferências de palavras isoladas, ou seja, a cada ciclo de acesso, uma única
palavra é lida ou escrita nesta memória. Já uma unidade de disco é acessada em
blocos de palavras (setores).
Um barramento adota a filosofia de transferência que mais se adapta a
necessidade dos dispositivos ligados a ele. De uma forma geral, os barramentos
podem adotar as seguintes filosofias básicas de transferência de dados:
• O barramento só faz transferências de palavra isoladas;
• O barramento só faz transferências de blocos de palavras de
comprimento fixo;
• O barramento só faz transferências de blocos de palavras de
comprimento variável;
• O barramento faz transferências de blocos de palavras de
comprimento fixo ou palavra isolada;
• O barramento faz transferências de blocos de palavras de
comprimento variável ou palavra isolada;
Além das características de acesso dos dispositivos ao barramento
(acessos a palavras ou a blocos), a filosofia de transferência de dados está ainda
vinculada com o mecanismo de controle de alocação e as técnicas de comunicação
no barramento, estudadas anteriormente.
A filosofia adotada pelo barramento pode afetar drasticamente o
desempenho da programação do sistema.
Se o barramento só faz transferências de palavra isoladas, a ligação de
dispositivos com acessos por blocos (e.g. unidades de discos) fica prejudicada.
Além disso, o mecanismo de árbitro de alocação (arbitragem) introduz um grande
custo em tempo para um grande volume de transferências, pois para cada palavra
será necessário: requerer o barramento, conseguir o barramento,... etc.
De uma forma geral, quando a transferência é feita por bloco, o custo em
tempo da alocação do barramento é diluído, pois somente uma arbitragem é feita
por bloco. Entretanto numa transferência por bloco, outras informações precisam
ser transferidas anexadas aos dados. São, por exemplo, informações de tamanho
do bloco, de identificação do bloco, de validação da informação, etc.
O primeiro tipo de barramento para transferências em bloco é aquele que
permite somente transferências de blocos de palavras de comprimento fixo. O
principal problema desta filosofia de transferência é que ela perde toda a sua
vantagem se for necessário transferir blocos de comprimento menor que o fixado.
Neste caso dados nulos são incluídos para completar o tamanho do bloco.
Um segundo tipo de barramento para transferência por bloco permite
transferências de blocos de palavras de comprimento variável; Este tipo de
barramento permite que o tamanho do bloco se adapte as necessidades dos

24
Arquitetura de Computadores

dispositivos de comunicação de blocos. Entretanto, deve ser observado o


compromisso entre o tamanho do bloco e as informações anexadas ao bloco.
Um tipo de barramento que faz transferências de blocos de palavras de
comprimento fixo ou palavra isolada é indicado para sistemas que possuem
dispositivos orientados a palavras e outros para blocos. Durante as transferências
de palavras, nenhum dado adicional é incluído, e as transferências de bloco são
feitas com a adição de dados.
Para sistemas que misturam dispositivos orientados a palavras e orientados
a blocos a solução mais flexível é um tipo de barramento que faça transferências de
blocos de comprimento variável e palavra isolada.

25
Arquitetura de Computadores

CAPITULO 5

INSTRUÇÕES DE MÁQUINA

5.1 – Definições de Instrução de Máquina

Uma instrução de máquina é um grupo de bits que indica ao processador


uma operação ou ação que ele deve realizar. Essas instruções de máquina sendo
diretamente interpretadas e executadas pelo Hardware são dependentes das
características de uma específica CPU, pois manipulam informações cuja
quantidade e movimentação de bits é específica da UAL, ACC, RI CI e demais
componentes.
Dentre as operações normalmente implementadas pelos processadores,
podemos citar algumas, como:

- Transferir um dado de uma célula para outra.


- Realizar uma operação lógica entre dois valores.
- Efetuar a soma entre dois operandos, guardando o resultado em um deles
ou num terceiro operando.
- Executar um desvio incondicional para outro endereço.
- Parar a execução de um programa
- Adicionar 1 ao valor de um operando.
- Substituir o operando pelo seu valor absoluto.
- Testar uma condição.
- Transferir um byte de dados de uma porta de E/S para a MP
- Transferir um byte de dados da MP para uma porta de E/S.

Um processador é fabricado com a capacidade de realizar uma certa


quantidade de operações básicas (Primitivas), cada operação corresponde a uma
instrução de máquina que compõem o conjunto de instruções (“set introduction”).
Atualmente, são empregadas duas tecnologias de projeto de
microprocessadores:
Computadores com conjunto de instruções complexo (complex Instruction
Set Computer - Cisc); e
Computadores com conjunto de instruções reduzidas (Reduces Instruction
set Computer- RISC).
Os Programas fonte, isto é, escritos em linguagem de Programação
(Pascal, C, Clipper, etc.), utilizam comandos para representar as tarefas que
desejamos que o computador executasse. Esses comandos não são diretamente
interpretados e executados pela CPU, tendo que ser convertidos para instruções de
máquina (processo chamado de compilação ou interpretação).

26
Arquitetura de Computadores

Por exemplo, o comando, em linguagem pascal, do tipo: X:= a * b + c - d


será convertido, para execução, em três instruções de máquina (UAL só é capaz de
executar uma de cada vez), a saber:
(1) X:= a * b, que significa multiplicar o valor armazenado no endereço de
memória simbolizado por A pelo valor armazenado no endereço de memória
simbolizado por b; armazenando o resultado em x;
(2) X:= x + c, somar o valor de X com o valor armazenado em c; armazenar o
resultado em X (o valor de X será destruído);
(3) X:= x - d, subtrair o valor armazenado em d do valor de x; armazenando o
resultado novamente em x.

5.2 - Formatos de Instruções de Máquina

Uma instrução de máquina, que a partir de agora chamamos apenas de


instruções, é construída de duas partes, grupos de bits (campos): códigos de
operação e operando.

A figura 4.4 mostra os formatos mais comuns de instrução de máquina.


Código de Operações
Instrução sem operando
C.Op Operando
Instrução com 1 operando
C.Op Operando1 Operando 2
Instrução com 2 operandos
C.Op Operando1 Operando 2 Operando 3
Instrução com 3 operandos
Figura 4.4 - Formatos de Instruções de máquina

5.2.1 - Código de Operação

É a parte da instrução que especifica a operação a ser realizada pela UAL,


por exemplo, somar dois valores, mover de uma célula para um registrador etc.
O código de operação é um conjunto d bits que indica a operação a ser
executada (o C.oP é interpretado pelo decodificador). A quantidade de bits do
código de operação determina quantas instruções o processador é capaz de
executar.
Nos processos Intel (do 8086/88 até o Pentium), o código de operação tem
tamanho igual a 8 bits, portanto, seu conjunto de instruções poderá ter até 256
instruções.
A decodificação é a etapa inicial da efetiva execução da operação
especificada pelo C.oP, tarefa da função de controle.
27
Arquitetura de Computadores

5.2.2 - Operando(s)

É a parte da instrução que , quando existe , o seu valor binário determina a


localização do(s) dado(s) que ser (ão) manipulado(s) pela operação especificada
pelo C. op
A localização de um dado pode ser um endereço de memória ou um
registrador da CPU onde esse está armazenado.

Veja no exemplo abaixo, ilustrado pela figura 4.5

Supondo que o valor binário 1010001 ou hexadecimal A3 identifica a


operação de soma de dois valores armazenados na memória principal, nos
endereços especificados por Operando 1 e Operando 2.

10100011 1001010101110111
1110001011010110
8 bits 16 bits 16 bits
Como mencionado anteriormente, por questões práticas, usaremos os
valores binários convertidos para hexadecimal. Portanto, a instrução de máquina
abaixo corresponde à anterior e significa, somar o valor armazenado no endereço
9577 com o valor armazenado n endereço E2D6 e gravar o resultado no endereço
9577.

end 9577 XXXX


Instrução de máquina

A3 9577 end E2D6 ZZZZ


E2D6

4.5 - Exemplos de instruções de máquina com dois operandos

As instruções podem ter mais de um operando, isto é, a operação a ser


realizada utilizará mais de um dado, sendo assim, cada operando da instrução
poderá conter o endereço de memória de cada dado manipulado e também o
endereço de onde será armazenado o resultado da mesma.
O tamanho, em bits, do C.Op determina a quantidade de instruções que a
CPU é capaz de implementar e o tamanho do operando determina a quantidade de
células de memória que o computador pode endereçar, já que este representa um

28
Arquitetura de Computadores

endereço de memória. No exemplo, o Set Instruction terá 256 instruções e a MP


65.536 células.
Atualmente a quantidade de células das MP tem aumentado bastante,
podendo - se endereçar até 4Gbytes
. Consequentemente, o tamanho dos operandos deveria crescer de forma igual (32
bits)-, o que acarretaria em instruções de máquina com tamanho muito grande.
Na realidade, existem técnicas de endereçamento que permitem gerenciar
grande quantidade de células de memória, utilizando as instruções de tamanho
reduzido, com, isto, economizando memória.
Uma destas técnicas de endereçamento chamada de Endereçamento por
base mais deslocamento, emprega-se registradores específicos da CPU como
parte do endereço do dado (Base) e a MP é subdividida em partes iguais,
identificadas por cada um dos registradores utilizados.
Existem outras técnicas de reduzir o consumo de memória para a
representação de instruções, seja por modos de endereçamentos, supressão de
operando e utilização de outro registrador específico da CPU, o acumulador (ACC).
Instrução com quantidades menores de operandos será abordado no
próximo capítulo.

5.3- Ciclo de Instrução

É o conjunto de tarefas realizadas pela CPU para a execução de uma


instrução. A execução repetitiva do ciclo de instrução é a função básica durante
todo o tempo em que o computador permanece ligado.
As tarefas de um ciclo de instrução são as seguintes:
1- A Unidade de Controle, busca na MP a instrução, cujo endereço está
armazenado no CI(Contador de Instrução);
2- A CPU incrementa o conteúdo do CI, indicando o endereço da próxima
instrução.
3- O decodificador interpreta o código de operação da instrução
(interpretação da instrução) e gera uma saída para a Unidade de Controle (UC),
indicando a operação a ser executada;
4- A CPU busca na MP 0(s) operando(s), se algum for requerido pela
instrução;
5- A Unidade Aritmética (UAL) executa a operação sobre o(s) dado(s) que já
está (ão) armazenados nos registradores da área de processamento.
O ciclo de instrução é na realidade constituído por 2 ciclos - ciclos de Busca
(Fetch), composto pelas duas primeiras tarefas e o ciclo de execução, que engloba
as demais tarefas.
As tarefas do ciclo de instrução são definidas como micro operações e são
executadas em instantes de tempo definidos (ciclos de relógio) sob o comando da
unidade de Controle (UC), podendo haver a execução de mais de uma
microoperação num mesmo instante.

A figura 5.6 representa o fluxograma de um ciclo de instrução

29
Arquitetura de Computadores

Início

Buscar a próxima
Ciclo instrução
de
Busca
Incrementar o C.I
Cálculo do
Endereçamento da
Instrução Decodificação do
C. Op.

Ciclo sim Buscar e Cálculo do


de Tem operando Armazenar endereço do
Execução operando operando (*)
Não
Executar
a operação

Figura 5.6 – Fluxograma de um ciclo de instrução.

30
Arquitetura de Computadores

CAPITULO 6

UNIDADE CENTRAL DE PROCESSAMENTO

6.1 - INTRODUÇÃO

Já sabemos que a Unidade Central de Processamento (CPU) ou


simplesmente processador é o principal componente do Sistema. Responsável pela
execução e controle de todas as operações executadas por todos os componentes
do computador.
Neste capítulo analisaremos o processador de uma forma mais detalhada,
descrevendo suas funções básicas: processamento (efetuada pela Unidade
Aritmética e lógica - UAL) e Controle (efetuada pela Unidade de Controle - UC).
Um Programa é constituído de instrução de máquina e que deve estar
armazenamento em células da memória principal para que seja executado pela
CPU. A atuação da CPU neste processo consiste das seguintes atividades:
a) buscar uma instrução na MP (Operação de leitura);
b) Interpretar (decodificar) qual operação a instrução está indicando;
c) buscar, na MP, os dados que serão manipulados pela instrução;
d) Executar efetivamente a operação com os dados e guardar o resultado na
MP;
e) reiniciar o processo buscando nova instrução na MP.
Estas etapas compõem um ciclo de instrução. O ciclo de Instrução se repete
até que encontre uma instrução de parada ou ocorra algum erro no programa. Ver
figura 4.1
INÍCIO

BUSCAR A
PRÓXIMA
INSTRUÇÃO

INTERPRETAR
A INSTRUÇÃO

EXECUTAR
INSTRUÇÃO

FIM
Figura 4.1 - Fluxo básico de um ciclo de instrução

6.2 - FUNÇÃO DE PROCESSAMENTO

31
Arquitetura de Computadores

Realiza as atividades diretamente relacionadas com efetiva execução de instrução.

6.2.1 - Tarefas da Funções de Processamento

• Operações aritméticas (soma, subtração , multiplicação , divisão);


• Operações lógicas (AND,OR,XOR,etc);
• Movimentação de dados (MP/CPU,CPU/MP e entre registradores);
• Desvios (Alteração da seqüência de execução de instruções);
• Operações de entrada ou saída

A UAL (Unidade Lógica e Aritmética) é o principal dispositivo desta função ,


sendo responsável pela execução de todas as operações lógicas e aritméticas. Os
demais componentes relacionados com a função de processamento são
registradores, que armazenam dados ou guardam resultados parciais a serem
usados pela UAL. A interligação entre os componentes é realizada pelo barramento
interno da CPU.
Os registradores servem como memória auxiliar da UAL e são números
típicos de cada arquitetura de CPU. Em Alguns sistemas, um desses registradores,
denominado acumulador (ACC), além de armazenar dados , serve de elemento
de ligação da UAL com os Outros elementos da CPU.

A figura 4.2 ilustra os componente empregados na função de processamento


(um dos registradores é acumulador).
UNIDADE CENTRAL DE PROCESSAMENTO
ÁREA DE PROCESSAMENTO

UAL

ACC

R1 R2

R3 R4

BARRA DE DADOS
Figura 4.2 - Componentes da função de processamento
A capacidade de processamento de uma CPU, ou seja , a velocidade de
execução de um ciclo de instrução , é determinada pelas operações aritméticas que
a UAL é capaz de executar e pelo tamanho da Palavra que a CPU pode manipular.

32
Arquitetura de Computadores

Em processamento simples , a UAL só pode realizar apenas uma pequena


quantidade de operações básicas , como soma e subtração. Operações mais
complexas, como multiplicação e divisão , são nesses processadores ,
implementados por software (programa), enquanto em processadores mais
poderosos , o Hardware da UAL é capaz de executar diretamente as operações de
soma, subtração, multiplicação e divisão e com muito mais rapidez.
O tamanho de palavra escolhido para CPU determinará o tamanho dos
componentes (registradores e barramentos internos) ligados à área de
processamento e, de certo modo, a velocidade e a capacidade de processamento
do sistema.
Se uma CPU for projetada para ter uma palavra de 16 bits, como intel 8088,
8086 e Motorola 68000, por exemplo, significará que:

• O ACC, demais registradores e vias de dados terão capacidade para armazenar


valores de 16 bits;
• A Ual somente poderá efetuar operações aritméticas e lógicas com valores
representados com 16 bits
Dessa forma, para somar dois valores com 32 bits, essa operação será
realizada em duas etapas: primeiro, será acionada a 1ª metade de cada valor (16
bits) e depois a parte restante
Em outros sistemas nos quais a palavra tem 32 bits, exemplo intel 80486 e
Pentium teremos:

• O ACC, demais registradores e vias de dados permitem o armazenamento e


transferência de valores com 32 bits (O Pentium possui barramentos de 64 bits)
• a UAL é capaz de efetuar operações aritméticas e lógicas entre valores com 32
bits.

Nesses sistemas , a soma de dois valores de 32 bits será realizada em uma


única etapa e, evidentemente , gastará um tempo muito menor.

33
Arquitetura de Computadores

6.3 FUNÇÕES DE CONTROLE

É a função da CPU responsável pelo funcionamento sincronizado de todos


os componentes envolvidos na execução de uma instrução.

6.3.1 - Tarefas da função de Controle

Busca e transferência da instrução a ser executada , armazenando-a no RI


(ciclo de busca ou ciclo de fetch);
Interpretação (decodificação) da instrução de modo a identificar qual a
operação a ser realizada pela UAL (ciclo de instrução); e

Geração dos sinais de controle para ativação das atividades requeridas para
a execução da instrução identificada. Esses sinais são enviados, pela UC, aos
diversos componentes internos à CPU (como a UAL) externos (como a MP e os
periféricos).
A Unidade de Controle (UC) é o principal dispositivo envolvido nesta função.
Além de efetuar a movimentação de dados entre a CPU e MP ela controla o
funcionamento da UAL e de vários componentes do sistema, através dos sinais de
controle . Ver figura 4.3
UNIDADE CENRAL DE PROCESSAMENTO
ÁREA DE PROCESSAMENTO ÁREA DE CONTROLE

RELÓGIO Barra de
controle

DECODIFICADOR MEMÓ
UAL UC
DE RIA
INSTRUÇÕES
PRIN
CIPAL
ACC RI
Barra de
RI R2 endereços
CI REM
R3 R4
Barra de
RDM dados

CONTROLE
DADOS OU ENDEREÇO

Figura 4.3 - Esquema básico da CPU

A emissão dos Sinais de controle ocorre em vários instantes durante o ciclo


de instrução , já que este é constituído por vários passos , como já foi visto
anteriormente . os sinais possuem , de modo geral , a mesma duração ,
denominada ciclo de máquina , isto é , cada operação do ciclo de instrução é
realizado em um ou mais ciclos de máquina. Podemos ter também , a execução de
mais de uma operação num mesmo ciclo de máquina - CPUs que empregam o

34
Arquitetura de Computadores

sistema de execução “pipeline” (arquiteturas RISC). Estes ciclos são gerados por
um dispositivo conhecido como relógio (“ clock”) .

O relógio é um gerador de pulsos eletrônicos cuja função é chamada de ciclo


possui uma freqüência - quantidade de vezes que um ciclo ocorre em um segundo -
que é medida em Hetz (Hz) - portanto, a velocidade de execução de ciclos de
instruções depende, não somente , da quantidade de ciclos de máquina gastas,
mas também, na duração do ciclo e de quantas operações (passo) são realizados
em um mesmo ciclo de máquina.
Ao iniciar o ciclo de instrução , a UC emite o sinal de controle para a busca
de uma instrução na MP e , via barramento de dados e RDM (Registrador de Dados
de Memória), está é armazenada no RI (Registrado de Instruções). Neste instante,
a UC incrementa o conteúdo do CI ( Contador de Instruções), para que este passe
a armazenar o endereço da próxima instrução . Esta fase do ciclo de instrução,
denomina-se ciclo de busca (fetch).

O outro dispositivo envolvido na função de controle é o decodificador, que


tem a finalidade de identificar , por um código individual .

35
Arquitetura de Computadores

CAPITULO 7

INTERRUPÇÃO

Hoje em dia praticamente todos os computadores são dotados de um


mecanismo de interrupção. Neste caso, a UC, logo após terminar a execução de
uma instrução (antes de iniciar o ciclo de fetch da próxima instrução) verifica as
linhas de interrupção para ver se alguma interrupção foi sinalizada. Se foi, o
hardware salva automaticamente os registradores da UCP na pilha do programa
que estava em execução e carrega no PC o endereço da rotina que trata da
interrupção que foi sinalizada (essa rotina de interrupção faz parte do kernel do
Sistema Operacional).

7.1 O conceito de interrupção


O conceito de interrupção é fundamental para se entender a organização
e o funcionamento dos sistemas operacionais. Por isso esse conceito será
apresentado de forma detalhada a seguir. Pode-se dizer que as interrupções são
as forças que movimentam e dirigem os sistemas operacionais. Na verdade, um
sistema operacional só recebe o controle da UCP (só é executado e só trabalha)
quando ocorre alguma interrupção. Essas “forças motrizes” podem ser geradas por
hardware ou por software.

7.2 Interrupção de hardware


Uma interrupção de hardware é um sinal originado em algum dispositivo
físico, que faz com que a UCP suspenda a execução do programa que vinha
executando (guardando informações para continuar a execução desse programa,
mais tarde) e passe a executar uma rotina específica que trata da interrupção
ocorrida. Interrupções de hardware podem ser originadas pelos vários dispositivos
periféricos (discos, impressora, teclado, etc.) ou pelo relógio. O relógio (timer) é um
dispositivo que decrementa automaticamente o conteúdo de um registrador, com
uma freqüência constante, e interrompe a UCP quando o valor do registrador atinge
zero. O SO garante que ocorra pelo menos uma interrupção (e ele volte a trabalhar)
dentro de uma fatia de tempo Ft, colocando no relógio um valor que demore Ft
unidades de tempo para ser decrementado até zero (o SO faz isso antes de
entregar a UCP para um programa de usuário).
Os computadores possuem instruções especiais para desabilitar
(mascarar, inibir) o sistema de interrupção. Enquanto as interrupções estão
desabilitadas elas podem ocorrer, mas não são sentidas pelo processador. Nesse
caso, elas ficam pendentes (enfileiradas) e só voltam a ser sentidas quando a UCP
executa uma instrução especial que habilita (desmascara, desinibe) as mesmas.

36
Arquitetura de Computadores

7.3Interrupção de software (trap ou system call)

Uma interrupção de software é um sinal de interrupção gerado por uma


instrução especial (portanto, por software) denominada chamada do sistema
(system call) ou chamada do supervisor (supervisor call). Alguns autores também
chamam as interrupções geradas por software de traps (armadilhas). A execução
desse tipo de instrução desencadeia as mesmas ações desencadeadas por uma
interrupção de hardware, isto é, o programa em execução é suspenso, informações
são salvas e uma rotina específica do SO é executada.
A diferença fundamental das interrupções de software para as
interrupções de hardware é que as primeiras são eventos previsíveis. Isto é, dado
um programa e seus dados, é possível determinar os pontos em que as
interrupções de software irão ocorrer.
Por outro lado, as interrupções de hardware são geradas por dispositivos
periféricos (para sinalizar erros ou finais de operações) em pontos imprevisíveis.
É comum que a denominação interrupção seja subentendida como
interrupção de hardware. Esta convenção será usada daqui para a frente. As
interrupções de software serão referidas explicitamente por traps ou chamadas do
sistema.
Pode-se dizer que o conjunto das interrupções e dos traps define o
conjunto das portas de entrada do SO. A execução só entra no SO através de uma
dessas portas. A seguir é explicado o mecanismo que faz a UCP transferir a
execução para a porta de entrada correta, quando ocorre uma interrupção ou um
trap.
Em tempo de projeto do computador, é escolhida uma área de memória
para conter uma tabela, denominada tabela de interrupções, que irá conter uma
linha (entrada) para cada interrupção ou trap que possa ocorrer no sistema. Cada
entrada da tabela contém dois valores: um para ser carregado no PC (program
counter) e outro para ser carregado na PSW (processor status word). A palavra de
estado do processador (PSW) é um registrador da UCP que contém informações
do tipo: quais interrupções estão desabilitadas e qual é o modo de execução da
UCP (O modo de execução pode ser normal (programa de usuário em execução) ou privilegiado
(SO em execução)).
O hardware é projetado e construído de tal maneira que, quando ocorre
uma interrupção ou um trap, a UCP salva automaticamente os conteúdos do PC e
da PSW na pilha do programa em execução e carrega novos valores nesses dois
registradores, a partir da entrada correspondente da tabela de interrupções. Em
tempo de carga do SO, a tabela de interrupções é inicializada corretamente, cada
entrada indicando uma porta de entrada do SO.

37
UC

Arquitetura de Computadores

7.4 Os modos de execução da UCP

Os traps surgiram (passaram a serem necessários) quando os


computadores deixaram de disponibilizar todas as suas instruções para os usuários
e passaram a adotar instruções protegidas (ou privilegiadas). Nessa época, os
projetistas decidiram que determinadas instruções, por serem perigosas para o
sistema como um todo, deveriam ser executadas apenas dentro do SO (isto é,
apenas por rotinas do SO). Exemplos de instruções perigosas são instruções para
desabilitar e habilitar interrupções e instruções para realizar operações de E/S.
Esse controle do uso de instruções é conhecido como proteção de
controle (Outro tipo de proteção implementado por hardware é a proteção de memória. A proteção
de arquivos (informações) é normalmente implementada por software) ou proteção de
instruções. Para implementar este tipo de proteção, o hardware teve que passar a
distinguir dois modos de processamento: modo privilegiado (também chamado
modo supervisor, modo sistema, modo mestre) e modo normal (modo usuário,
modo programa, modo escravo). Se a UCP, no modo usuário, tenta executar uma
instrução protegida, isto gera uma interrupção de software do tipo instrução ilegal
(illegal instruction trap).
Sendo assim, sempre que um programa de usuário precisa executar uma
operação envolvendo instrução perigosa, ele tem que passar o controle para o SO,
mudando o modo de execução. Aqui é um ponto chave para o bom entendimento
deste assunto (aqui os projetistas deram o “pulo do gato”). Observe que a instrução
para transferir a execução para o SO não podia ser protegida, pois esta instrução
teria que ser executada por um programa de usuário. Também não podia ser uma
instrução de transferência simples, pois isto permitiria transferir a execução para
qualquer ponto do SO, sem controle. Tampouco podia ser uma instrução tipo
“transferência para sub-rotina com passagem do modo de execução para
privilegiado”, pois uma instrução assim poderia ser usada por um usuário mal
intencionado para obter o controle total da máquina. Era necessário, portanto, que
essa instrução de transferência para o SO tivesse alguma “armadilha” associada,
para pegar intrusos. Daí vem o nome trap (em português, armadilha) para o
esquema adotado.
Para encurtar o relato, a solução adotada é aquela já conhecida, a qual
permite transferir com troca do modo de execução apenas para pontos fixos e bem
determinados do SO, que são as suas portas de entrada. Nas portas de entrada
dos traps, o SO pode fazer as verificações que julgar necessárias e implementar as
armadilhas que desejar.
Hoje em dia, qualquer computador possui dois modos de processamento. Sempre
que ocorre uma interrupção ou um trap, a UCP passa para o estado privilegiado (e
nesse estado qualquer instrução pode ser executada). Posteriormente, ao entregar
a UCP para um programa de usuário, o SO recoloca a UCP no modo não
privilegiado. Sempre que um programa de usuário precisa executar alguma
operação que envolva instrução protegida, o mesmo tem que executar um trap,
passando como argumentos para o SO a identificação da operação e os
parâmetros para sua execução.

38

Você também pode gostar