KR20120041008A - 버스 시스템 - Google Patents
버스 시스템 Download PDFInfo
- Publication number
- KR20120041008A KR20120041008A KR1020100102557A KR20100102557A KR20120041008A KR 20120041008 A KR20120041008 A KR 20120041008A KR 1020100102557 A KR1020100102557 A KR 1020100102557A KR 20100102557 A KR20100102557 A KR 20100102557A KR 20120041008 A KR20120041008 A KR 20120041008A
- Authority
- KR
- South Korea
- Prior art keywords
- address
- write data
- write
- channel
- master
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
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)
- Information Transfer Systems (AREA)
Abstract
본 발명의 목적은 버스 시스템의 와이어 혼잡도(wire congestion)을 감소시킴으로써, 집적도가 향상된 버스 시스템을 제공하는 것이다. 본 발명의 실시 예에 따른 버스 시스템은 제 1 쓰기 데이터 채널을 통해 쓰기 데이터를 내부적으로 전달하고, 제 1 어드레스 채널을 통해 어드레스를 내부적으로 전달하는 마스터; 및 마스터로부터 슬래이브로 하나의 채널을 통해 쓰기 데이터 및 어드레스를 전달하기 위한 버스를 포함한다. 따라서, 집적도가 향상된 버스 시스템이 제공된다.
Description
본 발명은 시스템 온 칩(System On Chip)의 버스 시스템에 관한 것이다.
시스템 온 칩(System on Chip, 이하 SOC라고 칭함)은 여러 가지 기능을 갖는 복잡한 시스템을 단일 반도체 칩에 집적하는 기술이다. 컴퓨터, 통신, 방송 등이 통합되는 컨버전스(convergence) 경향에 따라 주문형 반도체(Application Specific IC, ASIC) 및 특정용도 표준제품(Application Specific Standard Product, ASSP)에 대한 수요가 SOC로 옮겨가고 있다. 또한, IT(Information Technology) 기기의 소형화 및 경량화는 SOC 관련 산업을 촉진하고 있다.
SOC는 지능 소자(Intellectual Property)들을 포함한다. 지능 소자들은 SOC 내의 특정 기능을 각각 수행한다. 일반적으로, 이러한 지능 소자들은 버스를 통해 연결된다. SOC 내의 지능 소자들의 연결 및 관리를 위한 예시적인 표준 버스 규격으로서 ARM(Advanced RISC Machine)사의 AMBA(Advanced Microcontroller Bus Achitecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface) 등이 있다. 이들 중 AXI는 지능 소자들 사이의 인터페이스 프로토콜로서, 다중 아웃스탠딩 어드레스(multiple outstanding address) 기능과 데이터 인터리빙(data interleaving) 기능 등을 포함한다.
모바일 응용 프로세서의 하이 퍼포먼스(High performance) 요구의 증가에 따라, SoC내의 CPU 및 캐시 콘트롤러(cache controller)의 동작 주파수(frequency)는 수 GHz로 증가되는 추세이다. 즉, 지능 소자들 간에 데이터 전송량이 증가되고 있다. 이에 수반되어, 버스를 통해 전송되는 데이터의 대역폭(bandwidth)이 증가한다. 즉, 증가된 버스 데이터 폭이 제공된다. 그리고, 버스 데이터 폭에 대한 요구량이 증가할수록 버스에 포함되는 와이어(wire)의 수는 증가할 것이다.
본 발명의 목적은 버스 시스템의 와이어 혼잡도(wire congestion)를 감소시킴으로써, 집적도가 향상된 버스 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 버스 시스템은 제 1 쓰기 데이터 채널을 통해 쓰기 데이터를 내부적으로 전달하고, 제 1 어드레스 채널을 통해 어드레스를 내부적으로 전달하는 마스터; 및 상기 마스터로부터 슬래이브로 하나의 채널을 통해 상기 쓰기 데이터 및 상기 어드레스를 전달하기 위한 버스를 포함한다.
실시 예로서, 상기 마스터는 상기 쓰기 데이터 및 상기 어드레스를 발생하는 마스터 블록; 및 상기 제 1 쓰기 데이터 채널을 통해 상기 쓰기 데이터를 수신하고, 상기 제 1 어드레스 채널을 통해 상기 어드레스를 수신하는 마스터 브릿지를 포함할 수 있다. 그리고 상기 마스터 브릿지는 상기 하나의 채널을 통해 상기 쓰기 데이터 및 상기 어드레스를 전송한다.
실시 예로서, 상기 슬래이브는 제 2 쓰기 데이터 채널을 통해 상기 쓰기 데이터를 내부적으로 전달하고, 제 2 어드레스 채널을 통해 상기 어드레스를 내부적으로 전달한다.
실시 예로서, 상기 슬래이브는 상기 하나의 채널을 통해 상기 쓰기 데이터 및 상기 어드레스를 수신하는 슬래이브 브릿지; 및 상기 제 2 쓰기 데이터 채널을 통해 상기 쓰기 데이터를 수신하고, 상기 제 2 어드레스 채널을 통해 상기 어드레스를 수신하는 슬래이브 블록을 포함한다.
실시 예로서, 상기 마스터는 전송되는 데이터가 상기 쓰기 데이터인지 상기 어드레스인지 나타내는 구분자를 전송할 수 있다. 상기 슬래이브는 상기 구분자에 기반하여 전송된 데이터가 상기 쓰기 데이터인지 상기 어드레스 데이터인지 판별할 것이다.
실시 예로서, 상기 쓰기 데이터 및 상기 어드레스는 버스트(burst) 단위로 전송되고, 상기 마스터는 상기 쓰기 데이터의 크기에 기반하여 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송할지 여부를 결정할 수 있다. 상기 마스터는 상기 쓰기 데이터의 크기 및 상기 어드레스의 크기가 상기 하나의 채널의 데이터 폭보다 작은 경우, 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송할 것이다.
실시 예로서, 상기 어드레스는 마스터의 쓰기 데이터 폭(data width)에 대한 정보를 포함하며, 상기 마스터는 상기 쓰기 데이터 폭에 대한 정보에 기반하여 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송할지 여부를 결정할 수 있다.
실시 예로서, 상기 쓰기 데이터는 바이트 라인 단위로 전송되고, 상기 하나의 채널은 복수의 바이트 라인들로 구분되며, 상기 어드레스는 상기 복수의 바이트 라인들 중 상기 쓰기 데이터가 전송되는 바이트 라인들에 대한 정보를 포함할 수 있다. 그리고, 상기 마스터는 상기 쓰기 데이터가 전송되는 바이트 라인들에 대한 정보에 기반하여 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송할지 여부를 결정할 것이다.
본 발명의 다른 실시 예에 따른 버스 시스템은 쓰기 데이터 및 어드레스를 발생하는 마스터; 상기 마스터로부터, 상기 쓰기 데이터를 제 1 쓰기 데이터 채널을 통하여 수신하고, 상기 어드레스를 제 1 어드레스 채널을 통하여 수신하는 통합 인터커넥트; 및 상기 버스로부터, 상기 쓰기 데이터를 제 2 쓰기 데이터 채널을 통하여 수신하고, 상기 어드레스를 제 2 어드레스 채널을 통하여 수신하는 슬래이브를 포함한다. 그리고 상기 통합 인터커넥트는 상기 쓰기 데이터 및 상기 어드레스를 전송하기 위한 통합 쓰기 채널을 포함한다.
실시 예로서, 상기 쓰기 데이터 및 어드레스는 버스트(burst) 단위로 전송되고, 상기 통합 인터커넥트는 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송할 수 있다.
실시 예로서, 상기 쓰기 데이터 및 어드레스는 버스트(burst) 단위로 전송되고, 상기 통합 인터커넥트는 한 번의 버스트 동안에 전송될 상기 쓰기 데이터의 크기에 기반하여, 상기 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송할지 판별하는 마스터 브릿지를 포함한다.
실시 예로서, 상기 마스터 브릿지는 상기 판단 결과에 따라 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 상기 통합 쓰기 채널을 통해 함께 전송하거나, 상기 쓰기 데이터 및 상기 어드레스 중 하나를 상기 통합 쓰기 채널을 통해 전송할 수 있다.
본 발명의 실시 예에 따르면, 하나의 채널을 통해 마스터로부터 슬래이브에 쓰기 어드레스 및 쓰기 데이터가 전송된다. 따라서, 쓰기 어드레스 및 쓰기 데이터가 서로 다른 채널을 통해 전송되는 경우보다 향상된 집적도를 갖는 버스 시스템이 제공된다.
도 1은 본 발명의 제 1 실시 예에 따른 버스 시스템을 보여주는 블록도이다.
도 2는 도 1의 슬래이브가 데이터 저장 기능을 수행하는 경우를 보여주는 블록도이다.
도 3은 제 1 버스트에서 쓰기 어드레스 및 제 1 쓰기 데이터가 함께 전송되는 경우를 보여주는 블록도이다.
도 4는 쓰기 어드레스 및 제 1 쓰기 데이터가 서로 다른 버스트들에서 전송되는 경우를 보여주는 블록도이다.
도 5는 도 3의 제 1 버스트에서 병합 쓰기 채널을 통해 전송되는 데이터의 구성을 보여준다.
도 6은 전송 크기 데이터가 3 비트들로 표현되는 경우, 한 번의 버스트 동안에 전송되는 쓰기 데이터의 바이트 수를 예시적으로 보여주는 테이블이다.
도 7은 도 2의 메모리에 할당된 어드레스 영역을 예시적으로 보여준다.
도 8은 도 7의 채널 정렬 정보에 따라 한 번의 버스트 동안에 제 1 쓰기 데이터 및 쓰기 어드레스가 함께 전송되는 경우를 보여준다.
도 9는 두 번의 버스트들 동안에 각각 쓰기 어드레스 및 제 1 쓰기 데이터가 전송되는 경우를 보여준다.
도 10은 도 2의 마스터 브릿지에서 쓰기 어드레스 및 제 1 내지 제 3 쓰기 데이터들이 전송되는 과정을 보여주는 순서도이다.
도 11은 도 2의 슬래이브 브릿지에서 데이터를 수신하는 방법을 보여주는 순서도이다
도 12는 본 발명의 제 2 실시 예에 따른 버스 시스템을 보여주는 블록도이다.
도 13은 도 12의 마스터에서 슬래이브로 쓰기 어드레스 및 쓰기 데이터들이 전송되는 과정을 보여준다.
도 2는 도 1의 슬래이브가 데이터 저장 기능을 수행하는 경우를 보여주는 블록도이다.
도 3은 제 1 버스트에서 쓰기 어드레스 및 제 1 쓰기 데이터가 함께 전송되는 경우를 보여주는 블록도이다.
도 4는 쓰기 어드레스 및 제 1 쓰기 데이터가 서로 다른 버스트들에서 전송되는 경우를 보여주는 블록도이다.
도 5는 도 3의 제 1 버스트에서 병합 쓰기 채널을 통해 전송되는 데이터의 구성을 보여준다.
도 6은 전송 크기 데이터가 3 비트들로 표현되는 경우, 한 번의 버스트 동안에 전송되는 쓰기 데이터의 바이트 수를 예시적으로 보여주는 테이블이다.
도 7은 도 2의 메모리에 할당된 어드레스 영역을 예시적으로 보여준다.
도 8은 도 7의 채널 정렬 정보에 따라 한 번의 버스트 동안에 제 1 쓰기 데이터 및 쓰기 어드레스가 함께 전송되는 경우를 보여준다.
도 9는 두 번의 버스트들 동안에 각각 쓰기 어드레스 및 제 1 쓰기 데이터가 전송되는 경우를 보여준다.
도 10은 도 2의 마스터 브릿지에서 쓰기 어드레스 및 제 1 내지 제 3 쓰기 데이터들이 전송되는 과정을 보여주는 순서도이다.
도 11은 도 2의 슬래이브 브릿지에서 데이터를 수신하는 방법을 보여주는 순서도이다
도 12는 본 발명의 제 2 실시 예에 따른 버스 시스템을 보여주는 블록도이다.
도 13은 도 12의 마스터에서 슬래이브로 쓰기 어드레스 및 쓰기 데이터들이 전송되는 과정을 보여준다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 제 1 실시 예에 따른 버스 시스템(1000)을 보여주는 블록도이다. 도 1을 참조하면, 버스 시스템(1000)은 마스터(100), 슬래이브(200) 및 버스(300)를 포함한다. 도 1에서, 버스 시스템(1000)은 한 개의 마스터(100)와 한 개의 슬래이브(200)를 포함하는 것으로 도시된다. 그러나, 버스(300)에 연결되는 마스터 및 슬래이브의 개수는 다양하게 변경될 수 있다.
마스터(100)는 마스터 블록(110) 및 마스터 브릿지(120)를 포함한다. 마스터 블록(110)은 쓰기 어드레스 채널(M_WA), 쓰기 데이터 채널(M_W) 및 쓰기 응답 채널(M_WR)을 통하여 마스터 브릿지(1120)에 연결된다.
마스터 블록(110)은 쓰기 어드레스(미도시) 및 쓰기 데이터(미도시)를 발생한다. 쓰기 어드레스 및 쓰기 데이터는 각각 쓰기 어드레스 채널(M_WA) 및 쓰기 데이터 채널(M_W)을 통하여 전송된다. 즉, 마스터(100)는 상기 쓰기 어드레스 채널(M_WA)을 통해 쓰기 어드레스를 내부적으로 전달한다. 그리고 마스터(100)는 상기 쓰기 데이터 채널(M_W)을 통해 상기 쓰기 데이터를 내부적으로 전달한다. 예시적으로, 마스터 블록(110) 및 마스터 브릿지(120)는 AXI 프로토콜에 기반하여 통신한다.
마스터 브릿지(120)는 병합 쓰기 채널(M_MW)을 통하여 버스(300)에 연결된다. 마스터 브릿지(120)는 병합 쓰기 채널(M_MW)을 통하여 쓰기 어드레스 및 쓰기 데이터를 버스(300)에 전송한다. 그리고 마스터 브릿지(120)는 쓰기 응답 채널(M_WR)을 통하여 수신된 쓰기 응답 신호를 마스터 블록(110)에 전송한다. 이때 쓰기 응답 신호는 쓰기 데이터가 모두 전송된 경우에 슬래이브(200)로부터 전송된 신호이다.
마스터(100)는 중앙 처리 장치, 마이크로 컨트롤러 및 마이크로 프로세서, 디지털 신호처리 프로세서일 수 있다. 모바일 장치를 위한 버스 시스템인 경우, 마스터(100)는 응용프로그램 칩(Application Chip), 영상처리 프로세서, 오디오 코덱, 통신 모뎀(Mobile station Modem) 등일 수 있다.
도 1에 도시되지는 않으나, 마스터(100)는 슬래이브(200)에 접근하기 위한 요청 신호를 버스(300)에 전송할 수 있다. 그리고 버스(300)로부터 승인(grant) 신호가 수신되면, 마스터(100)는 버스 소유권(bus ownership)을 가진 것으로 판단하고, 슬래이브(200)에 접근하기 위해 쓰기 어드레스를 버스(300)에 전송할 것이다.
도 1에 도시되지 않으나, 마스터(100)는 읽기 어드레스 채널(미도시) 및 읽기 데이터 채널(미도시)을 통해 버스(300)와 연결될 수 있다. 슬래이브(200)의 데이터를 수신하는 경우, 마스터(100)는 읽기 어드레스 채널을 통해 읽기 어드레스를 전송할 것이다. 그리고 마스터(100)는 읽기 데이터 채널을 통해 슬래이브(200)에 저장된 데이터를 수신할 것이다.
슬래이브(200)는 슬래이브 블록(210) 및 슬래이브 브릿지(220)를 포함한다. 슬래이브 블록(210)은 쓰기 어드레스 채널(S_WA), 쓰기 데이터 채널(S_W) 및 쓰기 응답 채널(S_WR)을 통하여 슬래이브 브릿지(220)에 연결된다.
슬래이브 브릿지(220)는 병합 쓰기 채널(S_MW) 및 쓰기 응답 채널(S_WR)을 통해 버스(300)와 연결된다. 슬래이브 브릿지(220)는 병합 쓰기 채널(S_MW)을 통해 버스(300)로부터 쓰기 어드레스 및 쓰기 데이터를 수신한다. 슬래이브 브릿지(220)는 쓰기 어드레스 및 쓰기 데이터를 각각 쓰기 어드레스 채널(S_WA), 쓰기 데이터 채널(S_W)을 통하여 슬래이브 블록(210)에 전송할 것이다. 즉, 슬래이브(200)는 어드레스 채널(S_WA)을 통해 쓰기 어드레스를 내부적으로 전달한다. 그리고 슬래이브(200)는 쓰기 데이터 채널(S_W)을 통해 쓰기 데이터를 내부적으로 전달한다. 예시적으로, 슬래이브 블록(210) 및 슬래이브 브릿지(220)는 AXI 프로토콜에 기반하여 통신한다.
슬래이브 블록(210)은 쓰기 어드레스에 대응하는 영역에 쓰기 데이터를 저장한다. 그리고, 쓰기 데이터의 저장이 완료된 경우, 슬래이브 블록(210)은 쓰기 완료 신호를 발생한다. 슬래이브 브릿지(220)는 쓰기 응답 채널(S_WR)을 통하여 수신된 쓰기 응답 신호를 버스(300)에 전송한다. 예시적으로 슬래이브 블록(210)은 쓰기 데이터 및 쓰기 어드레스의 전송이 완료된 경우, 쓰기 완료 신호를 발생할 수 있다.
버스(300)는 디코더(미도시)를 포함할 것이다. 그리고 디코더는 마스터 브릿지(120)로부터 수신된 쓰기 어드레스를 디코딩한다. 디코딩된 결과에 따라, 버스(300)는 병합 쓰기 채널들(M_MW,S_MW)을 연결할 것이다. 결국, 마스터(100)에서 슬래이브(200)로 데이터가 전송되는 경우, 마스터 브릿지(120) 및 슬래이브 브릿지(220)는 병합 쓰기 채널(M_MW), 버스(1300) 및 병합 쓰기 채널(S_MW)을 통해 연결될 것이다.
본 발명의 실시 예에 따르면, 버스(300)는 마스터(100)로부터 수신된 읽기 어드레스에 따라, 병합 쓰기 채널들(M_MW,S_MW)을 연결한다. 그리고 버스(300)는 마스터(100)로부터 수신된 쓰기 어드레스 및 쓰기 데이터를 병합 쓰기 채널들(M_MW,S_MW)을 통하여 슬래이브(300)에 전송한다. 즉, 마스터(100)에서 발생된 쓰기 어드레스 및 쓰기 데이터는 하나의 채널을 통하여 슬래이브(200)에 전송된다.
마스터(100)는 버스트(burst) 단위로 소정의 데이터 비트들을 전송한다. 여기에서, 버스트는 마스터(100)가 한 채널을 독점하여 고속으로 데이터를 전송하는 동작을 의미한다. 예를 들면, 버스 시스템(1000)에 제공되는 클럭 신호(미도시)에 동기화되어, 마스터(100)는 한 번의 버스트 동안에 소정의 데이터 비트들을 전송할 수 있다.
병합 쓰기 채널들(M_MW,S_MW)은 복수의 와이어들(wires)로 구성된다. 버스트가 수행될 때마다 복수의 와이어들을 통하여 데이터 비트들이 각각 전송된다. 이때, 병합 쓰기 채널들(M_MW,S_MW)은 소정의 데이터 폭(data width)을 가질 것이다. 전송할 쓰기 데이터가 한 번의 버스트로 전송될 수 없는 경우에, 쓰기 데이터는 복수의 버스트들에 걸쳐서 전송될 것이다.
마스터(100)에서 전송되는 쓰기 데이터의 크기에 따라, 쓰기 데이터의 전송을 위해 버스트가 수행되는 횟수는 가변할 것이다. 한편, 슬래이브 브릿지(100)의 어드레스 영역은 일정한 비트들로 표현가능하므로, 마스터(100)에서 전송되는 쓰기 어드레스 크기는 일정할 것이다.
본 발명의 실시 예에 따르면, 마스터 브릿지(120)는 한 번의 버스트 동안에 쓰기 어드레스 및 쓰기 데이터가 전송될 수 있는지 여부를 판별한다. 쓰기 어드레스 및 쓰기 데이터가 함께 전송될 수 있는 경우, 마스터 브릿지(120)는 한 번의 버스트에 쓰기 어드레스 및 쓰기 데이터를 함께 전송할 수 있다.
쓰기 어드레스 및 쓰기 데이터가 함께 전송될 수 없는 경우, 마스터 브릿지(120)는 제 1 버스트에서 쓰기 어드레스를 전송하고 제 2 버스트에서 쓰기 데이터를 전송할 수 있다.
버스(300)는 중재기(arbiter,미도시) 및 디코더(decoder,미도시)를 포함할 수 있다. 그리고 버스(300)는 멀티-레이어(multi-layer) 버스일 수 있다. 중재기는 한번에 하나의 마스터만이 버스를 사용하도록 권한을 부여한 것으로, 마스터(100) 및 슬래이브(200) 간 버스의 사용을 중재한다. 즉, 마스터(100)로부터 슬래이브(200)에 접근하기 위한 요청 신호를 수신하면, 버스(300)는 마스터(100)에 승인 신호를 출력할 것이다. 디코더는 마스터(100)로부터 수신된 쓰기 어드레스를 디코딩한다. 디코딩된 결과에 따라, 버스(300)는 병합 쓰기 채널들(M_MW,S_MW)을 연결할 것이다.
버스(300)의 쓰기 데이터 폭 및 병합 쓰기 채널들(M_MW,S_MW)의 데이터 폭은 서로 동일할 것이다. 즉, 버스(300)에 의하여 병합 쓰기 채널들(M_MW,S_MW)이 연결된 경우, 버스(300)의 쓰기 데이터 폭은 병합 쓰기 채널들(M_MW,S_MW)의 데이터 폭과 동일할 것이다. 예를 들면, 버스(300)가 128비트들의 쓰기 데이터 폭을 갖도록 설계된다고 가정한다. 이때, 병합 쓰기 채널들(M_MW,S_MW)의 데이터 폭은 128비트들로 설계될 것이다. 즉, 버스(300)에 의하여 병합 쓰기 채널들(M_MW,S_MW)이 연결된 경우, 병합 쓰기 채널들(M_MW,S_MW) 및 버스(300)는 통합된 쓰기 채널을 구성할 것이다.
본 발명의 실시 예에 따르면, 병합 쓰기 채널들(M_MW,S_MW)을 통해 마스터(100)로부터 슬래이브(200)에 쓰기 어드레스 및 쓰기 데이터가 전송된다. 본 발명의 실시 예에 따르면, 쓰기 어드레스 및 쓰기 데이터가 서로 다른 채널을 통해 전송되는 경우보다 집적도가 향상된 버스 시스템(1000)이 제공된다.
도 2는 도 1의 슬래이브(200)가 데이터 저장 기능을 수행하는 경우를 보여주는 블록도이다. 도 2를 참조하면, 슬래이브(200)는 메모리(250)를 포함한다. 메모리(250)는 슬래이브 브릿지(220)로부터 쓰기 어드레스 및 쓰기 데이터를 수신할 것이다. 그리고, 메모리(250)는 쓰기 어드레스를 참조하여 쓰기 데이터를 소정의 영역에 저장할 것이다.
예시적으로, 메모리(250)는 메모리 셀 어레이를 포함하는 메모리 코어(미도시)와 상기 메모리 코어를 제어하는 메모리 컨트롤러(미도시)를 포함할 수 있다. 그리고 메모리 컨트롤러는 슬래이브 브릿지(220)와 메모리(250) 간에 인터페이스 기능을 수행할 것이다.
도 3 및 도 4는 도 2의 병합 쓰기 채널들(M_MW,S_MW) 및 버스(300)를 통해 쓰기 어드레스(WA) 및 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)이 전송되는 경우를 예시적으로 보여준다.
도 3은 제 1 버스트(T1)에서 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)가 함께 전송되는 경우를 보여주는 블록도이다.
마스터 블록(110)에서 쓰기 어드레스(WA) 및 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)이 발생될 것이다. 쓰기 어드레스(WA) 및 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)은 별도의 채널들(M_WA,M_W))을 통하여 마스터 브릿지(120)에 전송될 것이다. 그리고 쓰기 어드레스(WA) 및 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)은 하나의 채널을 통하여 슬래이브 브릿지(220)에 전송된다.
쓰기 어드레스(WA)의 크기 및 제 1 쓰기 데이터(WD1)의 크기를 참조하여, 마스터 브릿지(120)는 제 1 버스트(T1)에서 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)를 함께 전송할 수 있는지 판별한다.
판별 결과에 따라, 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)는 제 1 버스트(T1)에서 함께 전송될 수 있다. 제 1 버스트(T1)에서 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)가 함께 전송될 수 없는 경우, 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)는 각각 다른 버스트들에서 전송될 것이다.
마스터 브릿지(120)는 각 버스트가 수행될 때 구분자(seperator)를 전송할 수 있다. 구분자에 의해, 쓰기 어드레스와 쓰기 데이터가 함께 전송되는지, 쓰기 어드레스만 전송되는지, 쓰기 데이터만 전송되는지 판별될 수 있다. 예시적으로, 쓰기 어드레스와 쓰기 데이터가 함께 전송되는 경우, 쓰기 어드레스만 전송되는 경우, 쓰기 데이터만 전송되는 경우를 각각 판별하기 위해, 구분자는 2 비트들로 구성될 수 있다.
마스터 브릿지(120)는 제 1 버스트(T1)에서 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)와 함께 제 1 구분자(SP1)를 전송한다. 제 1 구분자(SP1)는 전송되는 데이터가 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)임을 나타낼 것이다.
슬래이브 브릿지(220)는 제 1 버스트(T1)에서 병합 쓰기 채널(S_MW)을 통해 쓰기 어드레스(WA), 제 1 쓰기 데이터(WD1) 및 제 1 구분자(SP1)를 수신한다. 슬래이브 브릿지(220)는 제 1 구분자(SP1)에 기반하여, 수신된 데이터가 쓰기 어드레스(WA) 및 쓰기 데이터임을 판별할 것이다.
제 2 버스트(T2)에서 제 2 쓰기 데이터(WD2) 및 제 2 구분자(SP2)가 전송된다. 그리고 제 3 버스트(T3)에서 제 3 쓰기 데이터(WD3) 및 제 2 구분자(SP2)가 전송된다. 제 2 및 제 3 버스트들(T2,T3)에서 전송되는 데이터는 쓰기 데이터이므로, 전송되는 구분자는 동일할 것이다. 즉, 제 2 버스트(T2)에서 전송되는 제 2 구분자(SP2)와 제 3 버스트(T3)에서 전송되는 제 2 구분자(SP2)는 전송되는 데이터가 쓰기 데이터임을 나타낼 것이다. 제 2 구분자(SP2)에 기반하여, 슬래이브 브릿지(220)는 제 2 및 제 3 버스트들(T2,T3)에서 수신된 데이터가 쓰기 데이터임을 판별할 것이다.
예시적으로, 쓰기 데이터(WD3)에 파일 종료 신호(end of file)가 포함될 수 있다. 슬래이브(200)는 파일 종료 신호에 기반하여 제 3 버스트(T3)가 마지막 버스트라고 판단할 것이다. 그리고, 판단 결과에 따라 슬래이브(200)는 쓰기 어드레스(WA)에 대응하는 영역에 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)을 저장할 것이다.
도 4는 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)가 서로 다른 버스트들에서 전송되는 경우를 보여주는 블록도이다. 즉, 도 4는 한 번의 버스트에 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)가 함께 전송되지 않는 경우를 보여준다.
제 1 버스트(T1)에서 쓰기 어드레스(WA)가 전송된다. 이때, 제 1 버스트(T1)에서 제 3 구분자(SP3)도 함께 전송될 것이다. 제 3 구분자(SP3)는 전송되는 데이터가 쓰기 어드레스(WA)임을 나타낼 것이다. 슬래이브 브릿지(220)는 제 3 구분자(SP3)에 기반하여 전송된 데이터가 쓰기 어드레스(WA)라고 판별한다. 쓰기 어드레스(WA)는 메모리(250)에 전송될 것이다.
제 2 내지 제 4 버스트들(T2~T4)에서 각각 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)들이 전송될 것이다. 그리고 제 2 내지 제 4 버스트들(T2~T4)에서 각각 제 2 구분자(SP2)가 전송될 것이다. 수신된 제 2 구분자(SP2)에 기반하여, 슬래이브 브릿지(220)는 제 2 내지 제 4 버스트들(T2~T4)에서 전송된 데이터를 쓰기 데이터로 판별할 것이다. 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)은 메모리(250)에 전송된다. 그리고 쓰기 어드레스(WA)에 기반하여 메모리(250)의 소정의 영역에 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)이 저장될 것이다.
병합 쓰기 채널이 아닌, 쓰기 어드레스 및 쓰기 데이터가 서로 다른 채널을 통해 마스터(100)에서 슬래이브(200)로 전송된다고 가정한다. 이 경우, 슬래이브(200)에서 쓰기 어드레스 및 쓰기 데이터를 대응시키기 위해, 식별자(IDentification) 정보가 요구된다. 즉, 쓰기 어드레스에 대응하는 쓰기 데이터를 찾기 위해서 쓰기 어드레스 및 쓰기 데이터에 각각 식별자 정보가 요구된다. 본 발명의 실시 예에 따르면, 동일한 채널로 쓰기 어드레스 및 쓰기 데이터가 슬래이브(200)에 수신되므로, 마스터(100)는 별도의 식별자 정보를 전송하지 않을 수 있다.
도 5는 도 3의 제 1 버스트(T1)에서 병합 쓰기 채널(M_MW)을 통해 전송되는 데이터의 구성을 보여준다.
도 5를 참조하면, 병합 쓰기 채널(M_MW)을 통해 쓰기 어드레스(WA), 제 1 쓰기 데이터(WD1) 및 제 1 구분자(SP1)가 전송된다. 병합 쓰기 채널(M_MW)은 복수의 와이어들을 포함하고, 복수의 와이어들을 통해 쓰기 어드레스(WA), 제 1 쓰기 데이터(WD1) 및 제 1 구분자(SP1)를 전송할 것이다. 제 1 구분자(SP1)는 정해진 와이어를 통하여 전송될 수 있다.
제 1 버스트(T1) 동안에 쓰기 어드레스(WA)는 정해진 와이어들을 통하여 전송될 수 있다. 다만, 제 2 및 제 3 버스트들(T2,T3,도 3 참조) 동안에, 쓰기 어드레스(WA)가 전송되도록 정해진 와이어들을 통해 쓰기 데이터가 전송될 수 있다.
쓰기 어드레스(WA)는 채널 정렬 정보(Channel Alignment Information,CAI), 그리고 전송 길이 데이터(TLEN) 및 전송 크기 데이터(TSIZE)들을 포함한다.
AXI 프로토콜에 기반한 버스 시스템에서, 채널 정렬 정보(CAI)는 쓰기 데이터가 저장될 메모리(250,도 2 참조)의 어드레스 정보를 포함한다. 예시적으로, 채널 정렬 정보(CAI)는 메모리(250,도 2 참조)에서 쓰기 데이터가 저장될 시작 주소에 대응할 수 있다.
전송 길이 데이터(TLEN)는 쓰기 데이터를 전송하기 위한 버스트가 수행되는 횟수를 나타낸다. 예를 들면, 도 3에서 쓰기 데이터를 전송하기 위한 버스트는 3회 수행된다. 도 4에서 쓰기 데이터를 전송하기 위한 버스트는 4회 수행된다. 예를 들면, 전송 길이 데이터(TLEN)가 4 비트들로 표현되는 경우, 전송 길이 데이터(TLEN)의 논리 값이 "0000"일 때 쓰기 데이터를 전송하기 위한 1 회의 버스트가 수행될 것이다. 예를 들면, 전송 길이 데이터(TLEN)의 논리 값이 "0010"일 때 쓰기 데이터를 전송하기 위한 3회의 버스트들이 수행될 것이다.
마스터(100)에서 출력되는 쓰기 데이터 폭보다 넓은 병합 쓰기 채널(M_MW)의 데이터 폭이 채용될 수 있다. 이는 각각 다른 쓰기 데이터 폭들을 가지는 마스터들이 버스에 연결되는 데에서 기인한다. 병합 쓰기 채널(M_MW)을 통해 한 번의 버스트에 128 비트들의 쓰기 데이터가 전송될 수 있다고 가정한다. 이때, 마스터(100)의 쓰기 데이터 폭은 64 비트일 수 있다.
전송 크기 데이터(TSIZE)는 한 번의 버스트 동안에 마스터(100)로부터 전송되는 쓰기 데이터의 크기를 나타낸다. 즉, 전송 크기 데이터(TSIZE)는 마스터(100)의 쓰기 데이터 폭에 대한 정보를 포함한다.
본 발명의 실시 예에 따르면, 마스터 브릿지(120, 도 2 참조)는 쓰기 어드레스(WA)를 참조하여 한 번의 버스트에서 쓰기 어드레스(WA)와 제 1 쓰기 데이터(WD1)를 함께 전송할 수 있다. 추가적으로, 마스터 브릿지(120)는 전송되는 데이터의 종류를 표시하기 위해 제 1 구분자(SP1)를 함께 전송할 것이다.
즉, 마스터 브릿지(120)는 쓰기 어드레스(WA)에 포함된 전송 크기 데이터(TSIZE)를 참조하여, 한 번의 버스트에서 쓰기 어드레스(WA), 제 1 쓰기 데이터(WD1), 그리고 제 1 구분자(SP1)를 전송할 수 있다. 슬래이브 브릿지(220)는 제 1 구분자(SP1)를 체크하고, 전송된 데이터가 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)임을 판별할 것이다.
도 6은 전송 크기 데이터(TSIZE)가 3 비트들로 표현되는 경우, 한 번의 버스트 동안에 전송되는 쓰기 데이터의 바이트 수를 예시적으로 보여주는 테이블이다.
도 6을 참조하면, 전송 크기 데이터(TSIZE)의 논리 값에 따라, 한 번의 버스트에서 수행되는 바이트 수가 결정된다. 도 6을 참조한 설명에서, 버스(300)의 쓰기 데이터 폭 및 병합 쓰기 채널들(M_MW,S_MW)의 데이터 폭이 130 비트들(16바이트들 및 2 비트들의 합)로 설계된다고 가정한다.
도 6을 참조하면, 전송 크기 데이터(TSIZE)의 논리 값이 "000", "001", "010" 및 "011"인 경우, 전송되는 쓰기 데이터의 크기는 각각 1,2,4 및 8 바이트들이다. 따라서, 전송 크기 데이터(TSIZE)의 논리 값이 "000", "001", "010" 및 "011"인 경우, 전송되는 쓰기 데이터의 크기는 130 비트들보다 작을 것이다.
쓰기 어드레스(WA)의 크기가 8 바이트들이고, 구분자의 크기가 2 비트들이라고 가정한다. 전송 크기 데이터(TSIZE)의 논리 값이 "000", "001", "010" 및 "011"인 경우, 쓰기 어드레스(WA), 쓰기 데이터 및 구분자는 한 번의 버스트에서 전송될 수 있다. 즉, 마스터 브릿지(120)는 전송 크기 데이터(TSIZE)를 참조하여, 쓰기 어드레스(WA), 쓰기 데이터 및 구분자를 한 번의 버스트 동안에 전송할 수 있다.
도 7은 도 2의 메모리(250)에 할당된 어드레스 영역을 예시적으로 보여준다. 도 7을 참조하면, 메모리(250)는 복수의 영역들(0 내지 227영역들)로 구분된다. 그리고 각 영역은 16 바이트들로 구분된다. 즉, 각 영역은 16 바이트들에 대응하는 데이터가 저장될 것이다.
도 7에 도시된 바와 같이, 메모리(250)가 228개의 영역들로 구성되는 경우, 메모리(250)는 232 바이트들에 대응하는 데이터를 저장할 수 있다. 그리고, 메모리(250)의 어드레스는 최소 32 비트들로 표현될 수 있다.
AXI 프로토콜에 기반한 버스 시스템에서, 채널 정렬 정보(CAI)는 쓰기 데이터가 기입될 메모리(250)의 어드레스 정보를 포함한다. 도 7에서, 채널 정렬 정보(CAI)는 제 3 영역의 제 12 번째 바이트(12th byte)를 가리키는 것으로 도시된다. 채널 정렬 정보(CAI)가 32 비트들로 구성된다고 가정할 때 16 진수 "0x0000003C"로 표현될 것이다. "0x0000003C"에서, "3"은 시작 어드레스가 3번째 영역에 포함됨을 나타낸다. 그리고 "C"는 3번째 영역의 제 12 바이트가 쓰기 데이가 저장될 시작 어드레스임을 나타낸다.
도 8은 도 7의 채널 정렬 정보(CAI)에 따라 한 번의 버스트 동안에 제 1 쓰기 데이터 및 쓰기 어드레스가 함께 전송되는 경우를 보여준다. 도 8에서, 8 바이트들(64 비트들)의 크기를 갖는 쓰기 어드레스(WA)가 전송되는 경우가 예시적으로 도시된다.
본 발명의 실시 예에 따르면, 마스터(100)의 쓰기 데이터 폭이 병합 쓰기 채널(M_MW)의 데이터 폭과 같은 경우에도 한 번의 버스트 동안에 제 1 쓰기 데이터(WD1) 및 쓰기 어드레스(WA)가 함께 전송될 수 있다. 예를 들면, 마스터 브릿지(120,도 2 참조)는 채널 정렬 정보(CAI)를 참조하여 제 1 쓰기 데이터(WD1) 및 쓰기 어드레스(WA)를 함께 전송할 수 있는지 판단한다.
이하, 도 8 및 도 9를 참조한 설명에서, 마스터(100)의 쓰기 데이터 폭이 병합 쓰기 채널(M_MW)의 데이터 폭과 같은 경우가 설명된다.
도 8을 참조하면, 병합 쓰기 채널(M_MW) 중 쓰기 데이터(WA) 및 쓰기 어드레스(WA)가 전송되는 와이어들은 복수의 바이트 라인들로 구분될 수 있다. 즉, 병합 쓰기 채널(M_MW)의 데이터 폭은 16 바이트들 및 제 1 구분자(SP1)의 크기를 합한 값이다. 예를 들면, 병합 쓰기 채널(M_MW)의 데이터 폭은 130 비트들일 수 있다. 도 8에서, 제 1 쓰기 데이터(WD1)는 제 12 내지 제 15 바이트 라인들을 통해서 전송되는 것으로 도시된다. 그리고, 쓰기 어드레스(WA)는 제 0 내지 제 7 바이트 라인들을 통해서 전송되는 것으로 도시된다.
바이트 라인들 중 일부는 쓰기 어드레스(WA)가 전송되는 바이트 라인들로 미리 정해질 수 있다. 도 8에서, 제 0 내지 제 7 바이트 라인들은 쓰기 어드레스(WA)가 전송되는 바이트 라인들로 정해진다. 다만, 후속 버스트 동안에, 쓰기 어드레스(WA)가 전송되도록 정해진 바이트 라인들을 통해 쓰기 데이터가 전송될 수 있다.
AXI 프로토콜에 기반한 버스 시스템(1000)에서, 채널 정렬 정보(CAI)는 쓰기 데이터가 기입될 메모리(250,도 2 참조)의 어드레스에 기반하여 결정된다. 예시적으로, 메모리(250,도 7 참조)의 제 3 영역의 제 12 내지 제 15 번째 바이트들에 데이터를 기입하는 경우, 마스터 블록(110)에서 발생하는 채널 정렬 정보(CAI)의 논리 값은 "0x0000003C"일 것이다. 즉, 채널 정렬 정보(CAI)의 논리 값이 "0x0000003C"인 경우, 채널 정렬 정보(CAI)는 메모리(250)의 제 3 영역의 제 12 번째 바이트에 대응된다. 이때, 제 1 쓰기 데이터(WD1)는 제 12 내지 제 15 바이트 라인들을 통해서 전송된다. 즉, 메모리(250)의 제 3 영역의 제 12 내지 제 15 번째 바이트들에 데이터가 기입되는 경우, 제 1 쓰기 데이터(WD1)는 제 12 내지 제 15 바이트 라인들을 통해서 전송된다. 이 경우, 쓰기 어드레스(WA)는 제 0 내지 제 7 바이트 라인들을 통해서 전송될 수 있다. 결과적으로, 마스터 브릿지(120)는 제 1 버스트(T1)에서 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)를 함께 전송할 것이다.(도 3 참조).
메모리(250)에 포함된 제 3 영역의 제 12 내지 제 15 번째 바이트들, 그리고 제 4 및 제 5 영역들 전체에 데이터가 기입된다고 가정한다. 이때, 제 1 버스트(T1)가 수행되어 제 3 영역의 제 12 내지 제 15 번째 바이트들에 저장될 데이터가 전송된다. 제 2 버스트(T2)가 수행되어 제 4 영역에 저장될 데이터가 전송된다. 그리고 제 3 버스트(T3)가 수행되어 제 5 영역에 저장될 데이터가 전송된다.
채널 정렬 정보(CAI)에 기반하여, 마스터 브릿지(120)는 쓰기 데이터의 정렬 정도를 판별할 수 있다. 예를 들면, 병합 쓰기 채널(M_MW)의 제 0 바이트 라인을 통해 쓰기 데이터가 전송되는 경우에 쓰기 데이터는 "정렬되었다(aligned)"라고 지칭된다. 그리고, 제 0 바이트 라인을 통해 쓰기 데이터가 전송되지 않는 경우에 쓰기 데이터는 "비정렬되었다(unaligned)"라고 지칭된다. 즉, 채널 정렬 정보(CAI)로부터, 병합 쓰기 채널(M_MW)을 통해 전송되는 쓰기 데이터의 정렬 정도가 검출될 수 있다.
쓰기 데이터가 정렬되어 전송되는 경우, 마스터 브릿지(120)는 쓰기 어드레스(WA)를 쓰기 데이터와 함께 전송할 수 없다. 반면, 쓰기 데이터가 비정렬되어 전송되는 경우, 마스터 브릿지(120)는 채널 정렬 정보(CAI)를 참조하여 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)를 함께 전송할 수 있는지 결정할 것이다.
즉, 마스터 브릿지(120)는 쓰기 어드레스(WA)에 포함된 채널 정렬 정보(CAI)를 참조하여 한 번의 버스트 동안에 쓰기 어드레스(WA), 제 1 쓰기 데이터(WD1), 그리고 제 1 구분자(SP1)를 함께 전송할 수 있다.
도 9는 두 번의 버스트들 동안에 각각 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)가 전송되는 경우를 보여준다. 제 1 쓰기 데이터(WD1) 및 쓰기 어드레스(WA)가 함께 전송될 수 없는 경우, 마스터 브릿지(120)는 제 1 버스트(T1)에서 쓰기 어드레스(WA)를 전송한다. 그리고, 제 2 버스트(T2)에서 제 1 쓰기 데이터(WD1)를 전송할 것이다.
예를 들면, 메모리(250)의 제 3 영역의 제 2 내지 제 15 번째 바이트들에 제 1 쓰기 데이터(WD1)가 저장되는 경우, 마스터 블록(110)는 채널 정렬 정보(CAI)의 논리 값을 "0x00000032"로 결정할 수 있다. 이때, 마스터 브릿지(120)는 제 2 내지 제 15 바이트 라인들을 통해 제 1 쓰기 데이터(WD1)를 전송한다. 쓰기 어드레스(WA)의 크기를 8 바이트들(64 비트들)로 가정할 때, 제 1 쓰기 데이터(WD1) 및 쓰기 어드레스(WA)는 함께 전송될 수 없을 것이다. 따라서 마스터 브릿지(120)는 제 1 버스트(T1)에서 쓰기 어드레스(WA) 및 제 3 구분자(SP3)를 전송할 것이다. 그리고 마스터 브릿지(120)는 제 2 버스트(T2)에서 제 1 쓰기 데이터(WD1) 및 제 2 구분자(SP2)를 전송할 것이다.
도 10은 도 2의 마스터 브릿지(120)에서 쓰기 어드레스(WA) 및 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)이 전송되는 과정을 보여주는 순서도이다. 도 2 및 10을 참조하면, S100단계에서, 마스터 브릿지(120)는 쓰기 어드레스(WA), 그리고 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)을 수신한다.
S200단계에서, 마스터 브릿지(120)는 한 번의 버스트 동안에 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)를 함께 전송할 수 있는지 판단된다. S200단계는 S210단계 내지 S240단계를 포함한다.
S210단계에서, 마스터 브릿지(120)는 전송 크기 데이터(TSIZE)를 체크한다. 즉, 마스터 브릿지(120)는 전송 크기 데이터(TSIZE)에 기반하여 마스터 블록(110)의 쓰기 데이터 폭을 판별한다(도 5 참조).
S220단계에서, 마스터 브릿지(120)는 한 번의 버스트 동안에 제 1 쓰기 데이터(WD1)와 같이 쓰기 어드레스(WA)를 전송할 수 있는지 판단한다.
한 번의 버스트 동안에 제 1 쓰기 데이터(WD1)와 함께 쓰기 어드레스(WA)가 전송될 수 있는 경우, S320단계가 수행될 것이다. 한편, 한 번의 버스트 동안에 제 1 쓰기 데이터(WD1)와 함께 쓰기 어드레스(WA)가 전송될 수 없는 경우, S230단계가 수행될 것이다.
S230단계에서, 마스터 브릿지(120)는 채널 정렬 정보(CAI)를 체크한다. 그리고, S240단계에서, 체크 결과에 기반하여 쓰기 데이터(WD1)와 함께 쓰기 어드레스(WA)가 전송될 수 있는지 판단한다. 쓰기 데이터(WD1)와 함께 쓰기 어드레스(WA)가 전송될 수 있는 경우, S320단계가 수행된다. 쓰기 데이터(WD1)와 함께 쓰기 어드레스(WA)가 전송될 수 없는 경우, S310단계가 수행된다.
S310단계에서, 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)는 각각 두 번의 버스트들 동안에 나뉘어 전송된다. 그리고 각각 두 번의 버스트들에서, 전송되는 데이터를 구별하기 위한 구분자가 함께 전송될 것이다.
S320단계에서, 한 번의 버스트 동안에 제 1 쓰기 데이터(WD1)와 함께 쓰기 어드레스(WA)가 전송된다. 이때, 전송되는 데이터가 쓰기 데이터 및 쓰기 어드레스라는 것을 표시하는 구분자가 함께 전송될 것이다.
S400단계 및 S500단계에서, 아직 전송되지 않은 쓰기 데이터들(WD2,WD3)이 전송된다. S400단계에서, 제 2 쓰기 데이터(WD2), 그리고 전송되는 데이터가 쓰기 데이터라는 것을 표시하는 구분자가 전송된다. 그리고 S500단계에서, 제 3 쓰기 데이터(WD3), 그리고 전송되는 데이터가 쓰기 데이터라는 것을 표시하는 구분자가 전송될 것이다.
도 11은 도 2의 슬래이브 브릿지(220)에서 데이터를 수신하는 방법을 보여주는 순서도이다. 도 11을 참조하면, S1100단계에서, 슬래이브 브릿지(220)에 병합 쓰기 채널(S_MW)을 통하여 데이터가 수신된다. S1200단계에서, 슬래이브 브릿지(220)는 수신된 데이터 중 구분자를 체크한다.
S1300단계에서, 슬래이브 브릿지(220)는 체크된 구분자에 따라 수신된 데이터의 종류를 결정한다. 예를 들면, 도 3 내지 도 9를 참조하여 설명된 바와 같이, 구분자는 2 비트들로 구성될 수 있다. 그리고, 구분자에 따라 전송된 데이터에 쓰기 어드레스 및 쓰기 데이터가 모두 포함되는지, 쓰기 어드레스가 포함되는지, 또는 쓰기 데이터가 포함되는지 판별한다.
S1400단계에서, 슬래이브 브릿지(220)는 수신된 데이터를 메모리(250)에 전송한다. 예를 들면, 슬래이브 브릿지(220) 및 메모리(250)는 쓰기 어드레스 채널 및 쓰기 데이터 채널을 통해 연결될 것이다. 슬래이브 브릿지(220)는 수신된 데이터가 쓰기 어드레스인 경우, 쓰기 어드레스 채널을 통해 쓰기 어드레스를 전송할 것이다. 그리고, 슬래이브 브릿지(220)는 수신된 데이터가 쓰기 데이터인 경우, 쓰기 데이터 채널을 통해 쓰기 데이터를 전송할 것이다.
도 12는 본 발명의 제 2 실시 예에 따른 버스 시스템(2000)을 보여주는 블록도이다. 도 12를 참조하면, 마스터 브릿지(1120)가 마스터(1100)의 외부에 존재하고, 슬래이브 브릿지(1220)가 슬래이브(1200)의 외부에 존재하는 점을 제외하면 도 1과 마찬가지로 구성된다. 이하, 중복되는 설명은 생략될 것이다.
마스터(1100)는 쓰기 어드레스 채널(M_WA), 쓰기 데이터 채널(M_W) 및 쓰기 응답 채널(M_WR)을 통하여 마스터 브릿지(1120)에 연결된다. 슬래이브(1200)는 쓰기 어드레스 채널(S_WA), 쓰기 데이터 채널(S_W) 및 쓰기 응답 채널(S_WR)을 통하여 슬래이브 브릿지(1210)에 연결된다.
마스터 브릿지(1120)는 병합 쓰기 채널(M_MW) 및 쓰기 응답 채널(M_WR)을 통하여 버스(1300)에 연결된다. 그리고 슬래이브 브릿지(1210)는 병합 쓰기 채널(S_MW) 및 쓰기 응답 채널(M_WR)을 통하여 버스(1300)에 연결된다. 버스(1300)는 도 1의 버스(300)와 마찬가지로 구성될 것이다.
상기 마스터 브릿지(1120), 상기 슬래이브 브릿지(1220), 상기 병합 쓰기 채널들(M_MW,S_MW) 및 버스(1300)는 통합 인터커넥트(1500)를 구성할 것이다. 통합 인터커넥트(1500)는 쓰기 데이터 및 쓰기 어드레스를 전송하기 위한 통합 쓰기 채널(combined write channel)을 제공할 것이다. 즉, 병합 쓰기 채널(M_MW), 버스(1300) 및 병합 쓰기 채널(S_MW)이 연결되어 통합 쓰기 채널을 구성할 것이다. 그리고 마스터 브릿지(1120)는 통합 쓰기 채널을 통해 슬래이브 브릿지(1220)에 쓰기 데이터 및 쓰기 어드레스를 전송할 것이다.
버스(1300)는 디코더(미도시)를 포함할 것이다. 그리고 디코더는 마스터 브릿지(1120)로부터 수신된 쓰기 어드레스를 디코딩한다. 디코딩된 결과에 따라, 버스(300)는 병합 쓰기 채널들(M_MW,S_MW)을 연결할 것이다.
도 13은 도 12의 마스터(1100)에서 슬래이브(1200)로 쓰기 어드레스(WA) 및 쓰기 데이터들(WD1~WD3)이 전송되는 과정을 보여준다. 도 13을 참조하면, 마스터(1100)에서 마스터 브릿지(1120)로 쓰기 어드레스(WA) 및 제 1 내지 제 3 쓰기 데이터들(WD1~WD3)이 전송된다. 이때, 쓰기 어드레스(WA)는 쓰기 어드레스 채널(M_WA)을 통해 전송될 것이다. 쓰기 데이터들(WD1~WD3)은 쓰기 데이터 채널(M_W)을 통해 전송될 것이다.
마스터 브릿지(1120)는 제 1 버스트(T1) 동안에 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)를 함께 전송할 수 있는지 판별한다. 함께 전송될 수 있는 경우, 도 13에 도시된 바와 같이 마스터 브릿지(1120)는 제 1 버스트(T1)에서 쓰기 어드레스(WA) 및 제 1 쓰기 데이터(WD1)를 전송할 것이다. 그리고, 마스터 브릿지(1120)는 전송되는 데이터의 종류를 표시하기 위해 제 1 구분자(SP1)를 함께 전송할 것이다.
제 2 버스트(T2)에서, 마스터 브릿지(1120)는 제 2 쓰기 데이터(WD2), 및 전송되는 데이터가 쓰기 데이터임을 표시하는 제 2 구분자(SP2)를 전송할 것이다. 그리고 제 3 버스트(T3)에서, 마스터 브릿지(1120)는 제 3 쓰기 데이터(WD3) 및 제 2 구분자(SP2)를 전송할 것이다.
슬래이브 브릿지(1220)는 병합 쓰기 채널(S_MW)을 통하여 데이터를 수신한다. 슬래이브 브릿지(1220)는 수신된 데이터에 포함된 구분자를 체크하고, 체크 결과에 따라 수신되는 데이터가 쓰기 어드레스(WA)인지 쓰기 데이터인지 판별할 것이다.
그리고 슬래이브 브릿지(1220)는 쓰기 어드레스(WA)를 쓰기 어드레스 채널(S_WA)을 통해 슬래이브(1200)에 전송할 것이다. 슬래이브 브릿지(1220)는 쓰기 데이터들(WD1~WD3)을 쓰기 데이터 채널(S_W)을 통해 슬래이브(1200)에 전송할 것이다.
도 1에 도시되지 않으나, 마스터(1100)는 마스터 인터페이스(미도시)를 더 포함할 수 있다. 그리고 마스터(1100)는 마스터 인터페이스(미도시)를 이용하여 쓰기 어드레스(WA) 및 쓰기 데이터들(WD1~WD3)을 마스터 브릿지(1120)에 전송할 수 있다. 마찬가지로, 도 1에 도시되지 않으나, 슬래이브(1200)는 슬래이브 인터페이스(미도시)를 더 포함할 수 있다. 슬래이브 인터페이스는 쓰기 어드레스(WA) 및 쓰기 데이터들(WD1~WD3)을 슬래이브 브릿지(1220)로부터 수신할 것이다.
본 발명의 실시 예에 따르면, 병합 쓰기 채널들(M_MW,S_MW) 그리고 버스를 경유하는 통합 쓰기 채널을 통해 마스터로부터 슬래이브에 쓰기 어드레스 및 쓰기 데이터가 전송된다. 본 발명의 실시 예에 따르면, 쓰기 어드레스 및 쓰기 데이터가 서로 다른 채널을 통해 전송되는 경우보다 집적도가 향상된 버스 시스템이 제공된다.
본 발명의 실시 예에 따르면, 쓰기 어드레스 및 쓰기 데이터는 동일한 채널을 통하여 마스터로부터 슬래이브에 전송된다. 그러므로, 쓰기 어드레스 및 쓰기 데이터가 서로 다른 채널들을 통하여 전송되는 경우와 다르게, 마스터는 식별자를 발생하지 않을 수 있다. 따라서, 집적도가 향상된 버스 시스템이 제공된다.
100,1100: 마스터
120,1120: 마스터 브릿지
200,1200: 슬래이브
210,1220: 슬래이브 브릿지
300,1300: 버스
M_MW,S_MW: 병합 쓰기 채널들
M_WR,S_WR: 쓰기 응답 채널들
WA: 쓰기 어드레스
WD1~WD3: 제 1 내지 제 3 쓰기 데이터들
SP1~SP3: 제 1 내지 제 3 구분자
120,1120: 마스터 브릿지
200,1200: 슬래이브
210,1220: 슬래이브 브릿지
300,1300: 버스
M_MW,S_MW: 병합 쓰기 채널들
M_WR,S_WR: 쓰기 응답 채널들
WA: 쓰기 어드레스
WD1~WD3: 제 1 내지 제 3 쓰기 데이터들
SP1~SP3: 제 1 내지 제 3 구분자
Claims (10)
- 제 1 쓰기 데이터 채널을 통해 쓰기 데이터를 내부적으로 전달하고, 제 1 어드레스 채널을 통해 어드레스를 내부적으로 전달하는 마스터; 및
상기 마스터로부터 슬래이브로 하나의 채널을 통해 상기 쓰기 데이터 및 상기 어드레스를 전달하는 버스를 포함하는 버스 시스템. - 제 1 항에 있어서,
상기 마스터는
상기 쓰기 데이터 및 상기 어드레스를 발생하는 마스터 블록; 및
상기 마스터 블록으로부터, 상기 제 1 쓰기 데이터 채널을 통해 상기 쓰기 데이터를 수신하고, 상기 제 1 어드레스 채널을 통해 상기 어드레스를 수신하는 마스터 브릿지를 포함하되,
상기 마스터 브릿지는 상기 하나의 채널을 통해 상기 쓰기 데이터 및 상기 어드레스를 전송하는 버스 시스템. - 제 1 항에 있어서,
상기 슬래이브는 제 2 쓰기 데이터 채널을 통해 상기 버스로부터 수신된 상기 쓰기 데이터를 내부적으로 전달하고, 제 2 어드레스 채널을 통해 상기 버스로부터 수신된 상기 어드레스를 내부적으로 전달하는 버스 시스템. - 제 3 항에 있어서,
상기 슬래이브는
상기 하나의 채널을 통해 상기 쓰기 데이터 및 상기 어드레스를 수신하는 슬래이브 브릿지; 및
상기 슬래이브 브릿지로부터, 상기 제 2 쓰기 데이터 채널을 통해 상기 쓰기 데이터를 수신하고, 상기 제 2 어드레스 채널을 통해 상기 어드레스를 수신하는 슬래이브 블록을 포함하는 버스 시스템. - 제 1 항에 있어서,
상기 쓰기 데이터 및 상기 어드레스는 버스트(burst) 단위로 전송되고,
상기 마스터는 상기 쓰기 데이터의 크기에 기반하여 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송할지 여부를 결정하는 버스 시스템. - 제 5 항에 있어서,
상기 마스터는 상기 쓰기 데이터의 크기 및 상기 어드레스의 크기가 상기 하나의 채널의 데이터 폭보다 작은 경우, 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송하는 버스 시스템. - 제 5 항에 있어서,
상기 쓰기 데이터는 바이트 라인 단위로 전송되고,
상기 하나의 채널은 복수의 바이트 라인들로 구분되며,
상기 어드레스는 상기 복수의 바이트 라인들 중 상기 쓰기 데이터가 전송되는 바이트 라인들에 대한 정보를 포함하는 버스 시스템. - 제 7 항에 있어서,
상기 마스터는 상기 어드레스에 기반하여 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송할지 여부를 결정하는 버스 시스템. - 쓰기 데이터 및 어드레스를 발생하는 마스터;
상기 마스터로부터, 상기 쓰기 데이터를 제 1 쓰기 데이터 채널을 통하여 수신하고, 상기 어드레스를 제 1 어드레스 채널을 통하여 수신하는 통합 인터커넥트; 및
상기 통합 인터커넥트로부터, 상기 쓰기 데이터를 제 2 쓰기 데이터 채널을 통하여 수신하고, 상기 어드레스를 제 2 어드레스 채널을 통하여 수신하는 슬래이브를 포함하되,
상기 통합 인터커넥트는 상기 쓰기 데이터 및 상기 어드레스를 전송하는 통합 쓰기 채널을 포함하는 버스 시스템. - 제 9 항에 있어서,
상기 쓰기 데이터 및 어드레스는 버스트(burst) 단위로 전송되고,
상기 통합 인터커넥트는 한 번의 버스트 동안에 상기 쓰기 데이터 및 상기 어드레스를 함께 전송하는 버스 시스템.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020100102557A KR20120041008A (ko) | 2010-10-20 | 2010-10-20 | 버스 시스템 |
| US13/272,934 US20120102250A1 (en) | 2010-10-20 | 2011-10-13 | Bus system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020100102557A KR20120041008A (ko) | 2010-10-20 | 2010-10-20 | 버스 시스템 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20120041008A true KR20120041008A (ko) | 2012-04-30 |
Family
ID=45973948
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020100102557A Withdrawn KR20120041008A (ko) | 2010-10-20 | 2010-10-20 | 버스 시스템 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20120102250A1 (ko) |
| KR (1) | KR20120041008A (ko) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102018001574B4 (de) * | 2018-02-28 | 2019-09-05 | WAGO Verwaltungsgesellschaft mit beschränkter Haftung | Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems |
| US11487683B2 (en) | 2020-04-15 | 2022-11-01 | AyDeeKay LLC | Seamlessly integrated microcontroller chip |
| WO2023028741A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种高级扩展接口总线及片上系统 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3784994B2 (ja) * | 1999-05-27 | 2006-06-14 | 株式会社東芝 | データ処理装置 |
| US7143221B2 (en) * | 2004-06-08 | 2006-11-28 | Arm Limited | Method of arbitrating between a plurality of transfers to be routed over a corresponding plurality of paths provided by an interconnect circuit of a data processing apparatus |
| US7254658B2 (en) * | 2004-06-08 | 2007-08-07 | Arm Limited | Write transaction interleaving |
| US7174403B2 (en) * | 2005-02-24 | 2007-02-06 | Qualcomm Incorporated | Plural bus arbitrations per cycle via higher-frequency arbiter |
-
2010
- 2010-10-20 KR KR1020100102557A patent/KR20120041008A/ko not_active Withdrawn
-
2011
- 2011-10-13 US US13/272,934 patent/US20120102250A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| US20120102250A1 (en) | 2012-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7171526B2 (en) | Memory controller useable in a data processing system | |
| CN101288057B (zh) | 基于传送方向及耗用带宽的加权总线仲裁 | |
| CN101510185B (zh) | 一种高速总线向低速总线写入、读取数据的方法和装置 | |
| US7631110B2 (en) | Address assignment through device ID broadcast | |
| CN100474280C (zh) | 系统总线控制装置、集成电路和数据处理系统 | |
| US9021169B2 (en) | Bus system including ID converter and converting method thereof | |
| WO2005091812A2 (en) | Pvdm (packet voice data module) generic bus protocol | |
| JP2024515055A (ja) | シームレスに集積されたマイクロコントローラチップ | |
| JP4198376B2 (ja) | バスシステム及びバスシステムを含む情報処理システム | |
| US6532511B1 (en) | Asochronous centralized multi-channel DMA controller | |
| CN106326130A (zh) | 寄存器地址空间的控制方法、控制器及片上系统 | |
| US7689758B2 (en) | Dual bus matrix architecture for micro-controllers | |
| JPH04350754A (ja) | データチャンネルに対するインターフェースを含むワークステーションまたは類似のデータ処理システム | |
| JP2007501472A (ja) | 転送ディスクリプタ用メモリを備えるusbホストコントローラ | |
| US7062588B2 (en) | Data processing device accessing a memory in response to a request made by an external bus master | |
| JP2004133942A (ja) | データバスシステム及びバス間クロスアクセス方法 | |
| US20120102250A1 (en) | Bus system | |
| US6622194B1 (en) | Efficient use of multiple buses for a scalable and reliable high-bandwidth connection | |
| US8244994B1 (en) | Cooperating memory controllers that share data bus terminals for accessing wide external devices | |
| JPH04350753A (ja) | 直接メモリアクセス制御器およびデータチャンネルへのインターフェース装置を備えたワークステーション | |
| KR100475438B1 (ko) | 데이터 버스 시스템 및 버스간 크로스 액세스 방법 | |
| CN101261610B (zh) | 多主设备无冲突访问从设备的方法及装置 | |
| KR101226389B1 (ko) | 시스템 온 칩에서의 독점 접근 제어 방법 및 시스템 | |
| US20060277326A1 (en) | Data transfer system and method | |
| US8239603B2 (en) | Serialized secondary bus architecture |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20101020 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination | ||
| WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |