[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

FR2993378A1 - Data processing system, has cache memory connected to programmable processor through communication bus, and coprocessor directly connected to cache memory such that programmable processor and coprocessor exchange data through cache memory - Google Patents

Data processing system, has cache memory connected to programmable processor through communication bus, and coprocessor directly connected to cache memory such that programmable processor and coprocessor exchange data through cache memory Download PDF

Info

Publication number
FR2993378A1
FR2993378A1 FR1256715A FR1256715A FR2993378A1 FR 2993378 A1 FR2993378 A1 FR 2993378A1 FR 1256715 A FR1256715 A FR 1256715A FR 1256715 A FR1256715 A FR 1256715A FR 2993378 A1 FR2993378 A1 FR 2993378A1
Authority
FR
France
Prior art keywords
coprocessor
cache memory
data
programmable processor
processor
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.)
Granted
Application number
FR1256715A
Other languages
French (fr)
Other versions
FR2993378B1 (en
Inventor
John Shield
Philippe Coussy
Cyrille Chavet
Jean-Philippe Diguet
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.)
Centre National de la Recherche Scientifique CNRS
Universite de Bretagne Sud
Original Assignee
Centre National de la Recherche Scientifique CNRS
Universite de Bretagne Sud
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 Centre National de la Recherche Scientifique CNRS, Universite de Bretagne Sud filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR1256715A priority Critical patent/FR2993378B1/en
Publication of FR2993378A1 publication Critical patent/FR2993378A1/en
Application granted granted Critical
Publication of FR2993378B1 publication Critical patent/FR2993378B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • G06F9/3881Arrangements for communication of instructions and data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

La présente invention se rapporte à un système de traitement de données comprenant un processeur programmable (P), une mémoire cache (C) associée au processeur programmable et un coprocesseur (CP). Selon l'invention, le coprocesseur est connecté directement à la mémoire cache de manière à ce que le processeur et le coprocesseur puissent échanger des données via ladite mémoire cache.The present invention relates to a data processing system comprising a programmable processor (P), a cache memory (C) associated with the programmable processor and a coprocessor (CP). According to the invention, the coprocessor is connected directly to the cache memory so that the processor and the coprocessor can exchange data via said cache memory.

Description

Domaine technique La présente invention se rapporte à un système de traitement de données avec processeur(s) et coprocesseur(s).TECHNICAL FIELD The present invention relates to a data processing system with processor (s) and coprocessor (s).

Etat de la technique Les systèmes de traitement de données sur puces réalisés sur des circuits intégrés représentent une part importante du marché actuel des composants électroniques et sont amenés à en devenir la composante principale dans le futur.STATE OF THE ART Integrated circuit chip data processing systems are an important part of the current market for electronic components and are expected to become their main component in the future.

Un schéma générique simplifié de tels systèmes est illustré à la figure 1. L'architecture se compose d'un ou plusieurs processeur(s) programmable(s), Po... Pi, également appelé(s) CPU(s) pour Central Processing Unit dans la terminologie anglo-saxonne, d'un ou plusieurs coprocesseur(s) CP0... CPJ, aussi appelés accélérateurs matériels, spécialisés pour réaliser une ou plusieurs fonctions spécifiques, d'une ou plusieurs mémoire(s) MO... Mk, typiquement des mémoires RAM pour Random Access Memory dans la littérature anglo-saxonne, dans lesquelles sont stockées des données, ces composants électroniques étant connectés entre eux via un bus de communication B ou un réseau sur puce. De telles architectures sont d'un niveau de complexité de conception et d'utilisation considérable si l'on souhaite obtenir des produits fiables et efficaces. Lorsque l'on souhaite créer une application, différentes solutions s'offrent au concepteur : 1) une architecture dite "tout logiciel": dans ce cas, l'architecture ne contient que des processeurs P0... Pi et des mémoires Mo... Mk et l'application est implantée en logiciel et compilée sur le système; le principal avantage de cette architecture est sa flexibilité car toute modification du système ne requiert qu'une modification de code et une recompilation de celui-ci; son principal inconvénient est qu'elle présente des performances fortement dégradées (temps de calcul élevé, consommation électrique élevée,...); 2) une architecture "tout matériel": dans ce cas, l'architecture ne contient que des coprocesseurs CP0... CP; et des mémoires Mo... Mk; comparée à une architecture tout logiciel, cette architecture présente d'excellentes performances en termes de temps de calcul, de surface occupée et de consommation électrique; par contre, cette architecture n'est pas flexible et est plus complexe que celle dite "tout logiciel" en terme de conception; 3) une architecture "logiciel/matériel": dans ce cas, l'architecture contient des processeurs, des coprocesseurs et des mémoires; ce type d'architecture mixte offre un bon compromis entre performance et flexibilité; les parties de l'application qui nécessitent de la flexibilité mais peu de performances sont réalisées en logiciel et sont exécutées par les processeurs et les parties de l'application qui nécessitent de bonnes performances temporelles sont réalisées par des coprocesseurs; comme on peut le voir sur les figures 2 à 5, différentes configurations sont possibles; le coprocesseur CP peut être connecté au bus de communication B (Fig.2), ou directement connecté au processeur P (Fig.3), ou connecté au processeur P via une mémoire auxiliaire S de type ScratchPad (Fig.4) ou intégré dans celle-ci (Fig.5); lorsque le coprocesseur est connecté au bus de communication, ce qui est entre autre le cas de la solution BIC proposée par INTEL, les inconvénients sont les suivants : - le coprocesseur connecté au bus présente un temps d'accès élevé qui est fonction du contrôleur de bus; - le bus de communication est monopolisé par le coprocesseur lorsque ce dernier accède à ses données dans la mémoire via le bus ; les données utilisées et fournies par le coprocesseur transitent par le bus de communication et réduisent de ce fait la bande passante; le reste du système voulant accéder au bus est alors bloqué; ces inconvénients sont toutefois supprimés lorsque le coprocesseur est connecté au processeur sans passer par le bus de communication (Figs 3 à 5); cependant, cette solution impose souvent que le processeur soit arrêté lorsque le coprocesseur est utilisé; - l'intégration du coprocesseur via une mémoire ScratchPad suppose que le concepteur soit capable de fixer définitivement la taille maximale requise pour cette mémoire tampon mais aussi et surtout que les adresses associées aux données contenues dans cette mémoire soient définies à la conception du système et soient fixées définitivement; - enfin, l'ajout d'une mémoire ScratchPad implique un surcoût potentiellement important dans l'architecture finale. Description de l'invention L'invention a pour but de pallier tout ou partie des inconvénients précités.A simplified generic scheme of such systems is illustrated in Figure 1. The architecture consists of one or more programmable processor (s), Po ... Pi, also called (s) CPU (s) for Central Processing Unit in the English terminology, one or more coprocessor (s) CP0 ... CPJ, also called hardware accelerators, specialized to perform one or more specific functions, one or more memory (s) MO .. Mk, typically RAM memories for Random Access Memory in the English literature, in which data are stored, these electronic components being connected to each other via a communication bus B or a network-on-a-chip. Such architectures are of a high level of design complexity and use if one wishes to obtain reliable and efficient products. When you want to create an application, different solutions are available to the designer: 1) an architecture called "any software": in this case, the architecture contains only processors P0 ... Pi and memories Mo .. Mk and the application is implemented in software and compiled on the system; the main advantage of this architecture is its flexibility because any modification of the system requires only a code modification and a recompilation thereof; its main disadvantage is that it has highly degraded performance (high computing time, high power consumption, ...); 2) an "all hardware" architecture: in this case, the architecture contains only CP0 ... CP coprocessors; and memories Mo ... Mk; compared to an all-software architecture, this architecture has excellent performance in terms of calculation time, occupied area and power consumption; on the other hand, this architecture is not flexible and is more complex than that called "any software" in terms of design; 3) a "software / hardware" architecture: in this case, the architecture contains processors, coprocessors and memories; this type of mixed architecture offers a good compromise between performance and flexibility; parts of the application that require flexibility but few performance are performed in software and are executed by the processors and parts of the application that require good time performance are performed by coprocessors; as can be seen in Figures 2 to 5, different configurations are possible; the coprocessor CP can be connected to the communication bus B (FIG. 2), or directly connected to the processor P (FIG. 3), or connected to the processor P via an auxiliary memory S of the ScratchPad type (FIG. this one (Fig.5); when the coprocessor is connected to the communication bus, which is, for example, the case of the BIC solution proposed by INTEL, the disadvantages are as follows: the coprocessor connected to the bus has a high access time which is a function of the controller of bus; - The communication bus is monopolized by the coprocessor when the latter accesses its data in the memory via the bus; the data used and provided by the coprocessor passes through the communication bus and thereby reduces the bandwidth; the rest of the system wanting to access the bus is then blocked; these disadvantages are however eliminated when the coprocessor is connected to the processor without passing through the communication bus (Figs 3 to 5); however, this solution often requires that the processor be shut down when the coprocessor is used; - the integration of the coprocessor via a ScratchPad memory assumes that the designer is able to permanently fix the maximum size required for this buffer memory but also and above all that the addresses associated with the data contained in this memory are defined at the design of the system and are permanently fixed; - finally, the addition of a ScratchPad memory implies a potentially significant additional cost in the final architecture. Description of the invention The object of the invention is to overcome all or some of the aforementioned drawbacks.

L'invention a notamment pour but de proposer un système de traitement de données comprenant notamment une ou plusieurs associations d'un coprocesseur avec une mémoire cache de processeur. Selon l'invention, le ou les coprocesseurs de chaque association est (sont) directement connecté(s) à la mémoire cache (de niveau 1 par exemple) de l'association. Ainsi, le processeur et le ou les coprocesseurs peuvent dialoguer via ladite mémoire cache par des liens dédiés sans emprunter de bus de communication partagé s'il s'agit du cache de niveau 1. Aussi, l'invention a pour objet un système de traitement de données comprenant au moins un processeur programmable, au moins un coprocesseur apte à échanger des données avec le ou les processeurs programmables et une mémoire cache; la mémoire cache étant connectée directement audit au moins un processeur programmable (dans le cas d'un cache de niveau 1) ou connectée via un bus de communication audit au moins un processeur programmable dans le cas d'un cache de niveau supérieur (par exemple 2) pour stocker temporairement des copies de données du système, caractérisé en ce que ledit au moins un coprocesseur est connecté directement à ladite mémoire cache de manière à ce que ledit au moins processeur et ledit au moins un coprocesseur puissent échanger des données via ladite mémoire cache.The object of the invention is in particular to propose a data processing system comprising in particular one or more associations of a coprocessor with a processor cache memory. According to the invention, the coprocessor or coprocessors of each association is (are) directly connected (s) to the cache (level 1 for example) of the association. Thus, the processor and the one or more coprocessors can communicate via said cache memory by dedicated links without using a shared communication bus if it is the level 1 cache. Also, the subject of the invention is a processing system. data system comprising at least one programmable processor, at least one coprocessor capable of exchanging data with the programmable processor (s) and a cache memory; the cache memory being connected directly to the at least one programmable processor (in the case of a level 1 cache) or connected via a communication bus to the at least one programmable processor in the case of a higher level cache (for example 2) for temporarily storing copies of data from the system, characterized in that said at least one coprocessor is directly connected to said cache memory so that said at least one processor and said at least one coprocessor can exchange data via said memory hidden.

Ainsi, les données échangées entre le coprocesseur et la zone de mémoire cache à laquelle il est associé ne transitent pas par le bus de communication du système. Le bus de communication n'est donc plus monopolisé par le coprocesseur quand celui-ci travaille. On entend par processeur programmable tout type de processeur dont toute ou partie de l'application est définie par un programme ou un logiciel qui peut être modifié et par coprocesseur tout type de processeur câblé dont l'application n'est pas modifiable. Dans ce contexte, un processeur peut lire des données dans la zone de mémoire cache qui lui est associée, lesquelles données auront été prétraitées de manière transparente par un coprocesseur. Selon un autre mode de fonctionnement, un processeur peut écrire des données dans la zone de mémoire cache qui lui est associée, lesquelles données seront post traitées de manière transparente par un coprocesseur. Des exemples typiques d'application seraient l'utilisation de coprocesseur de chiffrement/déchiffrement de données ou la conversion de format vidéo (RGB vers YUV) ou de format de données. Selon l'invention, la mémoire cache normalement utilisée par le processeur du système sert non seulement de mémoire d'interface avec le coprocesseur mais sert également de mémoire de travail pour ce dernier. Par ailleurs, aucune mémoire ScratchPad n'est requise pour cet échange de données. On s'affranchit ainsi du surcoût lié au rajout d'une telle mémoire dans le système. Selon un mode de réalisation, ledit au moins un coprocesseur est connecté directement à une mémoire cache de niveau 1 dudit au moins un processeur programmable.Thus, the data exchanged between the coprocessor and the cache area with which it is associated does not pass through the communication bus of the system. The communication bus is no longer monopolized by the coprocessor when it works. Programmable processor means any type of processor whose whole or part of the application is defined by a program or software that can be modified and by coprocessor any type of wired processor whose application is not modifiable. In this context, a processor can read data in the cache area associated with it, which data will have been pretreated transparently by a coprocessor. According to another mode of operation, a processor can write data in the cache area associated with it, which data will be post processed transparently by a coprocessor. Typical application examples would be the use of a data encryption / decryption coprocessor or video format conversion (RGB to YUV) or data format. According to the invention, the cache memory normally used by the system processor not only serves as interface memory with the coprocessor but also serves as working memory for the coprocessor. In addition, no ScratchPad memory is required for this data exchange. This eliminates the additional cost of adding such a memory in the system. According to one embodiment, said at least one coprocessor is directly connected to a level 1 cache memory of said at least one programmable processor.

Selon un autre mode de réalisation, ledit au moins un coprocesseur est connecté directement à une mémoire cache de niveau supérieur à 1 dudit au moins un processeur programmable. Selon un mode de réalisation, la mémoire cache du processeur comprend au total N voies de L lignes, k lignes étant allouées au processeur programmable et N*L-k lignes étant allouées audit au moins un coprocesseur, avec N, L et k entiers positifs tels que k<N*L. Le nombre de lignes allouées audit au moins un coprocesseur n'est pas nécessairement un multiple entier du nombre de voies (i.e. (N*L-k)/N n'est pas une valeur entière). Ainsi, le processeur programmable et ledit au moins un coprocesseur peuvent travailler simultanément sur des données différentes sans dégradation majeure des performances du processeur programmable. Selon un mode de réalisation particulier, le nombre (N*L-k)/N est égal à un entier positif M. Dans ce mode de réalisation, la mémoire cache comprend au total N voies, M voies étant allouées au processeur programmable et N-M=(N*L-k)/N voies étant allouées audit au moins un coprocesseur, avec M et N entiers positifs tels que M<N. Selon un mode de réalisation, le nombre de lignes allouées audit au 2 0 moins coprocesseur est variable et peut être fonction du traitement exécuté par le coprocesseur. Selon un mode de réalisation, la mémoire cache comprend un contrôleur d'accès (CA) pour contrôler l'adressage des N voies de la mémoire cache et activer le coprocesseur lorsque l'adresse des données 25 fournies à la mémoire par le processeur programmable se rapporte aux N- M voies ou aux N*L-k lignes allouées au coprocesseur. D'autres avantages pourront encore apparaître à l'homme du métier à la lecture des exemples ci-dessous, illustrés par les figures annexées, donnés à titre illustratif. 30 Brève description des figures - La figure 1 représente un schéma simplifié d'un premier système de traitement de données de l'art antérieur comprenant plusieurs processeurs programmables et plusieurs coprocesseurs; - La figure 2 représente un schéma d'un deuxième système de traitement de données de l'art antérieur comprenant un processeur programmable et un coprocesseur; - La figure 3 représente une première variante du schéma de la figure 2; - La figure 4 représente une deuxième variante du schéma de la figure 2; - La figure 5 représente une troisième variante du schéma de la figure 2; - La figure 6 représente un schéma simplifié d'un premier système de traitement de données conforme à l'invention; - La figure 7 représente un schéma simplifié d'un deuxième système de traitement de données conforme à l'invention; - La figure 8 représente un schéma simplifié d'un troisième système de traitement de données conforme à l'invention; et - Les figures 9A et 9C représentent schématiquement une organisation hiérarchique de mémoire cache. Description détaillée d'au moins un mode de réalisation En référence à la figure 6, le système de traitement de données conforme à l'invention comprend un processeur programmable P, une mémoire M, un coprocesseur CP et un bus de communication B. Le processeur programmable P et la mémoire M, par exemple de type RAM, sont connectés au bus de communication B. Une mémoire cache C de niveau 1 est par ailleurs connectée au processeur P pour y stocker temporairement des copies de données du système. Cette mémoire cache présente un temps d'accès en lecture et en écriture réduit par rapport à celui des mémoires M du système. La mémoire cache est par exemple une mémoire de type SRAM pour Static Random Access Memory en langue anglaise. Selon une caractéristique importante de l'invention, le coprocesseur CP est connecté directement à la mémoire cache C du processeur. Une première zone de la mémoire cache est associée au processeur et une seconde zone de la mémoire cache, distincte de la première, est associée au coprocesseur. Ainsi, le coprocesseur peut accéder à ses données dans la zone de mémoire cache qui lui est associée sans passer par le bus de communication B. La mémoire cache sert à la fois de mémoire d'interface et de mémoire de travail pour le processeur P et le coprocesseur CP. Ainsi, selon l'invention, on réutilise une mémoire déjà existante dans le système, à savoir la mémoire cache du processeur P, au lieu de rajouter une mémoire spécifique pour le coprocesseur.According to another embodiment, said at least one coprocessor is directly connected to a cache memory level higher than 1 of said at least one programmable processor. According to one embodiment, the cache memory of the processor comprises a total of N channels of L lines, k lines being allocated to the programmable processor and N * Lk lines being allocated to said at least one coprocessor, with N, L and k positive integers such that k <N * L. The number of lines allocated to the at least one coprocessor is not necessarily an integer multiple of the number of channels (i.e. (N * L-k) / N is not an integer value). Thus, the programmable processor and said at least one coprocessor can work simultaneously on different data without major degradation of the performance of the programmable processor. According to a particular embodiment, the number (N * Lk) / N is equal to a positive integer M. In this embodiment, the cache memory comprises a total of N channels, M channels being allocated to the programmable processor and NM = ( N * Lk) / N channels being allocated to said at least one coprocessor, with M and N positive integers such that M <N. According to one embodiment, the number of lines allocated to the at least one coprocessor is variable and may be a function of the processing executed by the coprocessor. According to one embodiment, the cache memory comprises an access controller (AC) for controlling the addressing of the N channels of the cache memory and activating the coprocessor when the address of the data supplied to the memory by the programmable processor is refers to N-M channels or N * Lk lines allocated to the coprocessor. Other advantages may still appear to those skilled in the art on reading the examples below, illustrated by the appended figures, given for illustrative purposes. BRIEF DESCRIPTION OF THE FIGURES FIG. 1 represents a simplified diagram of a first data processing system of the prior art comprising several programmable processors and several coprocessors; FIG. 2 represents a diagram of a second data processing system of the prior art comprising a programmable processor and a coprocessor; FIG. 3 represents a first variant of the diagram of FIG. 2; FIG. 4 represents a second variant of the diagram of FIG. 2; FIG. 5 represents a third variant of the diagram of FIG. 2; FIG. 6 represents a simplified diagram of a first data processing system according to the invention; FIG. 7 represents a simplified diagram of a second data processing system according to the invention; FIG. 8 represents a simplified diagram of a third data processing system according to the invention; and - Figures 9A and 9C schematically show a hierarchical cache organization. Detailed description of at least one embodiment With reference to FIG. 6, the data processing system according to the invention comprises a programmable processor P, a memory M, a coprocessor CP and a communication bus B. The processor programmable P and the memory M, for example of the RAM type, are connected to the communication bus B. A level C cache memory 1 is furthermore connected to the processor P for temporarily storing copies of data from the system. This cache memory has a read and write access time reduced compared to that of the M memories of the system. The cache memory is for example a SRAM type memory for Static Random Access Memory in English language. According to an important characteristic of the invention, the coprocessor CP is connected directly to the cache memory C of the processor. A first area of the cache memory is associated with the processor and a second area of the cache memory, separate from the first, is associated with the coprocessor. Thus, the coprocessor can access its data in the cache area associated with it without going through the communication bus B. The cache memory serves both interface memory and working memory for the processor P and the coprocessor CP. Thus, according to the invention, we reuse a memory already existing in the system, namely the cache memory of the processor P, instead of adding a specific memory for the coprocessor.

Selon le mode de réalisation illustré par la figure 6, la mémoire cache C comporte un contrôleur d'accès CA et N voies (ou "ways" en langue anglaise") Vo à VN4. Chaque voie désigne un espace mémoire propre de la mémoire cache et comporte par exemple L lignes. (N*L-k)/N voies parmi les N voies de la mémoire cache sont allouées au coprocesseur et les N-((N*L-k)/N) voies restantes sont allouées au coprocesseur, avec N entier positif et M<N. Selon un mode de réalisation particulier, M est également un entier positif. La figure 7 représente un deuxième mode de réalisation du système de l'invention. Dans ce mode de réalisation, la mémoire cache comporte une mémoire cache Cl de niveau 1 directement connectée au processeur P et une mémoire cache C2 de niveau supérieur, par exemple de niveau 2, directement connectée au coprocesseur CP. Dans ce mode réalisation, le processeur P et le coprocesseur CP peuvent échanger des données via mémoire cache C2.According to the embodiment illustrated in FIG. 6, the cache memory C comprises an access controller CA and N channels (or "ways" in English ") Vo to VN 4. Each channel designates a specific memory space of the cache memory. and includes for example L lines. (N * Lk) / N channels out of the N channels of the cache memory are allocated to the coprocessor and the remaining N - ((N * Lk) / N) channels are allocated to the coprocessor, with N integer positive and M <N. According to one particular embodiment, M is also a positive integer.Figure 7 represents a second embodiment of the system of the invention.In this embodiment, the cache memory comprises a cache memory C1. Level 1 directly connected to the processor P and a cache memory C2 of higher level, for example level 2, directly connected to the coprocessor CP In this embodiment, the processor P and the coprocessor CP can exchange data via C2 cache memory.

Le système peut également comporter plusieurs processeurs et plusieurs coprocesseurs, par exemple 2 processeurs P1, P2 et 3 coprocesseurs CP1, CP2 et CP3. Dans ce cas, les coprocesseurs CP1 et CP2 sont par exemple respectivement connectés directement aux mémoires cache Cl et C2 de niveau 1 des processeurs P1 et P2 et le coprocesseur CP3 est connecté à la mémoire cache C3 de niveau 2 partagé par les processeurs P1 et P2 comme représenté sur la figure 8. Le fonctionnement du système de l'invention tel que représenté à la figure 6 est décrit ci-après. Pour cela, on considère que la mémoire M contient des données cryptées et que c'est le coprocesseur CP qui est chargé de les crypter ou décrypter pour le processeur P.The system may also comprise several processors and several coprocessors, for example 2 processors P1, P2 and 3 coprocessors CP1, CP2 and CP3. In this case, the coprocessors CP1 and CP2 are for example respectively directly connected to the cache memories C1 and C2 of level 1 of the processors P1 and P2 and the coprocessor CP3 is connected to the cache C3 of level 2 shared by the processors P1 and P2 as shown in Figure 8. The operation of the system of the invention as shown in Figure 6 is described below. For this, we consider that the memory M contains encrypted data and that it is the coprocessor CP which is responsible for encrypting or decrypting for the processor P.

Dans la suite, on considère que la mémoire cache C est un cache associatif par ensembles qui contient 4 ensembles de chacun 4 voies comme montrée aux figures 9A à 9C. Une ligne de cache contient 4 mots mémoire et une voie dans un ensemble contient exactement une ligne. La voie 0 est allouée au coprocesseur. Ainsi, quand les adresses des données correspondent à l'un des segments mémoires associés au coprocesseur, ces données sont placées dans la voie O. La figure 9A montre les données dans la mémoire centrale. Dans cet exemple, l'ensemble 0 de la mémoire cache comprend les mots DO, D1, D2 et D3, l'ensemble 1 comprend les mots D4, D5, D6 et D7, l'ensemble 2 comprend les mots D8, D9, D10 et Dll et l'ensemble 3 comprend les mots D12, D13, D14 et D15. La voie 0 de la mémoire cache comprend les mots DO à D15. La figure 9B montre un schéma de la mémoire cache organisée par ensembles, à savoir l'ensemble 1, l'ensemble 2, l'ensemble 3 et l'ensemble 4. Enfin, la figure 9C montre un schéma de la mémoire cache organisée 2 5 par voies, à savoir la voie 0, la voie 1, la voie 2 et la voie 3. On considère également que le coprocesseur CP est un esclave : c'est donc le contrôleur d'accès CA qui est en charge de sa configuration et de la gestion de ses données. Dans le cas d'un coprocesseur maître/esclave, le coprocesseur CP accède lui-même aux données mais 30 est configuré par le contrôleur d'accès (mode de fonctionnement, plage d'adresses, nombre de données à traiter...).In the following, it is considered that the cache memory C is a set associative cache which contains 4 sets of each 4 channels as shown in Figures 9A to 9C. A cache line contains 4 memory words and a channel in a set contains exactly one line. Channel 0 is allocated to the coprocessor. Thus, when the data addresses correspond to one of the memory segments associated with the coprocessor, these data are placed in the O-channel. FIG. 9A shows the data in the central memory. In this example, the set 0 of the cache memory comprises the words DO, D1, D2 and D3, the set 1 comprises the words D4, D5, D6 and D7, the set 2 comprises the words D8, D9, D10. and D11 and set 3 comprises the words D12, D13, D14 and D15. Channel 0 of the cache memory includes the words DO to D15. FIG. 9B shows a schematic of the set-up cache, namely set 1, set 2, set 3, and set 4. Finally, FIG. 9C shows a schematic of the organized cache 2 5 by channels, namely channel 0, channel 1, channel 2 and channel 3. It is also considered that the coprocessor CP is a slave: it is therefore the access controller CA which is in charge of its configuration. and the management of his data. In the case of a master / slave coprocessor, the coprocessor CP itself accesses the data but is configured by the access controller (operating mode, address range, number of data to be processed, etc.).

Comme indiqué précédemment, certaines données contenues dans la mémoire M sont cryptées. Le coprocesseur CP a pour fonction de décrypter ces données de façon transparente pour le processeur P quand ce dernier y accède en lecture. Le coprocesseur CP encrypte ces données de façon transparente pour le processeur P quand ce dernier y accède en écriture. Une donnée résultat est stockée à la même adresse que la donnée opérande dans la mémoire cache C. Dans un premier exemple de fonctionnement, seule la donnée à traiter est nécessaire pour obtenir le résultat i.e. Dres = COPRO(Dop) où Dres est la donnée résultat, Dop est la donnée opérande et COPRO est le traitement appliqué par le coprocesseur CP sur la donnée à traiter. La liste des actions ci-dessous décrit un scénario possible d'exécution dans lequel le processeur P accède dans un premier temps en lecture à la donnée DO encryptée et placée en mémoire puis accède en écriture à la donnée D8.As indicated above, some data contained in the memory M are encrypted. The coprocessor CP has the function of decrypting this data transparently for the processor P when the latter accesses it in reading. The coprocessor CP encrypts this data transparently for the processor P when the latter accesses it in writing. A result datum is stored at the same address as the operand data in the cache memory C. In a first example of operation, only the data item to be processed is necessary to obtain the result ie Dres = COPRO (Dop) where Dres is the result datum , Dop is the operand data and COPRO is the processing applied by the coprocessor CP on the data to be processed. The list of actions below describes a possible execution scenario in which the processor P first accesses read data DO encrypted and placed in memory and then accesses write data D8.

Le processeur P accède dans un deuxième temps en lecture à la donnée D1 puis accède en écriture à la donnée D9. Scénario 1 (les données DO, D1, D8 et D9 sont associées au coprocesseur) 1. Le processeur P accède à la donnée DO en lecture 2. La donnée DO n'est pas présente dans la mémoire cache C. Ceci provoque un défaut de la mémoire cache et le processeur P est gelé. 3. La ligne de 4 mots contenant la donnée DO est chargée dans la mémoire cache C. Le décodeur d'adresses du contrôleur d'accès CA choisit la voie 0 pour stocker cette ligne dans la mémoire cache car cette donnée appartient à un segment associé au coprocesseur CP. 4. Le contrôleur d'accès CA détecte que la donnée DO est associée au coprocesseur CP. Le contrôleur d'accès CA démarre le coprocesseur CP et lui fournit la donnée DO à traiter selon le mode décryptage (soit directement, soit via une adresse relative i.e. un « offset »). 5. Le coprocesseur CP traite la donnée DO, i.e. la décrypte, et fournit le résultat stocké à la même adresse que la donnée DO dans la voie O. 6. L'écriture par le coprocesseur de la nouvelle valeur de la donnée DO est détectée par le contrôleur d'accès CA. 7. La donnée décryptée est fournie au processeur P (« cache hit »). 8. Le processeur P utilise la donnée DO (décryptée) pour effectuer un calcul et fournir la donnée D8 comme résultat. 9. La donnée D8 est écrite dans la mémoire cache. Le décodeur d'adresses contrôleur d'accès choisit la voie 0 pour stocker cette ligne dans la mémoire cache car, dans ce cas, cette donnée appartient à un segment associé au coprocesseur CP. 10. Le contrôleur d'accès CA détecte que la donnée D8 est associée au coprocesseur CP. Le contrôleur d'accès démarre le coprocesseur CP et lui fournit la donnée D8 à traiter dans le mode encryptage (soit directement soit via une adresse relative i.e. un « offset »). 11. Le coprocesseur CP traite la donnée D8 i.e. l'encrypte et fournit le résultat qui est stocké à la même adresse que la donnée D8 dans la voie O. 12. L'écriture par le coprocesseur de la nouvelle valeur de la donnée D8 est détectée par le contrôleur d'accès. La mémoire M est mise à jour immédiatement ou de façon différée en fonction de la politique de gestion des écritures dans la mémoire cache (« write through » ou « write back »). 13. Le processeur P accède à la donnée D1 en lecture; 14. La donnée D1 est présente dans la mémoire cache. Les étapes 4, 5, 6 et 7 s'appliquent de manière identique à la donnée D1. La donnée D9 est la donnée résultat. Scenario 2 (seule la donnée DO est traitée par le processeur pour produire la donnée D8. La donnée DO est associée au coprocesseur et la D8 n'est pas associée au coprocesseur) Les étapes 9-14 sont replacées par les étapes 9.bis et 10.bis. 9. bis La donnée D8 est écrite dans la mémoire cache C dans une voie différente de la voie O. 10. bis L'écriture de la nouvelle valeur de la donnée D8 est détectée par le contrôleur d'accès CA. La mémoire M est mise à jour immédiatement ou de façon différée en fonction de la politique de gestion des écritures dans la mémoire cache (« write trhough » ou « write back »).The processor P accesses in a second time in reading data D1 then accesses write data D9. Scenario 1 (the data DO, D1, D8 and D9 are associated with the coprocessor) 1. The processor P accesses the data DO in reading 2. The data DO is not present in the cache memory C. This causes a defect of the cache memory and the processor P is frozen. 3. The line of 4 words containing the data item DO is loaded in the cache memory C. The address controller of the access controller CA chooses the channel 0 to store this line in the cache memory because this data belongs to an associated segment to the CP coprocessor. 4. The access controller AC detects that the data DO is associated with the coprocessor CP. The AC access controller starts the coprocessor CP and provides it with the data DO to be processed according to the decryption mode (either directly or via a relative address i.e. an "offset"). 5. The coprocessor CP processes the data DO, ie decrypts it, and supplies the stored result to the same address as the data DO in the O-channel. 6. The coprocessor's writing of the new value of the data item DO is detected. by the CA access controller. 7. The decrypted data is supplied to the processor P ("cache hit"). 8. The processor P uses the data DO (decrypted) to perform a calculation and supply the data D8 as a result. 9. Data D8 is written to the cache memory. The access controller address decoder selects channel 0 to store this line in the cache memory because, in this case, this data belongs to a segment associated with the coprocessor CP. 10. The access controller AC detects that the data D8 is associated with the coprocessor CP. The access controller starts the coprocessor CP and provides it with the data D8 to be processed in the encryption mode (either directly or via a relative address i.e. an "offset"). 11. The coprocessor CP processes the data D8 ie the encrypt and provides the result which is stored at the same address as the data D8 in the channel O. 12. The coprocessor's writing of the new value of the data item D8 is detected by the access controller. The memory M is updated immediately or deferred according to the management policy write writes ("write through" or "write back"). 13. The processor P accesses the data D1 for reading; 14. The data D1 is present in the cache memory. Steps 4, 5, 6 and 7 apply identically to the data D1. Data D9 is the result data. Scenario 2 (only the data DO is processed by the processor to produce the data D 8. The data DO is associated with the coprocessor and the D8 is not associated with the coprocessor) The steps 9-14 are replaced by the steps 9.bis and 10.bis. 9. bis The data item D8 is written in the cache memory C in a different channel of the channel O. 10.a The writing of the new value of the data item D8 is detected by the access controller CA. The memory M is updated immediately or in a deferred manner according to the management policy of writes in the cache memory ("write trhough" or "write back").

Dans le cas où, pour décrypter la donnée DO, le coprocesseur CP a besoin de données supplémentaires comme les données D1 à D7 par exemple, le contrôleur d'accès CA est chargé (le coprocesseur est encore supposé être esclave ici) d'aller lire les données dans la mémoire M et de les stocker dans la mémoire cache C avant de démarrer le coprocesseur CP. Toute autre combinaison peut être envisagée. Dans un cas de fonctionnement particulier, une donnée venant de la mémoire cache et décryptée par le coprocesseur CP peut directement être fournie par ce dernier au processeur P sans passer par la mémoire cache.In the case where, to decrypt the data DO, the coprocessor CP needs additional data such as the data D1 to D7 for example, the access controller CA is loaded (the coprocessor is still supposed to be slave here) to go read the data in the memory M and store them in the cache memory C before starting the coprocessor CP. Any other combination can be considered. In a particular operating case, data from the cache memory and decrypted by the coprocessor CP can directly be provided by the latter to the processor P without passing through the cache memory.

2 5 De façon symétrique, une donnée traitée par le processeur P peut directement être fournie par ce dernier au coprocesseur CP qui écrira la donnée encryptée directement dans la mémoire cache. Ainsi, les données à protéger sont toujours stockées de façon cryptée dans la mémoire cache.In a symmetrical manner, data processed by the processor P can be directly supplied by the latter to the coprocessor CP which will write the encrypted data directly into the cache memory. Thus, the data to be protected is always stored encrypted in the cache memory.

30 Bien entendu, selon un autre mode de réalisation, lorsque le système comporte 1 processeur et 2 coprocesseurs, M voies de la mémoire cache sont allouées au processeur, M1 voies au coprocesseur 1 et M2 voies au coprocesseur 2, avec N=M+M1+M2. Selon un autre mode de réalisation, on peut aussi prévoir que M voies soient allouées au processeur P, M1 voies soient allouées au coprocesseur 1 puis M1 voies au coprocesseur 2 sachant que coprocesseur 1 fonctionne exclusivement avant le coprocesseur 2, ce qui suppose un mécanisme de synchronisation matérielle ou logicielle, avec N=M+M1. M, M1 et M2 ne sont pas nécessairement des nombres entiers positifs.10Of course, according to another embodiment, when the system comprises 1 processor and 2 coprocessors, M cache memory channels are allocated to the processor, M1 channels to coprocessor 1 and M2 channels to coprocessor 2, with N = M + M1 + M2. According to another embodiment, it is also possible to provide that M channels are allocated to the processor P, M1 channels are allocated to the coprocessor 1 and then M1 channels to the coprocessor 2 knowing that the coprocessor 1 operates exclusively before the coprocessor 2, which supposes a mechanism of hardware or software synchronization, with N = M + M1. M, M1 and M2 are not necessarily positive integers.

Claims (7)

REVENDICATIONS1) Système de traitement de données comprenant au moins un processeur programmable (P,P1,P2), au moins un coprocesseur (CP; CP1,CP2,CP3) apte à échanger des données avec ledit au moins un processeur programmable et une mémoire cache (C;C1,C2,C3) associée audit au moins un processeur programmable, laquelle mémoire cache est connectée directement ou via un bus de communication (B) audit au moins un processeur programmable pour stocker temporairement des copies de données du système, caractérisé en ce que ledit au moins un coprocesseur est connecté directement à ladite mémoire cache (C; C1, C2,C3) de manière à ce que ledit au moins un processeur programmable et ledit au moins un coprocesseur soient aptes à échanger des données via ladite mémoire cache.CLAIMS1) Data processing system comprising at least one programmable processor (P, P1, P2), at least one coprocessor (CP; CP1, CP2, CP3) able to exchange data with said at least one programmable processor and a cache memory (C; C1, C2, C3) associated with said at least one programmable processor, which cache memory is connected directly or via a communication bus (B) to said at least one programmable processor for temporarily storing copies of data of the system, characterized in said at least one coprocessor is connected directly to said cache memory (C; C1, C2, C3) so that said at least one programmable processor and said at least one coprocessor are able to exchange data via said cache memory . 2) Système selon la revendication 1, caractérisé en ce que ledit au moins un coprocesseur est connecté directement à une mémoire cache de niveau 1 dudit au moins un processeur programmable.2) System according to claim 1, characterized in that said at least one coprocessor is connected directly to a level 1 cache memory of said at least one programmable processor. 3) Système selon la revendication 1, caractérisé en ce que ledit au moins un coprocesseur est connecté directement à une mémoire cache de niveau supérieur à 1 dudit au moins un processeur programmable.3) System according to claim 1, characterized in that said at least one coprocessor is connected directly to a cache memory level higher than 1 of said at least one programmable processor. 4) Système selon la revendication 1 ou 2, caractérisé en ce que la mémoire cache comprend au total N voies (Vo-VN_i) de L lignes, k lignes étant allouées au processeur programmable et les N*L-k lignes restantes étant allouées audit au moins un coprocesseur, avec N, L et k entiers positifs tels que k<N*L.304) System according to claim 1 or 2, characterized in that the cache memory comprises a total of N channels (Vo-VN_i) of L lines, k lines being allocated to the programmable processor and the N * Lk remaining lines being allocated to said at least a coprocessor, with N, L and k positive integers such that k <N * L.30 5) Système selon la revendication 3, caractérisé en ce que le nombre (N*I-k)/N est un entier positif.5) System according to claim 3, characterized in that the number (N * I-k) / N is a positive integer. 6) Système selon la revendication 4 ou 5, caractérisé en ce que le nombre de lignes est variable et est fonction du traitement exécuté par le coprocesseur.6) System according to claim 4 or 5, characterized in that the number of rows is variable and is a function of the processing performed by the coprocessor. 7) Système selon l'une quelconque des revendications 4 à 6, caractérisé en ce que la mémoire cache comprend un contrôleur d'accès (CA) pour contrôler l'adressage des N voies de la mémoire cache et activer le coprocesseur lorsque l'adresse des données fournies à la mémoire par le processeur programmable se rapporte aux N-L*k lignes allouées au coprocesseur.7) System according to any one of claims 4 to 6, characterized in that the cache memory comprises an access controller (CA) for controlling the addressing of the N channels of the cache memory and activate the coprocessor when the address data supplied to the memory by the programmable processor refers to the NL * k lines allocated to the coprocessor.
FR1256715A 2012-07-12 2012-07-12 DATA PROCESSING SYSTEM WITH ACTIVE CACHE Active FR2993378B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1256715A FR2993378B1 (en) 2012-07-12 2012-07-12 DATA PROCESSING SYSTEM WITH ACTIVE CACHE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1256715A FR2993378B1 (en) 2012-07-12 2012-07-12 DATA PROCESSING SYSTEM WITH ACTIVE CACHE

Publications (2)

Publication Number Publication Date
FR2993378A1 true FR2993378A1 (en) 2014-01-17
FR2993378B1 FR2993378B1 (en) 2015-06-19

Family

ID=47624182

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1256715A Active FR2993378B1 (en) 2012-07-12 2012-07-12 DATA PROCESSING SYSTEM WITH ACTIVE CACHE

Country Status (1)

Country Link
FR (1) FR2993378B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001061500A1 (en) * 2000-02-16 2001-08-23 Intel Corporation Processor with cache divided for processor core and pixel engine uses
US6735687B1 (en) * 2000-06-15 2004-05-11 Hewlett-Packard Development Company, L.P. Multithreaded microprocessor with asymmetrical central processing units
US6801207B1 (en) * 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
US20080155197A1 (en) * 2006-12-22 2008-06-26 Wenlong Li Locality optimization in multiprocessor systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801207B1 (en) * 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
WO2001061500A1 (en) * 2000-02-16 2001-08-23 Intel Corporation Processor with cache divided for processor core and pixel engine uses
US6735687B1 (en) * 2000-06-15 2004-05-11 Hewlett-Packard Development Company, L.P. Multithreaded microprocessor with asymmetrical central processing units
US20080155197A1 (en) * 2006-12-22 2008-06-26 Wenlong Li Locality optimization in multiprocessor systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MASAITSU NAKAJIMA ET AL: "Homogenous Dual-Processor core with Shared L1 Cache for Mobile Multimedia SoC", VLSI CIRCUITS, 2007 IEEE SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 1 June 2007 (2007-06-01), pages 216 - 217, XP031142413, ISBN: 978-4-900784-04-8 *

Also Published As

Publication number Publication date
FR2993378B1 (en) 2015-06-19

Similar Documents

Publication Publication Date Title
US11809584B2 (en) File system metadata protection
FR3103586A1 (en) Method for managing the operation of a system on chip forming for example a microcontroller, and corresponding system on chip
US8516271B2 (en) Securing non-volatile memory regions
JP5875601B2 (en) System and method for in-place encryption
JP2018055727A (en) Selectively persisting application program data transferred from system memory to non-volatile data storage
US11790119B2 (en) Application integrity attestation
US20130205139A1 (en) Scrambling An Address And Encrypting Write Data For Storing In A Storage Device
US10585754B2 (en) Memory security protocol
US20150067287A1 (en) Distributed dynamic memory management unit (mmu)-based secure inter-processor communication
US8984316B2 (en) Fast platform hibernation and resumption of computing systems providing secure storage of context data
CN101379537A (en) Secure processing device, method and program
US20190342093A1 (en) Converged cryptographic engine
US20190227884A1 (en) Data loss prevention for integrated memory buffer of a self encrypting drive
WO2017058414A1 (en) Unified addressable memory
US20190034357A1 (en) Computer system software/firmware and a processor unit with a security module
JP2016012335A (en) Storage device, storage device system, and information terminal
US20230059382A1 (en) Electronic device
US10642984B2 (en) Secure drive and method for booting to known good-state
FR3103585A1 (en) Method for managing the configuration of access to peripherals and their associated resources of a system on chip forming for example a microcontroller, and corresponding system on chip
WO2019041272A1 (en) Method and device for encrypting and decrypting computer memory data
FR3103584A1 (en) Method for managing the debugging of a system on chip forming for example a microcontroller, and corresponding system on chip
US11288374B2 (en) Information processing device, method for controlling information processing device, and program
FR2993378A1 (en) Data processing system, has cache memory connected to programmable processor through communication bus, and coprocessor directly connected to cache memory such that programmable processor and coprocessor exchange data through cache memory
EP3080812A1 (en) System for writing data in a memory
US20130198528A1 (en) Modifying a Length of an Element to Form an Encryption Key

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13