Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Componentes do computador, Notas de estudo de Informática

COMPONENTES DO COMPUTADOR

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 22/09/2009

matheus-marcus-3
matheus-marcus-3 🇧🇷

4.3

(3)

15 documentos

1 / 27

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1. COMPONENTES DO COMPUTADOR
1.1. Apresentação do Objeto do Curso: o Computador e o Processamento da Informação
1.2. A Evolução dos Computadores
1.3. Modelo Hipotético de um Computador
1.4. Componentes do Computador
1.5. Conceitos Básicos
1.6. Memória.
1.7. Memória Principal
1.8. Unidade Central de Processamento
1.9. Acesso à Memória Principal
1.10. Lógica Temporizada
1.11. Apresentação de uma arquitetura: Microprocessador Intel 8080
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Pré-visualização parcial do texto

Baixe Componentes do computador e outras Notas de estudo em PDF para Informática, somente na Docsity!

1. COMPONENTES DO COMPUTADOR

1.1. Apresentação do Objeto do Curso: o Computador e o Processamento da Informação

1.2. A Evolução dos Computadores

1.3. Modelo Hipotético de um Computador

1.4. Componentes do Computador

1.5. Conceitos Básicos

1.6. Memória.

1.7. Memória Principal

1.8. Unidade Central de Processamento

1.9. Acesso à Memória Principal

1.10. Lógica Temporizada

1.11. Apresentação de uma arquitetura: Microprocessador Intel 8080

COMPONENTES DO COMPUTADOR

1.1 Apresentação do Objeto do Curso: o Computador e o Processamento da Informação

REPRESENTAÇÃO 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:

  • palavras,
  • um quadro (sinais visuais na forma de ondas de luz),
  • os impulsos elétricos através dos quais nossos olhos transmitem imagens ao cérebro, música, etc.

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:

  • os SENTIDOS são meios de receber sinais do meio ambiente;
  • estas impressões sensoriais são transmitidas por uma rede nervosa ao cérebro através de sinais elétricos e químicos
  • sons emitidos pelos seres vivos são também meios de transmitir informações a outros seres: são mensagens que exprimem vontades, impressões, ordens... (Bom, para ser mais preciso, é o computador quem emula o ser vivo...! E, por enquanto, nada de muito brilhante, apenas extremamente rápido.)

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).

2. A Evolução dos Computadores

"As invenções já há muito alcançaram seu limite - e eu não vislumbro qualquer esperança de futuros desenvolvimentos."

  • Julius Frontinus, eminente engenheiro romano (Roma, ano 10 DC).

A EVOLUÇÃO DO COMPUTADOR

ÁBACO

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."

  • Ada Augusta Byron, Condessa de Lovelace, falando sobre o Engenho Analítico de Babbage, precursor dos modernos computadores (Londres, cerca de 1830) HOLLERITH

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

  • armazenamento para 20 números de 10 dígitos, mas não tinha qualquer tipo de memória central - tempo médio entre falhas

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."

  • Um programador frustrado

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 ;

  1. Armazenassem na memória as instruções e todas as informações que fossem necessárias para a execução da tarefa desejada;
  2. Ao processarem o programa, as instruções fossem buscadas na diretamente na memória. Este é o conceito de PROGRAMA ARMAZENADO.

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.

PROCESSAMENTO AUTOMÁTICO DE DADOS

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:

  • armazenar o programa na MP;
  • indicar à UCP onde o programa está armazenado. Estas operações são realizadas pelo SISTEMA OPERACIONAL:

1.5 BITS & BYTES

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:

  • mais endereços com células menores ou
  • menos endereços com células maiores? O tamanho mais comum de célula era 8 bits (1 byte); hoje já são comuns células contendo vários bytes.

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

  • Na UC - CI Contador de Instruções (em inglês: PC - Program Counter) - armazena o endereço da próxima instrução a ser executada - tem sempre o mesmo tamanho do REM.
  • Na UC - RI Registrador de Instrução (em inglês: IR - Instruction Register) - armazena a instrução a ser executada.
  • Na UAL - ACC Acumulador (em inglês:ACC - Accumulator) - armazena os dados (de entrada e resultados) para as operações na UAL; o acumulador é um dos principais elementos que definem o tamanho da palavra do computador - o tamanho da palavra é igual ao tamanho do acumulador.

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)

  • Código de Operação ou OPCODE - identifica a operação a ser realizada pelo processador. É o campo da instrução cuja valor binário identifica (é o código binário) da operação a ser realizada. Este código é a entrada no decodificador de instruções na unidade de controle. Cada instrução deverá ter um código único que a identifique.
  • Operando(s) - é ou são o(s) campo(s) da instrução cujo valor binário sinaliza a localização do dado (ou é o próprio dado) que será manipulado (processado) pela instrução durante a operação. Em geral, um operando identifica o endereço de memória onde está contido o dado que será manipulado, ou pode conter o endereço onde o resultado da operação será armazenado. Finalmente, um operando pode também indicar um Registrador (que conterá o dado propriamente dito ou um endereço de memória onde está armazenado o dado). Os operandos fornecem os dados da instrução. Obs: Existem instruções que não tem operando. Ex.: Instrução HALT (PARE).

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:

  • operações matemáticas

1. aritméticas: +, - , × , ÷ ...

2. lógicas: and, or, xor, ...

3. de complemento

4. de deslocamento

  • operações de movimentação de dados (memória <--> UCP, reg <--> reg)
  • operações de entrada e saida (leitura e escrita em dispositivos de E/S)
  • operações de controle (desvio de seqüência de execução, parada)

As estratégias de implementação de processadores são:

  • CISC - Complex Instruction Set Computer - exemplo: PC, Macintosh; um conjunto de instruções maior e mais complexo, implicando num processador mais complexo, com ciclo de processamento mais lento; ou
  • RISC - Reduced Instruction Set Computer - exemplo: Power PC, Alpha, Sparc; um conjunto de instruções menor e mais simples, implicando num processador mais simples, com ciclo de processamento rápido.

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

UCP / MP

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:

  1. Quais das seguintes memórias são passíveis de implementação?

MEMÓRIA Nº BITS NO REM

Nº DE

CÉLULAS

TAMANHO DA

CÉLULA EM

BITS

a 10 1024 8 b 10 1024 12 c 9 1024 10 d 11 1024 10 e 10 10 1024 f 1024 10 10

  1. 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.

  2. 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.