CM1K Hardware User’s Manual
24
final decision. More sophisticated rules can be deployed including the analysis of the histogram of the categories,
and more. Some applications might even consider the generation of a “response” vector composed of all the
“firing” categories (i.e. 8,8,7,7,7,7,3,5) and to be classified by another set of neurons taught to classify the
“response” vectors. CogniMem can handle up to 127 subsets of neurons trained for different purposes. These
subsets are called Contexts.
3.5.3.4
Recognition clock cycles
(Level 1)
Conformity detection
(Level 2)
Best match
(Level 3)
Detailed matches
Read NSR (1 cycle)
Read Dist (18 cycles)
Read Cat (19 cycles)
Read Nid (1 cycle, optional)
Loop N
Read Dist (18 cycles)
Read Cat (19 cycles)
1 clock cycles
37 clock cycles
N*37 clock cycles
3.5.4
Reading the number of committed neurons
The NCOUNT register returns the number of committed neurons in the chain, EXCEPT when the chain is full
meaning that all the neurons are committed, in which case CM_NCOUNT=0xFFFF.
If N, the number of CM1K chips daisy-chained in the system is known, the readout of CM_NCOUNT=0xFFFF
becomes a simple indication that the number of committed neurons is actually N*1024.
If N is unknown, due to a reconfigurable and/or stackable hardware architecture, the readout of NCOUNT=0xFFFF
can trigger the following sequence of operations in order to obtain the number of committed neurons: Switch the
network to Save and Restore mode, point at the first neuron of the chain and start iterations reading the neurons’
category sequentially until a category 0 or 0xFFFF is reached. The number of iterations is equal to the number of
committed neurons. Calling this function might take a few second if your platform includes thousands of neurons.
Sequence
Write CM_NSR, 16
Write CM_RESETCHAIN, 0
CommittedNeurons =0;
Do
Read CM_CAT, Cat
If (Cat!=0) Committed+;
While (Cat!=0)
Write CM_NSR, 0
Return(CommittedNeurons)