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

FR2643166A1 - MICROPROCESSOR WITH PIPELINE ARCHITECTURE COMPRISING AN INSTRUCTION FOR ACCESSING DATA IN EXTERNAL MEMORY, AND METHOD OF ACCESSING THESE DATA - Google Patents

MICROPROCESSOR WITH PIPELINE ARCHITECTURE COMPRISING AN INSTRUCTION FOR ACCESSING DATA IN EXTERNAL MEMORY, AND METHOD OF ACCESSING THESE DATA Download PDF

Info

Publication number
FR2643166A1
FR2643166A1 FR9001451A FR9001451A FR2643166A1 FR 2643166 A1 FR2643166 A1 FR 2643166A1 FR 9001451 A FR9001451 A FR 9001451A FR 9001451 A FR9001451 A FR 9001451A FR 2643166 A1 FR2643166 A1 FR 2643166A1
Authority
FR
France
Prior art keywords
data
memory
bus
cache
external
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
FR9001451A
Other languages
French (fr)
Other versions
FR2643166B1 (en
Inventor
Leslie D Kohn
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of FR2643166A1 publication Critical patent/FR2643166A1/en
Application granted granted Critical
Publication of FR2643166B1 publication Critical patent/FR2643166B1/fr
Granted legal-status Critical Current

Links

Classifications

    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8061Details on data memory access
    • G06F15/8069Details on data memory access using a cache
    • 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/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining

Landscapes

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

Abstract

L'invention concerne un microprocesseur à architecture en pipeline, comprenant une antémémoire de données 70 et une unité de traitement avec un verrou de données 78, et pourvu d'une instruction permettant d'accéder à des données provenant d'une mémoire externe par l'intermédiaire d'un bus externe 40. Selon l'invention, cette instruction met en oeuvre des moyens de mémoire 65, pour accumuler des données; des premiers moyens de circuit, pour délivrer aux moyens de mémoire des données en provenance de la mémoire externe en cas de survenance d'une non-concordance d'antémémoire; des seconds moyens de circuit, pour délivrer au verrou de données les données accumulées dans les moyens de mémoire, ces seconds moyens de circuit reliant également l'antémémoire de données aux premiers moyens de circuit de manière à retourner aux moyens de mémoire la donnée résidant dans l'antémémoire, en cas de concordance d'antémémoire; et des moyens de contrôle de bus, reliés aux premiers et aux seconds moyens de circuit, aux moyens de mémoire et à l'antémémoire de données, pour contrôler le flux en pipeline de données allant de la mémoire externe au verrou de données en cas de non-concordance d'antémémoire, et pour contrôler le retour des données de l'antémémoire aux moyens mémoire en cas de concordance d'antémémoire.A pipelined architecture microprocessor, comprising a data cache 70 and a processing unit with a data latch 78, and provided with an instruction for accessing data from an external memory through the invention is disclosed. 'intermediary of an external bus 40. According to the invention, this instruction implements memory means 65, to accumulate data; first circuit means, for supplying the memory means with data from the external memory in the event of a cache mismatch occurring; second circuit means, for delivering to the data latch the data accumulated in the memory means, these second circuit means also connecting the data cache to the first circuit means so as to return to the memory means the data residing in the cache, in case of a cache match; and bus control means, connected to the first and second circuit means, to the memory means and to the data cache, for controlling the pipelined flow of data from the external memory to the data latch in the event of cache mismatch, and to control the return of data from the cache memory to the memory means in the event of a cache match.

Description

-\1 2643166- 1 2643166

La présente invention concerne le domaine des micro-  The present invention relates to the field of micro-

processeurs à semiconducteurs, en particulier les proces-  semiconductor processors, in particular the processes

seurs de ce type qui sont capables d'accéder à des données  sisters of this type who are able to access data

dans une mémoire externe.in an external memory.

Plus précisément, la présente invention se rapporte à une instruction de chargement à virgule flottante en pipeline qui peut être mise en oeuvre à l'intérieur de l'unité de contrôle du bus d'un microprocesseur. Le microprocesseur  More specifically, the present invention relates to a pipeline floating point loading instruction that may be implemented within the bus control unit of a microprocessor. The microprocessor

utilisé dans le cas de la présente invention est le micro-  used in the case of the present invention is the micro-

processeur Intel 860T, souvent appelé processeur NlOTM  Intel 860T processor, often called NlOTM processor

(Intel est une marque déposée de Intel Corporation).  (Intel is a registered trademark of Intel Corporation).

Le processeur N10 est un processeur 32/64 bits à virgule flcttante compatible IEEE, avec un processeur de nombres  The N10 processor is a 32/64-bit IEEE-compatible flip-flop processor with a number processor

entiers RISC 32 bits et un processeur graphique tridi-  32-bit RISCs and a three-bit graphics processor

mensionnel 64 bits. Du fait qu'il utilise un processeur  64-bit. Because it uses a processor

numérique optimisé à la fois pour -les opérations vecto-  optimized for both VECTO operations and

rieiles et pour les opérations scalaires, il constitue, dans l'industrie, le premier processeur vectoriel intégré à  and for scalar operations, it constitutes, in industry, the first integrated vector

hautes performances incorporant plus d'un million de tran-  high performance incorporating more than one million

sistors et procurant des performances de l'ordre de la  sistors and providing performance of the order of

moitié de celle d'un Cray I, le tout sur une seule puce.  half that of a Cray I, all on one chip.

Tous les processeurs possèdent une certaine forme d'ins-  All processors have some form of

truction de chargement permettant d'accéder à des informa-  truction of loading allowing access to information

tions soit depuis une mémoire externe soit depuis une anté-  either from an external memory or from an earlier

mémoire de données interne. L'accès aux données mémorisées à l'extérieur est généralement effectué par l'intermédiaire d'un bus de données externes contrôlé par la logique interne du processeur. La raison d'être d'une antémémoire de données est la possibilité d'obtenir un accès performant à des informations souvent utilisées, ce qui permet d'accélérer la vitesse du traitement. Dans les processeurs qui utilisent une antémémoire de données, les instructions de chargement normales agiront plus efficacement si l'information de donnée réside dans l'antémémoire incorporée à la puce. En  internal data memory. Access to externally stored data is usually done via an external data bus controlled by the processor's internal logic. The rationale for a data cache is the ability to get high-performance access to often-used information, which speeds up the speed of processing. In processors that use a data cache, the normal load instructions will act more efficiently if the data information resides in the cache embedded in the chip. In

d'autres termes, si la donnée ne se trouve pas dans l'anté-  other words, if the data is not in the past

mémoire, on sera pénalisé en ce qui concerne les perfor-  memory, we will be penalized with regard to the perfor-

mances lorsque l'on voudra accéder à cette donnée.  when you want to access this data.

Habituellement, lorsque l'on référence une donnée externe  Usually, when reference is made to external data

26 4 3 1 6626 4 3 1 66

au moyen d'une instruction de chargement normal, cette donnée est mdmcrisee dans l'antémémoire. La raison en est que, dar.s des conditions normales, il est très probable que la donnée que l'cn vient juste de référencer soit à nouveau référencée à bref déliai. On minimise la pénalisation liée à l'accès à la dcnnée en mettant dans l'antémémoire de données  by means of a normal loading instruction, this data is stored in the cache. The reason is that, under normal conditions, it is very likely that the data that has just been referenced is again referenced in a short time. We minimize the penalty related to access to the data by putting in the data cache

internes les -informations auxquelles on accède le plus fré-  the most frequently accessed information.

quemment, et en reservant la mémoire externe pour les informations rarement référencées ou réutilisées. C'est le  and reserving external memory for information that is rarely referenced or reused. It's the

principe de localisaticn qui fait que l'antémémoire de don-  localisaticn principle which makes the data cache

nées est un instrument utile, du fait que les programmes ont tendance à ré-érencer certaines données de façon répétée à  is a useful tool, as programs tend to re-derive some data repeatedly

bref délai.short delay.

:1 se présente cependant un problème lorsque l'on fait :5 traiter à un Przcesseur des structures de données de très grande cdmens-cn cou, en tout état de cause, des structures  There is, however, a problem when it is necessary to treat data structures of a very large size in any case, in any case

de données qui sznt beaucoup plus grandes que ce que l'anté-  data that are much larger than what

memoire de d-nnees eut normalement contenir. Comme illus-  memory of d-nnees would normally contain. As illus-

trazion de la difflcuitê qui peut survenir, on peut citer le cas d'un processeur- auquel on demande souvent d'exécuter diverses cperat_-.ns à virgule flottante, par exemple des inversicns mairselles, des multiplications, etc., qui  Another possibility is the case of a processor which is often asked to perform various floating-point tests, for example, mismatched inversions, multiplications, etc., which

nécessitent la manipulation d'immenses matrices de données.  require the manipulation of huge data matrices.

Dans les processeurs de l'art antérieur, lorsque la donnée ne se trouve pas dans i'antémémoire de données incorporée à la puce, le processeur doit geler l'exécution et demander l'accès à la mémcire externe. Pendant la durée de ce gel de  In the processors of the prior art, when the data is not in the data memory embedded in the chip, the processor must freeze the execution and request access to the external memory. During the duration of this freezing

l'exécution, on empêche le processeur de délivrer une quel-  execution, the processor is prevented from delivering a certain

conque ncuvelle adresse à la mémoire. En d'autres termes, le processeur doit attendre que les données nécessaires à la première opérati zn arrivent de la mémoire externe avant de poursuivre l'exécution de ses opérations. De ce fait, ce type d'accès à une memcire externe peut prendre jusqu'à six cycles d'horlcae, _u même plus. On introduit ainsi un retard important, qui ue sur la vitesse de traitement du système lcrsque la ta..e des structures de données impliquées dans le traitem.en.t reuert des accès fréquents à la mémoire externe. Un autre problème lié à la gestion de structures de données de grandes dimensions apparait lorsque l'on amène au  conque new address to the memory. In other words, the processor must wait for the data necessary for the first operation to arrive from the external memory before continuing the execution of its operations. As a result, this type of access to an external memory can take up to six clock cycles, or even more. This introduces a significant delay, which affects the processing speed of the system when the data structures involved in the processing have frequent access to the external memory. Another problem related to the management of large data structures appears when one brings to the

processeur la donnée à laquelle on a accédé à l'extérieur.  processor the data that has been accessed externally.

Lorsque la donnée externe est délivrée au processeur, elle est inscrite dans l'antémémoire et remplace généralement une  When the external data is delivered to the processor, it is cached and generally replaces a

donnée qui y résidait antérieurement. Cependant, on se rap-  data that previously resided there. However, we are

pelera que certaines données externes sont constituées d'opérations rarement référencées (ce cas est extrêmement fréquent avec des structures de données de grandes  will argue that some external data consists of seldom referenced operations (this case is extremely common with large data structures

1i dimensions), c'est-à-dire que l'on n'envisage pas de les ré-  Dimensions), that is to say that we do not envisage

utiliser, alors que les données qu'elles ont remplacé dans l'ar. znémémoire étaient des informations qui allaient très  use, while the data they replaced in ar. znememory were information that was going to be very

probablement être référencées à bref délai. Ainsi, le pro-  probably be referenced shortly. Thus, the

cesseur élimine des données qui doivent être réutilisées en -5 faveur de données qui, selon toute probabilité, ne seront référencées qu'une seule fois. Il en résulte que l'on perd un temps inutile à rappeler les données de l'antémémoire qui ont été substituées. Ce temps d'accès accru est une autre raison pour laquelle les processeurs de l'art antérieur t2 fonctionnent à une vitesse bien inférieure à celle que  The processor eliminates data that must be reused in favor of data which, in all probability, will be referenced only once. As a result, unnecessary time is lost in recalling the cached data that has been substituted. This increased access time is another reason why the processors of the prior art t2 operate at a much lower speed than

permet la présente invention.allows the present invention.

Comme on le verra, la présente invention prévoit une  As will be seen, the present invention provides a

structure en pipeline qui est capable d'effectuer des opéra-  pipeline structure that is able to perform operations

tions mémoire à une vitesse très supérieure (pratiquement, à une vitesse correspondant à la largeur de bande maximale du bus) sans aucun retard pour attendre que le processeur  memory at a much higher speed (practically at a speed corresponding to the maximum bandwidth of the bus) without any delay in waiting for the processor

produise l'adresse suivante. Par utilisation de cette struc-  produce the following address. By using this structure

ture en pipeline, le processeur associé à la présente inven-  pipeline, the processor associated with this invention.

tion peut continuer à délivrer des adresses sans avoir à attendre l'arrivée des données en provenance de la mémoire externe. Par rapport aux processeurs de l'art antérieur,  tion can continue to deliver addresses without having to wait for the arrival of data from the external memory. Compared to the processors of the prior art,

cette possibilité procure un avantage certain au micropro-  this possibility provides a definite advantage to the micropro-

cesseur que l'on va décrire ici.cessor that will be described here.

Pour arriver à ceci, la présente invention prévoit une instruction de chargement à virgule flottante en pipeline permettant d'accéder rapidement à une donnée mémorisée en mémoire externe. Cette instruction logicielle de chargement à virgule flottante en pipeline, que l'on appelera par  To achieve this, the present invention provides a pipeline floating point loading instruction for quick access to data stored in external memory. This Pipeline Floating Point Software Instruction, which will be referred to as

2643 1662643 166

c.dit "instruction PFLoad" (F-Pielined Floating-point Load: chargement à vrul flottante -en pipeine) ou "i-nstructor. ?FLD", peut être utilisée par un programmeur pour accéder à une donnée mémorisée soit dans l'antémémoire de données incorporée à La puce scit dans une mémoire système externe. L'instruction est optimisée pour tenir  c.dit "F-Pielined Floating-point Load" or "i-nstructor." FLD, can be used by a programmer to access stored data in either data cache embedded in the chip scit in an external system memory. The instruction is optimized to hold

compte du cas o la donnée ne réside pas déjà dans l'anté-  the case where the data does not already exist in the past.

memoire de données interne du processeur. On appellera cette situation "non-concordance d'antémémoire" ou, formulée d'une 1l autre manière, "nonconcordance PFLoad". Le cas contraire, o- la donnée que l'on doit charger est déjà mémorisée dans l'anr.émémoire de donnees, et ue 'o..n appellera "concordance  internal data memory of the processor. This situation will be referred to as a "cache mismatch" or, in another form, as "PFLoad nonconcordance". The opposite case, where the data to be loaded is already stored in the data memory, and which will be called "concordance".

d'a.teemc:re", est..aement gérée par la présente inven-  is managed by the present invention.

_ En outre, l'instruction PFLoad de la présente invention -e remplacera pas la donnée résidant déjà dans l'antémémoire ne dcnnées mais, au contraire, dirigera la nouvelle donnée à iazuelle on a accédé vers un empiacement de mémorisation  In addition, the PFLoad instruction of the present invention will not replace the data already residing in the cache, but instead will direct the new data to a storage location.

s:tué à l'int'r:er de:'unité à virgule flottante du pro-  s: killed in the interest of: 'floating-point unit of the

cesseur. L'instruction PFLcad sera décrite dans le cadre de sa mise en oeuvre ncrmaie dans i'unité de contrôle du bus du processeur NO.,  cessor. The instruction PFLcad will be described in the context of its implementation ncrmaie in the bus control unit of the processor NO.

Cn. va décrire ci-dessous une instruction de micropro-  Cn. Will describe below a micropro-

cesseur specialisée optimisée pour l'accès à des données à -iraule _flottante mémT-rises dans un système de mémoire externe. L'invention utilise l'architecture en pipeline du microprocesseur pour retrouver de façon efficace la donnée externe qui ne sera très probablement pas réutilisée à bref délai, en transférant la donnée directement vers un verrou  Specialized caterer optimized for accessing floating-point data stored in an external memory system. The invention uses the pipelined architecture of the microprocessor to efficiently retrieve the external data that will most likely not be reused in a short time, by transferring the data directly to a lock

de données à virgule flottante. Les données fréquement réfé-  floating point data. Frequently referenced data

rencées, qui résident dans l'antémémoire de données incor-  encountered, which reside in the cached data incor-

porée à la puce, ne seront pas dérangées par ces opérations.  porée à la puce, will not be disturbed by these operations.

L'instruct on de c.argement à virgule flottante en pipeline de la présente invention comporte une pile mémoire du type "premier entré- premier sor-ti", ci-après désignée "mémoire PEPS", permettant de cumuler les données auxquelles on a accédé. Des premiers moyens de circuit coopèrent avec la mémoire PEPS pour délivrer à la mémoire PEPS les données depuis la mémoire externe, et il est prévu des seconds moyens de circuit pour transférer au verrou de données à virgule flottante les données de La mémoire PEPS. Les seconds moyens de circuit assurent également l'application en retour des données en provenance de l'antémémoire de données vers la mémoire PEPS dans le cas d'une concordance  The pipelined floating-point instruction of the present invention comprises a "first-in-first-out" memory cell, hereinafter referred to as "FIFO memory", for accumulating the data that has been obtained. accessed. First circuit means cooperates with the FIFO to provide the FIF data with the data from the external memory, and second circuit means are provided for transferring the PEPS memory data to the floating point data latch. The second circuit means also provides feedback of the data from the data cache to the FIFO in the case of a match.

d'antémémoire (c'est-à-dire dans le cas o la donnée réfé-  cache (that is, in the case where the referenced data

rencée réside effectivement dans l'antémémoire de données).  encountered actually resides in the data cache).

Enfin, il est prévu des moyens de contrôle de bus, reliés  Finally, there are provided bus control means, connected

aux premiers et aux seconds moyens de circuit, pour contrô-  first and second circuit means for controlling

ler le flux en pipeline des données depuis le système de  the pipeline flow of data from the

memoire externe jusqu'à l'unité à virgule flottante.  external memory up to the floating-point unit.

L'invention a également pour objet un procédé pour accéder, dans un tel processeur comprenant une unité de traitement, une antémémoire de données et une liaison à un système de mémoire externe, à une donnée se trouvant dans cette mémoire externe, comportant les étapes suivantes: adressage de la donnée dans la mémoire externe; inscription de cette donnée, depuis la mémoire externe, dans une mémoire du type premier entré-premier sorti; lecture de cette donnée, depuis cette mémoire du type premier entrépremier sorti, vers un bus; et transfert de cette donnée sur ce bus vers un verrou de données situé à l'intérieur de l'unité de t-aitement. La présente invention permet de disposer ainsi d'une instruction opérant en pipeline qui soit capable d'effectuer des opérations mémoire à une vitesse nettement plus élevée que dans le cas des processeurs de l'art antérieur. De la sorte, la présente invention permet de continuer à délivrer des adresses sans devoir attendre l'arrivée effective des  The invention also relates to a method for accessing, in such a processor comprising a processing unit, a data cache and a link to an external memory system, to a data item in this external memory, comprising the following steps : addressing the data in the external memory; writing this data from the external memory into a first-in first-out memory; reading this data, from this first-in-first-out memory, to a bus; and transferring this data on that bus to a data lock located within the storage unit. The present invention thus provides a pipelined instruction which is capable of performing memory operations at a significantly higher rate than in the case of prior art processors. In this way, the present invention makes it possible to continue delivering addresses without having to wait for the actual arrival of the

données depuis la mémoire externe.  data from the external memory.

La présente invention permet également d'accéder ainsi à  The present invention also makes it possible to thus access

des données externes sans remplacer des données déjà rési-  external data without replacing data already

dentes dans l'antémémoire de données incorporées à la puce.  cached in the cache of data embedded in the chip.

La présente invention permet donc de minimiser le temps total d'accès, ce qui permet d'accroître la vitesse de fonctionnement. La présente invention permet également ainsi de disposer d'ur. moyen efficace et rapide pour gérer des opérations arithmétiques impliquant des structures de données de très  The present invention thus makes it possible to minimize the total access time, which makes it possible to increase the speed of operation. The present invention also makes it possible to have ur. efficient and fast way to handle arithmetic operations involving data structures of very

arande dimensonr..dimensonr ..

00

On comprendra mieux la présente invention à la lecture de la descri-tion détaillée ci-dessous et des dessins annexés  The present invention will be better understood on reading the detailed description below and the accompanying drawings.

du mode de réalisation préféré de la présente invention.  of the preferred embodiment of the present invention.

i0 Cette description et ces dessins ne doivent cependant pas  i0 However, this description and these drawings should not

être considérés comme limitant la présente invention à un mode de a-'isaion rarticulier, et ils ne sont donnés qu'à  be considered as limiting the present invention to a particular mode of use, and they are given only

des fins exp:cat 4ves et illustratives.  4v and illustrative purposes.

La fig re ' est un schéma logique éclaté du processeur associé l'iînstruction de ch.araement à virgule flottante en  FIG. 9 is an exploded logic diagram of the processor associated with the floating point buffer instruction.

pipeline de la présente invention.pipeline of the present invention.

La figure 2 montre le mode de réalisation actuellement créféré de l'instruction de chargement à virgule flottante  Figure 2 shows the currently implemented embodiment of the floating point load instruction

en pipeline de la présente invention.  in pipeline of the present invention.

2C La figure iustre une série d'instructions de charge-  2C Figure iustre a series of charging instructions-

ment a virgule flottante en pipe line qui ont été émises pour l'exécution d'une opération typique i mpliquant une matrice vectorielle mé.morisée en mémoire externe et un vecteur interne mémorisé dans!'antémémoire de données incorporée à  pipelined floating point that were issued for performing a typical operation involving a vectorized memory array in external memory and an internal vector stored in the data cache embedded in

la puce. On a indiqcué les adresses associées à chaque ins-  the chip. The addresses associated with each

truction de chargement à virgule flottante en pipeline, avec leurs emplacements de mémorisation en virgule flottante associés. La figure 4 illustre une variante du mode de réalisation  pipelined floating point truction with their associated floating point storage locations. FIG. 4 illustrates a variant of the embodiment

de la présente invention.of the present invention.

La figure 5A illustre un mode de réalisation de la mémoire du type premier entré-premier sorti de chargement à virgule flottante en pipeline faisant partie de la présente invention. La figcure 5B _ lusre le mode de réalisation actuellement préféré de la mémoire du type premier entrépremier sorti  Fig. 5A illustrates an embodiment of the pipelined floating-point first-to-first-out memory of the present invention. FIG. 5B illustrates the presently preferred embodiment of first-in-first-out memory

faisant partie de la présente inventicn.  forming part of the present invention.

La figure 6 est un organigramme mentrant les opérations de contrôle assurées par la logique de contrôle du bus  FIG. 6 is a flowchart showing the control operations performed by the bus control logic

asszciée à l'instruction PFLoad de la présente invention.  Assigned to the PFLoad instruction of the present invention.

On va décrire un microprocesseur comprenant une instruction de chargement à virgule flottante en pipeline  A microprocessor will be described comprising a pipelined floating point loading instruction

permettant de charger des données depuis une mémoire ex-  to load data from an external memory

terne. Dans la description qui va suivre, on donnera de  dull. In the description that follows, we will give

nombreux détails particuliers, par exemple des tailles en nom're de bits, etc., afin de permettre une compréhension parfaite de la présente invention. L'homme du métier comzrendra bien évidement que ces détails particuliers n'ont pas besoin d'être nécessairement repris pour mettre en oeuvre la présente invention. Inversement, des structures et des circuits bien connus n'ont pas été décrits en détail  many particular details, e.g., bit sizes, etc., to allow a perfect understanding of the present invention. Those skilled in the art will of course understand that these particular details do not need to be necessarily repeated to implement the present invention. Conversely, well-known structures and circuits have not been described in detail

afin de ne pas alourdir inutilement la description de la  so as not to unnecessarily burden the description of the

présente invention.present invention.

Si l'on se réfère à la figure 1, on y a représenté un  Referring to Figure 1, there is shown a

schéma éclaté du processeur M10. Le processeur M10 est logi-  exploded diagram of the M10 processor. The M10 processor is logi-

quement et physiquement divisé en huit unités distinctes.  physically divided into eight separate units.

L'unité arithmétique 35 comporte une unité d'additionneur à virgule flottante qui permet de réaliser des additions en simple précision et en double précision conformément à la norme IEEE, et un bloc multiplieur à virgule flottante, qui permet, de la même façon, de réaliser des multiplications en simple précision et en double précision conformément à la norme IEEE. L'additionneur et le multiplieur sont tous deux constitués d'unités qui peuvent fonctionner en pipeline à trois étages. En cours de fonctionnement, les opérandes d'entrée représentés par les mnémoniques "srcl" et "src2" sont appliqués à l'unité arithmétique 35 par les lignes 42 et 43, respectivement. Les mnémoniques "srcl" et "src2"  The arithmetic unit 35 comprises a floating point adder unit which makes it possible to perform single precision and double precision additions in accordance with the IEEE standard, and a floating point multiplier block, which allows, in the same way, perform single precision and double precision multiplications according to the IEEE standard. Both the adder and the multiplier consist of units that can operate in a three-stage pipeline. In operation, the input operands represented by the symbols "src1" and "src2" are applied to the arithmetic unit 35 through lines 42 and 43, respectively. The mnemonics "srcl" and "src2"

(ainsi que le mnémonique "dest") indiquent l'un des trente-  (as well as the mnemonic "dest") indicate one of the thirty-

deux registres à virgule flottante situés à l'intérieur du  two floating point registers located within the

processeur M0lO. Le résultat en sortie de l'unité arith-  M010 processor. The output result of the arith-

métique 35 apparalt sur la ligne 49, qui est reliée au bus de destination 41 à 64 bits. Les bus 41 à 43 ont chacun une argeur de 64 bits et ils sont reliés à l'unité de contrôle à v-rgule flottante 33. Les opérandes source à virgule flottante "srci" et "src2" sont également appliqués à  metic 35 appears on the line 49, which is connected to the destination bus 41 to 64 bits. The buses 41 to 43 each have a 64-bit arg and are connected to the floating-point control unit 33. The floating point source operands "srci" and "src2" are also applied to

l'unité graphique 34.the graphic unit 34.

L'unité graphique 34 est un processeur graphique 64 bits permettant d'effectuer à grande vitesse des calculs de  The graphic unit 34 is a 64-bit graphics processor making it possible to carry out at high speed calculations of

pixels et de graphiques tridimensionnels pour divers algo-  pixels and three-dimensional graphics for various algo-

rithmes d'cmbrage et pour la vérification du tampon de pro-  and to check the stamp of the pro-

fondeur en vue de 'éiimination des surfaces cachées. Le processeur graphique est capable de regrouper les résultats de plusieurs operations tour délivrer sur la ligne 45 un  foundry for the purpose of eliminating hidden surfaces. The graphics processor is able to consolidate the results of several round operations deliver on line 45 a

résultat vers le bus de destination 4_.  result to destination bus 4_.

I'antémémcire d'instruction 20, également appelé "unité 1", délivre des instructions sur des entiers à 32 bits et sur des n.srbres à virgule flottante à 32 bits, à la fois au ncyau iSC 3 e l'unité de contrôle à virgule  Instructionemember 20, also called "unit 1", issues instructions on 32-bit integers and 32-bit floating-point numbers, both at the same time as the control unit. comma

flcttante 33 sur Les lignes 24 et 25, respectivement. L'an-  flcttante 33 on lines 24 and 25, respectively. The an-

ééoire d'insru.zti.n est une mémoire associative bidi-  The memory of insru.zti.n is a two-dimensional associative memory

ret:_onnee de 4 K. octets, en blocs de 32 octets. Les  ret: _onnee of 4 K. bytes, in blocks of 32 bytes. The

instructions sont déelivrées aux bus respectifs par l'anté-  instructions are given to the respective buses by

memoire 2 à chaque cycle d'horloge. L'unité de gestion de la mémoire 21 exécute la traduction de l'adresse virtuelle en adresse physique pour les accès aux données et aux instructions, effectue e contrôle des violations d'accès et compare les adresses physiques du cycle en cours à celles du cycle précédent pour produire, sur un même cycle d'horloge, le signal le plus proche qui suit. La traduction est  memory 2 at each clock cycle. The memory management unit 21 performs the translation of the virtual address into a physical address for access to the data and instructions, performs control of the access violations and compares the physical addresses of the current cycle with those of the cycle. preceding to produce, on the same clock cycle, the nearest signal that follows. The translation is

effectuée au mcyen d'un tampon de traduction par trans-  carried out by means of a translational translation buffer.

codage, qui est une antémémoire associative à 64 entrées.  encoding, which is a 64-input associative cache.

L'unité de gestion de la mémoire 21 reçoit ses données d'entrée par les bus 26 et 27 de 32 bits, en sortie du noyau  The memory management unit 21 receives its input data via the buses 32 and 27 of 32 bits, at the output of the core

RSC 31.RSC 31.

Le noyau RISC 3!, également désigné "noyau d'exécution" ou "unité E", exécute toutes les opérations sur les entiers de 32 bits, et e'Les de chargement/mémorisation. C'est le  The RISC 3 kernel, also referred to as "runtime kernel" or "E-unit", performs all operations on 32-bit integers, and the loading / storing ones. It's the

ccntrôleur central du processeur MIv. Il possède une bat-  the central controller of the MIv processor. He has a bat-

-erie de regiscres à trois ports, avec des registres à 32 L_-s, un réseau de contournement, un décaleur, une unité  three ports, with 32 L_-s registers, a bypass network, a shifter, a

arithmétique et logique et les pointeurs d'instruction.  arithmetic and logic and instruction pointers.

L'unité de noyau d'exécution 31 va chercher aussi bien les instructions relatives aux entiers que les instructions à virgule flottante. Il contient la batterie des registres d'entiers et décode et exécute les opérations de chargement, de mémorisation, de traitement des entiers, de traitement  Execution kernel unit 31 will search both the integer instructions and the floating point instructions. It contains the battery of integer registers and decodes and performs the operations of loading, memorizing, integer processing, processing

des valeurs binaires et de contrôle-transfert.  binary and control-transfer values.

L'unité d'ant-emémoire de données 22 assure les fonctions d'antémémoire de données et d'alignement des octets pour les  The data cache unit 22 provides data cache and byte alignment functions for

opérations de lecture/écriture et les processeurs NI.. L'é-  read / write operations and NI processors.

change des données de l'antémémoire est exécuté entre l'an-  change cache data is executed between the year

témémolre de données 22 et l'unité de contrôle à -virgule flotta_=nte 33 par l'intermédiaire du bus 37. L'antémémoire de donr.nées 22 pent également recevoir des données externes par l'intermédiaire de l'unité de contrôle du bus 30 sur un bus  data memory 22 and the floating-point control unit 33 via the bus 37. The data cache 22 can also receive external data via the control unit of the data carrier. bus 30 on a bus

à 64 bits 29.at 64 bits 29.

L'unité de ccr.rôle du bus 30, également appellée "unité B", est le contrôleur de cycle de bus qui assure l'interfaçage entre le bus externe et la puce interne. Il reçoit des requêtes de cycle de bus de l'unité E, effectue les accès à!'ar.temémoire de données et à l'antémémoire  The bus control unit 30, also referred to as "unit B", is the bus cycle controller that provides the interface between the external bus and the internal chip. It receives bus cycle requests from the unit E, accesses the data cache and the cache.

d'instruction, gère les cas de non-concordance d'antémé-  training, manages the cases of non-concordance

moire, avec contrôle du gel et remplacement de la ligne d'antémémoire, contrôle la traduction par le tampon de  memory, with freeze control and replacement of the cache line, checks the translation with the buffer of

traduction par transcodage et le tra -ement des non-con-  translation by transcoding and tracing of non-con-

cordances et des défauts, et assure l'interfaçage avec le bus externe. L'instruction de chargement à virgule flottante en pipeline qui fait l'objet de la présente invention est mise en oeuvre à l'intérieur de l'unité de contrôle du bus 30 du processeur N10. Le contrôleur de bus possède une architecture en pipeline qui permet d'avoir jusqu'à trois  strings and faults, and provides interfacing with the external bus. The pipelined floating point loading instruction which is the subject of the present invention is implemented inside the bus control unit 30 of processor N10. The bus controller has a pipelined architecture that allows for up to three

cycles de bus simultanément en cours.  bus cycles simultaneously in progress.

Dans l'architecture de nombreux microprocesseurs  In the architecture of many microprocessors

modernes, on utilise le fonctionnement en pipeline pour ac-  modern technologies, pipeline operation is used to

croître la vitesse à laquelle on peut introduire ou exécuter des opérations. L'architecture en pipeline traite chaque opération sous forme d'une série d'opérations primitives  to increase the speed at which one can introduce or execute operations. The pipeline architecture treats each operation as a series of primitive operations

(appelées étages), qui peuvent être exécutées en parallèle.  (called stages), which can be run in parallel.

tC Dans le processeur., le nombre d'étages du pipeline reu- aller de un à trois. Une opérat:on en DiBeline avec un pipeline à trois étages mémorise le résultat de l'opération située trois opérations en arrière. Une opération en pipeline avec un pipeline à deux étages mémorise le résultat  In the processor, the number of stages of the pipeline is reduced from one to three. An operation in DiBeline with a three-stage pipeline stores the result of the operation located three operations behind. A pipeline operation with a two-stage pipeline stores the result

de l'opération située deux opérations en arrière. Une opé-  of the operation located two operations back. An operation

ration en pipeline avec un pipeline à un étage mémorise le résultat de i'opération précédente. Le processeur N'! permet d'avoir un. fonctionnement en pipeli-ne du cycle de bus sur i$ trois r.niveaux sur le bus externe, de sorte que l'on peut avcr. trc.s cycles de bus qui aient été émis avant que la  Pipeline delivery with a one-stage pipeline stores the result of the previous operation. The processor N '! allows to have one. Pipelining operation of the bus cycle on three levels on the external bus, so that one can avcr. trc.s bus cycles that were issued before the

donn.ee correspondant au remier cycle n'ait été retournée.  data corresponding to the first cycle has been returned.

En cutre, le chemin interne des adresses dans l'unité B est crganisé en pipeline, de tele sorte que l'on exécute la :5 traduction d'adresse du... e suivant parallèlemen.t au cycle  In addition, the internal path of the addresses in the unit B is organized in a pipeline, so that the translation of the address of the following e is parallel to the cycle.

de bus externe en cours.external bus in progress.

cumme cn!'a indiqué plus haut, or.cn utilise l'instruction PFLcad crur accéder, dans la mémoire externe, aux données rarement ut:ié=es, c'est-àdire aux données cue l'on ne 1 prévoit zas de réutiliser à bref délai. Dès lors, la logique ce contr5le ?FLoad, qui se trcuve à l'intérieur de l'unité de contrôle du bus, est optimisée pour tenir compte du cas d'une non-concordance d'a.ntém-émoire. Une "non-concordance d'a.nememore" correspond à la situation dans laquelle la donnée demandée par PFLoad n'est pas une donnée résideant  As mentioned above, or.cn uses the PFLcad instruction to gain access, in external memory, to data that is rarely used, ie data that does not contain any data. reuse at short notice. Therefore, the logic that controls FLoad, which is found inside the control unit of the bus, is optimized to take into account the case of a nonconformance mismatch. A "mismatch of a.nememore" corresponds to the situation in which the data requested by PFLoad is not a resident datum

déjà dans l'unité de l'antémémoire de données.  already in the data cache unit.

La figure 2 illustre un mode de réalisation préféré de  Figure 2 illustrates a preferred embodiment of

mise en oeuvre de 'instruction de la présente invention.  implementing instruction of the present invention.

L'instruction PFLoad retourne une donnée, depuis la mémoire externe, sur un bus 40 à 64 bits. La donnée retournée est la donnée qui avait été adressée trois instructions en arrière, conformément au fonctionnement en pipeline du processeur N!0. Le tampon à trois états logiques 60 est utilisé pour  The PFLoad instruction returns data from the external memory on a 64-bit bus 40. The data returned is the data that was sent three instructions back, according to the pipelined operation of processor N! 0. The logical three-state buffer 60 is used to

appliquer la donnée externe sur l'entrée "zéro" du multi-  apply the external data to the "zero" input of the multi-

piexeur 62, ainsi que sur l'entrée "DBS" du multiplexeur 67. Le tampon 60 est relié aux multiplexeurs 62 et 67 par l'intermédiaire de la ligne 61. Le tampon 60, ainsi que les étages de pilotage 69, 74 et 75, sont constitués d'étages de 1! pilotage classiques en logique à trois états. De la même façon, dans le mode de réalisation préféré les multiplexeurs 62 et 67 sont formés de circuits logiques classiques. Le contrôle des étages de pilotage à trois états 60, 69, 74 et 75, ainsi que des multiplexeurs 62 et 67, est assuré par la  The buffer 60 is connected to the multiplexers 62 and 67 via the line 61. The buffer 60, as well as the control stages 69, 74 and 75, are connected to the multiplexer 62. , consist of stages of 1! classical control in three-state logic. In the same way, in the preferred embodiment, the multiplexers 62 and 67 are formed of conventional logic circuits. The control of the three-state driving stages 60, 69, 74 and 75, as well as the multiplexers 62 and 67, is ensured by the

logique de contrôle du bus située à l'intérieur de l'uni-  control logic of the bus inside the unit.

té B. Cette logique de contrôle a été synthétisée par ordi-  B. This control logic has been synthesized by

nateur à partir d'une description en langage fonctionnel à  from a functional language description to

haut niveau de l'unité de contrôle du bus. On donnera plus -0 bas un organigramme des opérations de contrôle exécutées par i'unité B. La mise en oeuvre de l'instruction PFLoad nécessite également une mémoire 65, ciaprès désignée "mémoire PEPS  high level of the bus control unit. A flow chart of the control operations executed by unit B will be given below. The implementation of the PFLoad instruction also requires a memory 65, hereinafter referred to as "FIFO memory".

PFLoad" ou "mémoire PEPS", reliée à la sortie du multi-  PFLoad "or" FIFO memory ", connected to the output of the multi-

plexeur 62 par la ligne 63. -La mémoire PEPS 65 produit une donnée à sa sortie 66, donnée qui est appliquée à l'entrée PFLD du multiplexeur 67. Dans le mode de réalisation actuellement préféré, la mémoire PEPS 65 a une taille de 64 bits, avec une profondeur de trois mots. La mémoire PEPS PFLoad 65 contient les données sur 64 bits référencées par  plexeur 62 by line 63. -The FIFO 65 produces data at its output 66, which is applied to the PFLD input of the multiplexer 67. In the presently preferred embodiment, the PEPS memory 65 has a size of 64. bits, with a depth of three words. PEPS memory PFLoad 65 contains the 64-bit data referenced by

les trois instructions PFLoad antérieures. Lors de l'initia-  the previous three PFLoad statements. At the initiative

lisation du processeur, ou apres une réinitialisation, le contenu de la mémoire PEPS est indéterminé. En conséquence, pour les trois premières instructions PFLoad, ce sont des données inutilisables ou-des résidus qui seront retournés  processor, or after a reset, the contents of the FIFO are indeterminate. As a result, for the first three PFLoad instructions, these are unusable data or -that will be returned

(les programmeurs devront alors ignorer les données retour-  (programmers will then have to ignore the return data

nées par les trois premières instructions PFLoad qui auront  born by the first three PFLoad instructions that will have

été délivrées).been issued).

Le multiplexeur 67 possède une entrée permettant de recevoir des données en sortie du sommet de la mémoire PEPS et une autre entrée permettant de recevoir des données directement de la mémoire externe. La donnée externe est directement appliquée au multiplexeur 67 via la ligne 61. La mémoire PEPS 65 est reliée au multiplexeur 67 par la ligne 66. La sortie du multiplexeur 67 apparaît sur la ligne 68, qui est reliée au tampon à trois états 69. Le tampon de bus à trois états 69, quant à lui, est relié à un bus interne à 64 bits, désigné BiBUS, qui a été illustré figure 2 par la  The multiplexer 67 has an input for receiving data output from the top of the FIFO memory and another input for receiving data directly from the external memory. The external data is directly applied to the multiplexer 67 via the line 61. The PEPS memory 65 is connected to the multiplexer 67 via the line 66. The output of the multiplexer 67 appears on the line 68, which is connected to the tri-state buffer 69. tri-state bus buffer 69, in turn, is connected to a 64-bit internal bus, designated BiBUS, which has been illustrated in FIG.

ligne 29. Comme son nom l'indique, ce bus est bidirec-  line 29. As its name indicates, this bus is bidirec-

tionnel, c'est-à-dire qu'il peut délivree des données à l'unité à virgule flottante et, aussi bien, retourner au  that is, it can deliver data to the floating-point unit and, as well, return to the

multiplexeur 62 des données en provenance de l'antémémoire.  multiplexer 62 data from the cache.

Le bus BIBUS 29 est relié, par l'intermédiaire du tampon 75,  The BIBUS bus 29 is connected, via the buffer 75,

à un bus DABUS 76, qui a également une largeur de 64 bits.  to a bus DABUS 76, which also has a width of 64 bits.

Le bus DABUS 76 relie le verrou de données d'entrée à virgule flottante 78 à l'antémémoire de données 70. Comme indiqué précédemment, le bus BIBUS 29 est bidirectionnel  The DABUS bus 76 connects the floating-point input data latch 78 to the data cache 70. As previously indicated, the BIBUS bus 29 is bidirectional

afin de permettre, dans le cas d'une concordance d'anté-  to allow, in the case of an earlier match

mémoire, le retour au multiplexeur 62 des données résidant déjà dans l'antémémoire de données 70. Les données se trouvant dans l'antémémoire sont appliquées par la ligne 79  memory, the return to the multiplexer 62 data already residing in the data cache 70. The data in the cache are applied by the line 79

au bus BIBUS, par l'intermédiaire du tampon 74.  to the BIBUS bus, via the buffer 74.

1]5 Lorsque le processeur N10 a besoin d'accéder à une donnée, cette donnée peut se trouver soit dans un système  1] 5 When the processor N10 needs to access a data, this data can be either in a system

