RU2014126085A - Модуль сопроцессора кэша - Google Patents

Модуль сопроцессора кэша Download PDF

Info

Publication number
RU2014126085A
RU2014126085A RU2014126085A RU2014126085A RU2014126085A RU 2014126085 A RU2014126085 A RU 2014126085A RU 2014126085 A RU2014126085 A RU 2014126085A RU 2014126085 A RU2014126085 A RU 2014126085A RU 2014126085 A RU2014126085 A RU 2014126085A
Authority
RU
Russia
Prior art keywords
cache
module
group
coprocessor
data
Prior art date
Application number
RU2014126085A
Other languages
English (en)
Other versions
RU2586589C2 (ru
Inventor
Ашиш ДЖХА
Original Assignee
Интел Корпорейшн
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 Интел Корпорейшн filed Critical Интел Корпорейшн
Publication of RU2014126085A publication Critical patent/RU2014126085A/ru
Application granted granted Critical
Publication of RU2586589C2 publication Critical patent/RU2586589C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/301In special purpose processing node, e.g. vector processor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

1. Модуль сопроцессора кэша в компьютерной системе, содержащий:массив кэша для хранения данных;аппаратный декодирующий модуль для декодирования команд, выгружаемых из потока выполнения исполнительным кластером компьютерной системы, для уменьшения операций загрузки и сохранения, осуществляемых между исполнительным кластером и модулем сопроцессора кэша; игруппу из одного или более операционных модулей для выполнения множества операций с массивом кэша в соответствии с декодированными командами.2. Модуль сопроцессора кэша по п. 1, в котором группа операционных модулей дополнительно содержит группу из одного или более буферов для временного хранения данных, подлежащих обработке.3. Модуль сопроцессора кэша по п. 1, дополнительно содержащий:управляющий модуль, содержащий модуль блокировки кэша, выполненный с возможностью блокировки области в массиве кэша, данные которой обрабатывает группа операционных модулей.4. Модуль сопроцессора кэша по п. 1, дополнительно содержащий модуль управления циклами, выполненный с возможностью управления циклическими проходами через массив кэша для декодированных команд.5. Модуль сопроцессора кэша по п. 1, в котором группа операционных модулей содержит логические схемы для записи данных в массив кэша и логические схемы для чтения данных из массива кэша.6. Модуль сопроцессора кэша по п. 1, в котором декодирующий модуль, дополнительно, выполнен с возможностью декодирования запросов загрузки и сохранения, принимаемых от исполнительного кластера компьютерной системы, при этом указанная группа операционных модулей выполнена с возможностью обработки указанных запросов загрузки и с

Claims (21)

1. Модуль сопроцессора кэша в компьютерной системе, содержащий:
массив кэша для хранения данных;
аппаратный декодирующий модуль для декодирования команд, выгружаемых из потока выполнения исполнительным кластером компьютерной системы, для уменьшения операций загрузки и сохранения, осуществляемых между исполнительным кластером и модулем сопроцессора кэша; и
группу из одного или более операционных модулей для выполнения множества операций с массивом кэша в соответствии с декодированными командами.
2. Модуль сопроцессора кэша по п. 1, в котором группа операционных модулей дополнительно содержит группу из одного или более буферов для временного хранения данных, подлежащих обработке.
3. Модуль сопроцессора кэша по п. 1, дополнительно содержащий:
управляющий модуль, содержащий модуль блокировки кэша, выполненный с возможностью блокировки области в массиве кэша, данные которой обрабатывает группа операционных модулей.
4. Модуль сопроцессора кэша по п. 1, дополнительно содержащий модуль управления циклами, выполненный с возможностью управления циклическими проходами через массив кэша для декодированных команд.
5. Модуль сопроцессора кэша по п. 1, в котором группа операционных модулей содержит логические схемы для записи данных в массив кэша и логические схемы для чтения данных из массива кэша.
6. Модуль сопроцессора кэша по п. 1, в котором декодирующий модуль, дополнительно, выполнен с возможностью декодирования запросов загрузки и сохранения, принимаемых от исполнительного кластера компьютерной системы, при этом указанная группа операционных модулей выполнена с возможностью обработки указанных запросов загрузки и сохранения данных.
7. Модуль сопроцессора кэша по п. 1, в котором множество операций, подлежащих выполнению группой операционных модулей для декодированных команд, содержит операции сохранения и операции загрузки.
8. Модуль сопроцессора кэша по п. 1, в котором по меньшей мере одна из команд, выгружаемых из потока выполнения исполнительного кластера компьютерной системы, требует производства вычислений, при этом группа операционных модулей содержит группу из одного или более операционных модулей для выполнения вычислений в соответствии по меньшей мере с одной командой.
9. Компьютерно-реализуемый способ, реализуемый компьютерной системой, содержащий этапы, на которых:
выполняют выборку команды;
выполняют декодирование выбранной команды;
принимают решение, что декодированная команда подлежит выполнению модулем сопроцессора кэша компьютерной системы;
выдают декодированную команду модулю сопроцессора кэша;
декодируют с помощью модуля сопроцессора кэша выданную команду; и
выполняют с помощью модуля сопроцессора кэша, команду, декодированную указанным модулем сопроцессора кэша.
10. Компьютерно-реализуемый способ по п. 9, в котором в соответствии с командой выполняют с помощью модуля сопроцессора кэша одну из операций: задание величины для по меньшей мере части массива кэша, копирование участка массива кэша в другой участок массива кэша и транспонирование элементов данных на участке массива кэша.
11. Компьютерно-реализуемый способ по п. 9, в котором указанная команда представляет собой постоянную вычислительную операцию, подлежащую выполнению в непрерывной области данных в массиве кэша в модуле сопроцессора кэша.
12. Компьютерно-реализуемый способ по п. 9, в котором этап выполнения команды, декодированной модулем сопроцессора кэша, содержит операции над группой из одной или более областей массива кэша в модуле сопроцессора кэша.
13. Компьютерно-реализуемый способ по п. 12, в котором этап выполнения команды, декодированной модулем сопроцессора кэша, дополнительно содержит подэтап, на котором задают блокировки кэша применительно к группе областей в массиве кэша, обрабатываемых в текущий момент.
14. Устройство, содержащее:
первый аппаратный декодирующий модуль для выполнения декодирования команды и принятия решения, что указанная команда подлежит выгрузке из потока выполнения исполнительных модулей исполнительного кластера для выполнения модулем сопроцессора кэша для уменьшения числа операций загрузки и сохранения между указанным исполнительным кластером и указанным модулем сопроцессора кэша;
модуль выгрузки команд для выдачи команды в модуль сопроцессора кэша;
при этом указанный модуль сопроцессора кэша, содержит:
массив кэша для хранения данных, и
второй аппаратный декодирующий модуль для выполнения декодирования команды, выданной модулем выгрузки команд, и
группу из одного или более операционных модулей для выполнения множества операций с данными в массиве кэша в соответствии с декодированной командой.
15. Устройство по п. 14, в котором группа операционных модулей дополнительно содержит группу из одного или более буферов для временного хранения данных, обрабатываемых операционными модулями.
16. Устройство по п. 14, в котором модуль сопроцессора кэша дополнительно содержит:
управляющий модуль, содержащий модуль блокировки кэша, выполненный с возможностью блокировки области в массиве кэша, обрабатываемой группой операционных модулей.
17. Устройство по п. 14, в котором управляющий модуль дополнительно содержит модуль управления циклами, выполненный с возможностью управления циклическими проходами через массив кэша для декодированных команд.
18. Устройство по п. 14, в котором группа операционных модулей содержит логические схемы для записи данных в массив кэша и логические схемы для чтения данных из массива кэша.
19. Устройство по п. 14, дополнительно содержащее:
модуль загрузки, выполненный с возможностью выдачи запросов загрузки в модуль сопроцессора кэша;
модуль адресов сохранения и модуль сохранения данных для выдачи запросов сохранения в модуль процессора кэша;
при этом второй аппаратный декодирующий модуль, дополнительно, выполнен с возможностью декодирования запросов загрузки и запросов сохранения данных, причем группа операционных модулей выполнена с возможностью обработки запросов загрузки и сохранения данных.
20. Устройство по п. 14, в котором множество операций, подлежащих выполнению группой операционных модулей, содержит операции сохранения данных или операции загрузки данных.
21. Устройство по п. 14, в котором модуль сопроцессора кэша выполнен с возможностью функционирования в качестве кэша первого уровня.
RU2014126085/08A 2011-12-30 2011-12-30 Модуль сопроцессора кэша RU2586589C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/068213 WO2013101216A1 (en) 2011-12-30 2011-12-30 Cache coprocessing unit

Publications (2)

Publication Number Publication Date
RU2014126085A true RU2014126085A (ru) 2016-01-27
RU2586589C2 RU2586589C2 (ru) 2016-06-10

Family

ID=48698448

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014126085/08A RU2586589C2 (ru) 2011-12-30 2011-12-30 Модуль сопроцессора кэша

Country Status (5)

Country Link
US (1) US20140013083A1 (ru)
CN (1) CN104137060B (ru)
RU (1) RU2586589C2 (ru)
TW (1) TWI510921B (ru)
WO (1) WO2013101216A1 (ru)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990660B2 (en) * 2010-09-13 2015-03-24 Freescale Semiconductor, Inc. Data processing system having end-to-end error correction and method therefor
US9164690B2 (en) * 2012-07-27 2015-10-20 Nvidia Corporation System, method, and computer program product for copying data between memory locations
CN103546825A (zh) * 2013-09-29 2014-01-29 青岛盛嘉信息科技有限公司 一种视频加载方法
CN104683830A (zh) * 2013-11-29 2015-06-03 青岛永通电梯工程有限公司 一种视频加载装置
CN104683826A (zh) * 2013-11-29 2015-06-03 青岛永通电梯工程有限公司 一种无线下载加速方法
CN104717263A (zh) * 2013-12-17 2015-06-17 青岛龙泰天翔通信科技有限公司 一种无线云端下载加速装置
RU2662394C2 (ru) * 2013-12-23 2018-07-25 Интел Корпорейшн Инструкция и логика для доступа к памяти в кластерной машине широкого исполнения
US9996350B2 (en) * 2014-12-27 2018-06-12 Intel Corporation Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array
US10642617B2 (en) * 2015-12-08 2020-05-05 Via Alliance Semiconductor Co., Ltd. Processor with an expandable instruction set architecture for dynamically configuring execution resources
CN107678781B (zh) * 2016-08-01 2021-02-26 北京百度网讯科技有限公司 处理器以及用于在处理器上执行指令的方法
US10558575B2 (en) * 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10387037B2 (en) * 2016-12-31 2019-08-20 Intel Corporation Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies
US20180189675A1 (en) * 2016-12-31 2018-07-05 Intel Corporation Hardware accelerator architecture and template for web-scale k-means clustering
US10643297B2 (en) * 2017-05-05 2020-05-05 Intel Corporation Dynamic precision management for integer deep learning primitives
RU2689433C1 (ru) * 2018-06-14 2019-05-28 Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ Вычислительный модуль и способ обработки с использованием такого модуля
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US11288067B2 (en) * 2019-05-24 2022-03-29 Texas Instruments Incorporated Vector reverse
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
JP2522048B2 (ja) * 1989-05-15 1996-08-07 三菱電機株式会社 マイクロプロセッサ及びそれを使用したデ―タ処理装置
US6092184A (en) * 1995-12-28 2000-07-18 Intel Corporation Parallel processing of pipelined instructions having register dependencies
TW343318B (en) * 1996-09-23 1998-10-21 Advanced Risc Mach Ltd Register addressing in a data processing apparatus
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6487640B1 (en) * 1999-01-19 2002-11-26 International Business Machines Corporation Memory access request reordering to reduce memory access latency
US6839808B2 (en) * 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
US7380106B1 (en) * 2003-02-28 2008-05-27 Xilinx, Inc. Method and system for transferring data between a register in a processor and a point-to-point communication link
US7590830B2 (en) * 2004-05-28 2009-09-15 Sun Microsystems, Inc. Method and structure for concurrent branch prediction in a processor
US7237065B2 (en) * 2005-05-24 2007-06-26 Texas Instruments Incorporated Configurable cache system depending on instruction type
US8527713B2 (en) * 2006-01-31 2013-09-03 Qualcomm Incorporated Cache locking without interference from normal allocations
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8200917B2 (en) * 2007-09-26 2012-06-12 Qualcomm Incorporated Multi-media processor cache with cache line locking and unlocking
US8041900B2 (en) * 2008-01-15 2011-10-18 Oracle America, Inc. Method and apparatus for improving transactional memory commit latency
US7930519B2 (en) * 2008-12-17 2011-04-19 Advanced Micro Devices, Inc. Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit
US8627014B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Memory model for hardware attributes within a transactional memory system
US8799582B2 (en) * 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
US20130007370A1 (en) * 2011-07-01 2013-01-03 Oracle International Corporation Method and apparatus for minimizing working memory contentions in computing systems

Also Published As

Publication number Publication date
WO2013101216A1 (en) 2013-07-04
CN104137060B (zh) 2018-03-06
US20140013083A1 (en) 2014-01-09
TW201346555A (zh) 2013-11-16
RU2586589C2 (ru) 2016-06-10
CN104137060A (zh) 2014-11-05
TWI510921B (zh) 2015-12-01

Similar Documents

Publication Publication Date Title
RU2014126085A (ru) Модуль сопроцессора кэша
US10108249B2 (en) Memory control circuit
JP6006247B2 (ja) 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム
US20150186278A1 (en) Runtime persistence
US10268519B2 (en) Scheduling method and processing device for thread groups execution in a computing system
US10261789B2 (en) Data processing apparatus and method for controlling performance of speculative vector operations
US9170816B2 (en) Enhancing processing efficiency in large instruction width processors
KR101806279B1 (ko) 명령어 순서 강제 명령어들의 쌍들, 프로세서들, 방법들, 및 시스템들
US20150150019A1 (en) Scheduling computing tasks for multi-processor systems
WO2015114305A1 (en) A data processing apparatus and method for executing a vector scan instruction
US20170286118A1 (en) Processors, methods, systems, and instructions to fetch data to indicated cache level with guaranteed completion
US10423417B2 (en) Fault tolerant processor for real-time systems
TWI511077B (zh) 下一指令類型欄位
US20120089813A1 (en) Computing apparatus based on reconfigurable architecture and memory dependence correction method thereof
JP6094356B2 (ja) 演算処理装置
CN112148366A (zh) 一种芯片降低功耗提升性能的flash加速方法
US9417882B2 (en) Load synchronization with streaming thread cohorts
US9395985B2 (en) Efficient central processing unit (CPU) return address and instruction cache
JP5630798B1 (ja) プロセッサーおよび方法
JP2013161484A (ja) 再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法
CN108845832B (zh) 一种提高处理器主频的流水线细分装置
JP2007193433A (ja) 情報処理装置
US20230084603A1 (en) Methods and apparatus for context switching
JP2014081846A (ja) Vliwプロセッサ
JP5993687B2 (ja) ワンチッププロセッサ

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20171231