KR100626362B1 - 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법 - Google Patents
고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법 Download PDFInfo
- Publication number
- KR100626362B1 KR100626362B1 KR1020030033048A KR20030033048A KR100626362B1 KR 100626362 B1 KR100626362 B1 KR 100626362B1 KR 1020030033048 A KR1020030033048 A KR 1020030033048A KR 20030033048 A KR20030033048 A KR 20030033048A KR 100626362 B1 KR100626362 B1 KR 100626362B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- slave
- master
- masters
- arbiter
- Prior art date
Links
Images
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
-
- 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/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
-
- 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
-
- 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/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
본 발명은 슬래이브 억세스 대역폭을 향상시키기 위한 버스 시스템 및 그 제어 방법에 관한 것이다. 본 발명의 버스 시스템은 시스템 버스, 다수의 버스 마스터, 다수의 슬래이브 및 중재기를 포함한다. 버스 시스템은 적어도 하나의 버스 마스터로부터 시스템 버스의 사용을 위한 요청이 있으면, 중재기는 요청한 모든 버스 마스터들에게 버스 소유권을 제공한 것으로 판단되게 승인한다. 승인을 받은 버스 마스터들은 중재기로 구동 정보를 출력하고, 중재기는 구동 정보와 슬래이브의 상태 정보를 이용하여 실제로 시스템 버스 사용을 요청한 하나의 버스 마스터와 슬래이브 간에 데이터 전송이 이루어지도록 중재한다. 본 발명에 의하면, 버스 사용을 요청한 모든 버스 마스터로 하여금 버스 사용권을 얻은 것처럼 동작시켜 필요한 구동 정보를 중재 이전에 미리 획득함으로써, 중재시 최적화된 데이터 억세스가 되도록 하여 시스템 버스의 대역폭을 향상시킨다.
버스 시스템, 중재기, 버스 마스터, 슬래이브, SDRAM, 뱅크 인터리빙
Description
도 1은 본 발명에 따른 버스 시스템의 개략적인 구성을 도시한 블럭도;
도 2는 본 발명의 실시예에 따른 싱크로너스 디램을 구비하는 버스 시스템의 상세한 구성을 도시한 블럭도;
도 3은 도 2에 도시된 버스 시스템에서의 버스 마스터들과 슬래이브들 간의 데이터 억세스시 중재를 위한 타이밍도;
도 4a 내지 도 4b는 본 발명의 실시예에 따른 싱크로너스 디램 독출시, 뱅크 인터리빙 방식을 사용하지 않는 경우와, 뱅크 인터리빙 방식을 사용하는 경우를 나타내는 타이밍도;
도 5는 본 발명에 따른 버스 시스템에서 시스템 버스의 사용을 중재하기 위한 준비하는 동작과 중재 그리고 해당 슬래이브로 데이터 처리 준비 작업을 요청하는 과정을 나타내는 흐름도;
도 6은 본 발명에 따른 버스 시스템의 데이터 전송을 중재하는 동작 흐름도; 그리고
도 7은 일반적인 버스 시스템과 본 발명에 따른 버스 시스템의 슬래이브 억 세스 대역폭을 비교하여 나타내는 타이밍도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 버스 시스템 110 : 버스 마스터
120 : 중재기 122 : 마스터 인터페이스
124 : SDRAM 컨트롤러 인터페이스 130 : SDRAM 컨트롤러
140 : SDRAM 150 : 멀티플렉서
본 발명은 버스 시스템(bus system)에 관한 것으로, 좀 더 구체적으로는 다수의 버스 마스터(bus master)와, 다수의 슬래이브(slave)가 연결된 고속의 대역폭(bandwidth)을 갖는 시스템 버스(system bus)에서, 슬래이브의 억세스 대역폭을 향상시키기 위한 버스 시스템 및 그의 데이터 억세스를 위한 제어 방법에 관한 것이다.
일반적으로 다수의 버스 마스터와 다수의 슬래이브 및 중재 회로(arbiter)를 구비하는 버스 시스템은 버스 마스터들과 슬래이브들 간의 버스 사용을 위해 고정 우선권(fixed priority) 방식 또는 라운드 로빈(round-robin) 방식 등을 이용하여 버스 마스터들간의 버스 사용을 중재한다. 이 후, 버스 시스템은 선택된 버스 마스터로 버스 소유권(bus ownership)을 갖게 하여 해당 슬래이브를 억세스하는 방식으로 진행된다.
이러한 방식은 긴 대기 시간(long latency)을 갖는 슬래이브들 예를 들어, 싱크로너스 디램(SDRAM) 등과 같은 슬래이브에 대한 데이터 억세스의 경우, 효율적으로 시스템 버스를 중재하기가 어렵고, 이를 구현하기 위한 중재 회로의 구성 또한 매우 복잡하다.
싱크로너스 디램(SDRAM)은 일반적으로 2 내지 4 개의 뱅크들을 갖는 구조로 이루어진다. 싱크로너스 디램에 대한 데이터 억세스는 일반적으로 뱅크 단위의 데이터를 기입(write) 또는 독출(read)하기 위한 RAS 및 CAS 동작과, 이들 동작 이후, 활성화된 뱅크를 프리챠징하는 프리챠지(precharge) 동작이 순차적으로 수행된다. 이 때, 이들 동작 사이에는 일정 크기의 대기 시간(latency)이 최소로 존재하므로 초기 명령이 출력된 후, 실제 데이터 버스를 사용할 때까지는 여러 주기의 억세스 사이클이 소요된다.
따라서 싱크로너스 디램(SDRAM)의 대역폭을 최적화하기 위한 방법으로 버스 시스템은 뱅크 인터리빙(bank interleaving) 방식이 사용되고 있다. 그러나 이 경우, 버스 마스터들은 적어도 하나의 슬래이브 즉, 싱크로너스 디램을 데이터 억세스하기 위하여 각각 버스 소유권(bus ownership)을 가져야만 하며, 중재 회로는 버스 소유권을 갖은 버스 마스터로부터 유효한 어드레스 정보와 제어 정보를 제공받아 이에 대응하는 슬래이브를 억세스할 수 있도록 중재한다. 즉, 중재 회로는 버스 마스터로부터 출력된 어드레스 정보와 제어 정보를 이용하여 슬래이브 억세스를 구동(drive)하기 때문에, 고속의 대역폭을 갖는 뱅크 인터리빙 방식을 지원하는데는 모든 버스 마스터들로부터 버스 소유권이 획득될 때마다 슬래이브를 억세스하기 위한 구동 정보(예컨대, 어드레스 정보 및 제어 정보 등)를 획득하여 해당 뱅크 억세스를 시작해야 하는 등의 어려움이 따른다.
본 발명의 목적은 상술한 문제점을 해결하기 위한 것으로, 고속의 대역폭을 갖는 시스템 버스에서 다수의 마스터와 슬래이브들 간의 억세스 대역폭을 향상시키기 위한 버스 시스템을 제공하는데 있다.
본 발명의 다른 목적은 상술한 문제점을 해결하기 위한 것으로, 고속의 대역폭을 갖는 시스템 버스에서 다수의 마스터와 슬래이브들 간의 억세스 대역폭을 향상시키기 위하여 버스 시스템의 슬래이브 억세스를 제어하는 방법을 구현하는데 있다.
또한, 본 발명의 또 다른 목적은 상술한 문제점을 해결하기 위한 것으로, 긴 대기 시간을 갖는 슬래이브의 데이터 억세스 시, 뱅크 인터리빙 방식을 이용하여 억세스 대역폭을 최대화하기 위한 버스 시스템 및 그 방법을 제공하는데 있다.
상술한 목적을 달성하기 위한 본 발명의 일 특징에 의하면, 버스 시스템은, 시스템 버스와, 상기 시스템 버스에 연결되는 다수의 버스 마스터들과, 상기 시스템 버스에 연결되고, 상기 버스 마스터들과 데이터 전송을 수행하는 슬래이브들 및, 상기 버스 마스터들 중 적어도 하나로부터 상기 슬래이브들 중 어느 하나를 억세스하기 위한 버스 사용의 요청이 있으면, 상기 요청한 버스 마스터들 모두에게 버스 사용을 승인하여 상기 요청한 버스 마스터들 모두로부터 상기 슬래이브들과의 데이터 전송을 위한 구동 정보를 출력하도록 하는 중재기를 포함하되, 상기 중재기는 상기 요청한 버스 마스터들로부터 상기 구동 정보가 출력되면, 상기 요청한 버스 마스터들 중 구동 정보와 슬래이브의 상태 정보를 이용하여 중재를 통해 하나의 버스 마스터를 선정하고 해당 슬래이브로 데이터 처리 준비 작업 요구를 보내게 된다. 여기서 상기 구동 정보는 상기 슬래이브들 중 어느 하나를 억세스하기 위한 어드레스 정보, 데이터 및 제어 신호를 포함한다. 상기 슬래이브가 데이터 처리를 위한 준비 작업을 끝냈을 때, 상기 버스 마스터가 버스를 사용할 수 있다면 상기 버스 마스터와 해당 슬래이브 간에 데이터 전송이 이루어지도록 제어한다.
이 특징의 바람직한 실시예에 있어서, 상기 슬래이브는 긴 대기 시간을 갖는 반도체 디바이스로서, 복수 개의 뱅크를 갖는 싱크로너스 디램과, 상기 중재기의 제어를 받아서 상기 싱크로너스 디램의 데이터 억세스를 제어하는 싱크로너스 디램 컨트롤러를 포함한다. 상기 싱크로너스 디램 컨트롤러는 뱅크 인터리빙 방식에 의해 상기 싱크로너스 디램을 데이터 억세스한다. 이 때, 상기 중재기는, 상기 싱크로너스 디램들 중 가장 최근에 억세스되었던 싱크로너스 디램의 뱅크에 대해서 최하위 우선권을 부여한다.
이 특징의 바람직한 실시예에 있어서, 상기 중재기는, 상기 구동 정보가 출력되면, 중재 작업을 통해 해당 슬래이브로 데이터 처리 준비 작업 요구를 보내며 상기 버스 마스터가 버스 소유권을 가질 때 상기 버스 마스터에게 해당 슬래이브로부터 나온 데이터 레디 신호를 출력하고, 동시에 상기 실제 소유권을 갖지 않은 버스 마스터들로 비활성화된 제어 신호를 출력한다. 상기 중재기는, 상기 구동 정보 를 받아들여서 상기 슬래이브들 중 데이터 처리 준비 요구를 받은 슬래이브가 데이터 전송 준비가 완료되었는지를 판별하여, 상기 슬래이브들 중 데이터 처리 준비를 끝낸 슬래이브에 요청한 버스 마스터들 중 버스 소유권이 있는 버스 마스터에게 상기 시스템 버스를 사용하도록 한다.
이 특징의 바람직한 실시예에 있어서, 상기 버스 시스템은 상기 버스 마스터들로부터 출력된 기입 데이터와, 상기 중재기로부터 출력된 상기 버스 마스터들 중 실제 버스 소유권을 가진 버스 마스터를 선택하기 위한 선택 신호를 받아서 상기 구동 정보에 대응하는 특정 슬래이브로 상기 기입 데이터를 출력하는 멀티플렉서를 더욱 포함한다.
상술한 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 시스템 버스와, 상기 시스템 버스에 연결되는 다수의 버스 마스터들과, 상기 시스템 버스에 연결되고, 상기 버스 마스터들과 데이터 통신을 수행하는 슬래이브들 및 상기 데이터 통신을 중재하기 위한 중재 회로를 구비하는 버스 시스템의 슬래이브 억세스를 위한 제어 방법은, 상기 버스 마스터들 중 적어도 하나의 버스 마스터로부터 버스 사용을 위한 요청이 있는지를 판별하는 단계와, 상기 판별 결과, 상기 요청이 있는 버스 마스터가 적어도 하나 있으면, 상기 요청이 있는 모든 버스 마스터들로 버스 사용을 승인하는 단계와, 상기 승인을 받은 버스 마스터들로부터 버스 사용을 위한 상기 슬래이브들의 구동 정보를 각각 출력하도록 하는 단계와, 상기 승인을 받은 버스 마스터 중에서 중재를 통해 하나의 버스 마스터를 선택하고 해당 슬래이브로 데이터 처리 준비 요구를 보내는 단계 및, 데이터 처리 준비가 끝난 슬래이브 에 상기 요청을 보낸 버스 마스터들 중 버스 소유권을 가진 버스 마스터와, 상기 구동 정보에 대응하는 특정 슬래이브 간에 시스템 버스를 사용하도록 하는 단계를 포함한다.
이 특징의 바람직한 실시예에 있어서, 상기 시스템 버스를 사용하도록 하는 단계는, 상기 구동 정보에 대응되는 상기 특정 슬래이브가 데이터 억세스 가능하면, 상기 버스 소유권을 가진 버스 마스터로 버스 사용을 위한 활성화된 제어 신호를 출력하고, 동시에 상기 승인을 받은 버스 마스터들 중 나머지 버스 마스터들로 비활성화된 제어 신호를 출력한다. 그리고 상기 특정 슬래이브가 데이터 전송 준비가 완료되지 않았으면, 상기 특정 슬래이브가 데이터 억세스 가능할 때까지 상기 버스 소유권을 가진 버스 마스터로 상기 제어 신호를 비활성화시킨다. 이 때, 상기 슬래이브들 중 가장 최근에 억세스되었던 슬래이브에 대해서는 최하위 우선권을 부여하는 것이 바람직하다.
따라서 본 발명에 의하면, 버스 사용을 요청한 모든 버스 마스터로 하여금 버스 사용권을 얻은 것처럼 동작시켜서 필요한 구동 정보를 획득함으로써, 버스 시스템은 뱅크 인터리빙 방식으로 버스 마스터들과 슬래이브들 간의 최적화된 억세스가 되도록 중재하여 슬래이브 억세스 대역폭을 향상시킨다.
이하 본 발명의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.
도 1은 본 발명에 따른 고속의 대역폭을 갖는 버스 시스템의 개략적인 구성을 도시한 블럭도이다.
도면을 참조하면, 상기 버스 시스템(10)은 고속의 대역폭을 갖는 시스템 버 스(system bus)와, 시스템 버스에 연결되는 복수 개의 마스터들(2a ~ 2c)과 슬래이브들(4a ~ 4c) 및 중재 회로(Arbitration Circuit)(6)를 포함한다.
상기 시스템 버스(System Bus)는 예컨대, AMBA(Advanced Microcontroller Bus Architecture) AHB(Advanced High-performance Bus) 규격의 기술적인 특징을 가지며, 다수의 버스 마스터들(2a ~ 2c)과 슬래이브들(4a ~ 4c) 및 중재 회로(6) 간의 상호 데이터 전송을 위한 어드레스(ADDR), 데이터(DATA) 및 제어(CONTROL) 정보를 전달한다.
상기 버스 마스터들(2a ~ 2c)은 예를 들어, 중앙처리장치(CPU), 마이크로프로세서 및 마이크로컨트롤러 등으로 구비되며, 적어도 하나로부터 슬래이브 억세스를 위한 버스 사용을 요청하고, 버스 소유권이 획득되면, 해당 슬래이브를 억세스하기 위한 구동 정보 즉, 어드레스 및 제어 정보를 출력한다.
상기 슬래이브들(4a ~ 4c)은 긴 대기 시간을 갖는 반도체 장치로서, 예를 들어, 싱크로너스 디램(SDRAM)과, SDRAM 컨트롤러 등으로 구비된다.
그리고 상기 중재 회로(6)는 상기 버스 마스터들로부터 상기 슬래이브들(4a ~ 4c) 중 적어도 하나를 데이터 억세스하기 위해 버스 소유권을 갖는 버스 마스터로부터 어드레스 정보와 제어 정보(예를 들어, 기입/독출 명령, 버스트 동작, 데이터 크기 등)를 포함하는 구동 정보를 받아서 중재를 통해 하나의 버스 마스터를 선택하고, 해당 슬래이브로 데이터 처리 준비 요구를 보내어 해당 슬래이브를 데이터 억세스(기입 또는 독출)하도록 중재한다. 본 발명에 의하면, 상기 중재 회로(6)는 적어도 하나의 버스 마스터들(2a, 2b 또는 2c)로부터 버스 사용을 요청하면, 버스 사용을 요청한 버스 마스터들 모두에게 버스 사용을 인가하는 버스 소유권(bus ownership)을 얻었다고 여기도록 승인(grant)한다. 이어서 상기 중재 회로(6)는 버스 사용을 요청한 모든 버스 마스터들로부터 필요한 구동 정보 예를 들어, 어드레스 및 제어 정보를 받아들인다. 그리고 상기 중재 회로(6)는 중재를 통해 데이터 처리 준비 작업을 요청받은 해당 슬래이브의 억세스가 준비 완료되면, 실제 버스 소유권을 가진 버스 마스터와 해당 슬래이브 간의 데이터 억세스를 위하여 시스템 버스를 사용하도록 중재한다.
따라서 본 발명의 버스 시스템(10)은 적어도 하나의 버스 마스터(2a, 2b 또는 2c)로부터 버스 사용을 위한 요청 신호가 출력되면, 중재 회로(6)는 요청 신호를 출력한 모든 버스 마스터로 버스 소유권을 가진 것처럼 동작시켜서 중재에 필요한 슬래이브(4a, 4b 또는 4c)의 어드레스 및 제어 정보를 중재 이전에 획득한다.
구체적으로 도 2는 본 발명의 실시예에 따른 버스 시스템의 구성을 도시한 블럭도이다.
도면을 참조하면, 상기 버스 시스템(100)은 3 개의 버스 마스터들(110a ~ 110c)과, 싱크로너스 디램(SDRAM : 140)과 SDRAM 컨트롤러(130)로 구비되는 슬래이브와, 멀티플렉서(150) 및 중재기(arbiter : 120)를 포함한다. 그리고 중재기(120)는 버스 마스터들(110a ~ 110c) 및 SDRAM 컨트롤러(130)와 각각 인터페이스하기 위한 마스터 인터페이스(122) 및 SDRAM 컨트롤러 인터페이스(124)를 포함한다. 또한, 중재기(120)는 멀티플렉서(150)와 상호 동작하도록 연결된다.
상기 버스 마스터들(110a ~ 110c)은 도 1에서와 같이, 중앙처리장치, 마이크 로컨트롤러 및 마이크로프로세서 등으로 구비되며, 각각의 버스 마스터들(110a, 110b 또는 110c)은 중재기(120)로 싱크로너스 디램(140)을 억세스하기 위한 요청 신호(HBUSREQ1, HBUSREQ2 또는 HBUSREQ3)를 출력한다. 각 버스 마스터(110a, 110b 또는 110c)는 자신의 요청 신호(HBUSREQ1, HBUSREQ2 또는 HBUSREQ3)에 응답해서 상기 중재기(120)로부터 승인 신호(HGRANT1, HGRANT2 또는 HGRANT3)가 입력되면, 버스 소유권을 가진 것으로 판단하여 싱크로너스 디램(140)을 억세스하기 위한 구동 정보 즉, 어드레스 정보(HADDR1 ~ HADDR3)와 제어 정보(HBURST1 ~ HBURST3, HWRITE1 ~ HWRITE3)를 중재기(120)로 출력한다.
상기 슬래이브(130, 140)는 예컨대, 긴 대기 시간을 갖는 반도체 장치로서, 싱크로너스 디램(SDRAM)(140)과 SDRAM 컨트롤러(130)로 구비된다. 상기 버스 마스터들(110a ~ 110c)로부터의 슬래이브 억세스시, 상기 슬래이브(130, 140)는 뱅크 인터리빙 방식으로 억세스된다.
구체적으로, 상기 싱크로너스 디램(140)은 복수 개의 뱅크(bank)들(예를 들어, 2 개 또는 4 개 등)(142a ~ 142d)를 구비한다. 그리고 상기 싱크로너스 디램(140)은 상기 SDRAM 컨트롤러(130)로부터 어드레스(ADDR) 및 제어 정보(NDCS, NRAS, NCAS, NDWE, BA 등)를 받아서 데이터(DATA)를 기입 또는 독출된다. 상기 뱅크들(142a ~ 142d)은 뱅크 인터리빙 방식에 의해 동일 또는 서로 다른 뱅크로 억세스된다. 여기서 제어 정보 중 NDCS 신호는 칩 선택 신호이며, NRAS 신호는 로우 어드레스 스트로브 신호이며, NCAS 신호는 컬럼 어드레스 스트로브 신호 그리고 NDWE 신호는 기입 명령 신호이다. 이들 신호들(NDCS, NRAS, NCAS, NDWE)은 로우 레벨에서 활성화된다. 그리고 BA 신호는 뱅크 어드레스 신호이다.
상기 SDRAM 컨트롤러(130)는 중재기(120)의 SDRAM 컨트롤러 인터페이스(124)를 통하여 출력된 요청 신호(BIREQD)에 응답해서 요청 신호를 잘 받았다는 응답 신호(BICONFIRMD)를 출력하며 싱크로너스 디램(140)의 해당 뱅크가 억세스 준비 완료된 상태인지를 나타내는 준비 신호(BIREADYD)를 출력하고, 상기 중재기(120)로부터 상기 구동 정보에 대응하는 어드레스 정보(BIADDR) 및 제어 정보(BIBA, BIBE, BIRCONT, BICCONT)를 받아서 상기 싱크로너스 디램(140)을 억세스하도록 제어한다. 이 때, 상기 SDRAM 컨트롤러(130)는 상기 싱크로너스 디램(140)을 뱅크 인터리빙 방식으로 억세스한다.
또한, 상기 SDRAM 컨트롤러(130)는 상기 버스 마스터들(110a ~ 110c)로부터 독출 동작을 위한 어드레스(BIADDR) 및 제어 정보(BIBA, BIBE, BIRCONT, BICCONT)가 입력되면, 이에 응답해서 상기 싱크로너스 디램(140)의 해당 뱅크(142a, 142b, 142c 또는 142d)로부터 데이터(DATA)를 독출하여 해당 버스 마스터(110a, 110b 또는 110c)로 독출 데이터(BIRDATA : HRDATA1, HRDATA2 또는 HRDATA3)를 출력한다.
상기 중재기(140)는 마스터 인터페이스(122)를 통하여 버스 마스터들(110a ~ 110c)과 구동 정보 즉, 어드레스(HADDR1 ~ HADDR3) 및 제어 신호(HBURST1 ~ HBURST3, HWRITE1 ~ HWRITE3)들을 받아들이고, 또한 SDRAM 컨트롤러 인터페이스(124)를 통하여 상기 SDRAM 컨트롤러(120)와 준비 신호(BIREADYD), 어드레스 정보(BIADDR) 및 요청 신호(BIREQD) 등 데이터 전송을 위한 제어 정보를 전송한다.
구체적으로, 상기 중재기(120)는 상기 버스 마스터들(110a ~ 110c) 중 적어도 하나로부터 버스 사용(bus transfer)을 위한 요청 신호(HBUSREQ1, HBUSREQ2 또는 HBUSREQ3)를 수신하고, 요청한 버스 마스터들 모두에게 버스 사용을 인가하는 승인 신호(HGRANT1 ~ HGRANT3)를 출력한다. 버스 마스터들(110a ~ 110c)은 승인 신호(HGRANT1 ~ HGRANT3)에 응답해서 싱크로너스 디램(140)과의 데이터 억세스를 위한 각각의 구동 정보(HADDRx, HBURSTx, HWRITEx)를 발생한다. 중재기(120)는 구동 정보(HADDRx, HBURSTx, HWRITEx)를 받아들이고, 싱크로너스 디램의 각 뱅크별 상태 정보와 상기 구동 정보를 통해서 상기 승인된 모든 버스 마스터들(110a ~ 110c)을 중재하여 하나의 마스터를 선택하여 데이터 처리를 위한 준비 요구 신호(BIREQD)를 싱크로너스 디램 컨트롤러(130)에 보낸다. 해당 뱅크가 억세스 준비가 완료되면, 상기 요청한 버스 마스터들 중 실제로 버스 소유권(bus ownership)이 있는 버스 마스터에게 시스템 버스를 사용하도록 준비 신호(HREADY1, HREADY2 또는 HREADY3)를 출력하여 실제 버스 소유권이 있는 버스 마스터와 해당 뱅크 간에 데이터 전송이 이루어지도록 중재한다.
이 때, 상기 중재기(120)는 상기 구동 정보에 대응하는 특정 슬래이브로부터 버스 소유권이 있는 버스 마스터로 활성화된 제어 신호 즉, 하이(HIGH) 레벨의 준비 신호(HREADY1, HREADY2 또는 HREADY3)를 출력한다. 동시에 상기 중재기(140)는 나머지 요청한 버스 마스터들로 로우(LOW) 레벨의 비활성화된 제어 신호를 출력한다.
뿐만 아니라, 상기 중재기(120)는 상기 구동 정보에 대응되는 특정 슬래이브가 데이터 전송 준비가 완료되지 않았으면, 상기 특정 슬래이브가 데이터 억세스 가능할 때까지 상기 버스 소유권을 가진 버스 마스터와 버스 사용을 요청한 나머지 슬래이브 모두에게 버스 사용을 비활성화시킨다.
상기 승인 신호(HGRANT)는 다수의 버스 마스터들을 구비하는 버스 시스템(100)에서 버스 사용을 중재하기 위해 현재 어떤 버스 마스터가 버스 소유권을 가지고 있다는 것을 판별하기 위하여 필요하다. 또한 승인 신호(HGRANT)를 얻은 버스 마스터가 데이터 전송을 수행할 때, 슬래이브 또는 시스템 버스의 동작 상태에 따라 데이터 전송 사이클이 확장(extension)될 수 있다.
그리고 준비 신호(HREADY)는 데이터 전송 사이클의 확장(extension)에 관여되는 신호로, 본 발명에서는 버스 사용을 요청한 모든 버스 마스터들에게 중재를 수행하기 전에 승인 신호(HGRANT)를 출력하고, 이에 응답해서 모든 버스 마스터들로부터 전송된 구동 정보를 받은 후, 활성화된 준비 신호(HREADY)를 해당 버스 마스터로 출력하여 데이터 전송을 중재한다. 따라서 슬래이브가 억세스 준비가 완료되지 않게 되면, 준비 신호가 활성화될 때까지 만큼 데이터 전송 사이클이 증가하는 문제점을 해결하기 위해 중재기는 구동 정보가 입력되면, 이에 대응되는 다른 슬래이브를 억세스할 수 있도록 미리 새로운 데이터 처리 준비 작업 요청을 보낼 수 있다.
또한, 상기 중재기(140)는 구동 정보(어드레스 및 제어 신호)를 획득하여 가장 최근에 사용되었던 싱크로너스 디램(140)의 해당 뱅크에 대한 데이터 억세스에 대한 시스템 버스 사용시, 최하위 우선권을 부여하여 뱅크 인터리빙 방식을 최적화한다. 이는 현재 억세스되는 뱅크가 아닌 다른 뱅크를 억세스하려는 경우를 먼저 처리하면, 억세스 대역폭을 향상시킬 수 있기 때문에 동일한 뱅크에 대한 데이터 억세스 시에는 버스 사용을 최하위 우선권으로 할당하여 처리하는 것이다. 또한, 뱅크 인터리빙 방식은 동일한 뱅크에 대해서 억세스할 때 발생되는 제약 사항이 다른 뱅크에 대한 억세스 시에는 적용되지 않기 때문에 뱅크의 우선권을 조절하여 시스템 버스의 억세스 대역폭을 최적화할 수 있다. 물론, 중재기(120)는 뱅크 간의 라운드 로빈 방식 등을 이용하여 중재를 최적화할 수도 있다. 그리고 어떤 뱅크에 대한 억세스가 최상위 우선권을 갖는지가 결정되면, 그 뱅크에 대한 여러 버스 마스터들로부터의 억세스 중에서 어떤 것을 선택할 것인지에도 다양한 중재 방식을 사용할 수 있는 것은 자명한 일이다.
따라서 본 발명의 버스 시스템(100)은 슬래이브(130, 140)에 대한 데이터 억세스가 하나의 뱅크에 집중되지 않고 충분히 분산되어 있다고 가정하면, 위와 같은 특징을 이용하여 슬래이브의 억세스 대역폭을 최대화할 수 있다.
따라서 본 발명의 버스 시스템(100)은 슬래이브(130, 140)에 대한 데이터 억세스가 하나의 뱅크에 집중되지 않고 충분히 분산되어 있다고 가정하면, 위와 같은 특징을 이용하여 슬래이브의 억세스 대역폭을 최대화할 수 있다.
삭제
그리고 상기 멀티플렉서(150)는 상기 중재기(120)로부터 실제 버스 소유권을 가진 버스 마스터를 선택하기 위한 선택 신호(HMASTER)를 받아서 상기 버스 마스터(110a ~ 110c)들로부터 출력된 기입 데이터(HWDATA1, HWDATA2 또는 HWDATA3)를 선택하여 상기 SDRAM 컨트롤러(130)로 기입 데이터(BIWDATA)를 출력한다.
상술한 바와 같이, 일반적인 버스 시스템에서는 슬래이브 억세스시, 적어도 하나의 버스 마스터가 버스 사용을 요청하여 버스 소유권을 획득하고, 버스 소유권을 가진 버스 마스터로부터 제공된 구동 정보에 의해서 억세스될 슬래이브가 결정되어 버스 사용이 가능하게 된다. 그러나 본 발명의 버스 시스템은 다수의 버스 마스터와 슬래이브들 간의 데이터 억세스시, 실제 데이터가 전송되는 버스 소유권을 얻기 전에 버스 사용을 요청한 모든 버스 마스터들에게 버스 사용을 승인(grant)하고, 각각의 버스 마스터들로부터 억세스될 슬래이브의 구동 정보를 받아서 미리 해당 슬래이브의 억세스를 위한 준비 작업을 수행한다. 억세스 준비 작업이 완료되면, 모든 버스 마스터들 중 실제 버스 소유권을 가진 버스 마스터에게 시스템 버스를 사용하도록 제어한다. 따라서 실제 버스 소유권을 가진 버스 마스터는 해당 슬래이브의 억세스 준비가 완료되면 시스템 버스를 사용함으로써, 슬래이브 억세스 대역폭을 최대로 향상시킬 수 있다.
도 3은 도 2에 도시된 버스 시스템의 독출 동작을 나타내는 타이밍도이다. 여기서는 2 개의 버스 마스터들을 이용하여 독출 동작에 따른 억세스를 설명한다.
도면을 참조하면, 상기 버스 시스템(100)은 시스템 버스의 클럭 신호(HCLK)에 동기되어 처리된다.
상기 버스 시스템(100)은 제 1 및 제 2 버스 마스터들로부터 버스 사용을 위한 제 1 및 제 2 요청 신호(HBUSREQ1, HBUSREQ2)가 발생되면, 중재기(120)는 제 1 및 제 2 요청 신호(HBUSREQ1, HBUSREQ2)를 출력한 제 1 및 제 2 버스 마스터들에게 각각 제 1 및 제 2 승인 신호(HGRANT1, HGRANT2)를 동시에 출력한다. 즉, 제 1 및 제 2 승인 신호(HGRANT1, HGRANT2)는 각각 제 1 및 제 2 요청 신호(HBUSREQ1, HBUSREQ2)에 응답해서 하이 레벨로 트리거(trigger)되며, 이에 응답해서 제 1 및 제 2 어드레스 정보(HADDR1, HADDR2)를 발생한다.
제 1 및 제 2 버스 마스터는 제 1 및 제 2 승인 신호(HGRANT1, HGRANT2)에 응답해서 각각 자신이 버스 소유권을 가진 것으로 판단하여 구동 정보인 제 1 및 제 2 어드레스 정보(HADDR1, HADDR2)를 출력한다.
상기 버스 시스템(100)은 제 1 및 제 2 버스 마스터들로부터 버스 사용을 위한 제 1 및 제 2 요청 신호(HBUSREQ1, HBUSREQ2)가 발생되면, 중재기(120)는 제 1 및 제 2 요청 신호(HBUSREQ1, HBUSREQ2)를 출력한 제 1 및 제 2 버스 마스터들에게 각각 제 1 및 제 2 승인 신호(HGRANT1, HGRANT2)를 동시에 출력한다. 즉, 제 1 및 제 2 승인 신호(HGRANT1, HGRANT2)는 각각 제 1 및 제 2 요청 신호(HBUSREQ1, HBUSREQ2)에 응답해서 하이 레벨로 트리거(trigger)되며, 이에 응답해서 제 1 및 제 2 어드레스 정보(HADDR1, HADDR2)를 발생한다.
삭제
따라서 제 1 준비 신호(HREADY1)가 활성화되었을 때 제 1 버스 마스터는 해당 뱅크를 억세스하고, 제 1 버스 마스터의 구동 정보가 전송 완료된 시점에서 제 2 버스 마스터를 위한 제 2 준비 신호(HREADY2)는 하이 레벨로 활성화되어 싱크로너스 디램의 해당 뱅크를 억세스한다.
도 4a 및 도4b는 싱크로너스 디램 독출시, 뱅크 인터리빙 방식을 사용하지 않는 경우와, 본 발명의 실시예에 따른 뱅크 인터리빙 방식을 사용하는 경우를 비교하기 위한 타이밍도이다. 도 4a는 SDRAM 컨트롤러와 싱크로너스 디램 간에 뱅크 인터리빙 방식을 이용하지 않는 경우를 나타내며, 도 4b는 본 발명의 실시예에 따른 뱅크 인터리빙 방식을 이용하는 경우를 나타낸 것이다. 여기서 싱크로너스 디램은 각 뱅크마다 억세스시 래스, 캐스 및 프리챠지 동작이 순차적으로 이루어진다.
도 4a를 참조하면, 싱크로너스 디램은 버스 시스템의 클럭 신호(CLK)에 동기시켜 칩 선택 신호(NDCS)와 RAS 신호(NRAS)가 활성화되고, 뱅크 어드레스(BA=0)와 로우 어드레스(R0 ADDR)가 입력될 때, 뱅크(BA=0)에 대한 독출 RAS 동작이 수행된다. 이어서 칩 선택 신호(NDCS), CAS 신호(NCAS)가 활성화되고, 뱅크 어드레스(BA=0)와 컬럼 어드레스(C0 ADDR)가 입력될 때, 뱅크(BA=0)에 대한 독출 CAS 동작이 수행된다. 이어서 수 클럭 사이클 타임 후에 뱅크(BA=0)의 데이터가 억세스되면서 프리챠지 명령(PRE0)에 의해 프리챠지 동작이 수행된다.
이어서 제 2 뱅크의 억세스를 위한 RAS, CAS 및 프리챠지 동작이 순차적으로 이루어진다. 따라서 도 4a에 도시된 바와 같이, 서로 다른 뱅크들의 데이터 억세스 구간(DATA의 B0D3 ~ B0D0) 사이에 적정의 대기 시간이 발생하게 된다. 이는 중재를 통해 이전에 버스 소유권을 받은 데이터 억세스를 처리하는 슬래이브에게 중재기가 준비를 요구할 수 없기 때문이다. 대기 시간의 발생은 고속의 대역폭을 저하시키는 원인이 된다.
그러나 도 4b를 참조하면, 본 발명에 의하여 싱크로너스 디램은 뱅크 인터리빙 동작이 이루어져서 제 1 뱅크가 억세스되는 도중에 제 2 뱅크 및 제 3 뱅크의 독출 어드레스가 입력되고, 독출 동작이 완료되기 전에 프리챠지 동작이 수행된다.
따라서 본 발명에 따른 뱅크 인터리빙 방식에 의한 데이터 억세스(기입/독출)시 각 뱅크에 대한 연속적인 어드레스 정보를 지정하고, 이를 순차적으로 처리함으로써, 슬래이브의 억세스 대역폭이 증가한다. 즉, 버스 사용 요청이 발생되면, 중재기로부터 모든 버스 마스터들에게 승인하여 자신들 각각이 버스 소유권을 받은 것처럼 인식하도록 하기 때문에 버스 사용을 요청한 모든 버스 마스터들은 중재기로 미리 구동 정보를 보낸다. 이에 대응하여 중재기는 미리 버스 마스터로부터 받은 구동 정보를 통해 데이터 전송을 위한 준비를 슬래이브에게 요청한다.
도 5 및 도 6는 본 발명에 따른 버스 시스템의 슬래이브를 억세스하기 위한 제어 수순을 도시한 흐름도이다. 도 5는 본 발명에 따른 버스 사용을 요청하는 적어도 하나의 버스 마스터의 슬래이브 억세스를 위한 준비 동작을 나타내며, 도 6은 본 발명에 따라 데이터 처리 준비 요구를 수신한 이 후의 동작 상태를 나타낸다. 특히, 상기 슬래이브들은 긴 대기 시간을 갖는 반도체 디바이스(예를 들어, SDRAM 및 SDRAM 컨트롤러)의 억세스 동작시 뱅크 인터리빙 방식을 이용하여 처리된다.
도 5를 참조하면, 단계 S200에서 상기 중재기(120)는 적어도 하나의 버스 마스터들로부터 버스 사용을 위한 요청 신호(HBUSREQ)이 있는지를 판별한다. 적어도 하나의 버스 마스터로부터 요청 신호(HBUSREQ)가 출력되면, 단계 S202에서 버스 사용을 요청한 모든 버스 마스터들로 버스 소유권을 부여하는 승인 신호(HGRANT)를 출력한다.
단계 S204에서 중재기(120)는 승인 신호(HGRANT)를 받은 모든 버스 마스터들로부터 버스 사용을 위한 구동 정보를 받아들인다. 이 때 구동 정보는 슬래이브로/로부터 데이터를 기입/독출하기 위한 어드레스 정보와 제어 정보(예를 들어, 동작 모드에 따른 제어 정보, 데이터 크기 등)를 포함한다.
이어서 단계 S206에서 상기 승인된 버스 마스터들이 억세스하고자 하는 슬래이브들의 상태 정보와 상기 구동 정보를 이용하여 실제로 버스 사용을 요청한 하나의 버스 마스터를 선택하기 위한 중재 작업을 수행하고, 해당 슬래이브로 데이터 억세스를 위한 준비 작업 요구를 내보낸다. 예를 들어, 도 2에 도시된 바와 같이, 중재기는 상기 구동 정보가 입력되면, 상기 선택된 버스 마스터와 싱크로너스 디램 간에 데이터 전송이 이루어지도록 SDRAM 컨트롤러로 준비 작업을 요구한다. 따라서 미리 제공된 구동 정보를 통하여 싱크로너스 디램의 억세스시 발생되는 대기 시간을 줄일 수 있다.
상술한 바에 의하면, 본 발명은 적어도 하나의 버스 마스터로부터 시스템 버스 사용을 요청하면, 시스템 버스 사용을 요청한 모든 버스 마스터들로 승인 신호를 출력하고, 이에 응답해서 버스 마스터들은 슬래이브 억세스를 위한 구동 정보를 출력하여 데이터 전송을 준비한다. 뿐만 아니라, 구동 정보에 대응하는 슬래이브와 미리 버스 소유권을 가진 버스 마스터와의 데이터 전송 중에도 다른 버스 마스터들로부터 구동 정보를 수신 및 해당 슬래이브로 데이터 전송을 위한 준비 작업 요청을 보낼 수 있다. 그 결과, 시스템 버스가 다른 버스 마스터의 데이터 전송으로 인하여 현재 사용 불가능할지라도 요청이 있는 모든 마스터들로부터 구동 정보를 수신함으로써, 버스 사용을 요청한 버스 마스터들은 데이터 억세스가 필요한 경우, 구동 정보에 대응하는 슬래이브에 대해 데이터 전송을 위한 준비 작업 요청을 보낼 수 있다. 따라서 슬래이브의 구동 시점을 미리 중재하여 슬래이브 억세스 대역폭을 최대화할 수 있다.
계속해서 도 6을 참조하면, 단계 S210에서 상기 중재기(120)는 이전에 데이터 처리 준비 작업이 요청된 슬래이브가 데이터 전송이 가능한지를 판별한다. 이는 상기 중재기(120)가 슬래이브(SDRAM 컨트롤러 : 130)로부터 준비 신호(BIREADYD)를 받아서 데이터 전송 가능한 상태인지를 판별한다.
판별 결과, 슬래이브가 억세스 준비 완료 상태이면 단계 S212에서 상기 중재기(120)는 실제로 데이터 통신을 위한 버스 마스터가 어느 것인지를 판별한다. 즉, 억세스 준비 완료된 슬래이브와 상기 슬래이브로 데이터 처리 준비 작업 요청을 보낸 버스 마스터가 상호 데이터 전송을 위한 실제 버스 소유권을 가지고 있는지를 판별한다. 판별 결과, 실제 버스 소유권을 가진 버스 마스터가 있으면, 이 수순은 단계 S214로 진행하여 상기 중재기(120)는 실제 버스 소유권을 가지며 이전에 상기 슬래이브에 데이터 처리 준비 작업 요청을 보냈던 버스 마스터로 하이 레벨의 준비 신호(HREADY)를 전송하고, 동시에 나머지 버스 마스터들로는 로우 레벨의 준비 신호(HREADY)를 전송한다.
이어서 단계 S216에서 버스 소유권을 가진 버스 마스터와 억세스 준비 완료된 슬래이브 간에 데이터 전송을 수행하도록 중재한다.
상술한 바와 같이, 본 발명의 버스 시스템의 중재기는 시스템 버스와 연결된 복수의 버스 마스터들로부터 슬래이브 억세스를 위한 요청이 수신될 때 요청을 발생한 버스 마스터들 모두에게 승인 신호를 발생한다. 요청을 발생한 버스 마스터들은 승인 신호에 응답하여 슬래이브 억세스를 위한 구동 정보를 중재기에게 전송한다. 중재기는 수신된 구동 정보를 슬래이브로 전송하여 슬래이브가 데이터 처리 준비 작업을 수행하도록 한다. 슬래이브가 데이터 처리 준비 작업을 완료했을 때 중재기는 요청을 발생한 버스 마스터들 중 하나를 선택하여 준비 신호를 전송함으로써 버스 소유권을 가진 버스 마스터가 해당 슬래이브를 억세스한다.
그 결과, 도 7에 도시된 바와 같이, 일반적인 버스 시스템의 슬래이브 억세스 동작(a)과 본 발명의 버스 시스템(100)의 억세스 동작(b)을 비교하면, 시스템 버스의 데이터 전송시 Δt 만큼 슬래이브 억세스 대역폭이 향상됨을 알 수 있다. 즉, (a)에서 제 1 어드레스 정보(ADDR1 ~ ADDR4)에 대응되는 제 1 데이터(DATA1 ~ DATA4)와 제 2 어드레스 정보(ADDR5 ~ ADDR8)에 대응되는 제 2 데이터(DATA5 ~ DATA8) 사이에는 데이터 억세스시 불필요한 대기 시간(Δt)이 존재한다. 그러나 (b)에서는 제 1 및 제 2 데이터 사이에는 대기 시간이 없다.
상술한 바와 같이, 본 발명의 버스 시스템은 버스 사용 요청이 있는 모든 버스 마스터들에게 버스 사용권을 얻은 것처럼 동작시켜서 필요한 구동 정보를 미리 획득함으로써, 구동 정보를 이용하여 슬래이브를 준비시켜서 실제 데이터 억세스시 최적화된 억세스가 되도록 중재하여 슬래이브 억세스 대역폭을 향상시킨다.
또한, 긴 대기 시간을 갖는 싱크로너스 디램의 억세스시, 버스 사용 요청이 있는 모든 버스 마스터들에게 버스 사용권을 얻은 것처럼 동작시켜서 필요한 구동 정보를 획득하고, 뱅크 인터리빙 방식을 이용하여 싱크로너스 디램의 억세스 대역폭을 최적화할 수 있다.
Claims (42)
- 버스 시스템에 있어서:시스템 버스와;상기 시스템 버스와 연결되고 요청을 발생하는 버스 마스터들과;상기 요청에 응답해서 상기 요청을 발생한 버스 마스터들 모두에게 승인 신호를 발생하는 중재기 및;상기 중재기의 중재에 따라서 상기 버스 마스터들과 데이터를 전송하는 적어도 하나의 슬래이브를 포함하되;상기 버스 마스터들은 상기 승인 신호에 응답해서 상기 슬래이브의 억세스에 필요한 구동 정보를 상기 중재기로 제공하고;상기 중재기는 상기 구동 정보를 받아들이고, 상기 구동 정보에 대응하는 상기 슬래이브를 억세스 가능하도록 준비시키며, 그리고 상기 슬래이브가 억세스 준비 완료되면, 상기 버스 마스터들 중 실제로 상기 시스템 버스의 사용을 요청한 버스 마스터에게 버스 소유권을 제공하여, 상기 버스 소유권을 갖는 버스 마스터와 상기 슬래이브 사이에 데이터 전송이 이루어지도록 상기 시스템 버스의 사용을 중재하는 것을 특징으로 하는 버스 시스템.
- 제 1 항에 있어서,상기 슬래이브는 긴 대기 시간(long latency time)을 갖는 반도체 디바이스 인 것을 특징으로 하는 버스 시스템.
- 제 2 항에 있어서,상기 슬래이브는,복수 개의 뱅크를 갖는 싱크로너스 디램과,상기 중재기의 제어를 받아서 상기 싱크로너스 디램의 데이터 억세스를 제어하는 싱크로너스 디램 컨트롤러를 포함하되,상기 싱크로너스 디램 컨트롤러는 뱅크 인터리빙 방식에 의해 상기 싱크로너스 디램을 억세스하는 것을 특징으로 하는 버스 시스템.
- 제 3 항에 있어서,상기 중재기는;상기 싱크로너스 디램의 상기 뱅크들 각각의 상태 정보를 사용하여 현재 사용 가능한 뱅크들에 대해서만 중재를 실시하는 것을 특징으로 하는 버스 시스템.
- 제 3 항에 있어서,상기 중재기는;상기 싱크로너스 디램의 상기 뱅크들 중 가장 최근에 억세스되었던 뱅크에 대해서 최하위 우선권을 부여하는 것을 특징으로 하는 버스 시스템.
- 제 1 항에 있어서,상기 중재기는;상기 구동 정보에 대응하는 상기 슬래이브가 억세스 준비 완료되면, 상기 버스 소유권을 갖는 버스 마스터로 상기 시스템 버스를 사용하도록 활성화된 제어 신호를 출력하고,동시에 상기 버스 소유권을 갖지 않은 다른 버스 마스터들로 비활성화된 제어 신호를 출력하는 것을 특징으로 하는 버스 시스템.
- 제 1 항 또는 제 6 항에 있어서,상기 구동 정보는 상기 슬래이브들 중 어느 하나를 억세스하기 위한 어드레스 정보, 데이터 및 제어 신호를 포함하는 것을 특징으로 하는 버스 시스템.
- 제 1 항에 있어서,상기 버스 시스템은;상기 버스 마스터들로부터 출력되어 상기 슬래이브로 기입되는 기입 데이터와, 상기 중재기로부터 출력된 상기 버스 마스터들 중 실제 버스 소유권을 가진 버스 마스터를 선택하기 위한 선택 신호를 받아서 상기 구동 정보에 대응하는 특정 슬래이브로 상기 기입 데이터를 출력하는 멀티플렉서를 더욱 포함하는 것을 특징으로 하는 버스 시스템.
- 제 1 항에 있어서,상기 중재기는;상기 요청한 모든 버스 마스터들로 상기 승인 신호를 발생하고, 상기 승인 신호에 대응하여 상기 요청한 모든 버스 마스터들로부터 상기 구동 정보를 받아들이며, 상기 슬래이브의 억세스 준비가 완료되면, 상기 모든 버스 마스터들 중 실제 버스 사용권을 갖는 버스 마스터를 선택하는 마스터 인터페이스와,상기 구동 정보에 대응하는 상기 슬래이브들로 억세스 가능하도록 준비를 요청하고, 상기 억세스 준비 완료된 슬래이브와 상기 실제 버스 사용권을 갖는 버스 마스터 간에 데이터 전송이 이루어지도록 제어하는 상기 슬래이브 컨트롤러 인터페이스를 포함하는 것을 특징으로 하는 버스 시스템.
- 시스템 버스와, 상기 시스템 버스에 연결되는 다수의 버스 마스터들과, 상기 시스템 버스에 연결되고, 상기 버스 마스터들과 데이터 통신을 수행하는 슬래이브들 및 상기 데이터 통신을 중재하기 위한 중재기를 구비하는 버스 시스템의 슬래이브 억세스를 위한 제어 방법에 있어서:상기 버스 마스터들 중 적어도 하나의 버스 마스터로부터 상기 중재기로 시스템 버스 사용의 요청이 있는지를 판별하는 단계와;상기 판별 결과, 상기 요청이 있는 버스 마스터가 적어도 하나 있으면, 상기 요청이 있는 모든 버스 마스터들로 버스 사용을 승인하는 단계와;상기 승인을 받은 모든 버스 마스터들로부터 상기 중재기로 상기 시스템 버스 사용을 위한 구동 정보를 각각 출력하는 단계와;상기 구동 정보에 따라서 상기 슬래이브가 데이터 억세스 가능하도록 준비하는 단계 및;상기 슬래이브와 상기 버스 사용을 요청한 버스 마스터들 중 실제 버스 소유권을 가진 버스 마스터 간에 데이터가 전송되도록 중재하는 단계를 포함하는 것을 특징으로 하는 버스 시스템의 제어 방법.
- 제 10 항에 있어서,상기 중재하는 단계는;상기 구동 정보에 대응되는 상기 슬래이브가 데이터 억세스 준비가 완료되면,상기 버스 소유권을 가진 버스 마스터로 버스 사용을 위한 활성화된 제어 신호를 출력하고, 동시에 상기 승인을 받은 버스 마스터들 중 나머지 버스 마스터들로 비활성화된 제어 신호를 출력하는 것을 특징으로 하는 버스 시스템의 제어 방법.
- 제 10 항에 있어서,상기 중재하는 단계는;상기 슬래이브의 억세스 준비가 완료되지 않았으면, 상기 슬래이브가 억세스 가능할 때까지 상기 버스 소유권을 가진 버스 마스터와 상기 슬래이브 사이의 데이터 전송을 비활성화시키는 것을 특징으로 하는 버스 시스템의 제어 방법.
- 제 10 항에 있어서,상기 중재하는 단계는;상기 슬래이브들 중 가장 최근에 억세스되었던 슬래이브에 대해서는 최하위 우선권을 부여하는 것을 특징으로 하는 버스 시스템의 제어 방법.
- 시스템 버스와;상기 시스템 버스와 연결된 복수의 마스터 유닛들과;상기 시스템 버스와 연결된 슬레이브; 그리고상기 시스템 버스와 연결되고, 상기 복수의 마스터 유닛들 중 요청을 발생한 마스터 유닛들 모두에게 승인 신호를 발생하는 중재기를 포함하며;상기 요청을 발생한 마스터 유닛들은 상기 승인 신호에 응답해서 상기 중재기로 구동 정보를 제공하고, 상기 중재기는 상기 요청을 발생한 마스터 유닛들로부터 수신된 상기 구동 정보에 따라서 상기 마스터와 상기 슬래이브 사이에 데이터 전송이 이루어지도록 중재하는 버스 시스템.
- 삭제
- 제 14 항에 있어서,상기 중재기는,상기 승인 신호를 상기 요청을 발생한 마스터 유닛들로 동시에 제공하고, 상기 승인 신호에 응답한 상기 요청을 발생한 마스터 유닛들로부터 상기 구동 정보를 수신하고, 상기 요청을 발생한 마스터 유닛들 중 선택된 하나로 준비 신호를 발생하는 마스터 인터페이스를 포함하는 버스 시스템.
- 제 16 항에 있어서,상기 마스터 인터페이스는,상기 요청을 발생한 마스터 유닛들로부터의 적어도 하나의 요청 신호에 응답해서 상기 승인 신호를 발생하는 적어도 하나의 발생기를 포함하는 버스 시스템.
- 제 16 항에 있어서,상기 마스터 인터페이스는 적어도 하나의 슬레이브로부터의 슬레이브 준비 신호를 상기 요청을 발생한 마스터 유닛들 중 선택된 하나에 대한 데이터 전송 준비 신호로 변환하는 적어도 하나의 회로를 포함하는 버스 시스템.
- 제 16 항에 있어서,상기 준비 신호는 데이터 전송을 위한 신호인 버스 시스템.
- 제 14 항에 있어서,상기 중재기는 상기 요청을 발생한 마스터 유닛들 중 선택된 하나로부터의 상기 구동 정보에 응답해서 데이터 전송을 준비할 것을 적어도 하나의 슬레이브 유닛에 요청하는 컨트롤러 인터페이스를 포함하는 버스 시스템.
- 제 20 항에 있어서,상기 컨트롤러 인터페이스는 상기 적어도 하나의 슬레이브 유닛의 적어도 하나의 슬레이브 컨트롤러와 상호작용하는 슬레이브 컨트롤러 인터페이스를 포함하는 버스 시스템.
- 제 21 항에 있어서,각각의 슬레이브 컨트롤러는 적어도 하나의 슬레이브 메모리를 제어하는 버스 시스템.
- 제 21 항에 있어서,상기 컨트롤러 인터페이스는,상기 적어도 하나의 슬레이브 유닛의 적어도 하나의 SDRAM 컨트롤러와 상호 작용하는 SDRAM 컨트롤러 인터페이스인 버스 시스템.
- 제 23 항에 있어서,상기 SDRAM 컨트롤러는 적어도 하나의 SDRAM 메모리 뱅크를 제어하는 버스 시스템.
- 제 14 항에 있어서,상기 요청을 발생한 마스터 유닛들로부터의 상기 요청은 시스템 클럭에 동기되는 버스 시스템.
- 삭제
- 제 14 항에 있어서,상기 슬레이브 유닛은 데이터 전송을 위한 준비를 갖추고, 데이터는 마스터 유닛들 중 하나와 슬레이브 유닛 사이에 전송되는 버스 시스템.
- 삭제
- 제 14 항에 있어서,상기 적어도 하나의 마스터 유닛으로부터의 상기 요청은 시스템 클럭에 동기되는 버스 시스템.
- 제 14 항에 있어서,상기 중재기로부터의 상기 승인 신호 및 상기 적어도 하나의 마스터 유닛으로부터의 상기 구동 정보는 동기되는 버스 시스템.
- 시스템 내 중재 방법에 있어서:복수의 마스터들이 요청을 발생하는 단계와;중재기가 상기 요청들에 응답해서 상기 복수의 마스터들로 승인 신호를 발생하는 단계와;상기 복수의 마스터들이 상기 승인 신호에 응답해서 구동 정보를 상기 중재기로 전송하는 단계; 그리고상기 중재기가 상기 구동 정보에 근거해서 상기 복수의 마스터들이 슬레이브 장치에 접근하는 것을 중재하는 단계를 포함하는 중재 벙법.
- 삭제
- 제 31 항에 있어서,상기 요청 및 상기 구동 정보는 복수의 마스터들로부터 발생되는 중재 방법.
- 제 31 항에 있어서,상기 승인 신호는 모든 요청들에 응답하는 상기 중재기로부터 발생되는 중재 방법.
- 제 31 항에 있어서,상기 구동 정보에 응답해서 데이터 전송을 위한 준비를 요청하는 단계를 더 포함하는 중재 방법.
- 제 31 항에 있어서,상기 요청은 시스템 클럭에 동기되는 중재 방법.
- 마스터가 요청을 발생하는 단계와;중재기가 상기 요청에 응답해서 상기 마스터로 승인 신호를 발생하는 단계와;상기 마스터가 상기 승인 신호에 응답해서 구동 정보를 상기 중재기로 제공하는 단계; 그리고상기 중재기가 상기 구동 정보에 응답해서 상기 마스터와 슬레이브 유닛 간의 데이터 전송을 준비하는 단계를 포함하는 시스템 내 중재 방법.
- 제 37 항에 있어서,상기 요청 및 상기 구동 정보는 복수의 마스터들로부터 발생하는 시스템 내 중재 방법.
- 제 38 항에 있어서,상기 중재기가 상기 구동 정보에 응답해서 상기 마스터들 중 어느 하나와 상기 슬레이브 간의 데이터 전송 준비를 완료하는 단계; 그리고상기 마스터가 상기 슬레이브로 데이터를 전송하는 단계를 더 포함하는 시스템 내 중재 방법.
- 제 39 항에 있어서,상기 데이터 전송의 준비를 완료하는 단계는 상기 마스터들 중 하나를 선택하고, 상기 마스터들 및 상기 슬레이브와 연결된 버스가 사용 가능한 지의 여부를 판별하는 단계를 포함하는 시스템 내 중재 방법.
- 제 38 항에 있어서,상기 중재기는 상기 마스터들로부터의 상기 요청들에 응답해서 상기 승인 신호를 발생하는 시스템 내 중재 방법.
- 제 38 항에 있어서,상기 요청은 시스템 클럭과 동기되는 시스템 내 중재 방법.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030033048A KR100626362B1 (ko) | 2003-05-23 | 2003-05-23 | 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법 |
US10/737,124 US8209453B2 (en) | 2003-05-23 | 2003-12-17 | Arbiter, a system and a method for generating a pseudo-grant signal |
DE200410024849 DE102004024849B4 (de) | 2003-05-23 | 2004-05-13 | Arbitrierungseinheit, zugehöriges Bussystem und Arbitrierungsverfahren |
FR0405490A FR2855285B1 (fr) | 2003-05-23 | 2004-05-19 | Arbitre, systeme et procede pour generer un signal de pseudo-accord dans un systeme informatique |
JP2004152664A JP4684577B2 (ja) | 2003-05-23 | 2004-05-24 | 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法 |
CNB2004100459127A CN100419722C (zh) | 2003-05-23 | 2004-05-24 | 用于生成伪授予信号的仲裁器、系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030033048A KR100626362B1 (ko) | 2003-05-23 | 2003-05-23 | 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040100631A KR20040100631A (ko) | 2004-12-02 |
KR100626362B1 true KR100626362B1 (ko) | 2006-09-20 |
Family
ID=33448228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030033048A KR100626362B1 (ko) | 2003-05-23 | 2003-05-23 | 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8209453B2 (ko) |
KR (1) | KR100626362B1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100726101B1 (ko) * | 2005-04-29 | 2007-06-12 | (주)씨앤에스 테크놀로지 | 메모리 제어 시스템 |
KR101153712B1 (ko) | 2005-09-27 | 2012-07-03 | 삼성전자주식회사 | 멀티-포트 sdram 엑세스 제어장치와 제어방법 |
KR100706801B1 (ko) * | 2006-01-04 | 2007-04-12 | 삼성전자주식회사 | 멀티 프로세서 시스템 및 그것의 데이터 전송 방법 |
KR100813878B1 (ko) * | 2006-05-16 | 2008-03-18 | 전자부품연구원 | 무중재 amba 버스 제어 장치 및 제어 방법과 이를이용한 amba 버스 인터페이스 시스템 |
US7519780B2 (en) * | 2006-11-03 | 2009-04-14 | International Business Machines Corporation | System and method for reducing store latency in symmetrical multiprocessor systems |
JP2010176646A (ja) * | 2009-02-02 | 2010-08-12 | Toshiba Information Systems (Japan) Corp | メモリシステムおよびメモリシステムのインターリーブ制御方法 |
US9021170B2 (en) * | 2011-06-29 | 2015-04-28 | Texas Instruments Incorporated | System and method for improving ECC enabled memory timing |
US9372818B2 (en) * | 2013-03-15 | 2016-06-21 | Atmel Corporation | Proactive quality of service in multi-matrix system bus |
US9497710B2 (en) * | 2013-11-25 | 2016-11-15 | Qualcomm Incorporated | Multipoint interface shortest pulse width priority resolution |
US9471524B2 (en) | 2013-12-09 | 2016-10-18 | Atmel Corporation | System bus transaction queue reallocation |
CN113918497B (zh) * | 2021-12-10 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种优化ahb总线数据传输性能的系统、方法及服务器 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4481572A (en) * | 1981-10-13 | 1984-11-06 | Teledyne Industries, Inc. | Multiconfigural computers utilizing a time-shared bus |
US4667192A (en) * | 1983-05-24 | 1987-05-19 | The Johns Hopkins University | Method and apparatus for bus arbitration using a pseudo-random sequence |
JPS61210463A (ja) | 1985-03-14 | 1986-09-18 | Fujitsu Ltd | デ−タ転送制御方式 |
US4947368A (en) | 1987-05-01 | 1990-08-07 | Digital Equipment Corporation | Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers |
US5073199A (en) * | 1990-11-27 | 1991-12-17 | Bnz Materials, Inc. | Insulating material containing pitch based graphite fiber |
US5933616A (en) | 1995-12-11 | 1999-08-03 | Dell Usa, L.P. | Multiple bus system bus arbitration according to type of transaction requested and the availability status of the data buffer between the buses |
US5935234A (en) * | 1997-04-14 | 1999-08-10 | International Business Machines Corporation | Method and system for controlling access to a shared resource in a data processing system utilizing pseudo-random priorities |
US6073199A (en) | 1997-10-06 | 2000-06-06 | Cisco Technology, Inc. | History-based bus arbitration with hidden re-arbitration during wait cycles |
US6393506B1 (en) * | 1999-06-15 | 2002-05-21 | National Semiconductor Corporation | Virtual channel bus and system architecture |
US6523075B1 (en) | 1999-09-02 | 2003-02-18 | Koninklijke Philips Electronics N.V. | Method and system for controlling internal busses to prevent busses contention during internal scan testing by using a centralized control resource |
KR100716950B1 (ko) * | 2000-08-11 | 2007-05-10 | 삼성전자주식회사 | 버스 시스템 |
US6691193B1 (en) * | 2000-10-18 | 2004-02-10 | Sony Corporation | Efficient bus utilization in a multiprocessor system by dynamically mapping memory addresses |
US6763415B1 (en) * | 2001-06-08 | 2004-07-13 | Advanced Micro Devices, Inc. | Speculative bus arbitrator and method of operation |
US6857035B1 (en) * | 2001-09-13 | 2005-02-15 | Altera Corporation | Methods and apparatus for bus mastering and arbitration |
US7143220B2 (en) * | 2004-03-10 | 2006-11-28 | Intel Corporation | Apparatus and method for granting concurrent ownership to support heterogeneous agents in on-chip busses having different grant-to-valid latencies |
-
2003
- 2003-05-23 KR KR1020030033048A patent/KR100626362B1/ko not_active IP Right Cessation
- 2003-12-17 US US10/737,124 patent/US8209453B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR20040100631A (ko) | 2004-12-02 |
US8209453B2 (en) | 2012-06-26 |
US20040236887A1 (en) | 2004-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6330645B1 (en) | Multi-stream coherent memory controller apparatus and method | |
US7275119B2 (en) | Early detection and grant, an arbitration scheme for single transfers on AMBA advanced high-performance bus | |
JPH0821017B2 (ja) | Cpuバス割振り制御装置 | |
KR100626362B1 (ko) | 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법 | |
JPH05204838A (ja) | バス・アービトレーションを行うための情報処理システム | |
JP4198376B2 (ja) | バスシステム及びバスシステムを含む情報処理システム | |
US6959354B2 (en) | Effective bus utilization using multiple bus interface circuits and arbitration logic circuit | |
JPH06231074A (ja) | システムバスの多重アクセス方式 | |
JPH06324988A (ja) | 非多重化非同期アドレス/データ・バス・システムを使用するデータ処理システム | |
US5822549A (en) | Computer system and bus controller for controlling access to a computer bus | |
CN101814012A (zh) | Sdram存储器结构及数据读写方法 | |
JP3455535B2 (ja) | バス処理を行う装置および方法 | |
US6804736B2 (en) | Bus access arbitration based on workload | |
JP4902640B2 (ja) | 集積回路、及び集積回路システム | |
US7600065B2 (en) | Arbitration scheme for shared memory device | |
JP2007122410A (ja) | バス調停回路及びバス調停方法 | |
KR101022473B1 (ko) | 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치 | |
JP2001282704A (ja) | データ処理装置及びデータ処理方法とデータ処理システム | |
JP2009519524A (ja) | データ伝送バスにアクセスする方法、対応する装置およびシステム | |
JP4684577B2 (ja) | 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法 | |
JP2005346715A (ja) | マルチポートランダムアクセスメモリ | |
JP2003316642A (ja) | メモリ制御回路、dma要求ブロック及びメモリアクセスシステム | |
KR100451789B1 (ko) | 자원 공유를 위한 프로세서 중재장치 및 중재방법 | |
KR100441996B1 (ko) | 직접 메모리 액세스 제어기 및 제어 방법 | |
KR100813878B1 (ko) | 무중재 amba 버스 제어 장치 및 제어 방법과 이를이용한 amba 버스 인터페이스 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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 |