Buscar

ARQUITETURA DE COMPUTADORES

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 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 13 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 13 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

UNESA
ARQUITETURA DE COMPUTADORES
UNIDADE CENTRAL DE PROCESSAMENTO 
A Unidade Central de Processamento - UCP (em inglês, Central Processing Unity - CPU) é a responsável pelo processamento e execução dos programas armazenados na MP. As funções da UCP são: executar as instruções e controlar as operações no computador. Um programa, para ser efetivamente executado pelo processador, deve ser constituído de uma série de instruções de máquina. Para que a execução tenha início, as instruções devem ser armazenadas em células sucessivas, na MP. 
A função da UCP consiste, então, em: 
a) Buscar uma instrução na memória (operação de leitura), uma de cada vez; 
b) Interpretar que operação a instrução está explicitando (pode ser soma de dois números, uma multiplicação, uma operação de entrada ou de 
saída de dados, ou ainda uma operação de movimentação de um dado de uma célula para outra); 
c) uscar os dados onde estiverem armazenados, para trazê-los até a UCP; 
d) Executar efetivamente a operação com os dados, guardar o resultado (se houver algum) no local definido na instrução; e, finalmente; 
e) Reiniciar o processo apanhando nova instrução. 
Estas etapas compõem o que se denomina um ciclo de instrução. Este ciclo se repete indefinidamente (ver Figura 5.8) até que o sistema seja desligado, ou ocorra algum tipo de erro, ou seja, encontrada uma instrução de parada. 
As atividades realizadas pela UCP podem ser divididas em duas grandes categorias funcionais: 
função processamento e função controle. 
Função Processamento 
Vimos que processamento de dados é a ação de manipular um ou mais valores (dados) em certa seqüência de ações, de modo a produzir um resultado útil. O resultado muda conforme o tipo de operação realizada. Por exemplo, se uma instrução define que deve ser realizada uma operação de adição sobre os valores A = 5 e B = 3, o sistema, ao interpretar a instrução, gera as ações subseqüentes que redundarão no resultado igual a 5+3 = 8. Por outro lado, se o sistema interpretar uma outra instrução que define a operação de subtração, ele deve gerar outras ações de modo que o resultado seja 5-3 = 2 (e não mais 8). Processar o dado é executar com ele uma ação que produza algum tipo de resultado. Este é, pois, a atividade-fim do sistema; ele existe para processar dados. O dispositivo principal desta área de atividade de uma UCP é chamado ULA – Unidade Lógica e Aritmética. Os demais componentes relacionados com a função processamento são os registradores, que servem para armazenar dados 
(ou para guardar resultados) a ser usados pela ULA. A interligação entre estes componentes é efetuada pelo barramento interno da UCP.
Unidade Lógica e Aritmética – ULA: 
É o dispositivo que realmente executa as operações matemáticas com os dados. Tais operações podem ser:
Tais operações podem utilizar dois valores (operações aritméticas e lógicas), por isso a ULA possui 
duas entradas, ver Figura 5.9, ou apenas um valor (operações com complemento). A ULA é um 
aglomerado de circuitos lógicos e componentes eletrônicos simples que, integrados, realizam as 
operações já mencionadas.
Registradores: 
Para que o dado seja transferido para a ULA, é necessário que ele permaneça, mesmo que por um breve instante, armazenado em um registrador (a memória da UCP). Além disso, o resultado de uma operação aritmética ou lógica realizada na ULA deve ser armazenado temporariamente, de modo que possa ser reutilizado mais adiante (por outra instrução) ou apenas para ser, em seguida, transferido para a memória. 
Para atender a este propósito, a UCP é fabricada com certa quantidade de registradores, destinados ao armazenamento de dados. Serve de memória auxiliar da ULA. Há sistemas nos quais um desses registradores, denominado Acumulador – ACC, além de armazenar dados, serve de elemento de ligação da UAL com os restantes dispositivos da UCP. 
Em geral, os registradores de dados da UCP têm uma largura (quantidade de bits que podem armazenar) igual à da palavra. O tamanho dos processadores IBM/370 era de 32 bits, a mesma largura dos 16 registradores de emprego geral neles existentes. O microprocessador Intel 8088, que moveu os primeiros sistemas IBM PC, possui registradores de 16 bits cada um, tamanho idêntico ao definido para a palavra. 
A quantidade e o uso dos registradores variam bastantes de modelo para modelo de UCP. Além dos registradores de dados, a UCP possui sempre outros registradores (que não participam diretamente da função processamento), com funções específicas ou que funcionam para a área de controle. Entre estes registradores podemos citar desde já o Registrador de Instrução – RI e o contador de instrução – CI, além do Registrador de Endereço de Memória – REM e o Registrador de Dados de Memória – RDM.
A Influência do Tamanho da Palavra: 
A capacidade de processamento de uma UCP (a velocidade com que realiza o ciclo de uma instrução) é em grande parte determinada pelas facilidades embutidas no hardware da ULA (ela é, só hardware) para realizar as operações matemáticas projetadas. Um dos elementos fundamentais para isso é a definição do tamanho da palavra da UCP. O valor escolhido no projeto de fabricação da UCP determinará o tamanho dos elementos ligados à área de 
processamento, entre estes a ULA. Um tamanho maior ou menor de palavra (e, por conseguinte, da ULA, dos registradores de dados, do barramento interno) acarreta, sem dúvida, diferenças fundamentais de desempenho da UCP. 
o projeto de uma UCP, a definição do tamanho da palavra tem enorme influência no desempenho 
 global de toda a UCP e, por conseguinte, do sistema como um todo. Vejamos: 
a) Influencia no desempenho devido ao maior ou menor tempo na execução de instruções com 
operações matemáticas na ULA, conforme demonstrado no exemplo anterior; 
b) Influencia no desempenho devido ao tamanho escolhido para o barramento interno e externo da 
UCP. Em geral, obtém-se o máximo de desempenho quando a largura (tamanho) do barramento de dados é, no mínimo, igual ao tamanho da palavra (como nos exemplos mostrados). Se a largura do barramento for, p. ex., igual a 16 bits em um sistema com palavra de 32 bits (ULA e registradores de 32 bits), então o movimento de 4 bytes de um dado tipo caractere requererá dois ciclos de tempo do barramento, ao passo que em barramento de 32 bits requereria apenas um ciclo de tempo; 
c) Influencia também na implementação física do acesso à memória. Embora atualmente a capacidade das memórias seja medida em bytes (porque as células são sempre de largura igual a 8 bits), o movimento de dados entre UCP e memória é normalmente medido em palavras, porque o barramento de dados que une o RDM (ou MBR) à memória deve acompanhar em largura o valor da palavra. Para uma UCP de 32 bits de palavra, p. ex., é desejável que a memória seja organizada de modo que sejam acessadas 4 células contíguas (4 bytes = 32 bits) 
em um único ciclo de memória. Se isto não ocorrer, a UCP deverá ficar em estado de espera 
(“wait state”).
Função Controle 
A área de controle de uma UCP é a parte funcional que realiza (uma etapa de cada vez, em sistemas 
de execução serial, ou várias etapas simultaneamente, em sistemas de execução “pipelining”) as 
atividades de: 
a) Busca de instrução que será executada, armazenando-a em um registrador especialmente projetado para esta finalidade; 
b) Interpretação das ações a serem desencadeadas com a execução da instrução (se é uma soma, 
c) Geração de sinais de controle apropriado para ativação requerida para a execução propriamente dita da instrução identificada. Esses sinais de controle são enviados aos diversos componentes do sistema, sejam internos da UCP (como a ULA) ou externos (como a memória ou E/S). 
Em outras palavras, a área de controle é projetada para entender o que fazer, como fazer e comandar 
quem vai fazer no momento adequado. Podemos fazer uma analogia com os seres humanos, 
imaginando que a área de controle é océrebro que comanda o ato de andar, e as áreas do 
processamento são os músculos e ossos das pessoas que realizam efetivamente o ato. Os nervos são 
análogos ao barramento de interligação entre os diversos elementos. 
Os dispositivos básicos que devem fazer parte daquela área funcional são: 
• Unidade de controle (UC); 
• Decodificador; 
• Registrador de instrução (RI); 
• Contador de Instrução (CI) ou PC – Program Counter; 
• Relógio ou Clock; 
• Registradores de endereço de memória (REM) e de dados da memória (RDM). 
A quantidade, a complexidade e a disposição dos componentes que realizam as funções de controle variam consideravelmente de UCP para UCP, porém, essencialmente, os dispositivos indicados (em azul na Figura 5.9) são os mesmos. 
A Unidade de Controle: 
É o dispositivo mais complexo da UCP. Possui a lógica necessária para realizar a movimentação de dados e instrução de e para a UCP, através de sinais de controle, que emite em instantes de tempo programados. Este dispositivo controla a ação da ULA. Os sinais de controle emitidos pela UC ocorrem em vários instantes durante o período de realização de um ciclo de instrução e, de modo geral, todos possuem uma duração fixa e igual, originada em um gerador de sinais usualmente conhecido como relógio (clock). 
O Relógio: 
É o dispositivo gerador de pulsos cuja duração é chamada de ciclo. A quantidade de vezes em que este pulso básico se repete em um segundo define a unidade de medida do relógio, denominada freqüência, a qual também usamos para definir velocidade na UCP. A Figura 5.14 mostra um exemplo de um relógio (em geral, é um gerador de cristal de quartzo) e os pulsos por ele gerados. Um ciclo de relógio ou de máquina é o intervalo de tempo entre o início de um pulso e o início do seguinte. Este ciclo está relacionado à realização de uma operação elementar, durante o ciclo de uma instrução (operação elementar pode ser, p. ex., uma microinstrução, que é parte do ciclo de 
uma instrução de máquina, que veremos posteriormente). No entanto, mesmo esta operação elementar não se realiza em um só passo e, por essa razão, costuma-se dividir o ciclo de máquina em ciclos menos (subciclos), defasados no tempo, de modo que cada um aciona um passo diferente da operação elementar. A Figura 3.14 mostra o ciclo básico e os 5 subciclos gerados por um retardador (exemplo dos ciclos do processador Intel 8085). 
 Registrador de Instrução - RI: 
