Method and apparatus for implementation of the CMAC mapping algorithm
First Claim
1. A machine implemented method of addressing, in dependence on an input signal comprising at least one variable Si, a distributed storage memory in an adaptive control system wherein a set of control signal values is stored such that each of the stored values is distributed over a unique set A*P of K physical memory locations, more than one stored value may share an individual memory location aj, and the degree of overlap between sets A*P corresponds to the degree of similarity between input signals, the method comprising the steps of:
- for each variable Si ;
(1) loading a first register having at least b+1 bits with the binary equivalent of the input variable Si, where b represents the number of bits in the binary equivalent of the largest of the values which an input variable Si may obtain;
(2) initializing a second register having q bits, where q=log2 K, and the contents of the second register constitute the count of an index j;
(3) obtaining a value Qij by outputing the contents of the second register as the lowest order bits of the value Qij, and the contents of the (b-q+1) bit locations of the first register as the highest order bits of the value Qij ;
(4) transferring all of the values Qij into a shift register having N(b+1) bits such that the shift register contains the concatenation of the values Qij ;
(5) shifting the contents of the shift register into a cyclic shift register connected so as to produce a pseudorandom number as a result of the shifting of the contents thereof;
thereby obtaining memory location aj ;
(6) changing the contents of the first and second registers by incrementing or decrementing the value thereof by by a factor of one;
(7) repeating for each variable Si the sequence of steps (3)-(6) (K-1) times, thereby obtaining all of the memory locations a in the set A*P.
0 Assignments
0 Petitions
Accused Products
Abstract
An adaptive control system is disclosed in which control functions involving many input variables are computed by referring to data stored in a memory. Each value of the control functions is distributed over a number of physical memory locations, such that the linear sum of the contents of these physical locations defines the value. An addressing algorithm is used in which the input variables are mapped into a set of intermediate mapping variables. Apparatus for accomplishing the intermediate mapping comprises first and second counters which are used to address a memory in which the intermediate variables are stored in a predetermined arrangement.
-
Citations
4 Claims
-
1. A machine implemented method of addressing, in dependence on an input signal comprising at least one variable Si, a distributed storage memory in an adaptive control system wherein a set of control signal values is stored such that each of the stored values is distributed over a unique set A*P of K physical memory locations, more than one stored value may share an individual memory location aj, and the degree of overlap between sets A*P corresponds to the degree of similarity between input signals, the method comprising the steps of:
-
for each variable Si ; (1) loading a first register having at least b+1 bits with the binary equivalent of the input variable Si, where b represents the number of bits in the binary equivalent of the largest of the values which an input variable Si may obtain; (2) initializing a second register having q bits, where q=log2 K, and the contents of the second register constitute the count of an index j; (3) obtaining a value Qij by outputing the contents of the second register as the lowest order bits of the value Qij, and the contents of the (b-q+1) bit locations of the first register as the highest order bits of the value Qij ; (4) transferring all of the values Qij into a shift register having N(b+1) bits such that the shift register contains the concatenation of the values Qij ; (5) shifting the contents of the shift register into a cyclic shift register connected so as to produce a pseudorandom number as a result of the shifting of the contents thereof;
thereby obtaining memory location aj ;(6) changing the contents of the first and second registers by incrementing or decrementing the value thereof by by a factor of one; (7) repeating for each variable Si the sequence of steps (3)-(6) (K-1) times, thereby obtaining all of the memory locations a in the set A*P.
-
-
2. A machine implemented method of addressing, in dependence on an input signal comprising at least one variable Si, a distributed storage memory in an adaptive control system wherein a set of control signal values is stored such that each of the stored values is distributed over a unique set A*P of K physical memory locations, more than one stored value may share an individual memory location aj, and the degree of overlap between sets A*P corresponds to the degree of similarity between input signals, the method comprising the steps of:
-
(1) loading a first register having at least b+1 bits with the binary equivalent of the first variable Si, where b represents the number of bits in the binary equivalent of the largest of the values which a variable Si may obtain; (2) initializing a second register having q bits, where q=log2 K and the contents of the second register constitute the count of an index j; (3) initializing a third register having r bits, where r=log2 N, and N represents the number of variables Si, and the contents of the third register constitute the count of an index i;
-
-
3. (4) initializing a queue of K storage registers, the queue being constructed such that the entry of a value into the first register thereof causes the contents of each queue register containing a value to be shifted into the next succeeding queue register;
-
(5) obtaining a value by outputing the contents of the second register as the lowest order bits of the value, outputing the contents of the (b-q+1) highest order bits of the first register as the next lowest order bits of the value, and outputing the contents of the third register as the highest order bits of the value; (6) addressing a memory in which is stored a table of pseudorandom numbers with said value, thereby obtaining a value Qij ; (7) (a) exclusive-oring the value Qij which is obtained with the contents of the Kth register of the queue, (b) entering the result obtained from the exclusive-oring step (a) in the first register of the queue, (8) changing the contents of the first and second registers by incrementing or decrementing the value thereof by one; (9) repeating the sequence of steps (5)-(8) (K-1) times, thereby resulting in K values Qil, . . . QiK being entered into the queue; (10) changing the contents of the third register by incrementing or decrementing the value thereof by one; (11) loading the first register with the binary equivalent of the next succeeding variable Si, and initializing the second register; (12) repeating the sequence of steps (5)-(11) (N-1) times such that the contents of the Kth queue register designate memory location al of set A*P, the contents of the (K-1) queue register designate memory location a2 of set A*P, and so on such that the contents of the first queue register designate memory location aK of set A*P.
-
-
4. A machine implemented method of addressing, in dependence on an input signal comprising at least one variable Si, a distributed storage memory in an adaptive control system wherein a set of control signal values is stored such that each of the stored values is distributed over a unique set A*P of K physical memory locations, more than one stored value may share an individual memory location aj, and the degree of overlap between sets A*P corresponds to the degree of similarity between input vectors, the method comprising the steps of:
-
(1) initializing a queue of K storage registers, the queue being constructed such that the entry of a value into the first register thereof causes the contents of each queue register containing a value to be shifted into the next succeeding queue register; (2) initializing a cyclic shift register having K bits and which is connected so as to produce a pseudorandom number as a result of a shifting of the contents thereof, and beginning with variable Sl ; (3) loading an addressing register having at least b+1 bits with the binary equivalent of the variable Si, where b represents the number of bits in the binary equivalent of the largest of the values which a variable Si may obtain; (4) addressing an addressable memory having a plurality of memory locations in which a set of pseudorandom numbers are stored, the numbers in the set being unique and uniformly distributed over the range of the values which memory locations a may assume, and each memory location of the addressable memory being addressed by a unique address line which is defined by the contents of the (b-q+1) highest order bit locations of the addressing register, where q=log2 K; (5) performing a first exclusive-or operation wherein the output of the memory location addressed by the addressing of step (4) is exclusive-ored with the output of the cyclic shift register; (6) performing a second exclusive-or operation wherein the result obtained from the first exclusive-or operation of step (5) is exclusive-ored with the contents of the Kth register in the queue; (7) entering the result obtained from the second exclusive-or operation of step (6) into the first register of the queue; (8) shifting the shift register so as to produce a new pseudorandom number; (9) changing the contents of the addressing register by incrementing or decrementing the value thereof by a factor of one; (10) repeating steps (5)-(9) (K-1) times; (11) loading the addressing register with the binary equivalent of the next variable Si ; (12) repeating steps (5)-(11) (N-1) times, such that values designating memory locations al through aK are stored sequentially in the queue of registers with the value designating memory location al stored in the last register of the queue and the value designating memory location aK stored in the first register of the queue following the last repetition of the storing step.
-
Specification