Difference between content-addressable memory and associative memory? Often when I'm reading theoretical neuroscience publications, such as "Towards an integration of deep learning and neuroscience", as well as "Memory and the Computational Brain", theorists often mention the importance of content-addressable memories. They are defined as follows in the former publication:


  Content addressable memories are classic models in neuroscience. Most simply, they allow us to recognize a situation
  similar to one that we have seen before, and to “fill in” stored
  patterns based on partial or noisy information, but they may also be
  put to use as sub-components of many other functions.


Is the Associative Memory often used in SPA-based models, such as the model used in "Biologically Plausible, Human-Scale Knowledge Representation", the same thing as a content-addressable memories?
From Wikipedia:


  Content-addressable memory (CAM) is a special type of computer memory
  used in certain very-high-speed searching applications. It is also
  known as associative memory, associative storage, or associative array [...]
  It compares input search data (tag) against a table of stored data,
  and returns the address of matching data (or in the case of
  associative memory, the matching data)


As noted in the above question, there are many implementations of content-addressable memories in neural networks, such as the Hamming network and Hopfield networks. The Associative Memory used in SPA-based models performs the same function as these aforementioned networks and the Wikipedia description. Given a SPA vector as input, the Associative Memory outputs the corresponding vector as an output. Thus, the SPA-based Associative Memory is a content-addressable memory.