[go: up one dir, main page]

CN108228242B - Configurable and flexible instruction scheduler - Google Patents

Configurable and flexible instruction scheduler Download PDF

Info

Publication number
CN108228242B
CN108228242B CN201810118967.8A CN201810118967A CN108228242B CN 108228242 B CN108228242 B CN 108228242B CN 201810118967 A CN201810118967 A CN 201810118967A CN 108228242 B CN108228242 B CN 108228242B
Authority
CN
China
Prior art keywords
instruction queue
module
instruction
hardware
hardware module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810118967.8A
Other languages
Chinese (zh)
Other versions
CN108228242A (en
Inventor
洪振洲
李庭育
陈育鸣
魏智汎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Hua Cun Electronic Technology Co Ltd
Original Assignee
Jiangsu Hua Cun Electronic Technology Co Ltd
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 Jiangsu Hua Cun Electronic Technology Co Ltd filed Critical Jiangsu Hua Cun Electronic Technology Co Ltd
Priority to CN201810118967.8A priority Critical patent/CN108228242B/en
Publication of CN108228242A publication Critical patent/CN108228242A/en
Priority to PCT/CN2018/099749 priority patent/WO2019153683A1/en
Application granted granted Critical
Publication of CN108228242B publication Critical patent/CN108228242B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

The invention discloses a configurable and elastic instruction scheduler, which comprises a central microprocessor, a memory, a first hardware module and a second hardware module, wherein the central microprocessor is respectively connected with the memory, the first hardware module and the second hardware module through buses, an instruction queue unit and an instruction queue setting unit are arranged in the memory, and the instruction queue setting unit is respectively connected with the first hardware module and the second hardware module.

Description

Configurable and flexible instruction scheduler
Technical Field
The invention relates to the technical field of instruction scheduling, in particular to a configurable and flexible instruction scheduler.
Background
Instruction scheduling is a technique for instruction parallel execution, and a compiler or machine hardware increases the number of machine-executed instructions per beat by adjusting the order of the instructions, where the beat is a clock cycle of the machine-executed instructions that the compiler simulates when compiling a source program. In the prior art, a table scheduling algorithm is usually adopted to implement instruction scheduling, and a candidate instruction queue is usually adopted. Specifically, when instruction scheduling is performed, a data dependency graph is constructed for instructions to be scheduled, the data dependency graph is composed of a plurality of nodes, each node represents one instruction, and the data dependency graph can be used for representing the dependency relationship between the instructions. The priority of each instruction is then calculated, and the instructions in the data dependency graph are then scheduled beat-by-beat. Instruction scheduling is an efficient means for compilers to exploit the potential instruction-level parallelism of programs. The method improves the number of instructions which can be executed by a target machine in a period by readjusting the instruction sequence on the premise of not changing the program semantics and meeting the correlation and resource dependency of the target machine. Instruction scheduling is a key technique of modern high-performance compilers, and determines the relative execution order of operations, specific execution time and hardware resources used. From the viewpoint of code block division, instruction scheduling can be divided into local instruction scheduling and global instruction scheduling, where local instruction scheduling refers to instruction scheduling within a basic block, and global scheduling refers to instruction scheduling between basic blocks.
The conventional system-level single chip architecture is composed of a plurality of sub-modules including a central microprocessor, and the sub-modules are connected by an external bus, and a central controller respectively issues instructions through the external bus to complete operation, so that the performance of issuing instructions each time is low through the bus.
Disclosure of Invention
It is therefore an object of the present invention to provide a configurable and flexible instruction scheduler to solve the above-mentioned problems.
In order to achieve the purpose, the invention provides the following technical scheme: a configurable and elastic instruction scheduler comprises a central microprocessor, a memory, a first hardware module and a second hardware module, wherein the central microprocessor is respectively connected with the memory, the first hardware module and the second hardware module through buses; the instruction queue unit comprises a first instruction queue module, a second instruction queue module, a third instruction queue module and an Nth instruction queue module, wherein N is an integer larger than 3; the instruction queue setting unit comprises a first instruction queue setting module, a second instruction queue setting module, a third instruction queue setting module and an Mth instruction queue setting module, wherein M is an integer larger than 3; the first instruction queue setting module is connected with the first instruction queue module, the second instruction queue setting module is connected with the second instruction queue module, the third instruction queue setting module is connected with the third instruction queue module, and the Mth instruction queue setting module is connected with the Nth instruction queue module.
Compared with the prior art, the invention has the beneficial effects that: in the invention, the central microprocessor can give each submodule more flexible instruction length and instruction queue depth, so that the microprocessor can issue instructions more easily and independently.
Drawings
Fig. 1 is a schematic diagram of the structure of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Referring to fig. 1, the present invention provides a technical solution: a configurable and elastic instruction scheduler comprises a central microprocessor 1, a memory 2, a first hardware module 3 and a second hardware module 4, wherein the central microprocessor 1 is respectively connected with the memory 2, the first hardware module 3 and the second hardware module 4 through buses, an instruction queue unit 5 and an instruction queue setting unit 6 are arranged in the memory 2, and the instruction queue setting unit 6 is respectively connected with the first hardware module 3 and the second hardware module 4.
In the invention, an instruction queue unit 5 comprises a first instruction queue module 7, a second instruction queue module 8, a third instruction queue module 9 and an Nth instruction queue module, wherein N is an integer more than 3; the instruction queue setting unit 6 comprises a first instruction queue setting module 10, a second instruction queue setting module 11, a third instruction queue setting module 12 and an Mth instruction queue setting module, wherein M is an integer greater than 3; the first instruction queue setting module 10 is connected with the first instruction queue module 7, the second instruction queue setting module 11 is connected with the second instruction queue module 8, the third instruction queue setting module 12 is connected with the third instruction queue module 9, and the Mth instruction queue setting module is connected with the Nth instruction queue module.
The microprocessor gives orders to the order central control module via the external bus, the orders corresponding to different modules are written into the respective defined addresses in the memory, each order queue corresponds to different modules in the system and has different meanings, the order length and the number are all set in the order queue setting register, and after the microprocessor can give out a plurality of orders at one time, the microprocessor informs the queue how many orders are written for the external hardware sub-module to execute in the way of writing the register. Each hardware submodule knows how many instructions need to be processed and grabs the instructions through an external bus according to instruction queue setting signals, once the grabbing is completed, the hardware submodule informs a microprocessor through a bus rewriting register, and how many instructions are grabbed, so that the use of the instruction memory space can be optimized, and the instruction queue depth can be adjusted according to actual hardware requirements, and flexibility is attached. Similarly, the external hardware submodule may write commands up for execution by the microprocessor in this manner.
In the invention, the central microprocessor can give each submodule more flexible instruction length and instruction queue depth, so that the microprocessor can issue instructions more easily and independently.
Although embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that changes, modifications, substitutions and alterations can be made in these embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the appended claims and their equivalents.

Claims (1)

1. A configurable and flexible instruction scheduler, comprising: the system comprises a central microprocessor (1), a memory (2), a first hardware module (3) and a second hardware module (4), wherein the central microprocessor (1) is respectively connected with the memory (2), the first hardware module (3) and the second hardware module (4) through buses, an instruction queue unit (5) and an instruction queue setting unit (6) are arranged in the memory (2), and the instruction queue setting unit (6) is respectively connected with the first hardware module (3) and the second hardware module (4); the instruction queue unit (5) comprises a first instruction queue module (7), a second instruction queue module (8), a third instruction queue module (9) and an Nth instruction queue module, wherein N is an integer greater than 3; the instruction queue setting unit (6) comprises a first instruction queue setting module (10), a second instruction queue setting module (11), a third instruction queue setting module (12) and an Mth instruction queue setting module, wherein M is an integer larger than 3; the first instruction queue setting module (10) is connected with the first instruction queue module (7), the second instruction queue setting module (11) is connected with the second instruction queue module (8), the third instruction queue setting module (12) is connected with the third instruction queue module (9), and the Mth instruction queue setting module is connected with the Nth instruction queue module.
CN201810118967.8A 2018-02-06 2018-02-06 Configurable and flexible instruction scheduler Active CN108228242B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810118967.8A CN108228242B (en) 2018-02-06 2018-02-06 Configurable and flexible instruction scheduler
PCT/CN2018/099749 WO2019153683A1 (en) 2018-02-06 2018-08-09 Configurable and flexible instruction scheduler

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810118967.8A CN108228242B (en) 2018-02-06 2018-02-06 Configurable and flexible instruction scheduler

Publications (2)

Publication Number Publication Date
CN108228242A CN108228242A (en) 2018-06-29
CN108228242B true CN108228242B (en) 2020-02-07

Family

ID=62670696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810118967.8A Active CN108228242B (en) 2018-02-06 2018-02-06 Configurable and flexible instruction scheduler

Country Status (2)

Country Link
CN (1) CN108228242B (en)
WO (1) WO2019153683A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220374237A1 (en) * 2021-05-21 2022-11-24 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method for identifying and prioritizing certain instructions in a microprocessor instruction pipeline
US12321733B2 (en) * 2021-12-22 2025-06-03 Samsung Electronics Co., Ltd. Apparatus and method with neural network computation scheduling

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228242B (en) * 2018-02-06 2020-02-07 江苏华存电子科技有限公司 Configurable and flexible instruction scheduler

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101133391A (en) * 2005-02-04 2008-02-27 美普思科技有限公司 Bifurcated thread scheduler in a multithreading microprocessor
CN104424026A (en) * 2013-08-21 2015-03-18 华为技术有限公司 Instruction scheduling method and device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032101B2 (en) * 2002-02-26 2006-04-18 International Business Machines Corporation Method and apparatus for prioritized instruction issue queue in a processor
US7130990B2 (en) * 2002-12-31 2006-10-31 Intel Corporation Efficient instruction scheduling with lossy tracking of scheduling information
CN101710272B (en) * 2009-10-28 2012-09-05 龙芯中科技术有限公司 Device and method for instruction scheduling
CN102495724A (en) * 2011-11-04 2012-06-13 杭州中天微系统有限公司 Data processor for improving storage instruction execution efficiency
US10175988B2 (en) * 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
CN108228242B (en) * 2018-02-06 2020-02-07 江苏华存电子科技有限公司 Configurable and flexible instruction scheduler

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101133391A (en) * 2005-02-04 2008-02-27 美普思科技有限公司 Bifurcated thread scheduler in a multithreading microprocessor
CN104424026A (en) * 2013-08-21 2015-03-18 华为技术有限公司 Instruction scheduling method and device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220374237A1 (en) * 2021-05-21 2022-11-24 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method for identifying and prioritizing certain instructions in a microprocessor instruction pipeline
US12321733B2 (en) * 2021-12-22 2025-06-03 Samsung Electronics Co., Ltd. Apparatus and method with neural network computation scheduling

Also Published As

Publication number Publication date
WO2019153683A1 (en) 2019-08-15
CN108228242A (en) 2018-06-29

Similar Documents

Publication Publication Date Title
US9830156B2 (en) Temporal SIMT execution optimization through elimination of redundant operations
US9606797B2 (en) Compressing execution cycles for divergent execution in a single instruction multiple data (SIMD) processor
CN105487838B (en) A task-level parallel scheduling method and system for a dynamically reconfigurable processor
CN111414197A (en) Data processing system, compiler, method of processor, and machine-readable medium
CN102279766B (en) Method and system for concurrently simulating processors and scheduler
CN108228242B (en) Configurable and flexible instruction scheduler
CN104461471B (en) Unified instruction scheduling and register allocation method on sub-clustering vliw processor
CN112580792B (en) Neural network multi-core tensor processor
EP2997462B1 (en) Dynamic optimization of pipelined software
CN118502903A (en) Thread bundle scheduling method based on general graphics processor and storage medium
US20150339256A1 (en) Inter-processor synchronization system
Madhu et al. Compiling HPC kernels for the REDEFINE CGRA
Huo et al. Porting irregular reductions on heterogeneous CPU-GPU configurations
CN118796277A (en) Instruction pipeline optimization and dynamic programming method and system based on GPGPU
WO2019153681A1 (en) Smart instruction scheduler
US20170132030A1 (en) Virtual machine system, control method thereof, and control program recording medium thereof
JPWO2016024508A1 (en) Multiprocessor device
Huthmann et al. Automatic high-level synthesis of multi-threaded hardware accelerators
CN118747088A (en) A signal processing method, device, equipment and medium for multi-threaded instruction emission
EP4211553A1 (en) Method of interleaved processing on a general-purpose computing core
CN103914426B (en) A kind of method and device of multiple threads baseband signal
WO2019153684A1 (en) Method for automatically managing low-latency instruction scheduler
WO2015155894A1 (en) Processor and method
US9207922B2 (en) Compiling method and apparatus for scheduling block in pipeline
CN103246563B (en) A kind of multilamellar piecemeal dispatching method with storage perception

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A configurable and flexible instruction scheduler

Effective date of registration: 20200819

Granted publication date: 20200207

Pledgee: Jiangsu Credit Financing Guarantee Co.,Ltd.

Pledgor: JIANGSU HUACUN ELECTRONIC TECHNOLOGY Co.,Ltd.

Registration number: Y2020980005146

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20211008

Granted publication date: 20200207

Pledgee: Jiangsu Credit Financing Guarantee Co.,Ltd.

Pledgor: JIANGSU HUACUN ELECTRONIC TECHNOLOGY Co.,Ltd.

Registration number: Y2020980005146

PC01 Cancellation of the registration of the contract for pledge of patent right