Buscar

Bom curso informatica

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 163 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 163 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 163 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

Apostila de Sistema de Computação pág. 138
CAPÍTULO 1
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 criado 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.
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 a 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, Software e Firmware
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. Firmware , a integração dos dois componentes anteriores, por exemplo , um conjunto microinstruções armazenadas em memória ROM.
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.2.1 - Dispositivos Mecânicos (500 a.C. - 1880)
O primeiro equipamento para efetuar cálculos matemáticos , data do século Ac, inventado pelos babilônicos , foi o ábaco.
O ábaco foi utilizado também pelos romanos e pelos chineses que mantém em uso até os dias de hoje no ensino da aritmética básica.
A evolução do ábaco só ocorreu no século XVII(1642), proporcionada pelo tráfego e matemático francês Blaise Pascal que construiu um contador mecânico que realizava operações aritméticas de soma e subtração através de rodas e engrenagens dentadas. Cada engrenagem continha 10 dentes que , após um giro completo , acarretava o avanço de um dente de uma segunda engrenagem , exatamente o mesmo princípio de um odômetro de um automóvel e base das calculadoras mecânicas.
O alemão Gottfried Leibniz, também filósofo e matemático aperfeiçoou o invento de pascal. Construiu uma calculadora que executava as quatro operações básicas da aritmética , sendo que multiplicação e divisão eram realizados através de somas e subtrações sucessivas , respectivamente .
A primeira utilização prática de dispositivos mecânicos para computar dados automaticamente data de início de 1801, quando Joseph Jacquard introduziu no processo de tecelagem , o controle das máquinas através de instruções registradas em orifícios em cartões perfurados.
Um dos mais importantes trabalhos pioneiros em computação por processos mecânicos foi realizado pelo inglês Charles Babbage, que em 1823, foi contratado pelo governo inglês para produzir uma calculadora programável , capaz de gerar as tabelas de navegação para a Marinha Britânica . Na época , as tabelas eram escritas manualmente por diversos funcionários que tinham duas tarefas básicas:
1) Realizar sucessivas e repetidas operações de adição e multiplicação;
2) Escrever os resultados.
Foi constatado que , devido à natureza permanente e repetitiva do processo realizado por pessoas , ocorriam erros (tanto nos cálculos , quanto no registro dos resultados).
Babage projetou dois tipos de máquina: a máquina de diferenças e a máquina analítica.
 
