KR20210097655A - 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체 - Google Patents
명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체 Download PDFInfo
- Publication number
- KR20210097655A KR20210097655A KR1020210094940A KR20210094940A KR20210097655A KR 20210097655 A KR20210097655 A KR 20210097655A KR 1020210094940 A KR1020210094940 A KR 1020210094940A KR 20210094940 A KR20210094940 A KR 20210094940A KR 20210097655 A KR20210097655 A KR 20210097655A
- Authority
- KR
- South Korea
- Prior art keywords
- command
- memory access
- address
- memory
- executing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 15
- 238000001514 detection method Methods 0.000 claims abstract description 6
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
본 발명은 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체를 개시하고, 칩 및 인공지능 분야에 관한 것이다. 명령을 실행하기 위한 방법은 제1 메모리 액세스 명령을 획득하여 실행하에 사용하되, 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함하는 단계를 포함한다. 상기 방법은 메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출된 것에 응답하여, 미리 설정된 명령을 실행하여 제1 주소 구간의 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득하는 단계를 더 포함한다. 상기 방법은 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교하는 단계를 더 포함한다. 상기 방법은 나머지 주소 구간과 제2 주소 구간이 적어도 부분적으로 중첩되는 것에 응답하여, 제2 메모리 액세스 명령의 실행을 일시 정지하는 단계를 더 포함한다. 상기 방법을 통해, 메모리 액세스 명령이 차지하는 주소 세그먼트를 모니터링 제어하고, 프로세서 대기 시간 지연을 줄여 프로세서 성능을 향상시킬 수 있다.
Description
본 발명은 컴퓨터 기술 분야에 관한 것으로, 구체적으로, 칩 및 인공 지능 분야의 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체에 관한 것이다.
과학 기술의 지속적인 발전과 더불어 프로세서의 기능은 점점 더 강력해지고 있다. 따라서 과학 기술 산업에서의 지위도 갈수록 중요해지고 있다. 현재 프로세서는 이미 원래의 단일 코어에서 멀티 코어로 발전하여, 프로세서의 처리 효율을 매우 크게 향상시켰다.
또한, 인공 지능(Artificial Intelligence, AI) 기술이 활발히 발전되면서 AI 프로세서도 급속히 발전하였다. 현재 프로세서의 컴퓨팅 속도는 이미 매우 빠른바, 메모리의 판독 기록 효율을 초과하였다. 따라서, 프로세서와 메모리 간의 데이터를 주고받는 과정에는 여전히 해결해야 할 문제가 많다.
본 발명은 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체를 제공한다.
본 발며의 일 측면에 따르면, 명령을 실행하기 위한 방법을 제공한다. 상기 방법은 제1 메모리 액세스 명령을 획득하여 실행에 사용하되, 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함하는 단계를 포함한다. 상기 방법은 메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출된 것에 응답하여, 미리 설정된 명령을 실행하여 제1 주소 구간의 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득하는 단계를 더 포함한다. 상기 방법은 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교하는 단계를 더 포함한다. 상기 방법은 나머지 주소 구간과 제2 주소 구간이 적어도 부분적으로 중첩되는 것에 응답하여, 제2 메모리 액세스 명령의 실행을 일시 정지하는 단계를 더 포함한다.
본 발명의 다른 일 측면에 따르면, 명령을 실행하기 위한 장치를 제공한다. 상기 장치는, 제1 메모리 액세스 명령을 획득하여 실행에 사용하되, 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함하도록 구성되는 획득 모듈; 메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출된 것에 응답하여, 미리 설정된 명령을 실행하여 제1 주소 구간의 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득하도록 구성되는 제1 실행 모듈; 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교하도록 구성되는 비교 모듈; 및, 나머지 주소 구간과 제2 주소 구간이 적어도 부분적으로 중첩되는 것에 응답하여, 제2 메모리 액세스 명령의 실행을 일시 정지하도록 구성되는 일시 정지 모듈을 포함한다.
본 발명의 제3 측면에 따르면, 전자 기기를 제공한다. 상기 전자 기기는, 적어도 하나의 프로세서; 및, 적어도 하나의 프로세서와 통신 가능하게 연결되는 메모리를 포함하고, 메모리에는 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 명령은 적어도 하나의 프로세서에 의해 실행되어, 적어도 하나의 프로세서가 본 발명의 제1 측면에 따른 방법을 수행할 수 있도록 한다.
본 발명의 제4 측면에 따르면, 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장 매체를 제공하고, 컴퓨터 명령은 컴퓨터가 본 발명의 제1 측면에 따른 방법을 수행하도록 한다.
본 발명의 제5 측면에 따르면, 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램을 더 제공하는바, 상기 컴퓨터 프로그램중의 명령이 실행될 경우, 본 발명의 제1 측면에 따른 방법이 실행된다.
본 발명의 기술에 따르면, 메모리 액세스 명령을 신속하게 처리하는 문제를 해결한다.
본 부분에서 설명되는 내용은 본 발명의 실시예의 핵심적이거나 중요한 특징을 식별하기 위한 것이 아니며, 본 발명의 범위를 제한하려는 의도도 아님을 이해해야 한다. 본 발명의 다른 특징은 하기의 명세서에 의해 쉽게 이해될 것이다.
첨부된 도면은 본 방안을 더 잘 이해하기 위한 것으로, 본 발명을 한정하지 않는다. 여기서,
도 1은 본 발명의 다수의 실시예가 구현될 수 있는 환경(100)의 개략도를 나타낸다.
도 2는 본 발명의 일부 실시예에 따른 저장 장치에 저장된 주소 구간의 구조(200)의 개략도를 나타낸다.
도 3은 본 발명의 일부 실시예에 따른 명령을 실행하기 위한 방법(300)의 흐름도를 나타낸다.
도 4는 본 발명의 일부 실시예에 따른 주소 구간 예시(400)의 개략도를 나타낸다.
도 5는 본 발명의 일부 실시예에 따른 명령을 실행하기 위한 장치(500)의 블록도를 나타낸다.
도 6은 본 발명의 다수의 실시예를 구현할 수 있는 기기(600)의 블록도를 나타낸다.
도 1은 본 발명의 다수의 실시예가 구현될 수 있는 환경(100)의 개략도를 나타낸다.
도 2는 본 발명의 일부 실시예에 따른 저장 장치에 저장된 주소 구간의 구조(200)의 개략도를 나타낸다.
도 3은 본 발명의 일부 실시예에 따른 명령을 실행하기 위한 방법(300)의 흐름도를 나타낸다.
도 4는 본 발명의 일부 실시예에 따른 주소 구간 예시(400)의 개략도를 나타낸다.
도 5는 본 발명의 일부 실시예에 따른 명령을 실행하기 위한 장치(500)의 블록도를 나타낸다.
도 6은 본 발명의 다수의 실시예를 구현할 수 있는 기기(600)의 블록도를 나타낸다.
이하, 첨부 도면을 결부하여 본 발명의 예시적인 실시예들을 설명하고자 하며, 이해를 돕기 위해 본 발명의 실시예들의 다양한 세부 사항들이 포함되는데, 이들은 단지 예시적인 것으로 간주되어야 한다. 따라서, 본 발명의 기술 분야의 통상의 지식을 가진 자라면 본 발명의 범위 및 사상을 벗어나지 않으면서 본 명세서에 설명된 실시예들에 대해 다양한 변경 및 수정이 이루어질 수 있음을 알아야 한다. 또한, 명확성 및 간결성을 위해, 공지된 기능 및 구조에 대한 설명은 아래 설명에서 생략된다.
본 발명의 실시예의 설명에서, 용어 "포함하다" 및 이와 유사한 용어는 "포함하지만 이에 제한되지 않는다"와 같은 개방적 포함으로 이해되어야 한다. 용어 "기반하여"는 "적어도 부분적으로 기반하여"로 이해되어야 한다. 용어 "일 실시예" 또는 "상기 실시예"는 "적어도 하나의 실시예"로 이해되어야 한다. 용어 "제1", "제2" 등은 상이하거나 동일한 객체를 지칭할 수 있다. 아래 설명은 다른 명시적 및 암시적 정의를 더 포함할 수 있다.
프로세서 기술이 발전되면서, 현재 프로세서의 컴퓨팅 속도는 이미 메모리의 판독 기록 속도를 초과하였다. 프로세서가 명령을 실행하는 과정에 프로세서가 메모리에서 데이터를 획득하기를 기다리는 경우가 종종 있다. 특히, AI 프로세서는 컴퓨팅 복잡도가 높지 않지만 처리하고자 하는 데이터 양이 매우 많다. 따라서, 메모리 중 데이터의 전송 속도는 데이터 처리에서의 병목 현상이 되었다. 프로세서 내부 코어 수량이 확장될 때 이러한 상황은 더욱 심각해진다.
프로세서가 메모리에 액세스할 경우, 메모리에 액세스하는 여러 명령은 각 명령의 실행 시간 지연이 상이하기에, 메모리에 대해 실제로 개시한 동작이 예상에 부합되지 않는다. 이러한 상황을 피하기 위해, 일반적으로 메모리에 액세스하는 각 명령 사이에 메모리 액세스를 관리하는 명령(예를 들어, 메모리 차단(mfence) 명령)을 삽입한다. 예를 들어, mfence 명령을 사용하여 각 명령을 분리하고, 이는 이전의 메모리 액세스 명령이 실행 완료될 때에만 다음 명령을 계속하여 판독하도록 한다. 그러나 이렇게 되면 프로세서의 실행 시간이 증가되고 프로세서 효율이 감소된다.
상기 문제를 해결하기 위해, 한 가지 방안은 mfence 명령을 제한하는 것인바, 다음 명령이 내장 메모리 액세스 명령이 아님을 발견할 경우, 명령을 정상적으로 판독하고, 다음 명령이 내장 메모리 액세스 명령임이 발견될 때에만 프로세서를 차단한다. 그러나, 이러한 방식은 비 메모리 액세스 명령이 실행될 수 있도록 하지만, 후속되는 메모리 액세스 명령은 여전히 이전의 메모리 액세스 명령이 실행 완료된 후에야만 실행될 수 있으므로, 프로세서와 메모리 사이의 데이터 처리 효율은 여전히 낮다.
적어도 상기 문제를 해결하기 위해, 본 발명의 실시예에 따르면, 명령을 실행하기 위한 개선 방안을 제공한다. 상기 방안에서, 컴퓨팅 기기는 제1 메모리 액세스 명령을 획득하여 실행에 사용하고, 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함한다. 메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출될 경우, 컴퓨팅 기기는 미리 설정된 명령을 실행하여 제1 주소 구간의 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득한다. 다음, 컴퓨팅 기기는 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교한다. 나머지 주소 구간과 제2 주소 구간이 적어도 부분적으로 중첩될 경우, 컴퓨팅 기기는 제2 메모리 액세스 명령의 실행을 일시 정지한다. 상기 방법을 통해, 내장 메모리 액세스 명령이 차지해야 하는 주소 세그먼트를 동적으로 모니터링 제어하고, 메모리 액세스 제어 명령에 대한 차단 판정을 세분화하여, 불필요한 프로세서 대기 시간 지연을 줄이고, 프로세서 성능을 향상시킬 수 있다.
도 1은 본 발명의 다수의 실시예가 구현될 수 있는 환경(100)의 개략도를 나타낸다. 도 1에 도시된 바와 같이, 환경(100)은 컴퓨팅 기기(102)를 포함한다. 컴퓨팅 기기(102)는 프로그램 명령을 실행하기 위한데 사용될 수 있다.
컴퓨팅 기기(102)는 개인 컴퓨터, 서버 컴퓨터, 핸드 헬드 또는 랩톱 기기, 모바일 기기(예컨대 휴대폰, 개인용 정보 단말기(PDA), 미디어 플레이어 등), 멀티 프로세서 시스템, 가전 제품, 소형 컴퓨터, 대형 컴퓨터, 상기 시스템 또는 기기 중 어느 하나를 포함하는 분산 컴퓨팅 환경 등을 포함하나 이에 제한되지 않는다.
컴퓨팅 기기(102)는 프로세서(104) 및 메모리(106)를 포함한다. 프로세서(104)는 다양한 프로그램을 실행하는데 사용될 수 있고, 메모리(106)에 대한 액세스를 제어할 수 있다.
프로세서(104)는 하드웨어 중앙 처리 유닛(CPU), 필드 프로그램 가능 게이트 어레이(FPGA), 복합 프로그램 가능 논리 소자(CPLD), 전용 집적 회로(ASIC), 시스템 온 칩 시스템(SoC) 또는 이들의 조합을 포함하지만 이에 제한되지 않는 하드웨어 프로세서를 포함할 수 있다.
도 1에 도시된 바와 같이, 메모리(106)에는 프로그램 세그먼트(108)가 구비된다. 상기 프로그램 세그먼트(108)에는 메모리 액세스 명령(110), 미리 설정된 명령(112) 및 메모리 액세스 명령(114)을 포함하는, 프로세서(104)에 의해 실행 가능한 프로그램 명령이 저장된다. 설명의 편의를 위해, 메모리 액세스 명령(110)은 제1 메모리 액세스 명령이라고도 할 수 있고, 메모리 액세스 명령(114)은 제2 메모리 액세스 명령이라고도 할 수 있다. 도 1에 도시된 프로그램 세그먼트(108)에 메모리 액세스 명령(110), 미리 설정된 명령(112) 및 메모리 액세스 명령(114)이 포함되는 것은 단지 예시일 뿐이고, 다른 실시예에서, 프로그램 세그먼트(108)는 임의의 수량 및 임의의 적합한 유형의 명령을 포함할 수 있다.
메모리 액세스 명령(110) 및 메모리 액세스 명령(114)은 실행될 때 메모리(106)에 액세스해야 하는 명령이다. 일부 실시예에서, 메모리 액세스 명령(110) 및 메모리 액세스 명령(114)에는 액세스하고자 하는 메모리(106)의 주소 공간이 포함된다. 일부 실시예에서, 메모리 액세스 명령(110) 및 메모리 액세스 명령(114)은 메모리(106)에 대한 읽기 명령, 쓰기 명령 또는 메모리(106)에 액세스하는 임의의 다른 명령일 수 있다. 상기 예시는 본 발명을 설명하기 위한 것일 뿐, 본 발명에 대해 구체적으로 한정하기 위한 것이 아니다.
미리 설정된 명령(112)은 메모리(106) 중 액세스된 주소 구간을 모니터링하기 위한 명령이다. 일부 실시예에서, 상기 미리 설정된 명령(112)은 메모리 차단(mfence) 명령을 조정한 후 획득된 명령이다. 상기 미리 설정된 명령(112)은 실행될 때 각 클록 사이클마다 레지스터 또는 캐시를 스캔하여, 실행중인 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 공간을 획득할 수 있다. 일부 실시예에서, 상기 미리 설정된 명령(112)은 이전의 메모리 액세스 명령이 실행 종료될 때 실행을 정지한다.
미리 설정된 명령(112)이 실행되는 동안, 프로세서(104)가 메모리 액세스 명령(114)을 획득할 경우, 메모리 액세스 명령(114)의 제2 주소 구간과 획득된 나머지 주소 구간을 비교한다. 두 개의 주소 구간이 중첩되는지 여부를 결정하여 메모리 액세스 명령(114)의 실행 여부를 결정한다. 중첩되면 메모리 액세스 명령(114)을 일시 정지해야 한다.
일부 실시예에서, 미리 설정된 명령(112)이 실행되는 동안, 각 클록 사이클마다 저장된 나머지 주소 구간을 업데이트하고, 획득된 업데이트 후의 나머지 주소 구간과 일시 정지된 메모리 액세스 명령(114)의 제2 주소 구간이 더이상 중첩되지 않으면, 일시 정지된 메모리 액세스 명령(114)을 다시 실행한다. 상기 예시는 본 발명을 설명하기 위한 것일 뿐, 본 발명에 대해 구체적으로 한정하기 위한 것이 아니다.
상기 방법을 통해, 내장 메모리 액세스 명령이 차지해야 하는 주소 세그먼트를 동적으로 모니터링 제어하고, 메모리 액세스 제어 명령에 대한 차단 판정을 세분화하여, 불필요한 프로세서 대기 시간 지연을 줄이고, 프로세서 성능을 향상시킬 수 있다.
상기 도 1은 본 발명의 다수의 실시예가 구현될 수 있는 환경(100)의 개략도를 나타낸다. 아래에서는 도 2를 결부하여 본 발명의 일부 실시예에 따른 저장 장치에 저장된 주소 구간의 구조(200)의 개략도를 나타낸다.
도 2에서, 획득된 메모리 액세스 명령에 포함된 액세스하고자 하는 주소 공간을 저장 장치(202)에 저장한다. 상기 저장 장치(202)는 고속 캐시(high speed cache) 또는 레지스터일 수 있다. 도 2에 도시된 바와 같이, 다수의 실행중인 메모리 액세스 명령에 대한 항목(204-1, 204-2, ……, 204-N)이 저장되고, N는 양의 정수이며, 설명의 편의를 위해, 항목(204)으로 통칭한다. 항목(204)은 플래그 비트 부분 및 주소 부분을 포함한다. 주소 부분은 메모리 액세스 명령이 액세스하고자 하는 주소 구간을 저장하기 위한 것이다. 플래그 비트는 항목의 유효 여부를 표기하기 위한 것이다.
메모리 액세스 명령이 실행되고자 할 경우, 메모리 액세스 명령의 주소 공간은 항목(204)에 저장된다. 항목(204)에 주소 구간을 저장한 후, 상기 항목의 플래그 비트를 미리 설정된 값으로 설정하고, 예를 들어 1로 설정한다. 주소 구간에 대한 메모리 액세스 명령의 액세스이 실행 완료된 후, 플래그 비트는 제2 미리 설정된 값으로 설정되고, 예를 들어 0으로 설정된다.
일부 실시예에서, 메모리 액세스 명령이 실행될 경우, 각 클록 사이클마다 모두 상기 메모리 액세스 명령에 대응되는 항목(204)의 주소 부분이 업데이트 되어, 업데이트를 거친 주소 부분에 액세스되지 않은 주소 구간만 저장되도록 한다. 미리 설정된 명령(112)이 실행될 경우, 레지스터 또는 고속 캐시를 정기적으로 스캔하여 아직 액세스되지 않은 나머지 주소 구간을 결정한다.
일부 실시예에서, 메모리 액세스이 실행만 되는 것을 의미하는 경우, 액세스하고자 하는 주소 구간을 항목(204)에 저장한다. 미리 설정된 명령(112)이 검출되고 미리 설정된 명령(112)이 실행될 경우, 항목(204) 중 주소 부분을 아직 액세스하지 않은 나머지 주소 구간으로 업데이트한 다음, 레지스터 또는 고속 캐시를 정기적으로 스캔하여 아직 액세스되지 않은 나머지 주소 구간을 결정한다. 상기 예시는 본 발명을 설명하기 위한 것일 뿐, 본 발명에 대해 구체적으로 한정하기 위한 것이 아니다.
상기 도 2는 본 발명의 일부 실시예에 따른 저장 장치에 저장된 주소 구간의 구조(200)의 개략도를 나타낸다. 아래에서는 도 3을 결부하여 본 발명의 일부 실시예에 따른 명령을 실행하기 위한 방법(300)의 흐름도를 설명한다. 방법(300)은 도 1의 컴퓨팅 기기(102) 또는 임의의 적합한 다른 기기에 의해 구현될 수 있다.
블록(302)에서, 컴퓨팅 기기는 제1 메모리 액세스 명령을 획득하여 실행에 사용하고, 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함한다. 예를 들어, 도 1의 컴퓨팅 기기(102)는 프로그램 실행 시 제1 메모리 액세스 명령을 획득한다. 다음 컴퓨팅 기기(102)는 상기 제1 메모리 액세스 명령을 실행한다.
일부 실시예에서, 우선, 컴퓨팅 기기(102)는 제1 메모리 액세스 명령을 수신하고, 제1 메모리 액세스 명령은 액세스하고자 하는 주소 구간을 포함하며, 설명의 편의를 위해, 제1 주소 구간라고도 한다. 상기 제1 메모리 액세스 명령이 실행될 경우, 컴퓨팅 기기(102)는 제1 주소 구간을 레지스터 또는 고속 캐시에 저장한다. 일 예시에서, 상기 제1 주소 구간은 레지스터에 저장된 다음, 상응한 레지스터의 플래그 비트를 미리 설정된 값으로 설정한다. 일 예시에서, 상기 제1 주소 구간은 고속 캐시에 저장된다. 고속 캐시에 상기 제1 주소 구간을 저장한 후, 상응한 플래그 비트를 설정하여 해당 주소 구간이 메모리 액세스 명령이 액세스하고자 하는 주소 구간임을 표기한다. 상기 예시는 본 발명을 설명하기 위한 것일 뿐, 본 발명에 대해 구체적으로 한정하기 위한 것이 아니다. 상기 방식을 통해, 제1 주소 공간에 의해 나머지 주소 구간을 신속하게 결정한다.
블록(304)에서, 컴퓨팅 기기는 메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령의 검출 여부를 결정한다. 도 1에 도시된 바와 같이, 컴퓨팅 기기(102)는 메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령(112)을 검출한다.
일부 실시예에서, 메모리 중 액세스된 주소 구간을 모니터링하는 미리 설정된 명령(112)이 검출되지 않을 경우, 후속되는 명령을 계속하여 획득한 다음, 후속적으로 획득한 명령을 계속하여 실행한다. 상기 방식을 통해, 미리 설정된 명령(112)과 마주치지 않을 경우, 다른 명령이 신속하게 실행될 수 있도록 할 수 있다.
메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령(112)이 검출될 경우, 블록(306)에서, 컴퓨팅 기기는 미리 설정된 명령(112)을 실행하여 제1 주소 구간의 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득한다. 도 1에 도시된 바와 같이, 명령을 실행하는 과정에 조정된 메모리 차단 명령과 같은 미리 설정된 명령(112)을 만날 경우, 컴퓨팅 기기(102)는 상기 미리 설정된 명령(112)을 실행한다. 이때 컴퓨팅 기기(102)는 상기 미리 설정된 명령(112) 이전의 메모리 액세스 명령이 아직 액세스하지 않은 나머지 주소 구간을 획득할 수 있다.
일부 실시예에서, 상기 미리 설정된 명령(112)이 검출될 경우, 컴퓨팅 기기(102)는 이미 제1 메모리 명령에 의해 액세스된 기 액세스 주소 구간을 결정한다. 다음, 기 액세스 주소 구간에 기반하여 나머지 주소 구간을 결정한다. 상기 방식을 통해, 메모리 액세스 명령이 아직 액세스하지 않은 주소 구간을 신속하고 적시에 획득할 수 있다.
일 예시에서, 제1 메모리 액세스 명령이 수행될 경우, 제1 메모리 액세스 명령이 액세스하고자 하는 제1 주소 구간이 레지스터 또는 캐시에 기입된다. 상기 미리 설정된 명령(112)이 실행될 때, 제1 메모리 액세스 명령에 의해 이미 액세스된 주소 구간이 검출되고, 레지스터 또는 캐시에 저장된 제1 주소 구간에서 이미 액세스한 주소 구간을 제거하여 나머지 주소 구간을 결정한다. 다음, 레지스터 또는 캐시의 제1 주소 구간을 액세스하지 않은 나머지 주소 구간으로 업데이트한다. 대안적으로 또는 부가적으로, 각 클록 사이클마다, 제1 메모리 액세스 명령에 의해 이미 액세스된 주소 구간에 기반하여 액세스하지 않은 나머지 주소 구간을 업데이트 한다.
일부 예시에서, 제1 메모리 액세스 명령이 실행될 경우, 제1 주소 구간을 저장한다. 메모리 액세스 명령이 실행될 경우, 각 클록 사이클마다 정기적으로 상기 제1 주소 구간을 액세스하지 않은 나머지 주소 구간으로 업데이트한다. 상기 미리 설정된 명령(112)이 실행될 경우, 상기 레지스터 또는 캐시를 스캔하여 나머지 주소 구간을 획득한다.
일부 실시예에서, 컴퓨팅 기기(102)는 각 클록 사이클마다 나머지 주소 구간을 획득한다. 예를 들어, 미리 설정된 명령(112)이 실행될 경우 각 클록 사이클이 종료될 때마다 나머지 주소 구간을 획득한다. 상기 예시는 본 발명을 설명하기 위한 것일 뿐, 본 발명에 대해 구체적으로 한정하기 위한 것이 아니다. 상기 방식을 통해 정확한 나머지 주소 구간을 적시에 획득할 수 있다.
블록(308)에서, 컴퓨팅 기기는 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교한다. 블록(310)에서, 컴퓨팅 기기는 나머지 주소 구간과 제2 주소 구간이 적어도 부분적으로 중첩되는지 여부를 결정한다.
나머지 주소 구간과 제2 주소 구간이 적어도 부분적으로 중첩되는지 여부를 결정할 경우, 블록(312)에서, 컴퓨팅 기기는 제2 메모리 액세스 명령의 실행을 일시 정지한다. 중첩되면 제1 메모리 액세스 명령과 제2 메모리 액세스 명령이 동일한 주소 공간에 액세스함을 나타낸다. 데이터의 안정성과 일치성을 보장하기 위해, 메모리에 대한 제2 메모리 액세스 명령의 액세스를 일시 정지해야 한다.
아래에서는 도 4를 결부하여 중첩을 결정하는 과정을 설명한다. 도 4는 본 발명의 일부 실시예에 따른 주소 구간 예시(400)의 개략도를 나타낸다. 도 4에서 주소 구간(402)는 제1 메모리 명령에 의해 액세스된 나머지 주소 구간이다. 주소 구간(404)는 제2 메모리 액세스 명령에 의해 액세스된 제2 주소 구간이다. 도 4에 도시된 바와 같이, 주소 구간(402)와 주소 구간(404)가 부분적으로 동일하면, 두 개의 주소 구간이 부분적으로 중첩됨을 나타낸다. 도 4는 중첩을 설명하기 위한 일 예시일 뿐, 본 발명을 구체적으로 한정하기 위한 것이 아니다.
이제 도 3으로 돌아가 계속하여 설명하기로 한다. 일부 실시예에서, 컴퓨팅 기기(102)는 나머지 주소 구간과 제2 주소 구간 사이의 중첩 범위가 이미 제1 메모리 액세스 명령에 의해 액세스되었는지 여부를 정기적으로 결정한다. 예를 들어, 각 클록 사이클마다 업데이트된 나머지 주소 구간을 획득한 후, 컴퓨팅 기기(102)는 나머지 주소 구간과 제2 주소 구간 사이의 중첩 범위가 이미 제1 메모리 액세스 명령에 의해 액세스되었는지 여부를 결정한다. 중첩 범위가 이미 제1 메모리 액세스 명령에 의해 액세스되면, 컴퓨팅 기기(102)는 일시 정지된 제2 메모리 액세스 명령을 계속하여 실행한다. 대안적으로 또는 부가적으로, 제2 메모리 액세스 명령의 제2 주소 구간이 여전히 미리 설정된 명령 이전에 실행된 다른 메모리 액세스 명령의 나머지 주소 공간에 중첩되면, 제2 주소 구간에 중첩되는 중첩 범위가 모두 액세스될 때까지 대기한 후 다시 제2 메모리 액세스 명령을 실행해야 한다. 상기 방식을 통해, 일시 정지된 명령이 적시에 실행될 수 있도록 하여, 명령 처리 효율을 향상시킨다.
일부 실시예에서, 나머지 주소 구간과 제2 주소 구간이 중첩되지 않을 경우, 컴퓨팅 기기(102)는 제2 메모리 액세스 명령을 실행한다. 상기 방식을 통해, 중첩 주소 구간을 액세스하지 않는 명령이 적시에 처리되도록 보장할 수 있어, 명령 처리 효율을 향상시키고, 명령 처리 시간을 절약한다.
상기 방법을 통해, 내장 메모리 액세스 명령이 차지해야 하는 주소 세그먼트를 동적으로 모니터링 제어하고, 메모리 액세스 제어 명령에 대한 차단 판정을 세분화하여, 불필요한 프로세서 대기 시간 지연을 줄이고, 프로세서 성능을 향상시킬 수 있다.
도 5는 본 발명의 실시예에 따른 명령을 처리하는 장치(500)의 예시적 블록도를 나타낸다. 도 5에 도시된 바와 같이, 장치(500)는 제1 메모리 액세스 명령을 획득하여 실행에 사용하되, 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함하도록 구성되는 획득 모듈(502)을 포함한다. 장치(500)는 메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출된 것에 응답하여,미리 설정된 명령을 실행하여 제1 주소 구간의 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득하도록 구성되는 제1 실행 모듈(504)을 더 포함한다. 장치(500)는 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교하도록 구성되는 비교 모듈(506)을 더 포함한다. 장치(500)는 나머지 주소 구간과 제2 주소 구간이 적어도 부분적으로 중첩되는 것에 응답하여, 제2 메모리 액세스 명령의 실행을 일시 정지하도록 구성되는 일시 정지 모듈(508)을 더 포함한다.
일부 실시예에서, 장치(500)는 나머지 주소 구간과 제2 주소 구간 사이의 중첩 범위가 이미 제1 메모리 액세스 명령에 의해 액세스된 것에 응답하여, 일시 정지된 제2 메모리 액세스 명령을 계속하여 실행하도록 구성되는 계속 실행 모듈을 더 포함한다.
일부 실시예에서, 장치(500)는 나머지 주소 구간과 제2 주소 구간이 중첩되지 않는 것에 응답하여, 제2 메모리 액세스 명령을 실행하도록 구성되는 제2 실행 모듈을 더 포함한다.
일부 실시예에서, 획득 모듈(502)은, 제1 메모리 액세스 명령을 수신하도록 구성되는 수신 모듈; 제1 메모리 명령에 포함된 제1 주소 구간을 결정하도록 구성되는 결정 모듈; 및, 제1 주소 구간을 레지스터 또는 고속 캐시에 저장하도록 구성되는 저장 모듈을 포함한다.
일부 실시예에서, 제1 실행 모듈(504)은, 미리 설정된 명령이 검출된 것에 응답하여, 이미 제1 메모리 명령에 의해 액세스된 기 액세스 주소 구간을 결정하도록 구성되는 기 액세스 주소 구간 결정 모듈; 및, 기 액세스 주소 구간에 기반하여 나머지 주소 구간을 결정하도록 구성되는 제1 나머지 주소 구간 결정 모듈을 포함한다.
일부 실시예에서, 장치(500)는 각 클록 사이클마다 나머지 주소 구간을 획득하도록 구성되는 제2 나머지 주소 구간 결정 모듈을 더 포함한다.
일부 실시예에서, 장치(500)는 메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출되지 않는 것에 응답하여, 획득된 제3 프로그램 명령을 실행하도록 구성되는 획득 명령 실행 모듈을 더 포함한다.
본 발명의 실시예에 따르면, 본 발명은 전자 기기 및 판동 가능 저장 매체를 더 제공한다. 본 발명의 실시예에 따르면, 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램을 더 제공한다. 당해 컴퓨터 프로그램중의 명령이 실행될 경우, 상기 명령을 실행하기 위한 방법이 실행된다.
도 6은 본 발명의 실시예를 구현할 수 있는 전자 기기(600)의 예시적 블록도를 나타낸다. 기기(600)는 도 1의 컴퓨팅 기기(102)를 구현하는데 사용될 수 있다. 도시된 바와 같이, 기기(600)는 판독 전용 메모리(ROM)(602)에 저장된 컴퓨터 프로그램 명령 또는 저장 유닛(608)으로부터 랜덤 액세스 메모리(RAM)(603)에 로딩된 컴퓨터 프로그램 명령에 따라, 다양하고 적절한 동작 및 처리를 수행할 수 있는 컴퓨팅 유닛(601)을 포함한다. RAM(603)에는 기기(600)의 동작에 필요한 다양한 프로그램 및 데이터가 더 저장될 수 있다. 컴퓨팅 유닛(601), ROM(602) 및 RAM(603)은 버스(604)를 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(605)도 버스(604)에 연결된다.
기기(600)의 다수의 부재는 I/O 인터페이스(605)에 연결되고, 키보드, 마우스등과 같은 입력 유닛(606); 다양한 유형의 표시 기기, 스피커 등과 같은 출력 유닛(607); 자기 디스크, 광 디스크 등과 같은 저장 유닛(608); 및, 네트워크 카드, 모뎀, 무선 통신 송수신기 등과 같은 통신 유닛(609)을 포함한다. 통신 유닛(609)은 기기(600)가 인터넷과 같은 컴퓨터 네트워크 및/또는 다양한 전기 통신 네트워크를 통해 다른 기기와 정보/데이터를 교환하도록 허용한다.
컴퓨팅 유닛(601)은 처리 및 컴퓨팅 능력을 갖는 다양항 범용 및/또는 전용 처리 컴포넌트일 수 있다. 컴퓨팅 유닛(601)의 일부 예로서, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 다양한 전용 인공 지능(AI) 컴퓨팅 칩, 기계 학습 모델 알고리즘을 실행하는 다양한 컴퓨팅 유닛, 디지털 신호 프로세서(DSP) 및 임의의 적절한 프로세서, 컨트롤러, 마이크로 컨트롤러 등을 포함하나 이에 제한되지 않는다. 컴퓨팅 유닛(601)은 방법(300)과 같은 위에서 설명된 각각의 방법 및 처리를 수행한다. 예를 들어, 일부 실시예에서, 방법(300)은 저장 유닛(608)과 같이 기계 판독 가능 매체에 명확하게 포함되는 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 일부 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM (602) 및/또는 통신 유닛(609)에 의해 기기(600)에 로딩 및/또는 설치될 수 있다. 컴퓨터 프로그램이 RAM (603)에 로딩되어 컴퓨팅 유닛(601)에 의해 실행될 때, 위에서 설명된 방법(300)의 하나 이상의 단계가 수행될 수 있다. 대안적으로, 다른 실시예에서, 컴퓨팅 유닛(601)은 다른 임의의 적절한 방식(예를 들어, 펌웨어에 의해)을 통해 방법(300)을 수행하도록 구성될 수 있다.
본문의 전술한 기능은 하나 또는 다수의 하드웨어 논리 부재에 의해 적어도 부분적으로 실행될 수 있다. 예를 들어, 비제한적으로, 사용 가능한 시범 유형의 하드웨어 논리 부재는 필드 프로그램 가능 게이트 어레이(FPGA), 전용 집적 회로(ASIC), 전용 표준 제품(ASSP), 시스템 온 칩 시스템(SOC), 복합 프로그램 가능 논리 소자(CPLD) 등을 포함한다.
본 발명의 방법을 구현하는 프로그램 코드는 하나 또는 다수의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치의 프로세서 또는 컨트롤러에 제공되어, 프로그램 코드가 프로세서 또는 컨트롤러에 의해 실행될 경우, 흐름도 및/또는 블록도에 지정된 기능/동작이 구현되도록 할 수 있다. 프로그램 코드는 완전히 기계에서 실행되거나, 부분적으로 기계에서 실행되거나, 독립적인 소프트웨어 패키지로서 부분적으로 기계에서 실행되며, 부분적으로 원격 기계에서 실행되거나 또는 완전히 원격 기계 또는 서버에서 실행될 수 있다.
본 발명의 콘텍스트에서, 기계 판독 가능 매체는 명령 실행 시스템, 장치 또는 기기에 의해 사용되거나 또는 명령 실행 시스템, 장치 또는 기기와 결합하여 사용하기 위한 프로그램을 포함하거나 저장할 수 있는 유형 매체일 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 기기, 또는 상기 내용의 임의의 적절한 조합을 포함할 수 있지만 이에 제한되지 않는다. 기계 판독 가능 저장 매체의 보다 구체적인 예는 하나 또는 다수의 와이어에 기반한 전기 연결, 휴대용 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그램 가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 컴팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 기기, 자기 저장 기기 또는 상술한 내용의 임의의 적절한 조합을 포함한다.
이밖에, 특정 순서로 각 동작을 설명하였지만, 이는 이러한 동작들이 도시된 특정 순서 또는 순차적 순서로 수행되도록 요구되거나, 또는 예기한 결과를 달성하도록 모든 도시된 동작들이 수행되어야 하는 것으로 이해해야 한다. 일정한 환경에서, 다수의 미션 및 병합 처리는 유리할 수 있다. 마찬가지로, 상술한 설명에는 여러 개의 구체적인 구현 세부사항이 포함되어 있지만, 이들이 본 발명의 범위를 한정하는 것으로 해석되어서는 안된다. 독립적인 실시예의 컨텍스트에서 설명된 일부 특징은 단일 구현에서 조합되어 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 설명된 다양한 특징 또한 다수의 구현에서 독립적으로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다.
구조 특징 및/또는 방법 논리적 동작에 특정된 언어로 본 주제를 설명하였지만, 첨부된 청구범위에 한정된 주제는 위에서 설명된 특정된 특징 또는 동작에 반드시 한정되는 것이 아님을 이해해야 한다. 이에 반해, 위에서 설명된 특정된 특징 및 동작은 단지 청구범위의 예시적 형태를 구현하기 위한 것이다.
Claims (17)
- 명령을 실행하기 위한 방법에 있어서,
제1 메모리 액세스 명령을 획득하여 실행에 사용하는 단계 - 상기 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함함 -;
메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출된 것에 응답하여, 상기 미리 설정된 명령을 실행하여 상기 제1 주소 구간의 상기 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득하는 단계;
상기 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교하는 단계; 및,
상기 나머지 주소 구간과 상기 제2 주소 구간이 적어도 부분적으로 중첩되는 것에 응답하여, 상기 제2 메모리 액세스 명령의 실행을 일시 정지하는 단계; 를 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 방법. - 제1항에 있어서,
상기 나머지 주소 구간과 상기 제2 주소 구간 사이의 중첩 범위가 이미 상기 제1 메모리 액세스 명령에 의해 액세스된 것에 응답하여, 일시 정지된 상기 제2 메모리 액세스 명령을 계속하여 실행하는 단계를 더 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 방법. - 제1항에 있어서,
상기 나머지 주소 구간과 상기 제2 주소 구간이 중첩되지 않는 것에 응답하여, 상기 제2 메모리 액세스 명령을 실행하는 단계를 더 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 방법. - 제1항에 있어서,
제1 메모리 액세스 명령을 획득하는 단계는,
상기 제1 메모리 액세스 명령을 수신하는 단계;
상기 제1 메모리 명령에 포함된 상기 제1 주소 구간을 결정하는 단계; 및,
상기 제1 주소 구간을 레지스터 또는 고속 캐시에 저장하는 단계; 를 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 방법. - 제1항에 있어서,
상기 나머지 주소 구간을 획득하는 단계는,
상기 미리 설정된 명령이 검출된 것에 응답하여, 이미 상기 제1 메모리 명령에 의해 액세스된 기 액세스 주소 구간을 결정하는 단계; 및,
상기 기 액세스 주소 구간에 기반하여 상기 나머지 주소 구간을 결정하는 단계; 를 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 방법. - 제1항에 있어서,
각 클록 사이클마다 상기 나머지 주소 구간을 획득하는 단계를 더 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 방법. - 제1항에 있어서,
메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출되지 않는 것에 응답하여, 획득된 제3 프로그램 명령을 실행하는 단계를 더 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 방법. - 명령을 실행하기 위한 장치에 있어서,
제1 메모리 액세스 명령을 획득하여 실행에 사용하되, 상기 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함하도록 구성되는 획득 모듈;
메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출된 것에 응답하여, 상기 미리 설정된 명령을 실행하여 상기 제1 주소 구간의 상기 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득하도록 구성되는 제1 실행 모듈;
상기 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교하도록 구성되는 비교 모듈; 및,
상기 나머지 주소 구간과 상기 제2 주소 구간이 적어도 부분적으로 중첩되는 것에 응답하여, 상기 제2 메모리 액세스 명령의 실행을 일시 정지하도록 구성되는 일시 정지 모듈; 을 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 장치. - 제8항에 있어서,
상기 나머지 주소 구간과 상기 제2 주소 구간 사이의 중첩 범위가 이미 상기 제1 메모리 액세스 명령에 의해 액세스된 것에 응답하여, 일시 정지된 상기 제2 메모리 액세스 명령을 계속하여 실행하도록 구성되는 계속 실행 모듈을 더 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 장치. - 제8항에 있어서,
상기 나머지 주소 구간과 상기 제2 주소 구간이 중첩되지 않는 것에 응답하여, 상기 제2 메모리 액세스 명령을 실행하도록 구성되는 제2 실행 모듈을 더 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 장치. - 제8항에 있어서,
상기 획득 모듈은,
상기 제1 메모리 액세스 명령을 수신하도록 구성되는 수신 모듈;
상기 제1 메모리 명령에 포함된 상기 제1 주소 구간을 결정하도록 구성되는 결정 모듈; 및,
상기 제1 주소 구간을 레지스터 또는 고속 캐시에 저장하도록 구성되는 저장 모듈; 을 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 장치. - 제8항에 있어서,
상기 제1 실행 모듈은,
상기 미리 설정된 명령이 검출된 것에 응답하여, 이미 상기 제1 메모리 명령에 의해 액세스된 기 액세스 주소 구간을 결정하도록 구성되는 기 액세스 주소 구간 결정 모듈; 및,
상기 기 액세스 주소 구간에 기반하여 상기 나머지 주소 구간을 결정하도록 구성되는 제1 나머지 주소 구간 결정 모듈; 을 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 장치. - 제8항에 있어서,
각 클록 사이클마다 상기 나머지 주소 구간을 획득하도록 구성되는 제2 나머지 주소 구간 결정 모듈을 더 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 장치. - 제8항에 있어서,
메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출되지 않는 것에 응답하여, 획득된 제3 프로그램 명령을 실행하도록 구성되는 획득 명령 실행 모듈을 더 포함하는,
것을 특징으로 하는 명령을 실행하기 위한 장치. - 전자 기기에 있어서,
적어도 하나의 프로세서; 및,
상기 적어도 하나의 프로세서와 통신 가능하게 연결되는 메모리; 를 포함하고,
상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되어 있고, 상기 명령이 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제1항 내지 제7항 중 어느 한 항에 따른 방법이 수행되도록 하는,
것을 특징으로 하는 전자 기기. - 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
상기 컴퓨터 명령은 상기 컴퓨터가 제1항 내지 제7항 중 어느 한 항에 따른 방법을 수행하도록 하는,
것을 특징으로 하는 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장 매체. - 컴퓨터 판독 가능 저장 매체에 저장되어 있는 컴퓨터 프로그램에 있어서,
상기 컴퓨터 프로그램중의 명령이 실행될 경우, 제1항 내지 제7항 중 어느 한 항에 따른 방법이 실행되는,
것을 특징으로 하는 컴퓨터 판독 가능 저장 매체에 저장되어 있는 컴퓨터 프로그램.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010700198.X | 2020-07-20 | ||
CN202010700198.XA CN111857591B (zh) | 2020-07-20 | 2020-07-20 | 用于执行指令的方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210097655A true KR20210097655A (ko) | 2021-08-09 |
KR102674397B1 KR102674397B1 (ko) | 2024-06-13 |
Family
ID=73000615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210094940A KR102674397B1 (ko) | 2020-07-20 | 2021-07-20 | 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11748099B2 (ko) |
EP (1) | EP3872629B1 (ko) |
JP (1) | JP7262520B2 (ko) |
KR (1) | KR102674397B1 (ko) |
CN (1) | CN111857591B (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857591B (zh) * | 2020-07-20 | 2024-08-09 | 昆仑芯(北京)科技有限公司 | 用于执行指令的方法、装置、设备和计算机可读存储介质 |
CN117171065B (zh) * | 2023-11-02 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 地址管理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009042971A (ja) * | 2007-08-08 | 2009-02-26 | Panasonic Corp | リアルタイムウォッチ装置及びその方法 |
KR20160041950A (ko) * | 2014-10-03 | 2016-04-18 | 인텔 코포레이션 | 어드레스로의 기입들을 모니터링하는 명령어를 구현하는 스케일가능형 메커니즘 |
US20160110296A1 (en) * | 2014-10-17 | 2016-04-21 | Sk Hynix Memory Solutions Inc. | Lba blocking table for ssd controller |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3171891B2 (ja) * | 1991-11-08 | 2001-06-04 | キヤノン株式会社 | 表示制御装置 |
JP2001184259A (ja) | 1999-12-22 | 2001-07-06 | Nec Kofu Ltd | 演算処理装置及び該装置におけるデータ転送方法 |
US7363474B2 (en) * | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
US7506132B2 (en) * | 2005-12-22 | 2009-03-17 | International Business Machines Corporation | Validity of address ranges used in semi-synchronous memory copy operations |
US9778949B2 (en) * | 2014-05-05 | 2017-10-03 | Google Inc. | Thread waiting in a multithreaded processor architecture |
US9921750B2 (en) * | 2014-11-20 | 2018-03-20 | Samsung Electronics Co., Ltd. | Solid state drive (SSD) memory cache occupancy prediction |
EP3811264A4 (en) * | 2018-06-24 | 2022-03-02 | Hex Five Security, Inc. | CONFIGURATION, ENFORCEMENT AND MONITORING THE SEPARATION OF TRUSTED EXECUTION ENVIRONMENTS |
US11635965B2 (en) * | 2018-10-31 | 2023-04-25 | Intel Corporation | Apparatuses and methods for speculative execution side channel mitigation |
US11055228B2 (en) * | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
CN111857591B (zh) * | 2020-07-20 | 2024-08-09 | 昆仑芯(北京)科技有限公司 | 用于执行指令的方法、装置、设备和计算机可读存储介质 |
US11604735B1 (en) * | 2021-12-02 | 2023-03-14 | Western Digital Technologies, Inc. | Host memory buffer (HMB) random cache access |
-
2020
- 2020-07-20 CN CN202010700198.XA patent/CN111857591B/zh active Active
-
2021
- 2021-06-28 JP JP2021106589A patent/JP7262520B2/ja active Active
- 2021-07-15 EP EP21185828.7A patent/EP3872629B1/en active Active
- 2021-07-16 US US17/377,548 patent/US11748099B2/en active Active
- 2021-07-20 KR KR1020210094940A patent/KR102674397B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009042971A (ja) * | 2007-08-08 | 2009-02-26 | Panasonic Corp | リアルタイムウォッチ装置及びその方法 |
KR20160041950A (ko) * | 2014-10-03 | 2016-04-18 | 인텔 코포레이션 | 어드레스로의 기입들을 모니터링하는 명령어를 구현하는 스케일가능형 메커니즘 |
US20160110296A1 (en) * | 2014-10-17 | 2016-04-21 | Sk Hynix Memory Solutions Inc. | Lba blocking table for ssd controller |
Also Published As
Publication number | Publication date |
---|---|
JP7262520B2 (ja) | 2023-04-21 |
CN111857591A (zh) | 2020-10-30 |
JP2021157843A (ja) | 2021-10-07 |
KR102674397B1 (ko) | 2024-06-13 |
CN111857591B (zh) | 2024-08-09 |
US20210342149A1 (en) | 2021-11-04 |
EP3872629A2 (en) | 2021-09-01 |
EP3872629B1 (en) | 2023-09-27 |
EP3872629A3 (en) | 2022-01-05 |
US11748099B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102668599B1 (ko) | 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링 | |
KR20210097655A (ko) | 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체 | |
US9043806B2 (en) | Information processing device and task switching method | |
CN111208933B (zh) | 数据访问的方法、装置、设备和存储介质 | |
US11436146B2 (en) | Storage control apparatus, processing apparatus, computer system, and storage control method | |
KR20210001883A (ko) | 순환 명령어 집합을 처리하는 방법, 장치, 기기 및 저장 매체 | |
US11307801B2 (en) | Method, apparatus, device and storage medium for processing access request | |
US9697127B2 (en) | Semiconductor device for controlling prefetch operation | |
US20200371827A1 (en) | Method, Apparatus, Device and Medium for Processing Data | |
TW201535412A (zh) | 具有繞回性至連續性讀取之記憶體子系統 | |
US20200159680A1 (en) | Programming and controlling compute units in an integrated circuit | |
US20200065098A1 (en) | Providing efficient handling of branch divergence in vectorizable loops by vector-processor-based devices | |
US8990741B2 (en) | Circuit design support device, circuit design support method and program | |
CN116467235B (zh) | 一种基于dma的数据处理方法、装置、电子设备及介质 | |
US20230401060A1 (en) | Processing unit, computing device and instruction processing method | |
US8412862B2 (en) | Direct memory access transfer efficiency | |
US11221851B2 (en) | Method executed by computing device, apparatus, device and computer-readable storage medium | |
US10754817B2 (en) | Information processing apparatus and information processing method for process order in reconfigurable circuit | |
US7877533B2 (en) | Bus system, bus slave and bus control method | |
US20240160446A1 (en) | Predicting a Vector Length Associated with a Configuration Instruction | |
US20240345774A1 (en) | Information processing system | |
JP2024072010A (ja) | プログラム、命令実行制御装置、及び命令実行制御方法 | |
US20160188392A1 (en) | Fast approximate conflict detection | |
CN117667219A (zh) | 指令处理方法、处理器、可读介质和电子设备 | |
US20070005912A1 (en) | Apparatus and method for reducing tag ram access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |