16. Sistemas de Memória Projecto do Sistema de Memória Implementação dos Blocos de Memória - PDF
16. Sistemas de Memória Projecto do Sistema de Memória Implementação dos Blocos de Memória
Download "16. Sistemas de Memória... 16-2 16.1 Projecto do Sistema de Memória... 16-2 16.1.1 Implementação dos Blocos de Memória... 16-2 16.1."
Herman Alves Farias
1 6. Sistemas de Memória Projecto do Sistema de Memória Implementação dos Blocos de Memória Mapa de Memória Lógica de descodificação de endereços Linear Select Hierarquia de Memória Exercícios Soluções
2 6. SISTEMAS DE MEMÓRIA Os sistemas baseados em microprocessadores utilizam vários tipos de dispositivos para armazenamento de dados e de instruções. Os dispositivos de armazenamento consistem em memória principal e memória secundária. A memória principal é constituída por elementos de memória, volátil ou não (RAMs, ROMs, EEPROMs, Flash, etc.) com baixos tempos de acesso, endereçáveis directamente através do bus de endereços, mas com uma ralação custo/dimensão muito elevado. Esta memória é usada para guardar dados e instruções durante a execução de aplicações. A memória secundária é não volátil e consiste em discos, CDROMs, DVDs, etc., e é caracterizada por grande capacidade de armazenamento de informação. A memória secundária tem um tempo de acesso muito mais lento que a memória principal, não é directamente endereçável através do bus de endereços, mas tem uma relação custo/dimensão muito menor que a memória principal. 6. Projecto do Sistema de Memória No projecto do sistema de memória de um micro-sistema, há numa primeira fase que considerar a existência de várias arquitecturas de micro-sistemas e consequentemente diferentes sistemas de memória. Entre as várias arquitecturas, há a considerar essencialmente, dois tipos: Os sistemas de utilização genérica (Computador Pessoal PC) que dão suporte à execução de aplicações genéricas e ao desenvolvimento de aplicações em várias áreas; e os sistemas embebidos (Telemóveis, POS, etc.), que são projectados com um objectivo específico, ou seja, não pressupõem expansão futura. No caso do PC, o sistema de memória principal é desenhado por forma a apresentar grande flexibilidade para a inserção de novos elementos de memória, com o objectivo de aumentar a capacidade de memória instalada, ou suportar a inserção de placas gráficas, placas de comunicação, etc. Nos sistemas embebidos, o sistema de memória é normalmente estável e não inclui memória secundária. É sobre o sistema de memória deste tipo de micro-sistemas que nos iremos debruçar neste documento. O projecto do sistema de memória principal consiste em identificar as dimensões e o tipo dos módulos de memórias necessários, os endereços a atribuir a cada um deles e os dispositivos de memória a usar na sua implementação. Seguidamente analisaremos como se implementam blocos de memória de determinada dimensão à custa de dispositivos de memória disponíveis no mercado. Teremos igualmente que analisar como se atribuem os endereços disponíveis no espaço de endereçamento do CPU a cada um dos blocos de memória ligados ao bus do sistema. 6.. Implementação dos Blocos de Memória Os módulos de memória do sistema são implementados com dispositivos de memória comerciais que se apresentam em dimensões determinadas pelos fabricantes. Como tal, é normalmente necessário implementar um determinado módulo de memória à custa de vários dispositivos de memória comerciais. Como foi visto em capítulos anteriores, um módulo de memória tem como entradas um conjunto de linhas de endereço, de dados e de controlo. As linhas de controlo incluem um sinal de selecção denominado (Chip Select) cujo objectivo, é poder activar e desactivar o dispositivo, no sentido de este poder ser integrado com outros elementos sem interferência entre eles. O sinal permite desactivar o acesso à memória colocando as saídas de dados em alta impedância. Desta forma, é possível ligar vários módulos a um bus único, tendo apenas de garantir que apenas um dos módulos está activo de cada vez. José Paraiso (Ver.8) Página 6-2
3 A partir de dispositivos de memória com uma determinada dimensão é possível implementar blocos de memória com uma dimensão de palavra e de número de palavras múltiplos do módulo original. Consideremos, em primeiro lugar, a implementação de um módulo de memória, como é mostrado na Figura 6-, que disponibiliza o dobro das palavras do dispositivo de memória que o constitui. m RAM 2 n+ x m D..m- A..n n+ A n D..m- A..n- RAM nxm D..m- n nwr A..n- RAM nxm Figura 6-- Módulo RAM com o dobro das palavras Neste caso, cada dispositivo fica com metade das palavras do módulo de memória. Uma vez que temos o dobro das palavras, é necessária mais uma linha de endereço, An. Esta linha de endereço é usada para seleccionar um dos dispositivos. A estrutura é facilmente escalável para implementar RAM maiores. Para gerar um módulo de memória com dimensão maior que a dimensão dos dispositivos que o constituem, basta incluir mais x linhas de endereços e depois usar um descodificador para gerar os sinais de de cada um dos dispositivos. No caso de se pretender gerar um bloco de memória com o mesmo número de palavras, mas com o dobro do tamanho da palavra do dispositivo, são necessários dois dispositivos, ficando cada um dos dispositivos de memória com metade da palavra. Os dois dispositivos são concatenados como se mostra na Figura m RAM 2 n x 2m D..2m- A..n- n D..m- A..n- RAM 2 n x 2m RAM mxn D..2m- 2m D..m- D..m- A..n- n D..m- A..n- RAM mxn A..n- n nwr n A..n- RAM mxn RAM mxn nwr Figura Módulo RAM com o dobro da largura da palavra José Paraiso (Ver.8) Página 6-3
4 Para gerar esta configuração, cada dispositivo fica com metade da palavra de memória. As saídas de dados de ambos os dispositivos são depois concatenados para produzir a palavra de dados completa do módulo. Também neste caso, a estrutura é facilmente escalável para implementar RAM com palavras maiores. Para gerar módulos de memórias com palavras de dimensão vezes maior que a dimensão das palavras dos dispositivos utilizados, basta concatenar as saídas de dados de dispositivos de memória. As duas configurações podem ser usadas em conjunto para formar um bloco de memória com a dimensão desejada Mapa de Memória A interligação dos blocos de memória ao processador faz-se, geralmente, através de um conjunto único de buses de endereços, de dados e de controlo. O processador tem uma determinada capacidade de geração de endereços, de acordo com número de bits do seu bus de endereço, constituindo assim o seu espaço de endereçamento. Consideremos como exemplo o PDS6, que dispondo de bus de endereço com 6 bits tem um espaço de endereçamento de 2 6, ou seja, consegue gerar 2 6 endereços diferentes. No caso de se pretenderem ligar vários módulos de memória ao processador através do seu bus, é necessário atribuir o espaço de endereços disponíveis aos vários dispositivos de memória, o mesmo é dizer que se tem de mapear as memórias no espaço de endereçamento do processador. A atribuição de endereços aos módulos de memória podem representar-se graficamente através do que comummente se designa por mapa de memória como mostra a Figura 6-3. Mapa de Memória H Figura Mapa de memória com um espaço de endereçamento de 2 6 bytes. No exemplo da Figura 6-3, o espaço de endereçamento vai do endereço até ao. Sobre este espaço de endereçamento, vamos agora mapear os blocos de memória necessários. Após o mapeamento dos vários blocos de memória, seleccionam-se os dispositivos de memória disponíveis no mercado que sejam mais adequados (custo/dimensão/tempo de acesso) para realizar os vários módulos de memória. Será então necessário, para garantir este funcionamento, controlar a entrada dos dispositivos de memória através de um circuito denominado lógica de descodificação. Este circuito activa o se o valor presente no bus de endereços estiver compreendido dentro do espaço do mapa que lhe foi atribuído, caso contrário, fica inactivo. José Paraiso (Ver.8) Página 6-4
5 6..3 Lógica de descodificação de endereços A lógica de descodificação de endereços e o mapeamento estão muito condicionados aos seguintes factores: tecnologia utilizada na implementação da descodificação (MSI, PLD, etc); características do micro-sistema; processo de produção do equipamento final. Um dos elementos que mais determina a escolha do tipo descodificação, é a característica do micro-sistema, e que coloca ao projectista as seguintes questões: É necessária a utilização optimizada do mapa de memória? A aplicação exige contiguidade dos blocos de memória? O equipamento é para ser fabricado em grande escala? Comecemos por um exemplo muito simples. Considere que se pretende construir um mapa de memória com um bloco de memória de 6Kb. O mapeamento pode ser feito em qualquer posição do espaço de endereçamento. No entanto, como veremos mais à frente, determinados mapeamentos são melhores pois simplificam a lógica de descodificação. Neste caso, vamos colocar a memória a partir do endereço como mostra a Figura 6-4. Não utilizado 4H 3FFFH 6K H Figura 6-4 Mapeamento do bloco de memória de 6Kb no espaço de 64Kb A memória ocupa os endereços que vão do até ao 3FFFh. Sempre que o processador gerar um endereço nesta gama, a memória terá de estar activa para um acesso de leitura ou de escrita. Em qualquer um dos outros endereços, a memória terá de estar inactiva. Como se trata de um módulo de memória com 6Kb, são necessários 4 bits (A a ) para endereçar cada um dos registos do módulo. Este facto implica que a lógica de descodificação só tome como entradas, os bits restantes e. Se olharmos com atenção para as configurações binárias dos endereços limites, concluímos facilmente que, neste caso, só deve ser gerado quando os dois bits de endereço de maior peso estiverem ambos a. Desta forma podemos pensar que o espaço de endereçamento está dividido em quatro espaços de 6K e que bastam os dois bits de maior peso do endereço para identificar cada um deles, como se ilustra na Figura 6-5. Isto só acontece porque o mapeamento foi feito no início de uma página de 6 K. Assim sendo,. José Paraiso (Ver.8) Página 6-5
6 Para percebermos a influência que tem a escolha do endereço inicial do bloco de memória sobre a malha de descodificação, consideremos o mapeamento ilustrado na Figura 6-5. Não utilizado 6H 5FFFH 2H H 6K Não utilizado FFFH Figura 6-5 Mapa de memória Neste exemplo, o bloco de memória RAM começa no endereço 2h. Para identificar a gama de endereços que vai do 2h até ao 5FFFh não bastam apenas dois bits do endereço, como no caso anterior. A Neste caso, o valor de é dado por:! &! & #! & &!. Como se pode ver na Figura 6-5, uma vez que os endereços A-3 estão ligados ao bloco de memória, o registo de endereço x do bloco de memória só é acedido quando o CPU endereçar ao endereço 4H. Se considerarmos que o módulo de memória é RAM, e logo todos os valores válidos nela contidos, foram escritos pelo CPU, tal facto não representa nenhum problema, o que já não é verdade se o módulo de memória for ROM, uma vez que os valores nela contidos estão comprometidos com os endereços. Para conseguir a descodificação mais simplificada, devemos mapear os blocos de memória a começarem num endereço múltiplo do seu tamanho. Por exemplo, um bloco de 6Kb deve começar nos endereços, 4H, 8H ou CH. Outro método de gerar a lógica de descodificação, e talvez o modo mais natural de pensar a lógica de descodificação de endereços, consiste na utilização de circuitos descodificadores, como mostra a Figura 6-6. O método consiste em seccionar o mapa de memória em módulos simétricos a partir dos bits de maior peso, com a dimensão do maior bloco de memória. Como exemplo, na Figura 6-6 está representada este método para um sistema de memória principal do PDS6, com 6Kb ROM de boot (programa de arranque) 4Kb de flash e 2Kb de RAM, que utiliza dispositivos ROMs de 8Kx6, flash de 2Kx8 e RAMs de Kx8. José Paraiso (Ver.8) Página 6-6
7 CH Não utilizado 4K #3 (fold back) BFFFH D -5 A - 5 S S 2 3 6K 6K 6K D -5 # A -2 A - 88H 8H 2K #3 87FFH 7FFFH A - 2K (fold back) 5H 4H H 4K 6K # 4FFFH 3FFFH #3 #3 A -9 A -9 Figura 6-6 Mapa de memória e diagrama de blocos Esta descodificação embora simples, apresenta como inconveniente um espaço de memória descontínuo, e desaproveitamento do mapa de memória por geração de sombras (fold back), ou seja, um qualquer registo é endereçável em diferentes localizações. Este comportamento poderá constituir um inconveniente para a aplicação. Se pretendermos utilizar esta técnica, garantindo continuidade e utilização optimizada do mapa de memória sem geração de situações de fold back, poderemos aplicar o método sucessivamente de forma arborescente, até atingirmos páginas com a dimensão do menor dispositivo de memória, ordenando dos de dimensão maior para menor, como mostra a Figura 6-7. D -5 A -5 D -5 # A -2 Não utilizado S S 2 E 3 A 2 6K 6K S S 2 4K 4K A - A - 58H 5H 4H H 2K #3 4K 6K # 57FFH 4FFFH 3FFFH A E 3 #3 #3 A -9 A -9 Figura Mapa de memória e diagrama de blocos José Paraiso (Ver.8) Página 6-7
8 Esta forma de descodificação baseada na concatenação de circuitos descodificadores, apresenta como inconveniente o tempo de descodificação provocado pela propagação através dos sucessivos descodificadores, aumentando os tempos de leitura e escrita, razão pela qual só deverá ser utilizada se não forem utilizados muitos níveis de descodificação e o tempo de acesso não for crítico Linear Select Outro modo descodificação é designado por selecção linear (Linear Select). O modo linear select utiliza um bit de endereço por cada periférico, diminuindo assim a lógica de descodificação, mas leva às seguintes circunstâncias: Ocupa um espaço no mapa de memória que é superior à dimensão do dispositivo (fold-back), o que pode tornar a solução inviável; Permite que o CPU seleccione vários dispositivos de memória em simultâneo. Razão pela qual não deve ser utilizado durante o desenvolvimento da aplicação, pois um erro de endereçamento poderá destruir os dispositivos de memória, se forem lidos em simultâneo. Tomemos como exemplo a descodificação dos seguintes módulos de memória: 8K ROM de boot (programa de arranque) 4K de flash e 2K de RAM utilizando Linear Select, como mostra a Figura 6-8. D -5 D -5 # CH conflito 4K conflito C7FFH BFFFH A -5 A - A - A4H AH 2K #3 A3FFH 9FFFH A - conflito #3 A -9 #3 4H H 8K # 3FFFH A -9 Figura Mapa de memória e diagrama de blocos Quando se utiliza tecnologia PLD (ROM ou PLA) na síntese da lógica de descodificação, a geração dos vários reduz-se a uma união de produtos. Tomemos como exemplo o projecto do mapeamento do sistema de memória principal do PDS6, com os seguintes módulos de memória: RAM de 2Kb e RAM não volátil de 8Kb para dados, Flash de 32Kb e EPROM de 4Kb para código. Para a implementação do sistema de memória dispõe dos seguintes dispositivos de memória: RAMs não volátil de 4Kx8, RAMs de 6Kx8, Flash 6Kx6 e EPROMs de 8Kx8. Dispondo destes dispositivos, podemos concluir que são necessárias 2 EPROMs, Flash, 4 NVRAMs e 2 RAMs. A EPROM contém o programa de arranque (boot), pelo que tem que José Paraiso (Ver.8) Página 6-8
9 ocupar obrigatoriamente os primeiros endereços de memória. O mapeamento deve garantir continuidade dos módulos destinados a código e a dados. O primeiro passo é mapear os blocos de memória no espaço de endereçamento do processador como mostra a Figura K #5 RAM BH AH 9H 4K #4 RAMNV 4K #3 RAMNV AFFFH 9FFFH 8FFFH 32K FLASH H H 4K # EPROM FFFH Figura 6-9 Mapa de memória Podemos agora passar ao passo seguinte que consiste em determinar as expressões lógicas do das memórias. Neste ponto, convém verificar quantos dispositivos de memória são necessários para cada caso, tendo em conta as especificações do problema. Temos assim as expressões do de cada memória: A5 A3 FLASH A2 A4 A5 A3 FLASH #5 A2 A4 Como se pode observar pelas expressões obtidas, teríamos os 4 bits de maior peso A5, A4, A3 e A2 como entradas do circuito gerador dos vários. Isto reflecte a seguinte lógica. O total do mapa que é de 64Kb, foi dividido em 6 blocos de 4Kb, por corresponder à dimensão do dispositivo de menor dimensão, e todos os restantes dispositivos terem dimensão múltipla de 4, dividindo os 64K totais por 4K obtemos 6 módulos, para gerar 6 diferentes configurações são necessários 4 bits (24=6). A utilização desta tecnologia (ROM ou PLD), tem impacto no fabrico dos equipamentos, uma vez que implica o manuseamento dos PLD para gravação, ou quando em grande escala a aquisição já gravada, que condiciona a correcção de possíveis erros de concepção. Actualmente, alguns dispositivos PLD, suportam gravação inboard, o que minimiza em parte este problema. José Paraiso (Ver.8) Página 6-9
10 A implementação deste mesmo mapeamento utilizando circuitos descodificadores MSI, seria bastante complexo. No entanto uma solução, poderia seguir a mesma lógica anteriormente descrita, ou seja, dividir o espaço total com um descodificador de 4x6, e realizar uniões das saídas do descodificador, para gerar cada um dos. As uniões seriam muito simplificadas se as saídas do descodificador fossem OPEN DRAIN, e nesse caso poderíamos realizar com lógica wired OR, como mostra a Figura V Pull-up A 2 S S 2 S 2 3 E S S 2 S 2 3 E n # n n #3 n #4 n #5 Figura 6- Diagrama de blocos descodificação de memória 6.2 Hierarquia de Memória A arquitectura de computador estudada assenta no acesso do processador a memória para aceder às instruções ou a dados do programa. Idealmente, o processador deveria ter disponível toda a memória necessária à velocidade mais rápida possível. No entanto, se tivermos em conta que o custo da memória é directamente proporcional à velocidade de acesso, facilmente concluímos que esta solução não é possível. A solução encontrada para obter um sistema de memória próximo do ideal consiste em ter diversos tipos de memória com velocidades de acesso e custos diferentes. Se as instruções e os dados mais utilizados se encontrarem nas memórias mais rápidas, temos o problema resolvido. Para tal, considera-se uma hierarquia de memória como mostra a Figura 6-. CPU Cache Memória Principal Memória Secundária Figura 6- Hierarquia de memória A cache é o nível de memória mais próximo do CPU. A cache pode ser dividida em mais níveis (nível, L, e nível 2, L2), sendo que um deles é, geralmente, implementado dentro do CPU. Seguem-se a memória principal, na forma DERAM, e a memória secundária que pode ser um disco rígido, um CD-ROM, DVD-ROM, etc. José Paraiso (Ver.8) Página 6-
11 Nesta configuração, o acesso a uma memória é feito em primeiro lugar à memória cache, o tipo de memória com acesso mais rápido. Se o pretendido não se encontrar nesta memória, é feito um acesso à memória principal. Caso também não se encontre aqui, é feito um acesso à memória secundária. Alguns estudos indicam que este tipo de hierarquia consegue tempo médios de acesso próximos dos que seriam obtidos caso se usasse apenas memória cache. Tal significa, que a maior parte dos acessos à cache têm sucesso. Tal parece um contra senso uma vez que a cache tem espaço para armazenar uma pequena parte da totalidade da memória principal. De facto, tal não seria possível se não se verificassem os princípios de localidade na maioria dos programas. Este princípio estabelece que os acessos à memória estão bastante correlacionados. No que se refere ao princípio da localidade, são identificados dois tipos: temporal e espacial. A localidade temporal indica que após o acesso a um determinado endereço de memória, é bastante provável que este mesmo endereço volte a ser acedido num tempo próximo. A localidade espacial indica que após o acesso a um determinado endereço de memória, é bastante provável que se aceda a um endereço próximo deste. Para perceber empiricamente estes princípios basta pensar nos ciclos, em que se identifica facilmente estes dois princípios. Seguindo os factos indicados por estes dois princípios, para que se consigam bons desempenhos no acesso à memória, basta guardar os dados acedidos em memória cache, bem como os dados vizinhos para que os próximos acessos sejam feitos com grande probabilidade de sucesso à memória cache (verificam-se taxas de sucesso superiores a 95%). Se por um lado a cache permite um acesso rápido à informação, os dispositivos de memória secundária permitem o armazenamento de uma grande quantidade de informação. Em particular, permitem a implementação de memória virtual que garante o armazenamento em programas que exigem mais memória que a existente em memória principal. A utilização do conceito de cache e de memória virtual permite que se tenha um sistema com muita memória e com tempos de acesso bastante baixos. José Paraiso (Ver.8) Página 6-
12 6.3 Exercícios [] Considere um sistema baseada no microprocessador PDS6 com uma memória cuja descodificação é ilustrada na Figura 6-2. Pretende-se adicionar ao sistema 2K * 6 de memória RAM de boot, dois portos de saída de 8 bits e um porto de entrada de 6bit. a) Desenhe o mapa de memória que fica presente no sistema. b) Utilizando RAM de 6K*8, desenhe a descodificação dos endereços da memória de acordo com o mapa proposto. c) Desenhe a descodificação dos portos de acordo com o mapa proposto (Nota: optimize a lógica de descodificação). [2] Considere um sistema baseada no microprocessador PDS6 com uma memória cuja descodificação é ilustrada na Figura 6-3. Pretende-se adicionar ao sistema K * 6 de memória RAM, dois portos de entrada de 8 bits com acesso exclusivo ao byte e um porto de saída de 6 bits com acesso só a word. a) Desenhe o mapa de memória que fica presente no sistema. b) Utilizando RAM de 6K*8, desenhe a descodificação dos endereços da memória de acordo com o mapa proposto. c) Desenhe a descodificação dos portos de acordo com o mapa proposto (Nota: optimize a lógica de descodificação). Dispõe de buffers tristate de 8 bits e registadores de 6 bits. A -2 D -5 A - D -5 Figura 6-2 A -2 D -5 A - D -5 Figura 6-3 [3] Considere um sistema baseado no microprocessador PDS6 com as ligações indicadas na Figura 6-4. Pretende-se adicionar ao sistema 32Kbyte de RAM constituída por dois blocos de memória, suportando acesso a 8 e 6 bits. O bloco # ocupa os endereços de x2 a x7fff e o bloco de xa a xbfffh. Para a implementação dispõe de circuitos de memória de 8K*8. [4] Considere um sistema baseado no microprocessador PDS6 ao qual se pretende adicionar 4K*6 RAM com endereço base em x8. Para a implementação dispõe de dispositivos RAM de 8K*8. [5] Considere que pretende construir um sistema de computação utilizando um processador PDS6. O sistema deverá ter a seguinte estrutura de memória: 4K*6 de ROM, K*6 de I/O e o espaço restante preenchido com memória RAM. Todos os dispositivos deverão suportando acesso ao byte e à word. Após reset, deverá apresentar no endereço x a memória ROM, para conter o código de arranque (Boot) e o BIOS (Basic Input Output System). Como o espaço para variáveis de acesso directo são os primeiros 28 endereços de memória, após o arranque do sistema, os endereços iniciais deverão ser preenchidos com memória RAM sendo a ROM deslocada para os últimos endereços mantendo-se assim o BIOS disponível às aplicações. Os periféricos de I/O serão alocados entre a RAM e a ROM. Os dispositivos de memória disponíveis para a implementação do sistema são: ROMs de 4K*8 e SRAMs de 32K*8. D -5 A -2 D -5 A - Q -7 Figura 6-4 José Paraiso (Ver.8) Página 6-2
13 6.3. Soluções [] a) ROM 4K * 6 de x6 a x7fff e x8 a x9fff (4K * 6 fold back) RAM 2K * 6 de x a x5fff Portos de saída xc a xffff (6K * 8 fold back) Porto de entrada xc a x_ffff (8K * 6 fold back) xc x8 x6 I/O I/O ROM 8K ROM 8K xffff xc x9fff x7fff x5fff [] b) RAM 2K * 6=24K * 8 = 32K * 8-8K * 8 RAM 2K * 6=24K * 8 = 6K * 8 + 8K * RAM 24K x A -4 A -3 D -5 [] c) D 8-5 Q -7 Q -7 D -5 [2] a) ROM 4K * 6 de x a xfff e x8 a x9fff (4K * 6 fold back) Opção a) RAM K * 6 de x2 a x5fff Opção b) RAM K * 6 de x3 a x7fff Portos de saída xc (6K * 8 fold back) Porto de entrada xc (6K * 8 fold back) xc I/O xffff xffff xc xc I/O xc x9fff x9fff ROM 8K ROM 8K x8 x8 x7fff x7fff x6fff RAM 2K RAM 2K x3 x2 xfff ROM 8K x x ROM 8K xfff Opção a) Opção b) José Paraiso (Ver.8) Página 6-3
14 [2] b) Opção a) RAM=6K+4K=2K Opção b) RAM=6K+4K=2K RAM=32K-(8K+4K)=2K A 2 A A 4 A A 2 A A -4 A -3 A 2 D -5 Dec Logic [2] c) D -5 D -5 Q -5 A D 8-5 [3] Bloco # Bloco 2K*6=24K*8=8K+6K 4K*6=8K*8 A -2 A -3 A -2 8k*8 8k*8 6K 4K*6+4K*6 A - 8k*8 8k*8 A 2 6K 8K*6 I/O Fold back xc2 xc I/O RAM 8K*8 xa Bloco ROM 8K*8 x8 Fold back RAM x4 24K*8 Bloco # x2 ROM 8K*8 x xffff xc xbfff x9fff x7fff 6K 8K xfff D 8-5 José Paraiso (Ver.8) Página 6-4
15 [4] 4K*6=8K+(8K-2K) => 28K*8=6K+(6K-4K) A -3 6K*6 A -2 xefff A 2 2K 6K x8 RAM 28K 8K*6 A -3 A -2 8K x [5] D 8-5 RAM= 64K (8K+2K) EH DCH 64K*8 8K # 2K I/O DFFFH DBFFH D -5 A -5 A - # # A - 54K RESOUT A 2 A S R Q Reset Override I/O A -4 A -4 H 8K # 3FFFH.section bios.org xe ld r7,[r7,#] ; long jump to the main.word main main: José Paraiso (Ver.8) Página 6-5
António Lopes Paulo Matos ÍNDICE 1 BIOS, Considerações Gerais... 2 2 SETUP DA BIOS :... 5 2.1 MAIN MENU...7 2.2 ADVANCED...7 2.3 POWER MENU...7 2.4 BOOT MENU...8 2.5 EXIT MENU...9 1 1 BIOS, Considerações