KR100451789B1 - 자원 공유를 위한 프로세서 중재장치 및 중재방법 - Google Patents

자원 공유를 위한 프로세서 중재장치 및 중재방법 Download PDF

Info

Publication number
KR100451789B1
KR100451789B1 KR10-2001-0063667A KR20010063667A KR100451789B1 KR 100451789 B1 KR100451789 B1 KR 100451789B1 KR 20010063667 A KR20010063667 A KR 20010063667A KR 100451789 B1 KR100451789 B1 KR 100451789B1
Authority
KR
South Korea
Prior art keywords
bus
processor
resource
arbitration
address
Prior art date
Application number
KR10-2001-0063667A
Other languages
English (en)
Other versions
KR20030031785A (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 KR10-2001-0063667A priority Critical patent/KR100451789B1/ko
Publication of KR20030031785A publication Critical patent/KR20030031785A/ko
Application granted granted Critical
Publication of KR100451789B1 publication Critical patent/KR100451789B1/ko

Links

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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 자원공유를 위한 프로세서 중재장치에 관한 것으로, 특히 어드레스와 데이터 버스가 혼합된 자원과 분리된 자원을 다수의 프로세서에서 액세스하고 관리할 수 있도록 한 것으로, 본 발명에 따른 자원공유를 위한 프로세서 중재장치는, 어드레스와 데이터 버스가 분리된 버스 및 혼합된 버스를 각각 사용하는 서로 다른 다수의 프로세서와; 어드레스 버스와 데이터 버스가 혼합된 인터페이스에 연결된 제 1자원 및 어드레스 버스와 데이터 버스가 분리된 인터페이스에 연결된 제 2자원과; 상기 다수의 프로세서의 버스 사용권 요청시 제 1 및 제 2 자원에 대한 버스 마스터를 선택 및 자원의 액세스를 제어하기 위해 중재하는 버스 중재수단을 포함하는 것을 특징으로 한다.
이 같은 본 발명에 의하면, 어드레스 버스와 데이터 버스가 분리된 자원과 혼합된 자원을 서로 다른 인터페이스를 사용하는 다수의 프로세서에 대한 버스 사용 중재 및 액세스 제어를 통해 자원을 공유할 수 있도록 함에 있다.

Description

자원 공유를 위한 프로세서 중재장치 및 중재방법{Arbitration apparatus and method of processor for resources share}
본 발명은 자원 공유를 위한 프로세서 중재 장치에 있어서, 특히 어드레스와데이터가 혼합된 자원 및 어드레스와 데이터가 분리된 자원을 액세스할 수 있도록 한 자원공유를 위한 프로세서 중재장치 및 중재방법에 관한 것이다.
2개 이상의 프로세서가 하나의 자원(memory, device, etc.)을 동시에 액세스(Access, read, write)할 때는 어느 하나의 프로세서에게만 우선권을 주어 먼저 액세스하게 하고, 나머지 다른 프로세서에게는 먼저 프로세서의 액세스가 끝난 후 제어권을 넘겨주는 중재장치가 필요하다.
통상 2개의 프로세서가 하나의 자원을 액세스할 때, 서로가 먼저 액세스하려고 하면 충돌이 일어나 정상적인 처리(processing)를 못하는 경우가 발생하게 된다.
도 1은 종래 멀티 프로세서 시스템의 구성도로서, 제 1프로세서와, 제 2프로세서, 그리고 이들을 중재하기 위한 중재부 및, 물리적인 충돌을 방지하기 위한 버퍼를 포함하는 구성이다.
도 1을 참조하면, 2개의 프로세서(101,102)로부터 입력되는 소정의 신호에 응답하여 두 개의 프로세서(101,102) 중 제 1프로세서(101)에 우선권을 주어 메모리(104)를 액세스하도록 하고, 이때 다른 프로세서(102)는 대기 상태로 유지한다.
그리고, 제 1프로세서(101)의 액세스가 끝나면 버스 중재부(103)에서 제 2프로세서(102)가 액세스하도록 허가한다.
이때, 버퍼(105~108)는 각 프로세서(101,102)에서 메모리(104)의 자원을 액세스할 때, 제 1 및 제 2버퍼(105,106)는 제 1프로세서(101)의 어드레스 버스 및 데이터 버스와 메모리 사이에 존재하고, 제 3 및 제 4버퍼(107,108)는 제 2프로세서(102)의 어드레스 버스와 데이터 버스 사이에서, 상호간의 물리적인 충돌이 일어나지 않도록 버퍼링하면서 액세스한다.
그러나, 종래의 버스 중재부(103)에서는 어드레스와 데이터 버스가 혼합된 자원에는 액세스를 중재를 할 수 없으므로, 어드레스와 데이터 버스가 혼합된 자원 및 어드레스와 데이터 버스가 분리된 자원들 상호간의 자원 공유가 어려운 문제가 있다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 안출된 것으로서, 어드레스 버스와 데이터 버스가 분리된 자원과 혼합된 자원을 서로 다른 인터페이스를 사용하는 다수의 프로세서에 대한 버스 사용 중재 및 액세스 제어를 통해 자원을 공유할 수 있도록 한 자원공유를 위한 프로세서 중재장치 및 중재방법을 제공함에 그 목적이 있다.
또한, 어드레스 버스와 데이터 버스가 분리된 인터페이스를 갖는 프로세서의 에서 혼합된 자원을 액세스할 경우 혼합된 자원을 시 분할하여 액세스할 수 있도록 한 자원 공유를 위한 프로세서 중재장치 및 중재방법을 제공함에 그 목적이 있다.
또한, 서로 다른 프로세서의 버스 사용권 동시 요청이 있을 경우 우선권 플래그의 활성화 또는 비활화 상태에 따라 버스 사용권을 특정 프로세서에만 허용하는 것을 특징으로 하는 자원공유를 위한 프로세서 중재장치 및 중재방법을 제공함에 그 목적이 있다.
도 1은 종래 자원 공유를 위한 프로세서 중재장치를 나타낸 구성도.
도 2는 본 발명 실시 예에 따른 자원 공유를 위한 프로세서 중재 장치를 나타낸 구성도.
도 3은 본 발명 실시 예에 따른 자원 공유를 위한 프로세서 중재 방법의 상태도.
<도면의 주요 부분에 대한 부호의 설명>
101,201...제 1프로세서 102,202...제 2프로세서
103,203...버스 중재부 104...메모리
105~108...버퍼 204...제 1자원
205...제 1인터페이스 206...제 2자원
207...제 2인터페이스
상기한 목적 달성을 위한, 본 발명에 따른 자원 공유를 위한 프로세서의 중재 장치는,
어드레스와 데이터 버스가 분리된 버스 및 혼합된 버스를 각각 사용하는 서로 다른 다수의 프로세서와;
어드레스 버스와 데이터 버스가 혼합된 인터페이스에 연결된 제 1자원 및 어드레스 버스와 데이터 버스가 분리된 인터페이스에 연결된 제 2자원과;
상기 다수의 프로세서의 버스 사용권 요청시 제 1 및 제 2 자원에 대한 버스 마스터를 선택 및 자원의 액세스를 제어하기 위해 중재하는 버스 중재수단을 포함하는 것을 특징으로 한다.
바람직하게, 버스 중재수단은 각 프로세서에서 자원을 액세스할 때의 타이밍을 제어하기 위해서, 각 프로세서의 카운터 값을 각각 증가시켜 주는 다수의 타이머를 포함하는 것을 특징으로 한다.
바람직하게, 상기 버스 중재수단은 다수의 프로세서에 의한 버스 사용권 동시 요청에 대해, 우선 플래그의 활성화 또는 비활성화 상태에 따라 우선 순위로 처리하여 특정 프로세서에만 버스 사용권을 허용하는 것을 특징으로 한다.
바람직하게, 상기 버스 중재수단은 어드레스 버스와 데이터 버스가 분리된 버스를 사용하는 프로세서에서 혼합된 인터페이스를 액세스할 경우 타이밍 제어를 통해서, 상기 혼합된 인터페이스에 어드레스 또는 데이터 버스가 순차적으로 실리도록 함을 특징으로 한다.
본 발명의 다른 특징에 따른 자원공유를 위한 프로세서 중재방법은,
어드레스와 데이터 버스가 혼합된 자원 또는 분리된 자원을 사용하는 서로 다른 프로세서에서 액세스를 위해 버스 중재부에 버스 사용권을 요청하는 단계; 버스 사용권의 동시 요청이 아니면 해당 프로세서를 활성화시키고 버스 사용을 허용하는 단계; 버스 사용권을 얻은 프로세서의 특정 자원 인에이블 신호에 의해 해당 중재 타이머를 구동시키는 단계; 상기 중재 타이머의 구동 후 디바이스 준비신호에 의한 액세스 타이밍을 제어하는 단계 및, 상기 타이밍 제어에 따라 상기 특정 어드레스의 특정 자원에 대한 데이터 송수신을 인정하는 단계를 포함하는 것을 특징으로 한다.
그리고, 다수의 프로세서에서 버스 사용권을 동시에 요청할 경우 우선권 플래그의 활성화 상태 또는 비 활성화 상태에 따라 우선 순위를 처리하여 버스 사용권을 특정 프로세서에만 허용하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 설명하면 다음과 같다.
도 2는 본 발명 실시 예에 따른 자원 공유를 위한 프로세서 중재 장치를 나타낸 구성도이고, 도 3은 본 발명 실시 예에 따른 자원 공유를 위한 프로세서 중재 장치의 상태도이다.
도 2를 참조하면, 어드레스 버스(CPU1_Addr)와 데이터 버스(CPU1_Data)가 분리된 버스를 이용하여 외부 자원을 액세스하는 제 1프로세서(201)와, 어드레스와 데이터가 혼합된 버스를 갖고 외부 자원을 액세스하는 제 2프로세서(202)와, 어드레스 버스와 데이터 버스가 혼합된 제 1인터페이스(205)에 연결된 제 1자원(204) 및, 어드레스 버스와 데이터 버스가 분리된 제 2인터페이스(207)에 연결된 제 2자원(206)과, 제 1 및 제 2프로세서(201,202)의 버스 사용권 요청신호에 따라 어드레스와 데이터 버스가 혼합된 자원(204) 및 분리된 자원(206)에 대한 액세스를 중재하는 버스 중재부(203)로 구성된다.
상기와 같은 본 발명에 따른 자원 공유를 위한 프로세서 중재 장치에 대하여 첨부된 도 2 및 도 3을 참조하여 설명하면 다음과 같다.
도 2 및 도 3을 참조하면, 제 1프로세서(201)는 어드레스 버스(CPU1_Addr)와 데이터 버스(CPU1_Data)가 분리된 버스를 갖고 내부의 요청에 의해 버스 중재부(203)에 버스 사용권을 요청하고, 제 2프로세서(202)는 어드레스 버스와 데이터 버스가 혼합된 버스를 갖고 내부의 요청에 의해 버스 중재부(203)에 버스 사용권을 요청(BR: Bus Request)한다.
여기서, 제 1프로세서(201)는 주 프로세서이고, 제 2프로세서(202)는 보조 프로세서이며, 제 1자원(204)은 어드레스 버스와 데이터 버스가 혼합된 제 1인터페이스(MUX_AD)(205)를 사용하며, 제 2자원(206)은 어드레스 버스(Share_Addr)와 데이터 버스(Share_Data)가 분리된 제 2인터페이스(207)를 사용한다.
먼저, 제 1프로세서(201)에서 제 1 및 제 2자원(Device1~4)(204,206)을 액세스하려면, 버스 사용권을 버스 중재부(203)에 요청(CPU1_BR)하며, 버스 중재부(203)는 유휴상태(ARBITER_IDLE)로 대기하다가 상기 버스 요청신호가 있을 경우 다른 프로세서의 버스 요청이 있는지를 판단한 후, 버스 요청이 없으면 제 1프로세서(201)에 버스 사용권을 준다.
이때, 제 1프로세서(201)에서 버스 사용권을 얻었을 때, 제 1프로세서(201)는 활성화(CPU1_WIN)되고, 버스 허용(BUS_Grant: BG, CPU1_BG)을 받는다. 즉, 헤더 레이블(Head Table)로 표현하면, CPU1_BG = CPU1_BR CPU1_WIN으로 표현할 수 있다.
반대로, 제 2프로세서(202)에서 제 1 및 제 2자원(204,206)을 액세스하려면, 버스 사용권을 버스 중재부(203)에 요청(CPU2_BR)하며, 버스 중재부(203)에서 다른 프로세서의 버스 요청이 있는지 또는 종료되었는지를 판단하여, 버스 요청이 없으면 제 2프로세서(202)에 버스 사용권을 준다.
제 2프로세서(202)는 버스 사용권을 얻으면 활성화(CPU2_WIN)되고, 버스 허용(CPU2_BG)을 받는다. 이를 헤더 레이블로 표현하면, CPU2_BG = CPU1_BR CPU2_WIN으로 표현된다.
이때, 버스 중재부(203)는 버스요청 신호(BR)와 각 프로세서(201,202)의 액세스 사이클 시작신호(TS)를 이용하여 동작 사이클 단위의 중재를 수행하게 된다.
만약, 제 1프로세서(201)에서 버스 사용권을 얻었을 때, 제 1 또는 제 2자원(204,206)에 액세스하는 타이밍을 제어하기 위해서, 내부의 제 1카운터(211)를 구동시키고, 제 1카운터(211)의 카운트 값은 제 1프로세서(201)가 버스 중재부(203)에 머물고 있을 때의 증가되는 제 1타이머(Timer1)(213)의 값이 된다.
반대로, 제 2프로세서(202)에서 버스 사용권을 얻었을 때, 디바이스(204,206)에 액세스하는 타이밍을 제어하기 위해서, 내부의 제 2카운터(212)를 구동시키고, 제 2카운터(212)의 카운터 값은 제 2프로세서(202)가 버스 중재부(203)에 머물고 있을 때의 증가되는 제 2타이머(Timer2)(214)의 값이 된다.
그리고, 각 프로세서(201,202)에서 버스 중재부(203)의 타이머(213,214)를 구동하는 시간은 로컬 자원 인에이블(LOC1_EN 또는 LOC2_EN) 사이클을 구동하는 시점부터이고, 각 프로세서(201,202)에서 버스 사용에 대한 사이클은 프로세서의 활성화상태(CPU1_WIN 또는 CPU2_WIN)에서 종료(CPU1_END 또는 CPU2_END)될 때까지이다.
이를 위해서, 각 프로세서(201,202)는 로컬 자원을 읽고 쓰기 위해서는 버스 중재부(203)의 제어를 받게 되는데, 각 프로세서(201,202)들은 액세스 사이클의 시작 시점(LOC1_EN 또는 LOC2_EN)에서 버스 사용에 대한 중재를 요청하고, 디바이스의 준비신호(DEVICE_RDY)에 의한 타이밍 제어, 전송인정, 액세스 종료상태(CPU1_END 또는 CPU2_END)로 진행되며, 각 상태의 결과에 따라서 지속적인 액세스 또는 재 요청 동작(RETRY)을 수행한다.
한편, 제 1프로세서(201)와 제 2프로세서(202)에서 버스 사용권(BUS_RG)을 동시에 요청할 경우, 이를 처리하기 위해 버스 중재부(203)에서는 우선권 플래그(P_FLAG)를 사용하게 되는데, 동시에 중재 요청이 있을 경우 우선권 플래그의 상태에 따라 우선순위를 처리한다.
즉, 버스 사용권을 동시 요청시 우선권 플래그(P_FLAG)의 상태가 활성화 상태에 있다면 제 2프로세서(202)는 버스 사용권을 가지며 이때의 우선권 플래그 상태는"0"으로 설정되고, 우선권 플래그(P_FLAG) 상태가 비활성화 상태로 전이되어 있다면 제 1프로세서(201)가 버스 사용권을 가지며 이때의 우선권 플래그는 "1"이된다. 우선권 플래그의 상태는 어떤 프로세서에서 액세스하느냐에 따라 활성화 상태 또는 비활성 상태로 유지하거나 전이하게 된다.
한편, 분리된 어드레스 버스와 데이터 버스를 사용하는 제 1프로세서(201)에서 버스 사용권을 가지고, 어드레스 버스와 데이터 버스가 혼합된 제 1인터페이스(205)를 통해서 제 1자원(Device 1)(204)을 액세스하려고 할 경우, 어드레스 버스 사이클을 위해서 버스의 유효함을 나타내는 어드레스 스트로브(ADS: Address Strobe) 신호가 활성화시켜 주어야 하며, 또한 어드레스 스트로브가 활성화되지 않는 구간은 혼합된 버스와 연결된 제 1자원(204)을 디바이스 준비신호(DEVICE_RDY)에 의한 타이밍 제어가 이루어지므로, 여기에 대응하는 호스트 준비신호가 적절한 시간 제어에 따라 활성화된다.
이에 따라 어드레스 버스와 데이터 버스가 분리된 인터페이스를 사용하는 제 1프로세서(201)는 버스 중재부(203)에 의한 어드레스 버스와 데이터 버스가 혼합된 인터페이스(205)의 타이밍 제어를 통해 제 1자원(204)을 액세스하게 되는데, 버스 중재부(203)의 타이밍 제어에 따라 혼합된 버스(205)에는 제 1프로세서(201)의 어드레스 버스 또는 데이터 버스가 실린다.
즉, 제 1프로세서(201)에서 버스 사용권을 얻었을 때, 처음엔 반드시 접근하는 자원에 대한 주소(CPU1_Addr)가 공급되어야 한다. 주소 제어를 위한 시간 제어가 끝나면 제 1프로세서(201)의 동작 상태에 따라서 혼합된 버스(205)에는 제 1프로세서(201)의 데이터 버스로 사용된다. 혼합된 버스(205)에는 프로세서가 쓰기를 할 때의 주소와 데이터 또는 읽기를 할 때의 주소 등이 실리게 된다.
그리고, 제 2프로세서(202)에서 어드레스 버스 및 공유된 데이터 버스가 분리된 제 2인터페이스(207)를 통해서 제 2자원(Device 2~4)(206)을 액세스하려고 할 경우에는, 버스 중재부(203)에서 제 2프로세서(202)에서 혼합된 제 1인터페이스(205)의 버스 타이밍을 제어하여 공유된 어드레스 버스(Share_Addr)와 공유된 데이터 버스(Share_Data)를 순차적으로 사용하여, 제 2자원(206)을 액세스하게 된다.
이를 헤더 레이블로 구현하면 다음과 같다.
먼저, 제 1프로세서(201) 또는 제2 프로세서(202)에서 버스 사용권을 가지고 제 2디바이스를 액세스하려고 할 경우,
if(CPU1_WIN){
MUX_AD[31:24] ←CPU1_AD[31:24];
MUX_AD[23:16] ←CPU1_AD[23:16];
MUX_AD[15:8] ←CPU1_AD[15:8];
MUX_AD[7:0] ←CPU1_AD[7:0];
} else {
MUX_AD[31:24] ←CPU2_DATA[31:24];
MUX_AD[23:16] ←CPU2_DATA[23:16];
MUX_AD[15:8] ←CPU2_DATA[15:8];
MUX_AD[7:0] ←CPU2_DATA[7:0];
}
여기서, MUX_AD ←CPU1_AD은 제 1프로세서(201)가 활성화되고 혼합된 버스를 통해 제 1자원(204)을 액세스하려고 하는 경우이고, MUX_AD ←CPU2_DATA는 제 2프로세서(202)가 혼합된 버스를 통해 제 2자원(206)을 액세스하려는 경우이다.
반대로, 제 2프로세서 또는 제 1프로세서에서 어드레스와 데이터 버스가 분리된 자원을 액세스하려고 할 때,
if(CPU2_WIN){
SHARE_DATA[31:24] ←CPU2_AD[31:24];
SHARE_DATA[23:16] ←CPU2_AD[23:16];
SHARE_DATA[15:8] ←CPU2_AD[15:8];
SHARE_DATA[7:0] ←CPU2_AD[7:0];
} else {
SHARE_DATA[31:24] ←CPU1_DATA[31:24];
SHARE_DATA[23:16] ←CPU1_DATA[23:16];
SHARE_DATA[15:8] ←CPU1_DATA[15:8];
SHARE_DATA[7:0] ←CPU1_DATA[7:0];
}
여기서, SHARE_DATA ←CPU2_AD은 제 2프로세서가 활성화되어 공유 데이터 버스(Share_Data)를 통해 제 2자원을 액세스하는 경우이고, SHARE_DATA ←CPU1_DATA는 제 1프로세서가 활성화되어 제 2자원을 액세스하는 경우이다.
이러한 구현에 있어서, 두 개의 프로세서 중 제 1프로세서는 8비트 단위씩데이터를 가져오고, 다른 제 2프로세서는 32비트씩 데이터를 송수신할 때, 데이터 의 유동성을 위해서 데이터를 송수신하기 위한 적은 8비트 단위를 기준으로 하도록, 8비트씩 분리한 것을 예로 보인 것이다.
상세하게, 도 3을 참조하여 버스 중재부의 전이상태를 설명하면 다음과 같다.
버스 중재부는 유휴 상태(ARBITER_IDLE)(300)에서 제 1프로세서의 버스 사용권(CPU1_BR !CPU2_BR, !=not) 요청이 있을 경우, 제 1프로세서의 버스 사용을 인정하여 제 1프로세서를 활성화 상태(310)로 전이시키고, 제 2프로세서의 버스 사용권이 없으므로 대기상태로 둔다.
활성화 상태(310)에서 내부의 제 1타이머(ARBITER_TIMER1)를 구동하는 신호인 제 1자원 인에이블 신호(LOC1_EN)에 의해 제 1타이머가 구동하며, 제 1타이머가 구동한 후 제 1프로세서로부터의 디바이스 준비신호(DEVICE_RDY)가 입력되면 전송 인정 상태(CPU1_TA)(312)가 된다. 이후 전송 인정을 통해 외부 디바이스를 액세스하고 그 액세스가 종료되면(313), 다시 유휴 상태가 된다(300).
이와는 반대로, 유휴 상태(300)에서 제 2프로세서만이 버스 사용권 요청시에 제 2프로세서의 버스 사용을 인정하여 제 2프로세서를 활성화 상태로 전이시키고(320), 그 상태 320에서 제 2자원 인에이블 신호(LOC2_EN)에 의해 제 2타이머(ARBITER_TIMER2)가 구동된다(321). 디바이스 준비 신호(DEVICE_RDY)에 의해 외부 디바이스와의 타이밍 제어가 이루어지면 전송 인정상태가 되며(322), 전송이 종료되면(323), 제 2프로세서의 액세스 종료신호에 의해 다시 유휴 상태로 진행하게 된다(300).
한편, 버스 중재부에 두 개의 프로세서에서 버스 사용권을 동시에 요청하고 우선권 플래그가 비활성화 상태(CPU1_BR CPU2_BR !P_FLAG)이면 요청처리상태가 되며(314), 우선 순위에 따라 제 1프로세서에 버스 사용권을 주고, 제 1자원 인에이블 신호(LOC1_EN)에 의해 제 1타이머가 구동된다(311). 이후에는 외부 디바이스 준비신호에 의해 전송 인정상태(312), 액세스 종료 후의 종료상태로 된다(313).
이와는 반대로, 버스 중재부에 두 개의 프로세서에서 버스 사용권을 동시에 요청하고 우선권 플래그가 활성화 상태(CPU1_BR CPU2_BR P_FLAG)이면 버스 중재부는 요청처리상태(324)가 되고, 우선 순위에 따라 제 2프로세서에 버스 사용권을 주고, 제 2자원 인에이블 신호(LOC1_EN)에 의해 제 2타이머가 구동된다(311). 이후에는 외부 디바이스 준비신호에 의해 전송 인정상태(322), 액세스 종료 후의 종료상태로 된다(323).
또한 각 상태에서의 유휴 상태로의 전이동작은 전송 시작 타이밍(CUP1_Error 또는 CPU2_Error)이 어긋났을 때 발생하게 된다.
이와 같이 다수의 프로세서들이 자원을 액세스할 때, 어드레스 버스와 데이터 버스가 분리된 인터페이스에 연결된 자원과, 어드레스 버스와 데이터 버스가 혼합된 인터페이스에 연결된 자원을 액세스하려고 할 경우, 버스 중재부에서 경합 및 충돌을 중재하여 효율적으로 자원을 공유하게 해 준다.
이상에서 설명한 바와 같이, 본 발명에 따른 자원 공유를 위한 프로세서 중재장치는, 어드레스 버스와 데이터 버스가 분리된 자원 및 혼합된 자원 인터페이스를 서로 다른 프로세서에서 버스 중재부를 통해서 액세스할 수 있도록 함으로써, 다양한 자원을 지원하는 데이터 정합 버스를 탑재하여, 다중 프로세서 간에 일어날 수 있는 경합 및 충돌을 컨트롤하고, 프로세서들의 자원을 관리하는데 있어서 유연함 및 안정적인 성능을 보장할 수 있는 효과가 있다.

Claims (8)

  1. 어드레스 버스와 데이터 버스가 분리된 버스를 통해서 외부 자원을 액세스하는 제 1프로세서와;
    어드레스 버스와 데이터 버스가 혼합된 버스를 통해서 외부 자원을 액세스하는 제 2프로세서와;
    어드레스 버스와 데이터 버스가 혼합된 인터페이스에 연결된 제 1자원 및, 어드레스 버스와 데이터 버스가 분리된 인터페이스에 연결된 제 2자원과;
    상기 제 1 및 제 2 프로세서의 버스 사용권 요청시, 각 프로세서로부터의 버스 요청신호와 각 프로세서의 액세스 사이클을 이용하여 동작 사이클 단위로 중재를 수행하여, 제 1 및 제 2 자원에 대한 버스 마스터를 선택 및 자원의 액세스를 제어하기 위해 중재하는 버스 중재수단을 포함하는 것을특징으로 하는 자원공유를 위한 프로세서 중재장치.
  2. 제 1항에 있어서,
    상기 버스 중재수단은 버스 사용권을 얻은 특정 프로세서가 외부 자원을 액세스하는 동안의 타이밍을 제어하기 위해서, 상기 특정 프로세서의 카운터 값을 각각 증가시켜 주기 위해 구동하는 타이머들을 포함하는 것을 특징으로 하는 자원공유를 위한 프로세서 중재장치.
  3. 제 1항에 있어서,
    상기 버스 중재수단은 다수의 프로세서에 의한 버스 사용권 동시 요청시, 우선 플래그의 활성화 또는 비활성화 상태에 따라 우선 순위로 처리하는 것을 특징으로 하는 자원공유를 위한 프로세서 중재장치.
  4. 제 1항에 있어서,
    상기 버스 중재수단은 상기 제 1프로세서가 제 1자원을 액세스할 경우, 타이밍 제어를 통해서 상기 혼합된 인터페이스에 어드레스 또는 데이터 버스가 순차적으로 실리도록 함을 특징으로 하는 자원공유를 위한 프로세서 중재장치.
  5. 삭제
  6. 어드레스 버스와 데이터 버스가 분리된 버스를 사용하는 제 1 프로세서, 어드레스 버스와 데이터 버스가 혼합된 버스를 사용하는 제 2프로세서, 어드레스와 데이터 버스가 혼합된 자원 및 분리된 자원에 연결된 인터페이스를 중재하기 위한 버스 중재부의 버스 중재 방법에 있어서,
    상기 제 1 및 제 2프로세서가 외부 자원의 액세스를 위해 버스 사용권을 요청하는 단계;
    상기 버스 사용권의 동시 요청이 아니면 해당 프로세서를 활성화시키고 버스 사용을 허용하고, 버스 사용권을 동시에 요청할 경우 우선권 플래그의 활성화 상태 또는 비 활성화 상태에 따라 프로세서의 우선 순위를 처리하여 버스 사용권을 허용하는 단계;
    상기 버스 사용권을 얻은 프로세서의 특정 자원 인에이블 신호에 의해 해당 중재 타이머를 구동시키는 단계;
    상기 중재 타이머의 구동 후 디바이스 준비신호에 의한 액세스 타이밍을 제어하는 단계 및,
    상기 타이밍 제어에 따라 상기 특정 자원에 대한 데이터의 송수신을 인정하는 단계를 포함하는 것을 특징으로 하는 자원공유를 위한 프로세서 중재방법.
  7. 삭제
  8. 제 6항에 있어서,
    상기 어드레스 버스와 데이터 버스가 분리된 버스를 사용하는 프로세서에 의해 어드레스 버스와 데이터 버스가 혼합된 자원을 액세스할 경우, 버스 중재부의 타이밍 제어에 의해 어드레스 버스와 데이터 버스를 시분할하여 액세스하는 것을 특징으로 하는 자원공유를 위한 프로세서 중재방법.
KR10-2001-0063667A 2001-10-16 2001-10-16 자원 공유를 위한 프로세서 중재장치 및 중재방법 KR100451789B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0063667A KR100451789B1 (ko) 2001-10-16 2001-10-16 자원 공유를 위한 프로세서 중재장치 및 중재방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0063667A KR100451789B1 (ko) 2001-10-16 2001-10-16 자원 공유를 위한 프로세서 중재장치 및 중재방법

Publications (2)

Publication Number Publication Date
KR20030031785A KR20030031785A (ko) 2003-04-23
KR100451789B1 true KR100451789B1 (ko) 2004-10-08

Family

ID=29564837

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0063667A KR100451789B1 (ko) 2001-10-16 2001-10-16 자원 공유를 위한 프로세서 중재장치 및 중재방법

Country Status (1)

Country Link
KR (1) KR100451789B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456976B1 (ko) * 2001-11-16 2004-11-10 엘지전자 주식회사 시분할 다중화 버스를 이용한 데이터 송수신 시스템 및 방법
DE602006019005D1 (de) 2006-06-27 2011-01-27 Thomson Licensing Verfahren und vorrichtung zur durchführung der arbitrierung
KR101115358B1 (ko) * 2010-10-22 2012-03-06 차보영 방송장치 감시장치를 포함하는 스마트워크 컴퓨터

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5690318A (en) * 1979-12-24 1981-07-22 Fujitsu Ltd Bus sequence control system
JPS60159960A (ja) * 1984-01-31 1985-08-21 Toshiba Corp バス上に接続された装置間の通信方式
KR920017104U (ko) * 1991-02-28 1992-09-17 삼성항공산업 주식회사 멀티프로세서 시스템의 버스제어장치
JPH08101810A (ja) * 1994-09-30 1996-04-16 Nec Eng Ltd バス制御方法
KR970012191A (ko) * 1995-08-24 1997-03-29 김광호 멀티프로세서 시스템에 있어서의 버스 프로토콜 제어기와 데이타 전송방법
KR19990003941A (ko) * 1997-06-26 1999-01-15 김영환 다단계 제어 버스 중재장치
KR20020009823A (ko) * 2000-07-27 2002-02-02 윤종용 버스 시스템 및 그 버스 중재방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5690318A (en) * 1979-12-24 1981-07-22 Fujitsu Ltd Bus sequence control system
JPS60159960A (ja) * 1984-01-31 1985-08-21 Toshiba Corp バス上に接続された装置間の通信方式
KR920017104U (ko) * 1991-02-28 1992-09-17 삼성항공산업 주식회사 멀티프로세서 시스템의 버스제어장치
JPH08101810A (ja) * 1994-09-30 1996-04-16 Nec Eng Ltd バス制御方法
KR970012191A (ko) * 1995-08-24 1997-03-29 김광호 멀티프로세서 시스템에 있어서의 버스 프로토콜 제어기와 데이타 전송방법
KR19990003941A (ko) * 1997-06-26 1999-01-15 김영환 다단계 제어 버스 중재장치
KR20020009823A (ko) * 2000-07-27 2002-02-02 윤종용 버스 시스템 및 그 버스 중재방법

Also Published As

Publication number Publication date
KR20030031785A (ko) 2003-04-23

Similar Documents

Publication Publication Date Title
US6857035B1 (en) Methods and apparatus for bus mastering and arbitration
US6618777B1 (en) Method and apparatus for communicating between multiple functional units in a computer environment
US6330645B1 (en) Multi-stream coherent memory controller apparatus and method
US6393506B1 (en) Virtual channel bus and system architecture
EP0559408B1 (en) A method and apparatus for performing bus arbitration using an arbiter in a data processing system
US5740376A (en) Signaling protocol for a peripheral component interconnect
US5619726A (en) Apparatus and method for performing arbitration and data transfer over multiple buses
US5901295A (en) Address and data bus arbiter for pipelined transactions on a split bus
US5345562A (en) Data bus arbitration for split transaction computer bus
JP3583183B2 (ja) データ処理装置
NZ228785A (en) Microcomputer with cache subsystem: preempt signal limits access time of peripheral unit
US6272580B1 (en) Apparatus and method for dynamically elevating a lower level bus master to an upper level bus master within a multi-level arbitration system
US5313591A (en) Computer bus arbitration for N processors requiring only N unidirectional signal leads
US5649209A (en) Bus coupling information processing system for multiple access to system bus
US5519838A (en) Fast pipelined distributed arbitration scheme
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
JPH0683763A (ja) 中央アービタをスレーブアービタに変換する方法およびシステム
US6275890B1 (en) Low latency data path in a cross-bar switch providing dynamically prioritized bus arbitration
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US5822549A (en) Computer system and bus controller for controlling access to a computer bus
US6928525B1 (en) Per cache line semaphore for cache access arbitration
KR100626362B1 (ko) 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법
KR100451789B1 (ko) 자원 공유를 위한 프로세서 중재장치 및 중재방법
US5454082A (en) System for preventing an unselected controller from transferring data via a first bus while concurrently permitting it to transfer data via a second bus
US5931931A (en) Method for bus arbitration in a multiprocessor system

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090831

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee