MIPS Holding, Inc.

États‑Unis d’Amérique

Retour au propriétaire

1-100 de 144 pour MIPS Holding, Inc. Trier par
Recheche Texte
Affiner par
Date
2025 8
2024 17
2023 2
2022 4
2021 5
Voir plus
Classe IPC
G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions 20
G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire 15
G06F 9/44 - Dispositions pour exécuter des programmes spécifiques 15
G06F 17/50 - Conception assistée par ordinateur 14
G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires 11
Voir plus
Statut
En Instance 7
Enregistré / En vigueur 137
Résultats pour  brevets
  1     2        Prochaine page

1.

FETCH BLOCK-BASED BRANCH PREDICTION

      
Numéro d'application 19233906
Statut En instance
Date de dépôt 2025-06-10
Date de la première publication 2025-12-11
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Lai, Chi-Chang
  • Huang, Chun-Ying
  • Hou, Ya-Yun
  • Chuang, Wu-Hsien

Abrégé

A computer-implemented method of predicting a branch direction of a fetch block in a processor, includes in part, determining a multitude of first counts each associated with a different one of a multitude of branch offsets of a branch direction predictor data associated with the fetch block. Each of the multitude of first counts represents the number of times that the associated branch offset was taken during a multitude of fetch cycles. The computer-implemented method further includes, in part, determining a second count associated with the fetch block. The second count represents the number of times that none of the multitude of branch offsets were taken during the multitude of fetch cycles. The computer-implemented method further includes, in part, computing a confidence level based on the multitude of first counts and the second count, and determining the branch direction of the fetch block in accordance with the computed confidence level.

Classes IPC  ?

  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire

2.

Computer-Implemented Methods of Verifying a Processor Design Under Test, and Related Systems

      
Numéro d'application 19294023
Statut En instance
Date de dépôt 2025-08-07
Date de la première publication 2025-11-27
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Davidmann, Simon
  • Dodds, Aidan
  • Moore, Lee
  • Kenney, James

Abrégé

This document concerns using of an Instruction Accurate reference model of a hardware micro-architecture as the reference to verify a central processing unit (CPU) hardware implementation, include the following. 1) A ‘mirror’ mechanism that enables the VC to maintain an exact copy of the internal architectural state of the DUT. 2) A ‘volatile’ algorithm that allows the VC/RM to adapt its internal state when that state is not architecturally defined, but micro-architecturally (e.g. implementation) defined. 3) A use of ‘speculative execution’ to explore different possible permissible paths through the execution state space of the RM especially in response to asynchronous events and hidden details of the DUT implementations. 4) A technique described as ‘convergence’ which allows the RM to adapt its internal state after a divergence in behaviour/state between the DUT and RM, allowing the verification process to continue.

Classes IPC  ?

  • G06F 30/3308 - Vérification de la conception, p. ex. simulation fonctionnelle ou vérification du modèle par simulation

3.

Memory protection unit with secure delegation

      
Numéro d'application 18615405
Numéro de brevet 12430043
Statut Délivré - en vigueur
Date de dépôt 2024-03-25
Date de la première publication 2025-09-30
Date d'octroi 2025-09-30
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Stravers, Paul

Abrégé

A memory protection unit (MPU) configuration request may be received, where the MPU configuration request may include a memory protection rule. A first entry in a first MPU circuit may be determined which matches the memory protection rule. A compliance result may be determined based on checking if the memory protection rule complies with the first entry. The memory protection rule may be written in a second MPU circuit based on the compliance result.

Classes IPC  ?

  • G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement

4.

Integer Matrix Multiplication Engine Using Pipelining

      
Numéro d'application 19006230
Statut En instance
Date de dépôt 2024-12-31
Date de la première publication 2025-05-01
Propriétaire MIPS Holding, Inc. (USA)
Inventeur(s) Simpson, David John

Abrégé

Techniques for data manipulation using integer matrix multiplication using pipelining are disclosed. A first integer matrix with dimensions m×k and a second integer matrix with dimensions k×n are obtained for matrix multiplication within a processor. The first and second integer matrices employ a two's complement variable radix point data representation. The first and second integer matrices are distilled into (j×j) submatrices. A first variable radix point format and an initial value for an accumulator register are configured dynamically. A first variable radix point format is configured dynamically for the first integer matrix and a second variable radix point format is configured dynamically for the second integer matrix. Multiply-accumulate operations are executed in a pipelined fashion on the (j×j) submatrices of the first integer matrix and the second integer matrix, where a third variable radix point format is configured for the result.

Classes IPC  ?

5.

Memory address caching for neural networks

      
Numéro d'application 18489260
Numéro de brevet 12511237
Statut Délivré - en vigueur
Date de dépôt 2023-10-18
Date de la première publication 2025-04-24
Date d'octroi 2025-12-30
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Michiels, Tom

Abrégé

A request to provide an application with direct memory access to data stored at an external memory address of an external memory is received. Responsive to determining that the external memory address is not registered in a cache, the data is copied from the external memory address to a first internal memory address within the internal memory. A first cache line, within the cache, associated with the external memory address is updated to include a reference to the first internal memory address. The data is provided from the internal memory to the application.

Classes IPC  ?

  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle
  • G06F 12/0817 - Protocoles de cohérence de mémoire cache à l’aide de méthodes de répertoire
  • G06F 12/0853 - Mémoire cache avec matrices multiples d’étiquettes ou de données

6.

Integer matrix multiplication engine using pipelining

      
Numéro d'application 18519531
Numéro de brevet 12223011
Statut Délivré - en vigueur
Date de dépôt 2023-11-27
Date de la première publication 2025-02-11
Date d'octroi 2025-02-11
Propriétaire MIPS Holding, Inc. (USA)
Inventeur(s) Simpson, David John

Abrégé

Techniques for data manipulation using integer matrix multiplication using pipelining are disclosed. A first integer matrix with dimensions m×k and a second integer matrix with dimensions k×n are obtained for matrix multiplication within a processor. The first and second integer matrices employ a two's complement variable radix point data representation. The first and second integer matrices are distilled into (j×j) submatrices. A first variable radix point format and an initial value for an accumulator register are configured dynamically. A first variable radix point format is configured dynamically for the first integer matrix and a second variable radix point format is configured dynamically for the second integer matrix. Multiply-accumulate operations are executed in a pipelined fashion on the (j×j) submatrices of the first integer matrix and the second integer matrix, where a third variable radix point format is configured for the result.

Classes IPC  ?

7.

Adaptive hardware tracing

      
Numéro d'application 18354643
Numéro de brevet 12417164
Statut Délivré - en vigueur
Date de dépôt 2023-07-19
Date de la première publication 2025-01-23
Date d'octroi 2025-09-16
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Mehta, Aarati Kalpesh

Abrégé

An adaptive hardware trace circuit is presented. The adaptive hardware trace circuit may include one or more trace circuits, a trace port funnel circuit, a trace FIFO buffer, and an adaptation logic circuit. Each trace circuit may be coupled to a processor core and configured to monitor and encode trace data generated by a processor core. The trace buffer may be configured to store the trace data generated by the processor cores. The adaptation circuit may be configured to receive, from a user, one or more buffer capacity thresholds and a priority level assigned to each trace. The adaptation circuit may map ranges of trace buffer capacities to corresponding sets of actions. The adaptation circuit may detect a buffer capacity to determine a set of one or more actions associated with the buffer capacity and execute the set of one or more actions.

Classes IPC  ?

8.

Early detection of single bit error on address and data

      
Numéro d'application 17953689
Numéro de brevet 12191885
Statut Délivré - en vigueur
Date de dépôt 2022-09-27
Date de la première publication 2025-01-07
Date d'octroi 2025-01-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Sundararajan, Karthik Thucanakkenpalayam
  • Jacob, Geogy

Abrégé

A method of detecting an error includes, in part, defining a bit pattern using a first multitude of bits, a second multitude of bits, the bits of an error correction code (ECC), and at least one user selected bit. The method further includes, in part, receiving a first value represented by the first multitude of bits and the at least one user selected bit; receiving a second value represented by the second multitude of bits; receiving a third value represented by the ECC bits. The method further includes, in part, generating a syndrome value from the first, second and third values; and using a subset of the syndrome value bits to detect the error in the first, second or third values. The third value is determined in accordance with the first and second values.

Classes IPC  ?

  • H03M 13/15 - Codes cycliques, c.-à-d. décalages cycliques de mots de code produisant d'autres mots de code, p. ex. codes définis par un générateur polynomial, codes de Bose-Chaudhuri-Hocquenghen [BCH]
  • H03M 13/00 - Codage, décodage ou conversion de code pour détecter ou corriger des erreursHypothèses de base sur la théorie du codageLimites de codageMéthodes d'évaluation de la probabilité d'erreurModèles de canauxSimulation ou test des codes
  • G11C 29/42 - Dispositifs de vérification de réponse utilisant des codes correcteurs d'erreurs [ECC] ou un contrôle de parité
  • G11C 29/52 - Protection du contenu des mémoiresDétection d'erreurs dans le contenu des mémoires
  • H03M 13/11 - Détection d'erreurs ou correction d'erreurs transmises par redondance dans la représentation des données, c.-à-d. mots de code contenant plus de chiffres que les mots source utilisant un codage par blocs, c.-à-d. un nombre prédéterminé de bits de contrôle ajouté à un nombre prédéterminé de bits d'information utilisant plusieurs bits de parité
  • H03M 13/45 - Décodage discret, c.-à-d. utilisant l'information de fiabilité des symboles

9.

SYSTEM SIMULATION USING SIMULATION MODELS EXECUTING ON VIRTUAL PROCESSORS

      
Numéro d'application 18660014
Statut En instance
Date de dépôt 2024-05-09
Date de la première publication 2024-11-14
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Davidmann, Simon John
  • Hall, Matthew
  • Correnti, Giacomo

Abrégé

Simulating a system involves running a simulation model on a virtual processor that interfaces to a simulator, the virtual processor being associated with a unique memory space in the memory space used by the simulator. The virtual processor technique gives the developer a simple technique for ensuring the model and simulator interactions are managed effectively, i.e. that no unintentional corruptions of each other's memory space are possible. It also facilitates making multiple instantiations of a C, C++ or other general purpose programming language model. The resulting environment also resolves one of the limitations on the use of third party models within the SystemC environment.

Classes IPC  ?

10.

Predicting aliasing bits in a virtually indexed physically tagged cache

      
Numéro d'application 18049580
Numéro de brevet 12124375
Statut Délivré - en vigueur
Date de dépôt 2022-10-25
Date de la première publication 2024-10-22
Date d'octroi 2024-10-22
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A second virtual address may be received, where the second virtual address is different from a first virtual address. A second hash value may be computed based on the second virtual address. A first comparison result may be determined by comparing the second hash value with a first hash value, where the first hash value is computed based on the first virtual address. The first comparison result may be used to select a selected structure from either a first structure or a second structure. The selected structure may be used to determine predicted aliasing bits which are used to determine an index corresponding to the second virtual address.

Classes IPC  ?

  • G06F 12/08 - Adressage ou affectationRéadressage dans des systèmes de mémoires hiérarchiques, p. ex. des systèmes de mémoire virtuelle
  • G06F 12/0864 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache utilisant des moyens pseudo-associatifs, p. ex. associatifs d’ensemble ou de hachage
  • G06F 12/1045 - Traduction d'adresses utilisant des moyens de traduction d’adresse associatifs ou pseudo-associatifs, p. ex. un répertoire de pages actives [TLB] associée à une mémoire cache de données

11.

MIXED-PRECISION NEURAL NETWORKS

      
Numéro d'application 18653722
Statut En instance
Date de dépôt 2024-05-02
Date de la première publication 2024-08-22
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Pennello, Thomas

Abrégé

Techniques for mixed precision quantization of a machine learning (ML) model. The techniques include receiving a target performance relating to the ML model including objects of a first data type represented by a first number of bits, wherein the target performance relates to changing a first portion of the objects to a second data type represented by a second number of bits and changing a second portion of the objects to a third data type represented by a third number of bits. The techniques further include selecting the first portion and the second portion, based on maintaining a performance relating to the ML model at or below the target performance, and changing the first portion of objects from the first data type to the second data type and the second portion of objects from the first data type to the third data type.

Classes IPC  ?

  • H04L 41/0896 - Gestion de la bande passante ou de la capacité des réseaux, c.-à-d. augmentation ou diminution automatique des capacités
  • G06F 16/22 - IndexationStructures de données à cet effetStructures de stockage
  • G06N 3/08 - Méthodes d'apprentissage
  • G06N 20/00 - Apprentissage automatique

12.

Deconvolution by convolutions

      
Numéro d'application 18604740
Numéro de brevet 12619862
Statut Délivré - en vigueur
Date de dépôt 2024-03-14
Date de la première publication 2024-07-11
Date d'octroi 2026-05-05
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Michiels, Tom
  • Pennello, Thomas Julian

Abrégé

Disclosed herein are apparatus, method, and computer-readable storage device embodiments for implementing deconvolution via a set of convolutions. For example, an apparatus includes a memory and at least one processor, communicatively coupled with the memory, to perform operations including obtaining a tensor representing image data, generating a deconvolution segment of a plurality of deconvolution segments by performing a convolution to transform the tensor based at least in part on a convolution filter and a stride value, and generating a complete deconvolution for image processing by assembling each deconvolution segment of the plurality of deconvolution segments.

Classes IPC  ?

  • G06N 3/063 - Réalisation physique, c.-à-d. mise en œuvre matérielle de réseaux neuronaux, de neurones ou de parties de neurone utilisant des moyens électroniques
  • G06N 3/04 - Architecture, p. ex. topologie d'interconnexion

13.

Processor cluster address generation

      
Numéro d'application 18438932
Numéro de brevet 12306752
Statut Délivré - en vigueur
Date de dépôt 2024-02-12
Date de la première publication 2024-06-27
Date d'octroi 2025-05-20
Propriétaire MIPS Holding, Inc. (USA)
Inventeur(s)
  • Simpson, David John
  • Johnson, Stephen Curtis
  • Trauben, Richard Douglas

Abrégé

Techniques for data manipulation using processor cluster address generation are disclosed. One or more processor clusters capable of executing software-initiated work requests are accessed. A plurality of dimensions from a tensor is flattened into a single dimension. A work request address field is parsed, where the address field contains unique address space descriptors for each of the plurality of dimensions, along with a common address space descriptor. A direct memory access (DMA) engine coupled to the one or more processor clusters is configured. Addresses are generated based on the unique address space descriptors and the common address space descriptor. The plurality of dimensions can be summed to generate a single address. Memory is accessed using two or more of the addresses that were generated. The addresses are used to enable DMA access.

Classes IPC  ?

  • G06F 12/06 - Adressage d'un bloc physique de transfert, p. ex. par adresse de base, adressage de modules, extension de l'espace d'adresse, spécialisation de mémoire
  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle

14.

Varied validity bit placement in tag bits of a memory

      
Numéro d'application 17974888
Numéro de brevet 12026094
Statut Délivré - en vigueur
Date de dépôt 2022-10-27
Date de la première publication 2024-05-02
Date d'octroi 2024-07-02
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A system and method access memory blocks in a memory by receiving a memory transaction request from a processing device. First hash bits of the memory transaction request are compared with second hash bits of a first memory block of a memory. Data associated with the first memory block is output to the processing device based on the comparison of the first hash bits with the second hash bits.

Classes IPC  ?

  • G06F 12/08 - Adressage ou affectationRéadressage dans des systèmes de mémoires hiérarchiques, p. ex. des systèmes de mémoire virtuelle
  • G06F 12/0802 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache

15.

Memory coherence protocol for communicating data associated with a shared state between processor cores

      
Numéro d'application 17974881
Numéro de brevet 12292832
Statut Délivré - en vigueur
Date de dépôt 2022-10-27
Date de la première publication 2024-05-02
Date d'octroi 2025-05-06
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A system and method service memory transaction requests by receiving a memory transaction request for a first memory line from a first processor core of processor cores of a processing system. A second processor core of the processor cores is determined to include the first memory line in a shared state. Data of the first memory line is communicated from the second processor core to the first processor core based on determining that the second processor core comprises the first memory line in a shared state.

Classes IPC  ?

  • G06F 12/0817 - Protocoles de cohérence de mémoire cache à l’aide de méthodes de répertoire
  • G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement

16.

Management circuitry for a least recently used memory management process

      
Numéro d'application 17961473
Numéro de brevet 12124379
Statut Délivré - en vigueur
Date de dépôt 2022-10-06
Date de la première publication 2024-04-11
Date d'octroi 2024-10-22
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A processing system employs a method to order the elements within a memory. Ordering the elements includes receiving an accessed memory element. The accessed memory element is requested by a processor from a memory. Further, the accessed memory element is compared to stored elements within the memory to generate control signals. Gate control signals from the control signals are generated. The order of the stored elements within the memory is updated based on the gate control signals.

Classes IPC  ?

  • G06F 12/0891 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache utilisant des moyens d’effacement, d’invalidation ou de réinitialisation

17.

Conflict detection and address arbitration for routing scatter and gather transactions for a memory bank

      
Numéro d'application 17962683
Numéro de brevet 12314572
Statut Délivré - en vigueur
Date de dépôt 2022-10-10
Date de la première publication 2024-04-11
Date d'octroi 2025-05-27
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A system and method for mitigating memory transaction conflicts by receiving a first memory transaction from a first processor slice of a processor and a second memory transaction from a second processor slice of the processor. Further, one or more control signals are generated for the first memory transaction and the second memory transaction based on a determination that the first memory transaction and the second memory transaction have a target address associated with a first memory bank of a memory. The first memory transaction is selected to output to the first memory bank based on the one or more control signals.

Classes IPC  ?

  • G11C 7/00 - Dispositions pour écrire une information ou pour lire une information dans une mémoire numérique
  • G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
  • G11C 7/10 - Dispositions d'interface d'entrée/sortie [E/S, I/O] de données, p. ex. circuits de commande E/S de données, mémoires tampon de données E/S

18.

Conversion of a clean unique request to a read unique request by a memory coherency manager circuit

      
Numéro d'application 17962232
Numéro de brevet 12045167
Statut Délivré - en vigueur
Date de dépôt 2022-10-07
Date de la première publication 2024-04-11
Date d'octroi 2024-07-23
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A system and method mitigates conflicts between clean unique requests by receiving a first clean unique request from a first processor core and a second clean unique request from a second processor core. The first clean unique request and the second clean unique request respectively indicate that the first processor core and second processor core request access to a first address of a memory. The memory is coupled to the first processor core and the second processor core. The first clean unique request and the second clean unique request are determined to be associated with the first address. Further, the second clean unique request is converted into a first read unique request based on determining that the first clean unique request and the second clean unique request are associated with the first address. The first read unique requests indicates that the second processor core requests data.

Classes IPC  ?

  • G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires
  • G06F 12/0815 - Protocoles de cohérence de mémoire cache
  • G06F 12/084 - Systèmes de mémoire cache multi-utilisateurs, multiprocesseurs ou multitraitement avec mémoire cache partagée
  • G06F 12/0842 - Systèmes de mémoire cache multi-utilisateurs, multiprocesseurs ou multitraitement pour multitraitement ou multitâche
  • G06F 12/0891 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache utilisant des moyens d’effacement, d’invalidation ou de réinitialisation

19.

Store instruction merging with pattern detection

      
Numéro d'application 17956034
Numéro de brevet 12299448
Statut Délivré - en vigueur
Date de dépôt 2022-09-29
Date de la première publication 2024-04-04
Date d'octroi 2025-05-13
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

Merging store instructions for a memory includes receiving a first store instruction having a first address, and determining a first pattern based on a comparison of the first address and a second address of an entry within a buffer. Further, a size field of the entry is updated based on the first pattern. The first address of the first store instruction is merged with the second address within the entry to generate a merged instruction. The merged store instruction is communicated to the memory.

Classes IPC  ?

  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions

20.

Buffer circuitry for store to load forwarding

      
Numéro d'application 17951528
Numéro de brevet 12147707
Statut Délivré - en vigueur
Date de dépôt 2022-09-23
Date de la première publication 2024-03-28
Date d'octroi 2024-11-19
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A system and method for performing a store to load process includes receiving a first store instruction. The first store instruction includes a first target address, a first mask, and a first data structure. Further, the first target address, the first mask, and the first data structure are stored within a first store buffer location of a store buffer. A first entry identification associated with the first store buffer location is stored within an age buffer. The first data structure is output based on an order of entry identifications within the age buffer.

Classes IPC  ?

  • G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires
  • G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
  • G06F 13/00 - Interconnexion ou transfert d'information ou d'autres signaux entre mémoires, dispositifs d'entrée/sortie ou unités de traitement

21.

Atomic correction of single bit errors within a memory

      
Numéro d'application 17896971
Numéro de brevet 11928024
Statut Délivré - en vigueur
Date de dépôt 2022-08-26
Date de la première publication 2024-02-29
Date d'octroi 2024-03-12
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A system and method corrects single bit errors in a memory by detecting a single bit error with a memory. The memory is accessed via data cache stages of a pipeline. Further, based on detecting the single bit error, the data cache stages of the pipeline are stopped from accepting new transactions. A value associated with each address of the memory is read based on stopping the new transactions from being accepted, and the detected single bit errors within the values are corrected.

Classes IPC  ?

  • G06F 11/10 - Détection ou correction d'erreur par introduction de redondance dans la représentation des données, p. ex. en utilisant des codes de contrôle en ajoutant des chiffres binaires ou des symboles particuliers aux données exprimées suivant un code, p. ex. contrôle de parité, exclusion des 9 ou des 11

22.

PROCESSOR GRAPH EXECUTION USING INTERRUPT CONSERVATION

      
Numéro d'application 18385624
Statut En instance
Date de dépôt 2023-10-31
Date de la première publication 2024-02-22
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Simpson, David John

Abrégé

Techniques for data manipulation using processor graph execution using interrupt conservation are disclosed. Processing elements are configured to implement a data flow graph. The processing elements comprise a multilayer graph execution engine. A data engine is loaded with computational parameters for the multilayer graph execution engine. The data engine is coupled to the multilayer graph execution engine, and the computational parameters supply layer-by-layer execution data to the multilayer graph execution engine for data flow graph execution. A first command FIFO is used for loading the data engine with computational parameters, and a second command FIFO is used for loading the multilayer graph execution engine with layer definition data. An input image is provided for a first layer of the multilayer graph execution engine. The data flow graph is executed using the input image and the computational parameters. The executing is controlled by interrupts only when an uncertainty exists within the data flow graph.

Classes IPC  ?

  • G06F 9/48 - Lancement de programmes Commutation de programmes, p. ex. par interruption
  • G06N 20/00 - Apprentissage automatique

23.

Energy efficient tag partitioning in cache memory

      
Numéro d'application 17955418
Numéro de brevet 11899586
Statut Délivré - en vigueur
Date de dépôt 2022-09-28
Date de la première publication 2024-02-13
Date d'octroi 2024-02-13
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Thucanakkenpalayam Sundararajan, Karthik

Abrégé

A memory address may be received at an m-way set-associative cache, which may store a set of cache entries. The memory address may be partitioned into a tag, an index, and an offset. The m-way set-associative cache may include a first structure to store a first subset of tag bits corresponding to the set of cache entries and a second structure to store a second subset of tag bits corresponding to the set of cache entries. The index may be used to select a first set of entries from the first structure. A first portion of tag bits of the memory address may be matched with the first set of entries. A cache status may be determined based on matching the first portion of tag bits of the memory address with the first set of entries.

Classes IPC  ?

  • G06F 12/0864 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache utilisant des moyens pseudo-associatifs, p. ex. associatifs d’ensemble ou de hachage
  • G06F 12/0846 - Mémoire cache avec matrices multiples d’étiquettes ou de données accessibles simultanément

24.

Artificial intelligence (AI)/machine learning (ML) tensor processor

      
Numéro d'application 18201608
Numéro de brevet 12204456
Statut Délivré - en vigueur
Date de dépôt 2023-05-24
Date de la première publication 2024-01-18
Date d'octroi 2025-01-21
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Boonstra, Johannes

Abrégé

A system for executing tensor operations including: a programmable tensor processor; and a memory coupled to the programmable tensor processor, wherein the programmable tensor processor includes: one or more load AGU circuits to generate a first sequence of addresses and read input tensor operands from the memory based on the first sequence of addresses; a datapath circuit to perform the tensor operations on the input tensor operands based on receiving one or more instructions to determine output tensor operands, the one or more instructions being based on a loop iteration count and loop body micro-code instructions defining a loop body of a tensor program stored in the memory, the loop body micro-code instructions being executed in the programmable tensor processor; and a store AGU circuit configured to generate a second sequence of addresses and write the output tensor operands to the memory based on the second sequence of addresses.

Classes IPC  ?

  • G06F 12/1009 - Traduction d'adresses avec tables de pages, p. ex. structures de table de page
  • G06F 7/544 - Méthodes ou dispositions pour effectuer des calculs en utilisant exclusivement une représentation numérique codée, p. ex. en utilisant une représentation binaire, ternaire, décimale utilisant des dispositifs n'établissant pas de contact, p. ex. tube, dispositif à l'état solideMéthodes ou dispositions pour effectuer des calculs en utilisant exclusivement une représentation numérique codée, p. ex. en utilisant une représentation binaire, ternaire, décimale utilisant des dispositifs non spécifiés pour l'évaluation de fonctions par calcul
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions

25.

Efficient look-up table based functions for artificial intelligence (AI) accelerator

      
Numéro d'application 17825868
Numéro de brevet 12619864
Statut Délivré - en vigueur
Date de dépôt 2022-05-26
Date de la première publication 2024-01-04
Date d'octroi 2026-05-05
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Boonstra, Johannes

Abrégé

A method for approximating an activation function, the method including: receiving an input value of the activation function; determining that the input value is within a range, the range includes a set of non-uniform intervals; determining a selected interval from among the set of non-uniform intervals including the input value; retrieving, by a hardware accelerator, from a look-up table (LUT) associated with a type of the activation function, values of one or more quadratic interpolation parameters associated with the selected interval; performing a quadratic interpolation on the input value to approximate the input value using the values of the one or more quadratic interpolation parameters; and determining a first approximated output of the activation function based on a result of the quadratic interpolation performed on the input value.

Classes IPC  ?

  • G06N 3/06 - Réalisation physique, c.-à-d. mise en œuvre matérielle de réseaux neuronaux, de neurones ou de parties de neurone
  • G06F 7/499 - Maniement de valeur ou d'exception, p. ex. arrondi ou dépassement
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/355 - Adressage indexé
  • G06N 3/065 - Moyens analogiques

26.

Random instruction-side stressing in post-silicon validation

      
Numéro d'application 17722430
Numéro de brevet 12353307
Statut Délivré - en vigueur
Date de dépôt 2022-04-18
Date de la première publication 2023-10-19
Date d'octroi 2025-07-08
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Mendelson, Hillel
  • Kolan, Tom

Abrégé

A computer-implemented method including: providing a test template for a hardware system-under-test comprising one or more execution threads, wherein the test template comprises a branching instruction to a predetermined shared memory address accessible by at least some of the one or more execution threads; generating and storing, at the predetermined shared memory address, a sequence of instructions which conform to the test template; building, based, at least in part, on the test template, an executable image of a hardware exerciser, wherein the hardware exerciser is adapted to control a test cycle of the hardware system-under-test, and wherein the test cycle comprises at least generation and execution of a test; and executing the executable image of the hardware exerciser by at least a first execution thread of the one or more execution threads of the hardware system-under-test.

Classes IPC  ?

27.

Multi-processor simulation on a multi-core machine

      
Numéro d'application 18105554
Numéro de brevet 12153863
Statut Délivré - en vigueur
Date de dépôt 2023-02-03
Date de la première publication 2023-06-15
Date d'octroi 2024-11-26
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Kenney, James
  • Davidmann, Simon

Abrégé

The invention relates to methods of simulation of a plurality of processors running on a plurality of cores, to multi-core microprocessor systems in which such methods may be carried out, and to computer program products configured to perform a simulation of a plurality of processors, running on a plurality of cores. According to a first aspect of the invention, there is provided a method of running a plurality of simulated processors on a plurality of cores, in which simulation of the processors is performed in parallel on the plurality of cores.

Classes IPC  ?

  • G06F 30/3308 - Vérification de la conception, p. ex. simulation fonctionnelle ou vérification du modèle par simulation
  • G06F 9/48 - Lancement de programmes Commutation de programmes, p. ex. par interruption
  • G06F 9/52 - Synchronisation de programmesExclusion mutuelle, p. ex. au moyen de sémaphores
  • G06F 30/20 - Optimisation, vérification ou simulation de l’objet conçu
  • G06F 30/33 - Vérification de la conception, p. ex. simulation fonctionnelle ou vérification du modèle

28.

Compiler-based code generation for post-silicon validation

      
Numéro d'application 17330778
Numéro de brevet 11796593
Statut Délivré - en vigueur
Date de dépôt 2021-05-26
Date de la première publication 2022-12-01
Date d'octroi 2023-10-24
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Mendelson, Hillel
  • Kolan, Tom
  • Aviv, Shay
  • Sokhin, Vitali
  • Ibraheem, Wesam Saleem

Abrégé

Embodiments relate to a system, program product, and method for integrating compiler-based testing in post-silicon validation. The method includes generating a test program through a device-under-test (DUT). The method also includes generating a plurality of memory intervals and injecting the plurality of memory intervals into the test program. The method further includes injecting a plurality of compiled test snippets into the test program and executing one or more post-silicon validation tests for the DUT with the test program.

Classes IPC  ?

  • G01R 31/28 - Test de circuits électroniques, p. ex. à l'aide d'un traceur de signaux
  • G01R 31/3183 - Génération de signaux d'entrée de test, p. ex. vecteurs, formes ou séquences de test
  • G01R 31/319 - Matériel de test, c.-à-d. circuits de traitement de signaux de sortie

29.

Integer matrix multiplication engine using pipelining

      
Numéro d'application 17878011
Numéro de brevet 11880426
Statut Délivré - en vigueur
Date de dépôt 2022-07-31
Date de la première publication 2022-11-17
Date d'octroi 2024-01-23
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Simpson, David John

Abrégé

Techniques for data manipulation using integer matrix multiplication using pipelining are disclosed. A first integer matrix with dimensions m×k and a second integer matrix with dimensions k×n are obtained for matrix multiplication within a processor. The first and second integer matrices employ a two's complement variable radix point data representation. The first and second integer matrices are distilled into (j×j) submatrices. A first variable radix point format and an initial value for an accumulator register are configured dynamically. A first variable radix point format is configured dynamically for the first integer matrix and a second variable radix point format is configured dynamically for the second integer matrix. Multiply-accumulate operations are executed in a pipelined fashion on the (j×j) submatrices of the first integer matrix and the second integer matrix, where a third variable radix point format is configured for the result.

Classes IPC  ?

30.

Processor graph execution using interrupt conservation

      
Numéro d'application 17548463
Numéro de brevet 11836518
Statut Délivré - en vigueur
Date de dépôt 2021-12-10
Date de la première publication 2022-06-23
Date d'octroi 2023-12-05
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Simpson, David John

Abrégé

Techniques for data manipulation using processor graph execution using interrupt conservation are disclosed. Processing elements are configured to implement a data flow graph. The processing elements comprise a multilayer graph execution engine. A data engine is loaded with computational parameters for the multilayer graph execution engine. The data engine is coupled to the multilayer graph execution engine, and the computational parameters supply layer-by-layer execution data to the multilayer graph execution engine for data flow graph execution. A first command FIFO is used for loading the data engine with computational parameters, and a second command FIFO is used for loading the multilayer graph execution engine with layer definition data. An input image is provided for a first layer of the multilayer graph execution engine. The data flow graph is executed using the input image and the computational parameters. The executing is controlled by interrupts only when an uncertainty exists within the data flow graph.

Classes IPC  ?

  • G06F 9/48 - Lancement de programmes Commutation de programmes, p. ex. par interruption
  • G06N 20/00 - Apprentissage automatique

31.

Recoverable exceptions generation and handling for post-silicon validation

      
Numéro d'application 17017663
Numéro de brevet 11226370
Statut Délivré - en vigueur
Date de dépôt 2020-09-10
Date de la première publication 2022-01-18
Date d'octroi 2022-01-18
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Mendelson, Hillel
  • Sokhin, Vitali
  • Kolan, Tom
  • Theiler, Hernan
  • Doron, Shai

Abrégé

Embodiments relate to a system, program product, and method for random generation of recoverable errors in the generated instruction stream for post-silicon validation testing. The intentional raising and handling of exceptions in post-silicon validation exercisers randomly creates recoverable errors in a generated instruction test stream. Multiple exceptions may be raised either in a single instruction or in multiple instructions, while the present instruction is permitted to fully execute. The errors responsible for raising the exceptions are automatically repaired.

Classes IPC  ?

  • G01R 31/28 - Test de circuits électroniques, p. ex. à l'aide d'un traceur de signaux
  • G01R 31/3177 - Tests de fonctionnement logique, p. ex. au moyen d'analyseurs logiques
  • G01R 31/3183 - Génération de signaux d'entrée de test, p. ex. vecteurs, formes ou séquences de test
  • G06F 11/36 - Prévention d'erreurs par analyse, par débogage ou par test de logiciel
  • G06F 11/22 - Détection ou localisation du matériel d'ordinateur défectueux en effectuant des tests pendant les opérations d'attente ou pendant les temps morts, p. ex. essais de mise en route
  • G06F 11/263 - Génération de signaux d'entrée de test, p. ex. vecteurs, formes ou séquences de test

32.

Mixed-precision neural networks

      
Numéro d'application 17246156
Numéro de brevet 12015526
Statut Délivré - en vigueur
Date de dépôt 2021-04-30
Date de la première publication 2021-12-02
Date d'octroi 2024-06-18
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Pennello, Thomas

Abrégé

Techniques for mixed precision quantization of a machine learning (ML) model. A target bandwidth increase is received (302), for the ML model (114) including objects of a first data type represented by a first number of bits. The target bandwidth increase relates to changing a first portion of the objects to a second data type represented by a second number of bits different from the first number of bits (310). The method further includes sorting the objects in the ML model based on bandwidth (304). The method further includes identifying the first portion of the objects to change from the first data type to the second data type, based on the target bandwidth increase and the sorting of the plurality of objects (508). The method further includes changing the first portion of the objects from the first data type to the second data type (508).

Classes IPC  ?

  • H04L 41/0896 - Gestion de la bande passante ou de la capacité des réseaux, c.-à-d. augmentation ou diminution automatique des capacités
  • G06F 16/22 - IndexationStructures de données à cet effetStructures de stockage
  • G06N 3/08 - Méthodes d'apprentissage
  • G06N 20/00 - Apprentissage automatique

33.

Automatically introducing register dependencies to tests

      
Numéro d'application 16871930
Numéro de brevet 11194705
Statut Délivré - en vigueur
Date de dépôt 2020-05-11
Date de la première publication 2021-11-11
Date d'octroi 2021-12-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Mendelson, Hillel
  • Kolan, Tom
  • Sokhin, Vitali

Abrégé

Method, apparatus and product for automatically introducing register dependency into tests. A test template represents an abstract test scenario to be utilized for testing a target processor. The abstract test scenario requires that a value be assigned to a register. A test that implements the abstract test scenario is generated. The test is a set of instructions that are executable by the target processor. The generation of the test comprises: determining a memory address to retain the value in a memory that is accessible to the target processor; and adding to the test an instruction to load to the register the value from the memory address, whereby adding a register dependency to the test that is not required by the abstract test scenario. The test can be executed on the target processor or simulation thereof.

Classes IPC  ?

  • G06F 11/263 - Génération de signaux d'entrée de test, p. ex. vecteurs, formes ou séquences de test
  • G06F 11/36 - Prévention d'erreurs par analyse, par débogage ou par test de logiciel
  • G06F 9/302 - Commande de l'exécution d'opérations arithmétiques
  • G06F 12/0808 - Systèmes de mémoire cache multi-utilisateurs, multiprocesseurs ou multitraitement avec moyen d'invalidation de mémoires cache
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/54 - Communication interprogramme
  • G06F 12/0882 - Mode de page
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 11/22 - Détection ou localisation du matériel d'ordinateur défectueux en effectuant des tests pendant les opérations d'attente ou pendant les temps morts, p. ex. essais de mise en route

34.

Testing address translation cache

      
Numéro d'application 16787080
Numéro de brevet 11263150
Statut Délivré - en vigueur
Date de dépôt 2020-02-11
Date de la première publication 2021-08-12
Date d'octroi 2022-03-01
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Mendelson, Hillel
  • Kolan, Tom
  • Sokhin, Vitali

Abrégé

A method, apparatus and product for utilizing address translation structures for testing address translation cache. The method comprises: obtaining a first address translation structure that comprises multiple levels, including a first top level which connects a sub-structure of the first address translation structure using pointers thereto; determining, based on the first address translation structure, a second address translation structure, wherein the second address translation structure comprises a second top level that is determined based on the first top level, wherein the second top level connects the sub-structure of the first address translation structure; executing a test so as to verify operation of an address translation cache of a target processor at least by: adding a plurality of cache lines to the address translation cache, wherein said adding is based on the address translation structures; and verifying the operation of the address translation cache using one or more memory access operations.

Classes IPC  ?

  • G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires
  • G06F 12/1045 - Traduction d'adresses utilisant des moyens de traduction d’adresse associatifs ou pseudo-associatifs, p. ex. un répertoire de pages actives [TLB] associée à une mémoire cache de données
  • G06N 5/00 - Agencements informatiques utilisant des modèles fondés sur la connaissance

35.

Utilizing translation tables for testing processors

      
Numéro d'application 16787145
Numéro de brevet 11200126
Statut Délivré - en vigueur
Date de dépôt 2020-02-11
Date de la première publication 2021-08-12
Date d'octroi 2021-12-14
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Kolan, Tom
  • Mendelson, Hillel
  • Sokhin, Vitali
  • Aviv, Shay

Abrégé

A method, apparatus and a product for utilizing translation tables for testing processors. The method is used for testing a target processor that utilizes different translation tables to translate virtual addresses to physical addresses. The method comprises obtaining a test template that comprises directives to be executed in different contexts, during each of which a different translation table is utilized to translate virtual addresses to physical addresses. The translation tables to be used by the target processor in the different contexts are determined, so that the translation tables overlap, at least in part.

Classes IPC  ?

  • G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires
  • G06F 11/26 - Tests fonctionnels
  • G06F 12/1045 - Traduction d'adresses utilisant des moyens de traduction d’adresse associatifs ou pseudo-associatifs, p. ex. un répertoire de pages actives [TLB] associée à une mémoire cache de données
  • G06F 11/263 - Génération de signaux d'entrée de test, p. ex. vecteurs, formes ou séquences de test

36.

Processor cluster address generation

      
Numéro d'application 17035869
Numéro de brevet 11934308
Statut Délivré - en vigueur
Date de dépôt 2020-09-29
Date de la première publication 2021-01-14
Date d'octroi 2024-03-19
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Simpson, David John
  • Johnson, Stephen Curtis
  • Trauben, Richard Douglas

Abrégé

Techniques for data manipulation using processor cluster address generation are disclosed. One or more processor clusters capable of executing software-initiated work requests are accessed. A plurality of dimensions from a tensor is flattened into a single dimension. A work request address field is parsed, where the address field contains unique address space descriptors for each of the plurality of dimensions, along with a common address space descriptor. A direct memory access (DMA) engine coupled to the one or more processor clusters is configured. Addresses are generated based on the unique address space descriptors and the common address space descriptor. The plurality of dimensions can be summed to generate a single address. Memory is accessed using two or more of the addresses that were generated. The addresses are used to enable DMA access.

Classes IPC  ?

  • G06F 12/06 - Adressage d'un bloc physique de transfert, p. ex. par adresse de base, adressage de modules, extension de l'espace d'adresse, spécialisation de mémoire
  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle

37.

Integer matrix multiplication engine using pipelining

      
Numéro d'application 16943252
Numéro de brevet 11481472
Statut Délivré - en vigueur
Date de dépôt 2020-07-30
Date de la première publication 2020-12-10
Date d'octroi 2022-10-25
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Simpson, David John

Abrégé

Techniques for data manipulation using integer matrix multiplication using pipelining are disclosed. A first integer matrix with dimensions m×k and a second integer matrix with dimensions k×n are obtained for matrix multiplication within a processor. The first and second integer matrices employ a two's complement variable radix point data representation. The first and second integer matrices are distilled into (j×j) submatrices. A first variable radix point format and an initial value for an accumulator register are configured dynamically. A first variable radix point format is configured dynamically for the first integer matrix and a second variable radix point format is configured dynamically for the second integer matrix. Multiply-accumulate operations are executed in a pipelined fashion on the (j×j) submatrices of the first integer matrix and the second integer matrix, where a third variable radix point format is configured for the result.

Classes IPC  ?

38.

Multidimensional address generation for direct memory access

      
Numéro d'application 16991080
Numéro de brevet 10997102
Statut Délivré - en vigueur
Date de dépôt 2020-08-12
Date de la première publication 2020-11-26
Date d'octroi 2021-05-04
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Simpson, David John
  • Trauben, Richard Douglas
  • Johnson, Stephen Curtis

Abrégé

Techniques for data manipulation using processor cluster address generation are disclosed. One or more processor clusters capable of executing software-initiated work requests are accessed. A direct memory access (DMA) engine, coupled to the one or more processor clusters, is configured, wherein the DMA engine employs address generation across a plurality of tensor dimensions. A work request address field is parsed, where the address field contains unique address space descriptors for each of the plurality of dimensions, along with a common address space descriptor. DMA addresses are generated based on the unique address space descriptors and the common address space descriptor. Memory using two or more of the DMA addresses that were generated is accessed, where the two or more DMA addresses enable processing within the one or more processor clusters.

Classes IPC  ?

  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle

39.

Matrix multiplication engine using pipelining

      
Numéro d'application 16835812
Numéro de brevet 11227030
Statut Délivré - en vigueur
Date de dépôt 2020-03-31
Date de la première publication 2020-10-01
Date d'octroi 2022-01-18
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Simpson, David John

Abrégé

Techniques for data manipulation using a matrix multiplication engine using pipelining are disclosed. A first and a second matrix are obtained for matrix multiplication. A first matrix multiply-accumulate (MAC) unit is configured, where a first matrix element and a second matrix element are presented to the MAC unit on a first cycle. A second MAC unit is configured in pipelined fashion, where the first element of the first matrix and a second element of the second matrix are presented to the second MAC unit on a second cycle, and where a second element of the first matrix and the first element of the second matrix are presented to the first MAC unit on the second cycle. Additional MAC units are further configured within the processor in pipelined fashion. Multiply-accumulate operations are executed in pipelined fashion on each of n MAC units over additional k sets of m cycles.

Classes IPC  ?

40.

Deconvolution by convolutions

      
Numéro d'application 16592241
Numéro de brevet 12014262
Statut Délivré - en vigueur
Date de dépôt 2019-10-03
Date de la première publication 2020-04-09
Date d'octroi 2024-06-18
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Michiels, Tom
  • Pennello, Thomas Julian

Abrégé

Disclosed herein are apparatus, method, and computer-readable storage device embodiments for implementing deconvolution via a set of convolutions. An embodiment includes a convolution processor that includes hardware implementing logic to perform at least one algorithm comprising a convolution algorithm. The at least one convolution processor may be further configured to perform operations including performing a first convolution and outputting a first deconvolution segment as a result of the performing the first convolution. The at least one convolution processor may be further configured to perform a second convolution and output a second deconvolution segment as a result of the performing the second convolution. According to some embodiments, the at least one convolution processor may be further configured to perform at least one further convolution to generate at least one further deconvolution segment, until a number of deconvolution segments output by the convolution processor reaches a deconvolution-size-value.

Classes IPC  ?

  • G06N 3/063 - Réalisation physique, c.-à-d. mise en œuvre matérielle de réseaux neuronaux, de neurones ou de parties de neurone utilisant des moyens électroniques
  • G06N 3/04 - Architecture, p. ex. topologie d'interconnexion

41.

Data uploading to asynchronous circuitry using circular buffer control

      
Numéro d'application 15225768
Numéro de brevet 10505704
Statut Délivré - en vigueur
Date de dépôt 2016-08-01
Date de la première publication 2019-12-10
Date d'octroi 2019-12-10
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Disclosed embodiments provide an interface circuit for the transfer of data from a synchronous circuit to an asynchronous circuit. Data from the synchronous circuit is received into a memory in the interface circuit. The data in the memory is then sent to the asynchronous circuit based on an instruction in a circular buffer that is part of the interface circuit. Processing elements within the interface circuit execute instructions contained within the circular buffer. The circular buffer rotates to provide new instructions to the processing elements. Flow control paces the data from the synchronous circuit to the asynchronous circuit.

