KR20120040535A - 버스 시스템 및 그것의 동작 방법 - Google Patents

버스 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20120040535A
KR20120040535A KR1020100102010A KR20100102010A KR20120040535A KR 20120040535 A KR20120040535 A KR 20120040535A KR 1020100102010 A KR1020100102010 A KR 1020100102010A KR 20100102010 A KR20100102010 A KR 20100102010A KR 20120040535 A KR20120040535 A KR 20120040535A
Authority
KR
South Korea
Prior art keywords
write data
write request
write
traffic
synchronization
Prior art date
Application number
KR1020100102010A
Other languages
English (en)
Other versions
KR101699784B1 (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 KR1020100102010A priority Critical patent/KR101699784B1/ko
Priority to US13/244,493 priority patent/US8667195B2/en
Publication of KR20120040535A publication Critical patent/KR20120040535A/ko
Priority to US14/170,086 priority patent/US9021171B2/en
Application granted granted Critical
Publication of KR101699784B1 publication Critical patent/KR101699784B1/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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/4063Device-to-bus coupling
    • 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)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 인터커넥터를 포함하는 시스템 온 칩 버스 시스템 및 그것의 동작 방법에 관한 것이다. 본 발명의 실시 예에 따르면, 상기 버스 시스템의 인터커넥터는 마스터 장치로부터 슬레이브 장치로 제공되는 트래픽을 제어하기 위해서 동기화/간략화 블럭을 포함할 것이다. 상기 동기화/간략화 블럭은 마스터 장치로부터 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽 모두가 제공된 경우, 상기 두 트래픽들을 상기 슬레이브 장치로 전송할 것이다. 이러한 상기 동기화/간략화 블럭의 동기화 동작은 상기 인터커넥터에 포함되는 버퍼 메모리의 크기를 줄일 수 있을 뿐만 아니라 상기 인터커넥터의 데드-락 상태를 방지할 수 있다. 또한, 상기 동기화/간략화 블럭은 쓰기 요청 트래픽과 쓰기 데이터 트래픽이 지연 시간없이 전송되도록 상기 트래픽들을 제어할 것이다. 이러한 상기 동기화/간략화 블럭의 간략화 동작은 버스 점유율을 최소화하여 상기 버스 시스템의 동작 속도를 증가시킬 수 있다.

Description

버스 시스템 및 그것의 동작 방법{BUS SYSTEM AND OPERATING METHOD THEREOF}
본 발명은 버스 시스템 및 그것의 동작 방법에 관한 것으로, 더욱 상세하게는 인터커넥터를 포함하는 시스템 온 칩 버스 시스템 및 그것의 동작 방법에 관한 것이다.
최근 디지털 전자 장치의 소형화, 고성능화, 다기능화 및 컨버전스 추세에 맞춰, 서로 다른 기능을 하는 복수의 시스템이 하나의 칩으로 집적된 시스템 온 칩(SoC: system on chip)의 사용이 보편화되고 있다. 시스템 온 칩(SoC)의 설계에 있어서 급변하는 시장의 요구에 대응하기 위해서는 개발에 소요되는 시간을 줄이는 것은 필수적이다. 이를 위해서 기존에 설계되어 사용되고 있는 시스템 블럭(system block), 즉, 아이피(IP: intellectual property) 블럭의 재활용이 점차 확대되고 있다. 이러한 아이피(IP) 블럭의 재활용은 제품 개발에 소요되는 시간을 단축시킬 뿐만 아니라, 새롭게 개발된 시스템 온 칩(SoC)의 신뢰성을 향상시키는 데에도 효과적이다.
한편, 시스템 온 칩(SoC)의 효과적인 설계를 위해서는 하나의 칩으로 집적된 복수의 아이피(IP) 블럭들 간의 상호 통신을 위한 버스 시스템(bus system)의 선택이 무엇보다 중요하다. 버스 시스템에 있어서의 데이터의 송신 및 수신은 버스 시스템의 정해진 프로토콜(protocol)에 따라 수행된다. 널리 사용되고 있는 대표적인 버스 시스템 중 하나인 ARM(advanced RISC machine)사의 AMBA(advanced microcontroller bus architecture)는 다양한 프로토콜을 포함한다. 예를 들면, AMBA는 고속의 아이피(IP) 블럭들 간을 연결하는 AHB(advanced high-performance bus), AXI(advanced extensible interface), 및 저속의 아이피(IP) 블럭들 간을 연결하는 APB(advanced peripheral bus) 프로토콜로 구성된다.
본 발명의 목적은 인터커넥터를 포함하는 시스템 온 칩 버스 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 버스 시스템은, 마스터 장치; 상기 마스터 장치의 요청에 응답하여 동작하는 슬레이브 장치; 및 상기 마스터 장치와 상기 슬레이브 장치 사이에 복수의 버스들을 통해 연결되는 인터커넥터를 포함하되, 상기 인터커넥터는 상기 마스터 장치로부터 쓰기 요청과 상기 쓰기 요청에 대응되는 쓰기 데이터가 모두 제공되면 상기 슬레이브 장치로 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터를 전송한다.
실시 예에 있어서, 상기 인터커넥터는 상기 제공된 쓰기 요청에 대응되는 쓰기 데이터가 제공될 때까지 상기 슬레이브 장치로 상기 제공된 쓰기 요청의 전송을 대기한다.
실시 예에 있어서,상기 인터커넥터는 상기 마스터 장치가 버스트 전송 동작을 수행하지 않는 경우 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터를 즉시 전송한다.
실시 예에 있어서, 상기 인터커넥터는, 상기 마스터 장치와 상기 인터커넥터를 인터페이싱하는 슬레이브 인터페이스; 상기 슬레이브 장치와 상기 인터커넥터를 인터페이싱하는 마스터 인터페이스; 및 상기 슬레이브 인터페이스와 상기 마스터 인터페이스 사이에 연결되어 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터의 전송을 제어하는 동기화/간략화 블럭을 포함한다.
실시 예에 있어서, 상기 동기화/간략화 블럭은, 상기 쓰기 요청을 임시 저장하기 위한 쓰기 요청 버퍼; 상기 쓰기 데이터를 임시 저장하기 위한 쓰기 데이터 버퍼; 및 상기 제공된 쓰기 요청에 대응되는 쓰기 데이터가 제공되었는지의 여부를 판단하고, 판단 결과에 따라 상기 쓰기 요청 버퍼 및 상기 쓰기 데이터 버퍼를 제어하는 제어 유닛을 포함한다.
실시 예에 있어서, 상기 쓰기 요청 버퍼 및 상기 쓰기 데이터 버퍼 각각의 크기는 상기 마스터 장치로부터 제공되는 버스트 데이터 길이에 따라 설정된다.
실시 예에 있어서, 상기 쓰기 요청 버퍼의 크기는 상기 데이터 버퍼의 크기보다 큰 것을 특징으로 한다.
실시 예에 있어서, 상기 마스터 인터페이스는 상기 마스터 장치로부터 제공되는 쓰기 요청의 우선 순위에 따라 상기 제공된 쓰기 데이터가 전송될 순서를 변경한다.
실시 예에 있어서, 상기 인터커넥터는 상기 마스터 장치로부터 제공되는 요청에 따라 상기 슬레이브 장치로의 전송 경로를 스위칭하는 스위칭 블럭을 더 포함한다.
실시 예에 있어서, 상기 마스터 장치와 상기 인터커넥터 사이에 연결되는 버스 컴포넌트를 더 포함하되, 상기 버스 컴포넌트는 상기 버스 시스템의 데이터 폭을 확장하기 위한 장치인 것을 특징으로 한다.
실시 예에 있어서, 상기 동기화/간략화 블럭은, 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터의 전송 시에 지연 시간이 발생되지 않도록 제어하고, 복수의 쓰기 데이터들이 제공된 경우, 상기 제공된 쓰기 데이터들의 전송 시에 지연 시간이 발생되지 않도록 제어한다.
실시 예에 있어서, 상기 복수의 버스들은 쓰기 요청을 전송하기 위한 쓰기 요청 버스 및 쓰기 데이터를 전송하기 위한 쓰기 데이터 버스를 포함하되, 상기 쓰기 요청 버스와 상기 쓰기 데이터 버스는 전기적으로 분리된다.
본 발명의 실시 예에 따른 마스터 장치와 슬레이브 장치 사이에 연결되는 인터커넥터를 포함하는 버스 시스템의 동작 방법에 있어서, 상기 인터커넥터의 동작 방법은, 상기 마스터 장치로부터 쓰기 요청을 제공받는 단계; 상기 제공된 쓰기 요청에 대응되는 쓰기 데이터가 제공되었는지의 여부를 판단하는 단계; 상기 슬레이브 장치로 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터를 전송하는 단계를 포함하되, 상기 전송하는 단계는 상기 쓰기 요청과 상기 쓰기 요청에 대응되는 쓰기 데이터가 모두 제공된 것으로 판단된 경우에 수행한다.
실시 예에 있어서, 상기 슬레이브 장치로 상기 제공된 쓰기 요청의 전송을 대기하는 단계를 더 포함한다.
실시 예에 있어서, 상기 대기하는 단계는 상기 제공된 쓰기 요청에 대응되는 쓰기 데이터가 제공될 때까지 수행한다.
본 발명의 다른 실시 예에 따른 마스터 장치와 슬레이브 장치 사이에 연결되는 인터커넥터를 포함하는 버스 시스템의 동작 방법에 있어서, 상기 인터커넥터의 동작 방법은, 상기 마스터 장치로부터 쓰기 요청을 제공받는 단계; 상기 마스터 장치로부터 상기 쓰기 요청에 대응되는 쓰기 데이터를 제공받는 단계; 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터의 전송 시점을 판단하는 단계; 상기 슬레이브 장치로 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터를 전송하는 단계를 포함하되, 상기 판단하는 단계는, 상기 마스터 장치로부터 아직 제공되지 않은 쓰기 데이터가 제공될 때까지의 소요 시간을 판단하는 단계; 및 상기 제공된 쓰기 요청에 대응되는 모든 쓰기 데이터를 전송하는데 걸리는 소요 시간을 판단하는 단계를 포함한다.
실시 예에 있어서, 상기 전송하는 단계는 상기 마스터 장치로부터 아직 제공되지 않은 쓰기 데이터가 제공될 때까지의 소요 시간이 상기 제공된 쓰기 요청에 대응되는 모든 쓰기 데이터를 전송하는데 걸리는 소요 시간보다 작거나 또는 같다고 판단된 경우에 수행한다.
실시 예에 있어서, 상기 슬레이브 장치로 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터의 전송을 대기하는 단계를 더 포함하고, 상기 대기하는 단계는 상기 마스터 장치로부터 아직 제공되지 않은 쓰기 데이터가 제공될 때까지의 소요 시간이 상기 제공된 쓰기 요청에 대응되는 모든 쓰기 데이터를 전송하는데 걸리는 소요 시간보다 크다고 판단된 경우에 수행한다.
실시 예에 있어서, 상기 판단하는 단계는 상기 쓰기 요청에 포함된 쓰기 데이터의 크기 정보를 참조하여 판단하는 것을 특징으로 한다.
실시 예에 있어서, 상기 제공된 쓰기 요청을 저장하는 단계; 및 상기 제공된 쓰기 데이터를 저장하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 버스 시스템은 데드-락(dead-lock)을 방지하고 시스템 자원을 효율적으로 사용할 수 있다.
도 1은 본 발명의 실시 예에 따른 버스 시스템을 예시적으로 보여주는 블럭도이다.
도 2는 본 발명의 실시 예에 따른 버스 시스템의 AXI 프로토콜의 채널 구성을 예시적으로 보여주는 블럭도이다.
도 3은 본 발명의 실시 예에 따른 버스 시스템의 트래픽을 예시적으로 보여주는 타이밍 다이어그램이다.
도 4는 도 1에 도시된 인터커넥터를 예시적으로 보여주는 블럭도이다.
도 5는 도 4에 도시된 동기화 블럭을 예시적으로 보여주는 블럭도이다.
도 6은 본 발명의 실시 예에 따른 인터커넥터를 포함하는 버스 시스템의 트래픽을 예시적으로 보여주는 개념도이다.
도 7은 본 발명의 실시 예에 따른 동기화/간략화 블럭의 동작을 예시적으로 보여주는 순서도이다.
도 8 및 도 9는 본 발명의 다른 실시 예에 따른 버스 시스템의 트래픽을 예시적으로 보여주는 개념도이다.
도 10은 본 발명의 다른 실시 예에 따른 동기화/간략화 블럭의 동작을 예시적으로 보여주는 순서도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나, 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 버스 시스템을 예시적으로 보여주는 블럭도이다. 도 1을 참조하면, 본 발명의 실시 예에 따른 버스 시스템은 2개의 마스터 장치들(110, 120), 2개의 슬레이브 장치들(130, 140), 및 인터커넥터(150)를 포함한다. 또한, 인터커넥터(150)는 동기화/간략화 블럭(160)을 포함한다. 설명의 간략화를 위해서, 본 발명의 실시 예에 따른 버스 시스템은 마스터 장치와 슬레이브 장치가 각각 2개인 것을 가정한다.
마스터 장치들(110, 120)은 슬레이브 장치가 동작하도록(예를 들면, 쓰기 동작, 읽기 동작) 명령을 제공하는 장치를 의미한다. 마스터 장치들(110, 120)은, 예를 들면, 중앙 처리 장치(CPU), 마이크로 컨트롤러, 또는 마이크로 프로세서 등을 포함할 수 있다. 슬레이브 장치들(130, 140)은 마스터로부터 제공받은 명령에 응답하여, 제공받은 명령을 수행하는 장치를 의미한다. 슬레이브 장치들(130, 140)은, 예를 들면, 휘발성 메모리 장치, 불휘발성 메모리 장치, 또는 메모리 장치를 제어하는 메모리 컨트롤러 등을 포함할 수 있다.
인터커넥터(150)는 마스터 장치들(110, 120)과 슬레이브 장치들(130, 140) 사이에 연결된다. 인터커넥터(150)는 마스터 장치들(110, 120)로부터 슬레이브 장치들(130, 140)로 제공되는 트래픽(traffic), 또는 슬레이브 장치들(130, 140)로부터 마스터 장치들(110, 120)로 제공되는 트래픽을 제어한다. 예를 들면, 인터커넥터(150)의 트래픽 제어는, 트래픽의 우선 순위에 따라 트래픽 전송 순서를 변경하는 중재(arbitration), 트래픽 전송 경로를 설정하는 디코딩(decoding), 그리고 마스터 장치들(110, 120) 또는 슬레이브 장치들(130, 140)의 동작 성능에 따라 트래픽 전송을 완충하는 버퍼링(buffering)을 포함할 수 있다.
인터커넥터(150)는 마스터 장치들(110, 120)로부터 슬레이브 장치들(130, 140)로 제공되는 트래픽을 제어하기 위해서 동기화/간략화 블럭(160)을 포함한다. 동기화/간략화 블럭(160)은 마스터 장치들(110, 120)이 슬레이브 장치들(130, 140)로 쓰기 동작을 요청하는 경우, 쓰기 요청에 대한 트래픽(이하, '쓰기 요청 트래픽'이라 칭함)과 쓰기 데이터에 대한 트래픽(이하, '쓰기 데이터 트래픽'이라 칭함)을 제어한다. 예를 들면, 동기화/간략화 블럭(160)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽의 전송을 동기시킬 수 있다. 또한, 동기화/간략화 블럭(160)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 전송할 때 전송 지연이 발생하지 않도록, 복수의 쓰기 데이터 트래픽들을 전송할 때 전송 지연이 발생하지 않도록 제어할 수 있다.
마스터 장치들(110, 120) 각각은 복수의 버스들(bus[n])을 통해 인터커넥터(150)와 연결된다. 또한, 슬레이브 장치들(130, 140) 각각은 복수의 버스들(bus[n])을 통해 인터커넥터(150)와 연결된다. 마스터 장치들(110, 120)은 복수의 버스들(bus[n])을 통해 트래픽을 슬레이브 장치들(130, 140)로 제공하고, 슬레이브 장치들(130, 140) 또한 복수의 버스들(bus[n])을 통해 트래픽을 마스터 장치들(110, 120)로 제공한다.
마스터 장치들(110, 120)과 슬레이브 장치들(130, 140)이 버스를 통해 연결되는 버스 시스템에 있어서 트래픽의 전송은 버스 시스템의 정해진 프로토콜(protocol)에 따라 수행된다. 본 발명의 실시 예에 있어서, 버스 시스템의 프로토콜은 AMBA(advanced microcontroller bus architecture) 버스 시스템의 AXI(advanced extensible interface) 프로토콜로 구성될 것이다. 이러한 AXI 프로토콜은 도2 및 도 3을 통하여 상세히 설명될 것이다.
도 2는 본 발명의 실시 예에 따른 버스 시스템의 AXI 프로토콜의 채널 구성을 예시적으로 보여주는 블럭도이다. 도 2를 참조하면, 설명의 간략화를 위해서 마스터 장치(110)와 슬레이브 장치(130) 사이의 채널 구성만을 도시하였다.
본 발명의 실시 예에 있어서, 버스 시스템은 ARM(advanced RISC machine)사에서 개발한 AMBA(advanced microcontroller bus architecture) 버스 시스템으로 구성될 것이다. 또한, AMBA 버스 시스템의 프로토콜들 중에서 AXI(advanced extensible interface) 프로토콜에 따라 마스터 장치로부터 슬레이브 장치로 트래픽이 제공될 것이다.
AXI 프로토콜에 있어서, 트래픽의 종류에 따라 분류되는 버스 집합(bus set)을 채널(channel)이라 정의한다. 채널은 트래픽의 종류에 따라 물리적으로 분리되어 구성될 것이다. 예를 들면, 채널은 쓰기 요청 채널(write request channel), 쓰기 데이터 채널(write data channel), 쓰기 응답 채널(write response channel), 읽기 요청 채널(read request channel), 및 읽기 데이터 채널(read data channel)을 포함할 수 있다. 또한, 채널들은 유효(valid) 신호, 준비(ready) 신호, 및 페이로드(payload) 신호들을 각각 전송할 것이다. 여기에서, 페이로드(payload) 신호는 식별자(ID), 주소, 데이터, 데이터 크기 또는 응답 신호 등을 포함할 수 있다.
본 발명의 실시 예에 있어서, 채널은 트래픽의 종류에 따라 물리적으로 분리되기 때문에, 쓰기 요청 채널(AW 채널), 쓰기 데이터 채널(W 채널), 및 쓰기 응답 채널(B 채널)은 서로 분리되어 구성될 것이다. 한편, 본 발명의 실시 예에 있어서, AMBA 버스 시스템의 AXI 프로토콜을 예시적으로 설명하였지만, 본 발명의 기술적 특징이 쓰기 제어 채널, 쓰기 데이터 채널, 및 쓰기 응답 채널이 분리된 버스 시스템에 적용될 수 있음은 잘 이해될 것이다.
도 3은 본 발명의 실시 예에 따른 버스 시스템의 트래픽을 예시적으로 보여주는 타이밍 다이어그램이다. 도 3을 참조하면, 쓰기 요청 채널(AW 채널), 쓰기 데이터 채널(W 채널), 및 쓰기 응답 채널(B 채널)을 통해 마스터 장치로부터 슬레이브 장치로 제공되는 트래픽을 보여준다.
도 2에서 설명된 바와 같이, 채널들(쓰기 요청 채널, 쓰기 데이터 채널, 및 쓰기 응답 채널) 각각을 통해 제공되는 트래픽은 식별자(ID)를 포함한다(페이로드 신호에 포함된 식별자). 예를 들면, 마스터 장치는 식별자0(ID0)을 갖는 쓰기 요청 트래픽을 제공한 후, 이 쓰기 요청 트래픽에 대응되는 식별자0(ID0)을 갖는 쓰기 데이터 트래픽을 제공할 수 있다. 그리고 슬레이브 장치는 식별자0(ID0)을 갖는 쓰기 요청 트래픽에 응답하여, 식별자0(ID0)을 갖는 쓰기 응답 트래픽을 제공할 수 있다. 또한, 마스터 장치는 쓰기 요청 트래픽을 제공한 순서대로 쓰기 데이터 트래픽을 제공할 것이다.
한편, 마스터 장치는 앞서 제공한 쓰기 요청 트래픽에 대응되는 쓰기 데이터 트래픽을 제공하는 동안, 다른 쓰기 요청 트래픽을 제공할 수 있다. 즉, 도 3을 참조하면, 마스터 장치는 식별자0(ID0)을 갖는 쓰기 데이터 트래픽을 제공하는 동안, 식별자3(ID3)을 갖는 쓰기 요청 트래픽을 제공할 수 있다. 따라서, 동기화/간략화 블럭(도 1의 160 참조)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽의 전송을 동기시킬 것이다. 또한, 동기화/간략화 블럭(160)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 전송할 때 전송 지연이 발생하지 않도록, 그리고 복수의 쓰기 데이터 트래픽들을 전송할 때 전송 지연이 발생하지 않도록 제어할 것이다.
도 4는 도 1에 도시된 인터커넥터를 예시적으로 보여주는 블럭도이다. 도 4를 참조하면, 인터커넥터(150)는 슬레이브 인터페이스0(slave interface0, 151), 슬레이브 인터페이스1(152), 마스터 인터페이스0(master interface0, 153), 마스터 인터페이스1(154), 스위치 블럭(155), 및 동기화/간략화 블럭(160)을 포함한다. 또한, 동기화/간략화 블럭(160)은 슬레이브 인터페이스들(151, 152) 각각에 할당되는 동기화/간략화 블럭들(161, 165)을 포함한다.
도 1에 있어서, 설명의 간략화를 위해서 마스터 장치와 슬레이브 장치가 각각 2개인 버스 시스템(100)을 가정하였다. 따라서, 도 4에 있어서, 2개의 마스터 장치들 각각에 연결되는 슬레이브 인터페이스 역시 2개이고, 2개의 슬레이브 장치들 각각에 연결되는 마스터 인터페이스 역시 2개인 것을 가정한다.
도 1 및 도 4를 참조하면, 인터커넥터(150)는 마스터 장치들(110, 120) 및 슬레이브 장치들(130, 140)을 연결한다. 슬레이브 인터페이스0(151)은 마스터 장치0(110)에, 슬레이브 인터페이스1(152)은 마스터 장치1(120)에, 마스터 인터페이스0(153)은 슬레이브 장치0(130)에, 그리고 마스터 인터페이스1(154)은 슬레이브 장치1(140)에 각각 연결된다. 슬레이브 인터페이스들(151, 152) 및 마스터 인터페이스들(153, 154) 각각은 마스터 장치들(110, 120) 및 슬레이브 장치들(130, 140) 각각의 채널과 연결되는 채널 포트들(AW, W, B, AR, R)을 포함한다.
슬레이브 인터페이스들(151, 152) 및 마스터 인터페이스들(153, 154)은, 트래픽의 우선 순위에 따라 트래픽 전송 순서를 변경하는 중재(arbitration) 동작, 그리고 마스터 장치들(110, 120) 또는 슬레이브 장치들(130, 140)의 동작 성능에 따라 트래픽 전송을 완충하는 버퍼링(buffering) 동작을 수행할 것이다. 또한, 슬레이브 인터페이스들(151, 152), 마스터 인터페이스들(153, 154), 및 스위치 로직(155)은 트래픽 전송 경로를 디코딩(decoding)하여 전송 경로를 스위칭하는 동작을 수행할 것이다.
동기화/간략화 블럭(160)은 복수의 슬레이브 인터페이스들 각각에 연결되는 동기화/간략화 블럭들을 포함할 것이다. 즉, 동기화/간략화 블럭(160)은 슬레이브 인터페이스0(151)에 연결되는 동기화/간략화 블럭0(161) 그리고 슬레이브 인터페이스1(152)에 연결되는 동기화/간략화 블럭1(165)을 포함한다.
동기화/간략화 블럭들(161, 165)은 마스터 장치들(110, 120)로부터 슬레이브 장치들(130, 140)로 제공되는 트래픽을 제어한다. 즉, 동기화/간략화 블럭0(161)은 마스터 장치0(110)으로부터 슬레이브 장치들(130, 140)로 제공되는 트래픽을 제어한다. 그리고 동기화/간략화 블럭1(165)은 마스터 장치1(120)로부터 슬레이브 장치들(130, 140)로 제공되는 트래픽을 제어한다.
예를 들면, 동기화/간략화 블럭0(161)은 마스터 장치0(110)이 슬레이브 장치들(130, 140)로 쓰기 동작을 요청하는 경우, 쓰기 요청 트래픽과 쓰기 데이터 트래픽의 전송을 동기시킬 것이다. 즉, 동기화/간략화 블럭0(161)은 마스터 장치0(110)으로부터 쓰기 요청 트래픽과 쓰기 데이터 트래픽이 모두 제공되면, 제공된 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 마스터 인터페이스들(153, 154) 각각에 전송할 것이다.
또한, 동기화/간략화 블럭0(161)은 마스터 장치0(110)이 슬레이브 장치들(130, 140)로 쓰기 동작을 요청하는 경우, 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 전송할 때 전송 지연이 발생하지 않도록, 복수의 쓰기 데이터 트래픽들을 전송할 때 전송 지연이 발생하지 않도록 제어할 것이다. 예를 들면, 동기화/간략화 블럭0(161)은 쓰기 요청 트래픽이 전송된 직후에 쓰기 데이터 트래픽이 마스터 인터페이스들(153, 154) 각각에 전송되도록 전송 시간을 제어할 것이다. 그리고 동기화/간략화 블럭0(161)은 복수의 쓰기 데이터 트래픽들이 지연 시간없이 연속적으로 마스터 인터페이스들(153, 154)에 전송되도록 전송 시간을 제어할 것이다. 즉, 동기화/간략화 블럭0(161)은 쓰기 요청 트래픽 및 쓰기 데이터 트래픽을 버퍼링하고, 버퍼링된 트래픽들이 지연 시간없이 전송되도록 제어할 것이다.
동기화/간략화 블럭1(165)은 동기화/간략화 블럭0(161)과 동일한 동작을 수행할 것이다. 즉, 동기화/간략화 블럭1(165)은 마스터 장치1(120)이 슬레이브 장치들(130, 140)로 쓰기 동작을 요청하는 경우, 쓰기 요청 트래픽과 쓰기 데이터 트래픽의 전송을 동기시킬 것이다. 또한, 동기화/간략화 블럭1(165)은 마스터 장치1(120)이 슬레이브 장치들(130, 140)로 쓰기 동작을 요청하는 경우, 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 전송할 때 전송 지연이 발생하지 않도록, 복수의 쓰기 데이터 트래픽들을 전송할 때 전송 지연이 발생하지 않도록 제어할 것이다.
한편, 동기화/간략화 블럭들(161, 165)은 마스터 장치들(110, 120)로부터 슬레이브 장치들(130, 140)로 제공되는 트래픽을 제어하지 않고, 우회(bypass)시킬 수 있다. 즉, 동기화/간략화 블럭들(161, 165)은 마스터 장치들(110, 120)로부터 제공되는 트래픽을 동기시키거나 버퍼링시키지 않고, 즉시 전송할 수 있다. 동기화/간략화 블럭들(161, 165)은 마스터 장치들(110, 120)이 버스트 모드(burst mode)로 트래픽을 제공하지 않는 경우에 이러한 바이패스 동작을 수행할 것이다.
반면, 동기화/간략화 블럭들(161, 165)은 마스터 장치들(110, 120)이 버스트 모드(burst mode)로 트래픽을 제공하는 경우에 트래픽을 동기시키거나 버퍼링시킬 것이다. 동기화/간략화 블럭들(161, 165)은 이러한 동작을 위해서 트래픽을 제어하기 위한 제어 유닛과 버퍼들을 포함할 수 있다. 동기화/간략화 블럭들(161, 165)의 구성은 도 5를 참조하여 상세히 설명될 것이다.
도 5는 도 4에 도시된 동기화/간략화 블럭을 예시적으로 보여주는 블럭도이다. 동기화/간략화 블럭들(161, 165) 각각의 구성은 동일할 것이다. 따라서, 도 5에서는 설명의 간략화를 위해서 도 4의 동기화/간략화 블럭0(161)의 구성만을 예시적으로 도시하였다. 도 5를 참조하면, 동기화/간략화 블럭0(161)은 제어 유닛(162), 쓰기 요청 채널(AW 채널) 버퍼 셋(163), 및 쓰기 데이터 채널(W 채널) 버퍼 셋(164)을 포함한다.
쓰기 요청 채널 버퍼 셋(163)은 마스터 장치0(110)으로부터 제공된 쓰기 요청 트래픽을 임시 저장한다. 쓰기 데이터 채널 버퍼 셋(164)은 마스터 장치0(110)으로부터 제공된 쓰기 데이터 트래픽을 임시 저장한다. 쓰기 요청 채널 버퍼 셋(163) 및 쓰기 데이터 채널 버퍼 셋(164)의 버퍼 크기는 마스터 장치0(110)의 버스트 모드(burst mode)에 따라 변경될 수 있다. 예를 들면, 마스터 장치0(110)의 버스트 모드 동작 파라미터인 버스트 길이(burst length)가 크게 설정된다면, 쓰기 요청 채널 버퍼 셋(163) 및 쓰기 데이터 채널 버퍼 셋(164)의 버퍼 크기도 커질 것이다.
제어 유닛(162)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽의 전송을 동기시키기 위해서, 동기화/간략화 블럭(161)에 제공된 쓰기 요청 트래픽과 이에 대응되는 쓰기 데이터 트래픽이 모두 제공되었는지를 판단한다. 제어 유닛(162)은 쓰기 요청 트래픽과 이에 대응되는 쓰기 데이터 트래픽 모두가 제공된 것으로 판단된 경우에만 두 트래픽이 마스터 인터페이스들(도 4의 153, 154 참조)로 전송되도록 쓰기 요청 채널 버퍼 셋(163) 및 쓰기 데이터 채널 버퍼 셋(164)을 제어한다. 즉, 제어 유닛(162)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽의 전송을 동기시킨다.
반면, 제어 유닛(162)은, 쓰기 요청 트래픽 만이 제공되고 이에 대응되는 쓰기 데이터 트래픽이 제공되지 않은 것으로 판단된 경우에, 대응되는 쓰기 데이터 트래픽이 제공될 때까지 쓰기 요청 트래픽이 전송되지 않도록 쓰기 요청 채널 버퍼 셋(163)을 제어한다.
한편, 제어 유닛(162)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽들을 지연 시간없이 연속적으로 전송하기 위해서, 동기화/간략화 블럭(161)에 제공된 쓰기 요청 트래픽을 전송할 시점을 판단한다. 제어 유닛(162)은 제 1 예상 소요 시간과 제 2 예상 소요 시간을 비교하여 쓰기 요청 트래픽을 전송할 시점을 판단할 것이다. 여기에서, 제 1 예상 소요 시간은 마스터 장치0(110)으로부터 아직 제공되지 않은 쓰기 데이터 트래픽이 제공될 때까지의 예상 소요 시간(예를 들면, 싸이클 수)이다. 그리고 제 2 예상 소요 시간은 전송해야 할 쓰기 데이터 트래픽을 전송하는데 걸리는 예상 소요 시간이다.
제어 유닛(162)은 제 1 예상 소요 시간이 제 2 예상 소요 시간보다 작거나 또는 같다고 판단되는 경우에, 쓰기 요청 트래픽이 마스터 인터페이스들(153, 154)로 전송되도록 쓰기 요청 채널 버퍼 셋(163)을 제어한다. 그리고 제어 유닛(162)은 쓰기 요청 트래픽이 전송된 직후, 제공된 쓰기 데이터 트래픽이 연속적으로 전송되도록 쓰기 데이터 채널 버퍼 셋(164)을 제어한다.
반면, 제어 유닛(162)은 제 1 예상 소요 시간이 제 2 예상 소요 시간보다 크다고 판단되는 경우에, 쓰기 요청 트래픽과 이에 대응되는 쓰기 데이터 트래픽이 전송되지 않도록 쓰기 요청 채널 버퍼 셋(163) 및 쓰기 데이터 채널 버퍼 셋(164)을 제어한다.
도 6은 본 발명의 실시 예에 따른 인터커넥터를 포함하는 버스 시스템의 트래픽을 예시적으로 보여주는 개념도이다. 도 6을 참조하면, 마스터 장치0(도 1의 110)이 동기화/간략화 블럭(160)을 포함하는 인터커넥터(150)를 통해 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 슬레이브 장치들(도 1의 130, 140) 각각에 제공하는 트래픽을 보여준다. 또한, 마스터 장치1(도 1의 120)이 동기화/간략화 블럭(160)을 포함하는 인터커넥터(150)를 통해 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 슬레이브 장치들(130, 140) 각각에 제공하는 트래픽을 보여준다.
동기화/간략화 블럭(160)은, 마스터 장치들(110, 120)이 슬레이브 장치0(130)으로 제공하는 트래픽을 제어하기 위한 동기화/간략화 블럭0(161) 그리고 마스터 장치들(110, 120)이 슬레이브 장치1(140)로 제공하는 트래픽을 제어하기 위한 동기화/간략화 블럭1(165)을 포함한다.
본 발명의 실시 예에 따른 동기화/간략화 블럭들(161, 165)은 슬레이브 인터페이스들(151, 152)로부터 쓰기 요청 트래픽과 쓰기 데이터 트래픽이 모두 제공되면, 제공된 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 마스터 인터페이스들(153, 154) 각각에 전송한다. 이러한 동작을 위해서, 동기화/간략화 블럭0(161)은 마스터 인터페이스들(153, 154) 각각에 할당되는 쓰기 요청 채널 버퍼 셋(163) 및 쓰기 데이터 채널 버퍼 셋(164)을 포함할 것이다. 또한, 동기화/간략화 블럭1(165)은 마스터 인터페이스들(153, 154) 각각에 할당되는 쓰기 요청 채널 버퍼 셋(167) 및 쓰기 데이터 채널 버퍼 셋(168)을 포함할 것이다.
본 발명의 실시 예에 있어서, 마스터 인터페이스들(153, 154) 각각에 할당되는 쓰기 요청 채널 버퍼 셋들(163, 167)은 2단으로 구성되며, 쓰기 데이터 채널 버퍼 셋들(164, 168)은 1단으로 구성되는 것을 가정한다. 또한, 쓰기 요청 채널 버퍼 셋들(163, 167) 및 쓰기 데이터 채널 버퍼 셋들(164, 168) 각각은 데이터 폭(data width)과 버스트 길이(burst length)의 곱에 해당하는 크기를 가질 것이다.
마스터 장치0(110)은 슬레이브 장치들(130, 140)로 제공할 쓰기 요청 트래픽들(타원형으로 도시된 0-1, 0-2, 0-3, 및 0-4)과 이에 대응되는 쓰기 데이터 트래픽들(마름모형으로 도시된 0-1, 0-2, 0-3, 및 0-4)을 슬레이브 인터페이스0(151)으로 제공한다. 마스터 장치1(120)은 슬레이브 장치들(130, 140)로 제공할 쓰기 요청 트래픽들(타원형으로 도시된 1-1, 1-2, 1-3, 및 1-4)과 이에 대응되는 쓰기 데이터 트래픽들(마름모형으로 도시된 1-1, 1-2, 1-3, 및 1-4)을 슬레이브 인터페이스1(152)로 제공한다.
슬레이브 인터페이스들(151, 152) 각각은 마스터 장치들(110, 120)로부터 제공된 쓰기 요청 트래픽들과 쓰기 데이터 트래픽들에 대해서 중재 동작과 버퍼링 동작을 수행할 수 있다. 본 발명의 실시 예에 있어서, 슬레이브 인터페이스들(151, 152)은 쓰기 요청 트래픽들과 이에 대응되는 쓰기 데이터 트래픽들을 순서대로(예를 들면, 트래픽의 번호가 낮은 순서대로) 동기화/간략화 블럭(160)에 제공할 것이다.
도 3에서 설명된 바와 같이, 마스터 장치들(110, 120)은 슬레이브 인터페이스들(151, 152)을 통해 쓰기 요청 트래픽을 대응되는 쓰기 데이터 트래픽보다 먼저 제공할 수 있다. 따라서, 마스터 장치들(110, 120)로부터 제공된 쓰기 요청 트래픽들은 동기화/간략화 블럭들(161, 165) 각각의 쓰기 요청 채널 버퍼 셋들(163, 167)에 저장될 것이다.
만약, 동기화/간략화 블럭들(161, 165)이 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽을 동기시켜 전송하지 않고 제공된 쓰기 요청 트래픽을 먼저 전송한다면, 도시된 바와 같이 마스터 인터페이스들(153, 154)은 데드-락(dead-lock) 상태에 빠지게된다(데드-락 조건 참조). 예를 들면, 마스터 인터페이스들(153, 154)은 전송된 쓰기 요청 트래픽들에 대한 중재 동작을 수행하여 쓰기 데이터 트래픽이 전송되어야 할 우선 순위를 결정한다. 이에 따라, 마스터 인터페이스들(153, 154)은 쓰기 데이터 채널 버퍼 셋들(164, 168)에 아직 저장되지 않은 쓰기 데이터 트래픽(쓰기 데이터 트래픽(1-4) 및 쓰기 데이터 트래픽(0-4))을 기다리게 된다. 이러한, 데드-락 상태는 한정된 자원(resource)으로 인해서 쓰기 데이터 채널 버퍼 셋들(164, 168)의 크기가 크지 못한 경우(예를 들면, 쓰기 요청 채널 버퍼 셋들은 2단으로 구성되고, 쓰기 데이터 채널 버퍼 셋들은 1단으로 구성되는 경우)에 발생될 수 있다.
본 발명의 실시 예에 따르면, 동기화/간략화 블럭0(161)은 마스터 인터페이스0(153)으로 전송되는 쓰기 요청 트래픽과 이에 대응되는 쓰기 데이터 트래픽을 동기시켜 전송할 것이다. 또한, 동기화/간략화 블럭1(165)은 마스터 인터페이스1(154)로 전송되는 쓰기 요청 트래픽과 이에 대응되는 쓰기 데이터 트래픽을 동기시켜 전송할 것이다.
동기화/간략화 블럭0(161)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽 모두가 제공되고 쓰기 요청 채널 버퍼 셋(163) 및 쓰기 데이터 채널 버퍼 셋(164)에 저장되면, 제공된 두 트래픽을 전송하는 동기화 동작을 수행한다. 따라서, 동기화/간략화 블럭0(161)은 슬레이브 인터페이스0(151)으로부터 제공된 쓰기 요청 트래픽(0-1)과 이에 대응되는 쓰기 데이터 트래픽(0-1) 그리고 슬레이브 인터페이스1(152)로부터 제공된 쓰기 요청 트래픽(1-2)과 이에 대응되는 쓰기 데이터 트래픽(1-2)을 전송 대기 시키지 않고 바로 전송할 것이다.
이 때, 동기화/간략화 블럭0(161)은 쓰기 요청 트래픽이 제공된 순서대로 트래픽들(쓰기 요청 트래픽 및 대응되는 쓰기 데이터 트래픽)을 마스터 인터페이스0(153)으로 전송할 것이다. 도 6에 있어서, 슬레이브 인터페이스1(152)로부터 제공된 쓰기 요청 트래픽(1-2)과 이에 대응되는 쓰기 데이터 트래픽(1-2)이 먼저 전송되는 것으로 도시되었다. 만약, 쓰기 요청 트래픽(0-1)과 쓰기 요청 트래픽(1-1)이 슬레이브 인터페이스들(151, 152)로부터 동시에 제공된다면, 동기화/간략화 블럭0(161)은 마스터 인터페이스0(153)의 중재 정책에 따라 전송 순서를 결정하여 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽을 전송할 수 있다.
동기화/간략화 블럭1(165)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽 모두가 제공되고 쓰기 요청 채널 버퍼 셋(167) 및 쓰기 데이터 채널 버퍼 셋(168)에 저장되면, 제공된 두 트래픽을 전송하는 동기화 동작을 수행한다. 따라서, 동기화/간략화 블럭1(165)은 슬레이브 인터페이스0(151)으로부터 제공된 쓰기 요청 트래픽(0-2)과 이에 대응되는 쓰기 데이터 트래픽(0-2) 그리고 슬레이브 인터페이스1(152)로부터 제공된 쓰기 요청 트래픽(1-1)과 이에 대응되는 쓰기 데이터 트래픽(1-1)을 전송 대기 시키지 않고 바로 전송할 것이다.
이 때, 동기화/간략화 블럭1(165)은 쓰기 요청 트래픽이 제공된 순서대로 트래픽들(쓰기 요청 트래픽 및 대응되는 쓰기 데이터 트래픽)을 마스터 인터페이스1(154)로 전송할 것이다. 도 6에 있어서, 슬레이브 인터페이스0(151)으로부터 제공된 쓰기 요청 트래픽(0-2)과 이에 대응되는 쓰기 데이터 트래픽(0-2)이 먼저 전송되는 것으로 도시되었다. 만약, 쓰기 요청 트래픽(0-2)과 쓰기 요청 트래픽(1-1)이 슬레이브 인터페이스들(151, 152)로부터 동시에 제공된다면, 동기화/간략화 블럭1(165)은 마스터 인터페이스1(154)의 중재 정책에 따라 전송 순서를 결정하여 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽을 전송할 수 있다.
동기화/간략화 블럭1(165)은, 1단으로 구성된 쓰기 데이터 채널 버퍼 셋(168)이 비어있기 때문에, 슬레이브 인터페이스1(152)로부터 제공되는 쓰기 데이터 트래픽(1-3)을 쓰기 데이터 채널 버퍼 셋(168)에 저장할 것이다. 그 후에, 동기화/간략화 블럭1(165)은 제공된 쓰기 요청 트래픽(1-3) 및 쓰기 데이터 트래픽(1-3)을 전송할 것이다. 한편, 동기화/간략화 블럭1(165)은, 쓰기 요청 트래픽(0-4)이 슬레이브 인터페이스0(151)으로부터 제공되었지만 대응되는 쓰기 데이터 트래픽(0-4)이 제공되지 않았기 때문에, 쓰기 요청 트래픽(0-4)을 전송하지 않고 전송 대기 시킬 것이다.
마찬가지로, 동기화/간략화 블럭0(161)은, 1단으로 구성된 쓰기 데이터 채널 버퍼 셋(164)이 비어있기 때문에, 슬레이브 인터페이스1(152)로부터 제공되는 쓰기 데이터 트래픽(1-4)을 쓰기 데이터 채널 버퍼 셋(164)에 저장할 것이다. 이러한 쓰기 데이터 트래픽(1-4)은 쓰기 데이터 트래픽(1-3)이 동기화/간략화 블럭1(165)로 제공된 후에 슬레이브 인터페이스1(152)로부터 제공될 것이다. 동기화/간략화 블럭0(161)은 제공된 쓰기 요청 트래픽(1-4) 및 쓰기 데이터 트래픽(1-4)을 전송할 것이다.
그리고, 동기화/간략화 블럭0(161)은 슬레이브 인터페이스0(151)로부터 제공되는 쓰기 데이터 트래픽(0-3)을 쓰기 데이터 채널 버퍼 셋(164)에 저장할 것이다. 그 후에, 동기화/간략화 블럭0(161)은 전송 대기 되었던 쓰기 요청 트래픽(0-3) 및 쓰기 데이터 트래픽(0-3)을 전송할 것이다. 마찬가지로, 동기화/간략화 블럭1(165)은, 쓰기 데이터 트래픽(0-3)이 동기화/간략화 블럭0(161)으로 제공된 후에 제공되는 쓰기 데이터 트래픽(0-4)을 쓰기 데이터 채널 버퍼 셋(168)에 저장할 것이다. 그 후에, 동기화/간략화 블럭1(165)은 전송 대기 되었던 쓰기 요청 트래픽(0-4) 및 쓰기 데이터 트래픽(0-4)을 전송할 것이다.
도 7은 본 발명의 실시 예에 따른 동기화/간략화 블럭의 동작을 예시적으로 보여주는 순서도이다. 도 4 및 도 7을 참조하여 동기화/간략화 블럭의 동작이 상세히 설명될 것이다.
동기화/간략화 블럭(160)은 마스터 장치로부터 쓰기 요청 트래픽을 제공받는다(S110 단계). 제공되는 쓰기 요청 트래픽은 인터커넥터(150)의 슬레이브 인터페이스들(151, 152)을 통해 동기화/간략화 블럭(160)에 제공될 것이다. 동기화/간략화 블럭(160)은 제공된 쓰기 요청 트래픽을 쓰기 요청 채널 버퍼 셋에 임시 저장한다(S120 단계). 동기화/간략화 블럭(160)은 제공된 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽이 모두 제공되었는지를 판단한다(S130 단계). 판단 결과에 따라 동기화/간략화 블럭(160)의 동작 순서는 분기될 것이다.
쓰기 요청 트래픽 만이 제공되고 대응되는 쓰기 데이터 트래픽이 제공되지 않은 것으로 판단된 경우(아니오), 동기화/간략화 블럭(160)은 제공된 쓰기 요청 트래픽을 슬레이브 장치로 전송하지 않고 대기한다(S140 단계). 이러한 동기화/간략화 블럭(160)의 전송 대기는 제공된 쓰기 요청 트래픽에 대응되는 쓰기 데이터 트래픽이 제공될 때까지 유지될 것이다.
반면, 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽 모두가 제공된 것으로 판단된 경우(예), 동기화/간략화 블럭(160)은 제공된 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽을 슬레이브 장치로 전송한다(S150 단계). 동기화/간략화 블럭(160)으로부터 전송되는 두 트래픽들(쓰기 요청 트래픽 및 쓰기 데이터 트래픽)은 인터커넥터(150)의 마스터 인터페이스들(153, 154)을 통해 슬레이브 장치로 전송될 것이다.
본 발명의 실시 예에 따르면, 동기화/간략화 블럭(160)은 마스터 장치로부터 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽 모두가 제공된 경우, 두 트래픽들을 슬레이브 장치로 전송할 것이다. 이러한 동기화/간략화 블럭(160)의 동기화 동작은 인터커넥터(150)에 포함되는 버퍼 메모리의 크기를 줄일 수 있을 뿐만 아니라 인터커넥터(150)의 데드-락 상태를 방지할 수 있다.
도 8 및 도 9는 본 발명의 다른 실시 예에 따른 버스 시스템의 트래픽을 예시적으로 보여주는 개념도이다. 도 8을 참조하면, 본 발명의 다른 실시 예에 따른 버스 시스템(200)은 마스터 장치(210), 버스 컴포넌트(220), 슬레이브 장치(230), 및 인터커넥터(250)를 포함한다. 설명의 간략화를 위해서, 본 발명의 다른 실시 예에 따른 버스 시스템은 마스터 장치와 슬레이브 장치가 각각 1개인 것을 가정한다.
버스 컴포넌트(220)는 마스터 장치(210)와 인터커넥터(250) 사이에 연결된다. 버스 컴포넌트(220)는 버스 시스템의 데이터 폭(data width)을 확장하기 위한 업사이저(upsizer) 또는 버스 시스템의 클럭 속도를 증가시키기 위한 비동기 브릿지(asynchronous bridge) 등으로 구성될 수 있다. 본 발명의 다른 실시 예에 따른 버스 시스템(200)에서는 버스 컴포넌트(220)가 업사이저(upsizer)로 구성되는 것을 가정할 것이다.
인터커넥터(250)는 슬레이브 인터페이스(251), 마스터 인터페이스(253), 및 동기화/간략화 블럭(255)을 포함한다. 슬레이브 인터페이스(251) 및 마스터 인터페이스(253) 각각은 도 4에서 설명된 슬레이브 인터페이스(151 또는 152) 및 마스터 인터페이스(153 또는 154)와 동일한 구성을 가질 뿐만 아니라, 동일한 동작을 수행할 것이다. 따라서, 설명의 간략화를 위하여 상세한 설명은 생략될 것이다.
본 발명의 다른 실시 예에 따른 동기화/간략화 블럭(255)은 도 5에서 설명된 동기화/간략화 블럭(161)과 동일한 구성을 갖는다. 즉, 동기화/간략화 블럭(255)은 제어 유닛(도 5의 162 참조), 쓰기 요청 채널 버퍼 셋(도 5의 163 참조), 및 쓰기 데이터 채널 버퍼 셋(도 5의 164 참조)을 포함한다. 동기화/간략화 블럭(255)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽을 전송할 때 전송 지연이 발생하지 않도록 트래픽 전송을 제어할 것이다. 또한, 동기화/간략화 블럭(255)은 복수의 쓰기 데이터 트래픽들을 전송할 때 전송 지연이 발생하지 않도록 트래픽 전송을 제어할 것이다.
도 8을 참조하면, 마스터 장치(210)는 64비트의 트래픽을 제공한다. 반면, 인터커넥터(250) 및 슬레이브 장치(230)는 128비트의 트래픽을 제공한다. 따라서, 마스터 장치(210)와 인터커넥터(250) 사이에 트래픽의 크기를 변환하기 위한 업사이저(220)가 연결될 것이다. 이러한 구성에 있어서, 트래픽의 흐름이 도 9에 도시되었다.
도 9를 참조하면, 마스터 장치(210)는 64비트 크기로 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽을 제공할 것이다(지점①의 트래픽 흐름 참조). 반면, 업사이저(220)는, 마스터 장치(210)로부터 제공된 64비트 크기의 트래픽을 128비트 크기의 트래픽으로 변경하여 슬레이브 인터페이스(251)로 제공한다. 따라서, 업사이저(220)는 지연 시간이 포함된 쓰기 데이터 트래픽들을 슬레이브 인터페이스(251)로 제공할 것이다(지점②의 트래픽 흐름 참조). 만약, 동기화/간략화 블럭(255)이 전송 지연이 발생하지 않도록 트래픽을 제어하지 않는다면, 이러한 지연 시간으로 인해 버스 시스템의 속도는 느려질 수 있다.
본 발명의 다른 실시 예에 다른 동기화/간략화 블럭(255)은 쓰기 요청 트래픽이 전송된 직후에 쓰기 데이터 트래픽이 마스터 인터페이스(253)에 전송되도록 전송 시간을 제어할 것이다. 그리고 동기화/간략화 블럭(255)은 복수의 쓰기 데이터 트래픽들이 지연 시간없이 연속적으로 마스터 인터페이스(253)에 전송되도록 전송 시간을 제어할 것이다.
예를 들면, 동기화/간략화 블럭(255)은 슬레이브 인터페이스(251)로부터 제공된 쓰기 요청 트래픽을 쓰기 요청 채널 버퍼 셋에 임시 저장하고 쓰기 데이터 트래픽을 쓰기 데이터 채널 버퍼 셋에 임시 저장할 것이다. 동기화/간략화 블럭(255)은 쓰기 요청 채널 버퍼 셋 및 쓰기 데이터 채널 버퍼 셋에 버퍼링된 트래픽들이 지연 시간없이 전송되도록 제어할 것이다.
동기화/간략화 블럭(255)은 제 1 예상 소요 시간과 제 2 예상 소요 시간을 비교하고, 비교 결과에 따라 버퍼링된 트래픽들(쓰기 요청 트래픽 및 쓰기 데이터 트래픽)을 전송할 시점을 판단할 것이다. 여기에서, 제 1 예상 소요 시간은 슬레이브 인터페이스(251)로부터 아직 제공되지 않은 쓰기 데이터 트래픽이 제공될 때까지의 예상 소요 시간일 것이다. 그리고 제 2 예상 소요 시간은 마스터 인터페이스(253)로 전송해야 할 쓰기 데이터 트래픽을 전송하는데 걸리는 소요 시간일 것이다. 이러한 소요 시간들은 쓰기 요청 트래픽이 포함하고 있는 쓰기 데이터의 크기 정보를 참조하여 판단할 수 있을 것이다.
예시적으로, 동기화/간략화 블럭(255)은 제 1 예상 소요 시간이 제 2 예상 소요 시간보다 작거나 같다고 판단되는 경우에 버퍼링된 트래픽들을 전송할 것이다. 반면, 동기화/간략화 블럭(255)은 제 1 예상 소요 시간이 제 2 예상 소요 시간보다 크다고 판단되는 경우에 버퍼링된 트래픽들을 전송하지 않을 것이다.
도 10은 본 발명의 다른 실시 예에 따른 동기화/간략화 블럭의 동작을 예시적으로 보여주는 순서도이다. 도 8 및 도 10을 참조하여 동기화/간략화 블럭의 동작이 상세히 설명될 것이다.
동기화/간략화 블럭(255)은 마스터 장치로부터 쓰기 요청 트래픽을 제공받는다(S210 단계). 제공되는 쓰기 요청 트래픽은 업사이저 또는 비동기 브릿지와 같은 버스 컴포넌트(220) 및 인터커넥터(250)의 슬레이브 인터페이스(251)를 통해 동기화/간략화 블럭(255)에 제공될 것이다. 동기화/간략화 블럭(255)은 제공된 쓰기 요청 트래픽을 내부의 쓰기 요청 채널 버퍼 셋에 임시 저장한다(S220 단계).
동기화/간략화 블럭(255)은 마스터 장치로부터 제공된 쓰기 요청 트래픽에 대한 쓰기 데이터 트래픽을 제공받는다(S230 단계). 제공되는 쓰기 데이터 트래픽은 업사이저 또는 비동기 브릿지와 같은 버스 컴포넌트(220) 및 인터커넥터(250)의 슬레이브 인터페이스(251)를 통해 동기화/간략화 블럭(255)에 제공될 것이다. 동기화/간략화 블럭(255)은 제공된 쓰기 데이터 트래픽을 내부의 쓰기 데이터 채널 버퍼 셋이 임시 저장한다(S240 단계).
동기화/간략화 블럭(255)은 쓰기 요청 채널 버퍼 셋 및 쓰기 데이터 채널 버퍼 셋에 버퍼링된 트래픽들을 전송할 시점을 제 1 예상 소요 시간과 제 2 예상 소요 시간을 비교하여 판단한다(S250 단계). 여기에서, 제 1 예상 소요 시간은 마스터 장치로부터 아직 제공되지 않은 쓰기 데이터 트래픽이 제공될 때까지의 소요 시간일 것이다. 그리고 제 2 소요 시간은 슬레이브 장치로 전송해야 할 쓰기 데이터 트래픽을 전송하는데 걸리는 예상 소요 시간일 것이다.
동기화/간략화 블럭(255)의 판단 결과에 따라 동기화/간략화 블럭(255)의 동작 순서는 분기될 것이다. 제 1 소요 시간이 제 2 소요 시간보다 크다고 판단되는 경우(아니오), 동기화/간략화 블럭(255)은 제공된 쓰기 요청 트래픽 및 쓰기 데이터 트래픽을 슬레이브 장치로 전송하지 않고 대기한다(S260 단계). 이 경우, 동기화/간략화 블럭(255)은 마스터 장치로부터 쓰기 데이터 트래픽을 계속 제공받을 것이다.
반면, 제 1 소요 시간이 제 2 소요 시간보다 작거나 같다고 판단되는 경우(예), 동기화/간략화 블럭(255)은 제공된 쓰기 요청 트래픽과 대응되는 쓰기 데이터 트래픽을 슬레이브 장치로 전송한다(S270 단계). 동기화/간략화 블럭(255)으로부터 전송되는 두 트래픽들은 인터커넥터(250)의 마스터 인터페이스(253)를 통해 슬레이브 장치로 전송될 것이다.
본 발명의 다른 실시 예에 따르면, 동기화/간략화 블럭(255)은 쓰기 요청 트래픽과 쓰기 데이터 트래픽이 지연 시간없이 전송되도록 트래픽들을 제어할 것이다. 이러한 동기화/간략화 블럭(255)의 간략화 동작은 버스 점유율을 최소화하여 버스 시스템의 동작 속도를 증가시킬 수 있다.
이상에서, 본 발명은 구체적인 실시 예를 통해 설명되고 있으나, 본 발명은 그 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있음은 잘 이해될 것이다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어서는 안 되며, 후술하는 특허 청구 범위 및 이와 균등한 것들에 의해 정해져야 한다. 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 잘 이해될 것이다.
100 : 버스 시스템
110, 120 : 마스터 장치
130, 140 : 슬레이브 장치
150 : 인터커넥터
151, 152 : 슬레이브 인터페이스
153, 154 : 마스터 인터페이스
155 : 스위치 로직
160 : 동기화/간략화 블럭
162 : 동기화/간략화 블럭의 제어 유닛
163 : 쓰기 요청 채널 버퍼 셋
164 : 쓰기 데이터 채널 버퍼 셋

Claims (10)

  1. 마스터 장치;
    상기 마스터 장치의 요청에 응답하여 동작하는 슬레이브 장치; 및
    상기 마스터 장치와 상기 슬레이브 장치 사이에 복수의 버스들을 통해 연결되며,
    상기 마스터 장치와 상기 인터커넥터를 인터페이싱하는 슬레이브 인터페이스;
    상기 슬레이브 장치와 상기 인터커넥터를 인터페이싱하는 마스터 인터페이스; 및
    상기 슬레이브 인터페이스와 상기 마스터 인터페이스 사이에 연결되어 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터의 전송을 제어하는 동기화/간략화 블럭을 포함하는 인터커넥터를 포함하되,
    상기 인터커넥터는 상기 제공된 쓰기 요청에 대응되는 쓰기 데이터가 제공될 때까지 상기 슬레이브 장치로 상기 제공된 쓰기 요청의 전송을 대기하고, 상기 마스터 장치로부터 쓰기 요청과 상기 쓰기 요청에 대응되는 쓰기 데이터가 모두 제공되면 상기 슬레이브 장치로 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터를 전송하는 버스 시스템.
  2. 제 1 항에 있어서,
    상기 동기화/간략화 블럭은,
    상기 쓰기 요청을 임시 저장하기 위한 쓰기 요청 버퍼;
    상기 쓰기 데이터를 임시 저장하기 위한 쓰기 데이터 버퍼; 및
    상기 제공된 쓰기 요청에 대응되는 쓰기 데이터가 제공되었는지의 여부를 판단하고, 판단 결과에 따라 상기 쓰기 요청 버퍼 및 상기 쓰기 데이터 버퍼를 제어하는 제어 유닛을 포함하는 버스 시스템.
  3. 제 1 항에 있어서,
    상기 마스터 장치와 상기 인터커넥터 사이에 연결되는 버스 컴포넌트를 더 포함하되,
    상기 버스 컴포넌트는 상기 버스 시스템의 데이터 폭을 확장하기 위한 장치인 것을 특징으로 하는 버스 시스템.
  4. 제 3 항에 있어서,
    상기 동기화/간략화 블럭은,
    상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터의 전송 시에 지연 시간이 발생되지 않도록 제어하고,
    복수의 쓰기 데이터들이 제공된 경우, 상기 제공된 쓰기 데이터들의 전송 시에 지연 시간이 발생되지 않도록 제어하는 버스 시스템.
  5. 제 1 항에 있어서,
    상기 복수의 버스들은 쓰기 요청을 전송하기 위한 쓰기 요청 버스 및 쓰기 데이터를 전송하기 위한 쓰기 데이터 버스를 포함하되,
    상기 쓰기 요청 버스와 상기 쓰기 데이터 버스는 전기적으로 분리된 버스 시스템.
  6. 마스터 장치와 슬레이브 장치 사이에 연결되는 인터커넥터를 포함하는 버스 시스템의 동작 방법에 있어서:
    상기 인터커넥터의 동작 방법은,
    상기 마스터 장치로부터 쓰기 요청을 제공받는 단계;
    상기 제공된 쓰기 요청에 대응되는 쓰기 데이터가 제공되었는지의 여부를 판단하는 단계;
    상기 슬레이브 장치로 상기 제공된 쓰기 요청의 전송을 대기하는 단계; 및
    상기 슬레이브 장치로 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터를 전송하는 단계를 포함하되,
    상기 대기하는 단계는 상기 제공된 쓰기 요청에 대응되는 쓰기 데이터가 제공될 때까지 수행하고,
    상기 전송하는 단계는 상기 쓰기 요청과 상기 쓰기 요청에 대응되는 쓰기 데이터가 모두 제공된 것으로 판단된 경우에 수행하는 동작 방법.
  7. 마스터 장치와 슬레이브 장치 사이에 연결되는 인터커넥터를 포함하는 버스 시스템의 동작 방법에 있어서:
    상기 인터커넥터의 동작 방법은,
    상기 마스터 장치로부터 쓰기 요청을 제공받는 단계;
    상기 마스터 장치로부터 상기 쓰기 요청에 대응되는 쓰기 데이터를 제공받는 단계;
    상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터의 전송 시점을 판단하는 단계;
    상기 슬레이브 장치로 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터를 전송하는 단계를 포함하되,
    상기 판단하는 단계는,
    상기 마스터 장치로부터 아직 제공되지 않은 쓰기 데이터가 제공될 때까지의 소요 시간을 판단하는 단계; 및
    상기 제공된 쓰기 요청에 대응되는 모든 쓰기 데이터를 전송하는데 걸리는 소요 시간을 판단하는 단계를 포함하는 동작 방법.
  8. 제 7 항에 있어서,
    상기 전송하는 단계는 상기 마스터 장치로부터 아직 제공되지 않은 쓰기 데이터가 제공될 때까지의 소요 시간이 상기 제공된 쓰기 요청에 대응되는 모든 쓰기 데이터를 전송하는데 걸리는 소요 시간보다 작거나 또는 같다고 판단된 경우에 수행하는 동작 방법.
  9. 제 7 항에 있어서,
    상기 슬레이브 장치로 상기 제공된 쓰기 요청과 상기 제공된 쓰기 데이터의 전송을 대기하는 단계를 더 포함하고,
    상기 대기하는 단계는 상기 마스터 장치로부터 아직 제공되지 않은 쓰기 데이터가 제공될 때까지의 소요 시간이 상기 제공된 쓰기 요청에 대응되는 모든 쓰기 데이터를 전송하는데 걸리는 소요 시간보다 크다고 판단된 경우에 수행하는 동작 방법.
  10. 제 7 항에 있어서,
    상기 제공된 쓰기 요청을 저장하는 단계; 및
    상기 제공된 쓰기 데이터를 저장하는 단계를 더 포함하는 동작 방법.
