KR101378298B1 - Fpga내 배선 메모리 장치 및 이를 이용한 라우터 시스템 - Google Patents

Fpga내 배선 메모리 장치 및 이를 이용한 라우터 시스템 Download PDF

Info

Publication number
KR101378298B1
KR101378298B1 KR20100057034A KR20100057034A KR101378298B1 KR 101378298 B1 KR101378298 B1 KR 101378298B1 KR 20100057034 A KR20100057034 A KR 20100057034A KR 20100057034 A KR20100057034 A KR 20100057034A KR 101378298 B1 KR101378298 B1 KR 101378298B1
Authority
KR
South Korea
Prior art keywords
memory device
wiring
register
packet processing
router system
Prior art date
Application number
KR20100057034A
Other languages
English (en)
Other versions
KR20110070742A (ko
Inventor
조한진
배영환
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US12/961,752 priority Critical patent/US20110149984A1/en
Publication of KR20110070742A publication Critical patent/KR20110070742A/ko
Application granted granted Critical
Publication of KR101378298B1 publication Critical patent/KR101378298B1/ko

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 발명은 배선 메모리 장치 및 이를 이용한 라우터 시스템에 관한 것으로서, 특히 본 발명의 배선 메모리 장치는 제1 외부 장치 및 저장부 중 하나를 선택하여 데이터를 입력받는 선택부, 상기 선택부로부터 수신한 입력 데이터를 저장하는 레지스터, 상기 레지스터에서 수신한 데이터를 저장하는 상기 저장부 및 상기 레지스터 및 제2 외부 장치와 데이터 송수신을 제어하는 I/O부를 포함한다.

Description

FPGA내 배선 메모리 장치 및 이를 이용한 라우터 시스템{configuration memory apparatus and router system using the same in FPGA}
본 발명은 FPGA내 배선 메모리 장치 및 이를 이용한 라우터 시스템에 관한 것으로서, 구체적으로는 FPGA 내부의 배선 메모리를 효율적으로 사용하기 위한 배선 메모리 장치의 구조 및 이를 이용한 라우터 시스템의 구조에 관한 것이다.
FPGA(Field Programmable Gate Array)의 배선 구조(configuration structure)는 프로그래밍이 가능하도록 설계되어 있다. 따라서 제작된 FPGA를 사용하는 사용자의 의도에 맞게 회로를 구현할 수 있게 된다.
종래의 FPGA에 요구되는 기능은 정해진 논리회로를 정확히 구현하는 것이었다. 따라서 상기와 같은 프로그래밍이 가능한 배선 구조로 점대점(point-to-point) 연결에 효율적인 구조가 사용되었다. FPGA에 요구되는 배선 구조 요건이 까다롭지 않았기 때문이다.
하지만 최근에는 FPGA에 대한 요구 사항의 수준이 점점 높아져서 FPGA 내부에 각종 프로세서, 고성능 IP(Intellectual property), 대용량 메모리 및 고속 I/O등의 구현이 필요하게 되었다. 즉, 외부 프로세서에서 요구하는 작업만을 수동적으로 수행하는 슬레이브(slave) 칩에서 내부에 다수의 마스터(master) 및 슬레이브를 두고 다양한 작업을 수행하는 SoC(System on Chip)의 역할이 요구되게 되었다.
따라서 종래의 FPGA에서 사용되던 배선 구조로는 시스템이 요구하는 성능을 만족시키기 어렵게 되었다. 따라서 FPGA 내부의 마스터 및 슬레이브간을 효율적으로 연결하기 위한 배선 구조가 필요하게 되었다.
또한 실제 FPGA에서 사용자에게 설계의 자유도를 보장하기 위해서 배선 구조에 할당되는 면적이 전체 FPGA 칩 면적의 대부분(~90%)를 차지한다. 특히 배선 스위치는 먹스(MUX) 구조로 구현되기 때문에 그 차지 면적이 작으므로 배선 정보를 저장하고 있는 배선 메모리가 상기 배선 구조 면적의 대부분을 차지하고 있는 실정이다.
하지만 사용자가 설계한 배선을 구현하는데 필요한 배선 메모리량은 전체 배선 메모리량의 5~10%에 그치는 것이 일반적이다. 따라서 FPGA의 규모가 커짐에 따라서 사용되지 못하는 배선 메모리량도 증가되므로 배선 메모리의 효율적인 사용도 요구되어 진다.
상기의 문제를 해결하기 위해서 본 발명의 FPGA내 배선 메모리 장치 및 이를 이용한 라우터 시스템은 효율적 사용이 가능한 배선 메모리 구조 및 이를 이용한 FPGA내 각 구성 요소를 연결하는 라우터 시스템을 제안하는 것을 목적으로 한다.
상기 목표를 달성하기 위한 본 발명의 일 실시예로서, 배선 메모리 장치는 제1 외부 장치 및 저장부 중 하나를 선택하여 데이터를 입력받는 선택부, 상기 선택부로부터 수신한 입력 데이터를 저장하는 레지스터, 상기 레지스터에서 수신한 데이터를 저장하는 상기 저장부 및 상기 레지스터 및 제2 외부 장치와 데이터 송수신을 제어하는 I/O부를 포함한다.
상기 목표를 달성하기 위한 본 발명의 일 실시예로서, 라우터 시스템은 다른 라우터 시스템과 전송 메시지를 송수신할 수 있도록 중계하는 패킷 처리 장치, 하드웨어 코어 또는 상기 패킷 처리 장치로부터 전송된 전송 메시지를 저장하는 배선 메모리 장치 및 상기 하드웨어 코어, 상기 패킷 처리 장치 및 상기 배선 메모리 장치를 연결하는 내부 버스를 포함하며, FPGA 내부에 구현된다.
상기 목표를 달성하기 위한 본 발명의 다른 실시예로서, 라우터 시스템은 다른 라우터 시스템과 전송 메시지를 송수신할 수 있도록 중계하는 패킷 처리 장치 및 상기 패킷 처리 장치로부터 수신한 전송 메시지를 저장하는 배선 메모리 장치를 포함하며, FPGA 내부에 구현된다.
상기의 구성을 가지는 본 발명의 FPGA내 배선 메모리는 라우터를 위한 배선 버퍼로 사용할 수 있어 배선 메모리의 효율적인 사용이 가능하다.
또한 상기의 구성을 가지는 본 발명의 배선 메모리 구조를 이용한 라우터 시스템은 하드웨어 자원을 추가적으로 사용하지 않으면서도 FPGA내 각 구성 요소들을 효율적으로 연결할 수 있고 이를 통해서 구성 요소들간 데이터 전송을 빠르게 할 수 있어 FPGA의 성능을 향상시킬 수 있다.
도 1은 본 발명의 라우터 시스템이 구비된 FPGA 구조를 개괄적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예인 라우터 시스템의 기능 블록을 도시한 블록도이다.
도 3은 본 발명의 다른 실시예인 라우터 시스템의 기능 블록을 도시한 블록도이다.
도 4는 본 발명의 다른 실시예인 라우터 시스템의 기능 블록을 도시한 블록도이다.
도 5는 본 발명의 다른 실시예인 라우터 시스템의 기능 블록을 도시한 블록도이다.
도 6은 본 발명의 패킷 처리 장치의 기능 블록을 도시한 기능 블록도이다.
도 7은 본 발명의 배선 메모리 장치의 기능 블록을 도시한 기능 블록도이다.
도 8은 본 발명의 배선 메모리 장치를 회로 단계에서 구현한 회로도이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
또한, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 라우터 시스템이 구비된 FPGA 구조를 개괄적으로 도시한 도면이다.
도 1을 참조하면, FPGA 내부에 블록 메모리(600), 입출력 버퍼(700), 하드웨어 코어(500), 로직 타일 클러스터(400) 및 라우터 시스템(800)이 배치되어 있다. 최근의 FPGA의 경우, 사용자의 요구에 부응하기 위해서 하드웨어 코어(500)나 블록 메모리(600)를 탑재하여 SoC(System on Chip)에 가까운 형태로 구성된다.
상기 하드웨어 코어(500)은 프로세서나 IP core등이 될 수 있고 상기 블록 메모리는 대용량의 메모리 자원(DRAM아니 SRAM등)이 될 수 있다.
상기 로직 타일 클러스터(400)은 FPGA의 기본 단위가 되는 로직 타일(300)들의 집합이며, 로직 타일(300)은 프로그램이 가능한 로직 모듈(100)과 배선 메모리 장치(200)을 포함하여 구성될 수 있다. 로직 모듈은 프로그램에 따라서 특정 로직을 수행할 수 있도록 설계된다. 배선 메모리 장치(200)은 로직 모듈들 간의 연결 상태를 저장한 저장 장치이다.
도 1을 참조하면, FPGA가 SoC에 가까운 형태가 되면서 다양한 하드웨어 코어(500), 블록 메모리(600) 및 로직 타일 클러스터(400)간에 대용량의 데이터를 전송할 필요가 발생했고, 각 구성 요소들간에 독립적인 동작을 보장하기 위해서 구성요소간 통신을 지원할 필요도 발생했다. 또한 구성요소간에 1 대 1의 연결 뿐만 아니라 1 대 다 연결 또는 다 대 1의 연결도 필요로 하게 되었다.
상기의 기능을 지원하기 위해서 필요한 것이 네트워크 통신에서 사용되는 라우터이다. 라우터는 구성요소 간의 연결 및 통신이 가능하게 하며 다량의 데이터 통신을 지원하는 한다. 이러한 라우터를 구현하기 위해서는 필수적으로 전송 메시지에서 주소 영역을 분석하는 파트 및 목적지와 통신이 가능한 지를 확인하고 통신을 수행하는 파트가 필요하다. 또한 상기의 통신을 위한 작업을 수행하는 동안 라우터에 연결되어 있는 하드웨어가 다른 작업을 수행할 수 있도록 전송 메시지를 저장하는 큐잉 메모리도 필요하다.
하지만, 일반적인 ASIC에서는 라우터 시스템을 도입하게 되면 라우터 시스템에 배정되어야 하는 다수의 로직 및 메모리 때문에 제작 비용이 크게 증가하는 문제가 있다.
그런데, 일반적인 FPGA의 프로그램의 경우 동작되는 로직 모듈(100)은 전체 로직 모듈 중 50-60%에 불과하며, 사용되는 배선 메모리 장치(100)는 전체 배선 메모리 중 10-20%에 불과하다 따라서 다량의 로직 모듈(100) 및 배선 메모리 장치(200)가 사용되지 않는 상태로 남게 된다.
그러므로 사용되지 않는 로직 모듈(100) 및 배선 메모리 장치(200)을 다른 기능에 활용할 수 있다면 FPGA 구성의 효율적 활용이 가능해진다.
즉, FPGA의 경우에는 상기와 같이 전체 로직 모듈(100) 및 배선 메모리 장치(200)가 다수 존재하고 칩이 프로그램이 된 후에도 미사용 부분이 많으므로 미사용 부분을 라우터 시스템(800)의 구현에 활용할 수 있다. 또한 미사용 부분을 활용하는 것이기 때문에 별도의 하드웨어 자원을 추가할 필요가 없어서 제작 비용의 증가 없이 시스템 전체의 성능을 향상을 도모할 수 있다.
따라서 본 발명의 라우터 시스템(800)은 상기의 사용되지 않는 로직 모듈(100) 및 배선 메모리 장치(200)을 이용하여 구현할 수 있다. 종래의 로직 모듈(100)은 기능이 프로그램 가능한 특성상 라우터 시스템(800)을 구현하는데 사용이 가능하다.
그러나, 종래의 배선 메모리 장치(200)는 로직 모듈 간의 연결 정보만을 담고 연결 부위에 놓인 연결 장치로만 정보를 출력하므로 본 발명의 라우터 시스템(800)에 적용하기 위해서는 새로운 구조가 제안 되어야 한다.
이하에서는 라우터 시스템의 구성에 대해서 먼저 설명한 후 본 발명의 라우터 시스템을 위한 배선 메모리 장치에 대해서 설명하도록 하겠다.
도 2는 본 발명의 일 실시예인 라우터 시스템의 기능 블록을 도시한 블록도이다.
도 2를 참조하면, 본 발명의 라우터 시스템(800)은 패킷 처리 장치(810) 및 배선 메모리 장치(820)을 포함하여 구성될 수 있다.
패킷 처리 장치(810)는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)와 다른 라우터 시스템간의 전송 메시지 송수신을 중계하는 장치이다.
패킷 처리 장치(810)는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)로부터 전송 메시지를 전송 받고 전송 메시지를 분석한다. 또한 패킷 처리 장치(810)는 상기 분석을 통해서 전송 메시지에 포함된 송신처 및 수신처 정보를 추출한다.
상기 추출된 수신처 정보를 이용하여 수신처에 연결된 라우터 시스템과 통신이 가능한지를 확인한다. 통신이 가능한 경우에는 연결된 라우팅 버스를 이용하여 수신처가 연결된 라우터 시스템으로 전송 메시지를 전송한다. 또한 패킷 처리 장치(810)는 다른 전송 메시지를 처리 중인 때에는 수신한 전송 메시지를 배선 메모리 장치(820)에 바로 저장할 수도 있다.
경우에 따라서는 패킷 처리 장치(810)는 수신한 전송 메시지를 바로 배선 메모리 장치(820)에 저장할 수도 있다.
또한, 라우터 시스템(800)은 다른 라우터 시스템(800)에서 전송한 전송 메시지를 수신하여 수신처에 부합하는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)에 전송한다. 해당 장치가 동작중인 때에는 배선 메모리 장치(820)에 전송 메시지를 저장하여 두었다가 해당 장치가 전송 메시지 수신이 가능한 때에 전송 메시지를 전송한다.
상기 라우팅 버스는 FPGA 내부에 사용하지 않는 트랙 버스를 이용하여 구현할 수 있어 추가적인 하드웨어 자원을 요구하지 않는다.
배선 메모리 장치(820)는 패킷 처리 장치(810)에서 전송 메시지를 분석하고 통신을 수행하는 동안 패킷 처리 장치(810)에 연결된 하드웨어 코어(500) 등의 독립적인 동작을 보장하기 위해서 패킷 처리 장치(810)가 수신한 전송 메시지를 저장한다. 배선 메모리 장치(820)가 없다면 하드웨어 코어(500) 등은 패킷 처리 장치가 이전에 전송 받은 메시지를 전송할 때까지 대기해야 하는 문제가 발생하기 때문이다.
즉, 배선 메모리 장치(820)가 다수의 전송 메시지를 저장해 두면, 순차적으로 또는 우선순위에 따라서 패킷 처리 장치(810)가 전송 메시지를 처리할 수 있고, 하드웨어 코어(500) 등은 전송 메시지를 라우터 시스템(800)에 전송한 후에는 다른 작업을 수행할 수 있어 독립적 또는 병렬적 동작을 보장받을 수 있다.
패킷 처리 장치(810)는 배선 메모리 장치(820)를 제어하는 기능을 더 수행하는 것이 바람직하다. 도 2를 참조하면, 패킷 처리 장치(810) 및 배선 메모리 장치(820)는 1 대 1로 연결된다.
즉, 패킷 처리 장치(810)은 라우터 시스템의 통신 기능, 하드웨어 코어(500)등과의 데이터 교환 및 라우터 시스템의 제어를 수행하고, 배선 메모리 장치(820)는 데이터 저장 기능만을 수행한다.
도 3은 본 발명의 다른 실시예인 라우터 시스템의 기능 블록을 도시한 블록도이다.
도 3을 참조하면, 본 발명 라우터 시스템(800)은 패킷 처리 장치(810) 및 배선 메모리 장치(820)을 포함하여 구성될 수 있다.
배선 메모리 장치(820)는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)로부터 전송 메시지를 전송 받아 저장한다. 또한 패킷 처리 장치(810)가 라우팅 버스를 통해서 전송받은 전송 메시지를 전달받아 저장한다.
패킷 처리 장치(810)는 배선 메모리 장치(820)에 저장된 전송 메시지를 분석한다. 또한 패킷 처리 장치(810)는 전송 메시지에 포함된 송신처 및 수신처 정보를 추출하고 수신처 정보를 이용하여 수신처에 연결된 라우터 시스템(800)과 통신이 가능한지를 확인한다. 통신이 가능한 경우에는 연결된 라우팅 버스를 이용하여 수신처와 연결된 라우터 시스템(800)으로 전송 메시지를 전송한다.
그리고 라우팅 버스를 통해서 다른 라우터 시스템로부터 전송 메시지를 수신하면 상기 전송 메시지를 분석하고 배선 메모리 장치(820)에 저장한다.
또한, 패킷 처리 장치(810)는 하드웨어 코어(500)등과 배선 메모리 장치(820)의 데이터 교환을 제어하는 기능을 더 수행하는 것이 바람직하다.
즉, 라우터 시스템간의 통신 기능은 패킷 처리 장치(810)가 수행하고, 배선 메모리 장치(820)는 데이터의 저장 기능 및 하드웨어 코어(500)등과 데이터 교환 기능을 수행한다.
상기 라우팅 버스는 FPGA 내부에 사용하지 않는 트랙 버스를 이용하여 구현할 수 있어 추가적인 하드웨어 자원을 요구하지 않는다.
도 4는 본 발명의 다른 실시예인 라우터 시스템의 기능 블록을 도시한 블록도이다.
도 4를 참조하면, 본 발명의 라우터 시스템(800)은 패킷 처리 장치(810) 및 배선 메모리 장치(820)를 포함하여 구성되고, 패킷 처리 장치(810) 및 배선 메모리 장치(820)는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)에 연결될 뿐만 아니라 라우팅 버스에도 연결된다.
상기와 같이 연결하면 도 2 또는 도 3에 도시된 바와 같이 동작할 수 있으므로 상황에 따라서 동작 방법을 달리 할 수 있다.
도 4에 도시된 바와 같이 연결된 경우에는 패킷 처리 장치(810)는 배선 메모리 장치(820)와 라우팅 버스 및 하드웨어 코어(500)들의 연결을 제어하는 기능을 구비하는 것이 바람직하다.
상기 라우팅 버스는 FPGA 내부에 사용하지 않는 트랙 버스를 이용하여 구현할 수 있어 추가적인 하드웨어 자원을 요구하지 않는다.
도 5는 본 발명의 다른 실시예인 라우터 시스템의 기능 블록을 도시한 블록도이다.
본 발명의 라우터 시스템은 패킷 처리 장치(810), 배선 메모리 장치(820) 및 내부 버스(840)을 포함하여 구성될 수 있다.
배선 메모리 장치(820)는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)로부터 전송 메시지를 수신하고 수신된 전송 메시지를 저장한다. 또한, 패킷 처리 장치(810)가 라우팅 버스를 통해서 수신한 전송 메시지를 상기 내부 버스(840)를 통해서 수신하고 수신한 전송 메시지를 저장한다.
패킷 처리 장치(810)는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)로부터 전송 메시지를 수신하고 상기 수신한 전송 메시지를 분석한다.
필요에 따라서, 배선 메모리 장치(800)에 수신한 전송 메시지를 저장해둔 후 메모리 장치로부터 전송 메시지를 읽어와서 전송 메시지를 분석한다.
또한 패킷 처리 장치(810)는 전송 메시지에 포함된 송신처 및 수신처 정보를 추출하고 수신처 정보를 이용하여 수신처에 연결된 라우터 시스템과 통신이 가능한지를 확인한다. 통신이 가능한 경우에는 연결된 라우팅 버스를 이용하여 수신처와 연결된 라우터 시스템으로 전송 메시지를 전송한다. 필요한 경우에는 배선 메모리 장치(820)에서 하드웨어 코어(500)등으로 바로 전송 메시지가 전달되도록 제어할 수도 있다.
내부 버스(840)에는 라우터 시스템에 포함되는 배선 메모리 장치(820) 및 패킷 처리 장치(810)가 연결된다. 또한 내부 버스(840)에는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400) 중 하나 이상이 연결될 수 있다. 따라서 내부 버스(840)를 통해서 라우터 시스템 내부의 구성요소들이 데이터 교환을 수행할 수 있을 뿐만 아니라 외부 장치와도 데이터 교환을 수행할 수 있다.
내부 버스(840)은 FPGA 내부에 사용되지 않는 버스를 사용하여 구현할 수 있다.
도 6은 본 발명의 패킷 처리 장치의 기능 블록을 도시한 기능 블록도이다.
도 6을 참조하면, 본 발명의 패킷 처리 장치(810)는 분석기(811), 통신기(813) 및 저장기(815)를 포함하여 구성될 수 있다.
분석기(811)는 배선 메모리 장치(811)에 저장된 전송 메시지를 분석한다. 분석기(811)는 상기 분석을 통해서 전송 메시지의 수신처 및 송신처를 추출하고 이를 통신기(813)로 전송한다. 제2 통신기(814)를 구비하는 경우에는 분석기(811)은 제2 통신기(814)로도 전송할 수 있다.
통신기(813)은 라우팅 버스를 통해서 다른 라우터 시스템과 연결되며, 다른 라우터 시스템과 통신을 수행한다. 다른 라우터 시스템과 통신 가능 여부를 확인하고 통신이 가능한 경우에는 전송 메시지를 전송한다.
또한 도시하지는 않았으나, 본 발명의 패킷 처리 장치(810)는 제2 통신기를 더 포함하여 구성될 수 있다. 제2 통신기는 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)등과 패킷 처리 장치(810)가 연결되어 있는 때에 상기 장치들의 통신을 수행한다.
저장기(815)는 통신기(813)로부터 수신한 전송 메시지를 배선 메모리 장치(820)에 저장한다. 필요에 따라서는 제2 통신기로부터 수신한 전송 메시지를 배선 메모리 장치(820)에 저장한다.
이상에서 본 발명의 FPGA 내부에 설계되는 라우터 시스템을 설명하였다. 이하에는 상기 라우터 시스템(800)에서 사용되는 배선 메모리 장치(820)에 사용되는 배선 메모리 구조에 대해서 설명한다.
일반적인 배선 메모리 장치는 앞서 살펴본 바와 같이 배선 정보를 입력 받아 각 배선 스위치로만 출력할 뿐이었다. 따라서 종래의 배선 메로리 장치는 다른 용도로 사용하는 것이 불가능하다.
이에 본 발명의 배선 메모리 장치는 적은 구성요소의 추가만으로 라우터 시스템(800)의 배선 메모리 장치(820) 등에 활용이 가능한 메모리 구조를 가지는 것을 특징으로 한다.
도 7은 본 발명의 배선 메모리 장치의 기능 블록을 도시한 기능 블록도이다.
도 7을 참조하면, 본 발명의 배선 메모리 장치(200)는 선택부(210), 레지스터(220), 저장부(230) 및 I/O부(240)을 포함하여 구성될 수 있고, 제1 스위치부(260) 및 제2 스위치부(250) 중 하나 이상을 더 포함하여 구성될 수 있다.
선택부(210)는 제1 외부 장치 및 저장부(230) 중 하나를 선택하여 데이터를 입력받는다. 제1 외부 장치는 배선 정보를 제공하는 장치이거나 다른 배선 메모리 장치가 될 수 있다. 일반적으로 배선 메모리 장치는 체인 형식으로 직렬로 연결되어 컬럼을 구성하는 경우가 많기 때문이다.
레지스터(220)는 선택부(210)에서 입력받은 데이터를 수신하고 임시적으로 저장한다.
저장부(230)는 레지스터(220)로부터 저장된 데이터를 전달받고 저장한다. 저장부는 데이터를 장기간 저장할 수도 있다.
I/O부(240)는 레지스터와 제2 외부 장치와의 연결을 제어한다. 제2 외부 장치는 내부 버스(840), 패킷 처리 장치(810), 하드웨어 코어(500), 블록 메모리(600) 또는 로직 타일 클러스터(400)등이 될 수 있다. I/O부(240)는 상기의 제2 외부 장치로부터 데이터를 수신하여 레지스터(220)에 저장하거나 레지스터(220)에 저장된 데이터를 상기의 제2 외부 장치로 전송한다.
제1 스위치부(260)은 저장부(230)와 선택부(210)의 연결을 제어하고, 제2 스위치부(250)는 레지스터(220)와 저장부(230)의 연결을 제어한다. 제1 및 제2 스위치부(260, 250)는 선택부(210)와 저장부(230) 및 레지스터(220)와 저장부(230)의 연결을 제어함으로써 데이터 흐름의 혼선을 방지하는 기능을 수행한다.
상기와 같은 구성을 가지는 배선 메모리 장치(200)는 제2 외부 장치에서 수신되는 데이터를 저장하고 다시 제2 외부 장치로 전송할 수 있게 된다. 즉, 본 발명의 배선 메모리 장치(200)는 배선 정보 이외의 데이터를 입력받아 저장하고 저장된 데이터를 출력할 수 있는 메모리 장치의 역할을 수행할 수 있다.
도 8은 본 발명의 배선 메모리 장치를 회로 단계에서 구현한 회로도이다.
도 8을 참조하면, 본 발명의 배선 메모리 장치(200)는 선택부(210), 레지스터(220), 저장부(230), I/O부(240), 제1 스위치부(260) 및 제2 스위치부(250)를 포함하여 구현할 수 있다.
선택부(210)은 먹스(MUX)를 이용하여 구현할 수 있다. 라우터 시스템(800)을 위해서 본 발명의 배선 메모리 장치(200)을 사용할 경우에는 먹스는 저장부로부터 입력 데이터를 입력받도록 설정하는 것이 바람직하다.
I/O부(240), 제1 스위치부(260) 및 제2 스위치부(250)는 MOSFET 스위치를 이용하여 구현될 수 있다. 각 스위치의 제어는 TRE, MRE 및 MWE 라인에 신호를 인가하여 할 수 있다.
회로 수준의 구현예를 참조하면, 본 발명의 배선 메모리 장치(200)는 2개의 추가적인 스위치 및 하나의 추가적인 먹스를 구비할 뿐이다. 따라서 본 발명의 배선 메모리 장치(200)는 추가적인 하드웨어 자원이 적으면서도 다양한 용도로 사용 가능한 메모리 장치가 된다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다.
100 : 로직 모듈 200 : 배선 메모리 장치 300 : 로직 타일
400 : 로직 타일 클러스터 500 : 하드웨어 코어
600 : 블록 메모리 700: 입출력 버퍼
800: 라우터 시스템
210 : 선택부 220: 레지스터 230 : 저장부
240 : I/O부 250: 제2 스위치부
260 : 제1 스위치부
810 : 패킷 처리 장치 820 : 배선 메모리 장치
840 : 내부 버스
811 : 분석기 813 : 통신기 815 : 저장기

Claims (19)

  1. 제1 외부 장치 및 저장부 중 하나를 선택하여 데이터를 입력받는 선택부;
    상기 선택부로부터 수신한 입력 데이터를 저장하는 레지스터;
    상기 레지스터에서 수신한 데이터를 저장하는 상기 저장부; 및
    상기 레지스터 및 제2 외부 장치와 데이터 송수신을 제어하는 I/O부를 포함하는 것을 특징으로 하는 배선 메모리 장치.
  2. 제1항에 있어서, 상기 선택부는 먹스(MUX)를 이용하여 구현되는 것을 특징으로 하는 배선 메모리 장치.
  3. 제1항에 있어서, 상기 저장부와 상기 선택부간의 연결을 제어하는 제1 스위치부를 더 포함하는 것을 특징으로 하는 배선 메모리 장치.
  4. 제1항에 있어서, 상기 레지스터와 상기 저장부의 연결을 제어하는 제2 스위치부를 더 포함하는 것을 특징으로 하는 배선 메모리 장치.
  5. 제4항에 있어서, 상기 I/O부는 스위치 구조를 포함하여 구성되는 것을 특징으로 하는 배선 메모리 장치.
  6. 제1 외부 장치와 전송 메시지를 송수신할 수 있도록 중계하는 패킷 처리 장치;
    하드웨어 코어 또는 상기 패킷 처리 장치로부터 전송된 전송 메시지를 저장하는 배선 메모리 장치; 및
    상기 하드웨어 코어, 상기 패킷 처리 장치 및 상기 배선 메모리 장치를 연결하는 내부 버스를 포함하는 것을 특징으로 하는 라우터 시스템.
  7. 제6항에 있어서, 상기 라우터 시스템은FPGA(Field Programmable Gate Array) 내부에 구현되며,
    상기 패킷 처리 장치는 FPGA 내부의 트랙을 포함하여 구성되는 라우팅 버스(routing BUS)를 통해서 FPGA 내부의 상기 제1 외부 장치와 연결되는 것을 특징으로 하는 라우터 시스템.
  8. 제6항에 있어서, 상기 패킷 처리 장치는
    상기 배선 메모리 장치에 저장된 전송 메시지를 분석하여 송신처 및 수신처를 추출하는 분석기;
    제1 외부 장치와 통신을 수행하는 통신기; 및
    상기 통신 중 수신하는 전송 메시지를 상기 배선 메모리 장치에 저장하는 저장기를 포함하며,
    상기 분석기, 통신기 및 저장기는 FPGA 내의 로직 모듈을 이용하여 구현되는 것을 특징으로 하는 라우터 시스템.
  9. 제6항에 있어서, 상기 배선 메모리 장치는
    제2 외부 장치 및 저장부 중 하나를 선택하여 데이터를 입력받는 선택부;
    상기 선택부로부터 수신한 입력 데이터를 저장하는 레지스터;
    상기 레지스터에서 수신한 데이터를 저장하는 상기 저장부; 및
    상기 레지스터 및 상기 내부 버스와 데이터 송수신을 제어하는 I/O부를 포함하는 것을 특징으로 하는 라우터 시스템.
  10. 제 9항에 있어서, 상기 선택부는 먹스(MUX)를 이용하여 구현되는 것을 특징으로 하는 라우터 시스템.
  11. 제9항에 있어서, 상기 저장부와 상기 선택부 간의 연결을 제어하는 제1 스위치부를 더 포함하는 것을 특징으로 하는 라우터 시스템.
  12. 제9항에 있어서, 상기 레지스터와 상기 저장부의 연결을 제어하는 제2 스위치부를 더 포함하는 것을 특징으로 하는 라우터 시스템.
  13. 제1 외부 장치와 전송 메시지를 송수신할 수 있도록 중계하는 패킷 처리 장치; 및
    상기 패킷 처리 장치로부터 수신한 전송 메시지를 저장하는 배선 메모리 장치를 포함하고,
    상기 배선 메모리 장치는
    제2 외부 장치 및 저장부 중 하나를 선택하여 데이터를 입력받는 선택부;
    상기 선택부로부터 수신한 입력 데이터를 저장하는 레지스터;
    상기 레지스터에서 수신한 데이터를 저장하는 상기 저장부; 및
    상기 레지스터 및 상기 패킷 처리 장치와 데이터 송수신을 제어하는 I/O부를 포함하는 것을 특징으로 하는 라우터 시스템.
  14. 제13항에 있어서, 상기 라우터 시스템은 FPGA(Field Programmable Gate Array) 내부에 구현되며,
    상기 패킷 처리 장치는 FPGA 내부의 상기 제1 외부 장치와 FPGA 내부의 트랙을 포함하여 구성되는 라우팅 버스(routing BUS)를 통해서 연결되는 것을 특징으로 하는 라우터 시스템.
  15. 제13항에 있어서, 상기 패킷 처리 장치는
    상기 배선 메모리 장치에 저장된 전송 메시지를 분석하여 송신처 및 수신처를 추출하는 분석기;
    상기 제1 외부 장치와 통신을 수행하는 제1 통신기;
    하드웨어 코어와 통신을 수행하는 제2 통신기; 및
    상기 제1 및 제2 통신기가 통신 중 수신하는 전송 메시지를 상기 배선 메모리 장치에 저장하는 저장기를 포함하며,
    상기 분석기, 제1 통신기, 제2 통신기 및 저장기는 FPGA 내의 로직 모듈을 이용하여 구현되는 것을 특징으로 하는 라우터 시스템.
  16. 삭제
  17. 제 13항에 있어서, 상기 선택부는 먹스(MUX)를 이용하여 구현되는 것을 특징으로 하는 라우터 시스템.
  18. 제13항에 있어서, 상기 저장부와 상기 선택부 간의 연결을 제어하는 제1 스위치부를 더 포함하는 것을 특징으로 하는 라우터 시스템.
  19. 제13항에 있어서, 상기 레지스터와 상기 저장부의 연결을 제어하는 제2 스위치부를 더 포함하는 것을 특징으로 하는 라우터 시스템.
KR20100057034A 2009-12-18 2010-06-16 Fpga내 배선 메모리 장치 및 이를 이용한 라우터 시스템 KR101378298B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/961,752 US20110149984A1 (en) 2009-12-18 2010-12-07 Configuration memory apparatus in fpga and router system using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090127494 2009-12-18
KR20090127494 2009-12-18

Publications (2)

Publication Number Publication Date
KR20110070742A KR20110070742A (ko) 2011-06-24
KR101378298B1 true KR101378298B1 (ko) 2014-03-27

Family

ID=44402212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100057034A KR101378298B1 (ko) 2009-12-18 2010-06-16 Fpga내 배선 메모리 장치 및 이를 이용한 라우터 시스템

Country Status (1)

Country Link
KR (1) KR101378298B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140046279A (ko) * 2012-10-10 2014-04-18 현대모비스 주식회사 마이컴 부하 감소를 위한 위성 라디오 제어 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040041907A (ko) * 2002-11-12 2004-05-20 엘지전자 주식회사 대용량 시스템의 r2 시그널링을 위한 디지털 신호프로세서의인터페이스 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040041907A (ko) * 2002-11-12 2004-05-20 엘지전자 주식회사 대용량 시스템의 r2 시그널링을 위한 디지털 신호프로세서의인터페이스 장치

