ES2575095T3 - Memoria configurada para proporcionar acceso simultáneo de lectura / escritura a múltiples bancos - Google Patents

Memoria configurada para proporcionar acceso simultáneo de lectura / escritura a múltiples bancos Download PDF

Info

Publication number
ES2575095T3
ES2575095T3 ES12808934.9T ES12808934T ES2575095T3 ES 2575095 T3 ES2575095 T3 ES 2575095T3 ES 12808934 T ES12808934 T ES 12808934T ES 2575095 T3 ES2575095 T3 ES 2575095T3
Authority
ES
Spain
Prior art keywords
memory
controller
memory address
local
read
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES12808934.9T
Other languages
English (en)
Inventor
Esin Terzioglu
Dongkyu Park
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2575095T3 publication Critical patent/ES2575095T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)
  • Dram (AREA)
  • Read Only Memory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

Un procedimiento, que comprende: proporcionar una memoria de múltiples bancos, con al menos bancos de memoria primero y segundo; proporcionar al menos controladores locales primero y segundo adaptados para controlar operaciones de lectura y de escritura en al menos dichos bancos de memoria primero y segundo; proporcionar un controlador global en comunicación con al menos dichos controladores locales primero y segundo; proporcionar al controlador global una primera instrucción que comprende una primera dirección de memoria y una primera operación a realizar en la primera dirección de memoria; proporcionar al controlador global una segunda instrucción que comprende una segunda dirección de memoria y una segunda operación a realizar en la segunda dirección de memoria; instruir, usando el controlador global, al primer controlador local para realizar la primera operación en la primera dirección de memoria e instruir al segundo controlador local para realizar la segunda operación en la segunda dirección de memoria; y controlar, usando un temporizador en el controlador global, un intervalo en el que el controlador global envía las instrucciones primera y segunda a los controladores locales primero y segundo.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Memoria configurada para proporcionar acceso simultaneo de lectura / escritura a multiples bancos Campo de divulgacion
La presente invencion esta orientada a una memoria de ordenador que permite el acceso simultaneo de lectura y de escritura a distintos bancos de una memoria de multiples bancos y a un procedimiento de provision de tal acceso y mas especificamente, a una memoria de ordenador que permite el acceso simultaneo de lectura y de escritura a distintos bancos de una memoria de multiples bancos enviando una instruccion que incluye una ubicacion de memoria y una indicacion de una operacion a realizar en la ubicacion de memoria y hacia un procedimiento de provision de tal acceso.
Antecedentes
La memoria convencional de puerto unico incluye generalmente un conjunto unico de direcciones y un control unico. Por lo tanto, solamente un dispositivo puede acceder a la misma a la vez: puede ser realizada una unica operacion de lectura o una unica operacion de escritura, pero ambos tipos de operacion no pueden ser realizados al mismo tiempo.
Cuando es deseable proporcionar acceso simultaneo de lectura y de escritura a una memoria, puede ser usada una memoria de dos puertos o una memoria de multiples puertos. Por ejemplo, puede hacerse un acceso de lectura mediante un puerto de la memoria, mientras que se hace un acceso de escritura mediante el otro puerto. Las memorias convencionales de dos puertos o de multiples puertos, sin embargo, incluyen generalmente mas transistores que las memorias de puerto unico y por tanto ocupan mas espacio en un chip que las memorias de puerto unico. Cuando no se requiere el acceso a la misma ubicacion (o cuando puede estar prohibido), pueden usarse memorias distintas; sin embargo, hay tambien una penalizacion en el area asociada al uso de memorias distintas pues muchos de los circuitos perifericos para una de las memorias estan duplicados para la otra memoria. La necesidad de lectura y de escritura simultaneas debe por tanto ser sopesada con respecto a la penalizacion en que se incurre para el espacio y las memorias de puerto dual o de multiples puertos son seleccionadas en general solamente cuando la necesidad del acceso simultaneo sobrepasa las penalizaciones de area y de filtracion asociadas con las mismas. Seria deseable por lo tanto proporcionar una memoria que tenga capacidades simultaneas de lectura y escritura que mejore las memorias convencionales de puerto dual o de multiples puertos.
Se reclama atencion al documento CA 2 239 426 A1 que describe un sistema de memoria compartido, que comprende una pluralidad de bancos de memoria y una pluralidad de unidades de procesamiento. Cada unidad de procesamiento tiene direccion de memoria y buses de datos y genera una senal de comando para solicitar un acceso a memoria compartida. El sistema emplea al menos una estructura de conmutacion de bus que comprende al menos un conmutador de bus de compuerta de pasaje. La estructura de conmutacion de bus tiene un retardo de propagacion despreciable y se usa para conectar la direccion de memoria y los buses de datos de cada unidad de procesamiento con cada banco de memoria. Un controlador de memoria compartida recibe la senal de solicitud de acceso a memoria asociada a cada unidad de procesamiento. El controlador de memoria compartida controla la estructura de conmutacion de bus y cada banco de memoria a fin de permitir que distintas unidades de procesamiento accedan a cada banco de memoria simultaneamente y asincronamente.
Sumario
De acuerdo con la presente invencion se proporciona un procedimiento y una memoria, segun lo enunciado, respectivamente, en las reivindicaciones independientes. Las realizaciones preferidas de la invencion estan descritas en las reivindicaciones dependientes.
Una realizacion ejemplar de la invencion comprende un procedimiento que incluye proporcionar una memoria de multiples bancos que tiene al menos bancos de memoria primero y segundo, donde cada uno de los bancos de memoria primero y segundo incluye una pluralidad de elementos de memoria de puerto unico y proporcionar controladores locales primero y segundo para controlar operaciones de lectura y escritura en los bancos de memoria primero y segundo. El procedimiento tambien incluye proporcionar un controlador global para enviar instrucciones de lectura y escritura a los controladores locales primero y segundo y enviar una instruccion de lectura al primer controlador local y enviar una instruccion de escritura al segundo controlador local al mismo tiempo.
Otra realizacion incluye una memoria con al menos bancos primero y segundo de elementos de memoria de puerto unico, un primer controlador local adaptado para enviar instrucciones de lectura y escritura al primer banco de memoria, un segundo controlador local adaptado para enviar instrucciones de lectura y escritura al segundo banco de memoria y un controlador global en comunicacion con los controladores locales primero y segundo. El controlador global esta configurado para recibir direcciones de memoria primera y segunda y una primera indicacion de una operacion a realizar en la primera direccion de memoria y una segunda indicacion de una operacion a realizar en la segunda direccion de memoria y para instruir al primer controlador local para realizar la primera operacion indicada en la primera direccion de memoria y para instruir al segundo controlador local para realizar la segunda operacion indicada en la segunda direccion de memoria al mismo tiempo.
5
10
15
20
25
30
35
40
45
50
55
60
65
Una realizacion adicional comprende un procedimiento que incluye proporcionar una memoria de multiples bancos con al menos bancos de memoria primero y segundo, proporcionar al menos controladores primero y segundo adaptados para controlar las operaciones de lectura y escritura en al menos dichos bancos de memoria primero y segundo y proporcionar un controlador global en comunicacion con al menos dichos controladores primero y segundo. El procedimiento tambien incluye proporcionar al controlador global una primera instruccion que comprende una primera direccion de memoria y una primera operacion a realizar en la primera direccion de memoria y una segunda instruccion que comprende una segunda direccion de memoria y una segunda operacion a realizar en la segunda direccion de memoria. El controlador global instruye al primer controlador local para realizar la primera operacion en la primera direccion de memoria y al segundo controlador local para realizar la segunda operacion en la segunda direccion de memoria.
Otra realizacion mas comprende un dispositivo que incluye una memoria de multiples bancos que tiene al menos bancos de memoria primero y segundo y al menos controladores primero y segundo adaptados para controlar operaciones de lectura y de escritura en al menos dichos bancos de memoria primero y segundo. El dispositivo tambien incluye un controlador global en comunicacion con al menos dichos controladores locales primero y segundo y el controlador esta configurado para recibir una primera instruccion que comprende una primera direccion de memoria y una primera operacion a realizar en la primera direccion de memoria y una segunda instruccion que comprende una segunda direccion de memoria y una segunda operacion a realizar en la segunda direccion de memoria. El controlador global tambien esta configurado para instruir al primer controlador local para realizar la primera operacion en la primera direccion de memoria y para instruir al segundo controlador local para realizar la segunda operacion en la segunda direccion de memoria.
Otra realizacion comprende una memoria que tiene una disposicion de elementos de memoria, una disposicion de controladores locales adaptada para enviar instrucciones de lectura y de escritura a la disposicion de elementos de memoria y una disposicion de controladores globales en comunicacion con la disposicion de controladores locales. La disposicion de controladores globales esta configurada para recibir direcciones de memoria primera y segunda y una primera indicacion de una operacion a realizar en una primera direccion de memoria y una segunda indicacion de una operacion a realizar en una segunda direccion de memoria y para instruir a la disposicion de controladores locales para realizar la primera operacion indicada en la primera direccion de memoria y la segunda operacion indicada en la segunda direccion de memoria al mismo tiempo.
Una realizacion adicional comprende un procedimiento que incluye etapas para proporcionar una memoria de multiples bancos con al menos bancos de memoria primero y segundo, comprendiendo cada uno de los bancos de memoria primero y segundo una pluralidad de elementos de memoria de puerto unico y etapas para proporcionar controladores locales primero y segundo para controlar operaciones de lectura y de escritura en al menos dichos bancos de memoria primero y segundo. El procedimiento tambien incluye etapas para proporcionar un controlador global para enviar instrucciones de lectura y de escritura a los controladores locales primero y segundo y etapas para enviar una instruccion de lectura al primer controlador local y enviar una instruccion de escritura al segundo controlador local al mismo tiempo.
Breve descripcion de los dibujos
Los dibujos adjuntos se presentan para ayudar en la descripcion de las realizaciones de la invencion y se proporcionan unicamente para la ilustracion de las realizaciones y no la limitacion de las mismas.
La FIG. 1 es un diagrama esquematico de circuitos que ilustra una memoria de acuerdo a una primera realizacion.
La FIG. 2 es un diagrama esquematico de circuitos que ilustra una memoria de acuerdo a una segunda realizacion.
La FIG. 3 es una representacion esquematica de dos instrucciones a procesar por parte de la memoria de la FIG. 1 o la FIG. 2.
La FIG. 4 es un grafico de flujo que ilustra un procedimiento de acuerdo a una realizacion.
La FIG. 5 es un grafico de flujo que ilustra un procedimiento de acuerdo a otra realizacion.
Descripcion detallada
Los aspectos de la invencion estan divulgados en la siguiente descripcion y los dibujos relacionados, orientados a realizaciones especificas de la invencion. Pueden ser ideadas realizaciones alternativas sin apartarse del ambito de la invencion. Adicionalmente, elementos bien conocidos de la invencion no seran descritos en detalle o seran omitidos a fin de no oscurecer los detalles relevantes de la invencion.
La palabra “ejemplar” se usa en la presente memoria para significar “que sirve como un ejemplo, caso o ilustracion”. Cualquier realizacion descrita en la presente memoria como “ejemplar” no ha de ser necesariamente interpretada como preferida o ventajosa con respecto a otras realizaciones. Analogamente, el termino “realizaciones de la invencion” no requiere que todas las realizaciones de la invencion incluyan la caracteristica, ventaja o modalidad de funcionamiento
5
10
15
20
25
30
35
40
45
50
55
60
65
expuesta.
La terminologia usada en la presente memoria es con el fin de describir realizaciones especificas solamente y no esta concebida para ser limitadora de las realizaciones de la invencion. Segun se usan en la presente memoria, las formas singulares “un”, “uno” y “el” estan concebidas para incluir asimismo las formas plurales, a menos que el contexto indique claramente lo contrario. Se entendera ademas que los terminos “comprende”, “comprendiendo”, “incluye” y / o “incluyendo”, cuando se usan en la presente memoria, especifican la presencia de las caracteristicas, etapas, operaciones, elementos y / o componentes indicados, pero no impiden la presencia o el agregado de uno o mas de otras caracteristicas, otros enteros, otras etapas, otras operaciones, otros elementos, otros componentes y / o de grupos de los mismos.
Ademas, muchas realizaciones estan descritas en terminos de secuencias de acciones a realizar, por ejemplo, por parte de elementos de un dispositivo informatico. Se reconocera que diversas acciones descritas en la presente memoria pueden ser realizadas por circuitos especificos (p. ej., circuitos integrados especificos de la aplicacion (ASIC)), por instrucciones de programa ejecutadas por uno o mas procesadores, o por una combinacion de ambos. Adicionalmente, estas secuencias de acciones descritas en la presente memoria pueden ser consideradas como realizadas enteramente dentro de cualquier forma de medio de almacenamiento legible por ordenador, que tenga almacenado en el mismo un correspondiente conjunto de instrucciones de ordenador que, al ejecutarse, provocarian que un procesador asociado realizara la funcionalidad descrita en la presente memoria. Por tanto, los diversos aspectos de la invencion pueden ser realizados en un cierto numero de formas distintas, todas las cuales han sido contempladas para que esten dentro del ambito del asunto en cuestion reivindicado. Ademas, para cada una de las realizaciones descritas en la presente memoria, la forma correspondiente de realizaciones cualesquiera de ese tipo puede ser descrita en la presente memoria, por ejemplo, como “logica configurada para” realizar la accion descrita.
La Figura 1 ilustra una memoria de multiples bancos 100 de acuerdo a una primera realizacion que incluye un primer banco de memoria 102, un segundo banco de memoria 104, un tercer banco de memoria 106 y un cuarto banco de memoria 108, entendiendose que las realizaciones con mas o menos bancos de memoria tambien estan dentro del ambito de esta divulgacion. Cada uno de los bancos de memoria primero a cuarto 102, 104, 106, 108 incluye una linea de palabras y los circuitos asociados de lectura / escritura que permiten que las operaciones de lectura y escritura sean realizadas en ese banco de memoria. Los circuitos de lectura / escritura incluyen, por ejemplo, un amplificador de deteccion (no ilustrado) y un controlador de escritura (no ilustrado). Especificamente, el primer banco de memoria 102 incluye una linea de palabras 110 y circuitos de lectura / escritura 112, el segundo banco de memoria 104 incluye una linea de palabras 114 y circuitos de lectura / escritura 116, el tercer banco de memoria 106 incluye una linea de palabras 118 y circuitos de lectura / escritura 120 y el cuarto banco de memoria 108 incluye una linea de palabras 122 y circuitos de lectura / escritura 124. Un controlador local tambien esta asociado a cada uno de los bancos de memoria primero a cuarto 102, 104, 106, 108. Especificamente, el primer banco de memoria 102 incluye un primer controlador local 126, el segundo banco de memoria 104 incluye un segundo controlador local 128, el tercer banco de memoria 106 incluye un tercer controlador local 130 y el cuarto banco de memoria 108 incluye un cuarto controlador local 132. Los primeros circuitos de Entrada / Salida 134 estan asociados a los elementos de memoria en una primera columna de memoria 136 y los segundos circuitos de Entrada / Salida 138 estan asociados a los elementos de memoria en una segunda columna de memoria 140 y los circuitos de Entrada / Salida primero y segundo 134, 138, permiten que los datos sean escritos en y leidos de, los elementos de memoria en la primera columna de memoria 136 y la segunda columna de memoria 140, respectivamente.
Un controlador global 142 esta configurado para recibir pares de instrucciones, incluyendo cada instruccion una indicacion de una operacion a realizar y una identificacion de una direccion de memoria en la que ha de realizarse la instruccion. La indicacion, por ejemplo, puede comprender una parte de la direccion de memoria recibida y / o ser transmitida simultaneamente con la direccion de memoria. La Figura 2 ilustra las instrucciones representativas primera y segunda 144, 146, cada una de las cuales incluye una primera parte 148 que identifica una operacion a realizar y una segunda parte 150 que identifica una direccion de memoria en la que la operacion ha de ser realizada. La primera parte 148 de la primera instruccion 144 incluye una “e” de “escritura” y la segunda parte 150 de la primera instruccion 144 incluye una direccion de memoria a ser escrita. En este ejemplo, el “1 ” en la direccion indica que el elemento de memoria al que se accede esta en el primer banco de memoria 102 y el “5” identifica el elemento de memoria. La primera parte 148 de la segunda instruccion 146 incluye una “l” de “lectura” y la segunda parte 150 de la segunda instruccion 146 incluye una direccion de memoria a leer. En este ejemplo, el “2” en la direccion indica que el elemento de memoria al que se accede esta en el segundo banco de memoria 104 y que se ha de acceder a una ubicacion “8”. Si bien “l” y ”e” se usan para indicar “lectura” y “escritura”, respectivamente, la parte identificativa de la instruccion sera probablemente un valor numerico que pueda ser interpretado por el controlador global 142 como una instruccion bien de lectura o bien de escritura. Analogamente, las direcciones de memoria en las segundas partes 150 de las instrucciones primera y segunda 144, 146 seran proporcionadas de manera que puedan ser inmediatamente procesadas por el controlador global.
La memoria de multiples bancos 100 incluye trayectos separados de lectura y de escritura y por tanto puede realizar operaciones de lectura y escritura al mismo tiempo, mientras las operaciones esten siendo realizadas en bancos distintos de los bancos de memoria primero a cuarto 102, 104, 106, 108. El controlador global 142 esta configurado para enviar dos instrucciones a dos controladores distintos entre los controladores locales primero a cuarto 126, 128, 130, 132 al mismo tiempo y siempre que una operacion sea una operacion de lectura y la otra sea una operacion de escritura, las
5
10
15
20
25
30
35
40
45
50
55
60
65
operaciones pueden ejecutarse simultaneamente sin ninguna interferencia en los trayectos de datos de salida. Los elementos de memoria de puerto dual y de multiples puertos permiten el acceso simultaneo a un elemento de memoria dado pero son mas complejos y ocupan mas espacio. En casos donde no se requiere el acceso simultaneo al mismo elemento de memoria, muchas de las ventajas de la memoria de puerto dual y de multiples puertos pueden ser obtenidas usando elementos de memoria de puerto unico y la presente divulgacion. Segun se usan en la presente memoria, “simultaneamente”, “concurrentemente” y “al mismo tiempo” significan que operaciones de lectura y de escritura estan teniendo lugar al mismo tiempo. Estas operaciones, sin embargo, pueden, pero no necesariamente deben, comenzar o acabar en precisamente el mismo instante. En efecto, segun la memoria, se requieren generalmente distintos lapsos de tiempo para que ocurran las operaciones de lectura y de escritura e incluso si comienzan aproximadamente al mismo tiempo, una de estas operaciones terminara generalmente antes que la otra.
Es deseable que el sistema que accede a la memoria de multiples bancos 100 sea configurado para evitar enviar solicitudes conflictivas de acceso a memoria a la memoria de multiples bancos 100. Es decir, el sistema deberia garantizar que los pares de solicitudes de acceso de lectura y de escritura que son enviados a la memoria de multiples bancos 100 esten siempre dirigidos a bancos distintos de los bancos de memoria primero a cuarto 102, 104, 106, 108. La memoria de multiples bancos 100 puede ser configurada, sin embargo, para gestionar situaciones en que dos instrucciones recibidas son bien dos instrucciones de lectura o bien dos instrucciones de escritura o instrucciones para leer y / o escribir en el mismo banco de memoria. En tal caso, el controlador global 142 puede ser configurado para dar prioridad a una de las instrucciones sobre la otra o para ignorar ambas instrucciones y evitar asi el conflicto.
Como se ha indicado anteriormente, las instrucciones de lectura y de escritura para un dispositivo de memoria dado requieren habitualmente distintos lapsos para ser ejecutadas. Para los fines de la exposicion, se supone que realizar una operacion de escritura en la memoria de multiples bancos 100 requiere mas tiempo que realizar una operacion de lectura. Sin embargo, para otras memorias, un acceso de lectura puede tomar mas tiempo que un acceso de escritura. Para ayudar a asegurar que el controlador global 142 no comience otra operacion de lectura o de escritura antes de que se acabe una operacion actual, el controlador global 142 incluye un temporizador de escritura 152. El temporizador de escritura 152 controla el intervalo en el que el controlador global 142 envia instrucciones a los controladores locales primero a cuarto 126, 128, 130, 132 y no permite que las instrucciones de lectura o de escritura sean enviadas hasta que el temporizador de escritura 152 se haya agotado indicando que ha pasado un tiempo predeterminado. Debido a que en esta realizacion se supone que las operaciones de escritura requieren mas tiempo que las operaciones de lectura, las operaciones de lectura habran acabado necesariamente en el momento en que se agote el temporizador de escritura 152. La memoria de multiples bancos 100 es por tanto un elemento de memoria auto-temporizado que no es dependiente de un reloj del sistema para determinar la temporizacion del acceso a memoria.
En funcionamiento, la primera instruccion 144 y la segunda instruccion 146 son recibidas en el controlador global 142. La primera instruccion 144 incluye una “l” y una direccion en el primer banco de memoria 102. La segunda instruccion incluye una “e” y una direccion en el segundo banco de memoria 104. El controlador global 142 envia asi una instruccion al primer controlador local 126 en el primer banco de memoria 102 para realizar una operacion de lectura en la ubicacion de memoria indicada y de manera esencialmente simultanea, envia una instruccion de escritura al segundo controlador local 128 del segundo banco de memoria 104 para realizar una operacion de escritura en la ubicacion indicada. La lectura y escritura efectiva de los datos es realizada de manera convencional, aunque, a diferencia de las memorias convencionales, es realizada al mismo o esencialmente al mismo tiempo en los dos bancos de memoria distintos. Cuando se agota el temporizador de escritura 152, un segundo par de direcciones de memoria es recibido por el controlador global 142 y el proceso continua.
Una segunda realizacion esta ilustrada en la Figura 3, en la que los elementos comunes con la primera realizacion estan identificados con iguales numeros de referencia. En la Figura 3, el controlador global 142 incluye un temporizador de lectura 302 ademas del temporizador de escritura 152 de la primera realizacion. El temporizador de lectura 302 permite a la memoria 100 determinar independientemente cuando se completan las operaciones de lectura y de escritura y emprender por tanto las acciones adecuadas en base a los tiempos efectivos de terminacion. Por ejemplo, si se determina usando el temporizador 302 que ha terminado una operacion de lectura, puede ser posible comenzar la pre- carga adecuada de una linea de bits de lectura sin esperar a que se complete la operacion de escritura.
La memoria 100 proporciona por tanto la ventaja de permitir operaciones simultaneas de lectura y de escritura en distintos bancos de memoria de una memoria de multiples bancos, que esta formada por elementos de memoria de puerto unico. Esto brinda muchas de las ventajas de la memoria de puerto dual o multiples puertos y permite las operaciones simultaneas de lectura y de escritura mientras se impidan las operaciones simultaneas en el mismo banco de memoria.
Las memorias de acuerdo a las realizaciones divulgadas pueden estar formadas o integradas en uno o mas troqueles semiconductores y / o en diversos dispositivos, incluyendo, sin limitacion, un equipo de sobremesa, un reproductor de musica, un reproductor de video, una unidad de entretenimiento, un dispositivo de navegacion, un dispositivo de comunicaciones, un asistente digital personal (PDA), una unidad de datos de ubicacion fija y un ordenador.
Un procedimiento de acuerdo con una realizacion se ilustra en la Figura 4 e incluye un bloque 400 de provision de una memoria de multiples bancos que tiene al menos bancos de memoria primero y segundo, un bloque 402 de provision de
5
10
15
20
25
30
35
40
45
50
al menos controladores locales primero y segundo adaptados para controlar operaciones de lectura y de escritura en al menos dichos bancos de memoria primero y segundo, un bloque 404 de provision de un controlador global en comunicacion con al menos dichos controladores locales primero y segundo, un bloque 406 de provision al controlador global de una primera instruccion que comprende una primera direccion de memoria y una primera operacion a realizar en la primera direccion de memoria, un bloque 408 de provision al controlador global de una segunda instruccion que comprende una segunda direccion de memoria y una segunda operacion a realizar en la segunda direccion de memoria y un bloque 410 del controlador global que instruye al primer controlador local para realizar la primera operacion en la primera direccion de memoria y que instruye al segundo controlador local para realizar la segunda operacion en la segunda direccion de memoria.
Otro procedimiento de acuerdo a una realizacion adicional esta ilustrado en la Figura 5 e incluye un bloque 500 de provision de una memoria de multiples bancos que tiene al menos bancos de memoria primero y segundo, comprendiendo cada uno de los bancos de memoria primero y segundo una pluralidad de elementos de memoria de puerto unico, un bloque 502 de provision de controladores locales primero y segundo para controlar operaciones de lectura y de escritura en al menos dichos bancos de memoria primero y segundo, un bloque 504 de provision de un controlador global para enviar instrucciones de lectura y de escritura a los controladores locales primero y segundo y un bloque 506 de envio de una instruccion de lectura al primer controlador local y de envio de una instruccion de escritura al segundo controlador local al mismo tiempo.
Los expertos en la tecnica apreciaran que la informacion y las senales pueden ser representadas usando cualquiera entre una amplia variedad de distintas tecnologias y tecnicas. Por ejemplo, los datos, las instrucciones, los comandos, la informacion, las senales, los bits, los simbolos y los chips que puedan ser mencionados en toda la extension de la descripcion anterior pueden ser representados por voltajes, corrientes, ondas electromagneticas, campos o particulas magneticos, campos o particulas opticos, o cualquier combinacion de los mismos.
Ademas, los expertos en la tecnica apreciaran que los diversos bloques logicos ilustrativos, modulos, circuitos y etapas de algoritmo descritos con relacion a las realizaciones divulgadas en la presente memoria pueden ser implementados como hardware electronico, software de ordenador o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad del hardware y del software, diversos componentes ilustrativos, bloques, modulos, circuitos y etapas han sido descritos en lo que antecede en general en terminos de su funcionalidad. Si tal funcionalidad es implementada como hardware o software depende de la aplicacion especifica y de las restricciones de diseno impuestas sobre el sistema global. Los artesanos expertos pueden implementar la funcionalidad descrita de manera variable para cada aplicacion especifica, pero tales decisiones de implementacion no deberian ser interpretadas como causantes de un alejamiento del ambito de la presente invencion.
Los procedimientos, secuencias y / o algoritmos descritos con relacion a las realizaciones divulgadas en la presente memoria pueden ser realizados directamente en hardware, en un modulo de software ejecutado por un procesador o en una combinacion de los dos. Un modulo de software puede residir en memoria RAM, memoria flash, memoria ROM, memoria EPROM, memoria EEPROM, registros, un disco rigido, un disco extraible, un CD-ROM o cualquier otra forma de medio de almacenamiento conocido en la tecnica. Un medio de almacenamiento ejemplar esta acoplado con el procesador de modo que el procesador pueda leer informacion de y escribir informacion en, el medio de almacenamiento. Como alternativa, el medio de almacenamiento puede estar integrado en el procesador.
Si bien la divulgacion precedente muestra realizaciones ilustrativas de la invencion, deberia observarse que diversos cambios y modificaciones podrian ser hechos en la presente memoria sin apartarse del ambito de la invencion segun lo definido por las reivindicaciones adjuntas. Las funciones, etapas y / o acciones de las reivindicaciones de procedimiento de acuerdo con las realizaciones de la invencion descrita en la presente memoria no necesariamente deben ser realizadas en ningun orden especifico. Ademas, aunque los elementos de la invencion pueden ser descritos o reivindicados en singular, esta contemplado el plural a menos que se indique explicitamente la limitacion al singular.

Claims (14)

10
15
20
25
30
35
40
45
50
55
60
REIVINDICACIONES
1. Un procedimiento, que comprende:
proporcionar una memoria de multiples bancos, con al menos bancos de memoria primero y segundo; proporcionar al menos controladores locales primero y segundo adaptados para controlar operaciones de lectura y de escritura en al menos dichos bancos de memoria primero y segundo;
proporcionar un controlador global en comunicacion con al menos dichos controladores locales primero y segundo;
proporcionar al controlador global una primera instruccion que comprende una primera direccion de memoria y una primera operacion a realizar en la primera direccion de memoria;
proporcionar al controlador global una segunda instruccion que comprende una segunda direccion de memoria y una segunda operacion a realizar en la segunda direccion de memoria;
instruir, usando el controlador global, al primer controlador local para realizar la primera operacion en la primera direccion de memoria e instruir al segundo controlador local para realizar la segunda operacion en la segunda direccion de memoria; y
controlar, usando un temporizador en el controlador global, un intervalo en el que el controlador global envia las instrucciones primera y segunda a los controladores locales primero y segundo.
2. El procedimiento de la reivindicacion 1, en el que el controlador global instruye al segundo controlador local para realizar la segunda operacion en la segunda direccion de memoria antes de que haya acabado la primera operacion.
3. El procedimiento de la reivindicacion 1, en el que el controlador global instruye al primer controlador local para realizar la primera operacion en la primera direccion de memoria y al segundo controlador local para realizar la segunda operacion en la segunda direccion de memoria al mismo tiempo.
4. El procedimiento de la reivindicacion 3, que incluye ademas proporcionar trayectos separados de lectura y de escritura, para cada uno de al menos dichos bancos de memoria primero y segundo.
5. El procedimiento de la reivindicacion 3, en el que cada uno de dichos bancos de memoria primero y segundo comprende una pluralidad de elementos de memoria de puerto unico.
6. El procedimiento de la reivindicacion 3, en el que la segunda operacion es distinta a la primera operacion.
7. El procedimiento de la reivindicacion 6, en el que la primera operacion comprende una entre una operacion de lectura y una operacion de escritura y en el que la segunda operacion comprende la otra operacion entre la operacion de lectura y la operacion de escritura.
8. El procedimiento de la reivindicacion 7, que incluye ademas impedir que el controlador global instruya al primer controlador local para realizar la primera operacion si una operacion anterior de lectura o una operacion anterior de escritura esta aun en marcha.
9. El procedimiento de la reivindicacion 7, que incluye ademas determinar si ha pasado o no un tiempo predeterminado desde el envio de la primera instruccion al primer controlador local antes de enviar una instruccion posterior al primer controlador local.
10. El procedimiento de la reivindicacion 1, que incluye ademas integrar la memoria de multiples bancos en al menos un troquel semiconductor.
11. El procedimiento de la reivindicacion 1, que incluye ademas integrar la memoria de multiples bancos en un dispositivo seleccionado entre el grupo que consiste en un equipo de sobremesa, un reproductor de musica, un reproductor de video, una unidad de entretenimiento, un dispositivo de navegacion, un dispositivo de comunicaciones, un asistente digital personal (PDA), una unidad de datos de ubicacion fija y un ordenador.
12. Una memoria, que comprende: medios de elementos de memoria;
medios de controlador local, adaptados para enviar instrucciones de lectura y escritura a los medios de elementos de memoria;
medios de controlador global en comunicacion con los medios de controlador local;
en la que los medios de controlador global estan configurados para recibir direcciones de memoria primera y segunda y una primera indicacion de una operacion a realizar en una primera direccion de memoria en los medios de elementos de memoria y una segunda indicacion de una operacion a realizar en una segunda direccion de memoria en los medios de elementos de memoria y para instruir a los medios de controlador local para realizar la primera operacion indicada en la primera direccion de memoria y la segunda operacion indicada en la segunda direccion de memoria al mismo tiempo; y
un temporizador en los medios de controlador global, en el que el temporizador esta configurado para controlar un
intervalo en el que los medios de controlador global envfan instrucciones a los controladores locales primero y segundo.
13. La memoria de la reivindicacion 12, en la que los medios de elementos de memoria comprenden primeros medios
5 de banco de memoria y segundos medios de banco de memoria y en el que los medios de controlador local
comprenden primeros medios de controlador local y segundos medios de controlador local y en el que la primera direccion de memoria esta situada en los primeros medios de banco de memoria y la segunda direccion de memoria esta situada en los segundos medios de banco de memoria y en el que la primera operacion indicada es distinta a la segunda operacion indicada.
10
14. La memoria de la reivindicacion 13, en la que la primera operacion indicada comprende una operacion de lectura y la segunda operacion indicada comprende una operacion de escritura y en la que los primeros medios de controlador local ejecuta la operacion de lectura mientras que los segundos medios de controlador local ejecuta la operacion de escritura.
15
ES12808934.9T 2011-11-16 2012-11-16 Memoria configurada para proporcionar acceso simultáneo de lectura / escritura a múltiples bancos Active ES2575095T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201113297771 2011-11-16
US13/297,771 US8699277B2 (en) 2011-11-16 2011-11-16 Memory configured to provide simultaneous read/write access to multiple banks
PCT/US2012/065658 WO2013075013A1 (en) 2011-11-16 2012-11-16 Memory configured to provide simultaneous read/write access to multiple banks

Publications (1)

Publication Number Publication Date
ES2575095T3 true ES2575095T3 (es) 2016-06-24

Family

ID=47470109

Family Applications (2)

Application Number Title Priority Date Filing Date
ES12808934.9T Active ES2575095T3 (es) 2011-11-16 2012-11-16 Memoria configurada para proporcionar acceso simultáneo de lectura / escritura a múltiples bancos
ES16160755T Active ES2700854T3 (es) 2011-11-16 2012-11-16 Memoria configurada para proporcionar acceso simultáneo de lectura/escritura a múltiples bancos

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES16160755T Active ES2700854T3 (es) 2011-11-16 2012-11-16 Memoria configurada para proporcionar acceso simultáneo de lectura/escritura a múltiples bancos

Country Status (10)

Country Link
US (1) US8699277B2 (es)
EP (2) EP3082048B1 (es)
JP (1) JP5852259B2 (es)
KR (1) KR101669945B1 (es)
CN (1) CN104081372B (es)
BR (1) BR112014011806B1 (es)
ES (2) ES2575095T3 (es)
HU (1) HUE028961T2 (es)
IN (1) IN2014CN03730A (es)
WO (1) WO2013075013A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013014841A1 (ja) * 2011-07-22 2015-02-23 パナソニック株式会社 データ処理装置およびデータ処理方法
US10719237B2 (en) 2016-01-11 2020-07-21 Micron Technology, Inc. Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory
US10140044B2 (en) * 2016-03-31 2018-11-27 Qualcomm Incorporated Efficient memory bank design
US11294594B2 (en) 2017-08-07 2022-04-05 Kioxia Corporation SSD architecture supporting low latency operation
US11113198B2 (en) 2019-05-06 2021-09-07 Micron Technology, Inc. Timed data transfer between a host system and a memory sub-system
US11113006B2 (en) * 2019-05-06 2021-09-07 Micron Technology, Inc. Dynamic data placement for collision avoidance among concurrent write streams
US11776591B2 (en) * 2019-09-26 2023-10-03 Arm Limited Concurrent access techniques utilizing wordlines with the same row address in single port memory
US11386937B2 (en) 2019-10-12 2022-07-12 Arm Limited System device and method for providing single port memory access in bitcell array by tracking dummy wordline

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0145224B1 (ko) 1995-05-27 1998-08-17 김광호 불휘발성 반도체 메모리의 분리된 기입 및 독출 경로를 가지는 워드라인 구동회로
US5996051A (en) 1997-04-14 1999-11-30 Advanced Micro Devices, Inc. Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array
US6009501A (en) * 1997-06-18 1999-12-28 Micron Technology, Inc. Method and apparatus for local control signal generation in a memory device
CA2239426A1 (en) 1998-06-03 1999-12-03 Newbridge Networks Corporation Shared memory system
JP2000276400A (ja) * 1999-03-25 2000-10-06 Univ Hiroshima アドレス及びデータ転送回路
US6412030B1 (en) 1999-04-16 2002-06-25 Koninklijke Philips Electronics N.V. System and method to optimize read performance while accepting write data in a PCI bus architecture
EP1069512A3 (en) * 1999-07-12 2004-12-15 Matsushita Electric Industrial Co., Ltd. Data processing apparatus with buffering between buses
US6377492B1 (en) 2001-03-19 2002-04-23 Etron Technologies, Inc. Memory architecture for read and write at the same time using a conventional cell
US7738496B1 (en) 2002-12-31 2010-06-15 Cypress Semiconductor Corporation Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains
JP4413524B2 (ja) * 2003-05-01 2010-02-10 株式会社東芝 マルチポートメモリ
JP2005242929A (ja) * 2004-02-27 2005-09-08 Fujitsu Ltd 共有メモリのアクセス方法及びデータ処理装置
US20070028027A1 (en) 2005-07-26 2007-02-01 Micron Technology, Inc. Memory device and method having separate write data and read data buses
US7533222B2 (en) 2006-06-29 2009-05-12 Mosys, Inc. Dual-port SRAM memory using single-port memory cell
JP4205743B2 (ja) * 2006-08-22 2009-01-07 エルピーダメモリ株式会社 半導体記憶装置及び半導体装置
US7523228B2 (en) * 2006-09-18 2009-04-21 International Business Machines Corporation Method for performing a direct memory access block move in a direct memory access device
US7551512B2 (en) 2007-07-30 2009-06-23 Agere Systems Inc. Dual-port memory
US7739433B2 (en) 2008-03-05 2010-06-15 Microchip Technology Incorporated Sharing bandwidth of a single port SRAM between at least one DMA peripheral and a CPU operating with a quadrature clock
US7760562B2 (en) 2008-03-13 2010-07-20 Qualcomm Incorporated Address multiplexing in pseudo-dual port memory
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8164974B2 (en) * 2009-02-24 2012-04-24 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuits, systems, and method of interleaving accesses thereof
US8331123B2 (en) * 2009-09-21 2012-12-11 Ocz Technology Group, Inc. High performance solid-state drives and methods therefor
US8375173B2 (en) * 2009-10-09 2013-02-12 Qualcomm Incorporated Accessing a multi-channel memory system having non-uniform page sizes

Also Published As

Publication number Publication date
CN104081372A (zh) 2014-10-01
HUE028961T2 (en) 2017-02-28
EP3082048B1 (en) 2018-10-03
ES2700854T3 (es) 2019-02-19
BR112014011806A2 (pt) 2017-05-16
KR101669945B1 (ko) 2016-10-27
CN104081372B (zh) 2017-06-13
EP2780813B1 (en) 2016-04-06
JP5852259B2 (ja) 2016-02-03
IN2014CN03730A (es) 2015-07-03
US8699277B2 (en) 2014-04-15
BR112014011806B1 (pt) 2021-01-26
WO2013075013A1 (en) 2013-05-23
EP2780813A1 (en) 2014-09-24
EP3082048A1 (en) 2016-10-19
KR20140098792A (ko) 2014-08-08
JP2014533861A (ja) 2014-12-15
US20130121086A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
ES2575095T3 (es) Memoria configurada para proporcionar acceso simultáneo de lectura / escritura a múltiples bancos
ES2560258T3 (es) Procedimiento y aparato para habilitar la señalización cooperativa de una interrupción de bus compartido en un sub-sistema de memoria de rangos múltiples
ES2847228T3 (es) Decodificación separada de direcciones de lectura y escritura en un sistema de memoria para admitir operaciones simultáneas de lectura y escritura de memoria
KR100816053B1 (ko) 셀프 카피 기능을 가지는 메모리 장치, 메모리 시스템 및듀얼 포트 메모리 장치
US8977811B2 (en) Scalable schedulers for memory controllers
TW201732830A (zh) 用於同時存取非揮發性記憶體之多個分區之裝置及方法
JPH1031886A (ja) ランダムアクセスメモリ
KR101742628B1 (ko) 커맨드/어드레스 버스를 통해 통신들을 교환하기 위한 방법, 장치 및 시스템
TWI425508B (zh) 具隱藏更新及雙埠能力之sram相容嵌入式dram裝置
JP4827399B2 (ja) 半導体記憶装置
US9208856B2 (en) Multiport memory with matching address control
CN101356515B (zh) 连接到多端口存储器的微处理器
US9158715B1 (en) Multi-input memory command prioritization
JP2009301339A (ja) バス制御装置
US8074096B2 (en) Semiconductor integrated circuit, memory system, memory controller and memory control method
JP2005149547A (ja) メモリ制御装置及び集積回路
JP2009032248A (ja) 共有メモリを用いたバス通信装置
US20170075571A1 (en) Memory device and control method thereof
US8848480B1 (en) Synchronous multiple port memory with asynchronous ports
JP2010049511A (ja) 共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ
KR20080034313A (ko) 접근 제어 장치를 가지는 듀얼 포트 메모리, 듀얼 포트메모리를 가지는 메모리 시스템 및 듀얼 포트 메모리의접근 제어 방법
JP2008287571A (ja) 共有メモリ切替え回路と切替え方法
KR100831971B1 (ko) 듀얼 메모리 인터페이스를 가지는 듀얼 포트 메모리 장치,메모리 장치 및 듀얼 포트 메모리 장치 동작 방법
CN116627317A (zh) 含存储器设备和存储器控制器的存储器系统及其操作方法
JP2005235248A (ja) 半導体記憶装置、及びそれを内蔵する半導体集積回路