Comunicação CPU I / O

0

Eu sei que esta pergunta já foi discutida, mas eu ainda não entendi nada, então por favor me ajude a esclarecê-la.

O que eu entendo é que há 2 maneiras de fazer I / O aka comunicar da CPU com outros HW. Uma é usar instruções de entrada e saída, e a segunda é a memória mapeada.

Mas o que eu realmente não entendo é que as instruções IN e OUT são usadas, você define a porta de origem. Mas o que é esse porto? Quero dizer, é um conjunto diferente de pinos na CPU ou o quê? E, para que essa porta está conectada?

E para a memória mapeada, sinto falta apenas de um pequeno detalhe. O mapeamento da memória de E / S deve ser primeiro definido pelas instruções IN e OUT ou o dispositivo realmente se conecta à RAM e o lê de alguma forma? Obrigado.

    
por user32569 01.05.2010 / 20:30

1 resposta

3

Em um Z80 , há um pino no chip que é declarado (definido para o estado 1 alto ou lógico) quando a instrução é uma instrução IN ou OUT. O hardware conectado ao chip monitora esse pino, além dos pinos de leitura / gravação, além de alguns dos pinos de endereço, para determinar se a operação se refere a eles. Cada dispositivo é configurado para reconhecer algum número como seu número de porta e responder de acordo. Então, quando você escreve uma instrução assembler como:

OUT(15),A

o chip coloca os pinos de endereço de ordem inferior 8 em 15 e grava o conteúdo do registrador A nos pinos de dados. Se o hardware estiver configurado e conectado corretamente, ele saberá que é destinado a ele. Similarmente com IN(15),A .

Com a E / S mapeada na memória, há um local de memória reservado para o hardware. Quando a CPU escreve no endereço 0xFFF0, digamos (assumindo uma microarquitetura de 8 bits conveniente como a 6502 ou 6800 ou 6809 - ou, na verdade, Z80), então o hardware conectado para responder a esse endereço não é um chip de RAM mas o dispositivo. Normalmente, há pelo menos um endereço próximo usado para leitura; às vezes, o mesmo endereço é usado para leitura e gravação.

Em ambos os casos, a questão é basicamente que o hardware conectado à CPU reconhece certos padrões de atividade nos pinos dos chips (alguns pinos de controle, pinos de dados e pinos de endereço) como referindo-se a eles. Você pode ter problemas se vários dispositivos diferentes acharem que o mesmo endereço ou porta de E / S se refere a eles.

Embora eu tenha usado chips de 8 bits para os exemplos, os mesmos princípios básicos se aplicam a chips de 16 bits, 32 bits ou 64 bits.

    
por 01.05.2010 / 23:57

Tags