KR20090063401A - 라이트 백 동작을 수행하는 캐시 메모리와 이를 포함하는시스템 - Google Patents

라이트 백 동작을 수행하는 캐시 메모리와 이를 포함하는시스템 Download PDF

Info

Publication number
KR20090063401A
KR20090063401A KR1020070130741A KR20070130741A KR20090063401A KR 20090063401 A KR20090063401 A KR 20090063401A KR 1020070130741 A KR1020070130741 A KR 1020070130741A KR 20070130741 A KR20070130741 A KR 20070130741A KR 20090063401 A KR20090063401 A KR 20090063401A
Authority
KR
South Korea
Prior art keywords
write back
memory
write
information
blocks
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020070130741A
Other languages
English (en)
Other versions
KR101472967B1 (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 KR1020070130741A priority Critical patent/KR101472967B1/ko
Priority to US12/334,822 priority patent/US8332591B2/en
Publication of KR20090063401A publication Critical patent/KR20090063401A/ko
Application granted granted Critical
Publication of KR101472967B1 publication Critical patent/KR101472967B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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

캐시 메모리가 개시된다. 상기 캐시 메모리는 데이터 메모리, 및 라이트 백 제어부를 포함한다. 상기 데이터 메모리는 다수의 블록들의 데이터를 저장한다. 상기 라이트 백 제어부는 쓰기 정책 정보, 및 시스템 버스의 상태를 모니터링한 결과에 따라 발생된 모니터링 신호에 기초하여 상기 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 어얼리-라이트 백(early-write back) 동작을 수행하도록 상기 데이터 메모리를 제어한다.
라이트 백, 라이트 쓰루

Description

라이트 백 동작을 수행하는 캐시 메모리와 이를 포함하는 시스템{Cache memory and method capable of write-back operation, and system having the same}
본 발명은 반도체 장치에 관한 것으로, 특히 미스가 발생하기 전에 라이트 백 데이터를 미리 라이트 백 할 수 있는 캐시 메모리, 및 상기 캐시 메모리의 동작 방법, 및 상기 캐시 메모리를 포함하는 시스템에 관한 것이다.
최근 메인 메모리를 효율적으로 사용하고 좀더 빠른 메모리 액세스를 수행하는 고성능의 제품을 실현하기 위하여 프로세서(processor)뿐만 아니라 다양한 코-프로세서들(예컨대, 3D 그래픽 프로세서)에서도 캐시 메모리 또는 라이트 버퍼의 사용이 점차 증가하고 있다.
캐시 메모리는 메인 메모리에 저장된 데이터 중에서 일부의 데이터를 저장하고 있는 고속 기억 장치로서, 하드 디스크 드라이브에 비해 수십 배 내지 수백 배 이상 고속으로 데이터의 읽기 또는 쓰기 동작을 수행하다.
일반적으로, 상기 캐시 메모리는 라이트 쓰루(write through) 캐시와 라이트 백(write back) 캐시가 있다. 상기 라이트 쓰루 캐시는 기입 동작시 상기 라이트 쓰루 캐시 내의 블록의 데이터를 갱신하는 동시에 상기 캐시 메모리에 저장된 데이터도 갱신한다. 반면, 상기 라이트 백 캐시는 기입 동작시 상기 라이트 백 캐시 내의 블록에 저장된 데이터만을 기입 데이터로 갱신한다. 차후, 독출(read) 동작시 캐시 미스(MISS)가 발생하는 경우, 상기 라이트 백 캐시는 CPU로부터 출력되는 데이터 요청 신호에 상응하는 데이터를 상기 라이트 백 캐시 내의 블록에 저장하기 위하여 비워져야 할 블록이 기입 데이터를 포함하는 경우에만 메인 메모리에 저장되어 있는 데이터도 상기 기입 데이터로 갱신한다. 주로 상기 메인 메모리에 데이터 액세스를 하는 횟수를 줄일 수 있는 상기 라이트 백 캐시가 많이 사용된다.
캐시 메모리의 성능은 히트율 (HIT ratio)와 미스 패널티 (MISS penalty)에 의해 큰 영향을 받는다. 여기서, 히트율은 CPU로부터 데이터 요청시 요청된 데이터가 캐시 메모리 내에 존재하는 비율을 나타내며, 캐시 메모리의 구조, 및 캐시 메모리 내에 블록의 사이즈 등에 좌우된다. 또한 미스 패널티는 CPU로부터 데이터 요청시 미스 동작이 발생할 때, 메인 메모리로부터 요청된 데이터를 포함하는 블록을 캐시 메모리로 로드(load)하는데 소요되는 시간을 나타내며, 시스템 버스와 메인 메모리의 관계 예컨대, 시스템 버스를 통해 메인 메모리를 액세스하는 횟수, 또는 데이터 전송량 등에 의해 영향을 받는다.
캐시 메모리에 저장할 수 있는 블록의 수는 한정되어 있다. 따라서 캐시 미스 동작시, 캐시 메모리 내의 모든 블록이 더티(또는 갱신)인 경우에 상기 캐시 메모리는 적어도 어느 하나의 블록의 데이터를 메인 메모리로 라이트하고, 데이터 요청 신호에 상응하는 데이터를 메인 메모리로부터 읽어들이는 두 번의 메모리 액세 스 동작을 수행한다.
즉, 연속적으로 캐시 미스 동작이 발생하는 경우에는 많은 메모리 액세스 동작이 수행됨으로써 데이터 전송량이 증가하여 시스템 버스와 메인 메모리 사이에 많은 부하가 걸리게 된다. 이에 따라 CPU 및/또는 캐시 메모리로부터 전송되는 데이터 전송량을 메인 메모리가 소화하지 못해 전체 시스템의 성능이 떨어지는 메모리 병목 현상(Bottle Neck)이 발생한다. 결국 이로 인해, 캐시 메모리는 필요한 데이터를 기입하고 독출하는데 많은 대기 시간(latency)을 필요로 하며, 이에 따라 캐시 메모리의 미스 패널티가 더욱 증가한다.
최근, 애플리케이션이 다양화되고 시스템 내의 데이터 전송량이 증가함에 따라 대량의 데이터를 빠르게 전송해야하는 멀티미디어 동작(예컨대, 3D Graphics)을 수행하는 컴퓨터 시스템 예컨대, 멀티미디어 하드웨어에서 이와 같은 미스 패널티의 증가는 캐시 메모리의 성능을 감소시킬 수 있다.
따라서 캐시 미스 동작이 발생하기 전에 라이트 백될 블록의 데이터를 미리 라이트 백 함으로써 시스템 내의 데이터 전송량을 시간축으로 분산시켜 프로세서(processor)나 코-프로세서(co-processor)의 성능을 향상시킬 수 있는 캐시 메모리가 요구된다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 캐시 미스 동작이 발생하기 전에 라이트 백될 블록의 데이터에 대하여 어얼리-라이트 백 동작을 수행함으로 써 시스템 내의 데이터 전송량을 시간축으로 분산 시켜 프로세서(processor)나 코-프로세서(co-processor)의 성능을 향상시킬 수 있는 캐시 메모리, 상기 캐시 메모리의 동작 방법, 및 상기 캐시 메모리를 포함하는 시스템을 제공하는 것이다.
상기 기술적 과제를 해결하기 위한 캐시 메모리는 데이터 메모리, 및 라이트 백 제어부를 포함한다. 상기 데이터 메모리는 다수의 블록들의 데이터를 저장한다. 상기 라이트 백 제어부는 쓰기 정책 정보, 및 시스템 버스의 상태를 모니터링한 결과에 따라 발생한 모니터링 신호에 기초하여 상기 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 어얼리-라이트 백(early-write back) 동작을 수행하도록 상기 데이터 메모리를 제어한다.
상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 상기 캐시 메모리의 구조에 대한 정보, 상기 다수의 블록들 중에서 라이트 백 블록의 개수에 대한 정보, 또는 상기 다수의 블록들에 대한 더티 값들 중에서 적어도 하나를 포함한다.
상기 캐시 메모리는 상기 다수의 블록들에 대한 더티 값들을 저장하는 더티 값 메모리와, 및 상기 더티 값 메모리로부터 출력되는 상기 더티 값들에 기초하여 상기 어얼리-라이트 백 동작이 수행될 상기 적어도 하나의 블록을 선택하기 위한 라이트 백 결정부를 더 포함한다.
상기 캐시 메모리는 상기 다수의 블록들에 대한 더티 값들을 저장하는 더티 값 메모리와, 상기 더티 값 메모리로부터 출력되는 상기 더티 값들에 기초하여 상 기 어얼리-라이트 백 동작이 수행될 상기 적어도 하나의 블록을 선택하기 위한 라이트 백 결정부와, 상기 쓰기 정책 정보에 응답하여 라이트 백 요청 신호를 발생하기 위한 라이트 백 선택부를 더 포함한다. 상기 라이트 백 제어부는 상기 라이트 백 요청 신호에 응답하여 상기 모니터링 신호와 상기 라이트 백 결정부에 의하여 선택된 상기 적어도 하나의 블록에 대한 정보를 수신하고, 수신된 상기 모니터링 신호와 수신된 상기 적어도 하나의 블록에 대한 정보에 기초하여 상기 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어한다.
상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 또는 상기 캐시 메모리의 구조에 대한 정보 중에서 적어도 하나를 포함한다.
상기 기술적 과제를 해결하기 위한 시스템은 캐시 메모리로부터 출력된 라이트 백 블록의 데이터를 시스템 버스를 통하여 수신하고 저장하는 메인 메모리를 포함한다.
상기 캐시 메모리는 데이터 메모리, 및 라이트 백 제어부를 포함한다. 상기 데이터 메모리는 라이트 백 다수의 블록들의 데이터를 저장한다. 상기 라이트 백 제어부는 쓰기 정책 정보, 및 상기 시스템 버스의 상태를 모니터링한 결과에 따라 발생된 모니터링 신호에 기초하여 상기 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어한다.
상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 상기 캐시 메모리의 구조에 대한 정보, 상기 다수의 블록들 중에서 라이트 백 블록의 개수에 대한 정보, 또는 상기 다수의 블록들에 대한 더티 값들 중에서 적어도 하나를 포함한다.
상기 캐시 메모리는 상기 다수의 블록들에 대한 더티 값들을 저장하는 더티 값 메모리와, 상기 더티 값 메모리로부터 출력되는 상기 더티 값들에 기초하여 상기 어얼리-라이트 백 동작이 수행될 상기 적어도 하나의 블록을 선택하기 위한 라이트 백 결정부를 더 포함한다.
상기 캐시 메모리는 상기 다수의 블록들에 대한 더티 값들을 저장하는 더티 값 메모리와, 상기 더티 값 메모리로부터 출력되는 상기 더티 값들에 기초하여 상기 어얼리-라이트 백 동작이 수행될 상기 적어도 하나의 블록을 선택하기 위한 라이트 백 결정부와, 상기 쓰기 정책 정보에 응답하여 라이트 백 요청 신호를 발생하기 위한 라이트 백 선택부를 더 포함한다. 상기 라이트 백 제어부는 상기 라이트 백 요청 신호에 응답하여 상기 모니터링 신호와 라이트 백 결정부에 의하여 선택된 상기 적어도 하나의 블록에 대한 정보를 수신하고, 상기 모니터링 신호와 상기 적어도 하나의 블록에 대한 정보에 기초하여 상기 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어한다.
상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 상기 캐시 메모리의 구조에 대한 정보 중에서 적어도 하나를 포함한다.
상기 기술적 과제를 해결하기 위한 캐시 메모리의 동작 방법은 쓰기 정책 정보와 시스템 버스의 상태를 모니터링한 결과에 따라 발생한 모니터링 신호를 수신하는 단계와, 상기 쓰기 정책 정보와 상기 모니터링 신호에 기초하여 데이터 메모 리에 저장된 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어하는 단계를 포함한다.
상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 상기 캐시 메모리의 구조에 대한 정보, 상기 다수의 블록들 중에서 라이트 백 블록의 개수에 대한 정보, 또는 상기 다수의 블록들에 대한 더티 값들 중에서 적어도 하나를 포함한다.
상기 기술적 과제를 해결하기 위한 캐시 메모리의 동작 방법은 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 또는 캐시 메모리의 구조에 대한 정보 중에서 적어도 하나에 기초하여 라이트 백 요청 신호를 발생하는 단계와, 상기 라이트 백 요청 신호에 응답하여 시스템 버스의 상태를 모니터링한 결과에 따라 발생된 모니터링 신호와 라이트 백 결정부에 의하여 선택된 적어도 하나의 블록에 대한 더티 값을 수신하는 단계와, 수신된 상기 적어도 하나의 블록에 대한 더티 값과 수신된 상기 모니터링 신호에 기초하여 데이터 메모리에 저장된 상기 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 상기 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어하는 단계를 포함한다.
본 발명의 실시 예에 따른 캐시 메모리는 시스템 버스가 유휴(idle) 상태일 때 라이트 백 블록의 데이터를 미리 라이트 백 함으로써 시스템 내의 병목 현상을 감소시킬 수 있는 효과가 있다.
또한, 본 발명의 실시 예에 따른 캐시 메모리는 시스템 버스 내의 데이터 전 송량을 감소시켜 메모리 액세스시 대기 시간을 감소시킬 수 있으므로 고속으로 메인 메모리를 액세스할 수 있는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시 예에 따른 시스템(10)의 개략적인 블록 도이다. 도 2는 본 발명의 실시예에 따라 라이트 백 동작을 수행하는 캐시 메모리(20)의 블록도이다. 도 1과 도 2를 참조하면, 시스템(10)은 중앙처리장치(central processing unit; CPU; 13), 메인 메모리(15), 및 캐시 메모리(20)를 포함한다. 컴퓨터 시스템(10)은 PC, 이동 통신 장치, PDA, 또는 스마트 카드 등일 수 있다. 예컨대, 상기 캐시 메모리(20)는 L1 캐시 메모리 또는 L2 캐시 메모리일 수 있다.
CPU(13)는 외부로부터 입력되는 명령, 예컨대 기입(write) 명령 또는 독출(read) 명령에 기초하여 상기 기입 명령 또는 상기 독출 명령을 수행하기 위한 애플리케이션을 수행하고, 전체 시스템(10)의 기입 동작 또는 독출 동작을 제어한다.
메인 메모리(15)는 CPU(13)내의 주기억장치(미 도시)보다 데이터를 액세스하 는 동작 속도는 느리나, 상기 주기억장치(또는, 내부기억장치)의 용량 부족을 해결하기 위한 대용량 기억장치(또는, 외부기억장치)이다.
메인 메모리(15)는 하드 디스크 드라이브(HDD; Hard Disk Drive), 플로피 디스크 드라이브(FDD; Floppy Disk Drive), 콤팩트 디스크 롬 드라이브(CD-ROM Drive; Compact Disk Read Only Memory Drive), 또는 플레쉬 EEPROM과 같은 불휘발성 메모리 장치 등일 수 있다.
캐시 메모리(20)는 동작 속도가 서로 다른 CPU(13)와 메인 메모리(15) 사이에 접속된다. 캐시 메모리(20)는 CPU(13)로부터 출력되는 독출 어드레스(RADD)를 포함하는 독출 명령에 응답하여 독출 어드레스(RADD)와 태그 메모리(27)에 저장된 태그를 서로 비교하고, 그 비교 결과에 따라 히트(HIT) 또는 미스(MISS)를 판별한다.
판결 결과 히트(HIT)인 경우, 캐시 메모리(20)는 독출 어드레스(RADD)에 상응하는 데이터를 데이터 메모리(23)로부터 독출하고, 독출된 데이터(DATA)를 CPU (13)로 출력한다. 미스(MISS)인 경우, 캐시 메모리(20)는 독출 어드레스(RADD)에 상응하는 데이터를 시스템 버스(39)를 통하여 메인 메모리(15)로부터 독출하고 독출된 데이터(DATA)를 CPU(13)로 출력하고 또한 독출된 데이터(DATA)를 데이터 메모리(23)에 저장한다.
캐시 메모리(20)는 CPU(13)로부터 출력되는 기입 어드레스(WADD)를 포함하는 기입 명령에 응답하여 기입 데이터를 기입 어드레스(WADD)에 의하여 지정된 영역, 예컨대 데이터 메모리(23) 및/또는 메인 메모리(15)에 기입한다.
캐시 메모리(20)는 메인 메모리(15)와 블록(block) 단위로 데이터를 주고 받는다. 상기 블록은 태그와 데이터를 포함하는 다수의 워드들을 포함한다. 상기 블록의 크기(예컨대, 8바이트, 16바이트, 32바이트, 64바이트, 또는 128바이트 등)는 컴퓨터 시스템(10)의 구조, 예컨대 시스템 버스(39), 또는 데이터 메모리(23)의 구조에 따라 다양해 질 수 있다.
본 명세서에서 사용되는 캐시 메모리(20)는 데이터 액세스 속도를 향상시키기 위하여 동작 속도가 서로 다른 CPU(13)와 메인 메모리(15) 사이에 존재하는 캐시 메모리를 가리키지만, 서로 다른 동작 속도로 인하여 발생하는 데이터의 손실을 막기 위하여 메인 메모리와 디스크 예컨대, 콤팩트 디스크 롬 드라이브 사이에 사용하는 버퍼 캐시(buffer cache), 또는 라이트 버퍼(write buffer)를 포함한다. 이와 같이 본 발명의 캐시 메모리(20)는 동작 속도가 서로 다른 모든 장치들 사이에 사용될 수 있다.
도 2를 참조하면, 캐시 메모리(20)는 데이터 메모리(23), 교체 정보 메모리(24), 더티 값 메모리(25), 태그 메모리(27), 태그 비교부(28), 라이트 백 결정부(30), 라이트 백 선택부(33), 및 라이트 백 제어부(35)를 포함한다. 도 2에서는 설명의 편의를 위하여 캐시 메모리(20)와 CPU(13), 메인 메모리(15), 및 시스템 버스(39)가 함께 도시되었다.
데이터 메모리(23)는 이전에 액세스된 다수의 블록들 각각에 상응하는 데이터를 저장한다.
태그 메모리(27)는 태그 비교부(28)가 CPU(13)로부터 출력된 독출 어드레 스(RADD) 또는 기입 어드레스(WADD)에 응답하여 히트(HIT) 또는 미스(MISS)를 판별할 수 있도록, 상기 다수의 블록들 각각에 상응하는 각각의 태그를 저장한다.
데이터 메모리(23)와 태그 메모리(27) 각각은 SRAM, 또는 레지스터(register)로 구현될 수 있다.
태그 비교 부(28)는 CPU(13)으로부터 출력되는 독출 어드레스(RADD)에 응답하여, 수신된 독출 어드레스(RADD)와 태그 메모리(27)에 저장된 다수의 태그들 각각을 비교하고, 그 비교 결과로서 히트(HIT) 또는 미스(MISS)를 판별한다.
판단 결과 히트(HIT)인 경우, 데이터 메모리(23)는 라이트 백 제어부(35)로부터 출력되는 독출 동작 신호(AS1)에 응답하여 독출 어드레스(RADD)에 상응하는 데이터(DATA)를 즉시 CPU(13)로 출력한다.
그러나, 판단 결과 미스(MISS)인 경우, 라이트 백 제어부(35)는 메인 메모리 (15)로 독출 어드레스(RADD)를 포함하는 데이터 요청 신호를 전송하고, 독출 어드레스(RADD)에 상응하는 데이터(DATA)를 메인 메모리(15)로부터 독출하고, 독출된 데이터를 데이터 메모리(23)로 전송하는 동시에 CPU(13)로 출력한다.
더티 값 메모리(25)는 데이터 메모리(23)에 저장된 다수의 블록들 각각에 해당하는 각각의 더티 값(dirty value)을 저장한다. 상기 각각의 더티 값은 다수의 블록들 각각에 포함된 데이터의 갱신(update) 또는 기입(write) 여부를 나타낸다.
더티 값 메모리(25)는 블록이 기입 데이터를 포함하지 않는 경우, 즉 데이터 메모리(23) 내에 상기 블록에 저장된 데이터와 메인 메모리(15) 내에 저장된 데이터가 동일할 때, 상기 블록에 해당하는 더티 값을 제1레벨(예컨대, 데이터 "0", 로 우 레벨)로 설정할 수 있다.
더티 값 메모리(25)는, 블록이 기입 데이터를 포함하는 경우, 즉 데이터 메모리(23) 내에 상기 블록에 저장된 데이터와 메인 메모리(15) 내에 저장된 데이터가 동일하지 않을 때, 상기 블록에 해당하는 더티 값을 제2 레벨(예컨대, 데이터 "1", 하이 레벨)로 설정할 수 있다.
예컨대, 제1 레벨을 갖는 더티 값은, CPU(15)로부터 출력되는 기입 명령에 응답하여 데이터 메모리(23) 내의 해당 블록에 저장된 데이터를 기입 데이터로 갱신할 때, 제2 레벨을 갖는 더티 값으로 변경된다.
또한, 제2 레벨을 갖는 더티 값은, 해당 블록에 포함된 기입 데이터가 메인 메모리(15)로 라이트 백 될 때, 제1 레벨을 갖는 더티 값으로 변경된다.
교체 정보 메모리(24)는 라이트 백 결정부(30)가 교체 알고리즘에 따라 다수의 블록들 중에서 어느 하나의 블록을 선택할 수 있도록 상기 다수의 블록들 각각에 해당하는 각각의 교체 정보를 저장한다. 상기 각각의 교체 정보는 더티 값에 해당하는 블록의 정보, 블록의 액세스 횟수, 또는 블록의 데이터 갱신 시간 등일 수 있다.
라이트 백 결정부(30)는 더티 값 메모리(25)로부터 출력되는 각각의 더티 값 및/또는 교체 정보 메모리(24)로부터 출력되는 각각의 교체 정보를 수신하고, 상기 각각의 더티값 및/또는 상기 각각의 교체 정보에 기초하여 교체 알고리즘에 따라 다수의 블록들 중에서 적어도 어느 하나의 블록을 선택하여 라이트 백 동작의 수행 여부를 판단한다.
이때 사용되는 교체 알고리즘은 LRU (Least Recently Used), LFU(Least Frequently Used), 또는 FIFO(First in First out) 등일 수 있다.
따라서, 라이트 백 결정부(30)는 더티 값 메모리(25)로부터 출력된 각각의 더티 값 및/또는 교체 정보 메모리(24)로부터 출력된 교체 정보에 기초하여 다수의 블록들 중에서 어떤 블록이 라이트 백될 블록(즉, '라이트 백 블록')인지의 여부를 판단한다. 즉, 라이트 백 결정부(30)는 상기 더티 값 및/또는 상기 교체 정보에 기초하여 어얼리-라이트 백 동작이 수행될 적어도 하나의 블록을 선택한다.
라이트 백 제어부(35)는 쓰기 정책(write policy) 정보, 및 시스템 버스(39)의 상태를 모니터링한 결과에 따라 발생한 모니터링 신호를 수신하고, 모니터링 결과에 따라, 수신된 쓰기 정책 정보와 모니터링 신호에 기초하여 상기 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 어얼리-라이트 백(early-write back) 동작을 수행하도록 데이터 메모리(23)를 제어한다.
상기 쓰기 정책 정보는 시스템 정보(SD), 라이트 백 블록의 더티 값, 또는 교체 정보 중에서 적어도 하나일 수 있다.
상기 시스템 정보(SD)는 캐시 메모리(20)의 구조, 또는 SFR(special function resistor)의 설정 등에 기초하여 다양하게 결정될 수 있다. 예컨대, 시스템 정보(SD)는 캐시 메모리(20)의 구조(예컨대, 캐시 메모리(20)가 라이트 백 캐시인지 또는 라이트 쓰루 캐시인지), 다수의 블록들 중에서 라이트 백 블록의 개수, 또는 어얼리-라이트 백 동작의 수행 여부 중에서 적어도 하나일 수 있다.
캐시 메모리(20)는 상기 라이트 백 블록의 개수, 및 어얼리-라이트 백 동작 의 수행 여부를 저장하는 SFR을 설정하기 위한 컨트롤러(미 도시)를 더 포함할 수 있다. 상기 컨트롤러는 캐시 메모리(20)의 내부 또는 외부에 구현될 수 있다. 상기 컨트롤러가 캐시 메모리(20)의 외부에 구현되는 경우, 상기 컨트롤러는 CPU(13)의 일부로서 구현될 수 있다.
라이트 백 선택부(33)는 시스템 정보(SD)를 저장하고, 상기 시스템 정보(SD)에 기초하여 상기 다수의 블록들 중에서 적어도 어느 하나의 블록의 데이터에 대한 어얼리-라이트 백 동작을 수행하기 위한 라이트 백 요청 신호(RS1)를 발생한다.
예컨대, 라이트 백 선택부(33)는 SFR에 설정된 어얼리-라이트 백 동작의 수행 여부를 나타내는 정보와 상기 캐시 메모리의 구조가 라이트 백 캐시라고 설정된 시스템 정보(SD)에 기초하여 어얼리-라이트 백 동작을 수행하기 위한 라이트 백 요청 신호(RS1)를 발생할 수 있다.
이에 따라, 본 발명의 캐시 메모리(20)는 미스 동작시 발생되는 CPU(13)로부터 요청된 데이터를 메인 메모리(15)로부터 독출하여 캐시 메모리(20) 내에 저장하기 위하여 적어도 어느 하나의 블록을 비워달라는 교체 요청 없이도 시스템 정보(SD)에 기초하여 라이트 백 블록의 데이터에 대하여 어얼리-라이트 백 동작을 수행할 수 있다.
라이트 백 제어부(35)는 라이트 백 요청신호(RS1)에 응답하여 라이트 백 결정부(30)로부터 시스템 정보(SD), 예컨대, 라이트 백 블록의 개수에 기초하여 라이트 백 결정 부(30)로부터 블록의 교체 정보 및/또는 더티 값을 순차적으로 수신하고, 상기 교체 정보 및/또는 상기 더티 값에 기초하여 라이트 백 동작신호(WB1)를 발생한다.
또한, 라이트 백 제어부(35)는 주기적으로 시스템 버스(39)의 상태를 모니터링하고, 모니터링 결과에 따라 발생된 모니터링 신호에 응답하여 상기 라이트 백 동작신호(WB1)을 데이터 메모리(23)로 출력할 수 있다.
예컨대, 모니터링 결과에 따라, 시스템 버스(39)가 유휴 상태(idle mode)인 경우 라이트 백 제어부(35)는 데이터 메모리(23)로 라이트 백 동작신호(WB1)을 출력할 수 있다.
반대로, 시스템 버스(39)가 비지 상태(busy state), 예컨대, CPU(13) 또는 외부 기기의 데이터 전송으로 인해 시스템 버스(39)에 부하(load)가 실린 경우, 라이트 백 제어부(35)는 라이트 백 동작신호(WB1)를 일시적으로 홀딩(holding)하고 다시 시스템 버스(39)의 동작 상태를 모니터링할 수 있다.
데이터 메모리(23)는 라이트 백 동작신호(WB1)에 해당하는 라이트 백 블록의 데이터를 시스템 버스(39)를 통해 메인 메모리(15)로 전송한다.
또한, 라이트 백 제어부(35)는 데이터 메모리(23)로부터 출력된 라이트 백 블록의 데이터를 시스템 버스(39)를 통하여 메인 메모리(15)로 전송하는 도중에, 다른 장치가 데이터 전송을 시작하는 경우 어얼리-라이트 백 동작을 중단하고 다시 시스템 버스(39)의 동작 상태를 모니터링할 수 있다.
즉, 라이트 백 제어부(35)는 상기 모니터링 신호와 라이트 백 결정부(30)에 의하여 선택된 적어도 하나의 블록에 대한 정보를 수신하고, 수신된 상기 모니터링 신호와 수시된 적어도 하나의 블록에 대한 정보에 기초하여 어얼리-라이트 백 동작 을 수행하도록 데이터 메모리(23)를 제어한다.
상술한 바와 같이, 데이터 메모리(23)는 라이트 백 제어부(35)의 제어하에, 라이트 백 동작신호(WB1)에 응답하여 해당 라이트 백 블록의 데이터를 시스템 버스(39)를 통하여 메인 메모리(15)로 라이트 백 동작을 수행할 수 있다.
본 발명의 실시 예에 따른 캐시 메모리(20)는 데이터 메모리(23)로부터 메인 메모리(15)로 출력되는 라이트 백 블록의 데이터를 일시적으로 저장하기 위한 라이트 백 버퍼(write-back buffer; 37)를 더 포함할 수 있다.
이 경우, 라이트 백 제어부(35)는 라이트 백 요청 신호(RS1)와 시스템 정보(SD)에 기초하여 라이트 백 결정부(30)로부터 출력되는 적어도 하나의 라이트 백 블록의 교체 정보 및/또는 더티 값을 수신하고, 상기 라이트 백 블록의 교체 정보 및/또는 상기 더티 값에 기초하여 발생되는 라이트 백 동작 신호(WB1)를 데이터 메모리(23)로 출력한다.
데이터 메모리(23)는 라이트 백 동작신호(WB1)에 응답하여 라이트 백 동작 신호에 해당하는 블록의 데이터를 라이트 백 버퍼(37)로 출력한다.
라이트 백 제어부(35)는 주기적으로 시스템 버스(39)를 모니터링하고, 상기 시스템 버스가 유휴 상태(idle state)일 때 라이트 백 출력 신호(WB2)를 출력할 수 있다.
라이트 백 버퍼(37)는 라이트 백 출력 신호(WB2)에 응답하여 라이트 백 버퍼(37)에 저장된 데이터를 순차적으로 시스템 버스(39)로 전송하여 메인 메모리 (15)로 전송한다.
본 발명의 캐시 메모리(20)는 다시 쓰일 가능성이 거의 없거나 낮은 다수의 라이트 백 블록의 데이터를 미리 메인 메모리(15)에 라이트 백 함으로써 메모리 액세스 동작시 발생할 수 있는 병목 현상을 제거할 수 있는 효과가 있다. 이에 따라 캐시 메모리(20)는 데이터 요청 신호에 상응하는 메모리 액세스 동작을 좀더 짧은 대기 시간 내에 할 수 있으므로, 캐시 메모리 및/또는 라이트 버퍼의 미스 패널티 (miss penalty)가 감소한다. 따라서, 캐시 메모리(20)의 성능은 향상된다.
예컨대, 캐시 메모리(20)가 라이트 백 캐시인 경우 시스템 버스(39)의 갑작스러운 병목 현상을 완화시킬 수 있어 결국 미스(MISS) 동작시 미스 패널티를 줄여 캐시 메모리의 성능을 향상시킬 수 있다.
또한, 캐시 메모리(20)가 라이트 버퍼인로 쓰이는 경우에도 다수개의 블록들을 미리 라이트 백 함으로써 상기 라이트 버퍼의 블록에 저장된 데이터를 메인 메모리(15)에 라이트하고, FIFO 구조로 되어 있는 라이트 버퍼의 어느 한 블록 내에 저장된 데이터를 다른 블록으로 옮기는 추가적인 시간이 필요 없이 새로운 입력을 받아들일 수 있다.
이와 같이, 본 발명의 캐시 메모리(20)는 시스템 버스(39)가 유휴 상태일 때 라이트 백 블록에 대하여 어얼리-라이트 백 동작을 수행함으로써 캐시 메모리 또는 라이트 버퍼의 미스 패널티를 현저히 줄일 수 있는 효과가 있다.
또한, 캐시 메모리 또는 라이트 버퍼를 사용하는 CPU(13)가 미스 동작시 데이터를 액세스하는 시간을 줄일 수 있으므로 시스템의 성능을 향상시킬 수 있다.
도 3은 본 발명의 실시 예에 따른 라이트 백 동작을 수행하는 방법의 흐름도 를 나타낸다.
도 1, 도 2, 및 도 3을 참조하여, 캐시 메모리(20)의 데이터 메모리(23)에 저장된 다수의 블록들 중에서 적어도 어느 하나의 블록에 포함된 라이트 백 데이터를 메인 메모리(15)에 라이트 백 하는 동작을 설명하면 다음과 같다.
우선, 기입 데이터가 데이터 메모리(23)의 임의의 블록에 저장되어 있다고 가정한다.
라이트 백 선택부(33)는 캐시 메모리의 구조, 및 SFR의 설정에 기초하여 어얼리-라이트 백 동작의 수행 여부와 다수의 블록들 중에서 라이트 백 블록의 개수를 포함하는 시스템 정보(SD)를 저장한다(S110).
캐시 메모리(20)의 라이트 백 선택부(33)는 시스템 정보(SD)에 기초하여 라이트 백 블록에 대한 어얼리-라이트 백 동작의 수행 여부를 결정할 수 있다(S120).
우선, 라이트 백 선택부(33)는 어얼리-라이트 백 동작의 수행 여부를 나타내는 시스템 정보(SD)에 기초하여 어얼리-라이트 백 동작을 수행할지, 또는 수행하지 않을지를 결정한다(S120과 S125).
그 후, 라이트 백 선택부(33)는 캐시 메모리(20)의 구조를 나타내는 시스템 정보(SD)에 기초하여 어얼리-라이트 백 동작을 실행시키기 위한 라이트-백 요청 신호(WB1)을 발생한다.
예컨대, 라이트 백 선택부(33)는 캐시 메모리(20)가 라이트 백 캐시인 경우에만 어얼리-라이트 백 동작을 수행한다고 결정한다(S130).
반대로, 라이트 백 선택부(33)는, 캐시 메모리(20)가 라이트 백 캐시가 아닌 경우, 블록의 데이터에 대하여 어얼리-라이트 백 동작을 수행하지 않는다고 판단한다(S135). 또한, 라이트 백 선택부(33)는 캐시 메모리(20)가 라이트 백 캐시일지라도 시스템 정보(SD), 예컨대, 어얼리-라이트 백 동작의 수행을 지시하는 SFR에 상기 수행을 지시하는 정보가 설정되어 있지 않을 때, 어얼리-라이트 백 동작을 수행하지 않는다고 판단한다(S135).
다시 말하면, 라이트 백 선택부(33)는 캐시 메모리(20)가 라이트 백 캐시이고 어얼리 라이트 백 동작의 수행을 지시하는 값이 SFR에 저장된 경우에만 라이트 백 요청 신호(RS1)를 발생한다.
이때, 시스템 정보(SD)를 비교하는 순서는 바뀌어도 상관없으며, 시스템 정보(SD)는 캐시 메모리(20)에 따라 어얼리-라이트 백 동작의 수행 여부를 결정하기 위해 다양한 범위에서 선택될 수 있는 정보이다.
라이트 백 결정부(30)는 더티 값 메모리(25)로부터 출력된 각각의 더티 값 및/또는 교체 정보 메모리(24)로부터 출력된 각각의 교체 정보에 기초하여 다수의 블록들 중에서 적어도 하나의 라이트 백 블록을 선택한다(S140).
또한, 라이트 백 결정부(30)는 선택된 라이트 백 블록에 해당하는 더티 값에 기초하여 상기 블록의 데이터를 라이트 백 할지 판별한다(S150).
판별된 블록이 기입 데이터를 포함하는 경우 상기 블록은 라이트 백 블록으로 선택되고, 판별된 블록이 기입 데이터를 포함하지 않는 경우 상기 블록의 데이터는 상기 블록이 비워져야 할 때 메인 메모리(15)로 라이트 백 되지 않고 삭제된다(S155).
캐시 메모리(20)의 라이트 백 제어부(35)는 라이트 백 요청신호(RS1)에 응답하여 다수의 블록들 중에서 적어도 하나의 블록의 교체 정보 및/또는 더티 값에 기초하여 라이트 백 동작 신호(WB1)를 생성한다.
또한, 라이트 백 제어부(35)는 주기적으로 시스템 버스(39)를 모니터링하고, 시스템 버스(39)가 유휴 상태인 경우 데이터 메모리(23)로 라이트 백 동작신호(WB1)을 출력한다(S160).
데이터 메모리(23)는 라이트 백 동작신호(WB1)에 해당하는 데이터를 독출하여 시스템 버스(39)를 통해 순차적으로 메인 메모리(15)로 전송한다(S170).
상술한 바와 같이, 본 발명의 캐시 메모리(20)는 시스템 버스(39)가 유휴 상태에 있을 때 미리 다수의 라이트 백 블록의 데이터를 메인 메모리(15)로 전송함으로써 캐시 메모리(20)의 병목 현상을 해소할 수 있는 효과가 있다.
그리고, 본 발명의 캐시 메모리(20)는 비워져야 할 블록의 라이트 백 동작을 수행할 필요없이 데이터 요청 신호에 응답하여 바로 한 블록을 갱신할 수 있으므로 미스 동작시에도 마치 히트 동작시와 유사한 성능을 낼 수 있다.
또한, 본 발명의 실시 예에 따른 라이트 버퍼를 사용하는 마스터, 프로세서, 또는 주변 기기는 비워져야 할 해당 블록이 미리 라이트 백 되었기 때문에 지연 없이 라이트 버퍼를 액세스할 수 있다.
이와 같이, 병목 현상이 해소됨에 따라 캐시 메모리(20)에서 메인 메모리(15)로 기입 명령 또는 독출 명령시 소요되는 대기 시간(latency)을 줄어들어 미스 패널티가 감소함으로써 상기 캐시 메모리(20)를 포함하는 시스템은 고속으로 메 인 메모리(15)를 액세스할 수 있는 효과가 있다
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 컴퓨터 시스템의 개략적인 블록도이다.
도 2는 본 발명의 실시 예에 따라 라이트 백 동작을 수행하는 캐시 메모리의 블록도이다.
도 3은 본 발명의 실시 예에 따른 라이트 백 동작을 수행하는 방법의 흐름도를 나타낸다.

Claims (13)

  1. 다수의 블록들의 데이터를 저장하기 위한 데이터 메모리; 및
    쓰기 정책 정보, 및 시스템 버스의 상태를 모니터링한 결과에 따라 발생한 모니터링 신호에 기초하여 상기 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 어얼리-라이트 백(early-write back) 동작을 수행하도록 상기 데이터 메모리를 제어하기 위한 라이트 백 제어부를 포함하는 캐시 메모리.
  2. 제1항에 있어서, 상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 상기 캐시 메모리의 구조에 대한 정보, 상기 다수의 블록들 중에서 라이트 백 블록의 개수에 대한 정보, 또는 상기 다수의 블록들에 대한 더티 값들 중에서 적어도 하나를 포함하는 캐시 메모리.
  3. 제1항에 있어서, 상기 캐시 메모리는,
    상기 다수의 블록들에 대한 더티 값들을 저장하는 더티 값 메모리; 및
    상기 더티 값 메모리로부터 출력되는 상기 더티 값들에 기초하여 상기 어얼리-라이트 백 동작이 수행될 상기 적어도 하나의 블록을 선택하기 위한 라이트 백 결정부를 더 포함하는 캐시 메모리.
  4. 제1항에 있어서, 상기 캐시 메모리는,
    상기 다수의 블록들에 대한 더티 값들을 저장하는 더티 값 메모리; 및
    상기 더티 값 메모리로부터 출력되는 상기 더티 값들에 기초하여 상기 어얼리-라이트 백 동작이 수행될 상기 적어도 하나의 블록을 선택하기 위한 라이트 백 결정부; 및
    상기 쓰기 정책 정보에 응답하여 라이트 백 요청 신호를 발생하기 위한 라이트 백 선택부를 더 포함하며,
    상기 라이트 백 제어부는,
    상기 라이트 백 요청 신호에 응답하여 상기 모니터링 신호와 상기 라이트 백 결정부에 의하여 선택된 상기 적어도 하나의 블록에 대한 정보를 수신하고, 수신된 상기 모니터링 신호와 수신된 상기 적어도 하나의 블록에 대한 정보에 기초하여 상기 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어하는 캐시 메모리.
  5. 제4항에 있어서, 상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 또는 상기 캐시 메모리의 구조에 대한 정보 중에서 적어도 하나를 포함하는 캐시 메모리.
  6. 캐시 메모리로부터 출력된 라이트 백 블록의 데이터를 시스템 버스를 통하여 수신하고 저장하는 메인 메모리를 포함하는 시스템에 있어서,
    상기 캐시 메모리는,
    다수의 블록들의 데이터를 저장하기 위한 데이터 메모리; 및
    쓰기 정책 정보, 및 상기 시스템 버스의 상태를 모니터링한 결과에 따라 발생된 모니터링 신호에 기초하여 상기 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어하기 위한 라이트 백 제어부를 포함하는 시스템.
  7. 제6항에 있어서, 상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 상기 캐시 메모리의 구조에 대한 정보, 상기 다수의 블록들 중에서 라이트 백 블록의 개수에 대한 정보, 또는 상기 다수의 블록들에 대한 더티 값들 중에서 적어도 하나를 포함하는 시스템.
  8. 제6항에 있어서, 상기 캐시 메모리는,
    상기 다수의 블록들에 대한 더티 값들을 저장하는 더티 값 메모리; 및
    상기 더티 값 메모리로부터 출력되는 상기 더티 값들에 기초하여 상기 어얼리-라이트 백 동작이 수행될 상기 적어도 하나의 블록을 선택하기 위한 라이트 백 결정부를 더 포함하는 시스템.
  9. 제6항에 있어서, 상기 캐시 메모리는,
    상기 다수의 블록들에 대한 더티 값들을 저장하는 더티 값 메모리;
    상기 더티 값 메모리로부터 출력되는 상기 더티 값들에 기초하여 상기 어얼 리-라이트 백 동작이 수행될 상기 적어도 하나의 블록을 선택하기 위한 라이트 백 결정부; 및
    상기 쓰기 정책 정보에 응답하여 라이트 백 요청 신호를 발생하기 위한 라이트 백 선택부를 더 포함하며,
    상기 라이트 백 제어부는,
    상기 라이트 백 요청 신호에 응답하여 상기 모니터링 신호와 상기 라이트 백 결정부에 의하여 선택된 상기 적어도 하나의 블록에 대한 정보를 수신하고, 수신된 상기 모니터링 신호와 수신된 상기 적어도 하나의 블록에 대한 정보에 기초하여 상기 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어하는 시스템.
  10. 제9항에 있어서, 상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 또는 상기 캐시 메모리의 구조에 대한 정보 중에서 적어도 하나를 포함하는 시스템.
  11. 쓰기 정책 정보와 시스템 버스의 상태를 모니터링한 결과에 따라 발생한 모니터링 신호를 수신하는 단계; 및
    상기 쓰기 정책 정보와 상기 모니터링 신호에 기초하여 데이터 메모리에 저장된 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어하는 단계를 포함하는 캐시 메모리의 동작 방법.
  12. 제11항에 있어서, 상기 쓰기 정책 정보는 상기 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 상기 캐시 메모리의 구조에 대한 정보, 상기 다수의 블록들 중에서 라이트 백 블록의 개수에 대한 정보, 또는 상기 다수의 블록들에 대한 더티 값들 중에서 적어도 하나를 포함하는 시스템.
  13. 어얼리-라이트 백 동작의 수행 여부에 대한 정보, 또는 캐시 메모리의 구조에 대한 정보 중에서 적어도 하나에 기초하여 라이트 백 요청 신호를 발생하는 단계;
    상기 라이트 백 요청 신호에 응답하여 시스템 버스의 상태를 모니터링한 결과에 따라 발생된 모니터링 신호와 라이트 백 결정부에 의하여 선택된 적어도 하나의 블록에 대한 더티 값을 수신하는 단계; 및
    수신된 상기 적어도 하나의 블록에 대한 더티 값과 수신된 상기 모니터링 신호에 기초하여 데이터 메모리에 저장된 상기 다수의 블록들 중에서 선택된 적어도 하나의 블록에 대하여 상기 어얼리-라이트 백 동작을 수행하도록 상기 데이터 메모리를 제어하는 단계를 포함하는 캐시 메모리의 동작 방법.
KR1020070130741A 2007-12-14 2007-12-14 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템 Active KR101472967B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070130741A KR101472967B1 (ko) 2007-12-14 2007-12-14 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템
US12/334,822 US8332591B2 (en) 2007-12-14 2008-12-15 Cache memory unit with early write-back capability and method of early write back for cache memory unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070130741A KR101472967B1 (ko) 2007-12-14 2007-12-14 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템

Publications (2)

Publication Number Publication Date
KR20090063401A true KR20090063401A (ko) 2009-06-18
KR101472967B1 KR101472967B1 (ko) 2014-12-16

Family

ID=40754783

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070130741A Active KR101472967B1 (ko) 2007-12-14 2007-12-14 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템

Country Status (2)

Country Link
US (1) US8332591B2 (ko)
KR (1) KR101472967B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773431B2 (en) * 2009-11-10 2017-09-26 Maxim Integrated Products, Inc. Block encryption security for integrated microcontroller and external memory system
EP3451176B1 (en) * 2011-09-30 2023-05-24 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
CN102779017B (zh) * 2012-06-29 2016-04-13 华中科技大学 一种固态盘中数据缓存区的控制方法
WO2015012871A1 (en) * 2013-07-26 2015-01-29 Intel Corporation Methods and apparatus for supporting persistent memory
US10198358B2 (en) * 2014-04-02 2019-02-05 Advanced Micro Devices, Inc. System and method of testing processor units using cache resident testing
GB2526849B (en) * 2014-06-05 2021-04-14 Advanced Risc Mach Ltd Dynamic cache allocation policy adaptation in a data processing apparatus
TWI611405B (zh) * 2015-11-25 2018-01-11 旺宏電子股份有限公司 將資料自記憶體寫回儲存裝置的方法及應用其的資料存取系統
US10120806B2 (en) 2016-06-27 2018-11-06 Intel Corporation Multi-level system memory with near memory scrubbing based on predicted far memory idle time
JP6841128B2 (ja) * 2017-03-30 2021-03-10 ブラザー工業株式会社 サーバ、及び、サーバのためのコンピュータプログラム
CN118689800A (zh) * 2023-03-21 2024-09-24 华为技术有限公司 缓存器及其控制方法、计算机系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427184B1 (en) * 1997-06-03 2002-07-30 Nec Corporation Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams
US6446145B1 (en) * 2000-01-06 2002-09-03 International Business Machines Corporation Computer memory compression abort and bypass mechanism when cache write back buffer is full
US6779053B2 (en) * 2001-12-21 2004-08-17 Intel Corporation Sequential data transfer detection
US7194589B2 (en) * 2003-08-22 2007-03-20 Oracle International Corporation Reducing disk IO by full-cache write-merging
US20060064546A1 (en) * 2004-07-28 2006-03-23 Hiroshi Arita Microprocessor

Also Published As

Publication number Publication date
KR101472967B1 (ko) 2014-12-16
US8332591B2 (en) 2012-12-11
US20090157954A1 (en) 2009-06-18

Similar Documents

Publication Publication Date Title
KR101472967B1 (ko) 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템
US6931494B2 (en) System and method for directional prefetching
US5958040A (en) Adaptive stream buffers
KR101443231B1 (ko) 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템
US6542968B1 (en) System and method for managing data in an I/O cache
JP4008826B2 (ja) オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置
US7415575B1 (en) Shared cache with client-specific replacement policy
US8131931B1 (en) Configurable cache occupancy policy
CN113853590A (zh) 伪随机路选择
JP2003131946A (ja) キャッシュメモリ制御装置及び方法
US20100281222A1 (en) Cache system and controlling method thereof
CN103345368A (zh) 一种在缓冲存储器中缓存数据的方法
US20080301372A1 (en) Memory access control apparatus and memory access control method
EP1030243B1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
US20070079070A1 (en) Cache controller
US8266379B2 (en) Multithreaded processor with multiple caches
US6570573B1 (en) Method and apparatus for pre-fetching vertex buffers in a computer system
US9529718B2 (en) Batching modified blocks to the same dram page
US6976130B2 (en) Cache controller unit architecture and applied method
JPH06202951A (ja) キャッシュ・メモリ・システム
US6839806B2 (en) Cache system with a cache tag memory and a cache tag buffer
EP4109282A1 (en) Methods for bias mode management in memory systems
JP2002041358A (ja) プロセッサシステム
US8244980B2 (en) Shared cache performance
JP6784033B2 (ja) 方法、キャッシュシステム及びデータ監視部

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20071214

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20121120

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20071214

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20140117

Patent event code: PE09021S01D

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20140619

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20141030

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20141209

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20141210

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20201130

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20211124

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20241126

Start annual number: 11

End annual number: 11