Todos los lenguajes de programación modernos usan objetos y no estructuras / clases de estilo C / C ++. En C / C ++, cada miembro de datos tiene un tamaño, por lo que direccionar un miembro de estructura es básicamente una dirección de memoria + desplazamiento. Pero los lenguajes de script, como JavaScript y muchos otros, utilizan una ID de objeto que contiene pares clave / valor. Estos pares clave / valor también pueden ser un ID de objeto.
Por lo tanto, en la actualidad, la memoria del hardware se dirige con la dirección de la memoria + desplazamiento o la dirección de la memoria a una tabla de búsqueda donde se almacenan la clave / valor.
Una dirección de memoria puede contener datos o código ASM que es ejecutable por una CPU.
Entonces, ¿es posible construir un hardware que solo contenga memoria direccionable por contenido (CAM)?
Puedo imaginar lo siguiente:
Datos:
id: 23
-key: 123, value: 7
-key: 456, value: 8
-key: 789, value: 0
Este es un esquema de un bloque de memoria direccionable de contenido. Este bloque se puede escribir con un código de operación SetValue (id, key, value) y se puede leer con un GetValue (id, key)
Mi idea es que si especifico un par de clave / valor para el bloque de memoria ejecutable tengo una CPU.
Si un bloque de memoria contiene pares de valores clave especiales, actuará como un código de operación. Por ejemplo, si contiene una clave que es < 100 de lo que es un opcode
id: 45
-key: 12, value: 7 // key 12 opcode for add two data
-key: 10, value: 8 // key 10 is arg1, value is a data
-key: 11, value: 9 // key 11 is arg2, value is a data
En esta arquitectura, cada memoria bloquea un objeto y cada memoria bloquea una CPU mínima al mismo tiempo. ¿Crees que es posible construir un hardware así?