KR101788245B1 - 다중 포트 캐시 메모리 장치 및 그 구동 방법 - Google Patents

다중 포트 캐시 메모리 장치 및 그 구동 방법 Download PDF

Info

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
Application number
KR1020110017412A
Other languages
English (en)
Other versions
KR20120097878A (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 KR1020110017412A priority Critical patent/KR101788245B1/ko
Priority to US13/362,460 priority patent/US8977800B2/en
Publication of KR20120097878A publication Critical patent/KR20120097878A/ko
Application granted granted Critical
Publication of KR101788245B1 publication Critical patent/KR101788245B1/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
    • 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/0853Cache with multiport tag or data arrays
    • 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/0893Caches characterised by their organisation or structure
    • 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/604Details 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

다중 포트 캐시 메모리 장치 및 그 구동 방법{MULTI-PORT CACHE MEMORY APPARATUS AND METHOD FOR OPERATING MULTI-PORT CACHE MEMORY APPARATUS}
특정 캐시 뱅크에 데이터 접근(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은 본 발명의 일 실시예에 따른 다중 포트 캐시 메모리 장치의 구동 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 발명을 실시하기 위한 구체적인 내용에 대하여 상세하게 설명한다.
도 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)

  1. 다수의 캐시 뱅크; 및
    주소 공간(address space)을 캐시 뱅크의 라인 1개의 사이즈 및 외부에서 캐시 뱅크로 접근할 수 있는 포트(Core-side port)를 통해 한 번에 전송될 수 있는 미리 정해진 크기의 주소 영역(address region)들로 분할하고, 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 제 2 캐시 뱅크에 할당하는 할당부; 및
    상기 캐시 뱅크로부터 수신된 불연속적인 데이터를 연속적인 데이터로 재배열하여 메모리에 저장하거나, 메모리로부터 수신된 연속적인 데이터를 불연속적인 데이터로 재배열하여 상기 캐시 뱅크로 전송하는 데이터 재배열부를 포함하고,
    상기 데이터 재배열부는,
    상기 불연속 데이터 및 상기 연속 데이터 중 적어도 하나를 임시 저장하는 임시 저장부를 더 포함하되, 상기 임시 저장부에 저장된 불연속 데이터가 결정된 시기마다 연속적인 데이터가 되면 상기 연속적인 데이터를 메모리에 저장하는 다중 포트 캐시 메모리 장치.
  2. 제 1 항에 있어서,
    상기 할당부는,
    상기 분할된 주소 영역들을 상기 캐시 뱅크들에 순차적으로 할당하는 다중 포트 캐시 메모리 장치.
  3. 제 2 항에 있어서,
    상기 할당부는,
    상기 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 상기 제 1 캐시 뱅크의 다음에 위치한 제 2 캐시 뱅크에 할당하는 다중 포트 캐시 메모리 장치.
  4. 제 1 항에 있어서,
    상기 할당부는,
    상기 분할된 주소 영역들을 상기 캐시 뱅크들에 비순차적으로 할당하는 다중 포트 캐시 메모리 장치.
  5. 제 4 항에 있어서,
    상기 할당부는,
    상기 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 상기 제 1 캐시 뱅크의 다음에 위치하지 않은 제 3 캐시 뱅크에 할당하는 다중 포트 캐시 메모리 장치.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 캐시 뱅크들과 연결된 적어도 하나의 메모리; 및
    상기 캐시 뱅크들에 할당된 주소의 순서와 동일하게 데이터를 상기 메모리에 저장하는 데이터 로더(loader)를 더 포함하는 다중 포트 캐시 메모리 장치.
  8. 제 7 항에 있어서,
    상기 메모리에 불연속적으로 저장된 상기 데이터를 로딩한 후, 상기 로딩된 데이터를 연속적인 데이터로 변경하고, 상기 변경된 데이터를 외부 장치로 전송하는 데이터 변경부를 더 포함하는 다중 포트 캐시 메모리 장치.
  9. 삭제
  10. 제 1 항에 있어서,
    상기 데이터 재배열부는,
    상기 캐시 뱅크로부터 비연속적인 주소에 대응되는 제 1 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 상기 비연속적인 주소 중 처음 주소 및 마지막 주소 사이에 존재하는 제 2 데이터를 메모리로부터 로딩한 후, 상기 제 2 데이터 중 상기 제 1 데이터만을 추출하여 상기 캐시 뱅크로 전송하는 다중 포트 캐시 메모리 장치.
  11. 삭제
  12. 주소 공간(address space)을 캐시 뱅크의 라인 1개의 사이즈 및 외부에서 캐시 뱅크로 접근할 수 있는 포트(Core-side port)를 통해 한 번에 전송될 수 있는 미리 정해진 크기의 주소 영역(address region)들로 분할하는 단계;
    분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소영역을 제 2 캐시 뱅크에 할당하는 단계;
    상기 캐시 뱅크 중 어느 하나로부터 수신된 불연속적인 데이터를 연속적인 데이터로 재배열하여 메모리에 저장하거나, 메모리로부터 수신된 연속적인 데이터를 불연속적인 데이터로 재배열하여 상기 캐시 뱅크 중 어느 하나로 전송하는 단계; 및
    임시 저장부에 저장된 불연속 데이터가 결정된 시기마다 연속적인 데이터가 되면 상기 연속적인 데이터를 메모리에 저장하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
  13. 제 12 항에 있어서,
    상기 할당하는 단계는,
    상기 분할된 주소 영역들을 상기 캐시 뱅크들에 순차적으로 할당하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
  14. 제 13 항에 있어서,
    상기 순차적으로 할당하는 단계는,
    상기 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 상기 제 1 캐시 뱅크의 다음에 위치한 제 2 캐시 뱅크에 할당하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
  15. 제 12 항에 있어서,
    상기 할당하는 단계는,
    상기 분할된 주소 영역들을 상기 캐시 뱅크들에 비순차적으로 할당하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
  16. 제 15 항에 있어서,
    상기 비순차적으로 할당하는 단계는,
    상기 분할된 제 1 주소 영역을 제 1 캐시 뱅크에 할당하고, 상기 분할된 제 1 주소 영역 다음의 분할된 제 2 주소 영역을 상기 제 1 캐시 뱅크의 다음에 위치하지 않은 제 3 캐시 뱅크에 할당하는 단계를 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
  17. 삭제
  18. 제 12 항에 있어서,
    상기 캐시 뱅크들에 할당된 주소의 순서와 동일하게 데이터를 메모리에 저장하는 단계를 더 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
  19. 삭제
  20. 제 12 항에 있어서,
    상기 캐시 뱅크 중 어느 하나로부터 비연속적인 주소에 대응되는 제 1 데이터의 리딩(reading)을 요청하는 신호가 입력되면, 상기 비연속적인 주소 중 처음 주소 및 마지막 주소 사이에 존재하는 제 2 데이터를 메모리로부터 로딩하는 단계; 및
    상기 제 2 데이터 중 상기 제 1 데이터만을 추출하여 상기 리딩을 요청한 캐쉬 뱅크로 전송하는 단계를 더 포함하는 다중 포트 캐시 메모리 장치의 구동 방법.
KR1020110017412A 2011-02-25 2011-02-25 다중 포트 캐시 메모리 장치 및 그 구동 방법 KR101788245B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 日本電気株式会社 マルチポートキャッシュメモリ及びマルチポートキャッシュメモリのアクセス制御方式

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