KR101788245B1 - 다중 포트 캐시 메모리 장치 및 그 구동 방법 - Google Patents
다중 포트 캐시 메모리 장치 및 그 구동 방법 Download PDFInfo
- Publication number
- KR101788245B1 KR101788245B1 KR1020110017412A KR20110017412A KR101788245B1 KR 101788245 B1 KR101788245 B1 KR 101788245B1 KR 1020110017412 A KR1020110017412 A KR 1020110017412A KR 20110017412 A KR20110017412 A KR 20110017412A KR 101788245 B1 KR101788245 B1 KR 101788245B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- data
- address
- divided
- cache bank
- Prior art date
Links
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
- 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/0853—Cache with multiport tag or data arrays
-
- 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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
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
주소 공간을 정해진 크기의 주소 영역으로 분할하고, 분할된 주소 영역을 캐시 뱅크들에 순차적 또는 비순차적으로 할당함으로써, 특정 캐시에 접근이 집중되는 것을 방지할 수 있는 다중 포트 캐시 메모리 장치 및 그 구동 방법이 개시된다. 본 발명의 일 실시예에 따르면, 다중 포트 캐시 메모리 장치는 주소 공간(address space)을 정해진 크기의 주소 영역(address region)들로 분할하고, 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 2 캐시 뱅크에 할당할 수 있다.
Description
특정 캐시 뱅크에 데이터 접근(access)이 집중되지 않도록, 다중 포트 캐시 뱅크들에 주소 공간을 할당하는 기술과 관련된다.
일반적으로, VLSI 로직의 동작 속도에 비하여 오프(off)-칩 메모리의 동작 속도가 느리기 때문에 시스템 성능이 저하될 수 있다. 이를 해결 하기 위해서, 칩 내부에 크기는 작지만 속도가 빠른 메모리가 포함될 수 있다. 이 경우, 가능한 오프(off)-칩 메모리까지 접근하지 않고, 내부 메모리를 사용하여 처리하고, 필요시에만 오프(off)-칩 메모리를 사용하는 방법이 많이 사용되고 있다. 대표적인 내부 메모리로는 캐시(cache)를 들 수 있다.
또한, 최근에는 VLSI 시스템의 집적도가 높아지면서, 장치 등이 다수의 포트(port)를 통해 하나의 메모리를 접근(access)하는 경우가 많아지고 있다. 고성능 프로세서는 다수의 실행 유닛(execution unit)을 포함하고 있기 때문에, 다수의 로드(load)/저장(store) 유닛이 동시에 메모리로 접근하게 된다. 또한, 다중 프로세서를 사용하는 시스템이나 다수의 IP가 하나의 칩으로 통합된 SoC 역시 여러 프로세서 및 IP들이 동시에 메모리로 접근하게 된다.
이와 같이, 다수의 IP 혹은 포트(port)로부터 동시에 들어오는 접근들을 동시에 처리하기 위해, 다수의 포트(port)를 가지는 메모리가 필요하다. 다중 포트 캐시는 캐시로 접근(read or write) 할 수 있는 2 개 이상의 포트를 포함함으로써, 동시에 다수의 포트를 통해 요구되는 캐시 메모리 접근을 처리할 수 있는 것이다. 이와 같이 캐시가 여러 개 사용되는 경우, 특정 캐시에 데이터 접근이 집중되는 것을 방지함으로써, 성능을 향상시킬 수 있다.
주소 공간을 정해진 크기의 주소 영역으로 분할하고, 분할된 주소 영역을 캐시 뱅크들에 순차적 또는 비순차적으로 할당함으로써, 특정 캐시에 접근이 집중되는 것을 방지할 수 있는 다중 포트 캐시 메모리 장치 및 그 구동 방법이 개시된다.
본 발명의 일 실시예에 따른 다중 포트 캐시 메모리 장치는 다수의 캐시 뱅크 및 주소 공간(address space)을 정해진 크기의 주소 영역(address region)들로 분할하고, 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 2 캐시 뱅크에 할당하는 할당부를 포함한다.
할당부는 분할된 주소 영역들을 캐시 뱅크들에 순차적으로 할당할 수 있다.
할당부는 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 1 캐시 뱅크의 다음에 위치한 제 2 캐시 뱅크에 할당할 수 있다.
할당부는 분할된 주소 영역들을 캐시 뱅크들에 비순차적으로 할당할 수 있다.
할당부는 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 1 캐시 뱅크의 다음에 위치하지 않은 제 3 캐시 뱅크에 할당할 수 있다.
정해진 크기는 캐시 뱅크의 블록 크기 및 포트(port)를 통해 한번에 전송될 수 있는 데이터 크기 중 적어도 하나일 수 있다.
다중 포트 캐시 메모리 장치는 캐시 뱅크들과 연결된 적어도 하나의 메모리; 및 캐시 뱅크들에 할당된 주소의 순서와 동일하게 데이터를 메모리에 저장하는 데이터 로더(loader)를 더 포함할 수 있다.
다중 포트 캐시 메모리 장치는 메모리에 불연속적으로 저장된 데이터를 로딩한 후, 로딩된 데이터를 연속적인 데이터로 변경하고, 변경된 데이터를 외부 장치로 전송하는 데이터 변경부를 더 포함할 수 있다.
다중 포트 캐시 메모리 장치는 캐시 뱅크로부터 수신된 불연속적인 데이터를 연속적인 데이터로 재배열하여 메모리에 저장하거나, 메모리로부터 수신된 연속적인 데이터를 불연속적인 데이터로 재배열하여 상기 캐시 뱅크로 전송하는 데이터 재배열부를 더 포함할 수 있다.
데이터 재배열부는 캐시 뱅크들과 연결된 적어도 하나의 메모리; 및 캐시 뱅크로부터 비연속적인 주소에 대응되는 제 1 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 비연속적인 주소 중 처음 주소 및 마지막 주소 사이에 존재하는 제 2 데이터를 메모리로부터 로딩한 후, 제 2 데이터 중 제 1 데이터만을 추출하여 캐쉬 뱅크로 전송할 수 있다.
데이터 재배열부는 메모리로부터 로딩된 제 2 데이터를 임시 저장하기 위한 임시 저장부를 포함할 수 있다.
다중 포트 캐시 메모리 장치의 구동 방법은 주소 공간(address space)을 정해진 크기의 주소 영역(address region)들로 분할하는 단계 및 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 2 캐시 뱅크에 할당하는 단계를 포함한다.
할당하는 단계는 분할된 주소 영역들을 캐시 뱅크들에 순차적으로 할당하는 단계를 포함할 수 있다.
순차적으로 할당하는 단계는 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 1 캐시 뱅크의 다음에 위치한 제 2 캐시 뱅크에 할당하는 단계를 포함할 수 있다.
할당하는 단계는 분할된 주소 영역들을 캐시 뱅크들에 비순차적으로 할당하는 단계를 포함할 수 있다.
비순차적으로 할당하는 단계는 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 1 캐시 뱅크의 다음에 위치하지 않은 제 3 캐시 뱅크에 할당하는 단계를 포함할 수 있다.
정해진 크기는 캐시 뱅크의 블록 크기 및 포트(port)를 통해 한번에 전송될 수 있는 데이터 크기 중 적어도 하나일 수 있다.
다중 포트 캐시 메모리 장치의 구동 방법은 캐시 뱅크들에 할당된 주소의 순서와 동일하게 데이터를 메모리에 저장하는 단계를 더 포함할 수 있다.
다중 포트 캐시 메모리 장치의 구동 방법은 캐시 뱅크 중 어느 하나로부터 수신된 불연속적인 데이터를 연속적인 데이터로 재배열하여 메모리에 저장하거나, 메모리로부터 수신된 연속적인 데이터를 불연속적인 데이터로 재배열하여 상기 캐시 뱅크 중 어느 하나로 전송하는 단계를 더 포함할 수 있다.
다중 포트 캐시 메모리 장치의 구동 방법은 캐시 뱅크로부터 비연속적인 주소에 대응되는 제 1 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 비연속적인 주소 중 처음 주소 및 마지막 주소 사이에 존재하는 제 2 데이터를 메모리로부터 로딩하는 단계 및 제 2 데이터 중 제 1 데이터만을 추출하여 캐쉬 뱅크로 전송하는 단계를 더 포함할 수 있다.
개시된 내용에 따르면, 주소 공간을 정해진 크기의 주소 영역으로 분할하고, 분할된 주소 영역을 캐시 뱅크들에 순차적 또는 비순차적으로 할당함으로써, 특정 캐시에 접근이 집중되는 것을 방지할 수 있다.
도 1은 본 발명의 일 실시예와 관련된 다중 포트 캐시 메모리 장치의 블록 구성도(block diagram)이다.
도 2는 본 발명의 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 3은 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 또 다른 일 실시예와 관련된 다중 포트 캐시 메모리 장치의 블록 구성도(block diagram)이다.
도 7은 본 발명의 또 다른 일 실시예와 관련된 다중 포트 캐시 메모리 장치의 블록 구성도(block diagram)이다.
도 8은 본 발명의 일 실시예에 따른 다중 포트 캐시 메모리 장치의 구동 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 3은 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 또 다른 일 실시예와 관련된 다중 포트 캐시 메모리 장치의 블록 구성도(block diagram)이다.
도 7은 본 발명의 또 다른 일 실시예와 관련된 다중 포트 캐시 메모리 장치의 블록 구성도(block diagram)이다.
도 8은 본 발명의 일 실시예에 따른 다중 포트 캐시 메모리 장치의 구동 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 발명을 실시하기 위한 구체적인 내용에 대하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예와 관련된 다중 포트 캐시 메모리 장치의 블록 구성도(block diagram)이다.
다중 포트 캐시 메모리 장치(100)는 다수의 캐시 뱅크(110), 할당부(120), 제 1 상호 연결망(interconnection network)(130), 제 2 상호 연결망(interconnection network)(140) 및 메모리(150)를 포함한다.
캐시 뱅크(110)는 제 1 캐시 뱅크(111), 제 2 캐시 뱅크(112), 제 3 캐시 뱅크(113) 및 제 M 캐시 뱅크(114)를 포함한다. 각각의 캐시 뱅크는 외부에서 캐시 뱅크로 접근할 수 있는 포트(Core-side port) 및 캐시 뱅크가 스스로 데이터를 읽거나 쓰기 위해 사용하는 포트(memory-side port)를 포함할 수 있다.
할당부(120)는 주소 공간(address space)을 정해진 크기의 주소 영역(address region)들로 분할하고, 분할된 제 1 주소 영역을 제 1 캐시 뱅크(111)에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 2 캐시 뱅크(112)에 할당할 수 있다. 정해진 크기는 1개의 캐시 뱅크 전체의 주소 영역보다 작을 수 있다. 예를 들면, 정해진 크기는 캐시 뱅크의 블록 크기 및 포트(port)를 통해 한번에 전송될 수 있는 데이터 크기일 수 있다. 블럭 크기는 캐시 뱅크의 라인 1개의 사이즈를 의미하고, 데이터 크기는 외부에서 캐시 뱅크로 접근할 수 있는 포트(Core-side port)를 통해 한번에 전송될 수 있는 데이터 크기를 의미한다. 이러한 방식을 인터리빙 방식이라고도 한다.
예를 들면, 할당부(120)는 분할된 주소 영역들을 캐시 뱅크들(111, 112, 113, 114)에 순차적으로 할당할 수 있다. 구체적으로 예를 들면, 할당부(120)는 분할된 제 1 주소 영역을 제 1 캐시 뱅크(111)에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 1 캐시 뱅크(111)의 다음에 위치한 제 2 캐시 뱅크(112)에 할당할 수 있다. 본 실시예에서는 이러한 방식을 순차적(sequential) 방식이라고 할 수 있다.
또 다른 예를 들면, 할당부(120)는 분할된 주소 영역들을 캐시 뱅크들(111, 112, 113, 114)에 비순차적으로 할당할 수 있다. 구체적으로 예를 들면, 할당부(120)는 분할된 제 1 주소 영역을 제 1 캐시 뱅크(111)에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 1 캐시 뱅크의 다음에 위치하지 않은 제 3 캐시 뱅크(113)에 할당할 수 있다. 본 실시예에서는 이러한 방식을 스큐(skewed) 방식이라고 할 수 있다.
이에 대한 구체적인 설명은 도 2, 도 3, 도 4 및 도 5를 참조하여 후술한다.
제 1 상호 연결망(interconnection network)(130)은 N개의 외부 포트(port)와 다수의 캐시 뱅크(110)를 연결할 수 있다. 제 1 상호 연결망(interconnection network)(130)은 port-to-cache 상호 연결망(interconnection network)이라고도 할 수 있다. 예를 들면, 제 1 상호 연결망(interconnection network)(130)은 할당부(120)에 의해 할당된 주소 영역에 기초하여 캐시 뱅크 접근(access)을 해당하는 캐시 뱅크의 코어 사이드 포트(Core-side port)로 전달할 수 있다. 다시 말해, 제 1 상호 연결망(130)은 캐시 뱅크 접근(access)을 순차적 또는 비순차적으로 코어 사이드 포트(Core-side port)로 전달할 수 있다.
제 2 상호 연결망(interconnection network)(140)은 다수의 캐시 뱅크(110)와 메모리(150)를 연결할 수 있다. 제 2 상호 연결망(interconnection network)(140)은 cache-to-memory 상호 연결망(interconnection network)이라고도 할 수 있다. 예를 들면, 제 2 상호 연결망(interconnection network)(140)은 다수의 캐시 뱅크(110)에서 발생하는 메모리 접근(access)을 메모리(150)로 전달해 줄 수 있다.
제 1 상호 연결망(interconnection network)(130) 및 제 2 상호 연결망(interconnection network)(140)은 크로스바(crossbar) 스위치일 수 있다.
메모리(150)는 데이터를 저장할 수 있으며, 메모리(150)의 개수는 하나 또는 둘 이상일 수 있다.
다중 포트 캐시 메모리 장치는 주소 공간을 정해진 크기의 주소 영역으로 분할하고, 분할된 주소 영역을 캐시 뱅크들에 순차적 또는 비순차적으로 할당함으로써, 캐시 뱅크에 접근을 분산시킬 수 있다. 이에 따라, 다중 포트 캐시 메모리 장치는 특정 캐시에 접근이 집중되는 것을 방지할 수 있다.
도 2는 본 발명의 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
이하에서는, 캐시 뱅크가 4개인 경우를 기준으로 설명하나, 캐시 뱅크의 개수는 이에 한정되지 않는다.
또한, 주소 영역을 캐시 뱅크들에 할당하는 순서는 일실시예에 불과한 것이며, 다양하게 변경될 수 있다.
또한, 캐시 뱅크 내에 표시된 숫자는 주소를 의미한다. 예를 들면, '1'은 제 1 주소 영역에 대응되는 주소를 의미한다.
도 1 및 도 2를 참조하면, 할당부(120)는 주소 공간을 캐시 뱅크(110)의 블록 크기의 주소 영역들로 분할하고, 분할된 주소 영역들을 제 1 캐시 뱅크(111), 제 2 캐시 뱅크(112), 제 3 캐시 뱅크(113) 및 제 4 캐시 뱅크(114)의 순서로 할당할 수 있다.
예를 들면, 할당부(120)는 분할된 제 1 주소 영역('1')을 제 1 캐시 뱅크(111)에 할당할 수 있다. 할당부(120)는 분할된 제 1 주소 영역('1') 다음의 분할된 제 2 주소 영역('2')을 제 1 캐시 뱅크(111)의 다음에 위치한 제 2 캐시 뱅크(112)에 할당할 수 있다. 할당부(120)는 분할된 제 2 주소 영역('2') 다음의 분할된 제 3 주소 영역('3')을 제 2 캐시 뱅크(112)의 다음에 위치한 제 3 캐시 뱅크(113)에 할당할 수 있다. 할당부(120)는 분할된 제 3 주소 영역('3') 다음의 분할된 제 4 주소 영역('4')을 제 3 캐시 뱅크(113)의 다음에 위치한 제 4 캐시 뱅크(114)에 할당할 수 있다. 할당부(120)는 분할된 제 4 주소 영역('4') 다음의 분할된 제 5 주소 영역('5')을 제 4 캐시 뱅크(114)의 다음에 위치한 제 1 캐시 뱅크(114)에 할당할 수 있다. 이와 같은 과정을 통해, 할당부(120)는 제 5 주소 영역('5') 내지 제 16 주소 영역('16')을 캐시 뱅크들(111, 112, 113, 114)에 순차적으로 할당할 수 있다.
이와 같이, 분할된 주소 영역을 분산시켜 캐시 뱅크들에 할당함으로써, 특정 캐시 뱅크에 접근이 집중되는 것을 방지할 수 있다.
도 4는 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
이하에서는, 캐시 뱅크가 4개인 경우를 기준으로 설명하나, 캐시 뱅크의 개수는 이에 한정되지 않는다.
또한, 주소 영역을 캐시 뱅크들에 할당하는 순서는 일실시예에 불과한 것이며, 다양하게 변경될 수 있다.
도 1 및 도 3을 참조하면, 할당부(120)는 주소 공간을 포트(port)를 통해 한번에 전송될 수 있는 데이터 크기의 주소 영역들로 분할하고, 분할된 주소 영역들을 제 1 캐시 뱅크(111), 제 2 캐시 뱅크(112), 제 3 캐시 뱅크(113) 및 제 4 캐시 뱅크(114)의 순서로 할당할 수 있다.
예를 들면, 할당부(120)는 분할된 제 1 주소 영역('1')을 제 1 캐시 뱅크(111)에 할당할 수 있다. 할당부(120)는 분할된 제 1 주소 영역('1') 다음의 분할된 제 2 주소 영역('2')을 제 1 캐시 뱅크(111)의 다음에 위치한 제 2 캐시 뱅크(112)에 할당할 수 있다. 할당부(120)는 분할된 제 2 주소 영역('2') 다음의 분할된 제 3 주소 영역('3')을 제 2 캐시 뱅크(112)의 다음에 위치한 제 3 캐시 뱅크(113)에 할당할 수 있다. 할당부(120)는 분할된 제 3 주소 영역('3') 다음의 분할된 제 4 주소 영역('4')을 제 3 캐시 뱅크(113)의 다음에 위치한 제 4 캐시 뱅크(114)에 할당할 수 있다. 할당부(120)는 분할된 제 4 주소 영역('4') 다음의 분할된 제 5 주소 영역('1')을 제 1 캐시 뱅크(111)에 할당할 수 있다.
할당부(120)는 분할된 제 5 주소 영역('5') 다음의 분할된 제 6 주소 영역('6')을 제 1 캐시 뱅크(111)의 다음에 위치한 제 2 캐시 뱅크(112)에 할당할 수 있다. 할당부(120)는 분할된 제 6 주소 영역('6') 다음의 분할된 제 7 주소 영역('7')을 제 2 캐시 뱅크(112)의 다음에 위치한 제 3 캐시 뱅크(113)에 할당할 수 있다. 할당부(120)는 분할된 제 7 주소 영역('7') 다음의 분할된 제 8 주소 영역('8')을 제 3 캐시 뱅크(113)의 다음에 위치한 제 4 캐시 뱅크(114)에 할당할 수 있다.
이와 같은 과정을 통해, 할당부(120)는 제 9 주소 영역('9') 내지 제 48 주소 영역('48')을 제 1 캐시 뱅크(111), 제 2 캐시 뱅크(112), 제 3 캐시 뱅크(113) 및 제 4 캐시 뱅크(114)에 순차적으로 할당할 수 있다.
이와 같이, 분할된 주소 영역을 분산시켜 캐시 뱅크들에 할당함으로써, 특정 캐시 뱅크에 접근이 집중되는 것을 방지할 수 있다.
도 3은 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
이하에서는, 캐시 뱅크가 4개인 경우를 기준으로 설명하나, 캐시 뱅크의 개수는 이에 한정되지 않는다.
또한, 주소 영역을 캐시 뱅크들에 할당하는 순서는 일실시예에 불과한 것이며, 다양하게 변경될 수 있다.
할당부(120)는 주소 공간을 캐시 뱅크(110)의 블록 크기의 주소 영역들로 분할하고, 분할된 주소 영역들을 제 1 캐시 뱅크(111), 제 2 캐시 뱅크(112), 제 3 캐시 뱅크(113) 및 제 4 캐시 뱅크(114)의 순서를 고려하지 않고 비순차적으로 할당할 수 있다.
예를 들면, 할당부(120)는 분할된 제 1 주소 영역('1')을 제 1 캐시 뱅크(111)에 할당할 수 있다. 할당부(120)는 분할된 제 1 주소 영역('1') 다음의 분할된 제 2 주소 영역('2')을 제 1 캐시 뱅크(111)의 다음에 위치한 제 2 캐시 뱅크(112)에 할당할 수 있다. 할당부(120)는 분할된 제 2 주소 영역('2') 다음의 분할된 제 3 주소 영역('3')을 제 2 캐시 뱅크(112)의 다음에 위치한 제 3 캐시 뱅크(113)에 할당할 수 있다. 할당부(120)는 분할된 제 3 주소 영역('3') 다음의 분할된 제 4 주소 영역('4')을 제 3 캐시 뱅크(113)의 다음에 위치한 제 4 캐시 뱅크(114)에 할당할 수 있다.
할당부(120)는 분할된 제 5 주소 영역('5')을 제 2 캐시 뱅크(112)에 할당할 수 있다. 이와 같이, 할당부(120)는 분할된 제 5 주소 영역('5')을 제 1 캐시 뱅크(111)에 할당하지 않고 제 2 캐시 뱅크(112)에 할당함으로써, 주소 영역들을 캐시 뱅크(110)에 비순차적으로 할당할 수 있다.
할당부(120)는 분할된 제 9 주소 영역('9')을 제 4 캐시 뱅크(114)에 할당할 수 있다. 할당부(120)는 분할된 제 9 주소 영역('9') 다음의 분할된 제 10 주소 영역('10')을 제 4 캐시 뱅크(114)의 다음에 위치하지 않은 제 2 캐시 뱅크(112)에 할당할 수 있다. 이와 같이, 할당부(120)는 분할된 제 10 주소 영역('10')을 제 1 캐시 뱅크(111)에 할당하지 않고 제 2 캐시 뱅크(112)에 할당함으로써, 주소 영역들을 캐시 뱅크(110)에 비순차적으로 할당할 수 있다.
이와 같은 과정을 통해, 할당부(120)는 제 13 주소 영역('13') 내지 제 16 주소 영역('16')을 캐시 뱅크들(111, 112, 113, 114)에 비순차적으로 할당할 수 있다.
이와 같이, 분할된 주소 영역을 분산시켜 캐시 뱅크들에 할당함으로써, 특정 캐시 뱅크에 접근이 집중되는 것을 방지할 수 있다.
도 5는 본 발명의 또 다른 일 실시예와 관련된 도 1의 할당부가 주소 영역들을 캐시 뱅크에 할당하는 과정을 설명하기 위한 도면이다.
도 1 및 도 5를 참조하면, 할당부(120)는 주소 공간을 포트(port)를 통해 한번에 전송될 수 있는 데이터 크기의 주소 영역들로 분할하고, 분할된 주소 영역들을 제 1 캐시 뱅크(111), 제 2 캐시 뱅크(112), 제 3 캐시 뱅크(113) 및 제 4 캐시 뱅크(114)의 순서를 고려하지 않고 비순차적으로 할당할 수 있다.
예를 들면, 할당부(120)는 분할된 제 1 주소 영역('1')을 제 1 캐시 뱅크(111)에 할당할 수 있다. 할당부(120)는 분할된 제 1 주소 영역('1') 다음의 분할된 제 2 주소 영역('2')을 제 1 캐시 뱅크(111)의 다음에 위치한 제 2 캐시 뱅크(112)에 할당할 수 있다. 할당부(120)는 분할된 제 2 주소 영역('2') 다음의 분할된 제 3 주소 영역('3')을 제 2 캐시 뱅크(112)의 다음에 위치한 제 3 캐시 뱅크(113)에 할당할 수 있다. 할당부(120)는 분할된 제 3 주소 영역('3') 다음의 분할된 제 4 주소 영역('4')을 제 3 캐시 뱅크(113)의 다음에 위치한 제 4 캐시 뱅크(114)에 할당할 수 있다.
할당부(120)는 분할된 제 5 주소 영역('5')을 제 4 캐시 뱅크(114)에 할당할 수 있다. 이와 같이, 할당부(120)는 분할된 제 5 주소 영역('5')을 제 1 캐시 뱅크(111)에 할당하지 않고 제 4 캐시 뱅크(114)에 할당함으로써, 주소 영역들을 캐시 뱅크(110)에 비순차적으로 할당할 수 있다.
할당부(120)는 분할된 제 5 주소 영역('5') 다음의 분할된 제 6 주소 영역('6')을 제 4 캐시 뱅크(114)의 다음에 위치하지 않은 제 2 캐시 뱅크(112)에 할당할 수 있다. 이와 같이, 할당부(120)는 분할된 제 6 주소 영역('6')을 제 1 캐시 뱅크(111)에 할당하지 않고 제 2 캐시 뱅크(112)에 할당함으로써, 주소 영역들을 캐시 뱅크(110)에 비순차적으로 할당할 수 있다.
이와 같은 과정을 통해, 할당부(120)는 제 13 주소 영역('13') 내지 제 48 주소 영역('48')을 캐시 뱅크들(111, 112, 113, 114)에 할당할 수 있다.
이와 같이, 분할된 주소 영역을 분산시켜 캐시 뱅크들에 할당함으로써, 특정 캐시 뱅크에 접근이 집중되는 것을 방지할 수 있다.
도 6은 본 발명의 또 다른 일 실시예와 관련된 다중 포트 캐시 메모리 장치의 블록 구성도(block diagram)이다.
도 1 및 도 6을 참조하면, 다중 포트 캐시 메모리 장치(100)는 다수의 캐시 뱅크(110), 제 2 상호 연결망(interconnection network)(140), 메모리(150), 로더(laoader)(160) 및 데이터 변경부(170)를 포함한다.
캐시 뱅크(110)는 제 1 캐시 뱅크(111), 제 2 캐시 뱅크(112), 제 3 캐시 뱅크(113) 및 제 4 캐시 뱅크(114)를 포함한다.
제 2 상호 연결망(interconnection network)(140)은 다수의 캐시 뱅크(110)와 메모리(150)를 연결할 수 있다. 예를 들면, 제 2 상호 연결망(interconnection network)(140)은 다수의 캐시 뱅크(110)에서 발생하는 메모리 접근(access)을 메모리(150)로 전달해 줄 수 있다.
메모리(150)는 데이터를 저장할 수 있으며, 메모리(150)의 개수는 하나 또는 둘 이상일 수 있다.
로더(laoader)(160)는 캐시 뱅크들(111, 112, 113, 114)에 할당된 주소의 순서와 동일하게 데이터를 메모리(150)에 저장할 수 있다. 예를 들면, 로더(160)는 제 1 캐시 뱅크(111)의 첫번째 블럭에 할당된 주소들('1, 5, 9')의 순서와 동일하게 데이터를 메모리(150)에 저장할 수 있다. 또한, 로더(160)는 제 2 캐시 뱅크(111)의 첫번째 블럭에 할당된 주소들('2, 6, 10')의 순서와 동일하게 데이터를 메모리(150)에 저장할 수 있다. 다시 말해, 로더(160)는 원래 주소 순서('1, 2, 3, 4, 5,...')대로 데이터를 메모리(150)에 저장하는 것이 아니라, 캐시 뱅크들(111, 112, 113, 114)에 할당된 주소의 순서대로 데이터를 메모리(150)에 저장한다. 이에 따르면, 불연속적으로 지정된 주소들(예를 들면, '1, 5, 9')에 대응되는 데이터가 연속적으로 저장되어 있기 때문에, 캐시 뱅크가 불연속적으로 할당된 주소들(예를 들면, '1, 5, 9')에 대응되는 데이터를 메모리(150)로부터 로딩할 때, 짧은 시간 내에 로딩할 수 있는 것입니다.
데이터 변경부(170)는 메모리(150)에 불연속적으로 저장된 데이터를 로딩한 후, 로딩된 데이터를 연속적인 데이터로 변경하고, 변경된 데이터를 외부 장치로 전송할 수 있다. 메모리(150)에 저장된 데이터는 불연속적으로 할당된 주소들(예를 들면, '1, 5, 9')에 따라 저장되어 있다. 따라서, 외부 장치가 메모리(150)에 저장된 데이터를 바로 쓸 수 없기 때문에, 데이터 변경부(170)는 메모리(150)에 불연속적으로 저장된 데이터를 연속적인 데이터로 변경하여 외부 장치로 전송한다. 이에 따라, 외부 장치는 연속적인 주소('1, 2, 3, ...')에 대응되는 연속적인 데이터를 로딩할 수 있다.
도 7은 본 발명의 또 다른 일 실시예와 관련된 다중 포트 캐시 메모리 장치의 블록 구성도(block diagram)이다.
도 1 및 도 7을 참조하면, 다중 포트 캐시 메모리 장치(100)는 제 2 상호 연결망(interconnection network)(140), 메모리(150) 및 데이터 재배열부(180)를 포함한다.
제 2 상호 연결망(interconnection network)(140)은 다수의 캐시 뱅크(110)와 메모리(150)를 연결할 수 있다. 예를 들면, 제 2 상호 연결망(interconnection network)(140)은 다수의 캐시 뱅크(110)에서 발생하는 메모리 접근(access)을 메모리(150)로 전달해 줄 수 있다.
메모리(150)는 데이터를 저장할 수 있으며, 메모리(150)의 개수는 하나 또는 둘 이상일 수 있다.
데이터 재배열부(180)는 제 2 상호 연결망(interconnection network)(140)과 메모리(150) 사이에 연결되거나 캐쉬뱅크(110)와 메모리(150) 사이에 연결될 수 있다. 데이터 재배열부(180)는 임시 저장부(미도시)를 포함할 수 있다. 임시 저장부는 버퍼, 캐시(cache), lower-level 캐시(cache) 등 일 수 있다.
데이터 재배열부(180)는 불연속적인 데이터를 연속적인 데이터로 재배열하거나, 연속적인 데이터를 불연속적인 데이터로 재배열할 수 있다. 예를 들면, 데이터 재배열부(180)는 캐시 뱅크(110)로부터 수신된 불연속적인 데이터를 연속적인 데이터로 재배열하여 메모리(150)에 저장하거나, 메모리(150)로부터 수신된 연속적인 데이터를 불연속적인 데이터로 재배열하여 캐시 뱅크(110)로 전송할 수 있다.
예를 들면, 데이터 재배열부(180)는 제 1 상호 연결망(interconnection network)(140)을 통해 캐시 뱅크로부터 불연속적인 주소들(예를 들면, '1, 5, 9')에 대응되는 제 1 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 불연속적인 주소 중 처음 주소('1') 및 마지막 주소('9') 사이에 존재하는 제 2 데이터('1, 2, 3, 4, 5, 6, 7, 8 및 9 주소에 대응되는 데이터')를 메모리(150)로부터 로딩하고, 임시 저장부에 저장한다. 데이터 재배열부(180)는 제 2 데이터 중 불연속적인 주소(예를 들면, '1, 5, 9')에 대응되는 제 1 데이터만을 추출하고, 추출된 제 1 데이터를 캐쉬 뱅크(110)로 전송할 수 있다. 캐시 뱅크로부터 불연속적인 주소(예를 들면, '2, 4, 8')에 대응되는 제 3 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 데이터 재배열부(180)는 메모리로 접근하지 않고도, 임시 저장부에 저장된 불연속적인 주소(예를 들면, '2, 4, 8')에 대응되는 제 3 데이터를 바로 캐쉬 뱅크(110)로 전송할 수 있다.
또 다른 예를 들면, 캐시 뱅크로부터 불연속적인 주소(예를 들면, '1, 3, 5')에 대응되는 제 4 데이터의 쓰기(writing)을 요청하는 신호가 입력되면, 데이터 재배열부(180)는 제 4 데이터를 임시 저장부에 저장한다. 캐시 뱅크로부터 불연속적인 주소(예를 들면, '2, 4, 6')에 대응되는 제 5 데이터의 쓰기(writing)을 요청하는 신호가 입력되면, 데이터 재배열부(180)는 임시 저장부에 저장된 제 4 데이터 및 제 5 데이터를 함께 메모리(150)에 저장한다. 불연속적인 주소에 대응되는 데이터를 매번 메모리(150)에 저장하는 것이 아니라, 불연속적인 주소에 대응되는 데이터를 임시 저장부에 저장한 후, 결정된 시기마다 연속적인 데이터가 되면, 연속 데이터를 메모리(150)에 저장하는 것이다.
또 다른 예를 들면, 캐시 뱅크로부터 불연속적인 주소(예를 들면, '1, 3, 5')에 대응되는 제 6 데이터의 쓰기(writing)을 요청하는 신호가 입력되면, 데이터 재배열부(180)는 불연속적인 주소들 사이에 존재하는 연속적인 주소('1, 2, 3, 4, 5')에 대응되는 제 7 데이터를 임시 저장부에 저장한다. 데이터 재배열부(180)는 제 6 데이터를 제 7 데이터에 덮어쓸 수 있다. 임시 저장부에 다른 데이터를 저장해야할 때, 데이터 재배열부(180)는 덮어쓴 제 7 데이터를 메모리(150)에 저장할 수 있다.
위와 같은, 데이터 재배열부(180)의 리딩 또는 쓰기 방법들 이외에도 다양한 방법들이 사용될 수 있다.
위와 같이, 불연속적인 주소에 대한 접근이 요청되는 경우에도, 연속적인 주소에 대한 접근이 요청되는 것과 같이 처리함으로써, 연속적인 주소에 대한 접근을 처리하는 경우와 같은 성능을 유지할 수 있다.
도 8은 본 발명의 일 실시예에 따른 다중 포트 캐시 메모리 장치의 구동 방법을 설명하기 위한 흐름도이다.
다중 포트 캐시 메모리 장치는 주소 공간(address space)을 정해진 크기의 주소 영역(address region)들로 분할한다(800). 정해진 크기는 캐시 뱅크의 블록 크기 및 포트(port)를 통해 한번에 전송될 수 있는 데이터 크기 중 적어도 하나일 수 있다. 다중 포트 캐시 메모리 장치는 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 2 캐시 뱅크에 할당한다(810).
예를 들면, 다중 포트 캐시 메모리 장치 분할된 주소 영역들을 캐시 뱅크들에 순차적으로 할당할 수 있다. 구체적으로 예를 들면, 다중 포트 캐시 메모리 장치는 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 1 캐시 뱅크와 인접한 제 2 캐시 뱅크에 할당할 수 있다.
또 다른 예를 들면, 다중 포트 캐시 메모리 장치는 분할된 주소 영역들을 캐시 뱅크들에 비순차적으로 할당할 수 있다. 구체적으로 예를 들면, 다중 포트 캐시 메모리 장치는 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 1 캐시 뱅크와 인접하지 않은 제 2 캐시 뱅크에 할당할 수 있다.
다중 포트 캐시 메모리 장치는 캐시 뱅크들에 할당된 주소의 순서와 동일하게 데이터를 메모리에 저장할 수 있다.
다중 포트 캐시 메모리 장치는 캐시 뱅크로부터 비연속적인 주소에 대응되는 제 1 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 비연속적인 주소 중 처음 주소 및 마지막 주소 사이에 존재하는 제 2 데이터를 메모리로부터 로딩할 수 있다. 다중 포트 캐시 메모리 장치는 제 2 데이터 중 제 1 데이터만을 추출하여 캐쉬 뱅크로 전송할 수 있다.
설명된 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
또한, 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
또한, 본 발명의 일실시예에 의하면, 전술한 방법은, 프로그램이 기록된 매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
Claims (20)
- 다수의 캐시 뱅크; 및
주소 공간(address space)을 캐시 뱅크의 라인 1개의 사이즈 및 외부에서 캐시 뱅크로 접근할 수 있는 포트(Core-side port)를 통해 한 번에 전송될 수 있는 미리 정해진 크기의 주소 영역(address region)들로 분할하고, 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 2 캐시 뱅크에 할당하는 할당부; 및
상기 캐시 뱅크로부터 수신된 불연속적인 데이터를 연속적인 데이터로 재배열하여 메모리에 저장하거나, 메모리로부터 수신된 연속적인 데이터를 불연속적인 데이터로 재배열하여 상기 캐시 뱅크로 전송하는 데이터 재배열부를 포함하고,
상기 데이터 재배열부는,
상기 불연속 데이터 및 상기 연속 데이터 중 적어도 하나를 임시 저장하는 임시 저장부를 더 포함하되, 상기 임시 저장부에 저장된 불연속 데이터가 결정된 시기마다 연속적인 데이터가 되면 상기 연속적인 데이터를 메모리에 저장하는 다중 포트 캐시 메모리 장치.
- 제 1 항에 있어서,
상기 할당부는,
상기 분할된 주소 영역들을 상기 캐시 뱅크들에 순차적으로 할당하는 다중 포트 캐시 메모리 장치.
- 제 2 항에 있어서,
상기 할당부는,
상기 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 상기 제 1 캐시 뱅크의 다음에 위치한 제 2 캐시 뱅크에 할당하는 다중 포트 캐시 메모리 장치.
- 제 1 항에 있어서,
상기 할당부는,
상기 분할된 주소 영역들을 상기 캐시 뱅크들에 비순차적으로 할당하는 다중 포트 캐시 메모리 장치.
- 제 4 항에 있어서,
상기 할당부는,
상기 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 상기 제 1 캐시 뱅크의 다음에 위치하지 않은 제 3 캐시 뱅크에 할당하는 다중 포트 캐시 메모리 장치.
- 삭제
- 제 1 항에 있어서,
상기 캐시 뱅크들과 연결된 적어도 하나의 메모리; 및
상기 캐시 뱅크들에 할당된 주소의 순서와 동일하게 데이터를 상기 메모리에 저장하는 데이터 로더(loader)를 더 포함하는 다중 포트 캐시 메모리 장치.
- 제 7 항에 있어서,
상기 메모리에 불연속적으로 저장된 상기 데이터를 로딩한 후, 상기 로딩된 데이터를 연속적인 데이터로 변경하고, 상기 변경된 데이터를 외부 장치로 전송하는 데이터 변경부를 더 포함하는 다중 포트 캐시 메모리 장치.
- 삭제
- 제 1 항에 있어서,
상기 데이터 재배열부는,
상기 캐시 뱅크로부터 비연속적인 주소에 대응되는 제 1 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 상기 비연속적인 주소 중 처음 주소 및 마지막 주소 사이에 존재하는 제 2 데이터를 메모리로부터 로딩한 후, 상기 제 2 데이터 중 상기 제 1 데이터만을 추출하여 상기 캐시 뱅크로 전송하는 다중 포트 캐시 메모리 장치.
- 삭제
- 주소 공간(address space)을 캐시 뱅크의 라인 1개의 사이즈 및 외부에서 캐시 뱅크로 접근할 수 있는 포트(Core-side port)를 통해 한 번에 전송될 수 있는 미리 정해진 크기의 주소 영역(address region)들로 분할하는 단계;
분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소영역을 제 2 캐시 뱅크에 할당하는 단계;
상기 캐시 뱅크 중 어느 하나로부터 수신된 불연속적인 데이터를 연속적인 데이터로 재배열하여 메모리에 저장하거나, 메모리로부터 수신된 연속적인 데이터를 불연속적인 데이터로 재배열하여 상기 캐시 뱅크 중 어느 하나로 전송하는 단계; 및
임시 저장부에 저장된 불연속 데이터가 결정된 시기마다 연속적인 데이터가 되면 상기 연속적인 데이터를 메모리에 저장하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
- 제 12 항에 있어서,
상기 할당하는 단계는,
상기 분할된 주소 영역들을 상기 캐시 뱅크들에 순차적으로 할당하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
- 제 13 항에 있어서,
상기 순차적으로 할당하는 단계는,
상기 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 상기 제 1 캐시 뱅크의 다음에 위치한 제 2 캐시 뱅크에 할당하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
- 제 12 항에 있어서,
상기 할당하는 단계는,
상기 분할된 주소 영역들을 상기 캐시 뱅크들에 비순차적으로 할당하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
- 제 15 항에 있어서,
상기 비순차적으로 할당하는 단계는,
상기 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 상기 제 1 캐시 뱅크의 다음에 위치하지 않은 제 3 캐시 뱅크에 할당하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
- 삭제
- 제 12 항에 있어서,
상기 캐시 뱅크들에 할당된 주소의 순서와 동일하게 데이터를 메모리에 저장하는 단계를 더 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
- 삭제
- 제 12 항에 있어서,
상기 캐시 뱅크 중 어느 하나로부터 비연속적인 주소에 대응되는 제 1 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 상기 비연속적인 주소 중 처음 주소 및 마지막 주소 사이에 존재하는 제 2 데이터를 메모리로부터 로딩하는 단계; 및
상기 제 2 데이터 중 상기 제 1 데이터만을 추출하여 상기 리딩을 요청한 캐쉬 뱅크로 전송하는 단계를 더 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110017412A KR101788245B1 (ko) | 2011-02-25 | 2011-02-25 | 다중 포트 캐시 메모리 장치 및 그 구동 방법 |
US13/362,460 US8977800B2 (en) | 2011-02-25 | 2012-01-31 | Multi-port cache memory apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110017412A KR101788245B1 (ko) | 2011-02-25 | 2011-02-25 | 다중 포트 캐시 메모리 장치 및 그 구동 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120097878A KR20120097878A (ko) | 2012-09-05 |
KR101788245B1 true KR101788245B1 (ko) | 2017-11-16 |
Family
ID=46719806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110017412A KR101788245B1 (ko) | 2011-02-25 | 2011-02-25 | 다중 포트 캐시 메모리 장치 및 그 구동 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8977800B2 (ko) |
KR (1) | KR101788245B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892049B2 (en) * | 2012-10-31 | 2018-02-13 | Renesas Electronics Corporation | Semiconductor device and method for prefetching to cache memory |
US9507721B2 (en) | 2014-07-21 | 2016-11-29 | Seagate Technology Llc | Disk cache allocation |
US9842047B2 (en) * | 2014-11-24 | 2017-12-12 | Seagate Technology Llc | Non-sequential write for sequential read back |
CN104967807B (zh) * | 2014-12-30 | 2017-03-22 | 浙江大华技术股份有限公司 | 一种缓存方法和装置 |
KR101967857B1 (ko) * | 2017-09-12 | 2019-08-19 | 전자부품연구원 | 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247649A (en) * | 1988-05-06 | 1993-09-21 | Hitachi, Ltd. | Multi-processor system having a multi-port cache memory |
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
US5801708A (en) * | 1995-06-06 | 1998-09-01 | Hewlett-Packard Company | MIP map texture storage by dividing and allocating among multiple blocks |
KR19990071554A (ko) | 1996-09-25 | 1999-09-27 | 요트.게.아. 롤페즈 | 어드레스충돌검출기능을갖는멀티포트캐시메모리 |
US5924117A (en) | 1996-12-16 | 1999-07-13 | International Business Machines Corporation | Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto |
US6088760A (en) * | 1997-03-07 | 2000-07-11 | Mitsubishi Semiconductor America, Inc. | Addressing system in a multi-port RAM having main and cache memories |
US6606684B1 (en) * | 2000-03-31 | 2003-08-12 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
JP3498673B2 (ja) * | 2000-04-05 | 2004-02-16 | 日本電気株式会社 | 記憶装置 |
JP2002055879A (ja) | 2000-08-11 | 2002-02-20 | Univ Hiroshima | マルチポートキャッシュメモリ |
US6604174B1 (en) * | 2000-11-10 | 2003-08-05 | International Business Machines Corporation | Performance based system and method for dynamic allocation of a unified multiport cache |
JP3784766B2 (ja) | 2002-11-01 | 2006-06-14 | 株式会社半導体理工学研究センター | 多ポート統合キャッシュ |
JP4336848B2 (ja) | 2004-11-10 | 2009-09-30 | 日本電気株式会社 | マルチポートキャッシュメモリ及びマルチポートキャッシュメモリのアクセス制御方式 |
-
2011
- 2011-02-25 KR KR1020110017412A patent/KR101788245B1/ko active IP Right Grant
-
2012
- 2012-01-31 US US13/362,460 patent/US8977800B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8977800B2 (en) | 2015-03-10 |
US20120221797A1 (en) | 2012-08-30 |
KR20120097878A (ko) | 2012-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8984203B2 (en) | Memory access control module and associated methods | |
TWI554883B (zh) | 用於在記憶體系統中分割資料結構之系統及方法 | |
US10824341B2 (en) | Flash-based accelerator and computing device including the same | |
KR101788245B1 (ko) | 다중 포트 캐시 메모리 장치 및 그 구동 방법 | |
JP4805351B2 (ja) | Dramの並列処理を向上するシステム及び方法 | |
KR100958264B1 (ko) | 메모리 제어기, 데이터 반환 방법 및 시스템 | |
US7730261B1 (en) | Multicore memory management system | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
CN106716334A (zh) | 文件***卷内的高效数据移动 | |
JP4809890B2 (ja) | メモリマイクロタイリングリクエストの並べ替え | |
JP2001022638A (ja) | 情報処理システム | |
US20130054885A1 (en) | Multiport memory element and semiconductor device and system including the same | |
KR20190094079A (ko) | 머신 러닝 시스템에서 직렬화된 키 값 접근을 방지하기 위한 시스템 및 방법 | |
CN106227506A (zh) | 一种内存压缩***中的多通道并行压缩解压***及方法 | |
US9164903B2 (en) | Memory manager | |
US9658951B1 (en) | Scalable high bandwidth memory in a network device | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
CN116171431A (zh) | 用于加速器中多个并行数据路径通道的存储体式存储器架构 | |
US20150255147A1 (en) | Writing method for solid state disk | |
GB2447690A (en) | A data processing apparatus and method for performing multi-cycle arbitration | |
KR20130089324A (ko) | 데이터 입출력 컨트롤러 및 이를 포함하는 시스템 | |
CN117130955A (zh) | 用于管理相关联的存储器的方法和*** | |
CN111666253B (zh) | 向具有共享存储器的共享处理元件的***传递可编程数据 | |
US7370158B2 (en) | SIMD process with multi-port memory unit comprising single-port memories | |
CN116360672A (zh) | 访问存储器的方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |