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 PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 96
- 238000012545 processing Methods 0.000 title claims abstract description 17
- 238000004891 communication Methods 0.000 title claims description 15
- 239000013256 coordination polymer Substances 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent 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/3881—Arrangements for communication of instructions and data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; 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)
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)
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 |
-
2012
- 2012-07-12 FR FR1256715A patent/FR2993378B1/en active Active
Patent Citations (4)
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)
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 |