ES2896703T3 - Dispositivo de control generalizado de transferencias de memoria para los accesos simultáneos en un sistema en un chip - Google Patents

Dispositivo de control generalizado de transferencias de memoria para los accesos simultáneos en un sistema en un chip Download PDF

Info

Publication number
ES2896703T3
ES2896703T3 ES19217027T ES19217027T ES2896703T3 ES 2896703 T3 ES2896703 T3 ES 2896703T3 ES 19217027 T ES19217027 T ES 19217027T ES 19217027 T ES19217027 T ES 19217027T ES 2896703 T3 ES2896703 T3 ES 2896703T3
Authority
ES
Spain
Prior art keywords
memory
firewall
proxy
specific
transfer
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
ES19217027T
Other languages
English (en)
Inventor
Eric Saliba
Luc Bonnafoux
Thomas Bessou
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.)
Thales SA
Original Assignee
Thales SA
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 Thales SA filed Critical Thales SA
Application granted granted Critical
Publication of ES2896703T3 publication Critical patent/ES2896703T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Procedimiento de gestión de la transferencia de datos desde o con destino a al menos una memoria (14) de una arquitectura (12), comprendiendo la arquitectura (12): - componentes iniciadores (16) capaces de solicitar la transferencia de datos desde o con destino a la memoria (14), - proxies (18), siendo al menos uno de los proxies (18) capaz de asegurar la transferencia de datos por cuenta de uno de los componentes iniciadores (16), y - cortafuegos (20), siendo al menos uno de los cortafuegos (20) un cortafuegos (20) específico de la memoria (14), de manera que el cortafuegos (20) específico de la memoria (14) controla el acceso a la memoria (14), de modo que cada memoria (14) y cada componente iniciador (16) presentan un nivel de seguridad, de manera que la arquitectura (12) está caracterizada por una política de filtrado que define reglas de acceso a la memoria (14) para cada componente iniciador (16) y para cada proxy (18) en función de los niveles de seguridad, incluyendo el procedimiento al menos una etapa de: - recepción por el cortafuegos (20) específico para la memoria (14) de al menos una solicitud de transferencia desde el proxy (18), de manera que el procedimiento está caracterizado porque comprende las etapas de - determinación por el cortafuegos (20) específico para la memoria (14) del componente iniciador (16) de la solicitud de transferencia, y - autorización del acceso a la memoria (14) por el cortafuegos (20) específico para la memoria (14) únicamente cuando los niveles de seguridad de la memoria (14) y del componente iniciador (16) de la solicitud de transferencia respetan las reglas de acceso de la política de filtrado.

Description

DESCRIPCIÓN
Dispositivo de control generalizado de transferencias de memoria para los accesos simultáneos en un sistema en un chip
[0001] La presente invención se refiere a un procedimiento de gestión de una transferencia de datos. La presente invención se refiere también a una arquitectura y a un sistema en un chip que comprende la arquitectura correspondiente al procedimiento.
[0002] El documento EP 1742 152 A1 describe un procedimiento y un sistema para un control de acceso a una memoria.
[0003] Una arquitectura es una estructura informática que comprende al menos un grupo de dispositivos de tratamiento y al menos una memoria. Una arquitectura es capaz de efectuar tratamientos sobre datos. Cuando los datos incluyen a la vez datos sensibles y no sensibles, es deseable obtener arquitecturas que respeten las restricciones de confinamiento que define un derecho de acceso a un componente específico por otro componente de la arquitectura.
[0004] Para ello, se sabe usar una MMU (acrónimo de «Memory Management Unit», que significa literalmente unidad de gestión de memoria) que es un mecanismo que establece la correspondencia entre direcciones de memorias físicas y direcciones de memorias virtuales asociadas a tratamientos de un procesador.
[0005] El mecanismo I/O-MMU es un mecanismo MMU particular que asegura la correspondencia entre direcciones de memorias físicas y direcciones de memorias asociadas a un periférico (es decir, dispositivos que comprenden memorias) como, por ejemplo, un controlador de interfaz.
[0006] Dichos mecanismos permiten controlar los accesos memorias durante las correspondencias entre direcciones físicas y direcciones lógicas. Este control se apoya el identificador del procedimiento (MMU) o del controlador (I/OMMU) situado en el origen de la solicitud de acceso.
[0007] Sin embargo, ninguno de estos mecanismos permite realizar un control de acceso cuando la transferencia de datos es realizada por un componente por cuenta de otro componente, como sucede durante las transferencias con acceso de memoria directo (o DMA del inglés «Direct Memory Access») que son realizadas por un controlador específico por cuenta de un procedimiento.
[0008] Existe la necesidad de un procedimiento de gestión de transferencias de datos con destino a y desde memorias que permita una gestión segura de las transferencias implementadas por un tercero.
[0009] Para ello, se propone un procedimiento de gestión de la transferencia de datos desde o con destino a al menos una memoria de una arquitectura, comprendiendo la arquitectura:
- componentes iniciadores capaces de solicitar la transferencia de datos desde o con destino a la memoria, - proxies, de manera que al menos uno de los proxies es capaz de asegurar la transferencia de datos por cuenta de uno de los componentes iniciadores, y
- cortafuegos, siendo al menos uno de los cortafuegos un cortafuegos específico para la memoria, de manera que el cortafuegos específico para la memoria controla el acceso a la memoria,
presentando cada memoria y cada componente iniciador un nivel de seguridad, de manera que la arquitectura se caracteriza por una política de filtrado que define reglas de acceso a la memoria para cada componente iniciador y para cada proxy en función de los niveles de seguridad,
incluyendo el procedimiento al menos una etapa de:
- recepción por el cortafuegos específico para la memoria de al menos una solicitud de transferencia desde el proxy, - determinación por el cortafuegos específico para la memoria del componente iniciador de la solicitud de transferencia, y
- autorización del acceso a la memoria por el cortafuegos específico para la memoria únicamente cuando los niveles de seguridad de la memoria y del componente iniciador de la solicitud de transferencia respetan las reglas de acceso de la política de filtrado.
[0010] Según realizaciones particulares, el procedimiento comprende una o varias de las características siguientes, tomadas de forma aislada o según todas las combinaciones técnicamente posibles:
- al menos uno de los proxies es un componente activo intermediario, en particular un controlador de acceso directo a la memoria, comprendiendo el componente activo intermediario una primera conexión configurada para intercambiar datos con uno de los componentes iniciadores y una segunda conexión configurada para intercambiar datos con una de las memorias;
- la solicitud de transferencia transmitida por el proxy incluye un identificador específico para el componente iniciador que emite la solicitud de transferencia;
- uno de los cortafuegos es un cortafuegos específico para el proxy, de manera que el cortafuegos específico para el proxy controla el acceso al proxy;
- durante la etapa de recepción, el cortafuegos específico para el proxy acepta, cuando una transacción está en curso de realización por el proxy en la memoria, únicamente las solicitudes de transferencia que incluyen el mismo identificador del componente iniciador;
- durante la etapa de recepción, el cortafuegos específico para el proxy bloquea el acceso al proxy por uno de los componentes iniciadores cuando una transacción está en curso por parte del proxy en la memoria y el identificador del componente iniciador difiere del identificador de la transacción en curso;
- el cortafuegos específico para el proxy es un cortafuegos de estados;
- el identificador del componente iniciador está asociado a un nivel de prioridad de tratamiento de las solicitudes de transferencia por el proxy, de manera que el cortafuegos específico para el proxy interrumpe una solicitud de transferencia en curso en la memoria cuando el cortafuegos específico para el proxy recibe una solicitud de transferencia que presenta un nivel de prioridad superior o igual a un nivel de prioridad de la solicitud de transferencia en curso;
- existen reglas y prohíben preferencias en zonas de datos transferidos y, en el que el cortafuegos específico para el proxy recibe una nueva solicitud de transferencia que presenta un nivel de prioridad superior o igual a un nivel de prioridad de la solicitud de transferencia en curso y temporiza la nueva solicitud de transferencia hasta la finalización de la transferencia de la solicitud de transferencia en curso en las zonas de datos concernidas por las reglas que prohíben una preferencia;
- al menos uno de los proxies comprende una o varias memorias volátiles, comprendiendo el procedimiento de gestión una etapa de envío de una orden de supresión de datos registrados en la o las memorias volátiles.
[0011] Además, la descripción se refiere también a una arquitectura capaz de implementar una transferencia de datos, comprendiendo la arquitectura:
- al menos una memoria,
- componentes iniciadores capaces de solicitar la transferencia de datos desde o con destino a la memoria, - proxies, de manera que al menos uno de los proxies es capaz de asegurar la transferencia de datos por cuenta de uno de los componentes iniciadores, y
- cortafuegos, siendo al menos uno de los cortafuegos un cortafuegos específico para la memoria, de manera que el cortafuegos específico para la memoria controla el acceso a la memoria, presentando cada memoria y cada componente iniciador un nivel de seguridad,
estando la arquitectura caracterizada por una política de filtrado que define reglas de acceso a la memoria para cada componente iniciador y para cada proxy en función de los niveles de seguridad,
estando el cortafuegos específico para la memoria configurado para:
- recibir al menos una solicitud de transferencia desde el proxy,
- determinar el componente iniciador de la solicitud de transferencia, y
- autorizar el acceso a la memoria únicamente cuando los niveles de seguridad de la memoria y del componente iniciador de la solicitud de transferencia respetan las reglas de acceso de la política de filtrado.
[0012] Además, la descripción se refiere también a un sistema en al menos un chip que comprende la arquitectura tal como se describe anteriormente.
[0013] Otras características y ventajas de la invención se desprenderán de la lectura de la descripción que se ofrece a continuación de realizaciones de la invención, proporcionada a modo de ejemplo únicamente y en referencia a los dibujos que son:
- figura 1, una representación esquemática de un ejemplo de sistema en un chip que incluyen una arquitectura, y - figura 2, una representación esquemática de la arquitectura de la figura 1 durante un ejemplo de implementación de un procedimiento de gestión.
[0014] En la figura 1 se ilustra esquemáticamente un sistema 10 en al menos un chip.
[0015] Por definición, un sistema en un chip es un sistema cuyos elementos se incluyen en un solo chip. Dicho sistema se designa a menudo por el acrónimo Soc que remite a la expresión en inglés de «System on a Chip».
[0016] Según una realización, el sistema 10 está dispuesto en un solo chip.
[0017] En otra realización, el sistema 10 se distribuye en varios chips configurados para comunicarse a través de los buses de datos (no representados).
[0018] Según un ejemplo, el sistema 10 está distribuido en un primer chip y un segundo chip, por ejemplo, para controlar voces de radio de tipo diferentes. El primer chip corresponde, por ejemplo, a una tarjeta digital, y el segundo chip corresponde, por ejemplo, a una tarjeta de radiofrecuencia.
[0019] El sistema 10 incluye una arquitectura 12.
[0020] La arquitectura 12 está configurada para implementar al menos una transferencia de datos.
[0021] La arquitectura 12 incluye memorias 14, componentes iniciadores 16, proxies 18 y un conjunto de cortafuegos 20.
[0022] La arquitectura 12 se caracteriza por una política de filtrado que define reglas de acceso de cada componente a cada otro componente en función de los niveles de seguridad atribuidos a cada componente.
[0023] En particular, se atribuyen niveles de seguridad a las memorias 14, los componentes iniciadores 16 y los proxies 18.
[0024] En particular, la política de filtrado define las reglas de acceso a las memorias 14 y a los proxies 18.
[0025] Una memoria 14 es un elemento capaz de memorizar datos.
[0026] En el ejemplo de la figura 1, la arquitectura 12 comprende una primera memoria 14A y una segunda memoria 14B.
[0027] Sin embargo, este número no es sino un ejemplo sencillo, ya que el número puede ser superior o inferior.
[0028] En el ejemplo representado, las memorias 14A, 14B son componentes distintos.
[0029] Como variante, las memorias 14A, 14B forman parte del mismo componente. En este último caso, cada memoria 14A, 14B puede calificarse de zona de memoria.
[0030] Según una variante, las memorias 14A, 14B forman una única memoria física que comprende una pluralidad de zonas de memorias. Cada zona de memoria presenta en particular un nivel de seguridad determinado.
[0031] En el ejemplo propuesto, la arquitectura 12 incluye dos componentes iniciadores 16 pero al igual que en el caso de las memorias 14, este número es un ejemplo sencillo. En los ejemplos de las figuras se representa un primer componente iniciador 16A y un segundo componente iniciador 16B.
[0032] Cada componente iniciador 16 es capaz de solicitar una transferencia de datos desde o con destino a las memorias 14.
[0033] Para esto, cada componente iniciador 16 emite una solicitud de transferencia.
[0034] Una solicitud de transferencia desde una memoria 14 es una operación de lectura de datos memorizados en la memoria 14 mientras que una solicitud de transferencia con destino a una memoria 14 es una operación de escritura en la memoria 14 de datos.
[0035] Según el ejemplo descrito, la solicitud de transferencia comprende un identificador específico para el componente iniciador 16 que emite la solicitud de transferencia.
[0036] Los componentes iniciadores 16 son núcleos de un procesador, es decir, un conjunto de circuitos capaces de ejecutar cálculos de forma autónoma.
[0037] Según un ejemplo, el procesador es un procesador de tratamiento digital o un procesador de interfaces. Por procesador de interfaces se entiende un procesador que realiza transferencias memoria entre una fuente de datos dispuesta en interfaz con el procesador de interfaces y una memoria. Un procesador de interfaces está integrado, por ejemplo, en una arquitectura configurada para implementar acceso directo a la memoria (DMA), en una arquitectura que comprende un registro incluido que comprende una interfaz para una tarjeta de memoria multimedia (o MMC del inglés «MultiMedia Card»), también llamada arquitectura eMMC, o arquitecturas que comprenden un controlador USB o un circuito lógico programable (o FPGA del inglés «Field-programmable gate array»).
[0038] Según otro ejemplo más, el procesador es un microprocesador multinúcleo.
[0039] Cada componente iniciador 16 está configurado para implementar procedimientos. Un procedimiento en el marco de la presente descripción designa un software que puede ser ejecutado en el componente iniciador 16.
[0040] Un proxy 18 es un elemento capaz de asegurar transferencias de datos por cuenta de uno de los componentes iniciadores 16.
[0041] Según el ejemplo de la figura 1, cada componente iniciador 16 está asociado a un proxy 18. En los ejemplos de las figuras se representa un primer proxy 18A y un segundo proxy 18B.
[0042] El proxy 18 es así capaz de recibir una solicitud de transferencia emitida por el componente iniciador 16 y de implementar las transferencias de datos requeridas entre los recursos de memoria 14 por cuenta del componente iniciador 16.
[0043] Según el ejemplo descrito, el proxy 18 es un controlador de acceso directo a la memoria. Dicho controlador se designa a menudo con el término de controlador DMA, de manera que el acrónimo DMA remite al término inglés «Direct Memory Access».
[0044] Dicho proxy 18 es un componente activo en el sentido en que el proxy puede efectuar él mismo solicitudes o transacciones tras la recepción sin intervención del componente iniciador 16.
[0045] Además, dicho proxy 18 es un componente intermediario en el sentido en que el proxy 18 está conectado físicamente entre el componente iniciador 16 y la memoria 14. Dichas conexiones se representan respectivamente por los trazos 22 y 24 en la figura 1.
[0046] El conjunto de cortafuegos 20 incluye cortafuegos de proxy 26 y cortafuegos de memoria 28.
[0047] Cada cortafuegos de proxy 26 es un cortafuegos específico de un proxy 18.
[0048] Por la expresión «cortafuegos específico para el proxy» se entiende un cortafuegos configurado para implementar intercambios de datos biyectivos con el proxy respectivo. Esto significa que el cortafuegos específico para el proxy está configurado para controlar el acceso al proxy respectivo únicamente, es decir, que dicho cortafuegos específico para el proxy no controla el acceso a otros proxies.
[0049] Cada cortafuegos de proxy 26 es capaz de controlar las solicitudes de transferencia que provienen de los componentes iniciadores 16 hacia el proxy 18, denominadas solicitudes corriente arriba RA, y las transferencias de datos realizadas por el proxy 18 en los recursos de memoria 14 por cuenta del componente iniciador 16, denominadas solicitudes corriente abajo RB. Las solicitudes corriente abajo son controladas, por ejemplo, por el cortafuegos de proxy 26 y/o por el cortafuegos de memoria 28.
[0050] Según el ejemplo descrito, cada cortafuegos de proxy 26 es un cortafuegos de estados.
[0051] Además, en lo sucesivo, cada cortafuegos de proxy 26 se denomina cortafuegos de estados 26.
[0052] Por «cortafuegos de estados» se entiende un cortafuegos capaz de efectuar un filtrado según una máquina de estados que implementa una pluralidad de etapas según reglas de acceso que tienen en cuenta ciertas condiciones de estado del cortafuegos de estados. Por ejemplo, las reglas de acceso se modifican cuando las condiciones de estado del cortafuegos de estados evolucionan, tal como se describe a continuación, durante el funcionamiento del cortafuegos de estados. Según el ejemplo propuesto, las reglas de acceso del cortafuegos de estados son al menos en parte las de la política de filtrado.
[0053] Cada cortafuegos de memoria 28 es un cortafuegos específico de una memoria 14.
[0054] Por la expresión «cortafuegos específico para la memoria» se entiende un cortafuegos configurado para implementar intercambios de datos biyectivos con la memoria respectiva. Esto significa que el cortafuegos específico para la memoria está configurado para implementar intercambios de datos únicamente con la memoria 14 respectiva pero no intercambia datos con otras memorias.
[0055] Cada cortafuegos de memoria 28 es capaz de controlar el acceso a la memoria 14 para la cual es específico.
[0056] Según el ejemplo descrito, cada cortafuegos de memoria 28 es un cortafuegos estático.
[0057] También, en lo sucesivo, cada cortafuegos de memoria 28 se denomina cortafuegos estático 28.
[0058] Por «cortafuegos estático» se entiende un cortafuegos capaz de efectuar un filtrado según reglas invariantes.
[0059] Según el ejemplo propuesto, las reglas de acceso del cortafuegos estático son al menos en parte las de la política de filtrado.
[0060] A continuación, se describe el funcionamiento de la arquitectura 12 en referencia a una figura 2 que ilustra esquemáticamente un ejemplo de implementación de un procedimiento de gestión de una transferencia de datos desde y con destino a una memoria 14.
[0061] El procedimiento de gestión incluye una etapa de inicialización, una etapa de recepción y de autorización de solicitudes de transferencia corriente arriba en estado inicializado, una etapa de marcado y de emisión de solicitudes de transferencia corriente abajo y una etapa de recepción de solicitudes de transferencia corriente abajo.
[0062] Durante la etapa de inicialización, el conjunto de cortafuegos 20 es alimentado eléctricamente.
[0063] Antes de la alimentación, cada cortafuegos 20 bloquea todas las solicitudes y después de la alimentación, cada cortafuegos 20 bloquea todas las solicitudes en tanto que las reglas de acceso pertinentes para el cortafuegos 20 considerado no sean conocidas por cada cortafuegos 20.
[0064] La etapa de inicialización incluye entonces la inserción de reglas de acceso pertinentes en cada cortafuegos 20.
[0065] Durante la etapa de recepción y de autorización de solicitudes de transferencia corriente arriba en estado inicializado, se supone que el primer componente iniciador 16a emite una primera solicitud R1 de transferencia de datos memorizados en la primera memoria 14A y que el segundo componente iniciador 16B emite una segunda solicitud R2 de transferencia de datos memorizados en la misma primera memoria 14A.
[0066] En particular, durante la etapa de recepción y de autorización de solicitudes de transferencia corriente arriba en estado inicializado, el primer cortafuegos de estados 26 recibe la primera solicitud R1 y la segunda solicitud R2.
[0067] El cortafuegos de estados 26 determina el identificador del primer componente iniciador 16A contenido en la primera solicitud R1, así como el identificador del segundo componente iniciador 16B contenido en la segunda solicitud R2.
[0068] El cortafuegos de estados 26 autoriza el acceso al mediador 18 únicamente si los niveles del componente iniciador 16 que ha emitido la solicitud y el del primer mediador 18 están según la política de filtrado.
[0069] Más en concreto, el cortafuegos de estados 26 controla entonces si el primer componente iniciador 16A tiene el derecho de acceso al primer proxy 18 según las reglas de acceso de la política de filtrado. De forma similar, el primer cortafuegos de estados 26 controla el derecho de acceso al proxy 18 por el segundo componente iniciador 16B.
[0070] Cuando el componente iniciador 16A o 16B no tiene el nivel de seguridad requerido según la política de filtrado, el primer cortafuegos de estados 26 rechaza la solicitud emitida por dicho componente iniciador 16.
[0071] En el ejemplo propuesto, se supone que las dos solicitudes R1 y R2 son aceptadas por el primer cortafuegos de estados 26.
[0072] Durante la etapa de recepción y de autorización de solicitudes de transferencia corriente arriba en estado inicializado, el proxy 18 trata, según un ejemplo particular, la solicitud R1 o R2 que tiene el nivel de prioridad más alto.
[0073] Durante la etapa de marcado de las solicitudes de transferencia corriente abajo, el proxy 18 realiza el marcado de las solicitudes de transferencia con destino a la primera memoria 14 con el identificador del componente iniciador 16 cuya solicitud tiene el nivel de prioridad más alto. Así, todas las solicitudes de transferencia que provienen del proxy 18 por cuenta del componente iniciador 16 contienen el identificador del componente iniciador 16 autorizado y que tienen el nivel de prioridad más alto.
[0074] Durante la etapa de recepción de solicitud corriente abajo, el primer cortafuegos estático 28 recibe la solicitud R1 o R2 que tiene el nivel de prioridad más elevado.
[0075] Durante la etapa de recepción de solicitud de transferencia corriente abajo, para cada transacción, el segundo cortafuegos 28 determina el componente iniciador 16 de la solicitud R1 o R2 obteniendo el identificador contenido en cada solicitud R1 o R2 por intercambios con el proxy 18. Por ejemplo, el componente iniciador 16 de la solicitud R1 o R2 es el primer componente iniciador 16A o el segundo componente iniciador 16B.
[0076] Durante la etapa de recepción de solicitud de transferencia corriente abajo, el primer cortafuegos estático 28 autoriza el acceso a la primera memoria 14 cuando los niveles de seguridad de la primera memoria 14 y del componente iniciador 16 de la solicitud R1 o R2 respetan las reglas de acceso de la política de filtrado.
[0077] En este caso, se supone que solo el primer componente iniciador 16A tiene el nivel requerido por la política.
[0078] En una hipótesis semejante, la segunda solicitud R2 es rechazada por el primer cortafuegos estático 28 mientras que la primera solicitud R1 es aceptada por el primer cortafuegos estático 28.
[0079] La transferencia de datos en la primera memoria 14A por cuenta del primer componente iniciador 16A se efectúa entonces según la primera solicitud R1.
[0080] El procedimiento de gestión de transferencia permite así manejar una política de filtrado con ayuda de una combinación de cortafuegos de estados 26 y de cortafuegos estático 28 de una manera muy eficaz y más precisa.
[0081] De hecho, el procedimiento de gestión hace imposible que un componente iniciador 16 use un proxy 18 para sortear fraudulentamente la política de control de acceso a la memoria 14 para la cual el componente no tiene el derecho de acceso asociado.
[0082] Además, basta con modificar las reglas de acceso introducidas en los cortafuegos para adaptar el procedimiento de gestión a una nueva política de filtrado. El procedimiento de filtrado es, por tanto, fácil de reconfigurar.
[0083] El procedimiento permite una gestión de extremo a extremo de los flujos en el sistema 10 así como accesos simultáneos a un componente del sistema 10.
[0084] El procedimiento permite, además, establecer una política de filtrado homogénea y coherente en el conjunto del sistema 10 de manera estática y dinámica.
[0085] Así, el procedimiento de gestión permite, además, evitar un acceso simultáneo de varias solicitudes de transferencia a la memoria 14, si así se especifica en la política de filtrado, como se describe según una realización particular posteriormente.
[0086] Según una realización particular, el cortafuegos de estados 26 verifica también si una transacción está en curso de realización por el proxy 18 con la memoria 14. En particular, cuando una transacción está en curso de realización por el proxy 18 con la memoria 14, el cortafuegos de estados 26 acepta únicamente las solicitudes de transferencia que incluyen el identificador del componente iniciador 16 de la solicitud en curso de realización. Las demás solicitudes son bloqueadas.
[0087] Según otra realización, si el identificador del componente iniciador 16 está asociado a un nivel de prioridad de tratamiento de las solicitudes por el proxy 18, el cortafuegos de estados 26 interrumpe el tratamiento de la solicitud en curso cuando el cortafuegos de estados 26 recibe una solicitud de transferencia que presenta un nivel de prioridad superior o igual al nivel de prioridad de la solicitud de transferencia en curso de tratamiento.
[0088] El cortafuegos de estados 26 interrumpe la transferencia en curso y memoriza el estado en curso de la transferencia. El cortafuegos 26 trata entonces una nueva solicitud tal como se describe en particular en la etapa de recepción y de autorización de solicitudes de transferencia corriente arriba en estado inicializado.
[0089] Una vez finalizada la transferencia correspondiente a la nueva solicitud, el cortafuegos 26 retoma el tratamiento de la solicitud interrumpido a partir del estado memorizado.
[0090] Según una realización particular, el cortafuegos de estados 26 verifica la nueva solicitud de transferencia y la solicitud de transferencia en curso comparte zonas de datos transferidos y si se definen reglas particulares de transferencia en los datos transferidos.
[0091] Si existen reglas y prohíben preferencias en las zonas de datos transferidos, la nueva solicitud de transferencia se temporiza hasta la finalización de la transferencia de la solicitud de transferencia en curso en las zonas de datos concernidas por dichas reglas, y así sucede incluso si la nueva solicitud de transferencia presenta un nivel de prioridad superior o igual a un nivel de prioridad de la solicitud de transferencia en curso.
[0092] Ventajosamente, el procedimiento de gestión comprende, además, una etapa de envío de una orden de supresión de datos registrados en una o varias memorias volátiles del proxy 18. Esto permite garantizar la ausencia de fugas de datos mediante la reutilización de segmentos de memorias mal desasignados durante un cambio de contexto de ejecución. Así, en una versión elaborada, el procedimiento permite asegurar la implementación de una política de filtrado que respeta tres reglas. Según la primera regla, el acceso a un componente está limitado a un instante dado en un solo procedimiento o un grupo de procedimientos autorizados. Según la segunda regla, si un componente emprende transacciones con otros componentes después de la solicitud de un procedimiento, estas solicitudes se marcan como pertenecientes al procedimiento iniciador. Finalmente, según la tercera regla, la política de filtrado aplicada para cada componente es homogénea en el conjunto del sistema.

Claims (12)

REIVINDICACIONES
1. Procedimiento de gestión de la transferencia de datos desde o con destino a al menos una memoria (14) de una arquitectura (12), comprendiendo la arquitectura (12):
- componentes iniciadores (16) capaces de solicitar la transferencia de datos desde o con destino a la memoria (14),
- proxies (18), siendo al menos uno de los proxies (18) capaz de asegurar la transferencia de datos por cuenta de uno de los componentes iniciadores (16), y
- cortafuegos (20), siendo al menos uno de los cortafuegos (20) un cortafuegos (20) específico de la memoria (14), de manera que el cortafuegos (20) específico de la memoria (14) controla el acceso a la memoria (14), de modo que cada memoria (14) y cada componente iniciador (16) presentan un nivel de seguridad, de manera que la arquitectura (12) está caracterizada por una política de filtrado que define reglas de acceso a la memoria (14) para cada componente iniciador (16) y para cada proxy (18) en función de los niveles de seguridad,
incluyendo el procedimiento al menos una etapa de:
- recepción por el cortafuegos (20) específico para la memoria (14) de al menos una solicitud de transferencia desde el proxy (18), de manera que el procedimiento está caracterizado porque comprende las etapas de - determinación por el cortafuegos (20) específico para la memoria (14) del componente iniciador (16) de la solicitud de transferencia, y
- autorización del acceso a la memoria (14) por el cortafuegos (20) específico para la memoria (14) únicamente cuando los niveles de seguridad de la memoria (14) y del componente iniciador (16) de la solicitud de transferencia respetan las reglas de acceso de la política de filtrado.
2. Procedimiento de gestión según la reivindicación 1, en el que al menos uno de los proxies (18) es un componente activo intermediario, en particular un controlador de acceso directo a la memoria (14), comprendiendo el componente activo intermediario una primera conexión (22) configurada para intercambiar datos con uno de los componentes iniciadores (14) y una segunda conexión (24) configurada para intercambiar datos con una de las memorias (14).
3. Procedimiento de gestión según la reivindicación 1 o 2, en el que la solicitud de transferencia transmitida por el proxy (18) incluye un identificador específico para el componente iniciador (16) que emite la solicitud de transferencia.
4. Procedimiento de gestión según la reivindicación 3, en el que uno de los cortafuegos (20) es un cortafuegos (20) específico para el proxy (18), de manera que el cortafuegos (20) específico para el proxy (18) controla el acceso al proxy (18).
5. Procedimiento de gestión según la reivindicación 4, en el que, durante la etapa de recepción, el cortafuegos específico para el proxy (18) acepta, cuando una transacción está en curso de realización por el proxy (18) en la memoria (14), únicamente las solicitudes de transferencia que incluyen el mismo identificador del componente iniciador (16).
6. Procedimiento de gestión según la reivindicación 4 o 5, en el que, durante la etapa de recepción, el cortafuegos (20) específico para el proxy (18) bloquea el acceso al proxy (18) por uno de los componentes iniciadores (16) cuando una transacción está en curso por parte del proxy (18) en la memoria (14) y el identificador del componente iniciador (16) difiere del identificador de la transacción en curso.
7. Procedimiento de gestión según cualquiera de las reivindicaciones 4 a 6, en el que el cortafuegos (20) específico para el proxy (18) es un cortafuegos de estados (26).
8. Procedimiento de gestión según cualquiera de las reivindicaciones 4 a 7, en el que el identificador del componente iniciador (16) está asociado a un nivel de prioridad de tratamiento de las solicitudes de transferencia por el proxy (18), de manera que el cortafuegos (20) específico para el proxy (18) interrumpe una solicitud de transferencia en curso en la memoria (14) cuando el cortafuegos (20) específico para el proxy (18) recibe una solicitud de transferencia que presenta un nivel de prioridad superior o igual a un nivel de prioridad de la solicitud de transferencia en curso.
9. Procedimiento de gestión según la reivindicación 8, en el que existen reglas y prohíben preferencias en zonas de datos transferidos y, en el que el cortafuegos (20) específico para el proxy (18) recibe una nueva solicitud de transferencia que presenta un nivel de prioridad superior o igual a un nivel de prioridad de la solicitud de transferencia en curso y temporiza la nueva solicitud de transferencia hasta la finalización de la transferencia de la solicitud de transferencia en curso en las zonas de datos concernidas por las reglas que prohíben una preferencia.
10. Procedimiento de gestión según cualquiera de las reivindicaciones 1 a 7, en el que al menos uno de los proxies (18) comprende una o varias memorias volátiles, comprendiendo el procedimiento de gestión una etapa de envío de una orden de supresión de datos registrados en la o las memorias volátiles.
11. Arquitectura (12) capaz de implementar una transferencia de datos, comprendiendo la arquitectura (12): - al menos una memoria (14),
- componentes iniciadores (16) capaces de solicitar la transferencia de datos desde o con destino a la memoria (14),
- proxies (18), siendo al menos uno de los proxies (18) capaz de asegurar la transferencia de datos por cuenta de uno de los componentes iniciadores (16), y
- cortafuegos (20), siendo al menos uno de los cortafuegos (20) un cortafuegos (20) específico para la memoria (14), de manera que el cortafuegos (20) específico para la memoria (14) controla el acceso a la memoria (14), presentando cada memoria (14) y cada componente iniciador (16) un nivel de seguridad,
de manera que la arquitectura (12) está caracterizada por una política de filtrado que define reglas de acceso a la memoria (14) para cada componente iniciador (16) y para cada proxy (18) en función de los niveles de seguridad, siendo el cortafuegos (20) específico para la memoria (14) configurado para:
- recibir al menos una solicitud de transferencia desde el proxy (18),
- determinar el componente iniciador (16) de la solicitud de transferencia, y
- autorizar el acceso a la memoria (14) únicamente cuando los niveles de seguridad de la memoria (14) y del componente iniciador (16) de la solicitud de transferencia respetan las reglas de acceso de la política de filtrado.
12. Sistema en al menos un chip (10) que comprende la arquitectura (12) según la reivindicación 11.
ES19217027T 2018-12-21 2019-12-17 Dispositivo de control generalizado de transferencias de memoria para los accesos simultáneos en un sistema en un chip Active ES2896703T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1873951A FR3090923B1 (fr) 2018-12-21 2018-12-21 Dispositif de contrôle généralisé des transferts mémoires pour les accès concurrentiels sur un système sur une puce

Publications (1)

Publication Number Publication Date
ES2896703T3 true ES2896703T3 (es) 2022-02-25

Family

ID=67383832

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19217027T Active ES2896703T3 (es) 2018-12-21 2019-12-17 Dispositivo de control generalizado de transferencias de memoria para los accesos simultáneos en un sistema en un chip

Country Status (3)

Country Link
EP (1) EP3671475B1 (es)
ES (1) ES2896703T3 (es)
FR (1) FR3090923B1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3129499B1 (fr) * 2021-11-25 2024-06-28 Stmicroelectronics Grand Ouest Sas Gestion dynamique d’un pare-feu de mémoire
FR3129500B1 (fr) * 2021-11-25 2024-08-30 Stmicroelectronics Grand Ouest Sas Procédé de gestion d’une mémoire au sein d’un système sur puce.
CN114844726B (zh) * 2022-07-01 2022-09-06 湖北芯擎科技有限公司 防火墙实现方法、芯片、电子设备及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1742152B1 (en) * 2005-07-07 2012-09-12 Texas Instruments Inc. Method and system for a multi-sharing memory access control
US7739731B2 (en) * 2006-01-09 2010-06-15 Oracle America, Inc. Method and apparatus for protection domain based security
US8185952B2 (en) * 2007-01-03 2012-05-22 Texas Instruments Incorporated Static and dynamic firewalls
EP2808818B1 (en) * 2013-05-29 2016-07-13 Nxp B.V. Processing system

