El proyecto IRAM de Berkeley fue un proyecto de investigación de 1996-2004 en la División de Ciencias de la Computación de la Universidad de California, Berkeley, que exploró la arquitectura informática posibilitada por el amplio ancho de banda entre la memoria y el procesador que se hace posible cuando ambos están diseñados en el mismo circuito integrado (chip). [1] Dado que se imaginó que un chip de este tipo estaría compuesto principalmente de memoria de acceso aleatorio (RAM), con una parte más pequeña necesaria para la unidad central de procesamiento (CPU), el equipo de investigación utilizó el término "RAM inteligente" (o IRAM) para describir un chip con esta arquitectura. [2] [3] Al igual que el proyecto J-Machine en el MIT, el objetivo principal de la investigación era evitar el cuello de botella de Von Neumann que se produce cuando la conexión entre la memoria y la CPU es un bus de memoria relativamente estrecho entre circuitos integrados separados.
En un contexto de fuertes presiones competitivas, la tecnología empleada para cada componente de un sistema informático (principalmente la CPU, la memoria y el almacenamiento offline) suele seleccionarse para minimizar el coste necesario para alcanzar un determinado nivel de rendimiento. Aunque tanto el microprocesador como la memoria se implementan como circuitos integrados, la tecnología predominante utilizada para cada uno difiere: la tecnología del microprocesador optimiza la velocidad y la tecnología de la memoria optimiza la densidad. Por este motivo, la integración de la memoria y el procesador en el mismo chip se ha limitado (en su mayor parte) a la memoria estática de acceso aleatorio (SRAM), que puede implementarse utilizando tecnología de circuitos optimizada para el rendimiento lógico, en lugar de la memoria dinámica de acceso aleatorio (DRAM), más densa y de menor coste, que no lo es. Sin embargo, el acceso del microprocesador a la memoria fuera del chip cuesta tiempo y energía, lo que limita significativamente el rendimiento del procesador. Por este motivo, se ha desarrollado una arquitectura informática que emplea una jerarquía de sistemas de memoria, en la que la memoria estática se integra con el microprocesador para el almacenamiento temporal y de fácil acceso (o caché) de datos que también se conservan fuera del chip en la DRAM. [4] Dado que la memoria caché en el chip es redundante, su presencia aumenta el coste y la energía. El propósito del proyecto de investigación IRAM fue encontrar si (en algunas aplicaciones informáticas) se podía lograr un mejor equilibrio entre costo y rendimiento con una arquitectura en la que la DRAM estuviera integrada en el chip con el procesador, eliminando así la necesidad de un caché de memoria estática redundante, incluso aunque la tecnología utilizada no fuera óptima para la implementación de DRAM.
Si bien es justo decir que Berkeley IRAM no alcanzó el reconocimiento que recibió Berkeley RISC , el proyecto IRAM fue influyente. Aunque las propuestas iniciales de IRAM se centraron en las compensaciones entre CPU y DRAM, la investigación de IRAM terminó concentrándose en los conjuntos de instrucciones vectoriales. Sus publicaciones fueron las primeras en defender la incorporación del procesamiento vectorial y los conjuntos de instrucciones vectoriales en los microprocesadores, y varios microprocesadores comerciales, como Intel Advanced Vector Extensions (AVX), adoptaron posteriormente extensiones de conjuntos de instrucciones de procesamiento vectorial.