KR20210097655A - 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체 - Google Patents

명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체 Download PDF

Info

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
Application number
KR1020210094940A
Other languages
English (en)
Other versions
KR102674397B1 (ko
Inventor
차오 탕
슈에리앙 두
Original Assignee
베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. filed Critical 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20210097655A publication Critical patent/KR20210097655A/ko
Application granted granted Critical
Publication of KR102674397B1 publication Critical patent/KR102674397B1/ko

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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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/1441Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security 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

명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체{METHOD, DEVICE AND EQUIPMENT FOR EXECUTING INSTRUCTION AND COMPUTER READABLE STORAGE MEDIUM}
본 발명은 컴퓨터 기술 분야에 관한 것으로, 구체적으로, 칩 및 인공 지능 분야의 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체에 관한 것이다.
과학 기술의 지속적인 발전과 더불어 프로세서의 기능은 점점 더 강력해지고 있다. 따라서 과학 기술 산업에서의 지위도 갈수록 중요해지고 있다. 현재 프로세서는 이미 원래의 단일 코어에서 멀티 코어로 발전하여, 프로세서의 처리 효율을 매우 크게 향상시켰다.
또한, 인공 지능(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", "제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 주소 구간의 상기 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득하는 단계;
    상기 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교하는 단계; 및,
    상기 나머지 주소 구간과 상기 제2 주소 구간이 적어도 부분적으로 중첩되는 것에 응답하여, 상기 제2 메모리 액세스 명령의 실행을 일시 정지하는 단계; 를 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 방법.
  2. 제1항에 있어서,
    상기 나머지 주소 구간과 상기 제2 주소 구간 사이의 중첩 범위가 이미 상기 제1 메모리 액세스 명령에 의해 액세스된 것에 응답하여, 일시 정지된 상기 제2 메모리 액세스 명령을 계속하여 실행하는 단계를 더 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 방법.
  3. 제1항에 있어서,
    상기 나머지 주소 구간과 상기 제2 주소 구간이 중첩되지 않는 것에 응답하여, 상기 제2 메모리 액세스 명령을 실행하는 단계를 더 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 방법.
  4. 제1항에 있어서,
    제1 메모리 액세스 명령을 획득하는 단계는,
    상기 제1 메모리 액세스 명령을 수신하는 단계;
    상기 제1 메모리 명령에 포함된 상기 제1 주소 구간을 결정하는 단계; 및,
    상기 제1 주소 구간을 레지스터 또는 고속 캐시에 저장하는 단계; 를 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 방법.
  5. 제1항에 있어서,
    상기 나머지 주소 구간을 획득하는 단계는,
    상기 미리 설정된 명령이 검출된 것에 응답하여, 이미 상기 제1 메모리 명령에 의해 액세스된 기 액세스 주소 구간을 결정하는 단계; 및,
    상기 기 액세스 주소 구간에 기반하여 상기 나머지 주소 구간을 결정하는 단계; 를 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 방법.
  6. 제1항에 있어서,
    각 클록 사이클마다 상기 나머지 주소 구간을 획득하는 단계를 더 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 방법.
  7. 제1항에 있어서,
    메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출되지 않는 것에 응답하여, 획득된 제3 프로그램 명령을 실행하는 단계를 더 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 방법.
  8. 명령을 실행하기 위한 장치에 있어서,
    제1 메모리 액세스 명령을 획득하여 실행에 사용하되, 상기 제1 메모리 액세스 명령은 액세스하고자 하는 메모리의 제1 주소 구간을 포함하도록 구성되는 획득 모듈;
    메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출된 것에 응답하여, 상기 미리 설정된 명령을 실행하여 상기 제1 주소 구간의 상기 제1 메모리 액세스 명령에 의해 아직 액세스되지 않은 나머지 주소 구간을 획득하도록 구성되는 제1 실행 모듈;
    상기 나머지 주소 구간과 실행하고자 하는 제2 메모리 액세스 명령에 포함된 제2 주소 구간을 비교하도록 구성되는 비교 모듈; 및,
    상기 나머지 주소 구간과 상기 제2 주소 구간이 적어도 부분적으로 중첩되는 것에 응답하여, 상기 제2 메모리 액세스 명령의 실행을 일시 정지하도록 구성되는 일시 정지 모듈; 을 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 장치.
  9. 제8항에 있어서,
    상기 나머지 주소 구간과 상기 제2 주소 구간 사이의 중첩 범위가 이미 상기 제1 메모리 액세스 명령에 의해 액세스된 것에 응답하여, 일시 정지된 상기 제2 메모리 액세스 명령을 계속하여 실행하도록 구성되는 계속 실행 모듈을 더 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 장치.
  10. 제8항에 있어서,
    상기 나머지 주소 구간과 상기 제2 주소 구간이 중첩되지 않는 것에 응답하여, 상기 제2 메모리 액세스 명령을 실행하도록 구성되는 제2 실행 모듈을 더 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 장치.
  11. 제8항에 있어서,
    상기 획득 모듈은,
    상기 제1 메모리 액세스 명령을 수신하도록 구성되는 수신 모듈;
    상기 제1 메모리 명령에 포함된 상기 제1 주소 구간을 결정하도록 구성되는 결정 모듈; 및,
    상기 제1 주소 구간을 레지스터 또는 고속 캐시에 저장하도록 구성되는 저장 모듈; 을 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 장치.
  12. 제8항에 있어서,
    상기 제1 실행 모듈은,
    상기 미리 설정된 명령이 검출된 것에 응답하여, 이미 상기 제1 메모리 명령에 의해 액세스된 기 액세스 주소 구간을 결정하도록 구성되는 기 액세스 주소 구간 결정 모듈; 및,
    상기 기 액세스 주소 구간에 기반하여 상기 나머지 주소 구간을 결정하도록 구성되는 제1 나머지 주소 구간 결정 모듈; 을 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 장치.
  13. 제8항에 있어서,
    각 클록 사이클마다 상기 나머지 주소 구간을 획득하도록 구성되는 제2 나머지 주소 구간 결정 모듈을 더 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 장치.
  14. 제8항에 있어서,
    메모리 중 액세스된 주소 구간을 모니터링하기 위한 미리 설정된 명령이 검출되지 않는 것에 응답하여, 획득된 제3 프로그램 명령을 실행하도록 구성되는 획득 명령 실행 모듈을 더 포함하는,
    것을 특징으로 하는 명령을 실행하기 위한 장치.
  15. 전자 기기에 있어서,
    적어도 하나의 프로세서; 및,
    상기 적어도 하나의 프로세서와 통신 가능하게 연결되는 메모리; 를 포함하고,
    상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되어 있고, 상기 명령이 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제1항 내지 제7항 중 어느 한 항에 따른 방법이 수행되도록 하는,
    것을 특징으로 하는 전자 기기.
  16. 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 컴퓨터 명령은 상기 컴퓨터가 제1항 내지 제7항 중 어느 한 항에 따른 방법을 수행하도록 하는,
    것을 특징으로 하는 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장 매체.
  17. 컴퓨터 판독 가능 저장 매체에 저장되어 있는 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램중의 명령이 실행될 경우, 제1항 내지 제7항 중 어느 한 항에 따른 방법이 실행되는,
    것을 특징으로 하는 컴퓨터 판독 가능 저장 매체에 저장되어 있는 컴퓨터 프로그램.
KR1020210094940A 2020-07-20 2021-07-20 명령을 실행하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체 KR102674397B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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