Classes IPC  ?

  • H04L 7/02 - Commande de vitesse ou de phase au moyen des signaux de code reçus, les signaux ne contenant aucune information de synchronisation particulière
  • H04L 5/24 - Dispositions destinées à permettre l'usage multiple de la voie de transmission utilisant le multiplex à division de temps avec des convertisseurs synchrones marche-arrêt
  • H04L 12/801 - Commande de flux ou commande de congestion
  • H04L 12/933 - Cœur de commutateur, p.ex. barres croisées, mémoire partagée ou support partagé
  • H04L 12/863 - Ordonnancement de file d’attente, p.ex. ordonnancement circulaire

42.

Neural network output layer for machine learning

      
Numéro d'application 16459731
Numéro de brevet 11106976
Statut Délivré - en vigueur
Date de dépôt 2019-07-02
Date de la première publication 2019-10-24
Date d'octroi 2021-08-31
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Flamant, Sylvain

Abrégé

Techniques for a neural network output layer for machine learning are disclosed. A plurality of processing elements within a reconfigurable fabric is configured to implement a data flow graph, where the data flow graph implements a neural network. The data flow graph can include machine learning or deep learning. A layer is implemented, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one, where the second vector sums to a value of one using fixed-point calculations. The layer can include a final layer within the neural network. The layer that maps the first vector includes a Softmax function. Results of the neural network are classified based on a value of the second vector. The classifying can include part of a machine learning or a deep learning process.

Classes IPC  ?

  • G06N 3/08 - Méthodes d'apprentissage
  • G06F 17/16 - Calcul de matrice ou de vecteur
  • G06F 16/901 - IndexationStructures de données à cet effetStructures de stockage

43.

Data flow graph computation using exceptions

      
Numéro d'application 16502110
Numéro de brevet 10949328
Statut Délivré - en vigueur
Date de dépôt 2019-07-03
Date de la première publication 2019-10-24
Date d'octroi 2021-03-16
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Evans, Keith Mark
  • Johnson, Stephen Curtis

Abrégé

Techniques are disclosed for data manipulation within a reconfigurable computing environment for data flow graph computation using exceptions. Processing elements are configured within a reconfigurable fabric to implement a data flow graph. The processing elements are loaded with process agents. Valid data is executed by a first process agent on a first processing element, where the first process agent corresponds to a starting node of the data flow graph. A second processing element detects that an error exception has occurred, where a second process agent is running on the second processing element. A done signal to a third process agent is withheld by the second process agent, where the third process agent is running on a third processing element. The second process agent raises an interrupt request, where the interrupt request is based on the detecting that an error exception has occurred.

Classes IPC  ?

  • G06F 15/82 - Architectures de calculateurs universels à programmes enregistrés commandés par des données ou à la demande
  • G06F 11/36 - Prévention d'erreurs par analyse, par débogage ou par test de logiciel
  • G06F 11/07 - Réaction à l'apparition d'un défaut, p. ex. tolérance de certains défauts
  • G06F 8/41 - Compilation
  • G06F 15/78 - Architectures de calculateurs universels à programmes enregistrés comprenant une seule unité centrale

44.

DATA FLOW GRAPH NODE PARALLEL UPDATE FOR MACHINE LEARNING

      
Numéro d'application 16423050
Statut En instance
Date de dépôt 2019-05-27
Date de la première publication 2019-09-12
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Techniques are disclosed for data flow graph node parallel update for machine learning. A first plurality of processing elements is configured to implement a portion of a data flow graph. The nodes include at least one variable node and implement part of a neural network. A second plurality of processing elements is configured to implement a second portion of the data flow graph. These nodes include at least one additional variable node and implement an additional part of the neural network. Training data is issued to the first plurality of processing elements. The training data is used to update variables within the at least one variable node. Additional variables are updated within the at least one additional variable node. The updating includes forwarding training data from the first plurality to the second plurality. The neural network is trained based on the variables that were updated and the additional variables.

Classes IPC  ?

  • G06K 9/62 - Méthodes ou dispositions pour la reconnaissance utilisant des moyens électroniques
  • G06N 3/08 - Méthodes d'apprentissage
  • G06N 3/04 - Architecture, p. ex. topologie d'interconnexion
  • G06F 16/901 - IndexationStructures de données à cet effetStructures de stockage

45.

Data transfer circuitry given multiple source elements

      
Numéro d'application 15226472
Numéro de brevet 10374981
Statut Délivré - en vigueur
Date de dépôt 2016-08-02
Date de la première publication 2019-08-06
Date d'octroi 2019-08-06
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

An interface circuit is disclosed for the transfer of data from a synchronous circuit, with multiple source elements, to an asynchronous circuit. Data from the synchronous circuit is received into a memory in the interface circuit. The data in the memory is then sent to the asynchronous circuit based on an instruction in a circular buffer that is part of the interface circuit. Processing elements within the interface circuit execute instructions contained within the circular buffer. The circular buffer rotates to provide new instructions to the processing elements. Flow control paces the data from the synchronous circuit to the asynchronous circuit.

Classes IPC  ?

  • H04L 12/28 - Réseaux de données à commutation caractérisés par la configuration des liaisons, p. ex. réseaux locaux [LAN Local Area Networks] ou réseaux étendus [WAN Wide Area Networks]
  • H04L 12/861 - Mise en mémoire tampon de paquets ou mise en file d’attente; Ordonnancement de file d’attente
  • H04L 12/863 - Ordonnancement de file d’attente, p.ex. ordonnancement circulaire
  • H04L 12/801 - Commande de flux ou commande de congestion
  • H04L 12/859 - Actions liées à la commande de flux basée sur la nature de l’application, p.ex. contrôle de navigation sur l’Internet ou contrôle du trafic de courrier électronique

46.

Attribute driven memory allocation

      
Numéro d'application 16370168
Numéro de brevet 10891163
Statut Délivré - en vigueur
Date de dépôt 2019-03-29
Date de la première publication 2019-07-25
Date d'octroi 2021-01-12
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Doron, Shai
  • Ibraheem, Wesam Saleem
  • Theiler, Hernan
  • Sokhin, Vitali
  • Hadad, Hagai

Abrégé

A method, computer program product, and computer system for physical memory allocation of a computer system, the method including collecting computer system architecture specifications, a configuration, and user requirements, identifying a plurality of memory intervals to be allocated, based on the computer system architecture specification, the configuration, and the user requirements, grouping memory intervals into a plurality of color groups, wherein each memory interval within each of the plurality of color groups comprise identical memory attributes, dividing memory into sets of memory segments, wherein each set of memory segment is assigned a color of the plurality of color groups, allocating a memory interval of the plurality of memory intervals within the set of memory segments of corresponding color, and selecting a page size for a translation of a memory interval of the plurality of memory intervals, depending upon the allocation of the memory interval and the sets of memory segments.

Classes IPC  ?

  • G06F 9/50 - Allocation de ressources, p. ex. de l'unité centrale de traitement [UCT]
  • G06F 16/22 - IndexationStructures de données à cet effetStructures de stockage
  • G06F 12/1009 - Traduction d'adresses avec tables de pages, p. ex. structures de table de page
  • G06F 12/02 - Adressage ou affectationRéadressage

47.

Power control for a dataflow processor

      
Numéro d'application 16272039
Numéro de brevet 10656911
Statut Délivré - en vigueur
Date de dépôt 2019-02-11
Date de la première publication 2019-06-06
Date d'octroi 2020-05-19
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Techniques are disclosed for power conservation. A plurality of processing elements and a plurality of instructions are configured. The plurality of processing elements is controlled by instructions contained in a plurality of circular buffers. The plurality of processing elements can comprise a data flow processor. A first processing element, from the plurality of interconnected processing elements, is set into a sleep state by a first instruction from the plurality of instructions. The first processing element is woken from the sleep state as a result of valid data being presented to the first processing element. A subsection of the plurality of interconnected processing elements is also set into a sleep state based on the first processing element being set into a sleep state. At least one circular buffer from the plurality of circular buffers remains awake while the first processing element is in the sleep state, and the at least one circular buffer provides for data steering through a reconfigurable fabric.

Classes IPC  ?

  • H03K 19/177 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des circuits logiques élémentaires comme composants disposés sous forme matricielle
  • H01L 25/00 - Ensembles consistant en une pluralité de dispositifs à semi-conducteurs ou d'autres dispositifs à l'état solide
  • G06F 5/08 - Procédés ou dispositions pour la conversion de données, sans modification de l'ordre ou du contenu des données maniées pour modifier la vitesse de débit des données, c.-à-d. régularisation de la vitesse ayant une séquence d'emplacements d'emmagasinage, les emplacements intermédiaires n'étant pas accessibles pour des opérations soit de mise en file d'attente, soit de retrait de file d'attente, p. ex. utilisant un registre à décalage
  • G06F 1/3287 - Économie d’énergie caractérisée par l'action entreprise par la mise hors tension d’une unité fonctionnelle individuelle dans un ordinateur
  • G06F 9/4401 - Amorçage
  • G06F 1/3296 - Économie d’énergie caractérisée par l'action entreprise par diminution de la tension d’alimentation ou de la tension de fonctionnement
  • H03K 19/0175 - Dispositions pour le couplageDispositions pour l'interface
  • H03K 19/1776 - Détails structurels des ressources de configuration pour les mémoires
  • H03K 19/17764 - Détails structurels des ressources de configuration pour la fiabilité

48.

Logical elements with switchable connections in a reconfigurable fabric

      
Numéro d'application 16176922
Numéro de brevet 10374605
Statut Délivré - en vigueur
Date de dépôt 2018-10-31
Date de la première publication 2019-03-07
Date d'octroi 2019-08-06
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Techniques are disclosed for designing a reconfigurable fabric. The reconfigurable fabric is designed using logical elements, configurable connections between and among the logical elements, and rotating circular buffers. The circular buffers contain configuration instructions. The configuration instructions control connections between and among logical elements. The logical elements change operation based on the instructions that rotate through the circular buffers. Clusters of logical elements are interconnected by a switching fabric. Each cluster contains processing elements, storage elements, and switching elements. A circular buffer within a cluster contains multiple switching instructions to control the flow of data throughout the switching fabric. The circular buffer provides a pipelined execution of switching instructions for the implementation of multiple functions. Each cluster contains multiple processing elements, and each cluster further comprises an additional circular buffer for each processing element. Logical operations are controlled by the circular buffers.

Classes IPC  ?

  • H03K 19/0175 - Dispositions pour le couplageDispositions pour l'interface
  • H03K 19/177 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des circuits logiques élémentaires comme composants disposés sous forme matricielle

49.

Branchless instruction paging in reconfigurable fabric

      
Numéro d'application 16126107
Numéro de brevet 10437728
Statut Délivré - en vigueur
Date de dépôt 2018-09-10
Date de la première publication 2019-01-03
Date d'octroi 2019-10-08
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Circular buffers containing instructions that enable the execution of operations on logical elements are described where data in the circular buffers is swapped to storage. The instructions comprise a branchless instruction set. Data stored in circular buffers is paged in and out to a second level memory. State information for each logical element is also saved and restored using paging memory. Instructions are provided to logical elements, such as processing elements, via circular buffers. The instructions enable a group of processing elements to perform operations implementing a desired functionality. That functionality is changed by updating the circular buffers with new instructions that are transferred from paging memory. The previous instructions can be saved off in paging memory before the new instructions are copied over to the circular buffers. This enables the hardware to be rapidly reconfigured amongst multiple functions.

Classes IPC  ?

  • G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires
  • G06F 12/0875 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache avec mémoire cache dédiée, p. ex. instruction ou pile
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 15/78 - Architectures de calculateurs universels à programmes enregistrés comprenant une seule unité centrale
  • G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
  • G06F 12/08 - Adressage ou affectationRéadressage dans des systèmes de mémoires hiérarchiques, p. ex. des systèmes de mémoire virtuelle
  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle
  • G06N 3/04 - Architecture, p. ex. topologie d'interconnexion
  • G06N 3/063 - Réalisation physique, c.-à-d. mise en œuvre matérielle de réseaux neuronaux, de neurones ou de parties de neurone utilisant des moyens électroniques
  • G06F 9/50 - Allocation de ressources, p. ex. de l'unité centrale de traitement [UCT]

50.

Attribute driven memory allocation

      
Numéro d'application 15619681
Numéro de brevet 10282232
Statut Délivré - en vigueur
Date de dépôt 2017-06-12
Date de la première publication 2018-12-13
Date d'octroi 2019-05-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Doron, Shai
  • Ibraheem, Wesam Saleem
  • Theiler, Hernan
  • Sokhin, Vitali
  • Hadad, Hagai

Abrégé

A method, computer program product, and computer system for physical memory allocation of a computer system, the method including collecting computer system architecture specifications, a configuration, and user requirements, identifying a plurality of memory intervals to be allocated, based on the computer system architecture specification, the configuration, and the user requirements, grouping memory intervals into a plurality of color groups, wherein each memory interval within each of the plurality of color groups comprise identical memory attributes, dividing memory into sets of memory segments, wherein each set of memory segment is assigned a color of the plurality of color groups, allocating a memory interval of the plurality of memory intervals within the set of memory segments of corresponding color, and selecting a page size for a translation of a memory interval of the plurality of memory intervals, depending upon the allocation of the memory interval and the sets of memory segments.

Classes IPC  ?

  • G06F 9/50 - Allocation de ressources, p. ex. de l'unité centrale de traitement [UCT]
  • G06F 17/30 - Recherche documentaire; Structures de bases de données à cet effet
  • G06F 12/02 - Adressage ou affectationRéadressage

51.

Joining data within a reconfigurable fabric

      
Numéro d'application 16021840
Numéro de brevet 10659396
Statut Délivré - en vigueur
Date de dépôt 2018-06-28
Date de la première publication 2018-11-08
Date d'octroi 2020-05-19
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Techniques are disclosed for managing data within a reconfigurable computing environment. In a multiple processing element environment, such as a mesh network or other suitable topology, there is an inherent need to pass data between processing elements. Subtasks are divided among multiple processing elements. The output resulting from the subtasks is then merged by a downstream processing element. In such cases, a join operation can be used to combine data from multiple upstream processing elements. A control agent executes on each processing element. A memory buffer is disposed between upstream processing elements and the downstream processing element. The downstream processing element is configured to automatically perform an operation based on the availability of valid data from the upstream processing elements.

Classes IPC  ?

  • H04L 12/861 - Mise en mémoire tampon de paquets ou mise en file d’attente; Ordonnancement de file d’attente
  • H04L 12/863 - Ordonnancement de file d’attente, p.ex. ordonnancement circulaire
  • H04L 12/801 - Commande de flux ou commande de congestion
  • H04L 12/859 - Actions liées à la commande de flux basée sur la nature de l’application, p.ex. contrôle de navigation sur l’Internet ou contrôle du trafic de courrier électronique
  • H04L 12/879 - Opérations simples sur la mémoire-tampon, p.ex. pointeurs de mémoire-tampon ou descripteurs de mémoire-tampon
  • H04L 12/939 - Dispositions pour la commutation redondante, p.ex. utilisant des plans de commutation parallèles
  • H04L 12/933 - Cœur de commutateur, p.ex. barres croisées, mémoire partagée ou support partagé

52.

Reconfigurable processor fabric implementation using satisfiability analysis

      
Numéro d'application 15953896
Numéro de brevet 10452452
Statut Délivré - en vigueur
Date de dépôt 2018-04-16
Date de la première publication 2018-10-18
Date d'octroi 2019-10-22
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Hetzel, Asmus
  • Chaudhuri, Samit

Abrégé

Disclosed techniques utilize a satisfiability solver for allocation and/or configuration of resources in a reconfigurable fabric of processing elements. A dataflow graph is an input provided to a toolchain that includes a satisfiability solver. The satisfiability solver operates on subsets of interconnected nodes within a dataflow graph to derive a solution. The solution is trimmed by removing artifacts and unnecessary parts. The solutions of subsets are then used as an input to additional subsets of nodes within the dataflow graph in an iterative process to derive a complete solution. The satisfiability solver technique uses adaptive windowing in both the time dimension and the spatial dimensions of the dataflow graph. Processing elements and routing elements within the reconfigurable fabric are configured based on the complete solution. Data computation is performed based on the dataflow graph using the processing elements and the routing resources.

Classes IPC  ?

  • G06F 9/50 - Allocation de ressources, p. ex. de l'unité centrale de traitement [UCT]
  • G06F 15/78 - Architectures de calculateurs universels à programmes enregistrés comprenant une seule unité centrale

53.

Selectively combinable directional shifters

      
Numéro d'application 15941826
Numéro de brevet 10289382
Statut Délivré - en vigueur
Date de dépôt 2018-03-30
Date de la première publication 2018-08-09
Date d'octroi 2019-05-14
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Chaudhuri, Samit

Abrégé

An apparatus for mathematical manipulation is described allowing the selective combination of shifters to shift binary numbers of various widths. Selective combination allows on-the-fly adjustment of shifters from independent to coordinated shifting operations. Selective combination allows adjustable hardware-based shifting while saving space and resources. Multiple eight-bit shifters can be configured for a variety of operand widths, such as a 32-bit width, a 24-bit width, a 16-bit width, or an eight-bit width. Multiplexers route the appropriate input data to the appropriate shifters. Bidirectional shifting is configured through a selector tree, including both shift left and shift right operations. Opcodes configure the shifters for the desired type of shift and a shifted result is generated.

Classes IPC  ?

  • G06F 5/01 - Procédés ou dispositions pour la conversion de données, sans modification de l'ordre ou du contenu des données maniées pour le décalage, p. ex. la justification, le changement d'échelle, la normalisation

54.

Reconfigurable fabric direct memory access with multiple read or write elements

      
Numéro d'application 15712494
Numéro de brevet 10719470
Statut Délivré - en vigueur
Date de dépôt 2017-09-22
Date de la première publication 2018-03-29
Date d'octroi 2020-07-21
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Techniques are disclosed for data manipulation. Data is obtained from a first switching element where the first switching element is controlled by a first circular buffer. Data is sent to a second switching element where the second switching element is controlled by a second circular buffer. Data is controlled by a third switching element that is controlled by a third circular buffer. The third switching element hierarchically controls the first switching element and the second switching element. Data is routed through a fourth switching element that is controlled by a fourth circular buffer. The circular buffers are statically scheduled. The obtaining data from a first switching element and the sending the data to a second switching element includes a direct memory access (DMA). The switching elements can operate as a master controller or as a slave device. The switching elements can comprise clusters within an asynchronous reconfigurable fabric.

Classes IPC  ?

  • G06F 13/40 - Structure du bus
  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle
  • G06F 13/16 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus de mémoire
  • G06F 13/42 - Protocole de transfert pour bus, p. ex. liaisonSynchronisation

55.

Communication between dataflow processing units and memories

      
Numéro d'application 15665631
Numéro de brevet 10564929
Statut Délivré - en vigueur
Date de dépôt 2017-08-01
Date de la première publication 2018-03-01
Date d'octroi 2020-02-18
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Nicol, Christopher John
  • Meyer, Derek William

Abrégé

A combination of memory units and dataflow processing units is disclosed for computation. A first memory unit is interposed between a first dataflow processing unit and a second dataflow processing unit. Operations for a dataflow graph are allocated across the first dataflow processing unit and the second dataflow processing unit. The first memory unit passes data between the first dataflow processing unit and the second dataflow processing unit to execute the dataflow graph. The first memory unit is a high bandwidth, shared memory device including a hybrid memory cube. The first dataflow processing unit and second dataflow processing unit include a plurality of circular buffers containing instructions for controlling data transfer between the first dataflow processing unit and second dataflow processing unit. Additional dataflow processing units and additional memory units are included for additional functionality and efficiency.

Classes IPC  ?

  • G06F 5/10 - Procédés ou dispositions pour la conversion de données, sans modification de l'ordre ou du contenu des données maniées pour modifier la vitesse de débit des données, c.-à-d. régularisation de la vitesse ayant une séquence d'emplacements d'emmagasinage, chacun étant individuellement accessible à la fois pour des opérations de mise en file d'attente et pour des opérations de retrait de file d'attente, p. ex. utilisant une mémoire à accès aléatoire
  • G06F 13/16 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus de mémoire
  • G06F 15/82 - Architectures de calculateurs universels à programmes enregistrés commandés par des données ou à la demande
  • G11C 19/00 - Mémoires numériques dans lesquelles l'information est déplacée par échelons, p. ex. registres à décalage
  • G06N 20/00 - Apprentissage automatique
  • G06F 13/40 - Structure du bus

56.

Triple-pass execution using a retire queue having a functional unit to independently execute long latency instructions and dependent instructions

      
Numéro d'application 15240993
Numéro de brevet 10613859
Statut Délivré - en vigueur
Date de dépôt 2016-08-18
Date de la première publication 2018-02-22
Date d'octroi 2020-04-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Tran, Thang

Abrégé

An execution pipeline architecture of a microprocessor employs a third-pass functional unit, for example, third-level of arithmetic logic unit (ALU) or third short-latency execution unit to execute instructions with reduced complexity and area cost of out-of-order execution. The third-pass functional unit allows instructions with long latency execution to be moved into a retire queue. The retire queue further includes the third functional unit (e.g., ALU), a reservation station and a graduate buffer. Data dependencies of dependent instructions in the retire queue is handled independently from the main pipeline.

Classes IPC  ?

  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire

57.

Reorder buffer scoreboard having multiple valid bits to indicate a location of data

      
Numéro d'application 15240994
Numéro de brevet 10552158
Statut Délivré - en vigueur
Date de dépôt 2016-08-18
Date de la première publication 2018-02-22
Date d'octroi 2020-02-04
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Tran, Thang

Abrégé

Various embodiments of a microprocessor include a scoreboard implementation that directs the microprocessor to the location of data values. For example, the scoreboard may include individual bits that instruct the microprocessor to retrieve the data from a re-order buffer, retire queue, result bus, or register file. As a first step, the microprocessor receives an instruction indicating a process that requires data from one or more source registers. Instead of automatically retrieving the data from the register file, which is a costly process, the microprocessor may read the scoreboard to determine whether the needed data can be more cost-effectively retrieved from the re-order buffer, retire queue, or result busses. Therefore, the microprocessor can avoid costly data retrieval procedures. Additionally, the scoreboard implementation enables the microprocessor to handle limited out-of-order instructions, which improves overall performance of the microprocessor.

Classes IPC  ?

  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire

58.

Timing analysis and optimization of asynchronous circuit designs

      
Numéro d'application 15628307
Numéro de brevet 10318691
Statut Délivré - en vigueur
Date de dépôt 2017-06-20
Date de la première publication 2017-12-28
Date d'octroi 2019-06-11
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Sarrazin, Philippe Francis
  • Carpenter, Roger David

Abrégé

Methods and systems for timing analysis and optimization of asynchronous circuit designs are disclosed. Registration stages are placed between combinational logic circuits. For timing purposes, the registration stages are modified to have a duplicate set of pins. New paths are formed in the circuit for the purposes of timing analysis. The paths are analyzable by timing tools. Once the timing analysis is complete, the paths are reverted to original paths, and new devices are selected for the circuit design based on results of the timing analysis. An updated design is sent for manufacture, based on the timing analysis and optimization of the asynchronous circuit.

Classes IPC  ?

  • G06F 17/50 - Conception assistée par ordinateur

59.

Power control within a dataflow processor

      
Numéro d'application 15667338
Numéro de brevet 10203935
Statut Délivré - en vigueur
Date de dépôt 2017-08-02
Date de la première publication 2017-12-14
Date d'octroi 2019-02-12
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Techniques are disclosed for power conservation. A plurality of processing elements and a plurality of instructions are configured. The plurality of processing elements is controlled by instructions contained in a plurality of circular buffers. The plurality of processing elements can comprise a dataflow processor. A first processing element, from the plurality of interconnected processing elements, is set into a sleep state by a first instruction from the plurality of instructions. The first processing element is woken from the sleep state as a result of valid data being presented to the first processing element. A subsection of the plurality of interconnected processing elements is also set into a sleep state based on the first processing element being set into a sleep state. At least one circular buffer from the plurality of circular buffers remains awake while the first processing element is in the sleep state, and the at least one circular buffer provides for data steering through a reconfigurable fabric.

Classes IPC  ?

  • H03K 19/177 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des circuits logiques élémentaires comme composants disposés sous forme matricielle
  • H01L 25/00 - Ensembles consistant en une pluralité de dispositifs à semi-conducteurs ou d'autres dispositifs à l'état solide
  • G06F 7/38 - Méthodes ou dispositions pour effectuer des calculs en utilisant exclusivement une représentation numérique codée, p. ex. en utilisant une représentation binaire, ternaire, décimale
  • G06F 5/08 - Procédés ou dispositions pour la conversion de données, sans modification de l'ordre ou du contenu des données maniées pour modifier la vitesse de débit des données, c.-à-d. régularisation de la vitesse ayant une séquence d'emplacements d'emmagasinage, les emplacements intermédiaires n'étant pas accessibles pour des opérations soit de mise en file d'attente, soit de retrait de file d'attente, p. ex. utilisant un registre à décalage
  • G06F 9/4401 - Amorçage
  • H03K 19/0175 - Dispositions pour le couplageDispositions pour l'interface

60.

Thread switching in microprocessor without full save and restore of register file

      
Numéro d'application 15172864
Numéro de brevet 10318302
Statut Délivré - en vigueur
Date de dépôt 2016-06-03
Date de la première publication 2017-12-07
Date d'octroi 2019-06-11
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Tran, Thang

Abrégé

Certain embodiments of the present disclosure support a method and apparatus for efficient multithreading on a single core microprocessor. Thread switching in the single core microprocessor presented herein is based on a reserved space in a memory allocated to each thread for storing and restoring of registers in a register file. The thread switching is achieved without full save and restore of the register file, and only those registers referenced in the memory are saved and restored during thread switching.

Classes IPC  ?

  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire

61.

Communication between threads of multi-thread processor

      
Numéro d'application 15172885
Numéro de brevet 10558463
Statut Délivré - en vigueur
Date de dépôt 2016-06-03
Date de la première publication 2017-12-07
Date d'octroi 2020-02-11
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Tran, Thang

Abrégé

Embodiments of the present disclosure support hardware based thread switching in a multithreading environment. The thread switching is implemented on a multithread microprocessor by utilizing thread mailbox registers and other auxiliary registers that can be pre-programmed for hardware based thread switching. A set of mailbox registers can be allocated to each thread of a plurality of threads that can be executed in the microprocessor. A mailbox register in the set of mailbox registers comprises an identifier of a next thread of the plurality of threads to which an active thread switches based on a thread switch condition further indicated in the mailbox register. The auxiliary registers in the microprocessor can be used to configure a number of threads for simultaneous execution in the microprocessor, a priority for thread switching, and to store a program counter of each thread and states of registers of each thread.

Classes IPC  ?

  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/46 - Dispositions pour la multiprogrammation
  • G06F 9/54 - Communication interprogramme

62.

Modulization of cache structure utilizing independent tag array and data array in microprocessor

      
Numéro d'application 15172906
Numéro de brevet 10628320
Statut Délivré - en vigueur
Date de dépôt 2016-06-03
Date de la première publication 2017-12-07
Date d'octroi 2020-04-21
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Tran, Thang

Abrégé

Embodiments of the present disclosure support implementation of a Level-1 (L1) cache in a microprocessor based on independently accessed data and tag arrays. Presented implementations of L1 cache do not require any stall pipeline mechanism for stalling execution of instructions, leading to improved microprocessor performance. A data array in the cache is interfaced with one or more data index queues that comprise, upon occurrence of a conflict between at least one instruction requesting access to the data array and at least one other instruction that accessed the data array, at least one data index for accessing the data array associated with the at least one instruction. A tag array in the cache is interfaced with a tag queue that stores one or more tag entries associated with one or more data outputs read from the data array based on accessing the data array.

Classes IPC  ?

  • G06F 12/0875 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache avec mémoire cache dédiée, p. ex. instruction ou pile
  • G06F 12/084 - Systèmes de mémoire cache multi-utilisateurs, multiprocesseurs ou multitraitement avec mémoire cache partagée
  • G06F 12/0895 - Mémoires cache caractérisées par leur organisation ou leur structure de parties de mémoires cache, p. ex. répertoire ou matrice d’étiquettes

63.

Protection scheme for embedded code

      
Numéro d'application 15626864
Numéro de brevet 10678710
Statut Délivré - en vigueur
Date de dépôt 2017-06-19
Date de la première publication 2017-11-16
Date d'octroi 2020-06-09
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Bhooma, Pranab
  • Basto, Carlos
  • Kalra, Kulbhushan

Abrégé

A code protection scheme for controlling access to a memory region in an integrated circuit includes a processor with an instruction pipeline that includes multiple processing stages. A first processing stage receives one or more instructions. A second processing stage receives address information identifying a protected memory region of the memory from the first processing stage and protection information for an identified protected memory region. The protection information indicates a protection state assigned to each protected memory region. Based on the instruction type of the received instruction and the protection information associated with a particular protected memory region, the second processing stage determines whether to enable or disable access to the particular protected memory region by the processor or other external host.

Classes IPC  ?

  • G06F 12/14 - Protection contre l'utilisation non autorisée de mémoire
  • G06F 21/52 - Contrôle des utilisateurs, des programmes ou des dispositifs de préservation de l’intégrité des plates-formes, p. ex. des processeurs, des micrologiciels ou des systèmes d’exploitation au stade de l’exécution du programme, p. ex. intégrité de la pile, débordement de tampon ou prévention d'effacement involontaire de données
  • G06F 21/71 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du calcul ou du traitement de l’information
  • G06F 21/78 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du stockage de données
  • G06F 21/79 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du stockage de données dans les supports de stockage à semi-conducteurs, p. ex. les mémoires adressables directement
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 21/62 - Protection de l’accès à des données via une plate-forme, p. ex. par clés ou règles de contrôle de l’accès

64.

Hum generation using representative circuitry

      
Numéro d'application 15475411
Numéro de brevet 09960771
Statut Délivré - en vigueur
Date de dépôt 2017-03-31
Date de la première publication 2017-10-05
Date d'octroi 2018-05-01
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Singh, Gajendra Prasad
  • Desai, Shaishav

Abrégé

Disclosed embodiments select a proper hum frequency reference by utilizing one or more functional logic circuits within a cluster. The slowest logic circuit is determined, and an instance of that logic circuit is used in timing circuitry for the cluster. Multiple logic circuits with similar characteristics are incorporated into the timing circuit. Each cluster is interconnected to a second level timing circuit. Each cluster inputs timing information into the second level timing circuit. The second level timing circuit then determines when the next cycle, or tic, of the self-generated clock starts, and the process repeats, providing a self-generated clock signal.

Classes IPC  ?

  • H03K 19/096 - Circuits synchrones, c.-à-d. circuits utilisant des signaux d'horloge
  • H03K 19/20 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion caractérisés par la fonction logique, p. ex. circuits ET, OU, NI, NON
  • H03K 5/135 - Dispositions ayant une sortie unique et transformant les signaux d'entrée en impulsions délivrées à des intervalles de temps désirés par l'utilisation de signaux de référence de temps, p. ex. des signaux d'horloge

65.

Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks

      
Numéro d'application 15392958
Numéro de brevet 10846591
Statut Délivré - en vigueur
Date de dépôt 2016-12-28
Date de la première publication 2017-08-17
Date d'octroi 2020-11-24
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Lavigueur, Bruno
  • Benny, Olivier
  • Langevin, Michel
  • Gagné, Vincent

Abrégé

A programmable architecture specialized for convolutional neural networks (CNNs) processing such that different applications of CNNs may be supported by the presently disclosed method and apparatus by reprogramming the processing elements therein. The architecture may include an optimized architecture that provides a low-area or footprint and low-power solution desired for embedded applications while still providing the computational capabilities required for CNN applications that may be computationally intensive, requiring a huge number of convolution operations per second to process inputs such as video streams in real time.

Classes IPC  ?

  • G06N 3/063 - Réalisation physique, c.-à-d. mise en œuvre matérielle de réseaux neuronaux, de neurones ou de parties de neurone utilisant des moyens électroniques
  • G06N 3/04 - Architecture, p. ex. topologie d'interconnexion

66.

Techniques for creating and using a hierarchical data structure

      
Numéro d'application 11607243
Numéro de brevet 09697211
Statut Délivré - en vigueur
Date de dépôt 2006-12-01
Date de la première publication 2017-07-04
Date d'octroi 2017-07-04
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Vermeersch, Dirk
  • Jain, Ashish

Abrégé

Techniques for creating and using a hierarchical data structure, in accordance with embodiments of the present invention include storing received data as records in a first level of the hierarchical data structure. One or more parameters for each block of records in the first level are summarized and stored in a second level of the hierarchical data structure. The techniques may also include querying a given level of a hierarchical data structure. One or more blocks of records one level below the given level are accessed. Each of the accessed blocks correspond to records that are summarized by records in the given level that satisfies the query.

Classes IPC  ?

  • G06F 17/30 - Recherche documentaire; Structures de bases de données à cet effet
  • G06F 7/00 - Procédés ou dispositions pour le traitement de données en agissant sur l'ordre ou le contenu des données maniées

67.

Logical elements with switchable connections for multifunction operation

      
Numéro d'application 15443612
Numéro de brevet 10218357
Statut Délivré - en vigueur
Date de dépôt 2017-02-27
Date de la première publication 2017-06-22
Date d'octroi 2019-02-26
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Clusters of logical elements are interconnected by a switching fabric. Each cluster contains processing elements, storage elements, and switching elements. A circular buffer within a cluster contains multiple switching instructions to control the flow of data throughout the switching fabric. The circular buffer provides a pipelined execution of switching instructions for the implementation of multiple functions. Each cluster contains multiple processing elements, and each cluster further comprises an additional circular buffer for each processing element. Logical operations are controlled by the circular buffers.

Classes IPC  ?

  • H03K 19/0175 - Dispositions pour le couplageDispositions pour l'interface
  • H03K 19/177 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des circuits logiques élémentaires comme composants disposés sous forme matricielle

68.

Reconfigurable interconnected programmable processors

      
Numéro d'application 15449852
Numéro de brevet 10592444
Statut Délivré - en vigueur
Date de dépôt 2017-03-03
Date de la première publication 2017-06-22
Date d'octroi 2020-03-17
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Nicol, Christopher John
  • Chaudhuri, Samit
  • Danilak, Radoslav

Abrégé

A plurality of software programmable processors is disclosed. The software programmable processors are controlled by rotating circular buffers. A first processor and a second processor within the plurality of software programmable processors are individually programmable. The first processor within the plurality of software programmable processors is coupled to neighbor processors within the plurality of software programmable processors. The first processor sends and receives data from the neighbor processors. The first processor and the second processor are configured to operate on a common instruction cycle. An output of the first processor from a first instruction cycle is an input to the second processor on a subsequent instruction cycle.

Classes IPC  ?

  • G06F 9/302 - Commande de l'exécution d'opérations arithmétiques
  • G06F 15/17 - Communication entre processeurs utilisant une connexion de type entrée/sortie, p. ex. canal, point d'accès entrée/sortie
  • G06F 15/76 - Architectures de calculateurs universels à programmes enregistrés
  • G06F 13/42 - Protocole de transfert pour bus, p. ex. liaisonSynchronisation
  • G06F 1/32 - Moyens destinés à économiser de l'énergie
  • G06F 13/16 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus de mémoire
  • G06F 13/40 - Structure du bus
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/4401 - Amorçage
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 15/173 - Communication entre processeurs utilisant un réseau d'interconnexion, p. ex. matriciel, de réarrangement, pyramidal, en étoile ou ramifié
  • G06F 15/82 - Architectures de calculateurs universels à programmes enregistrés commandés par des données ou à la demande
  • G06F 1/324 - Économie d’énergie caractérisée par l'action entreprise par réduction de la fréquence d’horloge

69.

Circuit modification

      
Numéro d'application 14936690
Numéro de brevet 09633155
Statut Délivré - en vigueur
Date de dépôt 2015-11-10
Date de la première publication 2017-04-25
Date d'octroi 2017-04-25
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Ibraheem, Wesam
  • Kolan, Tom
  • Koyfman, Anatoly
  • Morad, Ronny
  • Sokhin, Vitali
  • Tsanko, Elena

Abrégé

Techniques for modifying a circuit are described herein. In some examples, a method includes generating a set of testing data and detecting a predetermined modification to a translation path corresponding to a memory address mapping, the predetermined modification to change a physical memory address of the testing data associated with a virtual memory address to a second physical memory address of the testing data. The method can also include generating a test template comprising a first instruction to implement the predetermined modification and a second instruction comprising the second physical memory address in the translation path and transmitting the test template to the circuit for each of a plurality of software instruction threads. Furthermore, the method can include detecting a defect in the execution of the test template by the circuit and modifying the circuit to prevent the defect during execution of the test template.

Classes IPC  ?

  • G06F 17/50 - Conception assistée par ordinateur
  • G06F 9/44 - Dispositions pour exécuter des programmes spécifiques
  • G06F 13/10 - Commande par programme pour dispositifs périphériques
  • G06F 11/00 - Détection d'erreursCorrection d'erreursContrôle de fonctionnement
  • G01R 31/28 - Test de circuits électroniques, p. ex. à l'aide d'un traceur de signaux
  • G01R 27/28 - Mesure de l'atténuation, du gain, du déphasage ou des caractéristiques qui en dérivent dans des réseaux électriques quadripoles, c.-à-d. des réseaux à double entréeMesure d'une réponse transitoire
  • G06F 12/1027 - Traduction d'adresses utilisant des moyens de traduction d’adresse associatifs ou pseudo-associatifs, p. ex. un répertoire de pages actives [TLB]
  • G06F 17/30 - Recherche documentaire; Structures de bases de données à cet effet
  • G01R 31/14 - Circuits à cet effet
  • G06F 9/455 - ÉmulationInterprétationSimulation de logiciel, p. ex. virtualisation ou émulation des moteurs d’exécution d’applications ou de systèmes d’exploitation

70.

Adaptive content dependent intra prediction mode coding

      
Numéro d'application 15214732
Numéro de brevet 10045022
Statut Délivré - en vigueur
Date de dépôt 2016-07-20
Date de la première publication 2017-03-02
Date d'octroi 2018-08-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Korman, Mikhail
  • Prosekov, Oleg V.

Abrégé

A system and a method are disclosed for encoding and decoding a video frame using spatial prediction. The video frame is separated into a plurality of image blocks, and a plurality of spatial predictors is created for an image block using methods well-known in the art. The set of predictors is reduced to a set containing fewer spatial predictors before continuing the coding process for the block. The reduction of spatial predictors involves comparing a plurality of spatial predictors in a predetermined sequence and grouping or processing a subset of the spatial predictors to a set of representative spatial predictors.

Classes IPC  ?

  • H04N 19/11 - Sélection du mode de codage ou du mode de prédiction parmi plusieurs modes de codage prédictif spatial
  • H04N 19/176 - Procédés ou dispositions pour le codage, le décodage, la compression ou la décompression de signaux vidéo numériques utilisant le codage adaptatif caractérisés par l’unité de codage, c.-à-d. la partie structurelle ou sémantique du signal vidéo étant l’objet ou le sujet du codage adaptatif l’unité étant une zone de l'image, p. ex. un objet la zone étant un bloc, p. ex. un macrobloc
  • H04N 19/159 - Type de prédiction, p. ex. prédiction intra-trame, inter-trame ou de trame bidirectionnelle
  • H04N 19/593 - Procédés ou dispositions pour le codage, le décodage, la compression ou la décompression de signaux vidéo numériques utilisant le codage prédictif mettant en œuvre des techniques de prédiction spatiale
  • H04N 19/147 - Débit ou quantité de données codées à la sortie du codeur selon des critères de débit-distorsion

71.

Protection scheme for embedded code

      
Numéro d'application 15339859
Numéro de brevet 09715463
Statut Délivré - en vigueur
Date de dépôt 2016-10-31
Date de la première publication 2017-02-16
Date d'octroi 2017-07-25
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Bhooma, Pranab
  • Basto, Carlos
  • Kalra, Kulbhushan

Abrégé

A code protection scheme for controlling access to a memory region in an integrated circuit includes a processor with an instruction pipeline that includes multiple processing stages. A first processing stage receives one or more instructions. A second processing stage receives address information identifying a protected memory region of the memory from the first processing stage and protection information for an identified protected memory region. The protection information indicates a protection state assigned to each protected memory region. Based on the instruction type of the received instruction and the protection information associated with a particular protected memory region, the second processing stage determines whether to enable or disable access to the particular protected memory region by the processor or other external host.

Classes IPC  ?

  • G06F 12/14 - Protection contre l'utilisation non autorisée de mémoire
  • G06F 21/52 - Contrôle des utilisateurs, des programmes ou des dispositifs de préservation de l’intégrité des plates-formes, p. ex. des processeurs, des micrologiciels ou des systèmes d’exploitation au stade de l’exécution du programme, p. ex. intégrité de la pile, débordement de tampon ou prévention d'effacement involontaire de données
  • G06F 21/71 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du calcul ou du traitement de l’information
  • G06F 21/78 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du stockage de données
  • G06F 21/79 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du stockage de données dans les supports de stockage à semi-conducteurs, p. ex. les mémoires adressables directement
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 21/62 - Protection de l’accès à des données via une plate-forme, p. ex. par clés ou règles de contrôle de l’accès

72.

System and method of debugging multi-threaded processes

      
Numéro d'application 15251925
Numéro de brevet 10180896
Statut Délivré - en vigueur
Date de dépôt 2016-08-30
Date de la première publication 2017-01-05
Date d'octroi 2019-01-15
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Spycher, Matthias
  • Petras, Dietmar

Abrégé

A system and method of debugging a multi-threaded process with at least one running thread and at least one suspended thread is disclosed. Embodiments utilize a blocking function to block the thread of a process while other threads are allowed to run. The blocking function may be executed in a suspended thread by a debugger under control of a thread blocking controller. The other threads may implement interprocess communication channels for enabling communication between the process and another application. A simulated user interface (UI) of a debugger enables interaction with users while a hardware simulation thread is blocked, where blocking of the hardware simulation thread may be implemented by a thread blocking component implemented externally to the debugger. Where a thread blocking controller is implemented within the debugger, a debugger UI may interact with a user while the hardware simulation thread is blocked and interprocess communication threads are running.

Classes IPC  ?

  • G06F 9/44 - Dispositions pour exécuter des programmes spécifiques
  • G06F 11/36 - Prévention d'erreurs par analyse, par débogage ou par test de logiciel

73.

Multi-processor simulation on a multi-core machine

      
Numéro d'application 15030216
Numéro de brevet 11574087
Statut Délivré - en vigueur
Date de dépôt 2014-10-16
Date de la première publication 2016-09-22
Date d'octroi 2023-02-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Kenney, James
  • Davidmann, Simon

Abrégé

The invention relates to methods of simulation of a plurality of processors running on a plurality of cores, to multi-core microprocessor systems in which such methods may be carried out, and to computer program products configured to perform a simulation of a plurality of processors, running on a plurality of cores. According to a first aspect of the invention, there is provided a method of running a plurality of simulated processors on a plurality of cores, in which simulation of the processors is performed in parallel on the plurality of cores.

Classes IPC  ?

  • G06F 30/20 - Optimisation, vérification ou simulation de l’objet conçu
  • G06F 9/52 - Synchronisation de programmesExclusion mutuelle, p. ex. au moyen de sémaphores
  • G06F 9/48 - Lancement de programmes Commutation de programmes, p. ex. par interruption
  • G06F 30/33 - Vérification de la conception, p. ex. simulation fonctionnelle ou vérification du modèle

74.

Instruction paging in reconfigurable fabric

      
Numéro d'application 15048983
Numéro de brevet 10073773
Statut Délivré - en vigueur
Date de dépôt 2016-02-19
Date de la première publication 2016-08-25
Date d'octroi 2018-09-11
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Circular buffers containing instructions that enable the execution of operations on logical elements are described where data in the circular buffers is swapped to storage. Data stored in circular buffers is paged in and out to a second level memory. State information for each logical element is also saved and restored using paging memory. Logical elements such as processing elements are provided instructions via circular buffers. The instructions enable a group of processing elements to perform operations implementing a desired functionality. That functionality is changed by updating the circular buffers with new instructions that are transferred from paging memory. The previous instructions can be saved off in paging memory before the new instructions are copied over to the circular buffers. This enables the hardware to be rapidly reconfigured amongst multiple functions.

Classes IPC  ?

  • G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires
  • G06F 12/0802 - Adressage d’un niveau de mémoire dans lequel l’accès aux données ou aux blocs de données désirés nécessite des moyens d’adressage associatif, p. ex. mémoires cache
  • G06F 12/0868 - Transfert de données entre une mémoire cache et d'autres sous-systèmes, p. ex. des dispositifs de stockage ou des systèmes hôtes

75.

Visual quality measure for real-time video processing

      
Numéro d'application 15093741
Numéro de brevet 10009611
Statut Délivré - en vigueur
Date de dépôt 2016-04-08
Date de la première publication 2016-08-04
Date d'octroi 2018-06-26
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Tanchenko, Alexander

Abrégé

A measure of visual quality of processed images relative to unprocessed images is generated in real-time. The measure of visual quality closely correlates with a human's actual perception of the processed image relative to the original image. The measure of visual quality is computed based on a measure of discrepancy (e.g., mean square errors) between the processed and unprocessed images and the variance of each image in the pixel domain or the transform domain may be determined. If the processed image is unavailable, a prediction of the processed image may be used in place of the processed image. The prediction of a processed image may involve predicting the variance values for processed image blocks. The visual quality measure may be used in a feedback loop to improve processing or encoding.

Classes IPC  ?

  • H04N 7/12 - Systèmes dans lesquels le signal de télévision est transmis par un canal ou une pluralité de canaux parallèles, la bande passante de chaque canal étant inférieure à la largeur de bande du signal de télévision
  • H04N 19/154 - Qualité visuelle après décodage mesurée ou estimée de façon subjective, p. ex. mesure de la distorsion
  • H04N 19/176 - Procédés ou dispositions pour le codage, le décodage, la compression ou la décompression de signaux vidéo numériques utilisant le codage adaptatif caractérisés par l’unité de codage, c.-à-d. la partie structurelle ou sémantique du signal vidéo étant l’objet ou le sujet du codage adaptatif l’unité étant une zone de l'image, p. ex. un objet la zone étant un bloc, p. ex. un macrobloc
  • H04N 19/147 - Débit ou quantité de données codées à la sortie du codeur selon des critères de débit-distorsion
  • H04N 19/103 - Sélection du mode de codage ou du mode de prédiction
  • H04N 19/60 - Procédés ou dispositions pour le codage, le décodage, la compression ou la décompression de signaux vidéo numériques utilisant un codage par transformée

76.

Compact logic evaluation gates using null convention

      
Numéro d'application 14941554
Numéro de brevet 09692419
Statut Délivré - en vigueur
Date de dépôt 2015-11-14
Date de la première publication 2016-05-19
Date d'octroi 2017-06-27
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Melton, Benjamin Wiley
  • Johnson, Stephen Curtis

Abrégé

Compact logic evaluation gates are built using null convention logic (NCL) circuits. The inputs to a null convention circuit include a NCL true input and a NCL complement input. The NCL circuit includes a gate coupled to the pair of inputs, where the gate comprises a plurality of transistors. The transistors allow for logical signal capture, provide a pair of cross-coupled inverters for data storage, and include a first and second pull-down device. The first pull-down device causes a first side of the pair of cross-coupled inverters to go to a “0” state when a “1” is applied to the NCL true input, and the second pull-down device causes a second side of the pair of cross-coupled inverters to go to a “0” state when a “1” is applied to the NCL complement input.

Classes IPC  ?

  • H03K 19/00 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion
  • H03K 19/094 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des dispositifs à semi-conducteurs utilisant des transistors à effet de champ

77.

Computing resource allocation based on flow graph translation

      
Numéro d'application 14928314
Numéro de brevet 10042966
Statut Délivré - en vigueur
Date de dépôt 2015-10-30
Date de la première publication 2016-05-05
Date d'octroi 2018-08-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Chaudhuri, Samit
  • Esbensen, Henrik
  • Shiring, Kenneth
  • Suaris, Peter Ramyalal

Abrégé

Systems and methods are disclosed for computing resource allocation based on flow graph translation. First, a high-level description of logic circuitry is obtained and translated to generate a flow graph representing sequential operations. Using the flow graph, similar processing elements in an array are interchangeably allocated to perform computational, communication, and storage tasks as needed. The sequential operations are executed using the array of interchangeable processing elements. Data is provided from the storage elements through the communication elements to the computational elements. Computational results are stored in the storage elements. Outputs from some of the computational elements provide inputs to other computational elements. Execution of the instructions can be controlled with time stepping. The processors are reallocated as needed, based on changes to the flow graph.

Classes IPC  ?

  • G06F 17/50 - Conception assistée par ordinateur

78.

System and method for stopping integrated circuit simulation

      
Numéro d'application 11637374
Numéro de brevet 09317636
Statut Délivré - en vigueur
Date de dépôt 2006-12-11
Date de la première publication 2016-04-19
Date d'octroi 2016-04-19
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Petras, Dietmar
  • Vanspauwen, Niels

Abrégé

A system for simulating hardware is disclosed wherein stopping the simulating for investigating a state of the simulating is constrained to occur at points of simulation synchronization. A delta cycle may be inserted into a simulation to provide a point of simulation synchronization. The delta cycle may be inserted at the beginning of a simulation loop.

Classes IPC  ?

79.

Compiler retargeting based on instruction semantic models

      
Numéro d'application 11140353
Numéro de brevet 09280326
Statut Délivré - en vigueur
Date de dépôt 2005-05-26
Date de la première publication 2016-03-08
Date d'octroi 2016-03-08
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Braun, Gunnar
  • Hoffmann, Andreas
  • Greive, Volker
  • Leupers, Rainer
  • Ceng, Jianjiang

Abrégé

Generating a description of compiler code selector rules from an architecture description. A method comprises accessing a target architecture model written in an architecture description language (ADL) and extracting semantic information therefrom to generate a plurality of semantic statements. Rules that map from source code operations to semantic patterns are accessed. The semantic statements are searched for matches for the semantic patterns to generate mappings that serve as a description of compiler code selector rules.

Classes IPC  ?

  • G06F 9/45 - Compilation ou interprétation de langages de programmation évolués
  • G06F 9/44 - Dispositions pour exécuter des programmes spécifiques

80.

Multi-threshold flash NCL logic circuitry with flash reset

      
Numéro d'application 14703483
Numéro de brevet 09385715
Statut Délivré - en vigueur
Date de dépôt 2015-05-04
Date de la première publication 2015-08-20
Date d'octroi 2016-07-05
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Singh, Gajendra Prasad

Abrégé

Multi-threshold flash Null Convention Logic (NCL) includes one or more high threshold voltage transistors within a flash NCL gate to reduce power consumption due to current leakage by transistors of the NCL gate. High-threshold voltage transistors may be added and/or may be used in place of one or more lower voltage threshold transistors of the NCL gate. A high-Vt device is included in the pull-up path to reduce power when the flash NCL logic gate is in the null state.

Classes IPC  ?

  • H03K 19/00 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion
  • H03K 19/094 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des dispositifs à semi-conducteurs utilisant des transistors à effet de champ
  • H03K 19/23 - Circuits de majorité ou de minorité, c.-à-d. donnant un signal de sortie dont l'état est celui de la majorité ou de la minorité des signaux d'entrée
  • H03K 23/40 - Signaux d'ouverture de porte ou d'horloge appliqués à tous les étages, c.-à-d. compteurs synchrones
  • H03K 23/58 - Signaux d'ouverture de porte ou d'horloge non appliqués à tous les étages, c.-à-d. compteurs asynchrones
  • H03K 19/096 - Circuits synchrones, c.-à-d. circuits utilisant des signaux d'horloge

81.

Protection scheme for embedded code

      
Numéro d'application 14421799
Numéro de brevet 09514064
Statut Délivré - en vigueur
Date de dépôt 2013-08-14
Date de la première publication 2015-08-06
Date d'octroi 2016-12-06
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Bhooma, Pranab
  • Basto, Carlos
  • Kalra, Kulbhushan

Abrégé

A code protection scheme for controlling access to a memory region in an integrated circuit includes a processor with an instruction pipeline that includes multiple processing stages. A first processing stage receives one or more instructions. A second processing stage receives address information identifying a protected memory region of the memory from the first processing stage and protection information for an identified protected memory region. The protection information indicates a protection state assigned to each protected memory region. Based on the instruction type of the received instruction and the protection information associated with a particular protected memory region, the second processing stage determines whether to enable or disable access to the particular protected memory region by the processor or other external host.

Classes IPC  ?

  • G06F 12/14 - Protection contre l'utilisation non autorisée de mémoire
  • G06F 21/52 - Contrôle des utilisateurs, des programmes ou des dispositifs de préservation de l’intégrité des plates-formes, p. ex. des processeurs, des micrologiciels ou des systèmes d’exploitation au stade de l’exécution du programme, p. ex. intégrité de la pile, débordement de tampon ou prévention d'effacement involontaire de données
  • G06F 21/71 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du calcul ou du traitement de l’information
  • G06F 21/78 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du stockage de données
  • G06F 21/79 - Protection de composants spécifiques internes ou périphériques, où la protection d'un composant mène à la protection de tout le calculateur pour assurer la sécurité du stockage de données dans les supports de stockage à semi-conducteurs, p. ex. les mémoires adressables directement
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 21/62 - Protection de l’accès à des données via une plate-forme, p. ex. par clés ou règles de contrôle de l’accès

82.

Hardware accelerator test harness generation

      
Numéro d'application 14637354
Numéro de brevet 09690630
Statut Délivré - en vigueur
Date de dépôt 2015-03-03
Date de la première publication 2015-06-25
Date d'octroi 2017-06-27
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Sinha, Navendu
  • Jordan, William Charles
  • Moyer, Bryon Irwin
  • Fricke, Stephen John Joseph
  • Attias, Roberto
  • Deshpande, Akash Renukadas
  • Gupta, Vineet
  • Sonakiya, Shobhit

Abrégé

System and method for generating hardware accelerators and processor offloads. System for hardware acceleration. System and method for implementing an asynchronous offload. Method of automatically creating a hardware accelerator. Computerized method for automatically creating a test harness for a hardware accelerator from a software program. System and method for interconnecting hardware accelerators and processors. System and method for interconnecting a processor and a hardware accelerator. Computer implemented method of generating a hardware circuit logic block design for a hardware accelerator automatically from software. Computer program and computer program product stored on tangible media implementing the methods and procedures of the invention.

Classes IPC  ?

  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/50 - Allocation de ressources, p. ex. de l'unité centrale de traitement [UCT]
  • G06F 9/54 - Communication interprogramme

83.

User interface for facilitation of high level generation of processor extensions

      
Numéro d'application 11388484
Numéro de brevet 09064076
Statut Délivré - en vigueur
Date de dépôt 2006-03-23
Date de la première publication 2015-06-23
Date d'octroi 2015-06-23
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Braun, Gunnar
  • Fiedler, Frank
  • Hoffmann, Andreas
  • Intrater, Gideon
  • Lüthje, Olaf
  • Nohl, Achim
  • Rieder, Ludwig

Abrégé

Systems and methods of user interface for facilitation of high level generation of processor extensions. In accordance with a method embodiment of the present invention, an instruction format is accessed at a graphical user interface. A programming language description of a computation element for an execution unit of the processor extension is accessed. A representation of a hardware design for the processor extension comprising the instruction format and the computation element is generated.

Classes IPC  ?

  • G06F 17/50 - Conception assistée par ordinateur

84.

Logical elements with switchable connections

      
Numéro d'application 14530624
Numéro de brevet 09590629
Statut Délivré - en vigueur
Date de dépôt 2014-10-31
Date de la première publication 2015-05-07
Date d'octroi 2017-03-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Nicol, Christopher John

Abrégé

Clusters of logical elements are interconnected by a switching fabric. Each cluster contains processing elements, storage elements, and switching elements. A circular buffer within a cluster contains multiple switching instructions to control the flow of data throughout the switching fabric. The circular buffer provides a pipelined execution of switching instructions. Each cluster contains multiple processing elements, and each cluster further comprises an additional circular buffer for each processing element. Logical operations are controlled by the circular buffers.

Classes IPC  ?

  • H03K 19/0175 - Dispositions pour le couplageDispositions pour l'interface
  • H03K 19/177 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des circuits logiques élémentaires comme composants disposés sous forme matricielle

85.

Self-timed user-extension instructions for a processing device

      
Numéro d'application 14506577
Numéro de brevet 09547493
Statut Délivré - en vigueur
Date de dépôt 2014-10-03
Date de la première publication 2015-04-09
Date d'octroi 2017-01-17
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Topham, Nigel

Abrégé

A processor for executing configurable instructions and a method of configuring the processor are disclosed. In one embodiment, the processor includes (i) a processor core to execute preconfigured instructions and (ii) a processor core extension to execute user-defined extension instructions that are configurable instructions. The user-defined extension instructions may include an autonomous instruction with varying execution cycles based on source data and an operation performed. The processor core extension employs extension interface signals as a handshake protocol to operate together with the processor core without knowing any priori knowledge of how many processor clock cycles that the autonomous instruction will take to complete.

Classes IPC  ?

  • G06F 15/76 - Architectures de calculateurs universels à programmes enregistrés
  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 3/0484 - Techniques d’interaction fondées sur les interfaces utilisateur graphiques [GUI] pour la commande de fonctions ou d’opérations spécifiques, p. ex. sélection ou transformation d’un objet, d’une image ou d’un élément de texte affiché, détermination d’une valeur de paramètre ou sélection d’une plage de valeurs

86.

Instruction cache with way prediction

      
Numéro d'application 14507787
Numéro de brevet 09465616
Statut Délivré - en vigueur
Date de dépôt 2014-10-06
Date de la première publication 2015-04-09
Date d'octroi 2016-10-11
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Jacobs, Eino

Abrégé

A processor includes an instruction fetch unit and an execution unit. The instruction fetch unit retrieves instructions from memory to be executed by the execution unit. The instruction fetch unit includes a branch prediction unit which is configured to predict whether a branch instruction is likely to be executed. The memory includes an instruction cache comprising a portion of the fetch blocks available in the memory. The instruction fetch unit may use a combination of way prediction and serialized access to retrieve instructions from the instruction cache. The instruction fetch unit initially accesses the instruction cache to retrieve the predicted fetch block associated with a way prediction. The instruction fetch unit compares a cache tag associated with the way prediction with the address of the cache line that includes the predicted fetch block. If the tag matches, then the way prediction is correct and the retrieved fetch block is valid.

Classes IPC  ?

  • G06F 15/00 - Calculateurs numériques en généralÉquipement de traitement de données en général
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 12/08 - Adressage ou affectationRéadressage dans des systèmes de mémoires hiérarchiques, p. ex. des systèmes de mémoire virtuelle

87.

Processor branch cache with secondary branches

      
Numéro d'application 14507740
Numéro de brevet 09569220
Statut Délivré - en vigueur
Date de dépôt 2014-10-06
Date de la première publication 2015-04-09
Date d'octroi 2017-02-14
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Jacobs, Eino

Abrégé

A processor uses a prediction unit to predict subsequent instructions of a program to be executed by the processor. Many implementations or combinations of implementations may be used to predict the subsequent instruction of the program. In one embodiment, a branch cache is used to store branch information. A prediction table is used to store prediction information based on the branch. A prediction logic module determines whether a branch is taken or not taken based on the branch information stored in the branch cache and the prediction information stored in the prediction table.

Classes IPC  ?

  • G06F 7/38 - Méthodes ou dispositions pour effectuer des calculs en utilisant exclusivement une représentation numérique codée, p. ex. en utilisant une représentation binaire, ternaire, décimale
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 12/08 - Adressage ou affectationRéadressage dans des systèmes de mémoires hiérarchiques, p. ex. des systèmes de mémoire virtuelle

88.

Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor

      
Numéro d'application 14503152
Numéro de brevet 09507729
Statut Délivré - en vigueur
Date de dépôt 2014-09-30
Date de la première publication 2015-04-02
Date d'octroi 2016-11-29
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Popat, Kaushik L.
  • Gupta, Vineet
  • Kite, Martin

Abrégé

A memory management unit (MMU) is disclosed for storing mappings between virtual addresses and physical addresses. The MMU includes a translation look-aside buffer (TLB) and a memory management unit controller. The TLB stores mappings between a virtual address and a physical address. The MMU controller receives a request to insert an entry into the TLB and performs a set of operations based on the received request. The MMU controller determines whether an entry stored in the TLB is associated with the virtual address of the request, removes the entry stored in the TLB that is associated with the virtual address and inserts the requested entry into the TLB.

Classes IPC  ?

  • G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires
  • G06F 12/10 - Traduction d'adresses

89.

Multi-threshold circuitry based on silicon-on-insulator technology

      
Numéro d'application 14487678
Numéro de brevet 09257984
Statut Délivré - en vigueur
Date de dépôt 2014-09-16
Date de la première publication 2015-03-19
Date d'octroi 2016-02-09
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Singh, Gajendra Prasad
  • Carpenter, Roger

Abrégé

Multiple threshold voltage circuitry based on silicon-on-insulator (SOI) technology is disclosed which utilizes N-wells and/or P-wells underneath the insulator in SOI FETs. The well under a FET is biased to influence the threshold voltage of the FET. A PFET and an NFET share a common buried P-well or N-well. Various types of logic can be fabricated in silicon-on-insulator (SOI) technology using multiple threshold voltage FETs. Embodiments provide circuits including the advantageous properties of both low-leakage transistors and high-speed transistors.

Classes IPC  ?

  • H01L 27/10 - Dispositifs consistant en une pluralité de composants semi-conducteurs ou d'autres composants à l'état solide formés dans ou sur un substrat commun comprenant des éléments de circuit passif intégrés avec au moins une barrière de potentiel ou une barrière de surface le substrat étant un corps semi-conducteur comprenant une pluralité de composants individuels dans une configuration répétitive
  • H03K 19/0948 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des dispositifs à semi-conducteurs utilisant des transistors à effet de champ utilisant des transistors MOSFET utilisant des dispositifs CMOS
  • H01L 27/12 - Dispositifs consistant en une pluralité de composants semi-conducteurs ou d'autres composants à l'état solide formés dans ou sur un substrat commun comprenant des éléments de circuit passif intégrés avec au moins une barrière de potentiel ou une barrière de surface le substrat étant autre qu'un corps semi-conducteur, p.ex. un corps isolant
  • G06F 17/50 - Conception assistée par ordinateur
  • H01L 21/84 - Fabrication ou traitement de dispositifs consistant en une pluralité de composants à l'état solide ou de circuits intégrés formés dans ou sur un substrat commun avec une division ultérieure du substrat en plusieurs dispositifs individuels pour produire des dispositifs, p.ex. des circuits intégrés, consistant chacun en une pluralité de composants le substrat étant autre chose qu'un corps semi-conducteur, p.ex. étant un corps isolant
  • H03K 19/08 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion utilisant des éléments spécifiés utilisant des dispositifs à semi-conducteurs
  • H03K 19/20 - Circuits logiques, c.-à-d. ayant au moins deux entrées agissant sur une sortieCircuits d'inversion caractérisés par la fonction logique, p. ex. circuits ET, OU, NI, NON

90.

Method and system for instruction set simulation with concurrent attachment of multiple debuggers

      
Numéro d'application 11637418
Numéro de brevet 08914274
Statut Délivré - en vigueur
Date de dépôt 2006-12-11
Date de la première publication 2014-12-16
Date d'octroi 2014-12-16
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Petras, Dietmar

Abrégé

An ISS (instruction set simulator) debugging method. The method includes executing a plurality of instructions of an ISS (instruction set simulator). For each instruction, an ISS simulation state is synchronized to a simulation time when the execution of the instruction is finished. At least two debugger components are executed in conjunction with the execution of the ISS, wherein the debugger components are each coupled to control the ISS.

Classes IPC  ?

  • G06F 9/45 - Compilation ou interprétation de langages de programmation évolués

91.

System and method of debugging multi-threaded processes

      
Numéro d'application 14165541
Numéro de brevet 09459992
Statut Délivré - en vigueur
Date de dépôt 2014-01-27
Date de la première publication 2014-07-10
Date d'octroi 2016-10-04
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Spycher, Matthias
  • Petras, Dietmar

Abrégé

A system and method of debugging a multi-threaded process with at least one running thread and at least one suspended thread is disclosed. Embodiments utilize a blocking function to block the thread of a process while other threads are allowed to run. The blocking function may be executed in a suspended thread by a debugger under control of a thread blocking controller. The other threads may implement interprocess communication channels for enabling communication between the process and another application. A simulated user interface (UI) of a debugger enables interaction with users while a hardware simulation thread is blocked, where blocking of the hardware simulation thread may be implemented by a thread blocking component implemented externally to the debugger. Where a thread blocking controller is implemented within the debugger, a debugger UI may interact with a user while the hardware simulation thread is blocked and interprocess communication threads are running.

Classes IPC  ?

  • G06F 9/44 - Dispositions pour exécuter des programmes spécifiques
  • G06F 11/36 - Prévention d'erreurs par analyse, par débogage ou par test de logiciel

92.

Software based application specific integrated circuit

      
Numéro d'application 14149009
Numéro de brevet 09588773
Statut Délivré - en vigueur
Date de dépôt 2014-01-07
Date de la première publication 2014-07-10
Date d'octroi 2017-03-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Nicol, Christopher John
  • Chaudhuri, Samit
  • Danilak, Radoslav

Abrégé

A processing device is provided. A cluster includes a plurality of groups of processing elements. A multi-word device is connected to the processing elements within the groups. Each processing element in a particular group is in communication with all other processing elements within the particular group, and only one of the processing elements within other groups in the cluster. Each processing element is limited to operations in which input bits can be processed and an output obtained without reference to other bits. The multi-word device is configured to cooperate with at least two other processing elements to perform processing that requires reference to other bits to obtain a result.

Classes IPC  ?

  • G06F 9/38 - Exécution simultanée d'instructions, p. ex. pipeline ou lecture en mémoire
  • G06F 9/30 - Dispositions pour exécuter des instructions machines, p. ex. décodage d'instructions
  • G06F 15/173 - Communication entre processeurs utilisant un réseau d'interconnexion, p. ex. matriciel, de réarrangement, pyramidal, en étoile ou ramifié

93.

Structured block transfer module, system architecture, and method for transferring

      
Numéro d'application 14194242
Numéro de brevet 09460034
Statut Délivré - en vigueur
Date de dépôt 2014-02-28
Date de la première publication 2014-06-26
Date d'octroi 2016-10-04
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Attias, Roberto
  • Jordan, William Charles
  • Moyer, Bryon Irwin
  • Fricke, Stephen John Joseph
  • Deshpande, Akash Renukadas
  • Sinha, Navendu
  • Gupta, Vineet
  • Sonakiya, Shobhit

Abrégé

Structured block transfer module, system architecture, and method for transferring content or data. Circuit allowing content in one memory to be shifted, moved, or copied to another memory with no direction from a host, the circuit comprising: a connection manager, at least one copy engine, and a connection between the connection manager and the copy engine. Method for transferring the contents of one of a number of blocks of source memory to one of a number of possible destination memories comprising: selecting source memory; selecting available destination memory; marking the selected destination as no longer available; copying contents of selected source memory into selected destination memory; and marking selected source as available.

Classes IPC  ?

  • G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement
  • G06F 13/362 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus ou au système à bus communs avec commande d'accès centralisée
  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle

94.

Selectively combinable shifters

      
Numéro d'application 14136754
Numéro de brevet 09933996
Statut Délivré - en vigueur
Date de dépôt 2013-12-20
Date de la première publication 2014-06-26
Date d'octroi 2018-04-03
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s) Chaudhuri, Samit

Abrégé

An apparatus for mathematical manipulation is described allowing the selective combination of shifters to shift binary numbers of various widths. Selective combination allows on-the-fly adjustment of shifters from independent to coordinated shifting operations. Selective combination allows adjustable hardware-based shifting while saving space and resources. Multiple eight-bit shifters can be configured for a variety of operand widths, such as a 32-bit width, a 24-bit width, a 16-bit width, or an eight-bit width. Multiplexers route the appropriate input data to the appropriate shifters. Opcodes configure the shifters for the desired type of shift and a shifted result is generated.

Classes IPC  ?

  • G06F 5/01 - Procédés ou dispositions pour la conversion de données, sans modification de l'ordre ou du contenu des données maniées pour le décalage, p. ex. la justification, le changement d'échelle, la normalisation

95.

Structured block transfer module, system architecture, and method for transferring

      
Numéro d'application 14195457
Numéro de brevet 09430427
Statut Délivré - en vigueur
Date de dépôt 2014-03-03
Date de la première publication 2014-06-26
Date d'octroi 2016-08-30
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Attias, Roberto
  • Jordan, William Charles
  • Moyer, Bryon Irwin
  • Fricke, Stephen John Joseph
  • Deshpande, Akash Renukadas
  • Sinha, Navendu
  • Gupta, Vineet
  • Sonakiya, Shobhit

Abrégé

Structured block transfer module, system architecture, and method for transferring content or data. Circuit allowing content in one memory to be shifted, moved, or copied to another memory with no direction from a host., the circuit comprising: a connection manager, at least one copy engine, and a connection between the connection manager and the copy engine. Method for transferring the contents of one of a number of blocks of source memory to one of a number of possible destination memories comprising: selecting source memory; selecting available destination memory; marking the selected destination as no longer available; copying contents of selected source memory into selected destination memory; and marking selected source as available.

Classes IPC  ?

  • G06F 13/362 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus ou au système à bus communs avec commande d'accès centralisée
  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle
  • G06F 3/06 - Entrée numérique à partir de, ou sortie numérique vers des supports d'enregistrement

96.

Extensible iterative multiplier

      
Numéro d'application 14099949
Numéro de brevet 09563401
Statut Délivré - en vigueur
Date de dépôt 2013-12-07
Date de la première publication 2014-06-12
Date d'octroi 2017-02-07
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Chaudhuri, Samit
  • Danilak, Radoslav

Abrégé

An extensible iterative multiplier design is provided. Embodiments provide cascaded 8-bit multipliers for simplifying the performance of multi-byte multiplications. Booth encoding is performed in the lowest order multiplier, with the result of the Booth encoding then provided to higher order multipliers. Additionally, multiply-add operations can be performed by initializing a partial product sum register. Configurable connections between the multipliers facilitate a variety of possible multiplication options, including the possibility of varying the width of the operands.

Classes IPC  ?

  • G06F 7/53 - Multiplication uniquement en mode parallèle-parallèle, c.-à-d. les deux opérandes étant introduits en parallèle
  • G06F 7/533 - Réduction du nombre d'étapes ou d'étages d'itération, p. ex. utilisant l'algorithme de Booth, sommation logarithmique, parité-imparité

97.

Structured block transfer module, system architecture, and method for transferring

      
Numéro d'application 11607474
Numéro de brevet 08706987
Statut Délivré - en vigueur
Date de dépôt 2006-12-01
Date de la première publication 2014-04-22
Date d'octroi 2014-04-22
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Attias, Roberto
  • Jordan, William Charles
  • Moyer, Bryon Irwin
  • Fricke, Stephen John Joseph
  • Deshpande, Akash Renukadas
  • Sinha, Navendu
  • Gupta, Vineet
  • Sonakiya, Shobhit

Abrégé

Structured block transfer module, system architecture, and method for transferring content or data. Circuit allowing content in one memory to be shifted, moved, or copied to another memory with no direction from a host, the circuit comprising: a connection manager, at least one copy engine, and a connection between the connection manager and the copy engine. Method for transferring the contents of one of a number of blocks of source memory to one of a number of possible destination memories comprising: selecting source memory; selecting available destination memory; marking the selected destination as no longer available; copying contents of selected source memory into selected destination memory; and marking selected source as available.

Classes IPC  ?

  • G06F 12/00 - Accès à, adressage ou affectation dans des systèmes ou des architectures de mémoires
  • G06F 13/00 - Interconnexion ou transfert d'information ou d'autres signaux entre mémoires, dispositifs d'entrée/sortie ou unités de traitement
  • G06F 13/28 - Gestion de demandes d'interconnexion ou de transfert pour l'accès au bus d'entrée/sortie utilisant le transfert par rafale, p. ex. acces direct à la mémoire, vol de cycle

98.

Scheduling of instructions

      
Numéro d'application 11096184
Numéro de brevet 08689202
Statut Délivré - en vigueur
Date de dépôt 2005-03-30
Date de la première publication 2014-04-01
Date d'octroi 2014-04-01
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Braun, Gunnar
  • Hoffmann, Andreas
  • Grieve, Volker
  • Hohenauer, Manuel
  • Leupers, Rainer

Abrégé

A method of automatically extracting information from an architecture description. A memory resident directed acyclic graph data structure comprising nodes representing instructions and edges whose weights represent dependencies between pairs of instructions is constructed. A list of ready nodes are maintained in the directed acyclic graph. A list of nodes not scheduled is maintained. And, it is determined whether the next instruction to be scheduled is to be taken from the list of ready nodes or from the list of nodes not yet scheduled.

Classes IPC  ?

  • G06F 9/45 - Compilation ou interprétation de langages de programmation évolués

99.

System and method of debugging multi-threaded processes

      
Numéro d'application 12001238
Numéro de brevet 08683444
Statut Délivré - en vigueur
Date de dépôt 2007-12-10
Date de la première publication 2014-03-25
Date d'octroi 2014-03-25
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Spycher, Matthias
  • Petras, Dietmar

Abrégé

A system and method of debugging a multi-threaded process with at least one running thread and at least one suspended thread is disclosed. Embodiments utilize a blocking function to block the thread of a process while other threads are allowed to run. The blocking function may be executed in a suspended thread by a debugger under control of a thread blocking controller. The other threads may implement interprocess communication channels for enabling communication between the process and another application. A simulated user interface (UI) of a debugger enables interaction with users while a hardware simulation thread is blocked, where blocking of the hardware simulation thread may be implemented by a thread blocking component implemented externally to the debugger. Where a thread blocking controller is implemented within the debugger, a debugger UI may interact with a user while the hardware simulation thread is blocked and interprocess communication threads are running.

Classes IPC  ?

  • G06F 9/44 - Dispositions pour exécuter des programmes spécifiques

100.

Generation of compiler description from architecture description

      
Numéro d'application 10815228
Numéro de brevet 08677312
Statut Délivré - en vigueur
Date de dépôt 2004-03-30
Date de la première publication 2014-03-18
Date d'octroi 2014-03-18
Propriétaire MIPS HOLDING, INC. (USA)
Inventeur(s)
  • Braun, Gunnar
  • Hoffmann, Andreas
  • Greive, Volker

Abrégé

A computer implemented method of generating a compiler description from an architecture description. Information is automatically extracted from an architecture description that is usable in a description of an architecture described by the architecture description. The extracted information is imported into a program comprising a graphical user interface that accepts user provided additional information that is usable in the compiler description. User provided additional information is accessed that is usable in the compiler description. A compiler description is automatically generated for the architecture described by the architecture description, based on the automatically extracted information and the accessed user provided additional information.

Classes IPC  ?

  • G06F 9/44 - Dispositions pour exécuter des programmes spécifiques
  1     2        Prochaine page