Por que a freqüência de clock produzida é de 6,144 MHz, mas internamente (processador 8085) usa apenas 3,072 MHz? Além disso, o que leva ao valor específico de 6,144 em um relógio.
Encontrei uma resposta no yahoo .... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i
mas devo admitir que ainda não entendi bem. Algum de vocês poderia jogar algumas linhas sobre isso, por favor?
8085
microprocessor
clock
loxxy
fonte
fonte
Respostas:
Uma razão para dividir um relógio por dois é obter uma onda quadrada de ciclo de trabalho de 50%. Pode ser que o 8085 use internamente ambas as bordas do relógio e não funcionaria se metade do ciclo fosse muito mais curta que a outra.
Nos dias em que o 8085 era novo, aqueles bons osciladores enlatados não eram comuns, e as pessoas costumavam montar circuitos de relógio com cristais discretos, capacitores e portas lógicas. Dividir por dois garante que você tenha espaçamentos ascendentes e descendentes igualmente espaçados.
Quanto aos 6.144MHz, você encontrará que ele pode ser dividido por um número inteiro para obter valores de taxa de transmissão comuns, pelo menos até 38400.
acompanhamento ...
Olhando para uma folha de dados da Intel para o 8085, há três declarações interessantes
Portanto, especulações sobre o uso das bordas ímpares do relógio para deslocar coisas internamente de lado, torna-se aparente que, quando projetaram o 8085, a Intel estava substituindo a necessidade de um controlador de relógio especial, integrando esse recurso ao chip. Dividir a base de tempo do X1-X2 pela metade antes de enviá-la como CLK garante que o sistema obtenha um bom ciclo de trabalho uniforme, se nada mais.
fonte
Na época em que esse chip foi projetado, as pessoas usavam o menor número possível de transistores na CPU, para torná-los pequenos o suficiente para caber nos chips disponíveis.
Suspeito que praticamente todos os "registradores" (tanto os registros do conjunto de instruções visíveis pelo programador quanto também as travas internas da microarquitetura) em uma CPU daquela época armazenassem dados em uma trava D transparente ou algo semelhante. Atualmente, há muitos transistores em um chip, por isso é mais simples usar chinelos D-master escravo completos, mesmo que eles usem o dobro de transistores.
Muitas instruções pegam dados de algum registro A, combinam-no com outros dados com a ALU e armazenam o resultado novamente no registro A. Isso é muito fácil de fazer se o registro A for implementado com um flip-flop D mestre-escravo completo.
Porém, se o registro A for uma trava D transparente, você precisará de relógios não sobrepostos. Você usa um pulso em um relógio para armazenar algum resultado intermediário em algum lugar (enquanto o registro A mantém sua saída constante) e, em seguida, um pulso em outro relógio para carregar o registro A com o novo valor (enquanto o registro intermediário mantém sua saída constante).
Isso requer um relógio de duas fases. A maneira mais fácil de criar um relógio de duas fases não sobreposto (naqueles dias em que os transistores eram escassos) era um pequeno circuito externo que pega um relógio de entrada e o divide por dois.
Com o passar do tempo, as pessoas descobriram como colocar cada vez mais transistores em um CI. Assim, as pessoas que projetam CPUs integram cada vez mais as coisas em torno da CPU em um sistema de computador completo no chip da CPU.
Lendo nas entrelinhas do artigo de sinal de relógio da Wikipedia , tenho a impressão de que as pessoas que projetaram o 8085 e o 6502 e outros chips daquela época tinham pouco mais de espaço do que a geração anterior de CPUs integradas e decidiram o melhor o uso daquela sala era colocar esse pequeno circuito externo no chip. Mas eles mantiveram todos os registros com a mesma trava D fechada de antes.
É por isso que a frequência do relógio é dividida por dois. Você pode pensar no primeiro pulso de relógio externo que gera um pulso no sinal de relógio interno phase_one para atualizar esse registro de resultado intermediário e no segundo pulso do relógio externo que gera um pulso no sinal de relógio interno phase_two para atualizar o registro visível do programador.
fonte
Existem muitas razões para dividir o ciclo de instruções em vários ciclos de clock. Um bom exemplo é acessar o barramento de memória principal.
A maioria dos processadores modernos são arquiteturas de Von-Neumann; isto é, seu código e dados existem no mesmo chip de memória. Bem, se você quiser ler uma instrução, e essa instrução irá carregar uma variável da memória ... são dois acessos à memória. Mas a maior parte da memória é apenas de porta única (ou seja, só pode fazer uma leitura ou gravação por ciclo). Então, como você lê as instruções e lê sua variável?
A solução é usar um ciclo de instruções em dois estágios. O primeiro estágio buscará a instrução da memória e o segundo estágio poderá ler (ou escrever!) A variável da memória principal.
Alguns chips mais antigos foram ainda mais longe. Antigamente, se seu chip tivesse 16 bits de memória endereçável, mas o barramento de endereço externo tivesse apenas 8 bits, você estaria familiarizado com o Address Latch Enable. Um ciclo de relógio envia os 8 bits superiores do endereço de 16 bits e o próximo ciclo de relógio envia os 8 bits inferiores. Um terceiro ciclo pode então ler / gravar a variável de / para a memória.
Existem outros motivos melhores para ter um ciclo de instruções com vários ciclos de duração. Uma das melhores razões é o pipelining. Esse é um truque usado pelos processadores modernos para explorar mais completamente todas as unidades de execução disponíveis em um chip; por exemplo, enquanto uma instrução está sendo executada, a próxima está sendo buscada ao mesmo tempo.
fonte
Internamente, o núcleo do 8085A requer um relógio de duas fases. A lógica interna que deriva as duas fases do relógio também divide o relógio de entrada por dois. Como afirmado anteriormente, a razão para usar um relógio de entrada de 6,144 MHz é para fins de taxa de transmissão, o chip funcionará bem a 6 MHz. Na verdade, o chip é avaliado em 3MHz, exigindo um cristal de 6MHz, mas roda felizmente com uma 6.144MHz, proporcionando uma geração de taxa de transmissão mais fácil (um Uart pode ter uma freqüência de 6.144MHz de um oscilador que dirige o 8085 ou a 3.072MHz da saída CLK do 8085). fornecendo muitas taxas de transmissão utilizáveis). Eu ainda uso esses chips arcaicos para executar funções especiais em alguns dos meus robôs. Eu cronometro os Uarts com seu próprio oscilador e os 8085A com um oscilador de 6,4 MHz, que executa o chip a 3,2 MHz. O 3. 2MHz se divide muito bem para fornecer o relógio de 40KHz para meus transdutores ultrassônicos. Faz mais sentido usar dispositivos de IC mais modernos em meus 'bots', mas eu tenho uma tonelada de 8085, Z80, 63C09 e 63C09E, 68B09 e 68B09E, etc. com os quais realmente gosto de brincar.
fonte
O relógio não passa de um momento em que você deseja que um evento ocorra. Agora, não preferimos o disparo de nível em circuitos digitais, porque quando é concedido mais tempo, pode ocorrer interação entre diferentes circuitos no microprocessador, levando a curtos-circuitos. Então, nós vamos para o EDGE TRIGGERING. Agora, o microprocessador não sabe quando ocorreu o disparo da borda. Ele entende apenas 1 ou 0. Portanto, um flip-flop é necessário para produzir 1 e 0 sempre que uma borda do relógio for detectada. Assim, torna-se necessário usar um flip-flop. Como resultado, a frequência do relógio é dividida por dois.
fonte