KR20070005729A - 전력 소모를 줄이기 위해 캐시 관리 정책을 이용하는디스크 드라이브를 구비한 장치 - Google Patents

전력 소모를 줄이기 위해 캐시 관리 정책을 이용하는디스크 드라이브를 구비한 장치 Download PDF

Info

Publication number
KR20070005729A
KR20070005729A KR1020067024561A KR20067024561A KR20070005729A KR 20070005729 A KR20070005729 A KR 20070005729A KR 1020067024561 A KR1020067024561 A KR 1020067024561A KR 20067024561 A KR20067024561 A KR 20067024561A KR 20070005729 A KR20070005729 A KR 20070005729A
Authority
KR
South Korea
Prior art keywords
data block
data
cache
blocks
data blocks
Prior art date
Application number
KR1020067024561A
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 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20070005729A publication Critical patent/KR20070005729A/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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
    • 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
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/12Replacement control
    • 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
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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

전력 소모를 줄이기 위해 캐시 관리 정책을 이용하는 디스크 드라이브를 구비한 장치{APPARATUS WITH DISC DRIVE THAT USES CACHE MANAGEMENT POLICY TO REDUCE POWER CONSUMPTION}
본 발명은 디스크 드라이브를 갖는 정보 처리장치, 특히 이와 같은 장치에 의한 전력 소모의 저감에 관한 것이다.
현대의 전자장치에서, 그리고 특히 배터리 작동 장치에서는, 저에너지 소모가 중요한 설계 국면이 된다. 디스크 드라이브를 구비한 장치에서는, 광 디스크 드라이브의 경우에 모터 및 레이저 등의 디스크 드라이브의 부품들을, 예를 들어 이들 부품에 대한 모든 또는 거의 모든 전원 전류를 차단하여, 비활성화시킴으로써 에너지 소모를 줄일 수 있다. 예를 들어 컴퓨터 프로그램의 실행으로 인해, 디스크 드라이브가 판독 요청을 처리해야 하는 경우에는, 데이터가 메모리에 판독될 때까지 디스크 드라이브의 관련 부분이 임시적으로 활성화된다. 정보가 메모리에 기억되면, 디스크 드라이브의 전술한 부분들이 비활성화되고, 프로그램은 메모리에서 얻어진 정보를 사용하여 실행된다. 다수의 응용 프로그램이 너무 많은 데이터를 요구하여, 정보가 사전에 실제적인 크기의 메모리에 모두 로드될 수 없다. 이와 같은 경우에, 컴퓨터 코드의 실행을 위해 필요한 추가 데이터를 로드하기 위해 디스크 드라이브의 판독부들이 반복적으로 활성화된다.
특정한 데이터를 디스크에서 판독해야 하는 회수를 최소로 하기 위해 캐싱 기술이 사용될 수도 있다. 처리된 데이터의 전체량이 캐시 메모리 크기보다 크면, 캐시 관리가 필요한데, 이것은 (다른 데이터에 의해 덮어쓴) 캐시에서 폐기하고자 하는 데이터 블록의 선택을 포함한다. 이러한 폐기가능한 데이터 블록을 선택하는 다양한 캐시 관리 정책이 알려져 있으며, 가장 널리 알려진 것은 LRU(Least Recently Used) 정책으로, 이것은 다른 데이터 블록을 위해 메모리 공간이 필요할 때 가장 오래전에 사용된 메모리 블록을 폐기하는 것을 포함한다.
가장 진보된 캐시 관리 정책은 프로파일을 이용하여 프로그램의 실행중에 사용될 데이터 블록을 예측한다. 프로파일 작업, 즉 프로파일의 수립은, 프로그램의 실행중에 어떤 데이터 블록들이 사용되고 어떤 순서로 데이터 블록들이 사용되는가를 기록하는 것과, 프로그램의 반복된 실행으로부터 통계 데이터를 계산하는 것을 포함한다. 이러한 프로파일 기반의 캐시 관리 정책에서는, 캐시 부적중, 프로그램에 의해 필요할 때 데이터 블록이 캐시에 존재하지 않는 프로그램의 실행 도중의 순간을 최소화하도록 폐기가능한 데이터 블록이 선택된다. 보통, 프로파일로부터 데이터 블록이 재사용되지 않는 것으로 예측되면 데이터 블록이 메모리에서 폐기되며, 또는 메모리에 있는 모든 데이터 블록이 재사용될 것으로 예측되면, 사용될 것으로 예측되는 데이터 블록이 폐기되는데, 이것은 시간 경과시 최대의 공간을 남기기 때문이다. 따라서 데이터 블록을 디스크에서 인출해야 하는 회수가 최소로 된다.
일부의 디스크 드라이브, 특히 일부의 광 디스크 드라이브는 한번에 다량의 단위로 데이터를 판독하도록 구성된다. 보통, 데이터는 소위 단편들로 판독된다. 단편은 예를 들면 단편당 2 메가바이트로 디스크 상에 연속으로 배치되는 소정의 다수의 데이터 블록을 포함한다. 헤드가 적절히 위치하면, 큰 단편을 판독함으로써 바이트당의 탐색 부하가 줄어든다. 광 디스크 드라이브의 아키텍처는, 예를 들어, 헤드 탐색 동작을 사용된 시간면에서 비용이 매우 많이 들게 한다. 피크 전력에서 디스크 드라이브가 동작할 필요가 있는 시간이 줄어드므로, 큰 단편의 사용은 프로그램의 실행의 개시시에 전력 소모를 줄인다. 그러나, 단편이 실제로 필요한 것보다 훨씬 많은 데이터를 포함하면, 소정의 크기를 갖는 단편의 프로그램의 실행중의 인출이 비효율적인 것으로 간주된다.
무엇보다도, 본 발명의 목적은, 디스크 드라이브를 구비한 장치에서 프로그램의 실행중에 에너지 소모를 감소시키는 것이다.
본 발명에 따른 장치는 청구항 1에 청구되어 있다. 본 발명에 따르면, 캐시 메모리에 유지되지 않을 데이터 블록들을 선택하여 인출해야 하는 인출 유니트들의 수를 줄이는 캐시 관리 정책이 사용된다. 인출 유니트를 인출하여 블록을 얻어야 할 때 근본적으로 추가적인 전력 소모가 없이 추가적인 블록들을 적재할 수 있는 가능성으로부터 이득을 얻기 위해 큰 다중블록 인출 유니트 크기(디스크에서 한번에 인출하는 데이터 블록의 최소수)를 이용한다. 비유지(non-retention)를 위한 데이터 블록들의 선택은 한 개의 인출 유니트에서 다음번의 사용을 위해 함께 인출될 수 있는 데이터 블록들의 조합쪽으로 치우친다. 인출 유니트들의 인출 사이에서, 디스크 드라이브가 판독 모드로부터 전력 절약 모드로 전환되어, 디스크 드라이브 의 적어도 일부가 비활성화되므로, 에너지 소비가 줄어든다. 여기에서 사용되는 데이터 블록을 유지하지 않는다는 것은 캐시 메모리에 데이터 블록을 오버라이트하는 것과 첫째로 캐시 메모리에 데이터 블록을 기록하지 않는 것을 포함한다. 선택된 데이터 블록은 캐시 메모리에 유지되어 나머지 데이터 블록을 위한 자리를 만든다.
유지는 데이터 블록의 균질도(granularity)에서, 즉 인출 유니트의 레벨 아래에서 관리된다. 따라서 블록들의 예측된 필요에 의존하여, 인출 유니트의 일부 데이터 블록이 유지되는 한편 동일한 인출 유니트로부터의 나머지 데이터 블록들이 유지되지 않도록 선택된다. 본 발명에 따르면, 비유지로 선택된 데이터 블록은 인출되어야 하는 인출 유니트의 수를 줄이기 위해 선택된다. 동일한 인출 유니트로부터의 블록들의 조합이 한번의 시도로 다음 사용 전에 함께 인출될 수 있으면, 이들 블록이 유지되지 않으며, 그 결과 복수의 나머지 인출 유니트에서의 나머지 블록이 블록들의 조합 대신에 유지될 수 있다. 이것을 실현하기 위해, 캐시 관리부가 언제 데이터 블록이 사용되는지의 예측을 이용한다. 유지되지 않는 특정한 데이터 블록을 선택할 때, 캐시 관리부는 특정한 데이터 블록과 같은 인출 유니트로부터의 다른 데이터 블록이 캐시 메모리에 있는지 여부와 이들 다른 데이터 블록이 언제 사용될 것으로 예측되는지를 고려한다.
일 실시예에서는, 동일한 인출 유니트로부터의 제 2 데이터 블록이 캐시 메모리에 존재하지 않는 것으로 검출되고 제 1 데이터 블록이 다음에 필요하기 전에 제 2 데이터 블록이 필요하게 될 것으로 예상되면 제 1 데이터 블록이 유지되지 않는다. 이와 같은 경우에는 제 1 데이터 블록을 유지하지 않은 것이 인출 유니트의 추가적인 인출을 일으키지 않아 다른 데이터 블록이 유지되지 않으면 인출되어야 할 다른 인출 유니트로부터의 다른 데이터 블록보다는 제 1 데이터 블록을 폐기하여 전력을 절감할 수 있을 것으로 예측될 수 있다.
다른 실시예에서는, 그룹으로부터의 데이터 블록이 다른 인출 유니트로부터의 다른 데이터 블록이 필요한 미래의 시간 간격에 필요하지 않을 것으로 예측되면, 동일한 인출 유니트로부터의 데이터 블록의 그룹이 유지되지 않도록 선택된다. 그룹이 클수록, 데이터 블록들의 그룹을 검색하기 위해 단지 한 개의 인출 유니트를 인출하는 대가로, 이들 다른 데이터 블록을 캐시에 기억하기 위해 캐시 메모리에 더 많은 공간이 생성된다. 그룹이 선택된 후에, 이 그룹으로부터의 모든 데이터 유니트들이 즉시 폐기될 필요는 없다. 일부는 미래의 시간 간격 전에 필요할 수도 있으며, 이것들이 이 시간 간격 전에 최종적으로 사용될 것으로 예측되는 경우에만 폐기될 필요가 있지만, 그룹으로부터의 제 1 데이터 블록만이 폐기되면, 인출 유니트로부터 다시 인출하는 것에 회로가 전념을 하게 되어, 미래의 시간 간격 후에만 필요할 것으로 예측되면, 이 그룹으로부터의 나머지 데이터 블록은 전력 소모의 불이익이 없이 폐기될 수 있다.
일 실시예에서는, 캐시 관리부가, 캐시 메모리에 있는 데이터 블록의 인출 유니트가 다시 인출될 것으로 예측되는 시간에 대한 정보를 유지한다. 폐기된 데이터 블록이 다시 사용될 것으로 예측되는 시간이 인출 유니트의 이전에 예상된 인출 시간 이전이면, 이 정보가 예를 들면 인출 유니트로부터의 데이터 블록이 폐기되었을 때마다 갱신될 수 있다. 이러한 종류의 타이밍 정보는, 모든 캐시에 기억되는 데이터 블록마다, 또는 데이터 블록이 캐시에 위치할 때 사용되는 모든 인출 유니트마다 기억되어도 된다. 이 정보 폐기하기 위한 데이터 블록의 선택 시간을 데이터 블록의 재사용의 다음의 예측 시간과 비교하여, 다음의 예측 시간이 데이터 블록을 포함하는 인출 유니트의 예상된 인출 시간보다 늦으면, 전력 소모 불이익을 초래하지 않고 데이터 블록이 폐기될 수도 있다.
일 실시예에서는, 캐시 관리부가 프로그램의 실행중에 나중에 필요하게 되는 데이터 블록들을 예측하여, 추가 데이터 블록이 나중에 필요할 것으로 예측되면, 인출 유니트로부터의 이들 선택된 추가 데이터 블록들을 인출 유니트로부터 캐시 메모리로 복사한다. 이와 같은 경우에 유지될 것으로 선택되지 않은 데이터 블록은 캐시에 전혀 기억되지 않는다. 복사되는 선택 부분은 연속된 데이터 블록들에 한정될 필요가 없기 때문에, 사용될 것으로 예측되지 않는 중간 데이터 블록은 복사될 필요가 없다. 이에 의해 디스크 드라이브가 전력 절감 모드로부터 전환될 필요가 있는 횟수가 최소화되어, 전력 소모를 최소로 한다.
일 실시예에서는, 나중에 필요할 것으로 예측되는 캐시에 기억된 데이터 블록들로부터 폐기가능한 데이터 블록을 선택할 때, 캐시 관리부는, 캐시에 기억된 데이터 블록들 중에서 적어도 한 개가 이 데이터 블록들의 적어도 한 개 전에 필요할 것으로 예측되는 추가 데이터 블록으로서 디스크 상의 동일한 인출 유니트에 기억되는지 여부를 검출하고, 기억된 경우에는, 데이터 블록들의 적어도 한 개를 폐기하는 쪽을 선택한다. 따라서, 전력 소모를 증가시키지 않고도, 데이터 블록을 캐시에 유지하기 위한 더 큰 빈 공간을 사용할 수 있다.
바람직하게는, 상기한 예측은, 장치에서 판독동작을 일으키는 컴퓨터 프로그램의 실제 실행으로부터 얻어지는 프로파일 정보에 근거한다. 이에 따르면, 더욱 신뢰성이 큰 예측이 얻어져, 전력 소모를 최소로 한다.
추가적인 실시예에서는, 인출 유니트들 중에서 제 1 인출 유니트를 인출하여 제 1 데이터 블록을 얻은 후, 인출 유니트의 제 2 인출 유니트를 인출하여 제 2 블록을 얻은 것으로 검출시에, 디스크 위의 블록들의 적어도 한 개가 재할당된다. 이와 같은 경우에는 블록들이 자동으로 디스크 상에 재배치되어 제 1 및 제 2 데이터 블록이 디스크 상의 공통된 단편으로 저장된다. 이에 따르면 디스크 드라이브가 전력 절약 모드에서 전환도리 필요가 있는 횟수를 최소로 한다.
본 발명의 이들 목적 및 다른 목적과 이점을 다음의 도면을 사용하여 본 발명의 일 실시예의 설명에서 기술한다.
도 1은 데이터 처리장치를 나타낸 것이다.
도 2는 응용 프로그램과 디스크 레이아웃을 나타낸 것이다.
도 3a∼도 3c는 캐시 계획수립 알고리즘의 동작을 예시한 것이다.
도 1은 데이터 처리장치를 나타낸 것이다. 이 장치는 디스크 드라이브(10), 캐시 메모리(12), 프로세서(14), 캐시 관리부(16) 및 전원회로(18)를 구비한다. 디스크 드라이브(10)는 디스크(100)(예를 들면 교체가능한 광 디스크), 모터(102), 판독 헤드(104)와 제어회로(106)를 구비한다. 더욱이, 디스크 버퍼 메모리(108)가 설치된다. 캐시 관리부(16)는 제어회로(106)의 제어 입력에 접속된다. 디스크 드라이브(10)의 데이터 출력은 디스크 버퍼 메모리(108)의 입력에 접속되고, 이 디스크 버퍼 메모리는 캐시 메모리(12)에 접속되고, 캐시 메모리는 어드레스/데이터 버스를 통해 프로세서(14)에 접속된다. 캐시 관리부(16)는 디스크 버퍼 메모리(108), 캐시 메모리(12) 및 전원회로(18)에 접속된 제어 출력을 갖는다.
전원회로(18)는 버퍼 메모리(108), 캐시 관리부(16), 캐시 메모리(12) 및 프로세서(14)에 접속된 제 1 출력과, 모터(102), 판독 헤드(104) 및 디스크 드라이브(10)의 제어회로(106)에 접속된 제 2 출력을 갖는다.
동작시에, 프로세서(14)는 디스크(100)에서 데이터를 요구하는 응용 프로그램을 실행한다. 디스크 드라이브(10)는 디스크(100)로부터 디스크 버퍼 메모리에 한번에 한 개의 단편을 적재한다. 단편은 예를 들면 디스크 상의 나선형 데이터 트랙을 따라 디스크 상에 거의 연속적으로 저장된 데이터를 포함한다("거의"란 동기 데이터, 헤더 데이터 등의 관리정보도 존재할 수 있다는 것을 의미한다). 단편의 크기는 프로세서(14)가 요구하는 데이터의 길이보다 훨씬 길며, 예를 들면 2 메가바이트의 데이터이다.
도 1의 실시예에서는, 캐시 관리부(16)가 데이터의 인출을 제어한다. 캐시 관리부(16)가 응용 프로그램의 실행중에 특정한 데이터 블록이 필요하고 이 데이터 블록이 캐시 메모리(12)에 존재하지 않는 것으로 검출하거나 예측할 때, 캐시 관리부(16)는 전원회로(18)에 신호를 보내 디스크 드라이브(10)와, 특히 모터(102), 판독 헤드(104) 및 회로(106)에의 전원공급을 활성화한다. 그후, 캐시 관리부(16)는 디스크 드라이브(10)에 명령을 보내 데이터 블록을 포함하는 단편을 인출하여, 디스크 드라이브(10)가 단편을 적재하고 그것을 디스크 버퍼 메모리(108)에 기억한다. 단편이 판독된 후, 캐시 관리부(16)는 전원회로에 신호를 보내 디스크 드라이브(10)에의 전원공급을 중단한다.
도 1의 실시예에서는 캐시 관리부(16)가 디스크 버퍼 메모리(108)에 있는 단편으로부터의 필요한 데이터를 캐시 메모리(12)에 복사하게 한다. 모든 데이터가 필요하지 않을 때에는, 캐시 관리부(16)가 단편으로부터의 모든 데이터를 복사되게 하지 않는다. 캐시 관리부(16)는 캐시 블록당 캐시에 데이터의 식별을 유지하도록 배치되어, 데이터 블록들 전체가 캐시에 적재되고 캐시에서 폐기된다. 캐시 관리부(16)는 프로세서(14)에 의해 실행하는데 필요할 것으로 예측되는 데이터를 포함하는 데이터 블록들만을 복사한다.
다른 실시예에서는 프로세서(14)가 디스크 버퍼 메모리(108)에서 직접 데이터 블록들의 일부를 액세스할 수 있다. 본 실시예에서는 단편이 나중에 적재된 단편에 의해 디스크 버퍼 메모리(108)에 덮어쓰여졌을 때, 데이터 블록이 응용 프로그램의 실행중에 나중에 필요할 것으로 예측되는 경우에만, 캐시 관리부(16)가 데이터 블록을 디스크 버퍼 메모리(108)에서 복사한다. 유사한 실시예들은, 단편들을 위한 추가 버퍼 메모리들을 포함하며, 여기에서 데이터가 캐시 메모리(12)로 복사되어, 이 데이터가 덮어쓰여지는 것을 방지한다.
캐시 메모리(12)는 디스크 드라이브(10)가 동일한 단편을 적재하도록 활성화될 필요가 있는 횟수를 줄이는데 사용된다. 보통, 캐시 메모리(12)의 크기는 응용 프로그램의 실행 중에 프로세서(14)에 의해 사용되는 디스크(100)로부터의 모든 데이터(또는, 프로세서(14)가 단편 버퍼 메모리를 액세스하는 실시예에서는, 버퍼 메모리에 덮어쓰여진 후에 사용되는 데이터의 전체 볼륨)를 한번에 기억하는데 불충분하다. 이것은, 빈 공간을 만들기 위해서는, 캐시 메모리(12)에 있는 데이터가 나중에 필요한 데이터에 의해 덮어 쓰여져야 하며, 그 결과 디스크 드라이브(10)가 덮어쓰여진 데이터를 다시 적재하도록 활성화되어야 한다는 것을 의미한다.
디스크 드라이브(10)가 활성화될 필요가 있는 횟수를 최소로 하기 위해, 캐시 관리부(16)는 먼저 사용될 것으로 예측되는 단편으로부터의 선택된 데이터 블록으로 캐시 메모리(12)에 복사되는 데이터 블록들을 제한한다. 다음으로, 캐시 관리부(16)는 데이터 블록이 덮어쓰여지는 위치들을 선택하여, 추가적인 단편들을 적재하는 희생으로 나중에 필요하게 되는 데이터 블록들의 덮어쓰기를 최소로 한다.
프로세서(14)가 캐시 메모리에 기억되지 않은 데이터 블록을 요구할 때에는, 캐시 관리부(16)가 데이터 블록이 디스크(100)에서 적재되게 한다. 데이터 블록을 사용하여 전체 단편이 적재된다. 캐시 관리부(16)는 응용 프로그램의 실행중에 필요할 것으로 예측되는 이 단편에 있는 추가 데이터 블록들이 존재하는지를 결정한다. 그런 경우에는, 캐시 관리부(16)가 이들 추가 데이터 블록들이 캐시 메모리(12)에 복사되게 한다. 이에 따르면, 디스크 드라이브(10)에 의해 제공된 큰 단편 크기로 이해, 다른 데이터 블록들을 적재하는 부대 효과로서 데이터 블록이 적재된다는 사실을 이용한다.
이 부대효과로 인해 캐시 메모리에 데이터 블록들이 적재된다는 사실을 사용 하여 덮어쓰여질 수 있는 데이터 블록들의 선택을 안내한다. 캐시 관리부(16)가 데이터 블록이 나중의 사용전에 부대 효과로서 적재된다는 것을 예측할 때, 캐시 관리부(16)는 캐시 메모리(12)에서 이 데이터 블록을 폐기하여, 필요한 경우에는 나중의 데이터 블록을 위한 빈 공간을 생성한다.
도 2는 응용 프로그램과 이 응용 프로그램에 의해 사용되는 데이터 블록들을 모식적으로 나타낸 것이다. 프로그램은 디스크(100)에서 데이터를 요구하는 파일 모듈들(20a∼e)을 포함한다. 모듈(20a∼e)에 의해 요구되는 데이터는 모듈(20a∼e) 내부에 블록으로 표시하였다. 이 도면에는 또한 모듈에 의해 사용되는 데이터가 저장되는 디스크(100)로부터의 다수의 단편(21a∼d)이 도시되어 있으며, 이 단편(21a∼d) 내부에는 모듈들(20a∼e)에 의해 사용되는 데이터의 다양한 클러스터들이 표시되어 있다.
동작시에, 모듈들(20a∼e)이 활성으로 되는 순서는 사용자 입력 등의 외부 인자에 의존한다. 캐시 메모리(12)가 3개의 데이터 블록에 대한 용량을 갖는 간단한 예에 대해 다음 표를 사용하여 동작을 예시한다.
필요한 블록 단편 캐시 블록 1 캐시 블록 2 캐시 블록 3
24a 21b 24a 24b 24c
26a 21c 24a 26a 26b
24a - 24a 26a 26b
22 21a 22 26a 26b
26b - 22 26a 26b
24b 21b 24a 26a 24b
24a - 24a 26a 24b
26a - 24a 26a 24b
첫 번째 열은 프로그램의 실행에 필요한 데이터 블록들이 나타나 있다. 연속적인 행들은 연속적으로 필요한 데이터 블록을 표시한다. 두 번째 열은 필요한 경우에 첫 번째 열의 데이터 블록을 얻기 위해 캐시 관리부(16)가 디스크 드라이브(10)로 하여금 적재하게 하는 단편들을 나타낸다. 다음의 열들은 단편을 적재한 후에 캐시 메모리(12)에 위치하는 데이터 블록을 나타낸다.
알 수 있는 것과 같이, 해당 데이터 블록이 이미 캐시 메모리(12)에 있을 때에는, 일부 행에서 단편이 적재될 필요가 없다. 단편이 적재될 필요가 없을 때마다 디스크 액세스 전력 소모가 필요가없다. 블록 22가 적재되는 행에 주목하기 바란다. 여기에서는 블록 24a가 다시 필요하기 전에 블록 24b를 적재하는 부대 효과로서 블록 24a가 적재되므로, 블록 24a가 마찬가지로 캐시 메모리(12)에 있는 블록 26b 이전에 필요하더라도, 캐시 관리부(16)는 캐시 메모리(12)에서 블록 24a를 폐기하도록 결정한다.
어떤 데이터 블록이 복사되고 또는 캐시 메모리(12)에 유지되어야 하는가를 결정하기 위해, 캐시 관리부(16)는 응용 프로그램의 실행중에 프로세서(14)에 의해 요구되는 데이터 블록의 예측을 사용한다. 응용 프로그램이 블록을 동일한 순서로 항상 요구할 때에는, 캐시 관리부(16)가 프로그램 실행중의 데이터 블록에 대한 액세스 순서를 표시하는 프로파일을 사용하여 예측을 실현한다(표의 가장 좌측의 열을 효과적으로 기록한다). 이 프로파일은 프로그램과 함께 제공되거나, 프로그램의 최초 실행중에 기록된다. 후속하는 실행중에, 기록된 순서를 이용하여 데이터 블록이 요구되는 시기를 예측한다.
데이터 블록이 나중에 사용되기 전에 부대 효과로서 적재되기 때문에, 캐시 관리부(16)는 폐기할 블록을 선택하기 위해 다수의 알고리즘에서 어떤 한 개를 사용할 수 있다. 일 실시예에서는, 캐시 관리부(16)가 프로파일에 따른 단편 인출을 위한 에너지 소모를 최소로 하는 캐시기억 계획을 탐색한다. 탐색은 실행시간에, 프로그램의 실행중에, 또는 프로그램의 실행후에 수행된다. 다른 실시예에서는, 캐시 관리부(16)가 단순히 페기되는 데이터 블록을 선택하기 위해 선택 규칙을 적용하며, 이때 선택 규칙은 데이터 블록들이 부하가 거의 없이 단편의 일부로서 함께 인출될 수 있다는 사실을 고려한다.
도 3a 및 도 3b는 선택 알고리즘의 동작을 예시하는데 이용된다. 수평 라인들(33a,b, 34a,b, 35a,b, 36a,b)은 각각 데이터 블록을 표시한다. 단편은 라인들(33a,b, 34a,b, 35a,b, 36a,b)의 연속적인 쌍들에 해당한다. 프로그램 실행중의 시간 "T"는 좌측으로부터 우측으로 표시된다. 라인들 위에 있는 십자 표시들(30)(예시적인 십자 표시들만이 참조번호로 라벨이 붙여져 있다)은 데이터 블록들로부터의 데이터의 사용 시점을 표시한다(다른 데이터 블록의 사용에 의해 중단되지 않은 연속적인 사용은 단일 십자표시로 표시한다). 한번보다 많이 사용되지 않은 데이터 블록은 캐시 메모리에 영향을 미치지 않으므로 도면에서 생략하였다.
일부의 데이터 블록은 서로 다른 시점에 한번보다 많이 사용된 것으로 도시되어 있어, 이들 시점 사이에서 이들 데이터 블록을 캐시 메모리(12)에 유지하는 것이 유리하게 만든다. 이것을 도 3a에는, 동일한 데이터 블록에서의 데이터가 사용되는 서로 다른 시점들 사이의 시간 간격을 실선 단편 32a∼f로 도시하여 표시하 였다.
캐시 메모리(12)에 존재하는 저장용량보다 더 많은 데이터 블록들을 유지해야 한다면, 잠정적인 캐시 충돌이 존재한다. 중첩하는 실선 단편들(32a∼f)의 수가 캐시 용량을 초과하는 시점들에 대해서는 잠정적인 캐시 충돌이 존재한다. 캐시 계획수립은, 캐시 메모리(12)에서 데이터를 폐기하도록 하는 결정, 즉, 각각의 데이터 블록이 나중에 필요하기는 하지만, 캐시에 유지되지 않는 동안의 시간 단편들(32a∼f)의 선택을 포함한다.
예를 들어, 캐시가 4개의 블록을 위한 용량을 갖고 있다고 가정하면, 구간 32a의 시작에서부터 충돌이 존재한다는 것을 알 수 있다. 종래의 "가장 오래전에 사용된" 캐시 관리 알고리즘에 따르면, 라인 33a에 대응하는 블록이 폐기될 것이고, 그후 구간 32f의 시작시에 라인 34a에 대응하는 블록이 폐기된다. 그 결과 폐기의 결과로써 (라인의 쌍 33a,b 및 34a,b에 각각 대응하는) 2개의 단편들이 다시 인출되어야 할 것이다. 최후에 사용되는 데이터 블록들을 폐기하는 알고리즘을 사용하여 이와 유사한 결과가 얻어질 것이며, 이 경우에는 라인 33a, 34a에 대응하는 블록들도 폐기될 것이다.
도 3b는 다수의 데이터 블록이 동일한 단편의 일부이면 이들 다수의 데이터 블록들이 추가적인 비용을 희생하지 않고 인출된다는 사실을 캐시 기억부(16)가 고려할 때 발생하는 것을 나타낸 것이다. 라인 35a,b에 대응하는 데이터 블록들을 폐기하는 다른 폐기 선택이 행해진다. 그 결과, 원 38로 나타낸 것과 같이, 라인 35b에 대응하는 데이터 블록이 인출될 때, 라인 35a에 대응하는 데이터 블록은 캐시 메모리(12)로 복귀된다. 구간 32c,d 중에, 이들 구간을 표시하는 라인들을 빗금을 그어 나타낸 것과 같이, 이들 데이터 블록이 캐시 메모리에서 필요하지 않다. 그 결과, 라인 36a,b에 대응하는 데이터 블록에 대해 캐시 메모리(12)에 충분한 빈 공간이 존재하며, 라인 33a, 34a에 대응하는 데이터 블록들을 폐기할 필요가 없다. 라인 35a,b에 대응하는 데이터 블록들은 동일한 단편에 위치하므로, 이들 데이터 블록에 대해 단지 한번의 재인출이 필요하다. 다른 원들은 동일한 단편으로부터 다른 데이터 블록과 함께 캐시 메모리(12)에 초기에 데이터 블록이 적재되는 시가를 표시한다.
캐시 관리부(16)는 검색 알고리즘을 사용하여 폐기될 데이터 블록을 선택할 수도 있다. 이 알고리즘은, 캐시 용량이 초과되지 않는다는 제약하에서, 인출해야 하는 블록의 총수와 같은 비용함수의 최소화를 포함한다. 이 알고리즘은 특정한 시간 간격 동안 재사용될 수도 있는 캐시 메모리 위치를 갖는 블록을 검색한다. 검색 알고리즘이 선택하는 시간 간격은 블록이 사용되는 한 시점으로부터 블록이 다시 사용되는 다음 시점까지 진행된다. 즉, 시간 간격은 시간 간격 32a∼f이다. 검색 알고리즘이 시간 간격 32a∼f 동안 캐시 메모리에 블록을 유지하지 않기로 선택하였을 때에는, 이 시간 간격은 "비활성"으로 불린다. 나머지 시간 간격은 활성으로 불린다. 따라서 더욱 공식적으로는, 검색 알고리즘은 어느 한 시점에서의 활성 시간 간격의 수가 캐시 용량을 넘지 않도록 비활성 시간 간격의 집합을 검색하여, 비활성 시간 간격의 수가 최소가 된다.
제약하에서 어떤 기준을 최적화하는 해결책을 검색하는 검색 알고리즘은, 최 적의 해결책을 찾도록 보장하는 검색의 형태와, 단지 양호한 해결책을 찾을 것처럼 보이는 대략적인 검색의 형태의 2가지 형태로 알려져 있다. 이와 같은 기술의 어느 것도 이용할 수 있다. 본 발명에 따르면, 이와 같은 검색 알고리즘을 적용하여, 캐시 용량이 넘지 않는다는 제약하에서, 인출해야 하는 블록의 총수와 같은 비용함수를 최소로 하기 위해 폐기할 블록을 검색한다.
이와 같은 검색 알고리즘의 일 실시예는 시간 간격들을 한 번들(bundles)로 선택한다, 특정한 시점에 종료하는 특정한 데이터 블록에 대한 시간 간격이 비활성이 되도록 선택되었을 때, 이 시점을 커버하는 동일한 단편에 있는 나머지 블록들에 대한 시간 간격이 이 시점에서 분할된다. 그 시점까지 진행하는 시간 간격의 부분들도 비활성이 되도록 선택된다. 이것은, 특정한 블록이 특정한 시점에서 적재될 때, 나머지 블록도 마차가지로 적재되어, 이들 데이터 블록이 이 시점과 그들의 최종의 이점 사용(또는 그것들의 초기 적재) 사이의 시간 간격에서 캐시 메모리에 유지될 필요가 없다는 사실을 설명한다.
도 3c는 구간들의 번들의 선택을 나타낸 것이다. 구간 32a∼f는 동일한 단편으로부터의 다른 데이터 블록들로부터의 데이터가 사용되는 시점에서 분할되었다(즉, 구간 32d의 시작 및 종료시에 구간 32a를 분할한다). 특정한 각각의 데이터 블록에 대해, 특정한 데이터 블록이 먼저 사용되기 전에 동일한 단편으로부터의 다른 데이터 블록으로부터의 데이터가 사용되는 시점들로부터 추가적인 구간이 추가된다.
한 개의 번들은 특정한 블록과 이 블록으로부터의 데이터가 사용되는 시점과 1 대 1 관계를 갖는다. 번들은, 그 시점에서 종료하는 특정한 블록과 동일한 단편으로부터의 블록들의 추가적인 모든 구간들을 포함하며, 추가적인 구간에 대응하는 블록이 이전에 최종 사용된 최종 시점에서 연장된다. 번들의 예는 라인 35a의 블록이 사용되는 구간 39g의 종료시의 시점에 해당하는 (39c,39d,39g)와 라인 35b의 블록이 사용되는 구간 39f의 종료시의 시점에 해당하는 (39c,39f)이다.
이 알고리즘은 번들들이 제거되었을 때 남아 있는 구간들의 수가 캐시 용량을 넘지 않아야 한다는 제약을 갖고 최소수의 번들을 포함하는(따라서 최소수의 블록 인출을 포함한다) 번들들의 집합을 검색한다.
간단한 알고리즘은 번들의 집합들의 목록 Si를 구축한다. 각각의 집합은 검색의 아마도 불완전한 해결책, 즉 캐시 메모리에서 폐기되는 번들들의 선택에 해당한다. 알고리즘은 비어 있는 집합 So(번들을 갖지 않음)에서 시작하며, 목록의 기존 집합 Si에 번들을 추가하여 목록에 대한 새로운 집합 Si'을 구축한다(예를 들어, 비어 있는 집합 {}는 한 개의 번들 (39a)를 갖고 집합 {(39a)}로 확장되고, 두 개의 번들을 갖고 집합 {(39a),(39b)}로 다시 확장된다). 번들들이 제거되었을 때 남아 있는 구간들의 수가 캐시 용량을 넘지 않는 제약을 만족하는 집합을 완전 집합으로 부르며, 나머지 집합들을 불완전 집합으로 부른다.
먼저 용량이 초과되는 시점을 식별하고 이 시점을 커버하는 번들을 집합에 추가하여 매번 한 개의 집합이 확장된다. 결국, 이것은 완전 집합 Sf(예를 들어 Sf=(39a),(39b)}를 발생한다. 이 집합 Sf에서의 js들의 개수 N(Sf)(예를 들면 2)를 계산한다(이것은 인출되어야 하는 단편들의 수이다).
다음에, 목록에 있는 집합들을, 예를 들어 집합 {(39c,39f)}, {(39d, 39g)}을 확장하여 목록에 번들의 나머지 집합들 Si가 목록에 추가된다. 이와 같은 집합 Si가 마찬가지로 완전하면(예를 들어, Si={(39c,39d,39g)}), 이 집합 SI의 번들의 수 N(Si)를 N(Sf)와 비교하고, N(Si)<N(Sf)이면 집합 Si가 Sf를 대체하고 목록에 있는 N(S')≥N(Si)인 모든 집합 S'를 목록에서 제거한다. 집합 Si가 불완전하면, N(Si)를 계산하고, N(Si)>N(Sf)이면 집합 Si를 더 이상 확장하지 않는다. 그렇지 않으면 N(Si)≥N(Sf)이거나 Si가 완전하게 될 때까지 집합 Si를 더 확장한다.
이와 같은 종류의 알고리즘은 최적의 캐시 관리 정책을 찾는데 확실하다. 원리상 캐시 공간이 필요할 때, 프로그램이 실행되기 전이나 실행 중의 어느 시점에서도 이 알고리즘이 연역적으로 적용될 수 있다. 후자의 경우에는, 특정한 시점에 활성인 번들을 각각 포함하는 목록에 집합들을 먼저 추가하여 목록이 구축되는 것이 바람직하다.
예를 들면, 도 3c의 예에서는, 캐시 메모리(12)가 4개의 데이터 블록에 대한 용량을 가질 때, 시간 간격 39h의 시작시에 충돌이 먼저 일어난다. 이 시점에서는 다음과 같은 번들 (39a), (39b), (39c,39d,39e), (39c,39d,39g)가 활성이 되며, 이것들은 각각 시간 간격 39a, 39b, 39e 및 39g의 종료시에 단편을 재적재하기 위한 결정에 해당한다. 이들 번들 각각을 포함하는 집합들이 먼저 목록에 추가된다 다음에 집합이 확장된다. 명확한 것과 같이 집합 Sf=}(39c,39d,39e)}가 이미 완전하고(구간 39e의 종료시의 재적재에 해당한다) N(Sf)=1이므로 이것이 최적의 해결책이 되어 나머지 집합들은 고려할 필요가 없다.
예를 들어 캐시의 용량이 여전히 초과되는 시점을 커버하는 번들들만을 사용하여 집합을 확장함으로써, 집합들이 확장될 때 사용되는 번들의 선택을 검색의 효율을 증가시키는데 안내할 수 있다. 예를 들어 도 3의 경우에, 첫 번째 집합이 번들 (39a)만을 포함하고 캐시가 4개의 데이터 블록을 위한 용량을 가지면, 구간 39j-1 중에만 캐시 용량이 초과된다. 이와 같은 경우에는, 번들들 (39b), (39c,39d,39g), (39h,39j), (39i,39k) 및 (39l)만이 집합 {(39a)}에 추가할 필요가 있다. 더욱이, 이 알고리즘은 바람직하게는 가장 큰 구간(즉, 번들 (39d,39g), (39h,39j), (39i,39k)를 포함하는 번들과 캐시 용량이 초과되는 가장 큰 시점을 커버하는 번들(예를 들면 (39d,39g)) 중에서 선택하여 추가하는데, 이것이 캐시 메모리에 가장 큰 공간을 생성하기 때문이다.
이것은 실링함수(ceiling function) h(S)가 번들 집합에 대해 정의되는 문제발견적 검색 알고리즘으로 구현되며, 이것은 집합 S에 추가되어야 하는 번들의 수에 대한 상한을 제공하여 임의의 시점에서 캐시 용량이 초과되지 않도록 보증한다. 실링함수 h(S)의 예는 S로부터의 번들들에 해당하는 데이터가 번들로부터 시간 간격에 폐기되었을 때 용량이 초과하는 시점들에 걸쳐 합산된 캐시 용량이 초과되는 만큼의 데이터 블록의 수의 합이다.
문제발견적 알고리즘은 실링함수 h(S)에 집합에 있는 번들들의 수 N(S)를 더한 값이 최저가 되는 집합 S를 언제나 확장시킨다. 즉, 집합 S가 다른 번들들을 사용하여 확장될 수 있을 때, 추가적인 번들이 h(S)를 가장 크게 줄이는 확장된 집합이 더 확장된다. 예를 들어 비어 있는 집합에서 시작하여, 번들 (39c,39d,39g)을 추가하는 것이 h(S)의 가장 큰 감소를 제공한다는 것을 알 수 있다.
목록에 있는 임의의 집합 s에 대해 하한값 h(S)+N(S)-1보다 크거나 같은 번들들의 수 N(S')를 포함하는 목록에 있는 집합들 S'은 최적의 집합을 검색시에 더 이상 확장될 필요가 없다. 따라서 최적의 결과가 보장된다. 더욱이, 캐시 용량이 초과되지 않도록 보장하는 집합을 구축하기 위해 집합 S'에 추가되어야 하는 번들들의 최소 수를 제공하는 플로어 함수(floor function) g(S')이 사용되어도 된다(이 플로어 함수의 예는 집합 S'에 대응하는 데이터 블록들이 S'에 대응하는 시간 간격에 폐기된 경우 임의의 시간에 캐시 용량이 초과되는 다른 단편들로부터의 데이터 블록들의 최대수, 즉 S'이 제거된 경우 초과 번들들의 최대수이다). h(S)+N(S)≤N(S')+g(S')인 집합 S가 존재하면 집합 S'이 더 확장될 필요가 없다.
이와 같은 종류의 검색 역시 실행 이전에 또는 실행중에 적용될 수 있다. 실행중에 적용되면, 실행중의 현재의 시점에서 시작하여 매번 캐시 초과가 발생하는 다음 시점에 대한 번들을 추가하면서, 캐시 초과가 발생하는 시점들을 커버하는 번들들을 선택하는 것이 바람직하다. 모든 집합이 목록에 있는 시점 "t"까지 캐시 용량 문제를 해결하면, 목록에 있는 집합의 모든 번들들에 의해 커버되는 최종 시점 t'까지 캐시 초과를 해결하는데 필요한 최대수의 번들에 대한 상한값을 제공하도록 실링함수 h(S)가 변형되어도 된다. 그 결과로써, 검색이 캐시 내부의 수많은 데이터 블록들이 존재하는 단편들에 대한 재사용 캐시 메모리 위치들을 찾기 시작하지만, 더 긴 시간 동안 필요하지 않는 다른 단편으로부터의 데이터 블록들이 더 우수한 해결책을 제공할 수 없는지를 검사한다.
지금까지 설명한 것과 같이 플로어 및/또는 실링 함수를 이용한 검색은 다른 집합 이외의 단편 재인출을 포함하지 않는 번들 집합을 찾게 된다는 의미에서 완벽하다. 더 이상의 전력 효율적인 해결책이 가능하지 않다는 점에서 이것이 최적의 해결책이다. 그러나, 본 발명에서 일탈하지 않고, 양호하지만 반드시 최적의 번들은 아닌 번들의 선택을 찾는 신속하지만 불완전한 검색을 사용하여도 된다.
예를 들어 불완전 검색 알고리즘은 H(s)를 가장 크게 감소시키는 번들을 매번 누적적으로 추가하여 단지 한 개의 최종 집합 S를 구성한다. 도 3의 예에서는, 번들 (39c,39d,39g)가 이러한 방식으로 선택된다. 위에서 설명한 것과 같이, 실링함수 h(S)의 예는 용량이 초과되는 시점들에 걸쳐 합산되어, S로부터의 번들들에 해당하는 데이터가 번들들로부터 시간 간격에 폐기되었을 때 캐시 용량이 초과되는 데이터 블록들의 수의 합이다. 이와 같은 경우에, 초과가 존재하는 모든 시점에 걸쳐 합산하여, 각각의 번들에 대해 얼마나 많은 수의 데이터 블록을 제거하는지를 산출하고, 가장 큰 결과를 주는 번들을 선택하여 다음 번들을 매번 선택한다. 그러나, 캐시 용량을 넘는 가장 큰 나머지 초과분(도 3c에 있어서 실선의 가장 큰 수)이 존재하는 시점에서 가장 많은 데이터 블록들을 제거하는 번들을 사용하여 집합을 확장하는 방법 등의 다른 기준이 불완전 검색에 사용되어도 된다.
이러한 종류의 알고리즘을 이용하여 캐시 관리부(16)와 캐시 충돌을 해소하는 번들의 집합을 효과적으로 선택한다. 이 집합은 캐싱 계획으로 부른다. 캐시 관리부(16)는 번들에 대응하는 시간 간격에 번들들의 선택된 집합으로부터 데이터 블록들에 대한 캐시 위치들을 재사용하여 캐싱 계획에 따라 진행된다. 즉, 캐시 관리 부(16)가 번들을 선택하였을 때, 이것은 캐시 관리부(16)가 이 번들의 시간 간격의 종료시에 이 시점에서 단편의 재인출을 허용하였다는 것을 의미한다. 그후 스케쥴에 넣어지지 않은 시점 이전에 사용되지 않는 이 단편으로부터의 모든 데이터 블록의 캐시 위치들이 재사용될 수 있다. 통계 프로파일의 경우에는, 이 프로파일로부터의 확률값들에서 계산되는 것과 같이, 평균 예측 에너지 소모(단편 인출의 평균값)가 최소로 될 수 있다.
캐시 관리부(16)는 프로그램의 실행 전에, 또는 계획의 일부를 실행하기에 앞서 실행 중에 가장 적게 소모되는 캐싱 계획을 선택하여도 된다. 이것은 완벽한 검색을 할 수 잇게 한다. 이와 달리, 이 계획은 데이터 블록을 폐기하기 전에 언제나 온더 플라이(on the fly)로 행해져도 된다. 이것은 실제 프로그램 흐름에 맞추어 계획을 변형할 수 있게 한다. 이와 같은 경우에, 프로그램 실행의 일부에 대해, 예를 들어 다음 블록을 폐기하는 타임 윈도우에 대해, 캐싱 계획이 개발되어도 된다.
실행시간 계획 중에는, 현재의 시점에서 폐기할 번들의 선택만이 적합하다. 예를 들어, 차선의 알고리즘의 실행시간 동등물로서, 어느 시점에서의 캐시 관리부(16)가 활성 번들을 고려한다. 예를 들어 캐시 관리부(16)는 캐시에 존재하고 먼저 각각의 나중 시점에서 다시 사용될 각각의 데이터 블록을 고려하며, 이와 같은 각각의 데이터 블록에 대해 캐시 관리부는 캐시 메모리(12)에 존재하며 상기한 나중 시점 이전에 사용되지 않을 동일한 단편으로부터의 나머지 데이터 블록들을 식별한다. 그후, 캐시 관리부(16)는 각각의 개별적인 데이터 블록에 대해 개별적인 나중의 시점에 이르는 시점을 걸쳐 합산하여 얼마나 많은 캐시 액세스가 감소하는지를 계수한다. 가장 높은 계수값을 발생하는 각각의 데이터 블록을 선택한다. 그후, 캐시 관리부(16)는 이 각각의 데이터 블록에 대해 그리고 각각의 데이터 블록 이전에 필요하지 않은 동일한 단편으로부터의 추가 데이터 블록들에 대해 사용되는 캐시 메모리 위치들을 재사용한다. 이들 위치들은 임의의 순서로 재사용되어도 되지만, 최종 필요한 데이터 블록에 대한 위치가 먼저 재사용되는 것이 바람직하다.
그러나, 캐시 용량 등을 넘어 가장 크게 남아 있는 액세스가 존재하는 단편들로부터의 데이터가 다시 필요하기 전의 미래의 시점에서 대부분의 데이터 블록들을 제거하기 위해 이 단편으로부터 데이터 블록들을 폐기하는 것과 같은 다른 기준이 차선 검색에서 사용되어도 된다. 더 복잡한 선택 알고리즘이 사용되어도 되는데, 이것은 현재의 시점에서 시작하여 폐기하고자 하는 적절한 데이터 블록들에 대한 더 큰 양의 검색을 포함한다.
바람직하게는 데이터 블록이 실제로 필요하기 전에 캐시 관리부(16)가 이 데이터 블록을 미리 인출하여, 데이터 블록들 디스크에서 인출할 필요가 있을 때 지연을 방지한다. 이것은 예를 들어 적절한 시기에 프로그램에 사전인출(prefetch) 명령을 포함시켜 실현될 수 있다. 프로그램의 시작 이후의 순환 계수값 또는 프로그램 카운터 값들 등의, 블록이 필요한 프로그램의 실행 진행 단계의 표지와 관련된 프로파일을 기억시킴으로써 사전인출 타이밍이 제공될 수도 있다.
프로그램이 동일한 순서로 데이터 블록들을 항상 필요하지 않을 때에는 실행에 대한 통계 데이터로부터 프로파일이 컴파일된다. 이러한 종류의 프로파일 작업 은 알려져 있다. 기본적으로, 프로그램 실행 중의 다수의 시점 각각에 대해, 바람직하게는 한 개 또는 그 이상의 가장 최근에 사용된 블록들의 다수의 조합 각각에 대해, 데이터 블록들의 어떤 순서가 미래에 사용될 가능성이 가장 큰지가 기록된다. 따라서, 캐시 관리부(16)는 처리의 단계와 발생된 실제 조합에 의거하여 블록들이 필요하게 되는 예측된 순서를 검색할 수 있다.
디스크(100)가 재기록가능한 디스크이면, 특정한 캐시 정책이 사용될 때 단편들을 적재할 필요성을 최소로 하도록 블록들이 디스크(100) 상에 재배치되어도 된다. 적절한 재배치는 프로파일에 근거하여 선택될 수 있다. 예를 들어 제 1 단편이 보통 먼저 인출되고 그후 제 2 단편이 인출되어 특정한 블록을 적재하는 것으로 프로파일이 나타내면, 이 특정한 블록이 제 1 단편으로 이동하여, 제 2 단편으로부터 제 2 블록을 인출할 필요성을 없게 만들어도 된다. 이의 대안으로 제 1 단편으로부터 특수한 블록들만이 사용되는 것으로 프로파일이 나타내면, 이들 특수한 블록들이 제 2 단편으로 이동하거나, 이 특수한 블록들과 특정한 블록들이 제 3 단편으로 이동하여도 된다.
재배치는 프로그램의 실행중이나 실행 사이에 예를 들면 캐시 관리부(16)의 제어하에서 특정한 디스크(100)의 사용중에 자동으로 행해지는 것이 바람직하다. 캐시 관리부(16)는 프로파일과 캐시 아키텍처로부터의 정보에 의거하여 재배치를 수행한다. 예를 들어, 특수한 블록들을 적재하는 것과 특정한 블록을 적재하는 것 사이의 구간이 너무 작아 이 구간에서 캐시 메모리(12)에서 특정한 블록의 교체를 강제로 하는데 불충분한 블록이 필요하게 될 것으로 프로파일이 표시하면, 캐시 관 리부(16)는 특정한 블록과 특수한 블록들의 동일한 단편으로의 재배치를 선택한다. 마찬가지로 단편으로부터의 블록들의 사용 사이의 구간이 너무 길어 부대 효과로서 적재된 블록들이 사용되기 전에 캐시 메모리(12)에서 교체되어야 하면, 캐시 관리부(16)는 한 개의 단편으로부터 다른 단편들로 블록들을 분포하도록 선택할 수도 있다.
본 발명이 특정한 캐시 관리 정책에 제한되지 않는다는 것이 명백하다. 일반적으로 캐시 관리 정책은 디스크 드라이브의 인출 특성에 의거하여 선택되는 것이 바람직하다.
예를 들어, 디스크 상에 고정된 길이의 단편들의 소정의 배치가 존재하고, 디스크 드라이브(10)가 소정의 시작점들에서 소정 거리까지의 단편들만을 인출할 수 있으면, 캐시 메모리(12)에 있는 특수한 단편으로부터의 특정한 블록을 유지하는 판정이 이 특수한 단편으로부터의 다른 블록들이 특정한 블록 전에 적재되어야 한다는 것으로 프로파일이 표시하는가에 의존한다.
다른 예에서는, 디스크 드라이브(10)가 (예를 들면, 버퍼 메모리(108)에 의해 결정된) 소정 크기의 단편들을 인출할 수 있으며, 이 각각의 단편은 디스크 상의 특정한 위치에 있는 데이터 블록을 포함하지만, 다른 시작점들에서 시작한다. 따라서 시작점에 의거하여 연속된 블록들의 다른 조합들이 단편에서 발생된다(예를 들어, 블록 A,B,C,D,E,F가 디스크 상에 저장되고 한 개의 단편이 4개의 블록으로 구성되고, 그후, 디스크 드라이브(10)가 블록 A로부터 또는 블록 C로부터 단편의 판독을 시작할 수 있으면, 단편들 (A,B,C,D) 및 (C,D,E,F)가 판독될 수 있으며, 한 개는 블록들의 조합(예를 들어 D 및 E)을 포함하고 나머지는 포함하지 않는다).
본 실시예에서는, 캐시 관리부(16)가, 특정한 데이터 블록을 인출할 때, 이 특정한 데이터 블록을 인출하기 위한 단편의 시작점을 선택할 수 있는 추가적인 특권을 갖는다. 바람직하게는. 이 특권을 유리하게 사용하기 위해, 캐시 관리부(16)는 프로파일로부터, (a) 캐시 메모리(12)에 존재하지 않고, (b) 특정한 데이터 블록 다음에 사용시까지 캐시 메모리(12)에 유지될 수 있을 정도로 빨리 필요하게 되며 (c) 특정한 데이터 블록과 함께 동일한 단편에서 추가적인 데이터 블록이 판독될 수 있을 정도로 특정한 데이터 블록에 가깝게 디스크(100) 상에 저장되는 추가 데이터 블록이 존재하는가를 결정한다. 이와 같은 데이터 블록이 존재하면, 캐시 관리부(16)는 특정한 데이터 블록을 인출하기 위한 단편의 시작점을 선택하여, 단편이 추가 데이터 블록을 포함한다. 일단 인출되면, 추가 데이터 블록은 나중의 사용을 위해 캐시 메모리(12)에 유지된다. 이에 따르면, 추가적인 단편 인출이 방지된다.
다른 실시예에서는, 단편의 길이도 변할 수 있다. 이 경우에는, 캐시 관리부(16)가 바람직하게는 전력 소모를 줄이기 위해 단편의 길이를 변형한다. 특정한 데이터 블록을 인출하여야 할 때, 단편도 그리고 바람직하게는 단편만 프로파일에 따라 나중에 사용하기 위해 캐시에 기억될 수 있는 추가적인 데이터 블록 또는 블록들을 포함하도록 단편 길이가 변형된다.
지금까지 설명한 실시예들에서는 모터 및 액추에이터 등의 디스크 드라이브의 부품들을 이들 부품들에 대한 전원을 차단하여 비활성화(디스에이블)하였지만, 다른 방법으로, 예를 들어 부품을 다른 더 낮은 전력 소모 모드, 예를 들어 저속 모드로 전환하는 제어신호를 사용하여, 이들 부품을 비활성화시킴으로써 이들 부품의 전원 소모를 줄일 수 있다는 것이 명백하다.
더욱이, 본 발명을 한번에 한 개의 단편을 판독하는 장치에 대해 설명하였지만, 에너지 소모 부하를 거의 같지 않거나 전혀 갖지 않고 함께 인출될 수 있는 복수의 데이터 블록들로 구성된 다른 인출 유니트들을 사용하여도 된다는 것이 명백하다. 예를 들어, 고정 크기 대신에, 고정 위치의 인출 유니트들, 디스크 상의 가변 위치에서 시작하는 고정 크기의 인출 유니트들을 사용하여, 선택가능한 전후관계의 다른 데이터 블록들, 예를 들면, N-1개의 이전 데이터 블록들(N은 인출 유니트의 크기이다), 또는 N-1개의 다음 데이터 블록들, 또는 N-1-m개의 이전 및 m개의 다음 데이터 블록들로 특정한 데이터 블록이 적재되어도 된다. 이것은 단지 (선택될 수 있는 가능한 추가적인 번들들을 정의하는) 최고의 전력 절감 시작점들을 검색하는 것을 요구하므로, 본 발명에 영향을 미치지 않는다는 것이 명백하다. 마찬가지로, 인출 유니트의 크기 N이 전력 소모에 영향을 미치면, 이 크기를 검색중에 변형하여도 된다.

Claims (11)

  1. 디스크(100)에서 동시에 데이터와, 디스크(100) 상에 연속되게 저장되는 복수의 데이터 블록들을 각각 포함하는 인출 유니트를 판독하도록 배치된 디스크 드라이브(10);
    상기 데이터 블록들을 사용하여 프로그램을 실행하는 처리회로(14);
    상기 디스크 드라이브에 접속되고 프로그램의 실행중에 상기 처리회로(14)에 의해 사용하기 위해 상기 디스크(100)에서 판독된 데이터 블록들을 일시기억하며 개별적인 데이터 블록들의 교체 균질도(replacement granularity)를 갖는 캐시 메모리(12); 및
    프로그램의 실행중에 상기 데이터 블록이 언제 필요하게 될 것인지의 예측에 의거하여 인출 유니트 내에서 얻어진 어느 데이터 블록들이 상기 캐시 메모리(12)에 유지되지 않을 것인가를 선택하도록 배치되고, 캐시 상태와 제 1 데이터 블록과 동일한 인출 유니트의 제 2 데이터 블록이 다음에 필요하게 되는 예측 시간에 관한 정보에 응답하여 적어도 상기 제 1 데이터 블록을 유지하지 않도록 선택하여, 상기 제 1 데이터 블록의 다음 사용 이전에, 상기 제 2 데이터 블록이 인출될 것으로 예측될 때 상기 제 1 데이터 블록이 인출될 것으로 예측되는 경우에 상기 제 1 데이터 블록을 유지하지 않음으로써 상기 캐시 메모리(12)의 공간이 비워지게 하는 캐시 관리부(16)를 구비한 것을 특징으로 하는 정보처리장치.
  2. 제 1항에 있어서,
    상기 캐시 관리부(16)는 상기 캐시 메모리(12)에 상기 제 2 데이터 블록이 존재하지 않는가를 검출하고 상기 제 2 데이터 블록이 다음에 필요할 것으로 예측된 후에 상기 제 1 데이터 블록이 다음에 필요할 것으로 예측되는가를 검출하도록 배치되고, 상기 캐시 관리부(16)는 상기 검출에 응답하여 상기 캐시 메모리(12)에 상기 제 1 데이터 블록의 덮어쓰기를 허용하는 것을 특징으로 하는 정보처리장치.
  3. 제 1항에 있어서,
    상기 캐시 관리부(16)는, 상기 캐시 메모리(12)에 상기 제 2 데이터 블록이 존재하는가를 검출하고, 상기 캐시 메모리(12)에 있는 추가 데이터 블록이 동일한 인출 유니트의 외부에서 사용될 것으로 예측되는 시간 간격에 해당하는 상기 제 1 데이터 블록의 다음 예상된 사용 전의 미래의 시간 간격 동안 상기 제 2 데이터 블록의 불사용이 예측되는가를 검출하여, 상기 검출에 응답하여 상기 제 1 데이터 블록의 덮어쓰기를 허용하는 것을 특징으로 하는 정보처리장치.
  4. 제 1항에 있어서,
    캐시 시간 간격이 각각의 개별적인 데이터 블록에 대해 정의되고, 상기 캐시 시간 간격은 개별적인 데이터 블록들의 예측된 연속 사용들 사이에서, 및/또는 인출 유니트의 부분으로서 개별적인 데이터 블록의 사용과 인출 사이에서 진행되며, 상기 캐시 관리부(16)가 상기 캐시 시간 간격과 관련된 개별적인 데이터 블록들을 유지하도록 계획하는 동안 상기 캐시 관리부(16)가 캐시 시간 간격들의 집합을 검색하여, 선택된 집합의 다수의 중첩하는 시간 간격들이 상기 캐시 메모리가 동시에 기억할 수 있는 데이터 블록들의 수를 결코 초과하지 않는다는 제약하에서 디스크(100)로부터의 인출 연산의 예측된 계수값을 최소화하고, 최소화되는 상기 예측된 계수값은 한번의 인출 연산과 동일한 인출 유니트로부터 복수의 데이터 블록들을 인출하기 위한 각각의 인출 연산을 계수하는 것을 특징으로 하는 정보처리장치.
  5. 제 1항에 있어서,
    상기 캐시 관리부(16)는 상기 동일한 인출 유니트가 인출되어 상기 제 2 데이터 블록을 얻을 것으로 예측되는 예측된 최초의 다음 시간을 표시하는 정보를 유지하고, 상기 제 1 데이터 블록의 다음 예측된 사용이 상기 예측된 최초의 다음 시간 이후인가에 의거하여 상기 제 1 데이터 블록의 덮어쓰기를 허용하는 것을 특징으로 하는 정보처리장치.
  6. 제 1항에 있어서,
    상기 캐시 관리부(16)는 인출된 인출 유니트로부터 캐시 메모리(12)로의 선택된 데이터 블록들의 선택적인 복사를 제어하여, 선택된 데이터 블록들이 실행중에 필요할 것으로 예측되었는가에 의거하여 상기 인출된 인출 유니트로부터의 데이터 블록들이 상기 캐시 메모리(12)에 복사됨으로써, 반드시 연속된 것은 아닌 데이터 블록들의 선택이 복사되는 것을 특징으로 하는 정보처리장치.
  7. 제 1항에 있어서,
    상기 디스크 드라이브(10)는 소정 크기를 갖는 유니트들을 인출하도록 배치되고, 인출 유니트들은 디스크 사에 서로 중첩되지 않게 저장되는 것을 특징으로 하는 정보처리장치.
  8. 제 1항에 있어서,
    상기 디스크 드라이브(10)는 프로그램 가능한 시작점들에서 소정 크기의 이출 유니트들을 인출하여, 다른 인출 유니트들이 디스크 상의 중첩 영역들에서 인출되고, 상기 캐시 관리부는 특정한 데이터 블록 근처에 있는 추가 데이터 블록이 상기 특정한 데이터 블록 다음에 필요하게 되는가의 예측에 의거하여 특정한 데이터 블록을 적재하기 위한 상기 인출 유니트의 시작점을 선택하도록 배치되고, 상기 시작점은 상기 추다 데이터 블록이 상기 인출 유니트에 포함되도록 변경되는 것을 특징으 로 하는 정보처리장치.
  9. 제 1항에 있어서,
    상기 캐시 관리부(16)는, 상기 프로그램의 반복 실행 중에 데이터 블록들이 위치하는 순서에 대한 프로파일 정보를 기록하도록 배치된 프로파일링 요소를 포함하고, 상기 예측은 상기 프로파일 정보에서 계산되는 것을 특징으로 하는 정보처리장치.
  10. 제 1항에 있어서,
    디스크 상에 블록들 중 적어도 한 개를 재할당하도록 배치된 블록 재할당부를 구비하고, 이 블록 재할당부는 인출 유니트들 중에서 첫 번째가 인출되어 제 1 데이터 블록이 얻어진 후 인출 유니트들의 두 번째가 인출되어 제 2 데이터 블록이 얻어지는 시기를 검출하고, 상기 제 1 및 제 2 데이터 블록이 상기 디스크 상의 공통된 인출 유니트에 저장되도록 상기 디스크 상에 이들 블록들을 재배치하는 것을 특징으로 하는 정보처리장치.
  11. 디스크로부터의 데이터를 처리하는 방법에 있어서,
    상기 디스크(100) 상에 저장된 데이터 블록들로부터의 데이터를 사용하는 프로그램 을 실행하는 단계;
    상기 디스크(100) 상에 연속되게 저장되는 복수의 데이터 블록을 각각 포함하는 인출 유니트들로 상기 디스크(100)에서 데이터 블록들을 함께 인출하는 단계;
    다른 인출 유니트들의 인출 사이에 상기 디스크 드라이브(10)의 적어도 일부를 비활성화시켜 상기 디스크(100)로부터 데이터를 판독하기 위한 에너지 소모를 줄이는 단계;
    캐시 메모리(12)에 다수의 데이터 블록을 일시 기억하여, 이출 유니트의 인출을 필요가 없게 하여 데이터 블록이 상기 캐시 메모리(12)에 기억되어 있을 때 이 인출 유니트로부터 데이터 블록을 얻는 단계;
    상기 프로그램에 의해 상기 데이터 블록들이 필요하게 되는 순서를 예측하는 단계; 및
    캐시 상태와 제 1 데이터 블록과 동일한 인출 유니트의 제 2 데이터 블록이 다음에 필요하게 되는 예측 시간에 의거하여 적어도 상기 제 1 데이터 블록을 유지하지 않도록 선택하여 상기 디스크(100)에서 인출 유니트들이 인출되어야 하는 횟수를 최소로 하여, 상기 제 1 데이터 블록의 다음 사용 이전에, 상기 제 2 데이터 블록이 인출될 것으로 예측될 때 상기 제 1 데이터 블록이 인출될 것으로 예측되는 경우에 상기 제 1 데이터 블록을 유지하지 않음으로써 상기 캐시 메모리(12)의 공간이 비워지게 하는 단계를 포함하는 것을 특징으로 하는 데이터 처리방법.
KR1020067024561A 2004-04-27 2005-04-19 전력 소모를 줄이기 위해 캐시 관리 정책을 이용하는디스크 드라이브를 구비한 장치 KR20070005729A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04101765.8 2004-04-27
EP04101765 2004-04-27

Publications (1)

Publication Number Publication Date
KR20070005729A true KR20070005729A (ko) 2007-01-10

Family

ID=34964581

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067024561A KR20070005729A (ko) 2004-04-27 2005-04-19 전력 소모를 줄이기 위해 캐시 관리 정책을 이용하는디스크 드라이브를 구비한 장치

Country Status (7)

Country Link
US (1) US20090157957A1 (ko)
EP (1) EP1745382A1 (ko)
JP (1) JP2007535058A (ko)
KR (1) KR20070005729A (ko)
CN (1) CN100429633C (ko)
TW (1) TW200606882A (ko)
WO (1) WO2005103905A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2192495A1 (de) * 2008-11-11 2010-06-02 Thomson Licensing Verfahren zur Bearbeitung von Daten mittels Dreifach-Pufferung
DE102009050170B4 (de) * 2009-10-21 2013-08-01 Diehl Ako Stiftung & Co. Kg Hausautomatisierungs- und Hausinformationssystem
JP5585330B2 (ja) * 2010-09-13 2014-09-10 日本電気株式会社 情報処理装置、情報処理方法およびコンピュータ・プログラム
KR20200008759A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 캐시 메모리 및 이를 포함하는 메모리 시스템, 캐시 메모리의 축출 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US6266742B1 (en) * 1997-10-27 2001-07-24 International Business Machines Corporation Algorithm for cache replacement
JP2000200221A (ja) * 1998-10-30 2000-07-18 Nec Corp キャッシュメモリ装置及びその制御方法

Also Published As

Publication number Publication date
US20090157957A1 (en) 2009-06-18
CN1950805A (zh) 2007-04-18
CN100429633C (zh) 2008-10-29
TW200606882A (en) 2006-02-16
JP2007535058A (ja) 2007-11-29
EP1745382A1 (en) 2007-01-24
WO2005103905A1 (en) 2005-11-03

Similar Documents

Publication Publication Date Title
US8261009B2 (en) Method and apparatus for retroactive adaptation of data location
KR101068735B1 (ko) 프로세서 코어 스택 익스텐션
US6505287B2 (en) Virtual channel memory access controlling circuit
US7337201B1 (en) System and method to increase memory allocation efficiency
CN100517274C (zh) 高速缓冲存储器及其控制方法
US8205059B2 (en) Buffer management method and optical disc drive
US7831624B2 (en) Skip list with address related table structure
US20130205089A1 (en) Cache Device and Methods Thereof
KR101481633B1 (ko) 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법
JPH1196074A (ja) 交換アルゴリズム動的選択コンピュータシステム
JPH08212054A (ja) バッファ・メモリを動作させる方法及び関連する装置
EP2492818A1 (en) Cache memory and control method thereof
EP1364283A2 (en) Cyclic prefetching of data and program code from memory
KR20070005729A (ko) 전력 소모를 줄이기 위해 캐시 관리 정책을 이용하는디스크 드라이브를 구비한 장치
US6931490B2 (en) Set address correlation address predictors for long memory latencies
US6209058B1 (en) Cache management for data transfer control from target disk areas
JPH08147218A (ja) キャッシュ制御装置
US8356141B2 (en) Identifying replacement memory pages from three page record lists
CN102722448A (zh) 管理高速存储器的方法和装置
US10860324B1 (en) Apparatus and method for making predictions for branch instructions
KR970004255B1 (ko) 병렬 디스크 상에서의 고속 데이타 갱신 방법
US9110811B2 (en) Prefetching method and apparatus
JP2002182978A (ja) 記憶サブシステム及び情報処理システム
JP3785127B2 (ja) ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法
JP3083530B2 (ja) キャッシュメモリのデータ管理方法およびキャッシュ制御装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid