¿Por qué es que la frecuencia de reloj producida es de 6.144 MHz, pero internamente (procesador 8085) usa solo 3.072 MHz? También lo que lleva al valor específico de 6.144 en un reloj.
Encontré una respuesta en yahoo .... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i
pero debo admitir que aún no lo entendí bien. ¿Podría alguno de ustedes lanzar algunas líneas sobre esto, por favor?
8085
microprocessor
clock
loxxy
fuente
fuente
Respuestas:
Una razón para dividir un reloj entre dos es obtener una onda cuadrada de ciclo de trabajo uniforme del 50%. Puede ser que el 8085 use internamente ambos bordes del reloj, y no funcionaría si la mitad del ciclo fuera mucho más corta que la otra.
En los días en que el 8085 era nuevo, esos agradables osciladores enlatados no eran comunes, y la gente a menudo improvisaba circuitos de reloj de cristales discretos, condensadores y puertas lógicas. La división entre dos garantiza que tenga bordes ascendentes y descendentes igualmente espaciados.
En cuanto a 6.144MHz, encontrará que se puede dividir por un número entero para obtener valores comunes de velocidad de transmisión, al menos hasta 38400.
seguimiento ...
Mirando una hoja de datos de Intel para el 8085, hay tres declaraciones interesantes
Entonces, las especulaciones sobre el uso de los bordes impares del reloj para mover las cosas internamente a un lado, se hace evidente que cuando diseñaron el 8085, Intel estaba reemplazando la necesidad de un controlador de reloj especial al integrar esa característica en el chip. Dividir la base de tiempo X1-X2 por la mitad antes de generarla como CLK asegura que el sistema obtenga un buen ciclo de trabajo uniforme, por lo menos.
fuente
En el momento en que se diseñó este chip, las personas usaban la menor cantidad posible de transistores en la CPU, para que fueran lo suficientemente pequeños como para caber en los chips disponibles.
Sospecho que prácticamente todos los "registros" (tanto los registros del conjunto de instrucciones visibles por el programador como también los pestillos internos de microarquitectura) en una CPU de esa época almacenaban datos en un pestillo D con puerta transparente o algo similar. Hoy en día, hay muchos transistores en un chip, por lo que es más sencillo usar chanclas D maestro-esclavo completas, a pesar de que usan el doble de transistores.
Muchas instrucciones toman datos de algún registro A, los combinan con otros datos con la ALU y almacenan el resultado nuevamente en el registro A. Eso es bastante fácil de hacer si el registro A se implementa con un flip-flop D maestro-esclavo completo.
Pero si el registro A es un pestillo D cerrado y transparente, necesita relojes que no se superpongan. Utiliza un pulso en un reloj para almacenar algún resultado intermedio en algún lugar (mientras el registro A mantiene su salida constante), y luego un pulso en otro reloj para cargar el registro A con el nuevo valor (mientras que el registro intermedio mantiene constante su salida).
Esto requiere un reloj de 2 fases. La forma más fácil de hacer un reloj de 2 fases no superpuesto (en aquellos días cuando los transistores eran escasos) era un pequeño circuito externo que toma un reloj de entrada y lo divide por dos.
A medida que pasó el tiempo, la gente descubrió cómo empacar cada vez más transistores en un circuito integrado. Entonces, las personas que diseñaron CPU integraron más y más cosas alrededor de la CPU en un sistema informático completo en el chip de la CPU.
Leyendo entre líneas el artículo de la señal de reloj de Wikipedia , tengo la impresión de que las personas que diseñaron el 8085 y el 6502 y otros chips de esa época tenían un poco más de espacio que la generación anterior de CPU integradas, y decidieron lo mejor El uso de esa sala era poner ese pequeño circuito externo en el chip. Pero mantuvieron todos los registros con el mismo cierre D cerrado que antes.
Por eso la frecuencia del reloj se divide por dos. Puede pensar en el primer pulso de reloj externo que genera un pulso en la señal de reloj interna de fase_uno para actualizar ese registro de resultados intermedio, y el segundo pulso del reloj externo que genera un pulso en la señal de reloj interna de fase_dos para actualizar el registro visible del programador.
fuente
Hay muchas razones para dividir el ciclo de instrucciones en múltiples ciclos de reloj. Un buen ejemplo es acceder al bus de memoria principal.
La mayoría de los procesadores modernos son arquitecturas de Von-Neumann; es decir, su código y sus datos existen en el mismo chip de memoria. Bueno, si quieres leer una instrucción, y esa instrucción va a cargar una variable de la memoria ... eso son dos accesos a la memoria. Pero la mayoría de la memoria es de un solo puerto (es decir, solo puede hacer una lectura o escritura por ciclo). Entonces, ¿cómo lees las instrucciones y lees tu variable?
La solución es usar un ciclo de instrucción de dos etapas. La primera etapa obtendrá las instrucciones de la memoria, y la segunda etapa puede leer (o escribir) la variable de la memoria principal.
Algunas fichas antiguas fueron aún más lejos. En el pasado, si su chip tenía 16 bits de memoria direccionable, pero el bus de direcciones externo es de solo 8 bits, entonces estaría familiarizado con la Habilitación de bloqueo de dirección. Un ciclo de reloj envía los 8 bits superiores de la dirección de 16 bits, y el siguiente ciclo de reloj envía los 8 bits inferiores. Un tercer ciclo podría leer / escribir la variable desde / a la memoria.
Hay otras razones mejores para tener un ciclo de instrucción que tiene varios ciclos de duración. Una de las mejores razones es la canalización. Este es un truco que utilizan los procesadores modernos para explotar más completamente todas las unidades de ejecución disponibles en un chip; por ejemplo, mientras se ejecuta una instrucción, la siguiente se obtiene al mismo tiempo.
fuente
Internamente, el núcleo del 8085A requiere un reloj de dos fases. La lógica interna que deriva las dos fases del reloj también divide el reloj de entrada por dos. Como se indicó anteriormente, la razón para usar un reloj de entrada de 6.144MHz es para fines de velocidad de transmisión, el chip funcionará bien a 6MHz. El chip en realidad tiene una clasificación de 3MHz que requiere un cristal de 6MHz, pero funciona felizmente con 6.144MHz, lo que proporciona una generación de velocidad de transmisión más sencilla (un Uart podría sincronizarse con 6.144MHz desde un oscilador que conduce el 8085 o a 3.072MHz desde la salida CLK del 8085 proporcionando muchas tasas de baudios utilizables). Todavía uso estos chips arcaicos para realizar funciones especiales en algunos de mis robots. Miro los Uarts con su propio oscilador y miro los 8085A con un oscilador de 6.4MHz, que ejecuta el chip a 3.2MHz. Los 3. 2MHz se divide muy bien para proporcionar el reloj de 40KHz para mis transductores ultrasónicos. Tiene más sentido usar dispositivos IC más modernos en mis 'bots, pero tengo un montón de viejos 8085, Z80, 63C09 y 63C09E, 68B09 y 68B09E, etc. con los que realmente disfruto jugar.
fuente
El reloj no es más que un momento en el que desea que ocurra un evento. Ahora, no preferimos la activación de nivel en los circuitos digitales porque cuando se da más tiempo, puede ocurrir interacción entre diferentes circuitos dentro del microprocesador que conducen a cortocircuitos. Así que vamos a disparar por el borde. Ahora, el microprocesador no sabe cuándo se produjo la activación del borde. Solo comprende 1 o 0. Por lo tanto, se requiere un flip flop para producir 1 y 0 cada vez que se detecta un borde de reloj. Por lo tanto, se hace necesario usar un flip flop. Como resultado, la frecuencia del reloj se divide por dos.
fuente