KR101852012B1 - 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템 - Google Patents

캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템 Download PDF

Info

Publication number
KR101852012B1
KR101852012B1 KR1020160157065A KR20160157065A KR101852012B1 KR 101852012 B1 KR101852012 B1 KR 101852012B1 KR 1020160157065 A KR1020160157065 A KR 1020160157065A KR 20160157065 A KR20160157065 A KR 20160157065A KR 101852012 B1 KR101852012 B1 KR 101852012B1
Authority
KR
South Korea
Prior art keywords
data
cache
address
state information
block state
Prior art date
Application number
KR1020160157065A
Other languages
English (en)
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 전남대학교 산학협력단
Priority to KR1020160157065A priority Critical patent/KR101852012B1/ko
Application granted granted Critical
Publication of KR101852012B1 publication Critical patent/KR101852012B1/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템에 관한 것으로, 보다 구체적으로는 캐쉬 우회 기법을 통해 L1 데이터 캐쉬에 접근 횟수를 줄임으로써 임베디드 시스템의 성능을 향상시킬 수 있는 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템에 관한 것이다.

Description

캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템{Cache bypassing technique, streaming multiprocessor and embedded system performed by the technique}
본 발명은 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템에 관한 것으로, 보다 구체적으로는 캐쉬 우회 기법을 통해 L1 데이터 캐쉬에 접근 횟수를 줄임으로써 임베디드 시스템의 성능을 향상시킬 수 있는 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템에 관한 것이다.
캐쉬 우회 기법은 캐쉬의 쓰레싱을 방지하기 위한 기법이다.
여기서, 쓰레싱(Thrashing)이란 메모리 영역에 접근하게 될 때, 메모리에 페이지 부재가 과도하게 발생하여 프로세스 처리 효율이 급격히 낮아지는 현상이다.
최근, 그래픽 연산뿐만 아니라 일반 컴퓨팅(Computing) 영역의 연산을 수행할 수 있는 범용 계산 그래픽 처리 장치(GPGPU:General-Purpose computing on Graphics Processing Units)가 개발되고 있다.
도 1은 일반적인 범용 계산 그래픽 처리 장치의 구조를 보여주는 도면으로, 범용 계산 그래픽 처리 장치(10)는 병렬구조로 프로세스를 처리하기 위한 복수의 스트리밍 멀티프로세서(11,SM:Streaming Multiprocessor)와 내부 네트워크(12)로 연결되는 L2 캐쉬(13), 메모리 컨트롤러(14), 하위 메모리(15)를 포함한다.
또한, 도 2는 일반적인 범용 계산 그래픽 처리의 파이프라인을 설명하기 위한 것으로 먼저, 워프 스케줄러(Warp scheduler)에서 워프(warp)의 실행 순서를 정하고(S1000), 패치 유닛(Fetch unit)이 물리 메모리로부터 명령어를 패치하여(S200), 명령어 캐쉬(I-C,Instruction cache)에 저장된다(S300).
다음, 디코드 유닛(Decode unit)이 어떠한 명령어가 수행되어야 하는지 명령어를 디코딩하고(S400), 이슈 유닛(Issue unit)이 처리될 명령어를 지시하며(S500), 명령어는 레지스터 파일(Register file)에 일시저장된다(S600).
다음, 레지스터 파일에 저장되는 명령어의 종류에 따라 연산모듈(ALU)에서 연산이 수행되거나(S800), 로드 스토어 유닛(Load/Store unit)에 의해 메모리의 접근하여 데이터를 코어로 인출하며(S700), 연산 수행 결과가 레지스터 파일에 기록된다(S900).
한편, 데이터를 코어로 인출하는 과정(S700), 먼저, 주소 생성기(Address generator)에서 데이터가 저장된 주소를 생성하고(S710), 생성된 주소는 로드 스토어 큐(Load/Store Queue)에 일시 저장되어 출력된다(S720).
그러면, L1 캐쉬의 데이터 캐쉬(D-cache)에서 해당 주소에 데이터가 있는지 확인하고 데이터가 있을 경우 코어로 데이터를 인출하고(S730), 그렇지 않을 경우 하위 메모리인 L2 캐쉬에서 데이터를 코어로 인출하며(S750), 인출되는 데이터는 데이터 캐쉬에 저장된다. 이때, 데이터의 히트(hit) 또는 미스(miss)의 상태는 미스상태 홀딩 레지스터(MSHRs,Miss-Status Holding Registers)에 기록된다(S740).
또한, 데이터 캐쉬(D-cache)의 각 블록들은 태그와 데이터로 구성되며, 태그에는 주소에 해당하는 태그 정보와 블록의 히트, 미스상태를 표시하는 블록상태 정보가 포함된다.
이러한, 종래의 범용 계산 그래픽 처리 장치는 스트리밍 멀티프로세서들을 이용하여 광범위한 병렬구조로 프로세스를 처리하므로 처리 성능의 향상을 가지고 올 수 있으나 캐쉬 경합(cache contention) 및 자원 혼잡(resource congestion)과 같은 많은 실행 경쟁(performance challenges) 때문에 캐쉬의 저 효율이 발생하고 있으며, 특히 데이터 캐쉬의 블록 상태와 관계없이 항상 L1 데이터 캐쉬에 접근하므로 데이터 미스가 발생할 경우 파이프라인 스톨(stall)을 피할 수 없다.
[선행기술문헌]
[특허문헌]
1. 한국등록특허 제10-1662363호, 호스트 장치 내 캐쉬를 우회함으로써 저장장치 내 가상 파일에 액세스하기 위한 호스트 장치 및 방법
2. 한국등록특허 제10-1612155호, 다중 처리 스택을 구비한 저장 제어기의 I/O 요청을 우회시키기 위해 영역 로크를 사용하는 방법 및 구조
본 발명은 캐쉬 적중률 향상 및 메모리 스톨(stall)을 줄어 임베디스 시스템의 성능을 향상시킬 수 있는 캐쉬 우회 기법, 그 캐쉬 우회 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템을 제공하는 것이다.
상기의 목적을 달성하기 위하여 본 발명은 범용 계산 그래픽 처리 장치(GPGPU:General-Purpose computing on Graphics Processing Units)에서 스트리밍 멀티프로세서(SM:streaming multiprocessor)로서, 상기 스트리밍 멀티프로세서는 내부의 L1 데이터 캐쉬에 저장된 데이터를 코어로 인출하거나, 상기 L1 데이터 캐쉬에 원하는 데이터가 존재하지 않을 경우, 하위 레벨 메모리로 접근하여 원하는 데이터를 인출하고, 상기 L1 데이터 캐쉬에 데이터를 저장하며, 상기 L1 데이터 캐쉬의 태그 정보와 블록 상태 정보(Hit, Miss)를 갖는 엑스트라 태그 모듈(Extra Tags); 및 주소 생성기에서 생성된 주소와 상기 주소에 대응하는 상기 엑스트라 태그 모듈의 블록 상태 정보를 입력받고, 상기 블록 상태 정보가 히트(Hit)일 경우, 상기 L1 데이터 캐쉬에 접근하여 데이터를 인출하고, 상기 블록 상태 정보가 미스(Miss)일 경우, 상기 L1 데이터 캐쉬에 접근하지 않고, 상기 하위 레벨 메모리로 우회 접근하여 데이터가 인출되게 하는 우회 결정 모듈(Bypass decision);을 포함하는 것을 특징으로 하는 스트리밍 멀티프로세서를 제공한다.
바람직한 실시예에 있어서, 상기 스트리밍 멀티프로세서,는 원하는 데이터가 저장된 주소를 생성하는 주소 생성기(address generator); 및 상기 주소 생성기의 주소를 입력받아 임시저장하며 상기 우회 결정 모듈로 순차 출력하는 로드 스토어 큐(Load/Store Queue);를 포함하고, 상기 로드 스토어 큐에서 상기 우회 결정 모듈로 주소가 출력될 때, 출력되는 주소에 대응하는 태그의 블록 상태 정보가 상기 엑스트라 태그 모듈에서 상기 우회 결정 모듈로 동시에 출력한다.
또한, 본 발명은 상기 스트리밍 멀티프로세서들을 포함하는 범용 계산 그래픽 처리 장치를 더 제공한다.
또한, 본 발명은 상기 범용 계산 그래픽 처리 장치가 임베디드된 임베디드 시스템을 더 제공한다.
또한, 본 발명은 상기 스트리밍 멀티프로세서를 이용하여 상기 L1 데이터 캐쉬에서 데이터를 인출하거나 또는 상기 L1 데이터 캐쉬를 우회하여 상기 하위 레벨 메모리에서 데이터를 인출하는 캐쉬 우회 기법으로서, 상기 주소 생성기에서 주소가 생성되는 단계; 상기 주소 생성기에서 생성된 주소룰 상기 로드 스토어 큐에 적재되는 동시에 상기 엑스트라 태그 모듈에서 상기 주소에 대응하는 태그의 블록 상태 정보를 확인하는 단계; 상기 로드 스토어 큐에서 상기 우회 결정 모듈로 주소가 출력되고, 동시에 출력되는 주소에 대응하는 태그의 블록 상태 정보가 상기 우회 결정 모듈로 출력되는 단계; 상기 우회 결정 모듈이 상기 블록 상태 정보가 히트(Hit)일 경우, 상기 L1 데이터 캐쉬에서 데이터가 인출되게 하고, 상기 블록 상태 정보가 미스(Miss)일 경우, 상기 L1 데이터 캐쉬에 접근하지 않고, 상기 하위 레벨 메모리로 우회 접근하여 데이터가 인출되게 하는 단계; 및 상기 L1 데이터 캐쉬의 태그 정보와 갱신된 블록 상태 정보를 상기 엑스트라 테그 모듈에 저장하는 단계;를 포함한다.
또한, 상기 L1 데이터 캐쉬의 태그 정보와 갱신된 블록 상태 정보를 상기 엑스트라 테그 모듈에 저장하는 단계는, 상기 L1 데이터 캐쉬로의 접근이 이루어질 경우에만 수행된다.
본 발명은 다음과 같은 우수한 효과를 가진다.
본 발명의 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템에 의하면, 매 사이클마다 L1 데이터 캐쉬에 접근하지 않고, 엑스트라 태그 모듈의 블록 상태 정보가 히트인 경우에만 접근함으로써 캐쉬 적중률을 향상시킬 수 있고, L1 캐시의 접근을 줄여 임베디스 시스템의 성능을 향상시킬 수 있는 장점이 있다.
도 1은 일반적인 범용 계산 그래픽 처리장치의 구조를 보여주는 도면,
도 2는 일반적인 범용 계산 그래픽 처리장치의 파이프라인을 설명하기 위한 도면,
도 3은 본 발명의 일 실시예에 따른 캐쉬 우회 기법을 설명하기 위한 도면,
도 4는 본 발명의 일 실시예에 따른 캐쉬 우회 기법을 적용할 때, 클럭당 처리 명령어수를 보여주는 그래프,
도 5는 본 발명의 일 실시예에 따른 캐쉬 우회 기법을 적용할 때, L1 캐시의 미스율과 접근 횟수를 보여주는 그래프이다.
본 발명에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어도 있는데 이 경우에는 단순한 용어의 명칭이 아닌 발명의 상세한 설명 부분에 기재되거나 사용된 의미를 고려하여 그 의미가 파악되어야 할 것이다.
이하, 첨부한 도면에 도시된 바람직한 실시예들을 참조하여 본 발명의 기술적 구성을 상세하게 설명한다.
그러나 본 발명은 여기서 설명되는 실시예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 명세서 전체에 걸쳐 동일한 참조번호는 동일한 구성요소를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 캐쉬 우회 기법을 설명하기 위한 것으로, 본 발명의 캐쉬 우회 기법은 스트리밍 멀티프로세서의 데이터 캐시에서 코어로 데이터를 인출할 때, 데이터 캐시로의 접근을 선택적으로 수행함으로써, 캐쉬 적중률 향상을 향상시키고, 메모리 스톨(stall)을 줄일 수 있는 방법이다.
또한, 본 발명의 캐쉬 우회 기법은 스트리밍 멀티프로세서(SM:Streaming Multiprocessor)에서 수행된다.
즉, 본 발명은 본 발명의 캐쉬 우회 기법으로 데이터를 인출하는 장치인 스트리밍 멀티프로세서의 형태로 제공될 수 있다.
또한, 본 발명은 복수 개의 상기 스트리밍 멀티프로세서를 포함하는 하나의 범용 계산 그래픽 처리장치(GPGPU:General-Purpose computing on Graphics Processing Units)로 제공될 수 있고, 상기 범용 계산 그래픽 처리장치가 임베디드된 임베디드 시스템(embedded system)의 형태로 제공될 수도 있다.
도 3을 참조하면, 본 발명의 캐쉬 우회 기법은 도 2에 도시한 파이프라인과 비교하여 데이터 인출하는 과정(도 2의 'S700')만이 서로 상이하고 나머지 단계들은 실질적으로 동일하다.
또한, 본 발명의 캐쉬 우회 기법을 수행하기 위해서는 기존의 스트리밍 멀티프로세서에 새로운 하드웨어인 엑스트라 태그 모듈(Extra Tags, 일종의 '메모리')과 우회 결정 모듈(Bypass decision, 예를 들면, '2-bit multiplexer')이 구비되어야 하며, 이 하드웨드들은 기존의 스트리밍 멀티프로세서에 실질적으로 새롭게 추가될 수도 있고, 기존에 구비된 하드웨어를 프로그램적으로 재구성하는 방법으로 추가할 수도 있다.
또한, 상기 엑스트라 태그 모듈에는 L1 데이터 캐쉬의 태그들(Tags)이 카피되어 저장되며, 상기 태그들에는 L1 데이터 캐쉬의 블록 주소에 해당하는 태그 정보와 데이터 인출의 히트(Hit) 또는 미스(Miss) 여부를 표시하는 블록 상태 정보가 포함된다.
또한, 상기 블록 상태 정보에는 히트 리저브(Hit reserved)가 더 포함될 수 있다.
또한, 상기 우회 결정 모듈은 로드 스토어 큐와 L1 데이터 캐쉬 사이에 구비되며 L1 데이터 캐쉬로 접근하여 데이터를 인출할지 아니면, 하위 레벨 메모리(L2 캐쉬)로 바로 접근하여 데이터를 인출할지를 결정한다.
이하에서는 본 발명의 따른 캐쉬 우회 기법(S1000)을 상세히 설명한다.
먼저, 스트리밍 멀티프로세서의 주소 생성기(address generator)가 데이터를 인출한 주소를 생성하여 출력한다(S1100).
다음, 상기 주소 생성기에서 출력되는 주소는 로드 스토어 큐(Load/Store Queue)에 일시 저장된 후 출력된다(S1200).
동시에 상기 주소 생성기에서 출력되는 주소에 대응하는 태그 정보를 상기 엑스트라 태그 모듈에서 검색하고, 태그 정보에 맵핑된 블록 상태 정보가 출력된다(S1300).
다시 말해서, 상기 로드 스토어 큐의 주소 출력과 상기 엑스트라 태그 모듈의 블록 상태 정보 출력은 동일한 사이클에서 이루어진다.
다음, 상기 로드 스토어 큐에서 출력되는 주소와 상기 엑스트라 태그 모듈에서 출력되는 블록 상태 정보가 상기 우회 결정 모듈로 입력되고, 상기 우회 결정 모듈은 상기 블록 상태 정보에 따라서 상기 L1 데이터 캐쉬에 접근하여 데이터를 인출할지 상기 L1 데이터 캐쉬에 접근하지 않고 우회하여 바로 하위 레벨 메모리에서 데이터를 인출할지를 결정한다(S1400).
만약, 상기 블록 상태 정보가 히트(hit)일 경우에는 L1 데이터 캐쉬에 원하는 데이터가 있는 경우이므로 상기 L1 데이터 캐쉬에서 코어로 데이터가 인출되게 한다(S1500).
또한, 미스상태 홀딩 레지스터(MSHRs,Miss-Status Holding Registers)에는 데이터 인출의 히트 또는 미스(miss) 상태가 기록된다(S1600).
그러나, 상기 블록 상태 정보가 미스(miss)일 경우에는 L1 데이터 캐쉬로 접근하지 않고 우회하여 바로 하위 레벨 메모리에서 데이터를 인출한다(S1700).
또한, 인출되는 데이터는 레지스터 파일에 적재되어 코어로 제공되며, 데이터의 변경되는 경우에만 상기 L1 데이터 캐쉬에 접근하여 데이터를 기록한다.
또한, 본 발명에서는 상기 블록 상태 정보가 히트 리저브(Hit reserved)인 경우에도 상기 L1 데이터 캐쉬에 접근하지 않고 우회하여 캐쉬 적중률이 향상되도록 하였다.
또한, 상기 L1 데이터 캐쉬에서 데이터를 인출하거나 데이터를 변경이 있을 경우에만, 상기 L1 데이터 캐쉬의 태그가 상기 엑스트라 태그 모듈에 카피되어 저장된다.
다시 말해서, 상기 L1 데이터 캐쉬로의 접근이 발생하지 않는 경우에는 상기 L1 데이터 캐쉬의 태그는 상기 엑스트라 태그 모듈에 카피되지 않는다.
즉, 본 발명의 일 실시예에 따른 캐쉬 우회 기법은 매 사이클마다 L1 데이터 캐쉬에 접근하지 않고, 블록 상태 정보가 히트인 경우에만 접근함으로써 캐쉬 적중률을 향상시킬 수 있고, L1 캐시의 접근을 줄여 임베디스 시스템의 성능을 향상시킬 수 있다.
도 4는 본 발명의 일 실시예에 따른 캐쉬 우회 기법을 적용할 때, 클럭당 처리 명령어수(IPC:Instruction per Clock)를 보여주는 그래프로써, 종래의 일반적인 파이프라인(Baseline)보다 본 발명의 캐쉬 우회 기법을 적용할 때, 클럭당 처리 명령어수가 모든 벤치마크 프로그램들에서 동일하거나 향상되는 것을 알 수 있다.
도 5는 본 발명의 일 실시예에 따른 캐쉬 우회 기법을 적용할 때, L1 캐시의 미스율과 접근 횟수를 보여주는 그래프이다.
도 5를 참조하면, 종래의 일반적인 파이프라인(Basdline)의 L1 캐시 미스율(Normalized L1 Miss Rate)과 L1 캐시 접근율(Normalized L1 Access)이 '1'이라할 경우, 모든 벤치마크 프로그램들에서 본 발명의 캐쉬 우회 기법을 적용할 때, 미스율(Miss Rate)과 캐시 접근율(Access No.)이 동일하거나 줄어드는 것을 확인할 수 있다.
이상에서 살펴본 바와 같이 본 발명은 바람직한 실시예를 들어 도시하고 설명하였으나, 상기한 실시예에 한정되지 아니하며 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변경과 수정이 가능할 것이다.
10:범용 계산 그래픽 처리장치 11:스트리밍 멀티프로세서
12:내부 네트워크 13:L2 캐쉬
14:메모리 컨트롤러 15:하위 메모리

Claims (6)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 범용 계산 그래픽 처리 장치(GPGPU:General-Purpose computing on Graphics Processing Units)의 스트리밍 멀티프로세서(SM:streaming multiprocessor)의 캐쉬 우회 기법으로서,
    상기 스트리밍 멀티프로세서는 내부의 L1 데이터 캐쉬에 저장된 데이터를 코어로 인출하거나, 상기 L1 데이터 캐쉬에 원하는 데이터가 존재하지 않을 경우, 하위 레벨 메모리로 접근하여 원하는 데이터를 인출하고, 상기 L1 데이터 캐쉬에 데이터를 저장하고,
    원하는 데이터가 저장된 주소를 생성하는 주소 생성기(address generator);
    상기 주소 생성기의 주소를 입력받아 임시저장하며 아래의 우회 결정 모듈로 순차 출력하는 로드 스토어 큐(Load/Store Queue);
    상기 L1 데이터 캐쉬의 태그 정보와 블록 상태 정보(Hit 또는 Miss)를 갖는 엑스트라 태그 모듈(Extra Tags); 및
    상기 로드 스토어 큐에 임시 저장된 주소와 상기 주소에 대응하는 상기 엑스트라 태그 모듈의 블록 상태 정보를 입력받고, 상기 블록 상태 정보가 히트(Hit)일 경우, 상기 L1 데이터 캐쉬에 접근하여 데이터를 인출하고, 상기 블록 상태 정보가 미스(Miss)일 경우, 상기 L1 데이터 캐쉬에 접근하지 않고, 상기 하위 레벨 메모리로 우회 접근하여 데이터가 인출되게 하는 우회 결정 모듈(Bypass decision);을 포함하며,
    상기 캐쉬 우회 기법:은,
    상기 주소 생성기에서 주소가 생성되는 단계;
    상기 주소 생성기에서 생성된 주소를 상기 로드 스토어 큐에 적재되는 동시에 상기 엑스트라 태그 모듈에서 상기 주소에 대응하는 태그의 블록 상태 정보를 확인하는 단계;
    상기 로드 스토어 큐에서 상기 우회 결정 모듈로 주소가 출력되고, 동시에 출력되는 주소에 대응하는 태그의 블록 상태 정보가 상기 엑스트라 태그 모듈에서 상기 우회 결정 모듈로 출력되는 단계;
    상기 우회 결정 모듈이 상기 블록 상태 정보가 히트(Hit)일 경우, 상기 L1 데이터 캐쉬에서 데이터가 인출되게 하고, 상기 블록 상태 정보가 미스(Miss)일 경우, 상기 L1 데이터 캐쉬에 접근하지 않고, 상기 하위 레벨 메모리로 우회 접근하여 데이터가 인출되게 하는 단계; 및
    상기 L1 데이터 캐쉬의 태그 정보와 갱신된 블록 상태 정보를 상기 엑스트라 태그 모듈에 저장하는 단계;를 포함하는 것을 특징으로 하는 캐쉬 우회 기법.
  6. 제 5 항에 있어서,
    상기 L1 데이터 캐쉬의 태그 정보와 갱신된 블록 상태 정보를 상기 엑스트라 태그 모듈에 저장하는 단계는,
    상기 L1 데이터 캐쉬로의 접근이 이루어질 경우에만 수행되는 것을 특징으로 하는 캐쉬 우회 기법.
KR1020160157065A 2016-11-24 2016-11-24 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템 KR101852012B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160157065A KR101852012B1 (ko) 2016-11-24 2016-11-24 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160157065A KR101852012B1 (ko) 2016-11-24 2016-11-24 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020180029231A Division KR101853648B1 (ko) 2018-03-13 2018-03-13 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템

Publications (1)

Publication Number Publication Date
KR101852012B1 true KR101852012B1 (ko) 2018-06-11

Family

ID=62600947

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160157065A KR101852012B1 (ko) 2016-11-24 2016-11-24 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템

Country Status (1)

Country Link
KR (1) KR101852012B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182944A1 (en) * 2008-01-10 2009-07-16 Miguel Comparan Processing Unit Incorporating L1 Cache Bypass
WO2009120997A2 (en) * 2008-03-28 2009-10-01 Intel Corporation Technique to share information among different cache coherency domains
KR101639943B1 (ko) * 2015-03-12 2016-07-15 성균관대학교산학협력단 범용 그래픽 프로세서의 공유 메모리를 캐시로 동작시키기 위한 공유 메모리 제어 방법 및 이를 이용한 범용 그래픽 프로세서

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182944A1 (en) * 2008-01-10 2009-07-16 Miguel Comparan Processing Unit Incorporating L1 Cache Bypass
WO2009120997A2 (en) * 2008-03-28 2009-10-01 Intel Corporation Technique to share information among different cache coherency domains
KR101639943B1 (ko) * 2015-03-12 2016-07-15 성균관대학교산학협력단 범용 그래픽 프로세서의 공유 메모리를 캐시로 동작시키기 위한 공유 메모리 제어 방법 및 이를 이용한 범용 그래픽 프로세서

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Mittal. A survey of cache bypassing techniques. Journal of Low Power Electronics and Applications, Vol. 6, No. 2, 2016년 4월, pp. 1-30.* *

Similar Documents

Publication Publication Date Title
US11954036B2 (en) Prefetch kernels on data-parallel processors
US7949855B1 (en) Scheduler in multi-threaded processor prioritizing instructions passing qualification rule
US10860326B2 (en) Multi-threaded instruction buffer design
US7844802B2 (en) Instructions for ordering execution in pipelined processes
CN106716434B (zh) 具有独立的用户域与管理程序域的存储器保护密钥架构
JP5615927B2 (ja) データストリームのためのストアアウェアプリフェッチ
EP1008053B1 (en) Controlling memory access ordering in a multi-processing system
EP2979189B1 (en) Storing data from cache lines to main memory based on memory addresses
US20070050592A1 (en) Method and apparatus for accessing misaligned data streams
US8688962B2 (en) Gather cache architecture
JP7007371B2 (ja) ベクトル命令のための要素間アドレス・ハザードの取扱い
US10482024B2 (en) Private caching for thread local storage data access
JP2008530656A (ja) データ転送中にキャッシュへのアクセスを制限するシステムおよびその方法
US20130159679A1 (en) Providing Hint Register Storage For A Processor
US10514920B2 (en) Dynamically updating hardware prefetch trait to exclusive or shared at program detection
KR101853648B1 (ko) 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
US20130262775A1 (en) Cache Management for Memory Operations
KR102205899B1 (ko) 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
KR101852012B1 (ko) 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
US11687344B2 (en) Method and system for hard ware-assisted pre-execution
KR101946476B1 (ko) 캐쉬 적중률 예측에 기반한 주기적 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템
US20190056953A1 (en) Token-based data dependency protection for memory access
US20220413849A1 (en) Providing atomicity for complex operations using near-memory computing
US11853755B2 (en) Atomic range compare and modify operations
KR101969435B1 (ko) 어플리케이션 특성 기반 캐쉬 성능에 따른 주기적인 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템

Legal Events

Date Code Title Description
GRNT Written decision to grant