A multiprocessing computer system includes a plurality of processing nodes,
each having one or more processors, a memory, and a system interface. The
plurality of processing nodes may be interconnected through a global
interconnect network which supports cluster communications. The system
interface of an initiating node may launch a request to a remote node's
memory or I/O. The computer system implements an error communication
reporting mechanism wherein errors associated with remote transactions may
be reported back to a particular processor which initiated the
transaction. Each processor includes an error status register that is
large enough to hold a transaction error code. The protocol associated
with a local bus of each node (i.e., a bus interconnecting the processors
of a node to the node's system interface) includes acknowledgement
messages for transactions when they have completed. In the event a
transaction which is transmitted by a system interface upon the global
interconnect network on behalf of a particular processor incurs an error,
the system interface sets an error flag in the acknowledgement message and
provides an associated error code. If the acknowledgement message denotes
an error, the error code is written into the processor's error status
register for later retrieval by software. In various embodiments, a system
interface may acknowledge a transaction to a given processor early (even
if that transaction has not completed globally) if a subsequent
transaction from the same processor is pending in the interface.
Um sistema computatorizado do multiprocessing inclui um plurality de nós processando, cada um que tem um ou mais processador, uma memória, e uma relação de sistema. O plurality de nós processando pode ser interconectado através de uma rede global do interconnect que suporte comunicações do conjunto. A relação de sistema de um nó iniciando pode lançar um pedido à memória ou ao I/O de um nó remoto. O sistema computatorizado executa uma comunicação do erro que relata o mecanismo wherein os erros associados com as transações remotas podem ser relatados para trás a um processador particular que inicíam a transação. Cada processador inclui um registo do status de erro que seja grande bastante prender um código de erro da transação. O protocolo associou com uma barra-ônibus local de cada nó (isto é, uma barra-ônibus que interconecta os processadores de um nó à relação de sistema do nó) inclui mensagens do reconhecimento para transações quando terminaram. No evento que uma transação que é transmitido por uma relação de sistema em cima da rede global do interconnect em nome de um processador particular incorre um erro, a relação de sistema ajusta uma bandeira do erro na mensagem do reconhecimento e fornece um código de erro associado. Se a mensagem do reconhecimento denotar um erro, o código de erro está escrito no registo do status de erro do processador para uma recuperação mais atrasada pelo software. Em várias incorporações, uma relação de sistema pode reconhecer uma transação a um processador dado cedo (mesmo se essa transação não terminou global) se uma transação subseqüente do mesmo processador for pendente na relação.