¿Cambiarían los datos en los registros a la velocidad de la luz y tal vez se volverían inestables/indefinidos, o el procesador dejaría de cambiar de estado por completo?
Para dar tiempo a todas las puertas para cambiar de estado de toda la cadena, usamos un reloj. El reloj es una entrada a la CPU que cambia entre 0 y 1 (la señal baja a la señal alta a la señal baja, etc.), que impulsa a la CPU a realizar operaciones.
Si la velocidad del reloj aumenta a 100 GHz, un ciclo será de 0,01 nanosegundos... ¿Qué sucede cuando se viola esta limitación de tamaño? Lo que sucede es que ciertas partes de su circuito están en el ciclo 'actual' y otras partes están en el ciclo 'anterior'. Se vuelve realmente difícil manejar tales sistemas distribuidos.
Pero luego esta publicación dice :
simplemente se detendrá
Así que estoy confundido con el resultado.
Si me imagino un simple timer register
conectado a un sumador, y cada ciclo de reloj obtiene sus datos ++1
, ¿no significa un alto constante que los datos del registro recorren el sumador y regresan a sí mismos a la velocidad de la luz, sumándose a sí mismos indefinidamente? en lugar de parar?
Sus dudas surgen de la falta de comprensión de los conceptos básicos sobre las redes lógicas secuenciales síncronas , de las cuales las CPU modernas y los bloques básicos relacionados, como los contadores, son solo ejemplos particulares.
Como alguien más ya señaló, dichas redes pueden cambiar de estado solo como consecuencia de un borde de reloj, es decir, una transición de señal de reloj.
Le sugiero que investigue el comportamiento básico de los flip-flops activados por borde (es decir, memoria estática de 1 bit, simplificando un poco :-) y otros conceptos básicos sobre los requisitos de sincronización de la red síncrona, como el tiempo de configuración, el tiempo de espera y el retraso de propagación .
EDITAR (Para abordar algunos comentarios de OP @Dan)
Sigues mencionando la "velocidad de la luz", pero realmente deberías sacar ese término de tu sistema.
La velocidad de la luz es una "velocidad" en sentido físico, es decir, una relación entre el espacio y el tiempo. La velocidad describe qué tan rápido se mueven los cuerpos físicos. En lógica digital hablamos de velocidad de procesamiento , es decir, cuántos bits por segundo se procesan.
Relacionar los dos no es trivial en absoluto (un grupo de cargas en movimiento no es necesariamente lo mismo que un grupo de bits "en movimiento").
La lógica asíncrona (es decir, "sin reloj") es teóricamente más rápida, porque los dispositivos pueden reaccionar sin esperar el borde del reloj. Esto no significa que el único dispositivo sea "infinitamente" rápido. Con la misma tecnología y la misma complejidad de circuito, deshacerse del reloj simplemente le ahorra el tiempo que algunos de los dispositivos con reloj pierden esperando el borde del reloj cuando ya tienen sus entradas "listas". Esto no aumenta la velocidad con la que un solo transistor cambia de estado. Por lo tanto, aún tendrá retrasos en la propagación. ( https://en.wikipedia.org/wiki/Asynchronous_circuit#Asynchronous_circuits ).
OTOH, el diseño de un sistema asincrónico complejo es una pesadilla de tiempo, ya que cualquier subsistema puede reaccionar en cualquier momento, y aún debe cumplir con los requisitos de configuración y tiempo de espera.otros bloques cambiarán sus salidas ya que no tienes señal de sincronización. Además, seguirás necesitando sincronización , ya que algunas tareas tendrán que esperar a que se completen otras. Sin señales de reloj, esto será mucho más complejo.
Puede encontrar esto interesante:
https://en.wikipedia.org/wiki/Asynchronous_circuit#Asynchronous_CPU .
El reloj debe hacer la transición, de bajo a alto, y repetir, en un patrón regular.
Son estas transiciones las que impulsan los cambios en la lógica, no el alto nivel. Sin transiciones = sin cambio de lógica. Entonces, sin transiciones, dejará de funcionar.
Esto incluye voltaje "extra alto" (es probable que se dañe).
Si solo están involucrados elementos estáticos , entonces la operación parecerá "congelarse" por completo durante toda la duración de la eliminación del reloj. Reinicie el reloj y continuará exactamente donde lo dejó (como si no hubiera pasado el tiempo).
Si hay elementos dinámicos involucrados (probablemente hoy en día, como temporizadores de vigilancia, interrupción en el cambio, actualización de la memoria DRAM, etc.), es probable que algo se pierda o se corrompa durante una pausa prolongada del reloj. En el caso de pérdida de DRAM, el código que se está ejecutando actualmente será basura, por lo que el procesador fallará en poco tiempo al intentar ejecutar código basura.
Son las transiciones del reloj las que le indican al procesador que "haga el siguiente paso". La transición o borde bajo-alto (heredado), y también el borde alto-bajo (moderno) ahora hacen algo.
En los procesadores modernos de hoy, múltiples núcleos con múltiples subprocesos significan que cada ciclo de reloj está haciendo cientos, incluso miles de cosas en paralelo en cada borde de reloj.
Se deben usar los bordes del reloj, porque son secuenciales , y estos bordes deben estar separados por una cierta cantidad de tiempo, para permitir que el "paso" se propague por completo o se complete antes de que comience el siguiente. "Overclocking" es aumentar la velocidad del reloj por encima del valor normal. La frecuencia de reloj típica incluye un margen de seguridad, por lo que generalmente es posible aumentarlo un poco. Aumentarlo hace que el procesador trabaje más, por lo que normalmente necesita un ligero aumento de voltaje para seguir funcionando. Pero aumentar demasiado la frecuencia del reloj eventualmente violará estos tiempos de paso, especialmente en todos los rangos de temperatura posibles.
clock helps with transitions
. ¿Como hace eso? el reloj es un patrón continuo de 1 y 0. ¿Los 1 y 0 se introducen en las puertas como una de sus entradas para cambiar potencialmente su estado en función de sus otras entradas?Por lo general, no me gustan las analogías del agua con la electricidad, pero...
El reloj en lógica síncrona es como una bomba de agua de pozo. La acción de bombeo no es continua, ocurre en ráfagas. Cuando levanta el brazo de la bomba, la bomba inhala un poco de agua desde abajo, y cuando fuerza el brazo de la bomba hacia abajo, expulsa el agua río arriba. Mueva el brazo de la bomba hacia arriba y hacia abajo repetidamente, y puede mover una gran cantidad de agua río arriba. Detente con el brazo hacia arriba, y no pasa nada más. Detente con el brazo hacia abajo, y no pasa nada más.
También existe una velocidad de bombeo óptima (esto también es cierto para los circuitos lógicos síncronos). Pulsar la bomba demasiado lentamente, pierde impulso, por lo que la presión y la velocidad del agua no alcanzan su máximo potencial. Pero pulse la bomba demasiado rápido y el agua simplemente no puede moverse hacia el impulsor lo suficientemente rápido. La metáfora se rompe un poco, porque los circuitos no tienen viscosidad...
En los circuitos sincrónicos , tenemos los llamados circuitos digitales, que en realidad son circuitos analógicos que pretenden seguir las reglas de diseño digital limpias y agradables. Los circuitos digitales tienen una característica llamada " inmunidad al ruido".": un nivel lógico alto o bajo es un rango de voltajes. En lo que respecta a un diseñador digital, no hay una diferencia significativa entre un alto lógico de 2,6 V y 2,8 V, siempre que esté dentro del rango de voltaje VIH la entrada está garantizado que lo tratará como un nivel lógico alto. Pero el circuito subyacente está hecho de transistores, y cada vez que cambia entre niveles altos y bajos, tiene que cambiar todos los voltajes intermedios. Los circuitos reales no cambian instantáneamente. Entonces, se requiere un período finito de tiempo para que la señal se establezca en el valor correcto.Ese período de tiempo se denomina retardo de propagación .. Sume todos los tiempos de retardo de propagación de todos los diversos elementos del circuito lógico combinacional por los que tiene que pasar la señal, y eso determina el período de reloj más corto (más rápido) que el circuito puede tolerar. Operar a una velocidad de reloj más rápida no permitirá suficiente tiempo para que la lógica combinacional interna alcance siempre el valor correcto. Siempre tiene algún valor, simplemente no se garantiza que sea el valor correcto hasta después de que haya pasado todo el tiempo de retardo de propagación.
Hay muchos factores que determinan el tiempo de retardo de propagación requerido. Parte de esto depende de los valores de diseño nominales, como la carga de capacitancia y la resistencia del cable, y cosas por el estilo. Esos factores dependen de las leyes de la física, la forma y las dimensiones de los materiales y otras características materiales y la temperatura; por lo que podemos estimar el retraso de propagación. Pero en los dispositivos fabricados existen pequeñas variaciones de una unidad a otra. En la década de 1970, estas tolerancias de fabricación no eran tan estrictas como lo son hoy en día, pero aún existe cierta cantidad de variación impredecible de un dispositivo a otro. Entonces, esto llevó a una tendencia de aficionados a la informática llamada "overclocking", que es en gran medida lo que parece estar preguntando.
Los entusiastas del overclocking básicamente corrieron un pequeño riesgo al modificar su propia computadora personal para que funcionara a una velocidad de reloj más alta, por ejemplo, con una CPU de 6 MHz a 8 MHz. No está garantizado que funcione. Y tampoco está garantizado que falle de una manera obvia, lo que podría ser peor que si simplemente no funcionara de inmediato. Si estaba ejecutando una gran simulación, y hubo un pequeño error de cálculo no detectado que solo ocurre después de que ha estado haciendo un montón de grandes cálculos y obtuvo un punto caliente, entonces es posible que no sepa que obtuvo un mal resultado. Por otro lado, si solo lo estuvieras usando para jugar, no pasa nada. Sin embargo, incluso un truco como el overclocking todavía tiene que proporcionar una entrada de reloj que cambia constantemente. Simplemente conectar la entrada del reloj siempre baja o siempre alta no es algo mágico,
Aquí hay un poco más de detalles sobre en qué entra realmente la señal del reloj. La idea más simple de un circuito lógico síncrono sería una máquina de estados finitos, hecha de algunos flip-flops "D" y algunas puertas lógicas. Todos los flip-flops D reciben la señal del reloj. Las salidas de los flip-flops impulsan las entradas del laberinto de puertas lógicas, y las salidas del enredado lío de la lógica retroalimentan las entradas de los flip-flops D. Entonces, hay una especie de ciclo de retroalimentación, pero los flip-flops interrumpen ese ciclo de retroalimentación al imponer una disciplina de tiempo. El flip-flop prácticamente ignora lo que sucede en su entrada de datos, hasta que justo en el borde ascendente del reloj, y luego, de repente, las salidas cambian para coincidir con el valor de las entradas. Esto sucede muy rápidamente, idealmente es como tomar una instantánea de la entrada y controlar ese valor continuamente durante el resto del ciclo del reloj. Si el flip-flop siguiera actualizando sus salidas para coincidir con sus entradas continuamente mientras la entrada del reloj estuviera alta, eso no sería un flip-flop; sería un pestillo transparente. Y necesitamos flip-flops, no pestillos transparentes, para construir máquinas de estado.No hay cambio en el flanco descendente del reloj. Eventualmente, la lógica combinacional determina un nuevo valor para las entradas del flip-flop. Pero la única forma en que la máquina "sabe" que el nuevo valor ha llegado, es que ocurra el flanco ascendente del reloj. Eso es lo que impulsa el proceso de actualización del valor del registro, para que el resto de la lógica pueda comenzar a calcular el siguiente paso. Este es el principio básico de funcionamiento de todas las máquinas de estados finitos y todas las demás lógicas síncronas.
El reloj sincroniza el funcionamiento de todos los componentes internos de cualquier CPU. Si se detiene (o se eleva constantemente), la CPU también debería detenerse. Al menos el microcontrolador 8051 actúa así. Definitivamente no "overclockeará" la CPU (es decir, no funcionará tan rápido como sea posible). Todos los efectos secundarios desagradables como la limpieza/cambio de registros, estado indefinido, etc. también pueden ocurrir.
Reloj detenido: si los registros y la lógica son estáticos, la máquina mantiene su estado. Si son dinámicos, el estado eventualmente se corromperá o se perderá.
(La lógica dinámica se usa en algunas arquitecturas para reducir el área. Al igual que la DRAM, debe estar ciclando para actualizar su estado. Era más común en la era NMOS, aunque todavía se usa en CMOS).
Reloj funcionando más allá de los límites de la máquina: funcionamiento inestable, ya que los tiempos de configuración de los flip-flops no se cumplen, por lo que su estado no es predecible.
El tiempo de ciclo básico debe ser no menor que el peor de los casos: reloj flop a salida + retardo de enrutamiento + configuración para la siguiente etapa flop.
También hay alguna restricción en el reloj alto y bajo, ya que los flops están compuestos por pestillos que se activan en niveles de reloj opuestos: necesitan un tiempo de pulso mínimo para propagarse.
Hogar
jsotola
light speed
no es una medida de un intervalo de tiempo, a menos que se especifique una distanciausuario1850479
Dan
usuario1850479
rackandboneman
matthew watson
Juan Doty
Navin