KR20190108001A - 네트워크온칩 및 이를 포함하는 컴퓨팅 장치 - Google Patents

네트워크온칩 및 이를 포함하는 컴퓨팅 장치 Download PDF

Info

Publication number
KR20190108001A
KR20190108001A KR1020180029414A KR20180029414A KR20190108001A KR 20190108001 A KR20190108001 A KR 20190108001A KR 1020180029414 A KR1020180029414 A KR 1020180029414A KR 20180029414 A KR20180029414 A KR 20180029414A KR 20190108001 A KR20190108001 A KR 20190108001A
Authority
KR
South Korea
Prior art keywords
network
processor
chip
management unit
electronic circuits
Prior art date
Application number
KR1020180029414A
Other languages
English (en)
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 KR1020180029414A priority Critical patent/KR20190108001A/ko
Priority to US16/265,598 priority patent/US20190286606A1/en
Publication of KR20190108001A publication Critical patent/KR20190108001A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller

Abstract

개시된 일 실시 예에 따른 컴퓨팅 장치는, 전자 회로들, 및 전자 회로들 사이의 통신 채널을 제공하기 위한 네트워크 온 칩을 포함하고, 전자 회로들은 프로세서를 포함하고, 네트워크 온 칩은 프로세서의 가상 메모리 주소를 사용을 지원하기 위한 메모리 관리 유닛(Memory Management Unit, MMU)을 포함할 수 있다.

Description

네트워크온칩 및 이를 포함하는 컴퓨팅 장치{NETWORK-ON-CHIP AND COMPUTER SYSTEM COMPRISING THE SAME}
본 발명은 네트워크 온 칩 및 이를 포함하는 컴퓨팅 장치에 관한 것이다.
컴퓨터, 스마트폰, 스마트패드와 같은 전자 장치들은 다양한 전자 회로(예를 들어, 하드웨어 모듈)들의 조합으로 구현될 수 있다. 다양한 전자 회로들은 서로 간의 상호 작용을 통해 다양한 기능을 수행할 수 있다. 전자 회로들 사이에 향상된 확장성을 갖는 채널을 제공하는 방법의 하나로, 네트워크온칩(NETWORK-ON-CHIP)이 제안되고 있다. 네트워크온칩은 부속 회로들에 각각 고유한 주소들을 부여하고, 부속 회로들 사이의 통신을 고유한 주소들에 기반하여 라우팅하는 방식을 사용한다.
네트워크온칩은, 단일 칩 시스템(예를 들어, System on Chip(SoC)) 내에 임베디드되는 하드웨어 모듈들의 개수가 많아짐에 따라 버스온칩(Bus-On-Chip) 연결에서 발생될 수 있는 제한 사항(예를 들어, 온 칩 인터커넥트의 밀도 및 복잡성 증가)을 해결할 수 있다. 네트워크온칩을 사용하는 단일 칩 시스템에서, 프로세서는 네트워크온칩의 전용 네트워크 인터페이스(NI)를 통해서 다른 하드웨어 모듈과 통신할 수 있다.
메모리 관리 유닛(Memory Management Unit)이 포함된 형태의 네트워크 온 칩이 제공될 수 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
컴퓨팅 장치는 전자 회로들, 및 상기 전자 회로들 사이의 통신 채널을 제공하기 위한 네트워크온칩을 포함하고, 상기 전자 회로들은 프로세서를 포함하고, 상기 네트워크온칩은 상기 프로세서의 가상 메모리 주소를 사용을 지원하기 위한 메모리 관리 유닛(Memory Management Unit, MMU)을 포함할 수 있다.
프로세서 및 전자 회로들 사이의 통신 채널을 제공하기 위한 네트워크온칩에 있어서, 상기 프로세서 및 상기 전자 회로들과 각각 대응되어, 상기 프로세서 및 상기 전자회로들 각각으로부터 수신된 트랜잭션의 형태를 변환하기 위한 네트워크 인터페이스들, 및 상기 네트워크 인터페이스들에 연결되어, 상기 네트워크 인터페이스들 사이의 트랜잭션 전송을 제어하기 위한 적어도 하나의 스위치를 포함하고, 상기 프로세서와 대응되는 네트워크 인터페이스는 메모리 관리 유닛을 포함할 수 있다.
개시된 컴퓨팅 장치는, 네트워크온칩에 메모리 관리 유닛을 포함시킴으로써, 메모리 관리 유닛을 포함하지 않는 소형 또는 경량 프로세서에게 메모리 관리 유닛의 기능을 제공할 수 있다. 이에 따라, 소형 또는 경량 프로세서가 효율적으로 메모리를 사용할 수 있다.
도1은 일 실시 예에 따른 컴퓨팅 장치를 나타낸다.
도2는 일 실시 예에 따른 컴퓨팅 장치의 상세한 블록도를 나타낸다.
도3은 일 실시 예에 따른 컴퓨팅 장치의 상세한 블록도를 나타낸다.
도4는 일 실시 예에 따른 프로세서 및 그와 연결된 네트워크 인터페이스의 블록도를 나타낸다.
도5는 일 실시 예에 따른 프로세서 및 그와 연결된 네트워크 인터페이스의 상세한 블록도를 나타낸다.
아래에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들(이하, 통상의 기술자들)이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.
도1은 일 실시 예에 따른 컴퓨팅 장치를 나타낸다.
컴퓨팅 장치(1000)는 전자 회로들(1210, 1220, 1230, 1240) 및 네트워크온칩(NOC, NETWORK-ON-CHIP)(1400)을 포함할 수 있다. 일 실시 예에 따라, 컴퓨팅 장치(1000)는 다양한 기능을 가진 시스템을 하나의 칩으로 구현한 단일 칩 시스템(예를 들어, 시스템 온 칩(System On Chip))일 수 있으나 이에 제한되지 않는다.
설명의 편의를 위해, 컴퓨팅 장치(1000)는 네 개의 전자 회로들(1210, 1220, 1230, 1240)을 포함하는 것으로 가정되나, 컴퓨팅 장치(1000)는 다양한 개수의 전자 회로들을 포함할 수 있다.
전자 회로들(1210, 1220, 1230, 1240)은 컴퓨팅 장치(1000)를 구성하는 주요 회로들일 수 있다. 전자 회로들(1210, 1220, 1230, 1240) 각각은 특정한 기능을 수행하도록 설계 및 제조되는 주변 장치들을 포함할 수 있다. 전자 회로들(1210, 1220, 1230, 1240)은 서로간의 상호 작용을 통해, 컴퓨팅 장치(1000)가 지원하는 다양한 기능들을 수행할 수 있다.
예를 들어, 전자 회로들(1210, 1220, 1230, 1240) 각각은 중앙 처리 장치 또는 어플리케이션 프로세서, 메인 메모리, 캐시 메모리, 비디오, 코덱, 오디오 코덱, 그래픽 프로세서, 스토리지 장치, UART(Universal Asynchronous Receiver Transmitter) 인터페이스, RAM(Random Access Memory), ROM(Read Only Memory), SPI(Serial Programming Interface), USB (Universal Serial Bus) 인터페이스, 전력 제어 회로, 센서 등과 같은 다양한 회로들을 포함할 수 있다. 일 실시 예에 따라, 전자 회로들(1210, 1220, 1230, 1240) 각각은 하나의 패키지 또는 하나의 칩 상의 지식 자산(IP, Intellectual Property) 블록의 형태로 구현될 수 있다.
네트워크온칩(1400)은 전자 회로들(1210, 1220, 1230, 1240) 사이의 통신 채널을 제공할 수 있다. 네트워크온칩(1400)은 전자 회로들(1210, 1220, 1230, 1240) 각각과 대응하는 네트워크 인터페이스들을 포함할 수 있다. 예를 들어, 전자 회로들(1210, 1220, 1230, 1240)은, 전자 회로들(1210, 1220, 1230, 1240) 각각과 대응하는 네트워크 인터페이스를 통해 서로 통신할 수 있다.
이하, 전자 회로(1210)는 프로세서일 수 있다. 예를 들어, 전자 회로(1210)는 중앙 처리 장치(CPU), 마이크로프로세서(Microprocessor), MCU(Micro Controller Unit)일 수 있다. 전자 회로(1210)는 메모리 관리 유닛(Memory Management Unit)이 내장되지 않은 프로세서일 수 있다.
메모리 관리 유닛은, 프로세서가 메모리에 접근하는 것을 관리하기 위한 하드웨어 모듈로서, 프로세서의 가상 메모리 사용을 지원할 수 있다. 예를 들어, 메모리 관리 유닛은 프로세서로부터 전달 받은 가상 메모리 주소를 실제 메모리 주소로 변환할 수 있다. 특히, 메모리 관리 유닛은 프로세서의 멀티 프로세싱 동작을 지원할 수 있다.
일 실시 예에 따라, 전자 회로(1210)가 소형 또는 경량 프로세서인 경우, 전자 회로(1210)는 메모리 관리 유닛을 포함하지 않을 수 있다.
네트워크온칩(1400)은 메모리 관리 유닛(1420)을 포함함으로써, 메모리 관리 유닛이 내장되지 않은 전자 회로(1210)에게 메모리 관리 유닛(1420)의 기능을 지원할 수 있다. 컴퓨팅 장치(1000)는 네트워크온칩(1400)에 메모리 관리 유닛(1420)을 포함시킴으로써, 전자 회로(1210)의 설계나 제조 단계에서 전자 회로(1210)의 구조를 변경하지 않고도, 메모리 관리 유닛(1420)의 기능을 전자 회로(1210)에게 제공할 수 있다. 예를 들어, 전자 회로(1220)가 SRAM(Static Random Access Memory)인 경우, 네트워크온칩(1400)에 내장된 메모리 관리 유닛(1420)은 전자 회로(1210)가 가상 메모리 주소를 사용하여 전자 회로(1220)에 액세스하는 것을 가능하게 함으로써, 메모리 효율을 극대화시킬 수 있다.
일 실시 예에 따라, 컴퓨팅 장치(1000)는 전자 회로(1210)의 종류와 관계 없이 동일한 메모리 관리 유닛(1420)을 사용할 수 있다. 이에 따라, 전자 회로(1210)는 C 언어와 같은 하이 레벨의 API(Application Programming Interface)에 기초하여 메모리 관리 유닛(1420)을 제어할 수 있다.
도2는 일 실시 예에 따른 컴퓨팅 장치의 상세한 블록도를 나타낸다.
컴퓨팅 장치(2000)는 프로세서(2210), 전자 회로들(2220, 2230, 2240), 및 네트워크온칩(NOC, NETWORK-ON-CHIP)(2400)을 포함할 수 있다.
프로세서(2210)와 전자 회로들(2220, 2230, 2240)은 도1의 전자 회로(1210)와 전자 회로들(1220, 1230, 1240)과 대응되므로 상세한 설명은 생략한다.
네트워크온칩(2400)은 네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4)을 포함할 수 있다. 네트워크온칩(2400)은 네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4)을 통해 전자 회로들(2210, 2220, 2230, 2240) 사이에 통신 채널을 제공할 수 있다. 네트워크 인터페이스(NI#1), 네트워크 인터페이스(NI#2), 네트워크 인터페이스(NI#3), 및 네트워크 인터페이스(NI#4)는 각각 프로세서(2210), 전자 회로(2220), 전자 회로(2230), 및 전자 회로(2240)와 대응되는 네트워크 인터페이스이다.
네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4)은, 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)이 네트워크온칩(2400)을 통해 통신하도록 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)을 지원할 수 있다. 예를 들어, 네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4)은 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)로부터 수신되는 트랜잭션(transaction)을 네트워크온칩(2400)에서 사용되는 형태로 변환하고, 변환된 형태의 트랜잭션을 네트워크온칩(2400)으로 전달할 수 있다. 네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4)은 네트워크온칩(2400)로부터 수신되는 트랜잭션을 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)에서 사용되는 형태로 변환하고, 변환된 형태의 트랜잭션을 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)로 전달할 수 있다.
예를 들어, 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)은 AXI, AHB, APB 프로토콜 중 하나의 프로토콜을 사용하여 네트워크온칩(2400)과의 인터페이스 동작을 수행하고, 네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4)은 프로토콜 변환을 수행할 수 있다.
네트워크온칩(2400)은 네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4)에 연결되어 네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4) 사이의 트랜잭션 전송을 제어하기 위한 스위치들(SW#1, SW#2, SW#3, SW#4)을 포함할 수 있다. 스위치들(SW#1, SW#2, SW#3, SW#4)은 네트워크 인터페이스들(NI#1, NI#2, NI#3, NI#4)과 각각 연결될 수 있다.
네트워크온칩(2400)의 스위치(SW#k, k는 1 과 4 사이의 양의 정수)는 네트워크 인터페이스(NI#k)를 통해, 네트워크 인터페이스(NI#k)와 대응하는 전자 회로로부터 트랜잭션을 수신할 수 있다. 스위치(SW#k)는 수신된 트랜잭션의 목적지(destination)를 식별할 수 있다. 예를 들어, 수신된 트랜잭션가 i 번째 전자 회로(i는 1 과 4 사이의 양의 정수)로 전달되어야 하는 경우, 수신된 트랜잭션의 목적지는 제i회로 또는 제i회로와 연결된 스위치(SW#i)일 수 있다. 스위치(SW#k)와 스위치(SW#i)가 직접 연결된 경우, 스위치(SW#k)는 수신된 트랜잭션을 스위치(SW#i)로 직접 전달할 수 있다. 스위치(SW#k)와 스위치(SW#i)사이에 다른 스위치들이 존재하는 경우, 스위치(SW#k)는 다른 스위치들의 중계를 통해 스위치(SW#i)로 수신된 트랜잭션을 전달할 수 있다.
즉, 네트워크온칩(2400)은 스위치들(SW#1, SW#2, SW#3, SW#4)을 네트워크의 형태로 구성함으로써, 프로세서(2210) 및 전자 회로들(2220, 2230, 2240) 사이의 통신을 유연하게 지원할 수 있다. 또한, 네트워크온칩(2400)에 연결되는 전자 회로들의 수가 증가 또는 감소할 때에도, 네트워크온칩(2400)은 증가 또는 감소된 전자 회로들을 목적지의 대상으로부터 추가 또는 제거함으로써 증가 또는 감소된 전자 회로들 사이의 통신을 무결하게 지원하는 확장성을 가질 수 있다.
도2에서는 스위치들(SW#1, SW#2, SW#3, SW#4)의 개수와 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)의 개수가 일치하는 것으로 도시하였으나, 스위치들의 개수가 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)의 개수와 반드시 일치하는 것은 아니다. 예를 들어, 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)의 개수보다 적은 개수의 스위치가 프로세서(2210) 및 전자 회로들(2220, 2230, 2240)을 서로 연결할 수도 있다. 다만, 이러한 경우 스위치가 수행하여야 하는 워크 로드가 증가하게 되고 설계의 복잡도가 증가할 수 있다.
프로세서(2210)와 연결된 네트워크 인터페이스(NI#1)는 메모리 관리 유닛(2420)을 포함할 수 있다. 네트워크 인터페이스(NI#1)는 프로세서(2210)로부터 수신되는 트랜잭션을 네트워크온칩(2400)에서 사용되는 형태로 변환하고, 변환된 형태의 트랜잭션을 네트워크온칩(2400)으로 전달할 수 있다. 또한, 네트워크 인터페이스(NI#1)는 네트워크온칩(2400)로부터 수신되는 트랜잭션을 프로세서(2210)에서 사용되는 형태로 변환하고, 변환된 형태의 트랜잭션을 프로세서(2210)로 전달할 수 있다.
컴퓨팅 장치(2000)는 프로세서(2210)와 연결된 네트워크 인터페이스(NI#1)는 메모리 관리 유닛(2420)을 포함시킴으로써, 메모리 관리 유닛(2420)의 기능을 프로세서(2210)에게 제공할 수 있다. 예를 들어, 전자 회로(2220)가 SRAM인 경우, 메모리 관리 유닛(2420)은 프로세서(2210)가 가상 메모리 주소를 사용하여 전자 회로(2220)에 액세스하는 것을 가능하게 함으로써, 메모리 효율을 극대화시킬 수 있다.
일 실시 예에 따라, 프로세서(2210)는 메모리 관리 유닛(2420)을 제어하기 위한 트랜잭션을 네트워크 인터페이스(NI#1)로 전달할 수 있다. 예를 들어, 프로세서(2210)가 실행하고자 하는 어플리케이션 프로그램에 따라 메모리 관리 유닛(2420)을 다르게 환경 설정하기 위한 제어 명령을 네트워크 인터페이스(NI#1)로 전달할 수 있다. 네트워크 인터페이스(NI#1)는 메모리 관리 유닛(2420)을 제어하기 위한 제어 명령을 수신한 경우, 수신된 제어 명령의 형태를 네트워크온칩(2400)에서 사용되는 형태로 변환하는 동작을 생략할 수 있다. 제어 명령은 메모리 관리 유닛(2420) 자체에서 사용될 뿐이지 다른 전자 회로들(2220, 2230, 2240)로 전달될 필요가 없기 때문이다.
도3은 일 실시 예에 따른 컴퓨팅 장치의 상세한 블록도를 나타낸다.
도3의 컴퓨팅 장치(3000)가 도2의 컴퓨팅 장치(2000)와 다른 점은, 네트워크온칩(3400)이 메모리 관리 유닛(3420)과 연결된 추가적인 네트워크 인터페이스(NI#5)를 포함한다는 것이다. 예를 들어, 네트워크 인터페이스(NI#5)는, 메모리 관리 유닛(3420)이 네트워크온칩(3400) 내부의 프로토콜에 기초하여 설계되지 않고 AXI나 AHB, APB 프로토콜과 같은 일반적인 프로토콜에 기초하여 설계된 경우에 추가될 수 있다.
네트워크 인터페이스(NI#5)는 메모리 관리 유닛(3420)으로부터 수신되는 트랜잭션을 네트워크온칩(3400)에서 사용되는 형태로 변환하고 변환된 형태의 트랜잭션을 네트워크온칩(3400)으로 전달할 수 있다. 또한, 네트워크 인터페이스(NI#5)는 네트워크온칩(3400)으로부터 수신되는 트랜잭션을 메모리 관리 유닛(3420)에서 사용되는 형태로 변환하고, 변환된 형태의 트랜잭션을 메모리 관리 유닛(3420)으로 전달할 수 있다. 일 실시 예에 따른 스위치(SW#5)는 네트워크 인터페이스(NI#5)를 통해 메모리 관리 유닛(3420)으로부터 트랜잭션을 수신할 수 있다.
즉, 컴퓨팅 장치(3000)는 프로세서(3210) 및 전자회로들(3220, 3230, 3240)과 마찬가지로 메모리 관리 유닛(3420)을 네트워크온칩(3400)에 연결된 독립적인 전자 회로로 취급함으로써, 메모리 관리 유닛(3420)을 기존의 네트워크에 포함시킬 수 있다.
도4는 일 실시 예에 따른 프로세서와 네트워크온칩의 블록도를 나타낸다.
프로세서(4200), 네트워크온칩(4400), 및 네트워크 인터페이스(NI#1)는 각각 도3의 프로세서(3210), 네트워크온칩(3400), 및 네트워크 인터페이스(NI#1)와 대응될 수 있다. 네트워크온칩(4400)에서, 네트워크 인터페이스(NI#1)와 스위치(SW#1)를 제외한 다른 구성 요소들은 생략되었다.
프로세서(4200)는 서로 분리된 복수의 채널들을 사용하여 네트워크온칩(4400)과의 인터페이스 동작을 수행할 수 있다. 이러한 실시 예에서, 복수의 채널들 중 주소 정보를 전달하기 위한 채널은 메모리 관리 유닛(4420)에 연결될 수 있다.
일 실시 예에 따라 프로세서(4200)는 AXI 프로토콜에 기반하여 네트워크온칩(4400)과의 인터페이스 동작을 수행할 수 있다. AXI 프로토콜은 주소 읽기 채널(AR), 주소 쓰기 채널(AW), 데이터 읽기 채널(R), 데이터 쓰기 채널(W), 쓰기 응답 채널(B)을 통해 인터페이스 동작을 수행하는 방식이다.
변환기(4460)는 AXI 프로토콜에 기반한 트랜잭션을 네트워크온칩(4400)에서 사용되는 프로토콜에 기반하여 형태를 변환하고, 형태가 변환된 트랜잭션을 스위치(SW#1)로 전달할 수 있다.
주소 정보를 전송하는 주소 읽기 채널(AR)과 주소 쓰기 채널(AW)은 메모리 관리 유닛(4420)에 연결될 수 있다. 주소 읽기 채널(AR)과 주소 쓰기 채널(AW)은 메모리 관리 유닛(4420)을 거쳐서 변환기(4460)로 연결될 수 있다. 메모리 관리 유닛(4420)은 주소 읽기 채널(AR) 또는 주소 쓰기 채널(AW)을 통해 수신되는 가상 메모리 주소에 기초하여 실제 메모리 주소를 획득할 수 있다. 실제 메모리 주소는 변환기(4460)로 전달되고 변환기(4460)는 실제 메모리 주소 정보가 포함된 트랜잭션을 출력할 수 있다. 출력된 트랜잭션은 스위치(SW#1)를 통해 네트워크온칩(4400)에 연결된 다른 전자 회로들로 전달될 수 있다.
도5는 일 실시 예에 따른 프로세서와 네트워크온칩의 상세한 블록도를 나타낸다.
프로세서(5200), 네트워크온칩(5400), 메모리 관리 유닛(5430), 및 변환기(5460)는 각각 도4의 프로세서(4200), 네트워크온칩(4400), 메모리 관리 유닛(4420), 및 변환기(4460)와 대응될 수 있다. 네트워크온칩(5400)에서, 네트워크 인터페이스(NI#1)와 스위치(SW#1)를 제외한 다른 구성 요소들은 생략되었다.
네트워크 인터페이스(NI#1)는 컨트롤러(5410), 멀티플렉서(MUX, 5420), 메모리 관리 유닛(5430), 역 멀티플렉서(DEMUX, 5440), 및 변환기(5460)를 포함할 수 있다.
주소 읽기 채널(AR)과 주소 쓰기 채널(AW)이 하나의 메모리 관리 유닛(5430)을 공유하기 위해 멀티플렉서(5420)와 역 멀티플렉서(5440)가 사용될 수 있다. 멀티플렉서(5420)와 역 멀티플렉서(5440)는 컨트롤러(5410)에 의해 제어될 수 있다.
일 실시 예에 따른 컨트롤러(5410)는, 메모리 관리 유닛(5430)이 주소 읽기 채널(AR)로부터 수신된 요청(예를 들어, 명령)과 주소 쓰기 채널(AW)로부터 수신된 요청(예를 들어, 명령) 중에서 하나의 요청을 우선적으로 처리하도록 멀티플렉서(5420)와 역 멀티플렉서(5440)를 제어할 수 있다. 예를 들어, 멀티플렉서(5420)는 주소 읽기 채널(AR)로부터 수신된 요청과 주소 쓰기 채널(AW)로부터 수신된 요청 중에서 하나의 요청을 우선적으로 선택하고, 선택된 요청을 메모리 관리 유닛(5430)으로 전달할 수 있다.
프로세서(5200)는 제1요청을, 제1요청이 유효함을 나타내는 밸리드(Valid) 신호와 함께 주소 읽기 채널(AR)을 통해 멀티플렉서(5420)에 전달할 수 있다. 이와 동시에, 프로세서(5200)는 제2요청을, 제2요청이 유효함을 나타내는 밸리드 신호와 함께 주소 읽기 채널(AR)을 통해 멀티플렉서(5420)에 전달할 수 있다. 멀티플렉서(5420)는, 수신된 제1요청과 제2요청에 대해, 선택된 하나의 요청에 대한 응답 신호(준비(Ready) 신호)를 프로세서(5200)에게 송신할 수 있다. 즉, 준비 신호가 송신되지 않은 요청은 처리가 지연될 수 있다.
역 멀티플렉서(5440)는 메모리 관리 유닛(5430)로부터 출력된 요청을 수신하고, 역 멀티플렉서(5440)로부터 출력되는 주소 읽기 채널(AR)과 주소 쓰기 채널(AW) 중 선택된 하나의 채널을 통해, 변환기(5460)로 요청을 전달할 수 있다. 변환기(5460)에 의해 출력된 요청은 스위치(SW#1)를 통해 네트워크온칩(5400)에 연결된 다른 전자 회로들로 전달될 수 있다.
위 설명들은 본 발명을 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 발명의 기술 사상은 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 발명의 기술 사상은 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.

Claims (12)

  1. 전자 회로들; 및
    상기 전자 회로들 사이의 통신 채널을 제공하기 위한 네트워크온칩을 포함하고,
    상기 전자 회로들 중 하나는 프로세서이고,
    상기 네트워크온칩은 상기 프로세서의 가상 메모리 주소의 사용을 지원하기 위한 메모리 관리 유닛을 포함하는 컴퓨팅 장치.
  2. 제1항에 있어서,
    상기 전자 회로들 각각은, UART(Universal Asynchronous Receiver Transmitter) 인터페이스, RAM(Random Access Memory), ROM(Read Only Memory), 또는 SPI(Serial Programming Interface)를 포함하는 컴퓨팅 장치.
  3. 제1항에 있어서,
    상기 네트워크온칩은,
    상기 전자 회로들과 각각 대응되어, 상기 전자회로들 각각으로부터 수신된 트랜잭션의 형태를 변환하기 위한 네트워크 인터페이스들; 및
    상기 네트워크 인터페이스들과 연결되어, 상기 네트워크 인터페이스들 사이의 상기 트랜잭션의 전송을 제어하기 위한 적어도 하나의 스위치를 더 포함하는 컴퓨팅 장치.
  4. 제3항에 있어서,
    상기 네트워크 인터페이스들 중에서, 상기 프로세서와 대응하는 네트워크 인터페이스는 상기 메모리 관리 유닛을 포함하는 컴퓨팅 장치.
  5. 제4항에 있어서,
    상기 네트워크온칩은, 상기 메모리 관리 유닛과 대응하는 추가적인 네트워크 인터페이스를 포함하는 컴퓨팅 장치.
  6. 제4항에 있어서,
    상기 프로세서는, 상기 프로세서와 대응하는 상기 네트워크 인터페이스에 제어 명령을 전달함으로써 상기 메모리 관리 유닛에 대한 환경 설정을 수행하는 컴퓨팅 장치.
  7. 제4항에 있어서,
    상기 전자 회로들 각각은 상기 네트워크온칩과의 인터페이스 동작을 수행하기 위해 AXI, AHB, 및 APB 프로토콜 중 하나의 프로토콜을 사용하는 컴퓨팅 장치.
  8. 제7항에 있어서,
    상기 프로세서가 상기AXI 프로토콜을 사용하여 상기 네트워크온칩과의 인터페이스 동작을 수행하는 경우,
    상기 프로세서로부터 출력되는 주소 읽기 채널과 주소 쓰기 채널은 상기 메모리 관리 유닛에 연결되는 컴퓨팅 장치.
  9. 제8항에 있어서,
    컨트롤러를 더 포함하고,
    상기 컨트롤러는, 상기 주소 읽기 채널을 통해 상기 프로세서로부터 수신된 제1요청과 상기 주소 쓰기 채널을 통해 상기 프로세서로부터 수신된 제2요청 중 선택된 하나의 요청이 상기 메모리 관리 유닛에 의해 우선적으로 처리되도록 제어하는 컴퓨팅 장치.
  10. 프로세서 및 전자 회로들 사이의 통신 채널을 제공하기 위한 네트워크온칩에 있어서,
    상기 프로세서 및 상기 전자 회로들과 각각 대응되어, 상기 프로세서 및 상기 전자회로들 각각으로부터 수신된 트랜잭션의 형태를 변환하기 위한 네트워크 인터페이스들; 및
    상기 네트워크 인터페이스들에 연결되어, 상기 네트워크 인터페이스들 사이의 상기 트랜잭션의 전송을 제어하기 위한 적어도 하나의 스위치를 포함하고,
    상기 네트워크 인터페이스들 중에서, 상기 프로세서와 대응되는 네트워크 인터페이스는 메모리 관리 유닛을 포함하는 네트워크온칩.
  11. 제10항에 있어서,
    상기 프로세서가 AXI 프로토콜을 사용하여 인터페이스 동작을 수행하는 경우, 상기 프로세서로부터 출력되는 주소 읽기 채널과 주소 쓰기 채널은 상기 메모리 관리 유닛에 연결되는 네트워크온칩.
  12. 제11항에 있어서,
    상기 프로세서와 대응되는 상기 네트워크 인터페이스는, 상기 주소 읽기 채널을 통해 상기 프로세서로부터 수신된 제1요청과 상기 주소 쓰기 채널을 통해 상기 프로세서로부터 수신된 제2요청 중 선택된 하나의 요청이 상기 메모리 관리 유닛에 의해 우선적으로 처리되도록 제어하는 컨트롤러를 더 포함하는 네트워크온칩.
KR1020180029414A 2018-03-13 2018-03-13 네트워크온칩 및 이를 포함하는 컴퓨팅 장치 KR20190108001A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180029414A KR20190108001A (ko) 2018-03-13 2018-03-13 네트워크온칩 및 이를 포함하는 컴퓨팅 장치
US16/265,598 US20190286606A1 (en) 2018-03-13 2019-02-01 Network-on-chip and computer system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180029414A KR20190108001A (ko) 2018-03-13 2018-03-13 네트워크온칩 및 이를 포함하는 컴퓨팅 장치

Publications (1)

Publication Number Publication Date
KR20190108001A true KR20190108001A (ko) 2019-09-23

Family

ID=67904019

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180029414A KR20190108001A (ko) 2018-03-13 2018-03-13 네트워크온칩 및 이를 포함하는 컴퓨팅 장치

Country Status (2)

Country Link
US (1) US20190286606A1 (ko)
KR (1) KR20190108001A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866180B (zh) * 2019-11-28 2022-06-17 北京希姆计算科技有限公司 数据处理电路、装置以及方法
KR102497801B1 (ko) 2019-12-16 2023-02-10 한국전자통신연구원 시스템-온-칩 자동 설계 장치 및 이의 동작 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266385B1 (en) * 1997-12-23 2001-07-24 Wireless Facilities, Inc. Elastic store for wireless communication systems
US6667926B1 (en) * 2002-09-09 2003-12-23 Silicon Integrated Systems Corporation Memory read/write arbitration method
KR100675850B1 (ko) * 2005-10-12 2007-02-02 삼성전자주식회사 AXI 프로토콜을 적용한 NoC 시스템
EP2009554A1 (en) * 2007-06-25 2008-12-31 Stmicroelectronics SA Method for transferring data from a source target to a destination target, and corresponding network interface
KR101841173B1 (ko) * 2010-12-17 2018-03-23 삼성전자주식회사 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법
US9652560B1 (en) * 2011-07-18 2017-05-16 Apple Inc. Non-blocking memory management unit
US10482275B2 (en) * 2014-01-27 2019-11-19 Cryptography Research, Inc. Implementing access control by system-on-chip
US9519596B2 (en) * 2014-03-06 2016-12-13 Stmicroelectronics (Grenoble 2) Sas Resource access control in a system-on-chip
GB2524561A (en) * 2014-03-27 2015-09-30 St Microelectronics Res & Dev Methods and apparatus for storing content
US10255197B2 (en) * 2016-07-20 2019-04-09 Oracle International Corporation Adaptive tablewalk translation storage buffer predictor
GB2571538B (en) * 2018-02-28 2020-08-19 Imagination Tech Ltd Memory interface

Also Published As

Publication number Publication date
US20190286606A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
US10140242B2 (en) General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
EP3267322B1 (en) Scalable direct inter-node communication over peripheral component interconnect-express (pcie)
US8370855B2 (en) Management of process-to-process intra-cluster communication requests
US8699953B2 (en) Low-latency interface-based networking
JP2006504184A5 (ko)
JP2007529808A (ja) 集積回路及び通信サービスマッピング方法
CN102576349A (zh) 输入/输出(i/0)虚拟化系统中主计算机与外围资源之间的通信
CN108345555B (zh) 基于高速串行通信的接口桥接电路及其方法
US9009214B2 (en) Management of process-to-process inter-cluster communication requests
CN113691397B (zh) 工业控制数据传输用低延时5g无线透明传输方法
US9098354B2 (en) Management of application to I/O device communication requests between data processing systems
US7404044B2 (en) System and method for data transfer between multiple processors
KR20190108001A (ko) 네트워크온칩 및 이를 포함하는 컴퓨팅 장치
US20220300448A1 (en) Peripheral component interconnect express device and method of operating the same
US11537543B2 (en) Technique for handling protocol conversion
US8521895B2 (en) Management of application to application communication requests between data processing systems
CN117033275B (zh) 加速卡间的dma方法、装置、加速卡、加速平台及介质
US20090235048A1 (en) Information processing apparatus, signal transmission method, and bridge
US20200167302A1 (en) Communications for field programmable gate array device
US8560594B2 (en) Management of process-to-process communication requests
JP2022527121A (ja) 割り当て可能なi/oドメインおよびコヒーレントドメインを有する周辺i/oデバイス
WO2023125565A1 (zh) 网络节点的配置和访问请求的处理方法、装置
KR20200093106A (ko) 반도체 집적 회로 및 그것의 동작 방법
Reble et al. Connecting the Cloud: Transparent and Flexible Communication for a Cluster of Intel SCCs.
WO2023051248A1 (zh) 一种数据访问系统、方法及相关设备