mémoire externe soit à l'intérieur de l'antémémoire de don-  external memory is inside the data cache.

nées interne. Lorsque la donnée est extérieure au processeur NIO, l'instruction PFLoad agit de manière à charger dans la mémoire PEPS PFLoad 65 la donnée depuis la mémoire externe, en utilisant le bus externe 40 et par l'intermédiaire du  born internally. When the data is external to the processor NIO, the instruction PFLoad acts so as to load the data FIFO PFLoad 65 data from the external memory, using the external bus 40 and through the

multiplexeur 62. Après que trois instructions PFLoad suc-  multiplexer 62. After three successful PFLoad instructions

cessives (correspondant à des étages successifs de la  cessives (corresponding to successive stages of the

memcire PEPS) aient été émises, la donnée initiale est pro-  memcire PEPS) have been issued, the initial data is pro-

duite sur la ligne 66, puis ensuite délivrées sur le bus BIBUS 29. Une fois la mémoire PEPS pleine, chaque cycle PFLoad normal transfère la donnée du dessus de la mémoire PEPS au bus BIBUS 29, puis au verrou de données d'entrée à virgule flottante 78, via le bus DEABUS 76. Ainsi, chaque cycle PFLoad normal déclenche à l'intérieur du processeur un  on the line 66, and then delivered on the BIBUS bus 29. When the PEPS memory is full, each normal PFLoad cycle transfers the data from the top of the PEPS memory to the BIBUS bus 29, and then to the decimal input data latch 78, via the DEABUS bus 76. Thus, each normal PFLoad cycle triggers inside the processor a

cycle de lecture correspondant.corresponding reading cycle.

Lorsqu'une nouvelle donnée arrive du bus de donnée externe, elle est normalement dirigée vers la base de la mémoire PEPS 65. Cependant, si la donnée adressée réside déjà dans l'antémémoire de données, on aura un cas de  When a new data arrives from the external data bus, it is normally directed to the base of the PEPS memory 65. However, if the addressed data already resides in the data cache, there will be a case of

"concordance PFLoad'" (synonyme de "concordance d'anté-  "PFLoad match" (synonymous with "previous agreement"

mémoire") et on produira une exception. Dans le cas d'une concordance PFLoad, la logique de contrôle du bus de l'unité B va attendre que tous les cycles de bus en cours soit achevés. Ensuite, elle transférera la donnée demandée de l'antémémoire de données 70 à la base de la mémoire PEPS 65 en suivant le chemin de données constitué par la ligne 79, le tampon 74, le bus BIBUS 29 (relié à l'entrée "1" du  "In the case of a PFLoad match, the Bus B control logic will wait for all current bus cycles to be completed, and then transfer the requested data from the bus. the data cache 70 at the base of the PEPS memory 65 following the data path constituted by the line 79, the buffer 74, the BIBUS bus 29 (connected to the input "1" of the

multiplexeur 62) et la ligne 63.multiplexer 62) and line 63.

Le contrôleur doit attendre que tous les cycles de bus en cours soit achevés pour transférer la donnée de concordance PFLoad de l'antémémoire de données 70 à la base de la  The controller must wait for all current bus cycles to be completed to transfer the PFLoad match data from the data cache 70 to the base of the

mémoire PEPS 65 et ce, pour deux raisons.  PEPS 65 memory for two reasons.

En premier lieu, il se peut qu'il y ait un cycle PFLoad en cours. Toute tentative d'inscription de la donnée de concordance PFLoad dans la mémoire PEPS avant que tous les  First, there may be a PFLoad cycle in progress. Any attempt to register the PFLoad match data in the PEPS memory before all

cycles PFLoad en cours n'aient été achevés va détruire l'or-  PFLoad cycles in progress have been completed will destroy the or-

dre des données se trouvant dans la mémoire PEPS.  dre data in the FIFO memory.

En second lieu, le bus BIBUS 29 peut être déjà occupé par des données que l'on est en train de transférer vers l'unité à virgule flottante au moyend'une instruction PFLoad se trouvant trois instructions en arrière. Il en résultera un  Second, the BIBUS bus 29 may already be busy with data that is being transferred to the floating point unit by means of a PFLoad instruction which is three instructions back. This will result in a

conflit de bus si la donnée de concordance PFLoad en prove-  bus conflict if the PFLoad match data from

nance de l'antémémoire est transférée immédiatement sur le bus BIBUS. Pour empêcher l'apparition d'un conflit de bus, la logique de contrôle de bus de l'unité B met-hors service le tampon 74 pendant un cycle d'horloge supplémentaire avant de remettre la donnée dans la mémoire PEPS 65. Après que l'unité B ait attendu que tous les cycles en cours soient  caching is immediately transferred to the BIBUS bus. To prevent the occurrence of a bus conflict, the bus control logic of the unit B turns off the buffer 74 for an additional clock cycle before resetting the data in the PEPS memory 65. Unit B waited until all the cycles in progress were

achevés, la donnée de concordance PFLoad est placée à la -  Completed, the PFLoad match data is placed on the -

base de la mémoire PEPS, et le traitement PFLoad s'exécute  based on FIFO memory, and PFLoad processing runs

de façon habituelle.in the usual way.

30.I1 est possible au processeur de fonctionner à une  30.It is possible for the processor to operate at a

cadence plus rapide que le bus externe ou que la mémoire.  faster than the external bus or the memory.

Par exemple, si la vitesse du processeur est supérieure à celle du matériel externe, il se peut que la mémoire PEPS se vide. Il faut que la mémoire PEPS ait un nombre suffisant  For example, if the processor speed is higher than that of the external hardware, the PEPS memory may be empty. The PEPS memory must have a sufficient number

d'étages pour conserver le nombre maximum d'adresses déli-  number of floors to keep the maximum number of addresses

vrées par le processeur, et qu'elle soit également compati-  by the processor, and that it is also compatible

ble avec l'architecture en pipeline du processeur. On notera que c'est pour cette raison que l'instruction PFLoad que  ble with the pipeline architecture of the processor. Note that this is why the PFLoad instruction

l'on décrit ici opère de façon dynamique.  here described operates dynamically.

Si l'on se réfère maintenant à la figure 5B, on y a illustré a mémoire PEPS PFLoad 65 constituée, dans le mode de réalisation actuellement préféré, de trois verrous ou registres par bit, d'un compteur de position de lecture 87 et d'un compteur de position d'écriture 86. Le compteur de cDsition de lecture est relié au décodeur 88 qui, quant à lui, est relié au multiplexeur 3-vers-1 95 par les lignes 94 et 93. Ces lignes sont reliées aux lignes de sélection du multiplexeur 95 de telle sorte que, lors d'une opération PFLoad, le compteur de lecture 87 sélectionne le registre  Referring now to FIG. 5B, there is illustrated a PEPS memory PFLoad 65 constituted, in the presently preferred embodiment, by three locks or registers per bit, a read position counter 87 and a A write position counter 86. The read citation counter is connected to the decoder 88 which, in turn, is connected to the 3-to-1 multiplexer 95 by the lines 94 and 93. These lines are connected to the lines. for selecting the multiplexer 95 so that, during a PFLoad operation, the read counter 87 selects the register

dans lequel le cycle PFLoad suivant lira la donnée.  wherein the following PFLoad cycle will read the data.

e compteur de position d'écriture 86 est relié au décodeur 85 qui, quant à lui, est relié aux registres A, B et C, respectivement par les lignes 92, 91 et 90. Les lignes à 92 permettent de verrouiller dans le registre approprié les données apparaissant sur la ligne 63. En fonctionnement, le compteur de position d'écriture 86 pointe sur le verrou dans lequel le cycle PFLoad suivant inscrira la donnée retournée. Le compteur de position de lecture et le compteur  The write position counter 86 is connected to the decoder 85 which, in turn, is connected to the registers A, B and C, respectively by the lines 92, 91 and 90. The lines at 92 make it possible to lock in the appropriate register. the data appearing on the line 63. In operation, the write position counter 86 points to the lock in which the next PFLoad cycle will write the returned data. The reading position counter and the counter

de position d'écriture sont tous deux constitués de comp-  writing position are both composed of

teurs bouclés classiques 0-vers-2.classic curly 0-to-2.

Le compteur de lecture est incrémenté lorsque l'instruc-  The reading counter is incremented when the instruction

tion PFLoad se trouve à l'étape de réécriture ou se trouve en attente, le bus BIBUS n'est pas actif et la mémoire PEPS PFLoad n'est pas vide. Si la mémoire PEPS est vide, le compteur de lecture est incrémenté, bien- que la donnée ne soit pas effectivement verrouillée dans la mémoire PEPS mais directement dirigée vers le verrou de données d'entrée à virgule flottante. Le compteur d'écriture est incrémenté lorsque le cycle de bus externe actuel est un PFLoad, ou lorsque l'on est en train d'inscrire, depuis l'antémémoire de données, une donnée PFLoad à la base de la mémoire PEPS dans le cas d'une concordance PFLoad. Les deux bits du compteur de position d'écriture sont utilisés pour produire les signaux d'écriture de la mémoire PEPS qui verrouillent  PFLoad is in the rewrite step or is in standby, the BIBUS bus is not active and the FIFO PFLoad is not empty. If the PEPS memory is empty, the read counter is incremented, although the data is not effectively locked in the PEPS memory but directly directed to the floating point input data lock. The write counter is incremented when the current external bus cycle is a PFLoad, or when a data PFLoad is being written from the data cache to the base of the PEPS memory in the case a PFLoad match. The two bits of the write position counter are used to produce the FIFO memory write signals that latch

la donnée dans la mémoire PEPS.the data in the PEPS memory.

On a illustré figure 5A une variante du mode de réalisation de la mémoire PEPS 65. La figure 5A montre une memoire PEPS dans laquelle les données passent en série du verrou 1 au verrou 2, puis ensuite au verrou 3 avant d'être délivré en sortie sur la ligne 66. Bien que la mémoire PEPS de la figure 5A permettent de préserver convenablement la nature en pipeline des instructions PFLoad, elle n'a pas la même souplesse que la mémoire PEPS illustrée figure 5B. Par exemple, dans la mémoire PEPS de la figure 5B on pourrait inscrire des données dans le verrou 87 en un cycle d'horloge et les lire au cycle suivant sans avoir à traverser les autres registres. On peut ainsi rendre disponible certaines  FIG. 5A shows a FIFO memory in which the data pass in series from the lock 1 to the lock 2, then to the lock 3 before being delivered as output. FIG. 5A shows a variant of the embodiment of the FIFO memory 65. FIG. on line 66. Although the PEPS memory of FIG. 5A makes it possible to preserve the pipelined nature of the PFLoad instructions, it does not have the same flexibility as the PEPS memory shown in FIG. 5B. For example, in the FIFO memory of FIG. 5B, data could be written in the latch 87 in one clock cycle and read in the next cycle without having to traverse the other registers. We can make some

données de façon anticipée, si nécessaire.  data in advance, if necessary.

Comme expliqué précédemment, le processeur N10 peut  As previously explained, the N10 processor can

émettre -usqu'à trois cycles de bus simultanément en cours.  transmit up to three bus cycles simultaneously in progress.

S4i e processeur délivre des cycles de bus à une cadence supérieure à celle de la mémoire externe, la mémoire PEPS PFLoad peut venir à se trouver vidée. Ceci implique que les trois cycles en cours soient des cycles PFLoad. Si un quatrième cycle PFLoad se trouve à l'étape de réécriture et qu'il n'y a pas de donnée disponible à charger dans le verrou de données 78, l'unité de contrôle du bus délivre un ordre de gel. Lorsque l'on demande un cycle PFLoad mais que la mémoire PEPS est vide, on doit geler le noyau jusqu'à ce que la donnée PFLoad soit disponible sur le bus DABUS (un PFLoad est en cours lorsque la donnée provenant de la mémoire PEPS ne peut pas être transférée au verrou de données 78 du fait que la mémoire PEPS PFLoad est vide, que le bus BIBUS est occupé ou que l'on a une non-concordance du  If the processor delivers bus cycles at a rate higher than that of the external memory, the FIFO PFLoad may become empty. This implies that the three cycles in progress are PFLoad cycles. If a fourth PFLoad cycle is in the rewrite step and there is no available data to load in the data latch 78, the bus control unit issues a freeze command. When a PFLoad cycle is requested but the PEPS memory is empty, the kernel must be freezed until the PFLoad data is available on the DABUS bus (a PFLoad is in progress when the data from the PEPS memory does not can not be transferred to the data latch 78 because the FIFO PFLoad is empty, the bus BIBUS is busy or there is a mismatch of

tampon de traduction par transcodage).  transcoding translation buffer).

On remarquera que, lorsque l'antémémoire de données  It will be noticed that when the data cache

effectue une lecture normale, l'unité d'antémémoire de don-  performs normal playback, the cache memory unit

nées 70 pilote à la fois le bus DABUS 76 et le bus DBBUS 80, de sorte qu'il devient impossible de délivrer des données  born 70 drives both the DABUS bus 76 and the DBBUS bus 80, so that it becomes impossible to deliver data.

externes au verrou au cours du même cycle d'horloge.  external to the lock during the same clock cycle.

Cependant, si l'on utilise une instruction PFLoad, l'anté-  However, if a PFLoad instruction is used, the

mémoire de données 70 est contrôlée par la logique de l'unité B de manière à arrêter les circuits internes de  data memory 70 is controlled by the logic of the unit B so as to stop the internal circuits of

pilotage de l'antémémoire (qui sont reliés au bus DABUS 76).  cache control (which are connected to the bus DABUS 76).

En arrêtant les circuits de pilotage de l'antémémoire reliés au bus DABUS 76, on peut délivrer des données externes au verrou de données 78 sans créer de situation de conflit de bus. Une fois que la donnée PFLoad est devenue disponible sur le bus DABUS 76, on met fin au gel. La donnée externe est alors pilotée par le tampon 75 sur le bus DABUS, depuis le bus BIBUS 29. La donnée délivrée sur le bus BIBUS peut provenir soit de la mémoire PEPS 65 soit directement, par la ligne 61, du système de mémoire externe. Le multiplexeur 67 ne sélectionne la ligne 61 comme source de la donnée que lorsque la mémoire PEPS 65 est vide. Le fait que la mémoire PEPS 65 soit vide ou non dépend de la vitesse de la mémoire externe, de la fréquence à laquelle le programmeur émet des  By stopping the cache control circuits connected to the DABUS bus 76, data external to the data latch 78 can be delivered without creating a bus contention situation. Once the PFLoad data has become available on the DABUS bus 76, the freeze is terminated. The external data is then controlled by the buffer 75 on the DABUS bus, from the BIBUS bus 29. The data delivered on the BIBUS bus can come either from the PEPS memory 65 or directly, via the line 61, from the external memory system. The multiplexer 67 selects the line 61 as the source of the data only when the PEPS memory 65 is empty. Whether or not the FIFO 65 is empty depends on the speed of the external memory, the frequency with which the programmer transmits

-5 instructions PFLoad, etc. Si la séquence PFLoad est inter-  -5 PFLoad instructions, etc. If the PFLoad sequence is

rompue, alors la donnée va continuer à être délivrée à par-  broken, then the data will continue to be delivered to

tir la mémoire externe aussi longtemps que l'on aura des crdres PFLoad en cours émis sur le bus externe 40. Les données externes référencées par les instructions PFLoad antérieures vont alors s'accumuler dans la mémoire PEPS 65 jusqu'à ce que le programmeur commence à émettre à nouveau  firing the external memory as long as there will be current PFLoad emitted on the external bus 40. The external data referenced by the previous PFLoad instructions will then accumulate in the PEPS 65 memory until the programmer starts to be issued again

des instructions PFLoad.PFLoad instructions.

* Si le programmeur émet des ordres PFLoad successifs tels que la mémoire PEPS de données 65 vienne à se vider avant qu'aucun cycle PFLoad en cours n'ait été achevé, les nouvelles données arrivant sur le bus de données externes 40 seront appliquées sur la ligne 61 par le multiplexeur 67, pour application directe au bus BIBUS 29. Ensuite, les données appliquées sur le bus BIBUS 29 seront envoyées par le tampon 75 sur le bus DABUS 76 afin de pouvoir être finalement mémorisées dans le verrou de données d'entrée à virgule flottante 78. Le verrou d'entrée de données fait effectivement partie de l'unité à virgule flottante du processeur N10 (le bus DBBUS n'est utilisé que lorsque l'on traite des charges sur 128 bits. Comme l'instruction PFLoad n'opère que sur des charges de 64 bits ou de 32 bits, le bus DBBUS ne concerne pas directement l'instruction PFLoad de la* If the programmer issues successive PFLoad commands such that the data FIFO 65 becomes empty before any current PFLoad cycle has been completed, the new data arriving on the external data bus 40 will be applied to the line 61 by the multiplexer 67, for direct application to the BIBUS bus 29. Then, the data applied on the BIBUS bus 29 will be sent by the buffer 75 on the DABUS bus 76 so that it can finally be stored in the input data latch The data entry lock is actually part of the floating point unit of the N10 processor (the DBBUS bus is only used when handling 128-bit loads.) Like the PFLoad instruction only operates on 64-bit or 32-bit loads, the DBBUS bus does not directly affect the PFLoad instruction of the

présente invention).present invention).

Lorsqu'une situation de concordance d'antémémoire  When a cache matching situation

apparaît, c'est-à-dire lorsque la donnée demandée réside ef-  appears, that is to say when the data requested is ef-

fectivement dans l'antémémoire de données et non dans la mémoire externe, il se passe alors ce qui suit. Tout d'abord, le mot de donnée actuel doit être retourné soit de  fectively in the data cache and not in the external memory, then the following happens. First, the current data word must be returned either from

la mémoire PEPS PFLoad 65 soit du bus de données externe 40.  the PEPS memory PFLoad 65 is the external data bus 40.

A cet effet, la logique de contrôle de l'unité de contrôle du bus met hors service le tampon 75 et la donnée est retournée en suivant le trajet du bus BIBUS qui aboutit à l'entrée "1" du multiplexeur 62. Le multiplexeur 62, qui est également contrôlé par l'unité de contrôle du bus, retourne alors la donnée à la base de la mémoire PEPS 65, via la  For this purpose, the control logic of the bus control unit deactivates the buffer 75 and the data is returned following the path of the BIBUS bus which leads to the input "1" of the multiplexer 62. The multiplexer 62 , which is also controlled by the bus control unit, then returns the data to the base of the PEPS memory 65, via the

ligne 63.line 63.

Dans le cas o l'on a émis un certain nombre d'ordres PFLoad en cours dont aucun n'a encore retourné de donnée de la mémoire externe, et o une concordance d'antémémoire apparaît, la séquence des événements est différente. Dans ce cas, le processeur ne peut, dans l'immédiat, rien faire avec le mot de données résidant actuellement dans l'antémémoire de données. L'unité de contrôle du bus doit tout d'abord attendre que toutes les instructions PFLoad précédemment emises aient retourné les données de la mémoire externe. Le premier mot de données retourné est transféré dans le verrou d'entrée de données 78, soit de la mémoire PEPS 65 soit directement du bus externe, tandis que les deux mots restants sont inscrits dans la mémoire PEPS.65. Finalement, le mot de donnée mémorisé dans l'antémémoire de données 70 est transféré dans la mémoire PEPS 65 en tant que dernier mot de cette mémoire PEPS. On aura ainsi une pénalisation  In the case where a number of current PFLoads have been issued, none of which has yet returned data from the external memory, and o a cache match occurs, the sequence of events is different. In this case, the processor can not, in the immediate future, do anything with the data word currently residing in the data cache. The bus control unit must first wait for all previously issued PFLoad instructions to return data from the external memory. The first data word returned is transferred into the data entry lock 78, either of the PEPS memory 65 or directly of the external bus, while the remaining two words are written in the memory PEPS.65. Finally, the data word stored in the data cache 70 is transferred to the PEPS memory 65 as the last word of this FIFO. We will have a penalty

temporelle notable dans le cas d'une concordance d'anté-  a significant temporal difference in the case of a concordance

mémoire, car le programmeur devra attendre que tous les cycles PFLoad en cours aient été achevés avant de transférer la donnée de l'antémémoire à la mémoire PEPS. Des explications qui précèdent, on voit que l'instruction PFLoad  memory, because the programmer will have to wait until all current PFLoad cycles have been completed before transferring the cache data to FIFO memory. From the preceding explanations, we see that the instruction PFLoad

est optimisée pour le cas de la non-concordance d'antémé-  is optimized for the case of antecedent mismatch

moire plutôt que pour le cas de la concordance d'antémé-  rather than for the case of concordance

moire. Sur la figure 4, on a représenté une variante du mode de réalisation de la présente invention. Le circuit de la figure 4 est identique à celui de la figure 2, à l'exception du fait que la ligne 79, le tampon 74 et le trajet de retour du bus BIBUS aboutissant à l'entrée "1" du multiplexeur 62 ont été supprimés. A la place, on a prévu un bus 81. Le bus 81 relie directement le tampon interne 82 de l'antémémoire à l'entrée "1" du multiplexeur 62. Le premier bénéfice procuré par cette variante du mode de réalisation est que l'utilisateur n'a pas besoin d'attendre que le tampon 69 se mette hors service avant d'inscrire la donnée dans la mémoire PEPS 65. Du fait que l'on a inclus un bus dédié au cas d'une concordance d'ar.ntémémoire, le programmeur n'a, également, pas besoin d'attendre, avant de poursuivre, que tcutes les données externes provenant d'instructions PFLoad en attente aient été retournées. On n'a pas non plus de pénalisation en termes de cycles d'horloges supplémentaires, car la donnée est délivrée directement de l'antémémoire de dcnnées 70 à la mémoire PEPS 65 lorsque survient un cas de  memory. In Figure 4, there is shown a variant of the embodiment of the present invention. The circuit of FIG. 4 is identical to that of FIG. 2, except that the line 79, the buffer 74 and the return path of the BIBUS bus leading to the input "1" of the multiplexer 62 have been deleted. Instead, a bus 81 is provided. The bus 81 directly connects the internal buffer 82 of the cache to the "1" input of the multiplexer 62. The first benefit provided by this variant of the embodiment is that the user does not need to wait for the buffer 69 to turn off before entering the data in the memory PEPS 65. Because we have included a bus dedicated to the case of a concordance of ar. In addition, the programmer does not need to wait, before continuing, for any external data from pending PFLoad instructions to be returned. There is also no penalty in terms of additional clock cycles, since the data is delivered directly from the data cache 70 to the PEPS memory 65 when a case occurs.

concordance d'antémémoire.cache concordance.

En revanche, le mode de réalisation préférentiel de la fiaure 2 présente l'avantage d'une surface de silicium moindre, car on n'a besoin que d'un seul bus tandis que, dans la variante de réalisation de la figure 4, on a besoin  On the other hand, the preferred embodiment of the sheet 2 has the advantage of a smaller silicon area, since only one bus is needed while, in the variant embodiment of FIG. requires

du bus supplémentaire 81.additional bus 81.

La figure 6 est un organigramme illustrant les opérations de contrôle effectuées par la logique de contrôle du bus  FIG. 6 is a flowchart illustrating the control operations performed by the bus control logic

associée à l'instruction PFLoad de la présente invention.  associated with the PFLoad instruction of the present invention.

Cet organigramme résume la description donnée ci-dessus de  This flowchart summarizes the description given above of

la logique de contrôle du bus mise en oeuvre lors de  the control logic of the bus implemented during

l'exécution de l'instruction PFLoad. Sur la figure 6, l'or-  the execution of the PFLoad instruction. In Figure 6, the

ganigramme de l'instruction PFLoad commence au bloc 100, qui correspond à une requête PFLoad. Une fois la requête émise,  PFLoad instruction flow chart begins at block 100, which corresponds to a PFLoad request. Once the request is issued,

la logique de contrôle du bus et l'unité B doivent déter-  bus control logic and unit B must determine

miner si la mémoire PEPS 65 est vide ou si le bus BIBUS 29 est occupé. Ceci a été illustré par le test 101. Si l'une de ces deux conditions est vérifiée, le contrôleur de bus attendra jusqu'à ce que la condition change. S'il y a une donnée présente dans la mémci-re PEPS et si le bus BIBUS n'est pas occcupé, le contrôleur passe alors au bloc 102, o la donnée résidant dans la mémoire PEPS est transférée vers le verrou de données à virgule flottante 78. Au test 103, le  if the PEPS memory 65 is empty or if the BIBUS bus 29 is busy. This has been illustrated by test 101. If one of these two conditions is true, the bus controller will wait until the condition changes. If there is data present in the PEPS memory and the BIBUS bus is not busy, then the controller proceeds to block 102, where the PEPS memory data is transferred to the decimal data lock. 78. In test 103, the

contrôleur de bus examine si l'on a eu ou non une con-  bus controller examines whether or not there has been a

cordance PFLoad, c'est-à-dire, en d'autres termes, si l'on a  PFLoad, that is to say, in other words, if one has

eu une concordance d'antémémoire. Si la donnée réside en mé-  had a concordance cache. If the data resides in

moire externe et ne se trouve pas dans l'antémémoire de données 70, le contrôleur de bus va alors émettre un cycle de bus PFLoad, comme illustré au bloc 104. Le traitement continue de façon normale jusqu'à atteindre la fin de l'instruction. Il peut également se trouver qu'une concordance PFLoad apparaisse, auquel cas la logique de contrôle du bus doit examiner si l'on a un cycle PFLoad en cours ou si le bus BIBUS est occupé ou non. Ceci est illustré sur la figure 6 par le bloc de test 105. Si l'on a des cycles en cours, ou si le bus BIBUS est occupé, la logique de contrôle du bus doit attendre jusqu'à ce que tous les cycles de bus en cours soient achevés et que le bus BIBUS soit disponible pour transférer la donnée. Lorsque ceci arrive, la donnée est alors transférée de l'antémémoire de données vers la base de la mémoire PEPS, comme illustré par le bloc 106. Le transfert peut avoir lieu de la manière décrite à propos de la figure 2, la donnée suivant la ligne 79, via le tampon 74, pour être retourné par le bus BIBUS à l'entrée "1" du multiplexeur 62. Dans la variante de réalisation, la donnée provenant de l'antémémoire de données 70 passe directement,  External memory and is not in the data cache 70, the bus controller will then issue a PFLoad bus cycle, as shown in block 104. The processing continues in a normal way until reaching the end of the instruction. . It may also happen that a PFLoad match appears, in which case the bus control logic must examine whether there is a current PFLoad cycle or whether the BIBUS bus is busy or not. This is illustrated in FIG. 6 by the test block 105. If current cycles are in progress, or if the BIBUS bus is busy, the bus control logic must wait until all the bus cycles are completed. currently being completed and that the BIBUS bus is available to transfer the data. When this happens, the data is then transferred from the data cache to the PEPS memory base, as illustrated by block 106. The transfer can take place as described with reference to FIG. line 79, via the buffer 74, to be returned by the BIBUS bus to the input "1" of the multiplexer 62. In the variant embodiment, the data from the data cache 70 passes directly,

le long de la ligne 81, à l'entrée "1" du multiplexeur 62.  along the line 81, at the input "1" of the multiplexer 62.

Ici encore, l'opération suit son cours normal jusqu'à at-  Here again, the operation follows its normal course until

teindre la fin de l'instruction.dye the end of the instruction.

Afin de mieux comprendre le fonctionnement et les avan-  To better understand the operation and benefits

tages de la présente invention, on va maintenant se référer  of the present invention, reference will now be made to

à l'exemple d'opération donné figure 3. L'exemple d'opé-  example of operation given in Figure 3. The example of

ration donné par l'équation de la figure 3 est le suivant: k.Vl + V2 -> V2 o k est une constante prédéterminée donnée, Vi est l'un de 1000 vecteurs à 1000 éléments différents mémorisés dans la mémoire externe et V2 est un vecteur mémorisé de façon interne dans l'unité d'antémémoire de données 70. Pour ce calcul particulier, le processeur doit réutiliser le vecteur V2 un millier de fois (une fois pour chacun des différents éléments de chaque vecteur Vi), tandis que les divers  given by the equation of Figure 3 is: k.Vl + V2 -> V2 ok is a given predetermined constant, Vi is one of 1000 vectors with 1000 different elements stored in the external memory and V2 is a vector stored internally in the data cache unit 70. For this particular calculation, the processor must reuse the vector V2 a thousand times (once for each of the different elements of each vector Vi), while the various

éléments de Vi ne sont utilisés qu'une seule fois. En uti-  Vi elements are only used once. In use

lisant l'instruction PFLoad de la présente invention, le processeur charge les divers éléments du vecteur V2 dans le registre à virgule flottante sans réécrire sur les données  reading the PFLoad instruction of the present invention, the processor loads the various elements of the vector V2 into the floating-point register without rewriting the data

W résidant dans ''antémémoire de données.  W residing in 'cache' data.

La figure 3 montre une première instruction PFLoad, réfé-  Figure 3 shows a first instruction PFLoad, referenced

rencée PF-LD:, déivrée à l'adresse de Vii afin de charger le premier élément du premier vecteur V: à l'emplacement de ]5 mémorisation à virgule flottante F2. L'ordre PFLD1 a besoin de deux cycles d'horloge pour commencer. Sans attendre que la donnée soit retournée.de la mémoire externe, on émet une seconde instruction PFLoad, référencée PFLD2, à l'adresse de l'élément de vecteur V12, que l'on dirige vers l'emplacement de mémorisation à virgule flottante F-. D'autres ordres PFLoad sont lancés pour les éléments vectoriels V13, V;4, V:5, etc. On peut demander un nouvel ordre PFLoad tous les deux cycles d'horloge, car le bus externe permet d'émettre  encountered PF-LD:, de-signed at the address of Vii in order to load the first element of the first vector V: at the floating-point storage location F2. The order PFLD1 needs two clock cycles to start. Without waiting for the data to be returned from the external memory, a second PFLoad instruction, referenced PFLD2, is sent to the address of the vector element V12, which is directed to the floating point storage location F. -. Other PFLoads are started for vector elements V13, V; 4, V: 5, and so on. You can request a new PFLoad command every two clock cycles, because the external bus can transmit

une nouvelle adresse tous les deux cycles d'horloge.  a new address every two clock cycles.

Lorsque le quatrième ordre PFLoad, c'est-à-dire l'ordre PFLD4, est émis, la mémoire externe commence à retourner la donnée de la première instruction PFLoad. Cette donnée retournée correspond en fait à l'instruction PFLoad située  When the fourth order PFLoad, i.e. the order PFLD4, is sent, the external memory begins to return the data of the first instruction PFLoad. This returned data corresponds to the PFLoad instruction located

trois instructions en arrière, de sorte que le registre des-  three instructions backwards, so that the

tinataire spécifié par la quatrième instruction PFLoad est le registre F2. L'arrivée de la donnée pour l'ordre PFLoad situé trois instructions en arrière est illustré par les traits interrompus et les flèches allant, en diagonale, de  The receiver specified by the fourth PFLoad instruction is the F2 register. The arrival of the data for the PFLoad order located three instructions back is illustrated by the dashed lines and the arrows going, diagonally, from

l'emplacement de mémorisation à virgule flottante à l'a-  the floating-point storage location on the

dresse de l'ordre PFLoad. Le programmeur peut continuer à spécifier des ordres PFLoad tous les deux cycles d'horloge, utilisant ainsi la pleine capacité de largeur de bande du bus externe. En pratique, on a un total de six cycles d'horloge de latence entre l'instant o le programmeur spécifie l'adresse de la donnée et l'instant o cette donnée est retournée. Il faut donc au total six cycles d'horloge au système mémoire pour délivrer la donnée, même si un nouveau cycle de bus commence tous les deux cycles d'horloge. Ceci correspond à un triplement de la vitesse à laquelle on peut  Pfload. The programmer can continue to specify PFLoad commands every two clock cycles, thus using the full bandwidth capability of the external bus. In practice, there is a total of six latency clock cycles between the time when the programmer specifies the address of the data and the instant that this data is returned. It therefore takes a total of six clock cycles to the memory system to output the data, even if a new bus cycle commences every two clock cycles. This corresponds to a tripling of the speed at which one can

traiter les cycles. Sans le concept en pipeline, le pro-  treat the cycles. Without the pipeline concept, the

grammeur serait contraint d'émettre un nouveau cycle tous les six cycles d'horloge au lieu de l'émettre tous les deux  grammor would be forced to emit a new cycle every six clock cycles instead of issuing it both

cycles d'horloge.clock cycles.

On- comprendra que, bien évidemment, la description  It will be understood that, of course, the description

ci-dessus suppose que chaque instruction PFLoad corresponde à une nonconcordance de l'antémémoire de données. S'il s'agissait d'un chargement à virgule flottante normal avec un processeur de l'art antérieur, dès lors que le programmeur aurait tenté d'exécuter une seconde instruction PFLoad, l'unité de contrôle du bus aurait répondu que l'on avait un accès en cours et aurait gelé la totalité des six cycles d'horloge en attente du retour des charges du bus en  above assumes that each PFLoad instruction matches a data cache nonconformance. If this was a normal floating point load with a prior art processor, since the programmer would have attempted to execute a second PFLoad instruction, the bus control unit would have replied that the we had an ongoing access and would have frozen all six clock cycles waiting for the return of the bus loads in

cours. Ainsi, avec un processeur de l'art antérieur, le pro-  course. Thus, with a processor of the prior art, the

grammeur ne peut émettre de nouvelle adresse que tous les six cycles d'horloge, au lieu de les émettre tous les deux  grammar can issue new address only every six clock cycles, instead of issuing them both

cycles d'horloge. Le concept en pipeline associé à l'ins-  clock cycles. The pipeline concept associated with the

truction PFLoad de la présente invention permet ainsi à  PFLoad truction of the present invention thus enables

l'utilisateur d'émettre des adresses à une cadence supé-  the user to send addresses at a higher rate than

rieure, en dépit du fait que la donnée ne réside pas dans l'antémémoire incorporée à la puce. On peut ainsi traiter et accéder efficacement à des structures de données de très  higher, despite the fact that the data does not reside in the cache embedded in the chip. Thus, it is possible to efficiently process and access data structures of

grandes dimensions.large dimensions.

