ARQUITETURA DE COMPUTADORES - 1866 6.9 – Memória Cache: A memória cache é uma pequena porção de memória inserida entre o processador e a memória principal, cuja função é acelerar a velocidade de transferência das informações entre a CPU e a memória principal e, com isso, aumentar o desempenho dos sistemas de computação. Para tanto, este tipo de memória é fabricado com tecnologia semelhante à da CPU e, em conseqüência, possui tempos de acesso compatíveis com a mesma, resultando numa considerável redução da espera da CPU para receber dados e instruções da cache, ao contrário do que acontecem em sistemas sem cache. Devido ao custo, a capacidade de armazenamento costuma ser da ordem de Kbytes. Nos sistemas mais modernos já encontramos caches com 1 Mbyte ou mais. As memórias cache podem ser inseridas em dois ou mais níveis. O primeiro nível é o L1 (Level 1 – Nível 1), uma memória cache inserida internamente no processador, isto é, é encapsulada na mesma pastilha. Nas placas-mãe mais antigas a cache L2 vinha soldada na própria placa, sendo que os processadores mais novos já possuem esta memória em seu próprio interior, a exemplo da L1. Quando processadores que possuem cache L1 e L2 em seu próprio interior são instalados em uma placa mãe que possua memória cache, esta passa a ser utilizada como cache de nível 3, ou L3. Há projetos de processadores que terão esta memória também em seu próprio interior. Com isso, a memória cache presente na placa mãe será considerada como L4. A CPU procura por dados primeiro em L1, depois em L2 (e/ou L3 e L4) e finalmente requisita os dados da memória principal. - 50 - ARQUITETURA DE COMPUTADORES - 1866 6.10 – Organização para transferência de Informações entre CPU/Cache/MP: Sempre que a CPU vai buscar uma nova informação (instrução ou dado), ela acessa a memória cache. Se a informação estiver na cache, chama-se de acerto (ou hit), ela é transferida em alta velocidade, compatível com a da CPU. Se a informação não estiver na cache, chama-se de falta (ou fault), então o sistema está programado para interromper a execução do programa e transferir a informação desejada da MP para a cache. Só que essa transferência não é somente da instrução desejada, mas dela e de um grupo subsequente, na pressuposição de que as instruções do grupo serão requeridas pela CPU em seguida e, portanto, já estarão na cache quando necessário (acertos). Para haver realmente algum aumento de desempenho de um sistema de computação, com a inclusão da memória cache, é necessário que haja mais hits do que faults. - 51 - ARQUITETURA DE COMPUTADORES - 1866 6.11 – Memória Secundária (ou Auxiliar): Na base da pirâmide que representa a hierarquia de memória em um sistema de computação encontra-se um tipo de memória com maior capacidade de armazenamento do que os outros tipos já descritos, menor custo por byte armazenado e com tempos de acesso também superiores aos outros tipos. Esta memória denominada memória secundária ou memória auxiliar tem por objetivo garantir um armazenamento mais permanente aos dados e programas do usuário, razão por que deve naturalmente possuir maior capacidade que a memória principal. Este tipo de memória pode ser constituído por diferentes tipos de dispositivos, alguns diretamente ligados ao sistema para acesso imediato (discos rígidos, por exemplo) e outros que podem ser conectados quando desejado (como pen drive, CD, DVD, etc), cuja informação armazenada se torna disponível para o usuário quando o específico pen drive ou CD estiver inserido no elemento de leitura (porta USB ou drive de CD-ROM, respectivamente). Dispositivos de memória secundária são necessários a qualquer sistema de computação, pois nenhum computador fica ininterruptamente ligado, ou seja, os dados e instruções não podem ficar armazenados indefinidamente na memória principal. Vejamos abaixo algumas características deste tipo de memória: Tempo de acesso: os dispositivos que representam este tipo de memória são eletromecânicos e não circuitos puramente eletrônicos (como é o caso dos registradores, memória cache e memória principal), por isso este tipo de memória possui os maiores tempos de acesso dentre todos os tipos de memória. Capacidade de armazenamento: uma das principais características da memória secundária é sua grande capacidade de armazenamento, a qual também varia consideravelmente dependendo do tipo de dispositivo utilizado. Volatilidade: uma das principais características dos dispositivos que constituem a memória secundária é sua não volatilidade: as informações não se perdem quando não há alimentação elétrica. Trata- - 52 - ARQUITETURA DE COMPUTADORES - 1866 se, pois, de dispositivos úteis para guardar os programas e dados de forma permanente. 6.11.1 – Geometria dos Discos Rígidos (HD): O disco rígido ou HD (Hard Disk) é um dispositivo de armazenamento de grande volume de dados (Memória Secundária), não volátil. No HD são armazenados os programas instalados no computador (Sistema Operacional: Windows, Linux, Mac OS / Aplicativos: Word, Excel, Outlook, Nero, IE, Firefox, Photoshop, etc) e os arquivos gerados pelos mesmos (Fotos, Textos, Músicas, Planilhas, Apresentações, etc). Um disco consiste de pratos, cada qual com duas superfícies. Cada superfície consiste de anéis concêntricos denominados trilhas. Cada trilha consiste de setores separados por espaços. O número de trilhas em um disco e a capacidade que cada trilha pode armazenar depende do tipo de disco. Numeradas da borda para o centro, isto é, a trilha que fica mais próxima da extremidade do disco é denominada trilha 0, a trilha que vem em seguida é chamada trilha 1, e assim por diante, até chegar à trilha mais próxima do centro. Os HDs com grande capacidade contam com mais de um prato, sobrepostos um sobre o outro. Trilhas de mesmo número em faces diferentes formam um cilindro. Exemplo: Todas as trilhas de número Zero de todos os discos formam o cilindro Zero. Os - 53 - ARQUITETURA DE COMPUTADORES - 1866 cilindros são numerados a partir de zero, na borda mais externa dos discos. As faces também são numeradas, começando de zero na superfície mais alta. 6.11.2 – Capacidade do Disco: Capacidade: é número máximo de bits que podem ser armazenados expresso em gigabytes (1 GB). Fatores que determinam a capacidade: Densidade de gravação: número de bits que podem ser gravados em 1 polegada de uma trilha. Densidade de trilha: número de trilhas que podem existir em um segmento radial. Densidade de armazenamento: produto da densidade de gravação com densidade de trilha. Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: – 512 bytes/setor – 300 setores/trilha (em média) – 20.000 trilhas/superfície – 2 superfícies/prato – 5 pratos/disco - 54 - ARQUITETURA DE COMPUTADORES - 1866 Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 ≅ 30,72 GB Exemplo 02: – 512 bytes/setor – 500 setores/trilha (em média) – 100.000 trilhas/superfície – 2 superfícies/prato – 5 pratos/disco Qual será a capacidade deste disco? 6.11.3 – Operação do Disco: Operação de disco com múltiplos discos - 55 - ARQUITETURA DE COMPUTADORES - 1866 6.11.4 – Organização do Disco – Setor de Boot: Nem toda a área disponível no disco pode ser utilizada para a gravação de arquivos de dados. É necessário reservar certas porções para operações necessárias a qualquer sistema, como o setor de boot e tabelas de alocação de arquivos. A BIOS (Basic Input/Output System) lê um setor específico do disco rígido, chamado se setor de boot mestre MBR (Master Boot Record) ou trilha zero. O setor de boot do HD armazena informações sobre o Sistema Operacional instalado, quais arquivos devem ser carregados para inicializar o sistema, etc. O setor de boot funciona como um ponto de partida, assim que o computador é ligado, a BIOS lê o setor de boot e segue as instruções que estiverem gravadas nela, que iniciarão o carregamento do Sistema Operacional. Geralmente o boot é feito através do HD, mas de acordo com o que for configurado na opção "Boot Sequence" no Setup, a BIOS pode procurar o boot também no disquete, no CD-ROM, num disco Zip ou até mesmo tentar dar boot através da rede. 6.11.5 – Organização do Disco – Endereçamento: Para que o sistema operacional seja capaz de recuperar dados rapidamente de um sistema de memória de armazenamento secundário, é necessária a utilização de um sistema de endereçamento, denominado genericamente de formatação. A formatação organiza trilhas e setores do disco em regiões onde os dados são, de fato, gravados. O tamanho destas regiões varia segundo o processo de formatação utilizado. 6.11.5.1 – File Allocation Table - FAT FAT é a sigla para File Allocation Table (Tabela de Alocação de Arquivos). A primeira versão do FAT surgiu em 1977, para trabalhar com o sistema operacional MS-DOS, mas foi padrão até o Windows 95. Trata-se de um sistema de arquivos que funciona com base em uma espécie de tabela que indica onde estão os dados de cada arquivo. Esse esquema é necessário porque o espaço destinado ao armazenamento é dividido em blocos, e cada arquivo gravado pode ocupar vários destes, mas não necessariamente de - 56 - ARQUITETURA DE COMPUTADORES - 1866 maneira sequencial: os blocos podem estar em várias posições diferentes. Assim, a tabela acaba atuando como um "guia" para localizá-los. Entendendo os sistemas de arquivos FAT: Em um disco rígido, a área de armazenamento é dividida em trilhas. Cada trilha é subdividida em setores. Desse modo, é de se presumir que os sistemas de arquivos FAT trabalhem diretamente com esses setores. Mas não é bem assim. Na verdade, o FAT trabalha com grupos de setores, onde cada um recebe a denominação cluster (ou unidade de alocação). No caso do FAT16, cada cluster pode ter, comumente, um dos seguintes tamanhos: 2 KB, 4 KB, 8 KB, 16 KB e, por fim, 32 KB. A definição desse tamanho é uniforme, ou seja, não pode haver tamanhos variados de clusters em uma mesma unidade de armazenamento. Cada arquivo gravado utiliza tantos clusters quanto forem necessários para cobrir o seu tamanho. Se, por exemplo, tivermos um arquivo com 50 KB, é possível guardá-lo em dois clusters de 32 KB cada. Você deve ter percebido então que, neste caso, um cluster ficou com espaço sobrando. Esta área pode ser destinada a outro arquivo, correto? Errado! Acontece que cada cluster só pode ser utilizado por um único arquivo. Se sobrar espaço, este permanecerá vazio. Esse é um dos problemas do sistema FAT: desperdício. Normalmente, o tamanho dos clusters é definido no procedimento de instalação do sistema operacional, na etapa de formatação da unidade de armazenamento. Diferenças entre FAT16 e FAT32 O FAT16 utiliza 16 bits para endereçamento dos dados (daí o número 16 na sigla), o que, na prática, significa que o sistema de arquivos pode trabalhar com até 65536 clusters, no máximo. Para chegar a este número, basta fazer 216 = 65536. O sistema de arquivos FAT32 consegue solucionar esse problema por utilizar 32 bits no endereçamento de dados (novamente, aqui você pode perceber o porquê do número na sigla). No FAT16, quanto maior o espaço em disco, maior o tamanho do cluster. Com o FAT32, é possível usar clusters menores - geralmente de 4 KB mesmo com a unidade oferecendo maior capacidade de armazenamento. Desta forma, o desperdício acaba sendo menor. - 57 - ARQUITETURA DE COMPUTADORES - 1866 6.11.5.2 – NTFS Para discos de maior capacidade, procuramos reduzir o tamanho do cluster, para evitar a fragmentação interna (a fragmentação interna ocorre quando a área mínima de gravação que definimos para arquivos não é totalmente utilizada), e a conseqüente perda de espaço de armazenamento. O NTFS (New Technology File System) foi desenvolvido pela Microsoft para ser utilizado pelo Windows NT e seus derivados (2000, XP, Vista, Server 2003, Server 2008 e Seven) para ser um sistema de arquivos mais flexível, confiável, adaptável, seguro e veloz para operações com arquivos, como leitura, escrita e busca. O acesso é direto ao setor físico, de 512 bytes, independente do tamanho do disco. Com partições NTFS é ainda possível armazenar um maior volume de dados e suporte a nomes longos de arquivos. - 58 -