KR101688895B1 - 임베딩된 재구성 가능 컴퓨팅을 위한 스위칭 패브릭 - Google Patents
임베딩된 재구성 가능 컴퓨팅을 위한 스위칭 패브릭 Download PDFInfo
- Publication number
- KR101688895B1 KR101688895B1 KR1020157025993A KR20157025993A KR101688895B1 KR 101688895 B1 KR101688895 B1 KR 101688895B1 KR 1020157025993 A KR1020157025993 A KR 1020157025993A KR 20157025993 A KR20157025993 A KR 20157025993A KR 101688895 B1 KR101688895 B1 KR 101688895B1
- Authority
- KR
- South Korea
- Prior art keywords
- channel
- multiplexers
- channels
- output
- input
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Electronic Switches (AREA)
- Multi Processors (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
제 1 및 제 2 버스들 간의 채널들을 스위칭하기 위한 인터리빙된 복수의 멀티플렉서들을 포함하는 출력 스위치 패브릭이 개시된다. 버스들은 그리드 패턴을 형성하는 트랙들에서 연장된다. 멀티플렉서들의 인터리빙은 버스들의 그리드 패턴에 따라 배열된다.
Description
관련 출원들에 대한 상호-참조
[0001] 본 출원은 2013년 3월 1일 출원된 미국 정식 출원 번호 제13/781,755호를 우선권으로 주장하며, 이 출원은 그 전체가 인용에 의해 본원에 포함된다.
기술 분야
[0002] 이 출원은 재구성 가능 컴퓨팅(reconfigurable computing)에 관한 것으로서, 보다 구체적으로는 재구성 가능 컴퓨팅을 위한 스위칭 패브릭(switching fabric)에 관한 것이다.
[0003] 프로세서 속도들이 점점 증가되지만, 증가된 컴퓨팅 전력에 대한 요구는 조금도 수그러들지 않은 채로 남아있다. 예를 들어, 스마트폰들은 이제 놀랄 만큼 다양한 작업들로 그의 프로세서들에 부담을 지운다. 그러나 단일-코어 프로세서는 주어진 시간에 어떤 수(so many)의 명령들만을 수용할 수 있다. 따라서, 이제 명령들의 세트들을 병렬로 프로세싱하는 다중-코어 또는 다중-스레드 프로세서들을 제공하는 것이 일반적이다. 그러나 이러한 명령-기반 아키텍처들은 다이 공간, 전력 소비 및 명령 프로세싱 시간의 증가에 관한 복잡도에 의해 부과된 제한들과 항상 다투어야 한다 .
[0004] 프로그래밍 가능 프로세싱 코어의 이용에 비해, 전용 하드웨어에서 보다 효율적으로 프로세싱될 수 있는 다수의 알고리즘들이 존재한다. 예를 들어, 이미지 프로세싱은 프로세싱 단계들의 파이프라인을 통해 상당한 평행성(parallelism) 및 그룹들로의 픽셀 프로세싱을 포함한다. 알고리즘이 이어서 하드웨어에 맵핑되는 경우, 구현은 이러한 대칭 및 평행성을 이용한다. 그러나 전용 하드웨어의 설계는 값비싸고 알고리즘이 수정되는 경우 전용 하드웨어가 재설계되어야 한다는 점에서 또한 성가시다.
[0005] 명령-기반 아키텍처와 전용 하드웨어 접근법들간의 효율적인 절충안(compromise)을 제공하기 위해, RICA(reconfigurable instruction cell array) 아키텍처가 개발되었다. 도 1a는 재구성 가능 코어(1)를 갖는 예시적인 RICA 시스템(50)을 예시한다. RICA(50)에서, 가산기들(ADD), 곱셈기들(MUL), 레지스터들(REG), 로직 동작 시프터들(SHIFT), 분할기들(DIV), 데이터 비교기들(COMP), 로직 게이트들(LOGIC), 및 로직 점프 셀들(JUMP)과 같은 복수의 명령 셀들(2)은 프로그래밍 가능 스위칭 패브릭(4)을 통해 상호연결된다. 이들이 구현하는 그의 로직 함수 또는 명령에 관한 명령 셀들(2)의 구성은 주어진 알고리즘 또는 함수를 구현하는데 필요할 때 각각의 모든(every) 클록 사이클마다 재프로그래밍될 수 있다. 스위칭 패브릭(4)도 또한 상응하게 재프로그래밍될 것이다. 명령 셀들(2)은 리트리브되거나 데이터 메모리(8)에 로딩될 때 명령 셀들(2)에 대한 데이터를 인터페이싱하는 메모리 인터페이스 셀들(12)을 포함한다. 명령 셀들(2)에 의한 결과적인 프로세싱은 구성 RAM(6)으로부터 획득된 구성 명령들(10)에 따라 발생한다. 디코딩 모듈(11)은 명령 셀들(2) 뿐만 아니라 스위칭 패브릭(4)에 대한 구성 데이터를 획득하도록 명령들(10)을 디코딩한다. RICA(50)는 IO 포트들(16)을 통해 외부 시스템들 및 특수 명령 셀 레지스터들(14)과 인터페이싱한다. 도 1a에서 도시된 부가적인 특징들은 2006년 4월 28일 출원된 미국 특허 공개 번호 제2010/0122105호에서 설명되며, 그에 의해 이 미국특허의 내용물들은 그 전체가 인용에 의해 포함된다.
[0006] RICA의 이점들, 즉 파이프라인 프로세싱 방식을 통해 다수의 픽셀들을 프로세싱하는 것을 포함하는 이미지 프로세싱과 같은 알고리즘은 전용 하드웨어 접근법을 에뮬레이팅(emulate)하는 방식으로 명령 셀들에 맵핑될 수 있다는 것에 주의한다. 그러나 전용 하드웨어를 설계할 필요가 없고, 대신에, 그것은 필요에 따라 셀들 및 스위칭 패브릭을 단순히 프로그래밍할 수 있다. 따라서 알고리즘이 재설계되어야 하는 경우, 하드웨어 재설계에 대한 필요성이 없고, 오히려, 대신에, 사용자는 필요에 따라 프로그래밍을 단순히 변경할 수 있다. 이것은 종래의 명령-기반 컴퓨팅 접근법들보다 상당히 유리하다.
[0007] 이에 따라 RICA가 강력한 이점들을 제안하지만, 도전과제들이 그 구현들에 남아있다. 예를 들어, 행들 및 열들로 재구성 가능 어레이에 명령 셀들을 배열하는 것이 통상적이다. 각각의 명령 셀, 임의의 연관된 레지스터, 및 명령 셀에 대한 연관된 입력 및 출력 스위칭 패브릭은 스위칭 박스 내에 상주하는 것으로 고려될 수 있다. 도 1b는 행들 및 열들로 배열되는 스위치 박스들의 예시적인 어레이를 도시한다. 선택된 스위치 박스들 간에 형성된 데이터 경로는 복수의 채널들로부터의 선택된 채널들 상에서 전달(carry)된다. 채널들은 또한 스위치 박스들에 대한 행들 및 열들에 매칭하는 행들 및 열들에 배열된다. 각각의 채널은 특정한 비트 폭을 갖는다. 행 방향들은 동쪽 및 서쪽으로 연장되는 것으로 고려될 수 있는 반면에, 열 방향들은 북쪽 및 남쪽으로 연장된다. 초기 스위치 박스(100)의 명령 셀에서 시작하는 데이터 경로는 채널(101) 상에서 초기 스위치 박스(100)로부터 동쪽 행 방향으로 라우팅된다. 후속 스위치 박스들로부터의 데이터 경로에 대한 라우팅은 적절한 동쪽/서쪽 행 방향 또는 북쪽/남쪽 열 방향이어서, 임의의 선택된 행 및 열 포지션의 최종 스위치 박스(105)에 도달되게 된다. 이 예시적인 데이터 경로에서, 2개의 명령 셀들은 ALU들(arithmetic logic units)(110)로서 구성된다. 잔여 스위치 박스들에 대한 명령 셀들은 예시 명료함을 위해 도시되지 않는다. 각각의 스위치 박스는 이어서 2개의 스위칭 매트릭스들 또는 패브릭들 : 그의 명령 셀로의 채널 입력들에 대해 선택할 입력 스위칭 패브릭 및 또한, 스위치 박스로부터의 채널 출력들에 대해 선택할 출력 스위칭 패브릭을 수용해야 한다는 것에 주의한다. 본 개시는 출력 스위칭 패브릭에 초점을 둔다.
[0008] RICA에 대한 채널들의 수는 임의적인데, 예를 들어, 각각이 8비트 길이인 20개의 채널들이 있다고 가정한다. 스위치 박스에 대한 임의의 주어진 방향에 대한 출력 스위치 패브릭은 이어서 20 * 8 = 160개의 멀티플렉서들을 이용하여 20개의 채널들 내의 160 비트들을 구동할 수 있다. 예를 들어, 초기 스위치 박스(101)는 이러한 실시예에서, 동쪽 행 방향(101)의 20개의 채널들을 구동하도록 160개의 멀티플렉서들을 포함할 것이다. 예시적인 출력 스위치 패브릭(150)은 도 1c에서 도시된다. 스위치 패브릭(150)은 북쪽, 남쪽, 동쪽 및 서쪽 방향들에 관하여 채널들을 스위칭하도록 구성된다. 각각의 방향에 관하여, 스위치 패브릭(150)은 입력 도체들 상에서 채널들을 수신한다. 유사하게, 스위치 패브릭(150)은 대응하는 출력 도체들 상에서 각각의 방향의 채널들을 구동한다. 집적 회로 레이아웃 분야에서 알려진 바와 같이, 채널들의 라우팅은 대응하는 금속 층들의 트랙들에서 발생한다. 예를 들어, 채널들에 대한 남쪽 입력 도체들은, 채널들에 대한 북쪽 출력 도체들에 대한 트랙이 되는 트랙(171)에 배열된다. 북쪽-남쪽, 동쪽-서쪽, 및 서쪽-동쪽 라우팅에 대해 유사한 트랙들이 스위치 패브릭(150)을 교차한다. 채널들은 대응하는 멀티플렉서들에 의해 출력 도체들 상에서 스위치 패브릭(150)의 각각의 사이드(side)로부터 구동된다.
[0009] "채널"은 신호가 전달되는 도체들과 별개의 신호이지만, "입력 채널"들로서 대응하는 입력 도체들 상에서 전달되는 채널을 단순히 지칭하는 것이 편리하다. 유사하게, 대응하는 출력 도체들 상에서 전달되는 채널은 "출력 채널"이다. 예를 들어, 남쪽 스위칭 회로(155)는 남쪽 출력 채널들을 구동하기 위한 멀티플렉서들을 포함한다. 유사하게, 동쪽 스위칭 회로(160)는 동쪽 출력 채널들을 구동하기 위한 멀티플렉서들을 포함하고, 서쪽 스위칭 회로(165)는 서쪽 출력 채널들을 구동하기 위한 멀티플렉서들을 포함하고, 북쪽 스위칭 회로(170)는 북쪽 출력 채널들을 구동하기 위한 멀티플렉서들을 포함한다.
[0010] 도 1b를 재차 참조하면, 주어진 스위치 박스의 출력 스위치 패브릭에 대한 출력 채널들은 이웃 스위치 박스의 출력 스위치 패브릭에 대한 입력 채널들이 된다. 예를 들어, 도 1b의 채널(101)은 초기 스위치 박스(100)에 대한 동쪽 출력 채널인 반면에, 채널(101)은 이웃 스위치 박스(115)에 대해 서쪽 입력 채널이다.
[0011] 대응하는 스위칭 회로들의 모든 출력 멀티플렉서들을 그룹핑함으로써 도 1c의 출력 스위칭 패브릭(150)은 상당한 정도의 버스 터닝(bus turning)에 시달린다. 그것에 관하여, 라우팅 분야들에서 알려진 바와 같이, 행 및 열 라우팅은 통상적으로 대응하는 트랙들에서 구성된다. 스위칭 패브릭에 관하여, 주어진 방향에서 입력 도체들에 대한 트랙은 대향하는 방향에서 출력 도체들에 대한 트랙이 된다. 이러한 트래킹은 행 및 열 라우팅을 상당히 단순화한다. 예를 들어, 서쪽 입력 채널들에 대한 트랙(172)은 북쪽 스위칭 회로(170) 및 동쪽 스위칭 회로(160)에 대한 다이 공간에 걸쳐서 스패닝(span)한다. 트랙(172)은 남쪽 스위칭 회로(155)에 전용되는 다이 공간을 가로질러 연장하지 않는다. 북쪽 및 남쪽 방향들에 대한 채널 라우팅은 동쪽 및 서쪽 방향들에 대한 채널 라우팅에 대해 단축(short)될 수 없기 때문에, 행 및 열 라우팅은 전용 금속 층들에서 발생한다. 예를 들어, 제 1 금속 층(또는 층들)은 동쪽/서쪽 행 라우팅에 전용될 수 있는 반면에, 제 2 금속 층(또는 층들)은 북쪽/남쪽 열 라우팅을 전달할 것이다.
[0012] 서쪽 입력 채널들은 이에 따라 남쪽 스위칭 회로(155)의 멀티플렉서들에서 수신되기 위해 상이한 금속층에서 "버스 터닝"되어야 한다. 서쪽 입력 채널들은 제 1 금속 층을 통해 직접 남쪽 스위칭 회로(155)에 커플링하도록 라우팅될 수 없는데, 그 이유는, 이들이 이후에 남쪽 스위칭 회로(155)에 대한 그의 트랙에 동쪽 입력 채널들을 단축시킬 것이기 때문이다. 유사한 버스 터닝은 다른 스위칭 회로들에 대해 발생해야 한다. 예를 들어, 남쪽 입력 채널들은 동쪽 스위칭 회로(160)에서 수신되기 위해 버스 터닝을 요구한다. 이러한 버스 터닝은 다이 공간을 낭비하고 과도한 전력 소비를 요구하고 타이밍 지연을 야기한다.
[0013] 스위치 패브릭(150)에 대한 채널 스위칭은 그의 반도체 기판 표면 상에서 그의 풋프린트의 북쪽, 남쪽, 서쪽, 및 동쪽 사이드들에 관하여 수행된다. 임의의 주어진 풋프린트 사이드에 관하여, 대응하는 스위칭 회로가 입력 채널 선택에 관한 3개의 남은 사이드들 중에서 선택할 수 있다. 예를 들어, 남쪽 스위칭 회로(155)의 멀티플렉서들은 북쪽 입력 채널들, 동쪽 입력 채널들 및 서쪽 입력 채널들 중에서 선택할 수 있다. 그러나 남쪽 스위칭 회로(155)는 남쪽 입력 채널들 중에서 선택할 수 없다. 유사하게, 동쪽 스위칭 회로(160)는 북쪽, 남쪽 및 서쪽 풋프린트 사이드들에 대한 입력 채널들 중에서 선택할 수 있다. 임의의 주어진 스위치 패브릭 풋프린트 사이드로부터의 출력들에 대하여 3개의 남은 사이드들로의 이러한 제약은, 그것이 그것이 상당한 라우팅 복잡도 감소를 야기한다는 점에서 통상적이다.
[0014] 이에 따라 임의의 주어진 스위치 패브릭 사이드에 대하여 3개의 남은 사이드들로부터의 이러한 채널 선택에 이어지는 많은 연구가 다양한 스위치 패브릭 아키텍처들에 대해 확장되었다. 도 2a는 디스조인트 매트릭스(disjoint matrix)로서 알려진 하나의 타입의 스위치 패브릭 아키텍처를 도시한다. 이 예에서, 5개의 행들 및 5개의 열들이 있으며 각각은 0에서 4까지 넘버링된다. 행들의 각각의 행(또는 열들의 각각의 열)은 주어진 데이터 워드에 대한 채널을 나타내는 것으로서 간주될 수 있다. 따라서, 이 시스템에서 5개의 데이터 채널들이 있다. 예시 명확성을 위해, 입력 및 출력 채널들이 별개로 도시되지 않는다. 대신, 서쪽 채널(4)과 같은 주어진 채널은 서쪽 입력 채널(4) 및 서쪽 출력 채널(4) 둘 다는 나타낸다. 디스조인트 매트릭스에서, 주어진 채널은 동일한 채널로 라우팅되도록 제한된다. 예를 들어, 그의 서쪽 입력 상에서 전달되는 채널 0에 대한 데이터 워드는 채널 0에 대한 북쪽 출력에서 전파되도록 스위칭될 수 있지만, 남은 채널들(1 내지 4)에 대한 북쪽 출력에서 전파되도록 스위칭될 수 없을 수 있다. 주어진 기본 방향(cardinnal direction)(북쪽, 남쪽, 동쪽, 또는 서쪽)을 향하는 스위치 패브릭 사이드에 대한 각각의 채널 출력은 이에 따라 남은 기본 방향들을 향하는 잔여 사이드들 중에서 선택하는 3:1 멀티플렉서(예시되지 않음)에 의해 선택될 수 있다.
[0015] 디스조인트 매트릭스의 이점, 즉 3:1 멀티플렉서는 주어진 채널에 대한 행 및 열의 교차점에 로케이팅될 수 있다는 것에 주의한다. 3:1 멀티플렉서에 대한 입력들은 교차점 바로 그곳이고 ― 입력들을 획득하기 위해 다른 채널들에 걸친 스패닝 또는 버스 터닝이 필요 없다. 이러한 디스조인트 스위칭 패브릭은 이에 따라 레이아웃 설계를 크게 단순화한다. 그러나 이러한 디스조인트 단순화는 라우팅 유연성에서 상당한 제약을 받게 되고; 디스조인트 매트릭스는 임의의 주어진 채널 출력에 관하여 다른 채널들 중에서 선택하기 위한 수단을 제공하지 않는다.
[0016] 보다 유연한 라우팅 능력을 제공하기 위해, 도 2b 및 도 2c 각각에서 도시된 바와 같은 유니버셜(universal) 스위치 매트릭스 및 윌톤(Wilton) 스위치 매트릭스가 개발되었다. 이들 스위치 매트릭스들 또는 패브릭들에서, 주어진 기본 방향에서 채널에 대한 출력 신호들의 선택은 동일한 채널로 제약을 받지 않는다. 예를 들어, 유니버셜 스위치 매트릭스에서, 북쪽 방향의 채널 4의 출력은 채널 0 서쪽 입력, 채널 4 남쪽 입력 및 채널 4 동쪽 입력 중에서 선택될 수 있다. 유사하게, 윌톤 스위치 매트릭스에서, 채널 4 북쪽의 출력은 채널 1 서쪽, 채널 0 동쪽 및 채널 4 남쪽에 대한 입력들 중에서 선택될 수 있다. 그러나 디스조인트 매트릭스처럼, 유니버셜 또는 윌톤 스위치 매트릭스에 대한 주어진 방향의 각각의 출력은 남은 방향들로부터의 채널 입력들 중에서 선택하는 3:1 멀티플렉서에 의해 제공될 수 있다.
[0017] 매트릭스의 타입에 무관하게, 열 차원의 주어진 채널 출력은 북쪽(N) 방향 또는 남쪽 방향(S)을 향한다. 유사하게, 행 차원의 주어진 채널 출력은 서쪽(W) 방향 또는 동쪽(E) 방향을 향한다. 입력 및 출력 채널들은 스위칭 매트릭스의 타입에 무관하게 동일한 트랙을 따른다. 예를 들어, 입력 채널 4에 대한 트랙은 모든 방향들에서 출력 채널 4에 대한 트랙이 된다. 그것에 관하여, 주어진 출력 방향의 주어진 채널에 대해, 동일한 채널은 대향하는 기본 방향에 관한 입력으로서 라우팅될 수 있다는 것이 항상 해당된다(매트릭스가 디스조인트, 유니버셜 또는 윌톤인지에 무관함). 이러한 동일-채널-라우팅은 열들 및 행들 둘 다에 대해 발생한다. 따라서, 주어진 채널에 대한 북쪽 입력은 그 채널의 남쪽 출력으로 항상 라우팅될 수 있다. 반대로, 주어진 채널에 대한 남쪽 입력은 항상 그 채널의 북쪽 출력으로 라우팅될 수 있다. 유사한 라우팅이 서쪽 및 동쪽 입력들에 관한 동쪽 및 서쪽 출력들에 대해 참(true)이다. 이에 따라 다른 채널에 대한 선택의 가능성은, 행 차원으로부터 열 차원으로 또는 그 반대로 스위칭할 때만 존재한다. 3:1 멀티플렉싱에 대한 입력들 중 하나는 이에 따라, 채널 번호 및 출력에 대한 대향하는 기본 방향에 의해 항상 결정된다.
[0018] 유니버셜 및 윌톤 스위치 매트릭스들이 디스조인트 접근법에 비해 라우팅 유연성을 갖지만, 그 유연성은 라우팅 복잡함(routing complication)의 비용을 지불하게 한다. 예를 들어, 위에서 논의된 유니버셜 스위치 매트릭스 예에서 채널 4 북쪽 출력에 관하여 채널 0 서쪽 입력에 대한 선택 능력은, 스위칭 수단(예컨대 3:1 멀티플렉서)에 대한 채널 0 동쪽 입력이 개재 행 채널들(1, 2 및 3)을 적어도 스패닝해야 한다는 것을 의미한다. 이러한 스패닝에 대한 와이어 또는 리드(lead)는 버스 터닝에 관하여 위에서 논의된 바와 같이 남은 행 채널 라우팅으로부터 전기적으로 격리되어야 한다. 따라서, 유니버셜 매트릭스에서 채널 0 서쪽 입력으로부터 채널 4 북쪽 출력에 대한 멀티플렉서까지와 같은 스패닝 와이어는 이어서 비아들에 의해 커플링되었을 때 보통의 행 트래킹과 상이한 금속 층 상에서 라우팅되어야 한다. 이러한 버스 터닝은 레이아웃 및 설계를 상당히 복잡하게 한다.
[0019] 이에 따라, 연관된 라우팅 복잡도를 단순화하면서 라우팅 유연성을 제공할 수 있는 스위칭 패브릭 아키텍처에 대한 당 분야의 요구가 있다.
[0020] 대응하는 복수의 채널들로 라우팅하기 위한 복수의 채널 스위칭 회로들을 포함하는 스위치 패브릭이 제공된다. 스위치 패브릭은 반도체 기판에 통합되는 디바이스들로부터 형성된다. 스위치 패브릭은 이에 따라 반도체 기판의 표면 상의 풋프린트를 점유한다. 풋프린트의 각각의 사이드에 관하여, 스위치 패브릭은 대응하는 입력 도체들 상에서 복수의 채널들을 수신하고 대응하는 출력 도체들 상에서 복수의 채널들을 출력한다.
[0021] 입력 및 출력 도체들은 주어진 입력 도체에 대한 트랙이 대응하는 출력 도체에 대한 트랙이 되도록 반도체 기판에 인접한 급속 층들의 트랙들에 배열된다. 풋프린트에 대한 사이드들의 제 1 대향하는 쌍에 대한 입력 도체들 및 출력 도체들은, 각각의 제 1 트랙이 대응하는 채널에 대한 입력 및 출력 도체들을 전달하도록 복수의 채널들에 대응하는 복수의 제 1 트랙들에 배열된다.
[0022] 각각의 채널 스위칭 회로는 풋프린트의 각각의 사이드에 대한 출력 도체들로 그의 대응하는 채널을 라우팅하도록 구성된다. 채널 스위칭 회로들은, 각각의 제 1 트랙이 풋프린트에 대한 사이드들의 제 1 대향하는 쌍에 관한 대응하는 채널 스위칭 회로에 걸쳐 스패닝하도록 풋프린트에 관해 배열된다. 그러나 풋프린트에 대한 사이드들의 제 2 대향하는 쌍에 대한 입력 및 출력 도체들은, 사이드들의 제 2 대향하는 쌍에 관한 모든 채널 스위칭 회로들에 걸쳐 스패닝하는 제 2 트랙들에 배열된다.
[0023] 사이드들의 제 1 대향하는 쌍에 대한 대응하는 출력 도체들로 그의 대응하는 채널을 구동하는 각각의 채널 스위칭 회로에 관한 이러한 스위치 패브릭 레이아웃의 이점들 ― 제 2 트랙들의 입력 도체들이 각각의 채널 스위칭 회로에 걸쳐 모든 채널들을 전달하기 때문에, 채널 스위칭 회로는 제 2 트랙에서 원하는 채널의 입력 도체들로 적절한 비아들을 통하는 채널들 중에서 쉽게 선택할 수 있음 ― 에 주의한다. 어떠한 버스 터닝도 이에 따라 이러한 선택을 위해 필수적이지 않다. 또한, 채널 스위칭 회로들이 제 1 트랙들에 따라 풋프린트에 걸쳐 배열되기 때문에, 풋프린트에서 낭비되는 다이 공간이 없다. 결과적인 스위치 패브릭은 이에 따라 유리하게는, 채널 라우팅 복잡도를 크게 감소시면서도 밀집된다.
[0024] 도 1a는 예시적인 RICA(reconfigurable instruction cell array)에 대한 블록도이다.
[0025] 도 1b는 도 1a의 RICA에서 스위치 박스들의 어레이에 대한 블록도이다.
[0026] 도 1c는 도 1b의 스위치 박스에 대한 예시적인 출력 스위치 패브릭에 대한 블록도이다.
[0027] 도 2a는 디스조인트 스위치 매트릭스에 대한 행 및 열 채널 라우팅을 예시한다.
[0028] 도 2b는 유니버셜 스위치 매트릭스에 대한 행 및 열 채널 라우팅을 예시한다.
[0029] 도 2c는 윌톤 스위치 매트릭스에 대한 행 및 열 채널 라우팅을 예시한다.
[0030] 도 3a는 복수의 채널 스위칭 회로들을 포함하는 출력 스위치 패브릭에 대한 블록도이다.
[0031] 도 3b는 예시적인 출력 스위치 패브릭에 대한 채널 트랙 레이아웃을 예시한다.
[0032] 도 3c는 밀도 및 라우팅 복잡도 감소를 달성하기 위해 최적화되지 않은 채널 스위칭 회로들에 의해 점유되는 반도체 기판 풋프린트들을 예시한다.
[0033] 도 4a는 출력 스위치 패브릭에 대한 예시적인 멀티플렉서 인터리빙을 예시한다.
[0034] 도 4b는 출력 스위치 패브릭에서 채널 스위치 회로의 타일링을 예시한다.
[0035] 도 5는 예시적인 스위치 박스의 블록도이다.
[0036] 도 6은 예시적인 출력 스위치 패브릭에 대한 채널 라우팅을 예시한다.
[0037] 도 7은 채널 스위치 회로에 대한 반도체 표면 풋프린트에 관한 채널 트랙 레이아웃을 도시하기 위한 채널 스위치 회로의 단면도이다.
[0038] 도 8은 채널 라우팅의 예시적인 방법에 대한 흐름도이다.
[0039] 본 발명의 실시예들 및 그 이점들은 이어지는 상세한 설명을 참조함으로써 가장 잘 이해된다. 유사한 참조 번호들은 도면들 중 하나 이상에서 예시된 유사한 엘리먼트들을 식별하는데 이용된다는 것이 인지되어야 한다.
[0025] 도 1b는 도 1a의 RICA에서 스위치 박스들의 어레이에 대한 블록도이다.
[0026] 도 1c는 도 1b의 스위치 박스에 대한 예시적인 출력 스위치 패브릭에 대한 블록도이다.
[0027] 도 2a는 디스조인트 스위치 매트릭스에 대한 행 및 열 채널 라우팅을 예시한다.
[0028] 도 2b는 유니버셜 스위치 매트릭스에 대한 행 및 열 채널 라우팅을 예시한다.
[0029] 도 2c는 윌톤 스위치 매트릭스에 대한 행 및 열 채널 라우팅을 예시한다.
[0030] 도 3a는 복수의 채널 스위칭 회로들을 포함하는 출력 스위치 패브릭에 대한 블록도이다.
[0031] 도 3b는 예시적인 출력 스위치 패브릭에 대한 채널 트랙 레이아웃을 예시한다.
[0032] 도 3c는 밀도 및 라우팅 복잡도 감소를 달성하기 위해 최적화되지 않은 채널 스위칭 회로들에 의해 점유되는 반도체 기판 풋프린트들을 예시한다.
[0033] 도 4a는 출력 스위치 패브릭에 대한 예시적인 멀티플렉서 인터리빙을 예시한다.
[0034] 도 4b는 출력 스위치 패브릭에서 채널 스위치 회로의 타일링을 예시한다.
[0035] 도 5는 예시적인 스위치 박스의 블록도이다.
[0036] 도 6은 예시적인 출력 스위치 패브릭에 대한 채널 라우팅을 예시한다.
[0037] 도 7은 채널 스위치 회로에 대한 반도체 표면 풋프린트에 관한 채널 트랙 레이아웃을 도시하기 위한 채널 스위치 회로의 단면도이다.
[0038] 도 8은 채널 라우팅의 예시적인 방법에 대한 흐름도이다.
[0039] 본 발명의 실시예들 및 그 이점들은 이어지는 상세한 설명을 참조함으로써 가장 잘 이해된다. 유사한 참조 번호들은 도면들 중 하나 이상에서 예시된 유사한 엘리먼트들을 식별하는데 이용된다는 것이 인지되어야 한다.
[0040] 당 분야의 이러한 요구를 충족시키기 위해, 개선된 스위치 패브릭 아키텍처가 개시된다. 이 아키텍처는 RICA에 관하여 설명될 것이지만, 그것은 예컨대, 행들 및 열들 간에 채널들을 스위칭하는 다른 시스템들 및 회로들에 폭넓게 응용 가능하다는 것이 인지될 것이다. 버스 터닝에 대한 요구를 제거하기 위해, 개시된 출력 스위치 패브릭은 본 명세서에서 추가로 설명되는 바와 같이 "멀티플렉서들을 다른 와이어들로 유도"한다.
[0041] 대조적으로, 재차 도 1c의 스위칭 회로들에서 그룹핑된 멀티플렉서들을 재차 고려한다. 멀티플렉서들은 이들이 구동하는 채널 방향에 따라 그룹핑되기 때문에, "와이어들은 멀티플렉서들로 유도한다". 그것에 관하여, 각각의 채널이 통상적으로 임의의 비트 폭을 갖더라도, 본 명세서에서 개시되는 스위칭 패브릭 원리들은 단지 1 비트 폭인 채널들에 대한 응용을 포함한다. 채널 폭을 고려하여, 각각의 채널은 대응하는 입력 도체들을 포함하는 입력 버스 상의 개시된 스위칭 패브릭으로 라우팅될 수 있다. 입력 버스는 채널의 비트 폭과 동일한 수의 입력 도체들(와이어들로서 표시될 수 있음)을 가질 것이다. 예를 들어, 채널이 8 비트 폭인 경우, 각각의 입력 버스는 8개의 입력 도체들을 포함할 것이다. 출력 도체들로 구성된 유사한 출력 버스는 출력 방향에서 출력 스위칭 패브릭으로부터 각각의 채널을 전도하는데 이용될 것이다.
[0042] 출력 스위칭 패브릭(150)에 대해 위에서 논의된 버스 터닝은, 대응하는 입력 버스가 다른 채널들에 대한 입력 버스들을 통해 멀티플렉서들까지 스패닝하도록 요구한다. 예를 들어, 남쪽 스위칭 회로(155)가 서쪽 입력 채널로부터 선택해야 하는 경우, 선택된 서쪽 입력 채널에 대한 입력 버스는 남쪽 스위칭 회로(155)의 멀티플렉서들까지 남쪽 입력 채널들을 통해 스패닝해야 한다. 이러한 점에서, 서쪽 입력 채널에 대한 와이어들은 "멀티플렉서들이 된다".
[0043] 개선된 출력 스위치 패브릭들은 멀티플렉서들이 버스 교차점들에 대응하게 로케이팅된다는 점에서 이러한 버스 터닝에 대한 요구를 제거한다. 그것에 관하여, 입력 채널 버스는 행 및 열 방향들에 대한 트랙들에서 이동한다. 주어진 입력 버스에 대한 트랙은 대응하는 출력 버스에 대한 트랙이 된다. 유리한 밀도 증가 및 라우팅 복잡도 감소를 획득하기 위해, 멀티플렉서들은 그룹핑되기 보단 인터리빙된다. 이러한 인터리빙은 복수의 채널들에 대한 행 및 열 라우팅에 관하여 설명될 것이다. 그것에 관하여, 어떤 것이 "열" 인지 대 어떤 것이 "행"인지는 단순히 관점의 문제이다. 따라서, 행 및 열이라는 용어들은 보편성의 손실 없이 본 명세서에서 이용된다. 행 방향들에 대한 입력 및 출력 버스들은 행 트랙들에 배열되는 반면에, 열 방향에 대한 입력 및 출력 버스들은 열 트랙들에 배열된다. 출력 스위치 패브릭은 반도체 기판에 통합된 디바이스들을 포함하지만, 입력 및 출력 버스들은 반도체 기판에 대한 활성 표면에 인접한 대응하는 금속 층들의 트랙들에서 이동한다. 반도체 기판 표면에 관한 트랙들의 결과적인 어레인지먼트(arrangement)는 도 7에 관하여 아래에서 추가로 논의된다.
[0044] 스위치 패브릭(150)에 관하여 논의된 바와 같이 한 위치에서 임의의 주어진 기본 방향에 대한 모든 멀티플렉서들을 그룹핑하는 것과 대조적으로, 본 명세서에서 개시되는 유리한 출력 스위치 패브릭들은 인터리빙된 멀티플렉서들을 갖는다. 그것에 관하여, 출력 스위치 패브릭(150)의 스위칭 회로들을 분해하고 대응하는 멀티플렉서들을 인터리빙하여 도 3a에서 도시된 바와 같은 출력 스위치 패브릭을 형성할 수 있다고 가정하여 개념적으로 예시된다. 예시 명확성을 위해, 도 3a의 출력 스위치 패브릭은 단지 4개의 채널들: A, B, C 및 D에 관하여 스위칭하도록 구성된다.
[0045] 집적 회로 분야들에서 알려진 바와 같이, 주어진 시스템 또는 컴포넌트는 특정한 양의 다이 공간을 점유할 것이다. 이 다이 공간은 주어진 회로에 의해 점유되는 반도체 표면 영역이고, 풋프린트로서 또한 표시된다. 본 명세서에서의 멀티플렉서 인터리빙 원리들은 회로들 및 대응하는 채널 라우팅의 물리적 배치 또는 레이아웃에 관련되므로, 도 3a의 출력 스위치 패브릭은 그의 풋프린트(300)에 의해 표현된다. 그러나 본 명세서에서 개시된 멀티플렉서 인터리빙 원리들은 또한 회로 기능에 관련되므로, 풋프린트(300)는 또한 출력 스위치 패브릭(300)으로서 지칭될 것이다. 즉, 본 명세서에서 개시된 바와 같이, 회로들 및 그의 풋프린트들은 동일한 엘리먼트 번호로 지칭될 것이다. 각각의 채널은 그 채널에 대한 출력 버스들을 구동하는 대응하는 스위칭 회로를 갖는다. 따라서, 채널 A 스위칭 회로(305)는 채널 A에 대한 출력 버스들을 구동하도록 구성되고, 채널 B 스위칭 회로(310)는 채널 B에 대한 출력 버스들을 구동하도록 구성되고, 채널 C 스위칭 회로(315)는 채널 C에 대한 출력 버스들을 구동하도록 구성된다. 유사하게, 채널 D 스위칭 회로(320)는 채널 D에 대한 출력 버스들을 구동하도록 구성된다.
[0046] 각각의 채널 스위칭 회로는 특정한 양의 다이 공간을 점유한다. 채널에 대한 행 및 열 버스들은 반도체 다이의 표면에 인접한 금속 층들 내의 트랙들에서 라우팅된다. 예를 들어, 채널 A에 대한 서쪽 입력 버스(325)에 대한 트랙은 채널 A 스위칭 회로(305)의 폭에 걸쳐 스패닝한다. 동일한 트랙이 결국, 채널 A에 대한 동쪽 출력 버스(330)에 대한 트랙이 된다. 유사하게, 채널 A에 대한 동쪽 입력 버스(335)는 채널 A 스위칭 회로(305)에 걸쳐 스패닝하여서, 동일한 트랙이 채널 A에 대한 서쪽 출력 버스(340)에 대한 트랙이 된다. 남은 행 버스들은 그의 트랙들이 그 각각의 채널 스위칭 회로를 스패닝하도록 이격된다. 예를 들어, 채널 D에 대한 서쪽 입력 버스(345)에 대한 트랙은 채널 D 스위칭 회로(320)에 걸쳐 스패닝하고 채널 D에 대한 동쪽 출력 버스(350)에 대한 트랙이 된다. 그것에 관하여, 각각의 채널 스위칭 회로는 그것이 점유하는 다이 공간 또는 풋프린트에 관하여 열 방향에서 특정한 높이(H)를 갖는다. 행 방향들에서 채널들에 대한 트랙은 이에 따라 적어도 채널 스위칭 회로 높이(H)만큼 이격된다.
[0047] 행 채널 간격에 대조적으로, 열 버스들에 대한 트랙들은 각각의 열 버스의 트랙이 모든 채널 스위칭 회로들에 걸쳐 스패닝하도록 배열된다. 각각의 채널 스위칭 회로가 이에 따라 열 방향에서 모든 채널들에 의해 스패닝되기 때문에, 북쪽 및 남쪽 방향들에서 분리된 채널의 트랙들은 도시되지 않는다. 예를 들어, 트랙(355)은 모든 채널들에 대한 북쪽 입력 버스들에 대한 트랙들을 기호화한다. 트랙(355)은 모든 채널 스위칭 회로들에 걸쳐 스패닝하고 모든 채널들에 대하여 남쪽 출력 버스들에 대한 트랙(355)으로서 종료한다. 남쪽 입력 및 북쪽 출력 버스들에 대한 트랙은 유사하게 풋프린트(300)를 스패닝한다.
[0048] 각각의 채널 스위칭 회로는 대응하는 채널에 대한 출력 버스들을 구동하도록 대응하는 멀티플렉서들을 포함한다. 이들 멀티플렉서들은 이들이 구동하는 기본 방향에 의해 표시될 수 있다. 따라서, 남쪽 스위칭 회로(155)의 남쪽 멀티플렉서들은 함께 그룹핑되는 반면에, 스위치 패브릭(300)에 대한 남쪽 출력 도체들을 구동하는 대응하는 남쪽 멀티플렉서들은 채널들에 의해 분산되고 각각의 채널 스위칭 회로에 상응하게 배치될 것이다. 동쪽 스위칭 회로(160), 서쪽 스위칭 회로(165), 및 북쪽 스위칭 회로(170)로부터의 대응하는 멀티플렉서들은 또한 채널들에 의해 분산되고 각각의 채널 스위칭 회로에 상응하게 배치될 것이다. 이러한 방식으로, 각각의 채널 스위칭 회로는 대응하는 방향들에서 대응하는 채널의 출력 버스들을 구동하기 위해 북쪽, 남쪽, 동쪽, 및 서쪽 멀티플렉서들의 인터리빙된 선택을 포함한다.
[0049] 북쪽, 남쪽 동쪽 및 서쪽 방향들의 지정은 단지 대응하는 스위치 패브릭 풋프린트 사이드를 참조하며, 나침판에 의해 정의된 바와 같은 방향들을 지정하는데 이용되진 않는다는 것이 인지될 것이다. 그것에 관하여, 풋프린트(300)는 보다 일반적으로, 4개의 사이드들을 갖는 것으로 고려될 수 있다. 각각의 사이드는 채널들에 대한 입력 도체들을 수용한다. 4개의 사이드들로부터의 출력 도체들은 대응하는 채널 스위칭 회로에 의해 구동된다. 예를 들어, 채널 A 스위칭 회로(305)는 입력 도체들로서 선택될 때 그의 대응하는 채널로 모든 4개의 사이드들에 대한 출력 도체들을 구동한다. 사이드들의 제 1 대향하는 쌍(이 예에서, 동쪽 및 서쪽)에 관하여, 입력 및 출력 도체들은 적절한 금속 층(또는 층들)에 형성되는 제 1 트랙들에서 채널들에 의해 배열된다. 이들 제 1 트랙들은 대응하는 채널 스위칭 회로의 폭을 스패닝한다. 대조적으로, 사이드들의 제 2 대향하는 쌍(이 예에서, 북쪽 및 남쪽)에 대한 입력 및 출력 도체들은 그 자신의 적절한 금속 층(또는 층들)에 형성되는 제 2 트랙들에서 비트들에 의해 배열된다. 제 2 트랙은 모든 채널 스위칭 회로들에 걸쳐 스패닝한다.
[0050] 각각의 채널은 통상적으로 단지 1 비트보단 더 넓을 것이란 점에 주의한다. 주어진 채널에 대한 각각의 비트는 대응하는 행 또는 열 입력 도체에 의해 출력 스위칭 패브릭으로 전달된다. 유사하게, 주어진 채널에 대한 각각의 비트는 대응하는 행 또는 열 출력 도체에 의해 출력 스위칭 패브릭으로부터 전달된다. 스위치 매트릭스(300)에 대해, 열 차원(북쪽 및 남쪽 둘 다)의 입력 및 출력 도체들은 임의의 주어진 채널에 관하여 비트들에 의해 배열된다. 역으로, 행 차원(동쪽 및 서쪽)의 입력 및 출력 도체들은 채널들에 의해 배열된다. 예를 들어, 0 내지 2로 넘버링된 3개의 채널들이 있으며, 각각의 채널은 2 비트의 워드 폭을 갖는다고 가정하자. 행들이 임의의 주어진 채널에 대해 비트들 면에서 연속적이 되도록 배열되고, 워드 폭이 2 비트들인 경우, 결과적인 행 및 채널 라우팅은 도 3b에서 도시된 바와 같다. 예시 명확성을 위해, 도 3b는 남쪽 입력 도체들 및 서쪽 출력 도체들 만을 도시한다. 서쪽 출력 도체들은 행들을 형성하는 반면에, 남쪽 입력 도체들은 열들을 형성한다. 그것에 관하여, 무엇이 "행"인지 대 무엇이 "열"인지는 단순히 관점의 문제이어서, 행 및 열 도체들은 이러한 방식으로 배열된다는 가정은 제한적이지 않다. 중요한 것은 하나의 차원이 채널들에 의해 배열되고 다른 것은 비트들에 의해 배열된다는 것이다.
[0051] 디스조인트 스위칭 매트릭스에서, 열들 및 행들은 이러한 방식으로 배열될 필요가 없다. 그러나 유니버셜 또는 윌톤 스위칭 매트릭스에 관하여 먼저 논의된 바와 같이 더 많은 라우팅 유연성이 필요하다고 가정하자. 열들이 행들과 마찬가지로 채널들에 의해 또한 배열되는 경우, 결과적인 채널 스위칭 회로들은 상응하게 이격되어야 한다. 예를 들어, 도 3c는 행들 및 열들이 둘 다 채널들에 의해 배열되는 채널 스위칭 회로들의 예시적인 어레인지먼트를 도시한다. 예시 명확성을 위해, 단지 2개의 채널들: 채널 A 및 B가 행 및 열 차원들에서 도시된다. 채널 A 스위칭 회로(360)는 열 및 행 차원들 둘 다에서 채널 A에 대한 트랙들에 의해 스패닝되는 다이 공간을 점유한다. 유사하게, 채널 B 스위칭 회로(370)는 행 및 열 차원들 둘 다에서 채널 B에 대한 트랙들에 의해 스패닝되는 다이 공간을 점유한다.
[0052] 그러나 행 및 열들 둘 다가 채널들에 의해 배열되기 때문에, 채널 B 스위칭 회로 풋프린트(370)는 채널 A 스위칭 회로 풋프린트(360)에 관하여 행 차원에서 이격되어야 하는 다이 공간을 점유하여서, 다이 공간들(375 및 380)은 비어있게 된다. 이러한 간격은, 채널 스위칭 회로가 다른 채널들의 구동에 관하여 어떠한 기능도 갖지 않기 때문에 발생한다. 대신, 채널 스위칭 회로는 그 자신의 채널만을 구동할 수 있다. 따라서, 채널 스위칭 회로의 채널을 구동하기 위한 멀티플렉서들은 그 채널에 대한 트랙들에 로케이팅된다. 결과적인 비점유 다이 공간은 물론 값비싸며 회로 밀도를 줄인다. 대조적으로 출력 스위치 패브릭(300)은 이러한 낭비되는 다이 공간을 갖지 않으며, 이에 따라 유리하게는, 밀집된다. 채널들이 열 방향에서 비트들에 의해 배열되기 때문에, 주어진 채널에 대한 입력 및 출력 도체들은 각각의 채널 스위칭 회로의 폭에 걸쳐 스패닝한다. 이는 본 명세서에서 추가로 논의되는 바와 같이, 유리한 멀티플렉서 타일링 또는 인터리빙을 발생시킨다. 이러한 인터리빙에서, 스위치 패브릭 풋프린트 내에 미사용되는 반도체 영역이 있을 필요가 없다.
[0053] 앞서 논의된 바와 같이, 도 3b는 열 버스들이 비트들에 의해 어떻게 배열되는지, 반면에 행 버스들이 채널들에 의해 어떻게 배열되는지를 예시한다. 예시된 남쪽 입력 도체들로부터 서쪽 출력 도체들까지의 라우팅은 이에 따라 크게 단순화된다. 예를 들어, 서쪽 출력 채널 0으로 비트 0을 구동하도록 구성되는 서쪽 멀티플렉서(385)는 모든 3개의 채널들에 대한 남쪽 입력 비트 0에 대한 트랙에 의해 스패닝되는 다이 공간(385)을 점유할 수 있다. 선택된 채널(예를 들어, 채널 2)은 이에 따라, 단지, 채널 2에 대한 남쪽 입력 비트 0에 대한 입력 도체로부터 다이 공간(385)으로 연장하는 비아를 통해 서쪽 멀티플렉서(385)에 쉽게 커플링될 수 있다. 따라서, 비트 0에 대한 남쪽 입력 채널들에 대한 와이어가 대응하는 트랙에서 모두 서쪽 멀티플렉서(385)가 되기 때문에 채널 스패닝 또는 버스 터닝의 복잡함이 없다. 비트 1에 대한 유사한 서쪽 멀티플렉서(390)는 남쪽 입력 채널들에 대한 비트 1 트랙에 의해 스패닝되는 다이 공간(390)을 점유한다. 따라서, 도 3c에 관하여 논의되는 바와 같이 채널들에 의해 차원들 중 하나를 배열하고, 비트들에 의해 다른 하나를 배열하는 것은 비-디스조인트 라우팅 방식들에서 라우팅 복잡도를 감소시키면서도 도 3a에 관하여 논의된 밀도를 달성한다.
[0054] 그러나 이러한 스패닝 감소는 단지 열 입력들(또는 채널들 대신 비트들로 배열되는 어느 차원에서든)에 대해서만 발생한다는 것에 주의한다. 예를 들어, 도 3a의 채널 A 스위칭 회로(305)에 대한 채널 A 북쪽 출력을 구동하는 북쪽 멀티플렉서들은 행 차원에 관하여 채널 A를 위한 입력 및 출력 도체들에 대한 트랙에 의해서만 스패닝된다. 채널 B에 대한 서쪽 입력과 같은 다른 채널들 중 하나가 채널 A 북쪽 출력으로 라우팅되도록 데이터 경로 라우팅이 요구하면, 버스 터닝은 도 3a의 채널 A 및 B 행 트랙들 간에 연장하는 화살표(331)에 의해 표현된다. 그어나 이러한 버스 터닝은 열 차원의 상이한 채널들로의 행 차원의 채널의 라우팅에 대해서만 발생한다. 대조적으로, 어떠한 이러한 버스 터닝도, 행 차원의 채널들 중 임의의 것으로의 열 차원의 채널들 중 임의의 것의 라우팅에 대해 요구되지 않는다.
[0055] 본 명세서에서 개시된 스위칭 패브릭은, 북쪽 또는 남쪽 출력 채널들로의 동쪽 또는 서쪽 입력 채널들의 임의의 라우팅에 관하여, 행 선택에 대한 입력 채널 스팬이 1개를 초과하지 않는 채널로 제한되게 제한함으로써 일 실시예에서 채널 대 비트 라우팅 아키텍처를 이용한다. 즉, 북쪽 또는 남쪽 채널 i(여기서 i는 일부 임의의 채널 번호)로의 라우팅에 대해, 행 차원의 입력 채널은 입력 채널 i-1, 입력 채널 i 및 입력 채널 i+1로부터만 선택될 수 있다. 행 출력 채널들로 열 입력 채널을 라우팅하기 위한 채널 스팬은 단지 하나의 채널로만 제한될 필요가 없는데, 그 이유는 각각의 채널 스위칭 회로가 모든 열 입력 채널들에 대한 트랙들에 의해 스패닝되기 때문이다. 예를 들어, 도 3b의 라우팅 아키텍처가 10개의 채널들을 수용하도록 확장되는 경우, 임의의 행 출력 채널로의 열 입력 채널들에 관한 모든 10개의 채널들의 스패닝은 라우팅 및 레이아웃 요구들에 관하여 여전히 비교적 단순할 것이다.
[0056] 따라서, 일 실시예에서, 행 차원으로부터 열 차원으로 채널 선택을 위한 스팬은 하나의 채널로 제한될 수 있지만, 열 차원으로부터 행 차원으로 채널 선택을 위한 채널 스팬에 관하여 어떠한 제한도 부과되지 않는다. 그러나 테스트 및 구현을 통해, 열 입력들에 대한 이러한 제한없는 채널 스팬은 큰 의미가 있는 방식으로 성능에 부가되지 않는다는 것이 입증되었다. 따라서, 본 명세서에서 개시된 개선된 출력 스위치 패브릭에 대해 열 차원으로부터 행 차원까지의 채널 선택을 위한 스팬은 몇몇 실시예들에서, 채널 수 미만인 값으로 제한된다. 예를 들어, 10개의 채널 실시예에서, 열로부터 행 차원으로 채널 스위칭에 대한 스팬 제한은 5개의 채널들이 될 것이다.
[0057] 도 3a의 출력 스위치 패브릭(300)은 인터리빙된 북쪽, 남쪽, 동쪽, 및 서쪽 멀티플렉서들이 각각의 채널 스위칭 회로 내에서 도시되지 않는다는 점에서 개념적으로 예시된다. 도 4a는 출력 스위치 패브릭(400)에 대한 예시적인 멀티플렉서 인터리빙을 예시한다. 예시 목적들을 위해, 출력 스위치 패브릭(400)은 단지 2개의 채널들: C1 및 C2를 스위칭하도록 구성된다. 각각의 채널은 비트 B0 내지 비트 B2 범위의 3 비트 폭이다. 각각의 채널이 3 비트 폭이므로, 대응하는 채널 스위칭 회로들은 3개의 북쪽(N) 멀티플렉서들, 3개의 남쪽(S) 멀티플렉서들, 3개의 동쪽(E) 멀티플렉서들 및 개의 서쪽(W) 멀티플렉서들을 갖는다. C1 채널 스위칭 회로(405)는 4개의 기본 방향들에서 C1 출력 버스들을 구동하도록 구성된다. 유사하게, C2 채널 스위칭 회로(410)는 4개의 기본 방향들에서 C2 출력 버스들을 구동하도록 구성된다. 각각의 채널 스위칭 회로에서 동쪽 멀티플렉서들은 제 1 행을 형성하도록 북쪽 멀티플렉서들과 인터리빙된다. 유사하게, 각각의 채널 스위칭 회로에서 서쪽 멀티플렉서들은 제 1 행 아래에 제 2 행을 형성하도록 남쪽 멀티플렉서들과 인터리빙된다. 이들 행들은 대응하는 행 버스들에 대한 트랙들에 대응한다. 주어진 채널 스위칭 회로에서 북쪽 및 동쪽 멀티플렉서들에 의해 형성되는 제 1 행에 대한 다이 공간은 대응하는 채널에 대한 서쪽 입력 버스 및 동쪽 출력 버스에 대한 트랙에 의해 스패닝된다. 예를 들어, C1 채널 스위칭 회로(405)에서 북쪽 및 동쪽 멀티플렉서들에 의해 점유되는 다이 공간은 C1 서쪽 입력 버스 및 C1 동쪽 출력 버스에 대한 대응하는 금속 층(또는 층들)의 트랙에 의해 스패닝된다. 각각의 버스는 3 비트 폭이기 때문에, 이들 버스들에 대한 트랙은, 그것이 3개의 별개의 도체들 또는 와이어들을 수용하게 된다. 유사한 트랙은 채널 C1에 대한 동쪽 입력 버스 및 서쪽 출력 버스에 대한 도체들을 수용하도록 C1 채널 스위칭 회로(415)에 대한 서쪽 및 남쪽 멀티플렉서들의 제 2 행에 의해 점유되는 다이 공간을 걸쳐 스패닝한다. 스위치 패브릭(400)에 대한 인터리빙 순서는 대안적인 실시예들에서 재배열될 수 있다.
[0058] 본 명세서에서 이용된 바와 같이, "트랙"은 도체들의 특정 세트들에 전용되는 임의의 주어진 금속 층에서의 공간을 지칭한다. 예를 들어, 주어진 채널에 대한 행 도체들을 위한 트랙은 대응하는 채널 스위칭 회로를 스패닝한다. 행 방향에서의 채널 C1에 대해, 그의 트랙은 채널 스위칭 회로(405)에 걸쳐 스패닝한다. 그러나 동쪽 입력 및 서쪽 출력과 같은 특정한 행 방향을 참조하여, 채널 C1에 대한 행 도체들에 대한 전체 트랙은 2개의 더 작은 트랙들: 서쪽 입력 및 동쪽 출력 도체들에 대한 트랙 및 동쪽 입력 및 서쪽 출력 도체들에 대한 트랙으로 구성된다. 그러나 이들 트랙들에 대해 공통적인 것은, 이들이 도체들의 특정 세트에 전용되는 주어진 금속층(또는 금속층들)의 공간을 정의한다는 것이다.
[0059] 특정한 인터리빙 순서와 무관하게, 각각의 채널 스위칭 회로는 채널 A 스위칭 회로(415)에 대해 도 4b에서 도시된 것과 같이 타일들의 행을 형성하는 것으로 간주될 수 있다. 이 실시예에서, 채널 A는 비트 B0 내지 비트 BN 범위의 N 비트 폭이며, 여기서 N는 임의의 양의 정수이다. 이에 따라, N 비트들에 대응하는 N개의 타일들이 있다. 각각의 타일은 대응하는 비트에 대한 4개의 멀티플렉서를 포함할 것이다. 예를 들어, 제 1 타일(B0)은 채널 A에 대한 B0 북쪽 출력 도체를 구동하도록 북쪽 멀티플렉서, 채널 A에 대한 B0 남쪽 출력 도체를 구동하도록 남쪽 멀티플렉서, 채널 A에 대한 B0 서쪽 출력 도체를 구동하도록 서쪽 멀티플렉서 및 채널 B에 대한 B0 동쪽 출력 도체를 구동하도록 동쪽 멀티플렉서를 포함할 것이다.
[0060] 스위치 패브릭(400)을 재차 참조하면, 결과적인 타일들은 비트들에 따라 열들로 스택된다. 3개의 비트들이 있기 때문에, 각각의 스위칭 패브릭은 멀티플렉서들의 3개의 타일들을 포함한다. 채널 C1 스위칭 회로(405)는 3 비트에 대응하는 타일(C1-B0), 타일(C1-B1), 타일(C1-B2)을 각각 포함한다. 멀티플렉서들에 대한 북쪽, 남쪽, 동쪽, 및 서쪽 지정들은 각각 N, S, E, 및 W로서 축약된다. 예를 들어, 채널 C1 스위칭 회로(405)에 대한 C1-B0 타일은 N 멀티플렉서(C1-B0), E 멀티플렉서(C1-B0), W 멀티플렉서(C1-B0) 및 S 멀티플렉서(C1-B0)를 포함한다. 유사하게, 채널 C2 스위칭 회로(410)에 대한 C2-B0 타일은 N 멀티플렉서(C2-B0), E 멀티플렉서(C2-B0), W 멀티플렉서(C2-B0) 및 S 멀티플렉서(C2-B0)를 포함한다. 모든 채널들에 대한 B0를 수용하는 비트 트랙은 열 차원에서 타일들(C1-B0 및 C2-B0)에 대한 다이 공간 위를 통과(pass)한다. 이 실시예에서 단지 2개의 채널들만이 있기 때문에, 북쪽 및 남쪽 방향들의 각각의 비트에 대해 단지 2개의 도체들만이 있다. 행 방향의 채널 트랙처럼, 열 방향의 비트 트랙은 사실상 2개의 개별 트랙들을 포함할 수 있다. 예를 들어, 모든 채널들에 대한 남쪽 입력 및 북쪽 출력에 대한 비트 0에 대한 트랙은 대응하는 금속층(또는 층) 내의 타일들(C1-B0 및 C2-B0)에서 W 및 N 멀티플렉서들을 스패닝한다. 이 트랙은 도체들의 대응하는 쌍을 수용하기에 충분히 넓다. 유사한 트랙은 비트들(C1-B0 및 C2-B0)에 대한 북쪽 입력 도체들 및 이들 동일 비트들에 대한 남쪽 출력 도체들을 수용하도록 타일들(C1-B0 및 C2-B0)에서 E 및 S 멀티플렉서들 위를 통과한다. 일반적으로, 각각의 채널 스위칭 회로에서 i번째 타일은 i번째 비트에 대한 열 트랙들에 의해 스패닝되며, 여기서 i는 채널들에 대한 임의의 비트를 나타낸다.
[0061] 각각의 채널 스위칭 회로가 그의 대응하는 채널에 대한 출력 도체들을 구동하기 때문에, 출력 도체들은 각각의 채널 스위칭 회로에 관하여 정의된다. 예를 들어, C1-B0 남쪽에 대한 출력 도체는 점선(420)에 의해 표시된 바와 같이 S 멀티플렉서(C1-B0)에서 시작한다.
[0062] 도 1b를 재차 참조하면, 각각의 스위치 박스는 2개의 행 사이드들(동쪽 및 서쪽) 및 2개의 열 사이드들(북쪽 및 남쪽)을 갖는 것으로 고려될 수 있다. 스위치 박스들의 결과적인 어레이는 대응하는 행들 및 열들에 의해 또한 배열된다. 각각의 스위치 박스는 본 명세서에서 논의된 바와 같이 행 및 열 방향들에서 채널들을 라우팅하도록 출력 스위치 패브릭을 포함한다. 그것에 관하여, 스위치 패브릭은 스위치 박스의 4개의 사이드들에 관해 채널들을 라우팅하도록 구성된다. 이러한 라우팅은 출력 스위치 패브릭의 풋프린트의 4개의 사이드들에 관한 라우팅과 등가이다. 각각의 스위치 박스가 명령 셀을 포함하므로, 각각의 스위치 박스에 대한 출력 스위치 패브릭은 2개의 옵션들을 갖는데: 그것은 일부 이웃하는 스위치 박스의 출력 스위치 패브릭에 의해 구동되는 입력 채널을 라우팅할 수 있거나, 또는 그것은 그 자신의 명령 셀 출력 신호를 라우팅할 수 있다. 도 4a를 채자 참조하면, 출력 스위치 패브릭(400)은 도 1b의 대응하는 스위치 박스 내에서 구현될 수 있다. 각각의 멀티플렉서는 이에 따라 4:1 멀티플렉서일 수 있다. 입력들 중 3개는 위에서 논의된 채널 입력들이다. 각각의 4:1 멀티플렉서에 대한 제 4 입력은 대응하는 스위치 박스의 명령 셀로부터의 명령 셀 출력이다.
[0063] 스위칭 패브릭의 설계를 추가로 단순화하고 최적화하기 위해, 채널들은 등록된 채널들의 세트 및 어떠한 저장 용량도 갖지 않는 채널들의 세트로 세그멘팅된다. 일 실시예에서, 출력 스위칭 패브릭은, 등록된 채널들만이 다른 등록된 채널들로 라우팅할 수 있다는 점에서 레지스터-도메인 분리를 시행한다. 이러한 레지스터-도메인 분리는 각각의 도메인들 내의 라우팅 능력을 증가시킨다.
[0064] 또 다른 최적화는 채널 도달 가능성, 즉 채널로부터 채널까지 충분한 수의 홉들을 통해, 모든 채널들이 도달 가능하다는 것을 보장하도록 스위칭 패브릭에 요구함으로써 발생한다. 도달 가능성의 이러한 요건을 고려하여, 스위칭 패브릭은 필요한 채널 홉들의 수를 최소화하도록 최적화된다. 또한, 4개의 홉들 이후 동일한 채널로 역으로 라우팅하는 적어도 하나의 순환 경로가 출력 채널 마다 있어야 한다. 주어진 채널 수 및 워드 폭에 대해, 다양한 스위칭 패브릭들은 행 차원의 채널들로부터 열 차원의 채널들로 스위칭하기 위한 1-채널 스팬, 열 차원의 채널들을 행 차원의 채널들로 스위칭하기 위한 채널들의 총 수 미만의 채널 스팬, 레지스터-도메인 분리, 도달 가능성을 갖는 최소화된 홉들, 순환 경로 실시예 요건들을 만족하도록 구현될 수 있다는 것이 인지될 것이다.
[0065] 임의의 주어진 채널 출력에 대한 채널 입력 선택에 관하여, 3:1 멀티플렉서는 위에서 논의된 바와 같이 충분하다. 그러나 도 1b에 관하여 논의된 것과 같은 RICA 실시예에서, 명령 셀 출력에 대해 선택하는 것이 또한 필요하다. 따라서, 각각의 스위치 패브릭 풋프린트 사이드에 대해 RICA 실시예의 각각의 출력 도체는 3개의 남은 풋프린트 사이드들로의 입력들 및 명령 셀 출력 신호 중에서 선택하는 4:1 멀티플렉서에 의해 구동될 수 있다. 사이드(동쪽, 서쪽, 북쪽, 및 남쪽 방향들) 당 5개의 채널들을 갖는 예시적인 스위치 박스(SBOX)(500)에 대한 결과적인 채널 스위칭은 도 5에서 도시된다. 이 실시예에서, 각각의 채널은 1 바이트 폭(8 비트들)이다. 따라서, SBOX(500)로 들어가는 것들 중에서의 선택을 위해 5 채널/사이드 * 4 사이드들((동쪽, 서쪽, 북쪽, 및 남쪽 방향들에 대응함) * 1 바이트/채널 = 20 바이트들은 물론 SBOX(500)로부터의 전파에 관한 것 중에서의 선택을 위해 20 바이트들이 있다. 이 실시예에서, 스위치 박스(500)와 연관된 명령 셀(505)은 각각의 클록 사이클 동안 4 바이트를 동시에 프로세싱한다(그의 피연산자는 그에 의해 4개의 8-비트 워드들임). 32-비트 폭 명령 셀 출력을 생성하기 위해 32-비트 폭 입력을 수신하는 명령 셀(505)이 그에 따라 도시된다. 이 32-비트 폭 입력의 선택은 SBOX(500)의 모든 사이드들 상의 채널 입력들에 관하여 이루어진다. 예를 들어, SBOX(500)는 이 선택을 위해 32개의 16:1 멀티플렉서들(510)을 포함할 수 있다. 도 2a-2c에 관하여 논의된 것처럼, 주어진 기본 방향의 채널 출력에 대해, 남은 기본 방향들에 관한 3:1 선택이 있다. 주어진 채널 출력에 대한 3개의 입력들 중 하나는 대향하는 기본 방향의 동일한 채널이다. 그러나 직교 방향들로부터 선택된 남은 2개의 채널 입력들은 위에서 논의된 목적들 및 규칙들을 충족하도록 선택된다. 또한, 명령 셀(505)로부터의 명령 셀 출력이 채널 출력을 구동할 수 있다는 점에서 제 4 선택의 가능성이 있다. 따라서, SBOX(500)에서 각각의 채널 비트 출력에 대한 선택은 4:1 멀티플렉서(515)에 의해 달성될 수 있다. 각각의 채널 출력 워드는 이 실시예에서 1 바이트 폭이며, 각각의 채널 출력 워드는 8개의 4:1 멀티플렉서들(515)을 요구한다.
[0066] 4:1 멀티플렉서들(415)의 수는 채널들의 수, 채널 폭, 명령 셀(405)에 의해 프로세싱되는 워드들의 수에 의존한다. 도 5에서 도시된 예에서, 명령 셀(505)로부터의 4개의 8-비트 워드들 중에서 선택할 수 있는 SBOX(500)의 각각의 사이드 당 5개의 8-비트 출력 채널들이 있어서, 이에 따라 이러한 실시예에 대해 각각의 기본 방향(SBOX(500)의 각각의 사이드) 마다, 8 바이트 * 4 바이트 * 5 채널들 = 160개의 4:1 멀티플렉서들(515)이 있게 될 것이다. 본 개시의 초점인 출력 스위칭 패브릭은 이에 따라 이들 멀티플렉서들 및 채널 입력들에 대한 스팬에 관련된다. 4:1 멀티플렉서(515)에 대한 각각의 채널 입력은 명령 셀(405)에 의해 제공되는 4 바이트들에 대응하는 32-비트 입력으로서 도시된다. 앞서 논의된 바와 같이, 각각의 멀티플렉서(515)에 대한 하나의 채널 입력(예를 들어, 채널 입력(525))은 채널 출력에 의해 결정된다. 예를 들어, 멀티플렉서(515)가 채널 번호 1에 대한 북쪽 출력을 위해 선택되는 경우, 채널 입력(525)은 채널 번호 1에 대한 남쪽 입력에 대응할 것이다. 보다 일반적으로, 채널 입력(525)은 채널 출력과 동일 채널이지만 대향하는 사이드 또는 기본 방향으로부터의 입력이다. 멀티플렉서(415)에 대한 남은 2개의 채널 입력들(530)은 직교 방향으로부터 온다. 예를 들어, 멀티플렉서(515)가 북쪽 방향의 채널 출력에 대해 선택하는 경우, 채널 입력들(530)은 동쪽 및 서쪽 채널 입력들에 대응할 것이다.
[0067] 채널 입력들(530)에 대한 선택은 앞서 논의된 목적들을 충족하도록 구현될 수 있다. 다수의 채널 맵핑들 또는 선택들은 이들 목적들을 충족한다는 것이 인지될 것이다. 10 채널 실시예에 대한 예시적인 채널 맵핑이 도 6에서 도시된다. 북쪽, 동쪽, 남쪽, 및 서쪽 채널 출력들에 대한 맵핑들이 도 6에서 별개로 도시된다. 예를 들어, "북쪽"의 표제를 갖는 맵핑은 제 1 열에서, 북쪽 방향의 10 채널 출력들을 나열한다. 위에서 논의된 바와 같이, 북쪽 및 남쪽 출력 채널들에 대한 동쪽 또는 서쪽 입력 채널은 몇몇 실시예들에서, 기껏해야 하나의 채널을 스패닝할 수 있다. 예를 들어, 채널 7에 대한 북쪽 출력은 채널 6에 대한 동쪽 입력에서 선택할 수 있다. 그러나 채널 7에 대한 북쪽 출력은 예를 들어, 채널 1에 대한 동쪽 입력으로부터 선택될 수 없다. 임의의 주어진 북쪽 출력으로의 남쪽 입력에 대한 채널 수는 그 북쪽 출력에 대한 채널 수와 물론 동일하다.
[0068] 동쪽 및 서쪽 채널 입력들로부터 북쪽 및 남쪽 채널 출력으로의 맵핑에 비해, 북쪽 및 남쪽 채널 입력들로부터 동쪽 및 서쪽 채널 출력으로의 채널 스위칭은 5 채널들과 같이 더 많은 채널 스팬을 갖는다. 예를 들어, 도 6의 "서쪽"의 표제 하에서, 10 채널들에 대한 서쪽 출력들이 있다. 채널 1에 대한 서쪽 출력은 채널 6에 대한 남쪽 입력으로부터 구동될 수 있으며, 이는 5 채널 스팬을 나타낸다. 그러나 이러한 스팬일 필요는 없으며, 이는 단지 최대치이다. 예를 들어, 채널 8에 대한 서쪽 출력은 채널 9에 대한 남쪽 입력에 의해 구동될 수 있으며, 이는 단지 1 채널 스팬이다.
[0069] 도 6 맵핑에서 "c"의 표제를 갖는 열은 채널 출력에 대한 명령 셀 출력을 라우팅하는 가용성을 나타낸다. 일반적으로, 채널 출력들 대부분은 명령 셀 출력(명령 셀 출력에서 선택될 수 있는 이들 채널 출력들은 "c" 열의 대응하는 행에서 "x"에 의해 지정됨)에서 선택될 수 있다. 그러나 더 큰 라우팅 유연성을 제공하기 위해 특정한 채널 출력들은 명령 셀 출력에 대해 선택하는 능력을 갖는 것이 아니라, 대신에 부가적인 채널 입력에 대해 선택할 수 있다. 예를 들어, 채널 5에 대한 북쪽 출력은 명령 셀 출력에 대해 선택하기 위한 능력을 갖는 것이 아니라 대신 채널 5에 대한 서쪽 입력에 대해 선택할 수 있다.
[0070] 앞서 논의된 바와 같이, 출력 스위칭 패브릭은 레지스터 도메인 분리를 또한 수용할 수 있어서, 채널들은 등록된(registered) 도메인 및 등록되지 않은(non-registered) 도메인으로 분할되게 된다. 각각의 스위치 박스는 이에 따라 대응하는 등록된 채널 출력들의 저장을 위한 레지스터들의 세트(예시되지 않음)를 포함할 수 있다. 예를 들어, 각각의 스위치 박스는 채널들(1, 2, 4, 6, 및 9)에서 남쪽 출력들에 대한 레지스터들과 연관되거나 이 레지스터들을 포함할 수 있다. 역으로, 각각의 스위치 박스는 채널들(0 3, 5, 7, 및 8)에서 남은 남쪽 출력들을 등록하기 위한 레지스터들을 갖지 않을 것인데, 그 이유는 이들 남은 남쪽 출력 채널들은 등록되지 않는 도메인에 있기 때문이다. (등록된 대 등록되지 않은) 각각의 도메인들 내에서 라우팅-능력을 증가시키기 위해, 등록된 채널로부터의 입력은 다른 등록된 채널들로만 맵핑될 수 있다.
[0071] 앞서 논의된 바와 같이, 본 명세서에서 개시된 출력 스위치 패브릭은 주어진 스위치 패브릭 풋프린트 사이드에 대한 멀티플렉서들의 그룹핑 및 버스 터닝의 결과적인 이용과 대조적으로, "멀티플렉서를 와이어들로 유도한다." 이 개념을 더 잘 인지하기 위해, 도 7에서 도시된 바와 같이 반도체 기판(705)에 통합되는 채널 스위칭 회로(700)에 대한 열 차원을 조사하는 단면도를 고려한다. 이 실시예에서, 3개의 채널들이 있으며, 각각은 비트 B0 내지 비트 B2 범위의 3 비트 폭이다. 채널 스위칭 회로(700)는 이에 따라 그의 채널에 대한 비트들에 대응하는 3개의 타일들(B0, B1 및 B2)을 포함한다. 반도체 분야들에서 알려진 바와 같이, 금속 층은 개재 절연 층들에 의해 기판(705)의 활성 표면(710)으로부터 분리된다. 타일들(B0, B1 및 B2)에서 다양한 멀티플렉서들을 구현하는 트랜지스터들(예시되지 않음)은 활성 표면(710)에 통합된다. 각각의 비트에 대한 열 입력 및 출력 도체들에 대한 트랙들은, 대응하는 타일들 위의 금속 층(mi)에서 스패닝한다. 도 7이 채널 스위칭 회로(700)의 폭(W)을 따른 단면을 도시하므로, 각각의 열 도체는 단면으로만 볼 수 있다. 대조적으로, 금속 층(Mj)의 대응하는 채널에 대한 행 도체(예시되지 않음)는 채널 스위칭 회로(700)에 대한 폭(W)을 스패닝한다. 각각의 타일은 이에 따라 열 차원에서 모든 채널들에 대한 대응하는 비트에 대한 트랙에 의해 직접 횡단되므로, 행 멀티플렉서(동쪽 또는 서쪽)는 타일(B1)에 대해 예시된 바와 같이 비아를 통해서만 열 도체에 커플링될 수 있다. 어떠한 버스 터닝도 이 커플링을 달성하는데 필수적이지 않다.
[0072] 도 8은 본 명세서에서 개시된 개선된 출력 스위치 패브릭들에 의해 실시되는 라우팅 방법에 대한 흐름도를 예시한다. 초기 단계(800)에서, 반도체 기판 상의 4-사이드 풋프린트를 갖는 스위치 패브릭은 각각의 풋프린트 사이드의 대응하는 입력 도체들 상에서 스위치 패브릭으로 복수의 채널들을 수용한다. 스위치 패브릭은 복수의 채널들에 대응하는 복수의 채널 스위칭 회로들로 구성된다. 단계(805)에서, 스위치 패브릭은 대응하는 출력 도체들 상의 스위칭 패브릭 풋프린트 사이드로부터 복수의 채널들을 라우팅한다. 풋프린트에 대한 사이드들의 제 1 대향하는 쌍에 관하여, 입력 및 출력 도체들은 채널들에 대응하는 제 1 트랙들에 배열되어서, 각각의 제 1 트랙은 대응하는 채널에 대한 입력 및 출력 도체들을 수용하고 대응하는 채널 스위칭 회로에 걸쳐 스패닝한다. 풋프린트에 대한 사이드들의 제 2 대향하는 쌍에 관하여, 모든 채널들에 대한 입력 및 출력 도체들은 모든 채널 스위칭 회로들에 걸쳐 스패닝하는 트랙들에 배열된다. 단계(810)에서, 각각의 풋프린트 사이드에 대해, 각각의 채널 스위칭 회로는 풋프린트의 남은 사이드들에 대한 입력 도체들 상에서 전도되는 채널에 대해 선택함으로써 대응하는 채널에 대한 출력 도체들을 구동한다.
[0073] 당업자들이 이제 인지할 바와 같이, 그리고 당면한 특정한 애플리케이션에 의존하여, 본 개시의 사상 및 범위로부터 벗어남 없이 본 개시의 디바이스들의 물질들, 장치, 구성들 및 이용 방법들 내에서 그리고 이들에 대해서 다수의 변형들, 교체들 및 변동들이 이루어질 수 있다. 이러한 견지에서, 본 개시의 범위는, 이들이 본 발명의 몇몇 예들일 뿐이므로, 본 명세서에서 예시되고 설명된 특정한 실시예들의 범위로 제한되어선 안 되고, 오히려, 이하 첨부된 청구항 및 그의 기능적 등가물들의 범위에 완전히 상응해야 한다.
Claims (25)
- 회로로서,
반도체 표면 상에 풋프린트(footprint)를 갖도록 구성된 스위치 패브릭(switch fabric) ― 상기 풋프린트는 4개의 사이드(side)들을 가짐 ― ;
상기 풋프린트의 각각의 사이드에 관하여 상기 스위치 패브릭으로 복수의 채널들을 전도하도록 구성된 복수의 입력 도체들 ― 각각의 채널은 동일한 비트들의 폭을 가짐 ― ;
상기 풋프린트의 각각의 사이드에 관하여 상기 스위치 패브릭으로부터 상기 복수의 채널들을 전도하도록 구성된 복수의 출력 도체들
을 포함하고,
상기 사이드들의 제 1 대향하는 쌍에 대한 입력 및 출력 도체들은 상기 채널들에 대응하는 제 1 트랙들에 배열되고, 상기 스위치 패브릭은, 상기 채널들에 대응하는 복수의 채널 스위칭 회로들을 포함하고, 각각의 제 1 트랙이 대응하는 채널 스위칭 회로를 스패닝(span)하도록 상기 풋프린트에 배열되고,
상기 풋프린트에 대한 사이드들의 제 2 대향하는 쌍에 대한 입력 및 출력 도체들은 각각의 제 2 트랙이 모든 채널 스위칭 회로들에 걸쳐 스패닝하도록 상기 비트들에 따라서 제 2 트랙들에 배열되고,
각각의 채널 스위칭 회로는 각각의 사이드에 대응하는 복수의 멀티플렉서들을 포함하고, 각각의 채널 스위칭 회로의 각각의 사이드의 대응하는 멀티플렉서들은 남은 사이드들에 대한 입력 도체들로부터 선택된 채널로 상기 채널 스위칭 회로의 대응하는 채널에 대한 출력 도체들을 구동하도록 구성되는,
회로. - 삭제
- 제 1 항에 있어서,
각각의 채널 스위칭 회로의 멀티플렉서들은 상기 사이드들의 제 1 대향하는 쌍 내의 제 1 사이드에 대한 출력 도체들로 대응하는 채널을 구동하도록 구성되는 제 1 멀티플렉서들을 포함하고,
각각의 채널 스위칭 회로의 멀티플렉서들은 상기 사이드들의 제 1 대향하는 쌍 내의 남은 제 2 사이드에 대한 출력 도체들로 대응하는 채널을 구동하도록 구성된 제 2 멀티플렉서들을 더 포함하는,
회로. - 제 3 항에 있어서,
각각의 채널 스위칭 회로의 제 1 멀티플렉서들 및 제 2 멀티플렉서들은 입력 도체들로부터의 상기 복수의 채널들의 서브세트 중에서 선택하도록 구성되고, 상기 서브세트는 상기 채널 스위칭 회로의 대응하는 채널로부터의 채널 스팬(channel span)에 관하여 정의되는,
회로. - 제 4 항에 있어서,
상기 채널 스팬은 상기 복수의 채널들 내의 채널들의 총 수의 1/2인,
회로. - 제 3 항에 있어서,
각각의 채널 스위칭 회로의 상기 멀티플렉서들은,
상기 사이드들의 제 2 대향하는 쌍 내의 제 3 사이드에 대한 출력 도체들로 상기 대응하는 채널을 구동하도록 구성된 제 3 멀티플렉서들
을 더 포함하고,
각각의 채널 스위칭 회로의 상기 멀티플렉서들은,
상기 사이드들의 제 2 대향하는 쌍 내의 남은 제 4 사이드에 대한 출력 도체들로 상기 대응하는 채널을 구동하도록 구성된 제 4 멀티플렉서들
을 더 포함하는,
회로. - 제 6 항에 있어서,
각각의 채널 스위칭 회로, 상기 제 1 멀티플렉서들, 상기 제 2 멀티플렉서들, 상기 제 3 멀티플렉서들, 및 상기 제 4 멀티플렉서들은 상기 비트들에 대응하는 복수의 타일들로 배열되고, 각각의 타일은, 상기 제 1 멀티플렉서들, 상기 제 2 멀티플렉서들, 상기 제 3 멀티플렉서들, 및 상기 제 4 멀티플렉서들 각각을 하나씩 갖는,
회로. - 제 7 항에 있어서,
각각의 채널 스위칭 회로에 대해, 타일은 상기 풋프린트의 각각의 사이드 상의 대응하는 출력 도체 상에서 상기 대응하는 채널에 대한 대응하는 비트를 구동하도록 구성되는,
회로. - 제 7 항에 있어서,
상기 타일들은, 각각의 타일이 상기 각각의 타일에 대응하는 비트에 대한 제 2 트랙과 정렬되도록 상기 제 2 트랙들과 정렬되는,
회로. - 제 6 항에 있어서,
상기 제 3 멀티플렉서들 및 제 4 멀티플렉서들은 상기 입력 도체들로부터의 상기 복수의 채널들의 서브세트 중에서 선택하도록 구성되고, 상기 서브세트는 상기 채널 스위칭 회로의 대응하는 채널로부터 하나의 채널 스팬에 관하여 정의되는,
회로. - 방법으로서,
반도체 기판 상의 4개-사이드 풋프린트를 갖는 스위치 패브릭에서, 대응하는 입력 도체들 상의 각각의 풋프린트 사이드에 관하여 상기 스위치 패브릭으로 복수의 채널들을 라우팅하는 단계 ― 상기 스위치 패브릭은 상기 복수의 채널들에 대응하는 복수의 채널 스위칭 회로들로 구성되고, 각각의 채널은 동일한 비트들의 폭을 가지고, 상기 스위치 패브릭은 각각의 풋프린트 사이드 상의 상기 복수의 채널들에 대한 출력 도체들을 갖고, 상기 사이드들의 제 1 대향하는 쌍에 대한 입력 및 출력 도체들은, 각각의 제 1 트랙이 대응하는 채널 스위칭 회로에 걸쳐 스패닝하도록 상기 채널들에 대응하는 제 1 트랙들에 배열되고, 상기 풋프린트에 대한 상기 사이드들의 제 2 대향하는 쌍에 대한 입력 및 출력 도체들은 모든 채널 스위칭 회로들에 걸쳐 스패닝하는 제 2 트랙들에 상기 비트들에 따라서 배열됨 ― ; 및
각각의 풋프린트 사이드에 대한 각각의 채널 스위칭 회로에서, 상기 풋프린트의 남은 사이드들에 대한 입력 도체들 상에서 전도되는 채널에 대해 선택함으로써, 각각의 채널 스위칭 회로에 대응하는 채널에 대한 출력 도체들을 구동하는 단계
를 포함하는,
방법. - 제 11 항에 있어서,
각각의 채널 스위칭 회로의 대응하는 채널에 대한 출력 도체들을 구동하는 단계는 상기 풋프린트의 사이드들의 제 1 대향하는 쌍에 관한 제 1 및 제 2 멀티플렉서들을 이용하는 단계를 포함하는,
방법. - 제 12 항에 있어서,
각각의 채널 스위칭 회로의 대응하는 채널에 대한 출력 도체들을 구동하는 단계는 상기 풋프린트의 사이드들의 상기 제 2 대향하는 쌍에 관한 제 3 및 제 4 멀티플렉서들을 이용하는 단계를 포함하는,
방법. - 입력 및 출력 도체들에 관한 복수의 채널들을 스위칭하도록 구성된 스위칭 패브릭으로서, 각각의 채널은 디지털 워드를 포함하고, 상기 스위칭 패브릭은,
제 1 방향의 출력 도체들로 상기 복수의 채널들을 구동하도록 상기 입력 도체들 중에서 선택하게 구성된 복수의 제 1 멀티플렉서들;
제 2 방향의 출력 도체들로 상기 복수의 채널들을 구동하도록 상기 입력 도체들 중에서 선택하게 구성된 복수의 제 2 멀티플렉서들;
제 3 방향의 출력 도체들로 상기 복수의 채널들을 구동하도록 상기 입력 도체들 중에서 선택하게 구성된 복수의 제 3 멀티플렉서들; 및
제 4 방향의 출력 도체들로 상기 복수의 채널들을 구동하도록 상기 입력 도체들 중에서 선택하게 구성된 복수의 제 4 멀티플렉서들
을 포함하고,
상기 제 1 멀티플렉서들, 상기 제 2 멀티플렉서들, 상기 제 3 멀티플렉서들 및 상기 제 4 멀티플렉서들은 복수의 행들로 배열되는 타일(tile)들을 형성하도록 인터리빙되고, 각각의 타일은 하나의 제 1 멀티플렉서, 하나의 제 2 멀티플렉서, 하나의 제 3 멀티플렉서 및 하나의 제 4 멀티플렉서를 갖고,
상기 행들은 상기 제 1 및 제 2 방향들과 정렬되고 그리고, 각각의 채널에 대한 제 1 및 제 2 방향들의 출력 도체들이 대응하는 행의 제 1 및 제 2 멀티플렉서들에 의해 구동되게 되고 각각의 채널에 대한 제 3 및 제 4 방향들의 출력 도체들이 대응하는 행의 제 3 및 제 4 멀티플렉서들에 의해 구동되게 되도록, 상기 채널들에 대응하고,
상기 타일들은 반도체 기판 상의 4개-사이드 풋프린트에 배열되고,
각각의 디지털 워드는 비트들의 폭을 갖고, 상기 행들은 상기 타일들의 복수의 열들을 형성하도록 정렬되고,
상기 열들은 상기 제 3 및 제 4 방향들과 평행하고, 상기 복수의 열들은 상기 비트들에 대응하여, 각각의 열에 대해, 열의 제 3 및 제 제 4 멀티플렉서들이 출력 도체들 중 대응하는 도체들로 상기 제 3 및 제 4 방향들의 모든 채널들에 대한 대응하는 비트들을 구동하도록 구성되게 되는,
입력 및 출력 도체들에 관한 복수의 채널들을 스위칭하도록 구성된 스위칭 패브릭. - 삭제
- 회로로서,
스위치 패브릭을 포함하고,
상기 스위치 패브릭은, 반도체 기판 상의 상기 스위치 패브릭에 대한 풋프린트의 4개의 사이드들에 관한 복수의 채널들을 라우팅하도록 구성되며,
각각의 채널은 동일한 비트들의 폭을 갖고, 상기 풋프린트의 각각의 사이드에 대해, 각각의 비트는 상기 스위치 패브릭으로의 대응하는 입력 도체에 의해 그리고 상기 스위치 패브릭으로부터의 대응하는 출력 도체에 의해 전달되고, 상기 4개의 사이드들의 제 1 대향하는 쌍에 대한 입력 및 출력 도체들은 상기 채널들에 의해 배열되고, 상기 4개의 사이드들의 남은 대향하는 쌍에 대한 입력 및 출력 도체들은 상기 비트들에 의해 배열되고,
상기 스위치 패브릭은, 풋프린트의 각각의 사이드에 대해, 남은 사이드들에 대한 입력 도체들로부터 선택된 채널에 대한 비트들로 상기 사이드의 출력 도체들을 구동하도록 구성된 대응하는 복수의 멀티플렉서들을 포함하고,
상기 4개의 사이드들의 제 1 대향하는 쌍에 대한 멀티플렉서들은, 채널 스팬이 상기 4개의 사이드들의 남은 대향하는 쌍에 대한 입력 도체들로부터의 채널 선택을 위해 하나를 초과하지 않게 구성되는,
회로. - 제 16 항에 있어서,
상기 4개의 사이드들의 제 2 대향하는 쌍에 대한 멀티플렉서들은, 채널 스팬이 상기 4개의 사이드들의 제 1 대향하는 쌍에 대한 입력 도체들로부터의 채널 선택을 위한 복수의 채널들 내의 채널들의 총 수 미만이 되도록 구성되는,
회로. - 제 17 항에 있어서,
출력 신호를 제공하는 프로그래밍 가능 명령 셀
을 더 포함하고,
각각의 멀티플렉서는 추가로, 그의 대응하는 출력 도체에 대한 출력 신호를 선택하도록 구성 가능한,
회로. - 제 18 항에 있어서,
각각의 멀티플렉서는 4:1 멀티플렉서인,
회로. - 재구성가능 명령 셀 어레이(RICA;reconfigurable instruction cell array)로서,
행들 및 열들로 배열되는 복수의 스위치 박스들
을 포함하고,
각각의 스위치 박스는 상기 스위치 박스의 4개의 사이드들에 관한 복수의 채널들을 라우팅하도록 구성된 출력 스위치 패브릭을 포함하고, 각각의 채널은 동일한 비트들의 폭을 갖고, 상기 스위치 박스의 각각의 사이드에 대해, 각각의 채널에 대한 각각의 비트는 상기 스위치 박스로의 대응하는 입력 도체에 의해 그리고 상기 스위치 박스로부터의 대응하는 출력 도체에 의해 전달되고, 상기 사이드들의 제 1 대향하는 쌍에 대한 입력 및 출력 도체들은 상기 채널들에 의해 배열되고, 상기 사이드들의 남은 대향하는 쌍에 대한 입력 및 출력 도체들은 상기 비트들에 의해 배열되고,
각각의 스위치 박스는 행 및 열 사이드들에 대한 입력 도체들 중 선택된 도체들에 의해 전달되는 상기 비트들의 프로세싱에 응답하여 출력 신호를 제공하도록 동작 가능한 프로그래밍 가능 명령 셀을 포함하고,
상기 출력 스위치 패브릭은 상기 복수의 채널들에 대응하는 복수의 채널 스위칭 회로들을 포함하고, 각각의 채널 스위칭 회로는 각각의 사이드에 대응하는 복수의 멀티플렉서들을 포함하고, 각각의 채널 스위칭 회로의 각각의 사이드의 대응하는 멀티플렉서들은 남은 사이드들에 대한 입력 도체들로부터 선택된 채널로 상기 채널 스위칭 회로의 대응하는 채널에 대한 출력 도체들을 구동하도록 구성되는,
RICA. - 제 20 항에 있어서,
상기 멀티플렉서들 각각은 4:1 멀티플렉서를 포함하는,
RICA. - 제 20 항에 있어서,
상기 스위치 박스들의 서브세트는 등록된 도메인을 포함하고, 상기 스위치 박스들의 남은 부분은 등록되지 않은 도메인을 포함하는,
RICA. - 제 22 항에 있어서,
상기 등록된 도메인의 상기 스위치 박스들의 출력 스위치 패브릭들은 상기 등록된 도메인 내에서만 라우팅하도록 구성되는,
RICA.
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/781,755 | 2013-03-01 | ||
US13/781,755 US9210486B2 (en) | 2013-03-01 | 2013-03-01 | Switching fabric for embedded reconfigurable computing |
PCT/US2014/018391 WO2014134062A1 (en) | 2013-03-01 | 2014-02-25 | Switching fabric for embedded reconfigurable computing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150122707A KR20150122707A (ko) | 2015-11-02 |
KR101688895B1 true KR101688895B1 (ko) | 2016-12-22 |
Family
ID=50277366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157025993A KR101688895B1 (ko) | 2013-03-01 | 2014-02-25 | 임베딩된 재구성 가능 컴퓨팅을 위한 스위칭 패브릭 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9210486B2 (ko) |
EP (1) | EP2962394B1 (ko) |
JP (1) | JP6385962B2 (ko) |
KR (1) | KR101688895B1 (ko) |
CN (1) | CN105009454B (ko) |
WO (1) | WO2014134062A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333508B2 (en) | 2017-03-29 | 2019-06-25 | International Business Machines Corporation | Cross bar switch structure for highly congested environments |
US10169511B2 (en) * | 2017-03-29 | 2019-01-01 | International Business Machines Corporation | Method to synthesize a cross bar switch in a highly congested environment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0871292A1 (en) | 1997-04-07 | 1998-10-14 | Lattice Semiconductor Corporation | In-system programmable interconnect circuit |
US7071732B1 (en) | 2003-12-09 | 2006-07-04 | Xilinx, Inc. | Scalable complex programmable logic device with segmented interconnect resources |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9223226D0 (en) * | 1992-11-05 | 1992-12-16 | Algotronix Ltd | Improved configurable cellular array (cal ii) |
US6467009B1 (en) | 1998-10-14 | 2002-10-15 | Triscend Corporation | Configurable processor system unit |
US6977925B2 (en) * | 2000-08-08 | 2005-12-20 | Cesura, Inc. | Folded fabric switching architecture |
FR2850766B1 (fr) * | 2003-01-31 | 2006-03-03 | St Microelectronics Sa | Circuit electronique configurable, en particulier dedie au calcul arithmetique |
US7750673B2 (en) * | 2004-10-27 | 2010-07-06 | Manuj Ayodhyawasi | Interconnect structure and method in programmable devices |
US7307452B2 (en) | 2004-10-27 | 2007-12-11 | Stmicroelectronics Pvt. Ltd. | Interconnect structure enabling indirect routing in programmable logic |
DE602006021001D1 (de) * | 2005-04-28 | 2011-05-12 | Univ Edinburgh | Umkonfigurierbares anweisungs-zellen-array |
US7982495B2 (en) | 2006-08-25 | 2011-07-19 | St-Ericsson Sa | Configurable logic device |
US8131909B1 (en) * | 2007-09-19 | 2012-03-06 | Agate Logic, Inc. | System and method of signal processing engines with programmable logic fabric |
CN202094868U (zh) * | 2011-05-27 | 2011-12-28 | 康佳集团股份有限公司 | 切换电路 |
CN102214158B (zh) | 2011-06-08 | 2013-05-22 | 清华大学 | 一种全互联路由结构动态可重构处理器 |
CN102522979A (zh) * | 2011-12-12 | 2012-06-27 | 南京航空航天大学 | 一种面向可重构硬件的自主容错开关块 |
US9075930B2 (en) * | 2012-11-09 | 2015-07-07 | Xilinx, Inc. | Configurable embedded memory system |
-
2013
- 2013-03-01 US US13/781,755 patent/US9210486B2/en active Active
-
2014
- 2014-02-25 KR KR1020157025993A patent/KR101688895B1/ko active IP Right Grant
- 2014-02-25 CN CN201480011263.0A patent/CN105009454B/zh active Active
- 2014-02-25 JP JP2015560256A patent/JP6385962B2/ja active Active
- 2014-02-25 EP EP14710156.2A patent/EP2962394B1/en active Active
- 2014-02-25 WO PCT/US2014/018391 patent/WO2014134062A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0871292A1 (en) | 1997-04-07 | 1998-10-14 | Lattice Semiconductor Corporation | In-system programmable interconnect circuit |
US7071732B1 (en) | 2003-12-09 | 2006-07-04 | Xilinx, Inc. | Scalable complex programmable logic device with segmented interconnect resources |
Non-Patent Citations (1)
Title |
---|
SAMI M ET AL:"RECONFIGURABLE ARCHITECTURES FOR VLSI PROCESSING ARRAYS", PROCEDDINGS OF THE IEEE(1986.05.01.) |
Also Published As
Publication number | Publication date |
---|---|
JP2016519446A (ja) | 2016-06-30 |
WO2014134062A1 (en) | 2014-09-04 |
CN105009454B (zh) | 2018-01-05 |
EP2962394B1 (en) | 2016-07-20 |
US9210486B2 (en) | 2015-12-08 |
CN105009454A (zh) | 2015-10-28 |
KR20150122707A (ko) | 2015-11-02 |
US20140247825A1 (en) | 2014-09-04 |
JP6385962B2 (ja) | 2018-09-05 |
EP2962394A1 (en) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11165717B2 (en) | Fabric interconnection for memory banks based on network-on-chip methodology | |
US6252792B1 (en) | Field programmable processor arrays | |
US5218240A (en) | Programmable logic cell and array with bus repeaters | |
US5243238A (en) | Configurable cellular array | |
US7272691B2 (en) | Interconnect switch assembly with input and output ports switch coupling to processor or memory pair and to neighbor ports coupling to adjacent pairs switch assemblies | |
US20190379380A1 (en) | Stacked programmable integrated circuitry with smart memory | |
EP0555353A4 (ko) | ||
EP0858167A1 (en) | Field programmable processor device | |
US20070124565A1 (en) | Reconfigurable processing array having hierarchical communication network | |
US7596679B2 (en) | Interconnections in SIMD processor architectures | |
US8164918B2 (en) | Steering fabric that facilitates reducing power use for proximity communication | |
KR101688895B1 (ko) | 임베딩된 재구성 가능 컴퓨팅을 위한 스위칭 패브릭 | |
US7724031B2 (en) | Staggered logic array block architecture | |
KR101746819B1 (ko) | 조건부 채널 라우팅 및 인-플래이스 기능성을 갖는 재구성 가능한 명령 셀 어레이 | |
US8331172B2 (en) | Semiconductor integrated circuit | |
US20060105802A1 (en) | Communication system with reconfigurable hardware structure and reconfiguration method therefor | |
WO2007056737A2 (en) | Reconfigurable processing array having hierarchical communication network | |
EP0956646B1 (en) | Field programmable processor arrays | |
CN115496024A (zh) | 现场可编程逻辑门阵列 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
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: 20190924 Year of fee payment: 4 |