É o registrador que tem a função específica de armazenar a instrução a ser executada pela UCP. Ao se iniciar um ciclo de instrução, a UC emite o sinal de controle que acarretará a realização de um ciclo de leitura para buscar a instrução na memória (uma cópia dela), e que, via barramento de dados e RDM, será armazenado no RI. 
Contador de Instrução - CI: 
É o registrador cuja função específica é armazenar o endereço da próxima instrução a ser executada. Tão logo a instrução que vai ser executada seja buscada (lida) da memória para a UCP (início do ciclo de instrução), o sistema providencia a modificação do conteúdo do CI de modo que ele passe a armazenar o endereço da próxima instrução na seqüência. Por isso, é comum definir a função CI como sendo a de “armazenar o endereço da próxima instrução”, que é o que realmente ele faz durante a maior parte da realização de um ciclo de instrução. O CI é um registrador crucial para o processo de controle e de seqüenciamento da execução dos programas.
Decodificador de Instrução: 
É um dispositivo utilizado para identificar as operações a serem realizadas, que estão correlacionadas à instrução em execução. Em outras palavras, cada instrução é uma ordem para que a UCP realize uma determinada operação. Como são muitas instrução, é necessário que cada uma possua uma identificação própria e única. A unidade de controle está, por sua vez, preparada para sinalizar adequadamente aos diversos dispositivos da UCP, conforme ela tenha identificado a instrução a ser executada. 
Registrador de Dados de Memória – RDM e Registrador de Endereços de Memória - REM: 
São os registradores utilizados pela UCP e memória para comunicação e transferência de informação conforme já explicado. Em geral, o RDM (ou MBR – Memory Buffer Register) possui um tamanho (capacidade de armazenamento de bits) igual ao da palavra e do barramento de dados, enquanto o REM (ou MAR – Memory Address Register) possui um tamanho igual ao dos endereços da memória (e, consequentemente, do barramento de endereço do sistema). Pela definição de bits do REM podemos calcular qual o espaço máximo de endereçamento da memória principal de um computador.
OBSERVAÇÃO IMPORTANTE
Pipeline é uma técnica de hardware que permite que a CPU realize a busca de uma ou mais instruções além da próxima a ser executada. Estas instruções são colocadas em uma fila de memória dentro do processador (CPU) onde aguardam o momento de serem executadas.
A técnica de pipeline é utilizada para acelerar a velocidade de operação da CPU, uma vez que a próxima instrução a ser executada está normalmente armazenada dentro da CPU e não precisa ser buscada da memória, normalmente muito mais lenta que a CPU.
A técnica de pipeline é semelhante a uma linha de produção de fábrica. Cada instrução de um microprocessador passa por diversas fases até sua execução. Estas fases podem ser:
Decodificação 
Acesso memória ou registradores 
Processamento aritmético 
Se conseguirmos separar todas estas fases de forma independente, e separar cada fase por ciclo de relógio teríamos (neste exemplo) 3 ciclos por instrução. Se usarmos uma técnica de pipeline poderíamos colocar 3 instruções ao mesmo tempo no microprocessador (cada uma numa fase distinta) e termos 3 instruções em 3 ciclos (1 instrução por ciclo idealmente). Outros problemas advem desta técnica, como desvios (como saber as próximas instruções), e dependência de instruções (a próxima depende da anterior). Na prática todos os microprocessadores modernos utilizam-se de várias (dezenas) fases no processamento para usufruir de clocks maiores (quanto menor a fase, mais rápido pode ser o ciclo).
O termo bootstrap em computação começou como uma metáfora nos anos de 1950. Pressionar um botão de bootstrap faria com que um programa embutido lesse um programa bootstrap de uma unidade de entrada e então executasse o programa de bootstrap que lê mais instruções de programas e torna-se um processo auto-sutentável que procede sem ajuda externa de instruções inseridas manualmente. Como um termo de computação, bootstrap tem sido utilizado pelo menos desde 1958.
O conceito de bootstrap foi utilizado no computador IBM 701 (1952-1956) que tinha um "botão carregar" que iniciava a leitura da primeira palavra de 36 bits de um cartão perfurado em uma leitora de cartões, ou de uma unidade de fita magnética, ou unidade drum (predecessora da unidade de disco rígido). A última semi-palavra de 18 bits foi então executada como uma instrução que lia palavras adicionais na memória.
MEMÓRIA: 
Tecnologia de fabricação: 
Ao longo do tempo, diversas tecnologias vêm sendo desenvolvidas para a fabricação de memória. Atualmente algumas dessas tecnologias já são obsoletas, como as memórias de núcleo de ferrite (magnéticas), algumas das tecnologias mais conhecidas são: 
• Memória de semicondutores ® são dispositivos fabricados com circuitos eletrônicos e baseados em semicondutores. São rápidas e relativamente caras, se comparadas com outros tipos. Registradores e memória principal são exemplos de memórias de semicondutores ou, mais simplesmente, memórias eletrônicas. 
• Memórias de meio magnético ® são dispositivos, como os disquetes, discos rígidos e fitas magnéticas, fabricados de modo a armazenar informações sob a forma de campos magnéticos. Eles possuem características magnéticas semelhantes às das fitas cassetes de som, as quais são memórias não voláteis. 
Hierarquia de Memória: 
A MP não é o único dispositivo de armazenamento de um computador. Em função de características como tempode acesso, capacidade de armazenamento, custo, etc., podemos estabelecer uma hierarquia de dispositivos de armazenamento em computadores. Devido a essa grande variedade de tipos de memória, não é possível implementar um sistema de computação com uma única memória. Na realidade, há muitas memórias no computador, as quais se interligam de forma bem estruturada, constituindo um sistema em si, parte do sistema global de computação, podendo ser denominado subsistema de memória, como mostrado na Figura 5.2.
A pirâmide em questão é projetada com base larga, que simboliza a elevada capacidade, o tempo de uso e o custo do componente que a representa. 
A seguir serão definidos os principais parâmetros para análise das características de cada tipo de memória componente da hierarquia apresentada na Figura 5.2. 
• Tempo de Acesso ® é o período de tempo gasto decorrido desde o instante em que foi iniciada a operação de acesso até que a informação requerida (instrução ou dado) tenha sido efetivamente transferida. Pode ser chamado tempo de acesso para leitura ou simplesmente tempo de leitura. É dependente do modo como o sistema de memória é constituído e da velocidade dos seus circuitos. Ele varia bastante de acordo com o tipo de memória analisado, sendo valores típicos entre 50 e 150 nanossegundos (ns), por exemplo, para uma memória principal (tipo DRAM) e de 12 a 60 milissegundos (ms) para discos magnéticos (memória secundária). 
• Capacidade ® é a quantidade de informação que pode ser armazenada em uma memória; a unidade de medida mais comum é o byte, embora também possam ser usadas outras unidades como células (no caso da memória principal e cache), setores (no caso de discos) e bits (no caso de registradores). Dependendo do tamanho (tamanho refere-se a quantidade de informação que pode ser armazenada e não no tamanho físico) da memória, isto é, de sua capacidade, indica-se o valor numérico total de elementos de forma simplificada, através da inclusão de K (kilo), M (mega), G (giga) ou T (tera). 
• Volatilidade ® memórias podem ser do tipo volátil ou não volátil. Uma memória não volátil é a que retém a informação armazenada quando a energia elétrica é desligada. Memória volátil é aquela que perde a informação armazenada quando a energia elétrica desaparece (interrupção de energia elétrica ou desligamento da chave ON/OFF do equipamento). 
• Temporariedade ® trata-se de uma característica que indica o conceito de tempo de permanência da informação em um dado tipo de memória. Por exemplo, informações (programas e dados) podem ser armazenadas em discos ou disquetes e lá permanecerem armazenadas indefinidamente (mas há sempre a possibilidade de perda de magnetismo com o passar do tempo) a este tipo de memória define-se como permanente. Ao contrário dos registradores, que armazenam um dado por um tempo extremamente curto (nanossegundos), a este tipo chamamos de transitória. 
• Custo ® o custo de fabricação de uma memória é bastante variado em função de diversos fatores, tipo: tecnologia de fabricação, tempo de acesso, e outros. Uma boa forma de medida de custo é o preço por byte armazenado, em vez do custo total. 
O quadro a seguir mostra mais características:
	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: 
	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. 
Analisando os diversos parâmetros que caracterizam as memórias, temos: 
Tempo de acesso: possuem o menor tempo de acesso a memória do sistema, algo em torno de 10 a 20 nanossegundos, dependendo de tratar-se da UCP de um supercomputador ou de um microprocessador mais lento. 
Capacidade: são fabricadas com a capacidade de armazenar um único dado, umas únicas instruções ou até um único endereço. Desta forma, a quantidade de bits de cada um é de uns poucos bits (de 8 a 64), dependendo do tipo de processador. 
Volatilidade: são memórias semicondutoras, portanto, necessitam de energia elétrica para funcionarem. 
Temporariedade: os registradores são memórias auxiliares internas à UCP e, portanto, tendem a guardar informações o mais temporariamente possível. 
Custo: devido à tecnologia mais avançada de sua fabricação, os registradores são os dispositivos de memória de maior custo.
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. 
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 UCP 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%. 
Tempo de acesso: tendo em vista que a UCP acessa primeiro a memória cache, para buscar a informação requerida, possuem tempo de acesso entre 5 e 25 ns. 
Capacidade: os valores típicos de memória cache oscilam entre 512 K a 2 M em máquinas de grande porte e em máquinas tipo microcomputador de 512 K a 1 M. 
Volatilidade: são dispositivos constituídos de circuitos eletrônicos, logo requerem energia elétrica para seu funcionamento. 
Temporariedade: devido a seu tamanho não ser grande e ser utilizada por todo os programas em execução, há a necessidade de alteração periódica da informação armazenada para permitir entrada de novas informações. 
Custo: o custo de fabricação das memórias cache é alto. 
OBS:
Acesso: 
· O acesso à cache é transparente à aplicação e ao sistema operacional;
· Para a leitura de 1 byte na memória principal, têm-se os seguintes passos:
· O processador inicia a operação de leitura e coloca o endereço desejado na REM, para seguir para a MP;
· O sistema de controle da cache intercepta o endereço e conclui se o dado solicitado está ou não armazenado na cache. Um acerto é denominado cache hit e a falta é denominada cache miss;
· Se ocorrer um cache miss o controlador da memória principal é acionadopara localizar o dado na memória, transferindo-o para a cachê ou não;
· Considerando o principio da localidade, os próximos dados consultados já deverão estar na cache, compensando (e muito!) a demora causada por uma falha.
Memória Principal: 
Uma das principais características definidas no projeto de arquitetura do sistema de Von Neumann, o qual se constitui na primeira geração de computadores, consistia no fato de ser uma máquina “de programa armazenado”. O fato de as instruções, uma após a outra, poderem ser imediatamente acessadas pela UCP é o que garante o automatismo do sistema e aumenta a velocidade de execução dos programas. 
Tempo de acesso: possuem tempo de acesso entre 50 ns e 150 ns. 
Capacidade: os valores típicos para microcomputadores, minicomputadores e de grande porte, estão na faixa de 16 até 128M byte, embora eles possam endereçar memória de 4G byte. 
Volatilidade: sendo construído com semicondutores e circuitos eletrônicos correlatos, este tipo de memória também é volátil. 
Temporalidade: para que um programa seja executado é necessário que ele seja armazenado na memória principal. Atualmente esta afirmação é parcialmente verdadeira, visto que não é mais necessário que o programa completo esteja na MP, e sim apenas armazenado a instrução que será acessada pela UCP. No entanto, a transitoriedade com que as informações permanecem armazenadas na MP é, em geral, mais duradoura que na memória cache e registradores.
As memórias RAM (Random-Access Memory - Memória de Acesso Aleatório) constituem uma das partes mais importantes dos computadores, pois são nelas que o processador armazena os dados com os quais está lidando. Esse tipo de memória tem um processo de gravação de dados extremamente rápido, se comparado aos vários tipos de memória ROM. No entanto, as informações gravadas se perdem quando não há mais energia elétrica, isto é, quando o computador é desligado, sendo, portanto, um tipo de memória volátil.
Há dois tipos de tecnologia de memória RAM que são muitos utilizados: estático e dinâmico, isto é, SRAM e DRAM, respectivamente. Há também um tipo mais recente chamado de MRAM. Eis uma breve explicação de cada tipo:
- SRAM (Static Random-Access Memory - RAM Estática): esse tipo é muito mais rápido que as memórias DRAM, porém armazena menos dados e possui preço elevado se considerarmos o custo por megabyte. Memórias SRAM costumam ser utilizadas como cache (saiba mais sobre cache neste artigo sobre processadores);
- DRAM (Dynamic Random-Access Memory - RAM Dinâmica): memórias desse tipo possuem capacidade alta, isto é, podem comportar grandes quantidades de dados. No entanto, o acesso a essas informações costuma ser mais lento que o acesso às memórias estáticas. Esse tipo também costuma ter preço bem menor quando comparado ao tipo estático;
Memória ROM 
As memórias ROM (Read-Only Memory - Memória Somente de Leitura) recebem esse nome porque os dados são gravados nelas apenas uma vez. Depois disso, essas informações não podem ser apagadas ou alteradas, apenas lidas pelo computador, exceto por meio de procedimentos especiais. Outra característica das memórias ROM é que elas são do tipo não voláteis, isto é, os dados gravados não são perdidos na ausência de energia elétrica ao dispositivo. Eis os principais tipos de memória ROM:
- PROM (Programmable Read-Only Memory): esse é um dos primeiros tipos de memória ROM. A gravação de dados neste tipo é realizada por meio de aparelhos que trabalham através de uma reação física com elementos elétricos. Uma vez que isso ocorre, os dados gravados na memória PROM não podem ser apagados ou alterados;
- EPROM (Erasable Programmable Read-Only Memory): as memórias EPROM têm como principal característica a capacidade de permitir que dados sejam regravados no dispositivo. Isso é feito com o auxílio de um componente que emite luz ultravioleta. Nesse processo, os dados gravados precisam ser apagados por completo. Somente depois disso é que uma nova gravação pode ser feita;
- EEPROM (Electrically-Erasable Programmable Read-Only Memory): este tipo de memória ROM também permite a regravação de dados, no entanto, ao contrário do que acontece com as memórias EPROM, os processos para apagar e gravar dados são feitos eletricamente, fazendo com que não seja necessário mover o dispositivo de seu lugar para um aparelho especial para que a regravação ocorra;
Conforme foi definido 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. 
• 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 têm 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. 
 Figura 5.3 – Estrutura de uma Memória Principal. 
OBS/;
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.
Operações com Memória Principal 
É possível realizar duas operações em uma memória: 
• escrita (“write”) – armazenar informação na memória; 
• leitura (“read”) – recuperar uma informação armazenada na memória. 
A operação de leitura não destrói o conteúdo da memória, ela apenas providencia a transferência de uma cópia do que está armazenado, enquanto a informação desejada continuar armazenada. Somente a operação de escrita é destrutiva. Vamos descrever, com um pouco mais de detalhe, como se acontece uma operação de leitura e uma escrita naMP de um sistema de computação. Para tanto, há necessidade de se definir os elementos que compõem a estrutura UCP/MP e que são utilizados naquelas operações.
	Operação de leitura:
 REM > endereço em outro registrador;
 O endereço é colocado no barramento de endereço;
 Sinal de leitura no barramento de controle;
 Decodificação de endereço e localização da célula;
 RDM > MP pelo barramento de dados;
 Outro registrador > RDM.
	Operação de escrita:
 REM > endereço em outro registrador;
 O endereço é colocado no barramento de endereço;
 RDM > outro registrador;
 Sinal de escrita no barramento de controle;
 MP (REM) > RDM
• Registrador de Dados da Memória (RDM) ® registrador que armazena temporariamente a informação (conteúdo de uma ou mais células) que está sendo transferida da MP para a UCP (em uma operação de leitura) ou da UCP para a MP (em uma operação de escrita). Permite armazenar a mesma quantidade de bits do barramento de dados. 
• Barramento de dados ® interliga o RDM à MP, para transferência de informações entre MP e a UCP (sejam instruções ou dados). É bidirecional, isto é, ora os sinais percorrem o barramento da UCP para a MP (operação de escrita), ora percorrem o caminho inverso (operação de leitura). 
• Registrador de Endereços da Memória (REM) ®registrador que armazena o endereço de acesso a uma posição de memória, ao se iniciar uma operação de leitura ou de escrita. Em seguida, o referido endereço é encaminhado à área de controle da MP para codificação e localização da célula desejada. Permite armazenar a mesma quantidade de bits do barramento de endereços. 
• Barramento de Endereços ® interliga o REM à MP para transferência dos bits que representam um determinado endereço. É unidirecional, visto que somente a UCP aciona a MP para realização de operações de leitura e escrita. Possui tantos fios (ou linhas de transmissão) quantos são os bits que representam o valor do endereço. 
•Barramento de controle ® interliga a UCP (Unidade de Controle) à MP para passagem de sinais de controle durante uma operação de leitura ou escrita. É bidirecional, porque a UCP pode enviar sinais de controle para a MP, como sinal indicador de que a operação é de leitura ou escrita e a MP pode enviar sinais do tipo WAIT (para a UCP se manter aguardando o término de uma operação). 
Memória Secundária: 
Memórias secundárias resolvem problemas de armazenamento de grandes quantidades de informações. A capacidade da MP é limitada pelo seu relativamente alto custo, enquanto as memórias secundárias têm maior capacidade e menor custo; portanto, o custo por bit armazenado é muito menor. Outra vantagem importante é que as memórias secundárias não são VOLÁTEIS, isto é, não dependem de estar energizadas para manter gravado seu conteúdo. Unidades de fita, CD-ROM, DVD, unidades ótico-magnéticas, etc. 
Tempo de acesso: os valores típicos para disco rígidos são faixa de 10 a 40 ms. Discos do tipo CD-ROM trabalham com tempos de acesso ainda maiores, na faixa de 200 a 500 ms, enquanto as fitas magnéticas são ainda mais lentas, podendo ler um arquivo em tempos da ordem de segundos. 
Capacidade: uma das características que coloca a memória secundária na base da pirâmide é justamente sua grande capacidade de armazenamento. Discos rígidos de microcomputadores podem, atualmente, ser encontrados com capacidade de 1.2, 4.5, 10 Gbytes , etc. Sistema de grande porte são maiores ainda, tipos360 Gbytes. Os CD-ROM têm capacidade de 650 Mbytes, etc. 
Volatilidade: as informações não desaparecem com a falta de energia elétrica, logo não são voláteis. 
Temporariedade: tem caráter permanente, ou pelo menos, de longo período de armazenagem.
Dispositivos de E/S
O usuário se comunica com o núcleo do computador (composto por UCP e memória principal) através de dispositivos de entrada e saída (dispositivos de E/S ou I/O devices). Os tópicos a seguir vão analisar como funcionam os dispositivos de entrada e saída e como se faz a comunicação entre eles e o núcleo do computador.
Os dispositivos de entrada e saída tem como funções básicas: 
· a comunicação do usuário com o computador 
· a comunicação do computador com o meio ambiente (dispositivos externos a serem monitorados ou controlados) 
· armazenamento (gravação) de dados. As características que regem a comunicação de cada um dos dispositivos de E/S (entrada e saída) com o núcleo do computador (composto de UCP e memória principal) são muito diferentes entre si. Cada dispositivo de E/S se comunica com o núcleo de forma diversa do outro. Entre outras diferenças, os dispositivos de entrada e saída são muito mais lentos que o computador, característica essa que impõe restrições à comunicação, de vez que o computador precisaria esperar muito tempo pela resposta do dispositivo. 
Outra diferença fundamental diz respeito às características das ligações dos sinais dos dispositivos. 
Os primeiros computadores, especialmente os de pequeno porte, eram muito lentos e os problemas de diferença de velocidade eram resolvidos sem dificuldade e não representavam problema importante. Dessa forma, a ligação dos dispositivos de E/S era feita através de circuitos simples (as interfaces) que apenas resolviam os aspectos de compatibilização de sinais elétricos entre os dispositivos de E/S e a UCP. Os aspectos relativos a diferenças de velocidade (especialmente tempo de acesso) eram resolvidas software. 
Entre esses componentes, trafegam informações relativas a dados, endereços e controle.
Tipos de Dispositivos 
Os dispositivos de ENTRADA são: teclado, mouses, scanners, leitoras óticas, leitoras de cartões magnéticos, câmeras de vídeo, microfones, sensores, transdutores, etc.
As funções desses dispositivos são coletar informações e introduzir as informações na máquina, converter informações do homem para a máquina e vice-versa, e recuperar informações dos dispositivos de armazenamento. 
Os dispositivos de SAÍDA são: impressoras, monitores de vídeo, plotters, atuadores, etc ...
As funções desses dispositivos são exibir ou imprimir os resultados do processamento, ou ainda controlar dispositivos externos.
A UCP não se comunica diretamente com cada dispositivo de E/S e sim com "interfaces", de forma a compatibilizar as diferentes características. O processo de comunicação ("protocolo") é feito através de transferência de informações de controle, endereços e dados propriamente ditos. Inicialmente, a UCP interroga o dispositivo, enviando o endereço do dispositivo e um sinal dizendo se quer mandar ou receber dados através da interface. O periférico, reconhecendo seu endereço, responde quando está pronto para receber (ou enviar) os dados. A UCP então transfere (ou recebe) os dados através da interface, e o dispositivo responde confirmando que recebeu (ou transferiu) os dados (acknowledge ou ACK) ou que não recebeu os dados, neste caso solicitando retransmissão (not-acknowledge ou NAK).
Prof. Marcelo Ribeiro	Página � PAGE \* MERGEFORMAT �4�

Outros materiais