UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Endereçamento Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 1 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Espaço de Endereçamento • Todos processadores têm um espaço de endereçamento de memória, cuja dimensão depende do número de bits do bus de endereços; • Por exemplo: 32 bits ≈4 Gbytes • Neste espaço têm de co-habitar todos os dispositivos com que o processador pode “dialogar”: – RAM – ROM (incluindo EPROM, EEPROM, flash, etc) – Periféricos (memory-mapped I/O) Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 2 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Espaço de Endereçamento • Alguns processadores têm um espaço de endereçamento separado para os periféricos (ex: 80x86, com IORD e IOWR separados e instruções de acesso próprias, IN e OUT), mas tal já é pouco usado. Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 3 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Espaço de Endereçamento Processador Bus de endereços Unidade de controlo Bus de controlo – Não pode haver duas células diferentes no mesmo endereço; – A memória não tem que ser contígua. – Cada periférico pode ter várias células Nem todos os endereços têm de ter célula válida (leitura sem célula válida dá valor aleatório). Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 Unidadede dados Espaço de endereçamento (com 16 bits) • Conjunto de células individualmente endereçáveis pelo processador: Bus de dados Memória 2 FFFFH Periférico 3 Periférico 2 Periférico 1 Memória 1 0000H 4 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Espaço de Endereçamento • O processador é o “coordenador”. Em cada acesso à memória, é ele que diz qual o endereço acedido; • Só em casos especiais um dispositivo pode “tomar conta” do bus de endereços (DMA – Direct Memory Access); • Cada dispositivo com N endereços individuais liga aos log2N bits de menor peso do bus de endereços (exemplo: RAM de 8 K células liga aos 13 bits de menor peso – 8K = 213); • Cada dispositivo tem de ter um sinal que indique que o processador quer falar com ele (chip select); • Tem de haver um circuito de descodificação dos endereços (que gere os chips selects). Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 5 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Diagrama de Blocos Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 6 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Diagrama de Blocos • O bus de endereços e os sinais de RD e WR são globais (ligam a todos os dispositivos); • Os chip selects é que indicam qual o dispositivo acedido. Só pode haver um chip select activo de cada vez (o descodificador de endereços garante isto), senão pode haver conflitos. Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 7 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Relógio Bus de endereços endereço RD WR Chip select Bus de dados Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 dados 8 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Diagrama de Blocos • Os chip selects são normalmente activos a zero; • Os flancos ascendentes dos sinais de RD e WR devem ocorrer “dentro” do período activo do chip select. Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 9 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Descodificação de Endereços • Cada dispositivo liga aos bits de menor peso do bus de endereços (tantos quantos os necessários para endereçar as sua células individuais). • Exemplos: – RAM de 4 K células 12 bits de menor peso do bus de endereços; – Periférico com 8 portos 3 bits de menor peso do bus de endereços Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 10 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Descodificação de Endereços • O descodificador de endereços liga aos bits de maior peso do bus de endereços e gera o chip select de um dispositivo apenas para uma das combinações desses bits de maior peso; • Sem os chip selects, todos os acessos a endereços com o mesmo valor dos N bits de menor peso dariam o mesmo resultado (o dispositivo apareceria repetido no mapa de endereços em cada 2N endereços). Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 11 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Geração de chip select FFFFFF ROM A12..A19 A23 A22 A21 A20 Decoder 1 para 8 800000 Periféricos500FFF 500000 RAM 1 RAM 0 1FFFFF 100000 0FFFFF 000000 Cada dispositivo deve ter um chip select próprio na gama de endereços adequada. Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 12 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Geração de chip select • A geração do chip select dos “GRANDES” dispositivos é geralmente simples e feita à medida; • A geração do chip select dos dispositivos “médios” é geralmente feita com descodificadores que dividem o mapa de endereços em bocados iguais; • A geração do chip select dos “pequenos” dispositivos é geralmente feita por discriminação de um bocado médio (com gates ou com outros descodificadores); • Regra geral, não deve haver sobreposições. Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 13 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Descodificação com PROM • A PROM permite gerar tantos chip selects quantos os bits da sua largura; • Em cada palavra, só pode haver um bit a 0; • Os bits de endereço da PROM ligam aos bits de maior peso do bus de endereços; • São precisos tantos bits quantos os requeridos pelo dispositivo de endereçamento mais fino (que ocupará apenas uma palavra da PROM); • Os dispositivos “maiores” (RAM, por exemplo) ocuparão várias palavras da PROM com o bit da saída respectiva a 0; • Zonas do espaço de endereçamento sem dispositivo têm a palavra respectiva com os bits todos a 1. Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 14 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Endereço de byte e palavra • A memória é vista como um vector linear: – de bytes (8 bits), ou – de palavras do processador (N bits) Endereçamento de palavra 04H 03H 02H 01H 00H • Endereçamento de byte: – Permite acesso directo a um byte Endereçamento – Complica interface de memória (acesso de byte (µP de 32 bits) aos bytes que não sejam o de menor peso 10H de cada palavra) 0CH – Espaço de endereçamento é menor 08H – PC e SP têm de variar de 2 em 2 04H (processador de 16 bits) ou de 4 em 4 00H (processador de 32 bits) Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 15 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática “Big-endian” vs “little-endian” Big-endian 10H 0CH 08H 04H 00H Exemplo Little-endian 8 9 A B 4 5 6 7 0 1 2 3 B A 9 8 7 6 5 4 3 2 1 0 03 0F 0A 07 H 03 0F 0A 07 H Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 10H 0CH 08H 04H 00H 16 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática “Big-endian” vs “little-endian” • No big-endian, o byte de maior peso está no byte com menor endereço (isto é, aparece primeiro quando se vai incrementando os endereços); • No little-endian, é o byte de menor peso que aparece primeiro. • Esta distinção só é importante: – Ao aceder aos bytes individuais de uma palavra; – Ao trocar dados entre computadores. Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 17 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Bits de menor peso • As memórias são geralmente feitas com chips (circuitos integrados) com largura de 8 bits, por isso são precisos: – 2 em paralelo para fazer 16 bits; – 4 em paralelo para fazer 32 bits. • Os vários chips em paralelo podem ser acedidos simultaneamente em cada acesso, e é o processador que depois individualiza os bytes, se necessário; • No endereçamento de byte, os bits de menor peso do bus de endereço não ligam à memória (2 bits no caso dos processadores de 32 bits). Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 18 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Bits de menor peso Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 19 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Conclusões • Os processadores podem aceder a 2N células de memória e/ou periféricos (espaço de endereçamento); • A célula pretendida é especificadas através do seu bus de endereços de N bits; • Cada dispositivo ligado ao processador tem de ser controlado por meio de um chip select que só deve estar activo na gama de endereços em que esse dispositivo está localizado. Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 20 UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Conclusões • Os chip selects são gerados por um descodificador de endereços, feito geralmente com: – decoders e eventualmente a um conjunto de portas lógicas, ou – uma PROM, ou – uma mistura das duas soluções • Os processadores suportam normalmente acessos à memória: – com endereços em byte (todos os bytes individualmente endereçáveis) – de dados de 8, 16, 32, ... bits (até à largura da palavra do processador) – com endereços desalinhados (a começar em qualquer byte) Nuno Pombo / Paulo Fazendeiro – Arquitectura Computadores II – 2014/2015 21