La présente invention permet de mémoriser le vecteur V2 sur la même puce, tandis que l'on conserve l'élément Vi dans la mémoire externe, de sorte que l'utilisateur peut référencer les éléments de V1 au moyen d'une instruction PFLoad et référencer V2 au moyen d'une instruction normale de chargement. Dans un microprocesseur typique de l'art  The present invention makes it possible to store the vector V2 on the same chip, while the element Vi is stored in the external memory, so that the user can reference the elements of V1 by means of a PFLoad instruction and reference V2 using a normal load instruction. In a typical microprocessor of art

antérieur sans instruction PFLoad, chaque fois que l'uti-  without PFLoad instruction, whenever the use of

lisateur référence V., les éléments de données sont amenés dans l'antémémoire, faisant ainsi disparaître les éléments du vecteur V2. Ceci produit un retard supplémentaire la fois  In the reference editor V., the data elements are brought into the cache, thereby removing the elements of the vector V2. This produces an additional delay at a time

suivante o l'on doit charger l'élément de V2.  next one where one has to load the element of V2.

2O2O

Claims (22)

REVENDICATIONS 1. Un microprocesseur à architecture en pipeline, ccmprenant une antémémoirede données (22,70), une unité de traitement et une unité de contrôle de bus qui contrôle l'accès à une mémoire externe par un bus externe (40), et pourvu d'une instruction permettant d'effectuer en pipeline le chargement d'une donnée dans le microprocesseur, caractérisé en ce que cette instruction met en oeuvre: i0 - des premiers moyens de circuit (30,62,65,67), pour mémoriser une donnée en pipeline lorsqu'elleest délivrée depuis la mémoicre externe, - des moyens formant bus (29), reliés aux premiers moyens de circuit, pour transférer à un verrou de données - (78) la -5 dcnnée mémorisée dans ces premiers moyens de circuit, et - des moyens de contrôle (30),pour contrôler les premiers moyens de circuit et l'antémémoire de données de manière à pouvoir transférer en pipeline la donnée depuis la mémoire externe jusqu'au verrou de données situé à l'intérieur du  1. A pipelined microprocessor, including a data cache (22,70), a processing unit, and a bus control unit which controls access to an external memory by an external bus (40), and provided with an instruction for pipelining the loading of data in the microprocessor, characterized in that this instruction implements: i0 - first circuit means (30,62,65,67), for storing data in pipeline when it is delivered from the external memory, - bus means (29), connected to the first circuit means, for transferring to a data latch - (78) the -5 dcnnée stored in these first circuit means, and control means (30) for controlling the first circuit means and the data cache so that data can be pipelined from the external memory to the data latch within the microprocesseur.microprocessor. 2. Le microprocesseur de la revendication 1, dans lequel la donnée externe est transférée directement au verrou de  The microprocessor of claim 1, wherein the external data is transferred directly to the lock of données, sans être placée dans l'antémémoire.  data, without being cached. 3. Le microprocesseur de la revendication 2, dans lequel ladite instruction peut émettre-à la pleine largeur de bande du bus les adresses de données supplémentaires associées à la mémoire externe lorsque la donnée à laquelle on accède ne  The microprocessor of claim 2, wherein said instruction is capable of transmitting to the full bus bandwidth the additional data addresses associated with the external memory when the data to which it is accessed does not se trouve pas dans l'antémémoire de données, permettant ain-  is not in the data cache, thus allowing si d'accroître la vitesse d'accès à cette mémoire externe.  if to increase the speed of access to this external memory. 4. Le microprocesseur de la revendication 3, dans lequel l'antémémoire de données (70) est reliée aux moyens formant bus (29) par un tampon (74) tel que la donnée résidant dans l'antémémoire soit retournée aux premiers moyens de circuit  The microprocessor of claim 3, wherein the data cache (70) is connected to the bus means (29) by a buffer (74) such that the cached data is returned to the first circuit means en cas de concordance d'antémémoire, ce tampon étant éga-  in case of cache concordance, this buffer is also lement contrôlé par les moyens de contrôle.  controlled by the means of control. 26 43 16-626 43 16-6 5. Le microprocesseur de la revendication 4, dans lequel les premiers moyens de circuit comprennent: - un premier multiplexeur (62), comportant une entrée reliée au bus externe (40), une autre entrée reliée aux 5. moyens formant bus (29) et une sortie, - une mémoire du type premier entré-premier sorti (65), avec une entrée et une sortie, cette entrée étant reliée à la sortie du premier multiplexeur, et - un second multiplexeur (67), avec une entrée (PFLD)  The microprocessor of claim 4, wherein the first circuit means comprises: a first multiplexer (62) having an input connected to the external bus (40), another input connected to the bus means (29) and an output, - a first-in-first-out memory (65), with an input and an output, this input being connected to the output of the first multiplexer, and - a second multiplexer (67), with an input (PFLD ) :^ reliée à l'entrée de la mémoire du type premier entré-  : ^ connected to the memory input of the first input type cremier sorti, une autre entrée (DBS) reliée au bus externe a(4) et une sor:ie, la sortie de ce second multiplexeur étant reliée aux moyens formant bus (29) par l'intermédiaire *d'un autre tampon, le premier multiplexeur délivrant des données à la mémoire du type premier entrépremier sorti en provenance  another output (DBS) connected to the external bus a (4) and one output: ie, the output of this second multiplexer being connected to the bus means (29) via another buffer, first multiplexer delivering data to first-in-first-out type memory from soit de -la mémoire externe, dans le cas d'une non-con-  the external memory, in the case of non-compliance zordance d'antémémoire, soit de l'antémémoire de données; dans le cas d'une concordance d'antémémoire, et le second multiplexeur délivrant les données aux moyens formant bus depuis la mémoire du type premier entrépremier  cached cache, or data cache; in the case of a cache match, and the second multiplexer delivering the data to the bus means from the first-in-first-type memory sorti, ou bien directement depuis le bus externe.  out, or directly from the external bus. 6. Le microprocesseur de la revendication 5, dans lequel ''antémémoire de données (70) est reliée au verrou de données (78) par un bus de données (76), lesdits moyens  The microprocessor of claim 5, wherein the data cache (70) is connected to the data latch (78) by a data bus (76), said means formant bus (29) étant reliés à ce bus de données par l'in-  forming bus (29) being connected to this data bus by the termédiaire d'un troisième tampon (75), ce troisième tampon et l'antémémoire de données étant contrôlés par les moyens de contrôle de manière à refuser à l'antémémoire de données l'accès au bus de données lorsque les moyens formant bus  third buffer (75), this third buffer and the data cache being controlled by the control means so as to deny the data cache access to the data bus when the bus means sont en train de transférer des données au verrou de don-  are transferring data to the data lock nées, de manière à éviter des conflits de bus.  in order to avoid bus conflicts. 7. Le microprocesseur de la revendication 6, dans lequel chacun des tampons (69, 74, 75) est un tampon à trois états logiques.  The microprocessor of claim 6, wherein each of the buffers (69,74,75) is a logical three-state buffer. 8. Un microprocesseur à architecture en pipeline, ccmprenant une antémémoire de données (22,70) et une unité de traitement avec un verrou de données (78), et pourvu d'une instruction permettant d'accéder à des données provenant d'une mémoire externe par l'intermédiaire d'un bus externe (40), caractérisé en ce que cette instruction met en oeuvre: - des moyens de mémoire (65), pour accumuler des données, - des premiers moyens de circuit (60,62), pour délivrer aux moyens de mémoire des données en provenance de la mémoire8. A pipelined microprocessor, including a data cache (22,70) and a data lock processing unit (78), and provided with an instruction to access data from a external memory via an external bus (40), characterized in that this instruction implements: - memory means (65), for accumulating data, - first circuit means (60,62) , for delivering to the memory means data from the memory externe en cas de survenance d'une non-concordance d'anté-  in the event of the occurrence of an earlier mismatch mémoire, - des seconds moyens de circuit (67,69,74,75), Pour délivrer au verrou de données les données accumulées dans les moyens de mémoire, ces seconds moyens de circuit reliant également  memory, - second circuit means (67, 69, 74, 75), for outputting to the data latch the data accumulated in the memory means, these second circuit means also connecting l'antémémoire de données aux premiers moyens-de circuit de-  the cache of data to the first circuit means of maniere à retourner aux moyens de mémoire la donnée résidant dans l'antémémoire, en cas de concordance d'antémémoire, et - des moyens de contr1le de bus (30), reliés aux premiers et aux seconds moyens de circuit, aux moyens de mémoire et à l'antémémoire de données, pour contrôler le flux en pipeline de données allant de la mémoire externe au verrou de données en cas de non-concordance d'antémémoire, et pour contrôler le retour des données de l'antémémoire aux moyens mémoire en  to return to the memory means the data residing in the cache, in case of cache concordance, and - bus control means (30), connected to the first and second circuit means, to the memory means and to the data cache, for controlling the pipeline flow of data from the external memory to the data lock in case of cache mismatch, and for controlling the return of the cache data to the memory means; cas de concordance d'antémémoire.concordance case. 9. Le microprocesseur de la revendication 8, dans lequel les moyens de mémoire (65) comportent une mémoire du type  The microprocessor of claim 8, wherein the memory means (65) comprises a memory of the type premier entré-premier sorti.first in, first out. 10. Le microprocesseur de la revendication 9, dans lequel les premiers moyens de circuit comprennent un premier multiplexeur (62) et un premier tampon (60), ce premier tampon reliant le bus externe (40) à l'une des entrées du premier multiplexeur, et ce premier multiplexeur ayant son autre entrée reliée aux seconds moyens de circuit et sa sortie reliée à la mémoire du type premier entré-premier  The microprocessor of claim 9, wherein the first circuit means comprises a first multiplexer (62) and a first buffer (60), which first buffer connects the external bus (40) to one of the inputs of the first multiplexer. , and this first multiplexer having its other input connected to the second circuit means and its output connected to the first-in-first-type memory sorti (65).out (65). 11. Le microprocesseur de la revendication 10, dans Lequel le premier tampon (60) relie égaieer.et le bus externe (40) aux seconds moyens de circuit de manière à pouvoir Transférer directement les données au verrou de données depuis la mémoire externe lorsque la mémoire du type premier  11. The microprocessor of claim 10, wherein the first buffer (60) connects the external bus (40) to the second circuit means so as to be able to directly transfer the data to the data latch from the external memory when the first type memory entré-premier sorti est vide.first-out is empty. 12. Le microprocesseur de la revendication 11, dans lequel les seconds moyens de circuit comprennent un second 0 m-ultiplexeur (67) comportant une entrée reliée de manière -à recevoir en pipeline les données de la mémoire du type premier entré-premi-er sorti (65), une autre entrée reliée au premier tampon (60) et une sortie, Les seccnds moyens de circuit comprenant en outre un second tampon (69) relié à la sortie du second multiplexeur et un bus bidirectionnel (29) permettant de délivrer des données au verrou de données (78) et de retourner les donnr.ées de ce verrou de données à 'adite autre entrée du premier mutiptlexeur  The microprocessor of claim 11, wherein the second circuit means comprises a second mux-ultiplexer (67) having an input operably connected to receive data from the first-in-first-out memory. output (65), another input connected to the first buffer (60) and an output, the circuit means seccnds further comprising a second buffer (69) coupled to the output of the second multiplexer and a bidirectional bus (29) for outputting data to the data latch (78) and return the data of that data latch to adite other input of the first mutiptlexer 13. Le microprocesseur de la revendication 12, dans lequelThe microprocessor of claim 12, wherein la mémoire du type premier entré-premier sorti (65) com-  the first-in, first-out memory (65) porte: - une pluralité de registres (A, B, C),  gate: - a plurality of registers (A, B, C), - des premiers moyens sélecteurs (85, 86), pour sélec-  first selection means (85, 86) for selecting tionnner, parmi cette pluralité de registres, celui dans lequel on doit inscrire la donnée, et - des seconds moyens sélecteurs (87, 88, 95), pour déterminer, parmi cette pluralité de registres, celui dans  one of the plurality of registers, the one in which the data must be written, and the second selector means (87, 88, 95) for determining, among this plurality of registers, the one in which lequel on doit lire la donnée.which one must read the data. 14. Le microprocesseur de la revendication 13, dans lequel ladite instruction peut émettre des adresses en  The microprocessor of claim 13, wherein said instruction can issue addresses in direction de la mémoire externe en utilisant la pleine capa-  direction of the external memory using the full capacity cité de largeur de bande du bus externe.  bandwidth quoted from the external bus. 15. Un processeur à architecture en pipeline, comprenant une antémémoire de données (70), une unité de traitement et une unité de contrôle de bus (30) qui contrôle l'accès à une mémoire externe par un bus externe (40), et pourvu d'une instruction permettant d'effectuer en pipeline le chargement d'une donnée dans le microprocesseur, caractérisé en ce que cette instruction met en oeuvre: - un premier tampon (60), relié au bus externe, pour délivrer au processeur des données en provenance de la mémoire externe, - des premiers rmoyens de circuit (30;62,65,67), pour'mémoriser une donnée en pipeline lorsqu'elle est délivrée depuis la mémoire externe par ce tampon, - un-premier bus (29), relié aux premiers moyens de circuit, pour transférer à un verrou de données (78) la donnée mémorisée dans ces premiers moyens de circuit, et - des moyens de contrôle (30), pour contrôler ledit Dremier tampon, les premiers moyens de circuit et l'antémémoire de données de manière à pouvoir transférer en pipeline la donnée depuis la mémoire externe jusqu'au verrou de données  A pipeline architecture processor including a data cache (70), a processing unit, and a bus control unit (30) that controls access to an external memory by an external bus (40), and provided with an instruction for pipelining the loading of data in the microprocessor, characterized in that this instruction implements: a first buffer (60), connected to the external bus, for delivering data to the processor; from the external memory, - first circuit means (30; 62,65,67), for memorizing data in pipeline when delivered from the external memory by this buffer, - a first bus (29; ), connected to the first circuit means, for transferring to a data latch (78) the data stored in these first circuit means, and - control means (30), for controlling said buffer Dremier, the first circuit means and the man data cache to be able to pipeload the data from the external memory to the data lock situé à l'intérieur du microprocesseur.  located inside the microprocessor. 16. Le processeur de la revendication 15, comprenant en outre un second bus (81) reliant l'antémémoire de données (70) aux premiers moyens de circuit de telle sorte que la  The processor of claim 15, further comprising a second bus (81) connecting the data cache (70) to the first circuit means so that the donnée résidant dans l'antémémoire soit retournée aux pre-  cached data is returned to the first miers moyens de circuit en cas de survenance d'une concor-  circuits in the event of the occurrence of a concordance dance d'antémémoire.cache dance. 17. Le processeur de la revendication 16, dans lequel les premiers moyens de circuit comprennent: - un premier multiplexeur (62), comportant une entrée reliée audit premier tampon (60), une autre entrée reliée audit second bus (81) et une sortie, - une mémoire du type premier entrépremier sorti (65), avec une entrée reliée à la sortie du premier multiplexeur et une sortie, et - un second multiplexeur (67), avec une entrée (PFLD)  The processor of claim 16, wherein the first circuit means comprises: - a first multiplexer (62), having an input connected to said first buffer (60), another input connected to said second bus (81) and an output a first-in-first-out memory (65), with an input connected to the output of the first multiplexer and an output, and a second multiplexer (67), with an input (PFLD) reliée à la sortie de la mémoire du type premier entré-  connected to the memory output of the first input type premier sorti, -une autre entrée (DBS) reliée audit premier  first-out, -another entry (DBS) connected to said first tampon (60) et une sortie, cette sortie du second multi-  buffer (60) and an output, this output of the second multi- clexeur étant reliée audit premier bus (29) par l'inter-  clexeur being connected to said first bus (29) via -édiaire d'un troisième tampon (69), e premier multiplexeur délivrant des données à la memoire du type premier entré-premier sorti en provenance  of a third buffer (69), e first multiplexer delivering data to first-in-first-out memory from soit de la mémoire externe, dans le cas d'une non-concor-  external memory, in the case of non-concordance _ance d'antémémoire, soit de l'antémémoire de données, dans le cas d'une concordance d'antémémoire, et le second multiplexeur délivrant les données audit :C premier bus depuis la mémoire du type premier entré- premier sorti, ou bien directement depuis ledit premier tampon lorsque cette mémoire du type premier entré-premier sorti  cache memory, either data cache, in the case of cache concordance, and the second multiplexer delivering the data to said first bus C from the first-in-first-out type memory, or directly since said first buffer when this first-in-first-out memory est vide.is empty. 18. Un procédé pour accéder, dans un processeur comprenant une unité de traitement, une antémémoire de données (70) et une liaison à un système de mémoire externe, à une donnée se trouvant dans cette mémoire externe, caractérisé en ce qu'il comporte les étapes suivantes: (a) adressage de la donnée dans la mémoire externe, (b) inscription de cette donnée, depuis la mémoire -externe, dans une mémoire du type premier entré- premier sorti (65), (c) lecture de cette donnée, depuis cette mémoire du type premier entré-premier sorti, vers un bus (29), et (d) transfert de cette donnée sur ce bus vers un verrou  18. A method for accessing, in a processor comprising a processing unit, a data cache (70) and a link to an external memory system, to a data item located in this external memory, characterized in that it comprises the following steps: (a) addressing the data in the external memory, (b) writing this data, from the external memory, to a memory of the first-in-first-out type (65), (c) reading this given from this first-in-first-out memory to a bus (29), and (d) transferring this data on that bus to a lock de données (78) situé à l'intérieur de l'unité de trai-  (78) located within the processing unit. tement.  ment. 19. Le procédé de la revendication 18, dans lequel les19. The method of claim 18, wherein the étapes (a) à (d) sont exécutées en pipeline.  Steps (a) to (d) are executed in pipeline. 20. Le procédé de la revendication 19, comprenant en  20. The method of claim 19, comprising in outre l'étape consistant à retourner la donnée de l'anté-  in addition to the step of returning the data from the mémoire de données (70) à la mémoire du type premier entré-  memory (70) to the memory of the first input type premier sorti (65) en cas de survenance d'une concordance d'antémémoire.  first out (65) if a cache match occurs. 264316-6264316-6 21. Le procédé de la revendication 20, comprenant en outre l'étape de transfert direct de la donnée de la mémoire externe au verrou de données (78) lorsque la mémoire du type  The method of claim 20, further comprising the step of directly transferring data from the external memory to the data latch (78) when the memory of the type poremer entré-premier sorti (65) est vide.  first-in, first-out porridge (65) is empty. 22. Le procédé de la revendication 20, comprenant en outre l'étape consistant à attendre l'achèvement des cycles  22. The method of claim 20, further comprising the step of waiting for completion of the cycles. de bus en cours avant de retourner la donnée de l'anté-  current bus before returning the data from the previous mémoire de données (70) à la mémoire du type premier entré-  memory (70) to the memory of the first input type premier sorti (65), en cas de survenance d'une concordance d'antémémoire. :5  first-out (65), in the event of a cache match occurring. 5
FR9001451A 1989-02-10 1990-02-08 MICROPROCESSOR WITH PIPELINE ARCHITECTURE COMPRISING AN INSTRUCTION FOR ACCESSING DATA IN EXTERNAL MEMORY, AND METHOD OF ACCESSING THESE DATA Granted FR2643166A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US30942989A 1989-02-10 1989-02-10

Publications (2)

Publication Number Publication Date
FR2643166A1 true FR2643166A1 (en) 1990-08-17
FR2643166B1 FR2643166B1 (en) 1995-03-17

Family

ID=23198201

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9001451A Granted FR2643166A1 (en) 1989-02-10 1990-02-08 MICROPROCESSOR WITH PIPELINE ARCHITECTURE COMPRISING AN INSTRUCTION FOR ACCESSING DATA IN EXTERNAL MEMORY, AND METHOD OF ACCESSING THESE DATA

Country Status (6)

Country Link
JP (1) JPH02242429A (en)
AU (1) AU618425B2 (en)
CA (1) CA2009744C (en)
DE (1) DE4001165C2 (en)
FR (1) FR2643166A1 (en)
GB (1) GB2228116B (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438669A (en) * 1991-11-20 1995-08-01 Hitachi, Ltd. Data processor with improved loop handling utilizing improved register allocation
US5673407A (en) * 1994-03-08 1997-09-30 Texas Instruments Incorporated Data processor having capability to perform both floating point operations and memory access in response to a single instruction
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US6275904B1 (en) * 1998-03-31 2001-08-14 Intel Corporation Cache pollution avoidance instructions
US7484062B2 (en) 2005-12-22 2009-01-27 International Business Machines Corporation Cache injection semi-synchronous memory copy operation
US7454585B2 (en) 2005-12-22 2008-11-18 International Business Machines Corporation Efficient and flexible memory copy operation
US7506132B2 (en) 2005-12-22 2009-03-17 International Business Machines Corporation Validity of address ranges used in semi-synchronous memory copy operations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075686A (en) * 1976-12-30 1978-02-21 Honeywell Information Systems Inc. Input/output cache system including bypass capability
EP0270873A2 (en) * 1986-12-12 1988-06-15 International Business Machines Corporation Single ALU computer system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6069746A (en) * 1983-09-26 1985-04-20 Fujitsu Ltd Control system of vector data processor
US4600986A (en) * 1984-04-02 1986-07-15 Sperry Corporation Pipelined split stack with high performance interleaved decode
JPS61160142A (en) * 1984-12-29 1986-07-19 Hitachi Ltd Data processor
US4873630A (en) * 1985-07-31 1989-10-10 Unisys Corporation Scientific processor to support a host processor referencing common memory
US4722049A (en) * 1985-10-11 1988-01-26 Unisys Corporation Apparatus for out-of-order program execution
JPS62115571A (en) * 1985-11-15 1987-05-27 Fujitsu Ltd Vector access control system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075686A (en) * 1976-12-30 1978-02-21 Honeywell Information Systems Inc. Input/output cache system including bypass capability
EP0270873A2 (en) * 1986-12-12 1988-06-15 International Business Machines Corporation Single ALU computer system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Pipelined Data Storage Fetches", IBM TECHNICAL DISCLOSURE BULLETIN., vol. 28, no. 11, April 1986 (1986-04-01), NEW YORK US, pages 4827 - 4830 *
A. L. BERGEY, JR.: "Increased Computer Throughput by Conditioned Memory Data Prefetching", IBM TECHNICAL DISCLOSURE BULLETIN., vol. 20, no. 10, March 1978 (1978-03-01), NEW YORK US, pages 4103 *

Also Published As

Publication number Publication date
AU618425B2 (en) 1991-12-19
DE4001165A1 (en) 1990-08-16
AU4561889A (en) 1990-08-16
GB2228116A (en) 1990-08-15
CA2009744C (en) 2005-06-28
CA2009744A1 (en) 1990-08-10
GB2228116B (en) 1993-05-26
FR2643166B1 (en) 1995-03-17
DE4001165C2 (en) 1999-01-21
GB8925453D0 (en) 1989-12-28
JPH02242429A (en) 1990-09-26

Similar Documents

Publication Publication Date Title
EP0434483B1 (en) Processor with plural microprogrammed execution units
EP0029131B1 (en) Control method for allocating resources in a simultaneously operating multiprocessor system
US10614023B2 (en) Processor core to coprocessor interface with FIFO semantics
EP0109898B1 (en) Queued temporary data storage unit
EP3129874B1 (en) Distributing computing system implementing a non-speculative hardware transactional memory and a method for using same for distributed computing
KR100346515B1 (en) Temporary pipeline register file for a superpipe lined superscalar processor
FR2881540A1 (en) Input output cache memory usage method for computer system, involves assuring that prefetch locking indicator of cache memory line of cache memory associated to memory request is in locked condition, if memory request is not speculative
EP0032863A1 (en) Method and device to control the conflicts posed by multiple accesses to a same cache-memory of a digital data processing system comprising at least two processors each possessing a cache
EP0059018A1 (en) Multiprocessor with dynamic task assignment in multiprogramming mode and its use
FR2804770A1 (en) METHOD AND SYSTEM OF EARLY ACCESS, IN PARALLEL, TO LABELS OF LOWER LEVELS AND FIRST-LEVEL HISTORY
EP0392932B1 (en) Method and device for speeding-up memory accesses using a modified LRU algorithm
US9037669B2 (en) Remote processing and memory utilization
CN106161110A (en) Data processing method in a kind of network equipment and system
EP1860571B1 (en) DMA controller, system on a chip comprising such a DMA controller, data exchange method using such a DMA controller
EP1158405A1 (en) System and method for managing a multi-resource architecture
FR2643166A1 (en) MICROPROCESSOR WITH PIPELINE ARCHITECTURE COMPRISING AN INSTRUCTION FOR ACCESSING DATA IN EXTERNAL MEMORY, AND METHOD OF ACCESSING THESE DATA
US20130290473A1 (en) Remote processing and memory utilization
EP0435718B1 (en) Processor with plural microprogrammed units and with a mechanism for anticipated instruction execution
FR2865290A1 (en) METHOD FOR MANAGING DATA IN A MATRIX PROCESSOR AND MATRIX PROCESSOR EMPLOYING THE METHOD
US20210271536A1 (en) Algorithms for optimizing small message collectives with hardware supported triggered operations
KR20080096485A (en) System and method for processing data in a series of computers
FR2759178A1 (en) Memory management circuit for multi-user system with request and access priority
FR2625342A1 (en) Device making it possible simultaneously to process the transfer requests produced by the central processing unit, the arithmetic processing unit and the input/output processing unit of a high-power computer
EP0346420B1 (en) Process for exchanging information in a multiprocessor system
EP2208143B1 (en) Structure and method for saving and retrieving data