KR101602150B1 - 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램 - Google Patents

공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램 Download PDF

Info

Publication number
KR101602150B1
KR101602150B1 KR1020140155420A KR20140155420A KR101602150B1 KR 101602150 B1 KR101602150 B1 KR 101602150B1 KR 1020140155420 A KR1020140155420 A KR 1020140155420A KR 20140155420 A KR20140155420 A KR 20140155420A KR 101602150 B1 KR101602150 B1 KR 101602150B1
Authority
KR
South Korea
Prior art keywords
data
level cache
last
last level
hit
Prior art date
Application number
KR1020140155420A
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 KR1020140155420A priority Critical patent/KR101602150B1/ko
Application granted granted Critical
Publication of KR101602150B1 publication Critical patent/KR101602150B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 메모리 장치, 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램에 관한 것으로, 보다 구체적으로는 공간 지역성 인지 선인출 기법을 이용하여 라스트 레벨 캐쉬의 데이터 히트율을 증가시킴으로써, 메인 메모리로 평균 접근 지연 시간을 줄여 시스템의 성능을 향상시킬 수 있는 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램에 관한 것이다.

Description

공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램{Memory using spatial-locality aware prefetch technique, computing system having the memory, fetch method and fetch program}
본 발명은 메모리 장치, 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램에 관한 것으로, 보다 구체적으로는 공간 지역성 인지 선인출 기법을 이용하여 라스트 레벨 캐쉬의 데이터 히트율을 증가시킴으로써, 메인 메모리로 평균 접근 지연 시간을 줄여 시스템의 성능을 향상시킬 수 있는 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램에 관한 것이다.
최근 컴퓨팅 시스템의 성능을 향상시키기 위한 다양한 노력이 있다.
그러나, 프로세서와 메인 메모리간의 속도차이는 데이터 사용의 병목현상을 가져오고, 이러한 병목현상은 메모리 성능의 향상을 가로막는 걸림돌로 작용한다.
이러한 속도차이는 메모리를 복수의 메모리 레벨로 구분하여 계층화함으로써 완화할 수 있다.
계층화된 메모리 장치는 속도와 비용을 효과적으로 제공하기 위해 지역성의 원리를 이용하는데, 이러한 지역성의 원리는 시간 지역성 원리와 공간 지역성 원리로 구분될 수 있다.
시간 지역성의 원리는 한번 참조된 데이터는 다시 참조될 가능성이 높다는 원리이고, 공간 지역성의 원리는 한번 참조된 데이터에 인접한 데이터는 매우 짧은 시간에 다시 참조될 가능성이 높다는 원리이다.
계층화된 메모리 장치은 이러한 지역성 원리의 이점을 살릴 수 있도록 캐쉬에 미리 참조된 데이터를 저장한다.
도 1은 종래의 메모리 장치의 일례를 보여주는 도면이다.
도 1을 참조하면, 종래의 메모리 장치(10)는 라스트 레벨 캐쉬(11,LLC:last level cache)와 메인 메모리(12)로 구성되는 구조이다.
실질적으로 상기 메모리 장치(10)는 L1 캐쉬와 같은 상위 캐쉬를 더 포함할 수 있으며 메모리의 계층분류에 따라 복수의 캐쉬를 더 구비할 수 있다.
또한, 상기 라스트 레벨 캐쉬는 L2 캐쉬일 수 있으며, 상위 레벨의 캐쉬 및 프로세서 코어와 하나의 프로세서(CPU)로 제공될 수 있다.
즉, 상기 라스트 레벨 캐쉬(11)는 프로세서의 일부일 수 있다.
또한, 상기 메인 메모리(12)는 프로세서와 하드웨어적으로 분리된 RAM(random access memory)일 수 있다.
종래의 메모리 장치(10)의 데이터 인출방법을 살펴보면, 먼저, 상위 캐쉬에서 데이터 인출의 미스가 발생하고, 상기 라스트 레벨 캐쉬(11)로의 데이터 요청이 발생한다.
만약, 상기 라스트 레벨 캐쉬(11)에 요청된 데이터가 존재하여 데이터가 히트될 경우 히트된 데이터(11a)는 상위 레벨 캐쉬 및 코어(프로세서 코어)로 인출된다.
그러면, 코어는 인출된 데이터에 의한 명령을 수행하고 상위 레벨 캐쉬는 캐쉬 교체 정책에 따라 기 존재하는 데이터를 현재 인출된 데이터로 교체한다.
그러나, 상기 라스트 레벨 캐쉬(11)에 요청된 데이터가 존재하지 않아 데이터 미스가 발생할 경우에는 상기 메인 메모리(12)로 데이터 요청이 입력되고, 상기 메인 메모리(12)는 요청된 데이터(12a)를 코어 및 상위 캐쉬(라스트 레벨 캐쉬)로 인출한다.
또한, 상기 상위 캐쉬는 캐쉬 교체 정책에 딸 상기 메인 메모리(12)에서 입력되는 데이터를 기 저장된 데이터와 교체한다.
한편, 상기 메인 메모리(12)로의 접근이 증가할수록 시간 비용이 증가하므로 프로세서의 성능이 하락한다.
따라서 데이터 인출시 메인 메모리(12)로의 접근을 줄이고, 캐쉬 계층에서 데이터 히트율을 증가시키고자 하는 노력이 있다.
본 발명은 상술한 노력에 부응하여 안출된 것으로, 본 발명의 목적은 라스트 레벨 캐쉬에서 데이터 히트율을 향상시킴으로써 시스템의 성능을 향상시킬 수 있는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 프로그램을 제공하는 데 있다.
또한, 본 발명의 목적은 공간 지역성을 정량화하여 공간 지역성 집중도에 따라 데이터를 선인출하여 메인 메모리로의 접근을 최소화할 수 있는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 프로그램을 제공하는 데 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기의 목적을 달성하기 위하여 본 발명은 데이터의 요청이 있을 경우, 코어 및 상위 캐쉬로 데이터를 인출하는 라스트 레벨 캐쉬부; 및 요청된 데이터가 상기 라스트 레벨 캐쉬부에 존재하지 않을 경우, 요청된 데이터를 상기 코어 및 상기 라스트 레벨 캐쉬부로 인출하는 메인 메모리;를 포함하고, 상기 라스트 레벨 캐쉬부는 라스트 레벨 캐쉬 및 라스트 레벨 캐쉬 버퍼를 포함하며, 상기 라스트 레벨 캐쉬에서 데이터 히트가 발생할 경우, 히트된 데이터는 상기 코어 및 상기 상위 캐쉬로 인출되고, 상기 라스트 레벨 캐쉬 버퍼에서 데이터 히트가 발생할 경우, 히트된 데이터는 상기 코어 및 상기 상위 캐쉬로 인출되는 동시에 상기 라스트 레벨 캐쉬로 이동하며, 상기 라스트 레벨 캐쉬 및 상기 라스트 레벨 캐쉬 버퍼에서 데이터 미스가 발생할 경우, 상기 메인 메모리에서 상기 코어 및 상기 라스트 레벨 캐쉬로 요청된 데이터가 인출되는 것을 특징으로 하는 메모리 장치를 제공한다.
바람직한 실시예에 있어서, 상기 라스트 레벨 캐쉬와 상기 라스트 레벨 캐쉬 버퍼의 데이터들은 서로 중복되지 아니하고 데이터 요청에 대해 병렬적으로 데이터를 인출된다.
바람직한 실시예에 있어서, 상기 메인 메모리에서 데이터가 인출될 때, 상기 메인 메모리는 인출되는 데이터와 인접한 데이터 블럭(contiguous data blocks)들을 상기 라스트 레벨 캐쉬 버퍼로 인출한다.
바람직한 실시예에 있어서, 상기 인접한 데이터 블럭들의 인출은 소정의 실행 사이클 동안 상기 라스트 레벨 캐쉬부의 테이터 미스 횟수가 임계치 이상일 경우 실행된다.
바람직한 실시예에 있어서, 상기 라스트 레벨 캐쉬 버퍼로 데이터 블럭들이 인출될 경우, 상기 라스트 레벨 캐쉬 버퍼에 기 저장된 데이터들은 상기 데이터 블럭들로 교체된다.
또한, 본 발명은 상기 메모리 장치를 이용하여 데이터를 인출하는 데이터 인출방법으로서, 상기 라스트 레밸 캐쉬부가 데이터 인출을 요청받는 단계; 상기 라스트 레벨 캐쉬부에서 데이터 히트가 발생할 경우, 데이터 히트가 상기 라스트 레벨 캐쉬에서의 히트이면 상기 라스트 레벨 캐쉬는 히트된 데이터를 코어 및 상위 캐쉬로 인출하고 종료하고, 상기 라스트 레벨 캐쉬 버퍼에서의 히트이면 상기 라스트 레벨 캐쉬 버퍼는 히트된 데이터를 코어 및 상위 캐쉬로 인출하는 동시에 상기 라스트 레벨 캐쉬로 이동시키고 종료하는 단계; 및 상기 라스트 레벨 캐쉬부에서 데이터 미스가 발생하면, 상기 메인 메모리가 데이터 인출을 요청받고, 요청된 데이터를 상기 코어 및 상기 라스트 레벨 캐쉬로 인출하며, 상기 라스트 레벨 캐쉬의 소정 데이터가 상기 메인 메모리에서 인출된 데이터로 교체되는 단계;를 포함하는 것을 특징으로 하는 데이터 인출방법을 더 제공한다.
바람직한 실시예에 있어서, 상기 라스트 레벨 캐쉬 버퍼에서 히트된 데이터가 상기 라스트 레벨 캐쉬로 이동하는 단계는, 히트된 데이터가 상기 라스트 레벨 캐쉬 버퍼에서 상기 라스트 레벨 캐쉬로 인출되고 상기 라스트 레벨 캐쉬 버퍼에서 삭제되는 과정을 포함한다.
바람직한 실시예에 있어서, 상기 메인 메모리가 요청된 데이터를 인출하는 과정 이후에, 상기 메인 메모리가 인출되는 데이터와 인접한 데이터 블럭(contiguous data blocks)들을 상기 라스트 레벨 캐쉬 버퍼로 인출하는 단계를 더 포함한다.
바람직한 실시예에 있어서, 상기 인접한 데이터 블럭들의 인출은 소정의 실행 사이클 동안 상기 라스트 레벨 캐쉬부에서 발생한 테이터 미스 횟수가 임계치 이상일 경우 실행된다.
또한, 본 발명은 컴퓨팅 시스템과 결합하여 상기 데이터 인출 방법을 실행시키는 매체에 저장된 데이터 인출 프로그램을 더 제공한다.
또한, 본 발명은 상기 메모리 장치 및 상기 메모리 장치에서 데이터를 인출하여 명령을 처리하는 프로세서 코어를 포함하는 컴퓨팅 시스템을 더 제공한다.
본 발명은 다음과 같은 우수한 효과를 가진다.
먼저, 본 발명의 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 프로그램에 의하면, 라스트 레벨 캐쉬 버퍼를 추가하여 데이터 히트율을 향상시킴으로써 시스템의 성능을 향상시킬 수 있는 장점이 있다.
또한, 본 발명의 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 프로그램에 의하면 공간 지역성을 라스트 레벨 캐쉬부에서 미스가 발생하는 횟수로 정량화하고, 미스가 발생하는 횟수가 임계치 이상일 경우, 인출되는 데이터와 인접한 데이터 블록들을 라스트 레벨 캐쉬 버퍼로 선인출함으로써 메인 메모리로의 접근을 최소화할 수 있는 장점이 있다.
도 1은 종래의 메모리 장치를 설명하기 위한 도면,
도 2는 본 발명의 일 실시예에 따른 메모리 장치를 보여주는 도면,
도 3은 본 발명의 일 실시예에 따른 메모리 장치의 데이터 인출 방법을 설명하기 위한 도면,
도 4는 본 발명의 일 실시예에 따른 메모리 장치의 데이터 미스율을 시뮬레이션한 도면,
도 5는 본 발명의 일 실시예에 따른 메모리 장치의 클럭당 명령어 처리 처리 횟수(IPC:Instruction Per Cycle) 성능을 시뮬레이션한 도면이다.
본 발명에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어도 있는데 이 경우에는 단순한 용어의 명칭이 아닌 발명의 상세한 설명 부분에 기재되거나 사용된 의미를 고려하여 그 의미가 파악되어야 할 것이다.
이하, 첨부한 도면에 도시된 바람직한 실시예들을 참조하여 본 발명의 기술적 구성을 상세하게 설명한다.
그러나, 본 발명은 여기서 설명되는 실시예에 한정되지 않고 다른 형태로 구체화 될 수도 있다. 명세서 전체에 걸쳐 동일한 참조번호는 동일한 구성요소를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치를 보여주는 것으로 본 발명의 일 실시예에 따른 메모리 장치(100)는 라스트 레벨 캐쉬부(110)와 메인 메모리(120)를 포함한다.
또한, 상기 라스트 레벨 캐쉬부(110)는 프로세서(CPU)의 일부일 수 있고, 상기 메인 메모리(120)는 하드웨어적으로 상기 라스트 레벨 캐쉬부(110)와 분리된 RAM(random access memory)일 수 있다.
또한, 상기 라스트 레벨 캐쉬부(110)는 L1 캐쉬와 같은 상위 캐쉬 및 프로세서 코어(core)와 함께 하나의 프로세서(processor,CPU)를 구성할 수 있다.
또한, 상기 메모리 장치(110)는 상기 프로세서 코어와 함께 하나의 컴퓨팅 시스템으로 제공될 수 있다.
또한, 상기 컴퓨팅 시스템은 프로세서 시스템에 국한되지 않고, 퍼스널 컴퓨터, 테블릿 PC, 스마트 폰과 같은 스마트 기기 및 임베디드 시스템으로 확장될 수 있는 광의의 개념이다.
상기 라스트 레벨 캐쉬부(110)는 상기 메인 메모리(120)의 상위 메모리로써, 상기 메인 메모리(120)에 우선하여 데이터를 인출한다.
또한, 상기 라스트 레벨 캐쉬부(110)는 라스트 레벨 캐쉬(111)와 라스트 레벨 캐쉬 버퍼(112)를 포함하여 이루어진다.
또한, 상기 라스트 레벨 캐쉬(111)는 상기 메인 메모리(120)에 우선하여 데이터를 인출하며, 예를 들면, L2 캐쉬일 수 있다.
또한, 상기 라스트 레벨 캐쉬 버퍼(112)는 상기 메인 메모리(120)에 우선하여 데이터를 인출하되 상기 라스트 레벨 캐쉬(111)와는 병렬적으로 데이터를 인출한다.
또한, 상기 라스트 레벨 캐쉬(111)와 상기 라스트 레벨 캐쉬 버퍼(112)의 데이터들은 서로 중복되지 않으며, 상기 라스트 레벨 캐쉬(111)에서 데이터 히트가 발생할 경우 히트된 데이터(111a)는 코어 및 상위 캐쉬로 인출되고 동작이 종료된다.
그러나, 상기 라스트 레벨 캐쉬 버퍼(112)에서 데이터 히트가 발생할 경우, 히트된 데이터(112a)는 코어 및 상위 캐쉬로 인출되는 동시에 상기 라스트 레벨 캐쉬(111)로 이동한다.
상기 메인 메모리(120)는 상기 라스트 레벨 캐쉬부(110)에 요청된 데이터가 존재하지 않을 때, 즉, 데이터 미스가 발생하였을 때, 요청된 데이터를 코어 및 상기 라스트 레벨 캐쉬(111)로 인출한다.
또한, 상기 메인 메모리(120)는 상기 라스트 레벨 캐쉬부(110)의 데이터 미스율(공간 지역성 정도,LD:paatial locality degree)에 따라 인출되는 데이터(121)와 인접한 데이터 블록들(122)을 상기 라스트 레벨 캐쉬 버퍼(112)로 인출할 수 있다.
도 3는 본 발명의 데이터 인출방법을 설명하기 위한 것으로, 본 발명의 데이터 인출방법은 상기 메모리 장치(110)가 구비된 컴퓨팅 시스템에서 수행된다.
또한, 본 발명의 데이터 인출방법은 데이터 인출 프로그램에 의해 수행될 수 있다.
또한, 상기 데이터 인출 프로그램은 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등이 단독 또는 조합으로 구성된 프로그램일 수 있고, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라, 인터프리터 등을 사용하여 컴퓨터에 의해 실행될 수 있는 고급 언어 코드로 짜여진 프로그램일 수 있다.
또한, 상기 데이터 인출 프로그램은 별도로 기록 매체에 저장되어 제공될 수 있으며, 상기 기록매체는 본 발명을 위하여 특별히 설계되어 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에서 공지되어 사용 가능할 것일 수 있으며, 예를 들면, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD, DVD와 같은 광 기록 매체, 자기 및 광 기록을 겸할 수 있는 자기-광 기록 매체, 롬, 램, 플래시 메모리 등 단독 또는 조합에 의해 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치일 수 있다.
또한, 상기 데이터 인출 프로그램은 서버 시스템에 저장되어 인트라넷이나 인터넷 등의 통신망을 통해 클라이언트 시스템으로 전송될 수 있으며, 상기 클라이언트 시스템은 일반적인 퍼스널 컴퓨터, 스마트 폰, 태블릿 PC와 같은 스마트 기기, 임베디드 시스템을 포함한다.
이하에서는 본 발명의 데이터 인출방법에 대해 상세히 설명한다.
도 3를 참조하면, 본 발명의 데이터 인출방법은 먼저, 상위 캐쉬(예를 들면, L1 캐쉬)에서 데이터 미스가 발생하고(S100), 상기 라스트 레벨 캐쉬부(110)가 코어로부터 데이터 인출을 요청 받는다(S1000).
다음, 요청된 데이터가 상기 라스트 레벨 캐쉬부(110)에 존재하는지 판단하고(S2000), 데이터가 히트될 경우에는 상기 라스트 레벨 캐쉬부(110)에서 코어 및 상위 캐쉬로 데이터를 인출한다.
만약, 데이터의 히트가 상기 라스트 레벨 캐쉬(111)에서 발생할 경우, 상기 라스트 레벨 캐쉬(111)는 히트된 데이터(111a)를 코어 및 상위 캐쉬로 인출하고(S2100), 종료한다.
그러나, 데이터의 히트가 상기 라스트 레벨 캐쉬 버퍼(112)에서 발생한 경우에는, 상기 라스트 레벨 캐쉬 버퍼(112)는 히트된 데이터(112a)를 코어 및 상위 캐쉬로 인출한다(S2200). 동시에 상기 라스트 레벨 캐쉬 버퍼(112)는 히트된 데이터(112a)를 상기 라스트 레벨 캐쉬(111)로 이동시키고(S2210), 종료한다.
이 때, 상기 라스트 레벨 캐쉬 버퍼(112)에서 이동하는 데이터(112a)는 상기 라스트 레벨 캐쉬 버퍼(112)에서 삭제된다.
즉, 상기 라스트 레벨 캐쉬(111)와 상기 라스트 레벨 캐쉬 버퍼(112)의 데이터는 서로 중복되지 않는다.
만약, 상기 라스트 레벨 캐쉬부(110)에서 데이터의 히트가 발생하지 않고 미스된 경우에는 상기 메인 메모리(120)에 데이터 인출이 요청된다(S2300).
그러면, 상기 메인 메모리(120)는 코어 및 상위 캐쉬(라스트 레벨 캐쉬)로 데이터(121)를 인출하고(S2310), 종료한다.
한편, 상기 메인 메모리(120)에서 데이터의 인출이 있을 경우, 공간 지역성 정도가 임계치 이상인지 판단하고(S3000), 상기 공간 지역성 정도가 임계치 이상일 경우, 상기 메인 메모리(120)에서 인출되는 데이터(121)와 인접한 데이터 블럭(contiguous data blocks,122)들을 상기 라스트 레벨 캐쉬 버퍼(112)로 선인출한다(S3100).
그러면, 상기 라스트 레밸 캐쉬 버퍼(112)는 기 저장된 데이터를 선인출되는 데이터 블럭들(122)로 교체한다.
여기서 공간 지역성 정도는 상기 메인 메모리(120)로의 접근정도를 의미하는 것으로 본 발명에서는 소정의 실행 사이클동안 상기 라스트 레벨 캐쉬부에서 발생한 데이터 미스 횟수로 정의하였다.
그러나, 상기 공간 지역성 정도는 상기 메인 메모리(120)에서 데이터가 인출되는 횟수로 정의될 수 있다.
즉, 상기 라스트 레벨 캐쉬부(110)에서 데이터 미스가 임계치 이상으로 발생할 경우에는 상기 메인 메모리(120)에서 인출되는 데이터와 인접한 데이터 블럭을 상기 라스트 레벨 캐쉬 버퍼(112)에 저장하여 상기 라스트 레벨 캐쉬부(110)에서 히트율을 높임으로써 시스템의 성능을 향상시킬 수 있는 것이다.
도 4는 본 발명의 메모리 장치의 구조에서 데이터 미스율을 보여주는 것으로 상기 공간 지역성 정도가 100,000 실행 사이클동안 임계치가 5,000일 경우에 데이터 미스율을 보여준다.
도 4에서 BASE는 종래의 메모리 장치(10)를 의미하고, SLP(Spatial-locality Aware Prefetch)는 본 발명의 메모리 장치(100)를 의미하며, SLP-숫자에서 숫자는 상기 라스트 레벨 캐쉬 버퍼(112)의 사이즈를 의미한다.
예를들어, SLP-8의 경우 상기 라스트 레벨 캐쉬 버퍼(112)의 엔트리(entry)가 8개 있다는 의미이다.
도 4에서도 알 수 있듯이 본 발명의 메모리 장치(100)의 구조를 적용할 경우 다양한 벤치마크 프로그램에서 종래의 메모리 장치(10)보다 데이터 미스율이 평균적으로 23.89% 낮아짐을 확인할 수 있었다.
특히, 'art' 프로그램의 경우, 본 발명의 메모리 장치(100)가 종래의 메모리 장치(10)보다 약 50% 데이터 미스율 감소가 있었다.
또한, 상기 라스트 레벨 캐쉬 버퍼(112)의 사이즈가 클 수록 데이터 미스율이 줄어드는 것을 확인할 수 있었다.
도 5는 성능평가 결과를 보여주는 것으로 클럭당 명령어 처리 처리 횟수(IPC:Instruction Per Cycle) 성능을 보여주는 것으로 종래의 메모리 장치(10)의 처리 횟수를 100%로 환산하였을 때 본 발명의 메모리 장치(100)의 처리횟수를 백분율로 표현한 것이다.
도 5에서도 알 수 있듯이 본 발명의 메모리 장치(100)가 종래의 메모리 장치(10)보다 다양한 벤치마트 프로그램에서 평균적으로 11.54% 처리 횟수가 증가한 것을 확인할 수 있었다.
이상에서 살펴본 바와 같이 본 발명은 바람직한 실시예를 들어 도시하고 설명하였으나, 상기한 실시예에 한정되지 아니하며 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변경과 수정이 가능할 것이다.
100:메모리 장치 110:라스트 레벨 캐쉬부
111:라스트 레벨 캐쉬 112:라스트 레벨 캐쉬 버퍼
120:메인 메모리

Claims (11)

  1. 삭제
  2. 데이터의 요청이 있을 경우, 코어 및 상위 캐쉬로 데이터를 인출하는 라스트 레벨 캐쉬부; 및
    요청된 데이터가 상기 라스트 레벨 캐쉬부에 존재하지 않을 경우, 요청된 데이터를 상기 코어 및 상기 라스트 레벨 캐쉬부로 인출하는 메인 메모리;를 포함하고,
    상기 라스트 레벨 캐쉬부는 라스트 레벨 캐쉬 및 라스트 레벨 캐쉬 버퍼를 포함하며,
    상기 라스트 레벨 캐쉬에서 데이터 히트가 발생할 경우, 히트된 데이터는 상기 코어 및 상기 상위 캐쉬로 인출되고,
    상기 라스트 레벨 캐쉬 버퍼에서 데이터 히트가 발생할 경우, 히트된 데이터는 상기 코어 및 상기 상위 캐쉬로 인출되는 동시에 상기 라스트 레벨 캐쉬로 이동하며,
    상기 라스트 레벨 캐쉬 및 상기 라스트 레벨 캐쉬 버퍼에서 데이터 미스가 발생할 경우, 상기 메인 메모리에서 상기 코어 및 상기 라스트 레벨 캐쉬로 요청된 데이터가 인출되며,
    상기 라스트 레벨 캐쉬와 상기 라스트 레벨 캐쉬 버퍼의 데이터들은 서로 중복되지 아니하고 데이터 요청에 대해 병렬적으로 데이터를 인출되는 것을 특징으로 하는 메모리 장치.
  3. 제 2 항에 있어서,
    상기 메인 메모리에서 데이터가 인출될 때, 상기 메인 메모리는 인출되는 데이터와 인접한 데이터 블럭(contiguous data blocks)들을 상기 라스트 레벨 캐쉬 버퍼로 인출하는 것을 특징으로 하는 메모리 장치.
  4. 제 3 항에 있어서,
    상기 인접한 데이터 블럭들의 인출은 소정의 실행 사이클 동안 상기 라스트 레벨 캐쉬부의 테이터 미스 횟수가 임계치 이상일 경우 실행되는 것을 특징으로 하는 메모리 장치.
  5. 제 3 항에 있어서,
    상기 라스트 레벨 캐쉬 버퍼로 데이터 블럭들이 인출될 경우, 상기 라스트 레벨 캐쉬 버퍼에 기 저장된 데이터들은 상기 데이터 블럭들로 교체되는 것을 특징으로 하는 메모리 장치.
  6. 삭제
  7. 라스트 레벨 캐쉬와 라스트 레벨 캐쉬 버퍼로 구성되는 라스트 레벨 캐쉬부및 메인 메모리를 포함하는 메모리 장치의 데이터 인출방법으로서,
    상기 라스트 레벨 캐쉬부가 데이터 인출을 요청받는 단계;
    상기 라스트 레벨 캐쉬부에서 데이터 히트가 발생할 경우, 데이터 히트가 상기 라스트 레벨 캐쉬에서의 히트이면 상기 라스트 레벨 캐쉬는 히트된 데이터를 코어 및 상위 캐쉬로 인출하고 종료하고, 상기 라스트 레벨 캐쉬 버퍼에서의 히트이면 상기 라스트 레벨 캐쉬 버퍼는 히트된 데이터를 코어 및 상위 캐쉬로 인출하는 동시에 상기 라스트 레벨 캐쉬로 이동시키고 종료하는 단계; 및
    상기 라스트 레벨 캐쉬부에서 데이터 미스가 발생하면, 상기 메인 메모리가 데이터 인출을 요청받고, 요청된 데이터를 상기 코어 및 상기 라스트 레벨 캐쉬로 인출하며, 상기 라스트 레벨 캐쉬의 소정 데이터가 상기 메인 메모리에서 인출된 데이터로 교체되는 단계;를 포함하고,
    상기 라스트 레벨 캐쉬 버퍼에서 히트된 데이터가 상기 라스트 레벨 캐쉬로 이동하는 단계는,
    히트된 데이터가 상기 라스트 레벨 캐쉬 버퍼에서 상기 라스트 레벨 캐쉬로 인출되고 상기 라스트 레벨 캐쉬 버퍼에서 삭제되는 과정을 포함하는 것을 특징으로 하는 데이터 인출방법.
  8. 제 7 항에 있어서,
    상기 메인 메모리가 요청된 데이터를 인출하는 과정 이후에,
    상기 메인 메모리가 인출되는 데이터와 인접한 데이터 블럭(contiguous data blocks)들을 상기 라스트 레벨 캐쉬 버퍼로 인출하는 단계를 더 포함하는 것을 특징으로 하는 데이터 인출방법.
  9. 제 8 항에 있어서,
    상기 인접한 데이터 블럭들의 인출은 소정의 실행 사이클 동안 상기 라스트 레벨 캐쉬부에서 발생한 테이터 미스 횟수가 임계치 이상일 경우 실행되는 것을 특징으로 하는 데이터 인출방법.
  10. 컴퓨팅 시스템과 결합하여 제 7 항 내지 제 9 항 중 어느 한 항의 방법을 실행시키는 매체에 저장된 데이터 인출 프로그램.
  11. 제 2 항 내지 제 5 항 중 어느 한 항의 메모리 장치; 및
    상기 메모리 장치에서 데이터를 인출하여 명령을 처리하는 프로세서 코어;를 포함하는 컴퓨팅 시스템.
KR1020140155420A 2014-11-10 2014-11-10 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램 KR101602150B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140155420A KR101602150B1 (ko) 2014-11-10 2014-11-10 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140155420A KR101602150B1 (ko) 2014-11-10 2014-11-10 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램

Publications (1)

Publication Number Publication Date
KR101602150B1 true KR101602150B1 (ko) 2016-03-10

Family

ID=55539268

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140155420A KR101602150B1 (ko) 2014-11-10 2014-11-10 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램

Country Status (1)

Country Link
KR (1) KR101602150B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3588313A1 (en) * 2018-06-22 2020-01-01 INTEL Corporation Non-volatile memory aware caching policies
CN113778909A (zh) * 2020-09-28 2021-12-10 北京京东振世信息技术有限公司 一种缓存数据的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249971A (ja) * 2006-03-13 2007-09-27 Intel Corp 統合キャッシュ階層における最新性情報の同期
JP2008513907A (ja) * 2004-09-23 2008-05-01 インテル コーポレイション 統合キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008513907A (ja) * 2004-09-23 2008-05-01 インテル コーポレイション 統合キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置
JP2007249971A (ja) * 2006-03-13 2007-09-27 Intel Corp 統合キャッシュ階層における最新性情報の同期

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
[논문] 손동오 외 3명. "재구성 가능한 라스트 레벨 캐쉬 구조를 위한 코어 인지 캐쉬 교체 기법". 한국컴퓨터정보학회 논문 Vol.18 No.11* *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3588313A1 (en) * 2018-06-22 2020-01-01 INTEL Corporation Non-volatile memory aware caching policies
US10534710B2 (en) 2018-06-22 2020-01-14 Intel Corporation Non-volatile memory aware caching policies
CN113778909A (zh) * 2020-09-28 2021-12-10 北京京东振世信息技术有限公司 一种缓存数据的方法和装置
CN113778909B (zh) * 2020-09-28 2023-12-05 北京京东振世信息技术有限公司 一种缓存数据的方法和装置

Similar Documents

Publication Publication Date Title
KR101361928B1 (ko) 스레드 이송 시의 캐시 프리필링
US8490065B2 (en) Method and apparatus for software-assisted data cache and prefetch control
KR102424121B1 (ko) 프리-페치 유닛, 그것을 포함하는 장치 및 그것의 동작 방법
US8516360B2 (en) Controlled parallel compilation and execution of JavaScripts
KR20140133559A (ko) 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
US8417892B1 (en) Differential storage and eviction for information resources from a browser cache
KR102467817B1 (ko) 데이터 캐시 영역 프리페처
CN104320448B (zh) 一种基于大数据的计算设备的缓存与预取加速方法和装置
US20140310479A1 (en) Communicating prefetchers that throttle one another
TW201629775A (zh) 在程式偵測時動態更新硬體預取特性為互斥或共享的裝置與方法
Chung et al. Application data prefetching on the IBM Blue Gene/Q supercomputer
CN109196487A (zh) 向上/向下预取器
KR101602150B1 (ko) 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램
US20210349995A1 (en) Systems and Methods for Protecting Cache and Main-Memory from Flush-Based Attacks
US20170046278A1 (en) Method and apparatus for updating replacement policy information for a fully associative buffer cache
Ramkrishnan et al. First time miss: Low overhead mitigation for shared memory cache side channels
US9626296B2 (en) Prefetch list management in a computer system
US20130151783A1 (en) Interface and method for inter-thread communication
KR20230052821A (ko) 프리페칭
KR101681423B1 (ko) 변위 히스토리 버퍼를 이용한 명령어 및 데이터 프리페치 방법 및 시스템
US8191067B2 (en) Method and apparatus for establishing a bound on the effect of task interference in a cache memory
Theera-Ampornpunt et al. Appstreamer: Reducing storage requirements of mobile games through predictive streaming
US10255187B2 (en) Systems and methods for implementing weak stream software data and instruction prefetching using a hardware data prefetcher
US8484423B2 (en) Method and apparatus for controlling cache using transaction flags
Tang et al. SpecBox: A label-based transparent speculation scheme against transient execution attacks

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200219

Year of fee payment: 5