KR100261381B1 - 버스를 통한 실시간 데이터와 손실에 민감한 데이터 및 비-실시간 데이터의 전송을 위한 분산형 스케쥴링 시스템 - Google Patents

버스를 통한 실시간 데이터와 손실에 민감한 데이터 및 비-실시간 데이터의 전송을 위한 분산형 스케쥴링 시스템 Download PDF

Info

Publication number
KR100261381B1
KR100261381B1 KR1019970063193A KR19970063193A KR100261381B1 KR 100261381 B1 KR100261381 B1 KR 100261381B1 KR 1019970063193 A KR1019970063193 A KR 1019970063193A KR 19970063193 A KR19970063193 A KR 19970063193A KR 100261381 B1 KR100261381 B1 KR 100261381B1
Authority
KR
South Korea
Prior art keywords
data
bus
buffer
time
deadline
Prior art date
Application number
KR1019970063193A
Other languages
English (en)
Other versions
KR19980063618A (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 포만 제프리 엘
Publication of KR19980063618A publication Critical patent/KR19980063618A/ko
Application granted granted Critical
Publication of KR100261381B1 publication Critical patent/KR100261381B1/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
    • 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/368Handling 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

데이터는 버스를 통해 한 장치로부터 다른 장치로, 또는 한 장치와, 중앙 처리장치와 같은 다른 시스템 자원 사이에서 전송된다. 이러한 데이터는 몇가지 형태중 한 형태로 분류된다. "하드 실시간" 데이터는 지정된 시간 한계 또는 데드라인내에서 전송되어야 하며, 데드라인을 놓치는 것은 허용되지 않는다. "소프트 실시간" 데이터도 데드라인 이전에 전송되어야 하며, 비록 일부의 데드라인을 놓치는 것이 허용될 수 있지만, 놓친 데드라인의 수가 적을수록 더 양호하다. "손실에 민감한" 데이터는 데드라인을 갖고 있지 않지만, 어떠한 데이터 손실도 허용될 수 없다. "비-실시간" 데이터도 또한 데드라인을 갖고 있지 않지만, 데이터를 전송하는데 있어서 시간 지연이 적을수록 양호하다. 본 발명에 따르면, 데이터 전송을 제어하고 버스에 대한 억세스를 스케쥴링하는 지능이 시스템 전반에 분산되어 있다. 이러한 스케쥴링 지능의 일부는 버스 아비터에 포함되어 있지만, 잔여 부분은 여러 장치에 자체적으로 포함되어 있다.

Description

버스를 통한 실시간 데이터와 손실에 민감한 데이터 및 비-실시간 데이터의 전송을 위한 분산형 스케쥴링 시스템
본 발명은 컴퓨터 시스템 및 다른 정보 처리 시스템에 관한 것으로서, 특히, 버스를 통해 다양한 부류의 데이터(예, 실시간 데이터, 손실에 민감한 데이터, 비-실시간 데이터)를 전송하기 위한 분산형 스케쥴링 알고리즘(distributed scheduling algorithm)을 구비한 컴퓨터 시스템에 관한 것이다.
한 포인트로부터 다른 포인트로 전송될 데이터는 데이터의 소정 부분의 손실에 대한 허용오차(tolerance) 및 지정된 시간 한계내에서 데이터를 전송하는 것이 얼마나 임계적인지(critical)에 따라 몇가지 카테고리 중 하나로 분류될 수 있다. 이하에서는 4가지 데이터 분류에 대해 설명된다.
"하드 실시간 데이터(hard real time data)" 는 지정된 시간 한계, 즉 "데드라인" 내에 전송되어야 하는 데이터이다. 데드라인 이전에 데이터의 소정 부분의 전송을 실패하는 것은 임계 데이터가 손실되게 되기 때문에 파국적(catastrophic) 이다. 따라서, 하드 실시간("HRT") 데이터의 전송에 대한 성능 목적(performance objective)은 데드라인을 놓치지 않는 것이며, 결과적으로 데이터 손실이 없는 것이다.
"소프트(soft) 실시간 데이터"는 지정된 데드라인내에 전송되어야 하는 데이터로서, 데드라인 이전의 전송 실패가 데이터 손실을 초래하지만, 일부 데이터의 손실이 허용될 수 있는 그런 데이터이다. 소프트 실시간("SRT") 데이터의 전송에 대한 성능 목적은 데드라인을 놓치는 비율이 낮다는 것이며, 결과적으로 데이터 손실의 비율이 낮다는 것이다.
"손실에 민감한 데이터(loss sensitive data)"는 전송되어야 하는 데드라인이 없는 데이터이다. 그러나, 어떠한 데이터 손실도 허용될 수 없다. 따라서, 손실에 민감한("LS") 데이터에 대한 성능 목적은 데이터 손실을 최소화하는 것이다. 손실에 민감한 데이터 전송의 성능을 평가할 때, 지연은 관계가 없다. 다시 말하면, 모든 데이터가 전송되는 한, 얼마나 오래 걸리는가는 문제가 되지 않는다.
"비-실시간 데이터(non real time data)"도 역시 전송되어야 하는 데드라인이 없는 데이터이다. 그러나, 비-실시간("NRT") 데이터에 대한 성능 평가는 "낮은 지연" 이다. 다시 말하면, 지연이 적을수록 더 양호하다는 것이다.
네트워크 어댑터나 디스크 드라이브 어댑터와 같은, 컴퓨터내의 장치는 통상적으로, 한 장치로부터 다른 장치로, 또한 한 장치로부터 중앙 처리 장치 및 메모리와 같은 다른 시스템 자원으로 데이터를 전송할 수 있도록 하기 위해 버스를 통해 상호접속된다. 이들 각각의 장치는 예를 들어, 실시간 데이터, 손실에 민감한 데이터, 또는 비-실시간 데이터와 같이, 통상적으로 전송하는 특정 형태의 데이터를 갖고 있다. 어떤 장치가 버스에 현재 억세스하게 되는지에 관한 판단을 위해 통상적으로 아비터(arbiter)가 버스에 접속된다. 따라서, 2개 또는 그 이상의 장치가 동시에 버스 이용을 필요로할 때, 아비터는 어떤 장치가 언제 억세스하는지 판단한다.
한 고도의 시스템(특히, 제2 버스 아비터를 포함하는, DEC 21150 PCI-PCI 브릿지 칩을 사용하는 시스템)에 있어서, 버스 아비터는 2-레벨 우선순위 방식(2 level priority scheme)을 이용하며, 각각의 우선순위 그룹내에서 "공정성(fairness)"을 구현한다. 공정성에 따르면, 만일 동시에 버스 억세스를 요구하는 동일한 우선순위 레벨의 하나 이상의 장치가 존재하면, 아비터는 한 장치로부터 다른 장치로 버스 억세스를 순환시키게 되고, 따라서 한 장치가 버스를 독점하는 것을 방지한다. 그러나, 공정성은 한 우선순위 레벨과 다른 우선순위 레벨 사이의 경계를 교차하지는 않는다. 그러므로, 공정성에 따르는 경우에도, 하나 또는 그 이상의 고 우선순위 장치가 저 우선순위 장치로부터 버스를 독점할 수 있는 가능성이 있으며, 따라서 저 우선순위 장치에 대한 데이터 손실을 유발할 수 있다.
실시간 데이터와 비-실시간 데이터 및 손실에 민감한 데이터 트래픽 사이의 트레이드-오프(trade-off)를 제공하는 몇가지 방식이 기술되었다. 최소 이완성 임계치(minimum laxity threshold)(MLT) 스케쥴링에 있어서는, 소프트 실시간 장치의 "이완성(laxity)"이 임계치(이완성 임계치) 보다 작지 않으면, 비-실시간 장치가 먼저 서비스된다. "이완성"은 데드라인에 도달할 때까지 남아있는 시간, 즉 다시 말하면, 데드라인 이전의 시간을 말한다. 만일 데드라인에 도달하면, 데이터는 손실되게 된다. 따라서, MLT는 소프트 실시간 데이터와 비-실시간 데이터 사이의 거의 최적의 트레이드-오프를 제공한다.
최소 버퍼 임계치(Minimum Buffer Threshold) 스케쥴링에 있어서는, 손실에 민감한 장치의 버퍼가 오퍼플로우(overflowing) 임계치(버퍼 임계치)내에 있지 않으면, 비-실시간 데이터가 먼저 서비스된다. 만일 버퍼가 오버플로우되면, 손실에 민감한 데이터는 손실되게 된다. 따라서, MBT는 손실에 민감한 데이터와 비-실시간 데이터 트래픽 사이에 거의 최적의 트레이드-오프를 제공한다.
이전에 제안되고 연구된 이들 MLT와 MBT 방식에 있어서의 문제점은, 이들 방식이 한 버스상에 구현될 수 없다는 것인데, 그 이유는 아비터가 소프트 실시간 장치의 이완성 임계치와 손실에 민감한 장치의 버퍼 임계치에 대한 지식을 갖고 있지 않기 때문이다.
비록 버스에 제어 라인을 부가하는 것이 가능하고 따라서 임계치 및 다른 정보가 아비터로 전달될 수 있지만, 본 발명의 한 목적은 추가적인 버스 라인을 필요로하지 않는 개선된 스케쥴링 방식을 제공하는 것이다.
본 발명의 다른 목적은, 모든 4가지 형태의 데이터, 즉, 하드 실시간 데이터, 소프트 실시간 데이터, 손실에 민감한 데이터 및 비-실시간 데이터 사이의 거의 최적의 트레이드-오프를 제공하기 위해 MLT 및 MBT 방식 모두의 결합된 성능에 근사하는, 버스를 통한 데이터 전송을 위한 스케쥴링 시스템을 제공하는 것이다.
상기 및 다른 목적을 실현하기 위해, 본 발명은 스케쥴링 지능의 일부분을 아비터내에 두고, 다른 부분은 자체적으로 그 장치내에 두는, 분산형 스케쥴링 방식을 이용한다.
도1은 아비터내에 존재하는 분산형 스케쥴링 알고리즘 부분의 흐름도.
도2는 하드 실시간(HRT) 또는 비-실시간(NRT) 장치내에 존재하는 분산형 스케쥴링 알고리즘 부분의 흐름도.
도3은 소프트 실시간(SRT) 장치내에 존재하는 분산형 스케쥴링 알고리즘 부분의 흐름도.
도4는 손실에 민감한(LS) 장치내에 존재하는 분산형 스케쥴링 알고리즘 부분의 흐름도.
도5는 본 발명의 분산형 스케쥴링 알고리즘을 사용하는 제어 시스템의 블록도.
*도면의 주요 부분에 대한 부호의 설명
502 : 버스 503 : 중재 채널
504 : 버스 아비터 508 : 소프트 실시간 장치
510 : 손실에 민감한 장치 512 : 하드 실시간 장치
514 : 비-실시간 장치
도1은 아비터내에 존재하는 버스 억세스 스케쥴링 알고리즘 부분의 흐름도이다. 제1 단계(104)에서, 어떤 하드 실시간(HRT) 장치로부터도 버스에 대한 요구가 없었다면, 프로세스는 단계(112)로 분기된다. 그렇지 않고, 만일 HRT 장치로부터 버스에 대한 요구가 있었다면, 아비터는 단계(106)로 분기된다. 단계(106)에서, 만일 아비터가 하나 이상의 HRT 요구가 존재하는 것으로 판단하면, 공정성이 구현되는 단계(108)로 분기된다. 단계(108)에서 서비스할 특정 HRT 장치를 선택한 후에, 또는 단계(106)에서 판단할 때 버스 억세스를 요구하는 오직 하나의 HRT 장치만이 존재하는 경우에, 아비터는 단계(110)로 분기되고, 여기서는 적절한 HRT 장치에 버스 억세스를 허가한다. 선택된 HRT 장치의 버스 이용이 완료되면, 아비터는 단계(104)로 복귀한다.
단계(104)에서 판단할 때, 만일 버스 억세스를 요구하는 HRT 장치가 없고, 아비터가 단계(112)에서 버스 억세스를 요구하는 소프트 실시간(SRT) 또는 손실에 민감한(LS) 장치가 없는 것으로 판단하면, 아비터는 단계(120)로 분기된다. 그렇지 않고, 만일 SRT 또는 LS 장치로부터 버스 억세스를 위한 요구가 있으면, 아비터는 단계(114)로 분기된다. 만일 단계(114)에서, 아비터가 SRT 또는 LS 장치로부터 하나 이상의 요구가 존재하는 것으로 판단하면, 아비터는 공정성이 구현되는 단계(116)로 분기된다. 단계(116)에서 서비스할 특정 SRT 또는 LS 장치를 선택한 이후에, 또는 단계(114)에서 판단할 때 버스 억세스를 요구하는 오직 하나의 SRT 또는 LS 장치만이 존재하는 경우에, 아비터는 단계(118)로 분기되고, 여기서는 적절한 SRT 또는 LS 장치에 억세스를 허가한다. SRT 또는 LS 장치의 버스 이용이 완료되면, 아비터는 단계(104)로 복귀한다.
만일 단계(104,112)에서 판단할 때, 버스 억세스를 요구하는 HRT, SRT 또는 LS 장치가 없고, 아비터가 단계(120)에서 버스 억세스를 요구하는 비-실시간(NRT) 장치가 없는 것으로 판단하면, 아비터는 제1 단계(104)로 분기된다. 그렇지 않고, 만일 NRT 장치로부터 버스 억세스를 위한 요구가 존재하면, 아비터는 단계(122)로 분기된다. 만일 단계(122)에서, 아비터가 NRT 장치로부터 하나 이상의 요구가 존재하는 것으로 판단하면, 아비터는 공정성이 구현되는 단계(124)로 분기된다. 만일 단계(124)에서 서비스할 특정 NRT 장치를 선택한 이후에, 또는 단계(122)에서 판단할 때, 버스 억세스를 요구하는 오직 하나의 NRT 장치만이 존재하는 경우에, 아비터는 단계(128)로 분기되어, 적절한 NRT 장치에 억세스를 허가한다. NRT 장치의 버스 이용 완료시, 아비터는 제1 단계(104)로 복귀한다.
도1에 도시되고 전술된 아비터를 위한 프로세스는 잘 알려진 상태 머신 형태의 하드웨어로 구현되는 것이 바람직하지만, 다른 하드웨어 또는 소프트웨어 구현도 사용될 수 있다. 요약하면, 이 프로세스는 먼저 하드 실시간 요구에 우선순위를 허가하고, 소프트 실시간 요구 및 손실에 민감한 요구는 함께 그룹지워져 제2 레벨 우선순위에 할당되고, 비-실시간 요구는 제3 또는 가장 낮은 레벨의 우선순위를 받게된다. 비록 다양한 형태의 데이터에 우선순위 레벨을 할당하는 것은 공평한 기준이 되지만, 어떤 장치가 소정의 데이터 부류와 관련되어 있는지 아비터가 알고 있다는 사실은 아니다. 각각의 그룹내에서, 아비터는 다수의 요구 중 어느 요구가 버스에 대한 현재 억세스를 허가 받게될 것인지 판단하고, 또한 한 장치가 동일한 형태의 다른 장치를 배제하고 버스를 독점하는 것을 방지하기 위해 잘 알려진 공정성 프로토콜을 이용한다.
하나 또는 그 이상의 고 우선순위 HRT 장치가 다른 저 우선순위의 SRT, LS, 또는 NRT 장치로부터 버스를 독점할 수도 있기 때문에(또한, 이와 유사하게, 하나 또는 그 이상의 고 우선순위의 SRT 또는 LS 장치가 다른 저 우선순위 NRT 장치로부터 버스를 독점할 수도 있기 때문에), 본 발명의 한 실시예에 있어서는, 고 우선순위 "루프"를 통해 매 "n" 번째 마다 하나의 저 우선순위 장치에 버스 억세스를 허가한다. 예를 들어, 다수의 HRT 장치가 버스를 독점하여, 확장된 시간 주기 동안 단계(104,106,108,110)로 이루어진 고 우선순위 루프에 아비터를 억류시킬 수도 있다. 그러나, 이러한 고 우선순위 루프를 통해 "n" 번째 이후에는, 아비터는 적절한 저 우선순위 루프(예를 들어, SRT 및 LS 장치를 위한 단계(112,114,116,118)로 이루어진 루프, 또는 NRT 장치를 위한 단계(120,122,124,128)로 이루어진 루프)로 분기된다. 이러한 실시예에서, "n"은 프로그램가능하며, 2 또는 그 이상이 바람직하다. 본 발명의 이러한 특정 변형은 도면에 도시되어 있지 않다.
도2는 하드 실시간(HRT) 장치내에 존재하는 버스 스케쥴링 알고리즘 부분에 대한 흐름도이다. 제1 단계(202)에서, 만일 HRT 장치가 버스를 요구하면, 프로세스는 버스에 대해 중재하는(arbitrate) 단계(204)로 분기된다. 그렇지 않으면, 프로세스는 버스에 대한 요구가 있을 때 까지 대기한다. 요약하면, 이 프로세스는 아주 간단하다. 즉, 버스에 대한 요구가 있으면, HRT 장치는 즉시 버스에 대해 중재한다.
통상적으로, 버스는 그 버스상의 각각의 장치에 대해 "요구(REQUEST)" 및 "허가(GRANT)" 라인을 갖고 있으며, 하나 또는 그 이상의 장치가 (그 REQUEST 라인상의 전압을 "활성(active)" 상태로 만들어) 한 REQUEST를 주장(assert)할 수 있다. 시스템 아비터는 버스 억세스를 위한 하나 또는 그 이상의 요구를 수신하면, 각각의 요구를 한 장치가 버스에 대한 억세스를 허가받게 되는 순서에 관한 판단을 한다. 이러한 판단을 행하면, 아비터는 버스에 대한 현재 억세스가 제공된 특정 장치에 대해 GRANT 라인을 주장하게 된다.
도3은 소프트 실시간(SRT) 장치내에 존재하는 스케쥴링 알고리즘 부분의 흐름도이다. 제1 단계(302)에서, 장치는 버스 액티비티를 검사하고, 만일 버스가 유휴상태(idle)이면, 프로세스는 버스에 대해 중재하는 단계(304)로 분기된다. 만일 버스가 유휴상태가 아니면, 프로세스는 단계(306)로 분기되고, 이 단계에서 장치는 버퍼의 충전(fill) 레벨을 검사한다. 만일 버퍼가 충만되어 있으면, 프로세스는 버스에 대해 중재하는 단계(304)로 진행한다. 만일 버퍼가 충만되어 있지 않으면, 프로세스는 단계(308)로 진행한다. 단계(308)에서, 버퍼내의 현재 데이터를 전송하기 위해 남아 있는 시간이 이완성 임계치(데드라인 이전의 시간의 양, 여기서, 데드라인을 초과하는 것은 데이터 손실을 초래한다.) 보다 작으면, 프로세스는 버스에 대해 중재하는 단계(304)로 분기된다. 만일 잔여 시간이 이완성 임계치 보다 크거나 같으면, 프로세스는 제1 단계(302)로 복귀한다.
요약하면, 이 프로세스는 SRT 장치로 하여금, 만일 버스가 유휴상태인 경우에(CPU를 포함하여 버스를 이용하는 다른 장치가 없는 경우에), 또는 그 버퍼가 충만되어 있는 경우에(만일 버퍼가 충만되어 있으면, 즉시 데이터를 오버플로우하고 결과적으로 데이터를 방임하는 위험이 있다), 버스에 대해 즉시 중재하도록 한다. 만일 버퍼에 데이터가 존재하고, 데드라인에 도달할 때까지의 잔여 시간이 이완성 임계치보다 작으면, 이 장치는 버스에 대해 중재한다. 그렇지 않고, 만일 잔여 시간이 이완성 임계치 보다 크거나 같으면, 중재는 발생하지 않고, 이 장치는 이완성 임계치가 초과되거나, 버스가 유휴상태에 있거나, 또는 버퍼가 충만될 때까지 대기한다.
도4는 손실에 민감한(LS) 장치내에 존재하는 스케쥴링 알고리즘 부분의 흐름도이다. 제1 단계(402)에서, 만일 잔여 버퍼 공간이 충만되는 "버퍼 임계치"내에 있으면, 프로세스는 장치가 버스에 대해 중재하는 단계(404)로 분기된다. 만일 잔여 버퍼 공간이 버퍼 임계치 보다 크거나 같으면, 프로세스는 단계(406)로 분기되고, 이 단계에서는 데이터가 버퍼내에 있었던 시간을 검사한다. 만일 데이터가 소정의 최대 경과 시간 주기 이상으로 버퍼에 존재했으면, 프로세스는 버스에 대해 중재하는 단계(404)로 분기된다. 만일 이 시간이 소정의 시간 주기 보다 작거나 같으면(또는 만일 버퍼내에 데이터가 없다면), 프로세스는 단계(402)로 복귀한다.
손실에 민감한 장치에 대한 소정의 최대 경과 시간 주기는 소프트 실시간 장치에 대한 이완성 임계치와 다르다는 것을 주목하자. 특히, SRT 장치에 대한 이완성 임계치는 데드라인에 선행하는 시간의 양이다. 정의에 의해 LS 장치는 데드라인을 갖고 있지 않기 때문에, 이들 장치는 이완성 임계치를 가질 수 없다. 따라서, LS 장치에 대한 소정의 최대 경과 시간 주기는 데이터가 첫 번째로 버퍼로 입력되는 시간으로부터 시작하여 측정된다.
도2는 또한 비-실시간(NRT) 장치에 대한 흐름도를 도시하고 있다. 요약하면, 만일 NRT 장치가 버스에 대한 억세스를 요구하면, 중재가 이루어진다. 이것은 분산형 중재 방식이라는 것을 기억하자. 그러므로, 특정 형태의 장치가 주어진 시간에 가질 수도 있는 우선순위를 판단하기 위해서는, 그 장치에서 자체적으로 구현되는 스케쥴링 알고리즘 뿐만 아니라 아비터에서 구현되는 알고리즘도 조사해야 한다. 다시 말하면, 어떤 특정 형태의 장치에 대한 전체 스케쥴링 알고리즘은 그 장치에서 자체적으로 구현되는 스케쥴링 알고리즘과 조합하여, 아비터에서 구현되는 스케쥴링 알고리즘에 의해 결정된다. 결과적으로, 비록 NRT 장치가 HRT 장치와 동일한 내부 스케쥴링 알고리즘을 구현하지만, 버스를 억세스하는 그 전체적인 능력은 HRT 장치와 매우 다르다.
도5는 본 발명의 분산형 스케쥴링 알고리즘을 포함하는 컴퓨터 시스템의 블록도이다. 이 도면을 참조하면, 잘 알려진 마이크로채널(MicroChannel) 또는 PCI 버스와 같은 컴퓨터 버스(502)는 다수의 중재 채널(503)(각각의 장치(508,510,512,514)에 대해 하나씩, 도5에 도시된 4개의 채널)을 포함한다. 각각의 채널은 하나의 중재 "REQUEST" 라인과 하나의 버스 "GRANT" 라인(도시 안됨)을 포함하며, 따라서, 장치는 그 유일한 REQUEST 라인을 통해 아비터로 버스 억세스를 위한 요구를 전송할 수 있으며, 아비터는 그 유일한 GRANT 라인을 주장하므로써 선택된 장치에 버스 억세스를 허가할 수 있다.
아비터(504)는 도1을 참조하여 기술된 스케쥴링 알고리즘 부분을 구현하며, 버스(502)에 접속될 수도 있는 최대 "n"개의 장치에 대해 개별적인 중재 부류 레지스터(506-1 내지 506-n)을 포함한다. 각각의 중재 부류 레지스터는 버스상의 특정 장치에 대응하며, 각각의 레지스터는 그 대응하는 장치가 버스를 통해 전송하게 되는 데이터 부류(예, 하드 실시간 데이터, 소프트 실시간 데이터, 손실에 민감한 데이터 또는 비-실시간 데이터)를 나타내는 코드로 프로그램된다. 이들 중재 부류 레지스터는 파워 온 셀프 테스트(power on self test)시에 시스템에 의해 프로그램되는 것이 바람직하지만, 이들 각각의 레지스터는 나중에 셋트되거나 변경될 수도 있다.
소프트 실시간 장치(508)는 버스(502)에 접속된다. SRT 장치(508)는 이완성 임계치 레지스터(516), 클럭(518), 및 데드라인 레지스터(520)를 포함한다. 전술한 이완성 임계치 파라미터는 비록 다른 수단에 의해 셋트되거나 다른 때에 변경될 수도 있지만, 바람직하게는 파워 온 셀프 테스트시에 이완성 임계치 레지스터로 프로그램된다. 각각의 SRT 장치는 데드라인 레지스터(520)로 로드되는, 그 데드라인 파라미터를 알기 위한 충분한 지능을 갖고 있다. 클럭(518)은 데이터가 버퍼내에 존재했던 시간 길이를 측정하고, 그 시간이 데드라인의 이완성 임계치내에 있는 때를 검출하기 위해 사용된다.
손실에 민감한 장치(510)도 또한 버스에 접속된다. LS 장치(510)는 버퍼 임계치 레지스터(522), 클럭(524), 잔여 버퍼 레지스터(526), 및 최대 경과 시간 레지스터(528)를 포함한다. 전술한 버퍼 임계치 파라미터 및 최대 경과 시간 파라미터는 바람직하게는 파워 온 셀프 테스트시에 버퍼 임계치 레지스터(522) 및 최대 경과 시간 레지스터(528)로 각가 프로그램된다. 그러나 이들 파라미터는 다른 수단에 의해 셋트되거나 또는 다른 시간에 변경될 수도 있다. 클럭(518)은 데이터가 버퍼내에 존재했던 시간의 길이를 측정하고, 그 시간이 최대 경과 시간을 초과한 때를 검출하기 위해 사용된다. LS 장치는 주어진 시간에 버퍼내에 남아있는 버퍼 공간의 양을 검출하기 위한 공지된 회로를 포함하고 있으며, 이 정보는 주기적으로 갱신되어 잔여 버퍼에 저장된다.
하드 실시간 장치(512) 및 비-실시간 장치(514)도 또한 버스(502)에 접속된다. 이들 각각의 형태의 장치는 그들 장치가 전송할 데이터를 갖자 마자 버스 억세스를 요구하기 때문에, 추가적인 레지스터가 요구되지 않는다.
아비터와 함께 각각의 HRT, SRT, LS, 및 NRT 장치에 대한 알고리즘은 잘 알려진 상태 머신의 형태로 하드웨어로 구현되는 것이 바람직하지만, 다른 하드웨어 또는 소프트웨어가 사용될 수도 있다.
임계치 셋팅은 시스템의 성능 목적에 의존하게 된다. 소프트 실시간 데이터에 대한 성능 측정은 데드라인을 놓치는 비율이 낮다는 것이고, 비-실시간 데이터의 성능 측정은 지연이 적다는 것이라는 것을 상기하자. 따라서, 일단 특정 시스템에 대한 성능 목적이 결정되었으면, 비록 다른 기술이 사용될 수도 있지만 모델링에 의해 임계치의 초기 셋팅이 잘 이루어질 수 있다. 초기 셋팅이 결정되어 적절한 레지스터(예, 이완성 임계치 레지스터 및 버퍼 임계치 레지스터)로 로드된 후에, 시스템 성능이 감시되고 측정될 수 있으며, 성능은 다양한 레지스터 셋팅에 대해 이득 조정을 함으로써 조정된다. 시스템은 성능을 연속적으로 감시하고, 지정된 성능 목적을 실현하기 위해 임계치 셋팅을 동적으로 조정하는 것이 바람직하다.
예를 들어, 이완성 임계치 셋팅에서의 이득 증가는 소프트 실시간 데이터 전송의 성능을 향상시키지만, 비-실시간 데이터 전송을 저하시키고, 손실에 민감한 데이터 전송을 저하시킬 가능성이 있다. 이완성 임계치 셋팅을 감소시키는 것은 소프트 실시간 데이터 전송을 저하시키지만, 비-실시간 데이터 전송의 성능 및 잠재적으로는, 손실에 민감한 데이터 전송의 성능을 향상시킨다.
버퍼 임계치 레지스터에서의 셋팅은 최소의 데이터가 손실되도록 보장하는데 필요한 최대치로 되어야 한다. 버퍼 임계치를 이 최대치 셋팅을 넘어 증가시키는 것은 물론, 손실에 민감한 데이터가 보다 신속하게 전송되는 결과를 초래한다. 그러나, 데이터의 신속한 전송은 손실에 민감한 데이터의 성능 기준이 아니며, 이 데이터의 성능 기준은 데이터 손실이 없는 것이다. 결과적으로, 데이터가 손실되지 않도록 보장하는데 필요한 최대치 셋팅을 넘어 버퍼 임계치를 증가시키는 것은 손실에 민감한 데이터 전송의 성능을 향상시키지 못한다. 그러나, 버퍼 임계치를 증가시키는 것은 소프트 실시간 장치 및 비-실시간 장치에 대한 성능을 저하시키게 된다.
전술한 바와 같은 본 발명에 따른 분산형 스케쥴링 방식에 있어서는, 추가적인 버스 라인을 필요로하지 않고 스케쥴링 성능을 향상시킬 수 있는 효과가 있다.

Claims (4)

  1. 버스를 통한 데이터 전송을 스케쥴링하고 제어하기 위한 분산형 지능을 가진 컴퓨터 시스템에 있어서,
    (1) 버스에 대한 억세스를 제어하기 위한 요구 및 허가 정보를 각각 전달하는 다수의 중재 채널을 구비한 버스;
    (2) 상기 버스에 결합되어, 상기 버스를 통해 전송될 데이터의 부류를 나타내는 정보를 저장하기 위한 다수의 부류 레지스터 - 상기 부류 레지스터 각각은 상기 중재 채널중 유일한 채널과 관련됨 - 를 구비한 아비터;
    (3) 상기 중재 채널 중 제1 채널에 결합되어, 상기 버스를 통해 제1 부류의 데이터를 전송하기 위한 제1 장치;
    (4) 상기 중재 채널 중 제2 채널에 결합되어, 상기 버스를 통해 제2 부류의 데이터를 전송하기 위한 제2 장치; 및
    (5) 상기 버스에 대한 억세스를 스케쥴링하고 제어하기 위한 스케쥴링 수단 - 상기 스케쥴링 수단의 제1 부분은 상기 제1 장치에 내재하고, 상기 스케쥴링 수단의 제2 부분은 상기 제2 장치에 내재하고, 상기 스케쥴링 수단의 제3 부분은 상기 아비터에 내재함 - 을 포함하는
    컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 제1 장치는 상기 버스를 통해 전송될 데이터를 저장하기 위한 제1 버퍼와, 이완성(laxity) 임계치 셋팅을 저장하기 위한 이완성 임계치 레지스터를 포함하고;
    상기 제1 부류 데이터는 상기 제1 버퍼내의 모든 데이터가 상기 버스를 통해 전송되어야 하는 관련된 데드라인을 가진 소프트 실시간 데이터이고;
    상기 제1 장치에 내재하는 상기 스케쥴링 수단의 제1 부분은, 상기 데드라인에서 상기 이완성 임계치 셋팅을 감산한 값과 동일한 시간 주기 동안 상기 제1 버퍼에 데이터가 존재했을 때 상기 버스에 대해 중재하는
    컴퓨터 시스템.
  3. 제1항에 있어서,
    상기 제2 장치는 상기 버스를 통해 전송될 데이터를 저장하기 위한 제2 버퍼와, 버퍼 임계치 셋팅을 저장하기 위한 버퍼 임계치 레지스터를 포함하고;
    상기 제2 부류 데이터는 손실에 민감한 데이터이고;
    상기 제2 장치에 내재하는 상기 스케쥴링 수단의 제2 부분은, 상기 제2 버퍼의 충전 레벨이 충만 상태로부터의 버퍼 임계치 셋팅 보다 작을 때 상기 버스에 대해 중재하는
    컴퓨터 시스템.
  4. 제2항에 있어서,
    상기 제2 장치는 상기 버스를 통해 전송될 데이터를 저장하기 위한 제2 버퍼와, 버퍼 임계치 셋팅을 저장하기 위한 버퍼 임계치 레지스터를 포함하고;
    상기 제2 부류 데이터는 손실에 민감한 데이터이고;
    상기 제2 장치에 내재하는 상기 스케쥴링 수단의 제2 부분은, 상기 제2 버퍼의 충전 레벨이 충만 상태로부터의 버퍼 임계치 셋팅 보다 작을 때 상기 버스에 대해 중재하는
    컴퓨터 시스템.
KR1019970063193A 1996-12-06 1997-11-26 버스를 통한 실시간 데이터와 손실에 민감한 데이터 및 비-실시간 데이터의 전송을 위한 분산형 스케쥴링 시스템 KR100261381B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/760,914 1996-12-06
US08/760,914 US5901296A (en) 1996-12-06 1996-12-06 Distributed scheduling for the transfer of real time, loss sensitive and non-real time data over a bus

Publications (2)

Publication Number Publication Date
KR19980063618A KR19980063618A (ko) 1998-10-07
KR100261381B1 true KR100261381B1 (ko) 2000-07-01

Family

ID=25060557

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970063193A KR100261381B1 (ko) 1996-12-06 1997-11-26 버스를 통한 실시간 데이터와 손실에 민감한 데이터 및 비-실시간 데이터의 전송을 위한 분산형 스케쥴링 시스템

Country Status (6)

Country Link
US (1) US5901296A (ko)
EP (1) EP0847012A2 (ko)
JP (1) JPH10177546A (ko)
KR (1) KR100261381B1 (ko)
IL (1) IL122522A0 (ko)
TW (1) TW373136B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553476B1 (en) * 1997-02-10 2003-04-22 Matsushita Electric Industrial Co., Ltd. Storage management based on predicted I/O execution times
US6012116A (en) * 1997-12-31 2000-01-04 Sun Microsystems, Inc. Apparatus and method for controlling data, address, and enable buses within a microprocessor
US6701397B1 (en) 2000-03-21 2004-03-02 International Business Machines Corporation Pre-arbitration request limiter for an integrated multi-master bus system
JP3535068B2 (ja) * 2000-03-30 2004-06-07 富士通株式会社 マルチチャネル処理の制御装置およびマルチチャネル処理の制御方法
JP2001344153A (ja) * 2000-05-30 2001-12-14 Nec Corp マルチプロセッサシステムのキャッシュメモリ制御装置
JP4186421B2 (ja) * 2001-02-23 2008-11-26 株式会社日立製作所 パケット処理装置
JP2005092780A (ja) * 2003-09-19 2005-04-07 Matsushita Electric Ind Co Ltd リアルタイムプロセッサシステム及び制御方法
WO2005096162A1 (ja) * 2004-03-18 2005-10-13 Matsushita Electric Industrial Co., Ltd. アービトレーション方法及び装置
JP4974508B2 (ja) * 2005-10-28 2012-07-11 キヤノン株式会社 バスマスタ装置、バス調停装置及びバス調停方法
CN101426055B (zh) * 2008-11-03 2012-05-23 陈伟 一种分布式调度通讯装置
CN103870327A (zh) * 2012-12-18 2014-06-18 华为技术有限公司 一种实时多任务调度方法和装置
KR102372488B1 (ko) * 2015-05-29 2022-03-10 삼성전자 주식회사 무선 패킷 네트워크를 위한 스케줄링 방법 및 장치
DE102015116419A1 (de) 2015-09-28 2017-03-30 Bayerische Motoren Werke Aktiengesellschaft Robuste Prioritätsreihenfolge für Nachrichten auf einem Bussystem

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814974A (en) * 1982-07-02 1989-03-21 American Telephone And Telegraph Company, At&T Bell Laboratories Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements
US4924380A (en) * 1988-06-20 1990-05-08 Modular Computer Systems, Inc. (Florida Corporation) Dual rotating priority arbitration method for a multiprocessor memory bus
US5276818A (en) * 1989-04-24 1994-01-04 Hitachi, Ltd. Bus system for information processing system and method of controlling the same

Also Published As

Publication number Publication date
KR19980063618A (ko) 1998-10-07
IL122522A0 (en) 1998-06-15
TW373136B (en) 1999-11-01
US5901296A (en) 1999-05-04
JPH10177546A (ja) 1998-06-30
EP0847012A2 (en) 1998-06-10

Similar Documents

Publication Publication Date Title
KR100261381B1 (ko) 버스를 통한 실시간 데이터와 손실에 민감한 데이터 및 비-실시간 데이터의 전송을 위한 분산형 스케쥴링 시스템
KR100280563B1 (ko) 데이터 프로세싱 시스템에 있어서 공유 자원에 대한 액세스를제어하기 위한 방법 및 시스템
US4384323A (en) Store group bus allocation system
US7577780B2 (en) Fine-grained bandwidth control arbiter and the method thereof
US7437495B2 (en) Method and apparatus for assigning bus grant requests
US7904666B2 (en) Access control device, access control integrated circuit, and access control method
US20030074507A1 (en) Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US6112258A (en) Multi-cycle I/O ASIC communication system having an arbiter circuit capable of updating address table associated with each I/O ASIC on bus
US6877049B1 (en) Integrated FIFO memory management control system using a credit value
US6985985B2 (en) Methods and structure for dynamic modifications to arbitration for a shared resource
US20080263249A1 (en) Access Arbiter and Arbitrable Condition Verification Device
US7913014B2 (en) Data processing system and method for memory arbitration
KR100847366B1 (ko) 컴퓨터 시스템에서 다중-레벨 인터럽트 방식을 구현하기위한 시스템 및 방법
US20030229743A1 (en) Methods and structure for improved fairness bus arbitration
KR960042385A (ko) 엘알유(lru)에 의한 중재기
US20040193767A1 (en) Method and apparatus for bus access allocation
US6336179B1 (en) Dynamic scheduling mechanism for an asynchronous/isochronous integrated circuit interconnect bus
US6138197A (en) Apparatus and method for limit-based arbitration scheme
US20090216933A1 (en) Method, system, and computer program product for pipeline arbitration
WO1998020425A3 (en) A method for determining the number of accesses granted during wcl and apparatus
US7747806B2 (en) Resource use management device, resource use management system, and control method for a resource use management device
US20110185095A1 (en) Arbitration scheme for accessing a shared resource
JPH11338820A (ja) バス・アービタ
KR100491949B1 (ko) 공용 버스 중재 방법 및 이를 이용한 인터페이서간의데이터 전송 장치
KR100694086B1 (ko) 멀티 마스터 버스 시스템에서 우선순위 조정 방법 및우선순위조정 기능을 구비한 중재기

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee