[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20150057798A - 캐시 제어 장치 및 방법 - Google Patents

캐시 제어 장치 및 방법 Download PDF

Info

Publication number
KR20150057798A
KR20150057798A KR1020130141596A KR20130141596A KR20150057798A KR 20150057798 A KR20150057798 A KR 20150057798A KR 1020130141596 A KR1020130141596 A KR 1020130141596A KR 20130141596 A KR20130141596 A KR 20130141596A KR 20150057798 A KR20150057798 A KR 20150057798A
Authority
KR
South Korea
Prior art keywords
level cache
cache
data
level
write
Prior art date
Application number
KR1020130141596A
Other languages
English (en)
Inventor
한진호
권영수
신경선
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020130141596A priority Critical patent/KR20150057798A/ko
Priority to US14/253,466 priority patent/US20150143045A1/en
Publication of KR20150057798A publication Critical patent/KR20150057798A/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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

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 레벨 캐시와, 제1 및 제2 레벨 캐시와 연결되어, 제1 및 제2 레벨 캐시로부터 코어로 전달되는 데이터를 임시 저장하는 프리펫치 버퍼 및 제1 레벨 캐시와 연결되고, 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 라이트 버퍼를 포함한다.
또한, 본 발명에 따른 캐시 제어 방법은 데이터 요청 명령을 수신하는 단계와, 제1레벨 캐시에 대하여 데이터 요청 명령에 따라 데이터를 호출하는 단계와, 제1 레벨 캐시가 상기 데이터 호출을 실패하는 경우, 데이터 요청 명령을 포함하는 라인에 대한 연속 라인을 읽는 단계와, 캐시 읽기 동작 시 제1 레벨 캐시 또는 제2 레벨 캐시로부터 코어로 전달되는 데이터를 프리펫치 버퍼에 임시 저장하는 단계 및 캐시 쓰기 동작 시 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 단계를 포함한다.

Description

캐시 제어 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING A CACHE}
본 발명은 히트 레이트(hit rate)를 증가하고, 미스 페널티(miss penalty)를 줄일 수 있는 캐시(cache) 제어 장치 및 방법에 관한 것이다.
프로세서는 외부 저장장치에 보관된 명령어를 읽고, 명령어를 분석하여 명령어가 지정하는 피연산자(operand)를 이용한 특정 연산(operation)을 수행하고, 다시 외부 저장장치에 저장함으로써 저장된 프로그램에 의하여 특정 기능을 수행하는 장치이다.
이러한 프로세서는 다양한 분야에 적용되어 복잡하고 다양한 기능을 수행하고 있으며, 프로세서의 기능은 비디오 부호/복호, 오디오 부호/복호, 네트워크 패킷 라우팅, 시스템 제어 등 다양한 응용분야에서 사용되고 있다.
다양한 응용분야에 프로세서가 적용됨에 따라, 다양한 형태의 명령어 코드 패턴을 처리하고, 무선통신을 위한 기지국에서부터 배터리로 전원이 공급되는 장치(예: 무선 통신 단말기)까지 다양한 형태의 전원 공급이 이루어지는 장치에서 사용되므로, 프로세서의 성능뿐 아니라 저전력 기능에 대한 중요성이 부각되고 있다.
프로세서의 기본적인 구성은 코어(Core), TLB(Translation Lookaside Buffer) 및 캐시(Cache)이다.
프로세서가 수행할 작업은 다수의 명령어(instruction)의 조합으로 규정되며, 이러한 명령어는 메모리에 저장되어 있고, 프로세서에 이러한 명령어들이 순차적으로(sequentially) 입력되어, 매 클럭 사이클마다 프로세서는 특정 연산을 수행하게 된다.
TLB는 운영체제 기반의 어플리케이션 구동을 위하여 가상 어드레스를 물리 어드레스로 변환하는 기능을 하는 구성이다.
캐시는 시스템 성능의 향상을 위한 구성으로서, 주기억 장치에 읽어 들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억장치로서, 외부 메모리에 저장되어 있는 명령어를 칩 내부에 잠시 저장함으로써 프로세서의 속도를 증대시키는 역할을 한다.
외부 메모리는 수 Gbyte(256Gbytes 이상)이상의 대용량의 명령어를 저장할 수 있는 반면, 칩 내부에 구현할 수 있는 메모리는 수 Mbyte 수준이며, 캐시는 외부의 대용량 메모리를 칩 내부에 잠시 저장하는 구성이다.
코어가 외부 메모리에서 데이터를 읽어오기 위해서는 10 내지 100 사이클의 상당한 시간이 소모되는 바, 이는 코어가 작업을 하지 않는 유휴(idle) 상태가 장시간 소요되는 문제점이 있다.
또한, 캐시 사용에 있어 전체적인 시스템 효율의 증가를 위하여, 캐시를 사용함에 있어서 미스(miss)로 인한 페널티(penalty)의 감소 및 히트 레이트(hit rate)의 증가에 대한 필요성이 대두되고 있는 실정이다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 캐시의 히트 레이트(hit rate)를 증가시키고, 미스 페널티(miss penalty)를 감소시키는 것이 가능한 캐시 제어 장치 및 방법을 제공하는 데 목적이 있다.
본 발명에 따른 캐시 제어 장치는 메모리의 데이터를 저장하는 제1 레벨 캐시와, 제1 레벨 캐시와 연결되어, 데이터 요청 명령에 대하여 제1 레벨 캐시가 데이터 호출을 실패하는 경우 프로세서에 의하여 액세스되는 제2 레벨 캐시와, 제1 및 제2 레벨 캐시와 연결되어, 제1 및 제2 레벨 캐시로부터 코어로 전달되는 데이터를 임시 저장하는 프리펫치 버퍼 및 제1 레벨 캐시와 연결되고, 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 라이트 버퍼를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 캐시 제어 방법은 데이터 요청 명령을 수신하는 단계와, 제1레벨 캐시에 대하여 데이터 요청 명령에 따라 데이터를 호출하는 단계와, 제1 레벨 캐시가 상기 데이터 호출을 실패하는 경우, 데이터 요청 명령을 포함하는 라인에 대한 연속 라인을 읽는 단계와, 캐시 읽기 동작 시 제1 레벨 캐시 또는 제2 레벨 캐시로부터 코어로 전달되는 데이터를 프리펫치 버퍼에 임시 저장하는 단계 및 캐시 쓰기 동작 시 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따른 캐시 제어 장치 및 방법은 주소상으로 연속된 라인 요청 시 미스를 방지하여, 상대적으로 작은 용량의 제1 레벨 캐시로 제1 레벨 캐시의 히트 레이트를 높이는 효과가 있다.
또한, 본 발명에 따르면 불필요한 플러시(flush) 동작을 방지하고, 미스 페널티를 감소하는 효과가 있다.
본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명에 따른 캐시 제어 장치를 나타내는 블록도.
도 2는 본 발명에 따른 프리펫치 버퍼의 동작을 나타내는 블록도.
도 3은 본 발명에 따른 라이트 버퍼의 동작을 나타내는 블록도.
도 4는 본 발명에 따른 캐시 제어 방법을 나타내는 순서도.
이하에서는 도면을 참조하면서, 본 발명에 따른 캐시 제어 장치 및 방법의 바람직한 실시예들을 구체적으로 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 발명에 따른 캐시 제어 장치를 나타내는 블록도이다.
도 1을 참조하면, 본 발명에 따른 캐시 제어 장치는 메모리의 데이터를 저장하는 제1 레벨 캐시(210)와, 제 1레벨 캐시(210)와 연결되는 제2 레벨 캐시(220)와, 제1 및 제2 레벨 캐시(210, 220)와 연결되어, 제1 및 제2 레벨 캐시(210, 220)로부터 코어(100)로 전달되는 데이터를 임시 저장하는 프리펫치 버퍼(230) 및 제1 레벨캐시(210)의 어드레스 정보 및 데이터를 수신하는 라이트 버퍼(240)를 포함하여 구성된다.
이 때, 제2 레벨 캐시(220)는 데이터 요청 명령에 대하여 제1 레벨 캐시(210)가 데이터 호출을 실패하는 경우, 프로세서에 의하여 액세스된다.
또한, 제2 레벨 캐시(220)는 연속 기입 캐시(write-through cache)이고, 제1 레벨 캐시(210)와 포함적(inclusive) 캐시 구조를 형성한다.
연속 기입 캐시란, 중앙 처리 장치(CPU)가 주기억 장치 또는 디스크로 데이터를 기입하고자 할 때, 그 데이터는 먼저 캐시로 기입되는데, 이 때 데이터가 캐시에 기입됨과 동시에 주기억 장치 또는 디스크로 기입되는 방식을 지원하는 구조의 캐시이다.
이 때, 상기 프리펫치 버퍼(230)는 상기 제1 레벨 캐시(210) 또는 제2 레벨 캐시(220) 중 적어도 어느 하나의 데이터 읽기 동작 시의 데이터를 수신하고, 수신한 데이터 읽기 동작 시의 데이터를 저장하며, 제1 레벨 캐시(210)의 데이터 호출 실패 시 제2 레벨 캐시(220)의 액세스 이전에 데이터 요청 명령을 포함하는 라인 및 이에 연속된 라인을 읽고, 이 연속 라인을 저장한다.
또한, 제1 레벨 캐시(210)는 데이터 요청 명령에 따라 연속 라인에서 요청된 데이터를 호출한다.
즉, 프리펫치 버퍼(230)는 제1 레벨 캐시(210)의 미스(miss)로 제2 레벨 캐시(220)를 액세스하기에 앞서, 제1 레벨 캐시(210)에서 요청한 미스된 명령어 코드를 포함하는 라인 외에 이 라인에 연속된 라인을 하나 더 읽음으로써, 연속된 라인을 프리펫치 버퍼(230)에 저장하게 된다.
프리펫치 버퍼(230)는 이러한 동작을 통해 제1 레벨 캐시(210)는 미스(miss)에 대한 페널티(penalty)가 있으나, 최대 2 라인의 명령어 코드를 읽음으로써, 제2 레벨 캐시(220)의 액세스 없이 제1 레벨 캐시(210)에서 히트(hit)를 유발할 수 있다.
또한, 라이트 버퍼(240)는 제1 레벨 캐시(210)의 데이터 쓰기 동작 시의 데이터를 수신하고, 수신한 데이터 쓰기 동작 시의 데이터를 저장하며, 복수의 버퍼를 포함하되, 복수의 버퍼는 쓰기 동작 시의 데이터가 연속된 어드레스 정보를 포함하는 경우, 어드레스 정보를 고려하여 복수의 버퍼에 쓰기 동작 시의 데이터를 저장한다.
이 때, 제2 레벨 캐시(220)는 메모리와 제1 레벨 캐시(210)간의 데이터 불일치로 인하여 발생하는 제1 레벨 캐시(210)의 더티 정보를 수신하고, 수신한 더티 정보에 대한 쓰기 동작을 하되, 제1 레벨 캐시(210)의 더티 정보에 대하여 기설정된 더블 워드로 쓰기 동작을 수행한다.
도 3은 본 발명에 따른 라이트 버퍼(240)의 동작을 나타내는 블록도로서, 도 3 및 본 발명의 일 실시예에 따르면, 라이트 버퍼(240)의 효율을 높이기 위하여 제1 레벨 캐시(210)의 더티 비트(dirty bit)의 구성은 64 bit 단위로, 라인당 4 bit로 구성된다.
이 때, 제 1 레벨 캐시(210)의 더티(dirty) 정보를 제2 레벨 캐시(220)에 쓰는(write) 경우, 제1 레벨 캐시(210)의 전체 라인을 제2 레벨 캐시(220)에 쓰는 것이 아니라, 기설정된 워드 단위(2 워드, 2 words) 로 하게 된다.
따라서, 라이트 버퍼(240)의 깊이(depth)를 증가시키지 않더라도, 충분한 캐시의 성능을 획득할 수 있다.
이 때, 라이트 버퍼(240)는 SDRAM(300)의 점유를 최소화 하기 위하여, 최대 32 워드를 동시에 SDRAM(300)에 쓸 수 있으며, 일례로 이를 위하여 물리적으로 서로 다른 3개의 버퍼를 사용하여, 3개의 버퍼를 통해 연속된 주소인지를 확인하여, 다음 엔트리(entry)에 있어서 연속된 버퍼에 저장하는 것이 가능하다.
제1 레벨 캐시(210)에서 플러시(flush) 또는 더티 라인(dirty line)의 교체(replacement)가 일어나는 경우, 제1 레벨 캐시(210)의 정보는 제1 레벨 캐시(210)와 포함적 캐시 구조를 형성하는 제2 레벨 캐시(220)에 씌여지고, 제2 레벨 캐시(220)는 연속 기입 정책(write-through policy)를 사용하고 있는 연속 기입 캐시이므로, 제2 레벨 캐시(220)에 씌여짐과 동시에 SDRAM(300)에도 씌여져야 한다.
그러나, 이러한 경우 많은 페널티(penalty)가 발생하고, 라이트 버퍼(240)를 사용하는 경우 라이트 버퍼(240)에 저장이 완료된 후 제1 레벨 캐시(210)는 다음 동작을 수행할 수 있다.
본 발명에 따른 캐시 제어 장치의 제 1레벨 캐시(210)는 후기입 캐시(write-back cache) 캐시이고, 제2 레벨 캐시(220)는 연속기입 캐시(write-through cache)이다.
즉, 제2 레벨 캐시(220)는 연속 기입 정책(write-through policy)를 채택하고 있고, 제1 레벨 캐시(210)는 인스트럭션 캐시(instruction cache)와 데이터 캐시(data cache)로 구성되어 있는 바, 플러시 동작을 통해 SDRAM(300)에 더티 라인(dirty line)을 반영하는 것은 비효율적이다. 왜냐하면, 인스트럭션 캐시는 프로세서로부터 라이트(write)되지 않으므로, 평균적으로 캐시의 절반은 더티하지 않기 때문이다.
따라서, 본 발명에 따른 캐시 제어 장치의 제1 레벨 캐시(210)는 플러시 동작 시, 플러시 동작에 관한 정보를 제2 레벨캐시(220)로 전송하고, 제2 레벨 캐시(220)는 연속 기입을 통해 플러시의 경우 SDRAM(300)에 라이트(write)할 때, 라이트 버퍼(240)를 사용하여 연속 기입 시 발생하는 페널티를 감소시켰다.
도 2는 본 발명에 따른 프리펫치 버퍼(230)의 동작을 나타내는 블록도이다.
도 2를 참조하면, 본 발명에 따른 캐시 제어 장치의 제1 레벨 캐시(210)의 동작은 히트(hit) 검사를 위하여 프로세서로부터 요청 받은 어드레스 분석을 통하여 결정된 인덱스(index)의 4-way 태그 외, 프리펫치 버퍼(230)에 저장된 인덱스 및 태그 검사를 수행하며, 프리펫치 버퍼(230)가 히트(hit)되는 경우 프리펫치 버퍼(230)에 대하여 리드(read)하게 된다.
또한, 프리펫치 버퍼(230)는 미스(miss) 발생 시 첫 번째 라인을 저장한 후 다음 싸이클(cycle)에 저장이 이루어지지만, 제1 레벨 캐시(210)와 제2 레벨 캐시(220) 사이의 대역폭은 1 라인 만큼의 대역폭을 가지므로, 프리펫치 버퍼(230)의 구성상 다음 싸이클에 다음 어드레스를 받아 들일 때, 이미 프리펫치 버퍼(230)는 새로운 라인으로 업데이트된 상태가 된다. 즉, 프리펫치 버퍼 업데이트를 위해 2 라인을 읽어 올 때의 지연시간은 제 1레벨 캐시의 액세스(Access) 성능을 감소시키지 않는다.
도 4는 본 발명에 따른 캐시 제어 방법을 나타내는 순서도이다.
도 4를 참조하면, 본 발명에 따른 캐시 제어 방법은 데이터 요청 명령을 수신하는 단계(S100)와, 제1레벨 캐시에 대하여 데이터 요청 명령에 따라 데이터를 호출하는 단계(S200)와, 제1 레벨 캐시가 데이터 호출을 실패하는 경우, 데이터 요청 명령을 포함하는 라인에 대한 연속 라인을 읽는 단계(S300)와, 캐시 읽기 동작 시 제1 레벨 캐시 또는 제2 레벨 캐시로부터 코어로 전달되는 데이터를 프리펫치 버퍼에 임시 저장하는 단계(S400) 및 캐시 쓰기 동작 시 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 단계(S500)를 포함하여 구성된다.
또한, 본 발명에 따른 캐시 제어 방법은 제1 레벨 캐시와 포함적 구조를 형성하는 제2 레벨 캐시에 제1 레벨 캐시의 더티 정보를 쓰는 단계를 더 포함하는 것이 바람직하다.
이 때, 제1 레벨 캐시의 더티 정보를 제2 레벨 캐시에 쓰는 단계는 메모리와 제1 레벨 캐시 간의 데이터 불일치로 인하여 발생하는 제1 레벨 캐시의 더티 정보를 수신하고, 기설정된 더블 워드로 제1 레벨 캐시의 더티 정보를 제2 레벨 캐시에 쓰는 것이 바람직하다.
즉, 제1 레벨 캐시가 후기입 캐시이고, 인스트럭션 캐시와 데이터 캐시로 구성되며, 제2레벨 캐시가 연속기입 캐시인 경우, 제1 레벨 캐시의 더티 라인 전체를 반영하기에는 비효율적이므로, 제1 레벨 캐시의 라인 중에 더티 정보가 있다고 하여 전체 라인을 제2 레벨 캐시에 쓰는 것이 아니라, 기설정된 더블 워드로 라이트(write)동작을 수행하게 된다.
이 때, 본 발명에 따른 캐시 제어 방법은 제1 레벨 캐시의 더티 정보를 고려하여 플러시 동작 시, 제1 레벨 캐시의 플러시 동작에 관한 정보를 제2 레벨 캐시 및 라이트 버퍼에 전송하는 단계를 더 포함하는 것이 바람직하다.
또한, 본 발명에 따른 캐시 제어 방법의 연속 라인을 읽는 단계(S300)는 제1 레벨 캐시가 데이터 호출을 실패하는 경우, 데이터 요청 명령을 포함하는 라인에 대한 연속 라인을 읽음으로써, 제2 레벨 캐시의 액세스 없이 제1 레벨 캐시의 히트 레이트(hit rate)를 증가시키게 된다.
또한, 본 발명에 따른 캐시 제어 방법의 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 단계(S500)는 캐시 쓰기 동작 시의 데이터가 연속된 어드레스를 포함하는 경우, 어드레스 정보를 고려하여 복수의 버퍼에 쓰기 동작 시의 데이터를 수신하여 저장하는 것이 바람직하다.
이 때, 일례로서 라이트 버퍼는 SDRAM의 점유를 최소화하기 위하여 최대 32 워드를 동시에 SDRAM에 라이트(write)할 수 있으며, 이를 위하여 물리적으로 구분되는 복수개의 버퍼를 사용하여, 연속된 어드레스 정보를 고려하여 복수의 버퍼에 저장하게 된다.
이제까지 본 발명의 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 코어 210: 제1 레벨 캐시
220: 제2 레벨 캐시 230: 프리펫치 버퍼
240: 라이트 버퍼 300: SDRAM

