I formulated this new Content Addressable Memory (CAM) using Bloom Filters. It is called pbCAM (probabilistically-banked CAM). Its energy consumption is significantly lower than that of a traditional CAM, so, it allows much larger CAM chips (Integrated Circuits) to be built. Currently, CAMs are confined into network routers (Cisco, etc ...) having much larger CAMs available, which are memory chips that address the information based on a Key (i.e., content), rather than the ADDRESS of the storage (like RAMs), this could have a huge impact in the way we program. Although using Bloom filters in databases is nothing novel, the way this idea is formulated achieves significant energy savings by simultaneously reducing the voltage and frequency of the less-populated CAM banks, thereby achieving super-linear energy savings, which is something that cannot be done in a SQL database, i.e., pure software.
Currently, we are wired to think that, we have to know the ADDRESS OF STORAGE. So, when I create an array, say, int a[10], I need to address it using its known index, e.g., a[4]. However, if I could address it using its CONTENT and didn't care about where it was stored, like the RUBY language does (i.e., a["Name"] instead of a[1]), and this programming language didn't have a huge performance overhead like Ruby does, this could revolutionize how we view STORAGE of DATA.
What applications can you imagine that could benefit with such a CONTENT-BASED programming ? and a massively-hardware-accelerated CAM-type storage, rather than RAM-type ?