KR1020100102010A 2010-10-19 2010-10-19 버스 시스템 및 그것의 동작 방법 KR101699784B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100102010A KR101699784B1 (ko) 2010-10-19 2010-10-19 버스 시스템 및 그것의 동작 방법
US13/244,493 US8667195B2 (en) 2010-10-19 2011-09-25 Bus-system including an interconnector, a master device, a slave device, and an operating method thereof
US14/170,086 US9021171B2 (en) 2010-10-19 2014-01-31 Bus system including a master device, a slave device, an interconnector coupled between the master device and the slave device, and an operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100102010A KR101699784B1 (ko) 2010-10-19 2010-10-19 버스 시스템 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20120040535A true KR20120040535A (ko) 2012-04-27
KR101699784B1 KR101699784B1 (ko) 2017-01-25

Family

ID=45935109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100102010A KR101699784B1 (ko) 2010-10-19 2010-10-19 버스 시스템 및 그것의 동작 방법

Country Status (2)

Country Link
US (2) US8667195B2 (ko)
KR (1) KR101699784B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101699784B1 (ko) * 2010-10-19 2017-01-25 삼성전자주식회사 버스 시스템 및 그것의 동작 방법
KR101841964B1 (ko) * 2011-02-22 2018-05-15 삼성전자주식회사 인터커넥터를 포함하는 시스템 온 칩 및 그것의 제어 방법
US20130205051A1 (en) * 2012-02-07 2013-08-08 Qualcomm Incorporated Methods and Devices for Buffer Allocation
US20140025852A1 (en) * 2012-07-19 2014-01-23 Lsi Corporation Configurable Response Generator for Varied Regions of System Address Space
US9489307B2 (en) * 2012-10-24 2016-11-08 Texas Instruments Incorporated Multi domain bridge with auto snoop response
GB2548387B (en) * 2016-03-17 2020-04-01 Advanced Risc Mach Ltd An apparatus and method for filtering transactions
CN107203341A (zh) * 2017-05-23 2017-09-26 建荣半导体(深圳)有限公司 基于闪存的数据存储方法、装置以及闪存芯片
GB201810785D0 (en) * 2018-06-29 2018-08-15 Nordic Semiconductor Asa Asynchronous communication
CN110727636B (zh) * 2019-10-10 2024-02-06 飞腾信息技术有限公司 片上***的设备隔离方法
US11546336B1 (en) * 2019-10-22 2023-01-03 Amazon Technologies, Inc. Independently configurable access device stages for processing interconnect access requests
US20240028206A1 (en) * 2022-07-20 2024-01-25 Micron Technology, Inc. Methods and systems for communications between hardware components

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353297B2 (en) * 2004-06-08 2008-04-01 Arm Limited Handling of write transactions in a data processing apparatus

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0752666A3 (en) * 1995-07-06 2004-04-28 Sun Microsystems, Inc. Method and apparatus for fast-forwarding slave requests in a packet-switched computer system
US6442641B1 (en) * 1999-06-08 2002-08-27 Intel Corporation Handling multiple delayed write transactions simultaneously through a bridge
US6745369B1 (en) * 2000-06-12 2004-06-01 Altera Corporation Bus architecture for system on a chip
US7213092B2 (en) * 2004-06-08 2007-05-01 Arm Limited Write response signalling within a communication bus
KR20060103685A (ko) 2005-03-28 2006-10-04 엘지전자 주식회사 마스터와 슬레이브 간의 트랜젝션 방법
US7457905B2 (en) * 2005-08-29 2008-11-25 Lsi Corporation Method for request transaction ordering in OCP bus to AXI bus bridge design
US7822903B2 (en) * 2006-02-24 2010-10-26 Qualcomm Incorporated Single bus command having transfer information for transferring data in a processing system
US7535297B2 (en) * 2006-02-27 2009-05-19 Xinghao Chen Architecture and method for improving efficiency of a class-A power amplifier by dynamically scaling biasing current thereof as well as synchronously compensating gain thereof in order to maintain overall constant gain of the class-A power amplifier at all biasing configurations thereof
JP2008040894A (ja) 2006-08-08 2008-02-21 Canon Inc オンチップバスシステム
KR20080062979A (ko) 2006-12-30 2008-07-03 삼성전자주식회사 온 칩 버스 시스템에서 레지스터 슬라이싱 장치 및 방법
US7984202B2 (en) * 2007-06-01 2011-07-19 Qualcomm Incorporated Device directed memory barriers
US7996614B2 (en) * 2008-01-04 2011-08-09 International Business Machines Corporation Cache intervention on a separate data bus when on-chip bus has separate read and write data busses
US7734854B2 (en) * 2008-01-04 2010-06-08 International Business Machines Corporation Device, system, and method of handling transactions
US7757027B2 (en) * 2008-06-19 2010-07-13 Arm Limited Control of master/slave communication within an integrated circuit
GB2478795B (en) * 2010-03-19 2013-03-13 Imagination Tech Ltd Requests and data handling in a bus architecture
US8539129B2 (en) * 2010-04-14 2013-09-17 Qualcomm Incorporated Bus arbitration techniques to reduce access latency
KR101699784B1 (ko) * 2010-10-19 2017-01-25 삼성전자주식회사 버스 시스템 및 그것의 동작 방법
KR101841964B1 (ko) * 2011-02-22 2018-05-15 삼성전자주식회사 인터커넥터를 포함하는 시스템 온 칩 및 그것의 제어 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353297B2 (en) * 2004-06-08 2008-04-01 Arm Limited Handling of write transactions in a data processing apparatus

Also Published As

Publication number Publication date
US8667195B2 (en) 2014-03-04
KR101699784B1 (ko) 2017-01-25
US20140149619A1 (en) 2014-05-29
US9021171B2 (en) 2015-04-28
US20120096200A1 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
KR20120040535A (ko) 버스 시스템 및 그것의 동작 방법
US5659718A (en) Synchronous bus and bus interface device
US10708199B2 (en) Heterogeneous packet-based transport
US8316171B2 (en) Network on chip (NoC) with QoS features
EP1775897B1 (en) Interleaving in a NoC (Network on Chip) employing the AXI protocol
US4744078A (en) Multiple path multiplexed host to network data communication system
EP1131729B1 (en) Communications system and method with multilevel connection identification
US6970921B1 (en) Network interface supporting virtual paths for quality of service
WO2021207919A1 (zh) 控制器、存储器件访问***、电子设备和数据传输方法
US7613849B2 (en) Integrated circuit and method for transaction abortion
WO2005071557A2 (en) A multiple address two channel bus structure
EP1370939A1 (en) Communications system and method with non-blocking shared interface
US7860120B1 (en) Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US7590146B2 (en) Information processing unit
EP1733309B1 (en) Integrated circuit and method for transaction retraction
JP3125739B2 (ja) バススイッチ
US9104819B2 (en) Multi-master bus architecture for system-on-chip
US7120722B2 (en) Using information provided through tag space
JP3989376B2 (ja) 通信システム
US20230388251A1 (en) Tightly-Coupled, Loosely Connected Heterogeneous Packet Based Transport
US7039750B1 (en) On-chip switch fabric
EP1179785A1 (en) Bus interconnect system
US8255597B2 (en) Interfacing device and method, for example for systems-on-chip
KR101061187B1 (ko) 버스 시스템 및 그 제어 장치
WO2000016202A1 (en) Apparatus and method to efficiently implement a switch architecture for a multiprocessor system

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