Parte IV Sistea de Meória Os sisteas de coputação utiliza vários tipos de dispositivos para arazeaeto de dados e de istruções. Os dispositivos de arazeaeto cosiste e eória pricipal e eória secudária. A eória priária é volátil co tepos de acesso eores, as ais cara e de eor diesão. É usada para guardar dados e istruções durate a execução de aplicações. A eória secudária é ão volátil e cosiste e discos, CDROMs, DVDs, etc. É ais leta que a eória pricipal, as te u custo eor e ua capacidade aior. É usada coo eória virtual e para arazeaeto de ficheiros. 1 Projecto do Sistea de Meória O projecto do sistea de eória pricipal cosiste e idetificar as eórias ecessárias, os edereços a atribuir a cada ua delas e os blocos de eória física a usar a sua ipleetação. Nas secções seguites aalisaos coo se ipleeta blocos de eória de deteriada diesão à custa de blocos físicos co deteriado taaho e coo se atribue os edereços dispoíveis a cada u dos blocos de eória ligados ao bus do sistea. 1.1 Ipleetação dos Blocos de Meória Os ódulos de eória do sistea são ipleetados co eórias coerciais que se apreseta e diesões pré-deteriadas. Coo tal, é oralete ecessário ipleetar u deteriado ódulo de eória à custa de vários blocos de eória coerciais. Coo foi visto o capítulo 1, u ódulo de eória te coo etradas u cojuto de lihas de edereço, de dados e de cotrolo (ver figura 1). As lihas de cotrolo cosiste u sial de cotrolo do tipo de acesso (leitura/escrita), u sial de selecção da eória ( Chip Select) e, pode ter aida u sial de activação das saídas de dados (OE Output Eable). O sial perite desactivar o acesso à eória colocado as saídas de dados e alta ipedâcia Desta fora, é possível ligar vários ódulos a u bus úico, tedo apeas de garatir que apeas u dos ódulos está activo de cada vez. Edereço Edereço ROM Me Me select Me Read Me select OE Figura 1 Etradas/saídas dos ódulos de eória e ROM A partir de ódulos de eória co u deteriado taaho é possível ipleetar blocos de eória co ua diesão de palavra e de úero de palavras últiplos do ódulo origial. Cosidereos, e prieiro lugar, a ipleetação de ódulos de eória co o dobro das palavras (ver figura 2). 1
2 +1 x Edereço Me Me select A -1 -A A A -1 -A A Figura 2 Ipleetação de u ódulo co o dobro das palavras Neste caso, cada ódulo origial fica co etade das palavras de eória. Ua vez que teos o dobro das palavras, é ecessária ais ua liha de edereço, A. Esta liha de edereço é usada para seleccioar u dos ódulos. A estrutura é facilete escalável para ipleetar aiores. Para gerar eórias co diesão 2 x aior que a diesão origial basta icluir ais x lihas de edereços e depois usar u descodificador x 2 x para gerar os siais de de cada u dos ódulos. No caso de se preteder gerar u bloco de eória co o eso úero de palavras, as co o dobro do taaho, são ecessários dois ódulos de eória sedo que cada u fica co etade da palavra (ver figura 3). 2 x 2 Edereço D 2-1 -D Me Me select D -1 -D Figura 3 Ipleetação de u ódulo co palavras co o dobro do taaho origial 2
Para gerar esta cofiguração, cada ódulo origial fica co etade da palavra de eória. As saídas de dados de abos os ódulos são depois cocateados para produzir a palavra de dados copleta. Tabé este caso, a estrutura é facilete escalável para ipleetar co palavras aiores. Para gerar eórias co palavras de diesão x aior que a diesão origial basta icluir cocatear as saídas de dados de x ódulos de eória. As duas cofigurações pode ser usadas e cojuto para forar u bloco de eória co a diesão desejada. 1.2 Mapa de Meória A iterligação dos blocos de eória ao processador faz-se, geralete, através de u cojuto úico de buses de edereços, de dados e de cotrolo. O processador te ua deteriada capacidade de geração de edereços, de acordo co o seu úero de bits de edereço, ou seja, o seu espaço de edereçaeto. Por exeplo, u processador co 16 bits de edereço te u espaço de edereçaeto de 2 16, ou seja, cosegue gerar 2 16 edereços diferetes. No caso de se preteder ligar vários ódulos de eória ao processador através do seu bus, é ecessário atribuir os edereços dispoíveis aos dispositivos de eória, o eso é dizer que se te de apear as eórias o espaço de edereçaeto do processador. Para os ajudar a realizar o apeaeto das eórias o espaço de edereçaeto, utiliza-se u apa de eória (ver figura 4). Mapa de Meória h Figura 4 Mapa de eória de u processador co u espaço de edereçaeto de 2 16 palavras No exeplo da figura, o espaço de edereçaeto vai do edereço até ao. Sobre este espaço de edereçaeto, vaos agora apear as eórias ecessárias. Por exeplo, cosidere-se que se pretede icluir ua eória de 16Kb o sistea. O apeaeto pode ser feito e qualquer posição do espaço de edereçaeto. No etato, coo vereos ais à frete, deteriados apeaetos são elhores pois siplifica a lógica de descodificação. Neste caso, vaos colocar a eória a partir do edereço (ver figura 5a). 3
A 15 A 14 A 15 A 14 A 15 A 14 A 15 A 14 16Kb 3FFFh 2h 16Kb 5FFFh a) b) Figura 5 Mapeaeto do bloco de eória de 16Kb o espaço de 64Kb A eória ocupa os edereços que vão do até ao 3FFFh. Sepre que o processador gerar u edereço esta gaa a eória terá de estar activa para u acesso de leitura ou de escrita. E qualquer u dos outros edereços, a eória terá de estar iactiva. Para garatir este fucioaeto cotrolado a etrada da eória. Se for u edereço etre e 3FFFh, activa o. Caso cotrário, fica iactivo. Basta agora deteriar a fução lógica do respodedo à questão: Coo se distigue os prieiros 16K edereços dos restates?. Se olharos co ateção para o biário dos edereços cocluíos facilete que, este caso, basta que os dois bits de edereço de aior peso esteja abos a. Podeos pesar que o espaço de edereçaeto está dividido e quatro e que basta os dois bits de aior peso do edereço para idetificar cada u deles, coo se ilustra a figura 5a. Assi, = A 15 A 14 (leia-se X coo sedo a egação de X). Para perceberos que ifluêcia te a colocação do bloco de eória sobre o processo de descodificação, cosidereos o apeaeto ilustrado a figura 5b. Neste exeplo, a coeça o edereço 2h. Para idetificar a gaa de edereços que vai do 2h até ao 5FFFh ão basta apeas dois bits do edereço, coo o caso aterior. Neste caso, o valor de é dado por A 15 A 14 A 13 + A 15 A 14 A 13. Para coseguir a descodificação ais siplificada deveos apear os blocos a coeçar u edereço últiplo do seu taaho. Por exeplo, u bloco de 16Kb deve coeçar os edereços, 16k, 32k ou 48k. Exercício Projecte o apeaeto de ua de 2Kb, ua ROM de 8Kb e ua EPROM de 32Kb u sistea co u espaço de edereçaeto úico de 64k. Para a ipleetação do sistea de eória dispões dos seguites blocos de eória: ROM de 16Kb, de 32Kb e EPROM de 32Kb. O prieiro passo é apear os blocos de eória o espaço de edereçaeto do processador (ver figura). 4
Eh 8h ROM 8Kb 2Kb CFFFh 7FFFh EPROM 32Kb Ua vez que os blocos aiores são ais difíceis de colocar, tedo e cota a regra dos últiplos), será ua boa opção coeçar pelos blocos aiores, coo se fez este exeplo. No apeaeto proposto todos os blocos coeça e últiplos do seu taaho por fora a siplificar a descodificação. Podeos agora passar a passo seguite que cosiste e deteriar as expressões lógicas do das eórias. Neste poto, cové verificar quatos ódulos de eória física são ecessários para cada caso, tedo e cota as especificações do problea. No exeplo, basta u ódulo de cada para ipleetar o sistea de eória pedido. Teos assi as expressões do de cada eória: EPROM = A 15 = A 15 (A 14 + A 14 A 13 A 12 ) = A 15 (A 14 +A 13 A 12 ) EPROM = A 15 A 14 A 13 A expressão associada ao da pode ser ais siplificado se os edereços ão ocupados do espaço de edereçaeto. Caso aditaos que este espaço pode ser usado a totalidade para realizar o apeaeto actual, etão podeos cosiderá-los coo parte do cojuto de edereços do apeaeto da. Neste caso, teos ua de 2Kb a ocupar u espaço total de edereçaeto de 24Kb. A vatage é que a descodificação passa a ser: = A 15 (A 14 +A 13 ) A desvatage é que deixáos de ter espaço livre para adicioar eória ao sistea. Até este poto, apeas se cosiderou que a arquitectura do coputador apeas tiha ua úica eória para guardar os dados e as istruções. E arquitecturas co eória de dados separada da eória de código (arquitectura de Harvard), o espaço de edereçaeto será represetado utilizado u apa de eória co duas zoas distitas (ver figura 6). 5
Zoa de Meória de Código Zoa de Meória De h h Figura 6 Mapa de eória co espaços de edereçaeto de 2 16 palavras para dados e código Neste caso, o apeaeto das eórias o espaço de edereçaeto deverá ter e cota o tipo de iforação a ser arazeada. No caso de ua eória usada para arazear uicaete istruções esta deverá ser apeada a zoa de eória de código. No caso de ser usada apeas para dados, deverá ser apeada a zoa de eória de dados. Por fi, caso seja utilizada para arazear dados e istruções, etão deverá ser apeada e abas as zoas. Cosidereos, coo exeplo, ua arquitectura co capacidade de edereçaeto de 64K de eória de dados e de 64K de eória de código. Pretede-se adicioar ua eória de 32K para dados, ua EPROM de 16K para istruções e ua eória de 8K para dados e istruções. U apeaeto possível é apresetado a figura 7. Código 8h 8Kb 9FFFh 8h 8Kb 9FFFh 7FFFh EPROM 16Kb 3FFFh 32Kb Figura 7 Mapeaeto dos blocos de eória o espaço de edereçaeto O apeaeto da de dados e da EPROM é siilar ao realizado o caso de espaço de edereçaeto úico, as tedo e ateção o tipo de iforação arazeada. A EPROM será apeada o espaço de código e a o espaço de dados. Quato à de 8Kb destiada a abos os tipos de iforação, esta ocupa 8Kb e abos os espaços de edereçaeto, ua vez que, os casos extreos, tato pode ser usada para arazear 8Kb de código coo 8Kb de dados. Teha e ateção, que apesar de ocupar u total de 16Kb do espaço de edereçaeto, é apeas ua eória de 8Kb. Esta cofiguração deverá ser tida e cota a ligação dos siais de edereço e de cotrolo (deverá ser activada tato para acesso de dados coo para acesso de código). 6
2 Hierarquia de Meória A arquitectura de coputador estudada asseta o acesso do processador a eória para aceder às istruções ou a dados do prograa. Idealete, o processador deveria ter dispoível toda a eória ecessária à velocidade ais rápida possível. No etato, se tiveros e cota que o custo da eória é iversaete proporcioal à velocidade de acesso, facilete cocluíos que esta solução ão é possível. A solução ecotrada para obter u sistea de eória próxio do ideal cosiste e ter diversos tipos de eória co velocidades de acesso e custos diferetes. Se as istruções e os dados ais utilizados se ecotrare as eórias ais rápidas, teos o problea resolvido. Para tal, cosidera-se ua hierarquia de eória (ver figura 6). CPU Cache Meória pricipal Meória secudária Figura 6 Hierarquia de eória A cache é o ível de eória ais próxio do CPU. A cache pode ser dividida e ais íveis (ível 1, L1, e ível 2, L2), sedo que u deles é, geralete, ipleetado detro do CPU. Segue-se a eória pricipal, a fora DE, e a eória secudária que pode ser u disco rígido, u CD-ROM, DVD-ROM, etc. Nesta cofiguração, o acesso a ua eória é feito e prieiro lugar à eória cache, o tipo de eória co acesso ais rápido. Se o pretedido ão se ecotrar esta eória, é feito u acesso à eória pricipal. Caso tabé ão se ecotre aqui, é feito u acesso à eória secudária. Algus estudos idica que este tipo de hierarquia cosegue tepo édios de acesso próxios dos que seria obtidos caso se usasse apeas eória cache. Tal sigifica, que a aior parte dos acessos à cache tê sucesso. Tal parece u cotra seso ua vez que a cache te espaço para arazear ua pequea parte da totalidade da eória pricipal. De facto, tal ão seria possível se ão se verificasse os pricípios de localidade a aioria dos prograas. Este pricípio estabelece que os acessos à eória estão bastate correlacioados. No que se refere ao pricípio da localidade, são idetificados dois tipos: teporal e espacial. A localidade teporal idica que após o acesso a u deteriado edereço de eória, é bastate provável que este eso edereço volte a ser acedido u tepo próxio. A localidade espacial idica que após o acesso a u deteriado edereço de eória, é bastate provável que se aceda a u edereço próxio deste. Para perceber epiricaete estes pricípios basta pesar os ciclos, e que se idetifica facilete estes dois pricípios. 7
Seguido os factos idicados por estes dois pricípios, para que se cosiga bos desepehos o acesso à eória, basta guardar os dados acedidos e eória cache, be coo os dados vizihos para que os próxios acessos seja feitos co grade probabilidade de sucesso à eória cache (verifica-se taxas de sucesso superiores a 95%). Se por u lado a cache perite u acesso rápido à iforação, os dispositivos de eória secudária perite o arazeaeto de ua grade quatidade de iforação. E particular, perite a ipleetação de eória virtual que garate o arazeaeto e prograas que exige ais eória que a existete e eória pricipal. A utilização do coceito de cache e de eória virtual perite que se teha u sistea co uita eória e co tepos de acesso bastate baixos. 8