CL2017003263A1 - Arquitectura basada en bloques con ejecución paralela de bloques sucesivos. - Google Patents

Arquitectura basada en bloques con ejecución paralela de bloques sucesivos.

Info

Publication number
CL2017003263A1
CL2017003263A1 CL2017003263A CL2017003263A CL2017003263A1 CL 2017003263 A1 CL2017003263 A1 CL 2017003263A1 CL 2017003263 A CL2017003263 A CL 2017003263A CL 2017003263 A CL2017003263 A CL 2017003263A CL 2017003263 A1 CL2017003263 A1 CL 2017003263A1
Authority
CL
Chile
Prior art keywords
block
instructions
parallel execution
based architecture
successive blocks
Prior art date
Application number
CL2017003263A
Other languages
English (en)
Inventor
Douglas Christopher Burger
Aaron Smith
Jan S Gray
Original Assignee
Microsoft Technology Licensing Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing Llc filed Critical Microsoft Technology Licensing Llc
Publication of CL2017003263A1 publication Critical patent/CL2017003263A1/es

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00—Digital computers in general; Data processing equipment in general
    • G06F15/76—Architectures of general purpose stored program computers
    • G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003—Arrangements for executing specific machine instructions
    • G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003—Arrangements for executing specific machine instructions
    • G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054—Unconditional branch instructions
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802—Instruction prefetching
    • G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802—Instruction prefetching
    • G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818—Decoding for concurrent execution
    • G06F9/382—Pipelined decoding, e.g. using predecoding
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818—Decoding for concurrent execution
    • G06F9/3822—Parallel decoding, e.g. parallel decode units
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824—Operand accessing
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842—Speculative instruction execution
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842—Speculative instruction execution
    • G06F9/3846—Speculative instruction execution using static prediction, e.g. branch taken strategy
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858—Result writeback, i.e. updating the architectural state or memory
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858—Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

<p>SISTEMA DE COMPUTACIÓN BASADO EN BLOQUES QUE COMPRENDE UNA PLURALIDAD DE NÚCLEOS DE PROCESAMIENTO QUE COMPRENDEN UN PRIMER NÚCLEO DE PROCESAMIENTO PARA EJECUTAR LAS INSTRUCCIONES DE UN PRIMER BLOQUE DE INSTRUCCIONES Y GENEREA UNA DIRECCIÓN OBJETIVO DE UN SEGUNDO BLOQUE DE INSTRUCCIONES ANTES DE QUE SE HAYA COMPROMETIDO EL PRIMER BLOQUE DE INSTRUCCIONES, Y LA LÓGICA DE CONTROL PARA RECIBIR LA DIRECCIÓN OBJETIVO DEL SEGUNDO BLOQUE DE INSTRUCCIONES Y PARA INICIAR LA EJECUCIÓN NO ESPECULATIVA DEL SEGUNDO BLOQUE DE INSTRUCCIONES ANTES DE QUE SE HAYA COMPROMETIDO EL PRIMER BLOQUE DE INSTRUCCIONES; MÉTODO; DISPOSITIVO DE ALMACENAMIENTO LEGIBLE POR COMPUTADORA O UNA MEMORIA QUE TIENE INSTRUCCIONES EN LA MISMA.</p>
CL2017003263A 2015-06-26 2017-12-19 Arquitectura basada en bloques con ejecución paralela de bloques sucesivos. CL2017003263A1 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/752,636 US20160378488A1 (en) 2015-06-26 2015-06-26 Access to target address

Publications (1)

Publication Number Publication Date
CL2017003263A1 true CL2017003263A1 (es) 2018-06-29

Family

ID=56369217

Family Applications (1)

Application Number Title Priority Date Filing Date
CL2017003263A CL2017003263A1 (es) 2015-06-26 2017-12-19 Arquitectura basada en bloques con ejecución paralela de bloques sucesivos.

Country Status (15)

Country Link
US (1) US20160378488A1 (es)
EP (2) EP3314401B1 (es)
JP (1) JP2018519602A (es)
KR (1) KR20180021812A (es)
CN (1) CN107810478A (es)
AU (1) AU2016281603A1 (es)
BR (1) BR112017024351A2 (es)
CA (1) CA2986061A1 (es)
CL (1) CL2017003263A1 (es)
CO (1) CO2017013272A2 (es)
HK (1) HK1246442A1 (es)
IL (1) IL256171A (es)
MX (1) MX2017016200A (es)
PH (1) PH12017550128A1 (es)
WO (1) WO2016210031A1 (es)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US9940136B2 (en) 2015-06-26 2018-04-10 Microsoft Technology Licensing, Llc Reuse of decoded instructions
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10095519B2 (en) 2015-09-19 2018-10-09 Microsoft Technology Licensing, Llc Instruction block address register
US11531552B2 (en) * 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
CN109101276B (zh) 2018-08-14 2020-05-05 阿里巴巴集团控股有限公司 在cpu中执行指令的方法
US10824429B2 (en) 2018-09-19 2020-11-03 Microsoft Technology Licensing, Llc Commit logic and precise exceptions in explicit dataflow graph execution architectures
CN109783143B (zh) * 2019-01-25 2021-03-09 贵州华芯通半导体技术有限公司 用于流水线指令流的控制方法和控制设备
US20210096861A1 (en) * 2019-10-01 2021-04-01 Higon Austin R&D Center System and method to prefetch pointer based structures
CN112882753B (zh) * 2019-11-29 2025-06-24 中科寒武纪科技股份有限公司 程序运行方法及装置
CN111506520B (zh) * 2020-07-01 2020-09-22 腾讯科技(深圳)有限公司 一种地址生成的方法、相关装置以及存储介质
GB2603151B (en) * 2021-01-28 2023-05-24 Advanced Risc Mach Ltd Circuitry and method
CN117707619B (zh) * 2023-11-02 2024-12-17 上海攸化技术管理咨询有限公司 指令的编码方式、运算单元、运算模块及运算方法
US12688087B2 (en) * 2024-07-31 2026-07-21 Micron Technology, Inc. Probablistically determining memory portions for select gate scanning

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2143490T3 (es) * 1992-08-12 2000-05-16 Advanced Micro Devices Inc Decodificador de instrucciones.
US5832297A (en) * 1995-04-12 1998-11-03 Advanced Micro Devices, Inc. Superscalar microprocessor load/store unit employing a unified buffer and separate pointers for load and store operations
GB2393274B (en) * 2002-09-20 2006-03-15 Advanced Risc Mach Ltd Data processing system having an external instruction set and an internal instruction set
US7882339B2 (en) * 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
JP4339371B2 (ja) * 2007-03-22 2009-10-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
CN104011705A (zh) * 2011-12-01 2014-08-27 新加坡国立大学 多形异构性多核架构
US9182986B2 (en) * 2012-12-29 2015-11-10 Intel Corporation Copy-on-write buffer for restoring program code from a speculative region to a non-speculative region
US9594700B2 (en) * 2013-04-17 2017-03-14 Nvidia Corporation Speculative memory controller

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions

Also Published As

Publication number Publication date
EP3314401B1 (en) 2020-02-12
EP3660668A1 (en) 2020-06-03
CN107810478A (zh) 2018-03-16
CO2017013272A2 (es) 2018-03-20
IL256171A (en) 2018-02-28
AU2016281603A1 (en) 2017-11-30
US20160378488A1 (en) 2016-12-29
WO2016210031A1 (en) 2016-12-29
HK1246442A1 (zh) 2018-09-07
KR20180021812A (ko) 2018-03-05
JP2018519602A (ja) 2018-07-19
EP3314401A1 (en) 2018-05-02
PH12017550128A1 (en) 2018-02-26
MX2017016200A (es) 2018-03-01
CA2986061A1 (en) 2016-12-29
BR112017024351A2 (pt) 2018-07-31

Similar Documents

Publication Publication Date Title
CO2017013272A2 (es) Arquitectura basada en bloques con ejecución paralela de bloques sucesivos
CL2018000126A1 (es) Sistemas y métodos para dividir índices de búsqueda para una mayor eficiencia en la identificación de segmentos de medios
CL2017002847A1 (es) Sistema y método para extraer y compartir datos de usuario relacionados con la aplicación.
CO2017011525A2 (es) Manejo de compromisos y solicitudes extraidas de comunicaciones y contenido
CL2017001807A1 (es) Métodos para el entendimiento de consulta de lenguaje natural incompleta
CL2017002521A1 (es) Paginación de sistema de procesamiento de eventos.
BR112016016831A8 (pt) método implementado por computador, sistema incluindo memória e um ou mais processadores, e meio legível por computador não transitório
CL2017003310A1 (es) Ventana de instrucción de procesador desacoplada y memoria intermedia de operando
CL2016002294A1 (es) Arquitectura de procesador de árbol de decisión paralelo.
CL2016000138A1 (es) Sistema, dispositivo inteligente y método de repartición de las operaciones y de los costes de un dispositivo inteligente.
CL2017002612A1 (es) Sistemas y métodos para reducir densidad de los datos en grandes conjuntos de datos
BR112015024773A8 (pt) Método, sistema e aparelho para comparação de imagens
BR112015030158A2 (pt) preempção de armazenamento temporário de comando intermediário para cargas de trabalho gráficas
CL2015002728A1 (es) Un método para proporcionar un entorno de aprendizaje de idiomas
CL2018000907A1 (es) Controlador de dispositivo de compresión; método; sistema
MX2017010849A (es) Determinacion del radio de giro dinamico disponible.
CO2017013275A2 (es) Índice de búsqueda personal con privacidad mejorada&#34;
MX2018007736A (es) Sistema para control de velocidad de un vehiculo.
IL247888B (en) Address expansion and contraction in a multithreading computer system
CL2017001389A1 (es) Manejo de permisos de acceso a cuadernos de clase y sus grupos de sección en una aplicación de cuaderno
MX2015014358A (es) Visualizacion de imagenes de vehiculos.
CL2017002095A1 (es) Edición y manipulación de trazo de tinta.
CL2018001390A1 (es) Uso de memoria volátil como memoria no volátil
CL2016000140A1 (es) Ordenes de escaneo para codificación sin transformación
AR101678A1 (es) Dispositivo de procesamiento de información, método de procesamiento de información y medio de almacenamiento legible por computadora no transitorio de almacenamiento de programa