Altifigence Academy

7 / 20 · Concepto

Indicadores de validez, etiquetas y vaciado

Distingue el cero numérico, las burbujas y los tokens de otro trabajo.

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.

Tu elección se aplica a este navegador. Puedes cambiarla en el pie de página.