KR101720134B1 - 버스 브리지 장치 - Google Patents

버스 브리지 장치 Download PDF

Info

Publication number
KR101720134B1
KR101720134B1 KR1020110139202A KR20110139202A KR101720134B1 KR 101720134 B1 KR101720134 B1 KR 101720134B1 KR 1020110139202 A KR1020110139202 A KR 1020110139202A KR 20110139202 A KR20110139202 A KR 20110139202A KR 101720134 B1 KR101720134 B1 KR 101720134B1
Authority
KR
South Korea
Prior art keywords
data
read
write
command
transfer
Prior art date
Application number
KR1020110139202A
Other languages
English (en)
Other versions
KR20130071782A (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 KR1020110139202A priority Critical patent/KR101720134B1/ko
Priority to US13/620,294 priority patent/US20130166801A1/en
Publication of KR20130071782A publication Critical patent/KR20130071782A/ko
Application granted granted Critical
Publication of KR101720134B1 publication Critical patent/KR101720134B1/ko

Links

Images

Classifications

    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 버스 브리지 장치에 관한 것이다. 본 발명의 버스 브리지 장치는 버스기반 인터커넥션의 마스터 장치와 인터페이스를 수행하고, 마스터 장치로부터 읽기 및 쓰기 전송 명령, 주소 데이터, 및 쓰기 데이터를 수신하고, 읽기 데이터를 마스터 장치로 전송하는 슬레이브 포트, 전송 명령을 수신하는 명령 제어기, 주소 데이터를 저장하는 주소 버퍼, 쓰기 데이터를 저장하는 쓰기 데이터 버퍼, 읽기 데이터를 저장하는 읽기 데이터 버퍼, 네트워크기반 인터커넥션의 슬레이브 장치와 인터페이스를 수행하고, 쓰기 전송 명령 시 주소 데이터와 쓰기 데이터를 사용하여 마스터 장치의 쓰기 데이터를 슬레이브 장치로 출력하고, 읽기 전송 명령 시 슬레이브 장치로부터 읽기 데이터를 수신하는 프로토콜 변환기, 및 전송 명령에 따라 명령 제어기의 제어에 의해 읽기/쓰기 모드로 동작하고, 읽기 및 쓰기 데이터의 전송을 위해, 주소 버퍼와 읽기 및 쓰기 데이터 버퍼의 출력을 제어하는 전송 모드 제어기를 포함한다.

Description

버스 브리지 장치{BUS BRIDGE APPARATUS}
본 발명은 데이터 전송 시스템에 관한 것으로서, 특히 이종 인터커넥션 간의 연결을 위한 버스 브리지 장치에 관한 것이다.
시스템온칩(SoC: System on a Chip)의 설계 시에 다양한 기능을 갖는 기능 블록들 또는 IP(Intellectual Property) 장치들이 통합될 수 있다. 이 때 시스템온칩 내의 인터커넥션은 다양한 장치들간의 효과적인 전송 경로와 전송 성능을 제공하도록 구현된다. 프로세서를 포함하는 다수의 마스터들은 다른 다양한 장치들을 액세스하기위해 인터커넥션을 이용한다.
인터커넥션의 기반이 되는 가장 일반적인 구조는 버스기반의 인터커넥션이다. 버스기반의 인터커넥션은 다수의 마스터를 위한 중재기, 마스터와 슬레이브 간의 데이터 전송을 위한 공용 버스로 구성된다. 이러한 버스기반 인터커넥션은 시스템온칩을 구성하는 다수의 마스터들이 하나의 공용 버스를 동시에 이용하고자 하는 경우 중재기를 이용할 수 있다. 이때, 중재기에 의해 공용 버스 사용허가 신호를 받은 마스터들은 순서대로 공용 버스를 이용하여 데이터를 슬레이브로 전송하거나, 슬레이브로부터 데이터를 읽어온다.
버스기반 인터커넥션들은 낮은 전송 효율 및 성능으로 인하여 고성능 고효율의 인터커넥션으로 바뀌고 있다. 예를 들면, 고성능 고효율의 인터커넥션으로 ARM사의 AXI가 있다. AXI는 버스기반의 전송 프로토콜에 네트워크 프로토콜의 개념을 추가한 형태로 간주할 수 있다. AXI는 버스기반의 인터커넥션에 비하여 더 높은 전송 효율과 성능을 제공한다.
이와 같이 시스템온칩을 구성하는 다양한 장치들은 인터커넥션과의 연결을 통해 데이터를 송수신한다. 이때, 장치들의 특성 및 인터커넥션에 연결되는 인터페이스 개발의 문제 등 다양한 이유로 인해 사용되는 인터커넥션의 종류도 다르게 된다. 따라서, 이종의 인터커넥션을 이용하는 시스템온칩은 서로 다른 프로토콜을 지원하는 인터커넥션들 간의 연결을 위해 버스 브리지 장치를 사용한다.
버스 브리지 장치는 통상적으로 서로 다른 버스 구조 간에 연결을 제공하고, 지원되는 버스 의존형 IP 코어의 수를 확장시킴으로 인해 시스템의 성능을 향상시킬 수 있다. 또한, 버스 브리지 장치는 데이터 버스들을 분할함으로써 충돌 트래픽의 양을 감소시킬 수 있다. 이와 함께 브리지는 동작 완료를 허가 또는 거부하는 기능을 확인하기 위한 부가 기능을 제공한다. 뿐만 아니라, 버스 브리지 장치는 동작을 수행하는 동안 주소 재배분 또는 주소 재배치의 부가 기능을 제공할 수 있다.
이러한 버스 브리지 장치의 사용을 통해 이종의 인터커넥션을 연결할 때 인터커넥션의 특성을 고려하여 전송 수행을 하지 않을 경우 전송 포트의 전송 성능이 저하된다는 문제점이 있었다.
본 발명의 목적은 전송 성능의 저하를 최소화하는 버스 브리지 장치를 제공하는데 있다.
본 발명의 버스 브리지 장치는 버스기반 인터커넥션의 마스터 장치와 인터페이스를 수행하고, 상기 마스터 장치로부터 읽기 및 쓰기 전송 명령, 주소 데이터 및 쓰기 데이터를 수신하고 읽기 데이터를 상기 마스터 장치에 전송하는 슬레이브 포트, 상기 전송 명령을 수신하는 명령 제어기, 상기 주소 데이터를 저장하는 주소 버퍼, 상기 쓰기 데이터를 저장하는 쓰기 데이터 버퍼, 상기 읽기 데이터를 저장하는 읽기 데이터 버퍼, 네트워크기반 인터커넥션의 슬레이브 장치와 인터페이스를 수행하고, 상기 쓰기 전송 명령 시 상기 주소 데이터와 상기 쓰기 데이터를 사용하여 상기 마스터 장치의 쓰기 데이터를 상기 슬레이브 장치로 출력하며 상기 읽기 전송 명령 시 상기 슬레이브 장치로부터 읽기 데이터를 수신하는 프로토콜 변환기, 및 상기 전송 명령에 따라 상기 명령 제어기의 제어에 의해 읽기 및 쓰기 모드로 동작하고, 상기 읽기 및 쓰기 데이터의 전송을 위해, 상기 주소 버퍼와 상기 읽기 및 쓰기 데이터 버퍼의 출력을 제어하는 전송 모드 제어기를 포함한다.
이 실시예에 있어서, 상기 슬레이브 포트는 상기 마스터 장치로부터 수신된 읽기 및 쓰기 전송 명령, 버스트 방식과 데이터 전송 크기에 대한 명령 정보를 상기 명령 제어기로 출력한다.
이 실시예에 있어서, 상기 명령 제어기는 상기 읽기 및 쓰기 전송 명령, 상기 버스트 방식 정보와 상기 데이터 전송 크기 등에 대한 명령 정보를 상기 읽기 및 쓰기 데이터 전송을 위해 상기 전송 모드 제어기와 상기 프로토콜 변환기로 출력한다.
이 실시예에 있어서, 상기 슬레이브 포트는 전송 명령에 대응되는 주소 데이터와 쓰기 데이터를 버스트 모드 단위로 연속적으로 상기 주소 버퍼와 상기 쓰기 데이터 버퍼에 각각 저장한다.
이 실시예에 있어서, 상기 프로토콜 변환기는 상기 쓰기 데이터를 네트워크기반 인터커넥션의 프로토콜에 대응되도록 프로토콜 변환하여 출력한다.
이 실시예에 있어서, 상기 프로토콜 변환기는 마스터 포트로 동작한다.
이 실시예에 있어서, 상기 슬레이브 포트는 상기 마스터 장치로부터 수신된 읽기 전송 명령을 상기 명령 제어기로 출력한다.
이 실시예에 있어서, 상기 명령 제어기는 상기 읽기 전송 명령에 따라 상기 전송 모드 제어기의 동작을 읽기 모드로 동작하도록 제어하고, 상기 읽기 전송 명령에 대응되는 슬레이브 장치로부터 수신된 읽기 데이터가 상기 읽기 데이터 버퍼에 저장되면, 상기 슬레이브 포트를 통해 마스터 장치로 출력되도록 상기 읽기 데이터 버퍼를 제어한다.
본 발명의 버스 브리지 장치는 이종의 인터커넥션들 간의 특성을 고려하여 데이터를 송수신함에 따라 인커넥션들 간의 데이터 전송 성능을 최대화시킬 수 있다.
도 1은 버스기반 인터커넥션과 네트워크기반 인터커넥션 간의 브리지를 이용한 접속 구조를 도시한 도면,
도 2는 버스기반 인터페이스를 갖는 마스터 장치로부터 네트워크기반 인터페이스를 갖는 슬레이브 장치로의 일반적인 브리지를 통한 데이터 쓰기 전송에 따른 타이밍도,
도 3은 본 발명의 실시예에 따른 버스 브리지 장치를 도시한 도면, 및
도 4는 본 발명의 실시예에 따른 버스 브리지 장치의 사용에 따라 버스기반 인터페이스를 갖는 마스터 장치로부터 네트워크기반 인터페이스를 갖는 슬레이브 장치로의 데이터 쓰기 전송을 도시한 도면이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다.
본 발명은 이종의 인터커넥션들 간의 연결하는 브리지 장치에 관한 것이다. 본 발명의 버스 브리지 장치는 버스 인터커넥션에 연결된 마스터 장치로부터 네트워크 인터커넥션에 연결된 슬레이브 장치로의 데이터 전송 성능을 향상시킬 수 있다. 본 발명에 따른 버스기반 인터커넥션은 ARM사의 AHB라 가정할 수 있고, 네트워크기반 인터커넥션은 ARM 사의 AXI라 가정할 수 있다. 하지만, 다른 버스기반 인터커넥션과 다른 네트워크기반 인터커넥션들 간에 연결되는 브리지 장치들에 적용될 수 있다.
도 1은 버스기반 인터커넥션과 네트워크기반 인터커넥션 간의 브리지를 이용한 접속 구조를 도시한 도면이다.
도 1을 참조하면, 버스기반 인터커넥션(110)과 네트워크기반 인터커넥션(120)이 도시되어 있다. 버스기반 인터커넥션(110)에 제 1 마스터(111), 제 1 슬레이브(112), 제 2 슬레이브(113)가 연결된다. 또한, 네트워크기반 인터커넥션(120)에 제 2 마스터(121), 제 3 슬레이브(122), 제 4 슬레이브(123)가 연결된다.
이때, 제 1 브리지 장치(130)와 제 2 브리지 장치(140)를 통해 버스기반 인터커넥션(110)을 지원하는 IP(Intellectual Property) 장치들(111~113)과 네트워크기반 인터커넥션(120)을 지원하는 IP 장치들(121~123)은 상호 간에 연결될 수 있다.
이러한, 이종의 인터커넥션들(110, 120) 간의 연결을 위해 브리지 장치들(130, 140)이 사용된다.
제 1 브리지 장치(130)는 마스터 기능의 버스 인터페이스인 제 1 마스터 포트(131)와 슬레이브 기능의 네트워크 인터페이스인 제 1 슬레이브 포트(132)를 포함한다.
제 2 브리지 장치(140)는 마스터 기능의 버스 인터페이스인 제 2 마스터 포트(141)와 슬레이브 기능의 버스 인터페이스인 제 2 슬레이브 포트(142)를 포함한다.
우선, 버스기반 인터커넥션(110)에 연결된 제 1 마스터 장치(111)가 네트워크기반 인터커넥션(120)에 연결된 제 3 슬레이브 장치(122)로 데이터를 전송하는 경우를 일예로 설명한다. 이때, 액세스 정보의 전송 경로를 살펴보면, 제 1 마스터 장치(111)의 액세스 정보는 제 2 브리지 장치(140)의 제 2 슬레이브 포트(142)로 전달된다. 제 2 슬레이브 포트(142)로 전달된 액세스 정보는 제 2 마스터 포트(141)를 통해 네트워크기반 인터커넥션(120)에 연결된 제 3 슬레이브(122)로 전송될 수 있다.
이와 반대로, 네트워크기반 인터커넥션(120)에 연결된 제 2 마스터 장치(121)가 버스기반 인터커넥션(110)에 연결된 제 1 슬레이브 장치(112)로 데이터를 전송하는 경우를 일예로 설명한다. 이때, 액세스 정보의 전송 경로를 살펴보면, 제 2 마스터 장치(121)의 액세스 정보는 제 1 브리지 장치(130)의 제 1 슬레이브 포트(132)로 전달된다. 제 1 슬레이브 포트(132)로 전달된 액세스 정보는 제 1 마스터 포트(131)를 통해 버스기반 인터커넥션(110)에 연결된 제 1 슬레이브(112)로 전송될 수 있다.
네트워크기반 인터커넥션(120)은 버스기반 인터커넥션(110)보다 일반적으로 높은 전송 성능을 제공한다. 따라서, 이종의 인터커넥션간 데이터 전송 성능은 버스기반 인터커넥션(110)의 성능에 따라 좌우된다. 네트워크기반 인터커넥션(120)에 연결된 제 2 마스터 장치(121)로부터 버스기반 인터커넥션(110)에 연결된 슬레이브 장치(112 또는 113)로 데이터 전송이 수행될 경우, 데이터 전송 성능은 버스의 성능에 의존하게 된다. 이와 반대로, 버스기반 인터커넥션(110)에 연결된 제 1 마스터 장치(111)로부터 네트워크기반 인터커넥션(120)에 연결된 슬레이브(122 또는 123)로 데이터 전송이 수행될 경우, 데이터 전송 성능은 버스 프로토콜의 특성으로 인해 네트워크기반 인터페이스의 성능을 저하시킬 수 있다.
데이터 전송은 마스터 장치가 중재기(arbiter)에 버스 사용 권한 요청을 하고, 슬레이브 장치로 데이터 전송 명령 요청을 하고, 슬레이브 장치의 명령 수행에 따른 데이터 전송 완료 응답의 순서로 수행된다.
버스기반 인터커넥션(110)에서의 데이터 전송은 다음과 같다. 버스기반 인터커넥션(110)에 연결된 마스터 장치들은 동시에 버스를 사용할 수 없고, 하나의 마스터 장치가 버스를 사용할 경우 다른 마스터 장치는 버스 사용 권한을 부여받을 때까지 대기한다. 이때, 데이터 전송은 마스터 장치의 데이터 전송 요청에 대해 슬레이브 장치가 데이터 전송에 대한 응답 신호를 전송하면 완료된다. 여기서, 하나의 데이터 전송이 완료되기 전에 다른 데이터의 전송을 수행할 수 없다.
또한, 네트워크기반 인터커넥션(120)에서의 데이터 전송은 다음과 같다. 네트워크기반의 인터커넥션(120)은 읽기 채널(read channel)과 쓰기 채널(write channel)을 분리한 구조를 갖는다. 따라서, 네트워크기반의 인터커넥션(120)의 마스터 장치들은 읽기 동작과 쓰기 동작을 동시에 수행할 수 있다. 다른 마스터 장치에 의한 데이터 전송 요청이 독립적으로 수행되므로, 하나의 데이터 전송 요청에 대한 동작 수행이 마무리되지 않더라도 다른 마스터 장치가 데이터 전송 요청을 할 수 있다.
이러한 네트워크기반 인터커넥션(120)의 특성을 이용하여 본 발명에서 제안되는 버스 브리지 장치는 데이터 전송의 연속성을 확보하고 전송 성능을 향상시킬 수 있다. 일예로, 마스터 장치에 의한 메모리 장치(즉, 슬레이브 장치)로의 액세스 동작에서, 메모리 장치는 다음 전송을 위한 어드레스를 미리 수신하면 다음 전송을 위한 데이터를 미리 준비하여 전송할 수 있다. 그러나, 버스기반 인터커넥션(110)의 버스 프로토콜 특성으로 인해 다음 전송을 위한 어드레스는 현재 수행되고 있는 전송이 완료된 이후에 전달되고, 이는 데이터 전송 성능을 저하시키는 원인이 된다. 하지만, 네트워크기반 인터커넥션(120)은 데이터 전송 동작이 수행 중이어도 다음 전송을 위한 어드레스를 메모리 장치에 전달할 수 있어 전송 성능을 향상시킬 수 있다.
도 2는 버스기반 인터페이스를 갖는 마스터 장치로부터 네트워크기반 인터페이스를 갖는 슬레이브 장치로의 일반적인 브리지를 통한 데이터 쓰기 전송에 따른 타이밍도이다.
도 2를 참조하면, 버스기반 인터커넥션(110)를 갖는 제 1 마스터 장치(111)로부터 네트워크기반 인터커넥션(120)를 갖는 제 3 슬레이브 장치(122)로 데이터 쓰기 전송에 있어서 브리지 사용에 따른 전송 타이밍이 도시된다. 여기서, 버스트 모드(burst mode)는 '8'인 경우이다.
제 1 마스터 장치(111)에서 데이터 전송이 요청되면, 시작 어드레스 A1은 제 2 브리지 장치(140)를 거쳐 제 3 슬레이브 장치(122)로 전달된다. 이때, 슬레이브 장치는 수신된 시작 어드레스에 대해 어드레스를 받을 준비 상태에 대한 신호를 전달한다. 이 신호를 수신한 제 1 마스터 장치(111)는 데이터 전송을 시작한다.
제 1 마스터 장치(111)와 제 3 슬레이브 장치(122) 간에 데이터 전송 시 시작 어드레스가 제 3 슬레이브 장치(122)에 전달되어 응답받을 때까지의 지연 시간인 t1과 제 3 슬레이브 장치(122)의 데이터 수신 완료 응답을 전송한 후 제 1 마스터 장치(111)에서 다음 전송 시작까지의 지연 시간인 t2가 발생한다.
이와 같이, 네트워크 프로토콜 간의 불일치로 인한 전송 성능 저하가 발생할 수 있다.
도 3은 본 발명의 실시예에 따른 버스 브리지 장치를 도시한 도면이다.
도 3을 참조하면, 버스 브리지 장치(200)는 버스기반 인터커넥션(110) 의 버스와 네크워크 기반 인터커넥션(120)의 버스 사이에 위치한다. 버스 브리지 장치(200)는 슬레이브 포트(210), 명령 제어기(220), 주소 버퍼(230), 쓰기 데이터 버퍼(240), 전송 모드 제어기(250), 프로토콜 변환기(260), 및 읽기 데이터 버퍼(270)를 포함한다.
슬레이브 포트(210)는 버스기반 인터커넥션(110)의 마스터 장치들(일예로, 제 1 마스터 장치(111))과의 인터페이스를 수행한다. 슬레이브 포트(210)는 마스터 장치로부터 읽기 전송 명령, 쓰기 전송 명령, 전송 어드레스, 및 쓰기 데이터를 수신한다. 또한, 슬레이브 포트(210)는 데이터 전송을 위한 명령 정보들을 수신할 수 있다. 여기서, 명령 정보는 버스트 방식 및 데이터 크기 등에 대한 정보를 포함한다.
슬레이브 포트(210)는 제 1 마스터 장치(111)로부터의 읽기 전송 명령과 쓰기 전송 명령을 명령 제어기(220)로 출력한다. 슬레이브 포트(210)는 명령 정보들을 수신하면, 명령 정보들을 명령 제어기(220)로 출력할 수 있다. 슬레이브 포트(210)는 전송 어드레스를 주소 버퍼(230)에 저장한다. 슬레이브 포트(210)는 쓰기 데이터를 쓰기 데이터 버퍼(240)에 저장한다. 즉, 슬레이브 포트(210)는 전송 명령에 대응되는 주소 데이터와 쓰기 데이터를 미리 설정된 단위, 일예로, 버스트 모드 단위로 연속적으로 주소 버퍼(230)와 상기 쓰기 데이터 버퍼(240)에 각각 저장한다.
슬레이브 포트(210)는 제 1 마스터 장치(111)로부터 읽기 전송 명령을 수신할 때, 슬레이브 포트(210)는 읽기 전송 명령의 수신과 동시에 제 1 마스터 장치(111)로 응답 대기를 요청한다. 읽기 전송 명령 수신에 대해, 슬레이브 포트(210)는 읽기 데이터 버퍼(270)로부터 제 1 마스터 장치(111)에 의해 요청된 읽기 데이터가 수신되면, 제 1 마스터 장치(111)로 읽기 데이터를 전송한다.
명령 제어기(220)는 슬레이브 포트(210)를 통해 제 1 마스터 장치(111)로부터 전달된 전송 명령과 읽기 전송 명령을 수신한다. 명령 제어기(220)는 제 1 마스터 장치(111)로부터 데이터 전송 크기, 버스트 방식(또는 버스트 모드(burst mode)) 등의 명령 정보들을 수신할 수도 있다. 명령 제어기(220)는 읽기 및 쓰기 전송 명령과 명령 정보들을 이용하여 읽기 및 쓰기 모드에 따라 전송 모드 제어기(250)와 프로토콜 변환기(260)에 정보를 제공한다.
또한, 명령 제어기(220)는 제 1 마스터 장치(111)가 제 3 슬레이브 장치(122)로부터의 읽기 동작 시 읽기 데이터 버퍼(270)에 제 1 마스터 장치(111)로부터 요청된 데이터의 크기만큼 읽기 데이터가 저장되면, 전송 모드 제어기(250)로 읽기 전송 명령에 대한 완료 동작을 요청한다.
주소 버퍼(230)는 데이터들을 제 3 슬레이브 장치(122)로의 전송을 위한 전송 어드레스들이 저장된다.
쓰기 데이터 버퍼(240)는 버스기반 인터커넥션(110)의 제 1 마스터 장치(111)로부터 네트워크기반 인터커넥션(120)의 제 3 슬레이브 장치(122)로 제공될 쓰기 데이터가 저장된다.
전송 모드 제어기(250)는 명령 제어기(220)로부터 제공된 읽기/쓰기 모드 정보를 이용하여 프로토콜 변환기(260)를 제어한다. 전송 모드 제어기(250)는 전송하고자 하는 버스트 방식과 프로토콜 변환기(260)의 데이터 전송 제어 상황 정보를 확인하고, 주소 버퍼(230)와 쓰기 데이터 버퍼(240)를 제어하여 프로토콜 변환기(260)로의 데이터 전송을 제어한다. 이때, 전송 모드 제어기(250)는 주소 버퍼(230)의 값과 버스트 방식 정보를 이용하여 네트워크기반 인터커넥션(120)의 제 3 슬레이브 장치(122)와 통신을 수행함으로써 데이터 전송 동작을 완료한다. 또한, 전송 모드 제어기(250)는 명령 제어기(220)로부터 읽기 전송 명령에 대한 완료 동작 요청 시 슬레이브 포트(210)로 제 3 슬레이브 장치(122)의 데이터를 출력하도록 읽기 데이터 버퍼(270)를 제어한다.
프로토콜 변환기(260)는 네트워크기반 인터커넥션(120)의 슬레이브 장치들(일예로, 제 3 슬레이브 장치(122))과의 인터페이스를 수행한다. 따라서, 프로토콜 변환기(260)는 마스터 포트로 동작할 수 있다. 프로토콜 변환기(260)는 네트워크기반 인터커넥션(120)에 연결되어 프로토콜 변환을 수행한다.
프로토콜 변환기(260)는 제 1 마스터 장치(111)에 의한 제 3 슬레이브 장치(122)로의 쓰기 동작 시 주소 버퍼(230)로부터 수신된 전송 어드레스와 쓰기 데이터 버퍼(240)로부터 수신된 쓰기 데이터를 수신한다.
프로토콜 변환기(260)는 마스터 장치에 의한 제 3 슬레이브 장치(122)로부터의 읽기 동작 시 명령 제어기(220)와 전송 모드 제어기(250)로부터 수신한 버스트 방식, 데이터 전송 크기, 및 어드레스 정보를 네트워크기반 인터커넥션(120)의 제 3 슬레이브 장치(122)로 제공한다. 이에 따라, 프로토콜 변환기(260)는 네트워크기반 인터커넥션(120)의 제 3 슬레이브 장치(122)로부터 수신된 데이터를 전송 모드 제어기(250)의 제어에 따라 읽기 데이터 버퍼(270)에 저장한다.
따라서, 프로토콜 변환기(260)의 프로토콜 변환은 버스기반 인터커넥션(110)의 쓰기 데이터를 네트워크기반 인터커넥션(120)의 프로토콜에 대응되도록 변환하거나, 네트워크기반 인터커넥션(120)의 읽기 데이터를 버스기반 인터커넥션(110)의 프로토콜에 대응되도록 변환하는 것을 의미한다.
읽기 데이터 버퍼(270)는 프로토콜 변환기로부터 수신된 네트워크기반 인터커넥션(120)의 슬레이브 장치(122)로부터 수신된 읽기 데이터를 저장한다. 읽기 데이터 버퍼(270)에 저장된 읽기 데이터는 제 1 마스터 장치(111)에 의해 요청된 데이터이다.
버스 브리지 장치(200)는 제 1 마스터 장치(111)와 제 3 슬레이브 장치(122) 간의 데이터 읽기 및/또는 쓰기 동작을 설명하였으나, 제 1 마스터 장치(111) 대신에 버스기반 인터커넥션(110)의 다른 마스터 장치가 데이터 읽기/쓰기 동작에 사용되거나, 네트워크기반 인터커넥션의 제 3 슬레이브 장치(122) 대신에 다른 슬레이브 장치가 사용될 수 있다.
본 발명의 버스 브리지 장치(200)는 도 1의 제 2 브리지 장치(140)를 대체한다.
본 발명의 버스 브리지 장치는 이종의 인터커넥션 간의 데이터의 전송 성능 저하를 방지하기 위해 네트워크 프로토콜 특성을 고려한 구조를 갖는다. 특히, 버스기반의 인터커넥션의 마스터 장치로부터 네트워크기반의 인터커넥션의 슬레이브 장치로의 데이터 전송 시 상술한 버스 브리지 장치를 이용하면, 내부의 버퍼에 마스터 장치의 데이터를 버퍼링을 통해 슬레이브 장치로 전송하고, 이때 프로토콜 변환기를 통해 네트워크기반 인터커넥션의 전송 프로토콜에 최적화 되도록 주소와 데이터의 전송 타이밍을 변환함으로써 전송 효율의 저하를 방지할 수 있다.
도 4는 본 발명의 실시예에 따른 버스 브리지 장치의 사용에 따라 버스기반 인터페이스를 갖는 마스터 장치로부터 네트워크기반 인터페이스를 갖는 슬레이브 장치로의 데이터 쓰기 전송을 도시한 도면이다.
도 4를 참조하면, 버스기반 인터커넥션(110)를 갖는 제 1 마스터 장치(111)로부터 네트워크기반 인터커넥션(120)를 갖는 제 3 슬레이브 장치(122)로 데이터 쓰기 전송에 있어서 브리지 사용에 따른 전송 타이밍이 도시된다. 여기서, 버스트 모드(burst mode)는 '8'인 경우이다.
제 1 마스터 장치(111)에서 데이터 전송이 요청되면, 시작 어드레스 A1은 제 2 브리지 장치(140)를 거쳐 제 3 슬레이브 장치(122)로 전달된다. 이때, 제 2 브리지 장치(140)는 제 3 슬레이브 장치(122)에 바로 데이터를 전송하지 않고 주소 버퍼와 쓰기 데이터 버퍼에 주소와 데이터를 저장하고, 제 3 슬레이브 장치와 독립적으로 데이터 전송을 수행한다. 따라서 제 1 마스터 장치(111)는 제 3 슬레이브 장치(122)와 직접 연결되는 것이 아니라 제 2 브리지 장치(140)의 상태에 따라 데이터 전송을 수행한다.
제 1 마스터 장치(111)와 제 2 브리지 장치(140) 사이의 주소 및 쓰기 데이터 저장 시작 후, 제 2 브리지 장치(140)와 제 3 슬레이브 장치(122) 사이의 독립적인 데이터 전송이 시작된다. 이때 제 1 마스터 장치(111)와 제 3 슬레이브 장치(122) 간에 데이터 전송 시 시작 어드레스가 제 2 브리지 장치(140)를 거쳐 제 3 슬레이브 장치(122)에 전달되어 제 2 브리지 장치(140)가 전송 가능 응답받을 때까지의 지연 시간인 t3가 발생할 수 있다. 하지만, 다음 버스트 데이터 전송 시에는 제 2 브리지 장치(140)의 주소 버퍼(230)와 쓰기 데이터 버퍼(240)에 미리 저장한 다음 전송 주소와 쓰기 데이터를 제 3 슬레이브 장치(122)에 미리 제공 가능함으로써 제 3 슬레이브 장치(122)의 데이터 수신 완료 응답을 제 1 마스터 장치(111)가 받지 않더라도 다음 전송을 시작할 수 있다. 따라서 전송에 따른 시간 지연을 최소화하여 데이터 전송을 수행할 수 있다. 시간 지연이 발생하지 않음은 t4를 통해 확인할 수 있다.
본 발명의 버스 브리지 장치(200)는 전송 어드레스와 쓰기 데이터를 버퍼들을 통해 미리 설정된 단위, 일예로 버스트 모드 단위로의 연속적인 전송이 가능함에 따라 이종 인터커넥션들 간의 데이터 전송에 따른 전송 성능 저하를 방지할 수 있다.
이와 같이, 본 발명에서 제안된 버스 브리지 장치(200)는 인터커넥션들 간의 버스 프로토콜 성능 불일치로 인한 전송 성능 저하를 방지할 수 있다. 특히, 버스 브리지 장치는 네트워크기반 인터커넥션에 비해 성능 저하가 큰 버스기반 인터커넥션의 마스터 장치로부터 네트워크기반 인터커넥션의 슬레이브 장치로의 전송 성능 향상을 할 수 있다.
시스템온칩(SoC: System on a chip)에서 사용되는 인터커넥션의 종류는 에이에이치비(AHB), 에이엑스아이(AXI), 코어커넥트(Coreconnect) 등 다양하고, 그 구조에 따라 서로 다른 통신 프로토콜을 사용하여 데이터를 송수신한다. 또한, 시스템온칩을 구성하는 다양한 IP(Intellectual Property) 장치 들도 각각 인터커넥션과의 접속을 위해 서로 다른 인터페이스를 제공한다. 일예로, ARM사의 AMBA 버스의 경우 AHB, APB와 같은 버스 기반의 인터커넥션과 AXI 같은 네트워크기반의 인터커넥션이 있다. 또한, IP 장치 들도 각각의 특성에 따라서 서로 다른 인터커넥션을 지원한다. 이와 같이 서로 다른 인터커넥션을 지원해야 하는 시스템온칩은 인터커넥션 간의 연결을 위한 버스 브리지 장치를 사용한다. 이때, 버스 브리지 장치의 성능이 데이터 전송 성능을 좌우한다.
본 발명에서 설명된 바와 같이 버스기반 인터커넥션에 연결된 마스터 장치가 네트워크기반 인터커넥션에 연결된 슬레이브 장치(일예로, 메모리 등)에 접근할 경우 높은 전송 성능을 제공하는 네트워크기반 인터커넥션의 성능을 최대한 이끌어 낼 수 없게 된다.
이를 위해 본 발명에서 제안된 버스 브리지 장치는 마스터 장치로부터 요청되는 네트워크기반 인터커넥션에 연결된 슬레이브 장치로의 접근 요청에 대하여 독립적인 버스 인터페이스 모듈을 통해 대응하고 네트워크기반 인터커넥션으로 전송할 데이터의 전송 제어를 버스기반 인터커넥션의 전송제어와 분리시킴으로써 네트워크 인터커넥션의 전송채널의 전송 효율을 최대한 발휘할 수 있도록 한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 버스기반 인터커넥션 120: 네트워크기반 인터커넥션
111, 121: 마스터들 112, 113, 122, 123: 슬레이브들
130, 140: 브리지 장치들
131, 141: 마스터 포트들 132, 142: 슬레이브 포트들
200: 버스 브리지 장치 210: 슬레이브 포트
220: 명령 제어기 230: 주소 버퍼
240: 쓰기 데이터 버퍼 250: 전송 모드 제어기
260: 프로토콜 변환기 270; 읽기 데이터 버퍼

Claims (9)

  1. 버스기반 인터커넥션의 마스터 장치와 인터페이스를 수행하고, 상기 마스터 장치로부터 읽기 전송 명령, 쓰기 전송 명령, 주소 데이터, 및 쓰기 데이터를 수신하고, 읽기 데이터를 상기 마스터 장치로 전송하는 슬레이브 포트;
    상기 읽기 전송 명령과 상기 쓰기 전송 명령을 수신하는 명령 제어기;
    상기 주소 데이터를 저장하는 주소 버퍼;
    상기 쓰기 데이터를 저장하는 쓰기 데이터 버퍼;
    상기 읽기 데이터를 저장하는 읽기 데이터 버퍼;
    네트워크기반 인터커넥션의 슬레이브 장치와 인터페이스를 수행하고, 상기 쓰기 전송 명령 시 상기 주소 데이터와 상기 쓰기 데이터를 사용하여 상기 마스터 장치의 쓰기 데이터를 상기 슬레이브 장치로 출력하고, 상기 읽기 전송 명령 시 상기 슬레이브 장치로부터 읽기 데이터를 수신하는 프로토콜 변환기; 및
    상기 읽기 전송 명령 또는 상기 쓰기 전송 명령에 따라 상기 명령 제어기의 제어에 의해 읽기 모드 또는 쓰기 모드로 동작하고, 상기 읽기 데이터 또는 상기 쓰기 데이터의 전송을 위해, 상기 주소 버퍼, 상기 읽기 데이터 버퍼, 및 상기 쓰기 데이터 버퍼의 출력을 제어하는 전송 모드 제어기를 포함하되,
    상기 프로토콜 변환기는 상기 쓰기 전송 명령 시 기준 딜레이 이후 상기 쓰기 전송 명령에 따른 쓰기 데이터와 주소 데이터를 상기 슬레이브 장치에 전달하고, 상기 기준 딜레이 동안 복수의 쓰기 전송 명령이 상기 슬레이브 장치를 통해 수신되는 버스 브리지 장치.
  2. 제 1 항에 있어서,
    상기 슬레이브 포트는 상기 마스터 장치로부터 수신된 상기 읽기 전송 명령, 상기 쓰기 전송 명령, 버스트 방식, 및 데이터 전송 크기에 대한 명령 정보를 상기 명령 제어기로 출력하는 버스 브리지 장치.
  3. 제 2 항에 있어서,
    상기 명령 제어기는 상기 읽기 전송 명령, 상기 쓰기 전송 명령, 상기 버스트 방식 및 상기 데이터 전송 크기에 대한 명령 정보를 상기 읽기 데이터 전송 또는 상기 쓰기 데이터 전송을 위해 상기 전송 모드 제어기와 상기 프로토콜 변환기로 출력하는 버스 브리지 장치.
  4. 제 1 항에 있어서,
    상기 슬레이브 포트는 상기 쓰기 전송 명령에 대응되는 주소 데이터와 쓰기 데이터를 버스트 모드 단위로 연속적으로 상기 주소 버퍼와 상기 쓰기 데이터 버퍼에 각각 저장하는 버스 브리지 장치.
  5. 제 1 항에 있어서,
    상기 프로토콜 변환기는 상기 쓰기 데이터를 상기 네트워크기반 인터커넥션의 프로토콜에 대응되도록 프로토콜 변환하여 출력하는 버스 브리지 장치.
  6. 제 1 항에 있어서,
    상기 프로토콜 변환기는 마스터 포트로 동작하는 버스 브리지 장치.
  7. 제 1 항에 있어서,
    상기 슬레이브 포트는 상기 마스터 장치로부터 수신된 읽기 전송 명령을 상기 명령 제어기로 출력하는 버스 브리지 장치.
  8. 제 7 항에 있어서,
    상기 읽기 데이터 버퍼는 상기 읽기 전송 명령에 대응되는 읽기 데이터를 저장하는 버스 브리지 장치.
  9. 제 1 항에 있어서,
    상기 명령 제어기는 상기 읽기 전송 명령에 따라 상기 전송 모드 제어기의 동작을 상기 읽기 모드로 동작하도록 제어하고, 상기 읽기 전송 명령에 대응되는 슬레이브 장치로부터 수신된 읽기 데이터가 상기 읽기 데이터 버퍼에 저장되면, 상기 슬레이브 포트를 통해 상기 마스터 장치로 출력되도록 상기 읽기 데이터 버퍼를 제어하는 버스 브리지 장치.
KR1020110139202A 2011-12-21 2011-12-21 버스 브리지 장치 KR101720134B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110139202A KR101720134B1 (ko) 2011-12-21 2011-12-21 버스 브리지 장치
US13/620,294 US20130166801A1 (en) 2011-12-21 2012-09-14 Bus bridge apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110139202A KR101720134B1 (ko) 2011-12-21 2011-12-21 버스 브리지 장치

Publications (2)

Publication Number Publication Date
KR20130071782A KR20130071782A (ko) 2013-07-01
KR101720134B1 true KR101720134B1 (ko) 2017-03-28

Family

ID=48655702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110139202A KR101720134B1 (ko) 2011-12-21 2011-12-21 버스 브리지 장치

Country Status (2)

Country Link
US (1) US20130166801A1 (ko)
KR (1) KR101720134B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101565345B1 (ko) * 2014-07-16 2015-11-03 현대자동차주식회사 차량 내 시간 동기화 메시지를 이용한 차량 진단용 블랙박스 제공 방법 및 그 장치
US10216669B2 (en) * 2016-02-23 2019-02-26 Honeywell International Inc. Bus bridge for translating requests between a module bus and an axi bus
US10599601B1 (en) 2019-01-16 2020-03-24 Qorvo Us, Inc. Single-wire bus (SuBUS) slave circuit and related apparatus
US11119958B2 (en) 2019-04-18 2021-09-14 Qorvo Us, Inc. Hybrid bus apparatus
US11226924B2 (en) 2019-04-24 2022-01-18 Qorvo Us, Inc. Single-wire bus apparatus supporting slave-initiated operation in a master circuit
DE102019125493A1 (de) * 2019-09-23 2021-03-25 Infineon Technologies Ag Slaveeinrichtung, Bussystem und Verfahren
CN112835834B (zh) * 2019-11-25 2024-03-19 瑞昱半导体股份有限公司 数据传输***
US10983942B1 (en) * 2019-12-11 2021-04-20 Qorvo Us, Inc. Multi-master hybrid bus apparatus
US20230305973A1 (en) * 2020-07-30 2023-09-28 Young-Il Kim Mmi interface device and computing system based thereon
CN111966610B (zh) * 2020-09-04 2023-12-01 Oppo广东移动通信有限公司 数据传输方法、处理芯片和计算机设备
US11409677B2 (en) 2020-11-11 2022-08-09 Qorvo Us, Inc. Bus slave circuit and related single-wire bus apparatus
US11489695B2 (en) 2020-11-24 2022-11-01 Qorvo Us, Inc. Full-duplex communications over a single-wire bus
CN112583831B (zh) * 2020-12-14 2022-10-28 北京神经元网络技术有限公司 Autbus总线与ethernet总线的协议转换装置及方法、设备及介质
US11392533B1 (en) * 2020-12-30 2022-07-19 Cadence Design Systems, Inc. Systems and methods for high-speed data transfer to multiple client devices over a communication interface
CN114143140A (zh) * 2021-11-30 2022-03-04 北京三快在线科技有限公司 一种数据传输***、方法、存储介质及电子设备
US11706048B1 (en) 2021-12-16 2023-07-18 Qorvo Us, Inc. Multi-protocol bus circuit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978878A (en) * 1996-09-26 1999-11-02 Vlsi Technology Selective latency reduction in bridge circuit between two busses
US5915104A (en) * 1997-01-09 1999-06-22 Silicon Graphics, Inc. High bandwidth PCI to packet switched router bridge having minimized memory latency
US6073190A (en) * 1997-07-18 2000-06-06 Micron Electronics, Inc. System for dynamic buffer allocation comprising control logic for controlling a first address buffer and a first data buffer as a matched pair
JP2003108514A (ja) * 2001-10-01 2003-04-11 Matsushita Electric Ind Co Ltd バスブリッジ
US8249097B2 (en) * 2003-07-14 2012-08-21 Broadcom Corporation Method and system for an integrated host PCI I/O bridge and dual port gigabit Ethernet controller
KR100591243B1 (ko) * 2003-12-24 2006-06-19 한국전자통신연구원 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법
JP2006113689A (ja) * 2004-10-12 2006-04-27 Fujitsu Ltd バスブリッジ装置およびデータ転送方法
US7457905B2 (en) * 2005-08-29 2008-11-25 Lsi Corporation Method for request transaction ordering in OCP bus to AXI bus bridge design
US8006021B1 (en) * 2008-03-27 2011-08-23 Xilinx, Inc. Processor local bus bridge for an embedded processor block core in an integrated circuit
JP5564187B2 (ja) * 2009-02-25 2014-07-30 ルネサスエレクトロニクス株式会社 マイクロコントローラおよび自動車電子制御装置
US8489791B2 (en) * 2010-03-12 2013-07-16 Lsi Corporation Processor bus bridge security feature for network processors or the like

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MIPS BusBridge TM 3 Modules User’s Manual, 2009*

Also Published As

Publication number Publication date
US20130166801A1 (en) 2013-06-27
KR20130071782A (ko) 2013-07-01

Similar Documents

Publication Publication Date Title
KR101720134B1 (ko) 버스 브리지 장치
KR100687659B1 (ko) Axi 프로토콜에 따른 락 오퍼레이션을 제어하는네트워크 인터페이스, 상기 네트워크 인터페이스가 포함된패킷 데이터 통신 온칩 인터커넥트 시스템, 및 상기네트워크 인터페이스의 동작 방법
JP4785112B2 (ja) 複数のマスタを含むサブシステムをオープンコアプロトコルを基盤とするバスに連結するためのバスシステム
CN100595744C (zh) 芯片上***集成电路、电子***及在其内传送数据的方法
US20050174877A1 (en) Bus arrangement and method thereof
KR101699784B1 (ko) 버스 시스템 및 그것의 동작 방법
CN101588285B (zh) 一种非透明传输的实现方法、非透明桥和通信***
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
EP3644192B1 (en) Master chip, slave chip, and dma transfer system between chips
CN112711550B (zh) Dma自动配置模块和片上***soc
CN102207920B (zh) 一种bvci总线到ahb总线的转换桥
US9104819B2 (en) Multi-master bus architecture for system-on-chip
JP4920036B2 (ja) メモリチャネル上の応答のスケジューリング
KR20080074545A (ko) 버스 시스템 및 그 제어 방법
JP2004133942A (ja) データバスシステム及びバス間クロスアクセス方法
US20190286606A1 (en) Network-on-chip and computer system including the same
US7039730B2 (en) Storage device control apparatus and method
US11789884B2 (en) Bus system and method for operating a bus system
US8913527B2 (en) Multiple die communication system
KR100475438B1 (ko) 데이터 버스 시스템 및 버스간 크로스 액세스 방법
KR101061187B1 (ko) 버스 시스템 및 그 제어 장치
JP5028817B2 (ja) バスシステム
CN112783811B (zh) 微控制器架构及架构内数据读取方法
CN101710310A (zh) 一种amba接口电路
US20100250808A1 (en) bus arbitration system, a method of connecting devices of an ic employing a bus system and an ic

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: 20200224

Year of fee payment: 4