Claims (16)

  1. 메모리의 데이터를 저장하는 제1 레벨 캐시;
    상기 제1 레벨 캐시와 연결되어, 데이터 요청 명령에 대하여 상기 제1 레벨 캐시가 데이터 호출을 실패하는 경우 프로세서에 의하여 액세스되는 제2 레벨 캐시;
    상기 제1 및 제2 레벨 캐시와 연결되어, 상기 제1 및 제2 레벨 캐시로부터 코어로 전달되는 데이터를 임시 저장하는 프리펫치 버퍼; 및
    상기 제1 레벨 캐시와 연결되고, 상기 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 라이트 버퍼
    를 포함하는 캐시 제어 장치.
  2. 제1항에 있어서, 상기 제2 레벨 캐시는
    연속 기입 캐시이고, 상기 제1 레벨 캐시와 포함적 캐시 구조를 형성하는 것
    인 캐시 제어 장치.
  3. 제1항에 있어서, 상기 프리펫치 버퍼는
    상기 제 1 또는 제 2 레벨 캐시 중 적어도 어느 하나의 데이터 읽기 동작 시의 데이터를 수신하고, 상기 수신한 데이터 읽기 동작 시의 데이터를 저장하는 것
    인 캐시 제어 장치.
  4. 제3항에 있어서, 상기 프리펫치 버퍼는
    상기 제1 레벨 캐시의 데이터 호출 실패 시 상기 제2 레벨 캐시의 액세스 이전에 상기 데이터 요청 명령을 포함하는 라인 및 이에 연속된 라인을 읽고, 이 연속 라인을 저장하는 것
    인 캐시 제어 장치.
  5. 제4항에 있어서, 상기 제1 레벨 캐시는
    상기 데이터 요청 명령에 따라 상기 연속 라인에서 요청된 데이터를 호출하는 것
    인 캐시 제어 장치.
  6. 제1항에 있어서, 상기 라이트 버퍼는
    상기 제 1 레벨 캐시의 데이터 쓰기 동작 시의 데이터를 수신하고, 상기 수신한 데이터 쓰기 동작 시의 데이터를 저장하는 것
    인 캐시 제어 장치.
  7. 제6항에 있어서, 상기 라이트 버퍼는
    복수의 버퍼를 포함하되, 상기 복수의 버퍼는 상기 쓰기 동작 시의 데이터가 연속된 어드레스 정보를 포함하는 경우 상기 어드레스 정보를 고려하여 상기 복수의 버퍼에 상기 쓰기 동작 시의 데이터를 저장하는 것
    인 캐시 제어 장치.
  8. 제2항에 있어서, 상기 제2 레벨 캐시는
    상기 메모리와 상기 제1 레벨 캐시간의 데이터 불일치로 인하여 발생하는 상기 제1 레벨 캐시의 더티 정보를 수신하여 상기 수신한 더티 정보의 쓰기 동작을 하되, 상기 더티 정보에 대하여 기설정된 더블 워드로 상기 쓰기 동작을 하는 것
    인 캐시 제어 장치.
  9. 제2항에 있어서, 상기 제1 레벨 캐시는
    상기 제1 레벨 캐시의 플러시 동작 시, 상기 제1 레벨 캐시의 플러시 동작에 관한 정보를 상기 제2 레벨 캐시로 전송하는 것
    인 캐시 제어 장치.
  10. 제9항에 있어서, 상기 라이트 버퍼는
    상기 제1 레벨 캐시의 플러시 동작에 관한 정보를 수신하고, 상기 수신된 플러시 동작에 관한 정보를 저장하고, 상기 저장한 플러시 동작에 관한 정보를 상기 메모리에 전송하는 것
    인 캐시 제어 장치.
  11. 데이터 요청 명령을 수신하는 단계;
    제1레벨 캐시에 대하여 상기 데이터 요청 명령에 따라 데이터를 호출하는 단계;
    상기 제1 레벨 캐시가 상기 데이터 호출을 실패하는 경우, 상기 데이터 요청 명령을 포함하는 라인에 대한 연속 라인을 읽는 단계;
    캐시 읽기 동작 시 상기 제1 레벨 캐시 또는 제2 레벨 캐시로부터 코어로 전달되는 데이터를 프리펫치 버퍼에 임시 저장하는 단계; 및
    캐시 쓰기 동작 시 상기 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 단계
    를 포함하는 캐시 제어 방법.
  12. 제11항에 있어서,
    상기 제1 레벨 캐시의 더티 정보를 상기 제2 레벨 캐시에 쓰는 단계
    를 더 포함하는 캐시 제어 방법.
  13. 제12항에 있어서, 상기 제1 레벨 캐시의 더티 정보를 상기 제2 레벨 캐시에 쓰는 단계는
    메모리와 상기 제1 레벨 캐시간의 데이터 불일치로 인하여 발생하는 상기 제1 레벨 캐시의 더티 정보를 수신하고, 기설정된 더블 워드로 상기 제1 레벨 캐시의 더티 정보를 상기 제2 레벨 캐시에 쓰는 것
    인 캐시 제어 방법.
  14. 제12항에 있어서,
    상기 제1 레벨 캐시의 더티 정보를 고려하여 상기 제1 레벨 캐시의 플러시 동작 시, 상기 제1 레벨 캐시의 플러시 동작에 관한 정보를 상기 제2 레벨 캐시 및 라이트 버퍼에 전송하는 단계
    를 더 포함하는 캐시 제어 방법.
  15. 제11항에 있어서, 상기 연속 라인을 읽는 단계는
    상기 제1 레벨 캐시가 상기 데이터 호출을 실패하는 경우 상기 데이터 요청 명령을 포함하는 라인에 대한 연속 라인을 읽는 것
    인 캐시 제어 방법.
  16. 제11 항에 있어서, 캐시 쓰기 동작 시 상기 제1 레벨 캐시의 어드레스 정보 및 데이터를 수신하는 단계는
    상기 캐시 쓰기 동작 시의 데이터가 연속된 어드레스 정보를 포함하는 경우 상기 어드레스 정보를 고려하여 복수의 버퍼에 상기 쓰기 동작 시의 데이터를 수신하여 저장하는 것
    인 캐시 제어 방법.

KR1020130141596A 2013-11-20 2013-11-20 캐시 제어 장치 및 방법 KR20150057798A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130141596A KR20150057798A (ko) 2013-11-20 2013-11-20 캐시 제어 장치 및 방법
US14/253,466 US20150143045A1 (en) 2013-11-20 2014-04-15 Cache control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130141596A KR20150057798A (ko) 2013-11-20 2013-11-20 캐시 제어 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20150057798A true KR20150057798A (ko) 2015-05-28

Family

ID=53174483

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130141596A KR20150057798A (ko) 2013-11-20 2013-11-20 캐시 제어 장치 및 방법

Country Status (2)

Country Link
US (1) US20150143045A1 (ko)
KR (1) KR20150057798A (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10564865B2 (en) * 2016-03-22 2020-02-18 Seagate Technology Llc Lockless parity management in a distributed data storage system
CN110710172A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络
WO2018183526A1 (en) 2017-03-29 2018-10-04 Fungible, Inc. Non-blocking, full-mesh data center network having optical permutors
CN110731070A (zh) 2017-03-29 2020-01-24 芬基波尔有限责任公司 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络
US10565112B2 (en) 2017-04-10 2020-02-18 Fungible, Inc. Relay consistent memory management in a multiple processor system
EP3625939A1 (en) 2017-07-10 2020-03-25 Fungible, Inc. Access node for data centers
CN110892380B (zh) 2017-07-10 2023-08-11 芬基波尔有限责任公司 用于流处理的数据处理单元
WO2019068013A1 (en) 2017-09-29 2019-04-04 Fungible, Inc. FABRIC CONTROL PROTOCOL FOR DATA CENTER NETWORKS WITH PACKAGING OF PACKETS ON MULTIPLE ALTERNATIVE DATA PATHWAYS
CN111164938A (zh) 2017-09-29 2020-05-15 芬基波尔有限责任公司 使用选择性多路径分组流喷射的弹性网络通信
US10841245B2 (en) 2017-11-21 2020-11-17 Fungible, Inc. Work unit stack data structures in multiple core processor system for stream data processing
WO2019152063A1 (en) * 2018-02-02 2019-08-08 Fungible, Inc. Efficient work unit processing in a multicore system
US10929175B2 (en) 2018-11-21 2021-02-23 Fungible, Inc. Service chaining hardware accelerators within a data stream processing integrated circuit

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717894A (en) * 1994-03-07 1998-02-10 Dell Usa, L.P. Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
US5737748A (en) * 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US5701448A (en) * 1995-12-15 1997-12-23 Cyrix Corporation Detecting segment limit violations for branch target when the branch unit does not supply the linear address
US6430654B1 (en) * 1998-01-21 2002-08-06 Sun Microsystems, Inc. Apparatus and method for distributed non-blocking multi-level cache
EP1150213B1 (en) * 2000-04-28 2012-01-25 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Data processing system and method
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6584546B2 (en) * 2001-01-16 2003-06-24 Gautam Nag Kavipurapu Highly efficient design of storage array for use in first and second cache spaces and memory subsystems
US7555566B2 (en) * 2001-02-24 2009-06-30 International Business Machines Corporation Massively parallel supercomputer
US7457931B1 (en) * 2005-06-01 2008-11-25 Sun Microsystems, Inc. Method and apparatus for estimating the effect of processor cache memory bus delays on multithreaded processor throughput
US20110082983A1 (en) * 2009-10-06 2011-04-07 Alcatel-Lucent Canada, Inc. Cpu instruction and data cache corruption prevention system
US8719510B2 (en) * 2010-03-29 2014-05-06 Via Technologies, Inc. Bounding box prefetcher with reduced warm-up penalty on memory block crossings
US9626294B2 (en) * 2012-10-03 2017-04-18 International Business Machines Corporation Performance-driven cache line memory access
US9043559B2 (en) * 2012-10-23 2015-05-26 Oracle International Corporation Block memory engine with memory corruption detection

Also Published As

Publication number Publication date
US20150143045A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
KR20150057798A (ko) 캐시 제어 장치 및 방법
US8949544B2 (en) Bypassing a cache when handling memory requests
RU2438165C2 (ru) Устройство и способы для уменьшения вытеснений в многоуровневой иерархии кэша
US9164676B2 (en) Storing multi-stream non-linear access patterns in a flash based file-system
KR100953458B1 (ko) 바운디드 에러 지연된 갱신 소프트웨어 캐싱
US20080086599A1 (en) Method to retain critical data in a cache in order to increase application performance
JP5733701B2 (ja) パケット処理最適化
KR101789190B1 (ko) 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서
US9063860B2 (en) Method and system for optimizing prefetching of cache memory lines
KR20090054657A (ko) 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템
US20030149842A1 (en) Method for controling cache system comprising direct-mapped cache and fully-associative buffer
CN115794682A (zh) 缓存替换方法及装置、电子设备、存储介质
CN109219804A (zh) 非易失内存访问方法、装置和系统
CN108874691B (zh) 数据预取方法和内存控制器
US8661169B2 (en) Copying data to a cache using direct memory access
JP5607603B2 (ja) キャッシュ管理のための方法、装置、およびコンピュータ・プログラム
KR102069696B1 (ko) 캐시 제어 장치 및 방법
Lanka et al. A Review: Complete Analysis of the Cache Architecture for Better Performance
US20210365378A1 (en) Method of cache prefetching that increases the hit rate of a next faster cache
CN116340203A (zh) 数据预读取方法、装置、处理器及预取器
US6643736B1 (en) Scratch pad memories
KR20040047398A (ko) 캐쉬 메모리를 이용한 데이터 억세스 방법
US20070150653A1 (en) Processing of cacheable streaming data
KR100481943B1 (ko) 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법
US12141075B2 (en) Address translation prefetching for input/output devices

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