



















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
COMPONENTES DO COMPUTADOR
Tipologia: Notas de estudo
1 / 27
Esta página não é visível na pré-visualização
Não perca as partes importantes!




















1.1 Apresentação do Objeto do Curso: o Computador e o Processamento da Informação
A Informação Estamos vivendo a Era da Informação. Dispomos hoje de acesso instantâneo a uma quantidade de informação maior do que conseguimos tratar.
Mas, afinal, o que é INFORMAÇÃO?
Um dos grandes nomes da teoria da informação, Claude Shannon (autor de "The Mathematical Theory of Communication") define que informação está presente sempre que um sinal é transmitido de um ponto a outro.
Por exemplo, são informações:
Além de transmitidas e recebidas, informações podem ser armazenadas e depois reproduzidas: em livros, em discos, em fotografias, e na memória humana. Desta forma, uma informação original pode ser reproduzida (transmitida muitas vezes). Um exemplo radical de armazenamento e reprodução da informação são os genes: o código genético de um ser vivo é armazenado nos genes que permitem a reprodução do ser vivo a partir de uma única célula; todas as células contendo a mesma informação genética da célula inicial.
Processamento da informação refere-se ao armazenamento, transmissão, combinação e comparação da informação. Alguns agentes contribuíram de forma expressiva para estarmos hoje vivendo a Era da Informação. A escrita iniciou este processo, a imprensa foi um passo muito importante, e recentemente as telecomunicações difundem informação instantânea por todo o planeta. O mais recente dos agentes fundamentais que propiciaram esta onda de informações é também o mesmo agente da tecnologia que mais nos auxilia a lidar com ela, um agente que nos permite armazenar, classificar, comparar, combinar e exibir informações acuradamente e com velocidade: este agente tecnológico é o COMPUTADOR.
Processamento da Informação pelo Ser Vivo De certa forma, cada ser vivo é também um computador:
A evolução do ser humano permitiu que, com o aumento do poder computacional do seu cérebro e demais órgãos (por exemplo, o aparelho fonador) fosse possível criar e utilizar LINGUAGENS. Depois das palavras, vieram regras para combiná-las: as Leis da GRAMÁTICA e da LÓGICA (e, não, se, então, ...)
Maior número de expressões e maior número de combinações e mensagens possíveis, expressando um conjunto de situações mais amplo: portanto, mais INFORMAÇÃO.
Depois, um tipo especial de palavra surgiu, expressando um novo conceito - quantidade: OS NÚMEROS! Números podem ser
Nessa época, foi também criado o ábaco - uma calculadora decimal manual.
Os Algarismos e o Zero Por volta do ano de 650, os hindus inventaram um método de produzir papel (que antes já fora inventado pelos chineses) e seus mateméticos criaram uma representação para os números em que existiam diferentes símbolos para os as unidades, incluindo um símbolo para representar o zero. Essa simples criação permitiu que se processasse a aritmética decimal e se fizesse contas - no papel! Bom, depois de milhares de anos em que todos os cálculos eram feitos com calculadoras (ábacos, swan-pan, etc) finalmente era possível calcular sem auxílio mecânico, usando um instrumento de escrita e papel. A matemática criada pelos hindus foi aprendida pelos árabes (que depois foram copiados pelos europeus). Por volta de 830, um matemático persa (chamado Al- khwarismi, que inspirou o nome algarismo) escreveu um livro (Al-gebr we'l Mukabala, ou álgebra) em que apresentava os algarismos hindus. E esse livro, levado para a Europa e traduzido, foi a base da matemática do Renascimento.
No Capítulo sobre Sistemas de Numeração apresentamos uma discussão sobre os sistemas de numeção usados em informática.
Referências bibliográficas: Introdução Ilustrada à Computação, de Larry Gonick (Editora Harper & Row do Brasil, 1984). Introdução à Organização de Computadores, de Mário Monteiro (Editora LTC, 2ª Edição).
"As invenções já há muito alcançaram seu limite - e eu não vislumbro qualquer esperança de futuros desenvolvimentos."
A EVOLUÇÃO DO COMPUTADOR
O ÁBACO é um calculador decimal operado manualmente. Costuma-se considerar o ábaco como o primeiro dispositivo criado para facilitar o trabalho do homem em processar informações. O ábaco foi inventado no oriente médio há milhares de anos e ainda hoje é muito utilizado no oriente. Por exemplo, ainda hoje no Japão é comum encontrar comerciantes que continuam preferindo fazer contas utilizando ábacos - e as fazem muito mais rápido que uma moderna calculadora eletrônica (que por sinal custa hoje muito mais barato que um ábaco). CALCULADORA MECÂNICA
Atribui-se a Blaise Pascal (1623-1662) a construção da primeira calculadora mecânica capaz de fazer somas e subtrações. TEAR PROGRAMÁVEL Em 1801, Joseph Marie Jacquard inventou um tear mecânico dotado de uma leitora de cartões perfurados, os quais representavam os desenhos do tecido - portanto um processador das informações relativas à padronagem do tecido; o tear funcionava tão bem que este é o primeiro exemplo prático de desemprego provocado pela automação! CALCULADOR ANALÍTICO Charles Babbage (1792-1871) concebeu um Computador Analítico dotado de um dispositivo a que chamou de MOINHO (uma máquina de somar com precisão de até 50 casas decimais), e um dispositivo de entrada (inspirado no tear de Jacquard) que leria cartões perfurados contendo não somente números (os dados) mas também INSTRUÇÕES (o que fazer com os dados). Imaginou ainda um dispositivo de memória que chamou de ARMAZÉM para guardar os números, um banco com 1000 "registradores" cada qual capaz de armazenar um número de 50 dígitos - os números dados pelos cartões de entrada ou então números resultados de operações do moinho. Finalmente, incluiu um dispositivo impressor para dar saída aos resultados. As instruções (gravadas em cartões) possíveis de ser implementadas pelo moinho eram:
entrar com um número no armazém entrar com um número no moinho mover um número do moinho para o armazém
mover um número do armazém para o moinho comandar o moinho para executar uma operação sair com um resultado
Para construir um dispositivo a partir destas idéias, Babbage contou com a colaboração inestimável da matemática Ada Augusta Byron, Lady Lovelace, filha do poeta Lord Byron. Ada desenvolveu séries de instruções para o calculador analítico, criando conceitos tais como sub-rotinas, loops e saltos condicionais.
Babbage é considerado o precursor do computador. Ada é considerada a precursora do software.
Babbage e Ada estavam muito além do seu tempo e não conseguiram financiamento para construir o seu Computador Analítico, que ficou apenas como uma belíssima idéia no papel - ele nunca foi concluído.
"Ele não tem pretensões de originar nada, mas pode processar qualquer coisa que nós soubermos programá-lo para realizar."
Herman Hollerith (1860-1929) também inspirou-se nos cartões de Jacquard para criar uma máquina para acumular e classificar informações - a Tabuladora de Censo. Aplicação: processamento dos dados do censo. Z 1941- Konrad Zuse (Alemanha) Primeiro computador digital, automático, programável, de propósito geral, completamente funcional (eletro-mecânico). ABC Computer (Atanasoff-Berry Computer) 1942 - John V. Atanasoff / Clifford Berry (EUA) Primeiro protótipo de calculador eletrônico que funcionou nos EUA. COLOSSUS 1943 - Alan Turing (Bletchley Park, Inglaterra) Primeiro computador eletrônico programável; aplicação: criptografia; quebra de códigos
HARVARD MARK I 1944 - Howard Aiken (Universidade de Harvard - EUA) Primeiro computador eletromecânico automático de grande porte ENIAC - Eletronic Numerical Integrator and Calculator 1946 - John Mauchly e J. Presper Eckert (Ballistic Research Lab, University of Pennsylvania, EUA) Primeiro computador eletrônico digital de grande porte Características: Decimal (operava na base dez, não binário) - 19000 válvulas - 175 Kw de potência - 5.000 operacões por segundo
1972 - MITS (Micro Instrumentation and Telemetry Systems) Primeiro microcomputador disponível para uso pessoal. ALTO 1973 - Xerox PARC (Palo Alto Research Center) Primeiro microcomputador pessoal completo, totalmente funcional, incluindo monitor ALTAIR 8800 1975 - Edward Roberts, William Yates e Jim Bybee Primeiro microcomputador pessoal produzido industrialmente para venda em massa.
APPLE II
1976 - Steve Jobs e Steve Wozniak (Apple Corp.) Primeiro microcomputador pessoal a ter sucesso comercial. IBM PC
1981 - IBM Corp (Boca Raton, FL, EUA) Primeiro microcomputador pessoal IBM; arquitetura aberta; um imenso sucesso comercial.
1.3 MODELO HIPOTÉTICO DE UM COMPUTADOR
Operador - só faz o que for ordenado, não toma decisões Conjunto de escaninhos - com capacidade para um cartão cada Máquina de calcular - executa as operações Caixa de entrada - para receber cartões de fora Máquina de escrever - para dar saída às informações / resultados
Para que este modelo funcione, deve existir em cada cartão uma INSTRUÇÃO. O operador segue de escaninho em escaninho, fazendo exatamente o que está escrito em cada cartão, até encontrar um cartão contendo uma instrução que manda que ele PARE.
EXERCÍCIO 1: Obs.: Utilizaremos a notação (E10) significando "o conteúdo do escaninho E10", isto é, o valor que está agora armazenado no escaninho E10 (ou, mais formalmente, o valor corrente daquela posição de memória).
E1 : armazene o valor 1 no E E2 : leia o conteúdo de E11 (externo - a caixa de entrada) E3 : multiplique E10 com E11 (usando a máquina de calcular) e armazene o resultado em E
E4 : subtraia o valor 1 de E E5 : se o valor de E11 > 0, volte para E3, senão continue E6 : imprima o conteúdo de E10 (usando a máquina de escrever) E7 : PARE E8 : E9:
A partir de um sinal externo do tipo COMECE, este modelo inicia do E1 daí por diante prossegue até E8 (o final).
Resolva o exercício; o que faz este algorítmo? Depois, confira a Resposta.
EXERCÍCIO 2: No mesmo algoritmo acima, avalie as conseqüências das seguintes alterações: a) E5 : se o valor de E11 > 0, volte para E3,
b) E5 : se o valor de E11 >= 0, volte para E3; senão continue, e c) E7 : XXX
Resolva o exercício e depois confira a Resposta.
Num modelo real - o COMPUTADOR- este só faz aquilo que ele recebe instrução para realizar. Um computador funciona a partir de um programa que o instrui sobre o que deve fazer.
"O problema dos computadores é que eles fazem exatamente aquilo que você os instruiu a fazer e não aquilo que você realmente queria que eles fizessem."
Definições
PROGRAMA é uma seqüência de instruções (no modelo hipotético, os cartões). O programa deve ser escrito numa LINGUAGEM DE PROGRAMAÇÃO; as linguagens naturais têm ambigüidades e podem dar margem a diferentes interpretações.
HARDWARE (significa originalmente "ferragens" em inglês - hardware store significa originalmente "loja de ferragens") é o conjunto de dispositivos físicos do computador, o equipamento.
SOFTWARE (em analogia a hardware, a parte "soft", macia, são os programas que permitem que o equipamento saiba o que realizar, que ele funcione.
Depois surgiram outros termos, aproveitando as mesmas analogias, tais como firmware (indicando programação gravada em dispositivos físicos e não modificável pelo usuário).
PROCESSAMENTO AUTOMÁTICO DE DADOS Um computador é capaz de executar um programa sozinho, desde que o programa seja previamente armazenado nele, de forma que ele tenha as indicações de onde procurar as instruções.
MEMÓRIA - os escaninhos Dispositivo físico para armazenar programas e dados
PROCESSADOR - Operador e máquina de calcular Dispositivo que realiza o processamento
DISPOSITIVOS DE ENTRADA E SAÍDA - caixa de entrada, caixa de saída, máquina de escrever Formas de comunicação entre o usuário e o computador
SISTEMA - Um conjunto interligado de programas (e, eventualmente, também de equipamentos).
LINGUAGEM DE MÁQUINA - é a linguagem que o computador entende, cujo "alfabeto" é composto apenas de "1's"e "0's" (linguagem binária).
LINGUAGEM DE PROGRAMAÇÃO - é uma linguagem formal, utilizando termos que se aproximam da linguagem humana, que
para codificá-los ;
DIAGRAMA DE BLOCOS DE UM COMPUTADOR
Toda a lógica dos computadores é construída a partir de chaves liga / desliga. Inicialmente foram usados chaves mecânicas, depois relés eletro-mecânicos – o Z-1 construído por Konrad Zuse em 1941 e o MARK 1 de Howard Aiken em 1944 (capazes de executar até 5 chaveamentos por segundo). Posteriormente, foram substituídos pelas válvulas no ENIAC em 1946 (capazes de 100.000 de chaveamentos por segundo), e finalmente pelos transistores (semicondutores) inventados em Stanford em 1947. Os circuitos integrados (ou CI’s) são encapsulamentos compactos (LSI – Large Scale Integration e VLSI – Very Large Scale Integration) de circuitos constituídos de minúsculos transistores.
UNIDADE CENTRAL DE PROCESSAMENTO (UCP) A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP. Funções: Executar instruções – realizar aquilo que a instrução determina. Realizar o controle das operações no computador.
a) Unidade Lógica e Aritmética (ULA) – responsável pela realização das operações lógicas (E, OU, etc) e aritméticas (somar, etc). b) Unidade de Controle (UC) – envia sinais de controle para toda a máquina, de forma que todos os circuitos e dispositivos funcionem adequada e sincronizadamente.
MEMÓRIA PRINCIPAL (MP) A Memória Principal tem por finalidade armazenar toda a informação que é manipulada pelo computador – programas e dados. Para que um programa possa ser manipulado pela máquina, ele primeiro precisa estar armazenado na memória principal.
OBS.: os circuitos da Memória Principal não são combinatoriais, eles tem capacidade de armazenar bits. Os circuitos usados são do tipo “flip-flop”, conforme veremos em Circuitos Lógicos.
DISPOSITIVOS DE ENTRADA E SAÍDA (E/S) Tem por finalidade permitir a comunicação entre o usuário e o computador. OBS.: Para executar um programa, bastaria UCP e MP; no entanto, sem os dispositivos de E/S não haveria a comunicação entre o usuário e o computador.
O programas são armazenados na MP e a UCP é capaz de executar um processamento inteiro sem a intervenção do usuário, mesmo que haja vários desvios no programa.
PASSOS:
Devido à simplicidade de projeto e construção, acarretando na redução de seu custo e maior confiabilidade, os circuitos eletrônicos que formam os computadores digitais atuais são capazes de distinguir apenas dois níveis de tensão - computadores digitais binários - ver seção sobre os Sistemas de Numeração. Estes sinais elétricos são tensões que assumem dois diferentes valores: um valor positivo (hoje, nos PC's, cerca de +3 V - três volts positivos) para representar o valor binário 1 e um valor aproximado a 0 V (zero volt) para representar o valor binário 0. Na realidade, estes valores não são absolutos, e sim faixas de valores, com uma margem de tolerância (entre +2.5 e +3.5 V, representando o valor binário 1, e entre 0 e + 0,5 V representando o valor binário 0).
A lógica que permite aos computadores operar baseados nestes dois valores é chamada Álgebra de Boole, em homenagem ao matemático inglês George Boole (1815-1864). Esta lógica, incluindo o estudo de alguns Circuitos Lógicos básicos, será apresentada na seção Conceitos de Lógica Digital e será estudada em detalhe na disciplina de Matemática.
Obs.: os primeiros computadores eram decimais (por exemplo, o ENIAC) e hoje existem também computadores analógicos (para determinadas aplicações específicas).
BIT é uma contração de BInary DigiT e representa um dos valores possíveis em binário, 0 ou 1.
BYTE é um grupo de 8 bits (é bom lembrar que 2^3 = 8). Em um byte, há 2 8 = 256 combinações, portanto pode-se representar 256 diferentes valores, desde 00000000 até 11111111. O termo "byte" foi inventado pela IBM.
Em informática, a expressão kilo (abreviada por k) equivale a 2 10 , ou seja 1024. Desta forma, 1 kb equivale a 2^10 bits, ou seja 1024
Memória Auxiliar Gbytes baixa baixo Externa Não Volátil
A UCP vê nesta ordem e acessa primeiro a que está mais próxima. Subindo na hierarquia, quanto mais próximo da UCP, maior velocidade, maior custo, porém menor capacidade de armazenamento.
REGISTRADORES
Registradores são dispositivos de armazenamento temporário, localizados na UCP, extremamente rápidos, com capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de construção e por estar localizado como parte da própria pastilha (" chip ") da UCP, é muito caro. O conceito de registrador surgiu da necessidade da UCP de armazenar temporariamente dados intermediários durante um processamento. Por exemplo, quando um dado resultado de operação precisa ser armazenado até que o resultado de uma busca da memória esteja disponível para com ele realizar uma nova operação.
Máquinas RISC são geralmente construídas com um grande conjunto de registradores, de forma a trazer os dados para o mais próximo possível da UCP, de forma a que o programa opere sempre sobre dados que estão em registradores.
Registradores são VOLÁTEIS, isto é, dependem de estar energizados para manter armazenado seu conteúdo.
MEMÓRIA CACHE
Com o desenvolvimento da tecnologia de construção da UCP, as velocidades foram ficando muito mais altas que as das memórias, que não tiveram a mesma evolução de velocidade (o aperfeiçoamento das memórias se deu mais no fator capacidade). Desta forma, os tempos de acesso às memórias foram ficando insatisfatórios e a UCP ao buscar um dado na memória precisa ficar esperando muitos ciclos até que a memória retorne o dado buscado (" wait states "), configurando um gargalo ( "bottleneck" ) ao desempenho do sistema. Por esse motivo, desenvolveram-se outras arquiteturas de memória privilegiando a velocidade de acesso. A arquitetura da memória cache é muito diferente da arquitetura da memória principal e o acesso a ela é muitas vezes mais rápido (p.ex: 5 ns contra 70 ns).
No entanto, o custo de fabricação da memória cache é muito maior que o da MP. Desta forma, não é econômico construir um computador somente com tecnologia de memória cache. Criou-se então um artifício, incorporando-se ao computador uma pequena porção de memória cache , localizada entre a UCP e a MP, e que funciona como um espelho de parte da MP.
Desenvolveram-se ainda algoritmos que fazem com que, a cada momento, a memória cache armazene a porção de código ou dados (por exemplo, uma sub-rotina) que estão sendo usados pelas UCP. Esta transferência (MP <--> Cache ) é feita pelo hardware : ela independe do software , que ignora se existe ou não memória cache, portanto ignora essa transferência; nem o programador nem o sistema operacional têm que se preocupar com ela.
A memória cache opera em função de um princípio estatístico comprovado: em geral, os programas tendem a referenciar várias vezes pequenos trechos de programas, como loops , sub-rotinas, funções e só tem sentido porque programas executados linearmente, seqüencialmente, são raros. Desta forma, algoritmos (chamados algoritmos de cache) podem controlar qual parte do código ficará copiado na cache , a cada momento.
Quando a MP busca um determinado trecho de código e o encontra na cache, dá-se um "cache hit" , enquanto se o dado não estiver presente na cache será necessário requisitar o mesmo à MP, acarretando atraso no processamento e dá-se um "cache miss" ou "cache fault". O índice de cache hit ou taxa de acerto da cache é geralmente acima de 90%.
Memórias cache também são VOLÁTEIS, isto é, dependem de estar energizadas para manter gravado seu conteúdo.
MEMÓRIAS AUXILIARES
Memórias auxiliares resolvem problemas de armazenamento de grandes quantidades de informações. A capacidade da MP é limitada pelo seu relativamente alto custo, enquanto as memórias auxiliares tem maior capacidade e menor custo; portanto, o custo por bit armazenado é muito menor.
Outra vantagem importante é que as memórias auxiliares não são VOLÁTEIS, isto é, não dependem de estar energizadas para manter gravado seu conteúdo.
Os principais dispositivos de memória auxiliar são: discos rígidos (ou HD), drives de disquete, unidades de fita, CD-ROM, DVD, unidades ótico-magnéticas, etc.
OBS.: Cache de disco não é a mesma tecnologia da memória cache. Trata-se do emprego do mesmo conceito da memória cache , para acelerar a transferência de dados entre disco, MP e UCP, usando um programa (um software , por ex.: SmartDrive ) para manter um espelho do conteúdo de parte do disco (a mais provável de ser requisitada a seguir pela UCP) gravado em uma parte da Memória Principal. Recentemente, as unidades de disco passaram a incorpor em sua interface chips de memória - tipicamente 32 a 64 Kbytes - para acelerar a transferência de dados, utilizando um algoritmo de cache.
1.7 Memória Principal
Memória Principal
Conforme definimos anteriormente, Memória Principal é a parte do computador onde programas e dados são armazenados para processamento. A informação permanece na memória principal apenas enquanto for necessário para seu emprego pela UCP, sendo então a área de MP ocupada pela informação pode ser liberada para ser posteriormente sobregravada por outra informação. Quem controla a utilização da memória principal é o Sistema Operacional.
ESTRUTURA DA MEMÓRIA PRINCIPAL - CÉLULAS E ENDEREÇOS
A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. Não teria nenhum sentido armazenar informações que não fosse possível recuperar depois. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa informação mais tarde, quando ela for necessária, e para isso é preciso haver um mecanismo que registre exatamente onde a informação foi armazenada (lembrando nossa analogia com o computador hipotético , imagine encontrar uma informação guardada ao acaso, se nosso escaninho tivesse 1 milhão de compartimentos ...).
Célula é a unidade de armazenamento do computador. A memória principal é organizada em células. Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador tem o mesmo tamanho, isto é, todas as células daquele computador terão o mesmo número de bits.
Cada célula é identificada por um endereço único, pela qual é referenciada pelo sistema e pelos programas. As células são numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula. Endereço é o localizador da célula, que permite identificar univocamente uma célula. Assim, cada célula pode ser identificada pelo seu endereço.
Unidade de transferência é a quantidade de bits que é transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. O tamanho da célula poderia ser igual ao da palavra, e também à unidade de transferência, porém por razões técnicas e de custo, são freqüentemente diferentes.
OBS.: Uma célula não significa o mesmo que uma palavra; uma célula não necessariamente contém uma palavra. Palavra é a unidade de processamento da UCP. Uma palavra deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação. No entanto, em geral não é assim que acontece e os computadores comerciais não seguem um padrão único para a organização da UCP e MP. Computadores comerciais (tais como por exemplo os baseados nos processadores Intel 486) podem ter o tamanho da palavra definido como de 32 bits, porém sua estrutura de memória tem células de 16 bits.
A estrutura da memória principal é um problema do projeto de hardware:
UC - Unidade de Controle - tem por funções a busca, interpretação e controle de execução das instruções, e o controle dos demais componentes do computador
Obs.: Neste curso, por simplicidade, será considerado apenas o funcionamento serial em uma UCP. Outras abordagens serão discutidas no capítulo Tópicos Avançados de Arquitetura (UCP's não pipelined).
A seguir é apresentado o diagrama esquemático de uma UCP.
Registradores Importantes na UCP
Instruções
Para que um programa possa ser executado por um computador, ele precisa ser constituído de uma série de instruções de máquina e estar armazenado em células sucessivas na memória principal. A UCP é responsável pela execução das instruções que estão na memória.
Quem executa um programa é o hardware e o que ele espera encontrar é um programa em linguagem de máquina (uma sequência de instruções de máquina em código binário). A linguagem de máquina é composta de códigos binários, representando instruções, endereços e dados e está totalmente vinculada ao conjunto (" set ") de instruções da máquina.
Um ser humano usa seu conhecimento e inteligência para traduzir uma tarefa complexa (tal como, por exemplo, a tarefa de buscar uma pasta num arquivo) numa série de passos elementares (identificar o móvel e gaveta onde está a pasta, andar até o móvel, abrir
a gaveta, encontrar a pasta, retirar a pasta e fechar a gaveta). Para o computador, uma instrução precisa ser detalhada, dividida em pequenas etapas de operações, que são dependentes do conjunto de instruções do computador e individualmente executáveis.
Fazendo um paralelo com linguagens de alto nível, o programa elaborado pelo programador (o código-fonte, composto de instruções complexas) precisa ser "traduzido" em pequenas operações elementares (primitivas) executáveis pelo hardware (ver Conceito de Processo). Cada uma das instruções tem um código binário associado, que é o código da operação.
Formato geral de uma Instrução
Código de operação (OPCODE) Operando (s) (OP)
O Capítulo Representação de Instruções detalha esse assunto.
Conjunto de Instruções
Quando se projeta um hardware , define-se o seu conjunto ( "set" ) de instruções - o conjunto de instruções elementares que o hardware é capaz de executar. O projeto de um processador é centrado no seu conjunto ( "set" ) de instruções. Essa é uma das mais básicas decisões a ser tomada pelo Engenheiro de projeto. Quanto menor e mais simples for este conjunto de instruções, mais rápido pode ser o ciclo de tempo do processador.
Funcionalmente, um processador precisa possuir instruções para:
As estratégias de implementação de processadores são:
Obs.: adotaremos o termo instrução para as instruções de máquina ou em linguagem Assembly e comando para linguagens de alto nível.
Há hoje uma crescente tendência a se utilizar um conjunto de instruções reduzido, de vez que os compiladores tendem a usar em geral apenas uma pequena quantidade de instruções. Há também vantagens na implementação do hardware - maior simplicidade, menor tempo de ciclo de instrução). Este assunto será debatido no Capítulo Tópicos Avançados de Arquitetura.
O projeto de um processador poderia ser resumido em: a) Definir o conjunto de instruções (todas as possíveis instruções que o processador poderá executar) · definir formato e tamanho das instruções · definir as operações elementares b) Projetar os componentes do processador (UAL, UC, registradores, barramentos, ...)
Duas estratégias são possíveis na construção do decodificador de instruções da UC:
. wired logic (as instruções são todas implementadas em circuito)
x = n o^ de bits do barramento de endereços; em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Endereços de Memória - REM. M = nº de bits contidos em uma célula; M em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Dados da Memória - RDM. ESQUEMÁTICO DE FUNCIONAMENTO DA COMUNICAÇÃO MP / UCP
Barramento de endereços - unidirecional (só a UCP envia dados - write - ou lê dados - read - da MP) Barramento de dados - bidirecional Barramento de controle - bidirecional UCP ---> MP (controles ... - r/w) MP -----> UCP (wait ... )
ELEMENTOS ENVOLVIDOS: Barramentos: de dados - bidirecional de endereços -unidirecional de controle - bidirecional
Registradores: REM - Registrador de Endereços de Memória (MAR - Memory Address Register) RDM - Registrador de Dados de Memória (MBR - Memory Buffer Register)
Exercícios:
MEMÓRIA Nº BITS NO REM
a 10 1024 8 b 10 1024 12 c 9 1024 10 d 11 1024 10 e 10 10 1024 f 1024 10 10
Um computador tem 512 endereços e cada célula tem 10 bits. Qual a capacidade: a) do REM; b) do RDM; c) da MP em bits.
Um computador tem um RDM de 16 bits e um REM de 20 bits. Sabe-se que a célula desse computador é de 8 bits e que ele tem um número de células igual à sua possibilidade de endereçamento. Pede-se: a) qual o tamanho da barra de endereços? b) quantas células são lidas da memória em uma única operação? c) quantos bits tem a memória desse computador?
PALAVRA (UNIDADE DE INFORMAÇÃO)
Palavra é a unidade de informação do sistema UCP / MP.
A conceituação mais usada (IBM, Digital) define palavra como sendo a capacidade de manipulação de bits do núcleo do computador (UCP e MP). Pressupõe-se aqui que todos os elementos do núcleo do computador (o que inclue o tamanho da UAL, do acumulador e registradores gerais da UCP e o barramento de dados) tenham a mesma largura (processem simultaneamente o mesmo número de bits), o que nem sempre acontece. Muitas vezes encontram-se computadores em que o tamanho da UAL e do acumulador (e registradores gerais) não é o mesmo tamanho dos barramentos. Desta forma, encontram-se especificações de "computadores de 64 bits" mesmo quando seu barramento de dados é de 32 bits, nesse caso referindo-se exclusivamente à capacidade de manipulação da UCP de 64 bits (isto é, sua UAL e acumulador tem 64 bits). Esta conceituação é imprecisa (às vezes, enganosa) e pode levar a erros de avaliação da capacidade de processamento de um computador.
Como exemplos, citamos os microprocessadores Intel 8086 (16 bits, sendo todos seus elementos de 16 bits) e seu "irmão" mais novo 8088, usado nos primeiros IBM/PC e XT (idêntico sob quase todos os aspectos ao 8086 e também dito de 16 bits, sendo que UAL e registradores são de 16 bits mas o barramento de dados é de apenas 8 bits, por economia e razões de compatibilidade com toda uma geração de placas de 8 bits). Destaque-se que nesse caso as transferências de dados através do barramento de dados se fazem em duas etapas, um byte de cada vez, e em conseqüência no 8088 elas consomem o dobro dos ciclos de barramento que o 8086), o que torna suas operações de transferência de dados mais lentas que as de seu "irmão" 8086.
Concluindo, deve-se analisar caso a caso, porque a simples menção ao tamanho da palavra não é uma terminologia que permita definir de forma conclusiva sobre a arquitetura do computador.
Em geral, o termo "célula" é usada para definir a unidade de armazenamento (o tamanho de células de memória) e o termo "palavra" para definir a unidade de transferência e processamento, significando na prática quantos bits o computador movimenta e processa em cada operação.
Não confundir: célula não é sinônimo de palavra, embora em algumas máquinas a palavra seja igual à célula. A palavra de um computador pode ter 1 byte (p.ex, 8080), 2 bytes (p.ex. 80286), 4 bytes (p.ex. 486, o Pentium, e muitos mainframes IBM) e mesmo 8 bytes (p.ex. o Alpha da DEC).
Células de memória muitas vezes tem o tamanho de 1 ou 2 bytes - de 8 a 16 bits.
TEMPO DE ACESSO
Tempo de acesso (ou tempo de acesso para leitura) é o tempo decorrido entre uma requisição de leitura de uma posição de memória e o instante em que a informação requerida está disponível para utilização pela UCP. Ou seja, o tempo que a memória consome para colocar o conteúdo de uma célula no barramento de dados. O tempo de acesso de uma memória depende da tecnologia da memória. As memórias DRAM (Dynamic RAM - as mais comuns hoje) tem tempo de acesso na faixa de 60 ns.
Tempo de ciclo (ou ciclo de memória é conceituado como o tempo decorrido entre dois ciclos sucessivos de acesso à memória. As memórias dinâmicas perdem seu conteúdo em alguns instantes e dependem de ser periodicamente atualizadas (ciclo de "refresh" ). No caso das SRAM ( Static RAM ou memórias estáticas), que não dependem de "refresh" , o tempo de ciclo é igual ao tempo de acesso. As memórias dinâmicas, no entanto, requerem ciclos periódicos de "refresh" , o que faz com que a memória fique indisponível para novas transferências, a intervalos regulares necessários para os ciclos de "refresh". Assim, as memórias DRAM tem ciclo de memória maior que o tempo de acesso.