Buscar

Apostila Arquitetura de computadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ARQUITETURA 
 
DE 
 
COMPUTADORES 
 
 
 
Arquitetura de Computadores 
 
2
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. 
 
 
 
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. 
 
 
 
 
 
 
ENTRADA PROCESSAMENTO SAIDA 
Arquitetura de Computadores 
 
3
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. 
Arquitetura de Computadores 
 
4
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. 
Arquitetura de Computadores 
 
5
 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. 
Arquitetura de Computadores 
 
6
 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 
máxima de MP 
(Bytes) 
64 Kb 256 Kb 256 Kb 512 Kb 512 Kb 
Ciclo do 
Processo em 
micros 
segundos 1 0,625 0,5 0,25 0,2 
Quantidade 
máxima de 
canais (E/S) 
3 3 4 6 6 
Bytes movidos 
da MP para 
CPU por ciclo 
1 2 4 16 16 
 
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. 
 
 
 
 
 
 
 
Arquitetura de Computadores 
 
7
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. 
 
 
 
 
 
 
 
 
 
 
 
Figura 2.1 - Componentes Básicos de um Computador. 
 
 
PERIFÉRICOS 
DE ENTRADA 
PROCESSADOR 
CPU 
PERIFÉRICOS 
DE SAIDA 
 
 
MEMÓRIA 
 Dados 
 Controle 
 
Entrada Saída 
Arquitetura de Computadores 
 
8
 
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. 
Arquitetura de Computadores 
 
9
 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ênciade 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)). 
Arquitetura de Computadores 
 
10
 
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. 
 
Arquitetura de Computadores 
 
11
 
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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 4.1 - Pirâmide Hierárquica de tipos de memória 
 
 
 
 
 
Discos 
 
Fitas 
Registradores 
Cache 
Principal 
Secundária 
Custo alto 
Velocidade alta 
Baixa capacidade 
Custo baixo 
Velocidade baixa 
Alta capacidade 
Arquitetura de Computadores 
 
12
 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. 
 
Arquitetura de Computadores 
 
13
 
 
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 (armazenaum ú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. 
 
 
Arquitetura de Computadores 
 
14
 
 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. 
 O refreshing ocorre geralmente a cada 2ms (milisegundos –10 -3 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. 
Arquitetura de Computadores 
 
15
 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. 
 
 
 
Arquitetura de Computadores 
 
16
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).Arquitetura de Computadores 
 
17
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 
Arquitetura de Computadores 
 
18
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. 
 
Arquitetura de Computadores 
 
19
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". 
 
 
 
 
 
 
 
 
 
 
Arquitetura de Computadores 
 
20
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 
de posições de memória endereçava q é igual a 2n, onde n é o número de bits do 
barramento de endereçamento. Por exemplo, barramento de endereçamento com: 
 bits q = 2
n
 
6 bits 65 536 64 kilo posições 
0 bits 1 048 576 1 mega posições 
4 bits 16 777 216 16 mega posições 
2 bits 4 294 967 296 4 giga posições 
 
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. 
Arquitetura de Computadores 
 
21
 
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 cadaoperaçã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 
Arquitetura de Computadores 
 
22
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). 
Arquitetura de Computadores 
 
23
 
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 
Arquitetura de Computadores 
 
24
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 
Arquitetura de Computadores 
 
25
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. 
Arquitetura de Computadores 
 
26
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). 
Arquitetura de Computadores 
 
27
 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. 
 
 
 
 
 
 
 
 
 
 
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. 
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 
Instrução com 3 operandos 
C.Op Operando1 Operando 2 Operando 3 
Arquitetura de Computadores 
 
28
 
 
 
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. 
 
 
 
 
 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. 
 
 
 
 
 
 
 
 
 
 
 
 
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 
8 bits 16 bits 16 bits 
10100011 1001010101110111
 1110001011010110 
Instrução de máquina 
A3 9577
 E2D6 
 
 
 
XXXX 
 
 
ZZZZ 
end 9577 
end E2D6 
Arquitetura de Computadores 
 
29
endereço de memória. No exemplo, o Set Instruction terá 256 instruções e a MP 
65.536cé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 
 
 
Arquitetura de Computadores 
 
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Buscar a próxima 
instrução 
Incrementar o C.I 
Decodificação do 
C. Op. 
Cálculo do 
endereço do 
operando (*) 
Buscar e 
Armazenar 
operando 
Executar 
a operação 
Tem operando 
sim 
Início 
Cálculo do 
Endereçamento da 
Instrução 
Ciclo 
de 
Busca 
Ciclo 
de 
Execução 
Não 
Figura 5.6 – Fluxograma de um ciclo de instrução. 
Arquitetura de Computadores 
 
31
 
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 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 4.1 - Fluxo básico de um ciclo de instrução 
 
6.2 - FUNÇÃO DE PROCESSAMENTO 
 
BUSCAR A 
PRÓXIMA 
INSTRUÇÃO 
 
INTERPRETAR 
A INSTRUÇÃO 
 
EXECUTAR 
INSTRUÇÃO 
FIM 
INÍCIO 
Arquitetura de Computadores 
 
32
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). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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. 
UNIDADE CENTRAL DE PROCESSAMENTO 
ÁREA DE PROCESSAMENTO 
UAL 
ACC 
R1 R2 
R4 R3 
BARRA DE DADOS 
Arquitetura de Computadores 
 
33
 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) 
• aUAL é 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. 
 
 
Arquitetura de Computadores 
 
34
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 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 
UNIDADE CENRAL DE PROCESSAMENTO 
ÁREA DE CONTROLE ÁREA DE PROCESSAMENTO 
UC DECODIFICADOR 
DE 
INSTRUÇÕES 
UAL 
ACC RI 
REMCI RI R2 
RDM
R4 R3 
RELÓGIO 
 
 
MEMÓ
RIA 
PRIN 
CIPAL 
CONTROLE 
DADOS OU ENDEREÇO 
 
Barra de 
 controle 
Barra de 
endereços 
Barra de 
 dados 
Arquitetura de Computadores 
 
35
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 . 
 
 
 
Arquitetura de Computadores 
 
36
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. 
 
 
 
 
 
Arquitetura de Computadores 
 
37
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. 
 
Arquitetura de Computadores 
 
38
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. 
 
 
UC

Outros materiais