Also Published As

Publication number Publication date
KR20110070742A (ko) 2011-06-24

Similar Documents

Publication Publication Date Title
EP3109769B1 (en) Multiprocessor system with improved secondary interconnection network
US9477280B1 (en) Specification for automatic power management of network-on-chip and system-on-chip
CN108400880B (zh) 片上网络、数据传输方法和第一交换节点
US20190266088A1 (en) Backbone network-on-chip (noc) for field-programmable gate array (fpga)
US8838869B1 (en) Multi-protocol data bus interface
US11023377B2 (en) Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
US20210011875A1 (en) Configuration via high speed serial link
CN101808032A (zh) 面向静态XY路由算法的二维网格NoC路由器优化设计方法
CN103530245B (zh) 一种基于fpga的srio互联交换装置
CN103595627A (zh) 基于多播维序路由算法的NoC路由器及其路由算法
CN102301363A (zh) 数据处理节点、系统及方法
US20200218215A1 (en) Circuit for coupling a field bus and a local bus
US20230350825A1 (en) Communications for field programmable gate array device
JPWO2008126471A1 (ja) 半導体集積回路およびその試験方法
US7206889B2 (en) Systems and methods for enabling communications among devices in a multi-cache line size environment and disabling communications among devices of incompatible cache line sizes
CN108449287A (zh) Fc交换机芯片体系架构
US11205109B2 (en) On-chip communication system for neural network processors
KR101297533B1 (ko) 네트워크 온 칩 성능 향상을 위한 xy-yx 라우팅 장치 및 방법
KR101378298B1 (ko) Fpga내 배선 메모리 장치 및 이를 이용한 라우터 시스템
CN116383114A (zh) 芯片、芯片互联系统、数据传输方法、电子设备和介质
US20110149984A1 (en) Configuration memory apparatus in fpga and router system using the same
CN103744817B (zh) 用于Avalon总线向Crossbar总线的通讯转换桥设备及其通讯转换方法
Seifi et al. A clustered NoC in group communication
CN103270490B (zh) 网络处理器及其与外部网络协处理器连接的方法
US20090327539A1 (en) Multiple Die System Status Communication System

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration
GRNT Written decision to grant