KR101635395B1 - 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법 - Google Patents
멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000013507 mapping Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0857—Overlapped cache accessing, e.g. pipeline by multiple requestors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
Abstract
멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법이 개시된다. 본 발명의 일 양상에 따른 멀티포트 데이터 캐시 장치는 캐시 라인을 공유하는 다수의 캐시 뱅크와 데이터 캐시 컨트롤러를 포함한다. 데이터 캐시 컨트롤러는 캐시 요청을 캐시 뱅크 별로 처리한다. 또한 데이터 캐시 컨트롤러는 캐시 요청에 따라 캐시 미스가 발생한 경우 외부 메모리에 엑세스해서 필요한 데이터를 읽어오며, 읽어온 데이터를 모든 캐시 뱅크에 인터리브하게 기록한다.
Description
다수의 오퍼레이션을 동시에 처리하는 시스템 아키텍처 및 이러한 시스템 아키텍처에서 구동되는 어플리케이션의 처리 속도를 향상시키는 기술과 관련된다.
통상적으로 임베디드 시스템(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은 본 발명의 일 실시예에 따라 데이터 캐시로 엑세스하기 위한 데이터 어드레스 주소를 도시한다.
도 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 항에 있어서, 상기 데이터 캐시 컨트롤러는
상이한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청을 수신하고 상기 캐시 뱅크 식별자에 대응되는 각각의 캐시 뱅크에서 모두 캐시 미스가 발생하는 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 처리하는 멀티포트 데이터 캐시 장치.
- 제 3 항에 있어서, 상기 데이터 캐시 컨트롤러는
상기 우선 순위에 기초하여 어느 하나의 캐시 요청이 먼저 처리될 때까지 나머지 캐시 요청을 대기시키는 멀티포트 데이터 캐시 장치.
- 제 1 항에 있어서, 상기 데이터 캐시 컨트롤러는
다수의 프로세싱 엘리먼트로부터 상기 캐시 요청을 수신하며, 상기 캐시 요청을 전달 받은 캐시 뱅크에 캐시 히트가 발생하는 경우, 캐시 히트가 발생한 데이터를 상기 프로세싱 엘리먼트로 제공하는 멀티포트 데이터 캐시 장치.
- 제 1 항에 있어서, 상기 데이터 캐시 컨트롤러는
동일한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청을 수신한 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 처리하는 멀티포트 데이터 캐시 장치.
- 제 6 항에 있어서, 상기 데이터 캐시 컨트롤러는
상기 우선 순위에 기초하여 어느 하나의 캐시 요청을 먼저 전달하고 나머지 캐시 요청을 먼저 전달된 캐시 요청이 처리될 때까지 대기시키는 멀티포트 데이터 캐시 장치.
- 제 1 항에 있어서,
동일한 캐시 라인에 동시에 엑세스 가능한 다수의 프로세싱 엘리먼트; 를 더 포함하는 멀티포트 데이터 캐시 장치.
- 각각의 캐시 뱅크에 관한 캐시 뱅크 식별자가 포함된 캐시 요청을 수신하는 단계;
수신된 캐시 요청을 상기 캐시 뱅크 식별자에 따라 대응되는 캐시 뱅크로 전달하는 단계; 및
상기 캐시 뱅크 별로 상기 캐시 요청을 독립적으로 처리하는 단계; 를 포함하고,
상기 캐시 요청을 처리하는 단계는,
상기 캐시 요청을 전달 받은 캐시 뱅크에 캐시 미스가 발생하는 경우, 외부 메모리로부터 캐시 미스가 발생한 데이터에 대응되는 데이터 세트를 읽어오고, 읽어온 데이터 세트의 서로 다른 부분을 서로 다른 캐시 뱅크에 각각 인터리브하게 기록하는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
- 제 9 항에 있어서, 상기 캐시 요청을 전달하는 단계는
동일한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청이 수신된 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 전달하는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
- 제 10 항에 있어서, 상기 캐시 요청을 전달하는 단계는
상기 우선 순위에 기초하여 어느 하나의 캐시 요청을 먼저 전달하고 나머지 캐시 요청을 먼저 전달된 캐시 요청이 처리될 때까지 대기시키는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
- 삭제
- 제 9 항에 있어서, 상기 캐시 요청을 처리하는 단계는
상이한 캐시 뱅크 식별자를 갖는 적어도 두 개의 캐시 요청이 수신되고 상기 캐시 뱅크 식별자에 대응되는 각각의 캐시 뱅크에서 모두 캐시 미스가 발생되는 경우, 각각의 캐시 요청에 우선 순위를 부여하고, 부여된 우선 순위에 따라 각각의 캐시 요청을 순차적으로 처리하는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
- 제 13 항에 있어서, 상기 캐시 요청을 처리하는 단계는
상기 우선 순위에 기초하여 어느 하나의 캐시 요청이 먼저 처리될 때까지 나머지 캐시 요청을 대기시키는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
- 제 9 항에 있어서,
상기 캐시 요청은, 소정의 프로세싱 엘리먼트로부터 수신되며,
상기 캐시 요청을 처리하는 단계는, 상기 캐시 요청을 전달 받은 캐시 뱅크에 캐시 히트가 발생하는 경우, 캐시 히트가 발생한 데이터를 상기 프로세싱 엘리먼트로 제공하는 과정을 포함하는 멀티포트 데이터 캐시 제어 방법.
- 제 9 항에 있어서, 상기 각각의 캐시 뱅크는
캐시 라인을 공유하는 멀티포트 데이터 캐시 제어 방법.
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)
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)
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)
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 |
-
2010
- 2010-03-10 KR KR1020100021410A patent/KR101635395B1/ko active IP Right Grant
-
2011
- 2011-02-28 US US13/036,102 patent/US8583873B2/en not_active Expired - Fee Related
Patent Citations (1)
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 |