KR960006504B1 - 파이프 라인 패키트 버스에 요구 및 응답을 큐하기 위한 장치 - Google Patents

파이프 라인 패키트 버스에 요구 및 응답을 큐하기 위한 장치 Download PDF

Info

Publication number
KR960006504B1
KR960006504B1 KR1019890014758A KR890014758A KR960006504B1 KR 960006504 B1 KR960006504 B1 KR 960006504B1 KR 1019890014758 A KR1019890014758 A KR 1019890014758A KR 890014758 A KR890014758 A KR 890014758A KR 960006504 B1 KR960006504 B1 KR 960006504B1
Authority
KR
South Korea
Prior art keywords
queue
slot
request
bus
counter
Prior art date
Application number
KR1019890014758A
Other languages
English (en)
Other versions
KR900006871A (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 KR900006871A publication Critical patent/KR900006871A/ko
Application granted granted Critical
Publication of KR960006504B1 publication Critical patent/KR960006504B1/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

내용 없음.

Description

파이프 라인 패키트 버스에 요구 및 응답을 큐하기 위한 장치
제 1 도는 본 발명이 구체화된 이중-버스 데이타 처리시스템의 블록도.
제 2 도는 제 1 도의 BXU(10)내에 보여준 시스템 버스 제어로직(6)의 더 상세한 블록도.
제 3 도는 제 2 도의 송신큐 블록(230)의 더 상세한 블록도.
제 4 도는 제 2 도의 수신큐 블록(232)의 더 상세한 블록도.
제 5 도는 제 2 도의 송신 슬로트 블록(208)내의 송신 슬로트중 하나에 대한 더 상세한 블록도.
제 6 도는 제 2 도의 수신 슬로트 블록(210)내의 수신 슬로트중 하나에 대한 더 상세한 블록도.
제 7 도는 출력 요구에 대한 송신큐 상태도.
제 8 도는 입력 요구에 대한 수신큐 상태도.
본 발명은 멀티 프로세싱 시스템에 관한 것인데, 특히 다수의 모듈을 상호 연결하는 파이프 라인 패키트(packet) 버스에 대한 억세스 요구 및 그 버스에 수신된 응답을 큐(queue) 하기 위한 장치에 관한 겻이다.
멀티 프로세싱 시스템은 인텔회사(Intel coporation)에 양도된 미합중국 특허 제4,315,308호, 제4,480,307호 및 제4,473,880호에 기술되어 있다.
이러한 시스템에서, 몇몇 모듈은 모듈 사이에 신호를 보내기(signalling) 위한 공통 버스를 공유한다.
모듈은 데이타 프로세서, 메모리, 입출력 장치 및 그 각각의 제어장치가 될 수 있다.
버스이용에 대한 몇몇 요구는 버스가 그 요구를 받는데 유용해질때까지 보유되어야 한다.
버스에 수신된 응답은 또한 버퍼(buffer)되고, 필요할때 재 명령되어야 하며, 적절한 요구 모듈로 송신되거나 에러 조건을 수정하기 위하여 재시행되어야 한다.
정보는 할당 버스 전송 시간 슬로트중에 정보 패키트 형태로 버스에 전송된다.
버스제어는 이러한 패키트를 보유하는 다수의 선입선출(FIFO) 큐의 형태로 되어 있다.
예를들면, 그랜트 큐(grant queue)는 버스 이용이 그랜트 되도록 대기하고 있는 요구 패키트를 보유하는 FIFO 버퍼이다.
버스제어는 에러 검출 및 회복을 대비하며 서로 영킨 많은 FIFO가 버스를 이용하는 모듈의 내부로직에 대해 데이타를 이동하도록 제한될때 복잡하게 된다.
데이타를 보유하는 14개에 달하는 많은 다른 FIFO 큐에는 동시에 3개의 분 버스 요구를 추적하는 완전한 기능 패키트 버스를 완전히 기술할 필요가 있다.
스 프로토콜 요구 및 응답을 위한 파이프 라인을 확립하여 유지하며, 에러 상태에 대한 파이프 라인을 모니터하고, 인지 요청에 대응하는 적절한 시간 슬로트 위치동안에 파이프 라인에 응답을 삽입한다.
다이(die) 영역은 이렇게 복잡한 버스 제어를 수행하기 위하여 초대규모 집적(VLSI)기술에서 매우 작기 때문에 크기에 있어서는 제한되어 있지만 회로가 할 수 있는 가장 빠른 속도로 작동하는 회로를 제공할 필요가 있다.
그러므로, 본 발명의 목적은 크기에서는 제한이 있지만, 여전히 최대속도로 작동하는 파이프 라인 패키트 버스에 요청 및 응답을 큐하기 위한 장치를 제공하는 것이다.
간단히 상기 목적은 본 발명에 따라 각 요구에 할당된 버스 시간 슬로트에서 버스에 송신될 각 요구에 대응하는 패키트 정보를 기억함으로써 버스요구를 버퍼하는 RAM(212)를 구비함으로써 이루어진다.
다수의 송신큐 카운터(230)는 출력 요구를 추적하고 대응하는 입력 응답을 추적하도록 일련의 상태를 통하여 스텝된다.
수신큐 카운터(232)는 일련의 상태를 통하여 입력 요구를 추적하고 대응응답을 추적하도록 스텝된다.
송신 슬로트(208)는 RAM(212)에 기억된 송신 요구의 상태를 추적하며 수신 슬로트(210)는 RAM(212)에 기억된 수신 요구 상태를 추적한다.
수신 및 송신 슬로트와 연결된 츌력 MUX(214)는 큐 출력 MUX가 위치되는 성분에서 시작되는 요구 상태에 대한 상태 정보를 발생한다.
송신 및 수신 슬로트의 상태에 대한 상대 정보는 소정 시스템 버스 프로토콜에 따라 송신큐 카운터(230)및 수신큐 카운터(232)의 증가 또는 감소를 제어하는데 이용된다·
본 발명은 내(耐)고장성을 가진 패키트 버스 컴플렉스 순차 프로토콜이 최소 VLSI 다이 영역에 적합한 방법으로 구현되는 잇점이 있다.
제 1 도를 참조하면, 이것은 이중 시스템-버스 멀티 프로세싱 시스템의 블록도이다.버스 확장장치(10,12)는 이중 시스렘-버스(20,22)와 로직버스(18)에 접속된다.
로컬 버스는 범용 데이타 프로세서(34,36)에 대한 인터페이스를 제공한다.
제 2 로컬 버스(나타나지 않음)는 입력/출력 장치에 연결될 수 있는 채널 프로세서(나타나지 않음)에 대한 인터페이스를 제공하도록 첨가될 수 있다.
로컬 버스(18)는 로킬 버스 제어로직(8)에 의하여 버스 확장장치(BUX)측에 대해 제어된다.
버스 확장장치(10)는 시스템 버스 제어로직(6)을 통하여 시스템 버스(22)중 하나에 연결되고 로컬 버스제어로직(8)를 통하여 로컬 버스(18)에 연결된다.
파트너 버스 확장장치(12)는 그 자체 시스템 버스 제어로직을 통하여 다른 시스템 버스(20)에 연결되고 자신의 로컬 버스 제어로직을 통하여 로컬 버스(18)에 연결된다.
시스템 버스(20)은 상기 참고된 비에르(Bier) 등의 출원과 인텔회사에 양도 미합중국 특허 제4315308, 제4480307호와 제4473880에서 더 상세히 기술되어 있다.
로컬 버스 제어로직(8)은 중재 파이프 라인 모니터링 어드레스 인식과 버스신호에 대한 로직을 포함한다. 시스템 버스 제어로직(6)은 그들이 버스와 BUX의 내부 로직(4) 사이를 이동할때 요구와 응답을 보유하기 위하여 버터링을 제공한다.
시스템 버스 제어로직(8)은 6개의 버퍼를 제공하는데, 이것의 각각은 전체 버스 패키트를 보유할 수 있다.
3개의 버퍼는 외부 요구에 할당되며 3개는 내부 요구에 할당된다.
메모리 제어장치(50,51)는 메모리(54,56)를 거쳐서 메모리 어레이(42,44,46,48)를 오가며 데이타 전송을 제어한다.
(10,12)는 물론 공통 캐쉬(24)를 제어하며, 이는 상기 참조된 계류중인 죤슨 등의 출원 SN 890,859호에 기술되어 있다.
이제 시스템 버스 제어로직(6)의 로직 상태를 추적하는데 필요한 로직을 보여주는 제 2 도를 참조하자. 이 로직은 3개의 출력 요구와 3개의 입력 요구에 대한 상태 정보를 유지하면서 AP 버스(22)에 즉시 6개의 트랜스액 션(transaction) (요구) 까지 추적 한다
이러한 상태 정보(222)는 취해야될 어떤 액션을 결정하기 위하여 버스 인터페이스 제어(BICTL) 블록(202), 외부제어(EXTCTL)블록(204) 및 중재제어(ARBCTL)블록에 의하여 이용된다.
예를들면, 출력 MUX(214)로부터 "이 BXU는 PiQ내에서 제1슬로트를 소유한다"의 큐상태는 버스에 다음 응답이 이 성분에 속해 있다고 EXTCTL에 통보한다.
출력 MUX(214)로부터 "GnQ의 첫번째" 상태는 버스에 다음 요구 슬로트에 요구를 송신하도록 EXTCTL에 통보한다.
제 2 도의 로직은 요구순서, 응답지연, 반응 재발생, BUX 사이의 요구 파트너링을 추적하며 에러 이후에 재시행을 조정한다.
제 2 도의 로직은 ID FlFO(224)의 인식(lD)비트를 기억한다. lD 비트는 요구가 AP 버스(22)에 송신될때 ID FIFO에 기억된다. ID FIFO의 ID 비트는 응답에 따라 내부로직(4)으로 복귀된다.ID 비트는 AP 버스로 송신되지 않는다, 응답은 순서대로 AP 버스상의 적당한 요구와 매치된다. 버스의 순서는 응답 지연을 제외하고 선입 선출이며, 버스의 모든 성분은 순서를 따른다.
제 2 도의 로직은 상태 머신이며, 이 동작은 제 7 도 및 8도를 참조하여 다음에 기술된다.
제 2 도의 로직은 제어가 큐(230,232)를 위하여 푸쉬(push) 및 팝(pop)의 형태로 EXTCTL 블록(204)과 BICTL 블록(202)에 의해 제어됨과 동시에 카운터, 래치(latch)와 멀티플렉서로 구성된다. 로직은 BOLRAM(212)에 버퍼되는 각각의 트랜스액션 큐의 로케이션 외에도 모든 큐의 깊이를 추적한다.
제 3 도에서 보여진 바와 같이 9개의 송신큐로 깊이를 추적하는 카운터로써 실행된다.
송신큐는 동일한 트랜스액션의 두가지 특징을 포함하는 A측과 B측을 갖는다.
일반적으로 A큐는 주요큐이며 B큐는 에러 회복에 이용하기 위한 지연 정보를 포함하는 제 2 큐이다. 큐에 대한 출력(252)은 카운터를 증가와 감소를 일으키는 푸쉬 및 팝이다.
제 2 깊이 출력(256)은 큐 깊이(얼마나 많은 요구가 큐에 있는지)에 대한 정보이다.
제 4 도에서 보는 바와 같이, 6개의 수신큐는 수신큐의 깊이를 추적하는 카운터로써 실행된다. 수신큐는 동일 트랜스액션의 두가지 특징을 포함하는 A측과 B측을 갖는다.
일반적으로, A큐는 주요큐이며 B큐는 에러 회복에 이용하기 위한 지연 정보를 포함하는 보조큐이다.
큐의 입력(264)은 카운터를 증가시키고 감소시키는 푸쉬 및 팝이다.
수신깊이 출력(266)은 큐 깊이(얼마나 많은 요구가 큐에 있는지)에 대한 정보이다.
제 2 도에서 보는 바와같이 3개의 송신 슬로트 0 : 2(208) 및 3개의 수신 슬로트 3 : 5(210)는 BCL RAM(2l2)에 버퍼된 모든 트랜스액션 상태를 유지한다.
이것은 출력이나 입력 요구인 트랜스액션이다.
트랜스액션 상태는 트랜스액션이 어떤 큐에 있는지 트랜스액션이 큐에서 얼마나 깊은지를 알려준다.
예를들면, 출력요구 슬로트는 "파이프 큐(PiQ)의 첫번째" 상태를 포함할 수 있다,
송신 슬로트(208)는 출력 요구와 입력 응답의 상태를 포함하며, 수신 슬롯(210)은 입력 요구와 출력응답을 포함한다.
송신 슬로트는 송신큐(230)에 인터페이스라고 제 5 도에 상세히 나타난다.
수신 슬로트는 수신큐(232)에 인터페이스라고 제 6 도에 상세히 나타난다.
제 2 도의 출력 MUX(214)는 다른 로직 블록에 의하여 필요한 전체 슬로트 상태 정보 발생한다.
출력 MUX(214)은 다음 패키트 동안에 송신 슬로트는 RAM(212)으로 기입하는데 유용한 것을 결정함으로써 송신 요구에 대한 RAM 워드 선택(220)을 발생한다.
RAM 판독 및 기입어드레스를 비교하면, 출력 MUX는 검출기(318)를 바이패스한다.
출력 MUX는 EXTCTL과 BICTL에 대한 송신 슬로트 상태 정보를 발생한다.
이 상태 정보는 발송 큐 로케이션이 이 성분에 의하여 점유되는 것을 나타낸다.
출력 MUX(214)은 수신 슬로트가 다음 패키트 동안에 AP 버스(222)로부터 충전되는데 유용한 것을 결정함으로써 수신 요구에 대한 RAM 워드 선택(313)을 발생한다·
출력 MUX는 수신 슬로트의 상태를 결정하고 EXTCTL 및 BICTL 제어블록에 의하여 이용할 수신 슬롯 상태 정보를 발생한다. 이 상태 정보는 수신큐 로케이션이 이 성분에 의해 점유되는 것을 나타낸다.
ID FIFO(224)는 식별(ID)비트, ID(0 : 6)을 보유하는 로직 블록이다. 이러한 동일비트는 응답을 가지고 내부로직(4)으로 복귀된다. 내부로직은 응답이 요구의 역할을 하도록 이 비트를 이용한다.
응답은 응답이 생기는 동일한 순서로 내부로직에 복귀되며, ID FIFO 로직은 간단한 FIFO이다.
비트는 요구가 수신되어 될때 FIFO으로 푸쉬되며, 응답이 내부로직에 의하여 수신될때 FIFO를 벗어나 팝된다.
ID 출력 비트, IDOUT(1 : 6)은 바닥 엔트리의 실제 FIFO이다. 이것은 내부로직이 룩 어헤드(1ookahead)하여 다음 응답의 연관된 요구의 형태를 결정한다.
FIFO를 더하여,ID FIFO 블록은 파트너 BXU(12)에 신호를 보내기 위하여 Pop Que 출력된에 구동될 Pop Que(226)을 발생한다. 이 신호는 요구가 기입될때 응답이 내부로직에 성공적으로 전송될때 확정한다.
판독에 파트너되지 못하기 때문에 기입만이 신호가 보내어진다.
요구가 기입인지를 결정하기 위하여, 로직은 ID1비트를 조사한다.
송신큐
제 2 도의 송신큐 블록은 제 3 도에서 보여준 9개의 큐카운터와 송신큐 제어블록으로 구성된다.
큐카운터는 큐의 요구에 따라 다른 크기를 가지며 푸쉬일때 모두가 좌측 이동하는 시프트 레지스터이며 팝일때 우측 이동하는 시프트 레지스터이다.
제어블록(250)은 송신 카운터에 대하여 제어신호(252)를 발생하도록 하여 수신카운터에 대하여 리세트신호(234)를 발생하도록 한다.
송신큐 제어블록(250)은 응답지연, 팝큐, 재시행 준비를 고려하여 어떠한 푸쉬 및 팝신호에 정보를 부가한다.
이것은 또한 init 또는 에러조건에 반응하여 BCL(6)를 리세트하도록 필요한 신호(254)를 발생시킨다. 소수상태선은 BCL의 잔여에 정보를 제공하기 위하여 큐깊이(256)으로부터 발생된다.
수신큐
제 2 도의 수신큐 블록은 제 4 도에서 보는 바와같이, 카운터에 제어에 대하여 6m의 4-비트 시프팅 카운터와 R큐 제어로직 블록(260)을 포함한다.
5개의 카운터는 슈신큐를 나타내며, 1개의 부가 카운터가 있으며 이 성분으로부터 일마나 많은 응답이 AP 버스에서 일어나는가 그러나 에러조건에 대하여 명확하지 않는가 하는 것을 추적하는 보유 응답큐(123)가 있다.
이 카운터(123)의 기능은 버스 에러 리포트 라인(BERL)신호를 기다리는 요구가 전혀없는 것을 나타내는 PlRpy 인터페이스선(125)을 발생하는 것이다.
이러한 카운터는 슬로트에 인터페이스하지 않으며 제 7 도 및 8도에서 보여준 상태도의 일부가 아니다.
모든 수신큐 카운터는 이것이 어떠한 수신큐가 필요하는 최대치이기 때문에 4개의 비트를 가진다.
카운터의 입력(261)은 EXTCTL 블록(204)와 BICTL 블록(202) 및 송신큐(230)에서 발생된 리세트신호(234)로부터 나온 푸쉬 및 팝이다·
리세트신호(234)는 init 신호 또는 버스에러신호에 의하여 명령되어 모든 수신큐를 3개(수신 슬로트의 수)로 리세트되는 자유 요구큐를 제외하고 영으로 리세트되도록 야기시킨다.
수신큐 제어블록(260)은 요구큐가 통과되어야 하는 경우(제 8 도를 참조하여 실제로 기술된)를 인식하기 위하여 BICTL 블록과 EXTCTL 블록으로부터 결합 푸쉬 및 팝을 만들어낸다. BICTL 블록은 내부로직(4)에 어떠한 입력요구를 직접 전송하기 위하여 BCL(6)을 알리는 신호를 명령하여 바이패스 케이스에 신호를 보낸다.
수신큐 제어블록(260)은 요구큐가 바이패스되게 하는 적절한 신호를 만든다.
송신 및 수신 슬로트(SSIt 및 RSlt)
제 2 도에서 보는 바와같이, BCL(6)의 6개의 슬로트(208,210), 즉 3개의 송신 슬로트 슬로트(0 : 2)와 3개의 수신 슬로트 슬로트(3 : 5)가 있다.
송신 슬로트(208)는 송신요구 트랜스액션을 보유하고 수신 슬로트(210)는 수신요구 트랜스액션을 보유한다.
송신 및 수신 슬로트는 구조면에서는 유사하나 두가지 면, 즉, 상태 비트수와 버스에러 조정면에서는 다르다. 수신큐보다 송신큐가 더 많기 때문에 송신 슬로트는 큐상태를 엔코오드하도록 더 많은 상태비트를 요구한다. 송신 슬로트는 물론 모두 나타난 요구를 재유출함으로써 버스에러 재시행을 조정한다.
이러한 수신된 요구는 다시 송신되기 때문에 수신 슬로트는 버스에러를 리세트된다. 슬로트는 특별한 BCL 트랜스액션 상태를 유지한다·
BCL(6)은 AP 버스에 요구를 송신하면, 요구는 슬로트에 할당되고 BCL RAM(212)에 버퍼된다.
슬로트수와 RAM 워드 주소는 동일하며, 이것은 슬로트가 RAM 주소를 생성하도록 한다.
슬로트는 변동상태가 완성될때 이것을 유지한다.
입력요구는 동일한 방법으로 슬로트를 버퍼하고 할망한다. 트랜스액션 상태는 트랜스액션이 있는 큐로 구성되며 큐내에서 얼마나 깊은지를 보여준다.
송신 및 수신 슬로트는 버스 인터페이스 제어(BICTL)블록(202), 외부제어(EXTCTL) 블록(204) 및 임의 제어(ARBCTL)블록(206)토부터 제어를 수신한다
이러한 제어블록은 송신 및 수신큐의 푸쉬 및 괍을 발생시키며 슬로트 카운터를 감소시키거나 새로운 상태 정보를 로드시키는 원인이 된다. 새로운 상태 정보는 큐(230,232)로부터 로드된다.
예를들면, 이러한 BXU가 그랜트큐에 선입되고 요구를 보내지면, EXTCTL는 GnQ를 감소시키고 PiQ를 증가시키며 슬로트 상태를 GnQ로부터 PiQ로 변화되는 원인이 되는 신호 "popGnQ"를 발생한다.
슬로트로 로드된 카운터 값은 송신큐 블록(230)내에 PiQ의 출력(254)로부터 취해진다. PiQ 카운터가 "3"으로 나타나면 "3"은 슬로트에 로드된다.
출력 MUX(2l4)은 슬로트 카운터로부터 슬로트 상태 정보(320,321)를 발생한다.
상태 정보의 한 예는 "나는 PiQ에 제1슬로트를 소유한다"이다. 제 5 도를 참조하자.
송신 및 수신 슬로트상태 카운터(304,404)는 이러한 슬로트가 있는 큐를 나타내는 상태 비트를 보유한다.
상태 엔코우딩, 리세트값(AStDef/BStDef) 및 에러값(AStErr/BStErr)은 아래의 표 1에 기입되어 있다.
[표 1]
Figure kpo00001
각 상태 카운터(304, 404)는 상태 카운터를 만들어내도록 정렬된 상태 셀로 구성된다. 상태셀(셀 Qst)중 하나는 새로운 상태를 로드하는 로드상태 기능과 두개의 리세트 값을 갖는다.
제 1 리세트 값은 초기값(StDef)이며 제 2 리세트 값은 에러상태 리세트(StErr)이다.
송신 슬로트에서 에러상태는 에러때에 슬로트의 상태에 따라 임의의 큐(TpQ)이며 에러 리세트는 조건부로 행해진다. 수신 슬로트는 init 및 에러에 동일한 값으로 리세트한다.
송신 및 수신 슬로트 깊이 카운터(306,308; 406,408)는 큐내에서 슬로트의 깊이를 추적한다.
A 슬로트 카운터는 A 큐내에서 깊이를 유지하며 B 슬로트 카운터는 B 큐내에서 깊이를 유지한다.
슬로트 카운터는 각 팝을 가지고 감소되고 카운터가 영으로 갈때 새로운 깊이를 로드한다. 새로운 깊이는 로드되도록 적절한 큐깊이를 선택하는 슬로트 입력 mux(300 또는 400)으로부터 나온다.
각 슬로트 깊이 카운터는 4-비트 시프트 레지스터 카운터이다.
각 슬로트가 어느 큐내에서도 있을 수 있기 때문에 최대 카운터는 최대 큐깊이에 의해 결정된다.
각 송신 혹은 수신 슬로트는 유일 값으로 리세트된다. 표 2는 각 슬로트에 대하여 상태 카운터 리세트 값을 보여준다.
[표 2]
Figure kpo00002
깊이 카운터는, 송신 슬로트를 자유 송신 슬로트(FoQ)의 제1, 제2 및 제 3 번째에 초기설정하고 수신 슬로트를 자유 수신 슬로트(FrQ)의 제l, 제2 및 제 3 번째에 초기 설정하면서, 상태 카운터 리세트 값에 따라 리세트된다.
재시행을 위하여, 각 송신 슬로트는 조건부로 임시 큐(TpQ)의 제1, 제2 또는 제 3 번째중 하나로 리세트된다. 슬로트가 재시행이 없는 상태에 있다면, 이것은 에러에 의하여 상태를 변화시키지 않을 것이다.
수신 슬로트는 에러에 의하여 자유 수신큐(FIQ)에서 제1, 제2 혹은 제 3 번째에 리세트한다.
슬로트 제어블록(302 ; 402)는 슬로트 상태 카운터 및 깊이 카운터를 제어하기 위하여 모든 신호를 만들어낸다. 제어블록은 에러 리세트 신호 이외에도 팝로드 및 재순환 신호를 만들어낸다
제 2 의 각 슬로트 입력 MUX(300 ; 400) 슬로트 상태 및 깊이 카운터에 입력을 제공한다.
각 슬로트 입력 MUX는 3부분으로 구성된다. 즉 상태 카운터에 대한 다음 상태 비트를 선택하는 상태 mux, 슬로트 깊이 카운터에 대한 다음 상태 깊이를 선택하는 깊이 mux 및 슬로트 깊이 카운터에 대한 적절한 팝 신호를 선택하는 팝 mux이다.
상태 mux는 제 7 도 및 8도를 참조하여 아래 기술된 큐상태 변환을 통하여 시퀀스한다.
상태 mux는 현 큐상태 비트(222)로부터 다음 큐상태(303)을 결정한다.
예를들면, 송신 슬로트가 그랜트큐내에서 있다면 이것이 들어가는 다음 큐는 파이프 큐이다.
어떤 상태는 한 가능한 다음 상태보다 더 많이 가지며 다음 상태를 결정하기 위하여 다른 신호를 요구한다.
예를들면, 대기 송신큐로부터 슬로트는 록응답이 수신되면 록큐로 들어갈 수 있거나, 응답이 록되지 않으면 자유 송신큐로 들어갈 수 있다.
상태 mux의 입력은 슬로트 상태 카운터와 함께 푸쉬 및 팝과 두 가능한 다음 상태 사이에서 결정되도록 요구된 내부 인터페이스선으로부터 나온 현 상태 비트이다. 출력은 다음 상태 비트이다.
깊이 mux는 다음 큐상태에 내하여 큐깊이를 선택한다. 슬로트가 한 큐에서 다른 큐로 변화될때, 새로운 상태 비트는 이러한 새로운 큐상태를 나타내도륵 상태 카운터(304)속으로 로드되며 이러한 큐로부터 네개의 깊이 선은 슬로트 카운터(306,308)속으로 로드된다. mux에 대한 선택선은 현 상태 비트이다.
팝 mux는 모든 큐 팝 신호로부터 오는 슬로트 카운터(306,308)에 대한 팝신호를 선택한다.
선택선으로써 현 슬로트 상태를 이용하여, mux는 이러한 슬로트가 있는 큐에 대한 팝을 선택한다.
예를들면, 이러한 슬로트가 파이프 큐에 있으면, 팝 mux는 적절한 슬로트 카운터 팝 신호로써 PopPiQ를 선택한다.
출력 Mux(214)은 다른 BCL 블럭의 필요에 직면하도록 슬로트 상태(309,310)를 간추려 슬로트 카운터(306,308) 및 상태 카운터(304)를 복잡하게 하는 특별한 경우를 조절한다.
출력 Mux(214)은 바이패스 검출(311)을 따라 RAM 워드 어드레스(220)를 발생하며, 큐위치가 이 성분처리로 차지되는 것을 알려주는 위치라인(316)을 발생하며, 슬로트 깊이 카운터 치를 재명령하여 응답의 재명령을 조절한다.
출력 Mux는 4m의 작은 출력 mux, 각 슬로트에 대한 한 mux로 구성된다.
각 슬로트의 출력 Mux는 슬로트 사이에서 OR된 와이어인 공통 라인을 제외하고 독립적으로 작동한다.
출력 mux 블록(214)은 3개의 로직으로 이루어진다·슬로트 넘버 발생기는 다음 RAM 억세스에 대하여 워드 어드레스(220, 213)을 발생한다.
슬로트 넘버 승산기 판독/기입 워드 어드레스를 증배하여 바이패스 검출라인(318)을 발생한다. 슬로트 위치는 특정 큐위치에 대하여 "이 성분에 의하여 차지된" 신호를 발생한다,
처리 슬로트 수 및 BCL RAM에 기억된 워드위치는 동일하다
이러한 대응은 출력 Mux가 슬로트 상태로부터 RAM 워드 어드레스를 발생하도록 한다.
6개의 RAM 워드 어드레스가 생성되는데 : 즉 송신기입, 송신판독, 송신 어드레스, 수신판독, 수신기입및 수신 어드레스이다. AP 및 바이데이타를 동반한 상태는, 이 슬로트에 대응하는 RAM 워드가 다음 주기에 기입되거나 판독된다.
예를들면, 슬로트가 중재하도록 대기하거나 중재하는 TpQ(102)에 있다면, 바이데이타 버스는 이 슬로트가 바이데이타 버스 데이타를 RAM(212)로 기입하기 위하여 확정되기 때문에 출력요구 송신기입 어드레스를 포함한다.
그 슬로트 상태를 이용하는 동일 계산을 행하는 다른 슬로트 6-비트 디코우드 워드 어드레스를 생성하며 송신 기입 어드레스를 확정하지 못한다.
각 슬로트(각 슬로트는 수신판독 어드레스를 생성하지 않으며, 수신 슬로트도 송신 판독 어드레스를 생성하지 않는다)로부터 5개의 어드레스는 3개의 라인속으로 시간 증배되며 바이패스 검출신호(318)는 출력Mux(310)에서 발생된다.
바이패스 검출은 송신과 수신 RAM 모두에 대한 판독 및 기입 어드레스를 비교하여 출력 Mux(310)에서 이뤄진다.
이것은 슬로트에서 비트-바이-비트 비교로써 이루어지며 매치라인은 슬로트 사이의 OR된 와이어이다.
시간 증배는 판독과 기입 어드레스 사이에서 이루어진다. 이 증배는 총 18워드 어드레스 비트에 대하여 각각의 6개의 슬로트로부더 3개의 어드레스 라인을 생성한다.
출력 mux(310)은 큐위치가 하나의 슬로트 차지되기 위하여 전체 슬로트를 발생한다.
이러한 상태는 라인(222)에서 결합되고 EXTCTL과 BICTL -블록(202,204)으로 피이드된다.
위치라인(316)의 일반적인 포매트는 PINxxQ이며, 예를들면 P1lGnq는 그랜트 큐에 첫째로 있는 슬로트중 하나이다.
4개의 위치라인(BiRpOk, BiRpP, RdRpOk 및 RdRpP)는 일반적인 관습을 따르지 않는다.
이것들은 응답지연을 고려한 위치-형이다. 위치라인은 동일 송신/수신형인 모든 슬로트에 공통인 프리차지(precharge) 방전라인이다.
제 7 도를 참조하면, 이것은 AP 버스(22)에 요구를 보내기 위한 상태도이다.
각 상태는 표 I에서 정의된 바와같이 대응큐와 상호 관련된다. 큐는 다음 최종 컬럼에서 표시된 바와같이 초기신호(init) 또는 에러신호에 대응하여 표 I의 최종 컬럼에 보여준 값으로 리세트된다.
[표 3]
Figure kpo00003
Figure kpo00004
제 7 도를 참고하여, 큐는 다음과 같이 상태를 거쳐 스퀀스된다.
FoQ 상태블록(100) FoQ는 출력 송신 요구 패키트를 기다리는 동안 프리 슬로트를 유지한다. 이러한 큐는 출력요구를 수용하기 전에 자유 슬로트를 가져야 한다.(버스 254의)SdRdy 및 OtRqPnd는 이 큐깊이로부터 계산된다. EXTCTL 블록(204)은 입력응답의 모든 사이클이 내부로직(4)에 전송될 때 이러한 큐를 푸쉬한다. BICTL 블록(202)은 내부로직에 의해 송신되도록 출발하는 출력요구가 있을때 이러한 큐를 팝핑한다. 송신 패키드가 도달되면, 상태는 다음 상태로 변한다,
TqQ 상태블록(102), 요구는 요구가 이 BXU이거나 BXU의 파트너에 대한 여부에 따라 FoQ 상태로부터 TpQ 상태블록(102)이나 PrQ 상태블록(114)으로 진행한다. TpQ는 조정로직(106)를 기다리는 요구른 지닌다. 이러한 요구는 조정하도록 대기하든지 또는 쉽게 조정된다. ARBCTL 블록(206)은 조정을 시작하도록 이 큐의 슬로트의 존재를 이용한다· 이 큐의 요구는 에러를 제시도한다. BlCTL 블록(202)은 출력요구가 내부로직으로부터 송신되도록 시작할때나 록요구가 재발생될 때 이 큐를 푸쉬한다(새로운 요구는 우선 순위를 가진다.). ARBCTL 블록(206)은 요구가 그랜트로 주어질때 이 큐를 팝핑한다. 그랜트가 조정로직으로부터 얻어질 때, 상태는 변한다,
GnQ 상태블록(104), GnQ는 ARBCTL 로직(206)에 주어진 그랜트의 명령을 보유한다. 이 큐의 깊이는 AP 버스의 모든 발동자에 의해 모니터원다. 이 큐는 버스에 나타난 모든 그랜트를 카운터하며, 큐의 개개의 위치는 이 성분에 속한 그랜트에 대해서만 유지된다.
EXTCTL 블록(204)은 제1그랜트가 이 성분에 속한지를 결정하기 위하여 이 큐의 상태를 이용한다. 이것이 행하여지면, 이것은 AP 버스에 송신될 다음 요구이다. 이 큐의 요구는 에러로 재시도된다. ARBCTL블록(206)은 요구가 그랜트로 요구될 때 이 큐를 푸슁한다. EXTCTL블록(204)은 요구가 AP 버스에서 시작되면 이 큐를 팝핑한다. 발생되면, 상태는 변한다.
PiQ 상태블록(106). PiQ는 응답을 대기하는 AP 버스에 나타나는 요구를 보유한다. 이 큐의 깊이는 AP버스에 속한 모든 성분에 의해 모니터된다. 이 큐는 AP 버스에서 생겨 모두 나타난 요구를 보유하며 각 성분은 큐의 개개의 위치와 큐 깊이를 유지한다. EXTCTL블록(204)은 버스의 응답이 이 성분에 대한 것인지를 결정하기 위하여 이 큐 상태를 이용한다. EXTCTL 블록(204)은 요구가 AP 버스에서 시작될 때 이 큐를 푸슁한다. EXTCTL 블록(204)은 응답이 버스에 보여질 때 이 큐를 팝핑한다.
요구가 수신되면, 상태를 변한다.
RsQ 상태블록(108) RsQ는 내부로직(4)에 전송되도록 대기하는 버스로부터 수신을 보유한다. BICTL블록(202)은 내부로직에 송신될 응답이 있는지 여부를 결정하도록 이 큐의 상단을 바라본다. EXTCTL 블록(204)은 응답형이 재발생이 아니라면 버스에 보여진 입력 응답이 버스에 보여질 때 이 큐를 푸슁한다. BICTL 블록(202)은 내부로직에 전송이 수락되지 않을 때이 큐를 팝핑한다. 팝핑된 슬로트는 새로운 요구를 대기하기 위하여 자유 큐에 들어간다. 관련 "B"큐, 대기 송신 큐(WsQ)가 있다. WsQ명Q는 물론 입력 응답을 보유하나, 데이타가 임의의 에러가 되도록 발견되는데 충분히 길다. 응답이 내부로직으로 전송되면, 상태는 FoQ 상태블록(100)으로 변한다·
PrQ 상태블록(1l4). 요구는 요구가 이 BXU이거나 이 BXU의 파트너인지의 여부에 따라 TpQ 상태블록(102)이나 PrQ 상태블록(114)으로부터 FoQ 상태블록으로 진행한다. 파트너 큐는 이 BXU의 파트너에 대하여 나타난 기입 요구를 보유한다. 큐 출력은 분리하여 그 파트너에 대하여 어떤 요구를 재시도할 필요가 있는지를 결정하기 위하여 PrQ 상태를 이용한다. BICTL 블록(202)은 파트너의 요구가 바이데이타 버스에 전송될 때 이 큐를 푸쉬한다.
파트너 큐는 파트너 BXU로부터 PopQue를 수신하여 팝핑된다. 파트너는 내부 PopRsQ에 응답하여 PopQue에 신호를 보내는데, 이것은 응답이 내부로직으로 전송되는 것을 의미한다·
HqQ 상태블록(116). 보유 파트너 큐는 분리 파트너에 트랩된 요구를 요구한다. HqQ의 기능은 "파트너흐름"하에서 더욱 기술된다. 보유 파트너 큐는 파트너 분리경우에 정확히 재시도를 실행하는데 필요하다. 에러에 대하여 귀환되어 삭제되는 응답은 재시도되지 않아야 하나, 응답이 순서가 뒤바뀌어 복귀되면, 내부큐로 전송하거나 임의의 큐로 되돌려 놓을 수 없다. 보유 파트너 큐는 이 트랙 요구에 대한 보유 장소이다. HpQ는 PopQue가 파트너 통신 윈도우동안 신호가 보내질 때 푸쉬된다. 이것는 파트너가 분리되는 BXU에서 일어날 뿐이다. 팝은 요구가 완전한 이전 요구의 재시도때문에 트랩되지 않을 때 발생된다.
B큐 :
WaQ 상태블록(110). 대기 송신 큐는 전송이 임의의 에러가 되어 발견되도록 대기하는 버스로부터 나오는 응답을 보유한다. 재시도 메카니즘은 이 큐에서 슬로트를 재시도한다. EXTCTL 블록(204)은 입력 요구가 응답형이 재발생이 아니도록 구비된 버스에 보여질 때 이 큐를 푸쉬한다. EXTCTL 블록(204)은 AP 버스의 전송이 정확하다는 것이 확인되면 이 큐를 푸쉬한다. 관련 A큐, 즉 입력응답을 보유하거나 내부로직에 의해 수락될 때까지 응답을 유지하는 RsQ(응답큐)가 있다
LcQ 상태블록(112)·록 큐는 재발생 응답을 수신 후 재발생되도록 대기하는 요구를 보유한다·로직은 송신 인터페이스가 자유로울 때 이 요구를 자동적으로 재발생할 것이다. 이 큐의 슬로트는 에러되어 재시도될것이다. EXTCTL 블록(204)은 입력 응답이 버스에서 보여지거나 재시도 형이 재발생일 때 이 큐를 푸쉬한다. BICTL 블록(202)은 송신 인터페이스가 자유롭고 요구가 재발생 과정을 시작할 수 있으면 이 큐를 팝핑한다.
제 8 도를 참조하면, 이것을 AP 버스의 요구를 수신하기 위한 상태도이다. 각 상태는 표(4)에서 정의된, 대응 큐와 상호 관련된다.
[표 4]
Figure kpo00005
Figure kpo00006
FRQ 상태블록(120). FrQ는 입력 요구를 대기하는 자유 슬로트를 보유한다. EXTCTL(204)은 입력 요구를 수령하기 전 자유 슬로트에 대한 이 큐를 체크한다.
IrQ 상태블록(122). 입력 요구 큐는 AP 버스에 나타나는 요구를 보유한다. 이 큐의 깊이는 제 7 도의 PiQ(106)와 같으au AP 버스와 관련된 모든 성분에 의하여 모니터된다. 이 큐는 AP 버스에서 생성되어 나타난 모든 요구를 보유하며, 각 성분은 큐와 큐 깊이에서 개개의 위치를 유지한다. EXTCTL 블록(204)은 이 부분이 응답을 송신하는 시기나 또는 RPYDEF(재연 지연)가 확정되는지를 결정하도록 이 큐의 상태를이용한다. EXTCTL 블록(204)은 요구가 AP 버스에 수신되어 시작될 때 이 큐를 푸쉬한다. EXTCTL 블록(204)은 대응 응답의 최종 주기가 AP 버스에서 자유로운 에러가 되도록 확인될 때 이 큐를 팝핑한다. 관련된 "A"큐, 즉 RqQ(124), PnQ(126), 및 RqQ(128)가 있다.
RqQ 상태블록(124). RqQ 큐는 내부로직(4)에 전송되는 대기중인 입력요구를 보유한다. BICTL 블록(202)은 이 큐의 상단에서 이 BXU에 대하여 요구가 있는지를 보기 위하여 바라본다. 그것이 있다면, 이것은 내부 인터페이스에 송신되는데 다음 요구이다. EXTCTL 블록(204)은 입력 요구의 제 1 주기가 AP 버스로부터 수신될 때 이 큐를 수신한다. 입력 요구가 성분의 어드레스 범위(물리적 어드레스 또는 IAC-상호 중개 통신-어드레스가 체크된다)와 "매치"되지 않는다면 이 큐는 푸쉬되지 않는다. 모든 그외의 IAC 어드레스는 BCL에 의하여 보통 요구로써 조절된다. BICTL 블록(202)은 요구의 제1주기가 내부 인터페이스에 송신될 때 이 큐를 팝핑한다. IRq는 관련 "B"큐이다. 요구가 내부로직(4)에 의하여 일단 수락되면, 상태는 변한다.
PnQ 상태블록(126). PnQ는 내부로직(4)에 의해 수신되나 내부로직(4)으로부터 응답을 아직 수신하지 않는 요구를 보유한다. BICTL 블록(202)은 응답이 기억되는 램(212)의 패키트 버퍼를 결정하기 위하여 이 큐의 상태를 이용한다. BICTL 블록은 요구의 제1주기가 내부 인터페이스를 보내질 때 이 큐를 푸쉬한다. EXTCTL 블록(204)은 응답의 제1주지가 AP 버스에 보내질 때 이 큐를 팝핑한다. 응답이 내부로직(4)으로부터 일단 수신되면, 상태는 변한다.
RrQ 상태블록(128). RqQ는 내부로직(4)으로부터 들어와서 AP 버스 슬로트를 대기하는 응답을 보유한다. 응답이 일단 AP 버스에 송신되면, 상태는 FrQ 상태(120)로 변한다. 요구를 송신하고 수신하는 간단한 경우는 상기 기술된 바와같이 단일 트랜스액션의 상태를 추적함으로써 이루어질 수 있다. 제 7 도 및 8도의 상태도는 몇몇 인자에 의해 완성된 부가상태를 설명한다 :
1. 6개의 트랜스액션까지 단번에 일어날 수 있다.
2. 응답 거절에 대한 제공은 큐를 재정비할 수 있는 요구를 부가한다.
3. 부가 상태 정보는 불량 공차에 대하여 필요하다.
4. 에러 경우에, 요구는 재시도에 대하여 이전 상태 정보를 필요로 한다.
5. 파트너된 버스 조절 장치(BXU)는 각각의 요구를 추적할 필요가 있다.
첫번째 어려움은 제 7 도 및 8도의 도면의 각 상태 및 선입선출(FIFO)큐를 만들고 동시에 선회하는 많은 트랙스액션을 허용하여 조절된다. 응답 거절의 두번째 문제는 다음과 같이 조절된다. 재정비가능한 상태는 동일 주기에서 요구를 큐의 하단을 팝-어프를 허용하여 큐의 상단으로 푸쉬를 허용하는 재선회 경로가 구비된다. 불량 공차에 대한 부가 상태 정보를 수행해야 하는 세번째 어려움은 상태도에서 여분의 상태를 가짐으로써 조절된다. 네번째 어려움, 재시도는 에러가 발생되면 이전 상태로 되돌아가는 요구를 허용하는 여분의 상태 거래를 부가함으로써 조절된다. 마지막 어려움, 파트너를 하는 것은 파트너의 상태를 추적하여 큐를 부가하여 관리된다. 출력 요구 흐름.
초기에, 3개의 자유 슬로트가 출력 요구를 대기하는 자유 출력 큐(100) 상태에 있다. 요구가 버스 제어로직(BCL)으로 주어질 때, 자유 출력 큐의 제 1 송신 슬로트는 요구에 할당되고 송신 슬로트는 임시 큐(102)속으로 강하된다. 임시 큐에서, 다음 AP 버스 중재 시퀀스를 대기하고 적절한 주어질 때, 요구 슬로트는 이것이 AP 버스에 그 순번을 대기하는 그랜트 큐(104) 속으로 강하된다. 그랜트 블록(104)의 이중선은 이 큐가 버스를 가로지르는 길이를 가진다는 것을 의미한다. 요구가 버스에서 구동될 때, 슬로트는 이것이 응답을 대기하는 파이프 큐(106)로 강하된다. 파이프 큐 블록(106)의 이중선은 이 큐가 버스를 가로지르는 길이를 가진다는 것을 의미한다. 응답이 버스에 보여질 때, 슬로트는 반응 큐(108)로 강하된다. 응답은 응답이 내부로직에 전송될 때까지 반응 큐에서 대기한다. 응답이 내부로직에 의해 수신된 후에, 슬로트는 다시 자유롭게 되어 자유 큐(100)로 귀환된다.
반응 큐(108)로 강하됨과 동시에, 송신 슬로트도 대기 송신 큐(110)로 들어간다. 대기 송신 큐 블록(110)의 이중선은 이 큐가 버스를 가로 지르는 깊이를 가진다는 것을 의미하다. 송신 슬로트는 이 거래가 임의적으로 에러가 될 때까지 대기 송신큐에 대기할 것이다. ber1에 대한 인에이블 대기가 설정되면, 송신 슬로트는 대기 송신 큐(110)를 두 주기 후로 놓을 것이다.
재발생 응답
응답이 재발생 응답이라면, 슬로트는 대기 숭신 큐(110)를 록 큐(112)로 강하할 것이다. 슬로트는 새로운 요구가 바이 버스로부터 수신되는 것이 전혀 없을 때까지 록 큐에서 대기할 것이다. 슬로트는 재중재하여 AP 버스로 송신하는 일시적 큐(102)로 되돌아갈 것이다.
응답지연
요구가 파이프 큐의 제1요구이고 응답지연이 일어날 때, 요구는 파이프 큐로부터 팝핑되어 다시 파이프큐의 상단으로 푸쉬된다. 요구가 다시 파이프 큐(106)의 제1요구가 되어 응답이 반송될 때, 요구는 반응큐(108)로 드롭된다. 지연이 순서없이 응답을 반송되도록 한다면, 순서없이 반송되는 모든 응답이 재명령이 되도록 반응 큐에서 대기할 것이다.
요구는 제1요구가 하단에 있을때까지 하단으로부터 팝핑하고 반응큐(108)의 상단으로 푸쉬된다. 이 제 1 요구에 응답은 내부로직으로 반송될 수 있으며 송신 슬로트는 자유 큐(100)로 반송될 것이다.
에러 흐름
에러가 발생될 때, 발생한 요구상태의 모든 송신 슬로트는 재시행될 필요가 없다. 이것은 슬로트가 임시큐(102), 그랜트큐(104), 파이프큐(107), 대기송신큐(l10), 록큐(112), 또는 파트너큐(114)에 있는 것을 나타내기 위하여 각 슬로트의 상태를 체킹이 행해진다. 슬로트가 이렇게 나타난 요구 큐중 하나에 있다면, 중재시퀀스를 다시 시작할 수 있는 임시 큐(102)에 반송가능이 복귀된다. 대기 송신큐(110)가 아닌 응답 큐(108)의 요구는 완결된다. 응답지연 때문에, 응답이 순서가 없어서 내부로직에 반송될 수 없다. 이 슬로트는 재시행동안에 에러 윈도를 통하여 응답큐(108)에 남아있으며, 이전요구가 완결되고 응답이 내부로직에 전송될 수 있다.
파트너 링
요구가 파트너 요구, 즉, 파트너 BXU(12)에 의해 조절되는 요구로써 BXU(10)에 의하여 인식될때, 이것을 파트너 큐(114)에 놓이게 된다. 이것은 파트너의 요구가 중개함에 따라 그곳에서 대기하며, 파트너 BXU는 AP 버스(20)의 요구를 송신하고, 파트너의 응답이 반송되고, 파트너의 응답은 파트너 BXU(12)의 내부로직에 의해 수신된다. 파트너 BXU(12)가 응답의 전송을 완결시킬때 BXU(10)의 파트너 큐로부터 요구를 팝핑하는 BXU(10)에 신호를 보내도록 로컬 버스(18)에 포함되는 팝 큐를 확정한다. 요구는 파트너 큐(114)로부터 HqQ 상태블록(116)으로 팝핑된다. 파트너 요구가 명령대로되면 이것은 즉시 자유 큐, FoQ 상태블록(100)으로 되돌아 흐른다. 응답이 명령을 벗어나 반송된다면, 이것은 내부로직으로 전송될 수 없거나 자유 큐(FoQ)로 되돌아간다. 보유 파트너 큐는 이러한 트랩된 요구에 대한 보유 위치이다·
모든 요구는 두 BXU(10,12)에 의하여 트랙되기 매문에, 순서는 단일 로컬 버스(18)의 수단에 의하여 모든 요구에 대하여 유지된다. 응답지연이 파트너된 경우에 디스에이블될지라도, 응답은, 이것이 요구가 관련된 BXU(12 또는 10)에 대응하는 분리 AP 버스(20 또는 22)에 송신될 것이기 때문에 순서를 벗어나 되돌아올 것이다. 한 AP 버스는 더 가벼운 트랙픽 또는 더 빠른 메모리 응답을 가질 수 있으며 그러므로 이 버스에 대한 요구는 다른 버스에 대한 이전 요구보다 더 용이하게 완성될 수 있다.
요구순서가 두 BXU에 의하여 유지되기 때문에, BXU(10)에서 고장 응답은 파트너 BXU(12)의 이전요구가 완결되고 팝 큐션(226)의 수단에 의하여 BXU(10)에 완전히 신호가 보내진다. 그리하여 응답은 내부로직(8)으로 반송될 것이며 팝 큐선을 파트너트로 신호를 보낸다. 에러가 이전요구가 완결되기 전에 에러가 일어나야 한다면 이 요구는 트랩될 수 있다. 즉, 요구가 완결되나, 이것은 완결되지 않는 이전 요구위에 트랩된다. 보통 에러경우에, 트랩하는 것을 각 BXU가 그 자체 요구를 재시행하기 때문에 문제가 되지 않는다. 트랩된 요구는 재시행되지 않으나 이전 요구 재시행이 완결될때까지 재시행중 응답큐에서 대기할 것이다. 파트너 BXU(12)가 팝큐션을 명령할때, BXU(10)에 트랩된 요구는 자유롭게 되어 내부로직(4)으로 전송될 수 있다. 트랩핑은 BXU가 분리되어 있는 경우에 문제가 된다. BXU가 분리될 때, 그것은 완결되나 트랩되는 어떠한 요구를 가지는지 결정하도록 그 큐를 주시한다. 트랩된 요구가 있다면, 그 파트너에 신호를 보내야 하며 그리하여 이 요구는 재시행되지 않을 것이다. 이렇게 신호를 보내는 것을 팝큐 위에서 행해진다. 잔여 BXU가 이렇게 신호를 보내는 것을 감시하면 파트너 큐(114)로부터 보유 파트너큐(116)로 파트너 요구로 팝핑한다. 보유 파트너큐의 요구는 재시행되지 않는다. 슬로트는 트랩된 이전 요구가 재시행되어 완성될때까지 보유파트너큐를 대기한다. 명령이 회복되고 슬로트는 자유큐(100)로 역으로 송신된다.
제 8 도를 참조하여 입력요구흐름이 기술될 것이다.
초기에, 3개의 자유수신슬로트는 입력요구를 대기하는 자유 수신 큐(120)이다. 자유입력 요구 수신 슬로트는, 이 BXU에 대한 요구가 AP 버스로 인지될때까지 자유수신 큐(120)에 대기한다. 이러한 수단 슬로트는 입력요구 큐(122)와 요구 큐(124)에 평행하게 드롭된다. 입력 요구 큐(l22)의 이중선은 이 큐가 버스를 가로지르는 깊이를 가진다는 것을 의미한다. 입력요구 큐(122)는 제 7 도의 파이프 큐(106)로써 동일정보를 보유한다. 이 파이프 큐(106)상태는 이것은 응답하는 차례일때 수신 BXU이 알도록 수신면에 유지된다. 요구가 입력요구 큐(122)에서 제 1 요구이며 응답거절이 일어날 때, 요구는 입력 요구 큐(122)로부터 팝핑되고 입력요구 큐의 상단을 다시 푸쉬한다. 요구가 입력 요구 큐(122)의 제1요구가 되어 응답은 반송되고, 요구는 자유 큐(120)로 반송된다. 요구 큐(124)는 수신원 요구상태를 보유하여 BCL에서 대기한다. 요구가 내부로직으로 전송될 때, 수신 슬로트는 이것이 응답을 대기하는 펜딩 큐(126)로 드롭한다. 응답이 BLC로 복귀될 때, 슬로트는 응답을 지연시키는 것을 멈춰 적절한 시간에 AP 버스에 응답을 송신하는 BCL을 알려주는 응답 큐(128)로 드롭된다. 응답이 AP 버스에 발생될 때, 슬로트는 입력 요구 큐(122)로부터 드롭되며 자유 큐(120)로 귀환된다.
이러한 수신 큐 모델을 어렵게 하는 몇몇 경우가 있다. 응답지연은 입력 요구 큐(122)를 제 7 도의 파이프큐(106)가 재명령된 동일한 방법으로 재명령 하도록 한다. 통과(125)가 인에이블 되면, 입력요구는 AP 버스로부터 직접 내부로직으로 통과되며 요구 큐(124)는 바이패스될 것이다.
에러는 수신 큐에서 매우 간단하게 조절된다. 모두 나타난 요구는 재발생되기 때문에, 수신 큐는 에러되어 리세트된다.
본 발명은 특히 그 바람직한 실시예를 참고하여 보여지고 기술된 반면에, 형성과 세부적인 면에서 다양한 변화가 본 발명의 범위를 벗어나는 것 없이 이루어질 수 있는 것을 당업자들은 이해할 것이다.

Claims (14)

  1. 파이프 라인 페키트 버스에 요구 및 응답을 큐하기 위한 장치에 있어서, 각 요구에 할당된 버스 시간 슬로트에 상기 버스로 송신될 각 요구에 대응하는 정보를 기억함으로써 버스 요구를 버터링하기 위한 RAM(212) ; 상기 RAM(212)에 기억되는 n 송신 요구 상태를 추적하기 위한 n개의 송신 슬로트(208) ; 상기 RAM(212)에 기억되는 m 수신 요구 상태를 추적하기 위한 m개의 수신 슬로트(210) ; 출력 요구를 추적하고 대응 입력 응답을 추적하기 위한 일련의 송신 큐에 대응하는 일련의 상태가 스텝될 수 있는 제1상태로직을 제공하기 위한 다수의 송신 큐 카운터(230) ; 입력 요구를 추적하고 대응 응답을 추적하기 위한 일련의 수신 큐에 대응하는 일련의 상태가 스텝될 수 있는 제 2 상태로직을 제공하기 위한 다수의 수신 큐 카운터(232) ; 상기 송신 및 수신 슬로트에 접속되어 상기 슬로트의 상태에 대하여 상태 정보를 발생하기 위한 출력 MUX(214) ; 및 상기 출력 MUX(214)에 접속되어 상기 슬로트의 상태에 대한 상기 상태 정보에 응답하여, 소정 시스템 버스 프로토콜에 따라 상기 송신 큐 카운터(230) 및 상기 수신 큐 카운터(232)를 증가 또는 감소시키는 수만(203,204,206)으로 구성되는 것을 특징으로 하는 파이프 라인 패키트 버스에 요구 및 응답을 큐하기 위한 장치.
  2. 제 1 항에 있어서, 상기 출력 MUX(214)은 트랜스 액션으로 첨유되는 큐로케이션에 대한 정보를 제공하는 플레이스 선을 발생하기 위한 수단을 포함하는 것을 특징으로 하는 장치.
  3. 제 1 항에 있어서, 상기 출력 MUX(214)은 상기 슬로트를 재명령하여 응답을 재명령하기 위한 수단, 및 RAM(212)으로부터 기입하는데 유용한 슬로트를 결정함으로써 RAM 워드 선택(220)을 발생하기 위한 수단을 포함하는 것을 특징으로 하는 장치.
  4. 제 1 항에 있어서, 상기 출력 MUX(214)은 상기 버스로부터 충전이 유용한 슬로트를 결정함으로써 RAM 워드 선택(313)을 발생하기 위한 수단을 포함하는 것을 특징으로 하는 장치.
  5. 제1항에 있어서, 상기 송신 슬로트와 상기 수신 슬로트 각각은 멀티 비트 시프트 레지스터 깊이 카운터를 포함하며, 그것의 최대 카운터는 최대 큐 깊이와 같으며, 더욱이 유일한 값으로 각각의 상기 깊이 카운터를 리세트하기 위한 수단을 더 포함하는 것을 특징으로 하는 장치.
  6. 제 2 항에 있어서, 상기 송신 슬로트 및 상기 수신 슬로트는 각각 상기 송신 및 수신 큐의 상기 슬로트의 상태를 추적하기 위한 슬로트 상태 카운터를 포함하는 장치 ; 상기 깊이 카운터 및 상기 상태 카운터는 상기 자유 송신 큐의 제1, 제2 및 제 3 번째로 상기 송신 슬로트 및 상기 자유 수신 큐의 제1, 제2, 제 3 번째로 상기 수신 슬로트를 초기 설정하는 값으로 리세트하는 것을 특징으로 하는 장치.
  7. 제 2 항에 있어서, 상기 깊이 카운터 및 상기 상태 카운터는 에러 발생시 상기 자유 수신 큐의 제1, 제2 또는 제 3 번째로 상기 수신 슬로트를 위치시키는 값으로 리세트 되는 것을 특징으로 하는 장치.
  8. 파이프 라인 페키트 버스에 요구 및 응답을 큐하는 방법에 있어서 A. 각 요구에 할당된 버스 시간슬로트의 상기 버스로 송신될 각 요구에 대응하는 패키트 정보를 기억함으로써 버스 요구를 버퍼링하는 단계 B. RAM(212)에 기억되는 n 송신 요구 상태를 (n) 송신 슬로트(208)에서 추적하는 단계 ; C. 상기 AM에 기억되는 m 수신 요구 상태를, m) 수신 슬로트(210)에서 추적하는 단계 ; D. 출력 요구를 추적하고 대응 입력 응답을 추적하기 위한 일련의 송신 큐에 대응하는 일련의 상태가 스텝될 수 있는 제 1 상태로직을 제공하는 단계 ; E. 입력 요구를 추적하고 대응 응답을 추적하기 위한 일련의 수신 큐에 대응하는 일련의 상태가 스텝될 수 있는 제 2 상태로직을 제공하는 단계 ; F. 상기 슬로트의 상태에 대한 상태 정보를 발생하는 단계 ; 및, G. 소정 시스템 버스 프로토콜에 따라, 상기 슬로트의 상태에 대한 상기 상태 정보에 응답하여 상기 송신 큐 카운터(230) 및 상기 수신 큐 카운터(232)를 증가시키거나 감소시키는 단계로 구성되는 것을 특징으로 하는 파이프 라인 패키트 버스에 요구 및 응답을 큐하는 방법.
  9. 제 8 항에 있어서, H. 트랜스액션에 의해 점유되는 큐 로케이신에 대한 정보를 제공하는 플레이스 선을 발생하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제 8 항에 있어서, H. 상기 슬로트를 재명령하여 응답을 재명령하는 단계 ; 및 G. 상기 RAM(212)으로부터 기입하는데 유용한 슬로트를 결정함으로써 RAM 워드 선택(220)을 발생하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제 8 항에 있어서, H. 상기 버스로부터 충전하는데 유용한 슬로트를 결정함으로써 RAM 워드 선택(313)을 발생하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 제 8 항에 있어서, H. 최대 큐 깊이와 같은 최대 카운터를 가진 멀티-비트 시프트 레지스터 깊이 카운터를 상기 송신 슬로트와 상기 수신 슬로트 각각에 구비하는 단계 ; 및 G. 유일한 값으로 상기 깊이 카운터 각각을 리세트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 제 9 항에 있어서, G. 상기 송신 및 수신 큐의 상기 슬로트의 상태를 추적하기 위하여 슬로트 상태 카운터를 상기 송신 슬로트 및 상기 수신 슬로트 각각에 구비하는 단계: 및 H. 상기 자유 송신 큐의 제1, 제2 및 제 3 에 대한 상기 송신 슬로트를 초기 설정하고 상기 자유 수신 큐의 제1, 제2, 제 3 번째로 상기 수신 슬로트를 초기 설정하는 값으로 상기 깊이 카운터 및 상기 상태 카운터를 리세트하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제 9 항에 있어서, G. 에러 발생시 상기 자유 수신 큐의 제l, 제2 또는 제 3 번째로 상기 수신 슬로트를 위치시키는 값으로 상기 깊이 카운터와 상기 상태 카운터를 리세트하는 단계를 포함하는 것을 특징으로하는 방법.
KR1019890014758A 1988-10-14 1989-10-14 파이프 라인 패키트 버스에 요구 및 응답을 큐하기 위한 장치 KR960006504B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/257,857 US5050066A (en) 1988-10-14 1988-10-14 Apparatus with a single memory and a plurality of queue counters for queuing requests and replies on a pipelined packet bus
US257857 1988-10-14

Publications (2)

Publication Number Publication Date
KR900006871A KR900006871A (ko) 1990-05-09
KR960006504B1 true KR960006504B1 (ko) 1996-05-16

Family

ID=22978066

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890014758A KR960006504B1 (ko) 1988-10-14 1989-10-14 파이프 라인 패키트 버스에 요구 및 응답을 큐하기 위한 장치

Country Status (7)

Country Link
US (1) US5050066A (ko)
JP (1) JPH02211572A (ko)
KR (1) KR960006504B1 (ko)
DE (1) DE3933361A1 (ko)
FR (1) FR2637997A1 (ko)
GB (1) GB2224419B (ko)
HK (1) HK1001078A1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239634A (en) * 1989-09-21 1993-08-24 Digital Equipment Corporation Memory controller for enqueuing/dequeuing process
JP2531802B2 (ja) * 1989-09-28 1996-09-04 甲府日本電気株式会社 リクエストバッファ制御システム
JP3118266B2 (ja) * 1990-03-06 2000-12-18 ゼロックス コーポレイション 同期セグメントバスとバス通信方法
JP2779044B2 (ja) * 1990-06-05 1998-07-23 株式会社日立製作所 バッファ記憶制御方法
AU633724B2 (en) * 1990-06-29 1993-02-04 Digital Equipment Corporation Interlock queueing
CA2051222C (en) * 1990-11-30 1998-05-05 Pradeep S. Sindhu Consistent packet switched memory bus for shared memory multiprocessors
DE4042303A1 (de) * 1990-12-31 1992-07-02 Telefonbau & Normalzeit Gmbh Verfahren zur zugriffssteuerung fuer an ein bus-system angeschlossene stationen in kommunikations-vermittlungsanlagen
US5276838A (en) * 1991-03-04 1994-01-04 International Business Machines Corporation Dynamically repositioned memory bank queues
EP0739119B1 (en) * 1991-03-29 2002-02-27 Mitsubishi Denki Kabushiki Kaisha Buffer apparatus
US5444853A (en) * 1992-03-31 1995-08-22 Seiko Epson Corporation System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's
US5335326A (en) * 1992-10-01 1994-08-02 Xerox Corporation Multichannel FIFO device channel sequencer
US5450547A (en) * 1992-10-01 1995-09-12 Xerox Corporation Bus interface using pending channel information stored in single circular queue for controlling channels of data transfer within multiple FIFO devices
US5363485A (en) * 1992-10-01 1994-11-08 Xerox Corporation Bus interface having single and multiple channel FIFO devices using pending channel information stored in a circular queue for transfer of information therein
US5495585A (en) * 1992-10-16 1996-02-27 Unisys Corporation Programmable timing logic system for dual bus interface
US5500946A (en) * 1992-11-25 1996-03-19 Texas Instruments Incorporated Integrated dual bus controller
US5488706A (en) * 1992-12-18 1996-01-30 Amdahl Corporation Retry request system in a pipeline data processing system where each requesting unit preserves the order of requests
US5664104A (en) * 1992-12-18 1997-09-02 Fujitsu Limited Transfer processor including a plurality of failure display units wherein a transfer process is prohibited if failure is indicated in a failure display unit
US5493651A (en) * 1993-02-16 1996-02-20 International Business Machines Corporation Method and system for dequeuing connection requests in a simplex switch
JP3490473B2 (ja) * 1993-02-17 2004-01-26 松下電器産業株式会社 プロセッサ間通信システム
US6357047B1 (en) 1997-06-30 2002-03-12 Avid Technology, Inc. Media pipeline with multichannel video processing and playback
US5649092A (en) * 1994-04-21 1997-07-15 Unisys Corporation Fault tolerant apparatus and method for maintaining one or more queues that are shared by multiple processors
US5524216A (en) * 1994-05-13 1996-06-04 Hewlett-Packard Company Coherent transaction ordering in multi-tiered bus system
US6029217A (en) * 1994-10-03 2000-02-22 International Business Machines Corporation Queued arbitration mechanism for data processing system
US5699516A (en) * 1994-12-22 1997-12-16 Motorola, Inc. Method and apparatus for implementing a in-order termination bus protocol within a data processing system
KR0150072B1 (ko) * 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5883670A (en) * 1996-08-02 1999-03-16 Avid Technology, Inc. Motion video processing circuit for capture playback and manipulation of digital motion video information on a computer
US6343309B1 (en) 1996-09-30 2002-01-29 International Business Machines Corporaton Method and apparatus for parallelizing a graphics pipeline
US6308248B1 (en) * 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
US6049842A (en) 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
US6105083A (en) * 1997-06-20 2000-08-15 Avid Technology, Inc. Apparatus and method for controlling transfer of data between and processing of data by interconnected data processing elements
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
US5978858A (en) * 1997-09-30 1999-11-02 Compaq Computer Corporation Packet protocol and distributed burst engine
JP4111472B2 (ja) 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
US6584536B1 (en) * 1998-10-07 2003-06-24 Texas Instruments Incorporated Bus transaction accelerator for multi-clock systems
JP4109770B2 (ja) * 1998-12-02 2008-07-02 キヤノン株式会社 通信制御方法及び機器
JP3698079B2 (ja) * 2001-08-22 2005-09-21 日本電気株式会社 データ転送方法、データ転送装置及びプログラム
US7872973B2 (en) * 2006-03-17 2011-01-18 Alcatel Lucent Method and system for using a queuing device as a lossless stage in a network device in a communications network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
US4698746A (en) * 1983-05-25 1987-10-06 Ramtek Corporation Multiprocessor communication method and apparatus
US4615001A (en) * 1984-03-29 1986-09-30 At&T Bell Laboratories Queuing arrangement for initiating execution of multistage transactions
EP0203165B1 (en) * 1984-12-03 1992-11-04 The University Of Western Australia Queueing protocol

Also Published As

Publication number Publication date
FR2637997A1 (fr) 1990-04-20
HK1001078A1 (en) 1998-05-22
GB2224419B (en) 1992-12-16
JPH02211572A (ja) 1990-08-22
GB8911703D0 (en) 1989-07-05
US5050066A (en) 1991-09-17
DE3933361A1 (de) 1990-04-19
GB2224419A (en) 1990-05-02
KR900006871A (ko) 1990-05-09

Similar Documents

Publication Publication Date Title
KR960006504B1 (ko) 파이프 라인 패키트 버스에 요구 및 응답을 큐하기 위한 장치
US5155854A (en) System for arbitrating communication requests using multi-pass control unit based on availability of system resources
US4860244A (en) Buffer system for input/output portion of digital data processing system
US6178466B1 (en) System for maximizing bandpass on an interface directly coupling two units where the interface has independently operative data and address interconnections, and computer sysem employing same.
US4354232A (en) Cache memory command buffer circuit
US20060010279A1 (en) Apparatus for use in a computer systems
US4417303A (en) Multi-processor data communication bus structure
US20050125590A1 (en) PCI express switch
US6263393B1 (en) Bus switch for realizing bus transactions across two or more buses
JPH04297942A (ja) 待ち行列を使用してトランザクションを発生する装置及びその方法
US4065639A (en) Synchronous transmission control system
US5175832A (en) Modular memory employing varying number of imput shift register stages
JP2853652B2 (ja) プロセッサ間通信におけるパケット送信方法およびその装置
US6625678B1 (en) Livelock avoidance method
EP0500967B1 (en) Method of nonsynchronous access to shared memory
JPS6239792B2 (ko)
JP2713204B2 (ja) 情報処理システム
EP0284094B1 (en) Tandem priority resolver
SU903853A1 (ru) Устройство дл сопр жени
JPS6126104B2 (ko)
GB2341766A (en) Bus architecture
GB2341771A (en) Address decoding
SU1008743A1 (ru) Устройство дл обслуживани запросов в пор дке поступлени
JPS6061859A (ja) マイクロコンピュ−タのデ−タ通信方式
GB2341772A (en) Primary and secondary bus architecture

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee