7 / 20 · Concepto
Indicadores de validez, etiquetas y vaciado
Distingue el cero numérico, las burbujas y los tokens de otro trabajo.
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Un token transporta más que un número
Nuestro token de referencia contiene value, valid, job y k. Un token no válido es una burbuja. Un token válido con valor cero es un operando matricial real. Job identifica la transacción; k identifica el término de reducción. El cableado fija la fila de A y la columna de B para cada PE, mientras que el módulo envolvente recuerda las coordenadas del bloque.
Cuando ambas entradas son válidas, verifica que las etiquetas job y k coinciden antes de multiplicar. A(0,1)=2 emparejado con B(0,0)=5 produce diez, pero no es un término legítimo. El par correspondiente a k=1 es dos y siete, que produce catorce. Trata la discrepancia de etiquetas como un error visible de verificación, en lugar de descartarla silenciosamente como una burbuja ordinaria.
Cuenta términos, no relojes
El borrado inicia acc=0 y count=0. Para cada par coincidente, exige k=count y después incrementa count. Consumir k=K−1 completa el resultado local inmediatamente después de ese flanco. Las burbujas y las pausas no incrementan count. Este controlador sencillo exige valores k ordenados. Admitir un orden arbitrario necesita un mapa de bits de términos recibidos y detección de duplicados.
Para K=2, consumir uno y cinco da acc=5, count=1. Una burbuja deja ambos valores sin cambios. Consumir dos y siete con k=1 da acc=19, count=2 y done. Un k=1 repetido es un error incluso si un consumidor posterior ya ha aceptado el resultado.
El drenaje y el borrado tienen propósitos distintos
La matriz no está vacía cuando entra la última entrada de borde. Quedan tokens en los registros internos de reenvío. Sigue avanzando con entradas de borde no válidas hasta que el último PE consuma su término final. Durante este drenaje, conserva los acumuladores terminados hasta recoger sus resultados. En cambio, iniciar un trabajo nuevo requiere borrar conjuntamente el acumulador, el contador y los estados de validez y etiquetas.
El módulo envolvente de este curso ejecuta un trabajo a la vez. Termina, recoge resultados, borra y después vuelve a empezar. Solapar trabajos requiere estado o acumuladores adicionales y un protocolo de salida; las etiquetas por sí solas no proporcionan esa capacidad. Las pruebas deben incluir etiquetas discordantes, términos ausentes y repetidos, estado válido residual tras el borrado y operandos cero válidos que aun así incrementen el recuento de términos.
Inténtalo tú
Un PE con K=3 consume el par k=0 (2,4), una burbuja, el par k=1 (0,9) y el par k=2 (−1,3). Calcula acc y count. ¿Qué ocurre si la última etiqueta job no coincide?
Leer la explicación
Con etiquetas coincidentes, acc=5 y count=3, así que el resultado está completo. La burbuja no cuenta; el cero válido sí. Un job discordante debe generar un error de verificación y no puede informarse como una finalización correcta.