KR101474842B1 - 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치 - Google Patents

쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치 Download PDF

Info

Publication number
KR101474842B1
KR101474842B1 KR1020130056082A KR20130056082A KR101474842B1 KR 101474842 B1 KR101474842 B1 KR 101474842B1 KR 1020130056082 A KR1020130056082 A KR 1020130056082A KR 20130056082 A KR20130056082 A KR 20130056082A KR 101474842 B1 KR101474842 B1 KR 101474842B1
Authority
KR
South Korea
Prior art keywords
cache
replacement
block
blocks
additional information
Prior art date
Application number
KR1020130056082A
Other languages
English (en)
Other versions
KR20140135580A (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 이화여자대학교 산학협력단
Priority to KR1020130056082A priority Critical patent/KR101474842B1/ko
Priority to PCT/KR2014/003996 priority patent/WO2014185652A1/ko
Publication of KR20140135580A publication Critical patent/KR20140135580A/ko
Application granted granted Critical
Publication of KR101474842B1 publication Critical patent/KR101474842B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치{METHOD FOR REPLACING CACHE MEMORY BLOCKS WITH FOR LOWER AMOUNT OF WRITE TRAFFIC AND INFORMATION PROCESSING APPARATUS HAVING CACHE SUBSYSTEM USING THE SAME}
본 발명은 캐시 메모리에 관한 것으로, 더욱 상세하게는, 캐시 메모리의 블록 교체 기법에 관한 것이다.
최근 상변화 메모리(PCM) 기술, 자기 저항 메모리(MRAM) 등의 차세대 비휘발성 메모리 기술이 급격하게 발전하면서 곧 상용화될 것으로 예상된다.
차세대 메모리 기술들은 랜덤 액세스, 즉 임의의 주소에 곧바로 접근하여 읽기와 쓰기가 가능한 점에서 현재의 디램 기술을 대체할 수 있고, 비교적 저렴하게 대용량으로 생산될 수 있다는 점에서 현재의 플래시 메모리 기반의 대용량 스토리지 기술도 대체할 수 있어서, 차세대 비휘발성 메모리 기술을 이용한 비휘발성 메모리 소자들을 메인 메모리, 캐시 또는 스토리지로서 최대한 활용하기 위한 파일 관리 기법들도 폭넓게 개발되고 있다.
특히 PCM은 다른 기술에 비해 읽기 속도가 디램에 비견될 정도로 빠르고 저전력이며 집적도가 높아 유력한 기술로 전망되지만, 쓰기 시의 속도가 다소 느리고 전력 소비가 많으며 셀당 1 억번 정도로 쓰기 횟수 제한이 있다.
이러한 이유들로 인하여, 현재로서는 상변화 메모리는 컴퓨터 시스템의 메인 메모리 용도로 곧바로 활용되기는 어렵다고 볼 수 있다. 하지만, 메인 메모리로서의 상변화 메모리 장치 사이에서 적절하게 제어되는 캐시 메모리를 이용한다면, 상변화 메모리는 다른 차세대 비휘발성 메모리 기술과 대등한 경쟁력을 가질 수 있다.
캐시 메모리는 상대적으로 빠른 중앙 처리 장치와 상대적으로 느린 메인 메모리 사이에서 속도 차이의 완충 역할을 할 뿐 아니라, 중앙 처리 장치가 멀리 떨어진 메인 메모리를 대신하여 가까이 있는 캐시 메모리에서 필요한 데이터에 액세스할 수 있게 하기 때문에 속도와 전력 소비를 줄일 수 있다.
다만, 캐시 메모리의 용량은 제한적이므로 캐시 메모리를 효율적으로 사용하기 위해서는 블록들이 좀더 유용하고 적중률이 높은 데이터를 저장할 수 있도록 블록들을 적절히 교체하는 기법이 필요하다.
종래의 캐시 메모리 블록 교체 방법들은 가까운 미래에 참조될 가능성이 낮은 블록을 교체함으로써 캐시 적중률을 높이는 접근 방향을 보여 왔다.
이러한 종래의 캐시 메모리 블록 교체 방법들은, 교체 대상이 된 블록들이 저장 중인 데이터들이 대체로 메인 메모리에 쓰기 연산을 유발한다는 점에서, 상변화 메모리가 메인 메모리인 시스템에 그대로 적용한다면, 메인 메모리에 적지 않은 쓰기 부하를 유발할 수 있고, 이는 읽기에 비해 쓰기가 상대적으로 느린 PCM 메인 메모리 기반의 시스템에서는 상당한 성능 저하와 수명 단축으로 이어질 수 있다.
따라서, 쓰기 트래픽을 절감하는 캐시 메모리 블록 교체 방법이 필요하다.
본 발명이 해결하고자 하는 과제는 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치를 제공하는 데에 있다.
본 발명의 일 측면에 따른 캐시 서브시스템은,
하위 캐시 또는 메인 메모리에서 인출된 데이터 블록을, 적어도 하나의 매핑 집합에 속하며 각각 복수의 라인들을 포함하는 캐시 블록들의 각각에 저장하는 캐시 데이터 저장부;
상기 캐시 블록들의 각각에 관하여 태그, 참조 필드, 유효 비트와, 각 라인 별로 할당된 복수의 갱신 비트들을 포함하는 부가 정보를 저장하는 부가 정보 저장부; 및
상위 캐시 또는 프로세서와는 라인 단위로 통신하고 상기 하위 캐시 또는 메인 메모리와는 블록 단위로 통신하며, 소정의 캐시 블록 교체 이벤트가 발생할 경우에, 캐시 블록 교체가 필요한 어떤 매핑 집합에 속하는 각 캐시 블록들에 관하여 상기 부가 정보 저장부에 저장된 부가 정보 내의 참조 필드 및 갱신된 갱신 비트들의 개수에 기초하여, 상기 캐시 데이터 저장부의 캐시 블록들 중에서 교체 대상 캐시 블록을 선정하며, 선정된 교체 대상 캐시 블록을 교체하는 캐시 제어부를 포함할 수 있다.
일 실시예에 따라, 상기 캐시 제어부는
상기 소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드 및 갱신된 갱신 비트들의 개수에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조가 상대적으로 적게 일어났으면서, 또한 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들으로서 교체 대상 캐시 블록을 선정하도록 동작할 수 있다.
일 실시예에 따라, 상기 캐시 제어부는,
소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 후보 캐시 블록들을 선정하고,
상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 갱신 비트들에 기초하여, 상기 교체 후보 캐시 블록들 중에서 각 교체 후보 캐시 블록 내의 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들로서 교체 대상 캐시 블록들을 선정하도록 동작할 수 있다.
일 실시예에 따라, 상기 캐시 제어부는,
소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 갱신 비트들에 기초하여, 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들로서 교체 후보 캐시 블록들을 선정하고,
상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 대상 캐시 블록들을 선정하도록 동작할 수 있다.
일 실시예에 따라, 상기 소정의 캐시 교체 이벤트는
캐시 미스의 발생 시에 빈 캐시 블록이 부재한 경우, 빈 캐시 블록의 개수가 소정 개수 이하로 낮아지는 경우, 매핑 집합 내에 액세스 빈도가 소정 빈도 이하인 캐시 블록들의 수가 소정 개수 이상 존재할 경우 중 적어도 어느 하나일 수 있다.
일 실시예에 따라, 상기 캐시 제어부는
만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트의 개수가 하나 이상이면, 상기 교체 대상 캐시 블록에 저장된 데이터를 하위 캐시 또는 메인 메모리로 송출한 후에, 새로운 데이터 블록을 선정된 교체 대상 캐시 블록에 쓰기하도록 동작할 수 있다.
일 실시예에 따라, 상기 캐시 제어부는
만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트의 개수가 0이면, 새로운 데이터 블록을 선정된 교체 대상 캐시 블록에 곧바로 쓰기하도록 동작할 수 있다.
일 실시예에 따라, 상기 캐시 제어부는
교체 쓰기가 된 캐시 블록에 관한 부가 정보 중에서 참조 필드 및 갱신 비트들을 초기화하도록 동작할 수 있다.
본 발명의 다른 측면에 따른 캐시 서브시스템을 포함하는 정보 처리 장치는,
프로세서;
메인 메모리 서브시스템; 및
상기 프로세서와 상기 메인 메모리 서브시스템 사이에서 캐시 기능을 제공하는 캐시 서브시스템을 포함하며,
상기 캐시 서브시스템은,
상기 메인 메모리 서브시스템에서 인출된 데이터 블록을, 적어도 하나의 매핑 집합에 속하며 각각 복수의 라인들을 포함하는 캐시 블록들의 각각에 저장하는 캐시 데이터 저장부;
상기 캐시 블록들의 각각에 관하여 태그, 참조 필드, 유효 비트와, 각 라인 별로 할당된 복수의 갱신 비트들을 포함하는 부가 정보를 저장하는 부가 정보 저장부; 및
상기 프로세서와는 라인 단위로 통신하고 상기 메인 메모리 서브시스템과는 블록 단위로 통신하며, 소정의 캐시 블록 교체 이벤트가 발생할 경우에, 캐시 블록 교체가 필요한 어떤 매핑 집합에 속하는 각 캐시 블록들에 관하여 상기 부가 정보 저장부에 저장된 부가 정보 내의 참조 필드 및 갱신된 갱신 비트들의 수에 기초하여, 상기 캐시 데이터 저장부의 캐시 블록들 중에서 교체 대상 캐시 블록을 선정하며, 선정된 교체 대상 캐시 블록을 교체하는 캐시 제어부를 포함하는 캐시 서브시스템을 포함할 수 있다.
일 실시예에 따라, 상기 메인 메모리 서브시스템은 읽기에 비해 쓰기가 상대적으로 느린 비휘발성 메모리 어레이를 포함할 수 있다.
본 발명의 또 다른 측면에 따른 복수의 라인들을 각각 포함하는 캐시 블록들의 각각에 관하여 부가 정보를 저장하는 캐시 서브시스템의 캐시 블록 교체 방법은,
복수의 라인들을 각각 포함하는 캐시 블록들의 각각에 관하여 태그, 참조 필드, 유효 비트 및 각 라인 별로 할당된 복수의 갱신 비트들을 포함하는 부가 정보를 설정하는 단계;
소정의 캐시 교체 이벤트의 발생을 감시하는 단계;
만약 소정의 캐시 교체 이벤트가 발생한 경우에, 캐시 블록 교체가 필요한 어떤 매핑 집합에 속하는 캐시 블록들의 각각에 관하여 상기 부가 정보 저장부에 저장된 부가 정보 내의 참조 필드 및 갱신된 갱신 비트들의 개수에 기초하여, 상기 캐시 데이터 저장부의 캐시 블록들 중에서 교체 대상 캐시 블록을 선정하는 단계; 및
선정된 교체 대상 캐시 블록을 교체하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 교체 대상 캐시 블록을 선정하는 단계는,
상기 소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드 및 갱신된 갱신 비트들의 개수에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조가 상대적으로 적게 일어났으면서, 또한 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들으로서 교체 대상 캐시 블록을 선정하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 교체 대상 캐시 블록을 선정하는 단계는,
소정의 캐시 교체 이벤트의 발생에 따라, 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 후보 캐시 블록들을 선정하는 단계; 및
상기 부가 정보 중에서 해당 매핑 집합에 속하는 각 캐시 블록들에 관한 갱신 비트들에 기초하여, 상기 교체 후보 캐시 블록들 중에서 각 교체 후보 캐시 블록 내의 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들로서 교체 대상 캐시 블록들을 선정하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 교체 대상 캐시 블록을 선정하는 단계는,
소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 갱신 비트들에 기초하여, 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들로서 교체 후보 캐시 블록들을 선정하는 단계; 및
상기 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 대상 캐시 블록들을 선정하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 소정의 캐시 교체 이벤트는
캐시 미스의 발생 시에 빈 캐시 블록이 부재한 경우, 빈 캐시 블록의 개수가 소정 개수 이하로 낮아지는 경우, 매핑 집합 내에 액세스 빈도가 소정 빈도 이하인 캐시 블록들의 수가 소정 개수 이상 존재할 경우 중 적어도 어느 하나일 수 있다.
일 실시예에 따라, 상기 선정된 교체 대상 캐시 블록을 교체하는 단계는,
만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트의 개수가 하나 이상이면, 상기 교체 대상 캐시 블록에 저장된 데이터를 하위 캐시 또는 메인 메모리로 송출한 후에, 새로운 데이터 블록을 선정된 교체 대상 캐시 블록에 쓰기하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 선정된 교체 대상 캐시 블록을 교체하는 단계는,
만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트의 개수가 0이면, 새로운 데이터 블록을 선정된 교체 대상 캐시 블록에 곧바로 쓰기하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 캐시 서브시스템의 캐시 블록 교체 방법은,
교체 쓰기가 된 캐시 블록에 관한 부가 정보 중에서 참조 필드 및 갱신 비트들을 초기화하는 단계를 더 포함할 수 있다.
일 실시예에 따라, 상기 캐시 서브시스템은 상기 프로세서와 상기 메인 메모리 서브시스템 사이에서 캐시 기능을 제공하고,
상기 메인 메모리 서브시스템은 읽기에 비해 쓰기가 상대적으로 느린 비휘발성 메모리 어레이를 포함할 수 있다.
본 발명의 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치에 따르면, 메인 메모리에 대한 쓰기 트래픽을 적게 유발하는 블록들을 우선으로 교체함으로써 캐시 메모리 블록 교체의 효율을 유지하면서 동시에 메인 메모리에 대한 쓰기 연산량을 감소시킬 수 있다.
본 발명의 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치에 따르면, 기존의 캐시 메모리 관리 방법과 동질성을 유지하므로 기존의 캐시 메모리 관리 체계와 유연하게 결합될 수 있다.
도 1은 본 발명의 일 실시예에 따른 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법을 이용한 캐시 서브시스템을 가지는 정보 처리 장치를 예시한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법에서 캐시 블록들의 논리적 구조를 예시한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 캐시 메모리 블록 교체 방법을 예시한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 캐시 메모리 블록 교체 방법을 이용한 캐시 서브시스템이 유발하는 메인 메모리에 대한 상대적인 쓰기 트래픽을 기존 기법에 비교한 그래프이다.
도 5는 본 발명의 일 실시예에 따른 캐시 메모리 블록 교체 방법을 이용한 캐시 서브시스템을 통해 중앙 처리 장치가 메인 메모리에 접근할 경우에 상대적인 평균 액세스 시간을 기존 기법에 비교한 그래프이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명은 지식경제부에서 주관하고 한국산업기술평가관리원에서 관리하는 SW컴퓨팅 산업 원천기술개발 사업의 "차세대 메모리 기반의 스마트 디바이스용 임베디드 시스템 소프트웨어 원천기술 개발" 연구과제(정부과제고유번호 1415122825호)와 교육과학기술부에서 주관하고 한국연구재단에서 관리하는 기초연구사업-중견연구자지원사업의 "프로그램 특성 분석에 기반한 스마트 디바이스용 임베디드 운영체제 설계" 연구과제(정부과제고유번호 1345176231호)의 지원으로 수행된 연구 결과를 토대로 한다.
도 1은 본 발명의 일 실시예에 따른 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법을 이용한 캐시 서브시스템을 가지는 정보 처리 장치를 예시한 개념도이다.
도 1을 참조하면, 정보 처리 장치(1)는 프로세서(10a, 10b)와 캐시 서브시스템(20), 메인 메모리 서브시스템(30)을 가진다.
프로세서(10a, 10b)는 각각 연산 코어(11a, 11b)와, 다양한 레벨의, 예를 들어 L1 캐시(12a, 12b) 및 L2 캐시(13a, 13b)를 내부적으로 가질 수 있다. 이러한 프로세서(10a, 10b)에서, L1 캐시(12a, 12b)나 L2 캐시(13a, 13b)는 각각의 연산 코어(11a, 11b)가 독점적으로 액세스할 수 있도로 연결될 수 있다.
메인 메모리 서브시스템(30)은 메모리 컨트롤러(31)와 메모리 어레이(32)를 포함할 수 있다. 이때, 메모리 어레이(32)는 상변화(PCM) 메모리와 같이, 읽기에 비해 쓰기가 상대적으로 느린 비휘발성 메모리 어레이일 수 있다.
캐시 서브시스템(20)은 프로세서(10a, 10b)와 메인 메모리 서브시스템(30) 사이에서, 좀더 구체적으로는 예를 들어 L2 캐시(13a, 13b)와 메모리 컨트롤러(31) 사이에서, 전송 속도 및 액세스 시간 요구 차이를 완화하고, 프로세서가 특정 메인 메모리 블록에 접근하는 데에 소비되는 시간 및 전력을 절감하기 위한 가장 하위 레벨 캐시(LLC: Last Level Cache)를 제공한다.
캐시 서브시스템(20)은 캐시 제어부(21)와 부가 정보 저장부(22) 및 캐시 데이터 저장부(23)를 포함할 수 있고, 좀더 구체적으로, 캐시 제어부(21)는 액세스 제어 유닛(211), 부가 정보 제어 유닛(212)과 교체 제어 유닛(213)을 포함할 수 있다.
실시예에 따라, 캐시 서브시스템(20)은 물리적 내지 전기적으로 프로세서(10a, 10b)의 일부로 구현될 수 있다.
실시예에 따라서, 캐시 서브시스템(20)은 물리적 내지 전기적으로 프로세서(10a, 10b)와 독립적으로 구현되어, 다중 연산 코어(11a, 11b)를 가지는 프로세서(10a, 10b)가 공유할 수 있도록 캐시 메모리 공간을 제공하는 역할을 할 수 있다.
한편, 통상적으로 프로세서는 어드레스 단위로 데이터나 명령어를 처리하지만, 이를 위해 어드레스 단위로 캐시 또는 메인 메모리를 빈번하게 이용하는 것은 높은 비용을 감수해야 하기 때문에 어드레스 단위로 빈번하게 액세스되는 것보다는 다수의 바이트들에 한꺼번에 액세스되는 것이 좀더 유리하다.
또한, 어떤 특정한 시점에 프로세서가 필요한 데이터들은 공간적으로 또는 시간적으로 인접하는 경우가 많은데, 이를 공간 지역성(spatial locality) 또는 시간 지역성(temporal locality)이라고 한다.
이러한 특성들을 이용하여 캐시 성능을 높일 수 있는데, 특정 어드레스의 데이터 또는 코드를 필요로 할 경우에 그에 인접한 데이터들 또는 코드들을 한꺼번에 캐시에 적재한다. 이러한 캐시의 최소 적재 단위를 라인(line) 또는 캐시 라인(cache line)이라고 하는데, 이는 프로세서의 프리페치(prefetch) 기능과 연관되기도 한다.
캐시는 상위 캐시 또는 프로세서와는 라인 단위로 데이터를 주고 받고, 하위 캐시 또는 메인 메모리와는 다수의 라인들로 구성된 블록 단위로 데이터를 주고 받는다.
이때, 메인 메모리 또는 하위 캐시에서 가져온 블록 단위 데이터를 캐시 내 저장 위치들 중 어디에 배치하느냐의 문제에 관하여, 세 가지 매핑 방식 즉, 직접 매핑(direct mapping), 완전 연관 매핑(fully associative mapping) 및 집합 연관 매핑(set associative mapping)과 같은 방식이 주로 이용된다.
직접 매핑 방식은 메인 메모리 또는 하위 캐시에서 가져온 특정 어드레스 집합의 데이터 블록들을 저장할 특정 위치를 미리 정해놓은 방식이다. 직접 매핑 방식의 캐시는 프로세서가 원하는 특정 워드가 저장된 캐시 내의 저장 위치를 찾는 데에 시간을 낭비하지 않으므로 페치 속도가 빠르지만, 상황에 따라 캐시 공간이 남아 있어도 캐시에 데이터를 저장하지 못하는 경우가 발생할 수 있어 공간 활용성이 떨어진다.
완전 연관 매핑 방식은 메인 메모리 또는 하위 캐시에서 가져오는 데이터 블록을 캐시 내의 어떠한 위치에도 저장할 수 있는 방식이다. 완전 연관 매핑 방식의 캐시는 캐시 공간 전체가 하나의 매핑 집합으로서, 캐시 공간을 최대한 이용할 수 있지만, 캐시 공간이 상대적으로 클 경우에는 어떤 데이터가 어디에 저장되어 있는지 검색하기 위한 시간이 상당히 소요되기 때문에, 캐시로서의 효용이 떨어질 수 있다. 따라서 완전 연관 매핑 방식에서는, 캐시 내의 엔트리들을 검색하기 위해서는 예를 들어 CAM(Content Addressable Memory)과 같은 특수한 검색 회로가 더 필요하다.
한편, 집합 연관 매핑 방식은 직접 매핑 방식과 완전 연관 매핑 방식의 일종의 절충으로서, 캐시 전체 저장 공간을 n 개의 집합(n-way set)으로 나누고, 메인 메모리 또는 하위 캐시의 데이터 블록을 인덱스 필드를 이용하여 어느 한 매핑 집합 내의 블록에 매핑하는 방식이다. 메인 메모리 또는 하위 캐시의 데이터 블록은 한 매핑 집합 내의 어떠한 블록에도 배치될 수 있다. 완전 연관 매핑 방식은 n=1인 집합 연관 매핑 방식이라고 볼 수도 있다.
이러한 매핑 방식들은 캐시의 크기와 속도, 용도, 레벨 등에 따라 적절하게 선택되어 적용될 수 있다.
매핑 방식의 구현을 위해, 캐시 서브시스템(20)은 캐시 제어부(21)와 부가 정보 저장부(22) 및 캐시 데이터 저장부(23)를 포함할 수 있고, 좀더 구체적으로, 캐시 제어부(21)는 액세스 제어 유닛(211), 부가 정보 제어 유닛(212)과 교체 제어 유닛(213)을 포함할 수 있다.
캐시 제어부(21)는 프로세서(10a, 10b)로부터 캐시 데이터 저장부(23)에 액세스 요청이 있을 경우에, 액세스되는 어드레스에 해당하는 위치에서 읽기 또는 쓰기를 수행하고, 수행 결과에 따라 해당 어드레스가 가리키는 캐시 데이터 저장부(23)의 캐시 블록에 관하여 부가 정보 저장부(22)에서 관리하는 부가 정보(T)를 설정 내지 갱신한다. 다시 말해, 캐시 블록과 부가 정보는 논리적으로 한 쌍을 이루지만, 물리적으로 캐시 블록은 캐시 데이터 저장부(23)에, 부가 정보는 정보 저장부(22)에, 각각 따로 저장된다.
부가 정보는 프로세서가 원하는 데이터가 캐시 내에 저장된 위치, 캐시 블록에 대해 최근에 참조가 일어났는지 여부, 유효한 데이터를 저장하고 있는지 여부, 그리고 캐시 블록 내의 각각의 단위 데이터에 갱신이 일어났는지 여부를 알기 위해, 각각 인덱스(index) 또는 태그 필드(TAG field), 참조 필드(Reference field, R), 유효 비트(Valid bit, V), 갱신 비트(Dirty bit, D)와 같은 정보를 적어도 포함한다.
태그 필드(TAG)는 어드레스의 상위 부분 비트들로 구성되며, 캐시의 특정 저장 위치에 기록된 워드가 프로세서에 의해 요청된 워드인지 여부를 식별하는 데에 필요하다. 특히 태그 필드(TAG)는 n 웨이 집합 연관 매핑 방식에서는 각각의 웨이들에서 하나의 집합을 구성하는 캐시 블록을 지시하는 역할도 할 수 있다. 다시 말해, 각각의 웨이들에서 동일한 태그를 가지는 캐시 블록들이 하나의 집합을 이루는데, 하위 캐시 또는 메인 메모리의 특정 어드레스 범위의 데이터 블록들은 특정 집합 내에 속하는 캐시 블록에 매핑된다. 따라서, 하위 캐시 또는 메인 메모리에서 온 특정 어드레스 범위 내의 데이터 블록은 동일한 태그 필드(TAG)를 가지고 n 개의 웨이에 분산 저장된다.
참조 필드(R)는 최근에 해당 캐시 블록에 속하는 워드들 중에 읽기 액세스가 있었는지 여부를 표시하는 데에 필요하다.
구체적으로, 읽기 액세스의 경우에, 캐시 제어부(21)의 액세스 제어 유닛(211)은, 액세스되는 위치에 저장된 워드가 프로세서(10a, 10b)에 의해 요청된 워드라면, 저장된 워드와 함께 히트(hit)를 리턴하고, 그렇지 않으면 미스(miss)를 리턴한다.
따라서, 부가 정보 제어 유닛(212)은 특정 어드레스에 관하여 히트가 리턴되면, 해당 어드레스에 관하여 소정 시구간 내에 참조가 있었으므로, 해당 어드레스가 포함되는 캐시 블록의 참조 필드(R)를 설정한다.
실시예에 따라, 참조 필드(R)는 하나의 비트로 구성될 수도 있고, 참조 빈도에 따라 복수 회의 참조를 표시할 수 있도록 복수 비트로 구성될 수도 있다.
예를 들어, 참조가 있을 경우에, 참조 필드(R)가 1비트 정보이면 1로 설정하고, 2비트 이상의 정보이면 1씩 증분할 수 있다.
실시예에 따라, 부가 정보 제어 유닛(212)은 주기적으로 참조 필드(R)를 초기화할 수 있다. 이 경우에, 참조 필드(R)가 0이 아닌 비트를 포함하면 초기화된 이후에 적어도 한 번의 참조가 있었음을 의미한다.
유효 비트(V)는 해당 캐시 블록이 유효한 데이터를 저장하고 있는지 또는 비어 있는 캐시 블록인지를 표시할 수 있다.
구체적으로, 캐시 제어부(21)의 액세스 제어 유닛(211)은 유효 비트(V)가 유효한 캐시 블록만 읽기 액세스를 하거나, 유효 비트(V)가 비유효한 캐시 블록에만 새로 쓰기 액세스를 하도록 동작할 수 있다.
또한 캐시 제어부(12)의 부가 정보 제어 유닛(212)은 유효하게 쓰기 액세스된 캐시 블록에 대한 유효 비트(V)를 유효로 설정한다.
갱신 비트(D)는 해당 캐시 블록에 쓰기된 데이터 중에 최초의 쓰기 이후에 갱신된 적이 있는지 여부를 표시할 수 있다.
종래의 캐시 서브시스템들에서 갱신 비트가 블록 별로 관리되는 것과 달리, 본 발명의 실시예들에서 갱신 비트(D)는 라인 별로 관리된다.
구체적으로, 쓰기 액세스의 경우에, 캐시 제어부(21)의 부가 정보 제어 유닛(212)은, 액세스되는 라인에 저장되어 있던 기존 데이터가 갱신되면 해당 라인에 관하여 갱신 비트(D)를 설정할 수 있다.
기존 데이터의 갱신은, 캐시 블록 단위가 아닌, 캐시 블록 내의 라인 별로 일어날 수 있기 때문에, 부가 정보 제어 유닛(212)은 부가 정보 저장부(22) 내에서 각 캐시 블록마다 라인 별로 할당된 복수의 갱신 비트들(D)을 관리할 수 있다. 반면에, 참조 필드(R), 유효 비트(R) 또는 태그 필드(TAG)는 부가 정보 저장부(22) 내에서 각 캐시 블록마다 하나씩 관리될 수 있다.
따라서, 종래의 캐시 서브시스템에서는 각 블록이 갱신되었는지 여부만 판단하고 이용하지만, 본 발명의 실시예들에 따른 캐시 서브시스템(20)은 각 블록이 갱신되었는지 여부뿐 아니라 얼마나 갱신되었는지를 판단할 수 있고, 이러한 정보를 캐시 블록 교체에 이용할 수 있다.
캐시 블록의 구조와 부가 정보에 관하여 좀더 구체적으로 설명하기 위해 도 2를 참조하면, 도 2는 본 발명의 일 실시예에 따른 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법에서 캐시 블록들의 논리적 구조를 예시한 개념도이다.
도 2에서, 캐시 서브시스템(20)은 n-웨이 집합 연관 매핑 방식으로 구현된 캐시 메모리로 예시된다.
도 2에서 캐시 서브시스템(20)은 상부의 프로세서(10a, 10b)와는 라인 단위로 데이터를 주고 받고, 하위의 메인 메모리 서브시스템(30)의 메모리 컨트롤러(31)와는 블록 단위로 데이터를 주고 받는다.
다시 말해, 하위의 메인 메모리 서브시스템(30)으로부터 특정 어드레스 군에 속하는 데이터 블록이 읽혀지면, 캐시 서브시스템(20)은 해당 어드레스로부터 생성된 태그 필드(TAG) 값에 상응하는 집합에 속하는 캐시 블록들 중 비어 있는 캐시 블록 또는 희생되는 캐시 블록에 데이터 블록을 저장한다.
반면에 상위의 프로세서(10a, 10b)는 캐시 블록 내의 특정 캐시 라인에 관하여 캐시 액세스 요청을 한다. 캐시 액세스 요청의 종류에 따라, 캐시 서브시스템(20)은 해당 캐시 라인의 읽기 또는 갱신 쓰기를 수행하고, 그에 상응하여 부가 정보의 변경을 수행할 수 있다.
캐시 블록(B)은 16 개의 캐시 라인(L1, L2, ... L16)으로 구성되며, 캐시 블록(B) 하나의 크기가 4 KB라면 라인(L)의 크기는 256 Byte이다. 이러한 캐시 블록들(B)의 열(column)이 각각 하나의 웨이를 구성하며, 각각의 웨이(way)는 way 0, way 1, ... way n으로 지칭된다. 한편, 부가 정보 중 동일한 형태의 태그 필드(TAG) 값을 가지는 캐시 블록들(B)의 행(raw)이 하나의 집합(set)을 구성한다. 하위 캐시 또는 메인 메모리의 특정 어드레스의 데이터 블록들이 하나의 집합을 구성하는 캐시 블록(B)과 매핑된다.
캐시 데이터 저장부(23)의 각각의 캐시 블록(B)은 부가 정보 저장부(22)의 각각의 부가 정보(T)와 1대1로 연계된다.
도 2에서 서로 연계된 캐시 블록(B)과 부가 정보(T)가 더 예시되어 있다.
하나의 캐시 블록(B)은 예시적으로 16 개의 캐시 라인들(L)로 구성되고, 하나의 캐시 블록(B)마다 부가 정보(T)는 하나의 참조 필드(R), 하나의 유효 비트(V), 하나의 태그 필드(TAG) 및 캐시 라인들(L)과 같은 수의 갱신 비트들(D)을 포함한다.
다시 도 1로 돌아와서, 도 2와 같은 구조의 캐시 메모리에 관하여 캐시 블록의 교체(replacement)가 필요할 경우에 캐시 제어부(21)의 교체 제어 유닛(213)이 교체될 캐시 블록을 선정한다.
교체될 캐시 블록을 선정하는 작업은 기존에 데이터를 가진 캐시 블록들 중에서, 적재된 데이터를 무효화하고 빈 캐시 블록으로 반환될, 즉 희생될 캐시 블록(victim)을 선정하는 작업이라고 할 수 있다.
소정의 캐시 교체 이벤트에 따라 교체 대상 캐시 블록의 선정 작업이 개시될 수 있다.
구체적으로, 캐시 읽기 액세스에서 캐시 미스가 발생하여 하위 캐시 또는 메인 메모리에서 데이터 블록을 가져왔는데 캐시 메모리 내에 가져온 데이터 블록을 적재할 빈 캐시 블록이 없을 때에, 교체 대상 캐시 블록의 선정 작업이 개시될 수 있다.
또한 캐시 미스가 일어나지 않더라도, 예를 들어 빈 캐시 블록의 수가 소정 개수 이하로 낮아진다거나, 매핑 집합 내에 액세스 빈도가 소정 빈도 이하인 캐시 블록들의 수가 소정 개수 이상 존재할 경우와 같이, 다양한 캐시 교체 이벤트에 따라 교체 대상 캐시 블록의 선정 작업이 개시될 수 있다.
교체 대상 캐시 블록을 선정하는 작업이 완료되면, 선정된 캐시 블록에 새로운 데이터 블록을 쓰기하는 작업이 수행되며, 이들 두 작업이 캐시 블록의 교체 작업을 구성할 수 있다.
종래의 유력한 캐시 블록 교체 기법으로는, NRU(Not Recently Used) 기법, LRU(Least Recently Used) 기법이나, RRIP(Re-Reference Interval Prediction) 기법 등이 있다. 이들 기법들은 참조 필드를 이용하여 교체 대상 캐시 블록을 선정하는 기법들이다.
NRU 기법은 각 캐시 블록마다 1 비트의 참조 필드를 두고, 상위 캐시 또는 프로세서로부터 액세스 및 히트가 있을 경우에 참조 필드를 1로 설정하며, 참조 필드의 초기화 이후에 현재까지 참조가 없었던 캐시 블록으로서 교체 대상 블록을 선정하는 기법이다.
한편 LRU 기법 또는 RRIP 기법은 참조 필드가 복수 비트로 구성되며, 상위 캐시 또는 프로세서로부터 액세스 및 히트가 있을 경우에 참조 필드의 값을 1씩 증분하며, 참조 필드의 초기화 이후에 현재까지 참조가 가장 적은 또는 앞으로도 참조가 적을 캐시 블록으로서 교체 대상 블록을 선정하는 기법이다.
이때, 교체될 캐시 블록에 저장되어 있던 데이터가 최초 저장 후 한 차례 이상 갱신된 적이 있는 데이터라면, 그러한 갱신은 캐시 메모리 블록 교체 시에 메인 메모리에 반영되어야 하므로, 메인 메모리에 쓰기 수요를 일으킨다.
본 발명은 이러한 참조 필드를 이용하는 캐시 메모리 블록 교체 기법들을 기반으로 하되, 추가적으로, 캐시 메모리 블록 교체 시에 메인 메모리에 대한 쓰기 연산 부하를 최소화하는 캐시 메모리 블록 교체 방법이다.
교체 제어 유닛(213)은 캐시 미스가 발생했는데 빈 캐시 블록이 부재하는 경우에, 또는 소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 부가 정보 저장부(22)에 저장된 부가 정보(T)에서 해당 매핑 집합에 속하는 캐시 블록들(B)의 각각에 관한 참조 필드(R) 및 갱신된 갱신 비트들(D)의 개수에 기초하여, 참조 필드들(R)의 초기화 이후 참조가 일어나지 않았거나 또는 참조가 상대적으로 적게 일어났으면서, 또한 갱신된 갱신 비트들(D)의 개수가 상대적으로, 바람직하게는 가장 적은 캐시 블록들(B)으로서 교체 대상 캐시 블록을 선정한다.
구체적으로, 일 실시예에서 교체 제어 유닛(213)은, 캐시 미스의 발생과 같은 소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 부가 정보 저장부(22)에 저장된 부가 정보(T) 중에서 해당 매핑 집합에 속하는 각 캐시 블록들(B)에 관한 참조 필드(R)에 기초하여, 참조 필드들(R)의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 후보 캐시 블록들을 선정한다.
이어서, 교체 제어 유닛(213)은 부가 정보 저장부(22)에 저장된 부가 정보(T) 중에서 해당 매핑 집합에 속하는 캐시 블록들(B)의 각각에 관한 갱신 비트들(D)에 기초하여, 교체 후보 캐시 블록들 중에서 각 교체 후보 캐시 블록 내의 갱신된 갱신 비트들(D)의 개수가 상대적으로 적은 캐시 블록들(B)로서 교체 대상 캐시 블록들을 선정한다.
다른 실시예에서 교체 제어 유닛(213)은 캐시 미스의 발생과 같은 소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 부가 정보 저장부(22)에 저장된 부가 정보(T) 중에서 해당 매핑 집합에 속하는 각 캐시 블록들(B)에 관한 갱신 비트들(D)에 기초하여, 갱신된 갱신 비트들(D)의 개수가 상대적으로 적은 캐시 블록들(B)로서 교체 후보 캐시 블록들을 선정한다.
이어서, 교체 제어 유닛(213)은, 부가 정보 저장부(22)에 저장된 부가 정보(T) 중에서 해당 매핑 집합에 속하는 캐시 블록들(B)의 각각에 관한 참조 필드(R)에 기초하여, 참조 필드들(R)의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 대상 캐시 블록들을 선정한다.
교체 제어 유닛(213)이 교체 대상 캐시 블록을 선정했을 때에, 만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트(D)의 수가 하나 이상이면, 액세스 제어 유닛(211)은 먼저 교체 대상 캐시 블록에 저장된 데이터를 메인 메모리 서브시스템(30)의 메모리 컨트롤러(31)로 전송한 다음에, 예를 들어 캐시 미스로 인해 메인 메모리 서브시스템(30)에서 인출한 데이터 블록을 선정된 교체 대상 캐시 블록에 쓰기할 수 있다.
그렇지 않고 만약 선정된 캐시 블록에 관하여 갱신된 갱신 비트의 수가 0이어서 해당 캐시 블록 전체가 갱신된 적이 없다면, 액세스 제어 유닛(211)은 예를 들어 캐시 미스로 인해 메인 메모리 서브시스템(30)에서 인출한 데이터 블록을 선정된 교체 대상 캐시 블록에 그대로 쓰기할 수 있다.
나아가, 부가 정보 제어 유닛(212)은 교체 쓰기가 된 캐시 블록(B)의 부가 정보(T)를 적절하게 초기화할 수 있다. 예를 들어, 새로 교체 쓰기된 캐시 블록(B)의 부가 정보(T)에서, 참조 필드(R) 및 갱신 비트들(D)은 모두 0으로 초기화될 수 있다.
도 3은 본 발명의 일 실시예에 따른 캐시 메모리 블록 교체 방법을 예시한 순서도이다.
도 3을 참조하면, 본 발명의 캐시 메모리 블록 교체 방법은, 캐시 서브시스템(20)이 복수의 라인들을 각각 포함하는 캐시 블록들을 가지는 캐시 데이터 저장부(23)와 각각의 캐시 블록들에 관하여 부가 정보를 저장하는 부가 정보 저장부(22)를 포함하는 경우에, 단계(S31)에서, 캐시 서브시스템(20)이 복수의 라인들을 각각 포함하는 캐시 블록들의 각각에 관하여 태그, 참조 필드, 유효 비트 및 각 라인 별로 할당된 복수의 갱신 비트들을 포함하는 부가 정보를 설정하는 단계로부터 시작할 수 있다.
단계(S32)에서, 캐시 서브시스템(20)은 캐시 미스 발생 및 빈 캐시 블록의 부재를 포함하는 소정의 캐시 교체 이벤트의 발생을 감시한다.
만약 단계(S32)에서 소정의 캐시 교체 이벤트가 발생한 경우에는 단계(S33)로 진행하고, 그렇지 않으면 단계(S31)로 돌아간다.
단계(S33)에서, 캐시 서브시스템(20)은 부가 정보 저장부(22)에 저장된 부가 정보(T)에서, 캐시 블록 교체가 필요한 어떤 매핑 집합에 속하는 캐시 블록들(B)의 각각에 관한 참조 필드(R) 및 갱신된 갱신 비트들(D)의 개수에 기초하여, 참조 필드들(R)의 초기화 이후 참조가 일어나지 않았거나 또는 참조가 상대적으로 적게 일어났으면서, 또한 갱신된 갱신 비트들(D)의 수가 상대적으로, 바람직하게는 가장 적은 캐시 블록들(B)로서 교체 대상 캐시 블록을 선정한다.
구체적으로, 단계(S33)는, 부가 정보(T) 중에서 해당 매핑 집합에 속하는 캐시 블록들(B)의 각각에 관한 참조 필드(R)에 기초하여, 참조 필드들(R)의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 캐시 블록으로서 적어도 하나의 교체 후보 캐시 블록들을 선정하는 단계와, 이어서, 부가 정보(T) 중에서 해당 매핑 집합에 속하는 각 캐시 블록들(B)에 관한 갱신 비트들(D)에 기초하여, 교체 후보 캐시 블록들 중에서 각 교체 후보 캐시 블록 내의 갱신된 갱신 비트들(D)의 개수가 상대적으로 적은 캐시 블록들(B)로서 교체 대상 캐시 블록들을 선정하는 단계를 포함할 수 있다.
다른 실시예에서, 단계(S33)는 부가 정보(T) 중에서 해당 매핑 집합에 속하는 각 캐시 블록들(B)에 관한 갱신 비트들(D)에 기초하여, 갱신된 갱신 비트들(D)의 개수가 상대적으로 적은 캐시 블록들(B)로서 교체 후보 캐시 블록들을 선정하는 단계와, 이어서, 부가 정보(T) 중에서 해당 매핑 집합에 속하는 각 캐시 블록들(B)에 관한 참조 필드(R)에 기초하여, 참조 필드들(R)의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 대상 캐시 블록들을 선정하는 단계를 포함할 수 있다.
단계(S34)에서, 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트(D)의 개수가 하나 이상인지 여부가 판정된다. 다시 말해, 단계(S34)에서 캐시 블록에 현재 저장되어 있는 데이터가 최초로 쓰기된 이후 갱신된 적이 있는지 여부가 판정된다.
단계(S34)의 판정에 따라, 단계(S35)에서 캐시 서브시스템(20)은 먼저 교체 대상 캐시 블록에 저장된 데이터를 외부로, 특히 메인 메모리 서브시스템(30)의 메모리 컨트롤러(31)로 전송할 수 있다.
이어서 단계(S36)에서, 캐시 서브 시스템(20)은 메인 메모리 서브시스템(30) 또는 하위 캐시에서 인출한 데이터 블록을 선정된 교체 대상 캐시 블록에 쓰기할 수 있다.
그렇지 않고 만약 단계(S34)에서, 선정된 캐시 블록에 관하여 갱신된 갱신 비트의 수가 0이어서 해당 캐시 블록이 갱신된 적이 없다면, 단계(S36)으로 곧바로 진행하여, 캐시 서브 시스템(20)은 메인 메모리 서브시스템(30) 또는 하위 캐시에서 인출한 데이터 블록을 선정된 교체 대상 캐시 블록에 쓰기할 수 있다.
단계(S37)에서, 캐시 서브시스템(20)은 교체 쓰기가 된 캐시 블록(B)의 부가 정보(T)를 적절하게 초기화할 수 있다. 예를 들어, 새로 교체 쓰기된 캐시 블록(B)의 부가 정보(T)에서, 참조 필드(R) 및 갱신 비트들(D)은 모두 0으로 초기화될 수 있다.
도 4는 본 발명의 일 실시예에 따른 캐시 메모리 블록 교체 방법을 이용한 캐시 서브시스템이 유발하는 메인 메모리에 대한 상대적인 쓰기 트래픽을 기존 기법에 비교한 그래프이다.
테스트를 위해, L1 캐시와 L2 캐시를 가지는 상용 듀얼 코어 프로세서에서 256 바이트 길이의 라인과 16 웨이 집합 연관 매핑 방식으로 구성된 캐시 저장부에 관하여 기존의 NRU 기법에 따른 캐시 블록 교체 방법 및 본 발명의 캐시 블록 교체 방법을 가지고 캐시 시뮬레이터를 각각 구동하였다.
본 발명의 캐시 블록 교체 방법의 경우에, 캐시의 크기를 512 KB, 1 MB, 2 MB, 4 MB 및 8 MB로 각각 설정하여 테스트하였다.
도 4를 참조하면, 기존의 NRU 기법을 이용한 캐시 블록 교체 방법에서 유발하는 메인 메모리에 대한 쓰기 트래픽을 기준으로 하였을 때에, 본 발명의 캐시 블록 교체 방법이 유발하는 메인 메모리에 대한 쓰기 트래픽은 어플리케이션들 및 캐시 크기에 따라 적게는 50% 수준에서 90% 수준까지의 범위 내에서 나타났다. 쓰기 트래픽은 평균적으로 25% 정도 감소하였다.
쓰기 트래픽이 감소함에 따라, 쓰기가 상대적으로 느린 PCM과 같은 비휘발성 메모리에서 쓰기 트래픽에 의한 성능 저하나 수명 단축도 줄어드는 효과를 얻을 수 있다.
이때, 캐시의 크기에 따라 그 효과가 달라졌는데, 대체로 캐시 크기가 4 MB인 경우에 대체로 쓰기 트래픽의 감소 측면에서 가장 좋은 효과를 보였으며, 캐시 크기가 8 MB인 경우에는 한 매핑 집합의 크기가 너무 커져서 캐시 크기가 512 KB인 경우보다 오히려 쓰기 트래픽이 더 많이 유발됨을 볼 수 있다.
도 5는 본 발명의 일 실시예에 따른 캐시 메모리 블록 교체 방법을 이용한 캐시 서브시스템을 통해 중앙 처리 장치가 메인 메모리에 접근할 경우에 상대적인 평균 액세스 시간을 기존 기법에 비교한 그래프이다.
도 4의 경우와 동일한 테스트 환경에서, 기존의 NRU 기법을 이용한 캐시 블록 교체 방법에서 측정된 메인 메모리에 대한 액세스 시간을 기준으로 하였을 때에, 본 발명의 캐시 블록 교체 방법을 수행함에 따라 메인 메모리에 대한 액세스 시간은 거의 유사한 것으로 나타났다. 다시 말해 성능 저하는 거의 없었고, 캐시 크기에 따라서는 오히려 수 % 범위에서 성능이 향상되는 경향도 나타났다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다.
또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체는 예를 들어 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
1 정보 처리 장치
10 프로세서 11 연산 코어
12 L1 캐시 13 L3 캐시
20 캐시 서브시스템
21 캐시 제어부 211 액세스 제어 유닛
212 부가 정보 제어 유닛 213 교체 제어 유닛
22 부가 정보 저장부
23 캐시 데이터 저장부
30 메인 메모리 서브시스템 31 메모리 컨트롤러
32 메모리 어레이

Claims (19)

  1. 하위 캐시 또는 메인 메모리에서 인출된 데이터 블록을, 적어도 하나의 매핑 집합에 속하며 각각 복수의 라인들을 포함하는 캐시 블록들의 각각에 저장하는 캐시 데이터 저장부;
    상기 캐시 블록들의 각각에 관하여 태그, 참조 필드, 유효 비트와, 각 라인 별로 할당된 복수의 갱신 비트들을 포함하는 부가 정보를 저장하는 부가 정보 저장부; 및
    상위 캐시 또는 프로세서와는 라인 단위로 통신하고 상기 하위 캐시 또는 메인 메모리와는 블록 단위로 통신하며, 소정의 캐시 블록 교체 이벤트가 발생할 경우에, 캐시 블록 교체가 필요한 어떤 매핑 집합에 속하는 각 캐시 블록들에 관하여 상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드 및 갱신된 갱신 비트들의 개수에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조가 상대적으로 적게 일어났으면서, 또한 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들으로서 교체 대상 캐시 블록을 선정하며, 선정된 교체 대상 캐시 블록을 교체하는 캐시 제어부를 포함하는 캐시 서브시스템.
  2. 삭제
  3. 청구항 1에 있어서, 상기 캐시 제어부는,
    소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 후보 캐시 블록들을 선정하고,
    상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 갱신 비트들에 기초하여, 상기 교체 후보 캐시 블록들 중에서 각 교체 후보 캐시 블록 내의 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들로서 교체 대상 캐시 블록들을 선정하도록 동작하는 것을 특징으로 하는 캐시 서브시스템.
  4. 청구항 1에 있어서, 상기 캐시 제어부는,
    소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 갱신 비트들에 기초하여, 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들로서 교체 후보 캐시 블록들을 선정하고,
    상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 대상 캐시 블록들을 선정하도록 동작하는 것을 특징으로 하는 캐시 서브시스템.
  5. 청구항 1에 있어서, 상기 소정의 캐시 교체 이벤트는
    캐시 미스의 발생 시에 빈 캐시 블록이 부재한 경우, 빈 캐시 블록의 개수가 소정 개수 이하로 낮아지는 경우, 매핑 집합 내에 액세스 빈도가 소정 빈도 이하인 캐시 블록들의 수가 소정 개수 이상 존재할 경우 중 적어도 어느 하나인 것을 특징으로 하는 캐시 서브시스템.
  6. 청구항 1에 있어서, 상기 캐시 제어부는
    만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트의 개수가 하나 이상이면, 상기 교체 대상 캐시 블록에 저장된 데이터를 하위 캐시 또는 메인 메모리로 송출한 후에, 새로운 데이터 블록을 선정된 교체 대상 캐시 블록에 쓰기하도록 동작하는 것을 특징으로 하는 캐시 서브시스템.
  7. 청구항 1에 있어서, 상기 캐시 제어부는
    만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트의 개수가 0이면, 새로운 데이터 블록을 선정된 교체 대상 캐시 블록에 곧바로 쓰기하도록 동작하는 것을 특징으로 하는 캐시 서브시스템.
  8. 청구항 1에 있어서, 상기 캐시 제어부는
    교체 쓰기가 된 캐시 블록에 관한 부가 정보 중에서 참조 필드 및 갱신 비트들을 초기화하도록 동작하는 것을 특징으로 하는 캐시 서브시스템.
  9. 프로세서;
    메인 메모리 서브시스템; 및
    상기 프로세서와 상기 메인 메모리 서브시스템 사이에서 캐시 기능을 제공하는 캐시 서브시스템을 포함하며,
    상기 캐시 서브시스템은,
    상기 메인 메모리 서브시스템에서 인출된 데이터 블록을, 적어도 하나의 매핑 집합에 속하며 각각 복수의 라인들을 포함하는 캐시 블록들의 각각에 저장하는 캐시 데이터 저장부;
    상기 캐시 블록들의 각각에 관하여 태그, 참조 필드, 유효 비트와, 각 라인 별로 할당된 복수의 갱신 비트들을 포함하는 부가 정보를 저장하는 부가 정보 저장부; 및
    상기 프로세서와는 라인 단위로 통신하고 상기 메인 메모리 서브시스템과는 블록 단위로 통신하며, 소정의 캐시 블록 교체 이벤트가 발생할 경우에, 캐시 블록 교체가 필요한 어떤 매핑 집합에 속하는 각 캐시 블록들에 관하여 상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드 및 갱신된 갱신 비트들의 개수에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조가 상대적으로 적게 일어났으면서, 또한 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들으로서 교체 대상 캐시 블록을 선정하며, 선정된 교체 대상 캐시 블록을 교체하는 캐시 제어부를 포함하는 캐시 서브시스템을 포함하는 것을 특징으로 하는 정보 처리 장치.
  10. 청구항 9에 있어서, 상기 메인 메모리 서브시스템은 읽기에 비해 쓰기가 상대적으로 느린 비휘발성 메모리 어레이를 포함하는 것을 특징으로 하는 정보 처리 장치.
  11. 복수의 라인들을 각각 포함하는 캐시 블록들의 각각에 관하여 부가 정보를 저장하는 캐시 서브시스템의 캐시 블록 교체 방법으로서,
    복수의 라인들을 각각 포함하는 캐시 블록들의 각각에 관하여 태그, 참조 필드, 유효 비트 및 각 라인 별로 할당된 복수의 갱신 비트들을 포함하는 부가 정보를 설정하는 단계;
    소정의 캐시 교체 이벤트의 발생을 감시하는 단계;
    만약 소정의 캐시 교체 이벤트가 발생한 경우에, 캐시 블록 교체가 필요한 어떤 매핑 집합에 속하는 캐시 블록들의 각각에 관하여 상기 부가 정보 저장부에 저장된 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드 및 갱신된 갱신 비트들의 개수에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조가 상대적으로 적게 일어났으면서, 또한 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들으로서 교체 대상 캐시 블록을 선정하는 단계; 및
    선정된 교체 대상 캐시 블록을 교체하는 단계를 포함하는 캐시 서브시스템의 캐시 블록 교체 방법.
  12. 삭제
  13. 청구항 11에 있어서, 상기 교체 대상 캐시 블록을 선정하는 단계는,
    소정의 캐시 교체 이벤트의 발생에 따라, 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 후보 캐시 블록들을 선정하는 단계; 및
    상기 부가 정보 중에서 해당 매핑 집합에 속하는 각 캐시 블록들에 관한 갱신 비트들에 기초하여, 상기 교체 후보 캐시 블록들 중에서 각 교체 후보 캐시 블록 내의 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들로서 교체 대상 캐시 블록들을 선정하는 단계를 포함하는 것을 특징으로 하는 캐시 서브시스템의 캐시 블록 교체 방법.
  14. 청구항 11에 있어서, 상기 교체 대상 캐시 블록을 선정하는 단계는,
    소정의 캐시 교체 이벤트의 발생에 따라 어떤 매핑 집합 내에서 캐시 블록 교체가 필요한 경우에, 상기 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 갱신 비트들에 기초하여, 갱신된 갱신 비트들의 개수가 상대적으로 적은 캐시 블록들로서 교체 후보 캐시 블록들을 선정하는 단계; 및
    상기 부가 정보 중에서 해당 매핑 집합에 속하는 캐시 블록들의 각각에 관한 참조 필드에 기초하여, 참조 필드들의 초기화 이후 참조가 일어나지 않았거나 또는 참조 횟수가 상대적으로 적은 적어도 하나의 교체 대상 캐시 블록들을 선정하는 단계를 포함하는 것을 특징으로 하는 캐시 서브시스템의 캐시 블록 교체 방법.
  15. 청구항 11에 있어서, 상기 소정의 캐시 교체 이벤트는
    캐시 미스의 발생 시에 빈 캐시 블록이 부재한 경우, 빈 캐시 블록의 개수가 소정 개수 이하로 낮아지는 경우, 매핑 집합 내에 액세스 빈도가 소정 빈도 이하인 캐시 블록들의 수가 소정 개수 이상 존재할 경우 중 적어도 어느 하나인 것을 특징으로 하는 캐시 서브시스템의 캐시 블록 교체 방법.
  16. 청구항 11에 있어서, 상기 선정된 교체 대상 캐시 블록을 교체하는 단계는,
    만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트의 개수가 하나 이상이면, 상기 교체 대상 캐시 블록에 저장된 데이터를 하위 캐시 또는 메인 메모리로 송출한 후에, 새로운 데이터 블록을 선정된 교체 대상 캐시 블록에 쓰기하는 단계를 포함하는 것을 특징으로 하는 캐시 서브시스템의 캐시 블록 교체 방법.
  17. 청구항 11에 있어서, 상기 선정된 교체 대상 캐시 블록을 교체하는 단계는,
    만약 선정된 교체 대상 캐시 블록에 관한 갱신된 갱신 비트의 개수가 0이면, 새로운 데이터 블록을 선정된 교체 대상 캐시 블록에 곧바로 쓰기하는 단계를 포함하는 것을 특징으로 하는 캐시 서브시스템의 캐시 블록 교체 방법.
  18. 청구항 11에 있어서,
    교체 쓰기가 된 캐시 블록에 관한 부가 정보 중에서 참조 필드 및 갱신 비트들을 초기화하는 단계를 더 포함하는 것을 특징으로 하는 캐시 서브시스템의 캐시 블록 교체 방법.
  19. 청구항 11에 있어서, 상기 캐시 서브시스템은 프로세서와 메인 메모리 서브시스템 사이에서 캐시 기능을 제공하고,
    상기 메인 메모리 서브시스템은 읽기에 비해 쓰기가 상대적으로 느린 비휘발성 메모리 어레이를 포함하는 것을 특징으로 하는 캐시 서브시스템의 캐시 블록 교체 방법.
KR1020130056082A 2013-05-16 2013-05-16 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치 KR101474842B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130056082A KR101474842B1 (ko) 2013-05-16 2013-05-16 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치
PCT/KR2014/003996 WO2014185652A1 (ko) 2013-05-16 2014-05-07 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130056082A KR101474842B1 (ko) 2013-05-16 2013-05-16 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치

Publications (2)

Publication Number Publication Date
KR20140135580A KR20140135580A (ko) 2014-11-26
KR101474842B1 true KR101474842B1 (ko) 2014-12-19

Family

ID=51898589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130056082A KR101474842B1 (ko) 2013-05-16 2013-05-16 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치

Country Status (2)

Country Link
KR (1) KR101474842B1 (ko)
WO (1) WO2014185652A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190073660A (ko) 2017-12-19 2019-06-27 에스케이하이닉스 주식회사 캐시 메모리 장치 및 이를 포함하는 fpga

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102317248B1 (ko) * 2014-03-17 2021-10-26 한국전자통신연구원 캐시의 부분연관 재구성을 이용한 캐시 제어 장치 및 캐시 관리 방법
KR101936951B1 (ko) 2018-04-11 2019-01-11 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US11237970B2 (en) * 2018-11-07 2022-02-01 Micron Technology, Inc. Reduce data traffic between cache and memory via data access of variable sizes
CN111913661B (zh) * 2020-07-29 2023-07-04 北京天融信网络安全技术有限公司 一种缓存设备替换方法及电子设备
CN112583663B (zh) * 2020-12-08 2023-01-31 吉林大学 一种基于国产操作系统的自动化网络性能测试方法
CN113641596B (zh) * 2021-10-18 2022-07-19 北京壁仞科技开发有限公司 缓存管理方法、缓存管理装置、处理器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248389A (ja) 2008-09-09 2011-12-08 Panasonic Corp キャッシュメモリ、キャッシュメモリシステム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040076313A (ko) * 2003-02-25 2004-09-01 이승룡 버퍼 캐시 분할 관리 방법
KR101056460B1 (ko) * 2009-06-05 2011-08-11 세종대학교산학협력단 캐쉬 제어기 및 캐쉬 블록 교체 방법
KR20120084906A (ko) * 2011-01-21 2012-07-31 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 그 관리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248389A (ja) 2008-09-09 2011-12-08 Panasonic Corp キャッシュメモリ、キャッシュメモリシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190073660A (ko) 2017-12-19 2019-06-27 에스케이하이닉스 주식회사 캐시 메모리 장치 및 이를 포함하는 fpga

Also Published As

Publication number Publication date
KR20140135580A (ko) 2014-11-26
WO2014185652A1 (ko) 2014-11-20

Similar Documents

Publication Publication Date Title
KR101474842B1 (ko) 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치
JP6967986B2 (ja) メモリシステム
US10922240B2 (en) Memory system, storage system and method of controlling the memory system
KR102193689B1 (ko) 예측에 기초하여 효율적으로 캐시 라인을 관리하는 시스템 및 방법
US20170235681A1 (en) Memory system and control method of the same
US10031849B2 (en) Tracking alternative cacheline placement locations in a cache hierarchy
US6640283B2 (en) Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US10169232B2 (en) Associative and atomic write-back caching system and method for storage subsystem
CN109983536B (zh) 响应标签匹配命令的存储电路
US7577793B2 (en) Patrol snooping for higher level cache eviction candidate identification
US8661179B2 (en) Cache memory architecture having reduced tag memory size and method of operation thereof
US20110161597A1 (en) Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller
CN104102591A (zh) 计算机子系统及在其中实现闪存转换层的方法
CN102150147A (zh) 存储器服务器
US20100217937A1 (en) Data processing apparatus and method
KR20190058318A (ko) 효율적으로 압축된 캐시 라인의 저장 및 처리를 위한 시스템 및 방법
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
CN115617709A (zh) 缓存管理方法及装置、缓存装置、电子装置和介质
EP3411798B1 (en) Cache and method
US20190095331A1 (en) Multi-level system memory with near memory capable of storing compressed cache lines
CN114600092A (zh) 用于混合dimm中的非易失性存储器的低延时高速缓存
US10565111B2 (en) Processor
US9053030B2 (en) Cache memory and control method thereof with cache hit rate
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법

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: 20180614

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181217

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 6