Also Published As

Publication number Publication date
FR3090923A1 (fr) 2020-06-26
FR3090923B1 (fr) 2021-09-17
EP3671475B1 (fr) 2021-08-04
EP3671475A1 (fr) 2020-06-24

Similar Documents

Publication Publication Date Title
ES2896703T3 (es) Dispositivo de control generalizado de transferencias de memoria para los accesos simultáneos en un sistema en un chip
TWI620095B (zh) 用以確保存取保護計畫之裝置及有形機器可讀媒體
TWI581099B (zh) 積體電路裝置及控制積體電路裝置上記憶體存取的方法
JP5153887B2 (ja) プロセッサから周辺機器へのセキュア動作モードアクセス特権の譲渡のための方法及び装置
US20030110306A1 (en) Method and system for use of a field programmable gate array (FPGA) cell for controlling access to on-chip functions of a system on a chip (SOC) integrated circuit
CN111522755A (zh) 交换机中的地址缓存
US11226908B2 (en) Securing transactions involving protected memory regions having different permission levels
JP2002351822A (ja) 共用バス上の装置に対するトランザクションの選択的宛先設定
CN105938466B (zh) 用于处理器间通信的电路和方法
JP7091486B2 (ja) 電子制御装置、電子制御装置のセキュリティ検証方法
US11714647B2 (en) Resource allocation in a multi-processor system
CN107430575B (zh) 分布式系统中的接口的管理
US20200233607A1 (en) Storage device and command processing method
JP2009296195A (ja) 複数のcpuコアを備えたfpgaを用いた暗号装置
JP2019212293A (ja) バスを介した周辺装置への安全アクセス
JP7001670B2 (ja) コンテキストベースの保護システム
US11216390B2 (en) Storage device, memory access control system, and memory access control method
CN115549938A (zh) 用于控制器的主机防火墙接口
JP2010009454A (ja) 情報処理装置
WO2024244701A1 (zh) 一种通过硬件防火墙实现的访问控制方法及一种芯片内硬件防火墙
US10592663B2 (en) Technologies for USB controller state integrity protection
US20190042473A1 (en) Technologies for enabling slow speed controllers to use hw crypto engine for i/o protection
CN111651381B (zh) 半导体装置与数据保护方法
ES2837490T3 (es) Aportación de seguridad a un bus de soporte físico no protegido
KR20230012591A (ko) 이중 레벨 관리