KR100672064B1 - 버스 컨트롤러 - Google Patents

버스 컨트롤러 Download PDF

Info

Publication number
KR100672064B1
KR100672064B1 KR1020050001727A KR20050001727A KR100672064B1 KR 100672064 B1 KR100672064 B1 KR 100672064B1 KR 1020050001727 A KR1020050001727 A KR 1020050001727A KR 20050001727 A KR20050001727 A KR 20050001727A KR 100672064 B1 KR100672064 B1 KR 100672064B1
Authority
KR
South Korea
Prior art keywords
data
bus controller
bus
storage unit
central processing
Prior art date
Application number
KR1020050001727A
Other languages
English (en)
Other versions
KR20060081236A (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 KR1020050001727A priority Critical patent/KR100672064B1/ko
Publication of KR20060081236A publication Critical patent/KR20060081236A/ko
Application granted granted Critical
Publication of KR100672064B1 publication Critical patent/KR100672064B1/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

중앙처리장치의 동작 부담을 감소시킬 수 있는 버스 컨트롤러가 개시된다. 본 버스 컨트롤러는 중앙처리장치와 슬레이브 장치간의 통신채널인 버스를 제어하는 버스 컨트롤러에 있어서, 버스를 통해서 슬레이브 장치와 데이터를 송수신하고, 외부장치와 데이터를 송수신하기 위한 입출력부; 슬레이브 장치로부터 수신되는 데이터를 저장하기 위한 제1저장부; 및 제1저장부에 저장된 데이터 량을 계산하며, 계산된 데이터 량이 제1기준값에 도달하면, 제1저장부에 저장된 데이터를 중앙처리장치가 지정하는 외부장치로 송신하도록 입출력부를 제어하는 제어부;를 포함하는 버스 컨트롤러를 제공한다.
I2C, 버스, 컨트롤러

Description

버스 컨트롤러{BUS CONTROLLER}
도1a는 종래의 I2C 버스 컨트롤러의 기능 블록도,
도1b는 종래의 I2C 버스 컨트롤러에 사용되는 클록 신호와 데이터 신호를 나타낸 도,
도2은 본 발명에 따른 버스 컨트롤러가 구현된 일 실시예의 기능 블록도,
도3는 본 발명의 일 실시예에 따른 버스 컨트롤러의 기능 블록도,
도4는 본 발명의 일 실시예에 따른 버스 컨트롤러의 동작 흐름도, 및
도5는 본 발명의 일 실시예에 따른 버스 컨트롤러의 동작 흐름도이다.
* 도면의 주요부분에 대한 설명 *
101, 201: 중앙처리장치 103: 버스 컨트롤러
105: 레지스터 군 107: 클록신호 발생부
109: 데이터 신호 발생부 113, 115, 213, 215: 버스
111a, 111b, 211a, 211b: 슬레이브 장치 203, 303: 버스 컨트롤러
217: 외부장치 304: 저장부
304a: 제1저장부 304b: 제2저장부
306: 제어부
306a: 소스 어드레스 레지스터
306b: 목적지 어드레스 레지스터
306c: RX 카운터 레지스터
306d: TX 카운터 레지스터
306e: RX 메모리 폭 레지스터
306f: TX 메모리 폭 레지스터
본 발명은 버스 컨트롤러에 관한 것으로, 상세하게는 중앙처리장치의 동작 부담(load)을 감소시킬 수 있는 버스 컨트롤러에 관한 것이다.
버스 컨트롤러는 중앙처리장치와 그에 종속된 슬레이브 장치간의 통신채널인 버스를 제어한다.
종래의 대표적인 버스 컨트롤러로서 I2C 버스 컨트롤러가 있다. I2C는 집적 회로를 연결하기 위해서 필립스 반도체사(Philips Semiconductors)에 의해 개발된 버스이다. 표준 I2C는 멀티-마스터(multi-master) 버스로서 동작한다. 다수의 집적 회로는 I2C 버스에 의해 연결될 수 있으며, 각각은 데이터 전송을 개시하는 마스터로서 작용할 수 있다. 표준 모드에서 직렬 8비트 양방향 데이터 전송은 100kbit/s이고, 고속 모드(fast mode)에서 400kbit/s까지 될 수 있다. I2C 버스는 2개의 버스 라인을 포함할 수 있으며, 직렬 데이터 라인(serial data line: SDL)과 직렬 클록 라인(serial clock line: SCL)이 그것이다.
도1a는 종래의 I2C 버스 컨트롤러(103)의 기능 블록도이다. 도1a를 참조하면, 종래의 버스 컨트롤러(103)는 일련의 레지스터 군(105), 클록신호 발생부(107), 및 데이터 신호 발생부(109)를 포함한다.
레지스터 군(105)은, 슬레이브 장치(111a, 111b)로부터 읽어온 데이터를 저장하는 RX 데이터 레지스터, 슬레이브 장치(111a, 111b)로 송신할 데이터를 저장하는 TX 데이터 레지스터, 및 컨트롤러(103)의 동작 상태를 나타내는 상태 레지스터를 포함한다.
도1b는 종래의 I2C 버스 컨트롤러에 사용되는 클록 신호와 데이터 신호를 나타낸 도이다.
도1b를 참조하면, 클록신호는 주기적인 펄스로 이루어져있고, 데이터 신호는, 스타트 신호, 슬레이브 장치의 주소, 확인(ACK)신호/비확인(NACK) 신호, 데이터를 나타내는 신호로 이루어져 있다. 한편, 도1b의 데이터 신호는 주소를 나타내는 비트(1-7), 쓰기와 읽기를 나타내는 비트(8), 확인/비확인을 나타내는 비트(9)로 구성된다.
이하, 슬레이브 장치(111a, 111b)로부터 데이터를 읽어오는 경우에, 종래의 I2C 버스 컨트롤러(103)의 동작을 설명한다.
중앙처리장치(101)는 데이터를 읽어올 슬레이브 장치의 주소와, 읽기 명령, 슬레이브 장치로부터 읽어온 데이터를 저장하기 위한 외부장치(미도시)의 주소를 버스 컨트롤러(103)로 송신한다. 이에 대응하여, 버스 컨트롤러(103)는 중앙처리장치(101)가 주소 지정한 슬레이브 장치로 도1b에 도시된 바와 같은 클록 신호와 데 이터 신호를 슬레이브 장치(예를 들면, 111a)로 송신한다. 물론 이 경우, 데이터 신호의 8번째 비트는 읽기를 나타낸다.
상술한 SDA 신호에서 주소 지정된 슬레이브 장치(111a)는, 데이터 신호를 받으면 확인 신호/비확인 신호를 버스 컨트롤러(103)로 보낸다.
슬레이브 장치(111a)로부터 수신한 확인/비확인 신호는 상태 레지스터에 저장된다. 예를 들면, "1"이면 확인, "0"이면 비확인을 의미한다.
컨트롤러(103)는 슬레이브 장치(111a)로부터 확인 신호를 수신하면, 중앙처리장치(101)로 인터럽트 신호를 송신한다.
중앙처리장치(101)는, 인터럽트 신호를 수신하면, 그 다음 데이터를 외부장치(미도시)로부터 버스 컨트롤러(103)로 보내도록 한다.
즉, 중앙처리장치(101)는, 인터럽트 신호를 수신할 때마다, 버스 컨트롤러로 데이터를 송신하도록 한다.
일반적으로, I2C 버스는 8비트씩의 데이터를 송신하므로, 8비트 데이터가 버스를 통해 송수신될 때마다, 버스 컨트롤러(103)는 확인/비확인 신호에 대응하여 중앙처리장치(101)에 인터럽트 신호를 송신하게 된다. 따라서, 중앙처리장치(101)는 수행중인 동작을 자주 중단해야 하는 문제가 발생된다.
다른 종래의 방식에서는, 인터럽트가 아닌 폴링(polling)방식을 취하기도 한다. 인터럽트 방식에서는, 버스 컨트롤러(103)가 인터럽트 신호를 발생하여 중앙처리장치(101)로 송신함으로써 데이터 송수신의 완료를 알려주지만, 폴링 방식에서는 중앙처리장치(101)가 버스 컨트롤러(103)의 상태 레지스터의 상태를 주기적 또는 비주기적으로 체크함으로써, 데이터가 송수신 완료되었는지를 확인한다. 따라서, 인터럽트 방식과 마찬가지로, 중앙처리장치(101)는 수행중인 동작을 자주 중단해야 하는 문제가 발생한다.
상술한 바와 같이, 종래의 버스 컨트롤러에서는 바이트(byte)단위의 데이터에 대한 인터럽트 처리나 상태 레지스터를 폴링하는 등 매번 중앙처리장치의 개입에 의해 제어되어야 하며, 이는 중앙처리장치의 동작 부담을 가중시킨다. 또한, 원하는 데이터의 크기가 바이트 단위가 아닐 경우 별도로 데이터 크기로 제어하기 위한 중앙처리장치의 작업이 추가되어, 중앙처리장치의 동작 부담을 한층 가중시킨다.
발명은 상술한 바와 같은 필요에 부응하기 위해 제안된 것으로서, 중앙처리장치의 동작 부담(load)을 감소시킬 수 있는 버스 컨트롤러를 제공하는 것이다.
상술한 목적을 달성하기 위해, 본 발명은 중앙처리장치와 슬레이브 장치간의 통신채널인 버스를 제어하는 버스 컨트롤러에 있어서, 버스를 통해서 슬레이브 장치와 데이터를 송수신하고, 외부장치와 데이터를 송수신하기 위한 입출력부; 슬레이브 장치로부터 수신되는 데이터를 저장하기 위한 제1저장부; 및 제1저장부에 저장된 데이터 량을 계산하며, 계산된 데이터 량이 제1기준값에 도달하면, 제1저장부에 저장된 데이터를 중앙처리장치가 지정하는 외부장치로 송신하도록 입출력부를 제어하는 제어부;를 포함하는 버스 컨트롤러를 제공한다.
또한, 상술한 버스 컨트롤러는 외부장치로부터 수신되는 데이터를 저장하기 위한 제2저장부를 더 포함하며, 제어부는 제2저장부에 저장된 데이터 량을 계산하고, 계산된 데이터 량이 제2기준값에 도달하면, 제2저장부에 저장된 데이터를 중앙처리장치가 지정하는 슬레이브 장치로 송신하도록 상기 입출력부를 제어할 수 있다.
상술한 제1기준값은, 버스 컨트롤러와 외부장치와의 통신채널의 전송용량에 따라서 조절가능하다.
상술한 제2기준값은, 버스의 전송용량에 따라서 조절가능하다.
본 발명의 다른 목적 및 추가적인 특징은 첨부 도면과 함께 후술하는 상세한설명을 읽으면 명확해질 것이다.
도2는 본 발명에 따른 버스 컨트롤러가 구현된 일 실시예의 기능 블록도이다.
도2을 참조하면, 본 실시예는 중앙처리장치(201), 버스 컨트롤러(203), 버스(213, 215), 및 슬레이브 장치(211a, 211b)를 포함한다.
버스 컨트롤러(203)는, 버스(211a, 211b)의 프로토콜에 따라서, 버스상으로 데이터를 송신하거나 버스로부터 데이터를 수신하는 동작을 제어할 수 있다.
일 실시예에서, 버스는 I2C 버스이다. 상술한 바와 같이 표준 모드에서 직렬 8비트 양방향 데이터 전송은 100kbit/s이고, 고속 모드(fast mode)에서 400kbit/s까지 될 수 있다.
중앙처리장치(201)는 슬레이브 장치(211a, 211b)의 마스터로서의 역활을 할 수 있다.
슬레이브 장치(211a, 211b)는 예를 들면 센서, EEPROM, OCP(Operator control panel), A/D 컨버터, 또는 스위치등일 수 있다.
슬레이브 장치(211a)가 EEPROM인 경우를 예로 들어서 버스 컨트롤러(203)의 역할을 설명한다.
마스터인 중앙처리장치(201)가 슬레이브 장치(211a)로부터 데이터를 읽어와서, 외부장치(217)에 저장하고자 하는 경우에, 중앙처리장치(201)는 버스 컨트롤러(203)로 읽기 명령, 데이터를 읽어올 슬레이브 장치(211a)의 주소, 및 읽어온 데이터를 저장할 외부장치의 주소를 송신한다.
버스 컨트롤러(203)는 중앙처리장치의 명령에 따라서, 주소 지정된 슬레이브 장치(211a)로부터 데이터를 읽는다.
버스(215)의 전송용량은, 컨트롤러(203)와 외부장치(217)간의 전송용량보다 일반적으로 작다. 따라서, 본 버스 컨트롤러(203)는 슬레이브 장치(211a)로부터 읽어온 데이터를 일시 저장해 둔다.
버스 컨트롤러(203)는, 일시 저장되는 데이터의 량이, 버스 컨트롤러(203)와 외부장치(217)간의 전송용량에 도달하는 경우, 읽어온 데이터를 외부장치(217)로 전송한다.
한편, 마스터인 중앙처리장치(201)가 외부장치(217)로부터 데이터를 읽어와서, 슬레이브 장치(211b)에 저장하고자 하는 경우에는, 중앙처리장치(201)는 버스 컨트롤러(203)로 쓰기 명령, 데이터를 읽어올 외부장치(217)의 주소, 및 읽어온 데 이터를 저장할 슬레이브 장치(211b)의 주소를 송신한다.
버스 컨트롤러(203)는 중앙처리장치(201)의 명령에 따라서, 주소 지정된 외부장치(217)로부터 데이터를 읽는다.
상술한 바와 같이, 버스(215)의 전송용량이, 버스 컨트롤러(203)와 외부장치(217)간의 전송용량보다 일반적으로 작다. 따라서, 본 버스 컨트롤러(203)는 외부장치(217)로부터 읽어온 데이터를 일시 저장해 둔다.
버스 컨트롤러(203)는, 일시 저장되는 데이터 중에서, 버스 컨트롤러(203)와 슬레이브 장치(211b)간의 전송용량에 해당되는 량의 데이터를, 슬레이브 장치(211b)로 전송할 수 있다.
도3는 본 발명의 일 실시예에 따른 버스 컨트롤러의 기능 블록도이다.
도3를 참조하여 본 발명에 따른 버스 컨트롤러(301)의 기능을 상세히 설명한다.
본 버스 컨트롤러(301)는 입출력부(302), 저장부(304), 및 제어부(306)를 포함할 수 있다. 본 발명의 특징과 특히 관련성이 없는 구성요소들은 본 발명의 요지를 흐릴 수 가 있으므로 도시하지 않았다.
입출력부(302)는 버스를 통해서 슬레이브 장치(211a, 211b)와 데이터를 송수신할 수 있다. 또한, 입출력부(302)는 외부장치(217)와 데이터를 송수신할 수 있다.
한편, 입출력부(302)는 중앙처리장치(201)로부터의 명령이나 주소등을 수신받을 수 있다.
본 실시예에서, 입출력부(302)는, 슬레이브 장치와의 입출력 인터페이스부, 외부장치와의 입출력 인터페이스부, 및 중앙처리장치와의 입출력 인터페이스부 역할을 수행하는 것으로 설명하였으나, 다른 실시예에서는 각각의 기능을 수행하는 독립적인 부분으로 별도로 구성될 수 있음은 당업자에게 자명하다. 일 실시예에서, 입출력부(302)는, 슬레이브 장치와의 입출력 인터페이스부; 및 외부장치 및 중앙처리장치와의 입출력 인터페이스부;로 구성되는 것이 바람직하다.
저장부(304)는 입출력부(302)를 통해서 송수신되는 데이터를 일시적으로 저장할 수 있다.
일 실시예에서, 저장부(304)는 슬레이브 장치(211a, 211b)로부터 읽어온 데이터를 저장하는 제1저장부(304a) 및 슬레이브 장치(211a, 211b)로 송신될 데이터를 저장하는 제2저장부(304b)로 구성될 수 있다.
도3에 도시된 제1저장부(304a)의 기능을 설명한다.
제1저장부(304a)는 도시된 바에 따르면 여러개의 블록들, 즉, 가로로 4개의 블록과 세로로 8개의 블록으로 도시되어 있다. 한편, 본원 명세서에서는 가로 방향의 블록의 수를 제1저장부의 폭이라고 부르고, 세로 방향의 블록의 수를 제1저장부의 깊이라고 부르기로 한다.
일 실시예에서, 제1저장부(304a)를 이루는 각각의 블록은 8bit(1byte)의 데이터를 저장할 수 있다. 따라서, 제1저장부(304a)의 폭은 32bit(1 word)의 데이터를 저장할 수 있다. 제1저장부(304a)가 저장할 수 있는 데이터는 8word 분량이다.
본 실시예에서, 제2저장부(304b)의 구조는 제1저장부(304a)의 구조와 유사하 므로 그 설명을 생략한다.
일 실시예에서, 저장부(304a, 304b)는 선입선출(fifo)구조를 가지는 메모리인 것이 바람직하다.
예를 들어, 슬레이브 장치가 EEPROM이고 EEPROM로부터 1 byte 단위로 읽어 들인 데이터를 주소가 0x8000_0000인 외부장치 SDRAM에 저장하고자 할 경우(예 32 바이트 전송), 외부장치와 버스 컨트롤러간의 통신 채널이 8word burst를 지원할 수 있다면, 제1저장부/제2저장부의 깊이와 폭은 8 ×1 word로 구성할 수 있다. 이러한 구성에서, 슬레이브 장치로부터 읽어 들인 데이터를 순차적으로 제1저장부에 스택(stack)하고 총 8word의 데이터가 저장되면 저장된 데이터를 외부장치로 송신한다.
SDRAM 에서 읽어 들인 데이터는 제2저장부에 저장하고, 그 중에 1 바이트 분량의 데이터를 EEPROM으로 송신한다. 따라서, 중앙처리장치는 송수신되는 데이터 크기에 대한 별도의 제어가 불필요하게 된다.
한편, 상술한 바와 같은 저장부(304)의 블록은 설명의 편의상 나타낸 것이며, 하드웨어 구조와 반드시 일치하는 것은 아니다. 또한, 블록이 저장할 수 있는 데이터의 크기도 8비트에 한정되는 것은 아니다.
제어부(306)는 버스 컨트롤러(303)의 전반적인 동작을 제어한다.
한편, 제어부(306)는 중앙처리장치(201)가 주소 지정한 슬레이브 장치로 부터 데이터를 읽어와서 제1저장부(304a)에 저장하도록 입출력부(302) 및 제1저장부(304a)를 제어할 수 있다.
또한, 제어부(306)는 제1저장부(304a)에 저장된 데이터의 량을 계산할 수 있다.
한편, 제어부(306)는 계산된 데이터 량이 제1기준값에 도달하면, 제1저장부(304a)에 저장된 데이터를 외부장치(217)로 송신하도록 입출력부(302)를 제어할 수 있다.
이 경우 제1기준값은, 버스 컨트롤러(303)와 외부장치(217)간의 전송용량에 따라서 정해질 수 있다.
예를 들면, 버스 컨트롤러(303)와 외부장치(217)간의 통신 채널 용량이 8word(즉 8×32bit)라면, 제1기준값은 8word로 정해질 수 있다.
제1기준값이 8word로 정해진 경우, 제어부(306)는 제1저장부에 8word 분량의 데이터가 저장되는지 여부를 검출하고, 8word에 도달하는 경우, 제1저장부(304a)에 저장된 데이터를 외부장치(217)로 송신하도록 제1저장부(304a) 및 입출력부(302)를 제어할 수 있다.
한편, 제어부(306)는 중앙처리장치(201)가 주소 지정한 외부장치(217)로부터 데이터를 수신하여 제2저장부(304b)에 저장하도록 입출력부(302) 및 제2저장부(304b)를 제어할 수 있다.
또한, 제어부(306)는 제2저장부(304b)에 저장된 데이터의 량을 계산할 수 있다.
한편, 제어부(306)는 계산된 데이터 량이 제2기준값에 도달하면, 제2저장부(304b)에 저장된 데이터를, 중앙처리장치(201)가 주소 지정한 슬레이브 장치(211a, 211b)로 송신하도록 입출력부(302)를 제어할 수 있다.
이 경우 제2기준값은, 버스의 전송용량에 따라서 정해질 수 있다.
예를 들면, 전송용량이 8비트인 I2C 버스인 경우, 제2기준값은 8비트일 수 있다.
제2기준값이 8비트로 정해진 경우, 제어부(306)는 제2저장부에 8비트 데이터가 저장되는지 여부를 검출하고, 8비트에 도달하는 경우, 제2저장부(304b)에 저장된 데이터를 슬레이브 장치로 송신하도록 제2저장부(304b) 및 입출력부(302)를 제어할 수 있다.
한편, 일 실시예에서, 제어부(306)는 도3에 도시된 바와 같은 레지스터 군을 포함할 수 있다.
제어부(306)는 소스 어드레스 레지스터(306a), 목적지 어드레스 레지스터(306b), RX 카운터 레지스터(306c), TX 카운터 레지스터(306d), RX 메모리 폭 레지스터(306e), 및 TX 메모리 폭 레지스터(306f)로 이루어진 일련의 레지스터 군을 포함한다.
소스 어드레스 레지스터(306a)는, 데이터를 읽어올 슬레이브 장치의 주소 또는 데이터를 읽어올 외부장치의 주소를 저장한다.
목적지 어드레스 레지스터(306b)는, 데이터를 쓸 슬레이브 장치의 주소 또는 데이터를 송신할 외부장치의 주소를 저장한다.
한편, 소스 어드레스 레지스터(306a)와 목적지 어드레스 레지스터(306b)에 저장되는 주소는, 중앙처리장치(201)로부터 송신받은 주소이다.
RX 카운터 레지스터(306c)는 제1저장부(304a)에 저장되는 데이터 량을 카운팅하며, TX 카운터 레지스터(306d)는 제2저장부(304b)에 저장되는 데이터 량을 카운팅한다.
RX 메모리 폭 레지스터(306e)는 제1저장부(304a)의 메모리 폭의 크기를 저장하고, TX 메모리 폭 레지스터(306f)는 제2저장부(304b)의 메모리 폭의 크기를 저장한다.
RX 메모리 폭 레지스터(306e)와 TX 메모리 폭 레지스터(306f)에 저장되는 값은, 중앙처리장치(201)로부터 송신될 수 있다. 바람직하게는, 사용자에 의해 조정될 수 있는 값이다.
변형예로서, 제어부(306)는 제1저장부와 제2저장부의 깊이를 저장하는 레지스터를 포함할 수 있다.
도4는 본 발명의 일 실시예에 따른 버스 컨트롤러의 동작 흐름도이다. 특히, 중앙처리장치의 명령에 따라서 슬레이브 장치로부터 데이터를 읽어오는 동작의 흐름을 나타낸 것이다.
단계(S401)에서는, 중앙처리장치(201)가 특정 슬레이브 장치로부터 데이터를 읽어오라는 명령을 버스 컨트롤러에 송신한다. 이 단계(S401)에서는, 데이터를 읽어야 할 슬레이브 장치의 주소와 읽어온 데이터를 저장할 외부장치의 주소도 같이 버스 컨트롤러(303)에 송신된다.
단계(S403)에서는, 버스 컨트롤러(303)가 주소 지정된 슬레이브 장치로부터 데이터를 읽어와서 저장부(304)에 저장한다. 바람직하게는 제1저장부(304)에 저장 될 수 있다.
단계(S407)에서는, 제어부(306)가 저장부(304), 특히 제1저장부(304a)에 저장된 데이터 량을 계산한다. 바람직하게는 RX 카운터 레지스터(306c)가 데이터 량을 계산한다.
단계(S409)에서는, 제어부(306)가 계산된 데이터 량이 제1기준값에 도달하는지 여부를 판단한다.
단계(S411)에서는, 단계(S409)에서 제1기준값에 도달하였다고 판단된 경우, 제1저장부(304a)에 저장된 데이터를 외부장치로 송신한다.
도5는 본 발명의 일 실시예에 따른 버스 컨트롤러의 동작 흐름도이다. 특히, 중앙처리장치의 명령에 따라서 슬레이브 장치로 데이터를 쓰는 동작의 흐름을 나타낸 것이다.
단계(S501)에서는, 중앙처리장치(201)가 특정 슬레이브 장치로 데이터를 쓰라는 명령을 버스 컨트롤러에 송신한다. 이 단계(S501)에서는, 데이터를 읽어야 할 외부장치의 주소와 읽어온 데이터를 저장할 슬레이브 장치의 주소도 같이 버스 컨트롤러(303)에 송신된다.
단계(S503)에서는, 버스 컨트롤러(303)가 주소 지정된 외부장치로부터 데이터를 읽어와서 저장부(304)에 저장한다. 바람직하게는 제2저장부(304b)에 저장될 수 있다.
단계(S509)에서는, 제어부(306)가 저장부(304), 특히 제2저장부(304)에 저장된 데이터 량을 계산한다. 바람직하게는 TX 카운터 레지스터(306d)가 데이터 량을 계산한다.
단계(S509)에서는, 제어부(306)가 계산된 데이터 량이 제2기준값에 도달하는지 여부를 판단한다.
단계(S511)에서는, 단계(S509)에서 제2기준값에 도달하였다고 판단된 경우, 제2저장부(304)에 저장된 데이터를 슬레이브 장치로 송신한다.
상술한 바와 같이 본 발명에 따른 버스 컨트롤러는, 버스를 통해서 송수신되는 데이터를 일시 저장한 후, 통신 채널에 맞도록 송수신할 수 있어서, 중앙처리장치의 동작 부담(load)을 감소시킬 수 있다.
또한, 본 발명에 따르면, I2C 슬레이브 장치와 데이터를 송수신해야 하는 경우, 중앙처리장치의 개입을 최소화 함으로써 중앙처리장치의 동작 부담을 줄일 수 있다.
또한, 본 발명에 따르면, 임의의 저장 공간에 원하는 데이터 전송크기로 데이터의 전송이 가능하며 이로 인한 별도의 추가적인 데이터 크기 제어가 불필요하다. 따라서, 중앙처리장치의 동작 부담을 줄일 수 있다.
비록 실시예가 첨부된 도면을 참고로 설명되었지만 본 방법은 상술한 실시예에 국한되지 않고 다양한 다른 변화 및 변경이 당업자에 의해 본 발명의 정신 및 범위를 벗어나지 않고 이루어질 수 있을 것이다. 그러한 모든 변화 및 변경은 첨부된 청구범위에 의해 정의된 본 발명의 범위 내에 포함되도록 한다.

Claims (4)

  1. 중앙처리장치와 슬레이브 장치간의 통신채널인 버스를 제어하는 버스 컨트롤러에 있어서,
    상기 버스를 통해서 슬레이브 장치와 데이터를 송수신하고, 외부장치와 데이터를 송수신하기 위한 입출력부;
    상기 슬레이브 장치로부터 수신되는 데이터를 저장하기 위한 제1저장부; 및
    상기 제1저장부에 저장된 데이터 량을 계산하며, 계산된 상기 데이터 량이 제1기준값에 도달하면, 상기 제1저장부에 저장된 데이터를 중앙처리장치가 지정하는 외부장치로 송신하도록 상기 입출력부를 제어하는 제어부;를 포함하는 버스 컨트롤러.
  2. 제1항에 있어서,
    외부장치로부터 수신되는 데이터를 저장하기 위한 제2저장부를 더 포함하며,
    상기 제어부는 상기 제2저장부에 저장된 데이터 량을 계산하고, 계산된 상기 데이터 량이 제2기준값에 도달하면, 상기 제2저장부에 저장된 데이터를 중앙처리장치가 지정하는 슬레이브 장치로 송신하도록 상기 입출력부를 제어하는 것인 버스 컨트롤러.
  3. 제1항에 있어서,
    상기 제1기준값은, 상기 버스 컨트롤러와 상기 외부장치와의 통신채널의 전 송용량에 따라서 조절가능한 것인 버스 컨트롤러.
  4. 제2항에 있어서,
    상기 제2기준값은, 상기 버스의 전송용량에 따라서 조절가능한 것인 버스 컨트롤러.
KR1020050001727A 2005-01-07 2005-01-07 버스 컨트롤러 KR100672064B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050001727A KR100672064B1 (ko) 2005-01-07 2005-01-07 버스 컨트롤러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050001727A KR100672064B1 (ko) 2005-01-07 2005-01-07 버스 컨트롤러

Publications (2)

Publication Number Publication Date
KR20060081236A KR20060081236A (ko) 2006-07-12
KR100672064B1 true KR100672064B1 (ko) 2007-01-22

Family

ID=37172304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050001727A KR100672064B1 (ko) 2005-01-07 2005-01-07 버스 컨트롤러

Country Status (1)

Country Link
KR (1) KR100672064B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389958B (zh) * 2013-06-27 2016-08-17 三星半导体(中国)研究开发有限公司 通用串行接口

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050039299A (ko) * 2003-10-24 2005-04-29 매그나칩 반도체 유한회사 I2c 인터페이스를 사용하는 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050039299A (ko) * 2003-10-24 2005-04-29 매그나칩 반도체 유한회사 I2c 인터페이스를 사용하는 시스템

Also Published As

Publication number Publication date
KR20060081236A (ko) 2006-07-12

Similar Documents

Publication Publication Date Title
US8700866B2 (en) Data transfer apparatus, data transfer device, and data transfer method in a data transfer device
EP0218426A2 (en) Bus interface
KR19990067846A (ko) 버스 시스템 동작 방법 및 장치
KR20040044366A (ko) 공유 메모리 데이터 전송장치
JP2012064021A (ja) 通信システム、マスター装置、及びスレーブ装置、並びに通信方法
CN111149097B (zh) 一种主芯片、从芯片及芯片间的dma传输系统
US20020085575A1 (en) Interface control of communication between a control processor and a digital signal processor
KR100375233B1 (ko) 전송될 데이터 길이 값에 따라 전송 모드가 유동적으로변환되는 직접 메모리 억세스 컨트롤러
EP0772831B1 (en) Bidirectional parallel signal interface
US7401170B2 (en) Communication system, and master apparatus and slave apparatus used in the same, and communication method
KR100505689B1 (ko) 송수신 흐름에 따라 공유 버퍼 메모리의 할당량을제어하는 송수신 네트워크 제어기 및 그 방법
KR100672064B1 (ko) 버스 컨트롤러
EP0400794A2 (en) Data processing apparatus adapted to connect to high speed links
EP1388790A1 (en) Serial peripheral interface and relative method of managing it
US20080320178A1 (en) DMA transfer apparatus
JP2020144410A (ja) メモリコントローラ
KR100602204B1 (ko) 메인 제어부와 부 제어부로 구성된 제어 시스템 및 버스연결 방법
KR20070102823A (ko) I2c 프로토콜에서의 어드레스 제어 장치
KR100487199B1 (ko) 직접 메모리 접근매체의 데이터 전송 장치 및 방법
EP3029579A2 (en) Controller with indirect accessible memory
CN112667533A (zh) 包括子系统接口的半导体设备及其通信方法
US5088029A (en) System for restructuring input/output control system
JP3725530B2 (ja) プログラマブルコントローラ
KR100962306B1 (ko) 임베디드 시스템의 양방향 데이터 통신장치 및 그 방법
EP1459191B1 (en) Communication bus 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
LAPS Lapse due to unpaid annual fee