WO2018197687A1 - Dispositif ram automatisé apte à mémoriser, rappeler et gérer de manière non volatile, des associations de messages versus label et vice versa, avec un maximum de vraisemblance - Google Patents

Dispositif ram automatisé apte à mémoriser, rappeler et gérer de manière non volatile, des associations de messages versus label et vice versa, avec un maximum de vraisemblance Download PDF

Info

Publication number
WO2018197687A1
WO2018197687A1 PCT/EP2018/060920 EP2018060920W WO2018197687A1 WO 2018197687 A1 WO2018197687 A1 WO 2018197687A1 EP 2018060920 W EP2018060920 W EP 2018060920W WO 2018197687 A1 WO2018197687 A1 WO 2018197687A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
memory
unit
bits
message
Prior art date
Application number
PCT/EP2018/060920
Other languages
English (en)
Inventor
Patrick Pirim
Original Assignee
Another Brain
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Another Brain filed Critical Another Brain
Publication of WO2018197687A1 publication Critical patent/WO2018197687A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis

Definitions

  • Automated RAM device capable of memorizing, recalling and managing in a non-volatile manner, associations of messages versus labels and vice versa, with maximum likelihood
  • the present invention relates to an automated device capable of memorizing, recalling and managing in a non-volatile manner associations of messages versus labels and vice versa, with maximum likelihood. It also relates to a system for memorizing the learning of networks of neuronal populations.
  • the invention applies in particular for the implementation of neural networks on silicon for the processing of various signals, including multidimensional signals such as the semantic representation of perception of images, sound or other modalities perceived independently or simultaneously for example. More generally, the invention enables the efficient realization, based on standard elements such as a microcontroller associated with a non-volatile RAM memory, of a complete chain of signal processing by the bio-inspired approach of population networks. neuronal. It also allows the efficient realization of conventional signal processing methods, useful for example in pretreatment before the neuronal treatment and / or in post-treatment.
  • the memory of the human being is fundamentally associative: we retain better when we can connect the new information to knowledge already acquired and firmly anchored in our memory. And this link will be all the more effective because it has a meaning for us. Rather than the simple evocation of fixed traces, memory is today considered as a continual process of recategorization resulting from a continuous change of neuronal antagonistic pathways and the parallel processing of information in the brain.
  • the invention thus relates to an automated device capable of memorizing, recalling and managing in a non-volatile manner associations of messages versus labels and conversely with maximum likelihood, called "associative memory" in the rest of the text.
  • the associative memory device (10) consisting of a nonvolatile RAM memory unit (5) controlled by a sequencing unit ( ⁇ ), according to the invention this memory unit (5) is shared at least in two contiguous memory pages :
  • the first page (1) beginning in low address consists of two memory banks of identical size of 2 V words of v bits (1 a) and (1 b).
  • the second page consists of one to n identical sub-pages (2_1 to 2_n), each sub-page consisting of two contiguous memory banks of size 2 W words of v bits for the first (2c) and 2 V words of w bits for the second (2d).
  • the following means can be used alone or in any technically feasible combination, are employed: before the first use, the memory unit is completely initialized to zero by the sequencing unit ( ⁇ ),
  • the v-bit word set at the first low address of the first memory bank (1 a) of the first page (1) corresponds to the value of a bit counter (3) of v bits
  • d stores this value of the label (Lin i) in the memory bank (1 b) of the first page (1), input port (In), to the memory address (Adr) defined by the value of the counter (3) ,
  • e initializes to one the pointer (Pt) representing the sub-message index (RSin_Pt) and the sub-page (Pt) of the second page,
  • g stores the value of the counter (3) in the input port (In) of the memory bank (2d) of the second page (2_Pt), to the memory address (Adr) defined by the value of the sub-message (RSin_Pt )
  • h stores this value of the sub-message (RSin_Pt) in the input port (In) of the memory bank (2c) of the second page (2_Pt) to the memory address (Adr) defined by the value of the counter (3) ,
  • a) initializes to one the pointer (Pt) corresponding to the index of the sub-page (Pt) of the second page
  • d) stores the value (Cpt_Pt) in a likelihood analysis unit (4) which determines the value (Cpt_out) corresponding to the most represented value (Cpt_Pt) among the n values saved during the sequence,
  • the search for the corresponding message (MEout_i) is performed using the sequencing unit ( ⁇ ), which in sequence:
  • d reads the sub-message (RSout_Pt) of w bits, indexed by the value (Pt), of the message (MEout_i), output port (Out) of the memory bank (2c) of the second page (2_Pt) to the memory address (Adr) defined by the value of the pointer (Cpt),
  • the associative memory (10) comprises a control port allowing:
  • a first level of p base units of Associative Memory receives p messages and generates p labels which each connect as a sub-message of a base units second-level Associative Memory by generating a summary label of the incoming sub-messages, and conversely, a second summary label entering this associative memory base unit generates a set of sub-messages that connect as a label associated with a sub-message to all of the first-level associative memory base units and delivers a set of p messages.
  • the sub-message (RSout_x) of w bits leaving the Associative Memory unit (10) is connected to the input register unit (77) of a dynamic attractor (80_x) and the result register unit (76) of this same dynamic attractor delivers the incoming sub-message (RSin_x) of w bits of the associative memory unit (10).
  • each sub-message, incoming (RSin_i) and outgoing (RSout_i) are associated with a dynamic attractor (80_i) linked to its neighbors by an antecedent calculation inhibition function (87) and receiving in common, the signals (G) , (D), (S) and (P) of the translation transfer unit (71).
  • the semantic representation unit of a label (100) is constituted:
  • determination of the region of interest (ROI) is made from the data derived from the dynamic attractor (80) of the semantic representation unit of a label (100_1) by a sequencing unit (Sec).
  • the decimation value of the decimation unit (Dec) is a function of the curvature value (cb 0 ) calculated by the semantic representation unit of a label (100_1) receiving the decimated data (MAP1),
  • the invention also relates to the following application of the preceding device according to all their possible variants:
  • this device is integrated into an electronic module.
  • FIG. 1 represents, in its generality, a device according to the invention describing the associative memory unit (10),
  • FIG. 2 is an illustration of the writing mode of the associative memory unit (10);
  • FIG. 3 is a flow chart showing the commands in write mode sequence of the associative memory unit (10) according to the invention;
  • FIG. 4 an illustration of the mode of detection of a message (MEoutj) from a presentation of a label (Lin i),
  • FIG. 5 a flowchart presenting the commands in sequence of the mode of detection of a message (MEoutj) from a presentation of a label (Lin i), according to the invention
  • FIG. 6 an illustration of the operating mode of the associative memory unit (10) in label search mode (LoutJ) from a message (MEinJ)
  • FIG. 7 a flowchart showing the commands in sequence of the search mode, label (LoutJ) from a message (MEinJ)
  • FIG. 8 an example of a pyramidal assembly of three associative memory units (10_1) to (10_3) creating the universal generator base unit of hierarchical graph (60),
  • FIG. 9 an illustration of the composition mode of a graph, using the universal generator of hierarchical graph (60), generating a label from the processing of the memorized messages,
  • FIG. 10 an example of a semantic representation unit of an associative memory label (100) in combination of dynamic attractor units (80J) associated with a translation transfer unit (71),
  • FIGS. 11a and 11b an illustration of the transfer function of the translation unit (71),
  • FIGS. 12a to 12d an illustration of the organization of the bilinear histogram calculations of the dynamic attractor unit (80J)
  • FIG. 13 an example of use of an associative memory unit (10) controlling the response to a stimulus
  • FIG. 14 a use of a vision device integrating two units of semantic, context and local representation of a label (100), in relation with an associative memory (10).
  • Figure 15 an illustration of the visual and local visual perception of a perceived element, numbers two, of the vision device of Figure 14.
  • FIG. 16 the extraction, by a dynamic attractor (80_0), of contextual semantic representations of a perceived element of the vision device of FIG. 14.
  • FIG. 17 the extraction, by the dynamic attractors (80_1) to (80_3), local elementary semantic representations of a perceived element of the vision device of Figure 14.
  • Figure 1 describes the overall organization of this associative memory unit (10) as a device.
  • This unit consists of two main parts, a unit of sequencing ( ⁇ ) connected, in standard mode or DDR-x, to a nonvolatile RAM memory unit (5).
  • This RAM memory (5) is segmented into two contiguous memory pages, each segmented into two contiguous memory banks.
  • the first memory page (1) beginning in low address consists of two contiguous memory banks (1 a) and (1 b) each composed of 2 V words of v bits.
  • the memory bank (1 a) has the first zero address in the RAM memory unit (5) and contains, at the zero address of the memory bank (1 a), a v-bit word representing the value of a counter Cpt (3).
  • the second bank of this first page (1) starts at a 2 V address of the RAM memory unit (5).
  • the second page memory starting in address 2x2 v RAM memory unit (5) is segmented into n sub-pages memory of equal size (2_1) to (2_n) each comprising two contiguous memory banks called (2c) composed of 2 V words of w bits, for the lower part and (2d), composed of 2 W words of v bits, for the upper part.
  • the sequencing unit ( ⁇ ) comprises, in standard mode, a write control bus (Wr), addresses (Adr) and data bus (DATA) in connection with the memory unit (5) (standard mode write / read RAM memory).
  • This sequencing unit ( ⁇ ) communicates, reads and stores the data of the RAM memory (5) with the outside through two input ports (MEin_i) and (LinJ) and two output ports (ME_outJ) and (Lout_i), associated with an index (Pt) giving the rank of the sub-message (RSin_Pt), as input, and (RSout_Pt) as output.
  • This data is processed by a software program (6) included in the sequencing unit ( ⁇ ), according to information transmitted by an external control and status bus in connection with this sequencing unit ( ⁇ ), ensuring the different functional modes of this associative memory unit (10):
  • the software program "Stop” mode activated by the reset of the control signal (En), cuts off the power supply of the RAM memory unit (5) and maintains this action as long as the control signal (En) remains at this level.
  • the power-up of the RAM memory unit (5) takes place as soon as the control signal (En) changes to one.
  • the software program "Initialisation” mode activated by setting the signals (En), (Wre), and (T) of the control bus of the sequencing unit ( ⁇ ), forces the writing of the value 0 in all the memory addresses of the memory (5).
  • Each memory page, memory sub-page and associated memory bank are thus initialized to zero.
  • the zero address of the first page, bank (1 a) representing the value of the counter (3) is thus initialized to zero. This initialization is necessary before the general use of the associative memory: the counter makes it possible to associate 2 V -1 message vs label, all differ from the value zero.
  • the "Transfer” mode software program activated by setting the signals (En) and (T) and at zero of the signal (Wre), details the knowledge transfer mode of an Associative Memory unit (10) to a unit external.
  • the internal organization of this unit (10) corresponds to the description made in FIG. 2 with the exception of the binary signal (Wr) which is invalid and an external transfer binary signal (IncT) which is connected to the signal. increment input of the counting unit (3). Before the transfer operation, the value (Cpt) of the counter (3) is saved.
  • All the memory subunits (2_1) to (2_n) and (1) are in reading mode and valid respectively on their output ports (Out) the sub-messages (RSout_1) to (RSout_n) corresponding to the message (MEout_i) and (Loutj) accessible outside the Associative Memory unit (10).
  • the transfer mode starts with a zero initialization of the counting (3) by validating the external binary signal (Rst) for a short time, then the external transfer signal (IncT) is activated and deactivated by reading cycle.
  • a message pair (MEout_i) and label (Lout_i) is read, a pair equaling zero indicates the end of the transfer.
  • the value (Cpt) of the counter (3) corresponding to the last recorded link is then repositioned in address zero of the first page, bank (1 a).
  • the sub-message outputs (RSout_a1) to (RSout_a4) and label (Lout_a) of the first Associative Memory unit (10_1) are respectively connected to the sub-message (RSin_a1) to (RSin_a4) and label (Lin_a) entries of the second Associative Memory unit (10_2).
  • a short binary signal validation (Rst) on the unit (10_1) initializes the internal counter (3) to zero.
  • the transfer signal (IncT) is connected to the input (T) of the first unit (10_1) and to the input (Wr) of the second unit (10_2).
  • the inputs (Wr) of the first unit (10_1) and (R), (T) of the second unit (10_2) are set to zero (not valid).
  • the sequencing clock (Ck) is connected to both units (10_1) and (10_2).
  • the external transfer signal (IncT) is activated and deactivated by reading cycle.
  • a message pair (MEout_i) and label (Loutj) is transferred from the unit (10_1) to (10_2), a pair equaling zero indicates the end of the transfer.
  • the Associative Memory unit (10_2) contains p + q message-label pairs.
  • Each unit (10_1) and (10_2) becomes free to memorize a new pair, the first after the recorded p, the second after the p + q recorded.
  • FIG. 2 details the electronic means, unit by unit, of the "Writing" mode of the associative memory unit (10) of storing a message (MEin_i) composed of n sub-messages (RSin_1) to (RSin_n), in associating with a label (Lin i) a common internal memory address having the value i equal to (Cpt [v-1: 0]) delivered by the counting unit of 2 V values (3), incremented by a value unitary with each storage action.
  • This associative memory unit (10) comprises the units described in FIG. 1 schematically exploded in order to present the different data flows set in implemented during the associative memory function.
  • each memory bank of the RAM memory (5) is presented separately by explaining their own interfaces, namely a data input port (In), a data output port (Out), a memory address input port (Adr) and a signal d (Wr), which is sufficient for asynchronous operation, an additional clock signal (Ck) is required for the synchronous mode (not shown in the diagram).
  • the validation of the binary signal (Wr) increments the counting unit by 2 V values (3) by one unit and the subsequent non-validation of the binary signal (Wr) stores the data present on the input port (In) in a defined address. on the memory address input port (Adr) in asynchronous mode.
  • the memory bank (1 a) of 2 V words of v bits receives on its input port (In) the value i of the binary counter (3) and on its memory address port (Adr) the label (Lin i).
  • the memory bank (1 b) of 2 V words of v bits receives on its input port (In) the label (Lin i) and on its memory address port
  • the second memory page is composed of n memory sub-pages denoted from (2_1) to (2_n) equal each comprising two contiguous memory banks denominated (2c), composed of 2 V words of w bits, for the lower part and (2d) , composed of 2 W words of v bits, for the upper part.
  • the memory bank (2c) of 2 V words of w bits on its input port (In) and the memory bank (2d) of 2 W words of v bits on its memory address port (Adr) respectively receive the sub -message (RSin_1) for the memory sub-page (2_1) to the sub-message (RSin_n) for the memory sub-page (2_n).
  • the memory bank (2c) of 2 V words of w bits on its memory address port (Adr) and the memory bank (2d) of 2 W words of v bits on its input port (In) receive the value i the binary counter (3).
  • the sequencing clock signal (Ck) presented on each memory bank validates the general storage of all the memory subunits present in this RAM memory unit (5).
  • the number of memory operations of this Associative Memory unit (10) is limited by the value maximum 2 V -1 of the counting unit (3) which delivers for this value a binary limit signal (F).
  • a sequencing unit which addresses the memory (5) in its good page and the right bank in read or write memory mode according to the external commands (En), (Wre), and (T).
  • FIG. 3 represents, in the form of a software functional flowchart, the storage function described in FIG. 2 and implemented in the software program (6).
  • d stores this value of the label (Lin i) in the memory bank (1 b) of the first page (1), input port (In), to the memory address (Adr) defined by the value of the counter (3) ,
  • e initializes to one the pointer (Pt) representing the sub-message index (RSin_Pt) and the sub-page (Pt) of the second page,
  • g stores the value of the counter (3) in the input port (In) of the memory bank (2d) of the second page (2_Pt), to the memory address (Adr) defined by the value of the sub-message (RSin_Pt )
  • h stores this value of the sub-message (RSin_Pt) in the input port (In) of the memory bank (2c) of the second page (2_Pt) to the memory address (Adr) defined by the value of the counter (3) ,
  • FIG. 4 details the electronic means, unit by unit, of the "reading" mode of the associative memory unit (10), which, from the presentation of a label (Lin i), finds the associated message (MEout_i) .
  • This associative memory unit (10) comprises the units described in FIG. 2 schematically exploded in order to present the different data flows implemented during the label-to-message reading function.
  • the memory bank (1 a) of 2 V words of v bits receives on its memory address port (Adr) the label (Lin i) and positions on its output port (Out) the value i of v bits of the binary counter (3).
  • This value i of v bits of the binary counter (3) is presented on the memory address port (Adr) of the memory bank (2c) which outputs (out) the sub-message (RSout_Pt) of the sub-page (2_Pt). ) of each of the n sub-pages (2_1) to (2_n) for a value of (Pt) varying from 1 to n, and the value (Pt) on a bus external to the associative memory unit (10).
  • FIG. 5 represents, in the form of a software functional flowchart, the label-to-message reading function described in FIG. 4 and implemented in the software program (6).
  • the search for the corresponding message is carried out using the sequencing unit ( ⁇ ), which in sequence: a) Reads the label (Lin i ) of v bits presented on the input of the associative memory (10), b) reads the value of the pointer (Cpt) of the memory bank (1 a) of the first memory page (1), output port (Out) , at the memory address (Adr) defined by the value of the label (Lin i),
  • FIG. 6 details the electronic means, unit by unit, of the "reading" mode of the Associative Memory unit (10), which from the presentation of a message (MEinJ) finds the associated label (LoutJ).
  • This associative memory unit (10) comprises the units described in FIG. 2 schematically exploded in order to present the different data flows implemented during the message-to-label reading function as well as a maximum likelihood selection unit (4). .
  • the message (MEinJ) from w bits to nw bits, composed of n sub-messages (RSin_1) to (RSin_n) pointed by an index (Pt) giving the rank of the sub-message in the message (MEinJ) is read sequentially, by w bit word corresponding to a sub-message indexed by the value (Pt), and transmitted as memory address (Adr) of the memory bank (2d) of the page (2_Pt).
  • This memory bank (2d) delivers on its port (Out) a value (Cpt_Pt) which is transmitted to the maximum likelihood selection unit (4).
  • This unit (4) receives the values of (Cpt_1) to (Cpt_n), extracts from it the most represented value of this sample of n values which becomes the value (Cpt_out) transmitted to the memory address (Adr) of the bank ( 1 b) of the range (1) and, which in turn delivers on its port (Out) the value of the label (LoutJ).
  • the subunit (41) of the unit (4) finds two distinct data in an equivalent amount, arbitrarily it is the weakest datum that is chosen. It is for example the visual perception of an undecidable figure like the blivet of Norman Mingo.
  • FIG. 7 represents, in the form of a software functional flowchart, the message-to-label reading function described in FIG. 6 and implemented in the software program (6).
  • a) initializes to one the pointer (Pt) corresponding to the index of the sub-page (Pt) of the second page
  • b) reads the sub-message (RSin_Pt) of w bits, indexed by the value (Pt), of the message (MEinJ), presented on the input of the associative memory (10), c) reads the pointer value (Cpt_Pt) from the memory bank (2d) of the second page (2_Pt), output port (Out), to the memory address (Adr) defined by the value of the sub-message (RSin_Pt )
  • d) stores the value (Cpt_Pt) in a likelihood analysis unit (4) which determines its value (Cpt_out) corresponding to the most represented value (Cpt_Pt) among the n values saved during the sequence,
  • e compares the value of the pointer (Pt) to the value n, in case of non equality the pointer (Pt) is incremented by one unit and the sequence starts again in b, otherwise continues in f, f) reads the value of the label (Lout_i) of the memory bank (1 b) of the first memory page (1), output port (Out), to the memory address (Adr) defined by the value of the pointer (Cpt_out),
  • FIG. 8 represents a use of three associative memory units (10_1) to (10_3) grouped together in a universal hierarchical graph generator (60) of messages versus label and vice versa, each having, in this nonlimiting example, an organization of the message in four sub-messages, assembled in two hierarchical levels associating in parallel two incoming messages (MEin_a) and (MEin_b) to an outgoing label (Lout_c) and an incoming label (Lin_c) to two outgoing messages (MEout_a) and (MEout_b).
  • the message (MEin_a) consists of four sub-messages (RSin_a1) to (RSin_a4) at the input of the unit (10_1), likewise the message (MEout_a) consists of four sub-messages (RSout_a1) to (RSout_a4 ), at the output of the unit (10_1).
  • the unit (10_2) has the same configuration as the unit (10_1), the index a being replaced by the index b.
  • the labels (Lout_ a) and (Lout_b) form the input message of the unit (10_3), and the incoming labels (Lin_a) and (Lin_b) form the outgoing message of the unit (10_3).
  • This unit (10_3) associates its incoming label (Lin_c) with the outgoing message, consisting of sub-messages (Lin_a) and (Lin_b), and its outgoing label (Lout_c) with the incoming message, consisting of sub-messages (Lout_a) and ( Lout_b).
  • the sub-messages not present at the input of the unit (10_3) are represented by the value zero.
  • This arrangement of three units Associative Memory (10_1) to (10_3) makes it possible to associate the messages (MEin_a) and (MEin_b) with the label (Lout_c) and vice versa the messages (MEout_a) and (MEout_b) with the label (Lin_c).
  • This arrangement is nonlimiting, it can be extended in numbers of associative memory units (10_1) to (10_x) and grouped according to several hierarchical levels, the messages then being of variable size in number of sub-messages. These trees allow, complex and varied learning with a number of units Associative Memory (10 1) to (10_x) restricted and, a complete recall from perceived partial information.
  • a message (A) representing the digit one and a message (B) representing the zero digit are respectively associated with the associative memory unit (10_1) and the associative memory unit (10_2), these units respectively issue the labels " a "and” zero “that form the new message for an associative memory unit (10_3) that issues a" ten "label.
  • the label "ten” generates a message comprising two sub-label messages "a” and “zero” which are respectively introduced in the associative memory units (10_1) and (10_2) and which respectively generates the elementary representations "one” and "zero” numbers, some of the erroneous messages are corrected.
  • a message 1 associates a (sound) with an associative memory unit (10_1)
  • a message 2 associates a (white bird) with an associative memory unit (10_2)
  • the third associative memory unit (10_3 ) associates the "seagull" label.
  • the message 1 which is introduced in the associative memory unit (10_1) and provides a label "his" to the associative memory unit (10_3)
  • its maximum likelihood unit (4) deduces the label "seagull”.
  • this same associative memory unit (10_3) generates the message (sound) and (white bird).
  • the sub-message white bird is introduced as a label in the associative memory unit (10_2) which delivers a message of elementary semantic representations corresponding to the description of this bird in order to locate it.
  • FIG. 9 represents an extension and a generalization of the use of several universal hierarchical graph generators (60) of messages versus label and vice versa.
  • the control binary signals (En), (Wr), (T), (Cor), and its sequencing clock (Ck) managing all Associative Memory (10) of these sets (60) are not represented.
  • a first universal hierarchical graph generator (60_1) associates two messages (A) and (B) with a label (L_AB) and vice versa.
  • a second universal hierarchical graph generator (60_2) associates two messages (C) and (D) with a label (L_CD) and vice versa.
  • a third universal hierarchical graph generator (60_3) associates the two labels defined previously as messages (L_AB) and (L_CD) to a label (L_ABCD) and vice versa.
  • a fourth universal hierarchical graph generator (60_4) associates the label defined previously as messages (L_ABCD) and the message (E) to a label (L_ABCDE) and vice versa.
  • FIG. 10 illustrates an example of use of the associative memory (10) in combination of dynamic attractor units (80_i) and of a translation transfer unit (71) defining the semantic representation unit of a label ( 100). For clarity, the sequencing signals have been omitted.
  • Spatiotemporal data (70) from an upstream element, receiver (92) or associative memory unit processing results (10), not shown here, are delivered on the input port (E, P (i, j)) of a translation transfer unit (71) which in turn synchronously outputs, clocked by a clock signal (Ck), elementary semantic representations referenced in position on its output ports (G ), (D), (S), and (P).
  • Each output port (G), (D), (S), and (P) is connected independently and respectively on the G bus (72), the D bus (73), the S bus (74) and the bus.
  • P (75) of identical size of 2z bits.
  • the n dynamic attractor units (80_1) to (80_n) connect to these four buses, respectively on their input port (G), (D), (S), and (P).
  • the dynamic attractor unit (80_1) The dynamic attractor unit (80_1)
  • the dynamic attractor unit (80_1) is shown in greater detail in order to explain its operation, knowing that all the dynamic attracting units (80_1) to (80_n) are of identical constitution.
  • This dynamic attractor unit (80_1) includes:
  • Each statistical processing unit (81_x) comprises:
  • a bilinear histogram calculation unit (82), comprising
  • a sequencing unit, not shown here, depending on the operating mode, either sequentially or by number of events, which ensures cyclically in sequence, the initialization phase, the histogram calculation stage, the phase update registers (R) and the automatic classification phase.
  • the initialization phase consists of zeroing the storage memory of the histogram calculations and initializing the various calculation registers.
  • each data item (x) presented corresponds to an input signal (V) that validates the calculation or not.
  • the registers (R) are updated as well as the registers of the automatic classification unit (83).
  • the calculated values are, the number of calculations (NBPTS), the median (Med), the value of the maximum (RMAX), its position (PosRMX) and the classification limits (A), (B), (C), and (D).
  • o two classification units, automatic (83) and request (84) each receive the 2z bits data of the input port (x) and each deliver a valid classification binary signal for the z bits of high weight between its terminals of classification (A) and (B) and for the low-order z bits between its classification terminals (C) and (D),
  • a Boolean classification validation unit (85) receives the binary classification signals of the two automatic classification units (83) and request (84). The logical AND between these two binary classification signals is transmitted out of the statistical processing unit (81 _x).
  • a Boolean space-time classification unit (86) receives the binary classification signals from the four statistical processing units (81_G), (81_D), (81_S), and (81_P) to form a logical AND which is transmitted to the histogram calculation validation unit (87).
  • a histogram calculation enable unit (87) comprises a two-input AND logic unit, one inverted (88) and a two-input OR logic unit (89).
  • the logical unit AND (88) receives in live the binary signal from the logical unit AND (86) and reverses the input binary signal (Cin) of the unit (80_1) and provides a binary histogram calculation enable signal to the input (V) of each statistical processing unit (81_G), (81_D), (81 _S), and (81_P).
  • the OR logic unit (89) receives the input binary signal (Cin) from the unit (80_1) and the histogram calculation enable binary signal of the AND logic unit (88) and outputs a binary signal of Inhibit on the output port (Cout) of the unit (80_1).
  • An output register unit (76) has the registers (RSi-1) to (RSi-q) updated each time the value (NBPTS) is exceeded relative to an externally parametered threshold.
  • the order of the registers (RSi-1) to (RSi-p) corresponds to the median values (Med- ⁇ , Med 2 ) and to the classification range (Pi, P 2 ) defined by the difference between the terminals of classification (B) minus (A) and (D) minus (C) for each statistical processing unit (81_G), (81_D), (81 _S), and (81_P).
  • the output register unit (76) includes the registers (RSi-1) to (RSi-8).
  • a number of registers (RSi-x) are not used because they are irrelevant.
  • the visual perception of a text has a uniform overall mode (same colors and non-displacement), only the structuring aspect brings relevant information, which reduces the eight starting registers to three: centroid, dimension and structure.
  • An input register unit (77) has registers (RSo-1) to (RSo-q) representing the same organization as that of the output register unit (76).
  • (RSo-1) and (RSo-2) respectively, the medians of the global mode (MedG- ⁇ , MedG 2 ) and their respective ranges (PG-i, PG 2 ), which are transformed into classification terminals (A) , (B), (C), (D) as the terminal (A) is equal to (MedG-i) - (PGi / 2), the terminal (B) to (MedG 2) + (PG 2/2 ), likewise for the terminals (C) and (D) in the same order.
  • These (A), (B), (C), (D) classification terminals are written in the request classification unit ( 84).
  • the Associative Memory unit (10), described in the preceding figures, in its generic implementation interfaces with the dynamic attracting units (80_1) to (80_n) the message (MEinj) consisting of n sub-messages (RSin_1) to (RSin_n) and the message (MEoutJ) consisting of n sub-messages (RSout_1) to (RSout_n).
  • Sub-message (RSin_1) is transmitted from the output register unit (76) of the dynamic attractor unit (80_1) to the input port (In) of the memory sub-unit (2_1) of the unit Associative memory (10).
  • the sub-message (RSin_2) is transmitted from the output register unit (76) of the dynamic attractor unit (80_2) to the input port (In) of the memory sub-unit (1_2) of the associative memory unit (10), and the transmission continues in the same order up to the rank n.
  • the sub-message (RSout_1) is transmitted from the output port (Out) of the memory sub-unit (2_1) of the associative memory unit (10) to the input register unit (77) of the dynamic attractor unit (80_1).
  • the sub-message (RSout_2) is transmitted from the output port (Out) of the memory sub-unit (1_2) of the associative memory unit (10) to the input register unit (77) of the dynamic attractor unit (80_2), and the transmission continues in the same order up to the rank n.
  • the associative memory unit (10) comprises:
  • a first set composed of n memory subunits, each composed of 2 W words of w bits, denoted by (2_1) to (2_n), and each receiving on their input port (In) respectively the sub-message ( RSin_1) for the memory sub-unit (2_1) to the sub-message (RSin_n) for the memory sub-unit (2_n),
  • a second set consisting of a memory sub-unit of 2 V words of v bits (1) receiving on the input port (In) the label (LinJ) and,
  • a maximum likelihood calculation unit (4) in order to select the most represented value i, k or other.
  • This unit (4) receives from the output port (Cadr) of each memory subunit (2_1) to (2_n) a value i, or other k respectively on an input port (L_i) to (L_n) with their respective binary signal. validation on the entry respectively (V_1) to (V_n).
  • the internal sequencing is provided by a clock signal (CK) introduced into the unit (4).
  • the choice of maximum likelihood is set on the output port (L_i), a v-bit bus transmits this value to the input port (Adr) of the memory subunit (1) which delivers on its output port (Out) the value of the label (Lout_i).
  • the sub-messages (RSin_1) to (RSin_n), corresponding to the message (MEin_i), are respectively presented on the input port (In) of each sub-memory unit (2_1) to (2_n ) which each deliver a value i, or other k on their respective output port (Cadr) in association with a validating bit signal outputted by the output (M) of the same memory subunit.
  • the sub-message presented is absent from the memory sub-unit, it delivers on its output (M) a binary signal of non-validation, the value present on its output port (Cadr) is then ignored.
  • Each received message (MEin) of n.w bits is composed of n sub-messages (RSin_x) of w bits, x varying from 1 to n.
  • each message (MEout) of n.w bits delivered by the associative memory is composed of n sub-messages (RSout_x) of w bits, x varying from 1 to n.
  • Each sub-message is segmented into q elements (RSi_x) entering or (RSo_x) outgoing z bits corresponding to w / q bits whose rank of the element corresponds to a notion of position, sizing and characterization.
  • the position is defined by its reference (Ref), generally varying from one to three, often equal to two for a pair of elements, for example x and y representing a relation between two distances in the reference frame (Ref), or t and f representing a relationship between time and frequency in the reference frame (Ref).
  • Ref reference
  • x and y representing a relation between two distances in the reference frame (Ref)
  • t and f representing a relationship between time and frequency in the reference frame (Ref).
  • it is the position of the barycenter of the data cloud representing the characterization defined above by its sub-message elements.
  • the dimensioning characterizes the extent of the data cloud, generally its dimension, therefore an element (RSi_x), in each of the axes of the reference frame (Ref).
  • Characterization is usually an elementary semantic representation of type:
  • an edge is defined by its orientation and curvature
  • a phoneme is defined by the distribution of its formants in time, etc.
  • the label consists of a word of v bits, the amount of recordable labels is 2 V - 1, the label "zero" being excluded.
  • FIG. 11 -a explains the operation of the translation transfer unit (71) from space-time data (70) (time data E at position P (i, j)) originating from an external sensor, represent.
  • Each spatio-temporal data (70) entering this unit (71) is translated and delivered on four output ports, in a synchronous manner by a signal (Ck), into three distinct elementary semantic representations, (G), (D). ), (S), positioned in (P).
  • Each output port (G), (D), (S), and (P) is connected independently and respectively on the G bus (72), the D bus (73), the S bus (74) and the bus.
  • P (75) is connected independently and respectively on the G bus (72), the D bus (73), the S bus (74) and the bus.
  • Figure 11-b is a pictorial representation of the different data (G), (D), (S), and (P).
  • the incoming data is represented in its global mode output (G), dynamic output (D), and output structural (S), and position (i, j) determined by the data (P), according to three plans recorded in 2D mode .
  • the position (P) is expressed according to the size of its base.
  • 2D for visual (x, y) or auditory (t, f) data it can be extended to 3D or reduced to 1D, higher dimensions are possible but unacceptable by the devolved memory size.
  • FIG. 12 illustrates the organization of the results of the calculations of the four bilinear histograms of the dynamic attractor unit (80_i) from the data (G), (D), (S), and (P) 2z bits from the translation transfer unit (71).
  • the incoming data processed in this example is 2D vision type.
  • the unit (71) translates this data into:
  • Each incoming data is coded in a 2z-bit word giving a 2 Z x 2 Z matrix representation of the histogram calculation, the first z bits representing an axis and the z bits remaining the second axis of the matrix.
  • an edge portion of an object (Ob) is visualized in FIG. 12d by its representation in position (P), gray values corresponding to the classified results, by the classification unit (83). ), the calculation of bilinear histogram of the matrix (H_P). The result of this histogram calculation is transmitted to the output register unit (76) with the value of its barycenter at 2z bit position (x, y) and its 2z bit range (ap, bp). .
  • the orientation and the perceived local curvature of the object (Ob), FIG. 12c, is delivered by calculating the bilinear histogram (H_S) whose calculation result is transmitted to the output register unit (76). with its value, its center of gravity, so its semantic representation of orientation and curvature of 2z bits (bo, cb) and its tolerance of 2z bits (as, bs).
  • H_S bilinear histogram
  • FIG. 12a indicates, by the result of bilinear histogram calculation (H_G), the dominant color of the part of the object (Ob) represented by its hue and saturation value of 2z bits (t, s) with its value. 2z bit tolerance (ag, bg), transmitted to the output register unit (76).
  • H_G bilinear histogram calculation
  • FIG. 12b shows, by the result of the bilinear histogram calculation (H_D), the local displacement of the part of the object (Ob) represented by its direction of motion value and its speed on 2z bits (dir, vit ) with its tolerance value of 2z bits (ad, bd), transmitted to the output register unit (76).
  • the input register unit (77) updates, in the same order, the classification terminals of the query classification units (84) of each statistical processing unit (81 _G), (81_D), ( 81 (S), and (81 (P).
  • This perceptual process enslaves data perceived, represented and interpreted as a learned label.
  • the incoming sub-message (RSin_x) of the associative memory (10) is composed of the results (t, s, ag, bg) for the sub-message (RSi-1) and (RSi-2) , (dir, vit, ad, bd) for the sub-message (RSi-3) and (RSi-4), (bo, cb, as, bs) for the sub-message (RSi-5) and (RSi-6) , and (x, y, ap, bp) for the sub-message (RSi-7) and (RSi-8).
  • RSout_x the outgoing sub-message (RSout_x) of the Associative Memory (10).
  • This sub-message (RSin_x) is a basic semantic representation global, dynamic, structural (answer to the question What?) And positioned (answer to the question Ou?).
  • the n sub-messages (RSin_x), x varying from 1 to n, define the message MEin_i representing at the output of the associative memory (10) the label (Loutj).
  • Figure 13 explains a robotic mode of use.
  • a stimulus (91) is perceived by a receiver (92) which then transmits on its output port (Mes) an afferent message (93) to the associative memory unit (10_1) on its input (MEin) leading to its output ( Lout) a perceived label output information (94).
  • An analysis process deduces according to the application implemented a control label (95) which is issued on the input port (Lin) of the associative memory (10_1). This then delivers on its output port (MEout) an efferent signal (96) which is connected to the input port (Cde) of the effector unit (97) which gives the response (98).
  • Figures 14 to 17 show an application of the associative memory (10) in visual mode.
  • FIG. 14 represents a scene (1 10) comprising a symbol, in this case a figure two written on a flat surface, perceived by a camera (120) placed in front which delivers a high density video signal (HD), for example 20 Mp (Mega pixel) at 50 fps (50 images of 20 million pixels per second), referenced by the x, y coordinates and of dimension respectively of o and p bits.
  • HD high density video signal
  • This signal (HD) is delivered, together with:
  • the decimation unit (Dec) composed of: A data sequencing unit (150) generating the x and y addresses as well as data synchronization signals of this decimation unit (Dec),
  • This unit performs a Gaussian-type two-dimensional filtering function by convolving a Gaussian matrix of size 2m + 1 on the input data, the result is a two-dimensional data stream lmG ( Xyt ), output in sequence to a unit of decimation (300) receiving the input stream ImG (xyt) and outputting the flow of two-dimensional data ⁇ ⁇ to the oriented edge calculating unit (350), selecting in the two dimensions x and y, one element every k elements.
  • a scaling unit (542) truncating the X1 and Y1 values on the most significant z bits to generate an X and Y address each over a range of 2 Z values, corresponding to the size of the square of 2 Z of side.
  • MAP2 The data flow (MAP2) resulting from the reading of the memory (600) in address X, Y, corresponding to the invariant information of the perceived element.
  • Inv The perceptive invariance
  • the associated values of m and k are transmitted for the following time T, (m) at the unit (200) and (k) at the unit (300).
  • a selection unit of the region of interest receives the coordinates of the center of gravity i 0 , jo, the decimation coefficient k, the angular orientation bo 0 , and the x, y coordinates of the stream (HD (xy t )), and calculates new coordinates X0, Y0 according to the function:
  • An address multiplexer (520) transfers the previously computed addresses for the valid area of interest (Z_ROI) , at the address port of the buffer (600).
  • This signal (Z_ROI) validated by the valid signal Val (AND boolean (550)) corresponding to a correct decimation value, serves as write command (Wr) of the buffer (600) for the stream data (HD).
  • Wr write command
  • Xy t presented on its input port (In).
  • a memory address sequencer (530) generates an address stream X1, Y1 that passes through the address multiplexer (520) and will serve as a sequential readout of the buffer (600) as a data stream. (MAP2), out of writing time on a range corresponding to
  • MAP2 The data flow (MAP2) resulting from the reading of the memory (600) in address X, Y, corresponding to the invariant information of the perceived element.
  • the video signal (MAP2) is introduced into a semantic representation generic unit (100_2) which perceives the written symbol in its integrity.
  • the curvature of digit two has the largest number of perceived pixels and is therefore represented by the dynamic attractor (80_1) which delivers a sub-message (RSin_1) of w bits composed of oriented edge elements and associated curvature (bo- ⁇ , cb- ⁇ ) of 2z bits, position elements (xi, y- ⁇ ) of 2z bits, of dimension (api, bp-i) of 2z bits and, orientation -i equal to boi .
  • the dynamic attractor 80_1 which delivers a sub-message (RSin_1) of w bits composed of oriented edge elements and associated curvature (bo- ⁇ , cb- ⁇ ) of 2z bits, position elements (xi, y- ⁇ ) of 2z bits, of dimension (api, bp-i) of 2z bits and, orientation -i equal to boi .
  • the dynamic recruitment of a second dynamic attractor (80_2) which receives the inhibition of the preceding processing, perceives the largest number of pixels corresponding to the horizontal part of the two digit and delivers a sub-message (RSin_2) of w bits consisting of 2z bits oriented edge elements and associated curvature (bo 2 , cb 2 ), 2z bits position elements (x 2 , y 2 ), 2z bits dimension (ap 2 , bp 2 ) and, orientation 2 equal to bo 2 .
  • RSin_2 sub-message
  • the sequence continues with the dynamic recruitment of a third dynamic attractor (80_3), which receives the inhibition of the previous treatments, perceives the largest number of pixels corresponding to the oblique part of the two digit and delivers a sub-message ( RSin_3) of w bits consisting of 2z bits oriented edge elements and associated curvature (bo 3 , cb 3 ), 2z bits position elements (x 3 , y 3 ), of size (ap 3 , bp 3 ) of 2z bits and, orientation 3 equal to bo 3 . Since the number of pixels remaining untreated is less than a qualification threshold (NBPTS value) below a threshold, the recruitment sequence of a new dynamic attractor stops.
  • NPTS value qualification threshold
  • the message (MEin_i) consists of sub-messages (RSin_1), (RSin_2), and (RSin_3), a combination of 3 words of 6z bits.
  • RSin_1 sub-messages
  • RSin_2 sub-messages
  • RSin_3 sub-messages
  • 2 6z an input value given z coded on 4 bits, 2 6z is equal to 2 24, that is to say nearly 1 6 million values
  • This message (MEin_i) is associated with the label (Lin i) worth “two", in this case, and is stored in the associative memory (10) of the semantic representation unit (100_2).
  • the sequencing unit (Sec) controls, via the communication buses (S_P2) between the semantic representation unit of a label (100_2) and the sequencer (Sec) and (S_MA) between the associative memory unit ( 10) and the sequencer (Sec), the organization of perceived messages.
  • An associative memory (10) associates the label (LoutJ) from the unit (100_1) and the label (Loutj) from the unit (100_2) in order to output a label (Lout_k) corresponding to the value of the number "two In context. For example, this device validates the "one" digit, contextually positioned to the right of the "two” previously perceived to form the number "twenty-one".
  • the dynamic attractor (80_0) of this unit (100_1) delivers the elementary semantic representations:
  • G_1 global (G_1) words of 2z bits transformed into elementary semantic representation of color; barycentre hue and saturation (t 0 , s 0 ) and range of distribution of data along the two axes T and S (ag 0 , bg 0 ) respectively corresponding to sub-messages (RSi-1) and (RSi-2).
  • D_1 dynamic (D_1) words of 2z bits transformed into elementary semantic representation of movement; barycentre direction and speed of movement (dir 0 , vit 0 ) and range of distribution of the data along the two axes Dir and Vit (ado, bd 0 ) respectively corresponding to sub-messages (RSi-3) and (RSi-4) .
  • the set of elements (RSi_1) to (RSi-8) constitutes the sub-message (RSin_0).
  • MEoutJ outgoing message grouping n sub-messages (RSout_1) to (RSout_n) n number of sub-messages entered (RSin_i) or output (RSout_i)
  • V_i input validation value (L_i)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Dispositif RAM automatisé apte à mémoriser, rappeler et gérer de manière non volatile, des associations de messages versus label et vice versa, avec un maximum de vraisemblance Dispositif de mémoire associative RAM automatisé non volatile apte à mémoriser, détecter, et retrouver de manière non volatile des associations de messages versus labels et vice versa avec un maximum de vraisemblance. La mémoire associative (10) est constituée d'une unité de séquencement (μ P) connectée à une unité mémoire RAM non volatile (5) segmentée en deux pages mémoires contiguës (1) et (2), segmentées chacune en deux banques mémoires contiguës, respectivement (1_a), (1_b) et n ensembles (2c_i), (2d_i). Le séquenceur (μ P) intégrant un programme (6), mémorise, détecte, et retrouve une association de message (MEin_i), versus label (Lout_i) et respectivement (Lin_j) pour (MEout_j). Le message (ME) est constitué de n sous- messages (RS_x) de w bits lié au label (L) de v bits par la valeur d'un compteur (3) positionné en adresse basse zéro.. Le dispositif selon l'invention s'applique dans le domaine des neurosciences en tant que module mémoire neuromorphe électronique intégré.

Description

Dispositif RAM automatisé apte à mémoriser, rappeler et gérer de manière non volatile, des associations de messages versus label et vice versa, avec un maximum de vraisemblance
Domaine de l'invention
La présente invention concerne un dispositif automatisé apte à mémoriser, rappeler et, gérer de manière non volatile, des associations de messages versus labels et vice versa, avec un maximum de vraisemblance. Elle concerne également un système de mémorisation des apprentissages de réseaux de populations neuronales.
L'invention s'applique notamment pour l'implémentation de réseaux de neurones sur silicium pour le traitement de signaux divers, y compris des signaux multidimensionnels comme la représentation sémantique de perception d'images, de son ou d'autres modalités perçues indépendamment ou simultanément par exemple. Plus généralement, l'invention permet la réalisation efficace, à base d'éléments standards tels qu'un microcontrôleur associé à une mémoire RAM non volatile, d'une chaîne complète du traitement du signal par l'approche bio-inspiré de réseaux de populations neuronales. Elle permet aussi la réalisation efficace de méthodes de traitement du signal conventionnelles, utile par exemple en prétraitement avant le traitement neuronal et/ou en post-traitement.
Etat de la technique
La mémoire de l'être humain est fondamentalement associative : on retient mieux lorsqu'on peut relier la nouvelle information à des connaissances déjà acquises et solidement ancrées dans notre mémoire. Et ce lien sera d'autant plus efficace qu'il a une signification pour nous. Plutôt que la simple évocation de traces fixes, la mémoire est donc aujourd'hui considérée comme un processus continuel de récatégorisation découlant d'un changement continu des voies antagonistes neuronales et du traitement en parallèle de l'information dans le cerveau.
La technique tente de copier ces processus en utilisant principalement le procédé électronique appelé mémoire associative ou mémoire adressable par contenu (CAM, en anglais Content-Addressable Memory). Un état des développements en a été fait dans la publication de K. Pagiamtzis et A. Sheikholeslami, « Content-addressable memory (CAM) circuits and architectures : A tutorial and survey » IEEE Journal of Solid-State Circuits, vol. 41 , no. 3, pp. 712-727, Mar 2006.
Ces technologies ont donné lieu à plusieurs développements publiés dans le domaine des sciences neuronales dont celle de :
• V. Gripon and C. Berrou, "Sparse neural networks with large learning diversity," IEEE trans. on Neural Networks, vol. 22, n 7, pp. 1087-1096, July 201 1 . Cet article donne une définition de :
o la diversité d'apprentissage grâce à la parcimonie (en tant que traduction de l'anglais sparsity) de l'information à partir d'une quantité d'informations mémorisées M, dans la description qui suit : égale à 2V avec une quantité de codes correspondant au sous-message l=2w, le message k étant constitué de c sous-messages (dans la description qui suit : un message ME constitué de n sous-messages RS). La longueur du message ME est donc de longueur n fois w bits et la diversité de mémorisation est de n2w. o La densité d qui, pour une valeur de M »c (ici 2V » n=8) et pour M« I2 (ici 2V « 22w), est proche de M/12 soit dans la description qui suit :
d= 2722w ou 2v"2w
Cette densité se doit d'être faible afin d'éviter la confusion des messages appris correspondant au taux d'erreurs admissibles, avec les valeurs de v=1 6 et w=24, d=2"32 soit un taux d'erreurs proche de 0,25x10"9.
Associé à cet article, les auteurs ont déposés deux brevets : FR2964222A1 et FR2980876A1 décrivant un dispositif neuronal utilisant ces principes.
· Hooman Jarollahi, Vincent Gripon, Naoya Onizawa, and Warren J. Gross « A low-power Content-Addressable Memory based on clustered-sparse networks » ASAP, 2013 IEEE 24th int. conférence.
• F. Leduc-Primeau, V. Gripon, M. G. Rabbat, and W. J. Gross, "Clusterbased associative memories built from unreliable storage, " in Proc. Of IEEE Intl. Conf. on Acoustics, Speech, and Signal Processing (ICASSP), May 2014.
• Demetrio Ferro, Vincent Gripon, Xiaoran Jiang, "Nearest Neighbour Search Using Binary Neural Networks" International Joint Conférence on Neural Networks (IJCNN) 2016. Toutes ces approches de mémorisation par association ne permettent pas un fonctionnement concomitant dans les deux sens (bottom up and top-down) existant dans le vivant et permettant le bouclage dynamique de l'information. D'autre part, les éléments mémorisés ne sont pas transférables simplement d'un support à un autre support.
Une autre approche a été abordée par P. Pirim, auteur de cette présente invention, dans le but de pallier ces inconvénients dans une publication : "Perceptive Invariance and Associative Memory Between Perception and Semantic Représentation, USER a Universal Semantic Représentation Implemented in a System on Chip (SoC)" publié dans Living Machines 2016, LNAI 9793, pp. 275-287, 201 6. Cette première approche succincte, a été suivie de nombreuses améliorations décrites dans cette invention. Un nouveau modèle de la mémoire associative a été créé en intégrant les nouvelles techniques MRAM associé à un séquenceur type microcontrôleur permettant la correction d'erreur par un calcul de maximum de vraisemblance dans une grande intégration à cout réduit.
Objectif de l'invention
L'invention concerne donc un dispositif automatisé apte à mémoriser, rappeler et, gérer de manière non volatile des associations de messages versus labels et inversement avec un maximum de vraisemblance, appelé « mémoire associative » dans la suite du texte.
- Le dispositif de mémoire associative (10) composée d'une unité mémoire RAM non volatile (5) piloté par une unité de séquencement (μΡ), selon l'invention cette unité mémoire (5) soit partagée au minimum en deux pages mémoires contiguës :
• La première page (1 ), débutant en adresse basse soit constituée de deux banques mémoire de taille identiques de 2V mots de v bits (1 a) et (1 b).
• La seconde page soit constituée de un à n sous-pages identiques (2_1 à 2_n), chaque sous-page étant constituée de deux banques mémoires contiguës de taille 2W mots de v bits pour la première (2c) et de 2V mots de w bits pour la seconde (2d).
Dans divers modes de mise en œuvre de l'invention, les moyens suivants pouvant être utilisés seuls ou selon toutes les combinaisons techniquement envisageables, sont employés : avant la première utilisation, l'unité mémoire soit intégralement initialisée à zéro par l'unité de séquencement (μΡ),
le mot de v bits positionné à la première adresse basse de la première banque mémoire (1 a) de la première page (1 ) corresponde à la valeur d'un compteur binaire (3) de v bits,
lors de la mémorisation d'une association entre un message (MEinj) de w bits à n.w bits, (RSin_1 ) étant l'élément de w bits de poids fort, index (Pt) égal à un, suivi du deuxièmes élément de w bits (RSin_2), index (Pt) égal à deux, et ainsi de suite en séquence jusqu'au dernier élément de w bits de poids faible (RSin_n), index (Pt) égal à n, et un label (Lin i) de v bits, l'unité de séquencement (μΡ), en séquence:
a) Incrémente d'une unité la valeur du compteur (3),
b) lit le label (Lin i) de v bits présenté sur l'entrée de la mémoire associative
(1 0),
c) lit et mémorise cette valeur du compteur (3) dans la banque mémoire (1 a) de la première page (1 ), port entrée (In), à l'adresse mémoire (Adr) défini par la valeur du label (Lin i),
d) mémorise cette valeur du label (Lin i) dans la banque mémoire (1 b) de la première page (1 ), port entrée (In), à l'adresse mémoire (Adr) défini par la valeur du compteur (3),
e) initialise à un le pointeur (Pt) représentant l'index du sous-message (RSin_Pt) et de la sous-page (Pt) de la seconde page,
f) lit le sous-message (RSin_Pt), indexé par la valeur (Pt), du message (MEinj) de w bits présenté sur l'entrée de la mémoire associative (1 0),
g) mémorise la valeur du compteur (3) dans le port entrée (In) de la banque mémoire (2d) de la seconde page (2_Pt), à l'adresse mémoire (Adr) défini par la valeur du sous-message (RSin_Pt),
h) mémorise cette valeur du sous-message (RSin_Pt) dans le port entrée (In) de la banque mémoire (2c) de la seconde page (2_Pt) à l'adresse mémoire (Adr) défini par la valeur du compteur (3),
i) finalise la séquence pour (Pt) égal n, sinon le pointeur (Pt) est incrémenté d'une unité et la séquence reprend en f.
lors de la présentation message (MEinj) de w bits à n.w bits, (RSin_1 ) étant l'élément de w bits de poids fort, index (Pt) égal à un, suivi du deuxièmes élément de w bits (RSin_2), index (Pt) égal à deux, et ainsi de suite en séquence jusqu'au dernier élément de w bits de poids faible (RSin_n), index (Pt) égal à n, la recherche du label correspondant s'effectue à l'aide de l'unité de séquencement (μΡ), qui en séquence:
a) initialise à un le pointeur (Pt) correspondant à l'index de la sous-page (Pt) de la seconde page,
b) lit le sous-message (RSin_Pt) de w bits, indexé par la valeur (Pt), du message (MEin_i), présenté sur l'entrée de la mémoire associative (1 0),
c) lit la valeur du pointeur (Cpt_Pt) de la banque mémoire (2d) de la seconde page (2_Pt), port de sortie (Out), à l'adresse mémoire (Adr) défini par la valeur du sous-message (RSin_Pt),
d) sauvegarde la valeur (Cpt_Pt) dans une unité (4) d'analyse de vraisemblance qui détermine la valeur (Cpt_out) correspondant à la valeur (Cpt_Pt) la plus représentée parmi les n valeurs sauvegardées durant la séquence,
e) compare la valeur du pointeur (Pt) à la valeur n, en cas de non égalité le pointeur (Pt) est incrémenté d'une unité et la séquence reprend en b, sinon continue en f,
f) lit la valeur du label (Lout_i) de la banque mémoire (1 b) de la première page (1 ), port de sortie (Out), à l'adresse mémoire (Adr) défini par la valeur du pointeur (Cpt_out),
g) positionne en sortie de la mémoire associative (10) la valeur du label (Lout_i) trouvé.
lors de la présentation d'un label (Lin i) de v bits, la recherche du message correspondant (MEout_i) s'effectue à l'aide de l'unité de séquencement (μΡ), qui en séquence:
a) lit le label (Lin i) de v bits présenté sur l'entrée de la mémoire associative
(1 0),
b) lit la valeur du pointeur (Cpt) de la banque mémoire (1 a) de la première page mémoire (1 ), port de sortie (Out), à l'adresse mémoire (Adr) défini par la valeur du label (Lin i),
c) initialise à un le pointeur (Pt) correspondant à l'index de la sous-page (Pt) de la seconde page,
d) lit le sous-message (RSout_Pt) de w bits, indexé par la valeur (Pt), du message (MEout_i), port de sortie (Out) de la banque mémoire (2c) de la seconde page (2_Pt) à l'adresse mémoire (Adr) défini par la valeur du pointeur (Cpt),
e) positionne en sortie de la mémoire associative (10) la valeur (RSout_Pt) de w bits du message (MEout_i) trouvé en position (Pt),
f) finalise la séquence pour (Pt) égal n, sinon le pointeur (Pt) est incrémenté d'une unité et la séquence reprend en d.
la mémoire associative (10) comporte un port de contrôle permettant :
• les commandes externes :
o d'initialisation générale
o de mémorisation associative
o de détection de message
o de recherche de message
o de transfert des mémorisations des associations dans les deux sens
• et l'analyse de statuts :
o signal de traitement en cours
o signal de débordement de la valeur du compteur (3)
les unités de bases mémoire associative (10_x) se connectent en mode pyramidal inverse, un premier niveau de p unités de base de Mémoire Associative reçoit p messages et génère p labels qui se connectent chacun en tant que sous-message d'une unités de base de Mémoire Associative en second niveau en générant un label récapitulatif des sous-messages entrant, et inversement, un second label récapitulatif entrant dans cette unité de base de mémoire associative génère un ensemble de sous-messages qui se connectent en tant que label associé à un sous-message à l'ensemble des p unités de base de mémoire associative du premier niveau et délivre un ensemble de p messages.
le sous-message (RSout_x) de w bits sortant de l'unité Mémoire Associative (10) soit connecté à l'unité de registres d'entrée (77) d'un attracteur dynamique (80_x) et que l'unité de registres résultat (76) de ce même attracteur dynamique délivre le sous-message entrant (RSin_x) de w bits de l'unité mémoire associative (10). chaque sous-message, entrant (RSin_i) et sortant (RSout_i), soient associés à un attracteur dynamique (80_i) lié à ses voisins par une fonction d'inhibition des calculs antécédents (87) et recevant en commun, les signaux (G), (D), (S) et (P) de l'unité de transfert de traduction (71 ). - l'unité de représentation sémantique d'un label (100) soit constituée :
• D'une unité de transfert de traduction (71 ),
• D'un ensemble de n unités attracteur dynamiques (80) et,
• D'au moins une mémoire associative (10).
- l'utilisation conjointe de deux unités de représentation sémantique d'un label (100), la première unité (100_1 ) recevant un signal (MAP1 ) issue d'une unité de décimation (Dec), la seconde unité (100_2) recevant un signal (MAP2) issue d'une unité de sélection de région d'intérêt (ROI), représente sémantiquement en sortie, un label issu de l'unité (100_2) dans son contexte issu de l'unité (100_1 ). - la détermination de la région d'intérêt (ROI) soit faite à partir des données issues de l'attracteur dynamique (80) de l'unité de représentation sémantique d'un label (100_1 ) par une unité de séquencement (Sec).
- la valeur de décimation de l'unité de décimation (Dec) soit fonction de la valeur de courbure (cb0) calculée par l'unité de représentation sémantique d'un label (100_1 ) recevant les données (MAP1 ) décimées,
- les résultats de contexte et de label soient associés entre eux par une mémoire associative (10) afin de délivrer une représentation sémantique augmentée.
L'invention concerne également l'application suivante du dispositif précédent suivant toutes leurs variantes possibles :
- ce dispositif soit intégré en un module électronique.
Description de l'invention
La présente invention va maintenant être exemplifiée dans la description qui suit, sans pour autant en être limitée, et en relation avec les figures suivantes :
la figure 1 représente, dans sa généralité, un dispositif selon l'invention décrivant l'unité mémoire associative (10),
la figure 2 une illustration du mode écriture de l'unité mémoire associative (10), la figure 3, un organigramme présentant les commandes en séquence du mode écriture de l'unité mémoire associative (10) selon l'invention,
la figure 4, une illustration du mode de détection d'un message (MEoutj) à partir d'une présentation d'un label (Lin i),
la figure 5, un organigramme présentant les commandes en séquence du mode de détection d'un message (MEoutj) à partir d'une présentation d'un label (Lin i), selon l'invention, la figure 6, une illustration du mode de fonctionnement de l'unité de Mémoire Associative (10) en mode recherche de label (LoutJ) à partir d'un message (MEinJ), la figure 7, un organigramme présentant les commandes en séquence du mode de recherche, de label (LoutJ) à partir d'un message (MEinJ),
la figure 8, un exemple d'assemblage en mode pyramidal de trois unités mémoire associative (10_1 ) à (10_3) créant l'unité de base générateur universel de graphe hiérarchique (60),
la figure 9, une illustration du mode de composition d'un graphe, utilisant le générateur universel de graphe hiérarchique (60), générant un label à partir des traitements des messages mémorisés,
la figure 10, un exemple d'unité de représentation sémantique d'un label (100) à base de mémoire associative (10) en combinaison d'unités attracteurs dynamiques (80J) associés à une unité de transfert de traduction (71 ),
les figures 11a et 11 b, une illustration de la fonction de transfert de l'unité de traduction (71 ),
les figures 12a à 12d, une illustration de l'organisation des calculs d'histogrammes bilinéaires de l'unité attracteur dynamique (80J),
La figure 13, un exemple d'utilisation d'une unité de mémoire associative (10) commandant la réponse à un stimulus,
La figure 14, une utilisation d'un dispositif de vision intégrant deux unités de représentations sémantiques, contexte et locale d'un label (100), en relation avec une mémoire associative (10).
La figure 15, une illustration de la perception visuelle contextuelle et locale d'un élément perçu, chiffre deux, du dispositif de vision de la figure 14.
La figure 16, l'extraction, par un attracteur dynamique (80_0), des représentations sémantiques contextuelles d'un élément perçu du dispositif de vision de la figure 14. La figure 17, l'extraction, par les attracteurs dynamiques (80_1 ) à (80_3), des représentations sémantiques élémentaires locales d'un élément perçu du dispositif de vision de la figure 14.
Description détaillée de l'invention
La figure 1 décrit l'organisation globale de cette unité mémoire associative (10) en tant que dispositif. Cette unité se compose de deux parties principales, une unité de séquencement (μΡ) connectée, en mode standard ou DDR-x, à une unité mémoire RAM non volatile (5).
Cette mémoire RAM (5) est segmentée en deux pages mémoires contiguës, elles- mêmes segmentées chacune en deux banques mémoires contiguës.
· La première page mémoire (1 ) débutant en adresse basse, se compose de deux banques mémoires contiguës (1 a) et (1 b) composée chacune de 2V mots de v bits. La banque mémoire (1 a) a pour première adresse zéro dans l'unité mémoire RAM (5) et contient, à l'adresse zéro de la banque mémoire (1 a), un mot de v bits représentant la valeur d'un compteur Cpt (3). La seconde banque de cette première page (1 ) débute en adresse 2V de l'unité mémoire RAM (5).
• La seconde page mémoire, débutant en adresse 2x2v de unité mémoire RAM (5), est segmentée en n sous-pages mémoire, de tailles égales (2_1 ) à (2_n), comprenant chacune deux banques mémoires contiguës dénommées (2c), composée de 2V mots de w bits, pour la partie basse et (2d), composée de 2W mots de v bits, pour la partie haute.
L'unité de séquencement (μΡ) comporte, en mode standard, un bus de contrôle d'écriture (Wr), d'adresses (Adr) et de données (DATA) en liaison avec l'unité mémoire (5) (mode standard d'écriture/lecture mémoire RAM). Cette unité de séquencement (μΡ) communique, lit et enregistre les données de la mémoire RAM (5) avec l'extérieur par l'intermédiaire de deux ports entrée (MEin_i) et (LinJ) et de deux ports de sortie (ME_outJ) et (Lout_i), associés à un index (Pt) donnant le rang du sous-message (RSin_Pt), en entrée, et (RSout_Pt) en sortie. Ces données sont traitées par un programme logiciel (6) inclus dans l'unité de séquencement (μΡ), en fonction d'informations transmises par un bus de commande et de statuts externe en liaison avec cette unité de séquencement (μΡ), en assurant les différents modes fonctionnels de cette unité de mémoire associative (10) :
• passif (arrêt des diverses fonctions),
• lecture en relation avec les figures 4 et 6,
• transfert,
· écriture en relation avec la figure 2, et
• initialisation. Le tableau ci-dessous donne la correspondance entre la valeur des signaux (En), (Wr) et (T) du bus de commande et le mode fonctionnel du programme logiciel (6) sélectionné :
Figure imgf000012_0001
Le programme logiciel mode « Arrêt », activé par la mise à zéro du signal de commande (En), coupe l'alimentation de l'unité mémoire RAM (5) et maintient cette action tant que le signal de commande (En) reste à ce niveau. La remise sous- tension de l'unité mémoire RAM (5) a lieu dès que le signal de commande (En) passe à un.
Le programme logiciel mode « Initialisation », activé par la mise à 1 des signaux (En), (Wre), et (T) du bus de commande de l'unité de séquencement (μΡ), force l'écriture de la valeur 0 dans toutes les adresses mémoires de la mémoire (5). Chaque page mémoire, sous-page mémoire et banque mémoire associée sont ainsi initialisées à zéro. L'adresse zéro de la première page, banque (1 a) représentant la valeur du compteur (3) est ainsi initialisée à zéro. Cette initialisation est nécessaire avant l'utilisation générale de la mémoire associative : le compteur permet d'associer 2V-1 message vs label, tous diffèrent de la valeur zéro.
Le programme logiciel mode « Transfert », activé par la mise à 1 des signaux (En) et (T) et à zéro du signal (Wre), détaille le mode transfert de connaissance d'une unité Mémoire Associative (10) vers une unité externe. L'organisation interne de cette unité (10) correspond à la description faite de la figure 2 à l'exception du signal binaire (Wr) qui est non valide et d'un signal binaire de transfert externe (IncT) qui est connecté sur l'entrée d'incrément de l'unité de comptage (3). Avant l'opération de transfert, la valeur (Cpt) du compteur (3) est sauvegardée. Toutes les sous-unités mémoires (2_1 ) à (2_n) et (1 ) sont en mode lecture et valide respectivement sur leurs port de sortie (Out) les sous-messages (RSout_1 ) à (RSout_n) correspondant au message (MEout_i) et (Loutj) accessible à l'extérieur de l'unité Mémoire Associative (10). Le mode transfert débute par une initialisation à zéro de l'unité de comptage (3) en validant le signal binaire externe (Rst) pendant un court instant, puis le signal externe de transfert (IncT) est activé et désactivé par cycle de lecture. A chaque cycle de lecture, un couple de message (MEout_i) et label (Lout_i) est lu, un couple valant zéro indique la fin du transfert. La valeur (Cpt) du compteur (3) correspondant au dernier lien enregistré est alors repositionnée en adresse zéro de la première page, banque (1 a).
Pour un transfert de connaissance de p informations d'une unité Mémoire Associative (10_1 ) dans une unité Mémoire Associative (10_2) possédant une connaissance de q informations, les sorties sous-messages (RSout_a1 ) à (RSout_a4) et label (Lout_a) de la première unité Mémoire Associative (10_1 ) sont connectées respectivement sur les entrées sous-messages (RSin_a1 ) à (RSin_a4) et label (Lin_a) de la seconde unité Mémoire Associative (10_2). Le signal (En) positionné à un, connecté sur les deux unités (10_1 ) et (10_2), valide ces unités. Une courte validation de signal binaire (Rst) sur l'unité (10_1 ) initialise à zéro le compteur (3) interne. Le signal de transfert (IncT) est connecté sur l'entrée (T) de la première unité (10_1 ) et sur l'entrée (Wr) de la seconde unité (10_2). Les entrées (Wr) de la première unité (10_1 ) et (R), (T) de la seconde unité (10_2) sont mises à zéro (non valide). L'horloge de séquencement (Ck) est connectée sur les deux unités (10_1 ) et (10_2). Puis le signal externe de transfert (IncT) est activé et désactivé par cycle de lecture. A chaque cycle de lecture, un couple de message (MEout_i) et label (Loutj) est transféré de l'unité (10_1 ) à (10_2), un couple valant zéro indique la fin du transfert. En fin de transfert, l'unité Mémoire Associative (10_2) contient p+q couples message-label. Chaque unité (10_1 ) et (10_2) redevient libre de mémoriser un nouveau couple, le premier après les p enregistrés, le second après les p+q enregistrés.
Les autres modes fonctionnels sont décrits dans les figures suivantes.
La figure 2 détaille les moyens électroniques, unité par unité, du mode « Ecriture » de l'unité mémoire associative (10) consistant à mémoriser un message (MEin_i), composé de n sous-messages (RSin_1 ) à (RSin_n), en association à un label (Lin i) à une adresse mémoire interne commune ayant la valeur i égale à (Cpt[v-1 :0]) délivrée par l'unité de comptage de 2V valeurs (3), incrémenté d'une valeur unitaire à chaque action de mémorisation.
Cette unité Mémoire Associative (10) comporte les unités décrites en figure 1 schématiquement éclatées afin de présenter les différents flux de données mis en œuvre lors de la fonction de mémorisation associative. Ainsi chaque banque mémoire de la mémoire RAM (5) est présentée séparément en explicitant leurs interfaces propres, à savoir un port entrée données (In), un port sortie données (Out), un port entrée adresse mémoire (Adr) et un signal d'écriture (Wr), ce qui est suffisant pour un fonctionnement en mode asynchrone, un signal supplémentaire d'horloge (Ck) est nécessaire pour le mode synchrone (non représenté sur le schéma).
Le mode écriture de l'unité Mémoire Associative (10) est activé par la validation des signaux binaire (En)=1 et (Wr)=1 positionnés sur le port de commande de l'unité de séquencement (μΡ).
La validation du signal binaire (Wr) incrémente d'une unité l'unité de comptage de 2V valeurs (3) et la non validation suivante du signal binaire (Wr) mémorise les données présentes sur le port entrée (In) en adresse définie sur le port entrée adresse mémoire (Adr) en mode asynchrone.
Dans la première page mémoire (1 ), la banque mémoire (1 a) de 2V mots de v bits reçoit sur son port d'entrée (In) la valeur i du compteur binaire (3) et sur son port d'adresse mémoire (Adr) le label (Lin i). La banque mémoire (1 b) de 2V mots de v bits reçoit sur son port d'entrée (In) le label (Lin i) et sur son port d'adresse mémoire
(Adr) la valeur i du compteur binaire (3).
La seconde page mémoire se compose de n sous-pages mémoires notées de (2_1 ) à (2_n) égales comprenant chacune deux banques mémoires contigues dénommées (2c), composée de 2V mots de w bits, pour la partie basse et (2d), composée de 2W mots de v bits, pour la partie haute.
La banque mémoire (2c) de 2V mots de w bits sur son port d'entrée (In) et la banque mémoire (2d) de 2W mots de v bits sur son port d'adresse mémoire (Adr) reçoivent respectivement le sous-message (RSin_1 ) pour la sous-page mémoire (2_1 ) jusqu'au sous-message (RSin_n) pour la sous-page mémoire (2_n).
La banque mémoire (2c) de 2V mots de w bits sur son port d'adresse mémoire (Adr) et la banque mémoire (2d) de 2W mots de v bits sur son port d'entrée (In) reçoivent la valeur i du compteur binaire (3).
En mode synchrone, le signal d'horloge (Ck) de séquencement, présenté sur chaque banque mémoire, valide la mémorisation générale de toutes les sous-unités mémoire présente dans cette unité Mémoire RAM (5). Le nombre d'opérations de mémorisation de cette unité Mémoire Associative (10) est limité par la valeur maximale 2V -1 de l'unité de comptage (3) qui délivre pour cette valeur un signal binaire de limite (F).
Toutes ces fonctions décrites précédemment dans cette figure 1 sont assurées par une unité de séquencement (μΡ) qui adresse la mémoire (5) dans sa bonne page et à la bonne banque en mode lecture ou écriture mémoire en fonction des commandes externes (En), (Wre), et (T).
La figure 3 représente, sous forme de d'organigramme fonctionnel logiciel, la fonction de mémorisation décrite en figure 2 et implémentée dans le programme logiciel (6).
Lors de la mémorisation d'une association entre un message (MEin_i) de w bits à n.w bits, (RSin_1 ) étant l'élément de w bits de poids fort, suivi du deuxièmes élément de w bits (RSin_2) et ainsi de suite en séquence jusqu'au dernier élément de w bits de poids faible (RSin_n) et un label (Lin i) de v bits, l'unité de séquencement
(μΡ), en séquence:
a) incrémente d'une unité la valeur du compteur (3),
b) lit le label (Lin i) de v bits présenté sur l'entrée de la mémoire associative (10), c) mémorise cette valeur du compteur (3) dans la banque mémoire (1 a) de la première page (1 ), port entrée (In), à l'adresse mémoire (Adr) défini par la valeur du label (Lin i),
d) mémorise cette valeur du label (Lin i) dans la banque mémoire (1 b) de la première page (1 ), port entrée (In), à l'adresse mémoire (Adr) défini par la valeur du compteur (3),
e) initialise à un le pointeur (Pt) représentant l'index du sous-message (RSin_Pt) et de la sous-page (Pt) de la seconde page,
f) lit le sous-message (RSin_Pt), indexé par la valeur (Pt), du message (MEin_i) de w bits présenté sur l'entrée de la mémoire associative (10),
g) mémorise la valeur du compteur (3) dans le port entrée (In) de la banque mémoire (2d) de la seconde page (2_Pt), à l'adresse mémoire (Adr) défini par la valeur du sous-message (RSin_Pt),
h) mémorise cette valeur du sous-message (RSin_Pt) dans le port entrée (In) de la banque mémoire (2c) de la seconde page (2_Pt) à l'adresse mémoire (Adr) défini par la valeur du compteur (3),
i) finalise la séquence pour la valeur (Pt) égale à n, sinon le pointeur (Pt) est incrémenté de un et la séquence reprend en f. La figure 4 détaille les moyens électroniques, unité par unité, du mode « lecture » de l'unité mémoire associative (10), qui, à partir de la présentation d'un label (Lin i), retrouve le message (MEout_i) associé.
Cette unité Mémoire Associative (10) comporte les unités décrites en figure 2 schématiquement éclatées afin de présenter les différents flux de données mis en œuvre lors de la fonction de lecture label vers message.
Dans la première page mémoire (1 ), la banque mémoire (1 a) de 2V mots de v bits reçoit sur son port d'adresse mémoire (Adr) le label (Lin i) et positionne sur son port de sortie (Out) la valeur i de v bits du compteur binaire (3).
Cette valeur i de v bits du compteur binaire (3) est présentée sur le port adresse mémoire (Adr) de la banque mémoire (2c) qui positionne en sortie (out) le sous message (RSout_Pt), de la sous-page (2_Pt) de chacune des n sous-pages (2_1 ) à (2_n) pour une valeur de (Pt) variant de 1 à n, et la valeur (Pt) sur un bus externe à l'unité mémoire associative (10).
La figure 5 représente, sous forme d'organigramme fonctionnel logiciel, la fonction de lecture label vers message décrite en figure 4 et implémentée dans le programme logiciel (6).
Lors de la présentation d'un label (Lin i) de v bits, la recherche du message correspondant s'effectue à l'aide de l'unité de séquencement (μΡ), qui en séquence: a) Lit le label (Lin i) de v bits présenté sur l'entrée de la mémoire associative (10), b) lit la valeur du pointeur (Cpt) de la banque mémoire (1 a) de la première page mémoire (1 ), port de sortie (Out), à l'adresse mémoire (Adr) défini par la valeur du label (Lin i),
c) Initialise à un le pointeur (Pt) correspondant à l'index de la sous-page (Pt) de la seconde page,
d) Lit le sous-message (RSout_Pt) de w bits, indexé par la valeur (Pt), du message (MEout_i), port de sortie (Out) de la banque mémoire (2c) de la seconde page (2_Pt) à l'adresse mémoire (Adr) défini par la valeur du pointeur (Cpt),
e) Positionne en sortie de la mémoire associative (10) la valeur (RSout_Pt) de w bits du message (MEout_i) trouvé en position (Pt),
f) Finalise la séquence pour la valeur de (Pt) égale à n, sinon incrémente de une unité le pointeur (Pt) et la séquence reprend en d. La figure 6 détaille les moyens électroniques, unité par unité, du mode « lecture » de l'unité Mémoire Associative (10), qui à partir de la présentation d'un message (MEinJ) retrouve le label (LoutJ) associé.
Cette unité Mémoire Associative (10) comporte les unités décrites en figure 2 schématiquement éclatées afin de présenter les différents flux de données mis en œuvre lors de la fonction de lecture message vers label ainsi qu'une unité de sélection de maximum de vraisemblance (4).
Le message (MEinJ) de w bits à n.w bits, composé des n sous-messages (RSin_1 ) à (RSin_n) pointés par un index (Pt) donnant le rang du sous-message dans le message (MEinJ) est lu séquentiellement, par mot de w bits correspondant à un sous-message indexé par la valeur (Pt), et transmis en tant qu'adresse mémoire (Adr) de la banque mémoire (2d) de la page (2_Pt). Cette banque mémoire (2d) délivre sur son port (Out) une valeur (Cpt_Pt) qui est transmise à l'unité de sélection de maximum de vraisemblance (4).
Cette unité (4) reçoit les valeurs de (Cpt_1 ) à (Cpt_n), en extrait la valeur la plus représentée de cet échantillon de n valeurs qui devient la valeur (Cpt_out) transmise à l'adresse mémoire (Adr) de la banque (1 b) de la plage (1 ) et, qui délivre à son tour sur son port (Out) la valeur du label (LoutJ).
Dans le cas où la sous-unité (41 ) de l'unité (4) trouve deux données distinctes en quantité équivalente, arbitrairement c'est la donnée la plus faible qui est choisi. C'est par exemple la perception visuelle d'une figure indécidable comme le blivet de Norman Mingo.
La figure 7 représente, sous forme d'organigramme fonctionnel logiciel, la fonction de lecture message vers label décrite en figure 6 et implémentée dans le programme logiciel (6).
Lors de la présentation d'un message (MEinJ) de w bits à n.w bits, (RSin_1 ) étant l'élément de w bits de poids fort, suivi du second élément de w bits (RSin_2) et ainsi de suite en séquence jusqu'au dernier élément de w bits de poids faible (RSin_n), la recherche du label correspondant s'effectue à l'aide de l'unité de séquencement (μΡ), qui en séquence:
a) initialise à un le pointeur (Pt) correspondant à l'index de la sous-page (Pt) de la seconde page,
b) lit le sous-message (RSin_Pt) de w bits, indexé par la valeur (Pt), du message (MEinJ), présenté sur l'entrée de la mémoire associative (10), c) lit la valeur du pointeur (Cpt_Pt) de la banque mémoire (2d) de la seconde page (2_Pt), port de sortie (Out), à l'adresse mémoire (Adr) défini par la valeur du sous-message (RSin_Pt),
d) sauvegarde la valeur (Cpt_Pt) dans une unité d'analyse de vraisemblance (4) qui en détermine la valeur (Cpt_out) correspondant à la valeur (Cpt_Pt) la plus représentée parmi les n valeurs sauvegardées durant la séquence,
e) compare la valeur du pointeur (Pt) à la valeur n, en cas de non égalité le pointeur (Pt) est incrémenté d'une unité et la séquence reprend en b, sinon continue en f, f) lit la valeur du label (Lout_i) de la banque mémoire (1 b) de la première page mémoire (1 ), port de sortie (Out), à l'adresse mémoire (Adr) défini par la valeur du pointeur (Cpt_out),
g) positionne en sortie de la mémoire associative (10) la valeur du label (Lout_i) trouvé.
La figure 8 représente une utilisation de trois unités Mémoire Associative (10_1 ) à (10_3) regroupées en un générateur universel de graphe hiérarchique (60) de messages versus label et vice versa, ayant chacune, dans cet exemple non limitatif, une organisation du message en quatre sous-messages, assemblées en deux niveaux hiérarchiques associant en parallèle deux messages entrant (MEin_a) et (MEin_b) à un label sortant (Lout_c) et un label entrant (Lin_c) à deux messages sortant (MEout_a) et (MEout_b). Le message (MEin_a) se compose de quatre sous- messages (RSin_a1 ) à (RSin_a4) en entrée de l'unité (10_1 ), de même, le message (MEout_a) se compose de quatre sous-messages (RSout_a1 ) à (RSout_a4), en sortie de l'unité (10_1 ). L'unité (10_2) possède la même configuration que l'unité (10_1 ), l'indice a étant remplacé par l'indice b. Les labels (Lout_ a) et (Lout_b) forment le message intrant de l'unité (10_3), de même les labels entrant (Lin_a) et (Lin_b) forment le message sortant de l'unité (10_3). Cette unité (10_3) associe son label entrant (Lin_c) au message sortant, constitué des sous-messages (Lin_a) et (Lin_b), et son label sortant (Lout_c) au message entrant, constitué des sous- messages (Lout_a) et (Lout_b). Les sous-messages non présent en entrée de l'unité (10_3) sont représentés par la valeur zéro.
Cet agencement de trois unités Mémoire Associative (10_1 ) à (10_3) permet d'associer les messages (MEin_a) et (MEin_b) au label (Lout_c) et vice versa les messages (MEout_a) et (MEout_b) au label (Lin_c). Cet agencement est non limitatif, il peut être étendu en nombres d'unités Mémoire Associative (10_1 ) à (10_x) et regroupées suivant plusieurs niveaux hiérarchiques, les messages étant alors de taille variables en nombre de sous-messages. Ces arborescences permettent, des apprentissages complexes et variés avec un nombre d'unités Mémoire Associative ( 10 1 ) à (10_x) restreint et, une remémoration complète à partir d'informations partielles perçues.
Par exemple un message (A) représentant le chiffre un et un message (B) représentant le chiffre zéro sont associés respectivement à l'unité mémoire associative (10_1 ) et l'unité mémoire associative (10_2), ces unités délivrent respectivement les labels « un » et « zéro » qui forment le nouveau message pour une unité mémoire associative (10_3) qui délivre un label « dix ». Dans le sens inverse, le label « dix » génère un message comportant deux sous messages de label « un » et « zéro » qui sont introduit respectivement dans les unités mémoire associative (10_1 ) et (10_2) et qui en génère respectivement les représentations élémentaires des chiffres « un » et « zéro », une partie des messages erronés est corrigée.
De même, avec cette organisation, un message 1 associe un (son) avec une unité mémoire associative (10_1 ), et un message 2 associe un (oiseau blanc) avec une unité mémoire associative (10_2), la troisième unité mémoire associative (10_3) associe le label « mouette ». En inverse l'écoute du son spécifique de la mouette est perçue en tant que représentations sémantiques élémentaires décrit par le message 1 qui est introduit dans l'unité mémoire associative (10_1 ) et en fourni un label « son » à l'unité mémoire associative (10_3), son unité de maximum de vraisemblance (4) en déduit le label « mouette ». En retour cette même unité mémoire associative (10_3) génère le message (son) et (oiseau blanc). Le sous message oiseau blanc est introduit en tant que label dans l'unité mémoire associative (10_2) qui en débite un message de représentations sémantiques élémentaires correspondant à la description de cet oiseau afin de le repérer.
La figure 9 représente une extension et une généralisation de l'utilisation de plusieurs générateurs universels de graphe hiérarchique (60) de messages versus label et vice versa. Pour plus de clarté, les signaux binaires de commande (En), (Wr), (T), (Cor), et son horloge de séquencement (Ck) gérant l'ensemble des Mémoire Associative (10) de ces ensembles (60) sont non représentés. Un premier générateur universel de graphe hiérarchique (60_1 ) associe deux messages (A) et (B) à un label (L_AB) et vice versa. Un second générateur universel de graphe hiérarchique (60_2) associe deux messages (C) et (D) à un label (L_CD) et vice versa. Un troisième générateur universel de graphe hiérarchique (60_3) associe les deux labels définis précédemment en tant que messages (L_AB) et (L_CD) à un label (L_ABCD) et vice versa. Un quatrième générateur universel de graphe hiérarchique (60_4) associe le label défini précédemment en tant que messages (L_ABCD) et le message (E) à un label (L_ABCDE) et vice versa.
La figure 10 illustre un exemple d'utilisation de la mémoire associative (10) en combinaison d'unités attracteurs dynamiques (80_i) et d'une unité de transfert de traduction (71 ) définissant l'unité de représentation sémantique d'un label (100). Pour plus de clarté, les signaux de séquencement ont été omis.
L'unité de transfert de traduction (71).
Des données spatio-temporelles (70) issues d'un élément amont, récepteur (92) ou résultats de traitement d'unité de mémoire associative (10), ici non représenté, sont délivrées sur le port entrée (E, P(i,j)) d'une unité de transfert de traduction (71 ) qui débite à son tour d'une manière synchrone, cadencé par un signal d'horloge (Ck), des représentations sémantiques élémentaires référencées en position sur ses ports de sorties (G), (D), (S), et (P). Chaque port de sortie (G), (D), (S), et (P) est connecté indépendamment et respectivement, sur le bus G (72), le bus D (73), le bus S (74) et le bus P (75) de taille identique de 2z bits. Les n unités attracteur dynamique (80_1 ) à (80_n) se connectent à ces quatre bus, respectivement sur leur port d'entrée (G), (D), (S), et (P).
L'unité attracteur dynamique (80_1)
L'unité attracteur dynamique (80_1 ) est représentée plus en détail afin d'en expliciter le fonctionnement, sachant que toutes les unités attracteurs dynamiques (80_1 ) à (80_n) sont de constitution identiques. Cette unité attracteur dynamique (80_1 ) inclut :
• quatre unités traitement statistique (81 _G), (81 _D), (81 _S), et (81 _P) identiques.
Chaque unité traitement statistique (81_x) comporte :
o une unité de calcul histogramme bilinéaire (82), comportant
Une entrée donnée (x) correspondant à (G) ou (D) ou (S) ou (P) suivant l'unité traitement statistique (81 _x),
Une unité de registres résultats (R), Une entrée de validation du calcul d'histogramme bilinéaire (V) et,
une unité de séquencement, ici non représentée, dépendant du mode de fonctionnement, soit par séquence soit par nombre d'événements, qui assure, cycliquement en séquence, la phase d'initialisation, la phase calcul histogramme, la phase mise à jour registres (R) et la phase classification automatique.
La phase d'initialisation consiste à mettre à zéro la mémoire de stockage des calculs d'histogramme et à initialiser les divers registres de calcul.
Durant la phase calcul histogramme, à chaque donnée (x) présentée correspond un signal d'entrée (V) qui valide ou non le calcul.
En fin de séquence ou dès que la valeur maximale de l'histogramme dépasse un seuil paramétré extérieurement, suivant le mode utilisé, les registres (R) sont actualisés ainsi que les registres de l'unité de classification automatique (83). Les valeurs calculées sont, le nombre de calcul (NBPTS), la médiane (Med), la valeur du maximum (RMAX), sa position (PosRMX) et les bornes de classification (A), (B), (C), et (D).
o deux unités de classification, automatique (83) et requête (84), reçoivent chacune les données 2z bits du port d'entrée (x) et délivrent chacune un signal binaire de classification valide pour les z bits de poids fort compris entre ses bornes de classification (A) et (B) et pour les z bits de poids faible compris entre ses bornes de classification (C) et (D),
o une unité booléenne de validation de classification (85) reçoit les signaux binaires de classification des deux unités de classification automatique (83) et requête (84). Le ET logique entre ces deux signaux binaires de classification est transmis hors de l'unité traitement statistique (81 _x).
Une unité booléenne de classification spatio-temporelle (86) reçoit les signaux binaires de classification des quatre unités traitement statistique (81 _G), (81 _D), (81_S), et (81_P) pour en faire un ET logique qui est transmis à l'unité de validation de calcul d'histogramme (87).
Une unité de validation de calcul d'histogramme (87) comprend une unité logique ET à deux entrées dont une inversés (88) et une unité logique OU à deux entrées (89). L'unité logique ET (88) reçoit en direct le signal binaire issu de l'unité logique ET (86) et en inverse le signal binaire entrée (Cin) de l'unité (80_1 ) et délivre un signal binaire de validation de calcul d'histogramme sur l'entrée (V) de chaque unité traitement statistique (81_G), (81_D), (81 _S), et (81_P).
L'unité logique OU (89) reçoit le signal binaire entrée (Cin) de l'unité (80_1 ) et le signal binaire de validation de calcul d'histogramme de l'unité logique ET (88) et délivre un signal binaire d'inhibition sur le port de sortie (Cout) de l'unité (80_1 ). Une unité de registres de sortie (76) comporte les registres (RSi-1 ) à (RSi-q) mis à jour à chaque dépassement de la valeur (NBPTS) par rapport à un seuil paramétré extérieurement. L'ordre des registres (RSi-1 ) à (RSi-p) correspond aux valeurs de médianes (Med-ι, Med2) et à la plage de classification (P-i , P2) défini par l'écart entre les bornes de classification (B) moins (A) et (D) moins (C) pour chaque unités traitement statistique (81_G), (81_D), (81 _S), et (81_P). Soit pour (RSi-1 ) et (RSi-2), respectivement les médianes du mode globale (MedG-i , MedG2) et leur plages respectives (PG-i, PG2), de même pour le mode dynamique, structurale et leur position (MedP-ι, MedP2) correspondant au barycentre énergétique et (PP-i, PP2) à son étendu. Dans cet exemple l'unité de registres de sortie (76) comporte les registres (RSi-1 ) à (RSi-8). En général un certain nombre de registres (RSi-x) ne sont pas exploités car non pertinent. Par exemple la perception visuelle d'un texte possède un mode global uniforme (même couleurs et non déplacement), seul l'aspect structurant apporte une information pertinente, ce qui réduit les huit registres de départ à trois : barycentre, dimension et structure.
Une unité de registres d'entrée (77) comporte les registres (RSo-1 ) à (RSo-q) représentant la même organisation que celle de l'unité de registres de sortie (76). Soit pour (RSo-1 ) et (RSo-2) respectivement les médianes du mode globale (MedG-ι, MedG2) et leur plages respectives (PG-i, PG2), qui sont transformés en bornes de classification (A), (B), (C), (D) tel que la borne (A) soit égale à (MedG-i) - (PGi/2), la borne (B) à (MedG2) + (PG2/2), de même pour les bornes (C) et (D) dans le même ordre.. Ces bornes (A), (B), (C), (D) de classification sont écrites dans l'unité de classification de requête (84). La même opération est répétée pour les autres unités de classification de requête (84) des unités (81_D), (81_S) et (81 _P). Pour une information de z bits plus grand que quatre bits, il est préférable d'étendre la plage de classification en diminuant la borne basse de classification d'une valeur de 1 à 2 bits et en augmentant la borne haute de classification d'une valeur de 1 à 2 bits afin d'élargir la requête. la Mémoire Associative (10)
L'unité Mémoire Associative (10), décrit dans les figures précédentes, dans sa mise en œuvre générique a pour interface avec les unités attracteurs dynamiques (80_1 ) à (80_n) le message (MEinj) constitué de n sous-messages (RSin_1 ) à (RSin_n) et le message (MEoutJ) constitué de n sous-messages (RSout_1 ) à (RSout_n).
Le sous-message (RSin_1 ) est transmis de l'unité de registres de sortie (76) de l'unité attracteur dynamique (80_1 ) au port d'entrée (In) de la sous-unité mémoire (2_1 ) de l'unité Mémoire Associative (10). De même, le sous-message (RSin_2) est transmis de l'unité de registres de sortie (76) de l'unité attracteur dynamique (80_2) au port d'entrée (In) de la sous-unité mémoire (1_2) de l'unité mémoire associative (10), et la transmission continue dans le même ordre jusqu'au rang n.
En inverse, le sous-message (RSout_1 ) est transmis du port de sortie (Out) de la sous-unité mémoire (2_1 ) de l'unité mémoire associative (10) à l'unité de registres d'entrée (77) de l'unité attracteur dynamique (80_1 ). De même, le sous-message (RSout_2) est transmis du port de sortie (Out) de la sous-unité mémoire (1_2) de l'unité mémoire associative (10) à l'unité de registres d'entrée (77) de l'unité attracteur dynamique (80_2), et la transmission continue dans le même ordre jusqu'au rang n.
L'unité mémoire associative (10) comporte :
· un premier ensemble composé de n sous-unités mémoires, composée chacune de 2W mots de w bits, notées de (2_1 ) à (2_n), et recevant chacune sur leur port d'entrée (In) respectivement le sous-message (RSin_1 ) pour la sous-unité mémoire (2_1 ) jusqu'au sous-message (RSin_n) pour la sous-unité mémoire (2_n),
· un second ensemble composé d'une sous-unité mémoire de 2V mots de v bits (1 ) recevant sur le port d'entrée (In) le label (LinJ) et,
• une unité de calcul de maximum de vraisemblance (4) afin de sélectionner la valeur i, k ou autre la plus représentée. Cette unité (4) reçoit du port de sortie (Cadr) de chaque sous-unité mémoire (2_1 ) à (2_n) une valeur i, ou autre k respectivement sur un port entré (L_i) à (L_n) avec leur signal binaire respectif de validation sur l'entré respectivement (V_1 ) à (V_n). Le séquencement interne est assuré par un signal horloge (CK) introduit dans l'unité (4). Le choix du maximum de vraisemblance est positionné sur le port de sortie (L_i), un bus de v bits transmet cette valeur au port entrée (Adr) de la sous-unité mémoire (1 ) qui délivre sur son port de sortie (Out) la valeur du label (Lout_i).
Dans le sens label vers message, le procédé est identique à celui décrit à la figure 4. La présentation de (LinJ) sur le port entrée (In) de la sous-unité mémoire (1 ) entraine la délivrance de la valeur j sur son port de sortie (Cadr), cette valeur j est transmise au bus (AB) au travers d'une unité de choix de valeur de lien (10) et est présentée à toutes les sous-unités mémoire (2_1 ) à (2_n) qui délivre chacune sur son port de sortie (Out) le sous-message respectivement (RSout_1 ) à (RSout_n) qui, ensemble, forme le message (MEoutJ).
Dans le sens inverse, message vers label, les sous-messages (RSin_1 ) à (RSin_n), correspondant au message (MEin_i), sont présentés respectivement sur le port entrée (In) de chaque sous-unité mémoire (2_1 ) à (2_n) qui délivrent chacune une valeur i, ou autre k sur leur port de sortie (Cadr) respectif en association à un signal binaire de validation débité par la sortie (M) de la même sous-unité mémoire. Dans le cas où le sous-message présenté est absent de la sous-unité mémoire, celle-ci délivre sur sa sortie (M) un signal binaire de non validation, la valeur présente sur son port de sortie (Cadr) est alors ignorée.
Décomposition des messages.
Chaque message reçu (MEin) de n.w bits est composé de n sous-messages (RSin_x) de w bits, x variant de 1 à n. De même chaque message (MEout) de n.w bits délivré par la mémoire associative est composé de n sous-messages (RSout_x) de w bits, x variant de 1 à n.
Chaque sous-message est segmenté en q éléments (RSi_x) entrant ou (RSo_x) sortant de z bits correspondant à w/q bits dont le rang de l'élément correspond à une notion de position, dimensionnement et de caractérisation.
• La position est définie par son référentiel (Ref), variant généralement de un à trois, souvent égale à deux pour un couple d'éléments par exemple x et y représentant une relation entre deux distances dans le référentiel (Ref), ou t et f représentant une relation entre temps et fréquence dans le référentiel (Ref). D'une manière générale, c'est la position du barycentre du nuage de données représentant la caractérisation ci-dessus défini par ses éléments du sous- message.
• Le dimensionnement caractérise l'étendu du nuage de données, généralement sa dimension, donc un élément (RSi_x), dans chacun des axes du référentiel (Ref). • La caractérisation est généralement une représentation sémantique élémentaire de type :
• Globale, par exemple non limitatif, une couleur est définie par une tente et une saturation, une voie d'enfant est défini par un fondamental, etc. · Dynamique, par exemple non limitatif, un mouvement est défini par sa vitesse et son orientation, c'est aussi la prosodie d'une voix, etc.
• Structurelle, par exemple non limitatif, un bord est défini par son orientation et sa courbure, un phonème est défini par la répartition de ses formants dans le temps, etc.
Le label se compose d'un mot de v bits, la quantité de labels mémorisable est de 2V- 1 , le label « zéro » étant exclus.
La définition du label est donnée par le message entrant qui peut être incomplet et/ou erroné, d'où une difficulté de retrouver le label. L'utilisation d'un mode ternaire sur certains éléments (RSi_x), correspondant à masque d'un champ de bits appliqué à une partie du message d'entrée (17) de (RSin_i), permet de résoudre ce problème. La figure 11 -a explicite le fonctionnement de l'unité de transfert de traduction (71 ) à partir des données spatio-temporelles (70) (Données temporelles E en position P(i,j)) issues d'un capteur externe, non représenté. Chaque donnée spatio-temporelle (70) entrante dans cette unité (71 ) est traduite et délivrée sur quatre ports de sortie, d'une manière synchrone par un signal (Ck), en trois représentations sémantiques élémentaires distinctes, (G), (D), (S), positionnées en (P). Chaque port de sortie (G), (D), (S), et (P) est connecté indépendamment et respectivement, sur le bus G (72), le bus D (73), le bus S (74) et le bus P (75).
La figure 11-b est une représentation imagée des différentes données (G), (D), (S), et (P). La donnée entrante est représentée dans son mode global sortie (G), dynamique sortie (D), et structural sortie (S), et en position (i,j) déterminée par la donnée (P), suivant trois plans registrés en mode 2D. La position (P) est exprimée en fonction de la dimension de sa base. Généralement 2D pour des données visuelles (x, y) ou auditives (t, f), elle peut être étendue à du 3D ou réduite à 1 D, des dimensions supérieures sont possibles mais rédhibitoires par la taille mémoire dévolue.
La figure 12 illustre l'organisation des résultats des calculs des quatre histogrammes bilinéaires de l'unité attracteur dynamique (80_i) à partir des données (G), (D), (S), et (P) de 2z bits issues de l'unité de transfert de traduction (71 ). La donnée entrante traitée dans cet exemple est de type vision 2D. L'unité (71 ) traduit cette donnée en :
• représentation globale (G) : suivant deux axes, teinte (T) et saturation (S).
Histogramme (H_G) sur 22z valeurs, figure 12a.
· représentation dynamique (D) : suivant deux axes, direction (Dir) et vitesse de déplacement (Vit). Histogramme (H_D) sur 22z valeurs, figure 12b.
• représentation structurale (S) : suivant deux axes, bord orienté (Bo) et courbure (Cb). Histogramme (H_S) sur 22z valeurs, figure 12c.
• représentation en position (P) : suivant deux axes (X) et (Y). Histogramme (H_P) sur 22z valeurs, figure 12d.
Chaque donnée entrante est codée en mot de 2z bits donnant une représentation matricielle 2Z x 2Z du calcul d'histogramme, les z bits premiers représentant un axe et les z bits restant le second axe de la matrice.
Pour illustrer le procédé perceptif de représentations sémantiques élémentaires, une portion de bord d'un objet (Ob) est visualisée en figure 12d par sa représentation en position (P), valeurs grisées correspondant aux résultats classés, par l'unité de classification (83), du calcul d'histogramme bilinéaire de la matrice (H_P). Le résultat de ce calcul d'histogramme est transmis à l'unité de registres de sortie (76) avec pour valeur, son barycentre en position de 2z bits (x, y) et sa plage en dimension de 2z bits (ap, bp).
L'orientation et la courbure locale perçu de l'objet (Ob), figure 12c, est délivré par le calcul de l'histogramme bilinéaire (H_S) dont le résultat du calcul est transmis à l'unité de registres de sortie (76) avec pour valeur, son barycentre, donc sa représentation sémantique d'orientation et de courbure de 2z bits (bo, cb) et sa tolérance de 2z bits (as, bs).
La figure 12a indique, par le résultat du calcul d'histogramme bilinéaire (H_G) la couleur dominante de la partie de l'objet (Ob) représentée par sa valeur de teinte et de saturation de 2z bits (t, s) avec sa valeur de tolérance de 2z bits (ag, bg), transmis à l'unité de registres de sortie (76).
De même la figure 12b indique, par le résultat du calcul d'histogramme bilinéaire (H_D) le déplacement locale de la partie de l'objet (Ob) représentée par sa valeur de direction de mouvement et sa vitesse sur 2z bits (dir, vit) avec sa valeur de tolérance de 2z bits (ad, bd), transmis à l'unité de registres de sortie (76). En inverse, l'unité de registres d'entrée (77) actualise, dans le même ordre, les bornes de classification des unités de classification requête (84) de chaque unité de traitement statistique (81 _G), (81 _D), (81 _S), et (81 _P).
Ce procédé perceptif assure un asservissement entre les données perçues, représentées et interprétées en tant que label appris.
Dans cet exemple d'application, le sous-message entrant (RSin_x) de la mémoire associative (10) est composé des résultats (t, s, ag, bg) pour le sous message (RSi- 1 ) et (RSi-2), (dir, vit, ad, bd) pour le sous message (RSi-3) et (RSi-4), (bo, cb, as, bs) pour le sous message (RSi-5) et (RSi-6), et (x, y, ap, bp) pour le sous message (RSi-7) et (RSi-8). De même pour le sous message sortant (RSout_x) de la Mémoire Associative (10).
Ce sous-message (RSin_x) est une représentation sémantique élémentaire globale, dynamique, structurale (réponse à la question Quoi ?) et positionnée (réponse à la question Ou ?). Les n sous-messages (RSin_x), x variant de 1 à n, définissent le message MEin_i représentant en sortie de la mémoire associative (10) le label (Loutj).
La figure 13 explicite un mode d'utilisation type robotique. Un stimulus (91 ) est perçu par un récepteur (92) qui émet alors sur son port de sortie (Mes) un message afférent (93) vers l'unité Mémoire Associative (10_1 ) sur son entrée (MEin) entraînant sur sa sortie (Lout) une information de sortie label perçu (94). Un processus d'analyse, ici non représenté, en déduit en fonction de l'application mise en œuvre un label de commande (95) qui est délivré sur le port entrée (Lin) de la mémoire associative (10_1 ). Celle-ci débite alors sur son port de sortie (MEout) un signal efférent (96) qui est connecté au port d'entrée (Cde) de l'unité effecteur (97) qui donne la réponse (98).
Les figures 14 à 17 représentent une application de la mémoire associative (10) en mode visuel.
La figure 14 représente une scène (1 10) comportant un symbole, en l'occurrence un chiffre deux écrit sur une surface plane, perçue par une caméra (120) placée en face qui délivre un signal vidéo haute densité (HD), par exemple 20 Mp (Méga pixel) à 50 fps (50 images de 20 million de pixels par seconde), référencé par les coordonnées x, y et de dimension respectivement de o et p bits.
Ce signal (HD) est délivré, conjointement à :
L'unité de décimation (Dec) composée: • d'une unité séquenceur de données (150) générant les adresses x et y ainsi que des signaux de synchronisation des données de cette unité de décimation (Dec),
• d'une unité de filtrage gaussien (200) synchronisée par une horloge (Ck) et les positions x, y d'un séquenceur de données (150) et paramétré par la valeur de filtrage (m). Cette unité assure une fonction de filtrage bidimensionnel de type gaussien par convolution d'une matrice gaussienne de taille 2m+1 sur les données d'entrée, le résultat est un flot de données bidimensionnelles lmG(Xyt), débité en séquence vers une unité de décimation (300) recevant le flot entrée ImG(xyt) et débitant en sortie le flot de données bidimensionnelles ΜΑΡΙ ^ vers l'unité de calcul de bords orientés (350), en sélectionnant suivant les deux dimensions x et y, un élément tous les k éléments. Par exemple, pour k égal à 1 , tous les éléments sont sélectionnés, pour k égal à 2, c'est un sur deux éléments, en suivant, qui sont sélectionnés dans les deux dimensions, la séquence débite donc quatre fois moins de données que reçu, et ainsi de suite pour k croissant. Cette unité génère le flot de données bidimensionnelles ΜΑΡΙ ^ en position i, j tel que i=x/k et j=y/k et est introduit dans une unité générique de représentation sémantique (100_1 ) sur l'unité de transfert de traduction (71 ) qui transmets un flot de bord orienté et de courbure à l'attracteur dynamique (80_0), décrit plus précisément en figure 10 et figure 16, calcule des histogrammes bidimensionnels spatio- temporel à chaque moment élémentaire validé par le flag (Valid) à un sur les couples de données tronquées instantanées i, j, et Bo, Cb, chaque couple comportant 2z bits comme un ensemble permettant un calcul d'histogrammes bidimensionnels spatiotemporel délivrant en fin de moment T un résultat, si présence de l'élément,
• d'une position de barycentre de l'élément i0, jo, et un signal binaire de zone Z_ROI
• d'une dimension du nuage de points ap0, bp0 ainsi que sa représentation spatiale (Z_ROI) et,
• d'une orientation bo0 et courbure cb0 générales.
et à l'unité ROI comportant une unité de mise à l'échelle (542) tronquant les valeurs X1 et Y1 sur les z bits de poids fort afin de générer une adresse X et Y chacune sur une plage de 2Z valeurs, correspondant à la taille du carré de 2Z de côté.
Le flot de données (MAP2) issu de la lecture de la mémoire (600) en adresse X, Y, correspondant aux informations invariantes de l'élément perçu. Ces unités sont pilotées par l'unité de calcul de l'invariance perceptive (Inv) qui comporte :
• Une unité de calcul de filtrage gaussien (400), paramétré suivant la valeur (m), recevant en fin de moment T la nouvelle valeur de courbure générale (cb0) qui est comparée à deux bornes de valeurs croissantes La et Lb, pour 0 < m < m_max :
• cb0 < La la valeur de m est augmentée d'une unité. Flag Val=0
• La < cb0≤ Lb la valeur de m reste inchangée. Flag Val=1
• cb0 > Lb la valeur de m est diminuée d'une unité. Flag Val=0
• Une fonction affine du paramètre m recalcule la valeur k, (k=0,81 m+1 ,09).
Les valeurs de m et k associées sont transmises pour le moment T suivant, (m) à l'unité (200) et (k) à l'unité (300).
• Une unité de sélection de la région d'intérêt (510) reçoit les coordonnées du barycentre i0, jo, le coefficient k de décimation, l'orientation angulaire bo0, et les coordonnées x, y du flot (H D(xyt)), et en calcule de nouvelles coordonnées X0, Y0 suivant la fonction :
Figure imgf000029_0002
avec -k.apo≤ X < k.ap0 et -k.bp0≤ Y < k.bp0 • Un multiplexeur d'adresses (520) transfère les adresses précédemment calculées, pour la zone d'intérêt (Z_ROI) valide, au port d'adresses de la mémoire tampon (600). Ce signal (Z_ROI), validé par le signal Val valide (ET booléen (550)) correspondant à une valeur de décimation correcte, sert de commande d'écriture (Wr) de la mémoire tampon (600) pour les données du flot (H D(Xyt)) présentées sur son port entrée (In).
Un séquenceur d'adresses mémoire (530) génère un flot d'adresses X1 , Y1 qui passe au travers du multiplexeur d'adresses (520) et va servir de lecture séquentielle de la mémoire tampon (600), en tant que flot de données (MAP2), hors temps d'écriture sur une plage correspondant à
Figure imgf000029_0001
Le flot de données (MAP2) issu de la lecture de la mémoire (600) en adresse X, Y, correspondant aux informations invariantes de l'élément perçu.
Le signal vidéo (MAP2) est introduit dans une unité générique de représentation sémantique (100_2) qui perçoit le symbole écrit dans son intégrité. Les attracteurs dynamiques (80_1 ), (80_2), et (80_3), de cette unité (100_2), voir figure 17, délivre chacun, des représentations sémantiques élémentaires structurales et de position, par ordre décroissant de nombre de pixels perçus dans la trame vidéo. Dans cet exemple, la courbure du chiffre deux comporte le plus grand nombre de pixels perçus et est donc représentée par l'attracteur dynamique (80_1 ) qui délivre un sous-message (RSin_1 ) de w bits composé des éléments de bord orienté et courbure associée (bo-ι , cb-ι ) de 2z bits, des éléments de position (x-i, y-ι) de 2z bits, de dimension (api, bp-i ) de 2z bits et, d'orientation -i égal à boi. Le recrutement dynamique d'un second attracteur dynamique (80_2), qui reçoit l'inhibition du traitement précèdent, perçoit le nombre de pixels le plus important correspondant à la partie horizontale du chiffre deux et, délivre un sous- message (RSin_2) de w bits composé des éléments de bord orienté et courbure associée (bo2, cb2) de 2z bits, des éléments de position (x2, y2) de 2z bits, de dimension (ap2, bp2) de 2z bits et, d'orientation 2 égal à bo2. La séquence continue avec le recrutement dynamique d'un troisième attracteur dynamique (80_3) qui, reçoit l'inhibition des traitements précédents, perçoit le nombre de pixels le plus important correspondant à la partie oblique du chiffre deux et, délivre un sous- message (RSin_3) de w bits composé des éléments de bord orienté et courbure associée (bo3, cb3) de 2z bits, des éléments de position (x3, y3) de 2z bits, de dimension (ap3, bp3) de 2z bits et, d'orientation 3 égal à bo3. Le nombre de pixels restant non traités étant inférieur à un seuil de qualification (valeur (NBPTS) inférieure à un seuil), la séquence de recrutement d'un nouvel attracteur dynamique s'arrête.
Le message (MEin_i) se compose des sous-messages (RSin_1 ), (RSin_2), et (RSin_3), soit une combinaison de 3 mots de 6z bits. Pour une faible précision de 6%, valeur donnée entrante z codée sur 4 bits, 26z vaut 224 soit près de 1 6 million de valeurs, et la combinatoire pour n=3 et ME=16x106 vaut:
= ME! _MEn_ (16x106)3 ^6,8x1 Q20
UME (w-n)!.n! n! 6
Ce message (MEin_i) est associé au label (Lin i) valant « deux », dans ce cas, et est mémorisé dans la mémoire associative (10) de l'unité de représentation sémantique (100_2). L'unité de séquencement (Sec) contrôle, au travers des bus de communication (S_P2) entre l'unité de représentation sémantique d'un label (100_2) et le séquenceur (Sec) et (S_MA) entre l'unité mémoire associative (10) et le séquenceur (Sec), l'organisation des messages perçus.
Une mémoire associative (10) associe le label (LoutJ) issu de l'unité (100_1 ) et le label (Loutj) issu de l'unité (100_2) afin de sortir un label (Lout_k) correspondant à la valeur du chiffre « deux » dans son contexte. Par exemple ce dispositif permet de valider le chiffre « un », contextuellement positionné à droite du chiffre « deux » précédemment perçu afin de former le nombre « vingt et un ».
L'attracteur dynamique (80_0) de cette unité (100_1 ), voir figure 16, délivre les représentations sémantiques élémentaires :
• globale (G_1 ) mots de 2z bits transformés en représentation sémantique élémentaire de couleur ; barycentre teinte et saturation (t0, s0) et de plage de répartition des données suivant les deux axes T et S (ag0, bg0) correspondant respectivement aux sous-messages (RSi-1 ) et (RSi-2).
• dynamique (D_1 ) mots de 2z bits transformés en représentation sémantique élémentaire de mouvement ; barycentre direction et vitesse de mouvement (dir0, vit0) et de plage de répartition des données suivant les deux axes Dir et Vit (ado, bd0) correspondant respectivement aux sous-messages (RSi-3) et (RSi-4).
· structurelle (S_1 ) mots de 2z bits transformés en représentation sémantique élémentaire de forme ; barycentre bord orienté et courbure (bo0, cb0) et de plage de répartition des données suivant les deux axes Bo et Cb (as0, bs0) correspondant respectivement aux sous-messages (RSi-5) et (RSi-6).
• position (P_1 ) mots de 2z bits transformés en représentation sémantique élémentaire de position ; barycentre position X et Y (x0, yo) et de plage de répartition des données suivant les deux axes X et Y (ap0, bp0), orienté d'un angle 0 égal à la valeur bo0, correspondant respectivement aux sous-messages (RSi- 7) et (RSi-8).
L'ensemble des éléments (RSi_1 ) à (RSi-8) constitue le sous-message (RSin_0). Ce message donne une représentation sémantique de l'élément perçu dans son ensemble, dans cet exemple l'élément est de couleur (t0, s0), immobile (ad0, bd0)=0,0, centré en (x0, yo), orienté d'un angle bo0, et de taille (ap0, bp0). C'est une représentation contextuelle. D'un point de vue applicatif, le descriptif de la mémoire associative (10), décrit en figure 1 , peut être avantageusement intégré en un module électronique et être utilisé en tant que,
• générateur universel de graphe hiérarchique (60), décrit en figure 8,
· intégré dans une unité de représentation sémantique d'un label (100), décrit en figure 10,
• pilotage d'un effecteur (97) à partir de signaux issus d'un récepteur (92), décrit en figure 13,
• ou en combinaison de niveaux hiérarchiques, décrit en figure 9 et 14.
Référence nombres et symboles
1 Sous-unité mémoire associative de 2V mots de v bits
2_i sous-unité (i) mémoire associative de 2V mots de w bits
3 unité de comptage de 2V valeurs de (Cpt) avec entrée (R) de remise à zéro et sorte (F) de limite de comptage
4 unité de sélection de maximum de vraisemblance
5 unité mémoire RAM non volatile
6 unité mémoire programme
10 unité Mémoire Associative
41 unité de séquencement et quantification des données avec recherche de la donnée la plus représentée
42 registre de quantification de la donnée la plus représentée
43 valeur de sortie de l'unité de sélection de maximum de vraisemblance
60 générateur universel de graphe hiérarchique
70 données spatio-temporelles entrantes
71 unité de transfert de traduction
72 bus G
73 bus D
74 bus S
75 bus P
76 unité de registres de sortie
77 unité de registres d'entrée 78 signal binaire de validation de calcul d'histogramme
80 unité attracteur dynamique
81 _G, 81_D, 81_S, et 81_P unités traitement statistique
82 unité de calcul histogramme bilinéaire
83 unités de classification automatique
84 unités de classification requête
85 unité booléenne de validation de classification
86 unité booléenne de classification spatio-temporelle
87 unité de validation de calcul d'histogramme
91 stimulus
92 récepteur
93 voie afférente
94 label perçu
95 label de commande
96 voie efférente
97 effecteur
98 réponse
100 unité de représentation sémantique d'un label
110 scène perçue
120 capteur vision
150 unité de séquencement données entrées
200 unité de filtrage gaussien de facteur m
300 unité de décimation de facteur k
400 unité de calcul des facteurs de filtrage m et de décimation k
520 unité de multiplexage d'adresses
530 unité de séquencement données invariantes
540 unité de troncature a bits sur les z bits de poids fort
541 unité de troncature o/k ou p/k bits le plus grand sur les z bits de poids fort
542 unité de troncature k.ap0 ou k.bp0 le plus grand sur les z bits de poids fort
550 unité ET booléen
600 unité mémoire tampon
AB bus commun de v bits
Adr port entrée adresse mémoire des sous-unités mémoire (2_1 ) à (2_n) et (1 ) Cadr port de sortie adresse du contenu mémoire sélectionné par son port entrée (In) des sous-unités (2_1 ) à (2_n) et (1 )
Cin commande entrée inhibition dynamique
Cout commande sortie inhibition dynamique
Ck horloge de séquencement
Cor entrée signal de commande de correction du message d'entrée (RSin_i)
Cpt port de sortie de l'unité de comptage (3)
Cpt[v-1 :0] valeur binaire de sortie de l'unité de comptage (3)
D représentation sémantique élémentaire dynamique
En entrée validation fonction des sous-unités mémoires associatives (1_i) et (1 )
F sortie signal de limite de comptage
G représentation sémantique élémentaire globale
HD flux vidéo à grande définition spatiale
In port d'entrée des sous-unités mémoire (2_1 ) à (2_n) et (1 )
L_i valeur de lien entre les mémoires (1 ) et (1 )
L_AB label entrant et sortant
L_CD label entrant et sortant
Lout_i Label en sortie
LinJ Label en entrée
m paramètre de matrice gaussienne
M signal en sortie validant la valeur binaire du port de sortie (Cadr) associée
MA, MB, MC, MD, ME messages entrant et sortant
MAP1 flux vidéo décimé
MAP2 flux vidéo ROI
MEin_i message entrant regroupant n sous-messages (RSin_1 ) à (RSin_n)
MEoutJ message sortant regroupant n sous-messages (RSout_1 ) à (RSout_n) n nombre de sous-messages entrée (RSin_i) ou sortie (RSout_i)
Ob portion de bord d'un objet
Out port de sortie des sous-unités mémoire (2_1 ) à (2_n)) et (1 )
P position des représentations sémantiques élémentaires G, D, et S
q nombre d'éléments constituant un sous-message
R entrée signal de remise à zéro de l'unité de comptage (3)
ROI région d'intérêt des données
S représentation sémantique élémentaire structurale S_ROI bus de communication entre le séquenceur et la région d'intérêt S_Dec bus de communication entre le séquenceur et la décimation des données S_MA bus de communication entre le séquenceur et la mémoire associative
S_P1 bus de communication entre le séquenceur et l'unité de représentation sémantique 1
S_P2 bus de communication entre le séquenceur et l'unité de représentation sémantique 2
Sec séquenceur de l'unité de représentation sémantique
Wr signal de commande écriture des sous-unités mémoires (1 ) et (1 )
Wre entrée signal de sélection écriture de l'unité Mémoire Associative (1 0)
RSi_x élément du sous message entrant RSin_i de z bits
RSo-x élément du sous message sortant RSout_i de z bits
RSin_i sous-message (i) en entrée mémoire
RSout_i sous-message (i) en sortie mémoire
V_i entrée validation valeur (L_i)
Wr signal de commande écriture des mémoires (1 ) et (1 )
ΙΛ signal binaire de 1 bit
/v bus signal binaire de v bit
/w bus signal binaire de w bit, w=z.q
/z bus signal binaire de z bit

Claims

Revendications
Dispositif de mémoire associative (1 0) composée d'une unité mémoire RAM non volatile (5) piloté par une unité de séquencement (μΡ) caractérisé en ce que, cette unité mémoire (5) est partagée au minimum en deux pages mémoires contiguës :
• la première page (1 ), débutant en adresse basse étant constituée de deux banques mémoire de taille identique de 2V mots de v bits (1 a) et (1 b) ;
• la seconde page étant constituée de une à n sous-pages identiques (2_1 à 2_n), chaque sous-page étant constituée de deux banques mémoire contiguës de taille 2W mots de v bits pour la première (2c) et de 2V mots de w bits pour la seconde (2d).
Dispositif de mémoire associative (1 0) selon la revendication 1 , caractérisé en ce que, avant la première utilisation, l'unité mémoire est intégralement initialisée à zéro par l'unité de séquencement (μΡ).
Dispositif de mémoire associative (1 0) selon la revendication 1 , caractérisé en ce que, le mot de v bits positionné à la première adresse basse de la première banque mémoire (1 a) de la première page (1 ) correspond à la valeur d'un compteur binaire (3) de v bits.
Dispositif de mémoire associative (1 0) selon l'une quelconque des revendications précédentes, caractérisé en ce le dispositif est adapté de telle manière que, lors de la mémorisation d'une association entre un message (MEin_i) de w bits à n.w bits, (RSin_1 ) étant l'élément de w bits de poids fort, index (Pt) égal à un, suivi du deuxième élément de w bits (RSin_2), index (Pt) égal à deux, et ainsi de suite en séquence jusqu'au dernier élément de w bits de poids faible (RSin_n), index (Pt) égal à n, et un label (Lin i) de v bits, l'unité de séquencement (μΡ), en séquence: a) incrémente d'une unité la valeur du compteur (3),
b) lit le label (Lin i) de v bits présenté sur l'entrée de la mémoire associative
(1 0),
c) lit et mémorise cette valeur du compteur (3) dans la banque mémoire (1 a) de la première page (1 ), port entrée (In), à l'adresse mémoire (Adr) défini par la valeur du label (Lin i), d) mémorise cette valeur du label (Lin i) dans la banque mémoire (1 b) de la première page (1 ), port entrée (In), à l'adresse mémoire (Adr) définie par la valeur du compteur (3),
e) initialise à un le pointeur (Pt) représentant l'index du sous-message (RSin_Pt) et de la sous-page (Pt) de la seconde page,
f) lit le sous-message (RSin_Pt), indexé par la valeur (Pt), du message (MEin_i) de w bits présenté sur l'entrée de la mémoire associative (10),
g) mémorise la valeur du compteur (3) dans le port entrée (In) de la banque mémoire (2d) de la seconde page (2_Pt), à l'adresse mémoire (Adr) définie par la valeur du sous-message (RSin_Pt),
h) mémorise cette valeur du sous-message (RSin_Pt) dans le port entrée (In) de la banque mémoire (2c) de la seconde page (2_Pt) à l'adresse mémoire (Adr) définie par la valeur du compteur (3),
i) finalise la séquence pour (Pt) égal n, sinon le pointeur (Pt) est incrémenté de un et la séquence reprend en f.
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, le dispositif est adapté de telle manière que lors de la présentation d'un message (MEin_i) de w bits à n.w bits, (RSin_1 ) étant l'élément de w bits de poids fort, index (Pt) égal à un, suivi du deuxième élément de w bits (RSin_2), index (Pt) égal à deux, et ainsi de suite en séquence jusqu'au dernier élément de w bits de poids faible (RSin_n), index (Pt) égal à n, la recherche du label correspondant s'effectue à l'aide de l'unité de séquencement (μΡ), qui en séquence :
a) initialise à un le pointeur (Pt) correspondant à l'index de la sous-page (Pt) de la seconde page,
b) lit le sous-message (RSin_Pt) de w bits, indexé par la valeur (Pt), du message (MEin_i), présenté sur l'entrée de la mémoire associative (10),
c) lit la valeur du pointeur (Cpt_Pt) de la banque mémoire (2d) de la seconde page (2_Pt), port de sortie (Out), à l'adresse mémoire (Adr) définie par la valeur du sous-message (RSin_Pt),
d) sauvegarde la valeur (Cpt_Pt) dans une unité d'analyse de vraisemblance (4) qui en détermine la valeur (Cpt_out) correspondant à la valeur (Cpt_Pt) la plus représentée parmi les n valeurs sauvegardées durant la séquence, e) compare la valeur du pointeur (Pt) à la valeur n, en cas de non égalité le pointeur (Pt) est incrémenté d'une unité et la séquence reprend en b, sinon continue en f,
f) lit la valeur du label (Lout_i) de la banque mémoire (1 b) de la première page mémoire (1 ), port de sortie (Out), à l'adresse mémoire (Adr) définie par la valeur du pointeur (Cpt_out),
g) positionne en sortie de la mémoire associative (10) la valeur du label (Lout_i) trouvé.
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes caractérisé en ce que le dispositif est adapté de telle manière que lors de la présentation d'un label (Lin i) de v bits, la recherche du message correspondant (MEout_i) s'effectue à l'aide de l'unité de séquencement (μΡ), qui en séquence :
a) lit le label (Lin i) de v bits présenté sur l'entrée de la mémoire associative
(1 0),
b) lit la valeur du pointeur (Cpt) de la banque mémoire (1 a) de la première page mémoire (1 ), port de sortie (Out), à l'adresse mémoire (Adr) définie par la valeur du label (Lin i),
c) initialise à un le pointeur (Pt) correspondant à l'index de la sous-page (Pt) de la seconde page,
d) lit le sous-message (RSout_Pt) de w bits, indexé par la valeur (Pt), du message (MEout_i), port de sortie (Out) de la banque mémoire (2c) de la seconde page (2_Pt) à l'adresse mémoire (Adr) définie par la valeur du pointeur (Cpt),
e) positionne en sortie de la mémoire associative (1 0) la valeur (RSout_Pt) de w bits du message (MEout_i) trouvé en position (Pt),
f) finalise la séquence pour la valeur de (Pt) égal n, sinon incrémenté de une unité le pointeur (Pt) et la séquence reprend en d.
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, la mémoire associative (1 0) comporte un port de contrôle permettant :
• les commandes externes :
o d'initialisation générale
o de mémorisation associative o de détection de message
o de recherche de message
o de transfert des mémorisations des associations dans les deux sens
• et l'analyse de statuts :
o signal de traitement en cours
o signal de débordement de la valeur du compteur (3).
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, les unités de base mémoire associative (10_x) se connectent de telle manière qu'un premier niveau de p unités de base de Mémoire Associative reçoit p messages et génère p labels qui se connectent chacun en tant que sous-message d'une unité de base de Mémoire Associative en second niveau en générant un label récapitulatif des sous-messages entrant et inversement, un second label récapitulatif entrant dans cette unité de base de mémoire associative génère un ensemble de sous-messages qui se connectent en tant que label associé à un sous-message à l'ensemble des p unités de base de mémoire associative du premier niveau et délivre un ensemble de p messages.
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, le sous-message (RSout_x) de w bits sortant de l'unité Mémoire Associative (10) soit connecté à l'unité de registres d'entrée (77) d'un attracteur dynamique (80_x) et que l'unité de registres résultat (76) de ce même attracteur dynamique délivre le sous-message entrant (RSin_x) de w bits de l'unité mémoire associative (10).
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, chaque sous-message, entrant (RSin_i) et sortant (RSout_i), soient associé à un attracteur dynamique (80_i) lié à ses voisins par une fonction d'inhibition des calculs antécédents (87) et recevant en commun, les signaux (G), (D), (S) et (P) d'une unité de transfert de traduction (71 ).
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, l'unité de représentation sémantique d'un label (100) est constituée :
• d'une unité de transfert de traduction (71 ),
• d'un ensemble de n unités attracteurs dynamiques (80) et, • d'au moins une mémoire associative (10).
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, l'utilisation conjointe de deux unités de représentation sémantique d'un label (100), la première unité (100_1 ) recevant un signal (MAP1 ) issue d'une unité de décimation (Dec), la seconde unité (100_2) recevant un signal (MAP2) issue d'une unité de sélection de région d'intérêt (ROI), représente sémantiquement en sortie, un label issu de l'unité (100_2) dans son contexte issu de l'unité (100_1 ).
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, la détermination de la région d'intérêt (ROI) est faite à partir des données issues de l'attracteur dynamique (80) de l'unité de représentation sémantique d'un label (100_1 ) par l'unité de séquencement (Sec). Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que, la valeur de décimation de l'unité de décimation (Dec) est fonction de la valeur de courbure (cb0) calculée par l'unité de représentation sémantique d'un label (100_1 ) recevant les données (MAP1 ) décimées.
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que les résultats de contexte et de label sont associés entre eux par une mémoire associative (10) afin de délivrer une représentation sémantique augmentée.
Dispositif de mémoire associative selon l'une quelconque des revendications précédentes, caractérisé en ce que ce dispositif est intégré en un module électronique.
Méthode de gestion d'une mémoire RAM, la méthode comportant l'étape de partager la mémoire RAM en au minimum deux pages mémoires contiguës :
• la première page (1 ), débutant en adresse basse étant constituée de deux banques mémoire de taille identique de 2V mots de v bits (1 a) et (1 b).
• la seconde page étant constituée de une à n sous-pages identiques (2_1 à 2_n), chaque sous-page étant constituée de deux banques mémoire contiguës de taille 2W mots de v bits pour la première (2c) et de 2V mots de w bits pour la seconde (2d).
Méthode selon la revendication 17, comportant une étape supplémentaire d'intégralement initialiser l'unité mémoire à zéro avant la première utilisation. Méthode selon l'une quelconque des revendications 17 à 1 8, (RSin_1 ) étant l'élément de w bits de poids fort, index (Pt) égal à un, suivi du deuxième élément de w bits (RSin_2), index (Pt) égal à deux, et ainsi de suite en séquence jusqu'au dernier élément de w bits de poids faible (RSin_n), index (Pt) égal à n, et un label
(Lin i) de v bits, la méthode comprenant lors de la mémorisation d'une association entre un message (MEin_i) de w bits à n.w bits, les étapes supplémentaires en séquence par l'unité de séquencement (μΡ) :
a) incrémenter d'une unité la valeur du compteur (3),
b) lire le label (Lin i) de v bits présenté sur l'entrée de la mémoire associative
(1 0),
c) lire et mémoriser cette valeur du compteur (3) dans la banque mémoire (1 a) de la première page (1 ), port entrée (In), à l'adresse mémoire (Adr) définie par la valeur du label (Linj),
d) mémoriser cette valeur du label (Lin i) dans la banque mémoire (1 b) de la première page (1 ), port entrée (In), à l'adresse mémoire (Adr) définie par la valeur du compteur (3),
e) initialiser à un le pointeur (Pt) représentant l'index du sous-message (RSin_Pt) et de la sous-page (Pt) de la seconde page,
f) lire le sous-message (RSin_Pt), indexé par la valeur (Pt), du message (MEin_i) de w bits présenté sur l'entrée de la mémoire associative (1 0), g) mémoriser la valeur du compteur (3) dans le port entrée (In) de la banque mémoire (2d) de la seconde page (2_Pt), à l'adresse mémoire (Adr) définie par la valeur du sous-message (RSin_Pt),
h) mémoriser cette valeur du sous-message (RSin_Pt) dans le port entrée (In) de la banque mémoire (2c) de la seconde page (2_Pt) à l'adresse mémoire (Adr) définie par la valeur du compteur (3),
i) finaliser la séquence pour (Pt) égal n, sinon incrémenter le pointeur (Pt) de un et reprendre la séquence en f.
Méthode selon l'une quelconque des revendications 17 à 1 9, (RSin_1 ) étant l'élément de w bits de poids fort, index (Pt) égal à un, suivi du deuxièmes élément de w bits (RSin_2), index (Pt) égal à deux, et ainsi de suite en séquence jusqu'au dernier élément de w bits de poids faible (RSin_n), index (Pt) égal à n, la recherche du label correspondant s'effectuant à l'aide de l'unité de séquencement (μΡ), la méthode comprenant lors de la présentation d'un message (MEin_i) de w bits à n.w bits, les étapes supplémentaires en séquence :
a) initialiser à un le pointeur (Pt) correspondant à l'index de la sous-page (Pt) de la seconde page,
b) lire le sous-message (RSin_Pt) de w bits, indexé par la valeur (Pt), du message (MEin_i), présenté sur l'entrée de la mémoire associative (1 0), c) lire la valeur du pointeur (Cpt_Pt) de la banque mémoire (2d) de la seconde page (2_Pt), port de sortie (Out), à l'adresse mémoire (Adr) définie par la valeur du sous-message (RSin_Pt),
d) sauvegarder la valeur (Cpt_Pt) dans une unité d'analyse de vraisemblance (4) qui en détermine la valeur (Cpt_out) correspondant à la valeur (Cpt_Pt) la plus représentée parmi les n valeurs sauvegardées durant la séquence,
e) comparer la valeur du pointeur (Pt) à la valeur n, en cas de non égalité le pointeur (Pt) étant incrémenté d'une unité et la séquence reprenant en b, sinon continuant en f,
f) lire la valeur du label (Lout_i) de la banque mémoire (1 b) de la première page mémoire (1 ), port de sortie (Out), à l'adresse mémoire (Adr) définie par la valeur du pointeur (Cpt_out),
g) positionner en sortie de la mémoire associative (1 0) la valeur du label (Lout_i) trouvé.
Méthode selon l'une quelconque des revendications 1 7 à 20, comprenantles étapes supplémentaires lors de la présentation d'un label (Lin i) de v bits, la recherche du message correspondant (MEout_i) s'effectuant à l'aide de l'unité de séquencement (μΡ), en séquence :
a) lire le label (Lin i) de v bits présenté sur l'entrée de la mémoire associative
(1 0),
b) lire la valeur du pointeur (Cpt) de la banque mémoire (1 a) de la première page mémoire (1 ), port de sortie (Out), à l'adresse mémoire (Adr) définie par la valeur du label (Lin i),
c) initialiser à un le pointeur (Pt) correspondant à l'index de la sous-page (Pt) de la seconde page,
d) lire le sous-message (RSout_Pt) de w bits, indexé par la valeur (Pt), du message (MEout_i), port de sortie (Out) de la banque mémoire (2c) de la seconde page (2_Pt) à l'adresse mémoire (Adr) définie par la valeur du pointeur (Cpt),
e) positionner en sortie de la mémoire associative (10) la valeur (RSout_Pt) de w bits du message (MEout_i) trouvé en position (Pt),
f) finaliser la séquence pour la valeur de (Pt) égal n, sinon incrémenter de une unité le pointeur (Pt) et reprendre la séquence en d.
22. Programme logiciel comprenant des instructions qui, lorsqu'elles sont exécutées sur une unité de séquencement en liaison avec une unité mémoire, implémentent les étapes de d'une méthode selon l'une quelconque des revendications 17 à 21 .
PCT/EP2018/060920 2017-04-28 2018-04-27 Dispositif ram automatisé apte à mémoriser, rappeler et gérer de manière non volatile, des associations de messages versus label et vice versa, avec un maximum de vraisemblance WO2018197687A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1700462 2017-04-28
FR1700462 2017-04-28

