KR100839593B1 - 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템 - Google Patents

온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템 Download PDF

Info

Publication number
KR100839593B1
KR100839593B1 KR1020060096275A KR20060096275A KR100839593B1 KR 100839593 B1 KR100839593 B1 KR 100839593B1 KR 1020060096275 A KR1020060096275 A KR 1020060096275A KR 20060096275 A KR20060096275 A KR 20060096275A KR 100839593 B1 KR100839593 B1 KR 100839593B1
Authority
KR
South Korea
Prior art keywords
data
slave
signal
address
chip
Prior art date
Application number
KR1020060096275A
Other languages
English (en)
Other versions
KR20080030330A (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 KR1020060096275A priority Critical patent/KR100839593B1/ko
Priority to US11/861,360 priority patent/US7916720B2/en
Publication of KR20080030330A publication Critical patent/KR20080030330A/ko
Application granted granted Critical
Publication of KR100839593B1 publication Critical patent/KR100839593B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 온칩 네트워크(On-Chip Networks)의 병렬성을 높이기 위한 슬레이브 네트워크 인터페이스 회로 및 그 시스템에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 온칩 네트워크 상의 IP(Intellectual Property), 예컨대 마스터모듈(Master)과 슬레이브모듈(Slave)간 데이터 통신의 병렬성(parallelism)을 향상시키기 위해 슬레이브모듈측에 슬레이브 네트워크 인터페이스(SNI; Slave Network Interface)를 탑재시킨, 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크 인터페이스 회로 및 그 시스템을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은 적어도 하나의 마스터모듈과 적어도 하나의 슬레이브모듈을 구비한 온칩 네트워크(On-Chip Networks)에 있어, 상기 각 슬레이브모듈에 각각 탑재되어, 특정 마스터모듈로부터 자신의 슬레이브모듈의 데이터 전송 방식을 설정받고, 자신의 슬레이브모듈과 상기 온칩 네트워크간의 데이터 송수신 인터페이스를 수행하는 슬레이브 네트워크 인터페이스 회로로서, 상기 슬레이브모듈간에 온칩 버스에 정의된 슬레이브모듈 인터페이스 신호를 통해 해당 데이터를 송수신하고, 상기 온칩 네트워크간에 포워드 패쓰 신호[forward path, 슬레이브 네트워크 인터페이스 => 온칩 네트워크] 및 백워드 패쓰 신호[backward path, 온칩 네트워크 => 슬레이브 네트워크 인터페이스]를 통해 해당 데이터를 송수신하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로를 제공함.
4. 발명의 중요한 용도
본 발명은 온칩 네트워크(OCN) 등에 이용됨.
온칩 네트워크, 마스터모듈, 슬레이브모듈, 데이터 통신, 병렬성, 슬레이브 네트워크 인터페이스(SNI)

Description

온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크 인터페이스 회로 및 그 시스템{The Slave Network Interface Circuit and The System for the parallelism of On-Chip Networks}
도 1은 본 발명이 적용되는 온칩 네트워크의 구조에 대한 일실시예 블록도.
도 2는 도 1의 스위치에 대한 상세 블록도.
도 3은 본 발명에서 제시하는 슬레이브 네트워크 인터페이스를 이용해 설계한 온칩 네트워크의 구조를 보여주기 위한 일실시예 블록도.
도 4는 본 발명에 따른 슬레이브 네트워크 인터페이스에 대한 일실시예 구성도.
도 5는 도 4의 슬레이브 네트워크 인터페이스에 대한 상세 회로도.
도 6은 본 발명에 따른 슬레이브 네트워크 인터페이스의 전송 모드를 보여주기 위한 일실시예 설명도.
도 7은 본 발명에 따라 슬레이브 네트워크 인터페이스를 통해 데이터 통신을 수행하는 것을 보여주기 위한 일실시예 설명도.
* 도면의 주요 부분에 대한 부호 설명
100 : 온칩 네트워크(On-Chip Networks)
50 : 슬레이브모듈(Slave)
51 : 슬레이브 네트워크 인터페이스(SNI; Slave Network Interface)
500 : 먹스(Mux) 510 : SNI 콘트롤러(SNI Controller)
550 : 디먹스(DeMux) 560 : 모드 레지스터(Mode Register)
본 발명은 온칩 네트워크(On-Chip Networks)에 관한 것으로, 더욱 상세하게는 온칩 네트워크 상의 IP(Intellectual Property), 예컨대 마스터모듈(Master)과 슬레이브모듈(Slave)간 데이터 통신의 병렬성(parallelism)을 향상시키기 위해 슬레이브모듈측에 슬레이브 네트워크 인터페이스(SNI; Slave Network Interface)를 탑재시킨, 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크 인터페이스 회로 및 그 시스템에 관한 것이다.
최근에 반도체 공정 기술 발달에 따라 프로세서, 메모리 및 기타 주변장치들을 하나의 칩에 탑재시키는 시스템 온칩(SoC; System on Chip) 설계가 가능해 졌다. 이와 같은 SoC 설계는 검증된 IP(Intellectual Property)들을 재사용해서 하나의 칩에 집적화해 해당 칩이 다양한 기능을 수행하도록 하는 것을 목표로 하고 있다. 부연 설명하면, IP는 특허와 같은 지적 재산권을 의미하는데, 특히 반도체 업 계에서는 이를 반도체설계모듈(즉 반도체 집적회로 설계 시 독립적인 기능을 갖고 재사용이 가능한 기능 블록)으로 정의하고 있다. 예컨대, 본 발명에서 IP란 반도체의 로직 회로를 구성하기 위해 필요한 기능을 하드웨어와 소프트웨어 상태로 정리한 블록을 의미한다.
한편, SoC 설계를 하는데 있어 IP들간의 상호 데이터 통신을 위해 온칩 네트워크(On-Chip Networks) 구조가 제안되는데, 이러한 온칩 네트워크는 컴퓨팅 네트워크의 특징을 그대로 칩에 적용한 것이다.
도 1은 본 발명이 적용되는 온칩 네트워크의 구조에 대한 일실시예 블록도이며, 덧붙여 이러한 도 1은 스위치가 구비된 가장 일반적인 온칩 네트워크의 구조를 도시화한 것이다.
도 1에 도시된 바와 같이, 온칩 네트워크에는 스위치(Switch)(10), 업 샘플러(Up Sampler)(21) 및 다운 샘플러(Down Sampler)(22)가 탑재된 OCN 포트(OCN Port)(20) 및 IP(30)가 구비된다.
상기 스위치(10)는 일측 IP로부터 OCN 포트를 통해 입력받은 데이터를 다른 OCN 포트를 통해 타측 IP로 전달하기 위한 물리적인 매체이며, OCN 포트(20)의 업 샘플러(21)는 IP로부터 입력받은 데이터를 순차화하여 스위치로 전달하기 위한 기능을 수행하며, OCN 포트(20)의 다운 샘플러(22)는 스위치로부터 입력받은 데이터를 역순차화하여 IP로 전달하기 위한 기능을 수행한다.
상기 IP(30)는 그 온칩 네트워크에 정의된 프로토콜로서 설계된 회로를 말하며, 그 IP가 칩 내부에서 수행하는 동작 특성에 따라 마스터모듈과 슬레이브모듈로 서 나뉜다.
위와 같은 구조를 갖는 온칩 네트워크는 서두에서 언급한 바와 같이, IP들간의 상호 데이터 통신, 예컨대 각각의 마스터모듈과 각각의 슬레이브모듈간에 병렬적으로 데이터 통신을 가능케 하는 것을 궁극적인 목표로 하는데, 도 1에서도 이러한 데이터 병렬성을 위해 스위치(20)가 구비된 것임을 알 수 있다.
도 2는 도 1의 스위치에 대한 상세 블록도이다.
도 2에 도시된 바와 같이, 온칩 네트워크 상의 스위치(10)는 인포트(Inport)(11), 아비터(Arbiter)(12) 및 스위치 패브릭(Switch Fabric)(13)으로 구성된다.
상기 인포트(11)는 스위치 내부로 유입되는 데이터를 큐잉(Queueing) 및 아비터에게 스위치 패브릭 사용에 대한 요청을 하고, 상기 아비터(12)는 인포트로부터의 요청을 받아서 스위치 패브릭 사용에 대해 허가하고, 상기 스위치 패브릭(13)은 인포트로부터 입력받은 데이터를 출력하는 기능을 수행한다.
위와 같은 구조를 갖는 온칩 네트워크에서는 하나의 IP가 네트워크를 사용(점유)하는 동안에 다른 IP가 네트워크 사용을 대기하는 것이 아니라 각 IP가 동시에 네트워크를 사용할 수 있다. 즉, 온칩 네트워크 상의 스위치는 각 IP로부터 입력받은 데이터[바람직하게는 패킷]에 포함되어 있는 태그(tag)를 디코딩해서 해당 목적지에 대응되는 각각의 IP로 순차적으로 전달하는 기능을 수행한다. 이를 설명하면 다음과 같다.
상기 스위치는 하나의 IP가 보내는 데이터가 아무리 많고 적더라도 이를 패 킷 단위로 온칩 네트워크 상에 뿌리며, 이와 같이 네트워크 상에 데이터가 서로 혼재되어져 있더라도 스위치가 각 데이터의 태그[이러한 태그는 데이터의 출발지/목적지 및 데이터의 특징을 나타내는 파라미터임]를 디코딩해서 해당되는 목적지에 각각의 데이터를 순차적으로 보낼 수 있는 것이다.
도 2를 참조하여 부연 설명하면, 서로 다른 IP로부터 다양한 목적지를 갖는 데이터가 인포트를 통해 입력되면, 아비터의 스위치 패브릭 사용 수락 여부에 따라 스위치 패브릭을 통해 해당 목적지로 각 데이터가 보내진다.
예컨대, 상기와 같은 종래 방식에서는 아비터가 스위치 패브릭이 비어 있다면 인포트의 요청을 받아들여 인포트에 큐잉되어 있던 데이터가 스위치 패브릭으로 입력되도록 하고 있는데, 이는 도 2에 도시된 아비터의 갯수만큼의 데이터 전달 요청이 있는 경우에만 해당 갯수의 데이터를 목적지로 보낼 수 있는 것이다.
또한, 상기와 같은 종래 방식에서는 동시 하나의 마스터모듈만을 사용한다면 마스터 모듈이 원하는 슬레이브모듈과의 통신을 끝마치는 동안에 다른 슬레이브모듈은 온칩 네트워크(예; 버스(Bus)) 사용을 기다리게 되어 앞의 데이터가 작은 수라 하더라도 데이터가 장시간 목적지로 전달되지 못하고 대기를 하게 되는 문제를 초래하게 된다.
그래서, 버스 사용 승인을 기다리는 마스터모듈의 개수를 줄이도록 그 내부 회로를 구성하도록 되어 있는 기존의 버스 기반에서 검증된 IP들을 이용하여 위와 같은 종래 방식인 온칩 네트워크 구조 기반의 회로를 설계하게 되면, 데이터 전송을 전담하는 마스터모듈을 구비해 온칩 네트워크 상에서 이루어지는 모든 데이터 전송을 버스 기반의 회로에서처럼 하나의 마스터모듈이 부담하게 하고 있다.
그러나, 이러한 해결 방식은 온칩 네트워크에서의 데이터 병렬성을 향상시키기 보다는 오히려 그 데이터 병렬성을 저해하고 있으며, 특히 온칩 네트워크의 사용률을 높이기 위해서라도 데이터 전송을 하나의 마스터모듈에 집중시키기 보다는 다른 마스터모듈 및/또는 슬레이브모듈에 분산시키는 것이 온칩 네트워크의 궁극적인 목표에 부합될 것이다.
따라서, 온칩 네트워크 상의 IP간 데이터 통신 병렬성을 향상시킴과 아울러, 특히 기존의 온칩 네트워크 구조를 갖는 소수의 마스터모듈과 다수의 슬레이브모듈로 이루어진 회로에서 마스터모듈의 사용률 집중을 없애기 위한 수단이 슬레이브모듈측에 탑재될 필요성이 절실히 요구되고 있다.
본 발명은 상기와 같은 문제점을 해결하고 상기와 같은 요구에 부응하기 위하여 제안된 것으로, 온칩 네트워크 상의 IP(Intellectual Property), 예컨대 마스터모듈(Master)과 슬레이브모듈(Slave)간 데이터 통신의 병렬성(parallelism)을 향상시키기 위해 슬레이브모듈측에 슬레이브 네트워크 인터페이스(SNI; Slave Network Interface)를 탑재시킨, 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크 인터페이스 회로 및 그 시스템을 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위한 본 발명은, 적어도 하나의 마스터모듈과 적어도 하나의 슬레이브모듈을 구비한 온칩 네트워크(On-Chip Networks)에 있어, 상기 각 슬레이브모듈에 각각 탑재되어, 특정 마스터모듈로부터 자신의 슬레이브모듈의 데이터 전송 방식을 설정받고, 자신의 슬레이브모듈과 상기 온칩 네트워크간의 데이터 송수신 인터페이스를 수행하는 슬레이브 네트워크 인터페이스 회로로서, 상기 슬레이브모듈간에 온칩 버스에 정의된 슬레이브모듈 인터페이스 신호를 통해 해당 데이터를 송수신하고, 상기 온칩 네트워크간에 포워드 패쓰 신호[forward path, 슬레이브 네트워크 인터페이스 => 온칩 네트워크] 및 백워드 패쓰 신호[backward path, 온칩 네트워크 => 슬레이브 네트워크 인터페이스]를 통해 해당 데이터를 송수신하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로를 제공한다.
또한, 본 발명의 상기 슬레이브 네트워크 인터페이스 회로는, 상기 온칩 네트워크로부터 입력받은 저장할 주소[Write Address]와 SNI 콘트롤러로부터 입력받은 슬레이브모듈에서 데이터를 읽을 주소[Read] 중 어느 하나의 주소를 SNI 콘트롤러의 제어에 의해 선택받아 상기 선택받은 주소[Address]를 슬레이브모듈로 입력시키는 먹스; 및 상기 슬레이브모듈에 데이터를 읽고 기록하는 것[Write Data, Read Data]을 제어하고, 상기 슬레이브모듈에서 읽은 데이터를 상기 온칩 네트워크로 전달하는데 있어서의 저장할 주소[Read Address]를 생성하는 상기 SNI 콘트롤러를 포함한다.
또한, 본 발명의 상기 슬레이브 네트워크 인터페이스 회로는, 상기 백워드 패쓰[backward path]를 통해 온칩 네트워크로부터 입력되는 데이터에 대해 상기 데이터를 모드 레지스터로 전부 출력할 것인지, 상기 데이터를 먹스 및 슬레이브모듈 각각으로 출력할 것인지를 선택하는 디먹스; 및 상기 SNI 콘트롤러가 데이터 송수신 제어에 사용할 데이터 전송 모드 정보가 저장되는 상기 모드 레지스터를 더 포함한다.
한편, 본 발명의 슬레이브 네트워크 인터페이스 시스템은, 온칩 네트워크(On-Chip Networks) 상에 구비되는 메모리 콘트롤러 및 적어도 하나의 슬레이브 네트워크 인터페이스 각각의 내부 레지스터를 셋팅하는 시스템 콘트롤러; 데이터 저장을 위한 메모리를 제어하는 상기 메모리 콘트롤러; 및 상기 온칩 네트워크 상에 구비되는 각 슬레이브모듈에 탑재되어, 상기 시스템 콘트롤러로부터 슬레이브모듈의 데이터 전송 방식을 설정받고, 해당 슬레이브모듈과 상기 온칩 네트워크간의 데이터 송수신 인터페이스를 수행하는 적어도 하나의 상기 슬레이브 네트워크 인터페이스를 포함하되, 상기 슬레이브 네트워크 인터페이스는, 상기 슬레이브모듈간에 온칩 버스에 정의된 슬레이브모듈 인터페이스 신호를 통해 해당 데이터를 송수신하고, 상기 온칩 네트워크간에 포워드 패쓰 신호[forward path, 슬레이브 네트워크 인터페이스 => 온칩 네트워크] 및 백워드 패쓰 신호[backward path, 온칩 네트워크 => 슬레이브 네트워크 인터페이스]를 통해 해당 데이터를 송수신하는 것을 특징으로 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
본 발명은, 온칩 버스 등과 같은 기존의 온칩 네트워크의 구조 설계를 변경시키지 않고서 슬레이브모듈단에 슬레이브 네트워크 인터페이스(SNI; Slave Network Interface)를 탑재시켜, 데이터 통신을 수행하는데 있어 특정 마스터모듈, 예컨대 디램 콘트롤러(DRAM Controller) 등과 같은 능동 회로 사용이 집중되는 것을 방지하며, 마스터모듈과 슬레이브모듈간의 통신, 슬레이브모듈들간의 통신의 데이터 병렬성을 향상시키고자 함이다.
다시 말하면, 본 발명에서는 디램 콘트롤러(DRAM Controller)를 통한 슬레이브모듈들간의 대용량 데이터 통신 수행을 최소화시키며, 특히 디램(DRAM)과 내부 메모리간의 대용량 데이터 통신을 담당하는 직접메모리접근제어기(DMAC)가 온칩 네트워크 상에 설계되지 않는다.
그럼, 도 3 내지 도 7을 참조하여 본 발명의 슬레이브 네트워크 인터페이스에 대해 상세히 후술하기로 한다.
도 3은 본 발명에서 제시하는 슬레이브 네트워크 인터페이스를 이용해 설계한 온칩 네트워크의 구조를 보여주기 위한 일실시예 블록도이다.
도 3에 도시된 바와 같이, 본 발명에서는 온칩 네트워크(100)와 각 슬레이브모듈[슬레이브모듈0(50), 슬레이브모듈1(60), 슬레이브모듈2(70), 슬레이브모듈3(80) 및 슬레이브모듈4(90)] 사이, 바람직하게는 각 슬레이브모듈단에 각각 슬레이브 네트워크 인터페이스(SNI; Slave Network Interface)(51, 61, 71, 81, 91)를 탑재시킨다.
한편, 본 발명의 온칩 네트워크(100) 상에는 2개의 마스터모듈, 예컨대 마스터모듈0[즉 시스템 제어를 담당하는 프로세서(Processor)](40)과 마스터모듈1[즉 디램(DRAM) 접근 제어를 담당하는 디램 콘트롤러(DRAM Controller)](45)가 구비되 며, 데이터 저장을 위한 디램(DRAM)](46)이 구비된다. 덧붙여, 본 발명에서 언급하는 온칩 네트워크(100) 상에는 시스템을 구성하는 가장 기본적인 구성요소인 프로세서 및 디램 콘트롤러를 마스터모듈로서 예를 들어 설명하며, 여타 다른 기능을 수행하는 마스터모듈이 구비될 수 있으며 이에 한정되지는 않음을 밝혀 둔다.
도 3에 도시된 온칩 네트워크(100) 상에서, 프로세서(40), 디램 콘트롤러(45) 및 각 슬레이브모듈(50, 60, 70, 80, 90)간에 데이터 전송이 이루어진다.
상기 디램 콘트롤러(45)는 온칩 네트워크(100)로부터 입력받은 신호를 디램(46)에서 판독될 수 있는 신호, 예컨대 DRAM 인터페이스 신호에 부합되게 변환하는 기능을 수행한다.
상기 프로세서(40)는 디램 콘트롤러(45)의 내부 레지스터를 셋팅하여[Register setting] 디램(46)의 규격에 맞는 데이터 전송 방식을 설정해 준다.
특히, 본 발명에서 제시하는 슬레이브 네트워크 인터페이스(51, 61, 71, 81, 91)는 프로세서(40)로부터 내부 레지스터 셋팅을 통해 각 슬레이브모듈(50, 60, 70, 80, 90)의 데이터 전송 방식을 설정받고서, 각 슬레이브모듈(50, 60, 70, 80, 90)에 기록되어 있는 데이터를 읽어 해당 데이터를 온칩 네트워크(100) 상으로 전달하며, 이에 해당 데이터가 목적지에 대응되는 마스터모듈 및/또는 슬레이브모듈로 입력된다.
그럼, 도 3을 참조해 언급한 상기 슬레이브 네트워크 인터페이스에 대해 도 4를 참조하여 상세히 설명하기로 한다.
도 4는 본 발명에 따른 슬레이브 네트워크 인터페이스에 대한 일실시예 구성도이다.
도 4의 상단에 도시된 바와 같이, 기존의 검증된 IP인 슬레이브모듈(50)과 온칩 네트워크(100)간의 데이터 통신을 위한 본 발명의 슬레이브 네트워크 인터페이스(51)는 슬레이브모듈(50)간에, 단방향 데이터 포트(uni-directional data port)를 갖는 에스램(SRAM)의 인터페이스와 비슷한 구조, 예컨대 라이트/리드 신호[Write/Read], 어드레스 신호[Address], 라이트 데이터 신호[Write Data] 및 리드 데이터 신호[Read Data]를 사용해 그 인터페이스를 수행한다.
그리고, 본 발명의 슬레이브 네트워크 인터페이스(51)는, 온칩 네트워크(100)간에, SNI 어드레스 신호[SNI Address; 슬레이브 네트워크 인터페이스 주소], SNI 데이터 신호[SNI Data], 라이트 어드레스 신호[Write Address], 라이트 데이터 신호[Write Data], 리드 어드레스 신호[Read Address] 및 리드 데이터 신호[Read Data]를 사용해 그 인터페이스를 수행한다.
상기 슬레이브 네트워크 인터페이스(51)가 온칩 네트워크(100) 및 슬레이브모듈(50)간에 각각 데이터 통신을 하는데 있어, SNI 어드레스 제어 신호[SNI Address] 및 SNI 데이터 신호[SNI Data]는 프로세서(40)로부터의 내부 레지스터 설정 사항이 슬레이브 네트워크 인터페이스(51)에 입력되는데 사용되며, 라이트 어드레스 신호[Write Address] 및 라이트 데이터 신호[Write Data]는 온칩 네트워크(100)로부터 슬레이브모듈(50)에 기록할 데이터와 그 저장할 주소를 입력받는데 사용되며, 리드 어드레스 신호[Read Address] 및 리드 데이터 신호[Read Data]는 슬레이브모듈(50)에서 읽은 데이터와 그 저장할 주소를 온칩 네트워크(100)로 전달하는데 사용된다.
도 4의 하단에 도시된 바와 같이, 상기와 같은 슬레이브 네트워크 인터페이스(51)는 그 내부에 먹스(Mux)(500)와 SNI 콘트롤러(SNI Controller)(510)를 구비한다.
상기 먹스(500)는 온칩 네트워크(100)로부터 입력받은 저장할 주소[Write Address]와 SNI 콘트롤러(510)로부터 입력받은 슬레이브모듈(50)에서 데이터를 읽을 주소[Read] 중 어느 하나의 주소를 SNI 콘트롤러(510)의 제어에 의해 선택받아 이 선택받은 주소[Address]를 슬레이브모듈(50)로 입력시킨다.
상기 SNI 콘트롤러(510)는 앞서 언급한 먹스(500)에서 어느 주소를 선택해야 되는 지를 결정하며, 슬레이브모듈(50)에 데이터를 읽고 기록하는 것[Write Data, Read Data]을 제어하며, 또한 슬레이브모듈(50)에서 읽은 데이터를 온칩 네트워크(100)로 전달하는데 있어 그 저장할 주소[Read Address]를 생성하는 기능도 수행한다.
위와 같이 도 4를 참조해 설명한 슬레이브 네트워크 인터페이스(51)는 바람직하게는 슬레이브모듈(50) 및 온칩 네트워크(100) 각각간의 인터페이스 수행을 위해서는 전술한 신호 송수신을 제어하기 위한 추가적인 제어신호가 요구된다. 이는 도 5를 참조하여 하기에서 상세히 설명하기로 한다.
도 5는 도 4의 슬레이브 네트워크 인터페이스에 대한 상세 회로도이다.
도 5에 도시된 바와 같이, 슬레이브 네트워크 인터페이스(51)와 슬레이브모듈(50)간은 보편화된 온칩 버스인 AMBA(Advanced Micro-controller Bus Architecture) 2.0의 AHB(AMBA High Performance Bus) 인터페이스를 통해 연결된다.
그리고, 슬레이브 네트워크 인터페이스(51)와 온칩 네트워크(100)간에 데이터 통신을 수행하는데 있어, 포워드 패쓰 신호[forward path] 및 백워드 패쓰 신호[backward path]가 사용된다. 여기서, 포워드 패쓰 신호는 슬레이브 네트워크 인터페이스(51)에서 온칩 네트워크(100)로 데이터를 보낼 때 사용되며, 백워드 패쓰 신호는 슬레이브 네트워크 인터페이스(51)에서 온칩 네트워크(100)로부터 슬레이브모듈(50)에 저장할 데이터를 받을 때 사용된다.
그럼, 도 5에 도시된 인터페이스 신호(On Chip Network Interface 신호), 예컨대 포워드 패쓰 신호[forward path] 및 백워드 패쓰 신호[backward path]와, 슬레이브모듈 인터페이스 신호에 대해 설명하면 다음과 같다.
먼저, 포워드 패쓰 신호[forward path]로는 fholdms, fbst, faen, fa, fden, fdata가 있다.
상기 fholdms는 포워드 패쓰를 통해 수신되는 데이터의 전송을 중지하기 위해 온칩 네트워크(100)가 슬레이브 네트워크 인터페이스(51)에게 보내는 신호이다.
상기 fbst는 버스트 전송 모드(burst mode)로 동작하기 위해 슬레이브 네트워크 인터페이스(51)가 burst length를 온칩 네트워크(100)에게 보내는 신호이다.
상기 faen은 fa 신호가 유효(valid)하다는 의미로서 슬레이브 네트워크 인터 페이스(51)가 온칩 네트워크(100)에게 보내는 신호이다.
상기 fa는 데이터가 저장될 주소를 나타내는 신호이다.
상기 fden은 fdata 신호가 유효(valid)하다는 의미로서 슬레이브 네트워크 인터페이스(51)가 온칩 네트워크(100)에게 보내는 신호이다.
상기 fdata는 슬레이브 네트워크 인터페이스(51)에서 온칩 네트워크(100)로 보내어 저장할 데이터를 나타내는 신호이다.
다음으로, 백워드 패쓰 신호[backward path]로는 bholdmni, baen, ba, bden, bdata가 있다.
상기 bholdmni는 백워드 패쓰를 통해 수신되는 데이터의 전송을 중지하기 위해 슬레이브 네트워크 인터페이스(51)가 온칩 네트워크(100)에게 보내는 신호이다.
상기 baen은 ba 신호가 유효(valid)하다는 의미로서 온칩 네트워크(100)가 슬레이브 네트워크 인터페이스에게 보내는 신호이다.
상기 ba는 데이터가 저장될 주소를 나타내는 신호이다.
상기 bden은 bdata 신호가 유효(valid)하다는 의미로서 온칩 네트워크(100)가 슬레이브 네트워크 인터페이스(51)에게 보내는 신호이다.
상기 bdata는 온칩 네트워크(100)에서 슬레이브 네트워크 인터페이스(51)로 보내어 슬레이브모듈(50)에 저장할 데이터를 나타내는 신호이다.
마지막으로, 슬레이브모듈 인터페이스 신호로는 Hready, Hrdata, Htrans, Hwrite, Haddr, Hwdata가 있다.
상기 Hready는 슬레이브모듈(50)이 슬레이브 네트워크 인터페이스(51)에게 자신이 "not busy" 또는 자신이 보낸 Hrdata가 유효하다는 것을 통보할 때에 사용되는 신호로서, 이때 "1"의 값을 갖는다.
상기 Hrdata는 슬레이브모듈(50)에서 읽은 데이터를 나타내는 신호이다.
상기 Htrans는 AMBA 전송 모드를 나타내는 신호로서, 그 값이 "00"이면 아이들 모드(Idle Mode)를, "01"이면 비지 모드(Busy Mode)를, "10"이면 비연속 모드(Nonsequential Mode)를, "11"이면 연속 모드(Sequential Mode)를 의미한다.
상기 Hwrite는 슬레이브모듈(50)에 데이터를 기록할 때 또는 슬레이브모듈(50)에서 데이터를 읽을 때 사용되는 신호로서, 그 값이 "1"이면 슬레이브모듈(50)에 데이터를 기록하는 것을, "0"이면 슬레이브모듈(50)에서 데이터를 읽는 것을 의미한다.
상기 Haddr은 데이터를 기록할 주소 또는 데이터를 읽을 주소를 나타내는 신호이다.
상기 Hwdata는 슬레이브모듈(50)에 저장할 데이터를 나타내는 신호이다.
앞서 설명한 인터페이스 신호[포워드 패쓰 신호, 백워드 패쓰 신호, 슬레이브모듈 인터페이스 신호]를 사용해 슬레이브 네트워크 인터페이스(51)와 온칩 네트워크(100)간에 데이터 통신을 수행하는, 슬레이브 네트워크 인터페이스(51)의 회로는, 바람직하게 먹스(500)와 SNI 콘트롤러(510), 디먹스(DeMux)(550) 및 모드 레지스터(Mode Register)(560)로 이루어진다.
덧붙여, 도 4를 참조하여 본 발명의 슬레이브 네트워크 인터페이스(51)가 먹스(Mux)(500)와 SNI 콘트롤러(SNI Controller)(510)로 구성된다고 설명한 바 있다. 다만, 바람직하게는 먹스(500)와 SNI 콘트롤러(510)로 입출력되는 슬레이브 네트워크 인터페이스와 온칩 네트워크간의 신호, 예컨대 데이터 송수신 제어를 효율적으로 수행하기 위해 디먹스(550) 및 모드 레지스터(560)를 구비하는 것이 바람직하다. 그럼, 이러한 디먹스(550) 및 모드 레지스터(560)에 대해 살펴보면 다음과 같다.
상기 디먹스(550)는 백워드 패쓰[backward path]를 통해 온칩 네트워크(100)로부터 입력되는 데이터에 대해 이 데이터를 모드 레지스터(560)로 출력할 것인지 아니면 먹스(500) 및 슬레이브모듈(50)로 출력할 것인지를 선택한다.
예컨대, 디먹스(550)에 있어 입력 데이터에 대응되는 백워드 패쓰[backward path] 주소가 모드 레지스터 주소를 지시하면, 그 데이터를 M_Reg_Data 신호로서 모드 레지스터(560)로 출력하고, 그 주소 중 모드 레지스터 인덱스[Mode Register index] 부분만을 M_Reg_Addr 신호로서 모드 레지스터(560)로 출력한다.
또한, 디먹스(550)에 있어 입력 데이터에 대응되는 백워드 패쓰[backward path] 주소가 모드 레지스터 주소를 지시하지 않으면, 이 입력 데이터를 슬레이브모듈(50)에 저장할 데이터로 인식해 그 주소의 하위 16비트(bit)를 Write Address 신호로서 먹스(500)로 출력하고, 그 데이터를 Hwdata 신호로서 슬레이브모듈(50)로 출력한다.
상기 먹스(500)는 SNI 콘트롤러(510)로부터 Read Address 신호를 입력받고 디먹스(550)로부터 Write Address 신호를 입력받은 상태에서, SNI 콘트롤러(510)로부터 입력받은 제어신호, 예컨대 그 값이 "0"인 Hwrite 신호를 입력받으면 슬레이 브모듈(50)에 Hrdata를 저장하기 위한 주소인 상기 Read Address를 Haddr 신호로서 슬레이브모듈(50)로 출력하고, 그 값이 "1"인 Hwrite 신호를 입력받으면 상기 Write Address를 Haddr 신호로서 슬레이브모듈(50)로 출력한다.
상기 모드 레지스터(560)는 SNI 콘트롤러(510)가 어떠한 전송 방식으로 데이터를 전송할 것인지를 나타내는 정보가 저장되며, 이와 같은 SNI 콘트롤러(510)는 모드 레지스터(560)에 저장되어 있는 정보를 토대로 해당 전송 모드를 사용해 데이터 송수신을 제어한다.
그럼, 슬레이브 네트워크 인터페이스(51)와 온칩 네트워크(100)간의 데이터 통신 과정, 슬레이브 네트워크 인터페이스(51)와 슬레이브모듈(50)간의 데이터 통신 과정을 설명하기에 앞서, 먼저 전송 모드에 대해 도 6을 참조하여 상세히 설명하고서 다음으로 그 데이터 통신 과정을 상세히 후술하기로 한다.
도 6은 본 발명에 따른 슬레이브 네트워크 인터페이스의 전송 모드를 보여주기 위한 일실시예 설명도이다.
도 6에는 슬레이브 네트워크 인터페이스가 슬레이브모듈로부터 데이터를 읽어서 온칩 네트워크 상의 특정 IP[마스터모듈 또는 슬레이브모듈 중 어느 하나]로 데이터를 전송하기 위한 전송 모드를 도시화하였다.
전송하고자 하는 슬레이브모듈의 데이터 단위는 8비트, 16비트, …, 128비트 등으로 구성될 수 있으며, 그 전송하고자 하는 데이터는 연속된 여러개의 데이터 집합이 될 수 있으며, 또한 이 연속된 데이터 집합이 특정 주소 거리만큼 떨어져 있을 수도 있다.
한편, 저장하고자 하는 특정 IP의 데이터 단위는 상기 슬레이브모듈의 데이터 단위와 서로 다를 수 있으며, 연속된 데이터 수와 그 연속된 데이터 집합들이 떨어진 주소 거리도 슬레이브모듈과는 서로 다를 수 있다.
도 6에 도시된 바와 같이, 데이터 전송은 슬레이브모듈의 메모리에서 8비트 단위로 연속된 데이터 집합을 구성하고 특정 주소 거리만큼 떨어져서 반복되는 데이터 집합들을 16비트 단위로 연속된 데이터 집합으로 구성하고, 다른 특정 주소 거리만큼 떨어져서 반복되는 구성을 갖도록 특정 IP의 메모리에 이 데이터를 저장시킬 수 있다.
도 6의 상단에 도시된 소스 메모리(Source Memory)는 슬레이브모듈의 데이터가 저장된 메모리를 나타내며, 소스 메모리 상의 스타트 어드레스(Start Address)는 데이터를 읽을 시작 주소를 나타내며, 소스 메모리 상의 트랜스퍼 사이즈(Transfer Size)는 연속된 데이터의 수를 나타내며, 소스 메모리 상의 트랜스퍼 갭(Transfer Gap)은 연속된 데이터 사이의 주소 거리를 나타내며, 소스 메모리 상의 엔드 어드레스(End Address)는 데이터를 읽을 마지막 주소를 나타낸다.
그리고, 도 6의 하단에 도시된 데스티네이스 메모리(Destination Memory)는 슬레이브모듈에서 읽은 데이터를 저장할 특정 IP의 메모리를 나타내며, 위에서 설명한 소스 메모리의 구조와 같이, 스타트 어드레스(Start Address), 트랜스퍼 사이즈(Transfer Size), 트랜스퍼 갭(Transfer Gap) 및 엔드 어드레스(End Address)의 데이터 저장 구조를 갖는다.
위에서 언급한 정보는 도 5에서 설명한 모드 레지스터에 다음과 같은 구조로 저장된다.
* Source Memory M_REG0th = {16'b0, StartAddress[15:0]} M_REG1th = {TransferWidth[2:0], TransferSize[4:0], TransferGap[7:0], EndAddress[15:0]}
* Destination Memory M_REG2th = {StartAddress[31:0]} M_REG3th = {TransferWidth[2:0], TransferSize[4:0], TransferGap[7:0], IncreasedAddress[15:0]}
한편, 도 5에서 설명한 슬레이브 네트워크 인터페이스, 바람직하게는 SNI 콘트롤러는 백워드 패쓰[backward path] 신호를 분석하여 온칩 네트워크로부터 입력받은 데이터를 슬레이브모듈에 저장하거나, 모드 레지스터에 저장되어 있는 정보, 즉 전송 모드에 따라 슬레이브모듈 인터페이스 신호를 제어해서 슬레이브모듈에서 데이터를 읽어서 포워드 패쓰[forward path] 신호를 발생시켜 이 데이터를 온칩 네트워크로 전송하게 된다.
그럼, 슬레이브 네트워크 인터페이스에 있어 그 데이터 전송 과정, 즉 슬레이브모듈에 데이터를 저장하는 과정과, 온칩 네트워크로 데이터를 보내는 과정에 대해 도 5에 도시된 신호를 참조해 각각 살펴보자.
첫번째로, 슬레이브 네트워크 인터페이스에 있어 슬레이브모듈에 데이터를 저장하는 과정은 다음과 같다.
먼저, 온칩 네트워크로부터 입력받은 baen이 "0"이면 데이터 저장 동작을 대 기하고, 그 baen이 "1"이 되면 데이터 저장 동작을 개시한다.
이후, 슬레이브모듈로부터 입력받은 Hready가 "0"이면 bholdmni의 값을 "1"로 만들어 온칩 네트워크로 보내고서 대기하다가, 슬레이브모듈로부터 "1"의 값을 갖는 Hready가 입력되면 Htrans를 아이들 모드(Idle Mode)에서 비연속 모드(Nonsequential Mode)로 전환시킨다.
그리고, Hwrite의 값을 "1"로 설정하며, 이때에 Haddr의 값은 Write Address에 대응되는 값으로 바뀌게 된다.
그런후, 온칩 네트워크로부터 2번째 입력받은 baen이 "0"이면 계속 대기하고, 그 다음의 baen의 값도 "0"이면 Htrans를 아이들 모드(Idle Mode)로 한 상태에서 슬레이브모듈에 더 이상의 데이터 저장 동작을 수행하지 않고서 그 다음다음의 baen의 값이 "1"로 천이되는 상태에서, Hready가 "0"이면 bholdmni의 값을 "1"로 만들고서 대기하다가 이 Hready의 값이 "1"이 되면 전송 모드 전환 동작을 수행, 즉 Htrans를 비연속 모드(Nonsequential Mode)에서 연속 모드(Sequential Mode)로 전환시킨다.
위와 같이, 온칩 네트워크로부터 계속 입력되는 baen의 값에 따라 데이터 저장 동작 대기/개시를 수행하면서 연속 모드를 아이드 모드로 전환시켜 슬레이브모듈에 더 이상의 데이터를 저장하지 않다가 baen의 값과 Hready의 값의 변경에 따라 전송 모드를 연속 모드로 설정해 데이터 저장 동작을 진행한다.
두번째로, 슬레이브 네트워크 인터페이스에 있어 온칩 네트워크로 데이터를 보내는 과정은 다음과 같다.
먼저, 모드 레지스터에 저장되어 있는 전송 모드에 관한 정보를 읽는다.
그리고, 온칩 네트워크로부터 입력받은 fholdms가 "0"이면 데이터 전송 동작을 대기하고, 그 fholdms가 "1"이 되면 데이터 전송 동작을 개시한다.
이후, 슬레이브모듈로부터 입력받은 Hready가 "0"이면 bholdmni의 값을 "1"로 만들어 온칩 네트워크로 보내고서 대기하며, 슬레이브모듈로부터 "1"의 값을 갖는 Hready가 입력되면 상기 모드 레지스터에서 읽은 전송 모드에 따라 슬레이브모듈로부터 읽을 데이터의 주소인 Read Address를 발생시킨다.
그리고서, Hwrite의 값을 "0"으로 만들어서 슬레이브모듈에게 보낸 상태에서, Htrans를 아이들 모드(Idle Mode)에서 비연속 모드(Nonsequential Mode)로 전환시킨다.
그런후, 슬레이브모듈로부터 입력되는 Hready의 값이 "0"에서 "1"로 천이되면 슬레이브모듈에서 Hrdata를 읽어서 SNI 콘트롤러 내부(예; 내부 버퍼 등)에 저장한다.
그런후, 상기 전송 모드에 따라 상기 SNI 콘트롤러 내부에 저장한 Hrdata에서 읽은 데이터와 그에 대응되는 fbst, fa로서 fdata를 발생시킨다.
그리고, faen, fden 각각을 "0"에서 "1"로, 다시 "0"으로 천이시키면서 그 값을 발생시킨다.
그리고, 상기 전송 모드에 따라 슬레이브모듈에서 읽을 데이터의 주소인 Read Address를 발생시킨다.
그리고, Htrans를 비연속 모드(Nonsequential Mode)에서 연속 모 드(Sequential Mode)로 전환시킨다.
이윽고, Hready가 "0"으로 천이되었다가 "1"로 되면 Hrdata를 읽어서 fdata를 발생시킨다.
그리고, fden을 "0"에서 "1"로, 다시 "0"으로 천이시키면서 그 값을 발생시킨다.
위와 같은 Read Address를 발생시키는 동작, 비연속 모드에서 연속 모드로의 전환 동작, Hready가 "1"인 상태에서 Hrdata를 읽어서 fdata를 발생시키는 동작, fden을 "0"에서 "1"로, 다시 "0"으로 천이시키는 동작을 반복적으로 수행하며, 모든 데이터 전송이 완료되면 본 동작을 종료한다.
전술한 본 발명의 슬레이브 네트워크 인터페이스의 장점은, 서로 다른 데이터 단위를 갖는 메모리간의 데이터 송수신에 있어 데이터를 분할하거나 합쳐주고 2D Block 전송을 해 주며, 각 슬레이브 네트워크 인터페이스가 각각의 슬레이브모듈에 분산되어져 있기에 슬레이브모듈이 동시에 데이터 송수신을 수행할 수 있다.
또한, 기존의 DMAC를 구비해 데이터 송수신을 하는 방식에서는 버스에서 온칩 네트워크로 통신 구조를 바꾼다고 하여도 동시에 하나의 마스터만 하용하는 구조이므로, DMAC 또는 프로세서 중 어느 하나의 회로만 슬레이브모듈과 통신을 할 수 있었지만, 본 발명의 방식은 동시에 여러 슬레이브모듈이 통신을 할 수 있다. 그리고, 단방향 신호를 사용해 슬레이브모듈과 온칩 네트워크간에 데이터 송수신을 수행할 수 있도록 단일 채널만을 지원하면 되고, 슬레이브모듈의 메모리 영역만을 지원하면 되기에 그 회로 구조가 단순해지는 잇점도 있다.
또한, 인터페이스 측면에 있어 슬레이브모듈은 보편화된 온칩 버스인 AMBA 2.0의 규격을 따르면 되고, 온칩 네트워크에 곧바도 연결될 수 있기에, 기존 방식에서 온칩 네트워크를 사용하기 위해 AMBA 2.0과 온칩 네트워크 사이에 신호 변환 회로를 구비해야 되는 문제점과, 이러한 신호 변환 회로에서의 신호 처리로 인한 데이터 전송 지연이 없어지게 된다.
즉, 본 발명에서는 슬레이브모듈에 슬레이브 네트워크 인터페이스를 탑재시킴으로서, 슬레이브모듈과 온칩 네트워크간의 상호 송수신 신호의 변환을 수행하지 않아도 되는 잇점이 있다.
도 7은 본 발명에 따라 슬레이브 네트워크 인터페이스를 통해 데이터 통신을 수행하는 것을 보여주기 위한 일실시예 설명도이다.
도 7에는 디램 콘트롤러와 슬레이브모듈간의 데이터 통신 과정과, 슬레이브모듈과 다른 슬레이브모듈간의 데이터 통신 과정이 간략히 도시되어 있으며, 하기에 그 데이터 전송 순서를 설명하겠다. 덧붙여, 보편적으로 메모리 콘트롤러, 바람직하게는 디램 콘트롤러를 설정하는데 있어 programmable logic이 사용되는데, 본 발명의 예시로서 프로세서가 이러한 programmable logic을 대신해 디램 콘트롤러를 설정하는 것으로서 설명하기로 한다.
먼저, 슬레이브 네트워크 인터페이스 설정 과정은 다음과 같다.
- "710" 과정" : 프로세서(40)는 제1 슬레이브모듈(50)측의 슬레이브 네트워크 인터페이스(51)에, 그 슬레이브모듈(50)에서 읽을 데이터의 주소와 전송할 주소 에 대한 소스 어드레스(source address), 데스티네이션 어드레스(destination address) 및 각각의 전송 모드(transfer mode)를 설정한다.
- "720" 과정" : 프로세서(40)는 디램 콘트롤러(45)에, 디램(46)의 특성 및 통신 모드, 즉 refresh time, burst length, cas latency를 설정한다.
- "730" 과정" : 프로세서(40)는 제2 슬레이브모듈(70)측의 슬레이브 네트워크 인터페이스(71)에, 그 슬레이브모듈(70)에서 읽을 데이터의 주소와 전송할 주소에 대한 소스 어드레스(source address), 데스티네이션 어드레스(destination address) 및 각각의 전송 모드(transfer mode)를 설정한다.
- "740" 과정" : 프로세서(40)는 제3 슬레이브모듈(80)측의 슬레이브 네트워크 인터페이스(810)에, 그 슬레이브모듈(80)에서 읽을 데이터의 주소와 전송할 주소에 대한 소스 어드레스(source address), 데스티네이션 어드레스(destination address) 및 각각의 전송 모드(transfer mode)를 설정한다.
상기 "710" 과정", "720" 과정", "730" 과정" 및 "740" 과정"으로서 슬레이브 네트워크 인터페이스 설정이 완료되면 다음과 같이 데이터 전송이 이루어진다.
슬레이브모듈0(50)에서 슬레이브모듈1(60)로 데이터 전송이 이루어지며["750" 과정"], 이와 동시에 슬레이브모듈2(70)에서 디램(46)으로 데이터 전송이 이루어지며["760" 과정"], 이와 동시에 슬레이브모듈3(80)에서 슬레이브모듈4(90)로 데이터 전송이 이루어진다["770" 과정"].
위에서 "750" 과정", "760" 과정" 및 "770" 과정"에서 보인 바와 본 발명에서는 온칩 네트워크 상에서 동시에 3개의 데이터를 병렬적으로 전송할 수 있는 것 이다.
물론, 온칩 네트워크의 포트를 더 늘려서 더 많은 수의 데이터 전송을 동시에 병렬적으로 전송할 수도 있다. 이러한 경우에 있어 기존의 직접메모리접근제어기(DMAC)를 사용하는 종래 방식에서 슬레이브모듈만큼 16 워드(word)를 연속적으로 데이터 전송하는 것에 비해, 본 발명의 소요 싸이클이 44%로 감소됨을 확인할 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은 온칩 네트워크 상의 IP간 데이터 통신 병렬성을 향상시킴과 아울러, 특히 기존의 온칩 네트워크 구조를 갖는 소수의 마스터모듈과 다수의 슬레이브모듈로 이루어진 회로에서 마스터모듈의 사용률 집중을 없애는 효과가 있다.
또한, 본 발명은 서로 다른 데이터 단위를 갖는 메모리간의 데이터 송수신에 있어 데이터를 분할하거나 합쳐주고, 각 슬레이브 네트워크 인터페이스가 각각의 슬레이브모듈에 분산되어져 있기에 슬레이브모듈이 동시에 데이터 송수신을 수행할 수 있는 효과가 있다.
또한, 본 발명은 기존의 온칩 네트워크를 구비해 데이터 송수신을 하는 방식과 비교해 보면, 단방향 신호를 사용해 슬레이브모듈과 온칩 네트워크간에 데이터 송수신을 수행할 수 있도록 단일 채널만을 지원하면 되고, 슬레이브모듈의 메모리 영역만을 지원하면 되기에 그 회로 구조가 단순해지는 효과가 있다.
또한, 본 발명은 인터페이스 측면에 있어 슬레이브모듈은 보편화된 온칩 버스인 AMBA 2.0의 규격을 따르면 되고, 온칩 네트워크에 곧바도 연결될 수 있기에, 기존 방식에서 온칩 네트워크를 사용하기 위해 AMBA 2.0과 온칩 네트워크 사이에 신호 변환 회로를 구비해야 되는 문제점 해소와, 이러한 신호 변환 회로에서의 신호 처리로 인한 데이터 전송 지연을 방지하는 효과가 있다.

Claims (14)

  1. 적어도 하나의 마스터모듈과 적어도 하나의 슬레이브모듈을 구비한 온칩 네트워크(On-Chip Networks)에 있어,
    상기 각 슬레이브모듈에 각각 탑재되어, 특정 마스터모듈로부터 자신의 슬레이브모듈의 데이터 전송 방식을 설정받고, 자신의 슬레이브모듈과 상기 온칩 네트워크간의 데이터 송수신 인터페이스를 수행하는 슬레이브 네트워크 인터페이스 회로로서,
    상기 슬레이브모듈간에 온칩 버스에 정의된 슬레이브모듈 인터페이스 신호를 통해 해당 데이터를 송수신하고,
    상기 온칩 네트워크간에 포워드 패쓰 신호[forward path, 슬레이브 네트워크 인터페이스 => 온칩 네트워크] 및 백워드 패쓰 신호[backward path, 온칩 네트워크 => 슬레이브 네트워크 인터페이스]를 통해 해당 데이터를 송수신하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
  2. 제 1 항에 있어서,
    상기 슬레이브 네트워크 인터페이스 회로는,
    상기 슬레이브모듈간에 라이트/리드 신호[Write/Read], 어드레스 신호[Address], 라이트 데이터 신호[Write Data] 및 리드 데이터 신호[Read Data]를 사용해 해당 인터페이스를 수행하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
  3. 제 1 항에 있어서,
    상기 슬레이브 네트워크 인터페이스 회로는,
    상기 온칩 네트워크간에 SNI 어드레스 신호[SNI Address; 슬레이브 네트워크 인터페이스 주소], SNI 데이터 신호[SNI Data], 라이트 어드레스 신호[Write Address], 라이트 데이터 신호[Write Data], 리드 어드레스 신호[Read Address] 및 리드 데이터 신호[Read Data]를 사용해 해당 인터페이스를 수행하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 슬레이브 네트워크 인터페이스 회로는,
    상기 온칩 네트워크로부터 입력받은 저장할 주소[Write Address]와 SNI 콘트롤러로부터 입력받은 슬레이브모듈에서 데이터를 읽을 주소[Read] 중 어느 하나의 주소를 SNI 콘트롤러의 제어에 의해 선택받아 상기 선택받은 주소[Address]를 슬레이브모듈로 입력시키는 먹스; 및
    상기 슬레이브모듈에 데이터를 읽고 기록하는 것[Write Data, Read Data]을 제어하고, 상기 슬레이브모듈에서 읽은 데이터를 상기 온칩 네트워크로 전달하는데 있어서의 저장할 주소[Read Address]를 생성하는 상기 SNI 콘트롤러
    를 포함하는 상기 슬레이브 네트워크 인터페이스 회로.
  5. 삭제
  6. 제 4 항에 있어서,
    상기 포워드 패쓰 신호[forward path]는 fholdms, fbst, faen, fa, fden, fdata를 포함하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
    여기서, fholdms는 포워드 패쓰를 통해 수신되는 데이터의 전송을 중지하기 위한 신호, fbst는 버스트 전송 모드(burst mode)로 동작하기 위한 신호, faen은 fa 신호가 유효(valid)하다는 신호, fa는 데이터가 저장될 주소를 나타내는 신호, fden은 fdata 신호가 유효(valid)하다는 신호, fdata는 슬레이브 네트워크 인터페이스에서 온칩 네트워크로 보내어 저장할 데이터를 나타내는 신호.
  7. 제 4 항에 있어서,
    상기 백워드 패쓰 신호[backward path]는 bholdmni, baen, ba, bden, bdata를 포함하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
    여기서, bholdmni는 백워드 패쓰를 통해 수신되는 데이터의 전송을 중지하기 위한 신호, baen은 ba 신호가 유효(valid)하다는 신호, ba는 데이터가 저장될 주소를 나타내는 신호, bden은 bdata 신호가 유효(valid)하다는 신호, bdata는 온칩 네트워크에서 슬레이브 네트워크 인터페이스로 보내어 슬레이브모듈에 저장할 데이터를 나타내는 신호.
  8. 제 4 항에 있어서,
    상기 슬레이브모듈 인터페이스 신호는 Hready, Hrdata, Htrans, Hwrite, Haddr, Hwdata를 포함하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
    여기서, Hready는 슬레이브모듈이 슬레이브 네트워크 인터페이스에게 자신이 not busy 또는 자신이 보낸 Hrdata가 유효하다는 것을 통보할 때에 사용되는 신호["1"], Hrdata는 슬레이브모듈에서 읽은 데이터를 나타내는 신호, Htrans는 온칩 버스 전송 모드를 나타내는 신호["00"; 아이들 모드(Idle Mode), "01"; 비지 모드(Busy Mode), "10"; 비연속 모드(Nonsequential Mode), "11"; 연속 모드(Sequential Mode)], Hwrite는 슬레이브모듈에 데이터를 읽고/기록할 때에 사용되는 신호["1"; 슬레이브모듈에 데이터를 기록하는 것, "0"; 슬레이브모듈에서 데이터를 읽는 것], Haddr은 데이터를 읽을/기록할 주소를 나타내는 신호, Hwdata는 슬레이브모듈에 저장할 데이터를 나타내는 신호.
  9. 제 4 항에 있어서,
    상기 슬레이브 네트워크 인터페이스 회로는,
    상기 백워드 패쓰[backward path]를 통해 온칩 네트워크로부터 입력되는 데이터에 대해 상기 데이터를 모드 레지스터로 전부 출력할 것인지, 상기 데이터를 먹스 및 슬레이브모듈 각각으로 출력할 것인지를 선택하는 디먹스; 및
    상기 SNI 콘트롤러가 데이터 송수신 제어에 사용할 데이터 전송 모드 정보가 저장되는 상기 모드 레지스터
    를 더 포함하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
  10. 제 9 항에 있어서,
    상기 디먹스는,
    상기 온칩 네트워크로부터의 입력 데이터에 대응되는 백워드 패쓰[backward path] 주소가 모드 레지스터 주소를 지시함에 따라 상기 데이터를 M_Reg_Data 신호로서 모드 레지스터로 출력하고, 상기 백워드 패쓰 주소 중 모드 레지스터 인덱스[Mode Register index] 부분만을 M_Reg_Addr 신호로서 모드 레지스터로 출력하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
  11. 제 9 항에 있어서,
    상기 디먹스는,
    상기 온칩 네트워크로부터의 입력 데이터에 대응되는 백워드 패쓰[backward path] 주소가 모드 레지스터 주소를 지시하지 않음에 따라 상기 입력 데이터 주소의 하위 16비트(bit)를 Write Address 신호로서 먹스로 출력하고, 상기 입력 데이터를 Hwdata 신호로서 슬레이브모듈로 출력하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
  12. 제 9 항에 있어서,
    상기 먹스는,
    상기 SNI 콘트롤러로부터 Read Address 신호를 입력받고 디먹스로부터 Write Address 신호를 입력받은 상태에서,
    상기 SNI 콘트롤러로부터 "0"의 값을 갖는 Hwrite 신호를 입력받으면 슬레이브모듈에 Hrdata를 저장하기 위한 주소인 상기 Read Address를 Haddr 신호로서 슬레이브모듈로 출력하며,
    상기 SNI 콘트롤러로부터 "1"의 값을 갖는 Hwrite 신호를 입력받으면 상기 Write Address를 Haddr 신호로서 슬레이브모듈로 출력하는 것을 특징으로 하는 상기 슬레이브 네트워크 인터페이스 회로.
  13. 제 9 항에 있어서,
    상기 모드 레지스터에 저장되는 데이터 전송 모드 정보는,
    일측 슬레이브모듈의 데이터가 저장되어 있는 소스 메모리(Source Memory) 구조 정보로서, 스타트 어드레스(Start Address), 트랜스퍼 사이즈(Transfer Size), 트랜스퍼 갭(Transfer Gap) 및 엔드 어드레스(End Address)를 포함하고,
    타측 슬레이브모듈에 데이터를 저장할 데스티네이션 메모리(Destination Memory) 구조 정보로서, 스타트 어드레스(Start Address), 트랜스퍼 사이즈(Transfer Size), 트랜스퍼 갭(Transfer Gap) 및 엔드 어드레스(End Address)를 포함하는 것을 특징으로 하는 슬레이브 네트워크 인터페이스 회로.
  14. 온칩 네트워크(On-Chip Networks) 상에 구비되는 메모리 콘트롤러 및 적어도 하나의 슬레이브 네트워크 인터페이스 각각의 내부 레지스터를 셋팅하는 시스템 콘트롤러;
    데이터 저장을 위한 메모리를 제어하는 상기 메모리 콘트롤러; 및
    상기 온칩 네트워크 상에 구비되는 각 슬레이브모듈에 탑재되어, 상기 시스템 콘트롤러로부터 슬레이브모듈의 데이터 전송 방식을 설정받고, 해당 슬레이브모듈과 상기 온칩 네트워크간의 데이터 송수신 인터페이스를 수행하는 적어도 하나의 상기 슬레이브 네트워크 인터페이스를 포함하되,
    상기 슬레이브 네트워크 인터페이스는,
    상기 슬레이브모듈간에 온칩 버스에 정의된 슬레이브모듈 인터페이스 신호를 통해 해당 데이터를 송수신하고, 상기 온칩 네트워크간에 포워드 패쓰 신호[forward path, 슬레이브 네트워크 인터페이스 => 온칩 네트워크] 및 백워드 패쓰 신호[backward path, 온칩 네트워크 => 슬레이브 네트워크 인터페이스]를 통해 해당 데이터를 송수신하는 것을 특징으로 하는 슬레이브 네트워크 인터페이스 시스템.
KR1020060096275A 2006-09-29 2006-09-29 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템 KR100839593B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060096275A KR100839593B1 (ko) 2006-09-29 2006-09-29 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템
US11/861,360 US7916720B2 (en) 2006-09-29 2007-09-26 Slave network interface circuit for improving parallelism of on-chip network and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060096275A KR100839593B1 (ko) 2006-09-29 2006-09-29 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템

Publications (2)

Publication Number Publication Date
KR20080030330A KR20080030330A (ko) 2008-04-04
KR100839593B1 true KR100839593B1 (ko) 2008-06-19

Family

ID=39262270

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060096275A KR100839593B1 (ko) 2006-09-29 2006-09-29 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템

Country Status (2)

Country Link
US (1) US7916720B2 (ko)
KR (1) KR100839593B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101076688B1 (ko) 2011-01-05 2011-10-26 대아티아이(주) 분산 시스템용 데이터 공유 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
WO2020247209A1 (en) * 2019-06-05 2020-12-10 Invensas Corporation Symbiotic network on layers

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007085028A1 (de) * 2006-01-27 2007-08-02 Fts Computertechnik Gmbh Zeitgesteuerte sichere kommunikation
KR100951856B1 (ko) * 2007-11-27 2010-04-12 한국전자통신연구원 멀티미디어 시스템용 SoC 시스템
KR101858578B1 (ko) 2011-12-21 2018-05-18 에스케이하이닉스 주식회사 이종 칩들을 포함하는 반도체 패키지 및 이를 포함하는 메모리 시스템
KR102497804B1 (ko) 2016-04-01 2023-02-10 한국전자통신연구원 듀얼 스위칭 네트워크 모드들에서 네트워킹 가능한 온칩 네트워크 장치 및 그것의 동작 방법
US20230305973A1 (en) * 2020-07-30 2023-09-28 Young-Il Kim Mmi interface device and computing system based thereon
CN113297130B (zh) * 2021-06-10 2024-06-11 中国科学技术大学 动态随机存取存储系统及数据处理方法
CN117440053B (zh) * 2023-12-21 2024-02-27 沐曦集成电路(上海)有限公司 一种多级跨die访问方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060071075A (ko) * 2004-12-21 2006-06-26 한국전자통신연구원 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910087B2 (en) * 2002-06-10 2005-06-21 Lsi Logic Corporation Dynamic command buffer for a slave device on a data bus
KR100453821B1 (ko) 2002-10-09 2004-10-20 한국전자통신연구원 마이크로 컨트롤러를 위한 데이터 버스 시스템
KR101089324B1 (ko) * 2004-02-20 2011-12-02 삼성전자주식회사 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060071075A (ko) * 2004-12-21 2006-06-26 한국전자통신연구원 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101076688B1 (ko) 2011-01-05 2011-10-26 대아티아이(주) 분산 시스템용 데이터 공유 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
WO2020247209A1 (en) * 2019-06-05 2020-12-10 Invensas Corporation Symbiotic network on layers
US11264361B2 (en) 2019-06-05 2022-03-01 Invensas Corporation Network on layer enabled architectures
US11270979B2 (en) 2019-06-05 2022-03-08 Invensas Corporation Symbiotic network on layers
US11824046B2 (en) 2019-06-05 2023-11-21 Invensas Llc Symbiotic network on layers

Also Published As

Publication number Publication date
KR20080030330A (ko) 2008-04-04
US20080082621A1 (en) 2008-04-03
US7916720B2 (en) 2011-03-29

Similar Documents

Publication Publication Date Title
KR100839593B1 (ko) 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템
US6950910B2 (en) Mobile wireless communication device architectures and methods therefor
US7793008B2 (en) AMBA modular memory controller
US7380045B2 (en) Protocol conversion and arbitration circuit, system having the same, and method for converting and arbitrating signals
KR100962769B1 (ko) 수퍼차지 메시지 교환기
US6850998B2 (en) Disk array system and a method for controlling the disk array system
US6996659B2 (en) Generic bridge core
US20100325334A1 (en) Hardware assisted inter-processor communication
US7721038B2 (en) System on chip (SOC) system for a multimedia system enabling high-speed transfer of multimedia data and fast control of peripheral devices
US20160299857A1 (en) Computer architecture with peripherals
EP0991999A1 (en) Method and apparatus for arbitrating access to a shared memory by network ports operating at different data rates
JP2005216312A (ja) マルチポート揮発性メモリ装置、低速メモリリンク型高速メモリ装置、データ処理装置及びマルチチップ半導体装置
KR20070059859A (ko) 칩 내부 회로 간의 데이터 전송을 위한 통신 시스템
KR20110122516A (ko) 인터커넥트, 그것을 포함하는 버스 시스템 그리고 버스 시스템의 동작 방법
CN112882986B (zh) 一种带有超节点以及超节点控制器的众核处理器的应用方法
JP2008544359A (ja) メモリーコントローラ
US8433859B2 (en) Apparatus and method for buffer management for a memory operating
US6633927B1 (en) Device and method to minimize data latency and maximize data throughput using multiple data valid signals
EP2718827B1 (en) An innovative structure for the register group
CN115328832B (zh) 一种基于pcie dma的数据调度系统与方法
JP4338730B2 (ja) プロセッサアレイ
CN109145397A (zh) 一种支持并行流水访问的外存仲裁结构
US6170041B1 (en) Integrated circuit memory with a bus transceiver
KR100335371B1 (ko) 로컬 메모리 중재 및 인터페이스 장치
KR100487218B1 (ko) 칩 내장형 버스를 인터페이스하기 위한 장치 및 방법

Legal Events

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

Payment date: 20120611

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee