KR102225768B1 - 명령 실행 방법 및 장치 - Google Patents
명령 실행 방법 및 장치 Download PDFInfo
- Publication number
- KR102225768B1 KR102225768B1 KR1020190082746A KR20190082746A KR102225768B1 KR 102225768 B1 KR102225768 B1 KR 102225768B1 KR 1020190082746 A KR1020190082746 A KR 1020190082746A KR 20190082746 A KR20190082746 A KR 20190082746A KR 102225768 B1 KR102225768 B1 KR 102225768B1
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- command
- execution
- sent
- operation type
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000004044 response Effects 0.000 claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 12
- 230000001419 dependent effect Effects 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 abstract description 25
- 238000013473 artificial intelligence Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 239000003550 marker Substances 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Computer And Data Communications (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
본 출원의 실시예는 명령 실행 방법 및 장치를 개시한다. 해당 방법의 일 구체적인 실시예는, 명령 대기열을 획득하는 단계; 기정의 순서에 따라 명령 대기열에서 발송 단계를 실행하는 단계 - 상기 발송 단계에서, 발송하고자는 명령을 획득하여, 발송하고자는 명령의 유형을 확정하고, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자는 명령을 확정된 실행 부재에 발송함 - ; 및 발송하고자는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 발송하고자는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자는 명령을 획득하여, 계속하여 발송 단계를 실행하는 단계를 포함한다. 해당 실시예는 명령 실행의 신뢰도를 향상시키고, 명령 대기열이 점용하는 메모리의 용량을 저감시키고, 명령 실행 효율을 향상시킬 수 있다.
Description
본 출원의 실시예는, 컴퓨터 기술 분야에 관한 것으로, 구체적으로 명령 실행 방법 및 장치에 관한 것이다.
최근에, 인공 지능 기술이 흥행하고 발전함에 따라, 심층 학습을 대표로 하는 모델 알고리즘 및 빅 데이터를 대표로 하는 데이터 처리 알고리즘은 이미 예컨대 음성 인식, 이미지 인식, 자연 언어 처리 등 각 분야에 광범위하게 적용되고 있다.
통상적으로, 심층 학습 모델에는 대량의 컴퓨팅 밀집형 연산자가 존재하며,예를 들어, 행렬 컴퓨팅, 컨볼루션, 풀링, 활성화, 표준화 등이 존재하며, 데이터 프로세서에도 마찬가지로 대량의 컴퓨팅 밀집 연산자가 존재하며, 예를 들어, 데이터 조회, 데이터 필터링, 데이터 연결, 데이터 순서 배열 등이 존재한다. 이러한 연산은 아주 많은 시간을 소모하므로, 전통적인 중앙 처리 유닛(Central Processing Unit, CPU)의 연산 능력으로 수요를 만족시키기 어려워, 이기종 컴퓨팅이 주류로 되고 있다. 따라서, 예컨대 그래픽 처리 유닛(Graphics Processing Unit, GPU), 주문형 집적 회로(Application Specific Integrated Circuits, ASIC) 등과 같은 각종의 심층 학습 주문형의 프로세서, 빅 데이터 주문형의 프로세서가 개발되었다.
기존의 기술에 있어서, 통상적으로 주문형의 프로세서에는 다수의 별개의 실행 부재가 설치된다. 예를 들어, 심층 학습 주문형의 프로세서에는 행렬 컴퓨팅을 진행하는 실행 부재, 이미지 컨볼루션 컴퓨팅을 진행하는 실행 부재가 설치되고, 빅 데이터 주문형의 프로세서에는 데이터 필터링을 진행하는 실행 부재, 데이터 순서 배열을 진행하는 실행 부재가 설치된다. 각 별개의 실행 부재는 명령 대기열에서 실행하여야 할 명령을 획득하여야 한다.
본 출원의 실시예는 명령 실행 방법 및 장치를 제출한다.
제1 양태에 있어서, 본 출원의 실시예는 명령 실행 방법을 제공한다. 해당 방법은, 명령 대기열을 획득하는 단계; 기정의 순서에 따라 상기 명령 대기열에서 발송하고자는 명령을 획득하여 발송 단계를 실행하는 단계 - 상기 발송 단계에서, 발송하고자는 명령의 유형을 확정하고, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자는 명령을 확정된 실행 부재에 발송함 - ; 및 발송하고자는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 발송하고자는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자는 명령을 획득하여, 계속하여 상기 발송 단계를 실행하는 단계를 포함한다.
일부의 실시예에 있어서, 해당 방법은 실행 부재 집합 중의 실행 부재로 이미 실행 완료한 명령의 수량을 확정하는 단계를 더 포함한다.
일부의 실시예에 있어서, 발송하고자는 명령에 관련된 명령은 명령이 해당되는 연산 유형 및 명령 번호를 포함하고, 상기 발송하고자는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자는 명령을 획득하는 단계는, 상기 연산 유형의 명령을 실행하는 실행 부재를 타깃 실행 부재로 이용하고, 상기 타깃 실행 부재에서 반송된 명령 실행 완료 신호가 수신됨에 응답하여, 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량을 업데이트하는 단계와, 업데이트된 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 상기 명령 번호 이상인지 여부를 확정하는 단계와, 업데이트된 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 상기 명령 번호 이상인 것으로 확정됨에 응답하여, 다음의 발송하고자는 명령을 획득하는 단계를 포함한다.
일부의 실시예에 있어서, 명령 대기열은, 태스크 정보를 수신하는 단계; 상기 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 추가할 명령과 명령 대기열에 이전에 추가된 연산 유형의 명령에 데이터 의존성이 존재하는지 여부를 확정하고, 데이터 의존성이 존재하지 않는 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및 데이터 의존성이 존재하는 것으로 확정됨에 응답하여, 의존하는 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 계속하여 상기 추가 단계를 실행하는 단계를 통해 구축된다.
일부의 실시예에 있어서, 명령 대기열은, 태스크 정보를 수신하는 단계; 상기 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 추가할 명령을 실행하기 위한 실행 부재로 캐시 가능한 명령의 수량을 확정하고, 명령 대기열에 추가되는 순서에 따라 동일한 연산 유형에서의 추가할 명령의 명령 번호를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인지 여부를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량보다 큰 것으로 확정됨에 응답하여, 캐시 가능한 명령의 수량과 동일한 명령 번호의 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 계속하여 상기 추가 단계를 실행하는 단계를 통해 구축된다.
제2 양태에 있어서, 본 출원의 실시예는 명령 실행 장치를 제공한다. 해당 장치는, 명령 대기열을 획득하도록 구성된 명령 대기열 획득 모듈; 기정의 순서에 따라 상기 명령 대기열에서 발송하고자는 명령을 획득하여 발송 단계를 실행하도록 구성된 명령 발송 모듈 - 상기 발송 단계에서, 발송하고자는 명령의 유형을 확정하고, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자는 명령을 확정된 실행 부재에 발송함 - ; 및 발송하고자는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 발송하고자는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자는 명령을 획득하여, 계속하여 상기 발송 단계를 실행하도록 구성된 발송하고자는 명령 획득 모듈을 포함한다.
일부의 실시예에 있어서, 명령 실행 장치는, 실행 부재 집합 중의 실행 부재로 이미 실행 완료한 명령의 수량을 확정하도록 구성된 확정 모듈을 더 포함한다.
일부의 실시예에 있어서, 발송하고자는 명령에 관련된 명령은 명령이 해당되는 연산 유형 및 명령 번호를 포함하고, 상기 발송하고자는 명령 획득 모듈은, 상기 연산 유형의 명령을 실행하는 실행 부재를 타깃 실행 부재로 이용하고, 상기 타깃 실행 부재에서 반송된 명령 실행 완료 신호가 수신됨에 응답하여, 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량을 업데이트하고, 업데이트된 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 상기 명령 번호 이상인지 여부를 확정하고, 업데이트된 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 상기 명령 번호 이상인 것으로 확정됨에 응답하여, 다음의 발송하고자는 명령을 획득하도록 더 구성된다.
일부의 실시예에 있어서, 명령 대기열은, 태스크 정보를 수신하는 단계; 상기 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 추가할 명령과 명령 대기열에 이전에 추가된 연산 유형의 명령에 데이터 의존성이 존재하는지 여부를 확정하고, 데이터 의존성이 존재하지 않는 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및 데이터 의존성이 존재하는 것으로 확정됨에 응답하여, 의존하는 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 계속하여 상기 추가 단계를 실행하는 단계를 통해 구축된다.
일부의 실시예에 있어서, 명령 대기열은, 태스크 정보를 수신하는 단계; 상기 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 추가할 명령을 실행하기 위한 실행 부재로 캐시 가능한 명령의 수량을 확정하고, 명령 대기열에 추가되는 순서에 따라 동일한 연산 유형에서의 추가할 명령의 명령 번호를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인지 여부를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량보다 큰 것으로 확정됨에 응답하여, 캐시 가능한 명령의 수량과 동일한 명령 번호의 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 계속하여 상기 추가 단계를 실행하는 단계를 통해 구축된다.
제3 양태에 있어서, 본 출원의 실시예는 전자 장치를 제공하며, 해당 전자 장치는, 하나 또는 다수의 프로세서와, 하나 또는 다수의 프로그램이 저장된 저장 장치를 포함하되, 하나 또는 다수의 프로그램이 하나 또는 다수의 프로세서에 의해 실행될 경우, 하나 또는 다수의 프로세서로 제1 양태 중의 임의의 실시예의 방법을 구현하도록 한다.
제4 양태에 있어서, 본 출원의 실시예는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체를 제공하며, 해당 프로그램이 프로세서에 의해 실행될 경우, 제1 양태 중의 임의의 실시예의 방법이 구현된다.
본 출원의 실시예에서 제공하는 명령 실행 방법 및 장치는, 명령 대기열을 수신하고, 이어서 기정의 순서에 따라 명령 대기열에서 발송하고자는 명령을 획득하고, 발송하고자는 명령의 유형을 확정하고, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정될 경우, 실행 부재 집합에서 발송하고자는 명령을 실행하는 명령 부재를 확정하여, 발송하고자는 명령을 확정된 실행 부재에 발송할 수 있고, 발송하고자는 명령이 차단 유형의 명령인 것으로 확정될 경우, 다음의 발송하고자는 명령을 획득하는 것을 정지하고, 발송하고자는 명령에 관련된 명령 실행 완료를 지시하기 위한 신호가 수신된 이후, 다시 다음의 발송하고자는 명령을 획득할 수 있다. 이로써, 명령 대기열 중의 명령에 데이터 의존성이 존재할 경우, 현재 명령이 의존하는 명령이 실행 완료된 이후 대시 현재 명령을 실행하고, 명령 실행의 신뢰도를 향상시키고, 다음으로, 데이터 의존성이 존재하는 명령을 동일한 명령 대기열에 설정함으로써, 명령 대기열의 수량을 감소하고, 명령 대기열이 점용하는 메모리의 용량을 저감시킬 수 있으며, 나아가, 발송하고자는 명령이 비차단 유형의 명령인 것으로 확정될 경우, 명령을 해당 명령에 대응되는 실행 부재에 발송하여 실행함으로써, 실행 부재 집합 중의 실행 부재의 이용률을 향상시켜, 명령 실행 효율을 진일보로 향상시킬 수 있다.
본 출원의 기타 특징, 과제 및 이점들은 아래의 첨부된 도면들을 참조하여 진행한 비한정적인 실시예들에 대한 상세한 설명으로부터 명확해 질 것이다.
도 1은 본 출원에 따른 일 실시예가 적용 가능한 예시적 시스템 체계 구조도이다.
도 2는 본 출원에 따른 명령 실행 방법의 일 실시예의 흐름도이다.
도 3은 본 출원에 따른 명령 실행 방법의 일 응용 정경의 개략도이다.
도 4는 본 출원에 따른 명령 실행 방법의 다른 일 실시예의 흐름도이다.
도 5는 본 출원에 따른 명령 실행 장치의 일 실시예는 개략적 구성도이다.
도 6은 본 출원에 따른 전자 장치의 일 실시예의 컴퓨터 시스템의 개략적 구성도이다.
도 1은 본 출원에 따른 일 실시예가 적용 가능한 예시적 시스템 체계 구조도이다.
도 2는 본 출원에 따른 명령 실행 방법의 일 실시예의 흐름도이다.
도 3은 본 출원에 따른 명령 실행 방법의 일 응용 정경의 개략도이다.
도 4는 본 출원에 따른 명령 실행 방법의 다른 일 실시예의 흐름도이다.
도 5는 본 출원에 따른 명령 실행 장치의 일 실시예는 개략적 구성도이다.
도 6은 본 출원에 따른 전자 장치의 일 실시예의 컴퓨터 시스템의 개략적 구성도이다.
이하, 첨부된 도면 및 실시예들을 결부하여 본 출원에 대한 보다 상세한 설명을 진행하기로 한다. 여기에 설명되는 구체적인 실시예들은 단지 관련된 발명을 해석하기 위한 것일 뿐, 해당 발명을 한정하기 위한 것이 아님을 이해할 수 있을 것이다. 또한, 설명의 편의를 위해 첨부된 도면에는 단지 관련 발명에 관한 부분만이 도시됨을 설명하고자 한다.
본 출원의 실시예 및 실시예 중의 특징들은 모순되지 않는 한 서로 조합될 수 있음을 설명하고자 한다. 이하, 첨부된 도면을 참조하고 실시예들을 결부하여 본 출원에 대한 상세한 설명을 진행하기로 한다.
도 1은 본 출원의 명령 실행 방법 또는 명령 실행 장치의 실시예가 적용 가능한 예시적 시스템 체계 구조(100)를 나타낸다.
도 1에 도시된 바와 같이, 시스템 체계 구조(100)는 명령 스케줄링 유닛(11), 실행 부재(12) 및 버스(13)를 포함할 수 있다. 버스(13)는 명령 스케줄링 유닛(11)과 실행 부재(12) 사이에서 통신 링크를 제공하는 매체이며, 예를 들어, 주변 컴포넌트 인터커넥트 익스프레스(peripheral component interconnect express, PCIE) 버스 등이다. 여기서, 시스템 체계 구조(100)는 인공 지능칩에 적용될 수 있으며, 컴퓨터에 적용될 수도 있다.
인공 지능칩은 AI 가속기 또는 컴퓨팅 카드로 지칭될 수도 있으며, 전문적으로 인공 지능 응용 중의 대량의 컴퓨팅 밀집형의 컴퓨팅 태스크를 처리하도록 이용된다. 시스템 체계 구조(100)가 인공 지능칩에 적용될 경우, 명령 스케줄링 유닛(11)은 명령을 저장하기 위한 명령 메모리, 데이터를 저장하기 위한 데이터 메모리 및 기타의 프로그래밍 가능한 소자 등을 포함할 수 있으며, 실행 부재(12)는 범용의 실행 부재, 주문형의 실행 부재 등을 포함할 수 있다. 범용의 실행 부재는 프로그래밍 가능한 범용의 컴퓨팅 그래픽 프로세서 등을 포함하고, 주문형의 실행 부재는 단일 데이터 프로세서, 평면 데이터 프로세서, 채널 데이터 프로세서, 주문형의 메모리 및 데이터 리팩터링 엔진 등을 포함한다. 예를 들어, 상기 인공 지능칩이 심층 학습 주문형의 프로세서일 경우, 상기 각 실행 부재는, 행렬 컴퓨팅을 진행하는 데이터 처리 부재, 이미지 컨볼루션 컴퓨팅을 진행하는 데이터 처리 부재 등을 포함할 수 있다.
시스템 체계 구조(100)가 컴퓨터에 적용될 경우, 명령 스케줄링 유닛(11)은 메모리 중앙 처리 유닛 등을 포함할 수 있으며, 실행 부재(12)는 프로그래밍 가능한 범용의 컴퓨팅 그래픽 프로세서 등의 프로그래밍 가능한 소자를 포함할 수 있다.
명령 스케줄링 유닛(11)은 버스(13)를 통해 실행 부재(12)와 인터랙션을 진행하여 메시지를 발송 및 수신할 수 있다. 명령 스케줄링 유닛(11)은 명령 대기열 중의 명령을 실행 부재(12)에 발송하고, 실행 부재(12)에서 반송된 명령 실행 완료 신호를 수신할 수 있다.
본 출원의 실시예에서 제공하는 명령 실행 방법은 일반적으로 명령 스케줄링 유닛(11)으로 실행되며, 따라서, 명령 실행 장치는 일반적으로 스케줄링 유닛(11)에 설치됨을 설명하고자 한다.
도 1 중의 명령 실행 유닛, 버스 및 실행 부재의 수량은 단지 개략적인 것일 뿐, 구현 수요에 따라, 임의의 적합한 수량의 명령 실행 유닛, 버스 및 실행 부재를 구비할 수 있음을 이해하여야 한다.
이어서 도 2를 참조하면, 도 2는 본 출원에 따른 명령 실행 방법의 일 실시예의 흐름(200)을 나타낸다. 해당 명령 실행 방법은 아래와 같은 단계들을 포함할 수 있다.
단계(201)에서, 명령 대기열을 획득한다.
본 실시예에 있어서, 명령 실행 방법의 실행 주체(예컨대, 도 1에 도시된 명령 스케줄링 유닛(11))은 명령 대기열을 획득할 수 있다. 여기서, 해당 명령 대기열에는 각종의 명령이 저장된다. 구체적으로, 해당 명령 대기열 중의 명령은 조작 명령을 포함할 수 있다. 여기서, 조작 명령은 인공 지능칩의 전문용 실행 부재로 실행 가능한 명령, 예컨대, 행렬 컴퓨팅 명령, 벡터 연산 명령 등일 수 있다. 상기 명령 대기열은 수신된 외부에서 발송된 태스크 획득 요청 중의 태스크를 기반으로 중앙 처리 유닛으로 생성한 것일 수 있으며, 인공 지능칩에 사전에 저장된 것일 수도 있다. 따라서, 상기 실행 주체는 중앙 처리 유닛과 통신 연결되어 중앙 처리 유닛에서 명령 대기열을 획득할 수 있으며, 인공 지능칩에서 명령 대기열을 직접적으로 획득할 수도 있다. 상기 명령 대기열은 통상적으로 명령 실행의 선후 순서로 배열된다. 예를 들어, 상기 실행 주체에는 명령 대기열 버퍼가 설치될 수 있으며, 상기 명령 대기열은 명령 대기열 버퍼에 저장될 수 있고, 해당 명령 대기열 버퍼는 통상적으로 "선입 선출” 원칙을 실행한다. 즉, 명령 대기열 버퍼에 먼저 저장된 명령이 우선적으로 실행된다.
단계(202)에서, 기정의 순서에 따라 명령 대기열에서 발송하고자는 명령을 획득하여, 아래와 같은 발송 단계를 실행한다.
단계(2011)에서, 발송하고자는 명령의 유형을 확정한다.
본 실시예에 있어서, 상기 실행 주체는 획득한 명령 대기열에 따라 기정의 순서(예컨대, 선입 선출 순서)로 상기 명령 대기열에서 발송하고자는 명령을 획득한다. 여기서, 상기 실행 주체는 명령 대기열에서 발송하고자는 명령을 하나씩 획득할 수 있다. 하나의 명령이 획득된 이후, 먼저 발송하고자는 명령의 유형을 확정할 수 있다. 여기서, 발송하고자는 명령의 유형은 연산 유형의 명령 및 차단 유형의 명령을 포함할 수 있다. 구체적으로, 연산 유형의 명령은 조작을 지시하도록 이용된다. 예를 들어, 데이터 필터링 조작, 데이터 집계 조작, 이미지 컨볼루션 연산 조작, 완전 연결 조작 등을 지시하도록 이용된다. 통상적으로, 연산 유형의 명령은 연산 유형이 상이함에 따라, 여러 가지 상이한 연산 유형의 명령(예컨대, 컨볼루션 연산 유형의 명령, 완전 연결 연산 유형의 명령 등)으로 구분될 수도 있으며, 동일한 연산 유형의 명령은 동일한 실행 부재로 실행될 수 있다. 통상적으로, 동일한 명령 대기열에 저장된 명령 사이의 상호 협력은 동일한 태스크를 완성할 수 있다. 이로써, 동일한 실행 부재로 동일한 유형의 연산 유형의 명령을 실행함으로써, 명령 실행 속도를 향상시켜, 태스크 처리 효율을 진일보로 향상시킬 수 있다.
단계(2012)에서, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자는 명령을 확정된 실행 부재에 발송한다.
본 실시예에 있어서, 상기 실행 주체는 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정할 수 있다. 구체적으로, 상기 명령 대기열 중의 각 명령은 모두 명령 표식을 포함할 수 있다. 해당 명령 표식은 명령의 연산 유형을 표식하도록 이용될 수 있다. 예를 들어, 명령에 의해 생성된 데이터 패킷의 패킷 헤더를 명령 표식으로 이용할 수 있다. 상기 실행 주체에는 명령 표식과 명령 표식이 매칭되는 명령을 실행하기 위한 실행 부재의 대응 관계 도표가 저장될 수 있다. 따라서, 상기 실행 주체는 발송하고자는 명령이 획득된 이후, 상기 대응 관계 도표에서 명령 부재 집합 중 발송하고자는 명령을 실행하기 위한 실행 부재를 찾고, 이어서 확정된 실행 부재로 발송하고자는 명령을 실행하도록 발송하고자는 명령을 확정된 실행 부재에 발송할 수 있다.
단계(203)에서, 발송하고자는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 발송하고자는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자는 명령을 획득하여, 계속하여 발송 단계를 실행한다.
본 실시예에 있어서, 상기 실행 주체는 발송하고자는 명령이 차단 유형인 것으로 확정됨에 응답하여 실행될 경우, 구체적으로 어느 명령이 실행 완료되는 것을 기다린 후 계속하여 명령 대기열에서 다음 명령을 획득하여야 하는지를 확정할 수 있다. 여기서, 발송하고자는 명령에 관련된 명령은 즉 실행 완료를 기다려야 하는 명령이다. 여기서, 실행 완료를 기다려야 하는 명령의 명령 표식과 차단 유형의 명령을 관련시킬 수 있다. 상기 실행 주체는 수신된 명령 실행 완료된 명령 표식과 발송하고자는 명령에 관련된 명령 표식에 대해 매칭을 진행할 수 있으며, 매칭이 성공하면, 발송하고자는 명령에 관련된 명령 실행 완료를 확정할 수 있다. 이로써, 상기 실행 주체는 다음의 발송하고자는 명령을 획득하고, 이어서 계속하여 발송 단계를 실행할 수 있다.
선택 가능한 구현으로서, 명령 대기열은 아래와 같은 단계로 구축될 수 있다.
우선, 상기 실행 주체는 태스크 정보를 수신할 수 있다. 여기서, 태스크 정보는 인공 지능칩 또는 컴퓨터로 수신한 외부에서 발송된 태스크일 수 있다. 구체적으로, 인공 지능칩이 컨볼루션 신경망 모델일 경우, 해당 태스크는 이미지를 입력하여 이미지 분류 결과를 획득하는 태스크일 수 있으며, 문자를 입력하여 시맨틱 결과를 획득하는 태스크 등일 수도 있다. 해당 태스크 정보는 태스크를 설명하기 위한 정보일 수 있으며, 예컨대, 텍스트 정보, 이미지 정보, 프로세스 정보 등일 수 있다. 예시적으로, 태스크를 설명하는 정보는 예컨대 컨볼루션 연산, 완전 연결 연산, 풀링 연산 등을 포함할 수 있다.
통상적으로, 상기 실행 주체에는 태스크 정보를 기계 언어로 전환하는 프로토콜 또는 익스프레스(예컨대, C 언어, JAVA 언어 등)가 사전에 설치될 수 있다. 이로써, 상기 실행 주체는 태스크 정보가 수신된 이후, 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출할 수 있다.
이어서, 상기 실행 주체는 명령 실행 순서에 따라 추가할 명령으로서 적어도 2개의 연산 유형의 명령에서 연산 유형의 명령을 선택하고, 이어서, 아래와 같은 추가 단계를 실행할 수 있다. 즉, 추가할 명령과 명령 대기열에 이전에 추가된 연산 유형의 명령에 데이터 의존성이 존재하는지 여부를 확정할 수 있다. 즉, 추가할 명령의 조작 횟수는 명령 대기열에 이미 추가된 어느 하나 또는 어느 몇개의 연산 유형의 명령의 연산 결과를 요구하는지를 확정할 수 있다. 추가할 명령과 명령 대기열에 전에 추가된 연산 유형의 명령에 데이터 의존성이 존재하지 않는 것이 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가할 수 있다.
추가할 명령과 명령 대기열에 이전에 추가된 연산 유형의 명령 사이에 데이터 의존성이 존재하는 것이 확정됨에 응답하여, 의존하는 적어도 하나의 연산 유형의 명령에 관련된 차단 유형의 명령을 생성할 수 있다. 즉, 의존하는 적어도 하나의 연산 유형의 명령의 명령 표식을 차단 유형의 명령에 관련시킬 수 있으며, 따라서, 해당 차단 유형의 명령은 구체적으로 차단된 것이 어느 하나의 명령 또는 어느 몇개의 명령인지 지시할 수 있다. 이어서, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하여, 계속하여 추가할 명령으로서 적어도 2개의 연산 유형의 명령에서 연산 유형의 명령을 선택하여, 계속하여 추가 단계를 실행한다.
다른 일 구현으로서, 명령 대기열은 아래와 같은 단계를 통해 구축될 수도 있다.
먼저, 상기 실행 주체는 태스크 정보를 수신할 수 있다.
이어서, 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출한다.
그리고, 명령 실행 순서에 따라 추가할 명령으로서 적어도 2개의 연산 유형의 명령에서 연산 유형의 명령을 선택하여, 아래와 같은 추가 단계를 실행한다. 즉, 추가할 명령을 실행하기 위한 실행 부재로 캐시 가능한 명령의 수량을 확정한다. 구체적으로, 실행 부재 집합 중 동일한 실행 부재는 동일한 연산 유형의 명령을 실행하도록 이용될 수 있다. 그러나, 일 태스크를 완료하려면, 통상적으로 다수의 동일한 연산 유형의 명령을 포함하며, 따라서, 상기 명령 대기열에는 통상적으로 다수의 동일한 연산 유형의 명령이 포함된다. 실행 부재의 실행 효율을 향상시키기 위하여, 통상적으로 실행 부재에 캐시를 설치할 수 있으며, 이로써, 실행 부재는 하나의 명령이 실행될 경우, 실행하고자는 명령을 실행 부재에 캐시할 수 있다. 명령 대기열 중의 명령 발송 효율을 향상시키고, 나아가 상이한 연산 유형의 실행 부재의 이용률을 향상시킬 수도 있다. 그러나, 실행 부재에 캐시될 수 있는 명령의 수량은 통상적으로 제한되며, 명령 손실을 방지하기 위하여, 상기 실행 주체는 먼저 추가할 명령을 실행하기 위한 실행 부재로 캐시 가능한 명령의 수량을 확정할 수 있다. 이어서, 명령 대기열에 추가되는 순서에 따라 동일한 연산 유형에서의 추가할 명령의 명령 번호를 확정한다. 이어서, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인지 여부를 확정한다. 여기서, 1을 감한 것은 실행 부재로 실행하고 있는 명령을 감하는 것을 목적으로 한다. 나중에, 상기 실행 주체는 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가할 수 있다.
나중에, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량보다 큰 것으로 확정됨에 응답하여, 캐시 가능한 명령의 수량과 동일한 명령 번호의 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 추가할 명령으로서 적어도 2개의 연산 유형의 명령에서 연산 유형의 명령을 선택하여, 계속하여 추가 단계를 실행한다.
이어서 도 3을 참조하면, 도 3은 본 출원에 따른 명령 실행 방법의 일 응용 정경을 나타낸다.
도 3에 도시된 응용 정경에 있어서, 명령 대기열(301)은 "선입 선출" 원칙이다. 즉, 명령 대기열(301)에 먼저 추가된 명령은 먼저 실행된다. 도 3은 연산자 명령 및 차단 명령과 같은 2가지 명령을 나타낸다. 여기서, 연산자 명령은 연산 유형의 명령이고, 차단 명령은 차단 유형의 명령이다. 연산자 명령은 또한 연산자 1, 연산자 2, 연산자 3과 같은 3가지 연산 유형의 연산 유형의 명령을 포함한다. 명령 대기열(301)에는 명령 번호가 ①인 하나의 연산자 1, 명령 번호가 ②인 2개의 연산자 2, 명령 번호가 ①인 하나의 연산자 3가 포함된다. 명령 번호는 각종의 유형의 연산 유형의 명령을 명령 대기열(301)에 추가하는 순서를 대표한다. 명령 번호가 ①인 연산자 2는 먼저 명령 대기열(301)에 추가되고, 즉, 먼저 실행되며, 명령 번호가 ②인 연산자 2는 나중에 명령 대기열(301)에 추가된다. 도 3에서, 차단 명령은 번호가 ①인 연산자 2를 차단하도록 이용된다. 즉, 명령 번호가 ①인 연산자 3의 조작 횟수는 명령 번호가 ①인 연산자 2의 실행 결과가 요구된다. 이로써, 상기 차단 명령은 명령 번호가 ①인 연산자 2의 명령이 실행 완료된 이후, 연산자 3을 실행하도록 지시한다. 명령 번호가 ①인 연산자 2의 명령이 실행 완료되기 전에 명령을 방출하지 않는다. 도 3에 도시된 실행 부재(302)는 명령 대기열 중의 각 명령을 실행하도록 이용된다. 여기서, 동일한 연산 유형의 연산 유형의 명령은 동일한 실행 부재로 실행할 수 있다. 여기서, 실행 부재 1은 연산자 1을 실행하도록 이용되고, 실행 부재 2는 연산자 2를 실행하도록 이용되며, 실행 부재 3은 연산자 3을 실행하도록 이용된다.
구체적으로, T1 시각에서, 연산자 1은 실행 부재 1에 발송되고, 이어서 명령 번호가 ①인 연산자 2는 차단되지 않고, 즉시 실행 부재 2에 발송되며, 이로써, 연산자 1과 연산자 2는 동시에 실행된다. 각 실행 부재 내부에 명령 캐시가 존재할 경우, 명령 대기열은 계속하여 명령 번호가 ②인 연산자 2를 실행 부재 2에 발송할 수 있으며, 이로써 후속적인 명령의 발송을 차단하는 것을 피면하여, 스케줄링 효율을 진일보로 향상시킬 수 있다. 명령 번호가 ②인 연산자 2를 발송한 이후, 명령 대기열은 하나의 차단 명령을 해석하고, 해당 차단 명령은 차단 명령 번호가 ①인 연산자 2 명령이므로, 명령 대기열은 명령 번호가 ①인 연산자 2가 완전히 실행 완료될 때까지 기다리게 된다. T2 시각에서, 명령 번호가 ①인 연산자 2가 실행 완료되면, 실행 부재 2는 바로 캐시 중의 명령 번호가 ②인 연산자 2를 실행하고, 아울러, 명령 대기열이 명령 번호가 ①인 연산자 2가 이미 실행 완료된 것이 발견되면, 계속하여 연산자 3을 실행 유닛 3에 발송한다. T2 시각으로부터 시작하여, T3 시각 까지 3개의 실행 부재를 동시에 운행하여, 연산자 1을 실행 완료하며, 이어서 T4 시각까지 실행 부재 2와 실행 부재 3를 계속하여 동시에 일정한 시간 동안 운행하여, 연산자 3을 실행 완료한다.
본 출원의 실시예에서 제공하는 명령 실행 방법은, 명령 대기열을 수신하고, 이어서 기정의 순서에 따라 명령 대기열에서 발송하고자는 명령을 획득하고, 발송하고자는 명령의 유형을 확정하고, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정될 경우, 실행 부재 집합에서 발송하고자는 명령을 실행하는 명령 부재를 확정하여, 발송하고자는 명령을 확정된 실행 부재에 발송할 수 있고, 발송하고자는 명령이 차단 유형의 명령인 것으로 확정될 경우, 다음의 발송하고자는 명령을 획득하는 것을 정지하고, 발송하고자는 명령에 관련된 명령 실행 완료를 지시하기 위한 신호가 수신된 이후, 다시 다음의 발송하고자는 명령을 획득할 수 있다. 명령 대기열 중의 명령에 데이터 의존성이 존재할 경우, 현재 명령이 의존하는 명령이 실행 완료된 이후 대시 현재 명령을 실행하고, 명령 실행의 신뢰도를 향상시키고, 다음으로, 데이터 의존성이 존재하는 명령을 동일한 명령 대기열에 설정함으로써, 명령 대기열의 수량을 감소하고, 명령 대기열이 점용하는 메모리의 용량을 저감시킬 수 있으며, 나아가, 발송하고자는 명령이 비차단 유형의 명령인 것으로 확정될 경우, 명령을 해당 명령에 대응되는 실행 부재에 발송하여 실행함으로써, 실행 부재 집합 중의 실행 부재의 이용률을 향상시켜, 명령 실행 효율을 진일보로 향상시킬 수 있다.
나아가, 도 4를 참조하면, 도 4는 본 출원에 따른 명령 실행 방법의 다른 일 실시예의 흐름(400)을 나타낸다. 해당 명령 실행 방법은 아래와 같은 단계들을 포함할 수 있다.
단계(401)에서, 명령 대기열을 획득한다.
본 실시예에 있어서, 명령 실행 방법의 실행 주체(예컨대, 도 1에 도시된 명령 스케줄링 유닛(11))는 명령 대기열을 획득할 수 있다. 여기서, 해당 명령 대기열에는 각종의 명령이 저장된다. 구체적으로, 해당 명령 대기열 중의 명령은 조작 명령을 포함할 수 있다. 여기서, 조작 명령은 인공 지능칩의 전문용 실행 부재로 실행 가능한 명령,예를 들어, 행렬 컴퓨팅 명령, 벡터 연산 명령 등일 수 있다. 상기 명령 대기열은 수신된 외부에서 발송된 태스크 획득 요청 중의 태스크를 기반으로 중앙 처리 유닛으로 생성한 것일 수 있으며, 인공 지능칩에 사전에 저장된 것일 수도 있다. 따라서, 상기 실행 주체는 중앙 처리 유닛과 통신 연결되어 중앙 처리 유닛에서 명령 대기열을 획득할 수 있으며, 인공 지능칩에서 명령 대기열을 직접적으로 획득할 수도 있다. 상기 명령 대기열은 통상적으로 명령 실행의 선후 순서로 배열된다.
단계(402)에서, 기정의 순서에 따라 명령 대기열에서 발송하고자는 명령을 획득하여, 아래와 같은 발송 단계를 실행한다.
단계(4021)에서, 발송하고자는 명령의 유형을 확정한다.
본 실시예에 있어서, 상기 실행 주체는 획득한 명령 대기열에 따라 기정의 순서(예컨대, 선입 선출 순서)로 상기 명령 대기열에서 발송하고자는 명령을 획득한다. 여기서, 상기 실행 주체는 명령 대기열에서 발송하고자는 명령을 하나씩 획득할 수 있다. 하나의 명령이 획득된 이후, 먼저 발송하고자는 명령의 유형을 확정할 수 있다. 여기서, 발송하고자는 명령의 유형은 연산 유형의 명령 및 차단 유형의 명령을 포함할 수 있다.
단계(4022)에서, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자는 명령을 확정된 실행 부재에 발송한다.
본 실시예에 있어서, 상기 실행 주체는 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정할 수 있다. 구체적으로, 상기 명령 대기열 중의 각 명령은 모두 명령 표식을 포함할 수 있다. 해당 명령 표식은 명령의 연산 유형을 표식하도록 이용될 수 있다. 상기 실행 주체에는 명령 표식과 명령 표식이 매칭되는 명령을 실행하기 위한 실행 부재의 대응 관계 도표가 저장될 수 있다. 따라서, 상기 실행 주체는 발송하고자는 명령이 획득된 이후, 상기 대응 관계 도표에서 명령 부재 집합 중 발송하고자는 명령을 실행하기 위한 실행 부재를 찾고, 이어서 확정된 실행 부재로 발송하고자는 명령을 실행하도록 발송하고자는 명령을 확정된 실행 부재에 발송할 수 있다.
단계(403)에서, 실행 부재 집합 중의 실행 부재로 실행 완료한 명령의 수량을 확정한다.
본 실시예에 있어서, 상기 실행 주체에는 실행부 집합 중의 실행 부재로 실행 완료한 명령의 수량을 통계하기 위한 계수기가 설치될 수 있다. 여기서, 실행 부재로 하나의 명령을 실행 완료할 때마다, 상기 실행 주체에 명령 실행 완료 신호를 발송할 수 있다. 이로써, 상기 실행 주체는 기정의 시간 구간 내에 수신한 각 실행 주체로 발송한 명령 실행 완료 신호의 수량에 따라, 각 실행 부재에 대응되는 실행 완료한 명령의 수량을 확정할 수 있다. 이로써, 명령 실행 상황을 보다 양호하게 확정할 수 있다.
단계(404)에서, 발송하고자는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 연산 유형의 명령을 실행하는 실행 부재를 타깃 실행 부재로 이용하고, 타깃 실행 부재에서 반송된 명령 실행 완료 신호가 수신됨에 응답하여, 타깃 실행 부재에 의해 실행 완료된 명령의 수량을 업데이트한다.
본 실시예에 있어서, 발송하고자는 명령에 관련된 명령은 명령이 해당되는 연산 유형 및 명령 번호를 포함할 수 있다. 이로써, 상기 실행 주체는 발송하고자는 명령이 차단 명령인 것으로 확정된 이후, 발송하고자는 명령에 관련된 명령이 해당되는 연산 유형을 실행하는 실행 부재를 타깃 실행 부재로 이용할 수 있다. 타깃 실행 부재에서 반송된 명령 실행 완료 신호가 수신됨에 응답하여, 타깃 실행 부재에 의해 실행 완료된 명령의 수량을 업데이트할 수 있다. 여기서, 해당 명령 번호는 상기 명령 대기열에서의 발송하고자는 명령에 관련된 명령이 해당되는 연산 유형의 서열 번호일 수 있다. 즉, 동일한 유형의 연산 유형의 명령에 있어서, 해당 관련된 명령이 명령 대기열에서 몇번째에 배열되는지를 나타낸다.
단계(405)에서, 업데이트된 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 명령 번호 이상인지 여부를 확정한다.
본 실시예에 있어서, 상기 실행 주체는 업데이트된 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 발송하고자는 명령에 관련된 명령의 명령 번호 이상인지 여부를 확정할 수도 있다.
단계(406)에서, 업데이트된 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 명령 번호 이상인 것으로 확정됨에 응답하여, 다음의 발송하고자는 명령을 획득한다.
본 실시예에 있어서, 상기 실행 주체는 업데이트된 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 발송하고자는 명령에 관련된 명령의 명령 번호보다 크거나 동일한 것이 확정됨에 응답하여, 발송하고자는 명령에 관련된 명령이 이미 실행 완료됨을 확정할 수 있다. 이로써, 상기 실행 주체는 다음의 발송하고자는 명령을 획득하여 계속하여 단계(402) 내지 단계(406)의 단계들을 실행할 수 있다.
도 4로부터 알 수 있는 바, 도 2의 대응되는 실시예와 비교시, 본 실시예 중의 명령 실행 방법의 흐름(400)은 실행 주체에 계수기를 설치하고, 각 실행 부재로 실행 완료한 명령의 수량을 통계하여 발송하고자는 명령에 관련된 명령의 완료 상황을 확정하는 것을 두드러지게 함으로써, 명령 발송의 정확성을 진일보로 향상시킨다.
이어서 도 5를 참조하면, 도 2 및 도 4에 도시된 방법의 구현으로서, 본 출원은 명령 실행 장치의 일 실시예를 제공하며, 해당 장치 실시예는 도 2에 도시된 방법 실시예에 대응되고, 해당 장치는 구체적으로 인공 지능칩 또는 컴퓨터의 명령 스케줄링 유닛에 적용될 수 있다.
도 5에 도시된 바와 같이, 본 실시예의 명령 실행 장치(500)는, 명령 대기열 획득 모듈(501), 명령 발송 모듈(502) 및 발송하고자는 명령 획득 모듈(503)을 포함할 수 있다. 여기서, 명령 대기열 획득 모듈(501)은 명령 대기열을 획득하도록 구성된다. 명령 발송 모듈(502)은 기정의 순서에 따라 명령 대기열에서 발송하고자는 명령을 획득하여 발송 단계를 실행하도록 구성되되, 상기 발송 단계에서, 발송하고자는 명령의 유형을 확정하고, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자는 명령을 확정된 실행 부재에 발송한다. 발송하고자는 명령 획득 모듈(503)은 발송하고자는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 발송하고자는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자는 명령을 획득하여, 계속하여 발송 단계를 실행하도록 구성된다.
본 실시예에 있어서, 명령 실행 장치(500) 중의 명령 대기열 획득 모듈(501), 명령 발송 모듈(502) 및 발송하고자는 명령 획득 모듈(503)의 구체적인 처리 및 이들의 유익한 효과는 도 2의 대응되는 실시예 중의 단계(201), 단계(202) 및 단계(203)의 수현의 관련 설명을 참조할 수 있으며, 이에 대한 중복된 설명은 생략하기로 한다.
본 실시예의 일부 선택 가능한 구현에 있어서, 명령 실행 장치(500)는, 실행 부재 집합 중의 실행 부재로 이미 실행 완료한 명령의 수량을 통계하도록 구성된 통계 모듈(미도시)을 더 포함한다.
본 실시예의 일부 선택 가능한 구현에 있어서, 발송하고자는 명령에 관련된 명령은 명령이 해당되는 연산 유형 및 명령 번호를 포함하고, 발송하고자는 명령 획득 모듈(503)은, 연산 유형의 명령을 실행하는 실행 부재를 타깃 실행 부재로 이용하고, 타깃 실행 부재에서 반송된 명령 실행 완료 신호가 수신됨에 응답하여, 타깃 실행 부재에 의해 실행 완료된 명령의 수량을 업데이트하고, 업데이트된 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 명령 번호 이상인지 여부를 확정하고, 업데이트된 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 명령 번호 이상인 것으로 확정됨에 응답하여, 다음의 발송하고자는 명령을 획득하도록 더 구성된다.
일부의 실시예에 있어서, 명령 대기열은, 태스크 정보를 수신하는 단계; 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서 명령 실행 순서에 따라 추가할 명령으로서 적어도 2개의 연산 유형의 명령에서 연산 유형의 명령을 선택하여, 추가할 명령과 명령 대기열에 이전에 추가된 연산 유형의 명령에 데이터 의존성이 존재하는지 여부를 확정하고, 데이터 의존성이 존재하지 않는 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가하는 추가함 - ; 및 데이터 의존성이 존재하는 것으로 확정됨에 응답하여, 의존하는 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 추가할 명령으로서 적어도 2개의 연산 유형의 명령에서 연산 유형의 명령을 선택하여, 계속하여 추가 단계를 실행하는 단계를 통해 구축된다.
일부의 실시예에 있어서, 명령 대기열은, 태스크 정보를 수신하는 단계; 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 추가할 명령으로서 적어도 2개의 연산 유형의 명령에서 연산 유형의 명령을 선택하여, 추가할 명령을 실행하기 위한 실행 부재로 캐시 가능한 명령의 수량을 확정하고, 명령 대기열에 추가되는 순서에 따라 동일한 연산 유형에서의 추가할 명령의 명령 번호를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인지 여부를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량보다 큰 것으로 확정됨에 응답하여, 캐시 가능한 명령의 수량과 동일한 명령 번호의 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 추가할 명령으로서 적어도 2개의 연산 유형의 명령에서 연산 유형의 명령을 선택하여, 계속하여 추가 단계를 실행하는 단계를 통해 구축된다.
본 출원의 실시예에서 제공하는 명령 실행 장치는, 먼저 명령 대기열을 수신하고, 이어서 기정의 순서에 따라 명령 대기열에서 발송하고자는 명령을 획득하고, 발송하고자는 명령의 유형을 확정하고, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정될 경우, 실행 부재 집합에서 발송하고자는 명령을 실행하는 명령 부재를 확정하여, 발송하고자는 명령을 확정된 실행 부재에 발송할 수 있고, 발송하고자는 명령이 차단 유형의 명령인 것으로 확정될 경우, 다음의 발송하고자는 명령을 획득하는 것을 정지하고, 발송하고자는 명령에 관련된 명령 실행 완료를 지시하기 위한 신호가 수신된 이후, 다시 다음의 발송하고자는 명령을 획득할 수 있다. 명령 대기열 중의 명령에 데이터 의존성이 존재할 경우, 현재 명령이 의존하는 명령이 실행 완료된 이후 대시 현재 명령을 실행하고, 명령 실행의 신뢰도를 향상시키고, 다음으로, 데이터 의존성이 존재하는 명령을 동일한 명령 대기열에 설정함으로써, 명령 대기열의 수량을 감소하고, 명령 대기열이 점용하는 메모리의 용량을 저감시킬 수 있으며, 나아가, 발송하고자는 명령이 비차단 유형의 명령인 것으로 확정될 경우, 명령을 해당 명령에 대응되는 실행 부재에 발송하여 실행함으로써, 실행 부재 집합 중의 실행 부재의 이용률을 향상시켜, 명령 실행 효율을 진일보로 향상시킬 수 있다.
본 출원의 실시예는 전자 장치를 더 제출한다. 해당 전자 장치의 구성은 본 출원의 전자 장치의 일 실시예의 컴퓨터 시스템(600)의 개략적 구성도를 나타내는 도 6을 참조할 수 있다. 도 6에 도시된 전자 장치는 단지 일 예시일 뿐, 본 출원의 실시예의 기능 및 이용 범위를 한정하기 위한 것이 아니다.
도 6에 도시되 바와 같이, 컴퓨터 시스템(600)은 하나 또는 다수의 중앙 처리 유닛(601; CPU) 및 하나 또는 다수의 인공 지능칩(612)을 포함한다. CPU(601)는 판독 전용 메모리 장치(602; ROM)에 저장된 프로그램 또는 저장부(608)로부터 랜덤 액세스 메모리 장치(603; RAM)에 로딩된 프로그램에 의해 각종의 적당한 동작과 처리를 실행할 수 있다. 인공 지능칩(612)은 하나 또는 다수의 명령 스케줄링 유닛, 하나 또는 다수의 실행 유닛을 포함하고, 인공 지능칩(612)은 CPU(601)에서 수신된 프로그램에 따라 각종의 적당한 동작 및 처리를 실행할 수 있다. RAM(603)에는 시스템(600)을 작동하기에 필요한 각종 프로그램 및 데이터가 더 저장된다. CPU(601), ROM(602), RAM(603) 및 인공 지능칩(612)은 버스(604)를 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(605)도 버스(604)에 연결된다.
I/O 인터페이스(605)에 연결되는 부재로서, 터치 스크린, 버튼, 마우스, 마이크로폰, 카메라 등을 포함하는 입력부(606)와, 예컨대 유기 발광 다이오드(OLED) 표시 장치, 액정 표시 장치(LCD) 등 및 스피커 등을 포함하는 출력부(607)와, 하드 드라이버 등을 포함하는 저장부(608)와, 예컨대 LAN 카드, 모뎀 등의 네트워크 인터페이스 카드를 포함하는 통신부(609)가 포함된다. 통신부(609)는 인터넷과 같은 네트워크를 통해 통신처리를 실행한다. 구동부(610)도 수요에 따라 I/O 인터페이스(605)에 연결된다. 자기 디스크, 광 디스크, 광자기 디스크, 반도체 메모리 장치 등과 같은 착탈 가능한 매체(611)는 이러한 매체로부터 판독된 컴퓨터 프로그램을 수요에 따라 저장부(608)에 설치하도록 수요에 따라 구동부(610)에 설치된다.
특히는, 본 개시의 실시예에 의하면, 흐름도를 참조하여 설명한 상기 과정들은 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 예를 들어, 본 개시의 실시예는 컴퓨터 프로그램 제품을 포함하고, 상기 컴퓨터 프로그램 제품은 컴퓨터 판독 가능한 매체에 유형적으로 적재된 컴퓨터 프로그램을 포함하며, 해당 컴퓨터 프로그램은 흐름도에 도시된 방법을 실행하기 위한 컴퓨터 코드를 포함한다. 이러한 실시예에 있어서, 해당 컴퓨터 프로그램은 통신부(609)를 경유하여 네트워크로부터 다운로드되어 설치될 수 있고 및/또는 착탈 가능한 매체(611)로부터 설치될 수 있다. 해당 컴퓨터 프로그램이 인공 지능칩(612)의 범용의 실행 부재에 의해 실행될 경우, 본 출원의 방법에 한정된 상기 기능을 실행한다.
본 출원에 상술한 컴퓨터 판독 가능한 매체는 컴퓨터 판독 가능한 신호 매체 또는 컴퓨터 판독 가능한 저장 매체 또는 상술한 양자의 임의의 조합일 수 있음을 설명하고자 한다. 컴퓨터 판독 가능한 저장 매체는 예컨대 전기, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 소자, 또는 이들의 임의의 조합일 수 있으나, 이에 한정되지 않는다. 컴퓨터 판독 가능한 저장 매체의 보다 구체적인 예시로서, 하나 또는 다수의 도선을 구비하는 전기적 연결, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 및 프로그래밍 가능한 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 메모리 소자, 자기 메모리 소자, 또는 이들의 임의의 적합한 조합을 포함할 수 있으나, 이에 한정되지 않는다. 본 출원에 있어서, 컴퓨터 판독 가능한 저장 매체는 프로그램을 포함하거나 저장하는 유형 매체일 수 있고, 해당 프로그램은 명령 실행 시스템, 장치 또는 소자에 의해 사용되거나 이들과 결합되어 사용될 수 있다. 그러나 본 출원에 있어서, 컴퓨터 판독 가능한 신호 매체는 컴퓨터 판독 가능한 프로그램 코드를 적재한 베이스 밴드 또는 캐리어의 일부로서 전파되는 데이터에 포함될 수 있다. 이렇게 전파되는 데이터 신호는 전자기 신호, 광 신호 또는 이들의 임의의 적합한 조합을 포함하는 여러 가지 형식을 이용할 수 있으나, 이에 한정되지 않는다. 컴퓨터 판독 가능한 신호 매체는 컴퓨터 판독 가능한 저장 매체 이외의 임의의 컴퓨터 판독 가능한 매체일 수도 있으며, 해당 컴퓨터 판독 가능한 매체는 명령 실행 시스템, 장치 또는 소자의해 사용되거나 이들과 결합되어 사용되는 프로그램을 발송하거나, 전파 또는 전송할 수 있다. 컴퓨터 판독 가능한 매체에 포함된 프로그램 코드는 무선, 유선, 광섬유 케이블, RF 등, 또는 이들의 임의의 적합한 조합을 포함하는 임의의 적당한 매체로 전송할 수 있으나, 이에 한정되지 않는다.
본 출원의 조작을 실행하기 위한 컴퓨터 프로그램 코드는 한가지 또는 여러 가지 프로그래밍 언어 또는 이들의 조합으로 작성될 수 있으며, 상기 프로그래밍 언어는 Java, Smalltalk, C++와 같은 객체 지향의 프로그래밍 언어를 포함하며, "C" 언어 또는 유사한 프로그래밍 언어와 같은 범용의 절차적 프로그래밍 언어를 포함하기도 한다. 프로그램 코드는 완전히 사용자 컴퓨터에서 실행되거나, 부분적으로 사용자 컴퓨터에서 실행되어 독립적인 소프트웨어 패킷으로서 실행되거나, 부분적으로 사용자 컴퓨터에서 실행되고 부분적으로 원격 컴퓨터에서 실행되거나, 또는, 완전히 원격 컴퓨터 또는 서버에서 실행될 수 있다. 원격 컴퓨터에 관련된 정경에 있어서, 원격 컴퓨터는 임의의 유형의 네트워크(근거리 통신망(LAN) 또는 광역 통신망(WAN))를 통해 사용자 컴퓨터에 연결될 수 있으며, 또는, 외부 컴퓨터에 연결될 수 있으며, 예컨대, 인터넷 서비스 제공 업체를 이용하여 인터넷을 통해 연결될 수 있다.
첨부된 도면 중의 흐름도 및 블록도는 본 출원의 각 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 구현 가능한 체계구조, 기능 및 조작을 도시하였다. 이러한 방면에서, 흐름도 또는 블록도 중의 각 블록은 하나의 모듈, 프로그램 세그먼트 또는 코드의 일부분을 대표할 수 있고, 해당 모듈, 프로그램 세그먼트 또는 코드의 일부분은 규정된 로직 기능을 구현하기 위한 하나 또는 다수의 실행 가능한 명령을 포함한다. 일부 대체 구현에 있어서, 블록에 표기된 기능들은 첨부된 도면에 표기된 순서와 다른 순서로 발생할 수도 있음을 유의하여야 한다. 예를 들어, 순차적으로 표시된 두 개의 블록은 실제적으로 거의 동시에 실행될 수 있고, 경우에 따라 반대된 순서에 따라 실행될 수도 있으며, 이는 관련된 기능에 따라 결정된다. 블록도 및/또는 흐름도 중의 각 블록 및 블록도 및/또는 흐름도 중의 블록들의 조합은 규정된 기능 또는 조작을 실행하는 하드웨어 기반의 전용 시스템으로 구현되거나, 전용 하드웨어와 컴퓨터 명령의 조합으로 구현될 수 있음을 유의하여야 한다.
본 출원의 실시예에 설명된 관련된 모듈은 소프트웨어 방식으로 구현될 수 있으며, 하드웨어 방식으로 구현될 수도 있다. 설명된 모듈은 프로세서에 설치될 수 있으며, 예컨대, 범용의 실행 부재가 명령 대기열 획득 모듈, 명령 발송 모듈 및 발송하고자는 명령 획득 모듈을 포함하는 것으로 설명할 수 있다. 여기서, 이러한 모듈의 명칭은 일부의 경우에 해당 모듈 자체에 대한 한정을 구성하지 않으며, 예컨대, 명령 대기열 획득 모듈은 "명령 대기열을 획득하는 모듈"로 설명될 수도 있다.
다른 일 양태에 있어서, 본 출원은 컴퓨터 판독 가능한 매체를 더 제공하며, 해당 컴퓨터 판독 가능한 매체는 상기 실시예에 설명된 전자 장치에 포함된 것일 수 있으며, 해당 저장 장치에 설치되지 않고 독립적으로 존재할 수도 있다. 상기 컴퓨터 판독 가능한 매체에는 하나 또는 다수의 프로그램이 적재되고, 상기 하나 또는 다수의 프로그램이 해당 전자 장치에 의해 실행될 경우, 해당 전자 장치로, 명령 대기열을 획득하고, 기정의 순서에 따라 명령 대기열에서 발송하고자는 명령을 획득하여, 발송하고자는 명령의 유형을 확정하고, 발송하고자는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자는 명령을 확정된 실행 부재에 발송하는 발송 단계를 실행하고, 발송하고자는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 발송하고자는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자는 명령을 획득하여, 계속하여 발송 단계를 실행하도록 한다.
이상의 설명은 단지 본 출원의 비교적 바람직한 실시예 및 운용한 기술적 원리에 대한 설명이다. 본 출원에 관련된 발명의 범위는 상기 기술적 특징들의 특정 조합으로 이루어진 기술적 방안들에 한정되는 것이 아니라, 본 발명의 주지를 벗어나지 않고서 상기 기술적 특징들 또는 그들의 균등한 특징들의 임의의 조합으로 형성되는 기타의 기술적 방안들도 포함하여야 함을 해당 기술분야의 당업자는 이해하여야 한다. 예를 들어, 상기 특징들과 본 출원에 개시되어 있으나 이에 한정되지 않는 유사한 기능을 구비한 기술적 특징을 서로 대체하여 형성되는 기술적 방안도 포함한다.
Claims (12)
- 명령 실행 방법에 있어서,
명령 대기열을 획득하는 단계;
기정의 순서에 따라 상기 명령 대기열에서 발송하고자 하는 명령을 획득하여 발송 단계를 실행하는 단계 - 상기 발송 단계에서, 발송하고자 하는 명령의 유형을 확정하고, 발송하고자 하는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자 하는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자 하는 명령을 확정된 실행 부재에 발송함 - ;
발송하고자 하는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 발송하고자 하는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자 하는 명령을 획득하여, 계속하여 상기 발송 단계를 실행하는 단계; 및
상기 실행 부재 집합 중의 실행 부재로 이미 실행 완료한 명령의 수량을 통계하는 단계
를 포함하는 명령 실행 방법.
- 삭제
- 제1항에 있어서,
상기 발송하고자 하는 명령에 관련된 명령은,
명령이 해당되는 연산 유형 및 명령 번호
를 포함하고,
상기 발송하고자 하는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자 하는 명령을 획득하는 단계는,
상기 연산 유형의 명령을 실행하는 실행 부재를 타깃 실행 부재로 이용하고, 상기 타깃 실행 부재에서 반송된 명령 실행 완료 신호가 수신됨에 응답하여, 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량을 업데이트하는 단계와,
업데이트된 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 상기 명령 번호 이상인지 여부를 확정하는 단계와,
업데이트된 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 상기 명령 번호 이상인 것으로 확정됨에 응답하여, 다음의 발송하고자 하는 명령을 획득하는 단계
를 포함하는 것을 특징으로 하는 명령 실행 방법.
- 제1항에 있어서,
상기 명령 대기열은,
태스크 정보를 수신하는 단계;
상기 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 추가할 명령과 명령 대기열에 이전에 추가된 연산 유형의 명령에 데이터 의존성이 존재하는지 여부를 확정하고, 데이터 의존성이 존재하지 않는 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및
데이터 의존성이 존재하는 것으로 확정됨에 응답하여, 의존하는 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 계속하여 상기 추가 단계를 실행하는 단계를 통해 구축되는 것을 특징으로 하는 명령 실행 방법.
- 제1항에 있어서,
상기 명령 대기열은,
태스크 정보를 수신하는 단계;
상기 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 추가할 명령을 실행하기 위한 실행 부재로 캐시 가능한 명령의 수량을 확정하고, 명령 대기열에 추가되는 순서에 따라 동일한 연산 유형에서의 추가할 명령의 명령 번호를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인지 여부를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및
명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량보다 큰 것으로 확정됨에 응답하여, 캐시 가능한 명령의 수량과 동일한 명령 번호의 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 계속하여 상기 추가 단계를 실행하는 단계를 통해 구축되는 것을 특징으로 하는 명령 실행 방법.
- 명령 실행 장치에 있어서,
명령 대기열을 획득하도록 구성된 명령 대기열 획득 모듈;
기정의 순서에 따라 상기 명령 대기열에서 발송하고자 하는 명령을 획득하여 발송 단계를 실행하도록 구성된 명령 발송 모듈 - 상기 발송 단계에서, 발송하고자 하는 명령의 유형을 확정하고, 발송하고자 하는 명령이 연산 유형의 명령인 것으로 확정됨에 응답하여, 실행 부재 집합에서 발송하고자 하는 명령을 실행하기 위한 실행 부재를 확정하고, 발송하고자 하는 명령을 확정된 실행 부재에 발송함 - ;
발송하고자 하는 명령이 차단 유형의 명령인 것으로 확정됨에 응답하여, 발송하고자 하는 명령에 관련된 명령이 실행 완료됨을 지시하기 위한 신호를 수신한 이후, 다음의 발송하고자 하는 명령을 획득하여, 계속하여 상기 발송 단계를 실행하도록 구성된 발송하고자 하는 명령 획득 모듈; 및
상기 실행 부재 집합 중의 실행 부재로 이미 실행 완료한 명령의 수량을 통계하도록 구성된 통계 모듈
을 포함하는 명령 실행 장치.
- 삭제
- 제6항에 있어서,
상기 발송하고자 하는 명령에 관련된 명령은,
명령이 해당되는 연산 유형 및 명령 번호
를 포함하고,
상기 발송하고자 하는 명령 획득 모듈은,
상기 연산 유형의 명령을 실행하는 실행 부재를 타깃 실행 부재로 이용하고, 상기 타깃 실행 부재에서 반송된 명령 실행 완료 신호가 수신됨에 응답하여, 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량을 업데이트하고,
업데이트된 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 상기 명령 번호 이상인지 여부를 확정하고,
업데이트된 상기 타깃 실행 부재에 의해 실행 완료된 명령의 수량이 상기 명령 번호 이상인 것으로 확정됨에 응답하여, 다음의 발송하고자 하는 명령을 획득하도록 더 구성되는 것을 특징으로 하는 명령 실행 장치.
- 제6항에 있어서,
상기 명령 대기열은,
태스크 정보를 수신하는 단계;
상기 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 추가할 명령과 명령 대기열에 이전에 추가된 연산 유형의 명령에 데이터 의존성이 존재하는지 여부를 확정하고, 데이터 의존성이 존재하지 않는 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및
데이터 의존성이 존재하는 것으로 확정됨에 응답하여, 의존하는 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 계속하여 상기 추가 단계를 실행하는 단계를 통해 구축되는 것을 특징으로 하는 명령 실행 장치.
- 제6항에 있어서,
상기 명령 대기열은,
태스크 정보를 수신하는 단계;
상기 태스크 정보에서 적어도 2개의 연산 유형의 명령을 추출하고, 추가 단계를 실행하는 단계 - 상기 추가 단계에서, 명령 실행 순서에 따라 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 추가할 명령을 실행하기 위한 실행 부재로 캐시 가능한 명령의 수량을 확정하고, 명령 대기열에 추가되는 순서에 따라 동일한 연산 유형에서의 추가할 명령의 명령 번호를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인지 여부를 확정하고, 명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량 이하인 것으로 확정됨에 응답하여, 추가할 명령을 명령 대기열에 추가함 - ; 및
명령 번호에서 1을 감한 것이 캐시 가능한 명령의 수량보다 큰 것으로 확정됨에 응답하여, 캐시 가능한 명령의 수량과 동일한 명령 번호의 연산 유형의 명령에 관련된 차단 유형의 명령을 생성하고, 생성된 차단 유형의 명령 및 추가할 명령을 명령 대기열에 순차적으로 추가하고, 상기 적어도 2개의 연산 유형의 명령에서 추가할 명령으로서 연산 유형의 명령을 선택하여, 계속하여 상기 추가 단계를 실행하는 단계를 통해 구축되는 것을 특징으로 하는 명령 실행 장치.
- 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체에 있어서,
상기 컴퓨터 프로그램이 실행 부재에 의해 실행될 경우, 제1항, 및 제3항 내지 제5항 중의 어느 한 항의 명령 실행 방법이 구현되는 것을 특징으로 하는 컴퓨터 판독 가능한 저장 매체.
- 하나 또는 다수의 프로세서와,
하나 또는 다수의 프로그램을 저장하기 위한 저장 장치를 포함하는 전자 장치에 있어서,
상기 하나 또는 다수의 프로그램이 상기 하나 또는 다수의 프로세서에 의해 실행될 경우, 상기 하나 또는 다수의 프로세서로 제1항, 및 제3항 내지 제5항 중의 어느 한 항의 명령 실행 방법을 구현하도록 하는 전자 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810911185.X | 2018-08-10 | ||
CN201810911185.XA CN110825440B (zh) | 2018-08-10 | 2018-08-10 | 指令执行方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200018233A KR20200018233A (ko) | 2020-02-19 |
KR102225768B1 true KR102225768B1 (ko) | 2021-03-09 |
Family
ID=69407018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190082746A KR102225768B1 (ko) | 2018-08-10 | 2019-07-09 | 명령 실행 방법 및 장치 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11422817B2 (ko) |
JP (1) | JP7012689B2 (ko) |
KR (1) | KR102225768B1 (ko) |
CN (1) | CN110825440B (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467702A (zh) * | 2020-03-31 | 2021-10-01 | 上海商汤智能科技有限公司 | 数据处理装置、集成电路和ai加速器 |
CN113496275B (zh) * | 2020-04-08 | 2023-07-25 | 北京地平线机器人技术研发有限公司 | 指令执行方法、装置和电子设备 |
CN111523283B (zh) * | 2020-04-16 | 2023-05-26 | 北京百度网讯科技有限公司 | 一种验证处理器的方法、装置、电子设备及存储介质 |
CN112559040B (zh) * | 2020-12-02 | 2021-12-28 | 北京百度网讯科技有限公司 | 指令执行方法、装置、电子设备和存储介质 |
CN112506570B (zh) * | 2020-12-03 | 2023-09-08 | 长沙树根互联技术有限公司 | 设备指令下发方法、***和服务器 |
CN113778528B (zh) * | 2021-09-13 | 2023-03-24 | 北京奕斯伟计算技术股份有限公司 | 指令发送方法、装置、电子设备及存储介质 |
CN115269016A (zh) * | 2022-09-27 | 2022-11-01 | 之江实验室 | 一种用于图计算的指令执行方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010039610A1 (en) * | 2000-03-10 | 2001-11-08 | Busa Natalino Giorgio | Data processing device, method of operating a data processing device and method for compiling a program |
JP2006517322A (ja) | 2003-02-10 | 2006-07-20 | アナログ・デバイシズ・インコーポレーテッド | パイプライン化ディジタルプロセッサにおけるハザード検出および管理のための方法および装置 |
JP2012174114A (ja) | 2011-02-23 | 2012-09-10 | Fujitsu Ltd | 演算処理装置および演算処理装置のスロット制御方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10149285A (ja) | 1996-11-18 | 1998-06-02 | Hitachi Ltd | 命令実行制御方法および情報処理装置 |
US6006325A (en) * | 1996-12-19 | 1999-12-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for instruction and data serialization in a computer processor |
US6708269B1 (en) * | 1999-12-30 | 2004-03-16 | Intel Corporation | Method and apparatus for multi-mode fencing in a microprocessor system |
US6438681B1 (en) * | 2000-01-24 | 2002-08-20 | Hewlett-Packard Company | Detection of data hazards between instructions by decoding register indentifiers in each stage of processing system pipeline and comparing asserted bits in the decoded register indentifiers |
US6609192B1 (en) * | 2000-06-06 | 2003-08-19 | International Business Machines Corporation | System and method for asynchronously overlapping storage barrier operations with old and new storage operations |
US20020087833A1 (en) * | 2000-12-28 | 2002-07-04 | Burns James S. | Method and apparatus for distributed processor dispersal logic |
US7085917B2 (en) * | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Multi-pipe dispatch and execution of complex instructions in a superscalar processor |
US7313709B2 (en) * | 2004-11-05 | 2007-12-25 | International Business Machines Corporation | Instruction set with thermal opcode for high-performance microprocessor, microprocessor, and method therefor |
US20070198812A1 (en) * | 2005-09-27 | 2007-08-23 | Ibm Corporation | Method and apparatus for issuing instructions from an issue queue including a main issue queue array and an auxiliary issue queue array in an information handling system |
US7685405B1 (en) * | 2005-10-14 | 2010-03-23 | Marvell International Ltd. | Programmable architecture for digital communication systems that support vector processing and the associated methodology |
US7634591B2 (en) | 2006-01-26 | 2009-12-15 | International Business Machines Corporation | Method and apparatus for tracking command order dependencies |
JP5093237B2 (ja) * | 2007-06-20 | 2012-12-12 | 富士通株式会社 | 命令処理装置 |
CN102089752B (zh) | 2008-07-10 | 2014-05-07 | 洛克泰克科技有限公司 | 依赖性问题的有效率的并行计算 |
US7941644B2 (en) * | 2008-10-16 | 2011-05-10 | International Business Machines Corporation | Simultaneous multi-thread instructions issue to execution units while substitute injecting sequence of instructions for long latency sequencer instruction via multiplexer |
US9354888B2 (en) * | 2012-03-28 | 2016-05-31 | International Business Machines Corporation | Performing predecode-time optimized instructions in conjunction with predecode time optimized instruction sequence caching |
US10241793B2 (en) * | 2013-03-15 | 2019-03-26 | Analog Devices Global | Paralleizing loops in the presence of possible memory aliases |
CN104714785A (zh) * | 2015-03-31 | 2015-06-17 | 中芯睿智(北京)微电子科技有限公司 | 任务调度装置、方法及并行处理数据的设备 |
US20160371091A1 (en) * | 2015-06-17 | 2016-12-22 | Ibm | Techniques for improving issue of instructions with variable latencies in a microprocessor |
CN105975252B (zh) * | 2016-04-29 | 2018-10-09 | 龙芯中科技术有限公司 | 一种处理指令的流水线的实现方法、装置及处理器 |
CN106227507B (zh) * | 2016-07-11 | 2019-10-18 | 北京深鉴智能科技有限公司 | 计算***及其控制器 |
CN107688853B (zh) * | 2016-08-05 | 2020-01-10 | 中科寒武纪科技股份有限公司 | 一种用于执行神经网络运算的装置及方法 |
CN108037680B (zh) * | 2017-12-14 | 2020-05-19 | 北京霍因数字科技有限公司 | 一种指令处理方法及装置 |
CN108182111B (zh) * | 2018-01-23 | 2022-07-15 | 百度在线网络技术(北京)有限公司 | 任务调度***、方法和装置 |
-
2018
- 2018-08-10 CN CN201810911185.XA patent/CN110825440B/zh active Active
-
2019
- 2019-07-01 US US16/458,381 patent/US11422817B2/en active Active
- 2019-07-09 KR KR1020190082746A patent/KR102225768B1/ko active IP Right Grant
- 2019-07-10 JP JP2019128635A patent/JP7012689B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010039610A1 (en) * | 2000-03-10 | 2001-11-08 | Busa Natalino Giorgio | Data processing device, method of operating a data processing device and method for compiling a program |
JP2006517322A (ja) | 2003-02-10 | 2006-07-20 | アナログ・デバイシズ・インコーポレーテッド | パイプライン化ディジタルプロセッサにおけるハザード検出および管理のための方法および装置 |
JP2012174114A (ja) | 2011-02-23 | 2012-09-10 | Fujitsu Ltd | 演算処理装置および演算処理装置のスロット制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200050450A1 (en) | 2020-02-13 |
JP2020027616A (ja) | 2020-02-20 |
US11422817B2 (en) | 2022-08-23 |
CN110825440A (zh) | 2020-02-21 |
CN110825440B (zh) | 2023-04-14 |
KR20200018233A (ko) | 2020-02-19 |
JP7012689B2 (ja) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102225768B1 (ko) | 명령 실행 방법 및 장치 | |
US11210109B2 (en) | Method and system for loading resources | |
CN107885762B (zh) | 智能大数据***、提供智能大数据服务的方法和设备 | |
CN110232411B (zh) | 模型蒸馏实现方法、装置、***、计算机设备及存储介质 | |
CN109814884A (zh) | 一种根据游戏资源类型进行资源管理的方法及*** | |
WO2021136512A1 (zh) | 基于深度学习节点计算的调度方法、设备及存储介质 | |
US10719303B2 (en) | Graphics engine and environment for encapsulating graphics libraries and hardware | |
CN111966361B (zh) | 用于确定待部署模型的方法、装置、设备及其存储介质 | |
EP3869404A2 (en) | Vehicle loss assessment method executed by mobile terminal, device, mobile terminal and medium | |
CN110460653A (zh) | 自动驾驶车辆数据传输的方法及装置 | |
CN110147304A (zh) | 一种获取***启动装载日志的方法和装置 | |
CN113468344A (zh) | 实体关系抽取方法、装置、电子设备和计算机可读介质 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN110825461B (zh) | 数据处理方法和装置 | |
US20230350940A1 (en) | Object recommendation | |
US20220164707A1 (en) | Electronic apparatus and controlling method thereof | |
CN109829004A (zh) | 基于无人车的数据处理方法、装置、设备以及存储介质 | |
CN115729347A (zh) | 用于人机接口应用中内容识别的多模态传感器融合 | |
JP2022068146A (ja) | データ注釈方法、装置、電子機器、記憶媒体およびコンピュータプログラム | |
CN111861853A (zh) | 用于处理数据的方法和装置 | |
US9405826B1 (en) | Systems and methods for digital signal processing | |
CN114475631B (zh) | 驾驶数据处理方法装置、设备、自动驾驶车辆介质及产品 | |
US20220269528A1 (en) | System, method and apparatus for intelligent heterogeneous computation | |
US20230142339A1 (en) | Recognition of user intents and associated entities using a neural network in an interaction environment | |
WO2024016894A1 (zh) | 一种神经网络的训练方法以及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |