KR101635395B1 - 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법 - Google Patents

멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법 Download PDF

Info

Publication number
KR101635395B1
KR101635395B1 KR1020100021410A KR20100021410A KR101635395B1 KR 101635395 B1 KR101635395 B1 KR 101635395B1 KR 1020100021410 A KR1020100021410 A KR 1020100021410A KR 20100021410 A KR20100021410 A KR 20100021410A KR 101635395 B1 KR101635395 B1 KR 101635395B1
Authority
KR
South Korea
Prior art keywords
cache
data
request
bank
requests
Prior art date
Application number
KR1020100021410A
Other languages
English (en)
Other versions
KR20110101994A (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 KR1020100021410A priority Critical patent/KR101635395B1/ko
Priority to US13/036,102 priority patent/US8583873B2/en
Publication of KR20110101994A publication Critical patent/KR20110101994A/ko
Application granted granted Critical
Publication of KR101635395B1 publication Critical patent/KR101635395B1/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Abstract

멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법이 개시된다. 본 발명의 일 양상에 따른 멀티포트 데이터 캐시 장치는 캐시 라인을 공유하는 다수의 캐시 뱅크와 데이터 캐시 컨트롤러를 포함한다. 데이터 캐시 컨트롤러는 캐시 요청을 캐시 뱅크 별로 처리한다. 또한 데이터 캐시 컨트롤러는 캐시 요청에 따라 캐시 미스가 발생한 경우 외부 메모리에 엑세스해서 필요한 데이터를 읽어오며, 읽어온 데이터를 모든 캐시 뱅크에 인터리브하게 기록한다.

Description

멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법{Multi port data cache device and Method for controlling multi port data cache device}
다수의 오퍼레이션을 동시에 처리하는 시스템 아키텍처 및 이러한 시스템 아키텍처에서 구동되는 어플리케이션의 처리 속도를 향상시키는 기술과 관련된다.
통상적으로 임베디드 시스템(embedded system)에서 빠른 데이터 처리 속도를 위해 SPM(scratch pad memory)이 사용된다. SPM은 CPU와 external memory 사이의 L1 memory로서 DMAC(direct memory access controller)를 통해 제어된다.
SPM을 사용하는 임베디드 시스템은 어플리케이션 구동 전에 필요한 데이터를 DMAC를 통해 external memory로부터 SPM으로 로드한다. 따라서 어플리케이션 구동을 위해 많은 데이터가 요구되는 경우, 대용량의 SPM을 준비하고 여기에 필요한 모든 데이터를 SPM에 미리 올려놓아야 한다.
그러나 SPM의 용량에는 한계가 있으므로 어플리케이션 동작 중간에 SPM에 존재하지 않는 데이터를 DMAC를 통해 SPM으로 로드해야 한다. 어플리케이션 동작 중간에 DMAC를 통한 데이터 이동은 프로그래머가 어플리케이션을 개발할 때 별도로 고려해야되는 사항이므로 프로그래밍을 복잡하게 만드는 요인이 된다.
어플리케이션 실행 도중에 필요한 데이터를 외부 메모리로부터 자동으로 로드하는 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법이 제공된다.
본 발명의 일 양상에 따른 멀티포트 데이터 캐시 장치는, 적어도 하나의 캐시 라인을 공유하는 다수의 캐시 뱅크, 및 캐시 뱅크에 관한 캐시 뱅크 식별자가 포함된 캐시 요청을 다수의 프로세싱 엘리먼트로부터 수신하고, 수신된 캐시 요청을 캐시 뱅크 식별자에 따라 대응되는 캐시 뱅크로 전달하고, 캐시 뱅크 별로 캐시 요청을 독립적으로 처리하는 데이터 캐시 컨트롤러를 포함한다.
본 발명의 일 양상에 따라 데이터 캐시 컨트롤러는, 캐시 요청을 전달 받은 캐시 뱅크에 캐시 미스가 발생하는 경우, 외부 메모리로부터 캐시 미스가 발생한 데이터에 대응되는 데이터 세트를 읽어오고, 읽어온 데이터 세트를 모든 캐시 뱅크에 인터리브하게 기록할 수 있다.
또한, 본 발명의 일 양상에 따라 데이터 캐시 컨트롤러는, 상이한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청을 수신하고 캐시 뱅크 식별자에 대응되는 각각의 캐시 뱅크에서 모두 캐시 미스가 발생하는 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 처리할 수 있다.
또한, 본 발명의 일 양상에 따라 데이터 캐시 컨트롤러는, 동일한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청을 수신한 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 처리할 수 있다.
한편, 본 발명의 일 양상에 따른 멀티포트 데이터 캐시 장치의 제어 방법은, 각각의 캐시 뱅크에 관한 캐시 뱅크 식별자가 포함된 캐시 요청을 수신하는 단계, 수신된 캐시 요청을 캐시 뱅크 식별자에 따라 대응되는 캐시 뱅크로 전달하는 단계, 및 캐시 뱅크 별로 캐시 요청을 독립적으로 처리하는 단계를 포함한다.
개시된 내용에 의하면, 데이터 캐시 컨트롤러가 어플리케이션 구동 중에 필요한 데이터를 캐시 뱅크로 로딩하는 것이 가능하므로 프로그래밍 과정을 간편하게 만들 수 있다.
또한, 캐시 미스가 발생한 경우 데이터 캐시 컨트롤러가 외부 메모리에 엑세스해서 캐시 라인을 채우고, 캐시 라인이 다수의 캐시 뱅크에 걸쳐서 인터리브하게 형성되므로 다수의 캐시 요청이 어느 하나의 캐시 라인에 동시에 엑세스될 수 있다.
도 1은 본 발명의 일 실시예에 따른 멀티포트 데이터 캐시 장치를 도시한다.
도 2는 본 발명의 일 실시예에 따른 인터리브한 캐시 라인을 도시한다.
도 3a는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 하나의 캐시 요청이 있고 캐시 히트가 발생한 경우를 도시한다.
도 3b는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 하나의 캐시 요청이 있고 캐시 미스가 발생한 경우를 도시한다.
도 3c는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 두 개의 캐시 요청이 있고, 모든 캐시 요청에 대해 캐시 히트가 발생한 경우를 도시한다.
도 3d는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 두 개의 캐시 요청이 있고, 어느 하나의 캐시 요청에 대해 캐시 미스가 발생한 경우를 도시한다.
도 3e는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 두 개의 캐시 요청이 있고, 모든 캐시 요청에 대해 캐시 미스가 발생한 경우를 도시한다.
도 3f는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 두 개의 캐시 요청이 있고, 모든 캐시 요청이 동일한 캐시 뱅크 식별자를 가진 경우를 도시한다.
도 4는 본 발명의 일 실시예에 따른 데이터 캐시 제어 방법을 도시한다.
도 5는 본 발명의 일 실시예에 따른 캐시 미스 처리 방법을 도시한다.
도 6은 본 발명의 일 실시예에 따라 데이터 캐시로 엑세스하기 위한 데이터 어드레스 주소를 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 멀티포트 데이터 캐시 장치를 도시한다.
도 1을 참조하면, 본 실시예에 따른 멀티포트 데이터 캐시 장치는 데이터 캐시(data cache)(101) 및 데이터 캐시 컨트롤러(data cache controller)(102)를 포함한다. 그리고 외부 메모리(external memory)(103) 및 프로세싱 코어(processing core)(104)를 더 포함할 수도 있다.
데이터 캐시(101)는 외부 메모리(103)로부터 독출된 데이터를 저장한다. 외부 메모리(103)는 SD-RAM 또는 DDR-RAM이 될 수 있다. 프로세싱 코어(104)가 어떤 데이터를 읽어올 때 외부 메모리(103)에서 읽어 오는 것보다 데이터 캐시(101)에서 읽어오는 것이 더 빠르다. 따라서 데이터 캐시(101)에 프로세싱 코어(104)가 자주 사용하는 데이터를 올려 놓으면 데이터 처리 효율을 증가시킬 수 있다.
데이터 캐시(101)는 소정의 캐시 라인을 공유하는 다수의 캐시 뱅크(CB#0~CB#3)로 구성된다. 각각의 캐시 뱅크(CB#0~CB#3)는 데이터 캐시(101)의 특정한 부분이다. 각각의 캐시 뱅크(CB#0~CB#3)는 소정의 어드레스로 구분된다. 데이터 캐시(101) 또는 각각의 캐시 뱅크(CB#0~CB#3)의 캐시 구조는 직접 사상(direct-mapping), 완전 연관 사상(fully-associative mapping), 세트 연관 사상(k-way set associative mapping) 중 어느 하나가 사용될 수 있고, 캐시 라인 사이즈도 사용 목적 및 응용 예에 따라 다양하게 정해질 수 있다.
데이터 캐시 컨트롤러(102)는 프로세싱 코어(104)로부터 캐시 요청(cache request)을 수신한다. 예를 들어, 데이터 캐시 컨트롤러(102)는 각각의 프로세싱 엘리먼트(PE#0~PE#3)로부터 캐시 요청을 수신할 수 있다. 각각의 프로세싱 엘리먼트(PE#0~PE#3)는 ALU(arithmetic logic unit) 및 로드/스토어 유닛(load/store unit)을 포함한다.
캐시 요청은 데이터 캐시(101)로부터의 데이터 독출 요청(data read request)이 될 수 있다. 또한 각각의 캐시 요청은 캐시 뱅크(CB#0~CB#3)의 식별자를 포함한다. 즉, 데이터 캐시 컨트롤러(102)가 수신하는 캐시 요청에는 캐시 요청이 어디로부터 수신된 것인지, 캐시 요청이 어디로 전달되어야 하는지 등에 대한 정보가 담길 수 있다.
도 6은 본 발명의 일 실시예에 따라 데이터 캐시로 엑세스하기 위한 데이터 어드레스 주소를 도시한다.
도 6을 참조하면, 캐시 요청은 Tag(601), Index(602), block offset(603) 및 bank ID(604)를 포함하는 32bit의 캐시 주소를 포함한다.
데이터 캐시 컨트롤러(102)는 캐시 요청을 캐시 뱅크(CB#0~CB#3)로 전달한다. 예를 들어, 데이터 캐시 컨트롤러(102)의 캐시 큐(105)는 수신된 캐시 요청에 포함된 캐시 뱅크 식별자를 검사하고, 캐시 뱅크 식별자에 해당하는 캐시 뱅크로 캐시 요청을 전달할 수 있다.
캐시 큐(105)는 수신된 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 캐시 요청의 전달 순서를 결정할 수 있다. 예를 들어, 프로세싱 엘리먼트 PE#0과 프로세싱 엘리먼트 PE#1이 동시에 캐시 뱅크 CB#0에 엑세스하는 경우, 캐시 큐(105)는 PE#0의 캐시 요청과 PE#1의 캐시 요청에 우선 순위를 부여한다. 우선 순위를 부여하는 기준은 사용 목적 및 응용 예에 따라 다양하게 변경될 수 있다. 여기서는 프로세싱 엘리먼트의 식별자에 따라 PE#0의 캐시 요청에 우선 순위가 높게 부여된 것으로 가정한다. 그러면 캐시 큐(105)는 PE#0의 캐시 요청을 먼저 CB#0에 전달하고, PE#1의 캐시 요청은 대기시킬 수 있다.
각각의 캐시 뱅크(CB#0~CB#3)로 전달된 캐시 요청은 각각의 캐시 뱅크(CB#0~CB#3) 별로 캐시 히트(cache hit)가 될 수도 있고 캐시 미스(cache miss)가 날 수도 있다. 데이터 캐시 컨트롤러(102)는 각각의 캐시 뱅크(CB#0~CB#3) 별로 캐시 히트 및 캐시 미스를 독립적으로 처리한다. 예를 들어, PE#0은 CB#0에서 데이터 독출을 요청하고 PE#3은 CB#3에서 데이터 독출을 요청한 경우를 살펴본다. 이 때, 모두 캐시 히트가 발생하면, 데이터 캐시 컨트롤러(102)의 리오더 버퍼(reorder buffer)(106)는 CB#0에서 해당하는 부분의 데이터를 PE#0로 전달하고, CB#3에서 해당하는 부분의 데이터를 PE#3으로 각각 제공하는 것이 가능하다. 또한, CB#0에서 캐시 히트가 발생하고 CB#3에서 캐시 미스가 발생하면, 데이터 캐시 컨트롤러(102)의 리오더 버퍼(106)는 CB#0에서 해당하는 부분의 데이터를 PE#0로 전달하고, 데이터 캐시 컨트롤러(102)의 캐시 미스 처리부(107)는 외부 메모리(103)에서 캐시 미스가 발생한 부분에 대응되는 데이터 세트를 읽어와서 데이터 캐시(101)에 기록하는 것이 가능하다. 나아가 모두 캐시 미스가 발생하면, 데이터 캐시 컨트롤러(102)의 캐시 미스 처리부(107)는 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 순차적으로 캐시 미스를 처리하는 것이 가능하다.
캐시 미스 처리부(107)가 외부 메모리(103)에서 데이터 세트를 읽고 이 데이터 세트를 데이터 캐시(101)에 기록하는 경우, 각각의 프로세싱 엘리먼트(PE#0~PE#3)가 동시에 동일한 캐시 라인에 접근할 수 있도록 읽어온 데이터를 모든 캐시 뱅크(CB#0~CB#3)에 나누어서 인터리브하게 기록한다. 또한, 캐시 미스 처리부(107)는 직접 버스(bus)(108)를 통해 외부 메모리(103)에 접근할 수 있다.
한편 본 발명의 일 실시예에 따라, 데이터 캐시 컨트롤러(102)는 어떤 캐시 뱅크로 캐시 요청을 전달한 후에 해당 캐시 뱅크로부터 데이터가 유효하다는 신호가 올 때까지 캐시 요청을 임시로 저장할 수도 있다. 또한, 데이터 캐시 컨트롤러(102)는 프로세싱 코어(104)의 아키텍처 상에서 미리 정의된 레이턴시(latency)에 맞추어 데이터가 프로세싱 코어(104)로 전달될 데이터를 임시로 저장할 수도 있다.
이와 같이, 데이터 캐시(101)가 다수의 캐시 뱅크(CB#0~CB#3)로 구분되고, 데이터 캐시 컨트롤러(102)가 각각의 캐시 뱅크(CB#0~CB#3) 별로 독립적으로 캐시 요청을 처리하되, 캐시 미스가 발생하는 경우 외부 메모리(103)에 접근하여 인터리브하게 데이터 캐시를 채우기 때문에 다수의 프로세싱 엘리먼트(PE#0~PE#3)가 동시에 데이터 캐시(101)에 엑세스할 수 있다.
도 2는 본 발명의 일 실시예에 따른 인터리브한 캐시 라인을 도시한다.
도 2를 참조하면, 캐시 뱅크(CB#0~CB#3)는 캐시 라인(cache line)(201)을 공유한다. 캐시 라인(201)은 캐시 미스가 발생한 경우 캐시가 채워지는 부분, 즉 캐시 필(cache fill)이 이루어지는 부분이 될 수 있다.
데이터 캐시(101)에서 캐시 미스가 발생한 경우, 외부 메모리(103)로부터 데이터 세트(202)가 읽혀진다. 데이터 세트(202)는 캐시 미스가 발생한 데이터를 포함한다. 캐시 라인(201)의 크기 및/또는 데이터 세트(202)의 크기는 사용 목적 및 응용 예에 따라 다양하게 변경될 수 있다.
읽혀진 데이터 세트(202)는 각각의 캐시 뱅크(CB#0~CB#3)에 인터리브하게 기록된다. 다시 말해, 읽혀진 데이터 세트(202)가 캐시 라인에 채워질 때 모든 캐시 뱅크(CB#0~CB#3)에 나누어져서 기록된다. 예를 들어, 4-way set associative 구조로 데이터 캐시(101)를 구성한 경우, 읽혀진 데이터 세트(202)는 캐시의 replacement policy에 따라 각 캐시 뱅크(CB#0~CB#3)의 특정 way에 나누어져서 기록될 수 있다.
캐시 라인 필(cache line fill)이 이루어지면, 캐시 히트가 발생하므로 데이터를 요청한 프로세싱 엘리먼트로 해당 데이터를 제공할 수 있다. 이와 같이 인터리브한 캐시 라인 필이 이루어지기 때문에 spatial locality를 갖는 데이터들의 처리 속도를 향상시킬 수 있고 다수의 프로세싱 엘리먼트(PE#0~PE#3)가 동시에 같은 캐시 라인에 엑세스할 수가 있다.
도 3a는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 하나의 캐시 요청이 있고 캐시 히트가 발생한 경우를 도시한다.
도 3a를 참조하면, 데이터 캐시 컨트롤러(102)는 프로세싱 엘리먼트 PE#0로부터 캐시 뱅크 CB#0에 대한 캐시 요청을 수신한다(①). 그리고 데이터 캐시 컨트롤러(102)는 캐시 뱅크 아이디를 참조하여 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 CB#0로 전달한다(②). 캐시 요청이 전달된 캐시 뱅크 CB#0에서 캐시 히트가 발생하였으므로, 데이터 캐시 컨트롤러(102)는 캐시 히트가 발생된 데이터를 독출하여 프로세싱 엘리먼트 PE#0로 전송한다(③).
도 3b는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 하나의 캐시 요청이 있고 캐시 미스가 발생한 경우를 도시한다.
도 3b를 참조하면, 데이터 캐시 컨트롤러(102)는 프로세싱 엘리먼트 PE#0로부터 캐시 뱅크 CB#0에 대한 캐시 요청을 수신한다(①). 그리고 데이터 캐시 컨트롤러(102)는 캐시 뱅크 아이디를 참조하여 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 CB#0로 전달한다(②). 캐시 요청이 전달된 캐시 뱅크 CB#0에서 캐시 미스가 발생하였으므로, 데이터 캐시 컨트롤러(102)는 외부 메모리(103)로부터 필요한 데이터를 읽어오고 읽어온 데이터를 데이터 캐시(101)에 인터리브하게 기록한다(③). 예컨대, 데이터 캐시 컨트롤러(102)는 별도의 버스를 통해 외부 메모리(103)에 엑세스하고 캐시 미스가 난 부분을 읽어와서 모든 캐시 뱅크(CB#0~CB#3)에 읽어온 부분을 나누어서 기록하는 것이 가능하다. 캐시 라인이 채워지면, 캐시 히트가 발생하므로, 데이터 캐시 컨트롤러(102)는 캐시 히트가 발생한 데이터를 프로세싱 엘리먼트 PE#0로 전송한다(④).
도 3c는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 두 개의 캐시 요청이 있고, 모든 캐시 요청에 대해 캐시 히트가 발생한 경우를 도시한다.
도 3c를 참조하면, 데이터 캐시 컨트롤러(102)는 프로세싱 엘리먼트 PE#0로부터 캐시 뱅크 CB#0에 대한 캐시 요청을 수신하고, 프로세싱 엘리먼트 PE#2로부터 캐시 뱅크 CB#2에 대한 캐시 요청을 수신한다(①). 그리고 데이터 캐시 컨트롤러(102)는 캐시 뱅크 아이디를 참조하여 프로세싱 엘리먼트 PE#0로부터 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 CB#0로 전달하고, 프로세싱 엘리먼트 PE#2로부터 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 CB#2로 전달한다(②). 또한, 캐시 요청이 전달된 캐시 뱅크 CB#0 및 캐시 뱅크 CB#2 모두에서 캐시 히트가 발생하였으므로, 데이터 캐시 컨트롤러(102)는 캐시 히트가 발생된 데이터를 독출하여 프로세싱 엘리먼트 PE#0 및 프로세싱 엘리먼트 PE#2로 각각 전송한다(③).
도 3d는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 두 개의 캐시 요청이 있고, 어느 하나의 캐시 요청에 대해 캐시 미스가 발생한 경우를 도시한다.
도 3d를 참조하면, 데이터 캐시 컨트롤러(102)는 프로세싱 엘리먼트 PE#0로부터 캐시 뱅크 CB#0에 대한 캐시 요청을 수신하고, 프로세싱 엘리먼트 PE#2로부터 캐시 뱅크 CB#2에 대한 캐시 요청을 수신한다(①). 그리고 데이터 캐시 컨트롤러(102)는 캐시 뱅크 아이디를 참조하여 프로세싱 엘리먼트 PE#0로부터 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 CB#0로 전달하고, 프로세싱 엘리먼트 PE#2로부터 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 CB#2로 전달한다(②). 이 때, 캐시 뱅크 CB#0에서는 캐시 미스가 발생하고 캐시 뱅크 CB#2에서는 캐시 히트가 발생하였다. 캐시 미스는 데이터 캐시 컨트롤러(102)를 stall 시키고 캐시 히트가 된 데이터는 캐시로부터 독출되어 데이터 캐시 컨트롤러(102)에 저장된다. 그리고 캐시 미스에 따라 데이터 캐시 컨트롤러(102)는 외부 메모리(103)에 엑세스하여 캐시 라인을 인터리브하게 채운다(③`). 캐시 라인이 채워졌으므로 캐시 히트가 되고 캐시 히트에 따라 데이터 캐시 컨트롤러(102)가 unstall되어 이전 캐시 히트로 독출된 데이터를 프로세싱 엘리먼트 PE#2로 전송함(③)과 동시에 캐시 미스 처리 후 캐시 히트가 발생된 데이터를 독출하여 프로세싱 엘리먼트 PE#0로 전송한다(④).
도 3e는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 두 개의 캐시 요청이 있고, 모든 캐시 요청에 대해 캐시 미스가 발생한 경우를 도시한다.
도 3e를 참조하면, 데이터 캐시 컨트롤러(102)는 프로세싱 엘리먼트 PE#0로부터 캐시 뱅크 CB#0에 대한 캐시 요청을 수신하고, 프로세싱 엘리먼트 PE#2로부터 캐시 뱅크 CB#2에 대한 캐시 요청을 수신한다(①). 그리고 데이터 캐시 컨트롤러(102)는 캐시 뱅크 아이디를 참조하여 프로세싱 엘리먼트 PE#0로부터 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 CB#0로 전달하고, 프로세싱 엘리먼트 PE#2로부터 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 CB#2로 전달한다(②). 이 때, 캐시 뱅크 CB#0 및 캐시 뱅크 CB#2 모두에서 캐시 미스가 발생하였다. 모두 캐시 미스가 발생한 경우, 데이터 캐시 컨트롤러(102)는 각 캐시 요청에 우선 순위를 부여한다. 우선 순위는 프로세싱 엘리먼트의 식별자에 따라 다르게 부여될 수 있으나 우선 순위 부여 방식이 반드시 여기에 국한되는 것은 아니다. 예를 들어, 데이터 캐시 컨트롤러(102)는 프로세싱 엘리먼트 PE#0에서 온 캐시 요청의 우선 순위를 상대적으로 높게 설정할 수 있다. 이어서 데이터 캐시 컨트롤러(102)는 상대적으로 우선 순위가 높은 PE#0의 캐시 요청을 먼저 처리한다. 즉 캐시 뱅크 CB#0에서 캐시 미스가 난 부분에 대응되는 부분을 외부 메모리(103)에서 읽어온 후 이를 인터리브하게 데이터 캐시(101)에 기록한다(③). 프로세싱 엘리먼트 PE#0에서 온 캐시 요청이 처리되는 동안 상대적으로 우선 순위가 낮게 설정된 다른 캐시 요청은 대기 상태이다. 캐시 뱅크 CB#0의 캐시 미스가 처리되면, 대기 상태에 있었던 캐시 뱅크 CB#2의 캐시 미스를 처리하고(④), 이와 동시에 이전 과정에서 캐시 라인에 채워진 데이터를 데이터 캐시 컨트롤러(102)에 저장한다. 그 후에 캐시 뱅크 CB#2의 캐시 미스 처리에 따라 채워진 데이터를 프로세싱 엘리먼트 PE#2로 전송함(⑤)과 동시에 데이터 캐시 컨트롤러(102)에 저장되어 있던 CB#0의 데이터를 프로세싱 엘리먼트 PE#0로 전송한다(④`).
도 3f는 본 발명의 일 실시예에 따라 멀티포트 데이터 캐시 장치에서 두 개의 캐시 요청이 있고, 모든 캐시 요청이 동일한 캐시 뱅크 식별자를 가진 경우를 도시한다.
도 3f를 참조하면, 데이터 캐시 컨트롤러(102)는 프로세싱 엘리먼트 PE#0 및 프로세싱 엘리먼트 PE#2로부터 각각 캐시 요청을 수신한다(①). 그리고 데이터 캐시 컨트롤러(102)는 캐시 뱅크 아이디를 참조하여 수신된 캐시 요청을 데이터 캐시(101)의 캐시 뱅크 중 어느 하나로 전달한다. 그런데 각각의 캐시 요청이 모두 캐시 뱅크 CB#0로의 엑세스를 요구하고 있으므로, 데이터 캐시 컨트롤러(102)는 각 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 어느 하나의 캐시 요청을 먼저 처리한다. 예를 들어, 프로세싱 엘리먼트 PE#0의 캐시 요청에 우선 순위를 높게 설정하고 이를 먼저 캐시 뱅크 CB#0로 전달할 수 있다(②). 우선 순위가 낮게 설정된 PE#2의 캐시 요청은 대기 상태에 있다가 PE#0의 캐시 요청이 처리되면 나중에 CB#0로 전달될 수 있다. 여기서 어떤 캐시 요청에 높은 우선 순위를 부여할 것인지는 사용 목적 및 응용 예에 따라 다양하게 설정될 수 있고, 랜덤하게 부여하더라도 무방하다.
도 4는 본 발명의 일 실시예에 따른 멀티포트 데이터 캐시 제어 방법을 도시한다.
도 1 및 도 4를 참조하여 멀티포트 데이터 캐시 제어 방법(400)을 설명한다.
멀티포트 데이터 캐시 장치는 각각의 캐시 뱅크에 관한 캐시 뱅크 식별자가 포함된 캐시 요청을 수신한다(401). 예를 들어, 데이터 캐시 컨트롤러(102)가 각각의 프로세싱 엘리먼트로부터 캐시 뱅크 식별자가 포함된 캐시 요청을 수신할 수 있다.
그리고 멀티포트 데이터 캐시 장치는 수신된 캐시 요청을 캐시 뱅크 식별자에 따라 대응되는 캐시 뱅크로 전달한다(402). 예를 들어, 데이터 캐시 컨트롤러(102)의 캐시 큐(105)가 수신된 캐시 요청에 포함된 캐시 뱅크 식별자를 검사하고, 캐시 뱅크 식별자에 해당하는 캐시 뱅크로 캐시 요청을 전달할 수 있다. 또한, 동일한 캐시 뱅크 식별자를 가진 캐시 요청이 두 개 이상 수신된 경우, 캐시 큐(105)는 수신된 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 캐시 요청의 전달 순서를 결정할 수 있다.
그리고 멀티포트 데이터 캐시 장치는 캐시 뱅크 별로 캐시 요청을 독립적으로 처리한다(403). 예를 들어, 데이터 캐시 컨트롤러(102)의 리오더 버퍼(reorder buffer)(106) 및 캐시 미스 처리부(107)가 각각의 캐시 요청에 따른 캐시 히트 및 캐시 미스를 처리하는 것이 가능하다. 캐시 요청의 개수, 각 캐시 요청에 따른 캐시 히트 또는 캐시 미스 여부에 따라 다양한 처리가 가능한데 대표적인 예는 도 3a 내지 도 3f에서 설명한 것과 같다.
도 5는 본 발명의 일 실시예에 따른 캐시 미스 처리 방법을 도시한다.
도 1 및 도 5를 참조하여 캐시 미스 처리의 우선 순위가 CB#0, CB#1, CB#2, CB#3 순으로 높을 때의 캐시 미스 처리 과정을 설명한다.
데이터 캐시 컨트롤러(102)는 각 캐시 뱅크(CB#0~CB#3)에 캐시 요청이 있는지 여부를 판단한다(501, 502, 503, 504). 캐시 요청은 도 6과 같이 32bit의 주소를 포함한다.
여러 프로세싱 엘리먼트로부터 캐시 요청이 있으면, 데이터 캐시 컨트롤러(102)는 먼저 캐시 뱅크 CB#0에서 캐시 미스가 발생되었는지 여부를 판단한다(505). 만일 CB#0에서 캐시 미스가 발생하면, 데이터 캐시 컨트롤러(102)는 인터리브한 라인 필을 수행한다(506). 구체적으로, 외부 메모리(103)로부터 데이터를 읽어와서 인터리브하게 캐시 라인을 채우고(507), 캐시 라인으로부터 데이터를 독출한 후(508), 다른 캐시 뱅크로의 캐시 요청이 있는지 판단한다(509).
다른 캐시 뱅크의 요청이 있는 경우, 데이터 캐시 컨트롤러(102)는 캐시 뱅크 CB#1에서 캐시 미스가 발생되었는지 여부를 판단한다(510). 판단 결과 캐시 미스가 있으면 506과 동일한 과정을 수행한다(511).
또한, 데이터 캐시 컨트롤러(102)는 캐시 뱅크 CB#2에서 캐시 미스가 발생되었는지 여부를 판단하고(512), 캐시 미스가 발생하면 506과 동일한 과정을 수행하고(513), 그러하지 아니하면 캐시 뱅크 CB#3에서 캐시 미스가 발생되었는지 여부를 판단한다(514).
캐시 뱅크 CB#3에서 캐시 히트가 발생하면 히트된 데이터를 독출하고(515), 캐시 미스가 발생하면 외부 메모리로부터 캐시 라인을 채우고(516), 채워진 캐시 라인으로부터 데이터를 독출한다(515).
이와 같이, 전술한 실시예들을 살펴보면, 캐시 미스가 발생한 경우 데이터 캐시 컨트롤러(102)가 외부 메모리(103)로 엑세스해서 캐시 라인을 채우고, 캐시 라인이 다수의 캐시 뱅크에 걸쳐서 인터리브하게 형성됨을 알 수 있다. 따라서 다수의 캐시 요청이 어느 하나의 캐시 라인에 동시에 엑세스되는 것이 가능하다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명의 실시를 위한 구체적인 예를 살펴보았다. 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (16)

  1. 캐시 라인을 공유하는 다수의 캐시 뱅크; 및
    상기 캐시 뱅크에 관한 캐시 뱅크 식별자가 포함된 캐시 요청을 수신하고, 수신된 캐시 요청을 상기 캐시 뱅크 식별자에 따라 대응되는 캐시 뱅크로 전달하고, 상기 캐시 뱅크 별로 상기 캐시 요청을 독립적으로 처리하는 데이터 캐시 컨트롤러; 를 포함하고,
    상기 데이터 캐시 컨트롤러는 상기 캐시 요청을 전달 받은 캐시 뱅크에 캐시 미스가 발생하는 경우, 외부 메모리로부터 캐시 미스가 발생한 데이터에 대응되는 데이터 세트를 읽어오고, 읽어온 데이터 세트의 서로 다른 부분을 서로 다른 캐시 뱅크에 각각 인터리브하게 기록하는 멀티포트 데이터 캐시 장치.
  2. 삭제
  3. 제 1 항에 있어서, 상기 데이터 캐시 컨트롤러는
    상이한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청을 수신하고 상기 캐시 뱅크 식별자에 대응되는 각각의 캐시 뱅크에서 모두 캐시 미스가 발생하는 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 처리하는 멀티포트 데이터 캐시 장치.
  4. 제 3 항에 있어서, 상기 데이터 캐시 컨트롤러는
    상기 우선 순위에 기초하여 어느 하나의 캐시 요청이 먼저 처리될 때까지 나머지 캐시 요청을 대기시키는 멀티포트 데이터 캐시 장치.
  5. 제 1 항에 있어서, 상기 데이터 캐시 컨트롤러는
    다수의 프로세싱 엘리먼트로부터 상기 캐시 요청을 수신하며, 상기 캐시 요청을 전달 받은 캐시 뱅크에 캐시 히트가 발생하는 경우, 캐시 히트가 발생한 데이터를 상기 프로세싱 엘리먼트로 제공하는 멀티포트 데이터 캐시 장치.
  6. 제 1 항에 있어서, 상기 데이터 캐시 컨트롤러는
    동일한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청을 수신한 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 처리하는 멀티포트 데이터 캐시 장치.
  7. 제 6 항에 있어서, 상기 데이터 캐시 컨트롤러는
    상기 우선 순위에 기초하여 어느 하나의 캐시 요청을 먼저 전달하고 나머지 캐시 요청을 먼저 전달된 캐시 요청이 처리될 때까지 대기시키는 멀티포트 데이터 캐시 장치.
  8. 제 1 항에 있어서,
    동일한 캐시 라인에 동시에 엑세스 가능한 다수의 프로세싱 엘리먼트; 를 더 포함하는 멀티포트 데이터 캐시 장치.
  9. 각각의 캐시 뱅크에 관한 캐시 뱅크 식별자가 포함된 캐시 요청을 수신하는 단계;
    수신된 캐시 요청을 상기 캐시 뱅크 식별자에 따라 대응되는 캐시 뱅크로 전달하는 단계; 및
    상기 캐시 뱅크 별로 상기 캐시 요청을 독립적으로 처리하는 단계; 를 포함하고,
    상기 캐시 요청을 처리하는 단계는,
    상기 캐시 요청을 전달 받은 캐시 뱅크에 캐시 미스가 발생하는 경우, 외부 메모리로부터 캐시 미스가 발생한 데이터에 대응되는 데이터 세트를 읽어오고, 읽어온 데이터 세트의 서로 다른 부분을 서로 다른 캐시 뱅크에 각각 인터리브하게 기록하는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
  10. 제 9 항에 있어서, 상기 캐시 요청을 전달하는 단계는
    동일한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청이 수신된 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 전달하는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
  11. 제 10 항에 있어서, 상기 캐시 요청을 전달하는 단계는
    상기 우선 순위에 기초하여 어느 하나의 캐시 요청을 먼저 전달하고 나머지 캐시 요청을 먼저 전달된 캐시 요청이 처리될 때까지 대기시키는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
  12. 삭제
  13. 제 9 항에 있어서, 상기 캐시 요청을 처리하는 단계는
    상이한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청이 수신되고 상기 캐시 뱅크 식별자에 대응되는 각각의 캐시 뱅크에서 모두 캐시 미스가 발생되는 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 처리하는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
  14. 제 13 항에 있어서, 상기 캐시 요청을 처리하는 단계는
    상기 우선 순위에 기초하여 어느 하나의 캐시 요청이 먼저 처리될 때까지 나머지 캐시 요청을 대기시키는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
  15. 제 9 항에 있어서,
    상기 캐시 요청은, 소정의 프로세싱 엘리먼트로부터 수신되며,
    상기 캐시 요청을 처리하는 단계는, 상기 캐시 요청을 전달 받은 캐시 뱅크에 캐시 히트가 발생하는 경우, 캐시 히트가 발생한 데이터를 상기 프로세싱 엘리먼트로 제공하는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
  16. 제 9 항에 있어서, 상기 각각의 캐시 뱅크는
    캐시 라인을 공유하는 멀티포트 데이터 캐시 제어 방법.
KR1020100021410A 2010-03-10 2010-03-10 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법 KR101635395B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100021410A KR101635395B1 (ko) 2010-03-10 2010-03-10 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
US13/036,102 US8583873B2 (en) 2010-03-10 2011-02-28 Multiport data cache apparatus and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100021410A KR101635395B1 (ko) 2010-03-10 2010-03-10 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법

Publications (2)

Publication Number Publication Date
KR20110101994A KR20110101994A (ko) 2011-09-16
KR101635395B1 true KR101635395B1 (ko) 2016-07-01

Family

ID=44561032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100021410A KR101635395B1 (ko) 2010-03-10 2010-03-10 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법

Country Status (2)

Country Link
US (1) US8583873B2 (ko)
KR (1) KR101635395B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559148B (zh) * 2013-11-15 2016-03-23 山东大学 面向多任务嵌入式系统的片上便笺式存储器管理方法
US9971691B2 (en) * 2016-09-12 2018-05-15 Intel Corporation Selevtive application of interleave based on type of data to be stored in memory
US10387330B1 (en) * 2018-04-30 2019-08-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Less recently and frequently used (LRAFU) cache replacement policy
FR3086409A1 (fr) * 2018-09-26 2020-03-27 Stmicroelectronics (Grenoble 2) Sas Procede de gestion de la fourniture d'informations, en particulier des instructions, a un microprocesseur et systeme correspondant
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US10908821B2 (en) 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US11106609B2 (en) 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system
US10970222B2 (en) 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US11216212B2 (en) * 2019-03-19 2022-01-04 International Business Machines Corporation Minimizing conflicts in multiport banked memory arrays

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101207A1 (en) * 2004-11-10 2006-05-11 Nec Corporation Multiport cache memory and access control system of multiport cache memory

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01280860A (ja) 1988-05-06 1989-11-13 Hitachi Ltd マルチポートキヤツシユメモリを有するマルチプロセツサシステム
US5247649A (en) 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
JP3920931B2 (ja) * 1992-04-17 2007-05-30 サン・マイクロシステムズ・インコーポレイテッド キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置
JPH0836525A (ja) 1994-07-21 1996-02-06 Hitachi Ltd 多重アクセスキャッシュ記憶装置
EP0881575A4 (en) 1996-02-16 2002-04-17 Hitachi Ltd MULTIPLE ACCESS MEMORY AND DATA PROCESSOR PROVIDING ACCESS TO THE MEMORY
US5752260A (en) 1996-04-29 1998-05-12 International Business Machines Corporation High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
EP0875030A2 (en) 1996-09-25 1998-11-04 Koninklijke Philips Electronics N.V. Multi-port cache memory with address conflict detection
US5924117A (en) 1996-12-16 1999-07-13 International Business Machines Corporation Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto
US6223248B1 (en) * 1997-04-29 2001-04-24 Texas Instruments Incorporated Circuits systems and methods for re-mapping memory row redundancy during two cycle cache access
US6240487B1 (en) * 1998-02-18 2001-05-29 International Business Machines Corporation Integrated cache buffers
US6101589A (en) * 1998-04-01 2000-08-08 International Business Machines Corporation High performance shared cache
US6490652B1 (en) * 1999-02-03 2002-12-03 Ati Technologies Inc. Method and apparatus for decoupled retrieval of cache miss data
US6988167B2 (en) 2001-02-08 2006-01-17 Analog Devices, Inc. Cache system with DMA capabilities and method for operating same
JP3784766B2 (ja) * 2002-11-01 2006-06-14 株式会社半導体理工学研究センター 多ポート統合キャッシュ
US7219185B2 (en) * 2004-04-22 2007-05-15 International Business Machines Corporation Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache
EP1894099A2 (en) 2005-06-09 2008-03-05 Nxp B.V. Architecture for a multi-port cache memory
KR20080014402A (ko) * 2006-08-11 2008-02-14 삼성전자주식회사 컴퓨터 그래픽스 데이터 처리방법과 데이터 처리장치
JP2008107983A (ja) 2006-10-24 2008-05-08 Nec Electronics Corp キャッシュメモリ
US8001334B2 (en) * 2007-12-06 2011-08-16 Silicon Image, Inc. Bank sharing and refresh in a shared multi-port memory device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101207A1 (en) * 2004-11-10 2006-05-11 Nec Corporation Multiport cache memory and access control system of multiport cache memory

Also Published As

Publication number Publication date
US20110225369A1 (en) 2011-09-15
US8583873B2 (en) 2013-11-12
KR20110101994A (ko) 2011-09-16

Similar Documents

Publication Publication Date Title
KR101635395B1 (ko) 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
US20210141731A1 (en) Proactive data prefetch with applied quality of service
JP6314355B2 (ja) メモリ管理方法およびデバイス
US8839255B2 (en) Scheduling of threads by batch scheduling
US9032156B2 (en) Memory access monitor
US9575889B2 (en) Memory server
US8095734B2 (en) Managing cache line allocations for multiple issue processors
US8996818B2 (en) Bypassing memory requests to a main memory
US8607234B2 (en) Batch scheduling with thread segregation and per thread type marking caps
US20150143045A1 (en) Cache control apparatus and method
US10019283B2 (en) Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread
CN113641596B (zh) 缓存管理方法、缓存管理装置、处理器
US6715035B1 (en) Cache for processing data in a memory controller and a method of use thereof to reduce first transfer latency
CN105786448A (zh) 一种指令调度方法及装置
US20090178052A1 (en) Latency-aware thread scheduling in non-uniform cache architecture systems
US20130238859A1 (en) Cache with scratch pad memory structure and processor including the cache
US10042773B2 (en) Advance cache allocator
US20080301324A1 (en) Processor device and instruction processing method
US8356141B2 (en) Identifying replacement memory pages from three page record lists
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
CN109478163B (zh) 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法
US7805572B2 (en) Cache pollution avoidance
JP2008192020A (ja) Raid制御装置及びその制御方法
US8495303B2 (en) Processor and computer system with buffer memory
US11954037B2 (en) Memory address allocation and cache mapping to retain data in cache

Legal Events

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

Payment date: 20190530

Year of fee payment: 4