KR100272165B1 - 캐쉬 메모리 시스템 및 그의 운영 방법 - Google Patents

캐쉬 메모리 시스템 및 그의 운영 방법 Download PDF

Info

Publication number
KR100272165B1
KR100272165B1 KR1019980018198A KR19980018198A KR100272165B1 KR 100272165 B1 KR100272165 B1 KR 100272165B1 KR 1019980018198 A KR1019980018198 A KR 1019980018198A KR 19980018198 A KR19980018198 A KR 19980018198A KR 100272165 B1 KR100272165 B1 KR 100272165B1
Authority
KR
South Korea
Prior art keywords
information
auxiliary storage
storage element
central controller
referred
Prior art date
Application number
KR1019980018198A
Other languages
English (en)
Other versions
KR19990085643A (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 KR1019980018198A priority Critical patent/KR100272165B1/ko
Priority to US09/315,781 priority patent/US6549983B1/en
Priority to JP14069799A priority patent/JP3899376B2/ja
Publication of KR19990085643A publication Critical patent/KR19990085643A/ko
Application granted granted Critical
Publication of KR100272165B1 publication Critical patent/KR100272165B1/ko
Priority to JP2006281546A priority patent/JP2007004835A/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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

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

본 발명은 프로세서에 의하여 참조되는 정보가 캐쉬 메모리에 존재하는 지의 여부에 따라서 발생되는 미스 레이트가 저감되는 최적의 캐쉬 메모리 운영 시스템을 제공하기 위하여, 중앙제어부가 참조하도록 대량의 정보를 하위기억소자에 준비하는 단계와, 상기 하위기억소자에 저장된 대량의 정보 중에서 인출되는 제1 정보가 저장되는 제1 보조저장소자 및 상기 제1 정보가 포함되는 제2 정보가 저장되는 제2 보조저장소자를 준비하는 단계 및 상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자 또는 제2 보조저장소자에 존재하는 지 또는 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 포함하는 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 다른 제1 정보가 상기 제1 보조저장소자에 존재하는 지의 여부에 따라서, 상기 하위기억소자로부터 제1 정보 또는 제2 정보를 선택적으로 인출하고, 상기 제1 정보 또는 제2 정보를 상기 제1 보조저장소자와 제2 보조저장소자에 선택적으로 저장하는 단계를 포함하여서 중앙제어부에 의하여 참조되는 정보를 조건에 따라 하위기억소자로부터 서로 다르게 인출하여 상기 제1 보조저장소자와 제2 보조저장소자에 선택적으로 저장하는 단계를 포함하여서 메모리 운영 속도가 증대되는 캐쉬 메모리 시스템 및 그의 운영 방법에 관한 것이다.

Description

캐쉬 메모리 시스템 및 그의 운영 방법
본 발명은 캐쉬 메모리 시스템 및 그의 운영 방법에 관한 것으로, 특히 캐쉬 메모리 내에서의 캐쉬 미스를 저감시켜서 시스템의 성능을 향상시킨 캐쉬 메모리 시스템 및 그의 운영 방법에 관한 것이다.
일반적으로 프로세서와 메모리의 성능 격차가 점점 심화됨에 따라서, 도 1의 계층적인 메모리 구조를 나타낸 도면에서와 같이, 메모리는 프로세서 내에서 사용되는 레지스터(10)에서부터, 캐쉬(Cache)(11), 주기억장치인 메모리(12), 보조기억장치인 마그네틱 디스크 드라이버(13) 및 백업장치에서 사용되는 마그네틱 테이프 드라이버(14)로 구성되는 계층적인 구조(Hierarchy Structure)로 된다.
상기 계층적인 구조에서 사용되는 각각의 장치들은 레지스터(10) 등의 상위계층일수록 동작속도가 고속인 반면, 정보가 저장되는 메모리 크기는 작게되고, 보조기억장치인 마그네틱 테이프 드라이버(14) 등의 하위계층일수록 동작속도가 저속인 반면 메모리 크기는 크게 구성된다.
따라서, 대부분의 고성능 시스템에서는 상기 계층적인 구조로 되는 메모리 구조에서 사용되는 레지스터(10) 및 캐쉬(11) 등의 크기, 구성, 동작방식을 적절하게 설정함으로써 시스템의 성능을 향상시키고 있다.
캐쉬(11)를 사용하는 계층적인 메모리 시스템은 중앙처리장치(CPU)에 의하여 참조(Reference)되는 정보의 지역성(Locality)에 기반하여 캐쉬(11)를 사용함으로써 우수한 성능을 얻을 수 있다.
상기 참조되는 정보의 지역성은 크게 공간적 지역성(Spatial locality)과 시간적 지역성(Temporal locality)으로 나뉜다.
공간적 지역성이란, 특정한 메모리 요소인 정보가 참조된 경우에, 상기 참조된 정보와 인접한 주소에 위치한 다른 정보들이 단시간 내에 다시 참조될 가능성이 많은 성향을 의미하는 것이다.
시간적 지역성이란, 참조된 정보가 단시간 내에 다시 참조될 가능성이 많은 성향을 의미하는 것이다.
이러한 공간적 지역성과 시간적 지역성을 반영하기 위하여, 상기 캐쉬 메모리 시스템을 복수개의 정보를 포함하는 정보의 블록들로 구성하여서, 캐쉬 미스(Cache Miss; 이하 참조실패라고 용어를 통일한다.)가 발생하면, 참조실패가 발생된 정보와 함께 상기 참조실패가 발생된 정보와 인접된 정보들을 하위기억소자로부터 인출하여 저장함으로써 공간적 지역성을 반영하고, 최근에 참조된 정보를 포함하는 정보의 블록을 캐쉬 메모리에 저장함으로써 시간적 지역성을 반영한다.
이러한 두 종류의 지역성은 캐쉬 설계시에 상기 정보 블록의 크기를 결정하는데 중요한 요소로서 작용한다.
즉, 공간적 지역성을 보다 잘 반영하기 위하여, 보다 큰 정보의 블록을 가지도록 캐쉬를 구성하는 것이 좋으나, 전체 캐쉬 크기가 일정한 경우에 정보 블록 크기의 증가는 상기 일정한 크기의 캐쉬 내에 존재하는 정보 블록의 수를 감소시킴으로써, 시간적 지역성의 반영을 어렵게 하는 경우가 있다.
도 2는 캐쉬의 공간적 및 시간적 지역성의 성향을 개념적으로 나타낸 도면이다. 도 2에서 X축은 메모리 참조가 발생한 주소, Y축은 참조의 확률을 나타낸다.
A 번지의 정보에 대한 정보 참조가 발생한 경우에, 메모리 영역의 각 정보들의 참조 확률(Reference Probability)과, 참조되는 정보의 블록 크기(Block Size)와의 관계를 보이는 도 2에서 도시된 바와 같이, A 번지의 정보에 대한 참조가 발생하면, 공간적 지역성의 경향에 따라서 A 번지와 인접한 영역의 정보들은 프로세서에 의하여 참조될 확률이 높으며, A 번지와 거리가 멀어질수록 프로세서에 의하여 참조될 확률은 적어진다는 것을 나타낸다. 따라서, 이러한 성향에 의하여 A 번지를 정점으로 하는 특성곡선이 표현될 수 있는 것이다.
도 2에서 도시된 바에 따라서, 큰 블록(22)을 가지도록 캐쉬를 구성하는 경우와, 작은 크기의 블록(20)을 가지도록 구성하는 경우의 상기 두 종류의 지역성을 반영하는 양상은 다음과 같다.
큰 블록(22)을 가지도록 캐쉬 메모리가 구비되면, 정보에 대한 참조에 대하여 캐쉬 미스인 참조실패가 발생한 경우, 큰 블록(22)에 의하여 보다 많은 정보들을 한꺼번에 인출하는 것은 작은 블록(20)에 따른 작은 양 만큼의 정보를 인출하는 것에 비하여 공간적 지역성은 보다 잘 반영되지만, 블록 내에 존재하는 정보의 평균 참조확률은 낮아져서 일정한 캐쉬 메모리의 크기를 갖는 캐쉬 메모리 시스템의 경우에는 시간적 지역성의 반영 정도가 저하된다.
또한, 작은 블록(20)을 가지도록 캐쉬 메모리가 구비되면, 큰 블록(22)으로 되는 경우에 비하여 참조실패가 발생한 정보에 보다 근접한 작은 양의 정보들만 인출하기 때문에, 작은 블록(20) 내에 존재하는 정보들의 평균 참조 확률은 증가하여 시간적 지역성은 보다 잘 반영되지만, 공간적 지역성의 반영 정도가 줄어든다.
이와 같이 캐쉬블록 크기를 결정하는데, 상기 도 2에서 도시된 상기 공간적 지역성과 시간적 지역성은 서로 상충하는 요소로서 작용한다.
따라서, 기존의 연구에서는 상기 두 가지의 지역성을 고려하여, 최적의 블록크기를 결정하는 연구가 수행되었으며, 이러한 연구 결과에 따라서 적절한 크기의 단일한 정보의 블록 크기를 지니도록 캐쉬 메모리를 구성하였다.
그러나, 상기와 같이 단일한 캐쉬 블록 크기를 갖도록 구성된 캐쉬 시스템은 상기 공간적 지역성과 시간적 지역성을 반영함에 있어서 시스템의 성능이 감소되는 단점이 있다.
이러한 단점을 보완하기 위하여, 상기 공간적 지역성과 시간적 지역성을 각각 반영하는 공간적 캐쉬(Spatial cache)와 시간적 캐쉬(Temporal cache)를 별도로 구비하는 듀얼 데이터 캐쉬(Dual Data Cache)에 대한 연구가 있다.
이러한 듀얼 캐쉬를 이용하는 연구들은, 어떠한 참조가 공간적 지역성을 갖거나 시간적 지역성을 갖는 지를 구분함으로써, 해당 지역성이 반영되는 캐쉬에 해당하는 정보를 저장하는 방식을 취하고 있다.
도 3은 종래 기술에서의 캐쉬 메모리 시스템 구성을 나타낸 도면이다.
종래 기술에 따른 캐쉬 메모리 시스템(ICS; International Conference on Supercomputing '95, Pages 338 - 347)은 중앙처리장치(33)의 정보를 저장하고 있는 기억장치(34)와, 상기 중앙처리장치(33)에서 참조되는 정보가 저장되는 공간적 캐쉬(30), 시간적 캐쉬(31)와, 이전에 참조된 정보를 이용하여 참조실패시에, 상기 공간적 캐쉬(30)와 시간적 캐쉬(31) 중에서 상기 기억장치(34)로부터의 정보를 어디에 저장할 것인지를 결정하는 예상처리부(32)와, 상기 중앙처리장치(33)가 정보를 참조하도록 상기 공간적 캐쉬(30)와 시간적 캐쉬(31)를 선택하는 멀티플렉서(35) 및 상기 예상처리부(32)의 제어에 의하여 기억장치(34)로부터의 정보를 상기 공간적 캐쉬(30) 및 시간적 캐쉬(31)로 제공하도록 선택하는 디멀티플렉서(36)로 구성된다.
상기와 같이 구성되는 종래기술은, 상기 예상처리부(32)에 저장된 정보에 의하여, 기억장치(34)로부터 중앙처리장치(33)가 참조하도록 제공되는 정보를 공간적 캐쉬(30)와 시간적 캐쉬(31) 중에서 어디에 저장할 것인지를 판단하고, 이에 따라서 상기 정보를 공간적 캐쉬(30)와 시간적 캐쉬(31)로 선택적으로 저장함으로써 성능향상을 이루도록 구성된 것이다.
예상처리부(32)에서 정보를 저장하는 각 엔트리는 명령주소, 최종주소, 변위(Stride), 길이, 상태 및 예상치 등의 항목으로 구성된다.
예상처리부(32)는 동일한 명령주소에서 발생된 데이터 참조들 간의 주소의 차를 이용함으로써 변위를 구하고, 상기 변위에 의하여 얻어진 정보를 공간적 캐쉬(30)와 시간적 캐쉬(31) 중에서 어디에 저장할 것인지를 판단할 수 있는 근거로서 제공한다.
예를 들면, A 번지의 명령어에 의하여 B 번지의 정보가 참조되고, 상기 A 번지 명령어가 이후에 수행될 때, B+α가 참조되며, 그 이후에, 상기 A 번지 명령어가 수행될 때, B+2α번지의 정보를 참조하면, A 번지의 명령어가 참조하는 정보의 주소는, B 번지에서부터 상기 α를 변수로 하는 일정한 변위를 가지는 것으로 예상처리부(32)는 판단한다.
그러면, 상기 α에 의하여 일정한 변위를 가지는 것으로 판단되는 정보는 상기 변위의 값에 따라 공간적 캐쉬(30) 또는 시간적 캐쉬(31)에 구분되어 저장된다.
즉, 예상처리부(32)의 엔트리는 중앙처리장치(33)에서 발생된 명령주소에 의하여 검색되며, 상기 명령주소에 의하여 참조되는 정보의 주소는 상기 예상처리부(32)에서 구비되는 상기 최종주소의 항목에 저장된다.
따라서, 예상처리부(32)의 상기 변위 항목에는 특정한 주소의 명령어에 의하여 현재 참조된 정보의 주소와 바로 이전에 참조된 정보의 주소의 차가 저장된다.
예를 들면, 이러한 변위에 의한 B, B+α, B+2α 등의 일정한 변위에 의하여 연속적으로 참조되는 상기 세 번의 참조가 일정한 단계를 갖는 경우에만, 상기 정보 참조가 공간적 또는 시간적 지역성 중 어떠한 지역성을 갖는가에 대한 예측이 가능하고, 이에 따라서 정보를 공간적 캐쉬(30)와 시간적 캐쉬(31) 중 어디에 저장할 것인지에 대한 판단이 된다.
상기와 같이 일정한 변위에 의하여 결정된 지역성 성향에 따라서 해당 정보가 공간적 캐쉬(30) 또는 시간적 캐쉬(31)에 저장됨으로써 성능 향상을 기대할 수 있다.
그러나, 상기와 같이 구성되는 종래 기술에 따른 캐쉬 메모리 시스템은 전체 정보 참조 중에, 일정한 변위를 갖지 않는 참조가 발생되는 경우가 많고, 동일한 명령어에서 참조되는 정보 주소의 변위가 변화하는 경우가 발생되기 때문에, 일정한 변위를 갖는 정보 참조에 대하여 처리를 하는 상기 구조에서는 상기 일정하지 않은 변위에 따라 발생되는 정보 참조에 의하여 바람직한 성능의 향상을 얻기가 어렵다는 문제점이 있다.
따라서, 본 발명이 이루고자하는 기술적 과제는, 캐쉬 메모리의 운영에 있어서, 공간적 지역성과 시간적 지역성을 함께 반영하기 위하여, 캐쉬 내에 존재하는 정보의 상태에 따라서, 참조실패시에 인출되는 정보의 양을 선택적으로 결정하고, 인출된 정보 중, 참조 확률이 높은 정보가 참조 확률이 낮은 정보보다 캐쉬 내에 오래 머물도록 선택적으로 저장하여서 참조실패를 감소시키며, 메모리 트래픽(Memory Traffic)의 효율을 증가시키는 캐쉬 메모리의 운영 방법 및 그의 시스템을 제공하는데 있다.
도 1은 계층적인 메모리 구조를 나타낸 도면이다.
도 2는 캐쉬의 공간적 및 시간적 지역성을 개념적으로 나타낸 도면이다.
도 3은 종래 기술에서의 캐쉬 메모리 시스템의 블록도이다.
도 4a는 본 발명에 따른 캐쉬 메모리 시스템의 블록도이다.
도 4b는 본 발명에 따른 제1 정보와 제2 정보의 관계를 나타낸 도면이다.
도 5는 도 4a의 캐쉬 메모리 시스템의 흐름도이다.
도 6은 본 발명에 따른 상태저장소자 및 참조실패주소를 나타낸 도면이다.
도 7은 본 발명에 따른 선택적 저장 방법을 나타낸 흐름도이다.
도 8은 본 발명에서 사용된 각 변수를 나타낸 도면이다.
도 9는 캐쉬 메모리의 성능 비교를 나타낸 도면이다.
상기 기술적 과제를 이루기 위하여 본 발명은 (a) 중앙제어부가 참조하도록 대량의 정보를 하위기억소자에 준비하는 단계와, (b) 상기 하위기억소자에 저장된 대량의 정보 중에서 인출되는 제1 정보가 저장되는 제1 보조저장소자 및 상기 제1 정보가 포함되는 제2 정보가 저장되는 제2 보조저장소자를 준비하는 단계 및 (c) 상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자 또는 제2 보조저장소자에 존재하는 지 또는 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 포함하는 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 다른 제1 정보가 상기 제1 보조저장소자에 존재하는 지의 여부에 따라서, 상기 하위기억소자로부터 제1 정보 또는 제2 정보를 선택적으로 인출하고, 상기 제1 정보 또는 제2 정보를 상기 제1 보조저장소자와 제2 보조저장소자에 선택적으로 저장하는 단계를 포함하여서 중앙제어부에 의하여 참조되는 정보를 조건에 따라 하위기억소자로부터 서로 다르게 인출하여 상기 제1 보조저장소자와 제2 보조저장소자에 선택적으로 저장하는 것을 특징으로 한다.
상기 (c) 단계는 (c11) 특정한 상기 제2 정보에 포함되고, 상기 제1 보조저장소자에 저장된 상기 제1 정보의 개수를 나타내는 상태정보를 갖는 상태저장소자를 준비하는 단계와, (c12) 상기 제1 보조저장소자 또는 제2 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하는 지를 판단하는 단계와, (c13) 상기 제1 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하는 경우, 상기 중앙제어부가 상기 제1 보조저장소자로부터 상기 정보를 참조하는 단계와, (c14) 상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자에 존재하지 않고, 상기 제2 보조저장소자에 존재하는 경우, 참조되는 상기 제2 보조저장소자의 정보 중에서 상기 중앙제어부가 참조하는 정보를 포함하는 제2 정보 내의 제1 정보는 상기 제1 보조저장소자에 복사하고, 상기 중앙제어부가 상기 제1 정보 또는 상기 제2 정보로부터 정보를 참조하며, 상기 상태정보를 갱신하는 단계와, (c15) 상기 제1 보조저장소자와 제2 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하지 않는 경우, 상기 상태정보에 의하여 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보를 포함하는 상기 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 상기 제1 정보가 상기 제1 보조저장소자에 존재하는 지의 여부를 판단하는 단계와, (c16) 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보를 포함하는 상기 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보가 상기 상태정보에 의하여 상기 제1 보조저장소자에 존재하는 것으로 판단되면, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 상기 하위기억소자로부터 인출하여 상기 제1 보조저장소자에 저장하고, 상기 중앙제어부가 인출된 상기 제1 정보로부터 정보를 참조하며, 상기 상태정보를 갱신하는 단계 및 (c17) 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 포함하는 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보가 상기 상태정보에 의하여 상기 제1 보조저장소자에 존재하지 않는 것으로 판단되면, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보를 하위기억소자로부터 인출하여 상기 제2 보조저장소자에 저장하고, 상기 제2 보조저장소자에 저장되는 상기 제2 정보 중에서 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보는 상기 제1 보조저장소자로 복사하며, 상기 중앙제어부가 인출된 상기 제1 정보 또는 상기 제2 정보로부터 정보를 참조하고, 상기 상태정보를 갱신하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (c) 단계는 (c21) 상기 제1 보조저장소자 또는 제2 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하는 지를 판단하는 단계와, (c22) 상기 제1 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하는 경우, 상기 중앙제어부가 상기 제1 보조저장소자로부터 상기 정보를 참조하는 단계와, (c23) 상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자에 존재하지 않고, 상기 제2 보조저장소자에 존재하는 경우, 참조되는 상기 제2 보조저장소자의 정보 중에서 상기 중앙제어부가 참조되는 정보를 포함하는 제2 정보 내의 제1 정보는 상기 제1 보조저장소자에 복사하고, 상기 중앙제어부가 상기 제1 정보 또는 상기 제2 정보로부터 정보를 참조하는 단계와, (c24) 상기 제1 보조저장소자와 제2 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하지 않는 경우, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보가 하위기억소자에 존재하는 지의 여부를 판단하는 단계와, (c25) 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제 2정보가 상기 하위기억소자에 존재하는 것으로 판단되면, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보를 상기 하위기억소자로부터 인출하여 상기 제1 보조저장소자에 저장하고, 상기 중앙제어부가 인출된 상기 제1 정보로부터 정보를 참조하는 단계 및 (c26) 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보가 상기 하위기억소자에 존재하지 않는 것으로 판단되면, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제2 정보를 하위기억소자로부터 인출하여 상기 제2 보조저장소자에 저장하고, 상기 제2 보조저장소자에 저장되는 상기 제2 정보 중에서 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보는 상기 제1 보조저장소자로 복사하며, 상기 중앙제어부가 인출된 상기 제1 정보 또는 상기 제2 정보로부터 정보를 참조하는 단계를 포함하는 것을 특징으로 한다.
상기 다른 기술적 과제를 이루기 위하여 본 발명은 하위기억소자에 저장된 대량의 정보로부터 컴퓨터 시스템의 중앙제어부가 참조하는 일부 정보를 저장하는 캐쉬 메모리 시스템에 있어서, 상기 중앙제어부가 참조하는 정보를 포함하는 제2 정보가 상기 하위기억소자로부터 인출되어서 저장되는 제2 보조저장소자와, 상기 제2 보조저장소자에 저장된 정보로부터 또는 상기 하위기억소자에 저장된 정보로부터 상기 중앙제어부가 참조하는 정보를 포함하는 제1 정보가 인출되어서 저장되는 제1 보조저장소자 및 상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자 또는 제2 보조저장소자에 존재하는 지 또는 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 포함하는 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보가 상기 제1 보조저장소자에 존재하는 지의 여부에 따라서, 상기 하위기억소자로부터 상기 제1 정보 또는 제2 정보를 선택적으로 인출하고, 상기 제1 정보 또는 제2 정보를 상기 제1 보조저장소자와 제2 보조저장소자에 선택적으로 저장하도록 제어하는 제어수단을 구비하는 것을 특징으로 한다.
상기 제어수단은 특정한 제2 정보에 포함되고, 상기 제1 보조저장소자에 저장된 제1 정보의 개수를 나타내는 상태정보를 갖는 상태저장소자 및 상기 상태저장소자의 상태정보에 따라서, 상기 제1 정보 또는 제2 정보를 상기 제1 보조저장소자와 제2 보조저장소자에 저장하도록 선택하는 디먹스부를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 통하여 본 발명의 바람직한 실시예들을 상세히 설명하기로 한다.
도 4a는 본 발명에 따른 캐쉬 메모리 시스템의 블록도이다. 도 4b는 본 발명에 따른 제1 정보와 제2 정보의 관계를 나타낸 도면이다. 도 5는 도 4a의 캐쉬 메모리 시스템의 블록도에 따른 흐름도이다.
도 4a와 도 4b를 참조하면, 본 발명은 중앙제어부(40), 하위기억소자(48), 제2 보조저장소자(44), 제1 보조저장소자(42) 및 제어수단(46)으로 구성된다.
하위기억소자(48)는 중앙제어부(40)가 참조하도록 대량의 정보가 저장된다.
제2 보조저장소자(44)는 중앙제어부(40)에서 참조되는 정보를 포함하는 소정양의 정보가 하위기억소자(48)로부터 제2 정보(402)로서 인출되어서 저장된다.
제1 보조저장소자(42)는 중앙제어부(40)에서 참조되는 정보를 포함하는 제2 보조저장소자(44)에 저장된 상기 제2 정보(402)로부터 또는 하위기억소자(48)로부터 인출되는 제1 정보(401)가 저장된다.
제어수단(46)은 상태저장소자(46a)와 디먹스부(46b)로 구성되는데, 상태저장소자(46a)는 특정한 제2 정보(402)에 포함되고, 제1 보조저장소자(42)에 저장된 상기 제1 정보(401)의 개수를 나타내는 상태정보를 갖는다.
디먹스부(46b)는 상태저장소자(46a)의 상태정보에 따라서 제1 정보(401) 또는 제2 정보(402)를 제1 보조저장소자(42)와 제2 보조저장소자(44)에 선택적으로 저장하도록 제어하는 제어수단(46)에 의하여 제어된다.
도 6은 본 발명에 따른 상태저장소자 및 참조실패주소를 나타낸 도면이다. 도 7은 본 발명에 따른 선택적 저장 방법을 나타낸 흐름도이다.
상기와 같이 구성되는 본 발명을 도 4b, 도 5, 도 6 및 도 7을 참조하여 설명한다.
먼저, 도 4b에서 도시된 바와 같이, 제2 정보(402)는 복수개의 제1 정보(401)로 구성되고, 중앙제어부(40)가 정보를 참조할 때, 복수개의 제1 정보(401) 중에서 하나의 제1 정보(401)의 일부분에 포함되는 정보가 참조된다.
따라서, 중앙제어부(40)가 참조하는 정보는 제1 정보(401)에 포함되고, 제1 정보(401)는 제2 정보(402)에 포함된다.
또한, 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 하나의 제1 정보(401)는 하위기억소자(48)로부터 또는 제2 보조저장소자(44)에 저장되는 제2 정보(402)로부터 인출되어서 제1 보조저장소자(42)에 저장된다.
중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제1 정보(401)와 다른 제1 정보(401)들에 의하여 구성되는 제2 정보(402)는 하위기억소자(48)로부터 인출되어서 제2 보조저장소자(44)에 저장된다.
상기와 같이 중앙제어부(40)에 의하여 하위기억소자(48)로부터 제2 보조저장소자(44)에 정보를 인출하여 저장하는 경우, 하위기억소자(48)로부터 인출되어서 제2 보조저장소자(44)에 저장된 제2 정보(402) 중에서 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 하나의 제1 정보(401)는 제2 보조저장소자(44)에서 제1 보조저장소자(42)로 복사되어서 저장된다.
또한, 제1 보조저장소자(42)는 제1 정보(401)를 저장하는 저장소자이고, 제2 보조저장소자(44)는 제2 정보(402)를 저장하는 저장소자이다.
상기와 같은 제1 정보(401)와 제2 정보(402)의 관계에 따라서 본 발명을 설명한다.
계층적인 메모리 구조상에서 도시되지 않은 외부장치(I/O Device)에 의하여 대량의 데이터인 정보가 주메모리 또는 캐쉬 메모리로서의 하위기억소자(48)에 저장되고, 하위기억소자(48)에 저장된 정보는 CPU 또는 프로세서인 중앙제어부(40)에 의하여 읽혀져서 참조된다.(100 단계)
하위기억소자(48)에 저장된 대량의 정보 중에서 인출되는 제1 정보(401)가 저장되는 제1 보조저장소자(42) 및 상기 제1 정보(401)가 포함되는 제2 정보(402)가 저장되는 제2 보조저장소자(44)가 준비된다.(200 단계)
중앙제어부(40)에 의하여 참조되는 정보가 제1 보조저장소자(42) 또는 제2 보조저장소자(44)에 존재하는 지 또는 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제1 정보(401)를 포함하는 제2 정보(402) 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보(401)가 제1 보조저장소자(42)에 존재하는 지의 여부에 따라서, 하위기억소자(48)로부터 제1 정보(401) 또는 제2 정보(402)를 선택적으로 인출하고, 상기 제1 정보(401) 또는 제2 정보(402)를 제1 보조저장소자(42)와 제2 보조저장소자(44)에 선택적으로 저장된다.(400 단계)
제1 보조저장소자(42)는 시간적 지역성을 위주로 반영하기 위하여 구성된 TOC(Temporal Oriented Cache) 메모리이고, 제2 보조저장소자(44)는 공간적 지역성을 위주로 반영하기 위하여 구성된 SOC(Spatial Oriented Cache) 메모리이다.
중앙제어부(40)에 의하여 TOC 메모리인 제1 보조저장소자(42)와 SOC 메모리인 제2 보조저장소자(44)는 보유된 정보가 참조되는데, 제1 보조저장소자(42) 또는 제2 보조저장소자(44)에서, 중앙제어부(40)가 참조하고자 하는 정보가 존재하지 않는 경우, 중앙제어부(40)에 의한 참조가 캐쉬 메모리로부터 참조되지 못하는 캐쉬 실패 즉, 참조 실패인 경우에, 하위기억소자(48)로부터 중앙제어부(40)가 참조하고자 하는 정보를 인출한다.
상기 (400) 단계는 상태저장소자를 준비하는 단계(470), 참조되는 정보가 존재하는 지를 판단하는 단계(460), 제1 정보를 참조하는 단계(410), 제2 정보를 참조하는 단계(420), 카운트 값이 적어도 일 이상인가를 판단하는 단계(430), 하위기억소자로부터 제1 정보를 인출하는 단계(440) 및 하위기억소자로부터 제2 정보를 인출하는 단계(450)로 구성된다.
먼저, 제어수단(46)의 상태저장소자(46a)는 특정한 제2 정보(402)에 포함되고, 제1 보조저장소자(42)에 저장된 제1 정보(401)의 개수를 나타내는 상태정보를 갖는다.(470 단계)
중앙제어부(40)가 참조할 정보를 제1 보조저장소자(42) 또는 제2 보조저장소자(44)에 저장시키는 경우, 선택테이블(Selection Table)인 제어소자(46) 내의 상태저장소자(46a)에 저장된 상태정보를 참조하고, 이에 따라서 제1 보조저장소자(42) 또는 제2 보조저장소자(44) 중, 어디에 중앙제어부(40)에 의하여 참조되는 정보를 저장할 것인 가를 그리고 하위기억소자(48)로부터 제1 정보(401) 또는 제2 정보(402) 중에서 어느 정보를 인출할 것인가를 선택한다.
상태저장소자(46a)를 포함하여 구성되는 제어소자(46)는 중앙제어부(40)에 의하여 참조되기 위하여 하위기억소자인 하위기억소자(48)로부터 인출되는 제1 정보(401) 또는 제2 정보(402)를 제1 보조저장소자(42) 또는 제2 보조저장소자(44) 중에서 어디에 저장할 것인 가를 제어하는 디먹스부(Demultiplexer)(46b)를 포함한다.
바람직하기는, 제1 보조저장소자(42)에 저장되는 제1 정보(401)는 16-64 바이트(Bytes)의 범위로 설정되고, 제2 보조저장소자(44)에 저장되는 제2 정보(402)는 64-512 바이트의 범위로 설정되는데, 제2 보조저장소자(44)에 저장되는 제2 정보(402)의 크기는 제1 정보(401) 크기의 2의 배수가 된다.
예를 들면, 제1 보조저장소자(42)에 저장되는 제1 정보(401)의 크기가 16 바이트이고, 상기 16 바이트를 하나의 제1 정보(401) 블록이라고 하면, 제2 보조저장소자(44)에 저장되는 제2 정보(402)의 크기는 64바이트로 되어서 제1 보조저장소자(42)에 저장되는 제1 정보(401) 블록의 4배의 블록으로 된다.
하위기억소자(48)로부터 상기 제1 정보(401)와 제2 정보(402)가 인출되는 경우에, 상기 각 정보의 블록은 제1 보조저장소자(42)와 제2 보조저장소자(44)에 저장되는 정보 블록의 기본 단위가 된다.
바람직한 실시예로서, 이하 설명에서는 하위기억소자(48)로부터 읽혀져서 저장되는 정보 블록의 기본단위가 제1 보조저장소자(42)는 32바이트 크기가 한 개의 블록으로 되어서 정보의 기본단위가 되는 정보 블록으로서 그리고 제2 보조저장소자(44)는 상기 제1 보조저장소자(42) 크기의 4배인 128바이트 크기가 하나의 블록으로 되어서 정보의 기본단위가 되는 정보 블록으로서 설명된다.
또한, 상기 정보 블록을 구성하는 기본단위가 제1 보조저장소자(42)의 4배가 되도록 설정된 제2 보조저장소자(44)에 저장되는 제2 정보(402)는 SOC 블록이고, 제1 보조저장소자(42)에 저장되는 제1 정보(401)는 TOC 블록이다.
상기 SOC 및 TOC 블록인 제2 정보(402)와 제1 정보(401)의 크기는 바람직한 실시예로서 제1 정보(401)가 16-64바이트, 제2 정보(402)는 64-512바이트인 경우를 가정하였으나, 각 정보의 크기는 프로세서에 존재하는 캐쉬 메모리의 용량에 따라서 변화될 수 있다.
SOC 블록인 제2 정보(402)의 크기는 TOC 블록인 제1 정보(401)의 크기보다 크고, 제2 보조저장소자(44)가 저장할 수 있는 상기 제2 정보(402)의 개수는 제1 보조저장소자(42)가 저장할 수 있는 상기 제1 정보(401)의 개수보다 적도록 구성된다.
한편, 제2 보조저장소자(44)에 존재하는 SOC 블록의 수가 작으면, 하나의 캐쉬 블록에 사상(Mapping)되는 메모리 블록의 수가 증가하여 많은 캐쉬 충돌 실패(conflict miss)가 발생할 수 있다.
이러한 캐쉬 충돌 실패에 의한 캐쉬 시스템의 성능 저하를 감소시키기 위해서 제2 보조저장소자(44)의 연관도(Associativity)를 제1 보조저장소자(42)의 연관도 이상의 연관도를 가지도록 구성한다.
한편, 제1 보조저장소자(42) 및 제2 보조저장소자(44)에서 중앙제어부(40)에 의하여 참조되는 정보가 존재하는 지를 판단한다.(460 단계)
제1 보조저장소자(42)에서 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제1 정보(401)가 존재하는 경우, 중앙제어부(40)가 제1 보조저장소자(42)의 제1 정보(401)로부터 상기 정보를 참조한다.(410 단계)
중앙제어부(40)에 의하여 참조되는 정보가 제1 보조저장소자(42)에서 존재하지 않고, 제2 보조저장소자(44)에 존재하는 경우, 참조되는 제2 보조저장소자(44)의 정보 중에서, 중앙제어부(40)가 참조하는 정보를 포함하는 제1 정보(401)는 제1 보조저장소자(42)에 복사하고, 중앙제어부(40)가 제1 정보(401) 또는 제2 정보(402)로부터 정보를 참조한다.(420 단계)
이에 따라서, 상기 제1 보조저장소자(42)에 제1 정보(401)가 추가된 것을 나타내기 위하여 상기 제1 정보(401)를 포함하는 제2 정보(402)에 관한 정보를 가지는 상태저장소자(46a) 엔트리의 카운트부(61)에 저장된 카운트 값을 +1 만큼 증가시킴으로써, 상태정보를 갱신한다.
상태저장소자(46a)에서 상기 특정한 제2 정보(402)에 포함되고, 제1 보조저장소자(42)에 존재하는 제1 정보(401)의 개수를 나타내는 카운트부(61)를 가진 엔트리가 존재하지 않는 경우에는 새로운 엔트리를 할당하고, 카운트부(61)의 카운트 값을 1로 초기화한다.
상태저장소자(46a)에 대한 액세스는 중앙제어부(40)에 의하여 정보를 참조할 때, 캐쉬에서 참조실패가 발생된 경우, 참조하고자 하는 정보의 주소인 참조실패주소(600)에 의하여 수행된다.
도 6에서 도시된 바와 같이, 상태저장소자(46a)는 N개의 엔트리를 가지며, 직접 사상 캐쉬의 구조로 구성된 경우를 실시예로서 설명한다.
특정한 제2 정보(402)에 포함되고, 제1 보조저장소자(42)에 저장된 제1 정보(401)의 개수를 앤트리로서 저장하는 상태저장소자(46a)는 상기 특정한 제2 정보(402)의 주소를 이용하여 중앙제어부(40)에 의하여 액세스된다.
이에 따라서, 참조실패주소(600)의 하위 비트에서 log2BSOC (BSOC: 제2 보조저장소자의 블록크기)의 비트 수만큼을 오프셋부(65)로 하고, 그 상위 비트에서 log2N (N은 상태저장소자의 엔트리 수이다.)의 비트 수만큼의 인덱스부(64)를 이용하여 N개의 상태저장소자(46a)의 엔트리 중에서 하나의 엔트리를 선택하며, 그 상위의 나머지 비트들을 태그주소부(63)로 하여 상태저장소자(46a)의 태그부(60)에 저장한다.
중앙제어부(40)에 의하여 상태저장소자(46a)가 액세스되는 경우, 참조실패주소(600)에 의한 태그주소부(63)와, 인덱스부(64)에 의해서 선택된 상태저장소자(46a)의 엔트리에 저장된 태그부(60)를 비교함으로써 상기 선택된 엔트리가 상기 특정한 제2 정보(402)에 해당하는 앤트리인가를 판단한다.
상기 상태저장소자(46a)의 각 앤트리는 태그주소부(63)가 저장되고, 앤트리가 저장하고 있는 정보가 어떤 제2 정보(402)에 대한 것인가를 나타내는 태그부(60)와, 상기 어떤 제2 정보(402)에 포함되고, 제1 보조저장소자(42)에 저장된 제1 정보(401)의 개수를 나타내는 카운트부(61)와, 앤트리가 유효한지 무효한지를 나타내는 유무효부(62)로 구성된다.
카운트부(61)에 저장되는 카운트 값은 카운트부(61)의 카운트 값이 영 "0" 이면, 제1 보조저장소자(42)에 특정한 제2 정보(402)에 포함되는 제1 정보(401) 즉, TOC 블록이 존재하지 않는 것을 나타내는 것이고, 카운트부(61)의 값이 영 "0"이 아닌 일 "1"이상이면, 제1 보조저장소자(42)에 특정한 제2 정보(402)에 포함되는 제1 정보(401)가 상기 값에 따른 블록의 개수만큼 존재하고 있음을 나타낸다.
바람직하게는 상태저장소자(46a)의 앤트리는 최대 N개까지 구성할 수 있는데, 상기 N은 제1 보조저장소자(42)에 저장될 수 있는 제1 정보(401)의 개수이다.
제1 보조저장소자(42)와 제2 보조저장소자(44)에서 중앙제어부(40)에 의하여 참조되는 정보가 존재하지 않는 경우, 상태정보를 참조하기 위하여 상기 참조되는 정보의 주소인 참조실패주소에 의하여 상태저장소자(46a)의 카운트부(61)의 카운트 값을 판단한다.(430 단계)
상기 상태정보에 의하여, 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제1 정보(401)를 포함하는 제2 정보(402) 내에서, 참조되는 정보를 포함하지 않는 제1 정보(401)가 제1 보조저장소자(42)에 존재하는 지를 판단할 수 있다.
즉, 제1 보조저장소자(42) 내에서 중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보(402)에 포함되는 제1 정보(401)의 개수를 나타내는 상태저장소자(46a)의 카운트부(61)의 카운트 값을 검사한다.
중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보(402)에 관한 상태저장소자의 엔트리가 존재하지 않거나, 상기 카운트 값이 영 "0"이면, 제1 보조저장소자(42) 내에 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제2 정보(402)에 포함되는 제1 정보(401)가 없는 것이고, 적어도 일 "1" 이상이면, 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제2 정보(402)에 포함되는 제1 정보(401)가 적어도 한 개 존재하는 것을 나타낸다.
중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제1 정보(401)를 포함하는 제2 정보(402) 내에서, 참조되는 정보를 포함하지 않는 제1 정보(401)가 상태정보에 의하여 제1 보조저장소자(42)에 존재하는 것으로 판단되면, 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 상기 제1 정보(401)를 하위기억소자(48)로부터 인출하여 제1 보조저장소자(42)에 저장한다.(440 단계)
또한, 중앙제어부(40)가 하위기억소자(48)로부터 인출된 제1 정보(401)로부터 정보를 참조하고, 상기 제1 보조저장소자(42)에 제1 정보(401)가 복사되어서 추가된 것을 나타내기 위하여 상기 제1 정보(401)를 포함하는 제2 정보(402)에 관한 정보를 가지는 상태저장소자(46a) 엔트리의 카운트부(61)에 저장된 카운트 값을 +1 만큼 증가시킴으로써 상태정보를 갱신한다.
중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제1 정보(401)를 포함하는 제2 정보(402) 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보(401)가 상태정보에 의하여, 제1 보조저장소자에 존재하지 않는 것으로 판단되면, 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제2 정보(402)를 하위기억소자(48)로부터 인출하여 제2 보조저장소자(44)에 저장한다.(450 단계)
이에 따라서, 제2 보조저장소자(44)에 저장된 제2 정보(402) 중에서 중앙제어부(40)에 의하여 참조되는 정보를 포함하는 제1 정보(401)는 제1 보조저장소자(42)로 복사되어 저장된다.
또한, 중앙제어부(40)가 인출된 제1 정보(401) 또는 제2 정보(402)로부터 정보를 참조하고, 제1 보조저장소자(42)에 제1 정보(401)가 복사되어서 추가된 것을 나타내기 위하여 상기 제1 정보(401)를 포함하는 제2 정보(402)에 관한 정보를 가지는 상태저장소자(46a) 엔트리의 카운트부(61)에 저장된 카운트 값을 +1 만큼 증가시킴으로써 상태정보를 갱신한다.
카운트부(61)의 카운트 값은, 제1 보조저장소자(42)에 저장되는 제1 정보(401)가 중앙제어부(40)에 의하여 다른 제1 정보(401)로 교체될 때, 교체되는 제1 정보(401)를 포함하는 제2 정보(402)에 관한 정보를 가지는 상태저장소자(46a) 앤트리의 카운트부(61)의 카운트 값을 1만큼 감소시킴으로써, 특정 제2 정보(402)에 포함되는 제1 정보(401)가 제1 보조저장소자(42)에 몇 개가 존재하는 지에 관한 상태정보가 유지된다.
한편, 카운트부(61)를 이용한 판단의 기준이 되는 카운트 값은 바람직한 실시예로서, 특정 제2 정보(402)에 포함되는 제1 정보(401)가 제1 보조저장소자(42)에 존재하는 가의 여부를 나타내는 영 "0"에 의하여 판단되는 것으로 설정되었지만, 특정 제2 정보(402) 중에서 몇 개 미만의 제1 정보(401)가 제1 보조저장소자(42)에 저장되었는 가에 의하여 영 "0" 이외의 1 그리고 2 등의 자연수로 되는 값을 판단의 기준으로 설정함으로써 상기 제2 정보(402)와 제1 정보(401) 중 어떠한 정보를 하위기억소자(48)로부터 인출하여 저장할 것인가를 결정할 수 있다.
따라서 상기 판단을 위한 상한으로 설정되는 값은 1에서부터 제2 정보(402)의 블록 크기를 제1 정보(401)의 블록 크기로 나눈 몫에 해당하는 수만큼의 값 중에서 선택될 수 있으며, 바람직한 실시예로서 본 발명에서는 상기 설정되는 값이 제2 정보(402)의 블록 크기가 제1 정보(401)의 블록 크기로 나눈 몫에 해당하는 4로 된다.
한편, 계층적인 메모리 구조에 있어서, 중앙제어부(40)가 보조저장소자에서 정보를 참조하지 못하기 때문에 참조실패가 발생되는 경우, 상기 바람직한 실시예에서 중앙제어부(40)는 상태저장소자(46a)의 정보를 하위기억소자로부터 인출되는 정보의 크기를 결정하기 위한 판단의 기준으로 하였으나, 상태저장소자(46a)의 정보 대신에 하위기억소자에 중앙제어부(40)가 참조하고자 하는 정보를 포함하는 제1 정보(401) 및 제2 정보(402)가 존재하는가의 여부를 판단의 기준으로 하도록 판단 기준이 변경될 수 있다.
바람직하게는, 하위 계층 메모리 정보의 기본 단위를 구성하는 블록 또는 페이지(Page) 등으로 되는 정보 블록의 크기가 SOC 정보 블록인 제2 정보(402)보다 크거나 같은 경우로 되어야 한다.
한편, 본 발명은 바람직한 실시예로서 제1 보조저장소자(42)와 제2 보조저장소자(44)를 나누어서 구성하였지만, 다른 실시예로서, 제1 보조저장소자(42)와 제2 보조저장소자(44)를 나누지 않고 하나의 보조저장소자를 구비할 수도 있다.
상기와 같이 다른 실시예에서는, 중앙제어부(40)에 의하여 참조되는 정보를 보조저장소자에 존재하지 않아서 참조실패가 발생한 경우, 중앙제어부(40)가 참조하고자 하는 정보를 포함하는 제2 정보(402) 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보(401)가 상기 하나로 되는 보조저장소자에 존재하는 지의 여부에 따라서, 하위기억소자(48)로부터 제1 정보(401) 또는 제2 정보(402)를 선택적으로 인출하고, 제1 정보(401) 또는 제2 정보(402)를 상기 하나로 구비되는 보조저장소자에 선택적으로 저장한다.
중앙제어부(40)가 참조하고자 하는 정보가 보조저장소자에 존재하지 않아서 캐쉬 접근 실패가 발생하여 중앙제어부(40)가 참조하고자 하는 정보를 포함하는 제2 정보(402)를 인출하는 경우에, 중앙제어부(40)가 참조하고자하는 정보를 포함하는 제1 정보(401)와 다른 제1 정보(401)들은 상기 보조저장소자의 연관도에 따라서 서로 다른 교체(replacement) 상태를 가지도록 저장된다.
즉, 보조저장소자의 연관도가 2 이상이면, 중앙제어부(40)가 참조하고자 하는 정보를 포함하는 제1 정보(401)는 동일한 연관 집합에서 가장 늦게 교체되도록 교체 정보를 가지고, 나머지 제1 정보(401)들은 해당 연관 집합에서 빨리 교체되는 교체 정보를 가지도록 저장된다.
도 8은 본 발명에서 사용된 각 변수를 나타낸 도면이다. 도 9는 캐쉬 메모리의 성능 비교를 나타낸 도면이다.
도 8과 도 9에서 도시된 바와 같이, 본 발명의 캐쉬 메모리 시스템과 다른 캐쉬 메모리 시스템의 성능의 비교를 위하여 하기에서 식으로 나타낸 MCPI(Memory Cycles Per Instruction)가 사용되었으며, 도 8에 나타낸 바와 같이 캐쉬의 크기 및 구성을 변화시키면서 성능 평가를 수행하였다.
도 9에서는 Tomcatv(Type : CFP95, Total data reference : 50,139,075) Benchmark에 대한 성능 평가 결과를 보이고 있다. 도 9의 세로축은 MCPI를 나타내며, 가로축은 캐쉬 크기를 나타낸다.
각 캐쉬 메모리 크기에 해당하는 그래프에서 가장 왼쪽의 막대 그래프는 32바이트 크기의 블록을 갖는 기존 캐쉬 시스템의 MCPI를 나타내며, 나머지 4개의 막대 그래프는 TOC 블록 크기를 32 바이트로 설정하고, SOC 블록 크기를 64, 128, 256, 512 바이트로 설정한 경우의 MCPI를 보이고 있다. SOC와 TOC 블록의 크기는 전체 캐쉬 크기의 1/2로 설정하였으며, TOC 블록은 직접 사상(Direct-mapped) 캐쉬로 설정하였고, SOC 블록의 연관도는 8로 설정하였다.
MCPI = (Total number of delayed cycle due to data references)/(Total number of data references)
= (Number of miss * miss penalty)/(Total number of data references)
= miss ratio * (latency + block size / transfer_rate)
본 발명에 따르면, 캐쉬 내에 존재하는 정보의 상태에 따라서, 참조실패시에 인출되는 정보의 양을 선택적으로 결정하고, 인출된 정보 중에서 참조 확률이 높은 정보가 참조 확률이 낮은 정보보다 캐쉬 내에 오래 머물도록 선택적으로 저장함으로써 공간적 지역성과 시간적 지역성을 함께 반영하기 때문에 참조실패를 감소시키고, 이에 따라서 메모리 트래픽의 효율을 증가시켜서 메모리 시스템의 성능이 향상되는 효과가 있다.

Claims (12)

  1. (a) 중앙제어부가 참조하도록 대량의 정보를 하위기억소자에 준비하는 단계;
    (b) 상기 하위기억소자에 저장된 대량의 정보 중에서 인출되는 제1 정보가 저장되는 제1 보조저장소자 및 상기 제1 정보가 포함되는 제2 정보가 저장되는 제2 보조저장소자를 준비하는 단계; 및
    (c) 상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자 또는 제2 보조저장소자에 존재하는 지 또는 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 포함하는 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 다른 제1 정보가 상기 제1 보조저장소자에 존재하는 지의 여부에 따라서, 상기 하위기억소자로부터 제1 정보 또는 제2 정보를 선택적으로 인출하고, 상기 제1 정보 또는 제2 정보를 상기 제1 보조저장소자와 제2 보조저장소자에 선택적으로 저장하는 단계를 포함하여서 중앙제어부에 의하여 참조되는 정보를 조건에 따라 하위기억소자로부터 서로 다르게 인출하여 상기 제1 보조저장소자와 제2 보조저장소자에 선택적으로 저장하는 것을 특징으로 하는 캐쉬 메모리 운영 방법.
  2. 제1항에 있어서, 상기 (c) 단계는
    (c11) 특정한 제2 정보에 포함되고, 상기 제1 보조저장소자에 저장된 제1 정보의 개수를 나타내는 상태정보를 갖는 상태저장소자를 준비하는 단계;
    (c12) 상기 제1 보조저장소자 또는 제2 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하는 지를 판단하는 단계;
    (c13) 상기 제1 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하는 경우, 상기 중앙제어부가 상기 제1 보조저장소자로부터 상기 정보를 참조하는 단계;
    (c14) 상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자에 존재하지 않고, 상기 제2 보조저장소자에 존재하는 경우, 참조되는 상기 제2 보조저장소자의 정보 중에서 상기 중앙제어부가 참조하는 정보를 포함하는 제2 정보 내의 제1 정보는 상기 제1 보조저장소자에 복사하고, 상기 중앙제어부가 상기 제1 정보 또는 상기 제2 정보로부터 정보를 참조하며, 상기 상태정보를 갱신하는 단계;
    (c15) 상기 제1 보조저장소자와 제2 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하지 않는 경우, 상기 상태정보에 의하여 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 포함하는 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보가 상기 제1 보조저장소자에 존재하는 지의 여부를 판단하는 단계;
    (c16) 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보를 포함하는 상기 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보가 상기 상태정보에 의하여 상기 제1 보조저장소자에 존재하는 것으로 판단되면, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 상기 하위기억소자로부터 인출하여 상기 제1 보조저장소자에 저장하고, 상기 중앙제어부가 인출된 상기 제1 정보로부터 정보를 참조하며, 상기 상태정보를 갱신하는 단계; 및
    (c17) 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 포함하는 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보가 상기 상태정보에 의하여 상기 제1 보조저장소자에 존재하지 않는 것으로 판단되면, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보를 하위기억소자로부터 인출하여 상기 제2 보조저장소자에 저장하고, 상기 제2 보조저장소자에 저장되는 상기 제2 정보 중에서 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보는 상기 제1 보조저장소자로 복사하며, 상기 중앙제어부가 인출된 상기 제1 정보 또는 상기 제2 정보로부터 정보를 참조하고, 상기 상태정보를 갱신하는 단계를 포함하는 것을 특징으로 하는 캐쉬 메모리 운영 방법.
  3. 제1항에 있어서, 상기 제1 보조저장소자 및 제2 보조저장소자는 캐쉬인 것을 특징으로 하는 캐쉬 메모리 운영 방법.
  4. 제2항에 있어서, 상기 상태저장소자는 복수개의 앤트리를 구비하고,
    상기 각 앤트리는,
    상기 각 엔트리가 저장하고 있는 정보가 어떤 제2 정보에 대한 것인가를 나타내는 태그부;
    상기 제2 정보에 포함되고, 상기 제1 보조저장소자에 저장된 제1 정보의 개수를 나타내는 카운트부; 및
    상기 앤트리의 유무효를 나타내는 유무효부를 포함하는 것을 특징으로 하는 캐쉬메모리 운영 방법.
  5. 제1항에 있어서, 상기 제2 정보는 상기 제1 정보보다 그 크기가 2배의 배수인 캐쉬 블록에 해당하는 정보로 되는 것을 특징으로 하는 캐쉬 메모리 운영 방법.
  6. 제1항에 있어서, 상기 하위기억소자는 마그네틱 디스크 장치, 테이프 장치, 메모리 장치 및 캐쉬 메모리 장치 등의 그룹으로부터 선택된 기억소자인 것을 특징으로 하는 캐쉬 메모리 운영 방법.
  7. 제1항에 있어서, 상기 제1 보조저장소자 및 상기 제2 보조저장소자는
    제2 보조저장소자에 존재하는 블록의 수가 제1 보조저장소자에 존재하는 블록의 수에 비하여 보다 적도록 구비되고, 상기 제2 보조저장소자의 연관도가 제1 보조저장소자의 연관도 이상이 되도록 구성하는 것을 특징으로 하는 캐쉬 메모리 운영 방법.
  8. 제1항에 있어서, 상기 (c) 단계는
    (c21) 상기 제1 보조저장소자 또는 제2 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하는 지를 판단하는 단계;
    (c22) 상기 제1 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하는 경우, 상기 중앙제어부가 상기 제1 보조저장소자로부터 상기 정보를 참조하는 단계;
    (c23) 상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자에 존재하지 않고, 상기 제2 보조저장소자에 존재하는 경우, 참조되는 제2 보조저장소자의 정보 중에서 상기 중앙제어부가 참조되는 정보를 포함하는 제2 정보 내의 제1 정보는 상기 제1 보조저장소자에 복사하고, 상기 중앙제어부가 상기 제1 정보 또는 상기 제2 정보로부터 정보를 참조하는 단계;
    (c24) 상기 제1 보조저장소자와 제2 보조저장소자에서 상기 중앙제어부에 의하여 참조되는 정보가 존재하지 않는 경우, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보가 하위 기억소자에 존재하는 지의 여부를 판단하는 단계;
    (c25) 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보가 상기 하위기억소자에 존재하는 것으로 판단되면, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보를 상기 하위기억소자로부터 인출하여 상기 제1 보조저장소자에 저장하고, 상기 중앙제어부가 인출된 상기 제1 정보로부터 정보를 참조하는 단계; 및
    (c26) 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제2 정보가 상기 하위기억소자에 존재하지 않는 것으로 판단되면, 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제2 정보를 하위기억소자로부터 인출하여 상기 제2 보조저장소자에 저장하고, 상기 제2 보조저장소자에 저장되는 상기 제2 정보 중에서 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 상기 제1 정보는 상기 제1 보조저장소자로 복사하며, 상기 중앙제어부가 인출된 상기 제1 정보 또는 상기 제2 정보로부터 정보를 참조하는 단계를 포함하는 것을 특징으로 하는 캐쉬 메모리 운영 방법.
  9. 하위기억소자에 저장된 대량의 정보로부터 컴퓨터 시스템의 중앙제어부가 참조하는 일부 정보를 저장하는 캐쉬 메모리 시스템에 있어서,
    상기 중앙제어부가 참조하는 정보를 포함하는 제2 정보가 상기 하위기억소자로부터 인출되어서 저장되는 제2 보조저장소자;
    상기 제2 보조저장소자에 저장된 정보로부터 또는 상기 하위기억소자에 저장된 정보로부터 상기 중앙제어부가 참조하는 정보를 포함하는 제1 정보가 인출되어서 저장되는 제1 보조저장소자; 및
    상기 중앙제어부에 의하여 참조되는 정보가 상기 제1 보조저장소자 또는 제2 보조저장소자에 존재하는 지 또는 상기 중앙제어부에 의하여 참조되는 정보를 포함하는 제1 정보를 포함하는 제2 정보 내에서, 상기 참조되는 정보를 포함하지 않는 제1 정보가 상기 제1 보조저장소자에 존재하는 지의 여부에 따라서, 상기 하위기억소자로부터 상기 제1 정보 또는 제2 정보를 선택적으로 인출하고, 상기 제1 정보 또는 제2 정보를 상기 제1 보조저장소자와 제2 보조저장소자에 선택적으로 저장하도록 제어하는 제어수단을 구비하는 것을 특징으로 하는 캐쉬 메모리 시스템.
  10. 제9항에 있어서, 상기 제어수단은
    특정한 제2 정보에 포함되고, 상기 제1 보조저장소자에 저장된 제1 정보의 개수를 나타내는 상태정보를 갖는 상태저장소자; 및
    상기 상태저장소자의 상태정보에 따라서, 상기 제1 정보 또는 제2 정보를 상기 제1 보조저장소자와 제2 보조저장소자에 저장하도록 선택하는 디먹스부를 포함하는 것을 특징으로 하는 캐쉬 메모리 시스템.
  11. 제9항에 있어서, 상기 하위기억소자는 마그네틱 디스크 장치, 테이프 장치, 메모리 장치 및 캐쉬 메모리 장치 등의 그룹으로부터 선택된 기억소자인 것을 특징으로 하는 캐쉬 메모리 시스템.
  12. 제9항에 있어서, 상기 제1 보조저장소자 및 제2 보조저장소자는 캐쉬인 것을 특징으로 하는 캐쉬 메모리 시스템.
KR1019980018198A 1998-05-20 1998-05-20 캐쉬 메모리 시스템 및 그의 운영 방법 KR100272165B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019980018198A KR100272165B1 (ko) 1998-05-20 1998-05-20 캐쉬 메모리 시스템 및 그의 운영 방법
US09/315,781 US6549983B1 (en) 1998-05-20 1999-05-20 Cache memory system and method for managing the same
JP14069799A JP3899376B2 (ja) 1998-05-20 1999-05-20 キャッシュメモリシステム及びその運用方法
JP2006281546A JP2007004835A (ja) 1998-05-20 2006-10-16 キャッシュメモリの運用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980018198A KR100272165B1 (ko) 1998-05-20 1998-05-20 캐쉬 메모리 시스템 및 그의 운영 방법

Publications (2)

Publication Number Publication Date
KR19990085643A KR19990085643A (ko) 1999-12-15
KR100272165B1 true KR100272165B1 (ko) 2000-11-15

Family

ID=19537535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980018198A KR100272165B1 (ko) 1998-05-20 1998-05-20 캐쉬 메모리 시스템 및 그의 운영 방법

Country Status (3)

Country Link
US (1) US6549983B1 (ko)
JP (2) JP3899376B2 (ko)
KR (1) KR100272165B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100486240B1 (ko) * 1998-09-21 2005-06-08 삼성전자주식회사 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법
KR100594687B1 (ko) * 1998-12-24 2006-10-04 엘지전자 주식회사 휴대용단말기에서 대량의 데이타 저장 방법
DE60218758T2 (de) * 2002-11-12 2007-11-15 Zetera Corp., Irvine Kommunikationsprotokolle, -systeme und -verfahren
US8005918B2 (en) * 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US7170890B2 (en) * 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
US7742473B2 (en) * 2002-11-12 2010-06-22 Mark Adams Accelerator module
US7649880B2 (en) * 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
US7124271B2 (en) * 2003-10-14 2006-10-17 Intel Corporation Method and system for allocating register locations in a memory during compilation
US7702850B2 (en) * 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US7620981B2 (en) 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US7743214B2 (en) 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US7924881B2 (en) * 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US7814276B2 (en) * 2007-11-20 2010-10-12 Solid State System Co., Ltd. Data cache architecture and cache algorithm used therein
US8527974B2 (en) * 2008-03-28 2013-09-03 International Business Machines Corporation Data transfer optimized software cache for regular memory references
US8561043B2 (en) * 2008-03-28 2013-10-15 International Business Machines Corporation Data transfer optimized software cache for irregular memory references
US8561044B2 (en) * 2008-10-07 2013-10-15 International Business Machines Corporation Optimized code generation targeting a high locality software cache
US8250303B2 (en) * 2009-09-30 2012-08-21 International Business Machines Corporation Adaptive linesize in a cache
CN104809076B (zh) * 2014-01-23 2018-02-06 华为技术有限公司 Cache的管理方法及装置
US10942874B2 (en) * 2018-03-27 2021-03-09 Samsung Electronics Co., Ltd. Methods and systems that manage fetching of commands by a controller from queues of a host
CN109542909B (zh) * 2018-11-25 2023-04-14 北京博艺网讯科技有限公司 识别大数据存储系统中的关联性存储设备的方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
US6202125B1 (en) * 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US5909697A (en) * 1997-09-30 1999-06-01 Sun Microsystems, Inc. Reducing cache misses by snarfing writebacks in non-inclusive memory systems

Also Published As

Publication number Publication date
JP3899376B2 (ja) 2007-03-28
KR19990085643A (ko) 1999-12-15
JP2000066952A (ja) 2000-03-03
JP2007004835A (ja) 2007-01-11
US6549983B1 (en) 2003-04-15

Similar Documents

Publication Publication Date Title
KR100272165B1 (ko) 캐쉬 메모리 시스템 및 그의 운영 방법
US6766419B1 (en) Optimization of cache evictions through software hints
EP1149342B1 (en) Method and apparatus for managing temporal and non-temporal data in a single cache structure
EP0780769B1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
US5584013A (en) Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
US6826651B2 (en) State-based allocation and replacement for improved hit ratio in directory caches
US4463424A (en) Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US6223256B1 (en) Computer cache memory with classes and dynamic selection of replacement algorithms
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
EP1654660B1 (en) A method of data caching
US7584327B2 (en) Method and system for proximity caching in a multiple-core system
US7844778B2 (en) Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
EP0780770A1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
US7590804B2 (en) Pseudo least recently used replacement/allocation scheme in request agent affinitive set-associative snoop filter
EP0667580A2 (en) Cache System for a memory
US20070130237A1 (en) Transient cache storage
US6625694B2 (en) System and method for allocating a directory entry for use in multiprocessor-node data processing systems
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
US7093075B2 (en) Location-based placement algorithms for set associative cache memory
US8473686B2 (en) Computer cache system with stratified replacement
CN109074313B (zh) 缓存和方法
EP0058846B1 (en) Multiprocessing system with variably shared paging storage
US7143239B2 (en) Cache structure and methodology
JP3078303B2 (ja) キャッシュメモリ制御回路

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120801

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20130731

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20140731

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 17

LAPS Lapse due to unpaid annual fee