An apparatus and method are described for a neuromorphic processor design in which neuron timing information is duplicated on a neuromorphic core. For example, one embodiment of an apparatus comprises: a first neurosynaptic core comprising a plurality of neurons and a synapse array comprising a plurality of synapses to communicatively couple the plurality of neurons, each synapse connecting two neurons having a weight associated therewith, wherein a first neuron is to generate an output spike based on the weights of synapses over which inputs are received from the other neurons; a second neurosynaptic core also comprising a plurality of neurons and having at least one counter to maintain a count value indicative of spike timing for a second neuron, wherein a spike output of the second neuron in the second neurosynaptic core is communicatively coupled over a first synapse to the first neuron in the first neurosynaptic core; and a duplicate counter maintained within the first neurosynaptic core and synchronized with the counter from the second neurosynaptic core, the first neuron to use a first value from the duplicate counter to adjust the weight of the first synapse coupling the second neuron to the first neuron.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. An apparatus comprising: a first neurosynaptic core comprising a plurality of neurons and a synapse array comprising a plurality of synapses to communicatively couple the plurality of neurons, each synapse connecting two neurons having a weight associated therewith, wherein a first neuron is to spike its output based on the weights of synapses over which inputs are received from the other neurons; a second neurosynaptic core also comprising a plurality of neurons and having at least one counter to maintain a count value indicative of spike timing for a second neuron, wherein a spike output of the second neuron in the second neurosynaptic core is communicatively coupled over a first synapse to the first neuron in the first neurosynaptic core; and a duplicate counter maintained within the first neurosynaptic core and synchronized with the counter from the second neurosynaptic core, the first neuron to use a first value from the duplicate counter to adjust the weight of the first synapse coupling the second neuron to the first neuron. 2. The apparatus as in claim 1 wherein to adjust the weight of the first synapse, the first neuron is to compare the first value from the duplicate counter with a second value in a second counter of the first neuron, the second value indicative of spike timing of the first neuron. 3. The apparatus as in claim 2 wherein if the comparison of the first and second values indicates that the first neuron spiked its output after the second neuron spiked its output, then the first neuron is to increase the weight of the first synapse based on a difference between the first and second values. 4. The apparatus as in claim 3 wherein if the comparison of the first and second values indicates that the first neuron spiked its output before the second neuron spiked its output, then the first neuron is to decrease the weight of the first synapse based a difference between the first and second values. 5. The apparatus as in claim 4 wherein increasing or decreasing the weight comprises writing a new weight value to a memory location corresponding to the first synapse. 6. The apparatus as in claim 1 wherein the second neurosynaptic core is to transmit a spike packet to the first neurosynaptic core, wherein upon receipt of the spike packet, behavior of the duplicate counter in the first neurosynaptic core and the counter in the second neurosynaptic core is enforced to be identical. 7. The apparatus as in claim 6 further comprising: a decoder to decode the spike packet to generate results stored within a spike input buffer. 8. The apparatus as in claim 7 wherein outputs from the spike input buffer are communicatively coupled to select one or more rows within the synapse array. 9. The apparatus as in claim 1 wherein each neuron comprises a first circuit to determine whether to spike its output based on weights read from its synapses, the first circuit including an adder to add weights and a comparator to compare the combined weights with a threshold value. 10. The apparatus as in claim 9 further comprising: a leak circuit to subtract a specified amount from current combined weights on each timestep. 11. The apparatus as in claim 10 further comprising: a second circuit to perform learning operations to adjust the weight of the first synapses and one or more other synapses. 12. A system comprising: a memory to store program code and data; a central processing unit (CPU) to execute the program code and process the data; a spiking neural network comprising a plurality of neurosynaptic cores to perform on-chip learning operations responsive to control signals provided from the CPU, the spiking neural network comprising: a first neurosynaptic core comprising a plurality of neurons and a synapse array comprising a plurality of synapses to communicatively couple the plurality of neurons, each synapse connecting two neurons having a weight associated therewith, wherein a first neuron is to spike its output based on the weights of synapses over which inputs are received from the other neurons; a second neurosynaptic core also comprising a plurality of neurons and having at least one counter to maintain a count value indicative of spike timing for a second neuron, wherein a spike output of the second neuron in the second neurosynaptic core is communicatively coupled over a first synapse to the first neuron in the first neurosynaptic core; and a duplicate counter maintained within the first neurosynaptic core and synchronized with the counter from the second neurosynaptic core, the first neuron to use a first value from the duplicate counter to adjust the weight of the first synapse coupling the second neuron to the first neuron. 13. The system as in claim 12 wherein to adjust the weight of the first synapse, the first neuron is to compare the first value from the duplicate counter with a second value in a second counter of the first neuron, the second value indicative of spike timing of the first neuron. 14. The system as in claim 13 wherein if the comparison of the first and second values indicates that the first neuron spiked its output after the second neuron spiked its output, then the first neuron is to increase the weight of the first synapse based on a difference between the first and second values. 15. The system as in claim 14 wherein if the comparison of the first and second values indicates that the first neuron spiked its output before the second neuron spiked its output, then the first neuron is to decrease the weight of the first synapse based a difference between the first and second values. 16. The system as in claim 15 wherein increasing or decreasing the weight comprises writing a new weight value to a memory location corresponding to the first synapse. 17. The system as in claim 12 wherein the second neurosynaptic core is to transmit a spike packet to the first neurosynaptic core wherein upon receipt of the spike packet, behavior of the duplicate counter in the first neurosynaptic core and the counter in the second neurosynaptic core is enforced to be identical. 18. The system as in claim 17 further comprising: a decoder to decode the spike packet to generate results stored within a spike input buffer. 19. The system as in claim 18 wherein outputs from the spike input buffer are communicatively coupled to select one or more rows within the synapse array. 20. The system as in claim 12 wherein each neuron comprises a first circuit to determine whether to spike its output based on weights read from its synapses, the first circuit including an adder to add weights and a comparator to compare the combined weights with a threshold value. 21. The system as in claim 20 further comprising: a leak circuit to subtract a specified amount from current combined weights on each timestep. 22. The system as in claim 21 further comprising: a second circuit to perform learning operations to adjust the weight of the first synapses and one or more other synapses. 23. An apparatus comprising: first spiking means to spike an output of a first neuron of a first neurosynaptic core based on combined weights of synapses over which inputs are received from a plurality of other neurons; second spiking means to spike an output of a second neuron in a second neurosynaptic core communicatively coupled to the first neuron over a first synapse; counter duplication means to duplicate a counter maintained within the second neurosynaptic core on the first neurosynaptic core, the duplicated counter synchronized with the counter from the second neurosynaptic core, the first neuron to use a first value from the duplicated counter to adjust the weight of the first synapse coupling the second neuron to the first neuron. 24. The apparatus as in claim 23 wherein to adjust the weight of the first synapse, the first neuron is to compare the first value from the duplicate counter with a second value in a second counter of the first neuron, the second value indicative of spike timing of the first neuron. 25. The apparatus as in claim 24 wherein if the comparison of the first and second values indicates that the first neuron spiked its output after the second neuron spiked its output, then the first neuron is to increase the weight of the first synapse based a difference between the first and second values.