Publications (1)

Publication Number Publication Date
WO2018197687A1 true WO2018197687A1 (fr) 2018-11-01

Family

ID=59811365

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/060920 WO2018197687A1 (fr) 2017-04-28 2018-04-27 Dispositif ram automatisé apte à mémoriser, rappeler et gérer de manière non volatile, des associations de messages versus label et vice versa, avec un maximum de vraisemblance

Country Status (1)

Country Link
WO (1) WO2018197687A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2964222A1 (fr) 2010-08-25 2012-03-02 Inst Telecom Telecom Bretagne Dispositif d'apprentissage et de decodage de messages, mettant en œuvre un reseau de neurones, procedes d'apprentissage et de decodage et programmes d'ordinateur correspondants.
EP2492828A1 (fr) * 2011-02-23 2012-08-29 Huawei Technologies Co., Ltd. Méthode et appareil pour la recherche de données dans la mémoire adressable par contenu
FR2980876A1 (fr) 2011-10-03 2013-04-05 Inst Telecom Telecom Bretagne Dispositifs d'apprentissage et/ou de decodage de messages sequentiels, mettant en oeuvre un reseau de neurones, procedes d'apprentissage et de decodage et programmes d'ordinateur correspondants
WO2016083002A1 (fr) * 2014-11-28 2016-06-02 Fotonation Limited Procédé de production d'un histogramme de gradients orientés

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2964222A1 (fr) 2010-08-25 2012-03-02 Inst Telecom Telecom Bretagne Dispositif d'apprentissage et de decodage de messages, mettant en œuvre un reseau de neurones, procedes d'apprentissage et de decodage et programmes d'ordinateur correspondants.
EP2492828A1 (fr) * 2011-02-23 2012-08-29 Huawei Technologies Co., Ltd. Méthode et appareil pour la recherche de données dans la mémoire adressable par contenu
FR2980876A1 (fr) 2011-10-03 2013-04-05 Inst Telecom Telecom Bretagne Dispositifs d'apprentissage et/ou de decodage de messages sequentiels, mettant en oeuvre un reseau de neurones, procedes d'apprentissage et de decodage et programmes d'ordinateur correspondants
WO2016083002A1 (fr) * 2014-11-28 2016-06-02 Fotonation Limited Procédé de production d'un histogramme de gradients orientés

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
"Perceptive Invariance and Associative Memory Between Perception and Semantic Representation, USER a Universal Semantic Représentation Implemented in a System on Chip (SoC", LIVING MACHINES 2016, LNAI, vol. 9793, 2016, pages 275 - 287
DEMETRIO FERRO; VINCENT GRIPON; XIAORAN JIANG: "Nearest Neighbour Search Using Binary Neural Networks", INTERNATIONAL JOINT CONFÉRENCE ON NEURAL NETWORKS (IJCNN, 2016
F. LEDUC-PRIMEAU; V. GRIPON; M. G. RABBAT; W. J. GROSS: "Clusterbased associative memories built from unreliable storage", PROC. OF IEEE INTL. CONF. ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING (ICASSP, May 2014 (2014-05-01)
HOOMAN JAROLLAHI; VINCENT GRIPON; NAOYA ONIZAWA; WARREN J. GROSS: "A low-power Content-Addressable Memory based on clustered-sparse networks", ASAP, 2013 IEEE 24TH INT. CONFÉRENCE
K. PAGIAMTZIS ET AL: "Content-Addressable Memory (CAM) Circuits and Architectures: A Tutorial and Survey", IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 41, no. 3, 1 March 2006 (2006-03-01), pages 712 - 727, XP055065930, ISSN: 0018-9200, DOI: 10.1109/JSSC.2005.864128 *
K. PAGIAMTZIS; A. SHEIKHOLESLAMI: "Content-addressable memory (CAM) circuits and architectures : A tutorial and survey", IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 41, no. 3, March 2006 (2006-03-01), pages 712 - 727, XP055065930, DOI: doi:10.1109/JSSC.2005.864128
PIRIM PATRICK ED - WALTER DIDIMO ET AL: "Perceptive Invariance and Associative Memory Between Perception and Semantic Representation USER a Universal SEmantic Representation Implemented in a System on Chip (SoC)", 12 July 2016, NETWORK AND PARALLEL COMPUTING; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CHAM, PAGE(S) 275 - 287, ISBN: 978-3-642-01969-2, ISSN: 0302-9743, XP047350737 *
V. GRIPON; C. BERROU: "Sparse neural networks with large learning diversity", IEEE TRANS. ON NEURAL NETWORKS, vol. 22, no. 7, July 2011 (2011-07-01), pages 1087 - 1096, XP011411447, DOI: doi:10.1109/TNN.2011.2146789

Similar Documents

Publication Publication Date Title
Feng et al. Audio visual speech recognition with multimodal recurrent neural networks
US20210326377A1 (en) Multi-stage image querying
Pandey et al. Variational methods for conditional multimodal deep learning
US10650230B2 (en) Image data extraction using neural networks
WO2017186830A1 (fr) Dispositif et procede de distribution de donnees de convolution d&#39;un reseau de neurones convolutionnel
FR2974433A1 (fr) Evaluation de la qualite d&#39;image
US11526704B2 (en) Method and system of neural network object recognition for image processing
EP3449423B1 (fr) Dispositif et procede de calcul de convolution d&#39;un reseau de neurones convolutionnel
CN111027576B (zh) 基于协同显著性生成式对抗网络的协同显著性检测方法
US11816876B2 (en) Detection of moment of perception
EP1259939B1 (fr) Procede et dispositif de perception automatique
WO2018197693A1 (fr) Procédé et dispositif automatisés aptes à assurer l&#39;invariance perceptive d&#39;un évènement spatio-temporel dynamiquement en vue d&#39;en extraire des représentations sémantiques unifiées
WO2016046336A1 (fr) Procede et systeme de detection d&#39;evenements de nature connue
EP2839410A1 (fr) Procede de reconnaissance d&#39;un contexte visuel d&#39;une image et dispositif correspondant
CN116933854B (zh) 图像生成模型的处理方法、装置、设备和存储介质
EP2310954B1 (fr) Circuit de traitement de données à processeur élémentaire, ensemble de traitement de données comportant une grille de tels circuits, et capteur matriciel comportant un tel ensemble
WO2018197687A1 (fr) Dispositif ram automatisé apte à mémoriser, rappeler et gérer de manière non volatile, des associations de messages versus label et vice versa, avec un maximum de vraisemblance
WO2018197689A1 (fr) Procédé et dispositif associé automatisés aptes à mémoriser, rappeler et gérer de manière non volatile des associations de messages versus label et vice versa, avec un maximum de vraisemblance
KR20240035999A (ko) 뉴럴 프로세싱 유닛 및 컴퓨트-인-메모리 프로세싱 엘리먼트들을 사용한 하이브리드 머신 러닝 아키텍처
CN111353944B (zh) 一种图像重建方法、装置及计算机可读存储介质
EP3616131B1 (fr) Procédé et dispositif associé automatisés aptes à mémoriser, rappeler et gérer de manière non volatile des associations de messages versus label et vice versa, avec un maximum de vraisemblance
Alvarez et al. Energy-quality scalable memory-frugal feature extraction for always-on deep sub-mW distributed vision
WO2020157733A1 (fr) Procédé dynamique d&#39;imagerie tridimensionnelle
FR3090163A1 (fr) Processeur de traitement de données, procédé et programme d’ordinateur correspondant
Ahlberg et al. Simultaneous sensing, readout, and classification on an intensity‐ranking image sensor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18718860

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18718860

Country of ref document: EP

Kind code of ref document: A1