KR20020013772A - 멀티포트 캐쉬 메모리 - Google Patents

멀티포트 캐쉬 메모리 Download PDF

Info

Publication number
KR20020013772A
KR20020013772A KR1020010048243A KR20010048243A KR20020013772A KR 20020013772 A KR20020013772 A KR 20020013772A KR 1020010048243 A KR1020010048243 A KR 1020010048243A KR 20010048243 A KR20010048243 A KR 20010048243A KR 20020013772 A KR20020013772 A KR 20020013772A
Authority
KR
South Korea
Prior art keywords
port
tag
memory
data
ports
Prior art date
Application number
KR1020010048243A
Other languages
English (en)
Other versions
KR100397413B1 (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 히로시마 다이가쿠
Publication of KR20020013772A publication Critical patent/KR20020013772A/ko
Application granted granted Critical
Publication of KR100397413B1 publication Critical patent/KR100397413B1/ko

Links

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/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
    • 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

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)
  • Static Random-Access Memory (AREA)

Abstract

멀티포트 셀 블럭을 이용함으로써 형성되는 통상의 멀티포트 캐쉬 메모리는 그의 동작 속도에 있어서 우수하다. 그러나, 구성요소인 멀티포트 셀 블럭의 집적 면적은 포트 수의 제곱에 비례하여 증가된다. 따라서, 저장 용량을 증가시킴으로써 캐쉬 미스 확률을 감소시키려는 경향이 있으면, 그에 따라 칩 사이즈가 증가되고, 이것은 제조 비용을 증가시킨다. 다른 한편, 본 발명의 멀티포트 캐쉬 메모리는 구성요소로서 큰 저장 용량에 적합한 1포트 셀 블럭을 이용함으로써 형성되며, 이것은 큰 저장 용량의 멀티포트 캐쉬 메모리를 용이하게 제공할 수 있게 하며, 큰 랜덤 액세스 대역폭을 갖는 감소된 집적 면적으로 복수의 포트로부터 병렬 액세스를 가능하게 하고, 작은 캐쉬 미스 확률을 갖는 고급 마이크로프로세서에서 사용하기에 적합하다.

Description

멀티포트 캐쉬 메모리{MULTI-PORT CACHE MEMORY}
본 출원은 2000년 8월 11일자로 출원된 선행하는 일본 특허 출원 제 2000-244524 호로부터의 우선권에 근거하고 그의 이익을 청구하며, 그 전체 내용은 본 명세서에서 참조로 인용된다.
본 발명은 멀티포트 캐쉬 메모리에 관한 것으로, 특히, 고성능 마이크로프로세서의 칩 면적 감소에 적합한 1포트 스태틱 랜덤 액세스 메모리(Static Random Access Memory:SRAM) 셀 블럭으로 구성되는 멀티포트 캐쉬 메모리에 관한 것이다.
멀티포트 SRAM 셀 블럭으로 형성된 멀티포트 캐쉬 메모리는 통상의 고성능 마이크로프로세서에서 사용되는 멀티포트 캐쉬 메모리에 포함된다. 도 1에는 직접-맵 기법(direct-map scheme)에 대한 멀티포트 캐쉬 메모리의 아키텍쳐의 예가 도시되어 있다.
도 1에 도시된 통상의 멀티포트 캐쉬 메모리는 캐쉬 히트 비교 회로(30)와, 태크 측상의 태그 저장장치(20) 및 N포트 디코더(10)로 구성되는 태그 메모리와, 데이터측상의 데이터 저장장치(50) 및 N포트 디코더(40)로 구성되는 데이터 메모리와, 충돌 관리 회로(60)를 포함한다. 태그 저장장치(20) 및 데이터 저장장치(50)는 멀티포트 저장 셀(예컨대, 멀티포트 SRAM 셀)로 구성된다. 태그 메모리에는 2mind태그를 저장할 수 있다. 또한, 데이터 메모리에는 2mind캐쉬 라인이 포함된다.
포트로부터 캐쉬 액세스를 실행하는데 있어, 캐쉬 메모리의 내부 식별이 태그, 캐쉬 라인 인덱스 및 캐쉬 라인 오프셋을 이용해서 수행된다. n포트에 대한 태그, 캐쉬 라인 인덱스 및 캐쉬 라인 오프셋(데이터 워드)은 제각기 Atagn, Aindn및 Awordn으로 표시된다. 또한, 태그에 대해 사용되는 어드레스 비트의 수는 mtag로 표시되고, 캐쉬 라인 인덱스에 대해 사용되는 어드레스 비트의 수는 mind로 표시되며, 캐쉬 라인 오프셋에 대해 사용되는 어드레스 비트의 수는 mword로 표시된다. 또한, 태그 메모리 및 데이터 메모리의 포트 수는 N으로 표시된다.
N포트에 대해 태그 Atagn가 N*mtag 비트폭 버스를 통해 태그 메모리로 전송되며, N*mind 비트의 캐쉬 라인 인덱스 Aindn가 태그 메모리의 N포트 디코더(10)로 전송되어, 액세스된 데이터 라인의 태그가 라인 인덱스 Aindn하의 캐쉬의 데이터 메모리에 저장된 데이터 라인의 태그에 비교된다. 비교는 캐쉬-히트 비교 회로(30)에서 행해진다. 태그 Atagn가 라인 인덱스 Aindn하에 저장된 대응하는 태그와 일치하는 것으로 발견되면, 대응하는 캐쉬 히트 신호가 데이터 버스내로 전송된다. 임의의 태그 Atagn도 라인 인덱스 Aindn하에 저장된 대응하는 태그와 일치하지 않으면, 제각기의 액세스 동작은 캐쉬 미스로서 처리된다. 부수적으로, 도 1에 도시된 심볼 R/Wn은 프로세서 코어(도시되지 않음)로부터 전송되는 판독 및 기입 인스트럭션을 나타낸다.
또한, N*mind 비트의 N포트의 캐쉬 라인 인덱스 Aindn및 N*mword 비트의 캐쉬 라인 오프셋 Awordn이 어드레스 버스를 통해 데이터 메모리의 N포트 디코더(40)내로 전송된다. 캐쉬 히트의 경우에, 데이터 워드 Dn가 데이터 메모리내의 라인 인덱스 Aindn에 의해 식별되는 캐쉬 라인과 프로세서 코어 사이에 전송된다. 캐쉬 라인이 1을 초과하는 데이터 워드를 갖는 장점은 데이터 메모리의 어드레스에 부가되는 캐쉬 라인 오프셋 Awordn을 사용함으로써 실현될 수 있다.
충돌 관리 회로(60)에서, N포트의 캐쉬 라인 인덱스 Aindn의 기입 충돌이 검출되어 충돌하는 포트들중 하나를 제외하고 모두의 액세스를 거절하며 제각기의 액세스 거절 신호를 데이터 버스로 전송한다. 부수적으로, 도 1에 도시된 멀티포트 캐쉬 메모리에서, 태그 메모리 및 데이터 메모리는 서로 분리된다. 그러나, 태그 메모리와 데이터 메모리를 하나의 태그-데이터 메모리로 결합할 수 있다.
이제부터 도 2를 참조하여 2방향 세트-연관 기법(2-way set-associative scheme)의 멀티포트 캐쉬 메모리의 예가 설명된다. 2방향 세트-연관 기법의 멀티포트 캐쉬 메모리는 앞서 설명된 직접-맵 기법의 확장이다.
도 2에 도시된 멀티포트 캐쉬 메모리는, 태그측상에서 2개의 태그 메모리를 형성하는 N포트 디코더(10, 10a) 및 태그 저장장치(20, 20a), 캐쉬 히트 비교 회로(30, 30a) 및 비교 결과가 입력되는 OR 게이트(70)와, 데이터측상에서 2개의 데이터 메모리를 형성하는 N포트 디코더(40, 40a) 및 데이터 저장장치(50, 50a), 및 데이터 인에이블 회로(80, 80a)와, 충돌 관리 회로(60)를 포함한다. 태그 저장장치(20, 20a) 및 데이터 저장장치(50, 50a)의 각각은 멀티포트 저장 셀로 형성된다.
도 2에 도시된 2방향 세트-연관 기법의 멀티포트 캐쉬 메모리는, 캐쉬 히트 비교 회로(30, 30a)에서 수행되는 비교 결과의 수신시에 캐쉬 히트 신호를 전송하는 OR 게이트(70)와, 캐쉬 히트 비교 회로(30, 30a)에서 수행되는 비교 결과의 수신시에 데이터 버스와 데이터 메모리 사이에 데이터 워드 Dn전송을 허용하는 데이터 인에이블 회로(80, 80a)가 도 2에 도시된 2방향 세트-연관 기법의 멀티포트 캐쉬 메모리에 부가된 것을 제외하고는 도 1에 도시된 직접-맵 기법의 멀티포트 캐쉬 메모리에 의해 수행되는 것들과 유사한 기능을 수행한다. 그러므로, 멀티포트 메모리의 대응하는 구성요소에는 동일한 참조 부호를 붙여 중복하는 설명을 피한다.
도 3에는 캐쉬 메모리로의 포트 액세스를 위한 어드레스 비트를 태그 Atag, 캐쉬 라인 인덱스 Aind, 캐쉬 라인 오프셋 Aword 및 바이트 오프셋 Abyte로 분할한 것이 도시되어 있다.
앞서 설명된 멀티포트 저장 셀을 이용하는 통상의 멀티포트 캐쉬 메모리는다수의 경우에 실제로 사용되지 않았다. 그 이유는 다음과 같다.
구체적으로, 저 캐쉬 미스 레이트를 성취하기 위해서는 멀티포트 캐쉬 메모리가 큰 저장 용량을 가져야 할 필요가 있다. 이와 관련해서, 멀티포트 저장 셀로 구성되는 멀티포트 SRAM의 면적은 포트 수의 제곱에 비례하여 증가함에 주목해야 한다. 그러므로, 고성능 마이크로프로세서에서 사용하기에 적합한 멀티포트 SRAM을 제조하기 위해 포트 수가 증가되면, 마이크로프로세서의 칩 면적은 현저히 증가해서 면적 효율이 저하된다는 문제점이 발생한다(Electronics Letters35, 2185-2187, (1999)).
또한, 과거에 멀티포트 캐쉬 메모리가 사용되지 않았던 이유는 다음과 같이 요약될 수 있다.
(1) 통상적인 범용 마이크로프로세서에서, 캐쉬 메모리와 프로세서 코어간에 인스트럭션과 데이터를 전송하는데 요구되는 대역폭은 작고, 결과적으로, 1포트 캐쉬가 그의 목적을 성취할 수 있었다. 한편, 더욱 고성능 마이크로프로세서에서 대역폭을 배가시켜야 할 필요가 있는 경우, 1포트 캐쉬는, 예컨대, 프로그램 인스트럭션의 전송을 수행하는 부분과 프로그램 인스트럭션의 실행을 위한 데이터를 전송하는 다른 부분으로 분할될 수 있으나, 더욱 높은 캐쉬 미스 레이트의 페널티가 부과된다.
(2) 앞서 설명된 바와 같이, 구성요소로서 멀티포트 저장 셀을 포함하는 통상의 멀티포트 캐쉬 메모리에 있어서는 칩 면적이 현저히 증가된다. 그러므로, 저 캐쉬 미스 레이트를 성취하기 위해서 큰 저장 용량의 멀티포트 캐쉬 메모리를 마련하는 것은 매우 비경제적이다.
(3) 멀티포트 캐쉬 메모리를 형성하는 경우, 다수의 포트 어드레스 및 데이터를 전송하기 위해 복잡한 배선이 요구된다. 그러므로, 멀티포트 SRAM 셀로의 구성으로 인해 큰 면적을 갖는 멀티포트 캐쉬 메모리가 인쇄 회로 기판상에 혼성 집적을 성취하기 위해 프로세서 코어로부터 개별적으로 칩상에 형성되는 경우, 인쇄 회로 기판상의 복잡한 배선의 형성 때문에 프로세스 단계의 수가 증가하며, 이것은 비경제적이다.
인쇄 회로 기판상의 배선의 복잡성을 피하기 위해서는, 프로세서 코어와 멀티포트 캐쉬 메모리를 동일 칩상에 집적하는 것이 바람직하다. 그러나, 이 경우에 칩 면적의 문제는 더욱 심각하게 나타난다.
최근의 마이크로프로세서에서는, 예컨대, 인텔사의 펜티엄 Ⅱ 및 Ⅲ에서와 같이 각각의 클럭 사이클 동안에 복수의 인스트럭션을 실행시킬 수 있다. 이러한 상황에서, 최근 몇 년 동안에 큰 캐쉬 액세스 대역폭에 대처하는 포트의 수를 증가시키고 작은 칩 면적을 갖는 멀티포트 캐쉬 메모리를 개발하는 것이 중요한 목적이었다.
앞서 설명된 바와 같이, 멀티포트 SRAM 셀로 구성된 통상적인 멀티포트 캐쉬 메모리에서는, 포트 수의 제곱에 비례하여 면적이 증가된다. 그러므로, 포트 수가 증가되면, 마이크로프로세서의 칩 면적이 현저히 증가하여 면적 효율이 감소하는 문제점이 발생한다.
본 발명의 목적은 종래 기술에서 고유한 앞서 언급된 문제점들을 극복하기 위한 시도로 성취되었으며, 작은 면적을 갖는 멀티포트 캐쉬 메모리를 제공하는 것이며, 따라서, 장래의 다목적 마이크로프로세서에서 사용하기에 적합하다. 보다 구체적으로, 본 발명의 목적은 이하에 설명되는 요건들 (1) 및 (2)를 동시에 충족시키는 멀티포트 캐쉬 메모리를 제공하는 것이다.
(1) 멀티포트 캐쉬 메모리는 매 클럭 사이클에서 프로세서에 의한 복수의 인스트럭션 페치 및 복수의 로드/저장 동작을 지원하기 위해 매우 높은 랜덤 액세스 대역폭을 가질 것이 요구된다.
(2) 캐쉬 미스가 발생하면, 주 메모리에 대한 액세스를 위해 통상 10 내지 20 클럭 사이클의 대기 시간이 요구된다. 그러므로, 멀티포트 캐쉬 메모리는 낮은 캐쉬 미스 레이트를 성취하기 위해 작은 칩 면적 및 큰 저장 용량을 가질 것이 요구된다.
도 1은 직접-맵 기법의 통상적인 멀티포트 캐쉬 메모리의 아키텍쳐를 도시하는 블럭도,
도 2는 2방향 세트-연관 기법의 통상적인 멀티포트 캐쉬 메모리의 아키텍쳐를 도시하는 블럭도,
도 3은 통상적인 멀티포트 캐쉬 메모리에서 태그 Atag, 캐쉬 라인 인덱스 Aind, 캐쉬 라인 오프셋 Aword 및 바이트 오프셋 Abyte으로의 어드레스 분할을 도시하는 도면,
도 4는 본 발명의 실시예 1에 따른 직접-맵 기법의 멀티포트 캐쉬 메모리의 아키텍쳐를 도시하는 블럭도,
도 5a는 본 발명의 멀티포트 캐쉬 메모리의 일반적인 경우에서 태그 Atag, 제 2 캐쉬 라인 인덱스 Aind2, 제 1 캐쉬 라인 인덱스 Aind1, 캐쉬 라인 오프셋 Aword 및 바이트 오프셋 Abyte로의 어드레스 분할을 도시하는 도면,
도 5b는 512 Kbit 저장 용량 및 8 포트에 대한 직접-맵 기법에서 본 발명의 멀티포트 캐쉬 메모리의 태그 Atag, 캐쉬 라인 인덱스 Aind2, Aind1, 캐쉬 라인 오프셋 Aword 및 바이트 오프셋 Abyte으로의 가능한 어드레스 분할을 도시하는 도면,
도 6은 본 발명의 실시예 2에 따른 2방향 세트-연관 기법의 멀티포트 캐쉬 메모리의 아키텍쳐를 도시하는 블럭도,
도 7은 본 발명의 실시예 3에 따른 스위칭 네트워크 멀티포트 메모리 기법을 이용하는 멀티포트 캐쉬 메모리에 대한 태그 메모리 또는 데이터 메모리의 아키텍쳐를 도시하는 블럭도,
도 8은 본 발명의 실시예 4에 따른 계층적 아키텍쳐 멀티포트 메모리 기법을 이용하는 멀티포트 캐쉬 메모리에 대한 태그 메모리 또는 데이터 메모리의 아키텍쳐를 도시하는 블럭도,
도 9는 본 발명의 실시예 5에 따른 포트 수의 함수로서 계층적 멀티포트 메모리 기법으로 성취가능한 면적 감소 계수와 1포트 메모리 셀 블럭의 저장 용량간의 관계를 도시하는 그래프,
도 10은 본 발명의 실시예 5에 따른 직접-맵 기법의 8포트 캐쉬 메모리의 데이터 메모리에서 1포트 블럭의 수, 캐쉬 미스 확률, 액세스 거절 확률 및 면적 감소 계수간의 절충을 도시하는 그래프.
도면의 주요 부분에 대한 부호의 설명
1, 1a, 4, 4a : 상위 레벨 N포트 디코더
2, 2a : 태그 저장장치 5, 5a : 데이터 저장장치
3, 3a : 캐쉬 히트 비교 회로 6 : 충돌 관리 회로
7 : OR 회로 8, 8a : 데이터 인에이블 회로
11, 13 : 1포트 셀 블럭 12 : 글로벌 스위칭 네트워크
14 : 1포트와 N포트간의 천이 회로
15 : 어드레스-디코딩 레벨 2 포트-대-메모리-블럭 접속부
본 발명은 동일 클럭내에서 복수의 인스트럭션을 실행하는 고급 마이크로프로세서에서 사용하기 위해 큰 저장 용량을 갖고 1 포트 셀 블럭으로 구성되며, 큰 랜덤 액세스 대역폭을 요구하며, 복수의 포트로부터 병렬로 액세스 기능을 수행하는 멀티포트 캐쉬 메모리를 제공한다. 또한, 본 발명의 멀티포트 캐쉬 메모리는 집적 면적을 현저히 감소시키는 이점을 갖는다.
본 발명의 제 1 측면에 따르면, M개의 1포트 셀 블럭과, 각기 1비트 이상을 갖고 제 1 내지 제 k 태그 메모리에 공급되는 N 캐쉬 라인 인덱스를 디코딩하는 N포트 디코더로 각기 구성되는 제 1 내지 제 K N포트 태그 메모리(K와 M은 각기 1 이상의 정수이고 N은 1을 초과하는 정수)와; M개의 1포트 셀 블럭과, 제 1 내지 제 K 데이터 메모리에 공급되는, 각기 1비트 이상을 갖는 N 캐쉬 라인 인덱스 및 각기 0비트 이상을 갖는 N 캐쉬 라인 오프셋을 디코딩하는 N포트 디코더로 각기 구성되는 제 1 내지 제 K N포트 데이터 메모리와; 제 1 내지 제 K N포트 태그 메모리와 제 1 내지 제 K N포트 데이터 메모리에서의 기입 및 판독 충돌을 관리하는 충돌 관리 회로를 포함하는 멀티포트 캐쉬 메모리가 제공된다.
바람직하게는, 캐쉬 라인 인덱스는 M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스와, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스로 구성된다.
더욱 바람직하게는, 본 발명의 멀티포트 캐쉬 메모리는 제 1 내지 제 K N포트 태그 메모리에 공급되는 태그를 제 1 내지 제 K N포트 태그 메모리로부터 발생된 태그와 제각기 비교하는 제 1 내지 제 K 비교 회로를 포함하고, 제 1 내지 제 K 비교 회로의 출력을 N포트 각각에 대한 K입력 OR 회로에 공급함으로써 N포트 각각에 대해 캐쉬 히트 신호를 발생하여 전송한다.
더욱 바람직하게는, N포트 각각에 대한 제 1 내지 제 K 비교 회로의 출력은, 제각기 N포트 각각에 대한 제 1 내지 제 K 데이터 메모리의 기입 및 판독 데이터의 입력 및 출력을 허용하는, N포트 각각에 대한 제 1 내지 제 K 인에이블 회로를 제어하도록 작용한다.
본 발명의 제 2 측면에 따르면, M개의 1포트 셀 블럭(M은 1 이상의 정수)과; M개의 1포트 셀 블럭에 대해 N포트 멀티포트 기능을 제공하도록 작용하는 글로벌 스위칭 네트워크(N은 1을 초과하는 정수)와; N포트간의 액세스 충돌의 경우에, 예컨대, 버스 시스템 또는 크로스바 스위치로 구성되는 상기 글로벌 스위칭 네트워크에 접속되어 그를 제어하는 충돌 관리 회로에 대한 접속부를 포함하되, 충돌 관리 회로의 출력과, N포트 각각에 대한, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스와, 마이크로컴퓨터 코어로부터 전송되는 판독/기입 인스트럭션이 적어도 상기 글로벌 스위칭 네트워크에 공급되는 N포트 태그 메모리가 제공된다.
본 발명의 제 3 측면에 따르면, M개의 1포트 셀 블럭(M은 1 이상의 정수)과; M개의 1포트 셀 블럭에 대해 N포트 멀티포트 기능을 제공하도록 작용하는 글로벌 스위칭 네트워크(N은 1을 초과하는 정수)와; N포트간의 충돌의 경우에, 예컨대, 버스 시스템 또는 크로스바 스위치로 구성되는 상기 글로벌 스위칭 네트워크에 접속되어 그를 제어하는 충돌 관리 회로에 대한 접속부를 포함하되, 충돌 관리 회로의 출력과, N포트 각각에 대한, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스, 캐쉬 라인이 1을 초과하는 데이터 워드로 구성되도록 허용하는 캐쉬 라인 오프셋, 및 마이크로컴퓨터 코어로부터 전송된 판독/기입 인스트럭션이 적어도 상기 글로벌 스위칭 네트워크에 공급되며, 상기 인스트럭션 또는 데이터 워드는 상기 글로벌 스위칭 네트워크로 또는 그로부터 전송되는 N포트 데이터 메모리가 제공된다.
본 발명의 제 4 측면에 따르면, M개의 1포트 셀 블럭(M은 1 이상의 정수)과; 1포트 셀 블럭의 기능을 N포트 블럭의 기능으로 변환하는 포트 천이 회로(N은 1을 초과하는 정수)와; M개의 1포트 셀 블럭 각각에 대해 포트 천이 회로를 장착함으로써 획득되는 기능을 갖는 M개의 N포트 블럭과; N포트를 M개의 N포트 블럭에 접속시키는 어드레스 디코딩 기능을 수행하는 회로 네트워크와; 액세스 충돌의 경우에 M개의 N포트 블럭을 접속시키기 위한 어드레스 디코딩 기능을 수행하는 회로 네트워크를 제어하기 위한 충돌 관리 회로에 대한 접속부를 포함하되, N포트 각각에 대한, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, 및 마이크로컴퓨터로부터의 판독/기입 인스트럭션이 적어도 포트 천이 회로 각각에 공급되고, 충돌 관리 회로의 출력, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개를 선택하는 N포트 각각에 대한 제 2 캐쉬 라인 인덱스, 및 마이크로컴퓨터 코어로부터 전송되는 판독/기입 인스트럭션이 M개의 N포트 블럭을 접속시키기 위한 어드레스 디코딩 기능을 수행하는 회로 네트워크에 적어도 공급되는 N포트 태그 메모리가 제공된다.
또한, 본 발명의 제 5 측면에 따르면, M개의 1포트 셀 블럭(M은 1 이상의 정수)과; 1포트 셀 블럭의 기능을 N포트 블럭의 기능으로 변환하는 포트 천이 회로(N은 1을 초과하는 정수)와; M개의 1포트 셀 블럭 각각에 대해 포트 천이 회로를 장착함으로써 획득되는 기능을 갖는 M개의 N포트 블럭과; N포트를 M개의 N포트 블럭에 접속시키기 위한 어드레스 디코딩 기능을 수행하는 회로 네트워크와; 액세스 충돌의 경우에 M개의 N포트 블럭을 접속시키기 위한 어드레스 디코딩 기능을 수행하는 회로 네트워크를 제어하기 위한 충돌 관리 회로에 대한 접속부를 포함하되, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개의 내용을 식별하는 N포트 각각에 대한 제 1 캐쉬 라인 인덱스, 캐쉬 라인이 1을 초과하는 데이터 워드로 구성되도록 허용하는 캐쉬 라인 오프셋, 및 마이크로컴퓨터로부터의 판독/기입 인스트럭션이 적어도 상기 포트 천이 회로 각각에 공급되고, 충돌 관리 회로의 출력, M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개를 선택하는 N개의 포트 각각에 대한 제 2 캐쉬 라인 인덱스 및 마이크로컴퓨터 코어로부터의 판독/기입 인스트럭션이 M개의 N포트 블럭을 접속시키는 어드레스 디코딩 기능을 수행하는 회로 네트워크에 적어도 공급되며, 데이터 워드 또는 인스트럭션이 M개의 N포트 블럭의 어드레스 디코딩 기능을 수행하는 회로 네트워크에 또는 그로부터 전송되는 N포트 데이터 메모리가 제공된다.
몇몇 경우에, N포트 태그 메모리 및 N포트 데이터 메모리 각각에서 1포트 셀 블럭의 수 M이 N포트 데이터 메모리의 포트의 수 N보다 작게 하는 것이 유리하다.
또한, 몇몇 경우에는 N포트 태그 메모리와 N포트 데이터 메모리가 결합된 N포트 태그-데이터 메모리를 형성하도록 결합되는 것이 바람직하고, 결합된 N포트 태그-데이터 메모리의 워드 길이는 "mtag+W*2mword"로 표시하는 것이 바람직한데,mtag는 태그에 대해 사용되는 어드레스 비트의 수를 나타내고, mword는 캐쉬 라인 오프셋에 대해 사용되는 어드레스의 0 이상의 비트 수를 표시하며, W는 인스트럭션 또는 데이터 워드의 워드 길이(비트 수)를 나타낸다.
또한, N포트 태그 메모리 및 N포트 데이터 메모리 각각에 포함된 셀 블럭은 L포트 저장 셀로 구성된 N포트 블럭으로 구성되는 것이 유리할 수 있으며, L은 1 보다 작지 않고 N보다 작은 정수(1≤L<N)이다. 이 경우에, N포트 블럭의 각각은 L포트 셀 블럭의 기능을 N포트 셀 블럭의 기능으로 변환하는 포트 천이 회로를 포함한다.
Ltag포트 저장 셀(Ltag은 1 이상의 정수)로부터 태그 메모리의 N포트 블럭을 구성하고, Ldata포트 저장 셀(Ldata는 1 이상이고 Ltag과는 다른 정수)로부터 데이터 메모리의 N포트 블럭을 구성할 수 있음에 또한 유의해야 한다.
본 발명의 부가의 목적 및 장점은 이하의 상세한 설명에 개시되고 일부는 상세한 설명으로부터 명백하게 되며, 또는 본 발명의 실시에 의해 인지될 수 있다. 본 발명의 이러한 목적 및 장점은 이후에 구체적으로 개시되는 수단 및 결합에 의해 구현되고 획득될 수 있다.
본 명세서에 포함되고 본 명세서의 일부를 구성하는 첨부 도면은 본 발명의 바람직한 실시예를 도시하며, 앞서 제공된 전반적인 설명 및 이하에 제공되는 바람직한 실시예의 상세한 설명과 함께 본 발명의 원리를 설명하는 작용을 한다.
이제부터 본 발명의 몇가지 바람직한 실시예를 첨부 도면을 참조하여 설명한다.
도 4에는 본 발명의 실시예 1에 따른 직접-맵 기법의 멀티포트 캐쉬 메모리의 구성이 도시되어 있다. 도 4에 도시된 멀티포트 캐쉬 메모리는, 예컨대, 태그측상에서 상위 레벨 N포트 디코더(1), 태그 저장장치(2) 및 캐쉬 히트 비교 회로(3)와, 데이터측상에서 상위 레벨 N포트 디코더(4) 및 데이터 저장장치(5)와, 충돌 관리 회로(6)를 포함한다.
도 4에 도시된 멀티포트 캐쉬 메모리의 제 1 특징은, 태그 저장장치(2) 및 데이터 저장장치(5)가 1포트 셀 블럭으로 형성되므로, 태그 저장장치(2) 및 데이터 저장장치(5)의 면적이 포트 수의 제곱에 비례하여 증가한다는, 멀티포트 저장 셀로 구성된 통상의 멀티포트 캐쉬 메모리에 의해 발생하는 문제점을 피할 수 있다는 사실에 존재한다. 그러므로, 멀티포트 캐쉬 메모리를 고성능 마이크로프로세서에서 사용하기에 적합하게 하도록 포트의 수 및 메모리 저장 용량을 증가시킬 수 있다. 본 발명에 따른 멀티포트 캐쉬 메모리의 제 2 특징은, 통상의 멀티포트 캐쉬 메모리에서는 캐쉬 라인 인덱스의 단지 한 종류만이 사용되었지만 본 발명에서는 캐쉬 라인 인덱스 Aindn이 두 종류의 캐쉬 라인 인덱스 Aind1n및 Aind2n으로 분할될 수 있다는 사실에 존재한다.
통상의 멀티포트 캐쉬 메모리에서는 캐쉬 라인 인덱스 Aindn이 데이터 메모리에서의 캐쉬 라인 및 태그 메모리에서의 대응하는 저장 태그를 직접 식별하며, 태그 Atagn가 식별된 저장 태그와 함께 사용되어 액세스된 데이터 라인이 식별된 캐쉬 라인에 현재 저장되어 있음을 검증한다. 본 발명의 멀티포트 캐쉬 메모리에서는, 캐쉬 라인 인덱스 Aind1n이 하나 이상의 셀 블럭내의 캐쉬 라인 및 저장 태그를 각기 식별하는데 사용되고, 캐쉬 라인 인덱스 Aind2n이 상기 캐쉬 라인 및 상기 저장 태그를 포함하는 상기 셀 블럭들을 식별하는데 사용된다.
부수적으로, 태그측과 데이터측의 N포트 디코더(1, 4)에서의 "예컨대, 상위 레벨(upper level)"이라는 표현은 제각기 복수의 1포트 셀 블럭으로 N포트 기능성을 형성하는 N포트 디코더임을 나타낸다. 충돌 관리 회로(6)에서 캐쉬 라인 인덱스 Aind2n이 단독으로 충돌 관리에 사용되며, 캐쉬 라인 인덱스 Aind1n은 충돌 관리에 사용되지 않는다. 이것은 충돌을 검출하는 충돌 관리 회로(6)의 구성이 간략화될 수 있음을 의미한다.
본 발명에 따른 멀티포트 캐쉬 메모리의 제 3 특징은, 셀 블럭이, 예컨대, 1포트 SRAM으로 구성되므로, 판독 충돌이 기입 충돌과 마찬가지로 발생할 수 있다는 사실에 존재한다. 판독 충돌은, 예컨대, 1포트 SRAM으로 구성되는 동일 셀 블럭에 저장된 캐쉬 라인이 멀티포트 캐쉬 메모리의 복수의 포트로부터 액세스되는 경우에 발생한다.
이제 본 발명의 실시예 1에 따른 멀티포트 캐쉬 메모리의 동작이 설명된다. 1포트 셀 블럭으로 구성되는 본 발명의 멀티포트 캐쉬 메모리의 동작은 앞서 설명된 멀티포트 저장 셀로 구성되는 통상의 멀티포트 캐쉬 메모리 또는 통상의 1포트 캐쉬 메모리의 동작과 사실상 동일하며, 따라서, 본 발명과 종래 기술간의 동작상차이가 이제부터 설명된다.
본 발명의 멀티포트 캐쉬 메모리와 통상의 1포트 캐쉬 메모리간의 동작상 주된 차이는, 본 발명의 멀티포트 캐쉬 메모리에서는 동일 클럭 사이클내에서 모든 포트에 대해 동시에 판독 및 기입 인스트럭션을 수행할 수 있다는 점이다. 또한, 본 발명에서는 포트간의 충돌이 기입 액세스에서와 마찬가지로 판독 액세스에서도 발생할 수 있고, 따라서, 더욱 높은 액세스 충돌 발생 확률을 초래한다는 점에서 본 발명의 멀티포트 캐쉬 메모리는 통상의 멀티포트 캐쉬 메모리와 다르다.
캐쉬 히트의 경우에 본 발명의 멀티포트 캐쉬 메모리의 동작은 충돌이 판독 액세스시에 발생된 경우를 제외하고는 통상의 멀티포트 캐쉬 메모리의 동작과 유사하다. 충돌이 판독 액세스시에 발생한 경우, 충돌된 포트중 하나의 포트만이 캐쉬 메모리에 대해 액세스할 수 있도록 충돌 관리 회로(6)에 의해 선택되며, 다른 포트의 액세스는 거절된다. 액세스가 거절된 포트에 대해서는 액세스가 반복되어야 하므로, 이들 포트의 액세스는 한 클럭 사이클 지연된다.
캐쉬 히트의 경우에 캐쉬 메모리의 기입은 통상의 멀티포트 캐쉬 메모리에서처럼 캐쉬 메모리와 주 메모리간에 데이터의 일치를 유지하기 위해 라이트 쓰루우(write through) 또는 라이트 백(write back) 기법을 이용함으로써 수행된다. 캐쉬 미스가 발생되면, 주 메모리로부터 액세스된 데이터 라인의 카피를 수행해서 이 카피를 대응하는 캐쉬 라인에 저장할 필요가 있는데, 이것은 종종 캐쉬 블럭(cache block)으로도 칭해진다. 오버라이팅(overwriting)되어야 할 캐쉬 라인을 선택하기 위해, 예컨대, 가장 장시간 동안 사용되지 않았던 캐쉬 라인이 대체되는최소 최근 사용(Least Recently Used:LRU) 방법이 적용된다. 캐쉬 라인내로 카피하는 방법은 통상의 캐쉬 메모리에 대한 방법과 동일하다.
판독 동작을 제외하고 본 발명의 멀티포트 캐쉬 메모리의 모든 동작은 통상의 동작과 유사하므로, 이제부터 액세스 충돌 발생의 이벤트에서 판독 동작이 상세히 설명된다. 앞서 설명된 바와 같이, 판독 액세스시에 복수의 포트중에서 충돌이 발생하면, 이들 복수의 포트중에서 하나의 포트만이 캐쉬 메모리를 액세스할 수 있도록 충돌 관리 회로(6)에 의해 선택되며, 충돌하는 다른 포트의 액세스는 거절된다. 판독 단계에서의 충돌은, 동일한 1포트 셀 블럭에 대한 액세스가 동일한 클럭 사이클에서 복수의 포트로부터 실행됨을 나타낸다. 부수적으로, 태그측 및 데이터측은 충돌 관리 회로(6)에서 단일 액세스로 병렬로 관리된다.
액세스가 거절된 다른 포트의 액세스 거절 신호는 마이크로프로세서 코어로 전송된다. 액세스가 허용된 하나의 포트의 액세스에 대해서는, 태그 메모리(2)로부터 판독된 태그가 대응하는 어드레스의 태그 Atagn와 비교된다. 캐쉬 히트 이벤트에서, 판독 동작의 경우에는 대응하는 인스트럭션 데이터 Dn이 데이터 메모리(5)로부터 마이크로프로세서(도시되지 않음)로 전송된다.
캐쉬 미스 이벤트에서, 신(new) 캐쉬 라인이 주 메모리로부터 획득되며, 데이터 메모리(5)의 구(old) 캐쉬 라인은, 예컨대, LRU 방법을 이용함으로써 신 캐쉬 라인에 의해 대체된다. 이 경우에, 주 메모리로부터 획득된 데이터 워드 Dn가 또한 마이크로프로세서 코어내로 전송된다.
도 5a 및 5b는 직접-맵 기법의 멀티포트 캐쉬 메모리의 액세스에 대해 태그 Atag, 제 1 캐쉬 라인 인덱스 Aind1, 제 2 캐쉬 라인 인덱스 Aind2, 캐쉬 라인 오프셋 Aword 및 바이트 오프셋 Abyte로의 어드레스 분할을 집합적으로 도시한다.
도 5a는 일반적인 경우에서의 어드레스 분할을 도시한다. 다른 한편, 도 5b는 캐쉬 라인당 8포트 및 4워드와 32비트로 각기 구성되는 어드레스 공간 및 워드 길이를 갖는 직접-맵 기법의 512K비트 멀티포트 캐쉬 메모리에 대해, 통상의 멀티포트 캐쉬 메모리의 어드레스 분할과 본 발명의 멀티포트 캐쉬 메모리의 어드레스 분할을 비교 도시한다.
통상의 멀티포트 캐쉬 메모리에서, 캐쉬 라인 인덱스 Aind는 12비트로 형성된다. 그러나, 본 발명의 멀티포트 캐쉬 메모리에서, 데이터 메모리는, 예컨대, 각기 4K비트의 128 셀 블럭으로 구성되며, 태그 메모리는, 예컨대, 각기 480비트의 128 셀 블럭으로 구성된다. 결과적으로, 캐쉬 라인 인덱스의 어드레스는 7비트로 형성된 제 1 캐쉬 라인 인덱스 Aind1 및 5비트로 형성된 제 2 캐쉬 라인 인덱스 Aind2로 분할된다.
부수적으로, 도 4에 도시된 멀티포트 캐쉬 메모리에서, 태그 저장장치(2) 및 데이터 저장장치(5)는 서로 분리되어 형성된다. 그러나, 태그 저장장치(2) 및 데이터 저장장치(5)를 단일의 저장장치로 결합하고 상위 레벨 N포트 디코더(1, 4)를 단일의 상위 레벨 N포트 디코더로 결합할 수 있다.
이제 본 발명의 실시예 2에 따른 2방향 세트-연관 기법의 멀티포트 캐쉬 메모리가 도 6을 참조하여 설명된다. 구체적으로, 도 6에는 2방향 세트-연관 기법의멀티포트 캐쉬 메모리의 아키텍쳐가 도시되어 있다.
본 발명의 실시예 1에 따른 직접-맵 기법의 멀티포트 캐쉬 메모리의 기능이 본 발명의 실시예 2에 따른 2방향 세트-연관 기법의 멀티포트 캐쉬 메모리에서 확장된다. 도 6에 도시된 멀티포트 캐쉬 메모리는 태그측상에서 N포트 디코더(1, 1a), 태그 저장장치(2, 2a), 캐쉬 히트 비교 회로(3, 3a) 및 최종 캐쉬 히트 신호를 발생하는 OR 게이트(7)와, 데이터측상에서 N포트 디코더(4, 4a), 데이터 저장장치(5, 5a) 및 데이터 인에이블 회로(8, 8a)와, 충돌 관리 회로(6)를 포함한다.
도 6에 도시된 2방향 세트-연관 기법의 멀티포트 캐쉬 메모리는, 캐쉬 히트 비교 회로(3, 3a)에 의해 수행된 비교 결과의 수신시에 N포트 각각에 대해 하나씩 캐쉬 히트 신호를 전송하는 OR 게이트(7)와, 캐쉬 히트 비교 회로(3, 3a)에 의해 수행된 비교 결과의 수신시에 데이터 버스와 데이터 메모리간의 데이터 워드 Dn의 전송을 허용하는 데이터 인에이블 회로(8, 8a)가 도 6에 도시된 멀티포트 캐쉬 메모리에 부가된 것을 제외하고는 도 4에 도시된 직접-맵 기법의 멀티포트 캐쉬 메모리와 유사하다.
본 발명에 따른 직접-맵 기법의 멀티포트 캐쉬 메모리의 제 1, 제 2 및 제 3 특징은 본 발명의 실시예 1과 관련해서 이미 설명되었다. 실시예 2에 따른 2방향 세트-연관 기법의 멀티포트 캐쉬 메모리는 이들 특징 모두를 또한 보여준다. 또한, 캐쉬 메모리의 액세스시에, 태그 Atag, 제 1 캐쉬 라인 인덱스 Aind1, 제 2 캐쉬 라인 인덱스 Aind2, 캐쉬 라인 오프셋 Aword 및 바이트 오프셋 Abyte로의 어드레스 분할은 또한 도 5a에 도시된 것과 유사하다.
도 4에 도시된 직접-맵 기법과 도 6에 도시된 2방향 세트-연관 기법은, 캐쉬 메모리내에 동시에 제공될 수 있는, 동일한 인덱스이지만 서로 상이한 태그를 갖는 주 메모리로부터의 데이터 라인의 수에 의해 구별된다. 캐쉬 메모리내에 동시에 제공될 수 있는, 동일한 인덱스이지만 상이한 태그를 갖는 데이터 라인의 수는 직접-맵 기법에서는 1이고, 2방향 세트-연관 기법에서는 2이며, 3방향 세트-연관 기법에서는 3 등으로 된다.
일반적으로, K방향 세트-연관 기법은 태그 저장장치(2) 및 데이터 저장장치(5)와 그들의 제각기의 상위 레벨 N포트 디코더(1, 4)로 각기 구성되는 쌍의 수를 K쌍(K는 1 이상의 정수)으로 확장한다. 도 4 및 6은 제각기 K가 1 및 2인 경우에 대응한다. 또한, 복수의 이러한 쌍으로 구성되는 일반적인 세트-연관 기법에서는 태그 저장장치 및 데이터 저장장치 플러스 상위 레벨 N포트 디코더의 각 쌍을 하나의 태그-데이터 저장장치 및 하나의 상위 레벨 N포트 디코더로 결합시킬 수 있다.
본 발명의 실시예 3은 멀티포트 기능의 가능한 구현을 상세히 개시하며, 이제부터 도 7을 참조하여 설명된다. 1포트 셀 블럭으로 구성되는 멀티포트 캐쉬 메모리의 멀티포트 기능은 실시예 1 및 실시예 2와 관련하여 앞서 설명된 회로와, 데이터 저장장치 및 상위 레벨 N포트 디코더로 구성되는 데이터 메모리 부분에 대해 도 7에 개시된 회로를 또한 사용함으로써 구현될 수 있다.
도 7에 도시된 멀티포트 기능에 대한 아키텍쳐에서, 멀티포트 기능은, 예컨대, 셀 용량 M1을 갖는, 예컨대, SRAM 블럭 1 내지 M2로 형성된 1포트 셀 블럭(11)과, 예컨대, 입/출력 데이터를 전송하는 버스 시스템 또는 크로스 바 스위치 및, 매 클럭 사이클에서 변화할 수 있는, 포트들과 1포트 셀 블럭간의 동적 상호접속을 위한 적절한 제어기로 구성되는 글로벌 스위칭 네트워크(12)를 이용함으로써 구현된다.
도 7의 특정 아키텍쳐를 사용한 경우에, 예컨대, 크로스바 스위치를 이용함으로써 포트들에 대한 대량의 상호접속 배선을 효율적으로 선택 제어하여, 대 용량과 다수의 포트를 동시에 갖는 멀티포트 캐쉬 메모리를 용이하게 형성할 수 있게 한다.
또한, 도 7에는 복수의 1포트 셀 블럭 및 대응하는 상위 레벨 N포트 디코더로 구성되는 멀티포트 데이터 메모리의 입/출력 신호의 유형 및 구성요소들이 도시되어 있다. 캐쉬 라인 오프셋 Awordn및 데이터 워드 Dn가 검출된 경우, 그의 상위 레벨 N포트 디코더를 포함하는 멀티포트 태그 메모리의 아키텍쳐를 획득할 수 있음에 주목해야 한다. 또한, 캐쉬 라인 오프셋 Awordn및 데이터 워드 Dn를 제어하는 기능이 글로벌 스위칭 네트워크(12)에 부가된 경우, 태그 저장장치, 데이터 저장장치 및 그들의 제각기의 상위 레벨 N포트 디코더가 도 7에 도시된 멀티포트 아키텍쳐내에 일체로 형성된 멀티포트 캐쉬 메모리를 구현할 수 있다.
또한, 단일의 글로벌 스위칭 네트워크(12)를 갖는 도 7의 아키텍쳐를 복수의 글로벌 스위칭 네트워크를 갖는 아키텍쳐로 확장할 수 있다. 이 경우, N포트 태그메모리 및 N포트 데이터는 각기, MB개의 1포트 셀 블럭(MB는 M*MS로 표현되고, MS및 M은 각기 1 이상의 정수)과; N포트 기능을 M개의 1포트 셀 블럭으로 제공하도록 각기 작용하는 MS개의 글로벌 스위칭 네트워크(N은 1을 초과하는 정수)와; MS개의 글로벌 스위칭 네트워크에 접속되어 그를 제어하는 충돌 관리 회로에 대한 MS개의 상호접속부를 포함한다.
본 발명의 실시예 4는 멀티포트 기능의 다른 구현을 상세히 개시하며, 이제부터 도 8을 참조하여 설명된다. 1포트 셀 블럭으로 구성되는 멀티포트 캐쉬 메모리의 멀티포트 기능은 실시예 1 및 2와 관련하여 앞서 설명된 회로와 도 8에 도시된 멀티포트 아키텍쳐를 이용함으로써 구현될 수 있다.
도 8에 도시된 멀티포트 기능의 아키텍쳐는, 예컨대, 셀 용량 M1을 갖는, 예컨대, SRAM 셀로 구성된 셀 블럭 1 내지 M2로 이루어진 1포트 셀 블럭(13)과, 모든 1포트 셀 블럭(13)에 대해 장착된, 1포트와 N포트간의 천이 회로(14)와, 어드레스-디코딩 레벨 2 포트-대-메모리-블럭 접속부(15)와, 충돌 관리 회로(미도시됨)를 포함한다.
도 8에 도시된 멀티포트 기능의 아키텍쳐에서, 계층 레벨 1에서 1포트와 N포트간의 천이는 천이 회로(14)를 사용함으로써 수행되며, 계층 레벨 2에서 N포트 블럭으로 변환되는 1포트 블럭의 포트-대-메모리 블럭 접속부(15)는 복수의 N포트에 대한 어드레스 디코딩 기능이 구비된 회로 네트워크를 사용함으로써 수행된다. 이러한 특정의 계층적 멀티포트 아키텍쳐는 메모리 블럭의 수 및 포트 수의 용이한확장을 허용하는 규칙성(regularity)을 보여주며, 따라서, 모듈형 및 정규형 집적 구조의 마련을 위한 실시에 적합하다.
도 8에는 복수의 1포트 셀 블럭 및 대응하는 입/출력 신호 유형으로 구성되는 상위 레벨 N포트 디코더를 포함하는 멀티포트 데이터 메모리의 구성요소가 도시되어 있다. 캐쉬 라인 오프셋 Awordn및 데이터 워드 Dn이 삭제되면, 상위 레벨 N포트 디코더를 포함하는 멀티포트 태그 메모리는 앞서 설명된 실시예 3에서와 마착가지로 형성될 수 있다. 또한, 캐쉬 라인 오프셋 Awordn및 데이터 워드 Dn을 제어하는 기능이 레벨 2 포트-대-메모리 접속부(15)에 부가된 경우, 태그 메모리, 데이터 메모리 및 그들의 제각기의 상위 레벨 N포트 디코더가 도 8에 도시된 아키텍쳐에서 일체로 형성된 멀티포트 캐쉬 메모리를 구현할 수 있다.
또한, N포트를 M개의 N포트 블럭에 접속시키는 어드레스 디코딩 기능을 수행하는 단일의 회로 네트워크(15)를 갖는 도 8의 아키텍쳐를 복수의 회로 네트워크를 갖는 아키텍쳐로 확장할 수 있다. 이 경우, N포트 태그 메모리 및 N포트 데이터 메모리는 각기, MB개의 1포트 셀 블럭(MB는 M*MS로 표현되고, MS및 M은 1 이상의 정수)과; 1포트 셀 블럭의 기능을 N포트 블럭의 기능으로 변환하는 포트 천이 회로(N은 1을 초과하는 정수)와; MB개의 1포트 셀 블럭 각각에 대해 포트 천이 회로를 장착함으로써 기능이 획득되는 MB개의 N포트 블럭과; N포트를 M개의 N포트 블럭에 접속시키는 어드레스 디코딩 기능을 수행하는 MS개의 회로 네트워크와; 액세스 충돌의경우에 M개의 N포트 블럭을 접속시키는 어드레스 디코딩 기능을 수행하는 회로 네트워크를 제어하기 위한 충돌 관리 회로에 대한 MS개의 접속부를 포함한다.
이제 본 발명의 실시예 5가 도 9 및 도 10을 참조하여 설명된다. 실시예 5에서는, 시뮬레이션과 실제 설계 데이터간의 비교 및 본 발명의 멀티포트 캐쉬 메모리와 통상의 멀티포트 캐쉬 메모리간의 비교가 캐쉬 미스 및 액세스 충돌 확률을 최소화시키고 면적 감소 계수를 최대화하기 위한 최적의 설계와 면적 감소 계수와 관련하여 설명된다.
도 9에는 본 발명의 멀티포트 캐쉬 메모리를 구성하는, 데이터 메모리부의 면적 감소 계수와 태그 메모리부의 면적 감소 계수가 1포트 셀 블럭 레벨에서 메모리 용량 M1의 함수로서 표시된 그래프가 도시되어 있다. 그래프에서 곡선은 시뮬레이션을 나타내고, 그래프에서 흑색 도트와 흑색 스퀘어는 는 실제 설계 데이터를 나타낸다. 또한, 이중 직선은 이들 값이 통상의 멀티포트 캐쉬 메모리의 값에 의해 정규화됨을 표시한다. 포트 수 4, 8, 16 및 32에 관련하여 제각기 <1/2, <1/5, <1/14 및 <1/30의 면적 감소 계수가 예상된다.
도 10에는 32비트×16K 워드, 512K비트 및 8포트의 저장 용량의 아키텍쳐를 갖는 본 발명의 직접-맵 기법의 캐쉬 메모리에 관련하여 액세스 거절 확률과 면적 감소 계수간의 절충을 나타내는 그래프가 도시되어 있다. 8포트 캐쉬 메모리와 같은 본 발명의 실시예에서는 액세스 거절 확률을 캐쉬 미스 확률과 동일하게 함으로써 통상의 8포트 캐쉬 메모리와 비교하여 1/3 내지 1/4의 계수만큼 면적 감소가 획득될 수 있다.
본 발명은 이상 설명된 실시예에 제한되지 않는다. 예컨대, 본 발명의 멀티포트 캐쉬 메모리는 소 저장 용량의 제 1 레벨 캐쉬 L1과 대 저장 용량의 제 2 레벨 캐쉬 L2와 같은 캐쉬 메모리들의 계층 구조에도 적용될 수 있다. 구체적으로, 제 2 레벨 캐쉬 L2에서 로컬 캐쉬 미스 확률은 통상 매우 높다(약 20% 내지 40%). 본 발명의 멀티포트 캐쉬 L2는 이러한 경우에 특히 바람직한데, 그 이유는 높은 액세스 거절 확률이 허용되고 면적 감소의 이점이 이러한 높은 캐쉬 미스 확률의 경우에 가정 현저히 나타나기 때문이다.
본 발명의 멀티포트 캐쉬 메모리에서는, 태그 메모리 및 데이터 메모리가 두 개의 상이한 메모리로서 도면에 도시되어 있다. 그러나, 태그 메모리, 데이터 메모리 및 그들의 제각기의 상위 레벨 N포트 디코더를 mtag+W*2mword의 워드 길이를 갖는 단일의 메모리를 형성하도록 결합할 수 있다. 이 경우, 단일의 메모리는 mword=0인 경우, 즉, 캐쉬 라인이 단 하나의 워드만을 포함하는 경우에 특히 유용하게 된다.
또한, 본 발명의 N포트 캐쉬 메모리에서는, 태그 메모리 및 데이터 메모리내에 포함된 셀 블럭이 1포트 셀로 구성된 것이 설명되었다. 그러나, 셀 블럭은 반드시 1포트 셀로의 구성에 제한되지 않는다. 태그 메모리 및 데이터 메모리내의 셀 블럭을 2포트 또는 3포트와 같은 L포트(1≤L<N, L은 정수)를 갖는 저장 셀로 구성하는 것도 가능하다.
이 경우, 충돌 확률이 1포트 셀로의 구성과 비교해서 저하될 수 있는 이점을 획득할 수 있다. 한편, 칩 면적은 어느 정도까지 증가된다. 이 경우, L포트로부터 N포트로의 천이 회로가 1포트로부터 N포트로의 천이 회로 대신에 요구된다.
또한, 본 발명의 캐쉬 메모리에서는, 포트 수에 있어 서로 상이한 저장 셀로 구성된 셀 블럭을 이용함으로써 태그 메모리 및 데이터 메모리를 형성할 수 있다. 보다 구체적으로, Ltag포트(Ltag는 1 이상의 정수)를 갖는 저장 셀로 구성된 셀 블럭을 이용하여 태그 메모리를 형성하고, Ldata포트(Ldata는 Ltag와는 상이한 1 이상의 정수)를 갖는 저장 셀로 구성된 셀 블럭을 사용하여 데이터 메모리를 형성할 수 있다. 이 경우, 태그 메모리 및 데이터 메모리는 최대 면적 감소 및 최소 충돌 확률에 대해 별도로 최적화될 수 있으며, 이것은 그들의 총 저장 용량이 통상 상이하기 때문에 유용하다.
또한, 데이터 메모리부는 본 발명에서와 같이 1포트 셀 블럭을 이용하여 형성하고 태그 메모리부는 통상의 멀티포트 저장 셀을 이용하여 형성하는 혼합된 형태의 멀티포트 캐쉬 메모리를 제공하는 것이 가능하다.
이상 설명된 실시예들 각각은 주로, 멀티포트 태그 메모리 및 멀티포트 데이터 메모리를 구성하는 1포트 셀 블럭의 수가 포트의 수보다 큰 경우를 커버한다. 그러나, 본 발명은 블럭의 수가 포트의 수보다 큰 경우에 제한되지 않는다. 반대로, 예컨대, 매우 작은 집적 면적과 같은 다수의 유용한 효과는 블럭의 수가 포트의 수보다 작은 경우에서도 예상된다. 또한, 본 발명의 본 발명의 기술적 범주내에서 다양한 방법으로 변경될 수 있다.
이상 설명된 1포트 메모리 셀 블럭으로 구성된 본 발명의 멀티포트 캐쉬 메모리는 복수의 인스트럭션이 단일의 클럭 사이클내에서 실행되는 고급 마이크로프로세서에 대해 다음과 같은 세가지 이점을 제공한다.
(1) 마이크로프로세서의 성능이 캐쉬의 랜덤 액세스 대역폭을 확장함으로써 충분히 제공될 수 있다. 랜덤 액세스 대역폭의 확장은 마이크로프로세서가 단일의 클럭 사이클내에서 복수의 인스트럭션 페치, 데이터 로드 및 데이터 저장을 실행하기 위해 절대적으로 필요하다.
(2) 새로운 데이터 라인이 1포트 또는 복수 포트의 캐쉬를 이용하여 주 메모리로부터 캐쉬내로 삽입되는 동안, 프로세서 코어는 남아있는 포트로 프로그램을 계속해서 실행할 수 있다. 그러므로, 히트-언더-미스 기법, 미스-언더-미스 기법 또는 라이트-백 기법을 이용하여 캐쉬 미스 페널티를 감소시킬 수 있다. 또한, 프로세서가 가까운 장래에 필요로하게 될 데이터 라인들을 주 메모리로부터 사전페치함으로써 캐쉬 미스를 피할 수 있다.
(3) 예컨대, 1포트 SRAM 셀 블럭으로 구성된 본 발명의 멀티포트 캐쉬 메모리를 이용함으로써, 통상의 멀티포트 캐쉬 메모리를 이용한 경우와 비교해서 집적 면적을 크게 감소시킬 수 있다.
본 발명의 멀티포트 캐쉬 메모리는 멀티포트 캐쉬 메모리의 액세스 거절 확률이 더 높다는 점에서 결함이 있다. 그러나, 단 하나의 클럭 사이클의 대기 시간의 요건이 액세스 거절의 페널티인 반면에, 캐쉬 미스의 페널티는 10 내지 20 클럭사이클에 달한다. 따라서, 액세스 거절 확률은 캐쉬 미스 확률보다 큰 적절한 값을 갖는 것이 허용된다. 그러므로, 액세스 거절 확률, 캐쉬 미스 확률 및 면적 감소간의 절충을 분명히 함으로써 본 발명의 멀티포트 캐쉬 메모리의 설계를 최적화할 수 있다. 이와 같이 최적화된 본 발명의 멀티포트 캐쉬 메모리가 사용된 경우, 통상의 멀티포트 캐쉬 메모리를 사용한 경우와 비교해서 매우 작은 성능 저하라는 페널티로 굉장한 면적 감소 효과를 얻을 수 있다.
부가의 장점 및 변형예는 당 분야에 숙련된 자에게는 용이하게 이루어질 수 있다. 그러므로, 본 발명은 그의 더욱 넓은 측면에서 본 명세서에 도시되고 설명된 특정 세부 및 대표적 실시예에 제한되지 않는다. 따라서, 첨부된 청구범위 및 그들의 등가물에 의해 한정되는 전반적인 발명 개념의 사상 또는 범주로부터 벗어나지 않고 다양한 변형이 이루어질 수 있다.
본 발명에 의하면, 종래 기술의 문제점을 극복하고 작은 면적을 갖는 멀티포트 캐쉬 메모리가 제공된다.

Claims (26)

  1. M개의 1포트 셀 블럭(2, 2a)과, 제 1 내지 제 K 태그 메모리에 공급되는 각기 1비트 이상을 갖는 N 캐쉬 라인 인덱스를 디코딩하는 N포트 디코더(1, 1a)로 각기 구성되는 제 1 내지 제 K N포트 태그 메모리(K 및 M은 각기 1 이상의 정수이고, N은 1을 초과하는 정수)와,
    M개의 1포트 셀 블럭(5, 5a)과, 제 1 내지 제 K 데이터 메모리에 공급되는, 1비트 이상을 각기 갖는 N 캐쉬 라인 인덱스 및 0비트 이상을 각기 갖는 N 캐쉬 라인 오프셋을 디코딩하는 N포트 디코더(4, 4a)로 각기 구성되는 제 1 내지 제 K N포트 데이터 메모리와,
    상기 제 1 내지 제 K N포트 태그 메모리 및 상기 제 1 내지 제 K N포트 데이터 메모리에서 기입 및 판독 충돌을 관리하는 충돌 관리 회로(6)
    를 포함하는 멀티포트 캐쉬 메모리.
  2. 제 1 항에 있어서,
    상기 캐쉬 라인 인덱스는 M개의 1포트 셀 블럭(2, 2a, 5, 5a)중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스와, 상기 M개의 1포트 셀 블럭(2, 2a, 5, 5a)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스로 구성되는 것을 특징으로 하는 멀티포트 캐쉬 메모리.
  3. 제 1 항에 있어서,
    상기 제 1 내지 제 K N포트 태그 메모리에 공급되는 태그를 상기 제 1 내지 제 K N포트 태그 메모리로부터 발생되는 태그와 제각기 비교하는 제 1 내지 제 K 비교 회로(3, 3a)를 더 포함하고, 상기 제 1 내지 제 K 비교 회로(3, 3a)의 출력을 N포트 각각에 대한 K-입력 OR 회로(7)에 공급함으로써 상기 N포트 각각에 대해 캐쉬 히트 신호가 전송되는 멀티포트 캐쉬 메모리.
  4. 제 2 항에 있어서,
    상기 제 1 내지 제 K N포트 태그 메모리에 공급되는 태그를 상기 제 1 내지 제 K N포트 태그 메모리로부터 발생된 태그와 제각기 비교하는 제 1 내지 제 K 비교 회로(3, 3a)를 더 포함하고, 상기 제 1 내지 제 K 비교 회로(3, 3a)의 출력을 상기 N포트 각각에 대한 K-입력 OR 회로(7)에 공급함으로써 상기 N포트 각각에 대해 캐쉬 히트 신호가 전송되는 것을 특징으로 하는 멀티포트 캐쉬 메모리.
  5. 제 3 항에 있어서,
    상기 제 1 내지 제 K 비교 회로(3, 3a)의 출력은 제 1 내지 제 K 인에이블 회로(8, 8a)를 제어하여, 상기 제 1 내지 제 K 데이터 메모리내로의 기입 데이터의입력 및 그로부터의 판독 데이터의 출력을 허용하는 것을 특징으로 하는 멀티포트 캐쉬 메모리.
  6. 제 4 항에 있어서,
    상기 제 1 내지 제 K 비교 회로(3, 3a)의 출력은 제 1 내지 제 K 인에이블 회로(8, 8a)를 제어하여, 상기 제 1 내지 제 K 데이터 메모리내로의 기입 데이터의 입력 및 그로부터의 판독 데이터의 출력을 허용하는 것을 특징으로 하는 멀티포트 캐쉬 메모리.
  7. 제 1 항 내지 제 6 항중 어느 한 항에 있어서,
    상기 1포트 셀 블럭(2, 2a, 5, 5a)의 수 M은 상기 N포트 태그 메모리 및 상기 N포트 데이터 메모리의 포트 수 N보다 작은 것을 특징으로 하는 멀티포트 캐쉬 메모리.
  8. 제 1 항 내지 제 6 항중 어느 한 항에 있어서,
    상기 N포트 태그 메모리 및 상기 N포트 데이터 메모리의 대응하는 쌍은 결합된 N포트 태그-데이터 메모리를 형성하도록 결합되고, 상기 결합된 N포트 태그-데이터 메모리의 워드 길이는 "mtag+W*2mword"로 표현되며, mtag는 태그에 할당된 어드레스의 비트 수를 나타내고, mword는 상기 캐쉬 라인 오프셋에 할당되는 0 이상인 어드레스의 비트 수를 나타내며, W는 인스트럭션 또는 데이터 워드의 워드 길이를 나타내는 것을 특징으로 하는 멀티포트 캐쉬 메모리.
  9. 제 1 항 내지 제 6 항중 어느 한 항에 있어서,
    상기 N포트 태그 메모리 및 상기 N포트 데이터 메모리에 포함된 상기 셀 블럭은 1보다 작지 않고 N보다 작은 포트 수 L(1≤L<N, L은 정수)을 갖는 L포트 셀 블럭으로 구성되는 것을 특징으로 하는 멀티포트 캐쉬 메모리.
  10. 제 1 항 내지 제 6 항중 어느 한 항에 있어서,
    상기 태그 메모리는 포트 수 Ltag(Ltag는 1보다 작지 않은 정수)를 갖는 Ltag포트 셀 블럭으로 구성되고, 상기 데이터 메모리는 포트 수 Ldata(Ldata는 Ltag와 상이한 1보다 작지 않은 정수)를 갖는 Ldata포트 셀 블럭으로 구성되는 것을 특징으로 하는 멀티포트 캐쉬 메모리.
  11. M개의 1포트 셀 블럭(11)(M은 1 이상의 정수)과,
    N포트 멀티포트 기능을 상기 M개의 1포트 셀 블럭(11)에 제공하도록 작용하는 글로벌 스위칭 네트워크(12)(N은 1을 초과하는 정수)와,
    상기 N포트간의 액세스 충돌의 경우에, 예컨대, 버스 시스템 또는 크로스바 스위치로 구성되는 상기 글로벌 스위칭 네트워크(12)를 제어하도록 접속된 충돌 관리 회로에 대한 접속부
    를 포함하되,
    상기 충돌 관리 회로의 출력과, 상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(11)중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, 상기 M개의 1포트 셀 블럭(11)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스 및 마이크로컴퓨터 코어로부터 전송된 판독/기입 인스트럭션이 적어도 상기 글로벌 스위칭 네트워크(12)에 공급되는 것을 특징으로 하는 N포트 태그 메모리.
  12. M개의 1포트 셀 블럭(11)(M은 1 이상의 정수)과,
    N포트 멀티포트 기능을 상기 M개의 1포트 셀 블럭(11)에 제공하도록 작용하는 글로벌 스위칭 네트워크(12)(N은 1을 초과하는 정수)와,
    상기 N포트간의 충돌의 경우에, 예컨대, 버스 시스템 또는 크로스바 스위치로 구성되는 상기 글로벌 스위칭 네트워크(12)를 제어하도록 접속된 충돌 관리 회로에 대한 접속부
    를 포함하되,
    상기 충돌 관리 회로의 출력과, 상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(11)중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, 상기 M개의 1포트 셀 블럭(11)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스, 상기 캐쉬 라인이 하나를 초과하는 데이터 워드로 구성되도록 허용하는 캐쉬 라인 오프셋 및 마이크로컴퓨터 코어로부터 전송된 판독/기입 인스트럭션이 적어도 상기 글로벌 스위칭 네트워크(12)에 공급되며, 상기 글로벌 스위칭 네트워크(12)로 또는 그로부터 인스트럭션 또는 데이터 워드가 전송되는 것을 특징으로 하는 N포트 데이터 메모리.
  13. M개의 1포트 셀 블럭(13)(M은 1 이상의 정수)과,
    상기 1포트 셀 블럭의 기능을 N포트 블럭의 기능으로 변환하는 포트 천이 회로(14)(N은 1을 초과하는 정수)와,
    상기 M개의 1포트 셀 블럭(13) 각각에 대해 상기 포트 천이 회로(14)를 장착함으로써 기능이 획득되는 M개의 N포트 블럭과,
    상기 M개의 N포트 블럭에 접속될 N포트에 대한 어드레스 디코딩 기능을 수행하는 회로 네트워크(15)와,
    액세스 충돌의 경우에 상기 M개의 N포트 블럭에 대한 상기 어드레스 디코딩 기능을 수행하는 상기 회로 네트워크(15)를 제어하기 위한 충돌 관리 회로에 대한 접속부
    를 포함하되,
    상기 N포트 각각에 대한 상기 M개의 1포트 셀 블럭(13)중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스와, 마이크로컴퓨터로부터의 판독/기입 인스트럭션이 적어도 상기 포트 천이 회로(14)에 공급되고, 상기 충돌 관리 회로의 출력과, 또한 상기 N포트 각각에 대한 상기 M개의 1포트 셀 블럭(13)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스 및 마이크로컴퓨터 코어로부터의 판독/기입 인스트럭션이 상기 M개의 N포트 블럭에 대한 어드레스 디코딩 기능을 수행하는 상기 회로 네트워크(15)에 적어도 공급되는 것을 특징으로 하는 N포트 태그 메모리.
  14. M개의 1포트 셀 블럭(13)(M은 1 이상의 정수)과,
    상기 1포트 셀 블럭의 기능을 N포트 블럭의 기능으로 변환하는 포트 천이 회로(14)(N은 1을 초과하는 정수)와,
    상기 M개의 1포트 셀 블럭(13) 각각에 대해 상기 포트 천이 회로(14)를 장착함으로써 기능이 획득되는 M개의 N포트 블럭과,
    상기 M개의 N포트 블럭에 접속될 N포트에 대한 상기 어드레스 디코딩 기능을수행하는 회로 네트워크(15)와,
    액세스 충돌의 경우에 상기 M개의 N포트 블럭에 대한 어드레스 디코딩 기능을 수행하는 상기 회로 네트워크(15)를 제어하기 위한 충돌 관리 회로에 대한 접속부
    를 포함하되,
    상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(13)중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, 상기 캐쉬 라인이 하나를 초과하는 데이터 워드로 구성되도록 허용하는 캐쉬 라인 오프셋, 및 마이크로컴퓨터로부터의 판독/기입 인스트럭션이 적어도 상기 포트 천이 회로(14)에 공급되고, 상기 충돌 관리 회로의 출력과, 또한 상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(13)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스 및 마이크로컴퓨터 코어로부터의 판독/기입 인스트럭션이 상기 M개의 N포트 블럭에 대한 상기 어드레스 디코딩 기능을 수행하는 상기 회로 네트워크(15)에 적어도 공급되며, 상기 M개의 N포트 블럭의 어드레스 디코딩 기능을 수행하는 상기 회로 네트워크(15)로 또는 그로부터 데이터 워드 또는 인스트럭션이 전송되는 것을 특징으로 하는 N포트 데이터 메모리.
  15. 제 11 항 또는 제 13 항에 있어서,
    상기 1포트 셀 블럭(11, 13)의 수 M은 상기 N포트 태그 메모리의 포트 수 N보다 작은 것을 특징으로 하는 N포트 태그 메모리.
  16. 제 11 항 또는 제 13 항에 있어서,
    상기 N포트 태그 메모리 및 상기 N포트 태그 메모리와 쌍을 형성하는 N포트 데이터 메모리는 결합된 N포트 태그-데이터 메모리를 형성하도록 결합되고, 상기 결합된 N포트 태그-데이터 메모리의 워드 길이는 "mtag+W*2mword"로 표현되며, mtag는 상기 태그에 할당된 어드레스의 비트 수를 나타내고, mword는 상기 캐쉬 라인 오프셋에 할당된 0 이상인 어드레스의 비트 수를 나타내며, W는 인스트럭션 또는 데이터 워드의 워드 길이를 나타내는 것을 특징으로 하는 N포트 태그 메모리.
  17. 제 11 항 또는 제 13 항에 있어서,
    상기 N포트 태그 메모리에 포함된 상기 셀 블럭은 1보다 작지 않고 N보다 작은 포트 수 L(1≤L<N, L은 정수)을 갖는 L포트 셀 블럭인 것을 특징으로 하는 N포트 태그 메모리.
  18. 제 11 항에 있어서,
    상기 태그 메모리는 포트 수 Ltag(Ltag는 1보다 작지 않은 정수)를 갖는 Ltag포트 셀 블럭으로 구성되고, 상기 N포트 태그 메모리와 쌍을 이루는 N포트 데이터 메모리는 포트 수 Ldata(Ldata는 Ltag와 상이한 1보다 작지 않은 정수)를 갖는 Ldata포트 셀 블럭으로 구성되는 것을 특징으로 하는 N포트 태그 메모리.
  19. 제 12 항 또는 제 14 항에 있어서,
    상기 1포트 셀 블럭(11, 13)의 수 M은 상기 N포트 데이터 메모리의 포트 수 N보다 작은 것을 특징으로 하는 N포트 데이터 메모리.
  20. 제 12 항 또는 제 14 항에 있어서,
    상기 N포트 데이터 메모리 및 상기 N포트 데이터 메모리와 쌍을 이루는 N포트 태그 메모리는 결합된 N포트 태그-데이터 메모리를 형성하도록 결합되고, 상기 결합된 N포트 태그-데이터 메모리의 워드 길이는 "mtag+W*2mword"로 표현되며, mtag는 상기 태그에 할당된 어드레스의 비트 수를 나타내고, mword는 상기 캐쉬 라인 오프셋에 할당되는 0 이상인 어드레스의 비트 수를 나타내며, W는 인스트럭션 또는 데이터 워드의 워드 길이를 나타내는 것을 특징으로 하는 N포트 데이터 메모리.
  21. 제 12 항 또는 제 14 항에 있어서,
    상기 N포트 데이터 메모리에 포함된 상기 셀 블럭은 1보다 작지 않고 N보다 작은 포트 수 L(1≤L<N, L은 정수)을 갖는 L포트 셀 블럭인 것을 특징으로 하는 N포트 데이터 메모리.
  22. 제 12 항에 있어서,
    상기 데이터 메모리와 쌍을 이루는 태그 메모리는 포트 수 Ltag(Ltag는 1보다 작지 않은 정수)를 갖는 Ltag포트 셀 블럭으로 구성되고, 상기 데이터 메모리는 포트 수 Ldata(Ldata는 Ltag와 상이하고 1보다 작지 않은 정수)를 갖는 Ldata포트 셀 블럭으로 구성되는 것을 특징으로 하는 N포트 데이터 메모리.
  23. MB개의 1포트 셀 블럭(11)(MB는 M*MS로 표현되고, MS및 M 각각은 1 이상의 정수)과,
    N포트 멀티포트 기능을 M개의 1포트 셀 블럭(11)에 제공하도록 각기 작용하는 MS개의 글로벌 스위칭 네트워크(12)(N은 1을 초과하는 정수)와,
    상기 N포트간의 액세스 충돌의 경우에, 예컨대, 버스 시스템 또는 크로스바 스위치로 구성되는 상기 글로벌 스위칭 네트워크(12)를 제어하도록 접속된 충돌 관리 네트워크(12)에 대한 MS개의 접속부
    를 포함하되,
    상기 충돌 관리 회로의 출력과, 상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, 상기 M개의 1포트 셀 블럭(11)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스 및 마이크로컴퓨터 코어로부터 전송된 판독/기입 인스트럭션이 적어도 상기 글로벌 스위칭 네트워크(12) 각각에 공급되는 것을 특징으로 하는 N포트 태그 메모리.
  24. MB개의 1포트 셀 블럭(11)(MB는 M*MS로 표현되고, MS및 M 각각은 1 이상의 정수)과,
    N포트 멀티포트 기능을 M개의 1포트 셀 블럭(11)에 제공하도록 각기 작용하는 MS개의 글로벌 스위칭 네트워크(12)(N은 1을 초과하는 정수)와,
    상기 N포트간의 충돌의 경우에, 예컨대, 버스 시스템 또는 크로스바 스위치로 구성되는 상기 글로벌 스위칭 네트워크(12)를 제어하도록 접속된 충돌 관리 회로에 대한 MS개의 접속부
    를 포함하되,
    상기 충돌 관리 회로의 출력과, 상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(11)중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, 상기 M개의 1포트 셀 블럭(11)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스, 상기 캐쉬 라인이 하나를 초과하는 데이터 워드로 구성되도록 허용하는 캐쉬 라인 오프셋 및 마이크로컴퓨터 코어로부터 전송된 판독/기입 인스트럭션이 적어도 상기 글로벌 스위칭 네트워크(12) 각각에 공급되고, 상기 글로벌 스위칭 네트워크(12) 각각으로 또는 그로부터 인스트럭션 또는 데이터 워드가 전송되는 것을 특징으로 하는 N포트 데이터 메모리.
  25. MB개의 1포트 셀 블럭(13)(MB는 M*MS로 표현되고, MS및 M 각각은 1 이상의 정수)과,
    상기 1포트 셀 블럭(13)의 기능을 N포트 블럭의 기능으로 변환하는 포트 천이 회로(14)(N은 1을 초과하는 정수)와,
    상기 MB개의 1포트 셀 블럭(13)의 각각에 대해 상기 포트 천이 회로(14)를 장착함으로써 기능이 획득되는 MB개의 N포트 블럭과,
    M개의 N포트 블럭에 접속될 N포트에 대한 어드레스 디코딩 기능을 수행하는 MS개의 회로 네트워크(15)와,
    액세스 충돌의 경우에 상기 M개의 N포트 블럭에 대한 어드레스 디코딩 기능을 수행하는 제각기의 회로 네트워크(15)를 제어하기 위한 충돌 관리 회로에 대한 MS개의 접속부
    를 포함하되,
    상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(13)중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스 및 마이크로컴퓨터로부터의 판독/기입 인스트럭션이 적어도 상기 포트 천이 회로(14) 각각에 공급되고, 상기 충돌 관리 회로의 출력과, 또한 상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(13)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스 및 마이크로컴퓨터 코어로부터의 판독/기입 인스트럭션이 상기 M개의 N포트 블럭에 대한 상기 어드레스 디코딩 기능을 수행하는 적어도 상기 회로 네트워크(15) 각각에 공급되는 것을 특징으로 하는 N포트 태그 메모리.
  26. MB개의 1포트 셀 블럭(13)(MB는 M*MS로 표현되고, MS및 M 각각은 1 이상의 정수)과,
    상기 1포트 셀 블럭(13)의 기능을 N포트 블럭의 기능으로 변환하는 포트 천이 회로(14)(N은 1을 초과하는 정수)와,
    상기 MB개의 1포트 셀 블럭(13)의 각각에 대해 상기 포트 천이 회로(14)를장착함으로써 기능이 획득되는 MB개의 N포트 블럭과,
    M개의 N포트 블럭에 접속될 N포트에 대한 상기 어드레스 디코딩 기능을 수행하는 MS개의 회로 네트워크(15)와,
    액세스 충돌의 경우에, 상기 M개의 N포트 블럭에 대한 상기 어드레스 디코딩 기능을 수행하는 제각기의 회로 네트워크(15)를 제어하기 위한 충돌 관리 회로에 대한 MS개의 접속부
    를 포함하되,
    상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(13)중 어느 하나 또는 임의의 복수개의 내용을 식별하는 제 1 캐쉬 라인 인덱스, 상기 캐쉬 라인이 하나를 초과하는 데이터 워드로 구성되도록 허용하는 캐쉬 라인 오프셋 및 마이크로컴퓨터 코어로부터의 판독/기입 인스트럭션이 적어도 상기 천이 회로(14) 각각에 공급되고, 상기 충돌 관리 회로의 출력과, 또한 상기 N포트 각각에 대한, 상기 M개의 1포트 셀 블럭(13)중 어느 하나 또는 임의의 복수개를 선택하는 제 2 캐쉬 라인 인덱스 및 마이크로컴퓨터 코어로부터의 판독/기입 인스트럭션이 상기 M개의 N포트 블럭에 대한 상기 어드레스 디코딩 기능을 수행하는 상기 회로 네트워크(15) 각각에 적어도 공급되며, 상기 M개의 N포트 블럭의 어드레스 디코딩 기능을 수행하는 상기 각 회로 네트워크로 또는 그로부터 데이터 워드 또는 인스트럭션이 전송되는 것을 특징으로 하는 N포트 데이터 메모리.
KR10-2001-0048243A 2000-08-11 2001-08-10 멀티포트 캐쉬 메모리 KR100397413B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2000-00244524 2000-08-11
JP2000244524A JP2002055879A (ja) 2000-08-11 2000-08-11 マルチポートキャッシュメモリ

Publications (2)

Publication Number Publication Date
KR20020013772A true KR20020013772A (ko) 2002-02-21
KR100397413B1 KR100397413B1 (ko) 2003-09-13

Family

ID=18735207

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0048243A KR100397413B1 (ko) 2000-08-11 2001-08-10 멀티포트 캐쉬 메모리

Country Status (6)

Country Link
US (1) US6845429B2 (ko)
EP (1) EP1179778B1 (ko)
JP (1) JP2002055879A (ko)
KR (1) KR100397413B1 (ko)
DE (1) DE60138857D1 (ko)
TW (1) TW508801B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103974A1 (en) * 2000-11-29 2002-08-01 Giacomini Peter Joseph Method and apparatus for economical cache population
EP1512078B1 (en) * 2002-05-24 2012-04-11 Silicon Hive B.V. Programmed access latency in mock multiport memory
JP3784766B2 (ja) 2002-11-01 2006-06-14 株式会社半導体理工学研究センター 多ポート統合キャッシュ
JP2008542945A (ja) * 2005-06-09 2008-11-27 エヌエックスピー ビー ヴィ マルチポートキャッシュメモリのアーキテクチャ
US8429319B2 (en) * 2005-09-28 2013-04-23 Hynix Semiconductor Inc. Multi-port memory device with serial input/output interface
KR100721581B1 (ko) * 2005-09-29 2007-05-23 주식회사 하이닉스반도체 직렬 입/출력 인터페이스를 가진 멀티 포트 메모리 소자
DE102006045248A1 (de) * 2005-09-29 2007-04-19 Hynix Semiconductor Inc., Ichon Multiport-Speichervorrichtung mit serieller Eingabe-/Ausgabeschnittstelle
KR100695436B1 (ko) * 2006-04-13 2007-03-16 주식회사 하이닉스반도체 직렬 입/출력 인터페이스를 가진 멀티 포트 메모리 소자 및그의 동작 모드 제어방법
KR100695437B1 (ko) * 2006-04-13 2007-03-16 주식회사 하이닉스반도체 멀티 포트 메모리 소자
KR100695435B1 (ko) * 2006-04-13 2007-03-16 주식회사 하이닉스반도체 반도체 메모리 소자
JP2008009591A (ja) * 2006-06-28 2008-01-17 Matsushita Electric Ind Co Ltd キャッシュメモリシステム
US8370557B2 (en) * 2008-12-19 2013-02-05 Intel Corporation Pseudo dual-port SRAM and a shared memory switch using multiple memory banks and a sideband memory
KR101788245B1 (ko) 2011-02-25 2017-11-16 삼성전자주식회사 다중 포트 캐시 메모리 장치 및 그 구동 방법
US8843690B2 (en) 2011-07-11 2014-09-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Memory conflicts learning capability
EP3188025A1 (en) * 2015-12-29 2017-07-05 Teknologian Tutkimuskeskus VTT Oy Memory node with cache for emulated shared memory computers

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4153735A (en) 1977-11-01 1979-05-08 Uniscope, Inc. Lubricant-binder additive for densifying animal feed material
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access
EP0439952A3 (en) * 1990-01-31 1992-09-09 Sgs-Thomson Microelectronics, Inc. Dual-port cache tag memory
JP2822588B2 (ja) * 1990-04-30 1998-11-11 日本電気株式会社 キャッシュメモリ装置
EP0553743A1 (en) * 1992-01-31 1993-08-04 Motorola, Inc. A cache controller
JPH0836525A (ja) 1994-07-21 1996-02-06 Hitachi Ltd 多重アクセスキャッシュ記憶装置
US5761714A (en) * 1996-04-26 1998-06-02 International Business Machines Corporation Single-cycle multi-accessible interleaved cache
JP3068469B2 (ja) * 1996-08-28 2000-07-24 新潟日本電気株式会社 2次レベルキャッシュメモリシステム
US6047358A (en) * 1997-10-31 2000-04-04 Philips Electronics North America Corporation Computer system, cache memory and process for cache entry replacement with selective locking of elements in different ways and groups
KR19990057856A (ko) * 1997-12-30 1999-07-15 김영환 저전력 캐쉬 메모리 장치
JP2000276400A (ja) 1999-03-25 2000-10-06 Univ Hiroshima アドレス及びデータ転送回路
KR100395768B1 (ko) * 2001-06-16 2003-08-21 삼성전자주식회사 멀티 레벨 캐쉬 시스템

Also Published As

Publication number Publication date
JP2002055879A (ja) 2002-02-20
TW508801B (en) 2002-11-01
EP1179778A2 (en) 2002-02-13
US6845429B2 (en) 2005-01-18
KR100397413B1 (ko) 2003-09-13
US20020019912A1 (en) 2002-02-14
DE60138857D1 (de) 2009-07-16
EP1179778A3 (en) 2007-08-01
EP1179778B1 (en) 2009-06-03

Similar Documents

Publication Publication Date Title
US7694077B2 (en) Multi-port integrated cache
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
KR100397413B1 (ko) 멀티포트 캐쉬 메모리
US6877067B2 (en) Shared cache memory replacement control method and apparatus
US5694567A (en) Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
US7257673B2 (en) Ternary CAM with software programmable cache policies
US6192458B1 (en) High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
JPH0594698A (ja) 半導体記憶装置
EP0706131A2 (en) Method and system for efficient miss sequence cache line allocation
US5388072A (en) Bit line switch array for electronic computer memory
CN1328660C (zh) 具有共享存储器的改进结构
US6665775B1 (en) Cache dynamically configured for simultaneous accesses by multiple computing engines
US20080016282A1 (en) Cache memory system
KR100395768B1 (ko) 멀티 레벨 캐쉬 시스템
US5890221A (en) Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
US6115794A (en) Method and system of providing a pseudo-precise inclusivity scheme in a sectored cache memory for maintaining cache coherency within a data-processing system
US6094710A (en) Method and system for increasing system memory bandwidth within a symmetric multiprocessor data-processing system
IL145651A (en) Bit Cache Mode (BITS)
US6598050B1 (en) Apparatus and method for limited data sharing in a multi-tasking system
JP2001043134A (ja) コンピュータ・システム内でキャッシュ・ライン置換を管理するための方法および装置
US20070294504A1 (en) Virtual Address Cache And Method For Sharing Data Using A Unique Task Identifier
US6898100B2 (en) Semiconductor memory device used for cache memory
EP0999500A1 (en) Application-reconfigurable split cache memory
KR920010999B1 (ko) 캐시메모리 및 그 캐시메모리가 채용된 억세스제어장치

Legal Events

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

Payment date: 20120727

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130729

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 17