KR102178768B1 - 메모리를 구비한 집적 회로 디바이스 및 집적 회로 디바이스에서 메모리를 구현하는 방법 - Google Patents

메모리를 구비한 집적 회로 디바이스 및 집적 회로 디바이스에서 메모리를 구현하는 방법 Download PDF

Info

Publication number
KR102178768B1
KR102178768B1 KR1020157027772A KR20157027772A KR102178768B1 KR 102178768 B1 KR102178768 B1 KR 102178768B1 KR 1020157027772 A KR1020157027772 A KR 1020157027772A KR 20157027772 A KR20157027772 A KR 20157027772A KR 102178768 B1 KR102178768 B1 KR 102178768B1
Authority
KR
South Korea
Prior art keywords
memory
integrated circuit
programmable
block
data
Prior art date
Application number
KR1020157027772A
Other languages
English (en)
Other versions
KR20150126400A (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 KR20150126400A publication Critical patent/KR20150126400A/ko
Application granted granted Critical
Publication of KR102178768B1 publication Critical patent/KR102178768B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/063Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
  • Static Random-Access Memory (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

메모리를 구비한 집적 회로 디바이스가 개시된다. 집적 회로 디바이스는 프로그래머블 리소스(602); 프로그래머블 리소스에 연결되고, 프로그래머블 리소스와의 신호의 통신을 가능케 하는 프로그래머블 상호 접속 소자(1704); 복수의 메모리 블록(606); 및 복수의 메모리 블록에 연결되고, 복수의 메모리 블록에 대한 액세스를 가능케 하는 전용 상호 접속 소자(604)를 포함한다. 또한, 집적 회로 디바이스에서 메모리를 구현하는 방법도 개시된다.

Description

메모리를 구비한 집적 회로 디바이스 및 집적 회로 디바이스에서 메모리를 구현하는 방법{INTEGRATED CIRCUIT DEVICES HAVING MEMORY AND METHODS OF IMPLEMENTING MEMORY IN AN INTEGRATED CIRCUIT DEVICE}
본 발명은 일반적으로 집적 회로 디바이스에 관한 것이고, 보다 상세하게는 메모리를 구비한 집적 회로 디바이스와, 집적 회로 디바이스에서 메모리를 구현하기 위한 방법에 관한 것이다.
메모리의 사용은 거의 모든 전자 디바이스에서의 중요한 양상이다. 상이한 타입들의 메모리가 존재한다. 예를 들어, 휘발성 메모리는 전원이 메모리에 인가될 때에만 메모리에 저장된 값들이 유지되는 타입의 메모리이다. 전원이 제거되면, 메모리에 저장된 데이터는 일부 시간 기간에 걸쳐 소실될 것이다. 반대로, 비휘발성 메모리는 전원이 제거되더라도 데이터가 어떠한 영향도 받지 않는 타입의 메모리이다.
다른 타입들의 메모리 소자들은 다른 특성들을 가질 수 있다. 예를 들어, 메모리 소자는 상이한 액세스 시간, 전력 소비, 방사선의 영향에 대한 면역력 등을 가질 수 있다. 이에 따라, 메모리들은 원하는 메모리의 동작 시간뿐만 아니라, 메모리의 동작 품질에도 기초하여 선택될 수 있다.
메모리의 기능 또는 동작 품질에 따라, 메모리는 집적 회로 디바이스 상에 포함될 수 있거나, 또는 집적 회로와 분리되어 구현되고, 집적 회로에 의해 액세스될 수 있다. 집적 회로 디바이스와 분리된 메모리를 제공하는 것은 메모리를 구현하는 전체 회로의 동작에 영향을 미칠 수 있다. 이에 따라, 메모리의 타입과 메모리의 위치 둘 다를 선택할 때, 집적 회로 디바이스와 관련된 메모리를 구현하는 경우, 다양한 고려 사항이 존재한다.
메모리를 구비한 집적 회로 디바이스에 대해 기술한다. 집적 회로 디바이스는 프로그래머블 리소스; 프로그래머블 리소스에 연결되고, 프로그래머블 리소스와 신호의 통신을 가능케 하는 프로그래머블 상호 접속 소자; 복수의 메모리 블록; 및 복수의 메모리 블록에 연결되고, 복수의 메모리 블록에 대한 액세스를 가능케 하는 전용 상호 접속 소자를 포함한다.
본 발명의 대안적인 실시예에 따른 메모리를 구비한 집적 회로는 복수의 채널을 갖는 동적 랜덤 액세스 메모리(DRAM: dynamic random access memory); 복수의 메모리 블록; 및 DRAM 블록과 복수의 메모리 블록 사이에 연결되고, DRAM 블록의 복수의 채널 중 임의의 채널로부터 복수의 메모리 블록 중 선택된 메모리 블록으로 데이터를 라우팅시킬 수 있는 전용 상호 접속 소자를 포함한다.
또한, 집적 회로 디바이스에서 메모리를 구현하기 위한 방법에 대해 기술한다. 이 방법은, 프로그래머블 상호 접속 소자에 연결되는 프로그래머블 리소스를 구현하는 단계로서, 프로그래머블 상호 접속 소자는 프로그래머블 리소스와의 신호의 통신을 가능케 하는 것인, 프로그래머블 리소스를 구현하는 단계; 복수의 메모리 블록을 제공하는 단계; 및 복수의 메모리 블록에, 복수의 메모리 블록에 액세스를 가능케 하는 전용 상호 접속 소자를 연결하는 단계를 포함한다.
도 1은 외부 메모리에 연결된 집적 회로에 대한 블록도이다.
도 2는 정적 랜덤 액세스 메모리(SRAM: static random access memory)에 대한 블록도이다.
도 3은 도 2의 SRAM 블록의 메모리 셀에 대한 회로도이다.
도 4는 DRAM 블록에 대한 블록도이다.
도 5는 도 4의 DRAM 블록의 메모리 셀에 대한 회로도이다.
도 6은 복수의 SRAM 블록을 구비한 집적 회로 디바이스 중 일부에 대한 블록도이다.
도 7은, 복수의 SRAM 블록에 연결되고, 별도의 판독 및 기록 컨트롤을 갖는 집적 회로 디바이스 중 일부에 대한 블록도이다.
도 8은 데이터를 갖는 복수의 SRAM 블록과, 단일 크로스바 스위치에 연결된 판독 및 기록 컨트롤을 갖는 구비한 집적 회로 디바이스 중 일부에 대한 블록도이다.
도 9는 복수의 SRAM 블록과 DRAM 블록을 구비한 집적 회로 디바이스에 대한 블록도이다,
도 10은 DRAM의 큐에서 데이터의 저장을 가능케 하는 회로를 나타내는 블록도이다.
도 11은 패킷 버퍼링 서브시스템을 가능케 하는 보다 상세한 회로를 나타내는 블록도이다.
도 12는 헤드부 및 테일부에 대해 상이한 크기의 메모리 어레이를 사용하는 SRAM 블록의 구현을 나타내는 블록도이다.
도 13은 헤드 및 테일 메모리 할당을 갖는 SRAM 블록의 구현을 도시하는 블록도이다.
도 14는 헤드 및 테일 메모리 할당과 바이패스 채널을 갖는 SRAM 블록의 구현을 도시하는 블록도이다.
도 15는 크로스바 스위치에 대한 블록도이다.
도 16은 프로그래머블 리소스를 구비한 디바이스를 프로그래밍하기 위한 시스템의 블록도이다.
도 17은 도 1 내지 도 15의 회로들을 구현할 수 있는 프로그래머블 리소스를 갖는 디바이스의 블록도이다.
도 18은 도 17의 디바이스의 구성 가능한 논리 소자에 대한 블록도이다.
도 19는 다중칩 집적 회로 디바이스에 대한 블록도이다.
도 20은 집적 회로 디바이스에서 메모리를 구현하는 방법을 나타내는 흐름도이다.
먼저, 도 1을 참조하면, 외부 메모리에 연결된 집적 회로의 블록도가 도시된다. 특히, 집적 회로 디바이스(102)는 통신 링크(106)를 통해 외부 메모리(104)에 연결된다. 집적 회로 디바이스는 ASIC(application specific integrated circuit) 또는 아래에서 보다 상세히 설명하는 프로그래머블 리소스를 구비한 집적 회로 디바이스와 같은 임의의 타입의 집적 회로 디바이스일 수 있다. 집적 회로 디바이스(102)는 구성 회로(110)에 연결된 제어 회로(108)를 포함한다. 구성 회로(110)는 제어 회로(108)를 통해 또는 입출력(I/O) 포트(112)를 통해 외부 메모리(104)로부터 구성 데이터를 수신할 수 있다. 구성 회로(110)는 구성 메모리(116)에 구성 데이터를 제공함으로써 집적 회로 디바이스의 프로그래머블 리소스(114)를 구성하는데 사용된다. 대안적으로, 구성 데이터는 제어 회로(108)에 의해 직접 구성 메모리에 제공될 수도 있다. 또한, 제어 회로(108)와 프로그래머블 리소스(114)는 내부 메모리(118 및 120)에 연결될 수 있다. 게다가, 집적 회로 디바이스는 메모리 소자에 대한 액세스를 가능케 하기 위해, 프로그래머블 리소스(114)에 관련된 상호 접속 소자와 분리된 전용 상호 접속 소자(122 및 124)를 선택적으로 포함할 수 있다.
아래에서 보다 상세히 설명하는 바와 같이, 내부 메모리(118 및 120)는 상이한 타입의 메모리일 수 있고, 상이한 크기의 어레이일 수 있다. 예를 들어, 메모리 계층구조에서 프로그래머블 리소스에 관련된 룩업 테이블(LUT: lookup table) 랜덤 액세스 메모리(RAM) 및 블록 RAM[예를 들어, 36 킬로비트(Kb) 블록]을 가질 수 있는 종래의 디바이스에 대해, 메모리 계층구조에서 다음 레벨들은 외부 SRAM과 DRAM을 포함할 수 있다. 이하에서 언급되는 다양한 회로 구현은 작은 BRAM과, 외부 SRAM 또는 DRAM 사이의 메모리 계층구조에서 추가(extra) 레벨을 포함할 수 있다. 네트워크화된 SRAM으로서 구성될 수 있는 이러한 초과 레벨의 SRAM은 BRAM에 비해 깊은 온-칩(on-chip) SRAM일 수 있지만, 아래에서 보다 상세히 설명하는 바와 같이, FPGA 상에 맞도록 충분히 작을 수 있다. 이들 네트워크화된 SRAM은 전체 시스템 성능을 상승시키도록 외부 메모리를 지원하고, 사용자가 SRAM 용량과 SRAM 대역폭을 더 연관시키게 할 수 있다.
이제 도 2를 참조하면, SRAM 블록(200)의 블록도가 도시된다. 도 2의 SRAM 블록(200)은 내부 메모리(118)의 일부일 수 있는 반면, 내부 메모리(120)는 예를 들어, 아래에서 도 4 및 도 5를 참조로 상세히 설명되는 바와 같이, DRAM 블록일 수 있다. SRAM 블록(200)은 매트릭스의 형태로 배열될 수 있는 복수의 개별적인 메모리 셀(202)을 포함한다. DRAM의 출력으로서 출력 데이터를 생성하기 위해, 메모리 셀들의 열들과 열 디코더(204)는 데이터 라인에 연결되고, 메모리 셀의 행은 워드 라인에 연결된다. 이에 따라, 셀에 데이터를 기록하기 위해, 셀에 연관된 워드 라인은 하이로 풀업(pulled high)되고, 원하는 데이터는 그 셀에 연관된 데이터 라인에 연결된다. 셀로부터 데이터를 판독하기 위해, 셀에 연관된 워드 라인은 워드 라인은 하이로 풀업(pulled high)되고, 열 디코더는 셀이 위치하는 열과 연관된 출력 값들을 생성한다.
이제 도 3을 참조하면, 도 2의 SRAM 메모리 블록의 메모리 셀의 회로도가 도시된다. 메모리 셀은 p-채널 트랜지스터(302)를 갖는 인버터를 포함하는데, p-채널 트랜지스터(302)는 기준 전원 전압(Vdd)에 연결된 소스와, 제 1 노드(Q)에서 소스가 그라운드 전위(Vss)에 연결되는 n-채널 트랜지스터(304)의 드레인에 연결된 드레인을 갖는다. 메모리 셀은 p-채널 트랜지스터(306)를 갖는 제 2 인버터를 포함하는데, p-채널 트랜지스터(306)는 기준 전압에 연결된 소스와, 제 2 노드(Q_b)에서 소스가 그라운드에 연결된 n-채널 트랜지스터(308)의 드레인에 연결되는 드레인을 갖는다. 제 1 노드(Q)는 n-채널 트랜지스터(310)에 의해 제어되는데, n-채널 트랜지스터(310)는 제 1 노드에서 비트 라인(BL) 상에서의 입력 데이터의 수신을 제어하는 게이트에서 반전된 워드 라인(WL0_bar) 신호를 수신하도록 연결된다. 제 2 노드(Q_b)는 다른 n-채널 트랜지스터(312)에 의해 제어되는데, 다른 n-채널 트랜지스터(312)는 제 2 노드(Q_b)에서 반전된 입력 데이터의 수신을 제어하는 게이트에서 반전된 워드 라인 신호를 수신하도록 연결된다. 트랜지스터(314 및 316)는 반전 워드 라인(WL0_bar 및 WL1_bar)의 분리를 가능케 하도록 구성된다. 트랜지스터(314 및 316)는 도시된 바와 같이, 노드(Q 및 Q_b)에 연결된 소스를 구비하도록 구성된다. 반전된 워드 라인(WL0_bar)이 주어진 셀에 대해 선택될 때, 비트 라인과 반전된 비트 라인 상의 값들은 노드(Q 및 Q_b)에 연결되고, 그 셀에 대한 데이터 값이 저장된다. 그 후, 데이터는 WL1_bar 신호에 의해 액세스될 수 있고, 듀얼 포트 메모리 소자를 가능케 한다. 더 구체적으로, SRAM 셀들은 단 하나의 판독 및 기록 포트로 구현될 수 있다. 2개의 포트 중 하나가 판독 또는 기록에 이용될 수 있는 2개의 판독/기록(w/r) 포트들을 제공하는 일부 SRAM 셀들과는 다르게, 메모리 밀도는 단 하나의 판독 포트 및 하나의 기록 포트만을 포함함으로써 증가될 수 있다. 판독을 위한 하나의 포트와 기록을 위한 하나의 포트를 제공함으로써, 도 3의 8T SRAM 셀은 절반의 클록 사이클(즉, 클록의 상승 및 하강 엣지)에서 메모리의 액세스를 가능케 함으로써 2개의 판독/기록 포트들을 갖는 셀만큼 빠르게 2번 동작할 수 있다. 도 3의 메모리 셀은 예시로서 도시된 것이고, 다른 메모리 셀들도 사용될 수 있다.
도 4를 참조하면, DRAM 블록의 블록도가 도시된다. 도 4의 DRAM 블록은 아래에서 보다 상세히 설명되는 바와 같이, 외부 메모리(104) 또는 내부 메모리(120)의 부분일 수 있다. DRAM 블록(400)은 각각이 어드레스 디코더(404)에 연결되는 복수의 셀(402)을 포함한다. 어드레스 디코더(404)는 어드레스 라인(406)을 입력으로 수용하고, 도시된 바와 같이, 복수의 메모리 셀(402)에 연결되는 어드레스를 생성한다. 어드레스 디코더(404)는 칩 인에이블(enable) 신호를 수신하고, 메모리 셀(402) 각각은 기준 전압(Vref)을 수신한다. 기록 블록(410)은 메모리 셀(402)로부터의 데이터의 판독 또는 메모리 셀(402)로의 데이터의 기록을 가능케 한다. 구체적으로, 데이터 라인(412)을 통해 제공된 데이터는, 기록 블록(410)에 제공된 기록 인에이블 신호가 게이트(414)를 통해 메모리 셀(402)에 기록을 가능케 하는 경우, 어드레스 디코더에 제공된 어드레스에 기록된다. 기록 인에이블 신호가 메모리 셀(402)에 기록되지 못하는 경우, 인버터(416)에 연결된 데이터는 데이터 라인(418) 상에 생성된다. 아래에서 더 상세히 설명되는 바와 같이, DRAM 블록의 셀에 저장된 데이터는 데이터를 유지하기 위해 주기적으로 리프레쉬(refresh)되어야 한다.
도 5를 참조하면, 도 4의 DRAM 블록의 메모리 셀에 대한 회로도가 도시된다. 더 구체적으로, 제 1 트랜지스터(502)는 기준 비트 라인에 연결된 드레인(504)과, 커패시터(508)에 연결된 소스(506)를 구비한다. 트랜지스터(502)는 게이트에서 기준 워드 라인에 의해 제어된다. 제 2 트랜지스터(514)는 비트 라인에 연결된 드레인(516)과, 커패시터(520)에 연결된 소스(518)를 구비한다. 트랜지스터(514)는 게이트에서 워드 라인에 의해 제어된다. 데이터는 워드 라인을 하이(high) 상태로 풀업시킴으로써, 그리고 커패시터(520)를 충전하기 위해 저장될 원하는 값을 비트 라인에 인가함으로써 기록된다. 메모리로부터 데이터를 판독하기 위해, 센스 증폭기(526)는 출력 값을 생성하도록 기준 비트 라인에서의 커패시터(512) 상에 저장된 전압과 비트 라인에서의 커패시터(524) 상에 저장된 전압 사이의 차를 검출한다. 비트 라인의 값이 결정되면, 이 값은 커패시터(524) 상에 적합한 전하를 저장함으로써 비트 라인에 재기록된다. 즉, 커패시터(524)는 셀에 의해 저장된 데이터의 올바른 값을 유지하기 위해 주기적으로 재충전된다. 개별 DRAM 메모리 셀은 도 3의 SRAM 셀에 비해 작기 때문에 이롭지만, DRAM 메모리 셀은 저장된 데이터를 나타내는 커패시터 상의 전하를 유지하도록 주기적으로 리프레쉬되어야 하고, SRAM 셀에 비해 더 긴 액세스 시간을 가질 수 있다.
이제 도 6을 참조하면, 복수의 SRAM 블록을 갖는 집적 회로 디바이스의 일부에 대한 블록도가 도시된다. 프로그래머블 리소스의 제 1 부분(602)은 데이터 라인(603)에 의해, 복수의 메모리 블록(606)에 인터페이스를 제공하는 라우팅 회로(604)에 연결된다. 복수의 메모리 블록은 예시로서 32개의 SRAM 블록으로 도시된다. 라우팅 회로(604)는 바람직하게는 복수의 메모리 블록(606)에 대한 전용 상호 접속 소자이다. 라우팅 회로(604)는 데이터를 라우팅 회로의 U개의 입력 포트[여기서, 대응하는 데이터 라인(D1 내지 D8)에 연결된 8개의 데이터 입력 포트]과, V개의 출력 포트(여기서, V는 예를 들어, 32일 수 있다)로 라우팅시킬 수 있고, 여기서, 입력 포트들과 출력 포트들 각각은 포트 당 W개의 비트들을 가질 수 있다. 즉, 데이터 라인에 대응하는 라우팅 회로(604)의 각각의 개별 입력 포트는 288 비트 데이터(256개의 비트 데이터와 32개의 오버헤드 비트를 가질 수 있는)를 수신할 수 있고, 각 출력 포트는 288 비트 데이터를 생성할 수 있다. 예를 들어, 출력 포트들 중 대표적인 하나는 대응하는 데이터 라인(605)에 의해, SRAM 0로 지정된 제 1 메모리 블록의 입력에 연결된다. 그러므로, 8개의 288 비트 입력 포트들 각각으로부터의 데이터(D1 내지 D8)는 라우팅 회로(604)의 32개의 288 비트 출력 포트들을 통해 32개의 메모리 블록 중 하나 이상의 메모리 블록으로 라우팅될 수 있다. 도 6의 회로 구성에 따라 복수의 메모리 블록에 제공된 데이터가 데이터 비트들과 제어 비트들을 포함할 수 있고, 여기서, 제어 비트들은 예를 들어, 어드레스 비트들을 포함할 수 있다는 점이 이해되어야 한다.
제 2 라우팅 회로(608)는 복수의 메모리 블록에 의해 생성된 데이터를 수신하기 위해 복수의 메모리 블록(606)의 출력에 연결된다. 대응하는 대표 데이터 라인(607)에서 SRAM 0의 출력은 라우팅 회로(608)의 입력에 연결된다. 라우팅 회로(608)의 출력 데이터 라인(609)은 라우팅 회로(608)의 대응하는 출력 포트들과 프로그래머블 리소스의 제 2 부분(610) 사이에 연결된다. 라우팅 회로(604 및 608)는 아래에서 도 15를 참조하여 더 상세히 설명되는 동기식 크로스바 스위치로서 구현될 수 있고 바람직하게는, 프로그래머블 리소스의 특정 부분(602 및 610)을 제외한 회로에 의해 이용될 수 있는 공유 라우팅 요소를 이용하는 것보다는, 전용 상호 접속 소자로서 구현될 수 있다. 또한, 출력 데이터 라인(609)은 복수의 메모리 소자의 출력에서 대응하는 8 비트 출력을 수신하기 위해 연결되는 다중-비트 라인(예를 들어, 8 비트 라인)일 수 있다. 이에 따라, 32개의 SRAM의 8개의 8-비트 출력(Q1 내지 Q8)은 라우팅 회로(608)의 8개의 출력 데이터 라인(609)에서 생성될 수 있다. 제어 라인(612)은 라우팅 회로(604)에 대한 다양한 입력을 복수의 메모리 블록(606)의 미리 결정된 제 1 메모리 블록으로 라우팅하는데 사용된다. 마찬가지로, 제어 라인(614)은 미리 결정된 제 2 메모리 블록의 출력을 라우팅 회로(608)의 8개의 출력 포트와, 프로그래머블 리소스의 부분(610)으로 라우팅하는데 사용된다. 회로에 대한 입력 및 출력으로서, 전용 라우팅 회로들 및 전용 상호 접속 소자를 제공함으로써 SRAM 액세스 속도가 상승할 수 있다. 즉, 디바이스에 대해 보다 뛰어난 유연성을 제공하면서, 프로그래머블 논리 디바이스에 대해 공유된 상호 접속 라우팅은 느려질 수 있다. 반대로, 크로스바 스위치와 같은 전용 라우팅 회로들은 집적 회로에 대한 시스템 클록에서 동작할 수 있다.
이제 도 7을 참조하면, 복수의 SRAM 블록에 연결되고, 별도의 판독 및 기록 컨트롤을 갖는 집적 회로 디바이스의 일부에 대한 블록도가 도시된다. 즉, 도 7에 도시된 구성은 별도의 라우팅 회로를 통해 데이터 비트들과 제어 비트들의 분리된 라우팅을 가능케 하며, 여기서, 제어 비트들은 예를 들어, 어드레스 비트들을 포함하는 별도의 판독 및 기록 제어 비트들을 포함한다. 더 구체적으로, 라우팅 회로(702)는 프로그래머블 리소스(602)로부터 제어 신호(WC1 내지 WC8)를 수신하기 위해 연결되고, 여기서, 라우팅 회로(702)의 출력 포트 중 대표 출력 포트는 제어 라인(704)에 의해, 복수의 메모리 소자(606) 중 여기서, SRAM 0으로 지정된 메모리 소자의 대응하는 제어 신호 입력에 연결된다. 다른 라우팅 회로(708)는 라우팅 회로(708)의 입력 포트에서 데이터 입력(D1 내지 D8)을 수신하도록 연결된다. 대응하는 출력 포트들에서 복수의 데이터 라인 중 대표 데이터 라인(710)으로 도시된 라우팅 회로(708)의 출력 포트들은 여기서, SRAM 0로 지정된 제 1 메모리 블록에 연결된다. 이에 따라, 라우팅 회로(702)는 임의의 데이터 및 제어 신호 쌍을, 복수의 메모리 소자(606) 중 하나 이상의 선택된 메모리 소자의 데이터 및 제어 입력으로 라우팅할 수 있다.
라우팅 회로들은 복수의 메모리 블록으로부터 데이터를 판독하기 위해 또한 제공된다. 라우팅 회로(714)는 프로그래머블 리소스의 부분(610)으로부터, 판독 제어 신호(RC1 내지 RC8)를 포함하는 제어 신호를 수신하도록 연결된다. 라우팅 회로(714)는 판독 제어 신호들을 선택된 메모리 블록으로 라우팅할 수 있고, 여기서, 라우팅 회로(714)의 출력 포트는 제어 라인[여기서, SRAM 31로 지정된 마지막 메모리 블록에 연결된 대표 제어 라인(716)]에 의해 메모리에 연결된다. 라우팅 회로(718)는 복수의 메모리(720)로부터 출력을 수신하기 위해 연결되고, 여기서 대표 데이터 라인(720)은 마지막 메모리 블록의 출력으로부터 라우팅 회로(718)의 입력으로 데이터를 제공한다. 메모리 소자(606)에 의해 데이터(Q1 내지 Q8)는 8개의 출력 라인 중 하나의 출력 라인에 의해, 라우팅 회로(718)로부터 프로그래머블 리소스(610)에 제공된다. 제어 신호들은 프로그래머블 리소스에 의해 라우팅 회로에 제공된다. 더 구체적으로, 기록 제어 신호들은 프로그래머블 리소스(602)에 의해, 제어 라인(720 및 722)을 통해, 각각 라우팅 회로(702 및 708)로 제공되는 반면, 판독 제어 신호들은 제어 라인(724 및 726)을 통해, 각각 라우팅 회로(714 및 718)에 제공된다. 대안적으로, 제어 신호들은 회로의 프로세서와 같은 회로의 다른 요소에 의해 제공될 수 있다.
이제 도 8을 참조하면, 데이터를 갖는 복수의 SRAM 블록과, 단일 크로스바 스위치와 연관된 판독 및 기록 컨트롤을 포함하는 집적 회로 디바이스의 일부에 대한 블록도가 도시된다. 이에 따라, 데이터(D1 내지 D8)와 기록 제어 신호(WC1 내지 WC8)는 라우팅 회로(802)에 제공된다. 예를 들어, 데이터(D1)와 기록 제어 신호(WC1)는 대표 신호 라인 쌍(803)에 의해 라우팅 회로(802)에 제공된다. 그 후, 라우팅 회로(802)의 대응하는 입력 포트들에서의 신호 라인 쌍 상의 신호들은 신호 라인 쌍(804)에 의해 선택된 메모리 소자(예를 들어, SRAM 0일 수도 있음)에 제공된다. 판독 제어 신호(RC1 내지 RC8)는 프로그래머블 리소스(610)에 의해 생성되고, 프로그래머블 리소스(610)와 복수의 메모리 소자(606) 사이의 제어 신호 라인에 의해 연결된다. 예시로서, 대표 제어 신호 라인(810)은 선택된 판독 제어 신호[프로그래머블 리소스(806)의 출력 포트와 라우팅 회로(806)의 입력 포트 사이의 판독 제어 라인(811)을 통해 제공된 판독 제어 신호(RC1)일 수 있음]를 SRAM 0의 판독 입력에 연결하고, SRAM 0의 데이터 출력에 연결된 출력 신호 라인(812)은 SRAM 0로부터의 데이터를 라우팅 회로(806)를 통해 프로그래머블 리소스에 연결되게 할 수 있다. 예를 들어, 출력 신호 라인(812) 상에 제공된 출력 데이터는 라우팅 회로(806)의 출력 포트와 프로그래머블 리소스(610)의 대응하는 입력 포트 사이의 신호 라인(814) 상에서 라우팅 회로(806)에 의해 라우팅되는 Q1일 수 있다. 제어 신호들은 각각 판독 데이터를 제어하기 위해, 제어 신호 라인(816 및 818)에 의해, 라우팅 회로(802 및 806)로 제공된다.
이제, 도 9를 참조하면, DRAM과 복수의 SRAM을 구비하는 집적 회로 디바이스에 대한 블록도가 도시된다. 도 9의 회로 구성에 따르면, DRAM(902)은 집적 회로(904)에 연결된다. DRAM(902)은 DRAM 채널 0 내지 DRAM 채널 7로 지정된 출력 단자(906 내지 920)를 포함한다. DRAM 인터페이스(922)는 집적 회로(904)에 제공되는 데이터가, 4.5 메가바이트의 메모리 어레이일 수 있는 네트워크화된 SRAM(NSRAM 0 내지 NSRAM 3)으로 도시된 복수의 메모리 블록(924 내지 930) 중 적어도 하나의 메모리 블록으로 라우팅되게 할 수 있다. 즉, 네트워크화된 SRAM(NSRAM0 내지 NSRAM3) 각각은 SRAM(606)과 같은 32개의 4Kx288 비트 SRAM을 포함할 수 있다. 복수의 메모리 블록(924 내지 930)이 SRAM로 도시되었으나, 복수의 메모리 블록(924 내지 930)은 일반적으로 DRAM(902)에 비해 빠른 액세스 시간을 갖는다는 점이 이해되어야 한다. 예를 들어, 메모리 블록(924 내지 930)은 IBM(International Business Machines Corporation)사(미국 뉴욕주 아몽크 소재)로부터 입수 가능한 eDRAM일 수 있다. 프로그래머블 리소스 인터페이스(932)는 복수의 메모리 블록(924 내지 930)과 프로그래머블 리소스(934) 사이에 제공되어, 데이터와 커맨드가 메모리 블록과 프로그래머블 리소스(934) 사이에서 전달되도록 할 수 있다. DRAM 인터페이스(922)와 프로그래머블 리소스 인터페이스(932)는 바람직하게는, 전용 인터페이스이고 또한, 도 15의 크로스바 스위치와 같은 크로스바 스위치를 이용하여 구현될 수 있다. 복수의 메모리 블록(924 내지 930) 및 대응하는 인터페이스(922 및 932)는 예를 들어, 도 6 내지 도 8의 회로에 따라 구현될 수 있다. DRAM(902)이 집적 회로(904)로부터 분리된 것으로 도시되었으나, DRAM은 도 19를 참조하여 더 상세히 설명되는 바와 같이, 동일한 집적 회로 다이 상에, 또는 동일한 집적 회로 패키지에서의 분리된 다이 상에 구현될 수 있다는 점이 이해되어야 한다.
도 9의 구성은 이 구성이 집적 회로에서 메모리를 구현하기에 더욱 효과적이기에 유리하다. 예를 들어, 100Mb의, 다이 상의 추가적인 캐싱 SRAM[SRAM(924 내지 930) 등] 없이, 집적 회로 디바이스(904)는 최대 300개의 논리 큐에 대한 대역폭 보증으로 400Gb/s의 패킷 버퍼링을 지원할 수 없다. 이들 SRAM 블록은 종래의 디바이스에 있어서 외부 SRAM에 대해 필요한 대역폭을 지원하기에 패키지 I/O 핀들이 불충분하기 때문에 다이 상에 존재해야 한다. 게다가, SRAM 폭은 DRAM 채널 폭(예를 들어, 사이클 당 256 비트)에 매칭되고, SRAM 깊이는 이러한 다수의 SRAM을 한층 더 큰 메모리로 조합함으로써, 메모리 포트들에 대한 메모리 용량의 유연한 할당을 허용하도록 크기 조정된다. 예를 들어, 1Mb의 빌딩 블록(building-block) SRAM을 통해, 2Mb가 하나의 캐시에 할당될 수 있고, 10Mb는 다른 캐시에 할당될 수 있다. 빌딩 블록 SRAM이 너무 얕으면 밀도(즉, 단위 면적 당 비트수)가 적어지는 반면, 빌딩 블록 SRAM의 깊이가 너무 깊으면 메모리 포트들에 메모리 용량을 할당하는 유연성이 제한된다. 특히, 도 9의 회로 구성의 특정 응용들은 도 10 내지 도 14에 제공될 것이다.
이제 도 10을 참조하면, DRAM의 큐(queue)에서 데이터의 저장을 가능케 하는 회로에 대한 블록도가 도시된다. 복수의 데이터 패킷으로부터의 데이터를 갖는 입력 데이터 스트림이 메모리 소자(1002)에 저장되고, 이러한 메모리 소자(1002)는 예를 들어, 복수의 논리 FIFO를 포함할 수 있다. 메모리 소자(1004)의 출력에 연결된 라우팅 회로(1006)는 도시된 바와 같이, 데이터 패킷들에 연관된 데이터를 대응하는 큐(1008 내지 1010)로 라우팅시키는 것을 가능케 한다. 제 2 라우팅 회로(1014)는 큐(1008 내지 1010)의 출력으로부터의 데이터를 메모리 소자(1016)로 라우팅시킨다. 이에 따라, 도 10의 회로는 데이터의 멀티플렉싱을 가능케 하기 위한 전용 라우팅 회로들을 이용하여, 예를 들어, DRAM일 수 있는 벌크 저장 소자[예를 들어, 메모리 소자(1002)]로부터 데이터를 판독하고, 이 벌크 저장 소자에 데이터를 기록하는 것을 가능케 하며, 여기서, 메모리 소자(1002)는 DRAM(902)일 수 있고, 메모리 소자(1004 및 1016)는 2개 이상의 SRAM(924 내지 930)일 수 있다.
예를 들어, 도 6 내지 도 9의 회로(도 10에 도시된 바와 같이 구현된)는 피크 대역폭(Ra)을 갖는 DRAM을 이용해 입력 라인 속도(R')에서 최대 Tc초로 패킷들의 Q 논리 흐름들을 유지시키기 위해 (입력 데이터 스트림과 출력 데이터 스트림 사이의)패킷 버퍼로서 사용될 수 있고, 여기서, 판독 속도(Rw)와 기록 속도(Rr)는 피크 벌크 저장 대역폭(Ra)과 벌크 저장 용량(TcR')보다 작게 조합된 (Rw+Rr)이다. 이에 따라, 버퍼 판독 속도(R')는 패킷 드롭 없이 유지될 수 있다. 도 10으로부터 명백해진 바와 같이, 큐들로 도시된 메모리 블록은 상이한 패킷들로부터의 데이터(예를 들어, 큐 1에서 크로스 해칭된 데이터, 큐 2에서 음영 처리된 데이터, 또는 큐 3에서 음영이 제거된 데이터)가 저장될 수 있도록 사용될 수 있으며, 여기서 라우팅 회로들은 입력 데이터 스트림으로부터 벌크 저장 소자로, 그리고 벌크 저장 소자로부터 출력 데이터 스트림으로 데이터의 라우팅을 가능케 한다.
이제 도 11을 참조하면, 패킷 버퍼링 서브시스템을 가능케 하는 더 상세한 회로에 대한 블록도가 도시된다. 더 구체적으로, 패킷 버퍼링 서브시스템(1102)은 입력 데이터(Rin)을 수신하는 입력 논리회로(1104)와, 출력 데이터(Rout)을 생성하는 출력 논리회로(Rout)에 연결된다. 패킷 버퍼링 서브시스템(1102)은 패킷 버퍼 컨트롤러(1108)에 연결된 패킷 버퍼(1110)를 포함한다. 패킷 버퍼(1110)는 예를 들어, DRAM일 수 있다. 패킷 버퍼 컨트롤러(1108)는 큐잉 조정기(queueing coordinator, 1116)에 의해 제어되는 테일 캐시 SRAM(1112) 및 헤드 캐시 SRAM(1114)을 포함한다. 테일-헤드 캐싱은 아래에서 도 12 및 도 13을 참조하여 더 상세히 설명되고, 큐잉 조정기(1116)는 이하에서 도 14를 참조하여 보다 상세히 설명되는 바와 같이, DRAM의 바이패스를 가능케 한다.
이제 도 12를 참조하면, 헤드부 및 테일부에 대해 상이한 크기의 메모리 어레이들을 이용하는 SRAM 블록의 구현에 대한 블록도가 도시된다. 보다 구체적으로, 대응하는 메모리 블록(924, 926 및 930)에 연결된 DRAM 채널(906 908 및 920)을 포함하는 다양한 DRAM 채널들이 도시된다. 메모리 블록(924, 926 및 930)은 분리된 테일부(1202) 및 헤드부(1204)로 구획되고, 여기서, 테일부는 일반적으로 헤드부에 비해 작다. 즉, 큐가 액세스될 예정인 시점이 예측하기 힘들고, 채워지는 큐에 대한 다음 판독도 그렇기 때문에, 헤드부의 캐시를 더 크게 하는 것이 필요하다. 메모리 블록(926)의 확대된 부분으로 도시하는 바와 같이, 음영으로 표시된 특정 메모리 소자(1206)는 테일 캐싱을 위한 메모리 소자들인 반면, 음영이 없는 다른 메모리 소자(1208)는 헤드 캐싱을 위한 메모리 소자들이다. 헤드 캐시는 종종 낮은 레이턴시를 가능케 하기 위해 테일 캐시에 비해 매우 클 수 있다.
이제 도 13을 참조하면, 헤드 및 테일 메모리 할당을 갖는 SRAM 블록의 구현에 대한 블록도가 도시된다. 도 13의 실시예에 따라, 어두운 음영으로 표시되는 특정 메모리 블록이 테일 메모리 블록으로 지정된 반면, 음영 처리되지 않은 다른 메모리 블록은 헤드 메모리 블록이다. 예를 들어, SRAM 0 및 SRAM 1은 채널 0에 대한 테일 캐싱 메모리 블록이고, SRAM13 및 SRAM 14는 채널 1에 대한 테일 메모리 블록인 반면, SRAM 15 내지 SRAM 24는 채널 1에 대한 헤드 메모리 블록이다.
이제 도 14를 참조하면, 헤드 및 테일 메모리 할당과 바이패스 채널들을 갖는 SRAM 블록의 구현에 대한 블록도가 도시된다. 더 구체적으로, 채널 1 및 채널 2 각각에 대한 다양한 기록 신호들은 채널 0에 대한 테일 기록 커맨드(Tail Write 0) 및 헤드 기록 커맨드(Head Write 0)와, 채널 1에 대한 테일 기록 커맨드(Tail Write 1) 및 헤드 기록 커맨드(Head Write 1)를 포함한다. 또한, 채널 0에 대한 테일 판독(Tail Read 0) 및 헤드 판독(Head Read 0)과, 채널 1에 대한 테일 판독(Tail Read 1) 및 헤드 판독(Head Read 1)도 도시된다. 바이패스 채널들은 채널 1 및 채널 2 각각에 대해 테일 메모리 소자들로부터 헤드 메모리 소자들로 제공된다. 이에 따라, 도 14는 예를 들어, 도 6 내지 도 13의 구성들의 요소를 이용하여 테일-헤드 캐싱에 대한 예시 구현을 제공한다.
이제 도 15를 참조하면, 크로스바 스위치에 대한 블록도가 도시된다. 더 구체적으로, 복수의 멀티플렉서(1502 내지 1510)의 각 멀티플렉서는 입력(Di0 내지 Di3) 각각을 수신하기 위해 연결되고, 멀티플렉서 각각에 대한 출력을 생성한다. 복수의 멀티플렉서에 제공된 선택 신호에 기초하여, 멀티플렉서(1502)는 출력(Do0)을 생성하고, 멀티플렉서(1504)는 출력(Do1)을 생성하고, 멀티플렉서(1506)는 출력(Do2)을 생성하고, 멀티플렉서(1508)는 출력(Do3)을 생성하며, 멀티플렉서(1510)는 출력(Do4)을 생성한다. 멀티플렉서(1510)의 확대 부분은, 선택 신호(S1 내지 S4)에 기초하여 공통 노드에서의 출력 신호(Do4)에 대한 신호(Di0 내지 Di3)를 각각 수신하기 위한 입력에 연결된 트랜지스터(1512 내지 1518)를 나타낸다. 도 15의 멀티플렉서 구성이 예시로서 도시되었지만, 트랜지스터들의 다른 구성들도 멀티플렉싱 기능을 달성하기 위해 구현될 수 있다는 점이 이해되어야 한다. 도 15로부터 명백해지는 바와 같이, 크로스바 스위치는 주어진 개수의 신호들을 더 적은 개수의 출력으로, 또는 주어진 개수의 신호들을 더 많은 개수의 출력으로 라우팅하기 위해 선택될 수 있다. 게다가, 크로스바 스위치의 선택 신호는, 구성 데이터로서 제공되어야 하고 구성 프로세스에 의해 변경되어야 하는 프로그래머블 논리 디바이스의 범용 프로그래머블 상호 접속을 위한 멀티플렉서 제어 신호들과는 다르게 동적으로 변경될 수 있다. 이에 따라, 도 15의 크로스바 스위치는 도 6 내지 도 14의 라우팅 회로들 중 임의의 회로, 또는 크로스바 스위치에서 구현될 수 있는 전술한 임의의 다른 회로에 사용될 수 있다.
이제 도 16을 참조하면, 프로그래머블 리소스를 구비한 디바이스를 프로그래밍하기 위한 본 발명의 일 실시예에 따른 시스템에 대한 블록도가 도시된다. 더 구체적으로, 컴퓨터(1602)는 메모리(1606)로부터 회로 설계(1604)를 수신하여, 비휘발성 메모리(1606)에 저장된 구성 비트스트림을 생성하기 위해 연결된다. 이하에서 더 상세히 설명되는 바와 같이, 회로 설계는 HDL(hardware description language)로 정의된 회로 설계와 같은 높은 레벨의 설계일 수 있다. 또한, 컴퓨터는, 비휘발성 메모리(1608)에 저장되고, 아래의 도 17에서 설명되는 집적 회로와 같은 프로그래머블 집적 회로(1610)에 제공되는 구성 비트스트림을 생성하는 소프트웨어를 구동시키도록 구성될 수 있다.
이제 도 17을 참조하면, 도 2 내지 도 16의 회로들을 포함하는 프로그래머블 리소스를 갖는 디바이스의 블록도가 도시된다. 프로그래머블 리소소들을 갖는 디바이스들이, 프로그래머블 리소스를 갖는 ASIC(application specific integrated circuit)와 같은 임의의 타입의 집적 회로 디바이스로 구현될 수 있고, 다른 디바이스들은 전용 프로그래머블 논리 디바이스(PLD)를 포함한다. PLD 중 하나의 타입은 CPLD(Complex Programmable Logic Device)이다. CPLD는 상호 접속 스위치 매트릭스에 의해 함께 접속되고, 그리고 입출력(I/O) 리소스에 접속되는 2개 이상의 "기능 블록"을 포함한다. CPLD의 각 기능 블록은 PLA(Programmable Logic Array) 또는 PAL(Programmable Array Logic) 디바이스에서 사용되는 구조와 유사한 2-레벨 AND/OR 구조를 포함한다. 다른 타입의 PLD는 FPGA(field programmable gate array)이다. 전형적인 FPGA에서, 구성 가능한 논리 블록(CLB)의 어레이는 프로그래머블 입출력 블록(IOB)에 연결된다. CLB와 IOB는 프로그래머블 라우팅 리소스의 계층구조에 의해 상호 접속된다. 이들 CLB, IOB 및 프로그래머블 라우팅 리소스는 통상 오프-칩 메모리로부터의 구성 비트스트림을 FPGA의 구성 메모리 셀에 로딩함으로써 맞춤화된다. 이들 타입의 프로그래머블 논리 디바이스 모두에 대해, 디바이스의 기능은 전술한 목적을 위해 디바이스에 의해 제공된 구성 비트스트림의 구성 데이터 비트에 의해 제어된다. 구성 데이터 비트들은 휘발성 메모리(예를 들어, FGPA 및 일부 CPLD와 같은 정적 메모리 셀)에, 비휘발성 메모리(예를 들어, 일부 CPLD와 같은 플래쉬 메모리)에, 또는 임의의 다른 타입의 메모리 셀에 저장될 수 있다.
도 17의 디바이스는 많은 수의 상이한 프로그래머블 타일들을 갖는 FPGA 아키텍처(1400)를 포함하는데, 이러한 많은 수의 상이한 프로그래머블 타일들은 다중-기가비트 트랜스시버(MGT, 1701), CLB(1702), 랜덤 액세스 메모리 블록(BRAM, 1703), 입출력 블록(IOB), 구성 및 검사 논리회로(CONFIG/CLOCKS, 1705). 디지털 신호 처리 블록(DSP, 1706), 전문화된 입출력 블록(I/O, 1707)(예를 들어, 구성 포트들 및 클록 포트들), 및 디지털 클록 매니저와 같은 다른 프로그래머블 논리회로(1708), 아날로그 대 디지털 컨버터들, 시스템 모니터링 논리회로 등을 포함한다. 또한, 일부 FPGA는 예를 들어, 소프트웨어 어플리케이션을 구현하는데 사용될 수 있는 전용 프로세서 블록(PROC, 1710)을 포함한다.
일부 FPGA에서, 프로그래머블 타일은 각 인접한 타일에서 대응하는 상호 접속 소자로의, 그리고 대응하는 상호 접속 소자로부터의 표준화된 접속을 갖는 프로그래머블 상호 접속 소자(INT: interconnect element. 1711)를 포함한다. 그러므로, 함께 취해진 프로그래머블 상호 접속 소자들은 도시된 FPGA에 대한 프로그래머블 상호 접속 구조를 구현한다. 또한, 프로그래머블 상호 접속 소자(1711)는 도 17의 상부에 포함된 예시에 의해 도시된 것처럼, 동일한 타일 내에서 프로그래머블 논리 소자로의, 그리고 프로그래머블 논리 소자로부터의 접속을 포함한다.
예를 들어, CLB(1702)는 단일 프로그래머블 상호 접속 소자(1711)를 더한 사용자 논리회로를 구현하기 위해 프로그래밍될 수 있는 구성 가능한 논리 소자(CLE, 1712)를 포함할 수 있다. BRAM(1703)은 하나 이상의 프로그래머블 상호 접속 소자들에 부가하여, BRAM 논리 소자(BRL, 1713)를 포함할 수 있다. BRAM은 구성 논리 블록의 분산된 RAM과는 별개인 전용 메모리를 포함한다. 전형적으로, 타일에 포함된 상호 접속 소자의 개수는 타일의 높이에 의존한다. 도시된 실시예에서, 하나의 BRAM 타일은 5개의 CLB과 동일한 높이를 갖지만, 다른 개수도 사용될 수 있다. DSP 타일(1706)은 적합한 개수의 프로그래머블 상호 접속 소자에 부가하여, DSP 논리 소자(DSPL)를 포함할 수 있다. IOB(1704)은 예를 들어, 프로그래머블 상호 접속 소자(1711)의 하나의 경우에 부가하여, 입력 논리 소자(IOL)의 2개의 경우를 포함할 수 있다. 디바이스의 접속 위치는 전술한 목적을 위해 디바이스에 제공된 구성 비트스트림의 구성 데이터 비트들에 의해 제어된다. 구성 비트스트림의 비트들에 응답하여, 프로그래머블 상호 접속은 상호 접속 라인을 포함하는 접속이, 다양한 신호들을 프로그래머블 논리회로에서 구현되는 회로들에, 또는 BRAM 또는 프로세서 등의 다른 회로들에 연결하는데 사용되게 할 수 있다.
도시된 실시예에서, 다이의 중심 근처의 원주형 영역은 구성, 클록, 및 다른 제어 논리회로에 사용된다. 이 열로부터 연장되는 구성/클록 분포 영역(1709)은 FGPA의 폭을 가로질러 클록들과 구성 신호들을 분배하는데 사용된다. 도 17에 도시된 아키텍처를 활용하는 일부 FPGA는 FPGA 중 큰 부분을 형성하는 규칙적인 원주형 구조를 분열시키는 추가적인 논리 블록을 포함한다. 추가적인 논리 블록은 프로그래머블 블록 및/또는 전용 논리회로일 수 있다. 예를 들어, 도 17에 도시된 프로세서 블록(PROC, 1710)은 CLB 및 BRAM의 여러 열들에 걸쳐 있다.
도 17의 FGPA는 BRAM(1703)보다 큰 강화된 메모리 소자(1716)를 포함한다. 강화된 메모리 소자(1716)는 SRAM 블록과 전용 상호 접속 소자를 포함하고, 이 전용 상호 접속 소자는 회로(1700)의 블록을 참조하여 설명된 다양한 상호 접속 소자와 분리되며, 회로(1700)의 블록 또는 회로(1700) 외부의 디바이스들에 의해 강화된 메모리 소자들의 메모리 소자들에 대한 액세스가 가능해진다.
도 17은 예시적인 FPGA 아키텍처만을 설명하기 위해 의도된 것임을 알아야 한다. 열 방향으로의 논리 블록의 개수, 열들의 상대적인 폭, 열들의 개수와 순서, 열들에 포함된 논리 블록의 타입, 논리 블록의 상대적인 크기, 및 도 17의 상부에 포함된 상호 접속/논리 구현은 단지 예시일 뿐이다. 예를 들어, 실제 FPGA에서는 CLB의 복수의 인접한 열은 통상적으로 사용자 논리회로의 효율적인 구현을 용이하게 하기 위해 CLB이 보이는 어느 곳에나 포함된다. 도 17의 실시예가 프로그래머블 리소스를 갖는 집적 회로에 관련되는 반면, 이하에서 더 상세히 설명되는 회로들과 방법은 임의의 타입의 ASIC로 구현될 수 있다는 것이 이해되어야 한다.
이에 따라, 도 17의 요소들의 구성은 SRAM을, 36 Kb 메모리 소자들일 수 있는 BRAM을 포함해서 2개의 그룹으로 구획하며, 강화된 메모리 소자(1716)는, BRAM보다 크고, 예를 들어 36MB일 수 있는 메모리의 블록을 포함한다. 강화된 메모리 소자(1716)의 메모리들을 더 깊게 제공함으로써, 단위 면적 당 더 많은 수의 비트들이 제공되고, 따라서, 대형 메모리를 달성하기 위해 다수의 BRAM을 캐스케이드(cascade)할 필요가 없다. 강화된 메모리 소자(1716)를 위에서 설명한, 구체적으로, 도 6 내지 도 8을 참조하여 설명한 메모리 소자들과 전용 라우팅 상호 접속 소자들의 구성 또는 도 9에서 구현된 도 6 내지 도 8의 구성을 이용하여 구현될 수 있다.
이제 도 18을 참조하면, 도 17의 디바이스의 구성 가능한 논리 소자에 대한 블록도가 도시된다. 더 구체적으로, 도 18은 도 17의 구성 논리 블록(1702)의 구성 가능한 논리 소자를 단순화된 형태로 도시한다. 도 18의 실시예에서, 슬라이스 M(1801)이 4개의 룩업 테이블(LUTM, 1801A 내지 1801D)을 포함하는데, 각 룩업 테이블은 6개의 LUT 데이터 입력 단자(A1 내지 A6, B1 내지 B6, C1 내지 C6, 및 D1 내지 D6)에 의해 구동되고, 각각 2개의 LUT 출력 신호(O5 및 O6)를 제공한다. LUT(1801A 내지 1801D)로부터의 O6 출력 단자는 각각 슬라이스 출력 단자(A 내지 D)를 구동시킨다. LUT 데이터 입력 신호들은 FPGA 상호 접속 구조에 의해 입력 멀티플렉서들을 경유하여 공급되는데, 이는 프로그래머블 상호 접속 소자(1811)에 의해 구현될 수 있고, 또한, LUT 출력 신호들은 상호 접속 구조에 공급된다. 또한, 슬라이스 M은 출력 단자(AMUX 내지 DMUX)를 구동시키는 출력 선택 멀티플렉서(1811A 내지 1811D); 메모리 소자(1802A 내지 1802D)의 데이터 입력 단자를 구동시키는 멀티플렉서(1812A 내지 1812D); 조합 멀티플렉서(1816, 1818 및 1819); 바운스(bounce) 멀티플렉서 회로(1822 내지 1823); (모두 입력 클록 경로 상에 선택적 반전을 제공하는) 인버터(1805) 및 멀티플렉서(1806)에 의해 나타나는 회로; 및 멀티플렉서(1814A 내지 1814D, 1815A 내지 1815D, 1820 내지 1821)와 XOR 게이트(1813A 내지 1813D)를 구비한 캐리 논리회로를 포함한다. 이들 요소 모두는 도 18에 도시된 것처럼 함께 연결된다. 도 18에 도시된 멀티플렉서들에 대한 선택 입력은 도시되지 않았지만, 선택 입력은 구성 메모리 셀들에 의해 제어된다. 즉, 구성 메모리 셀들에 저장된 구성 비트스트림의 구성 비트들은 멀티플렉서들에 대한 올바른 입력을 선택하기 위해 멀티플렉서의 선택 입력에 연결된다. 잘 알려진 이들 구성 메모리 셀들은 본 명세서에서 다른 선택된 도면들과 마찬가지로 명료함을 위해 도 18에서 생략된다.
도시된 실시예에서 각 메모리 소자(1802A 내지 1802D)는 동기식 또는 비동기식 플립-플롭 또는 래치로서 기능하도록 프로그래밍될 수 있다. 동기식 및 비동기식 기능간의 선택은 동기/비동기 선택 회로(1803)를 프로그래밍함으로써 슬라이스에서 4개의 메모리 소자 모두에 의해 이루어진다. S/R[설정(set)/재설정(reset)] 입력 신호가 설정 기능을 제공하도록 메모리 소자가 프로그래밍되는 경우, REV 입력 단자는 재설정 기능을 제공한다. S/R 입력 신호가 재설정 기능을 제공하도록 메모리 소자가 프로그래밍되는 경우, REV 입력 단자는 설정 기능을 제공한다. 메모리 소자(1802A 내지 1802D)는 글로벌 클록 네트워크, 또는 예를 들어, 상호 접속 구조에 의해 제공될 수 있는 클록 신호(CK)에 의해 클록킹된다. 이러한 프로그래머블 메모리 소자는 FPGA 설계 분야에서 잘 알려져 있다. 각 메모리 소자(1802A 내지 1802D)는 등록된 출력 신호(AQ 내지 DQ)를 상호 접속 구조에 제공한다. 각 LUT(1801A 내지 1801D)가 2개의 출력 신호(O5 및 O6)를 제공하기에, LUT는 5개의 공유된 입력 신호(IN1 내지 IN5)를 갖는 2개의 5-입력 LUT, 또는 입력 신호(IN1 내지 IN6)를 갖는 하나의 6-입력 LUT로서 기능하도록 구성될 수 있다.
도 18의 실시예에서, 각 LUTM(1801A 내지 1801D)은 여러 모드들 중 임의의 모드로 기능할 수 있다. 룩업 테이블 모드인 경우, 각 LUT는 FPGA 상호 접속 구조에 의해 입력 멀티플렉서를 경유하여 공급받는 6개의 데이터 입력 신호(IN1 내지 IN6)를 갖는다. 64 데이터 값들 중 하나는 신호(IN1 내지 IN6)의 값들에 기초하여 구성 메모리 셀들로부터 프로그램 가능하게 선택된다. RAM 모드인 경우, 각 LUT는 단일 64-비트 RAM 또는, 공유된 어드레스를 갖는 2개의 32-비트 RAM으로서 기능한다. RAM 기록 데이터는 입력 단자(DM1)를 경유하여[LUT(1801A 내지 1801C)에 대한 멀티플렉서(1817A 내지 1817C)를 경유하여] 64-비트 RAM에, 또는 입력 단자(DI1 및 DI2)를 경유하여 2개의 32-비트 RAM에 공급된다. LUT RAM에서 RAM 기록 동작은 멀티플렉서(1806)로부터의 클록 신호(CK)에 의해, 그리고 멀티플렉서(1807)로부터의 기록 인에이블 신호(WE)에 의해 제어되는데, 이는 클록 인에이블 신호(CE) 또는 기록 인에이블 신호(WE)를 선택적으로 통과시킬 수 있다. 시프트 레지스터 모드에서, 각 LUT는 2개의 16-비트 시프트 레지스터로서 기능하며, 또는 2개의 16-비트 시프트 레지스터가 단일 32-비트 시프트 레지스터를 만들기 위해 직렬로 연결된다. 시프트-인 신호들은 입력 단자(DI1 및 DI2) 중 하나 또는 둘 다를 통해 제공된다. 16-비트 및 32-비트 시프트 아웃 신호들은 LUT 출력 단자를 통해 제공될 수 있고, 또한, 32-비트 시프트 아웃 신호는 LUT 출력 단자(MC31)를 경유하여 더 직접적으로 제공될 수도 있다. 또한, LUT(1801A)의 32-비트 시프트 아웃 신호(MC31)는 출력 선택 멀티플렉서(1811D) 및 CLE 출력 단자(DMUX)를 경유하여, 시프트 레지스터 체인을 위한 범용 상호 접속 구조에 제공될 수 있다. 이에 따라, 전술한 회로들과 방법들은 도 17 및 도 18의 디바이스 또는 임의의 다른 적합한 디바이스와 같은 디바이스에서 구현될 수 있다.
도 19의 실시예에 따라, 인쇄 회로 기판과 같은 회로 기판(1902)은 다중-다이 집적 회로(1904)를 수용하도록 구성된다. 다중-다이 집적 회로(1904)는 인터포저(interposer) 회로(1908)를 수용하도록 연결된 기판(1906)을 포함한다. 인터포저(1908)는 FPGA 칩(1910) 및 DRAM 칩(1912) 회로들과 같은 다중 집적 회로 칩 또는 다이를 기판(1906)에 연결시킬 수 있다. 솔더 볼(solder ball, 1914)은 다양한 칩들로부터의 신호들을 TSV(through silicon via)와 같은 다양한 상호 접속부(1916)를 통해 회로 기판(1902)으로 연결시킬 수 있다. 또한, 상호 접속부(1918)는 다중-다이 집적 회로의 다양한 칩들 사이에서의 신호의 라우팅을 가능케 한다. 인터포저 회로(1908)는 다양한 금속 층들을 갖는 실리콘 기판일 수 있고, 여기서, 다양한 금속 층들은 FPGA 칩들과 DRAM 칩 사이에 또는 칩들 중 하나와 기판(1906) 사이에서의 신호들의 라우팅을 가능케 하는 상호 접속 소자들을 포함한다. 하지만, 인터포저 회로는 도시하는 바와 같이 신호들의 라우팅을 가능케 하는 전도성 물질을 갖는 임의의 재료일 수 있다. FPGA 칩(1910) 및 DRAM 칩(1912)의 회로들 모두가 단일 다이 상에 구현될 수 있지만, 도 19의 실시예는 FPGA 칩(1910) 및 DRAM 칩(1912)의 다양한 회로들에 대한 더 효율적인 구현을 가능케 한다. 예를 들어, 일부 회로들은 소정 크기의 트랜지스터들을 형성하는 프로세스와 같은 하나의 프로세스에 따라 제조된 집적 회로 칩으로 더 효율적으로 구현될 수 있는 반면, 다른 회로들은 다른 프로세스에 따라 제조된 집적 회로 칩으로 더 효율적으로 구현될 수 있다. 이에 따라, 도 19의 장치는 도 9의 회로를 구현하는데 사용될 수 있고, 여기서, DRAM(902)은 DRAM(1912)으로서 구현되고, 복수의 메모리 소자(924 내지 930)는 기판(1906) 내에서 SRAM 또는 EDRAM으로서 구현된다. DRAM 인터페이스(922) 및 프로그래머블 리소스 인터페이스(932)는 기판(1906) 상에서 또는 인터포저(1908)의 부분으로서 구현될 수 있다.
이제 도 20을 참조하면, 집적 회로 디바이스에서 메모리를 구현하는 방법에 대한 흐름도가 도시된다. 더 구체적으로, 블록(2002)에서 프로그래머블 상호 접속 소자에 연결되는 프로그래머블 리소스가 구현되고, 여기서, 프로그래머블 상호 접속 소자들은 프로그래머블 리소스와의 신호의 통신을 가능케 한다. 프로그래머블 상호 접속 소자들은 예를 들어, 도 17의 IOB 또는 CLE들과 연관된 상호 접속 소자들일 수 있다. 복수의 메모리 블록은 블록(2004)에서 제공되고, 전용 상호 접속 소자들은 블록(2006)에서 복수의 메모리 블록에 연결된다. 복수의 메모리 블록은 예를 들어, 도 17의 강화된 메모리 소자(1716)일 수 있다. DRAM 블록은 블록(2008)에서 구현될 수 있고, 여기서, 전용 상호 접속 소자들은 DRAM 블록과 복수의 메모리 블록 사이에 구현될 수 있다. 도 20의 방법의 다양한 요소들은 전술한 바와 같이 도 1 내지 도 19의 회로를 이용하여 또는, 일부 다른 적합한 회로들을 이용하여 구현될 수 있다. 본 발명의 방법의 특정 요소들에 대해 기술하였지만, 상기 방법의 추가적인 요소 또는 요소(2002 내지 2008)에 관련된 추가적인 상세 내용이 도 1 내지 도 19의 개시에 따라 구현될 수 있다는 것이 이해되어야 한다.
그러므로, 메모리를 갖는 새로운 집적 회로 디바이스와 집적 회로 디바이스에서 메모리를 구현하는 방법에 대해 기술되었다는 점이 인식될 수 있다. 본 기술 분야의 당업자에 의해 개시된 본 발명을 포함하는 다수의 대체품들 및 등가물들 존재할 수 있다는 점이 인식될 것이다. 따라서, 본 발명의 범위는 전술한 실시예들과 다음의 청구범위에 의해 정해질 것이다.

Claims (13)

  1. 메모리를 구비하는 집적 회로 디바이스에 있어서,
    복수의 제 1 데이터 라인을 갖는 프로그래머블 리소스;
    상기 프로그래머블 리소스에 연결되고, 상기 프로그래머블 리소스와의 신호의 통신을 가능케 하는 프로그래머블 상호 접속 소자;
    복수의 메모리 블록; 및
    상기 복수의 제 1 데이터 라인으로부터 데이터의 멀티플렉싱을 가능케 하도록, 상기 프로그래머블 리소스와 상기 복수의 메모리 블록의 각 메모리 블록 사이에 연결되고, 복수의 제 1 입력과 복수의 제 2 출력을 구비하며, 상기 복수의 메모리 블록의 각 메모리 블록에 대한 액세스를 가능케 하는 전용 상호 접속 소자를 포함하고,
    상기 전용 상호 접속 소자의 상기 복수의 제 1 입력의 각 입력은 상기 프로그래머블 리소스의 상기 복수의 제 1 데이터 라인의 대응하는 데이터 라인에 연결되고, 상기 전용 상호 접속 소자의 상기 복수의 제 2 출력의 각 출력은, 상기 복수의 메모리 블록의 대응하는 메모리 블록에 연결되는 복수의 제 2 데이터 라인의 데이터 라인에 연결되고,
    상기 프로그래머블 리소스는, 각각이 제 1 메모리 크기를 갖는 복수의 SRAM 블록을 포함하고, 상기 복수의 메모리 블록의 각 메모리 블록은 상기 제 1 메모리 크기보다 큰 제 2 메모리 크기를 갖는 SRAM 블록인, 집적 회로 디바이스.
  2. 삭제
  3. 제1항에 있어서, 상기 전용 상호 접속 소자는 크로스바 스위치를 포함하는, 집적 회로 디바이스.
  4. 제1항에 있어서,
    상기 복수의 메모리 블록과 상기 프로그래머블 리소스 사이에 연결된 출력 상호 접속 소자를 더 포함하는, 집적 회로 디바이스.
  5. 삭제
  6. 제1항에 있어서,
    DRAM 블록, 및 상기 DRAM 블록과 상기 복수의 메모리 블록 사이의 신호의 통신을 가능케 하는 제 2 전용 상호 접속 소자를 더 포함하는, 집적 회로 디바이스.
  7. 제6항에 있어서, 상기 DRAM 블록은 상기 집적 회로 디바이스의 제 1 다이 상에 있고, 상기 프로그래머블 리소스는 상기 집적 회로 디바이스의 제 2 다이 상에 있는, 집적 회로 디바이스.
  8. 집적 회로 디바이스에서 메모리를 구현하기 위한 방법에 있어서,
    복수의 제 1 데이터 라인을 구비하고, 프로그래머블 상호 접속 소자에 연결되는 프로그래머블 리소스를 구현하는 단계로서, 상기 프로그래머블 상호 접속 소자는 상기 프로그래머블 리소스와의 신호의 통신을 가능케 하는 것인, 상기 프로그래머블 리소스를 구현하는 단계;
    복수의 메모리 블록을 제공하는 단계; 및
    상기 복수의 제 1 데이터 라인으로부터 데이터의 멀티플렉싱을 가능케 하도록, 상기 프로그래머블 리소스와 상기 복수의 메모리 블록의 각 메모리 블록 사이에 전용 상호 접속 소자를 연결하는 단계를 포함하고,
    상기 전용 상호 접속 소자는 복수의 제 1 입력과 복수의 제 2 출력을 구비하며, 상기 복수의 메모리 블록의 각 메모리 블록에 대한 액세스를 가능케 하고,
    상기 전용 상호 접속 소자의 상기 복수의 제 1 입력의 각 입력은 상기 프로그래머블 리소스의 상기 복수의 제 1 데이터 라인의 대응하는 데이터 라인에 연결되고, 상기 전용 상호 접속 소자의 복수의 제 2 출력의 각 출력은 상기 복수의 메모리 블록의 대응하는 메모리 블록에 연결되는 복수의 제 2 데이터 라인의 데이터 라인에 연결되고,
    상기 프로그래머블 리소스를 구현하는 단계는, 각각이 제 1 메모리 크기를 갖는 복수의 제 1 SRAM 블록을 구현하는 단계를 포함하고,
    상기 복수의 메모리 블록을 제공하는 단계는, 각각이 상기 제 1 메모리 크기보다 큰 제 2 메모리 크기를 갖는 복수의 SRAM 블록을 제공하는 단계를 포함하는, 집적 회로 디바이스에서 메모리를 구현하기 위한 방법.
  9. 삭제
  10. 제8항에 있어서, 상기 복수의 메모리 블록 사이에 상기 전용 상호 접속 소자를 연결하는 단계는, 상기 프로그래머블 상호 접속 소자와 분리된 전용 상호 접속 소자를 제공하는 단계를 포함하는, 집적 회로 디바이스에서 메모리를 구현하기 위한 방법.
  11. 제8항에 있어서, 상기 복수의 메모리 블록에 전용 상호 접속 소자를 연결하는 단계는, 상기 복수의 메모리 블록에 크로스바 스위치를 연결하는 단계를 포함하는, 집적 회로 디바이스에서 메모리를 구현하기 위한 방법.
  12. 제8항에 있어서,
    DRAM 블록을 구현하는 단계; 및
    상기 DRAM 블록과 상기 복수의 메모리 블록 사이에 제 2 크로스바 스위치를 포함하는 제 2 전용 상호 접속 소자를 연결하는 단계를 더 포함하는, 집적 회로 디바이스에서 메모리를 구현하기 위한 방법.
  13. 제8항에 있어서, 상기 프로그래머블 리소스를 구현하는 단계는 상기 집적 회로 디바이스의 제 1 다이 상에 프로그래머블 리소스를 구현하는 단계를 포함하고,
    DRAM 블록을 구현하는 단계는 상기 집적 회로 디바이스의 제 2 다이 상에 DRAM 블록을 구현하는 단계를 포함하는, 집적 회로 디바이스에서 메모리를 구현하기 위한 방법.
KR1020157027772A 2013-03-07 2014-03-06 메모리를 구비한 집적 회로 디바이스 및 집적 회로 디바이스에서 메모리를 구현하는 방법 KR102178768B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/789,313 2013-03-07
US13/789,313 US9153292B2 (en) 2013-03-07 2013-03-07 Integrated circuit devices having memory and methods of implementing memory in an integrated circuit device
PCT/US2014/021404 WO2014138479A1 (en) 2013-03-07 2014-03-06 Integrated circuit devices having memory and methods of implementing memory in an integrated circuit device

Publications (2)

Publication Number Publication Date
KR20150126400A KR20150126400A (ko) 2015-11-11
KR102178768B1 true KR102178768B1 (ko) 2020-11-13

Family

ID=50442621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157027772A KR102178768B1 (ko) 2013-03-07 2014-03-06 메모리를 구비한 집적 회로 디바이스 및 집적 회로 디바이스에서 메모리를 구현하는 방법

Country Status (6)

Country Link
US (1) US9153292B2 (ko)
EP (1) EP2965429B1 (ko)
JP (1) JP6573834B2 (ko)
KR (1) KR102178768B1 (ko)
CN (1) CN105144585B (ko)
WO (1) WO2014138479A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9431095B1 (en) 2014-12-10 2016-08-30 Xilinx, Inc. High-density integrated circuit memory
KR102663824B1 (ko) * 2016-02-02 2024-05-03 자일링크스 인코포레이티드 액티브-바이-액티브 프로그래밍가능 디바이스
US10331601B2 (en) * 2016-04-15 2019-06-25 Infinera Corporation Systems, apparatus, and methods for efficient space to time conversion of OTU multiplexed signal
KR102381158B1 (ko) * 2016-08-15 2022-03-30 자일링크스 인코포레이티드 적층형 실리콘 상호 연결(ssi) 기술 통합을 위한 독립형 인터페이스
US11625523B2 (en) 2016-12-14 2023-04-11 iCometrue Company Ltd. Logic drive based on standard commodity FPGA IC chips
CN108288616B (zh) 2016-12-14 2023-04-07 成真股份有限公司 芯片封装
US10447274B2 (en) 2017-07-11 2019-10-15 iCometrue Company Ltd. Logic drive based on standard commodity FPGA IC chips using non-volatile memory cells
JP2019033327A (ja) 2017-08-04 2019-02-28 株式会社東芝 半導体集積回路
US10957679B2 (en) 2017-08-08 2021-03-23 iCometrue Company Ltd. Logic drive based on standardized commodity programmable logic semiconductor IC chips
US10630296B2 (en) * 2017-09-12 2020-04-21 iCometrue Company Ltd. Logic drive with brain-like elasticity and integrality based on standard commodity FPGA IC chips using non-volatile memory cells
US10079211B1 (en) * 2017-09-28 2018-09-18 Intel Corporation Modular interconnection repair of multi-die package
US10608642B2 (en) 2018-02-01 2020-03-31 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile radom access memory cells
US10623000B2 (en) 2018-02-14 2020-04-14 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips
US10608638B2 (en) 2018-05-24 2020-03-31 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips
US10892011B2 (en) 2018-09-11 2021-01-12 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells
US11309334B2 (en) 2018-09-11 2022-04-19 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells
US10937762B2 (en) 2018-10-04 2021-03-02 iCometrue Company Ltd. Logic drive based on multichip package using interconnection bridge
US11616046B2 (en) 2018-11-02 2023-03-28 iCometrue Company Ltd. Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip
US11211334B2 (en) 2018-11-18 2021-12-28 iCometrue Company Ltd. Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip
US10642946B2 (en) * 2018-12-28 2020-05-05 Intel Corporation Modular periphery tile for integrated circuit device
US10804255B1 (en) * 2019-05-10 2020-10-13 Xilinx, Inc. Circuit for and method of transmitting a signal in an integrated circuit device
US11227838B2 (en) 2019-07-02 2022-01-18 iCometrue Company Ltd. Logic drive based on multichip package comprising standard commodity FPGA IC chip with cooperating or supporting circuits
US10985154B2 (en) 2019-07-02 2021-04-20 iCometrue Company Ltd. Logic drive based on multichip package comprising standard commodity FPGA IC chip with cryptography circuits
US10797037B1 (en) 2019-07-15 2020-10-06 Xilinx, Inc. Integrated circuit device having a plurality of stacked dies
US11887930B2 (en) 2019-08-05 2024-01-30 iCometrue Company Ltd. Vertical interconnect elevator based on through silicon vias
US11637056B2 (en) 2019-09-20 2023-04-25 iCometrue Company Ltd. 3D chip package based on through-silicon-via interconnection elevator
US11600526B2 (en) 2020-01-22 2023-03-07 iCometrue Company Ltd. Chip package based on through-silicon-via connector and silicon interconnection bridge

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004529581A (ja) 2001-05-18 2004-09-24 ザイリンクス インコーポレイテッド プログラマブルインターフェイスコアおよび中央処理装置を含むプログラマブルロジックデバイス
JP2008097735A (ja) * 2006-10-12 2008-04-24 Elpida Memory Inc メモリ回路及び半導体装置
US20090072856A1 (en) * 2007-09-14 2009-03-19 Cswitch Corporation Memory controller for heterogeneous configurable integrated circuits

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07321640A (ja) * 1994-05-30 1995-12-08 Nippon Telegr & Teleph Corp <Ntt> プログラマブル論理回路
US6072741A (en) * 1997-04-01 2000-06-06 Ramtron International Corporation First-in, first-out integrated circuit memory device incorporating a retransmit function
US6181159B1 (en) 1997-05-06 2001-01-30 Altera Corporation Integrated circuit incorporating a programmable cross-bar switch
US6467017B1 (en) 1998-06-23 2002-10-15 Altera Corporation Programmable logic device having embedded dual-port random access memory configurable as single-port memory
US6350653B1 (en) 2000-10-12 2002-02-26 International Business Machines Corporation Embedded DRAM on silicon-on-insulator substrate
JP3553519B2 (ja) * 2001-04-16 2004-08-11 三菱電機株式会社 プログラマブル論理回路装置
JP5163306B2 (ja) * 2008-06-19 2013-03-13 富士通セミコンダクター株式会社 動的再構成回路およびデータ送信制御方法
US8058897B1 (en) * 2010-06-28 2011-11-15 Xilinx, Inc. Configuration of a multi-die integrated circuit
US8693235B2 (en) * 2011-12-06 2014-04-08 Taiwan Semiconductor Manufacturing Company, Ltd. Methods and apparatus for finFET SRAM arrays in integrated circuits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004529581A (ja) 2001-05-18 2004-09-24 ザイリンクス インコーポレイテッド プログラマブルインターフェイスコアおよび中央処理装置を含むプログラマブルロジックデバイス
JP2008097735A (ja) * 2006-10-12 2008-04-24 Elpida Memory Inc メモリ回路及び半導体装置
US20090072856A1 (en) * 2007-09-14 2009-03-19 Cswitch Corporation Memory controller for heterogeneous configurable integrated circuits

Also Published As

Publication number Publication date
CN105144585B (zh) 2018-08-17
EP2965429B1 (en) 2018-12-26
JP2016516331A (ja) 2016-06-02
JP6573834B2 (ja) 2019-09-11
US9153292B2 (en) 2015-10-06
US20140254232A1 (en) 2014-09-11
WO2014138479A1 (en) 2014-09-12
KR20150126400A (ko) 2015-11-11
CN105144585A (zh) 2015-12-09
EP2965429A1 (en) 2016-01-13

Similar Documents

Publication Publication Date Title
KR102178768B1 (ko) 메모리를 구비한 집적 회로 디바이스 및 집적 회로 디바이스에서 메모리를 구현하는 방법
KR102446825B1 (ko) 하이브리드 메모리 시스템의 동작을 제어하는 회로들 및 방법들
JP6564375B2 (ja) 高スループットのキーバリューストアの実現のためのメモリ構成
US11201623B2 (en) Unified programmable computational memory and configuration network
US11296705B2 (en) Stacked programmable integrated circuitry with smart memory
US9218862B1 (en) Method and apparatus for operating finite-state machines in configurable storage circuits
JP6364015B2 (ja) 構成可能な混載メモリシステム
US8185861B2 (en) Variable sized soft memory macros in structured cell arrays, and related methods
US8390319B2 (en) Programmable logic fabric
Tian et al. A field programmable transistor array featuring single-cycle partial/full dynamic reconfiguration
US11121715B2 (en) Coarse-grain programmable routing network for logic devices
US9811628B1 (en) Metal configurable register file
US7315918B1 (en) Processor block placement relative to memory in a programmable logic device
US7236008B1 (en) Multiple size memories in a programmable logic device
US11362662B2 (en) Field programmable transistor arrays
US7221185B1 (en) Method and apparatus for memory block initialization
US20160241245A1 (en) Reconfigurable logic device
US7965101B2 (en) Combined processing and non-volatile memory unit array

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant