KR20050046094A - 슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스시스템 및 이에 대한 데이터 처리 방법 - Google Patents
슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스시스템 및 이에 대한 데이터 처리 방법 Download PDFInfo
- Publication number
- KR20050046094A KR20050046094A KR1020030080082A KR20030080082A KR20050046094A KR 20050046094 A KR20050046094 A KR 20050046094A KR 1020030080082 A KR1020030080082 A KR 1020030080082A KR 20030080082 A KR20030080082 A KR 20030080082A KR 20050046094 A KR20050046094 A KR 20050046094A
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- signal
- write
- data
- burst
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling 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
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
슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스 시스템 및 이에 대한 데이터 처리 방법이 개시된다. 본 발명에 따른 버스 시스템은, 버스 시스템은, 복수의 마스터 장치들, 버스 중재기, 복수의 슬래이브 장치들, 및 복수의 버스트 데이터 기입 제어장치들을 구비하는 것을 특징으로 한다. 복수의 마스터 장치들은 단일의 버스를 공유하고, 버스의 사용이 승인될 때 버스를 통하여 버스 신호와, 독출 어드레스 또는 기입 어드레스 및 기입 데이터를 전송한다. 버스 중재기는 버스에 연결되고 복수의 마스터 장치들의 버스 승인 요청에 대하여, 버스의 해제 상태에서 설정된 순서에 따라 복수의 마스터 장치들 중 어느 하나에 버스의 사용을 승인한다. 복수의 슬래이브 장치들은 독출 커맨드 또는 기입 커맨드에 응답하여 데이터의 독출 또는 기입 동작을 수행하고, 데이터의 독출 동작시 독출 데이터를 버스에 전송한다. 복수의 버스트 데이터 기입 제어장치들은 버스를 공유하고, 복수의 슬래이브 장치들 각각에 대응하게 연결되고, 버스 신호가 수신될 때, 버스 신호로부터 요청된 동작을 판단하고, 그 판단 결과에 따라 독출 커맨드 또는 기입 커맨드를 발생하여 대응하는 슬래이브 장치를 제어한다. 본 발명의 버스 시스템 및 이에 대한 데이터 처리 방법은 슬래이브 장치의 기입 레이턴시를 감소시켜 버스 시스템의 동작 속도와 버스의 사용 효율을 증가시킬 수 있는 장점이 있다.
Description
본 발명은 반도체 칩에 집적된 시스템 분야에 관한 것으로서, 특히, 버스 시스템에 관한 것이다.
일반적으로, 버스 시스템은 단일의 시스템 버스를 공유하는 복수의 마스터(master) 장치들과 복수의 슬래이브(slave) 장치들을 포함한다. 이러한 종래의 버스 시스템의 일례가 도 1에 도시된다. 도 1을 참고하면, 버스 시스템(10)은 버스 중재기(arbiter)(11), 버스(12), 복수의 마스터 장치들(13) 및 복수의 슬래이브 장치들(14)을 포함한다. 상기 버스 중재기(11)는 복수의 마스터 장치들(13) 중 어느 하나에 버스의 사용을 승인한다. 또, 버스 사용의 승인을 받은 해당 마스터 장치(13)가 상기 복수의 슬래이브 장치들(14) 중 하나에 데이터의 기입을 요청하거나 또는 데이터의 독출을 요청한다. 이 때, 데이터의 기입 요청 또는 데이터의 독출 요청을 받은 슬래이브 장치(14)는 요청된 동작을 수행하는 동안 웨이트 신호를 인에이블시킨다. 상기 웨이트 신호가 인에이블될 때, 해당 마스터 장치(13)는 상기 버스(12)가 사용중임을 인식하고, 추가의 데이터 기입 요청 또는 추가의 데이터 독출 요청 동작을 대기한다. 이 후, 상기 슬래이브 장치(14)는 요청된 동작의 수행을 완료하면 상기 웨이트 신호를 디세이블시킨다. 그 결과, 버스 해제(bus release)가 이루어진다. 여기에서, 버스 해제는 특정 마스터 장치에 의한 버스의 사용이 종료되어 다른 마스터 장치에 의해 버스가 사용될 수 있는 상태를 말한다.
상기 버스(12)의 해제가 이루어지면, 상기 버스 중재기(11)는 차기 순서의 마스터 장치(14)에 상기 버스(12)의 사용을 승인한다. 여기에서, 상기 마스터 장치(13)가 상기 슬래이브 장치(14)에 요청하는 동작의 종류에 따라, 상기 버스(12)의 해제가 이루어지는 시점이 달라질 수 있다. 예를 들어, 상기 마스터 장치(13)가 상기 슬래이브 장치(14)에 단일 데이터의 기입을 요청할 경우, 상기 버스(12)의 해제는 신속하게 이루어진다. 즉, 상기 슬래이브 장치(14)의 데이터 기입 레이턴시(latency)가 짧다. 그 이유는, 상기 슬래이브 장치(14)의 메모리 컨트롤러(15)가 상기 메모리(16)의 단일 데이터 기입 동작이 종료될 때까지 기다리지 않고, 상기 메모리(16)의 단일 데이터 기입 동작이 수행됨과 동시에 웨이트 신호를 디세이블시키기 때문이다. 그 결과, 상기 버스(12)의 해제가 신속하게 이루어진다.
한편, 상기 마스터 장치(13)가 상기 슬래이브 장치(14)에 버스트 데이터의 기입을 요청할 경우 상기 버스(12)의 해제는 상기 마스터 장치(13)가 상기 슬래이브 장치(14)에 단일 데이터의 기입을 요청할 경우 보다 더 오랜 시간이 지연된 후에 이루어진다. 즉, 상기 슬래이브 장치(14)의 데이터 기입 레이턴시가 길다. 그 이유는, 상기 메모리 컨트롤러(15)가 상기 메모리(16)의 버스트 데이터 기입 동작이 완료된 후에 비로소 상기 웨이트 신호를 디세이블시키기 때문이다. 따라서 버스트 데이터가 상기 메모리(16)에 모두 기입된 후, 버스(12)의 해제가 이루어진다. 이 경우, 상기 버스 시스템(10)은 상기 메모리(16)의 버스트 데이터 기입 동작이 완료될 때까지 다른 동작을 수행할 수 없게 된다. 일반적으로 상기 메모리 컨트롤러(15)가 SRAM과 같은 메모리의 데이터 기입을 제어할 경우 50ns 이상의 시간이 소요되고, SRAM과 같은 메모리 내부에서 데이터 기입 동작이 수행되는데 40ns 이상의 시간이 소요된다. 따라서 버스트 데이터 기입 동작에서 발생하는 슬래이브 장치의 큰 기입 레이턴시는 높은 동작 주파수를 갖는 SOC(system-on-a-chip)와 같은 반도체 칩에서 사용되는 버스 시스템의 성능을 크게 저하시킬 수 있다.
본 발명이 이루고자하는 기술적 과제는, 슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스 시스템을 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스 시스템의 데이터 처리 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 버스 시스템은, 복수의 마스터 장치들, 버스 중재기, 복수의 슬래이브 장치들, 및 복수의 버스트 데이터 기입 제어장치들을 구비하는 것을 특징으로 한다. 복수의 마스터 장치들은 단일의 버스를 공유하고, 버스의 사용이 승인될 때 버스를 통하여 버스 신호와, 독출 어드레스 또는 기입 어드레스 및 기입 데이터를 전송한다. 버스 중재기는 버스에 연결되고 복수의 마스터 장치들의 버스 승인 요청에 대하여, 버스의 해제 상태에서 설정된 순서에 따라 복수의 마스터 장치들 중 어느 하나에 버스의 사용을 승인한다. 복수의 슬래이브 장치들은 독출 커맨드 또는 기입 커맨드에 응답하여 데이터의 독출 또는 기입 동작을 수행하고, 데이터의 독출 동작시 독출 데이터를 버스에 전송한다. 복수의 버스트 데이터 기입 제어장치들은 버스를 공유하고, 복수의 슬래이브 장치들 각각에 대응하게 연결되고, 버스 신호가 수신될 때, 버스 신호로부터 요청된 동작을 판단하고, 그 판단 결과에 따라 독출 커맨드 또는 기입 커맨드를 발생하여 대응하는 슬래이브 장치의 데이터 독출 또는 기입 동작을 제어한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명에 따른 버스 시스템의 데이터 처리 방법은, 단일의 버스를 공유하는 복수의 마스터 장치들, 버스 중재기, 복수의 버스트 데이터 기입 제어장치들, 및 상기 복수의 버스트 데이터 기입 제어장치들에 각각 대응하게 연결되는 복수의 슬래이브 장치들을 포함하는 버스 시스템의 데이터 처리 방법에 있어서, (a) 상기 복수의 마스터 장치들이 상기 버스의 사용에 대한 승인을 요청하는 단계; (b) 상기 버스 중재기가 설정된 순서에 따라 상기 복수의 마스터 장치들 중 하나에 상기 버스의 사용을 승인하는 단계; (c) 상기 버스의 사용을 승인 받은 해당 마스터 장치가 상기 복수의 버스트 데이터 기입 제어장치들 중 하나에 버스 신호를 전송하는 단계; (d) 상기 버스 신호를 수신한 해당 버스트 데이터 기입 제어장치가 대응하는 슬래이브 장치와 해당 마스터 장치를 인터페이스하는 단계; (e) 해당 마스터 장치가 추가의 버스 신호를 출력하는지의 여부를 판단하는 단계; (f) 해당 마스터 장치가 추가의 버스 신호를 출력할 때, 상기 (d)단계로 리턴하는 단계: 및 (g) 해당 마스터 장치가 추가의 버스 신호를 출력하지 않을 때, 상기 (c)단계로 리턴하는 단계를 포함하는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명에 따른 버스 시스템을 나타내는 블록도이다. 도 2를 참고하면, 버스 시스템(100)은 버스 중재기(110), 버스(120), 복수의 마스터 장치들(MST1∼MSTN)(N은 2이상의 자연수), 복수의 버스트 데이터 기입 제어장치들(WBC1∼WBCK)(K는 2이상의 자연수), 및 복수의 슬래이브 장치들(SLV1∼SLVK)을 포함한다. 상기 복수의 슬래이브 장치들(SLV1∼SLVK)은 복수의 메모리 컨트롤러들(MC1∼MCK)과 복수의 메모리들(MS1∼MSK)을 포함한다. 도 2에서, 상기 복수의 슬래이브 장치들(SLV1∼SLVK)의 일례로서 메모리 컨트롤러 및 메모리가 도시되었지만, 상기 복수의 슬래이브 장치들(SLV1∼SLVK)은 소정의 기능을 수행하는 기능 블록들로 구현될 수 있다. 상기 복수의 버스트 데이터 기입 제어장치들(WBC1∼WBCK) 각각은 상기 복수의 슬래이브 장치들(SLV1∼SLVK) 각각에 대응하게 연결된다. 예를 들면, 상기 버스트 데이터 기입 제어장치(WBC1)는 상기 슬래이브 장치(SLV1)에 연결되고, 상기 버스트 데이터 기입 제어장치(WBC2)는 상기 슬래이브 장치(SLV2)에 연결된다.
상기 버스 중재기(110)는 상기 복수의 마스터 장치들(MST1∼MSTN)로부터 상기 버스(120) 사용에 대한 요구 신호들을 수신하면, 설정된 순서에 따라 상기 복수의 마스터 장치들(MST1∼MSTN)에 순차적으로 상기 버스(120) 사용에 대한 승인 신호를 전송한다. 이를 좀 더 상세히 설명하면, 상기 버스 중재기(110)는 이전에 버스 사용의 승인을 받은 마스터 장치가 상기 버스(120)의 사용을 종료할 때, 즉, 버스 해제가 이루어질 때, 차기 순서의 마스터 장치에 상기 버스(120) 사용에 대한 승인 신호를 전송한다. 결국, 상기 버스 중재기(110)는 한 번에 하나의 마스터 장치에 상기 버스(120)의 사용을 승인하고, 승인 받은 해당 마스터 장치가 상기 버스(120)를 사용하게 된다. 여기에서, 상기 버스 중재기(110)에 의한 상기 버스(120) 사용에 대한 승인 동작은 본 발명의 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있으므로 그 상세한 동작 설명은 생략된다.
상기 복수의 마스터 장치들(MST1∼MSTN)은 상기 버스 중재기(110)로부터 상기 버스(120) 사용에 대한 승인 신호를 수신하면, 상기 복수의 버스트 데이터 기입 제어장치들(WBC1∼WBCK) 중 어느 하나에 버스 신호를 출력한다. 상기 버스 신호는 상기 복수의 슬래이브 장치들(SLV1∼SLVK) 중 어느 하나에 데이터 기입을 요청하거나 또는 데이터 독출을 요청하는 정보들을 포함한다. 상기 복수의 버스트 데이터 기입 제어장치들(WBC1∼WBCK)은 상기 복수의 마스터 장치들(MST1∼MSTN) 중 어느 하나로부터 수신되는 버스 신호로부터 요청된 동작을 판단하고, 그 판단 결과에 따라 각각 대응하는 슬래이브 장치의 데이터 기입 또는 독출을 제어한다. 상기 복수의 슬래이브 장치들(SLV1∼SLVK)은 각각 대응하는 해당 버스트 데이터 기입 제어장치들(WBC1∼WBCK)의 제어에 따라 데이터의 기입 또는 독출 동작을 수행한다.
도 3은 도 2에 도시된 마스터 장치, 버스트 데이터 기입 제어장치 및 슬래이브 장치의 동작을 설명하기 위한 블록도이다. 도 3에서는 상기 마스터 장치(MST1)가 버스(120)의 사용을 승인 받고, 상기 버스트 데이터 기입 제어장치(WBC1)를 통하여 슬래이브 장치(SLV1)에 데이터 기입 또는 독출 요청을 하는 경우가 일례로서 도시된다.
도 2의 마스터 장치들(MST2∼MSTN), 버스트 데이터 기입 제어장치들(WBC2∼WBCK), 및 슬래이브 장치들(SLV2∼SLVK) 각각의 동작은 상기 마스터 장치(MST1), 상기 버스트 데이터 기입 제어장치(WBC1), 및 상기 슬래이브 장치(SLV1)와 유사하다. 따라서 도 3에서는 상기 마스터 장치(MST1), 상기 제1 버스트 데이터 기입 제어장치(WBC1) 및 상기 슬래이브 장치(SLV1)의 동작을 중심으로 설명한다.
도 3을 참고하면, 상기 마스터 장치(MST1)는 상기 버스(120)를 통하여 상기 버스트 데이터 기입 제어장치(WBC1)에 버스 신호(BUSIG)를 전송한다. 상기 버스 신호(BUSIG)는 상기 슬래이브 장치(SLV1)에 데이터의 독출을 요청하거나 또는 데이터의 기입을 요청하는 정보를 포함한다.
상기 마스터 장치(MST1)는 상기 버스트 데이터 기입 제어장치(WBC1)에 데이터의 독출을 요청하는 상기 버스 신호(BUSIG)를 전송할 때, 독출 어드레스 신호(RADD)도 함께 전송한다. 또, 상기 마스터 장치(MST1)는 상기 버스트 데이터 기입 제어장치(WBC1)에 데이터의 기입을 요청하는 상기 버스 신호(BUSIG)를 전송할 때, 싱글 기입 어드레스(WSA) 및 싱글 데이터(WSDAT) 또는 버스트 기입 어드레스들(WBA1∼WBAJ)(J는 2이상의 자연수) 및 버스터 데이터들(WBD1∼WBDJ)을 함께 전송한다.
상기 버스트 데이터 기입 제어장치(WBC1)는 상기 버스 신호(BUSIG)를 수신하고, 상기 마스터 장치(MST1)에 의해 요청된 동작이 데이터 독출인지 또는 데이터 기입인지를 판단한다. 상기 버스트 데이터 기입 제어장치(WBC1)는 그 판단 결과에 따라 독출 커맨드(READ) 또는 기입 커맨드(WRITE)를 상기 슬래이브 장치(SLV1)의 메모리 컨트롤러(MC1)에 전송한다.
만약, 상기 마스터 장치(MST1)에 의해 요청된 동작이 데이터 독출일 때, 상기 버스트 데이터 기입 제어장치(WBC1)는 상기 독출 커맨드(READ)와, 상기 버스(120)를 통하여 수신되는 상기 독출 어드레스(RADD)를 상기 메모리 컨트롤러(MC1)에 전송한다.
또, 상기 마스터 장치(MST1)에 의해 요청된 동작이 데이터 기입일 때, 상기 버스트 데이터 기입 제어장치(WBC1)는 요청된 동작이 싱글 데이터 기입인지 또는 버스트 데이터 기입인지를 판단한다. 상기 버스트 데이터 기입 제어장치(WBC1)는 요청된 동작이 싱글 데이터 기입일 때, 상기 기입 커맨드(WRITE)와, 상기 버스(120)를 통하여 수신되는 상기 싱글 기입 어드레스(WSA) 및 싱글 기입 데이터(WSDAT)를 상기 메모리 컨트롤러(MC1)에 전송한다. 또, 상기 버스트 데이터 기입 제어장치(WBC1)는 요청된 동작이 버스트 데이터 기입일 때, 상기 기입 커맨드(WRITE)와, 상기 버스트 기입 어드레스들(WBA1∼WBAJ) 및 상기 버스트 기입 데이터들(WBD1∼WBDJ)을 래치하여 일시적으로 저장한다. 이 후, 상기 버스트 데이터 기입 제어장치(WBC1)는 저장된 상기 버스트 기입 어드레스들(WBA1∼WBAJ)과 상기 버스터 기입 데이터들(WBD1∼WBDJ)을 상기 메모리 컨트롤러(MC1)에 순차적으로 전송한다. 또, 상기 버스트 데이터 기입 제어장치(WBC1)는 상기 메모리 컨트롤러(MC1)로부터 제1 웨이트 입력 신호(WAIT_IN1)를 수신하고, 소정의 웨이트 신호(WAIT)를 상기 버스(120)에 출력한다.
상기 메모리 컨트롤러(MC1)는 상기 독출 커맨드(READ) 또는 상기 기입 커맨드(WRITE)를 수신하고, 수신된 커맨드에 따라 메모리(MS1)를 제어한다. 이를 좀 더 상세히 설명하면, 상기 메모리 컨트롤러(MC1)는 상기 독출 커맨드(READ)와 함께 수신되는 독출 어드레스(RADD)를 상기 메모리(MS1)에 출력한다. 이 후, 상기 메모리(MS1)로부터 수신되는 독출 데이터(RDATA)를 수신하여 상기 버스(120)를 통하여 상기 마스터 장치(MST1)에 전송한다. 또, 상기 메모리 컨트롤러(MC1)는 상기 기입 커맨드(WRITE)와 함께 수신되는 싱글 기입 어드레스(WSA)와 싱글 기입 데이터(WSDAT)를 상기 메모리(MS1)에 출력한다. 또, 상기 메모리 컨트롤러(MC1)는 상기 기입 커맨드(WRITE)와 함께 수신되는 버스트 기입 어드레스들(WBA1∼WBAJ)과 버스트 기입 데이터들(WBD1∼WBDJ)을 상기 메모리(MS1)에 출력한다.
다음으로, 도 4를 참고하여 상기 버스트 데이터 기입 제어장치(WBC1)의 구성 및 동작을 좀 더 상세히 설명한다. 여기에서, 도 2의 버스트 데이터 기입 제어장치들(WBC2∼WBCK)의 구성 및 동작은 상기 버스트 데이터 기입 제어장치(WBC1)와 동일하므로 생략된다. 도 4를 참고하면, 상기 버스트 데이터 기입 제어장치(WBC1)는 버스 신호 판단부(210), 제1 및 제2 스위치들(220, 230), 카운터(240), 제어신호 발생기(250), 데이터 저장부(260), 어드레스 저장부(270), 및 웨이트 신호 선택부(280)를 포함한다. 상기 버스 신호 판단부(210)는 상기 버스(120)를 통하여 수신되는 버스 신호(BUSIG)로부터 요청된 동작의 종류를 판단한다. 상기 버스 신호 판단부(210)는 요청된 동작이 독출 동작일 경우 독출 커맨드(READ)를 슬래이브 장치(SLV1)의 메모리 컨트롤러(MC1)에 출력하고, 요청된 동작이 기입 동작일 경우 기입 커맨드(WRITE)를 상기 메모리 컨트롤러(MC1)에 출력한다. 여기에서, 상기 버스 신호(BUSIG)에 포함되는 신호들의 예를 들면, 상기 마스터 장치(MST1)가 ARM 코어인 경우 아래의 [표 1]과 같다.
신호 | 형식 | 설명 | |
HTRANS | 00 | IDLE | 어떠한 데이터 전송도 요청되지 않음. |
01 | BUSY | 버스트 데이터 전송이 연속적으로 요청됨. 차기의 전송이 즉시 일어날 수 없음. | |
10 | NONSEQ | 최초의 버스트 데이터 전송이 요청됨. | |
11 | SEQ | 버스트 데이터 전송이 연속적으로 요청됨. 어드레스가 이전의 버스트 데이터 전송과 관련됨. | |
HBURST | 000 | SINGLE | 싱글 전송 |
001 | INCR | 불특정 길이의 증가(incrementing) 버스트 | |
010 | WRAP4 | 4비트 랩핑(wrapping) 버스트 | |
011 | INCR4 | 4비트 증가 버스트 | |
100 | WRAP8 | 8비트 랩핑 버스트 | |
101 | INCR8 | 8비트 증가 버스트 | |
110 | WRAP16 | 16비트 랩핑 버스트 | |
111 | INCR16 | 16비트 증가 버스트 | |
HWRITE | 0 | READ | 독출 요청 |
1 | WRITE | 기입 요청 |
상기 버스 신호 판단부(210)는 상기 버스 신호(BUSIG)에 포함되는 신호들의 값에 따라 요청된 동작을 판단할 수 있다. 예를 들어, 수신된 상기 버스 신호(BUSIG)에서, 상기 신호(HTRANS)가 "10"이고, 상기 신호(HBURST)가 "100"이고, 상기 신호(HWRITE)가 "1"일 때, 상기 버스 신호 판단부(210)는 요청된 동작이 최초의 8비트 랩핑 버스트 데이터 기입인 것으로 판단한다.
한편, 상기 버스 신호 판단부(210)는 그 판단 결과에 따라 제1 인에이블 신호(BEN)와 제2 인에이블 신호(CEN)를 출력한다. 이를 좀 더 상세히 설명하면, 상기 버스 신호 판단부(210)는 요청된 동작이 버스트 데이터 기입일 때, 상기 제1 인에이블 신호(BEN)와 상기 제2 인에이블 신호(CEN)를 인에이블시켜 출력한다. 또, 상기 버스 신호 판단부(210)는 요청된 동작이 데이터 독출 또는 싱글 데이터 기입일 때, 상기 제1 인에이블 신호(BEN)와 상기 제2 인에이블 신호(CEN)를 디세이블시켜 출력한다. 상기 버스 신호 판단부(210)는 소정의 래치 종료 신호(FLAT)에 응답하여 제3 인에이블 신호(WEN)를 출력한다.
상기 제1 스위치(220)는 상기 제1 인에이블 신호(BEN)에 응답하여, 버스(120)를 통하여 수신되는 데이터를 슬래이브 장치(SLV1)에 출력하거나 또는 상기 데이터 저장부(260)에 출력한다. 이를 좀 더 상세히 설명하면, 상기 제1 스위치(220)는 상기 제1 인에이블 신호(BEN)가 인에이블될 때 수신되는 데이터(즉, 버스트 기입 데이터들(WBD1∼WBDJ))를 상기 데이터 저장부(260)에 출력한다. 또, 상기 제1 스위치(220)는 상기 제1 인에이블 신호(BEN)가 디세이블될 때 수신되는 데이터(즉, 싱글 기입 데이터(WSDAT))를 상기 슬래이브 장치(SLV1)에 출력한다.
또, 상기 제2 스위치(230) 역시 상기 제1 인에이블 신호(BEN)에 응답하여 수신되는 어드레스를 상기 슬래이브 장치(SLV1)에 출력하거나 또는 상기 어드레스 저장부(270)에 출력한다. 이를 좀 더 상세히 설명하면, 상기 제2 스위치(230)는 상기 제1 인에이블 신호(BEN)가 인에이블될 때 수신되는 어드레스(즉, 버스트 기입 어드레스들(WBA1∼WBAJ))를 상기 어드레스 저장부(270)에 출력한다. 또, 상기 제2 스위치(230)는 상기 제1 인에이블 신호(BEN)가 디세이블될 때, 수신되는 어드레스(즉, 독출 어드레스(RADD) 또는 싱글 기입 어드레스(WSA))를 상기 슬래이브 장치(SLV1)에 출력한다.
또, 상기 제3 인에이블 신호(WEN)에 응답하여 상기 웨이트 신호 선택부(280)가 제1 웨이트 입력 신호(WAIT_IN1)와 제2 웨이트 입력 신호(WAIT_IN2)중 어느 하나를 웨이트 신호(WAIT)로서 상기 버스(120)에 출력한다. 상기 웨이트 신호 선택부(280)는 먹스로 구현될 수 있다. 여기에서, 상기 제1 웨이트 입력 신호(WAIT_IN1)는 상기 슬래이브 장치(SLV1)로부터 발생되고, 상기 슬래이브 장치(SLV1)의 동작 상태에 따라 하이 레벨 또는 로우 레벨로 된다. 즉, 상기 슬래이브 장치(SLV1)는 데이터의 기입 또는 독출 동작을 수행할 때 로우 레벨의 상기 제1 웨이트 입력 신호(WAIT_IN1)를 발생하고, 데이터의 기입 또는 독출 동작이 종료될 때 하이 레벨의 상기 제1 웨이트 입력 신호(WAIT_IN1)를 발생한다.
또, 상기 제2 웨이트 입력 신호(WAIT_IN2)는 상기 버스트 데이터 기입 제어장치(WBC1) 내부의 별도의 제어회로(미도시)로부터 발생되고, 항상 하이 레벨 상태이다. 상기 웨이트 신호 선택부(280)는 상기 제3 인에이블 신호(WEN)가 인에이블될 때 상기 제2 웨이트 입력 신호(WAIT_IN2)를 상기 웨이트 신호(WAIT)로서 상기 버스(120)에 출력하고, 상기 제3 인에이블 신호(WEN)가 디세이블될 때 상기 제1 웨이트 입력 신호(WAIT_IN1)를 상기 웨이트 신호(WAIT)로서 상기 버스(120)에 출력한다.
여기에서, 상기 웨이트 신호(WAIT)가 로우 레벨일 때, 버스 중재기(도 2의 110참고)는 상기 버스(120)가 사용중인 것으로 판단하고 차기 순서의 마스터 장치에 대한 상기 버스(120)의 사용 승인을 대기한다. 또, 상기 웨이트 신호(WAIT)가 하이 레벨일 때 상기 버스 중재기(110)는 상기 버스(120)의 해제가 이루어진 것으로 판단하고, 차기 순서의 마스터 장치에 상기 버스(120)의 사용을 승인한다.
상기 카운터(240)는 상기 제2 인에이블 신호(CEN)에 응답하여 인에이블되거나 또는 디세이블되고, 인에이블될 때 소정의 펄스 신호(PLS)를 출력한다. 상기 제어신호 발생기(250)는 상기 펄스 신호(PLS)에 응답하여 복수의 제어신호들(LAT1∼LATJ)과 복수의 선택신호들(SEL1∼SELJ)을 각각 순차적으로 발생한다. 또, 상기 제어신호 발생기(250)는 제어신호들(LAT1∼LATJ)을 모두 발생한 후 상기 래치 종료 신호(FLAT)를 발생한다.
상기 데이터 저장부(260)는 데이터 래치부(261), 복수의 데이터 레지스터들(DRST1∼DRSTJ), 및 데이터 출력부(262)를 포함한다. 상기 데이터 래치부(261)는 상기 복수의 제어신호들(LAT1∼LATJ)에 응답하여 상기 제1 스위치(220)로부터 출력되는 버스트 기입 데이터들(WBD1∼WBDJ)을 순차적으로 래치하여 출력한다. 상기 데이터 레지스터들(DRST1∼DRSTJ)은 상기 데이터 래치부(261)로부터 수신되는 상기 버스트 기입 데이터들(WBD1∼WBDJ)을 순차적으로 저장한다. 상기 데이터 출력부(262)는 상기 복수의 선택신호들(SEL1∼SELJ)에 응답하여 상기 데이터 레지스터들(DRST1∼DRSTJ)에 저장된 상기 버스트 기입 데이터들(WBD1∼WBDJ)을 순차적으로 상기 슬래이브 장치(SLV1)에 출력한다. 상기 데이터 출력부(262)는 바람직하게 먹스 회로로 구현될 수 있다.
또, 상기 어드레스 저장부(270)는 어드레스 래치부(271), 복수의 어드레스 레지스터들(ARST1∼ARSTJ), 및 어드레스 출력부(272)를 포함한다. 상기 어드레스 래치부(271)는 상기 복수의 제어신호들(LAT1∼LATJ)에 응답하여 상기 제2 스위치(230)로부터 출력되는 버스트 기입 어드레스들(WBA1∼WBAJ)을 순차적으로 래치하여 출력한다. 상기 어드레스 레지스터들(ARST1∼ARSTJ)은 상기 어드레스 래치부(271)로부터 수신되는 상기 버스트 기입 어드레스들(WBA1∼WBAJ)을 순차적으로 저장한다. 상기 어드레스 출력부(272)는 상기 복수의 선택신호들(SEL1∼SELJ)에 응답하여 상기 어드레스 레지스터들(ARST1∼ARSTJ)에 저장된 상기 버스트 기입 어드레스들(WBA1∼WBAJ)을 순차적으로 상기 슬래이브 장치(SLV1)에 출력한다. 여기에서, 상기 어드레스 출력부(272)는 바람직하게 먹스 회로로 구현될 수 있다.
다음으로, 상기와 같이 구성된 버스 시스템(100)의 동작을 도 2 내지 도 6을 참고하여 설명한다. 도 5는 본 발명에 따른 버스 시스템의 동작 과정을 나타내는 플로우차트이고, 도 6은 도 5에 도시된 버스트 데이터 기입 제어장치의 인터페이스 동작 과정을 상세히 나타내는 플로우차트이다.
먼저, 도 5와 도 2를 참고하면, 복수의 마스터 장치들(MST1∼MSTN)이 버스(120) 사용에 대한 승인 요청 신호들을 출력하여 버스 중재기(110)에 버스 사용 승인을 전송한다(1100). 상기 버스 중재기(110)는 상기 승인 요청 신호들을 수신하면, 설정의 순서에 따라 상기 복수의 마스터 장치들(MST1∼MSTN)에 대해 순차적으로 상기 버스(120)의 사용을 승인한다(1200). 상기 복수의 마스터 장치들(MST1∼MSTN) 중 어느 하나가 상기 버스(120)를 사용할 때, 나머지 마스터 장치들은 상기 버스(120)를 사용할 수 없게 된다. 여기에서, 상기 마스터 장치(MST1)가 상기 버스(120) 사용에 대한 승인을 받은 경우를 예를 들어 설명한다.
이 후, 상기 마스터 장치(MST1)는 복수의 버스트 데이터 기입 제어장치들(WBC1∼WBCK) 중 어느 하나에 버스 신호(BUSIG)를 전송한다(1300). 여기에서, 상기 마스터 장치(MST1)가 상기 버스트 데이터 기입 제어장치(WBC1)에 상기 버스 신호(BUSIG)를 전송하는 경우를 예를 들어 설명한다. 상기 버스 신호(BUSIG)를 수신한 상기 버스트 데이터 기입 제어장치(WBC1)가 상기 마스터 장치(MST1)와 대응하는 슬래이브 장치(SLV1)를 인터페이스한다(1400). 여기에서, 상기 단계(1400)는 도 6을 참고하여 좀 더 상세히 후술된다.
이 후, 상기 마스터 장치(MST1)가 추가의 버스 신호(BUSIG)를 출력하는지의 여부가 판단된다(1500). 상기 단계(1500)에서 상기 마스터 장치(MST1)가 추가의 버스 신호(BUSIG)를 출력할 경우, 상기 단계(1400)로 리턴한다. 여기에서, 상기 마스터 장치(MST1)는 상기 추가의 버스 신호(BUSIG)를 상기 버스트 데이터 기입 제어장치(WBC1)에 전송할 수 있고, 나머지 버스트 데이터 기입 제어장치들(WBC2∼WBCK) 들 중 어느 하나에 전송할 수도 있다.
또, 상기 단계(1500)에서 상기 마스터 장치(MST1)가 추가의 버스 신호(BUSIG)를 출력하지 않을 경우, 상기 버스 중재기(110)는 상기 버스(120)의 해제가 이루어진 것으로 인식하고, 상기 순서에 따라 상기 마스터 장치들(MST2∼MSTK) 중 차기 순서의 마스터 장치에 상기 버스(120) 사용에 대한 승인을 한다. 이 후, 상기 단계(1300)로 리턴한다.
다음으로, 도 6을 참고하여 상기 단계(1400)를 좀 더 상세히 설명한다. 도 6을 참고하면, 상기 버스트 데이터 기입 제어장치(WBC1)의 버스 신호 판단부(210)가 상기 마스터 장치(MST1)로부터 수신되는 버스 신호(BUSIG)로부터 요청된 동작을 판단한다(1401). 상기 버스 신호 판단부(210)는 상기 요청된 동작이 버스트 데이터 기입이 아닐 때, 즉, 데이터 독출이거나 싱글 데이터 기입일 때, 해당 커맨드(READ 또는 WRITE)를 슬래이브 장치(SLV1)에 출력하고, 상기 슬래이브 장치(SLV1)로부터 수신되는 제1 웨이트 입력 신호(WAIT_IN1)를 웨이트 신호(WAIT)로서 상기 버스(120)에 출력한다(1402, 1403). 이 후, 추가의 버스 신호(BUSIG)가 수신되는지의 여부를 판단하고(1404), 추가의 버스 신호(BUSIG)가 수신될 때 상기 단계(1401)로 리턴한다. 또, 추가의 버스 신호(BUSIG)가 수신되지 않을 때, 상기 프로세스(1400)가 종료된다.
한편, 상기 버스 신호 판단부(210)는 상기 요청된 동작이 버스트 데이터 기입일 때, 기입 커맨드(WRITE)를 상기 슬래이브 장치(SLV1)에 출력하고, 상기 제1 웨이트 입력 신호(WAIT_IN1)를 상기 웨이트 신호(WAIT)로서 상기 버스(120)에 출력한다(1402, 1405). 또, 상기 버스 신호 판단부(210)는 제1 인에이블 신호(BEN)와 제2 인에이블 신호(CEN)를 인에이블시킨다. 상기 제1 인에이블 신호(BEN)에 응답하여 제1 스위치(220)는 수신되는 버스트 기입 데이터들(WBD1∼WBDJ)을 데이터 저장부(260)에 출력한다. 또, 상기 제1 인에이블 신호(BEN)에 응답하여 제2 스위치(230)는 수신되는 버스트 기입 어드레스들(WBA∼WBAJ)을 어드레스 저장부(270)에 출력한다. 한편, 카운터(240)는 상기 제2 인에이블 신호(CEN)에 응답하여 인에이블되어 펄스 신호(PLS)를 주기적으로 발생한다. 상기 펄스 신호(PLS)에 응답하여 제어신호 발생기(250)가 복수의 제어신호들(LAT1∼LATJ)과 복수의 선택신호들(SEL1∼SELJ)을 발생한다.
이 후, 상기 복수의 제어신호들(LAT1∼LATJ)에 응답하여 상기 데이터 저장부(260)와 상기 어드레스 저장부(270)가 상기 버스트 기입 데이터들(WBD1∼WBDJ)과 상기 버스트 기입 어드레스들(WBA1∼WBAJ)을 각각 래치하여 저장한다(1406). 이를 좀 더 상세히 설명하면, 상기 제어신호 발생기(250)는 상기 복수의 제어신호들(LAT1∼LATJ)을 순차적으로 인에이블시킨다. 그 결과, 상기 데이터 저장부(260)의 데이터 래치부(261)는 상기 복수의 제어신호들(LAT1∼LATJ))에 응답하여 상기 버스트 기입 데이터들(WBD1∼WBDJ)을 순차적으로 래치하여 출력한다. 또, 상기 데이터 저장부(260)의 데이터 레지스터들(DRST1∼DRSTJ)은 상기 데이터 래치부(261)로부터 순차적으로 출력되는 상기 버스트 기입 데이터들(WBD1∼WBDJ)을 각각 저장한다. 예를 들면, 상기 데이터 래치부(261)는 상기 제어신호(LAT1)가 인에이블될 때 상기 버스트 기입 데이터(WBD1)를 래치하여 상기 데이터 레지스터(DRST1)에 출력하고, 상기 제어신호(LAT2)가 인에이블될 때 상기 버스트 기입 데이터(WBD2)를 래치하여 상기 데이터 레지스터(DRST2)에 출력한다.
또, 상기 어드레스 저장부(270)의 어드레스 래치부(271)는 상기 복수의 제어신호들(LAT1∼LATJ))에 응답하여 상기 버스트 기입 어드레스(WBA1∼WBAJ)를 순차적으로 래치하여 출력한다. 또, 상기 어드레스 저장부(270)의 어드레스 레지스터들(ARST1∼ARSTJ)은 상기 어드레스 래치부(271)로부터 순차적으로 출력되는 상기 버스트 기입 어드레스들(WBA1∼WBAJ)을 각각 저장한다. 예를 들면, 상기 어드레스 래치부(271)는 상기 제어신호(LAT1)가 인에이블될 때 상기 버스트 기입 어드레스(WBA1)를 래치하여 상기 어드레스 레지스터(ARST1)에 출력하고, 상기 제어신호(LAT2)가 인에이블될 때 상기 버스트 기입 어드레스(WBA2)를 래치하여 상기 어드레스 레지스터(ARST2)에 출력한다.
다음으로, 상기 복수의 선택신호들(SEL1∼SELJ)에 응답하여 상기 데이터 저장부(260)와 상기 어드레스 저장부(270)가 상기 버스트 기입 데이터들(WBD1∼WBDJ)과 상기 버스트 기입 어드레스들(WBA1∼WBAJ)을 상기 슬래이브 장치(SLV1)에 순차적으로 출력한다(1407). 이를 좀 더 상세히 설명하면, 상기 제어신호 발생기(250)는 상기 복수의 제어신호들(LAT1∼LATJ)을 하나씩 인에이블시키고 소정 시간이 경과된 후, 상기 복수의 선택신호들(SEL1∼SELJ)을 하나씩 순차적으로 인에이블시킨다. 즉, 상기 제어신호 발생기(250)는 상기 제어신호(LAT1)를 인에이블시킨 후, 상기 제어신호(LAT2)를 인에이블시킬 때 상기 선택신호(SEL1)를 함께 인에이블시킨다. 마찬가지로, 상기 제어신호(LAT3)가 인에이블될 때 상기 선택신호(SEL2)가 인에이블된다.
상기 데이터 저장부(260)의 데이터 출력부(262)는 상기 복수의 선택신호들(SEL1∼SELJ)에 응답하여 상기 데이터 레지스터들(DRST1∼DRSTJ)에 저장된 상기 버스트 기입 데이터들(WBD1∼WBDJ) 중 하나를 선택하여 상기 슬래이브 장치(SLV1)에 출력한다. 예를 들면, 상기 데이터 출력부(262)는 상기 선택신호(SEL1)가 인에이블될 때 상기 데이터 레지스터(DRST1)에 저장된 상기 버스트 기입 데이터(WBD1)를 상기 슬래이브 장치(SLV1)에 출력한다. 또, 상기 데이터 출력부(262)는 상기 선택신호(SEL2)가 인에이블될 때 상기 데이터 레지스터(DRST2)에 저장된 상기 버스트 기입 데이터(WBD2)를 상기 슬래이브 장치(SLV1)에 출력한다.
또, 상기 어드레스 저장부(270)의 어드레스 출력부(272)는 상기 복수의 선택신호들(SEL1∼SELJ)에 응답하여 상기 어드레스 레지스터들(ARST1∼ARSTJ)에 저장된 상기 버스트 기입 어드레스들(WBA1∼WBAJ) 중 하나를 선택하여 상기 슬래이브 장치(SLV1)에 출력한다. 예를 들면, 상기 어드레스 출력부(272)는 상기 선택신호(SEL1)가 인에이블될 때 상기 어드레스 레지스터(ARST1)에 저장된 상기 버스트 기입 어드레스(WBA1)를 상기 슬래이브 장치(SLV1)에 출력한다. 또, 상기 어드레스 출력부(272)는 상기 선택신호(SEL2)가 인에이블될 때 상기 어드레스 레지스터(ARST2)에 저장된 상기 버스트 기입 어드레스(WBA2)를 상기 슬래이브 장치(SLV1)에 출력한다.
다음으로, 상기 데이터 래치부(261)와 상기 어드레스 래치부(271)에 의한 버스트 기입 데이터들(WBD1∼WBDJ) 및 버스트 기입 어드레스들(WBA1∼WBAJ)의 래치 동작이 완료되었는지의 여부가 판단된다(1408). 상기 단계(1408)에서, 상기 래치 동작이 완료되지 않은 경우 상기 단계들(1406∼1408)이 반복 수행된다. 또, 상기 단계(1408)에서, 상기 래치 동작이 완료된 경우 상기 버스 신호 판단부(210)가 상기 제3 인에이블 신호(WEN)를 인에이블시킨다. 이를 좀 더 상세히 설명하면, 상기 제어신호 발생기(250)가 상기 제어신호들(LAT1∼LATJ)을 모두 발생한 후, 래치 동작의 종료를 알리는 래치 종료 신호(FLAT)를 상기 버스 신호 판단부(210)에 출력한다. 상기 버스 신호 판단부(210)는 상기 래치 종료 신호(FLAT)를 수신하면 래치 동작이 완료된 것으로 인식한다.
상기 제3 인에이블 신호(WEN)가 인에이블될 때, 웨이트 신호 선택부(280)가 제2 웨이트 입력 신호(WAIT_IN2)를 상기 웨이트 신호(WAIT)로서 상기 버스(120)에 출력한다(1409). 이로써, 상기 버스(120)의 해제가 이루어진다. 이 후, 버스 신호 판단부(210)는 추가의 버스 신호(BUSIG)가 수신되는지의 여부를 판단한다(1410). 상기 단계(1410)에서 추가의 버스 신호(BUSIG)가 수신되지 않을 때, 상기 슬래이브 장치(SLAV1)의 버스트 데이터 기입 동작이 완료되면, 상기 프로세스(1400)가 종료된다(1411).
또, 상기 단계(1410)에서 추가의 버스 신호(BUSIG)가 수신될 때, 수신된 버스 신호(BUSIG)가 새로운 버스 신호인지의 여부가 판단된다(1412). 여기에서, 추가의 버스 신호(BUSIG)가 데이터 독출 요청 또는 싱글 데이터 기입 요청 또는 현재 수행된 버스트 데이터 기입 요청과 관련되지 않은 최초의 버스트 데이터 기입 요청에 대한 정보를 포함할 때, 추가의 버스 신호(BUSIG)를 상기 새로운 버스 신호라고 말한다. 여기에서, 추가의 버스 신호(BUSIG)가 현재 수행된 버스트 데이터 기입 요청과 관련되지 않은 최초의 버스트 데이터 기입 요청인지의 여부는 [표 1]을 참고하여 예를 들면, 상기 버스 신호(BUSIG)에 "10"(NONSEQ)의 신호(HTRANS)가 포함되는지의 여부에 따라 결정될 수 있다.
이 때, 상기 단계(1409)에서 상기 버스(120)의 해제가 이루어진 상태라 하더라도, 상기 추가의 버스 신호(BUSIG)에 대한 실질적인 동작은 상기 슬래이브 장치(SLV1)의 버스트 데이터 기입 동작이 완료된 후에 수행될 수 있다. 따라서 상기 버스 신호 판단부(210)는 상기 제3 인에이블 신호(WEN)를 디세이블시킨다. 상기 제3 인에이블 신호(WEN)가 디세이블될 때, 상기 웨이트 신호 선택부(280)가 제1 웨이트 입력 신호(WAIT_IN2)를 상기 웨이트 신호(WAIT)로서 상기 버스(120)에 출력한다(1413). 다음으로, 상기 슬래이브 장치(SLV1)의 버스트 데이터 기입 동작이 완료되면 상기 단계(1401)로 리턴하여 상기 단계들이 반복 수행된다(1414). 여기에서, 상기 슬래이브 장치(SLV1)에 의한 버스트 데이터 기입 동작의 완료 여부는 상기 슬래이브 장치(SLV1)로부터 수신되는 상기 제1 웨이트 입력 신호(WAIT_IN1)의 레벨 상태에 따라 결정될 수 있다. 즉, 상기 제1 웨이트 입력 신호(WAIT_IN1)가 로우 레벨이면 상기 슬래이브 장치(SLV1)가 버스트 데이터 기입 동작을 수행 중인 상태이고, 상기 제1 웨이트 입력 신호(WAIT_IN1)가 하이 레벨로 되면 상기 슬래이브 장치(SLV1)가 버스트 데이터 기입 동작을 완료한 상태이다.
다음으로, 도 7을 참고하여 본 발명에 따른 버스 시스템과 종래 기술에 따른 버스 시스템을 비교 설명한다. 도 7에서, (a)는 종래 기술에 따른 버스 시스템에서 버스의 상태에 따른 웨이트 신호의 레벨을 나타내고, (b)와 (c)는 본 발명에 따른 버스 시스템에서 버스의 상태에 따른 웨이트 신호의 레벨을 나타낸다.
도 7의 (a)에서 참조되는 것과 같이, 종래 기술에 따른 버스 시스템(도 1의 10참고)에서 버스(도 1의 12참고)를 통하여 버스트 기입 데이터가 전송되는 시간(O) 동안 웨이트 신호(WAIT)가 로우 레벨로 유지된다. 여기에서, 상기 버스(12)를 통하여 버스트 기입 데이터가 모두 전송되는데 걸리는 상기 시간(O)은 실질적으로 슬래이브 장치(도 1의 14참고)가 버스트 기입 데이터의 기입 동작을 수행하는데 걸리는 시간과 동일하다. 결국, 상기 슬래이브 장치(14)에 의한 버스트 데이터의 기입 동작이 완료될 때까지 웨이트 신호(WAIT)가 로우 레벨로 유지된다. 따라서 상기 슬래이브 장치(14)의 데이터 기입 레이턴시가 길고, 상기 버스(12)의 해제가 신속하게 이루어지지 않는다.
한편, 도 7의 (b) 및 (c)에서 참조되는 것과 같이, 본 발명에 따른 버스 시스템(100)에서, 버스(120)를 통하여 버스트 기입 데이터가 전송되는 시간(P 또는 S) 동안 웨이트 신호(WAIT)가 로우 레벨로 유지된다. 여기에서, 상기 버스(120)를 통하여 버스트 기입 데이터가 모두 전송될 때까지 걸리는 시간(P 또는 S)은 실질적으로 버스트 데이터 기입 제어장치가 버스트 기입 데이터를 래치하고 저장하는데 걸리는 시간과 동일하다. 따라서 버스트 데이터 기입 제어장치가 버스트 기입 데이터를 래치하는 시간 동안만 웨이트 신호(WAIT)가 로우 레벨로 유지되고, 상기 래치 동작이 완료되면 하이 레벨로 된다. 따라서 슬래이브 장치의 데이터 기입 레이턴시가 짧고, 상기 버스(120)의 해제가 신속하게 이루어질 수 있다.
또, 도 7의 (b)에서는 버스트 데이터 기입 제어장치가 버스트 기입 데이터를 모두 래치하여 웨이트 신호(WAIT)가 하이 레벨로 바뀐 상태에서, 슬래이브 장치에 의한 버스트 기입 데이터의 기입 동작이 완료되기 전에 새로운 버스 신호가 전송되는 경우가 도시된다. 이 경우, 웨이트 신호(WAIT)는 슬래이브 장치에 의해 발생되는 웨이트 신호로 되고, 슬래이브 장치에 의한 버스트 기입 데이터의 기입 동작이 완료되는 시점(R)까지 새로운 버스 신호에 대한 동작은 대기 상태로 된다.
또, 도 7의 (c)에서는 버스트 데이터 기입 제어장치가 버스트 기입 데이터를 모두 래치하여 웨이트 신호(WAIT)가 하이 레벨로 바뀐 상태에서, 슬래이브 장치에 의한 버스트 기입 데이터의 기입 동작이 완료된 후에 새로운 버스 신호가 전송되는 경우가 도시된다. 이 경우, 웨이트 신호(WAIT)는 버스트 데이터 기입 제어장치 내부에서 발생된다. 또, 슬래이브 장치에 의한 버스트 기입 데이터의 기입 동작이 완료되는 시점(R)까지 데이터 전송 요청이 없는 상태(IDEL)이므로, 새로운 버스 신호에 대한 동작은 대기 상태 없이 바로 수행될 수 있다.
상기와 같이, 본 발명에 따른 버스 시스템은 버스트 데이터의 기입 요청시 버스트 데이터 기입 제어장치가 버스트 기입 데이터를 미리 래치하여 저장하므로, 슬래이브 장치의 버스트 데이터 기입 동작이 완료되기 전에 버스의 해제가 이루어질 수 있다. 결국, 버스트 데이터의 기입 레이턴시가 감소되므로, 버스 시스템의 동작 속도와 버스의 사용 효율이 증가될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상기한 것과 같이, 본 발명의 버스 시스템 및 이에 대한 데이터 처리 방법은 슬래이브 장치의 기입 레이턴시를 감소시켜 버스 시스템의 동작 속도와 버스의 사용 효율을 증가시킬 수 있는 효과가 있다.
도 1은 종래 기술에 따른 버스 시스템을 나타내는 블록도이다.
도 2는 본 발명에 따른 버스 시스템을 나타내는 블록도이다.
도 3은 도 2에 도시된 마스터 장치, 버스트 데이터 기입 제어장치 및 슬래이브 장치의 동작을 설명하기 위한 블록도이다.
도 4는 도 3에 도시된 버스트 데이터 기입 제어장치를 상세하게 나타내는 블록도이다.
도 5는 본 발명에 따른 버스 시스템의 동작 과정을 나타내는 플로우차트이다.
도 6은 도 5에 도시된 버스트 데이터 기입 제어장치의 인터페이스 동작 과정을 상세히 나타내는 플로우차트이다.
도 7은 본 발명에 따른 버스 시스템에서 슬래이브 장치의 데이터 기입 레이턴시와 종래의 버스 시스템에서 슬래이브 장치의 데이터 기입 레이턴시를 비교 설명하기 위한 도면이다.
Claims (13)
- 단일의 버스를 공유하고, 상기 버스의 사용이 승인될 때 상기 버스를 통하여 버스 신호와, 독출 어드레스 또는 기입 어드레스 및 기입 데이터를 전송하는 복수의 마스터 장치들;상기 버스에 연결되고 상기 복수의 마스터 장치들의 버스 승인 요청에 대하여, 상기 버스의 해제 상태에서 설정된 순서에 따라 상기 복수의 마스터 장치들 중 어느 하나에 상기 버스의 사용을 승인하는 버스 중재기;독출 커맨드 또는 기입 커맨드에 응답하여 데이터의 독출 또는 기입 동작을 수행하고, 상기 데이터의 독출 동작시 독출 데이터를 상기 버스에 전송하는 복수의 슬래이브 장치들; 및상기 버스를 공유하고, 상기 복수의 슬래이브 장치들 각각에 대응하게 연결되고, 상기 버스 신호가 수신될 때, 상기 버스 신호로부터 요청된 동작을 판단하고, 그 판단 결과에 따라 상기 독출 커맨드 또는 상기 기입 커맨드를 발생하여 대응하는 슬래이브 장치의 데이터 독출 또는 기입 동작을 제어하는 복수의 버스트 데이터 기입 제어장치들을 구비하는 것을 특징으로 하는 버스 시스템.
- 제1항에 있어서,상기 복수의 마스터 장치들 중 어느 하나에 의해 요청된 동작은 데이터 독출, 싱글 데이터 기입, 및 버스트 데이터 기입 중 어느 하나이고,상기 버스 신호는 소정의 비트들을 포함하고, 상기 버스 신호의 비트 값은 상기 요청된 동작에 따라 변화되는 것을 특징으로 하는 버스 시스템.
- 제2항에 있어서,상기 복수의 버스트 데이터 기입 제어장치들은 상기 요청된 동작이 데이터 독출일 때, 상기 독출 커맨드를 발생하고 상기 독출 어드레스를 수신하여 상기 대응하는 슬래이브 장치에 출력하고, 상기 요청된 동작이 싱글 데이터 기입 또는 버스트 데이터 기입일 때, 상기 기입 커맨드를 발생하고 기입 어드레스 및 상기 기입 데이터를 수신하여 상기 대응하는 슬래이브 장치에 출력하는 것을 특징으로 하는 버스 시스템.
- 제2항에 있어서,상기 요청된 동작이 싱글 데이터 기입일 때, 상기 기입 어드레스는 싱글 기입 어드레스를, 상기 기입 데이터는 싱글 기입 데이터를 각각 포함하고,상기 요청된 동작이 버스트 데이터 기입일 때, 상기 기입 어드레스는 버스트 기입 어드레스들을, 상기 기입 데이터는 버스트 기입 데이터들을 각각 포함하는 것을 특징으로 하는 버스 시스템.
- 제4항에 있어서, 상기 복수의 버스트 데이터 기입 제어장치들 각각은,상기 버스 신호로부터 상기 요청된 동작을 판단하고, 그 판단 결과에 따라 상기 독출 또는 기입 커맨드를 발생하고, 제1 인에이블 신호 및 제2 인에이블 신호를 발생하고, 소정의 래치 종료 신호에 응답하여 제3 인에이블 신호를 발생하는 버스 신호 판단부;상기 제2 인에이블 신호에 응답하여 인에이블되거나 또는 디세이블되고, 인에이블될 때 소정의 펄스 신호를 주기적으로 발생하는 카운터;상기 펄스 신호에 응답하여 복수의 제어신호들과 복수의 선택신호들을 발생하고, 상기 복수의 제어신호들을 모두 발생하면 상기 래치 종료 신호를 발생하는 제어신호 발생기;상기 복수의 제어신호들에 응답하여 상기 버스트 기입 데이터들을 래치하여 저장하고, 상기 복수의 선택신호들에 응답하여 저장된 상기 버스트 기입 데이터들을 상기 대응하는 슬래이브 장치에 출력하는 데이터 저장부;상기 복수의 제어신호들에 응답하여 상기 버스트 기입 어드레스들을 래치하여 저장하고, 상기 복수의 선택신호들에 응답하여 저장된 상기 버스트 기입 어드레스들을 상기 대응하는 슬래이브 장치에 출력하는 어드레스 저장부;상기 제1 인에이블 신호에 응답하여, 수신되는 상기 기입 데이터를 상기 대응하는 슬래이브 장치와 상기 데이터 저장부 중 어느 하나에 출력하는 제1 스위치;상기 제1 인에이블 신호에 응답하여, 수신되는 상기 독출 어드레스를 상기 대응하는 슬래이브 장치에 출력하고, 수신되는 상기 기입 어드레스를 상기 대응하는 슬래이브 장치와 상기 어드레스 저장부 중 어느 하나에 출력하는 제2 스위치; 및상기 제3 인에이블 신호에 응답하여, 제1 웨이트 입력 신호와 제2 웨이트 입력 신호 중 어느 하나를 웨이트 신호로서 상기 버스에 출력하는 웨이트 신호 선택부를 포함하는 것을 특징으로 하는 버스 시스템.
- 제5항에 있어서,상기 제어신호 발생기는 상기 제어신호들과 상기 선택신호들을 각각 순차적으로 인에이블시키고,상기 데이터 저장부는,상기 복수의 제어신호들에 응답하여 상기 버스트 기입 데이터들을 순차적으로 래치하여 출력하는 데이터 래치부;상기 데이터 래치부로부터 순차적으로 출력되는 상기 버스트 기입 데이터들을 각각 저장하는 복수의 데이터 레지스터들; 및상기 복수의 선택신호들에 응답하여 상기 복수의 데이터 레지스터들 중 어느 하나에 저장된 버스트 기입 데이터를 선택하여 상기 대응하는 슬래이브 장치에 출력하는 데이터 출력부를 포함하고,상기 어드레스 저장부는,상기 복수의 제어신호들에 응답하여 상기 버스트 기입 어드레스들을 순차적으로 래치하여 출력하는 어드레스 래치부;상기 어드레스 래치부로부터 순차적으로 출력되는 상기 버스트 기입 어드레스들을 각각 저장하는 복수의 어드레스 레지스터들; 및상기 복수의 선택신호들에 응답하여 상기 복수의 어드레스 레지스터들 중 어느 하나에 저장된 버스트 기입 어드레스를 선택하여 상기 대응하는 슬래이브 장치에 출력하는 어드레스 출력부를 포함하는 것을 특징으로 하는 버스 시스템.
- 제5항에 있어서,상기 제1 웨이트 입력 신호는 상기 대응하는 슬래이브 장치로부터 수신되고, 상기 대응하는 슬래이브 장치의 동작 상태에 따라 하이 레벨 또는 로우 레벨로 되고,상기 제2 웨이트 입력 신호는 상기 버스트 데이터 기입 제어장치의 내부에서 발생되고, 하이 레벨인 것을 특징으로 하는 버스 시스템.
- 제7항에 있어서,상기 버스 중재기는 상기 웨이트 신호가 로우 레벨일 때 상기 버스가 사용중인 것으로 인식하고, 상기 웨이트 신호가 하이 레벨일 때 상기 버스의 해제가 이루어진 것으로 인식하는 것을 특징으로 하는 버스 시스템.
- 제7항에 있어서,상기 제어신호 발생기는 상기 복수의 제어신호들을 모두 발생할 때 상기 래치 종료 신호를 인에이블시키고,상기 버스 신호 판단부는 상기 버스 신호를 수신할 때 상기 제3 인에이블 신호를 디세이블시키고, 상기 래치 종료 신호가 인에이블될 때 상기 제3 인에이블 신호를 인에이블시키고,상기 웨이트 신호 선택부는 상기 제3 인에이블 신호가 디세이블될 때 상기 제1 웨이트 입력 신호를 상기 웨이트 신호로서 출력하고, 상기 제3 인에이블 신호가 인에이블될 때 상기 제2 웨이트 입력 신호를 상기 웨이트 신호로서 출력하는 것을 특징으로 하는 버스 시스템.
- 제9항에 있어서,상기 버스 신호 판단부는 상기 래치 종료 신호가 인에이블된 후, 추가로 수신되는 버스 신호가 새로운 버스 신호일 때 상기 제3 인에이블 신호를 디세이블시키는 것을 특징으로 하는 버스 시스템.
- 제10항에 있어서,상기 버스 신호 판단부는 상기 추가로 수신되는 버스 신호가 데이터 독출 요청, 싱글 데이터 기입 요청, 및 당해 버스트 데이터 기입 요청과 무관한 최초의 버스트 데이터 기입 요청 중 어느 하나의 정보를 포함할 때, 상기 추가로 수신되는 버스 신호가 상기 새로운 버스 신호인 것으로 판단하는 것을 특징으로 하는 버스 시스템.
- 단일의 버스를 공유하는 복수의 마스터 장치들, 버스 중재기, 복수의 버스트 데이터 기입 제어장치들, 및 상기 복수의 버스트 데이터 기입 제어장치들에 각각 대응하게 연결되는 복수의 슬래이브 장치들을 포함하는 버스 시스템의 데이터 처리 방법에 있어서,(a) 상기 복수의 마스터 장치들이 상기 버스의 사용에 대한 승인을 요청하는 단계;(b) 상기 버스 중재기가 설정된 순서에 따라 상기 복수의 마스터 장치들 중 하나에 상기 버스의 사용을 승인하는 단계;(c) 상기 버스의 사용을 승인 받은 해당 마스터 장치가 상기 복수의 버스트 데이터 기입 제어장치들 중 하나에 버스 신호를 전송하는 단계;(d) 상기 버스 신호를 수신한 해당 버스트 데이터 기입 제어장치가 대응하는 슬래이브 장치와 해당 마스터 장치를 인터페이스하는 단계;(e) 해당 마스터 장치가 추가의 버스 신호를 출력하는지의 여부를 판단하는 단계;(f) 해당 마스터 장치가 추가의 버스 신호를 출력할 때, 상기 (d)단계로 리턴하는 단계: 및(g) 해당 마스터 장치가 추가의 버스 신호를 출력하지 않을 때, 상기 (c)단계로 리턴하는 단계를 포함하는 것을 특징으로 하는 버스 시스템의 데이터 처리 방법.
- 제12항에 있어서, 상기 (d) 단계는,(d1) 상기 버스 신호로부터 요청된 동작을 판단하는 단계;(d2) 상기 요청된 동작이 버스트 데이터 기입일 때, 기입 커맨드를 발생하고 제1 웨이트 입력 신호를 웨이트 신호로서 상기 버스에 출력하는 단계;(d3) 상기 버스를 통하여 수신되는 버스트 기입 데이터들과 버스트 기입 어드레스들을 래치하여 저장하는 단계;(d4) 상기 저장된 버스트 기입 데이터들과 버스트 기입 어드레스들을 상기 대응하는 슬래이브 장치에 순차적으로 출력하는 단계;(d5) 상기 버스트 기입 데이터들과 버스트 기입 어드레스들에 대한 래치 동작이 완료될 때 제2 웨이트 입력 신호를 상기 웨이트 신호로서 상기 버스에 출력하는 단계;(d6) 추가의 버스 신호가 수신되지 않을 때 상기 대응하는 슬래이브 장치의 버스트 데이터 기입 동작이 완료되면 종료하는 단계:(d7) 추가의 버스 신호가 수신될 때, 상기 추가의 버스 신호가 새로운 버스 신호인지의 여부를 판단하는 단계;(d8) 상기 추가의 버스 신호가 새로운 버스 신호일 때 상기 제1 웨이트 입력 신호를 웨이트 신호로서 상기 버스에 출력하고, 상기 대응하는 슬래이브 장치의 버스트 데이터 기입 동작이 완료되면 상기 (d1)단계로 리턴하는 단계;(d9) 상기 추가의 버스 신호가 새로운 버스 신호가 아닐 때 상기 (d2)단계로 리턴하는 단계;(d10) 상기 요청된 동작이 버스트 데이터 기입이 아닐 때, 요청된 해당 동작에 대한 커맨드를 발생하고 상기 제1 웨이트 입력 신호를 웨이트 신호로서 상기 버스에 출력하는 단계;(d11) 상기 추가의 버스 신호가 수신될 때 상기 (d1)단계로 리턴하는 단계; 및(d12) 상기 추가의 버스 신호가 수신되지 않을 때 종료하는 단계를 포함하는 것을 특징으로 하는 버스 시스템의 데이터 처리 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030080082A KR20050046094A (ko) | 2003-11-13 | 2003-11-13 | 슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스시스템 및 이에 대한 데이터 처리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030080082A KR20050046094A (ko) | 2003-11-13 | 2003-11-13 | 슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스시스템 및 이에 대한 데이터 처리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050046094A true KR20050046094A (ko) | 2005-05-18 |
Family
ID=37245526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030080082A KR20050046094A (ko) | 2003-11-13 | 2003-11-13 | 슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스시스템 및 이에 대한 데이터 처리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20050046094A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100813256B1 (ko) * | 2006-06-23 | 2008-03-13 | 삼성전자주식회사 | 버스 중재 장치 및 방법 |
-
2003
- 2003-11-13 KR KR1020030080082A patent/KR20050046094A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100813256B1 (ko) * | 2006-06-23 | 2008-03-13 | 삼성전자주식회사 | 버스 중재 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100800989B1 (ko) | 중재 패킷 프로토콜을 구비한 메모리 중재 시스템 및 방법 | |
KR960012660B1 (ko) | 컴퓨터 시스템 및 입력/출력 장치와 중앙 처리 장치간의 중재방법 | |
EP0993680B1 (en) | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory | |
KR100881049B1 (ko) | 복수의 어드레스 2 채널 버스 구조 | |
JP2007073052A (ja) | 集積回路から外部メモリへのアクセス | |
US5687393A (en) | System for controlling responses to requests over a data bus between a plurality of master controllers and a slave storage controller by inserting control characters | |
US8015329B2 (en) | Data transfer coherency device and methods thereof | |
US6633927B1 (en) | Device and method to minimize data latency and maximize data throughput using multiple data valid signals | |
JP2002123371A (ja) | ディスクアレイ制御装置及びディスクアレイ制御方法 | |
KR101560015B1 (ko) | 메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈 | |
KR20050046094A (ko) | 슬래이브 장치의 데이터 기입 레이턴시를 감소시키는 버스시스템 및 이에 대한 데이터 처리 방법 | |
KR100487199B1 (ko) | 직접 메모리 접근매체의 데이터 전송 장치 및 방법 | |
KR100266963B1 (ko) | 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치 | |
KR20050004157A (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 | |
JPH05334232A (ja) | Dma転送制御装置 | |
KR100606698B1 (ko) | 인터페이스 장치 | |
KR960014177B1 (ko) | 병렬데이터처리시스템의 데이터통신장치 | |
JP2885166B2 (ja) | 高速メモリ制御装置 | |
JPH039453A (ja) | データ転送制御装置 | |
JPH0652039A (ja) | データ転送方式 | |
JPH0452948A (ja) | 入出力制御装置におけるデータ転送方式 | |
JPH09319696A (ja) | 記憶装置アクセスシステム | |
JPH11282749A (ja) | 高速メモリ制御装置 | |
JPH0844663A (ja) | データ通信方式 | |
JPH052551A (ja) | Dma転送制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |