Altifigence Academy

5 / 20 · Conceito

O contrato em uma borda de subida

Defina a numeração das bordas, o encaminhamento registrado, a acumulação e a prioridade da inicialização.

A convenção de tempo usada em todo este curso

Reset e clear terminam antes de E0, a primeira borda de subida que consome dados. As entradas estão estáveis imediatamente antes de E_t. Nessa borda, um PE acumula um produto a partir de suas entradas anteriores à borda e armazena essas mesmas entradas em seus registradores de encaminhamento para a direita e para baixo. Os novos valores do acumulador e do encaminhamento são observáveis imediatamente após E_t. Um vizinho consome os valores registrados em E_(t+1).

Esta configuração básica não tem registrador de entrada separado, multiplicador em pipeline ou estágio de serialização da saída. Acrescentar um deles exige revisar o cronograma e a latência do resultado. “Um resultado na borda zero” significa o acumulador atualizado após E0, não antes dela. As bordas de inicialização são excluídas da contagem de bordas de cálculo. Clear tem prioridade sobre MAC, portanto ativar clear com o primeiro par de dados descarta esse par; limpe primeiro e forneça dados na borda seguinte.

Duas responsabilidades em um PE

Com A=1 e B=5 em E0, PE(0,0) atualiza seu acumulador para cinco e encaminha os operandos para os registradores. Em E1, os operandos de fronteira 2 e 7 somam quatorze, produzindo dezenove. Na mesma borda, PEs vizinhos podem consumir os primeiros operandos registrados. Permitir que um token atravesse dois PEs em uma única borda invalidaria nossas equações posteriores de defasagem.

As atribuições não bloqueantes expressam esse comportamento de leitura antes da borda e escrita após a borda. Um testbench também deve amostrar consistentemente após a atualização do estado, usando um bloco de clock apropriado ou uma região de amostragem do simulador. Não dependa da ordem acidental dos processos na região ativa.

Prioridade e pausa global

A prioridade é reset, depois clear e depois advance. Reset e clear esvaziam acumuladores e o estado de validade. Quando advance=0, cada PE mantém seu acumulador, valores de encaminhamento, indicadores de validade e etiquetas. O escalonador da fronteira também é mantido. Uma borda com advance executa um passo lógico. Um zero válido é um operando real; um token inválido é ignorado independentemente dos bits de dados.

Se um acumulador vale cinco e a matriz pausa por duas bordas físicas, ele permanece em cinco. A próxima borda com advance executa o próximo passo lógico. Informe as bordas físicas de clock separadamente dos passos lógicos de avanço. A inicialização continua tendo efeito durante uma pausa, impedindo que tokens antigos vazem para o próximo trabalho.

Experimente

Clear termina em E−1. Consuma (1,5) em E0, pause em E1 e consuma (2,7) em E2. Indique o acumulador após cada borda e os números dos passos lógicos.

Ler a explicação

Após E0, acc=5 e o passo lógico zero foi concluído. E1 mantém acc=5. Após E2, acc=19 e o passo lógico um foi concluído. Houve três bordas físicas e duas bordas com advance.

Sua escolha vale neste navegador. Altere-a a qualquer momento no rodapé.