KR101183739B1 - 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로 - Google Patents

멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로 Download PDF

Info

Publication number
KR101183739B1
KR101183739B1 KR1020107024931A KR20107024931A KR101183739B1 KR 101183739 B1 KR101183739 B1 KR 101183739B1 KR 1020107024931 A KR1020107024931 A KR 1020107024931A KR 20107024931 A KR20107024931 A KR 20107024931A KR 101183739 B1 KR101183739 B1 KR 101183739B1
Authority
KR
South Korea
Prior art keywords
memory
data
supercell
segments
access port
Prior art date
Application number
KR1020107024931A
Other languages
English (en)
Other versions
KR20100127317A (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 KR20100127317A publication Critical patent/KR20100127317A/ko
Application granted granted Critical
Publication of KR101183739B1 publication Critical patent/KR101183739B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1048Data bus control circuits, e.g. precharging, presetting, equalising
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/108Wide data ports
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Static Random-Access Memory (AREA)
  • Electronic Switches (AREA)
  • Dram (AREA)

Abstract

집적 회로. 상기 집적 회로는 복수의 메모리 리퀘스터들 및 메모리 슈퍼셀을 포함한다. 상기 메모리 슈퍼셀은 그 각각이 각각의 범위의 개별적으로 어드레싱 가능한 저장 위치들을 형성하는 복수의 메모리 뱅크들을 포함하고, 상기 메모리 슈퍼셀은 복수의 뱅크 그룹들로 조직된다. 상기 복수의 뱅크 그룹들 각각은 상기 복수의 메모리 뱅크들의 서브세트 및 대응하는 전용의 액세스 포트를 포함한다. 상기 집적 회로는 상기 복수의 메모리 리퀘스터들과 상기 메모리 슈퍼셀 사이에 연결된 스위치를 더 포함한다. 상기 스위치는, 상기 복수의 메모리 리퀘스터들 중 주어진 하나의 메모리 리퀘스터에 의한 메모리 요청에 응답하여, 상기 주어진 메모리 리퀘스터와 상기 메모리 요청에 의해 어드레싱된 상기 뱅크 그룹들 중 특정한 뱅크 그룹의 상기 전용의 액세스 포트 사이에 데이터 경로를 연결하도록 구성된다.

Description

멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로{INTEGRATED CIRCUIT WITH MULTIPORTED MEMORY SUPERCELL AND DATA PATH SWITCHING CIRCUITRY}
이 발명은 집적 회로에 관한 것으로, 특히, 집적 회로 내의 메모리 및 관련된 액세스 경로들의 배열에 관한 것이다.
컴퓨터들 및 다른 유형의 전자 시스템들은 종종 몇몇 상이한 층들을 갖는 메모리 계층 구조(memory hierarchy)를 포함한다. 이러한 층들 중에는 비휘발성 저장 장치(예를 들면, 하드 디스크 저장 장치), RAM(random access memory), 및 캐시 메모리의 하나 이상의 레벨들이 포함될 수 있다. 프로세서 기반 시스템들은 하나 이상의 코어들을 갖는 프로세서를 포함하고, 그 하나 이상의 코어들 각각은 하나 이상의 캐시 메모리들을 포함한다. 예를 들면, 많은 프로세서들은, 메모리 계층 구조의 상부에 있을 수 있는, 명령 캐시 및 데이터 캐시를 갖는 적어도 하나의 프로세서 코어를 포함한다. 메모리 계층 구조의 상부에 있는 캐시 메모리는 레벨 1(또는 L1)라고 불릴 수 있다. 많은 프로세서들은 또한 레벨 2(또는 L2) 캐시를 포함하고, 그것은 프로세서 코어의 데이터 및 명령어 캐시들에 의해 공유될 수 있고, 또한, 멀티코어 프로세서들 내의 다수의 프로세서 코어들에 의해 공유될 수 있다.
집적 회로(IC) 상에 제공될 때, L2 캐시들과 같은, 이러한 유형의 메모리들 중 몇몇은 메모리 슈퍼셀들(memory supercell)로서 알려진 것으로 조직될 수 있다. 메모리 슈퍼셀은 공통의 인터페이스(때때로 "탭 포인트"(tap point)라고 불림)를 공유하는 메모리 뱅크들의 2차원 어레이(예를 들면, 메모리 뱅크들의 행들 및 열들)이다. 특히, IC를 설계할 때, 각 메모리 뱅크는 IC 다이 상의 그것의 위치 및 다른 정의된 셀들 및/또는 다른 기능 유닛들에의 상호 연결들이 IC 디자인 툴에 의해 조작될 수 있는 셀의 형태을 가질 수 있다. 메모리 슈퍼셀은 단순히 유사하게 디자인 툴에 의해 IC 상에 배치될 수 있는 보다 큰 단일화된 메모리 셀을 형성하도록 상호 연결된 그러한 메모리 뱅크 셀들의 콜렉션이다.
그러한 메모리 슈퍼셀에서는, 주어진 어드레스가 슈퍼셀의 하나의 뱅크에 매핑한다. 기입 동작 동안에 슈퍼셀에 전송된 정보는 인터페이스에 의해 수신되고 그 후 그것에 매핑하는 어드레스에 의해 지시된 메모리 뱅크 내의 위치로 라우팅될 수 있다. 유사하게, 판독 동작을 수행할 때, 정보는 슈퍼셀의 메모리 뱅크들 중 하나 내의 어드레싱된 위치로부터 인터페이스로 라우팅될 수 있고, 따라서 요청하는 디바이스로 라우팅될 수 있다.
[발명의 요약]
집적 회로가 개시된다. 하나의 실시예에서, 상기 집적 회로는 복수의 메모리 리퀘스터들(memory requestors) 및 메모리 슈퍼셀을 포함한다. 상기 메모리 슈퍼셀은 그 각각이 각각의 범위의 개별적으로 어드레싱 가능한 저장 위치들을 형성하는 복수의 메모리 뱅크들을 포함하고, 상기 메모리 슈퍼셀은 복수의 뱅크 그룹들로 조직된다. 상기 복수의 뱅크 그룹들 각각은 상기 복수의 메모리 뱅크들의 서브세트 및 대응하는 전용의 액세스 포트를 포함한다. 상기 집적 회로는 상기 복수의 메모리 리퀘스터들과 상기 메모리 슈퍼셀 사이에 연결된 스위치를 더 포함한다. 상기 스위치는, 상기 복수의 메모리 리퀘스터들 중 주어진 하나의 메모리 리퀘스터에 의한 메모리 요청에 응답하여, 상기 주어진 메모리 리퀘스터와 상기 메모리 요청에 의해 어드레싱된 상기 뱅크 그룹들 중 특정한 뱅크 그룹의 상기 전용의 액세스 포트 사이에 데이터 경로를 연결하도록 구성된다.
본 발명의 다른 양태들은 다음의 상세한 설명을 읽고 첨부 도면들을 참조하면 명백해질 것이다.
도 1은 집적 회로의 하나의 실시예의 블록도이다.
도 2는 메모리 슈퍼셀의 하나의 실시예의 블록도이다.
도 3은 메모리 슈퍼셀의 다른 실시예의 블록도이다.
도 4는 집적 회로의 블록도로서, 스위칭 유닛의 하나의 실시예를 더 상세히 나타내는 블록도이다.
도 5는 집적 회로의 하나의 실시예의 추가의 상세들을 나타내는 블록도이다.
도 6은 다수의 프로세서 코어들 및 한 쌍의 메모리 슈퍼셀들을 포함하는 집적 회로의 하나의 실시예를 나타내는 블록도이다.
도 7은 다수의 프로세서 코어들 및 한 쌍의 메모리 슈퍼셀들을 포함하는 집적 회로의 다른 실시예를 나타내는 블록도이다.
본 발명은 다양한 수정들 및 대안적인 형태들이 가능하지만, 그의 특정한 실시예들이 도면들에서 예로서 도시되고 여기에서 상세히 설명될 것이다. 그러나, 도면들 및 그에 대한 설명은 본 발명을 개시된 특정한 형태로 제한하기 위해 의도되지 않고, 도리어, 본 발명은 첨부된 청구항들에 의해 정의된 본 발명의 정신 및 범위 안에 있는 모든 수정들, 등가물들, 및 대안들을 포함할 것이라는 것을 이해해야 한다.
이제 도 1을 보면, 집적 회로의 하나의 실시예의 블록도가 도시되어 있다. 도시된 실시예에서, 집적 회로(IC)(10)는 리퀘스터들(22, 24, 26, 및 28)을 포함하고, 그 각각은 제어 유닛(15) 및 스위치 유닛(20)에 연결된다. IC(10)는 또한 스위치 유닛(20)에 연결된 메모리 슈퍼셀(18)을 포함한다. 도 1에 도시된 IC(10)의 다양한 컴포넌트들은 몇몇 실시예들에서 단일 IC 다이 상에 구현될 수 있다. 도시된 실시예에서, 스위치 유닛(20)은 물리적으로 메모리 슈퍼셀(18)과 리퀘스터들(22-28)의 사이에(및 그의 외부에) 배치된다.
리퀘스터들(22-28) 각각은 메모리 슈퍼셀(18)과 같은, 그것의 외부의 메모리에의 액세스를 요구하는 임의의 서브시스템 또는 디바이스를 나타낸다. 그러한 액세스는 판독 액세스, 기입 액세스, 또는 양쪽 모두를 포함할 수 있다. 몇몇 실시예들에서, 리퀘스터들(22-28) 각각은 동일한 기능 유닛들(예를 들면, 명령어 캐시 및 데이터 캐시를 포함하는 대칭 멀티코어 프로세서의 코어들 등)일 수 있다. 다른 실시예들에서, 리퀘스터들(22-28) 중 적어도 하나는 다른 리퀘스터들과 다를 수 있다(예를 들면, 비대칭 멀티코어 프로세서 내의 코어들). 리퀘스터들의 특정한 수는 실시예마다 달라질 수 있고, 여기에서 도시된 것보다 많거나 적을 수 있다. 겨우 하나의 리퀘스터를 갖는 실시예들이 가능하고 심사숙고된다.
도시된 실시예에서, 메모리 슈퍼셀(18)은 복수의 메모리 뱅크들(19)을 포함한다. 위에 설명된 바와 같이, IC의 설계 단계 동안에, 메모리 뱅크들 각각은 디자인 툴에 의해 조작될 수 있는 셀들로서 정의될 수 있다. 그의 구상에서, 메모리 슈퍼셀(18)은 마찬가지로 그의 위치 및 다른 셀들 또는 기능 유닛들에의 상호 연결들이 디자인 툴에 의해 조작되는 것을 허용하도록 정의될 수 있다. 도시된 실시예에서의 메모리 슈퍼셀(18)은 메모리 뱅크들(19)의 2차원 어레이를 포함한다. 그 배열은 메모리 뱅크들(19) 중 적어도 2개는 제1 방향(예를 들면, 행들)에 배열되는 한편 메모리 뱅크들(19) 중 적어도 2개는 제2 방향(예를 들면, 열들)에 배열되도록 하는 것이다. 2차원의 각 방향에서의 메모리 뱅크들(19)의 특정한 수는 실시예마다 달라질 수 있다. 각 메모리 뱅크(19)는 각각의 범위의 개별적으로 어드레싱 가능한 저장 위치들을 형성할 수 있다. 메모리 액세스 요청들은 각각 이러한 개별적으로 어드레싱 가능한 저장 위치들 중 하나 이상의 저장 위치들에 어드레싱될 수 있다.
도 1의 메모리 슈퍼셀(18)은 이 실시예에서 포트 0 및 포트 1로서 표시된 포트들(21)(때때로 '탭 포인트들'(tap points)로 불림)을 통하여 스위치 유닛(20)에 연결된다. 후술되는 바와 같이, 도 1에 도시된 복수의 메모리 뱅크들(19)은 개별적인 뱅크 그룹들로 조직될 수 있다. 또한 아래에서 더 상세히 설명되는 바와 같이, 주어진 뱅크 그룹으로 또는 그로부터의 데이터(여기에서 사용되는 용어 "데이터"는 명령들을 포함하는 것으로 의도된다)의 전송은 오로지 그 특정한 뱅크 그룹과 관련된 포트(21)를 통해서만 일어날 수 있는 반면, 다른 뱅크 그룹으로/으로부터의 데이터의 전송은 다른 포트를 통하여 일어난다.
도시된 실시예에서의 리퀘스터들(22-28) 각각은 메모리 슈퍼셀(18)에의 액세스를 위한 요청을 나타내는 신호들을 제어 유닛(15)에 제공하도록 구성된다. 메모리 슈퍼셀(18)에의 액세스를 위한 요청을 제공할 때, 특정한 리퀘스터(22-28)는 그 요청이 판독 요청인지 기입 요청인지를 나타낼 뿐만 아니라, 액세스될 어드레스를 나타내는 정보를 제어 유닛(15)에 제공할 수 있다. 제어 유닛(15)은 그에 응하여 요청에 의해 식별된 메모리 위치와 대응하는 리퀘스터 사이에 데이터를 전달하기 위한 경로를 결정하도록 구성된다. 특히, 제어 유닛(15)은 요청된 메모리 위치와 관련된 메모리 슈퍼셀(18)의 포트와 대응하는 리퀘스터 사이에 경로를 형성할 스위치 유닛(20) 내의 다양한 세그먼트들을 결정하도록 구성될 수 있다. 제어 유닛(15)으로부터 제어 신호들을 수신하는 것에 응답하여, 스위치 유닛(20)은 리퀘스터와 요청과 관련된 메모리 슈퍼셀(18)의 포트 사이에 경로를 형성하는 세그먼트들을 선택하도록 구성된다.
제어 유닛(15)은 또한 요청된 메모리 위치를 포함하는 뱅크 그룹에 직접 어떤 제어 신호들을 제공할 수 있다. 그러한 제어 신호들은 인에이블 신호들(enable signals)(예를 들면, 판독 인에이블, 기입 인에이블) 및 선택 신호들(예를 들면, 요청과 관련된 뱅크 및 어드레스를 선택하기 위한 것)을 포함할 수 있다. 다수의 미해결(outstanding) 액세스 요청들이 수신되는 상황에서, 제어 유닛(15)은 그 요청들을 수행하기 위한 순서를 결정하기 위하여 우선순위 기능들(prioritization functions)을 수행할 수 있다.
이제 도 2를 참조하면, 메모리 슈퍼셀(18)의 하나의 실시예의 블록도가 도시되어 있다. 도 2는 또한 복수의 메모리 뱅크들(19) 중 대표적인 메모리 뱅크를 나타낸다. 도시된 실시예에서, 메모리 슈퍼셀(18)은 4개의 행 및 2개의 열로 조직되는 8개의 메모리 뱅크들(19)을 포함한다. 메모리 슈퍼셀(18)은 여기에서 뱅크 그룹 0, 뱅크 그룹 1, 뱅크 그룹 2, 및 뱅크 그룹 3으로 불리는, 4개의 메모리 유닛들로 더 조직된다. 이러한 뱅크 그룹들 각각은 대응하는 I/F 유닛(185)에 연결된 대응하는 포트(21)를 포함하는데, 예를 들면, 뱅크 그룹 0은 I/F 0에 연결되는 포트 0을 포함하고, 기타 등등이다. 주어진 메모리 그룹의 각각의 포트(21)는 그 그룹의 메모리 뱅크들(19)에 독점적이다. 유사하게, 주어진 메모리 그룹의 각 I/F 유닛(185)은 그 그룹의 메모리 뱅크들(19)에 독점적이다. 예를 들면, 뱅크 0의 메모리 뱅크들로 또는 그로부터의 데이터 전송은 포트 0 및 I/F 0을 통하여 일어나는 반면, 뱅크 그룹 3의 메모리 뱅크들 중 임의의 것으로 또는 그로부터의 데이터 전송은 포트 3 및 I/F 3을 통하여 일어난다. I/F 유닛들(185) 각각은 특정한 뱅크 그룹의 메모리 뱅크들과 그 특정한 메모리 그룹의 대응하는 포트(21) 사이에 데이터를 전달하기 위한 인터페이스를 제공한다. 각 I/F 유닛(185)은 주어진 메모리 뱅크(19)와 대응하는 포트(21) 사이에 그 뱅크 내의 위치에의 액세스 동안에 데이터를 라우팅하도록 구성된 스위칭 회로(예를 들면, 멀티플렉서, 디멀티플렉서 등)를 포함할 수 있다. 몇몇 실시예들에서, 각 I/F 유닛(185)은 또한 그의 특정한 뱅크 그룹의 메모리 뱅크들(19)에 어드레스 신호 및/또는 다른 제어 신호들을 제공할 수 있다. 그러나, 어드레스 정보 및 제어 신호들이 다른 기능 유닛들에 의해(예를 들면, 도 1의 제어 유닛(15)으로부터 직접) 제공되는 실시예들도 가능하고 심사숙고된다.
도시된 실시예에서, 주어진 뱅크 그룹의 메모리 뱅크들(19) 각각은 다른 뱅크 그룹들과 관련된 포트들(21)에보다 그것과 관련된 포트(21)에 더 가까이 물리적으로 근접한다. 예를 들면, 뱅크 그룹 0의 메모리 뱅크들(19)은 뱅크 그룹들 1-3 중 임의의 것과 관련된 포트들에보다 포트 0에 더 가까이 물리적으로 근접한다. 메모리 슈퍼셀에 대하여 단일 포트가 제공될 수 있는 실시예들(및 따라서 단일 포트 인터페이스 유닛)과 대비하여, 도 2에 도시된 배열은 메모리 슈퍼셀(18) 내의 주어진 메모리 뱅크(19)로/로부터 외부 위치로부터/로 데이터가 드라이브되는 거리를 최소화할 수 있다. 또한 각 I/F 유닛(185)을 형성하는 회로는 물리적으로 주어진 뱅크 그룹의 메모리 뱅크들(19) 사이의 중심 위치에 제공될 수 있다는 점에 주목한다.
IC(10)와 같은 집적 회로에 구현될 때, 메모리 슈퍼셀(18)의 각 포트(21)는 제1 경로를 통하여 스위치 유닛(20)으로부터 데이터를 수신하도록 연결되고 제2 경로를 통하여 스위치 유닛에 데이터를 제공하도록 연결될 수 있다(즉, 데이터를 기입하고 데이터를 판독하기 위해 단일 방향 경로들이 이용되는 실시에들에서). 따라서, 아래에서 더 상세히 설명되는 바와 같이, 이 배열은 동시 발생의 판독 및 기입 동작들을 허용할 수 있고, 여기서 정보는 제1 뱅크 그룹 내의 메모리 위치에 기입되고 제2 뱅크 그룹 내의 메모리 위치로부터 판독된다.
전술한 바와 같이, 도 2는 또한 대표적인 메모리 뱅크(19)의 하나의 실시예를 나타낸다. 메모리 슈퍼셀(18) 내에서의 구현을 위해 다른 유형의 메모리 뱅크들도 가능하고 심사숙고된다. 도시된 실시예에서, 메모리 뱅크(19)는 행들 및 열들의 어레이에 배열된 복수의 메모리 비트 셀들을 포함한다. 주어진 행 내의 메모리 비트 셀들은 워드 라인들에 의해 서로에 연결되는 반면, 주어진 열 내의 메모리 비트 셀들은 비트 라인들에 의해 서로에 연결된다. 도시된 실시예에서, 각 메모리 비트 셀은 단일 비트 라인에 연결되지만, (예를 들면 트루(true) 및 상보(complementary) 데이터를 전달하기 위해) 메모리 비트 셀들이 2개의 비트 라인들에 연결되는 실시예들이 가능하고 심사숙고된다.
도시된 실시예에서의 메모리 뱅크(19)는 어드레스 디코더(191) 및 I/O 유닛(192)을 포함한다. 어드레스 디코더(191)는 외부 소스로부터(예를 들면, I/F 유닛(185)으로부터 또는 위에 설명된 실시예들의 제어 유닛(15)으로부터) 어드레스를 수신하도록 연결되고 수신된 어드레스를 디코딩하도록 구성된다. I/O 유닛(192)은 메모리 셀들로부터 정보를 판독하고 및/또는 메모리 셀들에 정보를 기입하기 위한 다양한 회로를 포함할 수 있다. 예를 들면, 하나의 실시예에서, I/O 유닛(192)은 복수의 센스 증폭기들을 포함하고, 그 각각은 대응하는 비트 라인에 연결된다. I/O 유닛(192)은 또한 복수의 드라이버 회로들을 포함할 수 있고, 그 각각은 대응하는 비트 라인에 연결된다.
도시된 실시예에서, 어드레스 디코더(191)는 그것에 대응하는 워드 라인을 활성화하기 위하여 어드레스를 디코딩하도록 구성된다. 활성화될 때, 주어진 워드 라인은 그것에 연결된 메모리 셀들이 그들의 각각의 비트 라인들에 투명(transparent)하게 할 수 있다(즉, 디코딩된 어드레스의 메모리 셀들이 선택된다). 판독 동작들 동안에, 선택된 메모리 셀들에 저장된 데이터는 I/O 유닛(192)의 센스 증폭기들에 의해 감지되어 메모리 뱅크(19)로부터 대응하는 I/F 유닛(185)으로(및 따라서 대응하는 포트(21)로도) 드라이브될 수 있다. 기입 동작들 동안에, 데이터는 I/O 유닛(192) 내의 드라이버 회로들에 의해 수신되고 따라서 선택된 메모리 셀들에 기입될 수 있다. 판독 또는 기입 동작이 완료될 때, 선택된 메모리 셀들의 워드 라인은 비활성화되고, 따라서 그 메모리 셀들에 가장 최근에 기입된 그 데이터는 저장된다.
도 3은 메모리 슈퍼셀(18)의 다른 실시예의 블록도이다. 이 특정한 실시예에서, 메모리 슈퍼셀(18)은 도 2의 실시예에 도시된 4개 대신에 2개의 뱅크 그룹들을 포함한다. 따라서, 도 3의 메모리 슈퍼셀(18)은 2개의 포트들(21) 및 2개의 I/F 유닛들(185)을 포함한다. 이 특정한 실시예에서의 뱅크 그룹들 각각은 4개의 메모리 뱅크들(19)을 포함한다.
대체로, 메모리 슈퍼셀들(18)은 이 명세에 따라서 매우 다양한 구성들로 구현될 수 있다. 각 메모리 슈퍼셀은 복수의 뱅크 그룹들을 포함할 수 있고, 그 각각은 복수의 메모리 뱅크들을 포함한다. 각 뱅크 그룹은 각각이 그 특정한 뱅크 그룹에 독점적인 포트 및 I/F 유닛을 포함할 수 있다(즉, 주어진 포트는 대응하는 뱅크 그룹 내의 위치에 기입되거나 그 위치로부터 판독되는 데이터를 전달하는 것에 전용된다(즉, 다른 뱅크 그룹들로/로부터 데이터를 전달하지 않는다)). 또한, 특정한 뱅크 그룹의 메모리 뱅크들은 다른 뱅크 그룹들과 관련된 포트들에보다 그 뱅크 그룹과 관련된 포트에 더 가까이 물리적으로 근접할 수 있다. 이것은 뱅크 그룹 내의 특정한 메모리 뱅크와 그 뱅크 그룹의 포트 사이에 데이터가 드라이브되는 거리 및 따라서 주어진 메모리 리퀘스터까지의 전체 거리를 감소시킬 수 있다. 데이터가 드라이브되는 거리의 전체 량을 감소시키는 것은 상대적으로 더 낮은 전력 소비로 귀착할 수 있고, 또한 데이터 전송과 관련된 레이턴시(latency)를 감소시킬 수 있다.
도 4는 스위치 유닛(20)의 하나의 실시예를 더 상세히 나타내는 IC(10)의 도이다. 위에 설명된 도면들의 것들에 대응하는 도 4의 엘리먼트들은 간소화를 위해 동일하게 번호가 매겨진다. 도 4에 도시된 것과 같은 메모리 슈퍼셀(18)은, 여럿 가운데서, 도 2의 구성 또는 도 3의 구성에 따라서 구현될 수 있다는 점에 주목한다.
도시된 실시예에서, 스위치 유닛(20)은 복수의 선택 회로들(202)을 포함하고, 복수의 세그먼트들(205 및 210)을 더 포함한다. 간소화를 위하여, 세그먼트들 중 대표적인 것들만이 라벨로 표시되어 있다. 세그먼트들(205)은 복수의 세그먼트들의 제1 서브세트를 형성하고, 리퀘스터들(22-28)로부터 메모리 슈퍼셀(18)의 선택된 뱅크 그룹으로 정보(기입 데이터)를 전달하기 위해 이용 가능하다. 세그먼트들(210)은 복수의 세그먼트들의 제2 서브세트를 형성하고, 메모리 슈퍼셀(18)의 선택된 뱅크 그룹으로부터 리퀘스터들(22-28) 중 하나로 정보(판독 데이터)를 전달하기 위해 이용 가능하다. 따라서, 세그먼트들(205)은 제1 방향으로 단일 방향인 반면, 세그먼트들(210)은 제2 방향으로 단일 방향이다. 각 세그먼트는 메모리 슈퍼셀(18)과 리퀘스터들(22-28) 중 하나의 사이에 데이터를 전송하기 위해 그 위에서 정보의 비트들이 전달되는 복수의 신호 라인들(예를 들면, 도선들)을 포함할 수 있다.
이 실시예에서의 각 선택 회로(202)는 복수의 세그먼트들 중 특정한 세그먼트들을 복수의 세그먼트들 중 적어도 하나의 다른 세그먼트에 전기적으로 연결하도록 구성된다. 도시된 실시예에서, 각 선택 회로(202)는 멀티플렉싱 기능을 수행하도록 구성된다. 더 상세하게는, 이 실시예에서의 선택 회로들(202) 각각은 다른 세그먼트에 연결될 2개의 세그먼트들 중 하나의 세그먼트를 선택하도록 구성된다. 일반적으로, 스위치 유닛(20)의 다양한 실시예들은 멀티플렉싱 기능, 디멀티플렉싱 기능, 게이팅 기능, 또는 그의 다양한 조합들을 수행하는 선택 회로들(202)을 이용하여 구현될 수 있다. 멀티플렉싱 기능을 수행하는 선택 회로들(202)은 2개 이상의 입력 세그먼트들을 제3의 (출력) 세그먼트에 연결할 수 있다. 디멀티플렉싱 기능을 수행하는 선택 회로들(202)은 입력 세그먼트를 2개 이상의 출력 세그먼트들 중 하나의 출력 세그먼트에 연결할 수 있다. 게이팅 기능을 수행하는 선택 회로들(202)은, 인에이블될 때, 입력 세그먼트를 출력 세그먼트에 연결할 수 있다.
비록 여기에서 명백히 도시되지 않았지만, 도시된 실시예에서의 각 선택 회로(202)는 제어 유닛(15)으로부터 하나 이상의 제어 신호들을 수신하도록 연결된다. 더 상세하게는, 이 실시예에서의 각 선택 회로(202)는 2개의 대응하는 입력 세그먼트들 중 어느 것이 대응하는 출력 세그먼트에 전기적으로 연결되어야 하는지를 나타내는 선택 신호를 적어도 수신하도록 연결된다. 몇몇 실시예들에서, 각 선택 회로(202)는 또한 인에이블 신호를 수신하도록 연결된다. 인에이블 신호는 선택 회로(202)가 리퀘스터들(22-28) 중 하나의 리퀘스터와 메모리 슈퍼셀(18)의 뱅크 그룹들 0-3 중 하나의 뱅크 그룹 사이에 경로를 형성하기 위해 이용되어야 할 때 그 선택 회로(202)를 인에이블하기 위해 어서트(assert)될 수 있다. 선택 회로(202)에 의해 제공된 인에이블 신호는 그 선택 회로가 사용되지 않을 때 디어서트(de-assert)될 수 있다. 디스에이블될 때, 선택 회로(202)는 출력 세그먼트의 신호 라인들이 높은 임피던스 상태에 놓이게 할 수 있다.
도시된 실시예는 복수의 세그먼트들을 개별적인 제1 및 제2 서브세트들로(즉, 세그먼트들(205)을 포함하는 제1 서브세트 및 세그먼트들(210)을 포함하는 제2 서브세트로) 분할하기 때문에, 동시 발생의 판독들 및 기입들이 지원될 수 있다. 예를 들면, 리퀘스터(22)로부터 뱅크 그룹 0 내의 위치로 데이터가 기입되는 동안에 리퀘스터(28)에 의해 뱅크 그룹 3으로부터 동시에 데이터가 판독될 수 있다. 몇몇 실시예들에서 단일 뱅크 그룹 및/또는 단일 리퀘스터를 포함하는 동시 발생의 판독 및 기입이 지원될 수도 있다. 예를 들면, 그러한 실시예에서 리퀘스터(24)는 뱅크 그룹 1 내의 위치에 데이터를 기입하면서 동시에 뱅크 그룹 2 내의 위치로부터 데이터를 판독할 수 있다. 다른 실시예에서, 하나의 그러한 실시예는 리퀘스터(26)가 뱅크 그룹 2의 제1 위치에 데이터를 기입하는 동안에 리퀘스터(24)가 동시에 뱅크 그룹 2 내의 제2 위치로부터 데이터를 판독하는 것을 지원할 수 있다. 전술한 바와 같이, 제어 유닛(15)은 우선순위화 기능들을 수행하도록 구성될 수 있고, 따라서 동시 발생의 판독 및 기입 액세스들이 지원되는 실시예들에서 이러한 동시 발생의 액세스들을 스케줄링할 수 있다. 제어 유닛(15)은 또한 어떤 상황에서(예를 들면, 동일한 메모리 위치로부터 판독하는 요청 및 동일한 메모리 위치에의 기입이 있는 경우에) 동시 발생의 판독 및 기입을 막도록 구성될 수 있다.
도 5는 리퀘스터와 메모리의 뱅크 그룹 사이의 경로들의 선택의 예들을 나타내는 블록도이다. 여기에서 도시된 예는 도 4의 실시예에 기초하고, 따라서 도 5에 도시된 엘리먼트들은 도 4에서 그것들의 대응하는 엘리먼트들과 동일하게 번호가 매겨진다. 이 예에서 도시된 경로들은 대시 기호로 된 선들 및 대응하는 참조 문자들에 의해 표시되는 세그먼트들을 포함한다. 대응하는 참조 문자 없이 실선들로 도시된 다른 세그먼트들은 이 예의 표시된 경로들의 일부가 아니다.
도 5에 도시된 예에서, 리퀘스터(22)는 세그먼트들(205D 및 205E)로 형성된 제1 경로를 통해 뱅크 그룹 0에 연결된다. 따라서, 리퀘스터(22)는 뱅크 그룹 0 내의 메모리 위치에 정보를 기입하도록 연결된다. 이 동일한 예에서, 리퀘스터(26)는 세그먼트들(210E, 210F, 및 210G)로 형성된 제2 경로에 의해 뱅크 그룹 2에 연결된다. 따라서, 리퀘스터(26)는 뱅크 그룹 2로부터 데이터를 판독하도록 연결된다. 이러한 경로들은 도시된 바와 같이 리퀘스터(22)가 뱅크 그룹 0 내의 위치에 데이터를 기입하는 리퀘스터(26)가 동시에 뱅크 그룹 2 내의 위치로부터 데이터를 판독하는 것을 가능하게 하도록 구성될 수 있다. 메모리 슈퍼셀(18)의 제1 위치로부터 데이터를 판독하는 동안에 동시에 그것의 다른 위치에 데이터를 기입하는 능력은 효율적인 전체 동작을 가능하게 할 수 있다. 그러나, 이 예에서 도시된 경로들은 전술한 판독 및 기입 동작들을 상이한 비동시의 기간들에서 가능하게 하도록 구성될 수 있다.
도 5에 도시된 예는, 리퀘스터(22)로부터 뱅크 그룹 0의 포트 0으로 데이터를 드라이브할 때, 리퀘스터(22)를 포트 0에 전기적으로 연결하는 세그먼트들(205)에서만 데이터가 드라이브되도록 하는 것이다. 유사하게, 도시된 예는 뱅크 그룹 2로부터 리퀘스터(26)로 데이터를 드라이브할 때, 포트 2를 리퀘스터(26)에 전기적으로 연결하는 세그먼트들(210)에서만 데이터가 드라이브되도록 하는 것이다. 일반적으로, 도시된 실시예에서 주어진 리퀘스터가 메모리 슈퍼셀(18) 내의 위치에 데이터를 기입하기로 되어 있을 때, 시작하는 리퀘스터와 데이터가 기입되어야 하는 저장 위치에 대응하는 포트 사이에 전기적으로 연결된 세그먼트들(205)에서만 데이터가 드라이브된다. 유사하게, 도시된 실시예에서, 주어진 리퀘스터가 메모리 슈퍼셀(18) 내의 위치로부터 데이터를 판독하기로 되어 있을 때, 데이터가 판독되어야 하는 저장 위치와 관련된 포트와 시작하는 리퀘스터의 입력 사이에 전기적으로 연결된 세그먼트들(210)에서만 데이터가 드라이브된다. 그 결과, 상대적으로 짧은 데이터 경로가 제공될 수 있고, 따라서 결과적으로 데이터에 대응하는 신호들이 드라이브되는 거리가 보다 짧아진다. 이것은 또한 상대적으로 낮은 전력 소비로 귀착할 수 있다.
일반적으로, 스위칭 회로(20)는 리퀘스터들(22-28) 중 어느 하나로부터 뱅크 그룹들 0-3 중 임의의 것으로의 기입 동작들을 가능하게 하기 위해 선택 회로들(202) 중 특정한 선택 회로들이 세그먼트들(205) 중 다양한 세그먼트들을 선택하게 하도록 구성된다. 유사하게, 스위칭 회로(20)는 뱅크 그룹들 0-3 중 임의의 것으로부터 리퀘스터들(22-28) 중 어느 하나로의 판독 동작들을 가능하게 하기 위하여 선택 회로들(202) 중 특정한 선택 회로들이 세그먼트들(210) 중 다양한 세그먼트들을 선택하게 하도록 구성된다. 특정한 세그먼트들의 선택은 요청의 유형(판독 또는 기입) 및 요청된 위치에 따라서 제어 유닛(15)의 지시를 받아 수행될 수 있다. 어떤 충돌도 존재하지 않을 때(예를 들면, 동일한 어드레스로부터 동시에 판독하고 그것에 기입하려는 시도가 없을 때), 동시 발생의 판독 및 기입 동작들이 수행될 수 있다.
이제 도 6을 참조하면, 다수의 프로세서 코어들 및 메모리 슈퍼셀들을 갖는 집적 회로 상에 구현된 프로세서 시스템의 하나의 실시예의 블록도가 도시되어 있다. 도시된 실시예에서, 프로세서(100)는 제1 프로세서 코어(101) 및 제2 프로세서 코어(102)를 포함한다. 프로세서 코어들(101 및 102) 각각은 스위치 유닛(20)에 연결된다. 스위치 유닛(20)은 또한 메모리 슈퍼셀들(181 및 182)에 의해 공동으로 형성된 L2 캐시(180)에 연결된다. 스위치 유닛(20)을 형성하는 회로는 물리적으로 도면에 도시된 프로세서 코어들의 쌍과 L2 캐시(180)의 사이에 위치할 수 있다. 프로세서(100)는 또한 위에 설명된 실시예들의 제어 유닛(15)과 유사한 제어 유닛을 포함할 수 있지만, 간소화를 위하여 그것은 여기에서 도시되지 않았다.
프로세서 코어(101)는 명령 캐시(111), 데이터 캐시(112), 및 코어 인터페이스(113)를 포함한다. 유사하게, 프로세서 코어(102)는 명령 캐시(121), 데이터 캐시(122), 및 코어 인터페이스(123)를 포함한다. 프로세서 코어들(101 및 102)의 명령 및 데이터 캐시들은 이 실시예에서 레벨 1(L1) 캐시들을 형성한다. 이 실시예에서 코어 인터페이스들(113 및 123)은 각각의 L1 캐시들로부터 L2 캐시(180)로 정보를 기입하도록 구성된 캐시 라이트백 유닛들(cache writeback units)이다. 코어 인터페이스들(113 및 123)은 또한 그들의 각각의 프로세서 코어들과 다른 기능 유닛들 사이의 통신을 가능하게 하는 추가적인 인터페이스 기능을 포함할 수 있다.
이 특정한 실시예에서, 프로세서 코어들(101 및 102)은 위에 설명된 것과 같은 리퀘스터들의 역할을 수행한다. 리퀘스터들로서의 그들의 역할에서, 프로세서 코어들(101 및 102)은 그들의 각각의 명령 또는 데이터 캐시들에의 입력들을 통해 메모리 슈퍼셀들(181 및 182)로부터 데이터를 수신할 수 있다. 이 실시예에서 프로세서 코어들(101 및 102)로부터 그들의 각각의 코어 인터페이스들을 통해 정보가 출력될 수 있다. 그러나, 도면에 도시된 각 명령 캐시, 데이터 캐시, 및 코어 인터페이스가 스스로 리퀘스터들의 역할을 수행할 수 있는 실시예들이 가능하고 심사숙고된다는 점에 주목해야 한다. 그러한 것으로서, 이러한 유닛들이 리퀘스터들로서의 역할을 수행할 때, 그것들은 L2 캐시(180)로의 데이터의 전송 및/또는 L2 캐시(180)로부터의 데이터의 수신으로 귀착하는 액세스 요청들을 시작할 수 있다.
전술한 바와 같이, 도 6에 도시된 실시예에서, L2 캐시(180)는 제1 메모리 슈퍼셀(181) 및 제2 메모리 슈퍼셀(182)을 포함한다. 도 6에 도시된 메모리 슈퍼셀들(181 및 182) 각각은 도 2에 도시된 메모리 슈퍼셀(18)의 실시예와 유사하게 구성된다. 즉, 메모리 슈퍼셀들(181 및 182) 각각은 각각 2개의 메모리 뱅크들의 4개의 뱅크 그룹들을 포함하고, 각 뱅크 그룹은 그 자신의 메모리 포트(21) 및 그 자신의 I/F 유닛(185)을 포함한다.
도시된 실시예에서의 캐시 라인은 이 실시예에서 메모리 슈퍼셀들(181 및 182) 양쪽 모두에 걸쳐서 저장될 수 있다(예를 들면, 64 바이트 캐시 라인에 대하여, 주어진 캐시 라인의 32개 바이트들은 메모리 슈퍼셀(181)의 대응하는 메모리 뱅크 내에 저장될 수 있고, 32개의 나머지 바이트들은 메모리 슈퍼셀(182)의 대응하는 메모리 뱅크 내에 저장될 수 있다). 따라서, 프로세서 시스템(100)은 메모리 슈퍼셀(182) 내의 뱅크 그룹의 메모리 위치에의 기입과 동시에 메모리 슈퍼셀(181) 내의 뱅크 그룹의 메모리 위치에의 기입을 지원할 수 있다. 유사하게, 프로세서(100)는 또한 메모리 슈퍼셀(182)의 뱅크 그룹 내의 메모리 위치로부터의 판독과 동시에 메모리 슈퍼셀(181)의 뱅크 그룹 내의 메모리 위치로부터의 판독을 수행할 수 있다. 다양한 실시예들에서, 프로세서 시스템(100)은 상이한 캐시 라인들의 동시 발생의 판독들 및 기입들을 허용할 수 있다. 따라서, 프로세서(100)의 이 실시예는 2개의 기입 동작들(제2 캐시 라인에 대하여 메모리 슈퍼셀(181)로의 하나의 기입 동작 및 메모리 슈퍼셀(182)로의 하나의 기입 동작)과 동시에 수행되는 2개의 판독 동작들(제1 캐시 라인에 대하여 메모리 슈퍼셀(181)로부터의 하나의 판독 동작 및 메모리 슈퍼셀(182)로부터의 하나의 판독 동작)을 지원할 수 있다.
도 7은 프로세서 시스템의 다른 실시예를 나타내는 블록도이다. 이 특정한 실시예에서, L2 캐시(180)의 메모리 슈퍼셀들(181 및 182)은 각각 위에 설명된 도 3의 구성에 따라서 구현된다. 각 뱅크 그룹은 대응하는 포트(21) 및 대응하는 I/F 유닛(185)을 포함한다. 위에 설명된 실시예와 같이, 캐시 라인들의 전송들은 양쪽 메모리 슈퍼셀들(181 및 182)로부터 동시에 판독하는 것, 또는 메모리 슈퍼셀들(181 및 182)에 기입하는 것을 포함할 수 있다.
본 발명은 특정한 실시예들에 관련하여 설명되었지만, 그 실시예들은 설명적인 것이고 본 발명 범위는 그렇게 제한되지 않는다는 것을 이해할 것이다. 설명된 실시예들에 대한 임의의 변형들, 수정들, 추가들, 및 개선들이 가능하다. 이러한 변형들, 수정들, 추가들, 및 개선들은 다음의 청구항들 내에서 상술된 발명들의 범위 내에 있을 것이다.

Claims (19)

  1. 집적 회로로서,
    복수의 메모리 리퀘스터들(memory requestors);
    그 각각이 각각의 범위의 개별적으로 어드레싱 가능한 저장 위치들을 형성하는 복수의 메모리 뱅크들을 포함하는 메모리 슈퍼셀(memory supercell) ? 상기 메모리 슈퍼셀은 복수의 뱅크 그룹들로 조직되고, 상기 복수의 뱅크 그룹들 각각은 상기 복수의 메모리 뱅크들의 서브세트 및 대응하는 전용의 액세스 포트를 포함함 ?; 및
    상기 복수의 메모리 리퀘스터들과 상기 메모리 슈퍼셀 사이에 연결된 스위치 ? 상기 스위치는, 상기 복수의 메모리 리퀘스터들 중 주어진 하나의 메모리 리퀘스터에 의한 메모리 요청에 응답하여, 상기 주어진 메모리 리퀘스터와 상기 메모리 요청에 의해 어드레싱된 상기 뱅크 그룹들 중 특정한 뱅크 그룹의 상기 전용의 액세스 포트 사이에 데이터 경로를 연결하도록 구성됨 ? 를 포함하고,
    제1 뱅크 그룹의 저장 위치에 데이터를 기입하기 위한 특정한 리퀘스터에 의해 시작된 기입 요청 동안에, 상기 특정한 리퀘스터로부터의 데이터는, 제2 뱅크 그룹에 연관된 제2 액세스 포트에 연결된 세그먼트들에 데이터를 드라이브하지 않고, 대응하는 제1 액세스 포트로의 경로에 드라이브되고,
    상기 복수의 메모리 뱅크들 중 제1 서브세트는 상기 제2 액세스 포트에보다 상기 제1 액세스 포트에 더 가까이 물리적으로 근접하고, 상기 복수의 메모리 뱅크들 중 제2 서브세트는 상기 제1 액세스 포트에보다 상기 제2 액세스 포트에 더 가까운, 집적 회로.
  2. 제1항에 있어서, 상기 복수의 메모리 뱅크들의 각 메모리 뱅크는 어드레스 디코더를 포함하는 집적 회로.
  3. 제1항 또는 제2항에 있어서, 상기 스위치는 복수의 세그먼트들 및 복수의 선택 유닛들을 포함하고, 상기 복수의 선택 회로들 각각은 특정한 리퀘스터와 제1 또는 제2 액세스 포트의 사이에 경로를 형성하기 위해 상기 복수의 세그먼트들 중 특정한 세그먼트들을 상기 복수의 세그먼트들 중 다른 세그먼트에 전기적으로 연결하도록 구성되고, 상기 복수의 세그먼트들의 제1 서브세트는 상기 메모리 슈퍼셀에 데이터를 전달하도록 구성되고, 상기 복수의 세그먼트들의 제2 서브세트는 상기 메모리 슈퍼셀로부터 데이터를 전달하도록 구성되는 집적 회로.
  4. 삭제
  5. 제1항 또는 제2항에 있어서, 제1 뱅크 그룹의 저장 위치로부터 데이터를 판독하기 위한 특정한 리퀘스터에 의해 시작된 판독 요청 동안에, 상기 복수의 리퀘스터들 중 다른 리퀘스터들에 연결된 세그먼트들에서 데이터를 드라이브하지 않고 상기 제1 액세스 포트로부터 상기 특정한 리퀘스터로의 경로에서 데이터가 드라이브되는 집적 회로.
  6. 제1항 또는 제2항에 있어서, 상기 메모리 슈퍼셀은 상기 복수의 메모리 뱅크들의 제1 서브세트의 저장 위치들에 어드레싱된 요청들에 대응하는 데이터는 오로지 제1 액세스 포트를 통해서만 제공되도록 및 상기 복수의 메모리 뱅크들의 제2 서브세트의 저장 위치들에 어드레싱된 요청들에 대응하는 데이터는 오로지 제2 액세스 포트를 통해서만 제공되도록 구성되고, 상기 스위치는, 상기 복수의 메모리 리퀘스터들 중 주어진 메모리 리퀘스터에 의한 메모리 요청에 응답하여, 만약 상기 메모리 요청이 상기 복수의 메모리 뱅크들의 상기 제1 서브세트의 저장 위치에 어드레싱된다면 상기 주어진 메모리 리퀘스터와 상기 제1 액세스 포트의 사이에 제1의 대응하는 데이터 경로를 연결하고 만약 상기 메모리 요청이 상기 복수의 메모리 뱅크들의 상기 제2 서브세트의 저장 위치에 어드레싱된다면 상기 주어진 메모리 리퀘스터와 상기 제2 액세스 포트의 사이에 제2의 데이터 경로를 연결하도록 구성되는 집적 회로.
  7. 제6항에 있어서, 상기 복수의 메모리 뱅크들은 상기 메모리 슈퍼셀 내에 2차원 어레이로 조직되고, 상기 2차원 어레이는 제1 방향으로 배열된 적어도 2개의 메모리 뱅크들 및 제2 방향으로 배열된 적어도 2개의 메모리 뱅크들을 포함하는 집적 회로.
  8. 제7항에 있어서, 상기 복수의 메모리 뱅크들의 상기 제1 서브세트는 상기 2차원 어레이의 제1 행 내의 인접한 메모리 뱅크들의 제1 쌍에 의해 형성되고, 상기 복수의 메모리 뱅크들의 상기 제2 서브세트는 상기 2차원 어레이의 제2 행 내의 인접한 메모리 뱅크들의 제2 쌍에 의해 형성되는 집적 회로.
  9. 제8항에 있어서, 상기 메모리 슈퍼셀은 인접한 메모리 뱅크들의 복수의 추가적인 쌍들을 포함하고, 상기 메모리 슈퍼셀은 인접한 메모리 뱅크들의 각 추가적인 쌍의 저장 위치들에 어드레싱된 요청들에 대응하는 데이터는 오로지 추가적인 대응하는 액세스 포트를 통해서만 제공되도록 구성되는 집적 회로.
  10. 삭제
  11. 제1항 또는 제2항에 있어서, 상기 스위치는 복수의 세그먼트들 및 각각이 상기 복수의 세그먼트들 중 특정한 세그먼트들을 상기 복수의 세그먼트들 중 다른 세그먼트에 연결하도록 구성된 복수의 선택 회로들을 포함하고, 상기 메모리 슈퍼셀은 상기 메모리 슈퍼셀 내에 2차원 어레이로 조직된 복수의 메모리 뱅크들을 포함하고, 상기 복수의 메모리 뱅크들은 각각이 상기 복수의 메모리 뱅크들의 대응하는 서브세트를 포함하는 복수의 뱅크 그룹들로 분할되고, 상기 뱅크 그룹들 각각은 상기 메모리 슈퍼셀 내의 상기 복수의 뱅크 그룹들 중 다른 뱅크 그룹들과 독립적으로 상기 스위치에 연결되고, 상기 집적 회로는 상기 스위치 및 상기 하나 이상의 리퀘스터들 각각에 연결된 제어기를 더 포함하고, 상기 리퀘스터들 중 하나의 리퀘스터로부터의 메모리 슈퍼셀 액세스 요청에 응답하여, 상기 제어기는 상기 스위치로 하여금 상기 리퀘스터들 중 상기 하나의 리퀘스터와 상기 요청과 관련된 저장 위치에 대응하는 뱅크 그룹 사이의 경로에 대응하는 세그먼트들을 선택하도록 상기 선택 회로들을 구성하게 하도록 구성되는 집적 회로.
  12. 제11항에 있어서, 상기 리퀘스터들 각각은 데이터 캐시 및 명령 캐시를 포함하는 프로세서 코어이고, 각 프로세서 코어의 상기 데이터 캐시 및 상기 명령 캐시는 상기 스위치에 연결되는 집적 회로.
  13. 제12항에 있어서, 상기 메모리 슈퍼셀은 레벨 2(L2) 캐시의 적어도 일부를 형성하는 집적 회로.
  14. 제11항에 있어서, 상기 복수의 세그먼트들의 제1 서브세트는 상기 메모리 슈퍼셀에 데이터를 전달하도록 구성되고, 상기 복수의 세그먼트들의 다른 세그먼트는 상기 메모리 슈퍼셀로부터 데이터를 전달하도록 구성되는 집적 회로.
  15. 복수의 메모리 리퀘스터들(memory requestors);
    그 각각이 각각의 범위의 개별적으로 어드레싱 가능한 저장 위치들을 형성하는 복수의 메모리 뱅크들을 포함하는 메모리 슈퍼셀(memory supercell) ? 상기 메모리 슈퍼셀은 복수의 뱅크 그룹들로 조직되고, 상기 복수의 뱅크 그룹들 각각은 상기 복수의 메모리 뱅크들의 서브세트 및 대응하는 전용의 액세스 포트를 포함함 ?; 및
    상기 복수의 메모리 리퀘스터들과 상기 메모리 슈퍼셀 사이에 연결된 스위치를 포함하는 집적 회로에서,
    상기 복수의 메모리 리퀘스터들 중 주어진 하나의 메모리 리퀘스터에 의한 메모리 요청에 응답하여, 상기 스위치를 이용하여 상기 주어진 메모리 리퀘스터와 상기 메모리 요청에 의해 어드레싱된 상기 뱅크 그룹들 중 특정한 뱅크 그룹의 상기 전용의 액세스 포트 사이에 데이터 경로를 연결하는 단계
    를 포함하는 방법이며,
    제1 뱅크 그룹의 저장 위치에 데이터를 기입하기 위한 특정한 리퀘스터에 의해 시작된 기입 요청 동안에, 상기 특정한 리퀘스터로부터의 데이터는, 제2 뱅크 그룹에 연관된 제2 액세스 포트에 연결된 세그먼트들에 데이터를 드라이브하지 않고, 대응하는 제1 액세스 포트로의 경로에 드라이브되고,
    상기 복수의 메모리 뱅크들 중 제1 서브세트는 상기 제2 액세스 포트에보다 상기 제1 액세스 포트에 더 가까이 물리적으로 근접하고, 상기 복수의 메모리 뱅크들 중 제2 서브세트는 상기 제1 액세스 포트에보다 상기 제2 액세스 포트에 더 가까운, 방법.
  16. 제15항에 있어서, 상기 스위치는 복수의 세그먼트들 및 복수의 선택 유닛들을 포함하고, 데이터 경로를 연결하는 상기 단계는 특정한 리퀘스터와 제1 또는 제2 액세스 포트의 사이에 경로를 형성하기 위해 상기 복수의 세그먼트들 중 특정한 세그먼트들을 상기 복수의 세그먼트들 중 다른 세그먼트에 전기적으로 연결하는 단계를 포함하고, 상기 복수의 세그먼트들의 제1 서브세트는 상기 메모리 슈퍼셀에 데이터를 전달하도록 구성되고, 상기 복수의 세그먼트들의 제2 서브세트는 상기 메모리 슈퍼셀로부터 데이터를 전달하도록 구성되는 방법.
  17. 삭제
  18. 제15항 또는 제16항에 있어서, 제1 뱅크 그룹의 저장 위치로부터 데이터를 판독하기 위한 특정한 리퀘스터에 의해 시작된 판독 요청 동안에, 상기 복수의 리퀘스터들 중 다른 리퀘스터들에 연결된 세그먼트들에서 데이터를 드라이브하지 않고 상기 제1 액세스 포트로부터 상기 특정한 리퀘스터로의 경로에서 데이터를 드라이브하는 단계를 더 포함하는 방법.
  19. 제15항 또는 제16항에 있어서,
    상기 복수의 메모리 뱅크들의 제1 서브세트의 저장 위치들에 어드레싱된 요청들에 대응하는 데이터를 오로지 제1 액세스 포트를 통해서만 제공하는 단계; 및
    상기 복수의 메모리 뱅크들의 제2 서브세트의 저장 위치들에 어드레싱된 요청들에 대응하는 데이터를 오로지 제2 액세스 포트를 통해서만 제공하는 단계
    를 더 포함하는 방법.
KR1020107024931A 2009-02-13 2010-02-12 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로 KR101183739B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/371,363 2009-02-13
US12/371,363 US8036061B2 (en) 2009-02-13 2009-02-13 Integrated circuit with multiported memory supercell and data path switching circuitry
PCT/US2010/024021 WO2010093868A1 (en) 2009-02-13 2010-02-12 Integrated circuit with multiported memory supercell and data path switching circuitry

Publications (2)

Publication Number Publication Date
KR20100127317A KR20100127317A (ko) 2010-12-03
KR101183739B1 true KR101183739B1 (ko) 2012-09-17

Family

ID=42559800

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107024931A KR101183739B1 (ko) 2009-02-13 2010-02-12 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로

Country Status (9)

Country Link
US (1) US8036061B2 (ko)
EP (1) EP2396886A4 (ko)
JP (1) JP5162024B2 (ko)
KR (1) KR101183739B1 (ko)
CN (1) CN101971498B (ko)
BR (1) BRPI1008499B1 (ko)
HK (1) HK1152807A1 (ko)
RU (1) RU2481652C1 (ko)
WO (1) WO2010093868A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563556B2 (en) * 2010-11-04 2017-02-07 Rambus Inc. Techniques for storing data and tags in different memory arrays
US9514069B1 (en) * 2012-05-24 2016-12-06 Schwegman, Lundberg & Woessner, P.A. Enhanced computer processor and memory management architecture
TWI550403B (zh) * 2013-04-02 2016-09-21 晨星半導體股份有限公司 記憶體控制器及其記憶體位址產生方法
KR101533685B1 (ko) 2013-11-29 2015-07-03 숭실대학교산학협력단 다중 프로세서용 메모리 장치 및 이를 포함하는 메모리 시스템
US10949546B2 (en) * 2017-08-02 2021-03-16 Samsung Electronics Co., Ltd. Security devices, electronic devices and methods of operating electronic devices
US11921637B2 (en) * 2019-05-24 2024-03-05 Texas Instruments Incorporated Write streaming with cache write acknowledgment in a processor
KR20210122461A (ko) * 2020-04-01 2021-10-12 에스케이하이닉스 주식회사 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080123423A1 (en) * 2006-11-27 2008-05-29 Mosaid Technologies Incorporated Non-volatile memory serial core architecture

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06202949A (ja) * 1993-01-06 1994-07-22 Yokogawa Electric Corp マルチプロセッサ・キャッシュ制御装置
JP3560266B2 (ja) * 1995-08-31 2004-09-02 株式会社ルネサステクノロジ 半導体装置及び半導体データ装置
ATE376255T1 (de) * 1998-08-18 2007-11-15 Infineon Technologies Ag Halbleiterchip mit oberflächenabdeckung
US6108233A (en) * 1999-08-27 2000-08-22 Lucent Technologies Inc. Ultra low voltage static RAM memory cell
GB2373595B (en) * 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US6789155B2 (en) * 2001-08-29 2004-09-07 Micron Technology, Inc. System and method for controlling multi-bank embedded DRAM
US6769050B1 (en) * 2001-09-10 2004-07-27 Rambus Inc. Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules
US6621752B2 (en) * 2001-10-03 2003-09-16 Infineon Technologies Aktiengesellschaft Refreshing scheme for memory cells a memory array to increase performance of integrated circuits
DE10245037B4 (de) * 2002-09-26 2007-08-23 Infineon Technologies Ag Verfahren zum Entwurf von DRAM-Halbleiter-Speicherbauelementen
US7571287B2 (en) * 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
JP2004355271A (ja) * 2003-05-28 2004-12-16 Toshiba Corp データ転送システム
JP4336848B2 (ja) * 2004-11-10 2009-09-30 日本電気株式会社 マルチポートキャッシュメモリ及びマルチポートキャッシュメモリのアクセス制御方式
JP4989872B2 (ja) * 2005-10-13 2012-08-01 ルネサスエレクトロニクス株式会社 半導体記憶装置および演算処理装置
KR100655081B1 (ko) * 2005-12-22 2006-12-08 삼성전자주식회사 가변적 액세스 경로를 가지는 멀티 포트 반도체 메모리장치 및 그에 따른 방법
US7600081B2 (en) * 2006-01-18 2009-10-06 Marvell World Trade Ltd. Processor architecture having multi-ported memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080123423A1 (en) * 2006-11-27 2008-05-29 Mosaid Technologies Incorporated Non-volatile memory serial core architecture

Also Published As

Publication number Publication date
US8036061B2 (en) 2011-10-11
US20100208540A1 (en) 2010-08-19
RU2011137523A (ru) 2013-04-10
JP2011517219A (ja) 2011-05-26
CN101971498B (zh) 2014-05-07
BRPI1008499A2 (pt) 2016-03-08
BRPI1008499B1 (pt) 2020-10-06
HK1152807A1 (en) 2012-03-09
WO2010093868A1 (en) 2010-08-19
CN101971498A (zh) 2011-02-09
KR20100127317A (ko) 2010-12-03
JP5162024B2 (ja) 2013-03-13
EP2396886A4 (en) 2015-09-02
RU2481652C1 (ru) 2013-05-10
EP2396886A1 (en) 2011-12-21

Similar Documents

Publication Publication Date Title
JP5231642B2 (ja) メモリモジュール内の独立制御式仮想メモリ装置
US20230259283A1 (en) High capacity memory circuit with low effective latency
KR101183739B1 (ko) 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로
CN100580643C (zh) 包括多个存储器集线器模块的多处理器系统和方法
KR101477849B1 (ko) 메모리 모듈 및 메모리 모듈 제어 방법
EP1896961B1 (en) Automatic detection of micro-tile enabled memory
US7493467B2 (en) Address scrambling to simplify memory controller's address output multiplexer
US8209497B2 (en) Multi-port memory and system using the same
CN101401166A (zh) 具有多个地址、数据及命令总线的存储器装置及方法
US20090097348A1 (en) Integrated circuit including a memory module having a plurality of memory banks
JP2009026439A (ja) 半導体メモリ装置及びそれによる共有レジスタ運用方法
US7761668B2 (en) Processor architecture having multi-ported memory
US7596049B2 (en) Semiconductor memory device with a plurality of bank groups each having a plurality of banks sharing a global line group
JP2002109884A (ja) メモリ装置
US20090019237A1 (en) Multipath accessible semiconductor memory device having continuous address map and method of providing the same
US7139893B2 (en) Transparent SDRAM in an embedded environment
US20060248247A1 (en) Apparatus and method for controlling access to a memory
EP1523712B1 (en) A system, apparatus, and method for a flexible dram architecture
US20230282259A1 (en) Multi-deck non-volatile memory architecture with improved address line driver circuitry
US20230092848A1 (en) Multi-deck non-volatile memory architecture with reduced termination tile area
US20230393978A1 (en) Half latch level shifting circuit for non-volatile memory architectures
US20080098152A1 (en) Method and apparatus for configuring a memory device
JPH01248395A (ja) マルチプレクサ
JP2007066039A (ja) 共有メモリ装置

Legal Events

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

Payment date: 20150819

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 7