A máquina de diferenças utilizava o processo matemático de diferenças finitas - só realizava operações de adição e subtração e como a máquina de Pascal , possuía um conjunto de registradores mecânicos , cada um contendo rodas com dígitos que serviam para armazenar um valor decimal . A máquina era movida por um motor a vapor , que realizava uma série de etapas e finalmente apresentava um resultado . Além disso , ela possuía um dispositivo de gravação em uma chapa de cobre , uma espécie de agulha que marcava os valores na chapa, a qual servia de matriz para posterior impressão em papel. Este processo de gravação pode ser considerado como pioneiro em termos de dispositivos de armazenamento secundário.
A máquina analítica era , na realidade , um computador mecânico capaz de armazenar 100 números de 20 algarismos e que possuía um programa que permitia modificar o funcionamento da máquina, fazendo - a realizar diferentes cálculos. Por esta capacidade, pode - se dizer que esta máquina foi a percursora dos primeiros computadores eletrônicos , inclusive no seu método de introduzir instruções por cartões perfurados .
Embora inteiramente mecânica, a máquina analítica de Babbage possuía essencialmente os mesmos componentes que um computador atual , quais sejam:
· Memória Constituída de rodas dentadas de contagem ;
· Processador: Com uma unidade capaz de realizar as quatro operações aritméticas (operando com pares de registradores ) e “unidades de controle”, constituída de cartões perfurados convenientemente para realizar esta ou aquela operação;
· Saída: Para impressora ou para um dispositivo perfurado de cartões.
O projeto final de Babbage , que pretendia calcular valores com 50 algarismos , nunca chegou a se tornar realidade física , por ser avançado demais para uma época em que a tecnologia não dispunha da devida capacidade para a fabricação dos dispositivos necessários ao funcionamento das engrenagens.
O projeto de Babbage também fez ressaltar alguns detalhes Históricos , como o tempo estimado para execução de adição- um segundo - e de multiplicação - um minuto - e que o programa criado para fazer a máquina funcionar foi desenvolvido por uma mulher chamada Ada ovelace , que pode ser , então considerada a primeira programadora de computadores da história e que surgiu de nome para uma linguagem moderna de programação ADA desenvolvida para o departamento de defesa dos EUA.
1.2.2- Dispositivos Eletrônicos (1880-1930)
Com a invenção do motor elétrico no fim do século passado , surgiu uma grande quantidade de máquinas de somar acionadas por motores elétricos , baseados no princípio de funcionamento da máquina de Pascal.
Em 1889, Herman Holleritrh desenvolveu o cartão perfurado para guardar dados e também uma máquina tabuladora mecânica , acionada por um motor elétrico , que contava classificava e ordenava informações armazenada em cartões perfurados . A sua invenção utilizava na apuração do censo americano de 1890 pelo Bureau of Census dos EUA, que contratou Hollerith. O trabalho durou apenas dois anos e meio , o que manualmente levaria 10 anos 
O sucesso de Hollerith o conduziu a criação da Computer Tabulating Machine Company, em 1896, que em 1914 juntou-se a mais duas e surgiu a tabulating Recording Corporation. Em 1924, Thomas Watson mudou o nome da empresa para IBM - International Business Machine.
Os cartões perfurados foram utilizados até a década de 80 , como um dos principais elementos de entrada de dados dos computadores .
A primeira máquina de calcular eletrônica foi criada pelo engenheiro alemão Konrad Zuse, Chamada Z1. Baseava-se em relés eletromecânicos que atuavam como chaves , abrindo e fechando automaticamente o fluxo de corrente elétrica , o que levou à utilização de números binários em vez de algarismos decimais , utilizados nas engrenagens da máquina de Babage.
Com o aperfeiçoamento , a máquina passou a ter um teclado como dispositivo de entrada e l6ampadas como saída . Em 1941, Zuse concluiu o Z3 que era controlado por um programa , sendo talvez o primeiro computador operacional do mundo.
O modelo Z4 foi utilizado por militares alemães para auxiliar no projeto de aviões e mísseis durante a Segunda Guerra , os bombardeiros aliados destruíram a maior parte dos computadores construídos por Zuse, restando apenas o registro histórico dessas invenções.
Outro inventor desta época foi o americano Howard Aiken, físico e matemático , que desenvolveu o computador chamado MARK I, utilizado os princípios de Babage, ou seja , com engrenagens decimais. O MARK I foi concluído em 1944, era capaz de armazenar 72número , realizar uma soma em seis segundos e uma divisão em doze, e as instruções eram introduzidas na máquina através de fita de papel perfurada. Está máquina tornou-se obsoleta antes de operar comercialmente em escala, pois a eletrônica já começava a substituir os componentes eletromecanicos pelas válvulas , muito mais rápidas.
1.2.3 - Componentes eletrônicos(1930-1945)
Os sistemas de armazenamento e chaveamento utilizado nos computadores eletromecânicos desgastavam-se com o tempo, tornando-os lentos e não muito confiáveis os seus resultados.
Esses problemas foram solucionados com a utilização da válvula, ( inventada em 1906) que permitiam maior velocidade de processamento e armazenamento , pois não necessitavam de partes mecânicas para realizar as operações.
Desta época, destacam-se dois cientistas , o inglês Alan Turing que desenvolveu um computador com a finalidade única de decifrar códigos militares alemães, portanto uma máquina de emprego específico , denominado Colossus. O outro foi John Macuchilyn, um dos construtores do ENIAC, que foi reconhecido como o que deu início à computação eletrônica.
A evolução dos computadores eletrônicos está dividida em geração que são caracterizadas de acordo com o elemento básico utilizado na fabricação do processador central , como veremos a seguir.
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 à 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.
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 industria eletrônica digital.
A NCR foi a primeira empresa a lançar o computador transistorizado , seguida 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.
Marcaram , 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 ao 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 a 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 utilizou-se dos novos avanços tecnológicos da microeletrônica e lançoua 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.
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 UCP 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 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.
1.3.5 - Evolução dos Microcomputadores
Em 1971, a Intel Corporation produziu a primeira CPU em um único chip de circuito integrado , com cerca de 2.300 transistores e palavra de 4 bits, chamada de INTEL - 4004. Esta CPU foi desenvolvida para equipar uma calculadora . Em seguida , foi lançado o microprocessador 8008, com 8 bits de palavra , 16K de memória e cerca de 3.500transistores, também com a mesma finalidade.
Em 1973, a Intel lança o 8080, o primeiro microprocessador de emprego geral do mundo. O 8080 possuía cerca de 5.000 transistores, palavras de 8 bits, podia endereçar até 64 Kbytes de memória e conjunto de 78 instruções de máquina.
Com este lançamento , a Intel assume o mercado de microprocessadores , vendendo milhões de exemplares e desenvolvendo novos produtos , até o lançamento do seu top de linha, o Pentium, com cerca de 3,5 milhões de transistores em um único chip.
A figura 1.4 mostra um quadro comparativo entre as principais características dos microprocessadores de maior mercado
Quadro Comparativo de Características de microprocessadores
Microprocessador
Data de 
Lançamento
Palavra de 
Dados
Endereçamento Máximo de MP
Intel 4004
1971
4
1 K Bytes
Intel 8080
1973
8
64 K Bytes
Intel 8088
1980
16
1 K Bytes
Intel 80286
1982
16
16 M Bytes
Intel 80386
1985
32
4 G Bytes
Intel 80486
1989
32
4 G Bytes
Intel Pentium
1993
32
4 G Bytes
Motorola MC 6800
1974
8
64K Bytes
MC 68000
1979
32
16 M bytes
MC 68010
1983
32
16 M Bytes
MC 68020
1984
32
4 G Bytes
MC 60030
1987
32
4G bytes
MC 68040
1989
32
4 G bytes
Zilog Z80
1974
8
64 K bytes
Zilog Z80
1979
16
1M Bytes
Figura 1.4 - Quadro comparativo de características de microprocessadores.
 Outros fabricantes também desenvolveram microprocessadores, citados acima, como a Motorola , que equipa os microcomputadores Machintoshi(Aplle) e Amiga(da Comodore).
A Zilog, constituída pelos dissidentes da intel, deixou o mercado de microcomputadores de emprego geral e só fabrica microprocessadores específicos para controle de processos .
EXERCÍCIOS:
1 – Conceitue os termos dado e informação, no que se refere a seu emprego em processamento de dados.
2 – Caracterize as etapas principais de um processamento de dados.
3 – Conceitue um sistema. 
4 – O que você entende por um programa de computador?
5 – Conceitue os termos Hardware e Software.
6 – O que é e para que serve uma linguagem de programação de computador?
7 – Quem desenvolveu a máquina analítica?
8 – Qual foi a característica marcante do censo de 1890 dos EUA, no que se refere à contabilização dos dados levantados?
9 – Qual foi o propósito que conduziu ao desenvolvimento do primeiro computador eletrônico do mundo?
10 – Qual foi o primeiro microprocessador de 8 bits lançado comercialmente? Qual o nome da empresa proprietária?
11 – Quais eram as características básicas da arquitetura proposta pelo Dr. Jhon Von Neumann? 
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ários a integração destes elementos .
Uma tarefa deve, primeiro 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ória.
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.
Unidade Central de Processamento - UCP 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 , deveser 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/DESLIGADO,ABERTO/FECHADO etc.).
Em vista disso, teremos como menor unidade de informação que pode ser armazenada 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 possui 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.
Vejamos um Exemplo:
Com 8 bits é possível representar um grupo de 256 símbolos diferente, como é o caso dos caracteres padrões utilizados pela maioria dos computadores.
Como cada bit pode assumir dois valores e utilizamos 8 bits , então, teremos:
2x onde :
2 é o número de valores assumidos por um bit e,
X é a quantidade de bits utilizados
28 = 256 combinações diferentes, cada uma representando um caracter.
Por conseguinte, com 3 bits, podemos representar 8 diferentes símbolos , com 5 bits, 32 símbolos; com 9 bits, 512 símbolos e assim por diante.
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 escrevermos um simples nome, como por exemplos , logicamente, precisamos de quantidades maiores de memória para efetuar qualquer trabalho.
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 UCP é 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 emprega-se quantidades múltiplas do byte - 16 (2 bytes) ou 32 (4 bytes, são os valores mais usados ).
Atualmente, os micros Pentium e similares , utilizam palavra com 32 bits, enquanto que máquinas com processador RISC, da DEC, empregam 64 bits.
Conceitos aqui citados , serão melhor detalhados nos capítulos seguintes.
2.2.2 - Arquivos e Registros e Campos
Já sabemos que uma tarefa efetuada por um computador , é a execução de um programa ( conjunto de instruções) sobre os dados e , que estes dois elementos devem estar armazenados na memória principal para que haja o processamento.
Os conceitos utilizados para arquivo, registro e campos em processamento de dados , têm exatamente o mesmo significado e a mesma aplicação para a Administração , ou mesmo para a vida prática.
Tanto os programas quando os dados são identificados por grupos distintos de armazenamento (em memória principal ou secundária), denominados arquivo.
O arquivo, é portanto, um conjunto organizado de dados de um mesmo tipo ou para uma mesma aplicação. Por exemplo, o arquivo dos produtos de uma loja , contendo informações individuais de cada produto , ou contendo as instruções de um programa.
Um arquivo é formado por um conjunto de itens individuais de informação (como cada produto , no exemplo ), denominados registros. Assim, um arquivo que possua 500 produtos , terá 500 registros.
O registro é constituído de dados elementares, denominados campos, que armazenam características de cada registro armazenado no arquivo (como o código de um produto, no exemplo).
Para melhor entendermos os conceitos citados acima, vamos fazer uma analogia a um sistema manual de controle de produtos de uma loja de produtos de limpeza possua 5.000 itens diferentes em seu estoque e necessite controlar a entrada de produtos . Vejamos como isso acontece na prática:
As informações sobre os produtos são escritos em uma ficha padronizada, uma para cada produto(registro), estruturada em campos separados para cada um dos dados elementares sobre o produto, tais como: código do produto, nome do produto, fornecedor, preço unitário etc;
As fichas são guardadas em uma gaveta (arquivo), somente para produtos, que serão identificados com um nome que lembre o seu conteúdo
A figura 2.2 Exemplifica a estrutura de um arquivo de dados.
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 (UCP, 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.
Podemos citar como exemplos de micros, os das marcas IBM, Compaq e Machintoshi. Estas marcas fabricam o microprocessador e os demais componentes, no entanto , encontramos com mais freqüência no mercado , micros com processadores de um fabricante e os demais componentes fabricados por vários outros.
Os principais de microprocessadores são Intel, AMD e Cyrix.
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 .
Como exemplo , podemos citar: DECstation 5000/33, IBM RS/6000
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 , requer maior velocidade /capacidade de memória e uma grande potencialidade para manipular diversos periféricos.
Exemplos para essas máquinas , são : VAX-11/780, AS400 da IBM
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 armazenamentoem 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.
Exemplos típicos são sistemas IBM 3090 e o Control Data CDC 6600.
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 à pessoas, modelagem tridimensional . Estas máquinas são capazes de realizar dois bilhões de operações matemáticas por segundo.
Exemplos deste tipo de máquina são o Cray Y-MP e o IBM 90221.
EXERCÍCIOS
1 – Explique o que você entende por memória. Cite exemplos de memória na vida prática (evite usar exemplo de memória de computador).
2 – Descreva as funções de uma Unidade Central de processamento.
3 – Faça o mesmo para a memória de computador.
4 – Para que servem os dispositivos de entrada e saída de um computador. Cite alguns exemplos.
5 – Imagine uma empresa qualquer. Cite exemplos de arquivos e registros a serem criados para o armazenamento das informações que circulam na tal empresa.
6 – conceitue o bit, o byte e a palavra.
7 – Em que um supercomputador difere de um computador de grande porte?
8 – Quais são as principais características que definem um microcomputador?
9 – Qual é a diferença entre linguagem de alto nível e linguagem de máquina?
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 UCP de um disco) e de leitura (transferência de bits da memória para a UCP, 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
3.1.1 - Registradores
Já sabemos que a UCP é 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 UCP (uma cópia deles). A execução é, na realidade, tarefa da Ual (Unidade Aritmética e Lógica), Componente da UCP.
Os registradores são unidades de memória que armazenam, temporariamente, na UCP, 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 à UCP).
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.1.2 - Memória Cache
Durante a execução de uma instrução , a UCP 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 a diferença de velocidade entre a UCP e a MP (Memória Principal). Isto causa ociosidade da Ucp, pois esta precisa esperar que a instrução e os dados sejam transferidos para a UCP.
A CACHE é uma memória construída com tecnologia similar à da UCP, consequentemente, com velocidade de transferencia compatível, reduzindo consideravelmente o tempo de espera da UCP por instruções e dados. A cache está inserida entre a UCP e a MP; no mesmo CHIP da UCP (cache interna). A sua capacidade de armazenamento é baixa, se compara com a MP, atualmente 8 Kbytes.
A UCP 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 UCP, aumentando o tempo de acesso.
 As memórias cache externas (localizadas na placa mãe) são constituídas de circuitos eletrônico, 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 a 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.
3.1.3 Memória Principal
A memória principal o memória primária é formada por dois tipo 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 gravadas na ROM , constituem 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 UCP 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á pronto 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 o seu formato.
A memória RAM, é a memória básica do computador . Nela são armazenadas, o programa a ser executado e seus dados , que a UCP busca, instrução por instrução, portanto, nesta memória podem ser executadas tanto as operações de leitura quanto asa de gravação . Doravente, 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 . Atualmente, os microcomputadores possuem memória principal de 4, 8, 16 e 32 MB (Mega Bytes); embora estes possam endereçar até 4 Giga Bytes. Computadores de grande Porte costumam funcionar com memória principal de até 512 Megabytes.
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 2 ms (milisegundos –10 -3 seg), deixando a Ramindisponí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.
3.1.4 - 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 as informações 9dados e programas) necessários 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ígidos9Hadrd Disk - HD), discos e Fitas), 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 , enquanto as fitas , ainda mais lentas, podem gastar até segundos para ler um arquivo.
Atualmente , os discos rígidos de microcomputadores possuem capacidade de armazenamento variando entre 600 Mbytes e 3 Gbytes. os CD-ROM têm capacidade de 600 MBYTES, nas fitas magnéticas a capacidade de armazenamento depende do comprimento e da densidade de gravação da fita .
3.2 - MEMÓRIA PRINCIPAL
Neste item estudados a organização e funcionamento básico da memória principal ,tendo em vista que já citamos suas principais características, no item 3.1.3. Serão descritas as operações de escrita e leitura .
3.2.1 - Organização da Memória Principal
A memória principal de qualquer computador é constituída como um conjunto de N células (unidades de armazenamento). Todas as células de uma memória principal possuem o mesmo tamanho , ou seja, são formadas pela mesma quantidade de bits , geralmente são organizadas em grupos de 8bits(1byte).
Cada célula possui um endereço que identifica individual e seqüencialmente a sua posição dentro do conjunto da memória principal. Cada célula armazena um grupo de M bits , que representa o seu conteúdo (pode ser dado ou parte dele, uma instrução ou parte dela). a figura 3.2 ilustra a definição de célula de memória principal.
Uma informação pode ocupar mais de uma célula de MP (no caso de um dado booleano, ocupará apenas um bit - 0 ou 1), porém o seu endereço será o da primeira célula ocupada. A quantidade de células que podem ser ocupadas por uma informação, denomina-se palavra, que por sua vez, também não possui um padrão de tamanho, variando conforme o fabricante e seus interesses técnicos e comerciais.
O conceito de palavra é geralmente utilizado como unidade de transferência de dados entre a UCP e a MP , ou seja , quantos bits podem ser manipulados em um acesso.
A quantidade de bits transferida num acesso depende , também do tamanho do barramento de dados (elemento que transporta os bits entre a UCP e MP). Teoricamente , a MP deveria ser organizada por palavras seqüências , assim como , uma célula deveria corresponder a uma palavra , que isto não ocorre na realidade
Por exemplo , o processador Intel 80486 possui palavra e barramento de 32 bits e cada célula de memória armazena 8bits . já o processador Pentium possui palavra de 32 bytes, células de 8 bits e o barramento de dados tem 64 bits.
OBS:
Neste trabalho consideramos que uma célula de memória corresponde a uma palavra e representaremos endereço e conteúdo de uma célula em hexadecimal.
A figura 3.3 exemplifica as observações tratadas.
Figura 3.3 – Exemplificação da observação sobre memória principal.
3.2.2 - Operações com a memória Principal
A UCP realiza sobre a MP somente as operações de leitura e gravação.
Operação de Gravação (“Write”) - armazenar informação na memória principal.
Operação de leitura (“read”) - recuperar um informação armazenada na memória.
Para que estas operações ocorrem , são, necessários outros elementos que compões a ligação entre a MP e a UCP. Portanto , vamos definí-los neste item,. Ver Figura 3.4.
Barramento de dados ( Interliga a RDM à MP , para transferência de informações entre a MP e a UCP. Barrramento de dados é bidirecional, isto é , os sinais percorrer o barramento da UCP para a MP (leitura) ou MP para UCP(escrita).
Barramento de dados é formado por conjunto de fios ((por cada fio passam um dos bits da palavra de dados). Portanto , o tamanho de dados , em bits , é igual ou superior ao de uma célula de memória )
Registrador de dados de Memória (RDM) - Memory Buffer Register (MBR) ( Armazena , temporariamente , a informação (conteúdo de uma ou mais células ) que está sendo transferido da MP para UCP ou da UCP para a MP. Possui o mesmo tamanho do barramento de dados 
Barramento de endereços ( Interliga o REM à MP para transferência dos bits que representa o endereço de uma posição de memória que será utilizada em um acesso . Este barramento é unidirecional, visto que somente a Ucp aciona a MP p[ara realização das operações de leitura e Gravação. |Possui tantos fios quantos são os bits que representam um endereço de memória.
Registrador de memória (REM)(MAR) ( Registrador que armazena , temporariamente, o endereço da posição de memória que será acessada. Possui a mesma capacidade de armazenamento , em bits, do REM e do barramento de endereços .
Barramento de controle ( Interliga a UCP à MP para passagem de sinais de controle durante uma leitura ou gravação ,. Este Barramento é bidirecional , pois a UCP pode enviar sinal para a MP indicando que a operação a ser realizada é de leitura(read) ou de escrita(write) e a MP pode enviar sinal de WAIIT (para a UCP aguardar o término de uma operação).
Registrador de Instrução (RI) ( Registrador que tem finalidade de armazenar a instrução a ser executada pela UCP. A instrução a ser executada pela UCP. A instrução é transferida da MP, via barramento de dados a RDM, para RI.
Contador de Instruções(CI)- Program Counter (PC) ( registrador que armazena o endereço da próxima instrução a ser executada . ele determina a seqüência de execução de um programa. No início do ciclo de instrução , o seu conteúdo é incrementado (CI = CI+1) e passa a armazenar o endereço de memória da próxima instrução na seqüência .
Barramento de controle
Barramento de endereços
Barramento de dados
Figura 3.4 - Barramento de Ligação UCP - Memória Principal
3.2.2.1 - Operação de Leitura
Uma operação de leitura é constituída de algumas etapas, isto é , microoperações realizadas para transferir uma informação da MP para UCP. O tempo decorrido para a realização de todas as etapas de um acesso , denomina-se tempo de acesso e o intervalo de tempo entre duas operações consecutivas , chama-se ciclo de memória . Nas memórias do tipo SRAM, o tempo de acesso é igual ao ciclo de memória . Já nas memórias DRAM, o ciclo de memória é acrescido de tempo de refreshing e denomina-se de ciclo de máquina.
Nas memórias do Tipo DRAM, o tempo de acesso ou ciclo de memória está entre 50 e 100 ns (nonosegundos - 10-9seg) e nas SRAM, em torno de 30 ns
Independente do tipo de memória principal , o tempo de acesso à qualquer posição será sempre igual ; o que caracteriza o acesso aleatório da MP.
Seqüência de passos de gravação .
1. A Unidade de Controle (UC) transfere o endereço desejado (C6A7) do registrador de instruções (RI) para o registrador de endereços a de memória (REM);
2. O endereço desejado contido no REM,, é colocado no barramento de endereços ;
3. A UC envia para a memória Principal (MP) um sinal de leitura (READ), através do barramento de controle;
4. A MP identifica a posição de Memória , cujo o endereço está contido no REM e transfere o seu conteúdo para o RDM através do barramento de dados . Dai, então , para o registrador de instruções (RI)na UCP.
Após a leitura , os dados são transferidos para outrosregistradores de uso geral , onde serão processados de acordo com Instrução a ser executada pela UCP.
A figura 3.5 ilustra uma operação de leitura
3.2.2.2 - Operação de Gravação
A operação de gravação segue procedimento similar ao da operação de leitura , diferenciando, logicamente no sentido da transferência que é da UCP para a MP.
Seqüência de passos da operação de gravação :
1.- a unidade de controle (UC). Transfere o Endereço da Primeira posição de memória disponível (3F1A), Registrador de Instrução(RI) para o registrador de Endereços da Memória (REM);
2. - A UCP transfere o dado a ser armazenado (2B), de um Registrador de uso geral , para o RDM;
3. - A UC envia para a memória Principal (MP) um sinal de Gravação (Write), através do barramento de controle;
4. - O dado é transferido do RDM para a posição de memória , indicada pelo endereço contido no REM.
O tempo de acesso ou ciclo de memória é o tempo gasto na realização das etapas de leitura ou gravação. Se a memória for do tipo SRAM, ao final de acesso , a memória estará pronta para atender mais acesso . Sendo memória DRAM, a UCP aguardará o tempo de realização de um refreshing da MP.
A figura 3.6 ilustra uma operação de gravação 
Figura 3.6 – Exemplo de operação de gravação
3.2.2 - Capacidade da Memória Principal
A capacidade da memória principal é a quantidade de informação que nela pode estar contida. Como já sabemos que as informações armazenadas estão organizadas em células de 8 bits (1 byte), podemos dizer que é o seu tamanho em bytes.
O tamanho ou capacidade da memória principal é o produto da quantidade de células pelo tamanho desta. Portanto, teremos :
T = N x M; onde:
T ( Capacidade total da Mp
N ( Quantidade de células ou endereços
M ( Tamanho da célula, em bits ou bytes
exemplo 3.1
Uma memória possui 2.048 células de capacidade igual a 8 bits (1 byte). Qual o total em bytes desta memória ?
solução:
Se N = 2.048 células e M = 8 bits (1byte), então
T= 2.048 X 8 = 16.384 Bytes
Resposta: Total de bits = 16.384 ou 2.048 bytes ou 2 Kbytes.
exemplo 3.2
Uma memória RAM tem capacidade de armazenamento igual a 4 Kbytes e cada célula tem tamanho de 16 bytes. pergunta-se:
a) Qual a quantidade de células que podem ser endereçadas ?
b) Qual o tamanho da barra de Endereços ?
c) Qual o tamanho da barra de dados ?
d)Qual o tamanho do RI e do CI ?
Solução:
M = 16 bits = 2 bytes
T= 4 Kbytes = 4 x 1.024 = 4.096 bytes
a) N = T/M = 4.096/2 = 2.048 células
b) A barra de endereços deve possuir uma quantidade de bits capaz de endereçar todas as células da memória RAM.
Como esta MP possui 2.048 células, então a barra de endereços precisa ter , o tamanho mínimo de 11 bits, pois 211 = 2.048. Quantidade de bits necessária para representar o valor 2.048 em binário
c) Pela barra de dados trafega o conteúdo das células . Por Tanto , seu tamanho mínimo é igual ao tamanho da célula , que é de 16 bits.
d) O RI e o CI devem ser de tamanhos compatíveis com os seus conteúdos . O CI armazena endereços, logo deve ter o mesmo tamanho da barra de endereços , enquanto o CI armazena dados, devendo ter o mesmo tamanho da barra de dados . Neste caso , RI = 16 bits e Ci = 11 bits.
Exemplo 3.3
Um microcomputador possui o RDM com tamanho de 20 bits e a barra de endereços de 16 bits . Pergunta-se :
a) Qual a capacidade máxima de armazenamento desta MP ?
b) Qual o tamanho de cada célula de memória ?
c) Qual o tamanho da barra de dados ?
d) Qual o tamanho do RI e do CI ?
Solução:
Se RDM = 20 bits; barra de endereços = 16 bits e sabendo que , 
RDM = Barra de dados = célula = RI e
REM = Barra de Endereços = CI.
Teremos então:
a) Como o REM possui 20 bits e o RDM tem 16 bits, então , N = 220 células e M = 16 bits; dai, temos T = N x M.
T = 220 x 16 = 16.777.216 bits ou T = 2 Mbytes
(1Mbyte = 1048.576 bytes) e (bits = bytes/8)
b) célula = RDM = 16 bits 
c) Barra de Dados = RDM = 16 bits
d) RI = RDM = 16 bits e CI = REM = 20 bits
3.2.2 - Memórias do tipo ROM
memória PROM - (Programable ROM), memória ROM programável . Tipo de memória cujo conteúdo é gravado uma vez após o processo de fabricação (a memória é construída virgem e depois gravada), não podendo ser reutilizada.
Memória EPROM - (Erasable PROM); memória prom apagável. Após a gravação , seu conteúdo pode ser apagado através de luz ultra violeta e gravar outra informação
Memória EEPROM ( Eletronic EPROM) ou EAROM (Eletronic Alterable Rom) - Podem ser apagadas e reprogramadas para controle da UCP. Este tipo de memória é muito empregado em configurações de setup dos micro computadores e definição de Funções das teclas para aplicativos específicos.
3.3 - MEMÓRIA CACHE
Como já foi descrito (ver item 3.1.2) a velocidade de processamento da UCP é muito superior a de acesso à memória principal , devido a diferença de tecnologia empregada na construção de cada um destes componentes. isto gera períodos de espera (“waite state”) na UCP, 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 localizadas 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.
A figura 3.7 mostra a ligação UCP/cache/MP. (Cache interna)
Transferência bloco por bloco de palavras
Figura 3.7 - Ligação UCP/ Cache/ Memória Principal
EXERCÍCIOS
1 - O que você entende por acesso à memória?
2 - Quais são as possíveis operações que podem ser realizadas em uma memória?
3 – Qual é a diferença conceitual entre uma memória do tipo SRAM e outra do tipo DRAM?
4 – Qual é a função do registrador de endereços de memória (REM)? E do registrador de memória (RDM)?
5 – Descreva os barramentos que interligam UCP e MP, indicando função e direção do fluxo de sinais de cada um.
6 – Descreva passo a passo uma operação de leitura.
7 – Descreva passo a passo uma operação de escrita.
CAPITULO 4
UNIDADE CENTRAL DE PROCESSAMENTO
5.1 - INTRODUÇÃO
Já sabemos que a Unidade Central de Processamento (UCP) 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 UCP. A atuação da UCP 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
4.2 - FUNÇÃO DE PROCESSAMENTO
Realiza as atividades diretamente relacionadas com efetiva execução de instrução .
4.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/UCP,UCP/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 UCP.
Os registradores servem como memória auxiliar da UAL e são números típicos de cada arquitetura de UCP. 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 UCP.
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 UCP, 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 UCP pode manipular.
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 UCP 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 UCP 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.
4.3 FUNÇÕES DE CONTROLE 
É a função da UCP responsável pelo funcionamento sincronizado de todos os componentes envolvidos na execução de uma instrução.
4.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 à UCP (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 UCP 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 UCP
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 - UCPs que empregam o 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.
Atualmente, microprocessadores, como o Intel Pentium, possuem freqüência de UCP na faixa de 100 a 200 Mhz, o que proporciona um ciclo de máquina bem reduzido e consequentemente, a realização de mais operações num mesmo período de tempo.
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 .
4.4 - INSTRUÇÕES DE MÁQUINA
4.4.1 – Definição 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 interpretada e executadas pelo Hardware, são dependentes das características de uma específica UCP, 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 implementados 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 execute. Esses comandos não são diretamente interpretados e executados pela UCP, tendo que ser convertidos para instruções de máquina 9processo chamado de compilação ou interpretação).
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.
4.4.2 - Formato 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
4.4.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.
5.4.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 UCP 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 a 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 - Exemplo 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 UCP é 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 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 Ucp 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 , sejam por modos de endereçamentos, supressão de operando e utilização de outro registrador específico da UCP, o acumulador (ACC).
Instrução com quantidades menores de operandos será abordado no próximo capítulo.
4.4.3- Ciclo de Instrução 
É o conjunto de tarefas realizadas pela UCP 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 UCP 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 UCP 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 microoperaçõ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 micooperação num mesmo instante.
A figura 5.6 representa o fluxograma de um ciclo de instrução
EXERCÍCIOS
1 – Descreva as funções básicas de uma UCP, indicando os seus componentes principais.
2 – Quais são as funções da unidade aritmética e lógica – UAL?
3 – O que é e para que serve o ACC?
4 – Qual é o componente de um processador que determina o período de duração de cada uma de suas atividades e controla o sincronismo entre elas?
5 – Quais são as funções da unidade de controle de um processador?
6 – Qual o registrador cujo conteúdo determina a capacidade de memória de um computador? Justifique.
CAPÍTULO 5
REPRESENTAÇÃO DE INSTRUÇÃO DE MÁQUINA
5.1 - introdução
No capítulo anterior foram apresentados vários formatos de instruções de máquina.
O conjunto de instruções de uma determinada UCP é constituído de várias instruções de formatos diferentes, isto é , as operações que são executadas pela nenhum , um ou mais operações que são executadas pela UCP podem requer nenhum, um ou mais operandos.
Cada formato de instrução possui características próprias que proporcionam vantagens e desvantagens , dependendo da aplicação .
5.2 - QUANTIDADE DE OPERANDOS
Como já visto , as instruções de máquina são formadas pelo código de operação , que identifica a operação a ser realizada pela UCP, e pelo(s) operando(s) que tem por finalidade identificar e localizar o(s) dado(s) a ser(em) processado(s).
Um dos primeiros formatos de instrução idealizados foi empregado no sistema SEAC, com data de 1949 e que possuía quatro operandos.
Esse formato de instrução era completo , possuía a indicação explicita da localização de todos os operandos e também já indicava o endereço da próxima instrução , conforme mostra o exemplo da figura 5.1.
Obs:. Em nossos exemplos, faremos sempre referências a operação aritméticas e endereçamento direto de memória.
C. Op.
Operando 1
Operando 2
Operando 3
End. Próxima
instrução
Figura 5.1 – Exemplo de instrução de 4 operandos
Supondo um computador com memória principal de 2.048 células (endereço), isto é , REM de 11 bits, e instruções com código de operação de 6 bits , cada instrução de máquina teria um total de 50 bits.
Cada operando contém o endereço de memória (representado por 11 bits) e a instrução possuí 4 operandos, teremos : 4 X 11 + 6 (C.Op.) = 50 bits.
Essa máquina poderia ter, por exemplo , uma instrução de soma do tipo ADD, X,Y,Z,P (Assembler) representada pela expressão X + Y, P; onde P é endereço da próxima instrução .
Podemos citar vantagens a respeito desse formato de instrução , tais como :
A) completeza - a instrução possui todos os operando necessários a realização de uma operação aritmética, dispensando até instrução de desvio incondicional , pois este consta do campo P;
B) Menor quantidade de instrução em programa , comparada com outros formatos de instrução .
Porém, agrande desvantagem desse formato de instrução é a ocupação demasiada de espaço de memória , principalmente pelo fato de que a grande maioria das instruções de um programa não necessita de todos os três operandos
Por exemplo , uma instrução de desvio incondicional precisaria de um único operando e haveria, então, um desperdício de 33 bits , pois três operando não seriam utilizados .
O tamanho das instruções de uma UCP é um fator importantíssimo de seu projeto. A escolha dos formatos implica e depende de várias características da máquina, tais como:
· Capacidade total de memória;
· Tamanho e organização das células da MP.
· Velocidade de acesso e 
· Organização da barra de dados.
No projeto de uma UCP, depara-se no dilema de criar um conjunto um de instruções poderosas ou de economizar espaço de memória (memória ainda é o componente mais caro nos computadores).
Num conjunto de instruções , digamos, completo, com instruções que atendam a vários tipos de aplicações , implica em códigos de operação com grande quantidade de bits .Como desejamos instruções completas , também seria necessário uma grande quantidade de bits. para atender o número elevado de operandos.
Esse conjunto de instruções consumiria um grande espaço de memória para armazenar as instruções..
Uma possível solução para o problema reside na redução da quantidade de operadores nas instruções , mantendo-se a flexibilidade das mesmas.
Por exemplo, se na instrução de 4 operandos, citada anteriormente, fosse retirado um operando, mantendo-se o seu tamanho (50 bits), poderíamos redistribuir os bits da segunda forma:
O código de operação passaria a ter 8 bits, com isto , o conjunto de instruções poderia conter até 256 instruções . Antes eram apenas 64 (C. Op. = 6 bits);
Os 3 operandos teriam 14 bits e seria possível endereço até 16.384 células de memória, em vez das 2.048 anteriores.
O operando retirado dessa instrução era o que indicava o endereço da próxima instrução. A indicação desse endereço passou a ser realizado pelo CI (Contador de Instrução), que é incrementado pela UCP.
5.2.1 - Instrução com Três Operandos
Nesse formato , em geral , os operandos 1 e 2 representam os endereços dos dados a serem utilizados em uma operação e o terceiro operando será armazenado o resultado da operação. Ver figura 5.2.
Tipos de instrução aritméticas utilizando instruções de 3 operandos:
Assembly
Expressão
ADD A,B,X
(X) ( (A) + (B)
SUB A,B,X 
(X) ( (A) - (B)
MPY A,B,X
(X) ( (A) * (B)
DIV A,B,X 
(X) ( (A) / (B)
Na instrução da soma (ADD A,B,X), significa: Somar o conteúdo do endereço simbólico de memória , representado por A ao conteúdo do endereço B e armazenar o resultado no endereço representado por X. O mesmo se aplica as demais operações aritméticas referidas.
Por exemplo, consideremos a execução de um programa para resolver a expressão algébrica X = A ( B + C * D - E / F). Convertida para linguagem Assembly, o programa equivalente ao seguinte:
MPY C,D,T1
DIV E,F,T2
ADD B,T1,X
SUB X,T2,X
MPY A,X,X
Podemos observar que na sequência de instruções há operandos com endereços iguais, o que acarreta desperdício de espaço em memória. O número de instruções é igual ao de operandos, visto que cada instrução de 3 operandos resolve uma operação por completo.
Mesmo com a redução de um operando, o consumo de memória continua demasiado na utilização efetiva dos operandos. Várias instruções exigem o emprego de apenas dois operandos, sendo o terceiro repetido.
5.2.2 – Instruções com dois Operandos
A operação é executada com os conteúdos dos endereços indicados pelos operandos 1 e 2 e o resultado é armazenado no operando 1. (ou operando 2). Ver figura 5.3
C. Op.
Operando 1
Operando 2
 Figura 5.3 – Formato de instrução com 2 operandos
Como esse formato de instrução reduz-se o consumo de memória, pois emprega-se apenas dois operandos. Assim, teremos as operações aritméticas representadas da seguinte forma:
Assembly
Expressão
ADD
A,B
(A) ( (A) + (B)
SUB
A,B
(A) ( (A) - (B)
MPY
A,B
(A) ( (A) * (B)
DIV
A,B
(A) ( (A) / (B)
O conteúdo do endereço indicado pelo operando 1 será substituído pelo resultado da operação. Quando necessário, pode-se “SALVAR” o conteúdo do operando 1 em uma variável auxiliar, através de uma nova instrução (MOVE), que é executada antes da operação. O exemplo do item anterior, agora com 2 operandos, ficaria deste modo:
MPY
C,D
DIV
E,F
ADD
B,C
SUB
B,E
MPY
X,A
MOVE
X,A
Observe que na sequência existe uma instrução a mais (MOVE), que salva o conteúdo de A em X, e que os conteúdos de B, C e D foram destruídos.
Uma variável auxiliar pode ser usada mais de uma vez no mesmo programa e , se quisermos salvar todos os valores , poderíamos alterar o programa para o seguinte:
MOVE 
X,C
MPY 
X,D
MOVE 
Xt1,,F
ADD
X,T1
SUB
X,B
MPY
X,A
5.2.3- Instruções com Um Operando
Com base nas vantagens da redução da quantidade de operandos, foram criados instruções com apenas um operando. Uma instrução menor que , consequentemente , consome menos memória e também tempo de acesso.
Nesse formato de instrução , um dos operandos foi substituídos pelo acumulador (ACC). Como só há um ACC, não é necessário especificar seu endereço na instrução . O ACC guarda o valor de um dos dados da operação e , posteriormente, o valor o resultado.
As operações aritméticas são representadas da seguinte forma:
Assembly
Expressão
ADD Op
ACC ( ACC + (Op)
SUB Op
ACC ( ACC - (Op)
MPY Op
ACC ( ACC * (Op)
DIV Op 
ACC ( ACC / (Op)
Para complementar o execução desse tipo de instrução , foram criados , duas novas instruções que permitem a transferência de dados entre o ACC e a MP, que são:
Assembly
Expressão
LDA Op
ACC ( (Op)
STR Op
(Op) ( ACC
Usando como exemplo o mesmo programa dos itens anteriores, teremos como instruções de um operando e mantendo os valores das variáveis, a seqüência em Assembly.
LDA
C
MPY
D
STA
X (Salva o resultado)
LDA
E
STA
Y (Salva o resultado)
LDA
A
ADD
X
SUB
Y
MPY
A
EXERCÍCIOS
1 – Cite uma possível vantagem do emprego de instruções com menor quantidade de operandos.
2 – Crie um conjunto de instruções de dois operandos, definidas em linguagem Assembly, necessárias para a realização de operações aritméticas e elabore programas para cálculo das seguintes equações:
a) X = A + (B * (C – A) + (D – E / B) * D)
b) Y = (A + B) * (C – D * (E / (B – F)) + B) * E)
3 – Considere as instruções definidas a seguir (de um operando)
LDA Op ACC ( (Op) STA Op (Op) ( ACC
ADD Op ACC ( ACC + (Op) SUB Op ACC ( ACC – (Op)
MPY Op ACC ( ACC * (Op) DIV Op ACC ( ACC / (Op)
LDA Op ACC ( (Op)
Obtenha a equação que resultou no seguinte programa:
LDA
A
ADD
C
STA
X
LDA
B
MPY
D
SUB
E
STA
Y
LDA
X
ADD
Y
DIV
F
STA
X
CAPITULO 6
EXECUÇÃO DE PROGRAMAS
6.1 - INTRODUÇÃO
Neste ponto , já sabemos o que é um programa e uma linguagem de programação (vide Capítulo 1). Sabemos, também , que os programas escritos em linguagem de programação devem ser convertidos para instrução de máquina, de modo que o computador possa entender e executar as tarefas desejadas.
Ainda no Capitulo 1, vimos que a linguagem de máquina é forma de se representar os estados ligados e desligado da corrente elétrica. Devemos lembrar que a manipulação da corrente elétrica é o princípio de funcionamento dos circuitos eletrônicos de que são compostos os computadores.. Portanto, toda e qualquer tarefa a ser executada por um computador deve estar escrita em linguagem de máquina.
Outro fato que se faz necessário lembrar, é que a representação dos estados de corrente elétrica é feita através de um código binário que possui dois símbolos , 0 e 1 e, que todos os caracteres da linguagem humana são representados pelas combinações dos símbolos binários (item 3.2)
Neste capitulo veremos uma descrição

Continue navegando