KR20010023734A - 실시간 다이내믹 대역폭 할당을 갖는 완전히 파이프라인된 고정 대기 통신 시스템 - Google Patents

실시간 다이내믹 대역폭 할당을 갖는 완전히 파이프라인된 고정 대기 통신 시스템 Download PDF

Info

Publication number
KR20010023734A
KR20010023734A KR1020007002388A KR20007002388A KR20010023734A KR 20010023734 A KR20010023734 A KR 20010023734A KR 1020007002388 A KR1020007002388 A KR 1020007002388A KR 20007002388 A KR20007002388 A KR 20007002388A KR 20010023734 A KR20010023734 A KR 20010023734A
Authority
KR
South Korea
Prior art keywords
initiator
subsystem
bus
target
cycle
Prior art date
Application number
KR1020007002388A
Other languages
English (en)
Other versions
KR100572372B1 (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 KR20010023734A publication Critical patent/KR20010023734A/ko
Application granted granted Critical
Publication of KR100572372B1 publication Critical patent/KR100572372B1/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
    • 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
    • G06F13/37Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Information Transfer Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 완전히 파이프 라인된, 고정 대기를 결합하는 완전히 분배된 제어, 첫 번째 중재 레벨이 프레임된 2레벨 중재 방식을 갖는 동기 버스(35), 시분할 다중화 방식 및 상기 제2 레벨이 토큰 통과 방식을 사용하여 수행되어진 공정하게 할당된 라운드 로빈 방식을 갖는 원 칩 통신 방법을 제공한다. 대기와 대역폭 할당은 시스템의 실시간 동작으로 소프트웨어 프로그램된 것이다. 또한 본 발명은 공유된 리소오스(10, 15, 20)가 통신 프로토콜에 의해 제어되는 엑세스 통신 시스템도 제공한다. 서브 시스템에서 상기 공유 리소오스(10, 15, 20)는 버스 인터페이스 모듈(40, 45, 50, 55, 60)을 통해서 억세스 된다. 이 버스 인터페이스 모듈(40, 45, 50, 55, 60)은 서브시스템(25, 30)간에 공유된 리소오스(10, 15, 20)에 연결되어질 우회적 방법에 대한 레벨을 제공한다. 이것은 시스템 수행 요구사항에 대한 디커플링을 허용한다. 버스를 경유하는 통신은 완전히 메모리 맵 된다.

Description

실시간 다이내믹 대역폭 할당을 갖는 완전히 파이프 라인된 고정 대기 통신 시스템{a fully-pipelined fixed-latency communications system with a real-time dynamic bandwidth allocation}
전자 계산 및 통신 시스템들이 특징들 및 복잡도에서 연속적으로 증가하고 기능마다 물리적 크기 및 가격이 축소됨에 따라 보다 점점 더 많은 제한들이 시스템 설계자들에게 놓여진다. 그러한 시스템을 위한 요구는 시장에 대한 빠른 시간이 사업의 필수 요건인 곳에서 소비자 전자 제품과 같은 높은 볼륨 및 가격이 민감한 시장들에 초점이 맞추어진다. 보다 적은 시간내에 그리고 보다 낮은 가격들로 보다 복잡한 시스템들을 인도하기 위한 실행 가능한 오직 한가지 접근은 발전된 집적회로 기술을 효율적으로 사용하거나, 기능성을 소프트웨어화하거나, 그리고 서브 시스템 콤포넌트들(components)을 하나의 설계로부터 후속 디자인들로 이동시키는 것이다.
후속 설계들 내에서 서브 시스템 콤포넌트들의 재사용은 아주 통상적이어 왔다. 많은 다른 이익들이 얻어진 시간 절약들에 부가하여 실현되어진다. 첫째, 새로운 시스템 설계의 요구 사항들 및 성능을 분석할 때 정확한 결과들을 제공할 수 있는 입증된 서브 시스템용 모델이 쓰여질 수 있다. 상기 새로운 입증되지 않은 서브 시스템용 모델은 그 입증된 서브 시스템과 같이 정확하지 않을 수도 있고 설계를 좌우하는 시간 내에 구성되지 않을 수도 있다. 둘째, 상기 입증된 서브 시스템들은 결과 시스템 완성의 개선된 예측을 제공하는 반면 시스템 설계자에게 보다 높은 수준의 작용에 초점을 맞추는 것을 허용하는 것에 의해 전체 설계를 단순화시킬 수 있는 블록들을 만드는 역할을 할 수 있다. 셋째, 하드웨어 서브 시스템의 재사용은 그러한 서브 시스템을 제어하기 위한 소프트웨어로의 투자를 방지하며 상기 시스템 소프트웨어 완성이 상기 하드웨어 구성 블록들이 선택되자마자 진행되도록 허용한다. 마지막으로, 상기 서브 시스템의 재사용은 확인 및 테스팅에 있어서의 투자를 방지한다. 그 원하는 시스템들은 매우 고집적이기 때문에 그 요구된 서브 시스템들은 집적회로 내에 깊숙이 끼워 넣어진다. 깊숙이 끼워 넣어진 설계들에 있어서, 그 설계 기능성을 확인하는 것은 매우 도전적이 되며 그것이 올바르게 만들어졌는지를 입증하기 위하여 개별 시스템을 테스트하는 것은 값비싼 지연 및 고가의 시스템 재작업을 야기 시킨다. 그래서, 서브 시스템 확인 및 테스트 집합체의 유지는 설계 재사용으로부터의 가장 큰 단일 이득인 것 같다.
재사용을 설계하는 전통적인 접근 방법은 여러 가지 장점과 약점을 갖는다. 그러한 접근 방법의 필수 형태는 현재의 다양한 서브 시스템들 상호간의 통신 인터페이스이다. 한가지 접근 방법은 서브 시스템과 그것이 통신해야 하는 각 동등 자격사이의 주문화된 포인트 대 포인트(customized point to point) 인터페이스들을 정의하는 것이다. 이 인터페이스 스타일은 데이터가 제1 서브 시스템으로부터 그 데이터를 처리하고 그 데이터를 제2 서브 시스템으로 출력하는 설계된 서브 시스템 안으로 흐르는 적용들에 있어서 특히 많이 사용된다. 이 주문화된 접근 방식은 프로토콜의 단순화, 보장된 성능, 및 연관되지 않은 서브 시스템들 상에서의 종속으로부터의 격리를 제공한다. 그러나, 주문화된 인터페이스들은 그들 특성상 유동적이지 않다. 만약 새로운 적용이 그것이 인터페이스를 공유하지 않은 다른 것과 인터페이스 되기 위한 현존하는 서브 시스템을 필요로 한다면 설계의 재작업이 요구된다. 만약 그 적용이 다른 서브 시스템들과 통신하기 위한 서브 시스템을 요구한다면 서브 시스템들 및 인터페이스들의 다중 복사가 요구될 수 있으며 이것은 시스템의 비효율성을 야기 시킨다. 더욱이 갱신된 알고리즘이 그 서브 시스템 내에서 도구화되고자 한다면, 존재하는 동등 서브 시스템들과의 통신을 허용하기 위하여 이 주문화된(customized) 인터페이스들 안으로 새로운 알고리즘이 끼워 넣어지는 것이 필요하다.
제2 접근 방법은 표준화된 인터페이스들을 사용한 시스템을 정의하는 것이다. 통신 서브 시스템을 형성하기 위하여 공유된 상호접속의 다양한 형태들을 가지고 짝지워진 표준화된 인터페이스들을 인식하는 것은 상식이다. 많은 표준화된 인터페이스들은 기 설정된 컴퓨터 버스 프로토콜들을 기초로 한다. 이 접근 방법의 한가지 중요한 이점은 통신 패턴들에서의 유동성이다. 즉 이 유동성이란 그 시스템에서의 각 다른 에이젼트들과 통신하기 위한 각 에이젼트의 능력이다. 그 시스템이 요구하는 많은 다른 에이젼트들이 함께 접속될 수 있기 때문에 컴퓨터 버스들은 그 버스가 충분한 성능을 갖는 한 시스템 설계에 있어서의 유동성을 허용한다. 최종 장점은 소프트웨어로 도구화되는 복잡한 알고리즘들이 하드웨어 서브 시스템들과 통신 할 필요가 있는 시스템들 안으로 프로세서-메모리 통신들에 기본적인 어드레스/데이터 전달들의 자연스런 맵핑(mapping)이다. 공유된 상호 접속과 함께 다양한 이니시에이터(initiator) 장치들과 타겟 서브 시스템들 사이의 통신 자원들을 할당하는 요구가 뒤따른다. 컴퓨터 버스들의 경우에 있어서, 자원 할당은 전형적으로 조정으로 언급된다.
표준화된 버스 인터페이스들의 주요 단점은 조정으로부터 기인하는 전달 지연(보통 잠재시간이라고 불리는)에 있어서의 불확실성이다. 잠재 시간의 불확실성은 데드 라인(dead line)을 맞추기 위하여 제 시간에 도달하지 않는 데이터는 부적절한 시스템 형태를 야기 시킬 수 있기 때문에 실시간 제한을 만족하여야 하는 서브 시스템들을 위해 곤란을 야기 시킬 수 있다. 제2의 단점은 컴퓨터 시스템 특성으로부터 야기되는 전체 이용 가능한 전송 기회들(보통 대역으로 불리우는)의 부족이다. 과거에 잘 나타난 바와 같이, 버스는 전형적으로 그것에 접속된 프로세서의 피크 전송률을 지지하도록 설계되어 지고, 그 프로세서에 의해 요청되지 않은 전송 기회들은 다른 에이젼트들에게 이용가능 하게 만들어진다. 그러므로 상기 피크 프로세서 대역을 초과하는 결합된 대역들을 갖는 시스템들은 그 대역을 분리하기 위하여 멀티 레벨 버스 설계들 또는 버스들과 전용 접속들의 혼합에 의존하여야 한다. 마지막 단점은 어드레스/데이터 전송들(예로서, 두 에이젼트들 사이의 수 신호들) 또는 이니시에이터(initiator) (예로서, 데이터가 이용 가능한 시작 장치를 시그널(signal) 하기 위하여 타겟 서브 시스템에 의해 구동된 인터럽트 신호)가 아닌 에이젼트에 의해 적응된 통신들로 쉽게 맵핑되지 않은 통신을 효율적으로 지지하는 무능함이다. 요약하여, 현존하는 통신 접근 방법들은 효율적인 설계 재사용을 위한 조건들을 만족시키지 않는다. 필요로 하는 것은 넓은 영역의 성능 특성들에 놓인 시스템들에서의 최대 서브 시스템 재사용을 허용하는 새로운 구조이다. 만약 컴퓨터 버스가 그것의 성능 및 통신 스타일 제한들을 제거하기 위하여 연장될 수 있다면, 많은 고집적 시스템들을 위한 토대로서의 역할을 할 것이다.
더욱이, 서브 시스템 통신 요구 사항들은 크게 변한다. 키이 보드, 적외선 리모트 콘트롤러 및 LED 디스플레이처럼 입력/출력 장치들과 같은 일부 서브 시스템들은 매우 낮은 대역 요구 조건들을 갖으며 가변 잠재 시간에 대해 매우 내성이 있다. RISC CPU 또는 디지털 시그널 프로세서 같은 다른 서브 시스템들은 높은 이용가능한 대역폭 그리고 메모리에 대해 낮은 잠재 시간을 원하나, 보다 늦은 프로그램 수행의 대가로 가변 잠재 시간 및 대역폭의 제한들을 감당할 수 있다. T1 전화 링크 또는 SVGA 디스플레이 같은 다른 서브 시스템들은 높은 대역폭의 요구들에 대해 적당하나 대역폭에서의 불확실성 또는 잠재 시간에 대한 내성이 없다. 그러한 실시간 서브 시스템들은 보장된 대역폭과 잠재 시간을 필요로 하고 어느 여분의 성능을 제공하는 장점이 없다.
그러므로, 그러한 통신 메카니즘이 넓게 변하는 성능 특성들의 서브 시스템들이 상호 작용하도록 하고, 표준화된 인터페이스를 제공하는 것에 의해 그 서브 시스템들의 재사용을 크게 개선시키는 것은 바람직하다. 그러나, 이것은 그 통신 메카니즘의 동작 주파수가 설계하에 그 시스템의 요구된 대역폭을 지지하기 위하여 가변되어야 하는 문제를 다루지는 않는다. 만약 표준화된 인터페이스가 통신 인터페이스에 있다면, 그 통신 인터페이스의 주파수들을 바꾸는 것은 그 서브 시스템들의 동작 주파수들을 바꾸는 것을 요구한다. 그 요구 사항들을 넘어서 서브 시스템의 주파수를 증대시키는 것은 전력을 소모하고, 알고리즘 문제를 야기할 수 있으며(일부 서브 시스템들은 고정된 주파수들에서 동작하는 것을 필요로 한다), 그 새로운 주파수가 기 설계된 서브 시스템이 동작할 수 있는 것 보다 높을 때 전적으로 설계 재사용을 방지할 수 있다. 필요로 하는 것은 각각이 그들 자신의 요구 사항들을 기초로 하여 동작할 수 있도록 다양한 고객 서브 시스템들의 동작 주파수들로부터 통신 인터페이스의 주파수를 분해하는 방법이다.
본 발명은 계산 장치들을 결합하기 위한 버스 시스템에 관한 것이다.
본 발명의 목적, 특징들, 및 이점들이 다음의 상세 설명으로부터 명백해질 것이다.
도 1은 본 발명에 따라 동작하는 단일 칩 통신 시스템의 일 실시예를 예시한다.
도 2a는 이니시에이터 인터페이스 모듈의 일 실시에의 단순화된 블록 다이어그램을 예시한다.
도 2b, 도 2c, 도 2d, 도 2e, 도 2f, 도 2g, 도 2h는 도 2a의 인터페이스 모듈 안으로 또는 밖으로의 신호들을 보여준다.
도 3a는 그 버스로의 엑세스를 위한 중재를 세팅하는 과정의 일 실시예를 보여주는 단순화된 플로우 다이어그램이다.
도 3b는 요청들을 내리고 그 요청들에 응답하는 과정의 일 실시예들을 보여준다.
도 4a와 도 4b는 제2 레벨의 중재를 위한 중재 상태들의 일 실시예를 예시한다.
도 5는 본 발명에 따른 버스 상호 작용을 보여주는 예시적인 타이밍 다이어그램이다.
도 6은 본 발명에 따른 재시도 과정을 예시한다.
본 발명은 보다 높은 정도의 설계 재사용, 보다 단순한 성능 분석, 유동적인 통신 용량, 그리고 보다 짧은 설계 횟수들을 허용하는 고 예측 가능한 용량들을 제공하는 것에 의해 매우 복잡한 시스템의 설계를 능률화시킨다.
일실시예로서, 단일 칩 컴퓨터 버스 시스템의 적어도 하나의 이니시에이터 장치 그리고 적어도 하나의 타겟 서브 시스템을 포함한다. 그 버스 싸이클들은 반복 프레임들로 분할된다. 적어도 하나의 이니시에이터 장치는 요청을 전송하는 기 할당된 일정 요청 프레임들과 그 요청 프레임의 설정된 수의 클럭 싸이클 후의 일정 응답 프레임이다. 요청이 있을 때, 그 이니시에이터 장치는 그 기 설정된 프레임 중에 그 요청을 내린다. 그 요청은 그 타겟 서브 시스템을 인식하는 어드레스 그리고 그 타겟에 의해 취해진 액션을 지시하는 명령을 포함한다. 그 버스와 결합된 각 타겟 서브 시스템은 그 내려진 요청 패킷(packets)을 모니터링하고 그 타겟 서브 시스템 어드레스에 상응하는 어드레스를 포함하는 그 요청 패킷들에 응답한다. 그 타겟은 그 패킷에 기록된 명령을 수행하는 것에 의해 그리고 그 요청 패킷이 내려진 기 설정된 수의 클럭 싸이클 후에 응답 패킷을 전송하는 것에 의해 응답한다.
바람직하게는 크게 변하는 제한들을 갖는 서브 시스템들 사이의 통신을 단일화 하는 시스템 내에서 완성된다. 예로서, 일 실시예 내에서, 싸이클들은 고 대역폭 및 낮은 잠재시간(latency) 요구들을 가지고 이니시에이터들에게 사전에 할당된다. 잔존하는 이니시에이터들은 라운드 로빈(round robin)을 기초로 한 것과 같은 이용가능한 프레임들을 위해 중재한다.
본 발명은 다른 타이밍 제한들을 갖는 다른 서브 시스템들을 지지하기 위하여 단일 반도체 장치상에 혁신적인 통신 프로토콜 및 버스 구조를 제공한다. 특히, 이하에서 설명되는 바와 같이, 본 발명의 장치 및 방법은 둘 또는 둘 이상의 서브 시스템들 사이의 고 대역폭 및 낮은 잠재 시간의 통신 경로를 제공할 뿐만 아니라 실시간 성능을 필요로 하는 어떤 서브 시스템으로의 최소 보장된 대역폭을 제공하기 위한 효율적인 메카니즘을 제공한다. 더욱이, 본 발명의 시스템 및 방법은 시스템 레벨 요구들로부터 서브 시스템의 요구 사항들을 분해하기 위한 효율적인 메카니즘을 제공한다. 이것은 결합된 서브 시스템들이 서브 시스템의 변형 없이 넓게 가변하는 시스템의 잠재 시간 및 대역폭 요구들을 가지고 시스템들 내에서 재 사용되는 것을 가능하게 한다. 덧붙여서, 본 발명의 시스템 및 방법은 어드레스/데이터 스타일의 메모리 맵핑된 통신, 전용의 포인트 대 포인트 통신, 그리고 일 대 많은 방송 스타일 통신을 도구화하기 위한 효율적인 메카니즘을 제공한다. 그 제안된 통신 방법들은 큰 시스템의 부분이고 공용 통신 버스를 통해 서로 통신하는 다른 서브 시스템들 사이의 통신을 제어한다. 그 시스템은 하나 또는 그 이상의 집적회로들 또는 칩들로 구성되고, 그리고 서브 시스템은 많은 논리 블록들을 포함하는 집적회로 상에서 논리 블록일 수 있으며 또는 단일 논리 기능을 완성하는 집적회로일 수 있다.
도 1은 본 발명에 따라 동작하는 시스템의 일 실시예를 보여준다. 그 시스템은 통신 버스(35)를 거쳐 서로 통신하는 두 개의 이니시에이터 서브 시스템들(25, 30)과 세 개의 타겟 서브 시스템들(10, 15, 20)로 결합된다. 타겟 서브 시스템들(10, 15, 20)은 단지 요청을 받고 응답할 수 있는 하나의 서브 시스템으로 정의된다. 전형적인 타겟 서브 시스템들은 메모리 서브 시스템들 및 입력/출력(I/O) 장치들이다. 이니시에이터 서브 시스템(25,30)은 요청을 받고 그 요청들에 응답하며 또한 요청을 내릴 수 있는 서브 시스템이다. 전형적인 이니시에이터 서브 시스템들은 중앙 처리 장치(CPU) 코어들, 디지털 신호 처리기(DSP) 코어들, 직접 메모리 엑세스(DMA) 엔진들, 동반 프로세서 등이다. 일실시예에서, 인터페이스 장치(40, 45, 50, 55, 60)는 각 서브 시스템(10, 15, 20, 25, 30) 그리고 버스(35) 사이에서 접속된다. 이들 인터페이스 모듈들(40, 45, 50, 55, 60)은 그 버스 프로토콜에 따른 패킷들에 응답하고 또는 내리는 논리를 포함한다. 부가하여 이하에서 설명되는 바와 같이, 그 인터페이스는 효율적인 데이터 전송을 위해 그 서브 시스템과 버스 클럭들을 동기 시키는 것이 바람직하다. 마지막으로, 본 발명에서는, 기능성이 인터 페이스 장치들 (40, 45, 50, 55, 60) 사이에서 분배되는 것이 바람직하므로 그 통신 버스들에 걸쳐 상호 작용을 관리하기 위한 전용 제어 장치의 필요가 없다. 더욱이, 그 인터 페이스 장치들은 서브 시스템의 논리 안으로 합병될 수도 있고, 또는 버스로 결합된 분리 블록(40, 45, 50, 55, 60)으로 구성될 수 있다.
일 실시예에서, 도 1에서 통신 버스(35)는 다음의 와이어들, 명령/어드레스 라인들(65), 어써트(assert) 라인들(70), 클럭 라인들(75), 데이터/응답 라인들 (80), 그리고 플래그 라인들(85)로 구성된다. 그 시스템은 또한 이하에서 설명되는 바와 같이 제2레벨의 조정을 수행하는 토큰 링(token ring) 라인들 예로서 라인들(90, 95)을 포함한다.
어드레스/명령 라인들(65)은 타겟 서브 시스템을 인식하는 어드레스를 전송하기 위하여 사용된다. 바람직하게, 특정 타겟 서브 시스템의 어드레스와 서브 시스템 내의 자원 사이의 라인들의 특정 할당은 각 타겟을 위해 가변될 수 있고 달라질 수 있다. 더욱이, 할당은 프로그래머블(programmable) 한 것이 바람직하다.
어써트(assert) 라인(70)은 바람직하게 요청을 전송하기 위하여 그것에 기할당된 패킷을 사용할 것을 지시하는 이니시에이터 서브 시스템에 의해 사용되는 단일 라인이다. 만약 어써트 라인이 액티브 하지 않다면, 그때 토큰을 홀딩하는 이니시에이터는 패킷으로의 엑세스를 얻을 것이다. 클럭 라인(75)은 서브 시스템들이 버스를 거쳐 동작을 동기시키는 클럭을 이송한다. 데이터/응답 라인들(80)은 데이터를 전송하기 위하여 사용되고 요청들에 대해 취해진 타겟 응답들을 전달하는데 사용된다. 플래그 라인들(85)은 특정화된 통신을 위해 이용 가능한 일반 목적의 라인들이며, 그래서 버스 시스템의 유연성 및 강인성을 더해준다. 이것은 특히 어드레스/데이처 전송들내로 쉽게 맵핑할 수 없는 통신을 지지하는데 유리하다. 예로서, 이어서 설명되는 바와 같이, 이들 일반 목적의 라인들은 두 서브시스템들 사이의 신호 변경을 또는 데이터가 이용가능한 이니시에이터 서브시스템을 시그널 하기 위하여 타겟 서브시스템에 의해 구동된 인터럽트 신호와 같은 이니시에이터가 아닌 서브 시스템에 의해 비롯된 통신을 지지하기 위하여 사용될 수 있다.
도 2a와 도 2b는 이니시에이터 인터페이스 모듈의 일실시예에 대한 접속들의 단순화된 블록 다이어그램을 예시한다. 상기 모듈은 여기에 설명한바와 같은 기능들, 즉 요청들을 내리는 것(예로서 논리 250), 고객으로 인터페이스 하는 것(클럭/동기기 245), 형상(형상 레지스터들 240)을 유지하는 것 및 수취된 명령(예로서 논리 250)에 따라 형상을 갱신하는 것을 포함하는 기능들을 수행하기 위하여 필요한 논리 및 메모리를 포함한다. 상기 모듈 동작의 형상을 갱신하기 위한 명령들을 수신하기 위하여 상기 이니시에이터는 또한 타겟으로서의 기능을 하며 그러므로 어드레스/디코드 논리(242)를 포함한다. 설명을 단순화 시키기 위한 목적으로서 이니시에이터들은 그들의 주기능이 이니시에이터의 기능이므로 끼워진 타겟들을 갖는 것으로 설명된다. 그러나, 여기서 설명되는 바와 같이 타겟의 기능성을 유지한다. 그러나 서브시스템이 다른 시간들에서 타겟 또는 이니시에이터로서 기능할 수 있는 것이 추가로 고려되므로 유연성은 유지된다. 도 2b의 테이블은 그 신호들을 요약한다. 특히, "싸이클"은 신호가 액티브한 버스 클럭(sbclock)의 위상을 지시한다. 상기 버스는 파이프 라인되어 있기 때문에, 다중 상호 작용들이 동시에 진행할 수 있다. 그러나, 모든 처리는 동일한 대기를 갖는 것이 적절하므로 각 처리는 동일한 형태를 따른다. 싸이클(S0)는 여기서 중재 싸이클로서 언급된다. 싸이클(S1)은 여기서 명령/어드레스 싸이클로서 언급된다. S1의 설정된 수의 Z싸이클 후에 발생하는 싸이클(SM)은 데이터/응답 싸이클이다. 싸이클(SN)은 에어 싸이클이다.
도 2a를 참조하여, 클럭 신호 라인 sbclock(205)은 그 버스 클럭을 수신한다. 만약 고객이 그 버스에 동기하여 동작하거나 또는 어떤 유도 주파수에서 동기하여 동작한다면, 클럭 회로(242)는 고객에 대한 인터페이스를 유도하기 위해 필요한 클럭 분할을 수행한다. 신호들 sbTokenIn(round robin token grant in)과 sbTokenOut(round robin token grant out)(207, 209)는 각각 들어오는 토큰 및 나가는 토큰을 지시하는 토큰링으로 수행되는 제2 레벨의 조정에서 사용된다. sbAssert(211)는 패킷을 사용하기 위한 의도를 말하기 위하여 미리 할당된 패킷의 소유자에 의해 주장된다. 신호 sbCmd(213)은 도 2c에서 예시된 바와 같은 처리 형태를 인식한다. 신호 sbAddr(215)는 타겟의 어드레스를 나른다. 유휴 상태 및 방송 명령을 제외한 모든 명령들은 이 어드레스 메카니즘을 사용한다. 신호 sbWidth(217)는 데이터 폭을 지시하며, 신호 sbData(219)는 데이터를 나르고, 신호 sbResp(221)는 도 2d에 묘사된 것과 같은 응답 정보를 나른다. 신호 sbFlagNum(223)은 모니터링 하기 위한 신호의 수신기용 신호 sbFlag(225)의 특정 플래그들을 인식한다. 신호들 sbFlag(225)는 수행에 종속하는 다양한 방법일 수 있는 형상화 가능한 플래그 라인들이다.
타겟 고객과 인터페이스 하는 인터페이스 모듈은 더욱이 타겟 고객과 인터페이스 하기 위하여 타겟 서브시스템 신호 라인들(230)을 포함한다. 상기 신호들은 도2e에서 논의되어진다. 이들은 처리 타입 즉 도 2f에서 예시된 예증 타입들을 포함한다. 부가하여, 이니시에이터 고객과 인터페이스되는 인터페이스 모듈은 더욱이 도 2h에서 예시된 바와 같은 이니시에이터 고객 처리 타입들을 포함하여 도 2g에서 예시된 바와 같은 이니시에이터 서브 시스템 신호 라인들을 포함한다.
통신은 아래의 사항들 즉., 프레임화된 동작, 시간 분할 멀티플렉스 엑세스, 동기 동작, 파이프 라인된 동작, 고정 잠재 동작, 그리고 분리된 처리와 같은 사항들을 결합하는 것에 의해 얻어진다. 시간 분할 멀티플렉스 엑세스(TDMA) 시스템에서, 버스 싸이클들은 프레임들로 분할된다. 설정된 소스와 목적지 장치들 사이의 장치 전송들은 사전에 할당된 프레임들이다. 동기 시스템은 장치들이 동일 클럭을 토대로 하여 전송을 수행하는 것이다. 이 실시예에서, 파이프라인 버스는 하나의 처리와 관련된 어드레스 및 명령 필드가 데이터 및 응답이 이후 처리의 어드레스/ 명령 부분과 제1 처리의 데이터/응답의 중첩을 허용한체 전송되기 전에 클럭 싸이클 상에서 그 버스를 통해 전송되는 버스이다. 완전한 파이프라인 버스에서, 새로운 처리는 클럭의 매 싸이클 상에서 시작될 수 있다. 그래서, 부가적인 처리들은 이전 처리의완수전에 시작될 수 있다. 더욱이, 본 발명에서 확실한 성능의 이익이 처리의 시작과 처리의 완수 사이의 잠재 시간(latency)을 고정시키는 것에 의해 얻어질 수 있다는 것이 결정되어졌다. 그래서, 완전한 파이프라인, 고정된 잠재 시간, 분할된 처리 버스에서, 명령 및 연관된 데이터 전송 사이의 잠재 시간은 알려진 보증된 값이다. 이 특성은 고정된 잠재 시간이 완전히 파이프 라인된 방법으로 그들 스스로 동작하는 프로세서 또는 디지털 신호 프로세싱 코어들과 통신하는 버스를 위해 매우 중요하다.
TDMA인 기존 통신 시스템들에서, 프레임들은 포인트 대 포인트 음성 통신들과 같은 미리 특정화된 포인트 대 포인트 통신들을 위해 전형적으로 할당된다. 포인트 대 포인트 통신들에 대한 어떤 변화는 그 포인트 대 포인트 통신 링크의 어느 한쪽 끝에서의 변화로 인해 전형적으로 늦게 발생한다. 본 발명은 단지 전송/동작 명령을 시작하기 위한 권한을 할당하는 것에 의해 이런 단점들을 극복한다. 이것은 그 이니시에이터 서브시스템이 실시간 토대상에서 다수의 타겟 서브시스템들과 쉽게 통신하는 것을 가능하게 한다. 그 이니시에이터 서브시스템은 요청을 발행하며 상기 타겟 서브시스템의 어드레스를 인식하는 어드레스 정보를 포함한다. 그래서, 상기 이니시에이터는 사용된 명령 및 어드레스를 토대로 하여 하나 또는 그 이상의 타겟 서브 시스템과 하나의 프레임 중에 통신할 수 있다.
본 발명의 통신 시스템은 매우 높은 성능과 공유된 상호 접속에 걸친 서브시스템들 사이에서 낮은 잠재 시간 통신 경로를 제공한다. 요구된 시스템 대역폭을 지지하기 위하여 개별 서브시스템들의 그것 보다 더 높은 동작 주파수에서 통신 버스를 동작시키는 것이 필요할 수 있다. 버스 주파수와 서브시스템 주파수 사이의 차이점들은 각 서브 시스템에 의해 요구된 통신의 패턴들에 종속하여 상기 서브시스템 설계에서 중요한 문제를 제시할 수 있다. 특히, 단일 서브시스템은 서브 시스템으로부터 또는 서브시스템으로 긴 시퀀스의 트래픽에 걸쳐 보다 빠른 통신 버스를 따라갈 수 없을 것으로 보인다. 그 문제는 상기 서브시스템이 그것 자신의 피크 대역 폭 요구 사항들 보다 더 빠른 데이터를 처리할 필요가 있어서는 안된다는 것이다.
본 발명의 시스템 및 방법은 더욱이 버스트 전송들의 사용을 최소화 시키기는 것을 시도한다. 하나의 버스트는 전형적으로 암시된 어드레스 증가를 포함하는 연속적인 버스 싸이클들 상에서 발생하는 데이터 전송들의 시퀀스이다. 전통적인 컴퓨터 버스들은 버스 조정 및 어드레스 전송들로부터 기인하는 시간 비효율성들을 감소시키는 것에 의해 성능을 개선하는 방법으로서 그러한 버스트 트래픽을 강조한다. 상기 전송 그리고 수신 서브시스템들 보다 더 높은 주파수에서 동작하는 통신 버스에 걸친 버스트 전송들을 강조하는 시스템 가격의 암시는 전송자 및 수신자측에서 비싼 저장 위치들의 그것이다. 상기 전송자는 그것이 데이터의 버스트 길이의 가치를 버퍼할 때까지 그것의 전송을 시작할 수 없으며, 그 수신자는 상기 데이터를 전송하기 위한 버퍼를 제공하여야 한다. 더욱이, 상기 제1 데이터를 전송하기 전에 상기 전송자측에서 만들어지기 위한 마지막 데이터를 기다리는 과정은 그 전체 전송에 잠재 시간을 더하게 된다.
그러므로, 보다 낳은 해결 방법은 데이터가 상기 전송자 또는 수신자의 자연 동작 비율에서 전송되는 것을 허용하는 것으로 보여질 수 있다. 그래서, 개별 전송들의 시간 인터리브된(interleaved) 세트는 일련의 시퀀스 버스트 전송들을 대신할 것이다. 이 접근 방법은 기억을 감소시키고 전송의 양쪽 끝에서 효율성을 개선시킨다. 덧붙여서, 적절히 형상화된 시간-인터리빙 구성은 하드 실시간 데드 라인에 의해 특징화된 멀티미디어 및 통신 트래픽들을 요구하는 것과 전통적인 계산 트래픽과의 끊김 없는 일체를 이룰 수 있다. 이들 특징들 모두를 가져오는 것은 통신 버스의 기본적인 조정 구성에 대한 증대를 요구한다. 본원 발명의 실시예에서, 두 레벨 조정이 사용된다. 이것은 일반적으로 도 3a와 도 3b를 참조로 하여 설명된다. 도 3a를 참조하면, 대역폭 할당이 수행된다. 그 할당은 시스템의 초기화 단계에서 수행될 수 있다. 더욱이, 여기에서 주목되는 바와 같이, 재 할당은 이용 가능한 기록 버스 처리를 사용하는 서브 시스템들의 형상 레지스터들을 갱신하는 것에 의해 동작중에 동적으로 수행될 수 있다. 스텝(302)에서, 대역폭 할당을 설정하기 위하여 패킷들은 다른 이니시에이터 서브시스템들로 미리 할당된다. 상기 버스 시스템 및 상기 이니시에이터 서브시스템들의 필요들에 결합된 이니시에이터 서브시스템들에 종속하여, 패킷의 가변 수들은 다른 이니시에이터 서브시스템들로 할당될 수 있다. 예로서, 이니시에이터 서브시스템은 높은 대역폭 요구들을 가질 수 있으며 큰 퍼센트의 가용 패킷들로 미리 할당될 수 있다. 다른 이니시에이터 서브시스템은 작은 퍼센트의 가용 패킷들로 미리 할당될 수 있다. 반면에 또 다른 이니시에이터 서브시스템은 어떤 패킷들로도 할당되지 않을 수 있다. 더욱이, 항상 라운드 로빈 조정을 위해 이용 가능한 패킷이 있을 수 있도록 일부 패킷들에 대해 미리 할당하지 않도록 결정될 수 있다.
스텝(304)에서, 토큰 링 망은 제2 레벨의 조정, 예로서 라운드 로빈 조정을 수행하기 위해 설정된다. 전형적으로 상기 토큰링에 대한 멤버들은 미리 할당되지 않은 이니시에이터 서브시스템일 수도 있으나 미리 할당된 패킷들인 이니시에이터 서브시스템들은 또한 토큰 링 망의 멤버일 수 있다.
두 레벨의 조정이 설정되었을 때 상기 버스 시스템은 동작을 시작할 수 있다. 도 3b를 참조하면, 스텝(306)에서 특정 다가오는 패킷을 미리 설정한 상기 이니시에이터가 그 패킷을 사용할 것인지가 결정된다. 예로서, 이것은 현재 실시예의 어써트(주장) 라인과 같은 특정 버스 라인을 모니터링 하는 것에 의해 결정될 수 있다. 주장된다면, 패킷을 미리 할당한 이니시에이터는 처리 스텝(308)과 요청이 내려지는 스텝(310)을 수행하기 위한 엑세스를 갖는다. 만약 상기 이니시에이터가 엑세스를 요구하지 않으면 그때 상기 패킷은 토큰 링 망을 경유하여 수행되는 제2 레벨의 조정을 위해 이용 가능하다. 바람직하게, 도 3b에 나타낸 바와 같이, 제2 레벨의 조정(스텝 312, 314)은 상기 토큰 베어링(bearing) 이니시에이터가 상기 기 할당된 이니시에이터가 엑세스를 거절한 후에 즉시 요청을 내리도록 제1 레벨의 조정(즉, 스텝들 306, 308)과 동시에 수행된다. 그러나, 상기 조정 과정들이 연속적인 방법으로 수행될 수 있다는 것이 고려된다.
도 3b를 참조하면, 스텝(312)에서, 상기 토큰의 현재 홀더가 상기 패킷을 요구하면, 상기 토큰 베어링 이니시에이터는 상기 토큰을 유지하고 상기 기 할당된 이니시에이터가 엑세스를 거절한다면 스텝(314)에서 엑세스가 허용된다.
그렇지않으면, 상기 토큰은 다음 이니시에이터가 엑세스를 얻을 수 있도록 상기 링내의 다음 이니시에이터 서브시스템으로 패스된다. 이러한 과정은 상기 토큰이 엑세스를 요구하는 이니시에이터에 위치될 때까지 연속된다. 이 실시예에서, 상기 토큰의 수신자가 다시 상기 토큰이 엑세스를 요구하는 이니시에이터 서브시스템 없이 상기 링 주위에서 패스되었다는 것을 지시하는 상기 토큰의 초기 홀더이라면, 상기 초기 홀더는 상기 토큰을 유지하고, 스텝(314)에서 엑세스가 허용된다면 상기 조정이 완수되도록 더미(dummy) 요청을 발행할 것이다.
이니시에이터 서브시스템에 의해 발행된 상기 요청은 의도된 타겟의 어드레스를 포함한다. 바람직하게, 상기 요청은 상기 타겟내에서 특정 자원의 어드레스를 포함한다. 상기 타겟 서브시스템들은 스텝(322)에서 상기 어드레스가 상기 타겟의 어드레스에 상응하는지를 결정하기 위하여 각 발행된 요청을 모니터링하고, 하나의 상응물이 (예로서, 매치되면) 결정되면, 상기 타겟 서브시스템은 스텝(324)에서 설정된 수의 클럭 싸이클 후에 상기 요청에 응답한다. 예로서, 요청이 라이트(write) 동작이라면, 상기 타겟 서브시스템은 데이터를 받고 상기 요청이 내려진 후 설정된 수의 클럭 싸이클 후에 완료 응답을 발행한다. 요청이 리드(read) 동작이면, 상기 타겟서브시스템은 요청의 발행되고 설정된 수의 클럭 싸이클 후에 상기 리드 데이터를 제공한다. 일 실시예에서, 발행된 어드레스와 타겟 어드레스 사이의 일 대 일 매치(match)가 예상된다. 그러나, 하나 또는 그 이상의 장치들을 매치하기 위한 마스크들과 연결하여 수행된 비교들과 같은 다양한 레벨들의 대응물들이 예상된다.
위에서 주목할 수 있듯이, 패킷 버스 싸이클이 서브시스템으로 할당될 때, 이 서브시스템은 그 버스 싸이클과 연관된 슬롯들 동안 요청을 발행할 권한을 갖는다. 이것은 다른 서브시스템들로의 대역폭의 사전 할당을 허용한다. TDMA의 장점들은 보장되고 예측 가능한 대역폭이다. 그렇기 때문에 상기 버스 싸이클들은 미리 상기 다른 서브시스템들로 할당된다. 이 같은 특색은 고정된 실시간 대역폭 요구사항을 갖고 고객들을 지원하는데 있어서 중요하다. 이들 두가지 개념들 즉 시간 분할 멀티플레스 엑세스 및 고정된 잠재 시간 파이프라인 처리들의 조합은 잠재 시간 그리고 대역폭을 보장하는 매우 고 성능 통신 프로토콜을 제공한다.
위에서 간략히 설명된 바와 같이, 제1 레벨의 조정은 다음의 방법으로 도구화 된다. 일 실시예에서, 전체 이용 가능한 수의 버스 싸이클들은 반복하는 프레임들로 분할된다. 의논의 목적으로, 상기 프레임은 싸이클의 수에 상응하는 일정 수의 패킷들로 분할된다. 예로서, 256 싸이클 프레임은 128의 두 싸이클 패킷들로 구성될 수 있다. 그래서, 프레임은 128의 두 개 싸이클 패킷으로 구성될 수 있고 그러한 설계에 있어서, 상기 프레임은 매 256 버스 싸이클마다 반복한다. 상기 제1 레벨의 조정 계획은 상기 다른 서브시스템들의 주위에서 공전한다. 단지 이니시에이터 서브시스템들은 명령을 발행할 수 있기 때문에 상기 패킷들은 상기 이니시에이터 서브시스템들로 할당되어야 한다.
본 실시예에 있어서, 각 이니시에이터 서브시스템은 모든 다른 카운터들을 록(lock) 스텝에서 동작하는 동기 카운터를 포함한다. 이 카운터의 출력은 현재 카운터 값의 출력과 연관된 패킷이 특별 인터페이스 모듈로 할당되는지를 판단하는 출력을 갖는 프로그래머블 논리 회로를 색인하기 위하여 사용된다. 각 이니시에이터 인터페이스 모듈내에서 카운터를 도구화하는 것 그리고 록 스텝에서 상기 카운터들을 유지하는 것에 의해 바람직하게는 어느 두 이니시에이터 인터페이스 모듈이 동일 패킷으로 할당되지 않는 한 상기 시스템은 완전히 분배된 TDMA 시간 휠(wheel)을 수행한다. 상기 인터페이스 모듈에서 상기 프로그래머블 논리회로들은 할당에 관한 정보를 가지고 시스템 초기화에서 사전 프로그램되거나 그리고/또는 다른 이니시에이터 서브시스템들로 상기 통신 버스를 거쳐 발행된 명령에 의해 시스템의 런(run) 시간중에 프로그램될 수 있다. 이것은 시스템 내에서 대역폭의 동적인 재 할당을 허용한다.
상기 패킷의 할당은 바람직하게 패킷의 발생전에 버스 싸이클 중에 예로서 상기 패킷의 발생 직전의 버스 싸이클 중에 발생한다. 다양한 도구가 사용될 수 있을 지라도, 상기 프로그래머블 논리회로의 가장 다용도의 도구는 작은 랜덤 엑세스 메모리(RAM)의 형태로서의 룩업 테이블(look up table)이다. 그러한 RAM의 깊이는 프레임 내에서의 패킷의 수와 동일하다. 그래서, 상기 TDMA 시간 휠은 상기 RAM으로 상기 프레임 카운터를 인덱스(index)하는 것에 의해 간단히 도구화 시킬 수 있다. 바람직하게, 상기 테이블들이 저장된 RAM들은 표준 데이터 처리에서 사용되는 바와 같이 상기 동일한 리드/라이트 명령들을 사용한 소프트웨어에 의해 상기 통신 버스를 거쳐 사용자가 볼 수 있어야 하고 엑세스 할 수 있어야 한다. 이것은 상기 시스템의 대역폭 할당이 상기 버스를 거쳐 정상 리드/라이트 처리에 비교할만한 처리 속도로 변화되고 그리고 어느 적용들을 지지하기 위하여 필요한 대역폭을 불균일하게 분배하기 위하여 상기 할당을 변경하는 것을 허용한다.
어떤 상황들에서, 서브시스템들은 하나 또는 그 이상의 기 할당된 싸이클들을 사용하지 않을 수 있다. 이것은 약간의 시스템 트래픽이 예측되더라도, 심지어 상기 예측 가능한 트래픽이 균일하지 않더라도 발생할 수 있다. 예로서, 디스플레이로 전송된 프레임 버퍼 트래픽은 매우 예측 가능하나 상기 트래픽 흐름은 상기 디스플레이가 수평적 그리고 수직적 되살핌 동작을 수행하는 동안 인터럽트 되어진다. 더욱이, 일부 이니시에이터 서브시스템들은 매우 낮은 성능 요구를 갖을 수 있으며, 그리고 그러한 서브시스템으로 어느 대역폭을 미리 할당하는 것은 많은 사용하지 않은 싸이클을 초래할 수 있다. 그러므로 제2레벨의 조정을 가지고 시간 분할 멀티플렉스된 엑세스 프로토콜을 증대시키는 것이 바람직하다.
제2레벨의 조정에서, 미리 할당되지 않은 패킷 또는 미리 할당되었으나 사용되지 않은 패킷은 토큰 통과 메카니즘을 사용한 페어 라운드 로빈 계획내의 상기 버스상에서 다른 이니시에이터 서브시스템들에 의해 다투어진다. 이러한 제2 레벨의 조정은 상기 시스템내에서 어느 서브시스템이 상기 버스를 사용할 수 있다면 어느 패킷도 사용되지 않은체 남겨지지 않는 것을 보장한다. 상기 제2 레벨의 조정의 메카니즘은 이전에 설명된 통신 방법의 모든 장점들을 보류하나 상기 가용 시스템 대역폭의 사용의 전체 효율을 증대시킨다.
본 실시예에서, 상기 제2 레벨의 조정은 토큰 통과 메케니즘을 이용한 페어 라운드 로빈 계획으로서 도구화된다. 상기 제2 레벨의 조정에 참여하는 모든 이니시에이터들은 상기 토큰 어라운드를 통과하기 위하여 하나의 링내에서 접속되어진다. 전형적으로, 예측할 수 없는 잠재 시간을 견딜 수 있는 이니시에이터들은 상기 제1 레벨의 조정에 참여한다. 덧붙여서, 상기 제1 레벨의 조정에 참여한 서브시스템들은 또한 상기 제2 레벨의 조정에 참여할 수 있다는 것이 예상된다. 토큰은 초기화에서 하나의 이니시에이터 서브시스템으로 할당된다. 상기 토큰은 상기 현재 패킷과 연관된 상기 버스 싸이클 중에 버스 명령을 발행하는 조건적인 권한을 의미한다. 이 권한은 조건적이다. 왜냐하면 그것은 그 패킷을 사용할 권한을 주장하지 않는 패킷의 기 할당된 소유자에 종속적이거나 또는 할당되지 않은 패킷 상에 종속적이기 때문이다. 상기 위에 묘사된 제1레벨의 조정후에 패킷이 할당되지 않은체 남을 때, 상기 패킷은 제2레벨의 조정을 사용하여 조정된다. 그래서, 상기 TDMA 계획은 실제로 제1거절의 권리를 할당한다. 즉, 기 할당된 소유자는 그것의 패킷을 사용할 권리를 주장하여야 하며 또는 상기 패킷은 상기 토큰을 가지고 종료하는 이니시에이터에게 이용가능하게 만들어진다.
매 조정 싸이클(패킷마다) 상에서, 상기 토큰은 이전 싸이클 상에서 그것을 홀드하는 이니시에이터에 남을 수 있거나 또는, 현존하는 토큰 링 시스템들과는 다르게, 상기 토큰은 그 토큰을 요청하는 다음 이니시에터로 링 주위를 돌아서 통과할 수 있다. 본 발명의 실시예에서 상기 토큰은 그것을 시작한 이니시에이터로 링 주위를 돌아 완전히 통과될 수 있다. 상기 토큰의 액션은 시스템의 룰(rule)에 나타낸 바와 같이 시스템 조건들 및 공평한 제한들에 종속한다. 예로서, 다른 이니시에이터 서브시스템들은 기다릴 수 있기 때문에 하나의 이니시에이터가 한 패킷 보다 많은 토큰을 사용하는 것은 공평하지 않다. 동등하게 이니시에이터 서브시스템은 사용할 기회를 갖기 전에 상기 토큰을 포기하도록 강요되는 것은 부당하다. 그래서, 일 실시예에서, 상기 토큰 통과 룰(rule)들은 상기 토큰을 요청하고 받는 이니시에이터 서브시스템이 상기 통신 버스를 거쳐 한 패킷의 명령 가치를 정확하게 시작하기 위한 기회를 얻을 때까지 그것을 유지할 수 있도록 구성되어진다. 그 기회는 상기 패킷들이 소유자들에게 미리 할당되는 장치들에 의해 만들어진 사용 결정들에 종속하여 상기 토큰이 도착하는 조정 싸이클에서 발생할 수 있거나 또는 많은수의 싸이클 동안 발생하지 않을 수 있다. 마지막으로, 상기 토큰을 갖는 이니시에이터가 그것을 사용할 기회를 가질 때, 상기 이니시에이터는 논리 일로 그것의 TokenOut 신호를 구동하는 것에 의해 상기 링을 돌아 상기 토큰을 시작한다. 어느 다른 이니시에이터도 상기 토큰을 요청하지 않으면, 그것은 상기 링을 돌아 완전히 패스하고 전송자측으로 되돌아간다. 상기 토큰이 불명확하게 상기 링을 돌아 순환하는 것을 막기 위하여 상기 토큰을 시작하는 상기 이니시에이터 서브시스템은 일시적으로 상기 링을 깨는 것이 바람직하다. 그래서, 어느 주어진 조정 싸이클 상에서 상기 토큰을 시작하는 상기 이니시에이터 서브시스템은 상기 조정 싸이클의 끝에서 다시 그것을 가지고 종료할 수 있다. 상기 통신 버스는 상기 와이어들이 부적절한 버스 동작과 증가된 파워 낭비가 발생할 수 있는 미 판단 상태로 부유하지 않도록 항상 액티브하게 구동되는 것이 바람직하다는 것이 주목되어야 한다. 그와 같이, 상기 토큰을 가지고 종료하는 상기 이니시에이터는 어느 기 할당된 패킷 소유자가 먼저 거절할 권리를 주장하지 않을 때마다 버스 명령을 시작하여야 한다. 그러한 경우에 있어서, 상기 토큰을 갖는 상기 이니시에이터는 그것이 발행할 유용한 명령을 갖지 않는다면 사용되지 않은 명령(해가되지 않은 리드 또는 라이트, 또는 NOP/유휴 상태 명령)을 시작하여야 한다.
만약 상기 조정 싸이클의 시작에서 상기 토큰을 갖는 이니시에이터가 상기 토큰을 사용할 기회를 갖지 않고 발행할 명령을 갖는다면, 그것은 상기 토큰을 유지할 수 있다. 그렇지 않다면, 상기 이니시에이터는 상기 토큰이 상기 제2 레벨의 조정을 통한 주장을 위해 이용 가능한 다른 이니시에이터 서브시스템들을 지시하여 신호 와이어를 (예로서 Token Out) 하이(high)로 끌어올린다. 상기 토큰을 갖는 상기 이니시에이터 서브시스템은(예로서 지난 토큰을 사용한 이니시에이터 서브시스템) 상기 링 내에서 다음 이니시에이터 서브시스템 상으로 상기 토큰을 통과시키고 차례로 그것이 상기 싸이클을 사용할 수 있다면 상기 토큰을 전유할 수 있다. 그렇지 않다면 상기 토큰은 특정 이니시에이터 서브시스템이 상기 다음 토큰 링 조정을 위한 시작 포인트로서 상기 토큰을 유지하고 있는 경우에 있어서 상기 토큰이 할당될 때까지 돌아서 통과된다. 어느 이니시에이터 서브시스템이 상기 토큰을 사용하지 않는다면, 상기 토큰을 초기에 갖는 상기 이니시에이터로 되돌아간다. 제1레벨과 제2레벨등 모든 패킷 조정은 동일 싸이클에서 발생한다. 이 제2레벨의 조정은 보장된 대역폭을 제공하지 않고 단지 보장된 엑세스를 제공한다. 상기 제2레벨의 조정을 사용하여, 어느 이니시에이터 시스템은 다른 이니시에이터가 또한 상기 버스로의 엑세스를 원한다면 일 이상의 패킷을 위해 명령할 수 없다.
도 4a는 제2 레벨의 조정의 일 실시예의 상태를 예시하며 도4b의 테이블은 상기 상태들의 간단한 설명을 나타낸다. 이 실시예에서 상기 링 주위의 전파 지연은 두 개의 수행 측면에서 최소화된다. 첫째, 상기 토큰을 발생시키는 인터페이스 모듈은 현재 상태의 기능으로서 매우 순수하게 행한다. 더욱이, 상기 방법을 따른 상기 인터페이스 모듈은 현재 상태의 기능으로서 상기 토큰을 통과 시키거나 또는 완전히 통과시키지 않는 것을 결정한다. 이들 특색들은 가능한한 빨리 상기 링안으로 상기 토큰을 얻고 얼마나 오랫동안 상기 토큰이 중간 인터페이스 모듈을 통해 전파되는 지에 있어서, 어느 지연 유도 불확실성을 방지한다.
상기 상태들에 대한 입력은 ReqToken, Tokenin, Assert, Reset_n, First이고 그리고 출력은 TokenOut, Grant Token, 그리고 다음 상태이다. ReqToken은 인터페이스가 상기 토큰을 요청하는 것을 지시하고, TokenIn은 상기 토큰이 이 이니시에이터에 대해 이용 가능함을 w시하며, Assert는 기설정된 이니시에이터가 그것의 패킷을 사용할 것을 지시하기 위해 사용되며, reset_n은 리셋 상태안으로 상기 시스템을 만들기 위해 사용되며, Token Out는 상기 링 내에서 다음 이니시에이터로 상기 토큰을 통과시키기 위해 사용되고, GrantToken은 요청을 발행하기 위하여 준비해야만 하는 상기 이니시에이터를 말하기 위해 사용되고 Next State는 상기 이니시에이터 서브시스템의 특정 인터페이스 모듈의 다음 상태를 지시한다.
상태 NOTOKEN에서, 상기 서브시스템의 인터페이스 모듈은 상기 토큰을 원하지도 갖지도 않는다. 그래서, 상기 TokenIn상에 도착하면 그것은 즉시 TokenOut를 경유하여 통과된다. 상기 상태 머신은 상기 토큰을 요청하는 상기 인터페이스 모듈을 샘플할 때 NOTOKEN을 남긴다. 상태 WANTTOKEN에서, 상기 인터페이스 모듈은 상기 토큰을 갖지 않으나 원한다. 그러므로 TokenIn 상에 상기 토큰이 도달할 때 상기 모듈이 그것을 잡을 수 있도록 상기 링을 깬다. 상기 토큰이 도달할 때 어느 기 할당된 슬롯 소유자가 Assert를 구동하지 않는다면 상기 인터페이스 모듈은 그것을 사용할 것이다(Grant Token을 통지하는 것에 의해). 만약 Assert가 액티브 하다면, 그때 상기 모듈은 그것이 사용할 기회를 갖을 때까지 상기 토큰을 보관할 것이다. 그래서 상기 상태 머신(machine)은 HAVETOKEN으로 천이한다.
상태 HAVETOKEN에서, 상기 모듈은 토큰을 갖으며 그것을 사용할 기회를 기다린다. 어느 모듈이 Assert를 일으키지 않게 되자마자 상기 슬롯은 이용 가능 하게 되고 이 모듈은 그것을 사용할 것이다(GrantToken)을 통지하는 것에 의해). 이것이 발생하거나 또는 상기 인터페이스 모듈이 ReqToken(추측컨데 그것의 요청은 기설정된 슬롯을 거쳐 만족되기 때문에)를 주장하는 것을 멈춘다면, 상기 상태 머신(machine)은 GENTOKEN으로 천이한다. 이러한 모듈은 토큰을 갖기 때문에 TokenIn line(예로서, 그것은 제로이어야 한다)에 주의를 기울일 필요가 없다. 상태 GENTOKEN에 있어서, 상기 모듈은 상기 조정 싸이클의 시작에서 링을 돌아 상기 토큰을 시작한다. 상기 모듈은 어느 모듈도 WANTTOKEN(예로서 액티브하게 토큰을 요청한다)에 있지 않은 상태에서 상기 링을 깨야 한다. 상기 토큰이 이 모듈되돌아와 상기 링을 돌아 모든 경로를 만든다면, 상기 인터페이스 모듈은 GrantToken을 수신하고 상기 장치가 상기 토큰을 요청했는지에 대해 독립적으로 명령을 시작할 것이 요구된다.
상기 상태 머신이 리셋(Reset_n은 로우로 구동된다)내에 있다면, 상기 시작 상태는 제1로 라벨된(labeled) 것을 제외한 모든 인터페이스 모듈들에 대해 NOTOKEN으로 셋트된다. 상기 제1 장치는 그것이 리셋에서 토큰을 가지고 시작하고 그래서 어느 시간에서나 상기 링내에 정확히 하나의 토큰이 있다는 것을 보장한다는 측면에서 독특하다. 더욱이, 본 실시예에 있어서 ReqToken 컬럼(column)(리셋 동안과는 다른) 내의 돈 케어(don't care) 엔트리들(entries)은 정확하게 한 장치가 항상 명령을 시작하는 것을 보장한다는 것이 주목되어야 한다. 상기 조정의 끝에서 토큰을 가지고 끝나는 상기 인터페이스 모듈은 어느 기 할당된 슬롯 소유자도 상기 Assert 라인을 하이로 구동하지 않는다면, 명령을 시작하여야 한다.
위의 설명된 할당 방법을 사용하여, 다양한 요구들을 갖는 다양한 고객들이 지지될 수 있다. 동일한 시스템이 특정 고객 필요를 맞추기 위하여 프로그램될 수 있다. 그래서, 기 할당된 고객들과 패킷들의 적정 부분은 시스템 필요에 따라 프로그램될 수 있다.
상기 버스에 걸쳐 발행된 최소 세트의 명령들은 리드 명령과 라이트 명령이다. 상기 통신 방법들은 상기 버스로 결합된 상기 서브시스템들을 제어하기 위하여 특별히 설계된 제어 명령들을 포함하여 자연적으로 다른 명령들을 지지하기 위하여 연장될 수 있다. 도 5는 본 발명에 따라 동작하는 그러한 완전 파이프 라인된 고정 잠재 시간을 거친 예시적 처리들의 타이밍 다이어그램을 보여준다. 각 처리는 조정 부분, 명령/어드레스 부분, 데이터/어드레스 부분, 그리고 데이터/응답 부분으로 이루어진다. 상기 버스는 고정 잠재 시간 버스이기 때문에 두 처리들 즉 요청과 응답 사이에는 고정된 지연(클럭 싸이클의 수)이 있다. 도5에서, 조정과 명령/어드레스 사이의 상기 잠재 시간은 한 싸이클로, 명령/어드레스와 데이터 사이의 잠재 시간은 두 개의 2싸이클들로, 그리고 패킷(조정 장치)은 하나의 버스 싸이클로 가정된다. 싸이클1에서, 이니시에이터 서브시스템I-D는 그것의 사전 할당된 패킷을 사용할 권리를 주장한다. 그래서 싸이클 시간 슬롯2에서, I-D는 타겟으로의 버스상에 명령과 어드레스를 발행한다. 설명을 위해, 상기 명령은 Command1로 라벨된다. 모든 타겟 인터페이스 모듈들은 처리가 그들 고객 서브시스템으로 어드레스되는지를 결정하기 위한 어드레스 디코딩 논리를 포함한다. 슬롯4에서, 상기 어드레스된 타겟 인터페이스 모듈은 상기 요청 명령에 응답한다. 리드 요청 명령에 있어서, 상기 리드 데이터는 상기 타겟으로부터 이니시에이터로 보내진다. 라이트 요청 명령에 있어서, 라이트되기 위한 데이터는 이니시에이터로부터 타겟으로 싸이클 4에서 보내진다.
상기 데이터 응답 라인들에 걸쳐 타겟으로부터 싸이클 4에서 타겟에 의해 구동된 응답 신호는 상기 처리가 성공적인지 아닌지를 지시한다. 일실시예에서, 4개의 가능한 응답들 "유효", "비지(busy)", "재시도", 그리고 "무응답"이 있다. 상기 "유효" 응답은 상기 처리가 성공적인지를 지시한다. 상기 "비지" 응답은 상기 타겟 모듈이 상기 명령에 대해 응답할 수 있는지를 지시한다. 상기 "재시도" 응답은 단지 리드 명령을 위해 허용되고, 상기 타겟이 상기 명령을 만족시키기 위하여 시도하는 중이나 상기 고정 버스 잠재 시간 내에서 그렇게 할 수 없는 것을 지시한다. " 무 응답"의 경우에 있어서, 상기 명령을 가지고 제공된 어드레스는 어느 타겟과 매치되지 않는다. 그러므로 어느 타겟도 응답하지 않는다.
도 5를 연속으로 참조하여, 제2 조정 싸이클은 클럭 싸이클2에서 시작하고 또 다른 처리는 싸이클 3에서 발행된다. 이 상황에서, 어느 기할당된 이니시에이터도 상기 버스 싸이클을 사용할 권리를 주장하지 않았다. 그래서 싸이클 2에서 상기 토큰을 가지고 종료된 이니시에이터 서브시스템I-E는 싸이클 3에서 명령 및 어드레스를 발행한다. 상기 명령과 결합된 상기 데이터와 응답 신호들은 싸이클 5에서의 내려진 전송이고 후의 버스 싸이클 잠재 시간이다.
이미 주목된 바와 같이, 바람직하게 상기 인터페이스 모듈은 패킷들의 다이내믹 재할당을 위해 제공하기 위하여 프로그래머블하다. 일실시예에서, 각 서브시스템용 인터페이스 모듈들은 상기 모듈들과 버스의 형상 데이터를 저장하기 위하여 한 셋트의 형상 레지스터들(240, 도 2)을 포함한다.
바람직하게, 상기 형상 레지스터들은 상기 대응 서브시스템으로 기 할당된 패킷들을 인식하는 데이터를 저장한다. 상기 형상 레지스터들은 상기 시스템 어드레스 스페이스(space)내의 어드레스들을 가지므로, 이용 가능한 버스 처리들을 사용하여 읽혀지거나 라이트(또는 기록)될 수 있다. 바람직하게, 두 세트의 형상 레지스터들, 완충된(buffered) 그리고 완충되지 않은 형상 레지스터들이 있다. 완충되지 않은 레지스터로 라이트된 데이터는 상기 레지스터로의 라이트 동작후에 즉시 시스템의 나머지 및 인터페이스 모듈에 보여진다. 완충된 레지스터로 라이트된 데이터는 홀딩 레지스터 위치내에 저장되고 단지 데이터가 상기 홀딩 레지스터로부터 상기 형상 레지스터로 전송된 후에 보여질 수 있다. 상기 전송은 상기 버스에 걸쳐 방송 명령을 통해 시작된다. 방송 명령은 모든 모듈들에 동시에 영향을 미치는 명령이다. 그래서, 완충된 레지스터들은 전형적으로 상기 새로운 데이터가 시스템의 나머지 부분에 의해 보여지는 것이 허용될 수 있기 전에 동시에 여러 인터페이스 모듈들을 갱신하는 것이 바람직 할 때 사용된다.
완충된 레지스터들의 사용의 한 예는 시스템에서 어드레스 맵의 할당이다. 각 타겟 인터페이스 또는 모듈은 어느 타겟으로 상기 타겟이 응답할것인지를 상술하는 국부적으로 저장된 마스크 및 매치 데이터 값을 갖는다. 버스상의 어드레스는 매치 필드와 비교되고 그 결과는 마스크된다. 상기 마스크된 결과내의 모든 비트가 제로이면, 이 특정 인터페이스 모듈이 어드레스 된다. 상기 마스크/매치 데이터는 형상 레지스터에 저장되고 정규 버스 명령들에 의해 라이트(write)될 수 있다. 시스템의 적절한 동작은 타겟 어드레스 영역이 상기 시스템내에서 유일하게 할당되어야 하는 것을 요구한다. 예로서 어드레스 변화가 수행되고자 한다면 즉, 어드레스들의 스와핑(swapping)이 수행되고자 한다면 새로운 할당들이 영향 받은 모든 인터페이스 모듈들 내에서 동시에 발생하여야 한다. 그렇지 않으면, 어드레스 스페이스들을 중첩하는 것이 하나의 어드레스 맵으로부터 다른 하나로의 천이 중에 존재할 수 있다.
위에서 주목된 바와 같이, 발명은 완충된 또는 완충되지 않은 형상 레지스터들로 제한되지 않는다. 더욱이, 형상 레지스터들내 데이터의 일부 또는 아무것도 시스템의 수명중에 변화를 필요로 한다면, 데이터의 일부 또는 모두는 롬(ROM:read only memory)내에 저장될 수 있다. 롬은 전형적으로 보다 적은 다이(die) 영역을 요구하며 부적절한 시스템 형상을 야기하는 형상 위치들로 원하지 않은 라이트들(또는 기록들)을 방지한다. 바람직하게, 전형적인 시스템은 완충된 형상 레지스터들, 완충되지 않은 형상 레지스터들, 그리고 롬의 조합을 갖는 인터페이스 모듈들을 포함한다. 상기 형상 레지스터들 내에 포함된 정보는 이니시에이터 서브 시스템으로 기 할당된 패킷들에 관한 데이터, 잠재 시간, 요청 어드레스 매칭을 위한 목적용 타겟의 결합된 어드레스 장치와 인터페이스 모듈 사이의 통신 주파수로 구성된다.
위의 중요한 특징은 상기 형상 데이터가 상기 레지스터들이 상기 시스템 어드레스 스페이스의 부분이므로 정상 리드 및 라이트 명령들을 사용한 시스템의 실시간 동작 중에 라이트될 수 있다는 사실이다. 이것은 시스템 설계자가 단순한 소프트웨어를 통해 상기 통신 시스템의 많은 중요한 부분을 바꾸고 또는 심지어 롬내에 저장된 기 계산된 명령을 바꾸도록 허용한다는 것이다.
선행 기술에 걸쳐 본 발명에서의 중요하고 독특한 향상은 상기 버스 잠재 시간이 시스템의 초기화 단계에서나 또는 시스템의 동작 시간 중에 프로그래머블 하다는 것이다. 적절한 실시예에서, 상기 잠재 시간은 상기 통신 버스에 걸쳐 프로그래머블하다. 상기 통신 버스의 완전히 파이프 라인된 특성 때문에 그러한 동작은 방송 명령을 요구하며, 그래서 파이프라인 깊이는 모든 인터페이스 모듈에서 동시에 변경된다. 낮은 잠재 시간 응답들이 상기 시스템에 중요할 때(메모리로의 엑세스와 같은), 낮은 잠재 시간은 인터페이스 모듈들의 적절한 형상 레지스터들로 새로운 잠재 시간을 라이트 하는 것에 의해 통신 시스템 안으로 프로그램될 수 있다. 반면에, 상기 버스에 걸친 대부분의 중요한 통신들이 긴 잠재 시간 서브시스템들(매우 빠르게 응답할 수 없는 시스템들) 사이에 있을 때, 상기 시스템 잠재 시간은 보다 높게 세트될 수 있다. 잠재 시간이 정규 버스 처리에 비교할만한 속도에서 프로그램될 수 있다는 사실은 선행 기술에 걸쳐 중요한 개선이다.
잠재 시간을 변경할 수 있을 뿐만 아니라, 대역폭 할당은 상기 적절한 형상 레지스터들을 갱신하는 동일 방법을 사용하여 변경될 수 있다. 초기화 중 또는 상기 시스템의 러닝 시간(또는 동작 시간) 중에 상기 밴드 폭 할당이 통신 버스에 걸친 처리를 라이트 또는 정상 리드에 견줄만한 속도들로 프로그램될 수 있다는 사실은 상기 선행 자료에 비해 중요한 개선점을 갖는다.
프로그램블 밴드폭 할당 및 프로그램블 버스 대기의 결합은 확실한 이점들을 제공하는데; 아주 상세하게는 시스템 디자이너는 이니시에이터들 및 타겟들의 특수한 구조에 대한 시스템 성능을 최적화할 수 있다. 더욱이 상기 최적화는 다양한 조건들과 밴드폭 할당의 구성들을 유지시킬 수 있고, 대기는 시스템 동작 동안에 업데이트시킬 수 있다. 게다가 순차적으로 기술된 바와 같이, 추가 유연성 및 배치력은 타겟 및 통신하는 인터페이스 모듈에 주파수를 프로그램하기 위해 이니시에터 장치를 인에이블함에 의해 예측된다. 이것은 특히 상기 이니시에이터 및/또는 타겟 고객의 서브시스템 타이밍 요구조건을 바꾸어 적용해보는 것도 바람직하다.
오히려 상기 버스 기능력은 대역 외(out-of-band) 통신을 관리하는 일련의 시스템 레벨 제어 와이어들(도 1의 플래그들을 참조)을 부가함에 의해 추가로 향상된다. 대역 외(out-of-band) 신호들은 어드레스/데이터-오리엔트되고 파이프라인된 버스 모델을 따르지 않는다. 대표적인 예는 장치 상태 신호들, 인터럽트 신호 및 핸드셰이크 신호들을 포함한다. 또한 본 실시예에서, 상기 와이어들은 아래와 같은 방식으로 기본 읽기 동작의 수행을 향상하기 위해 사용된다.
예를들면 도 5에 설명된 바와 같은 시스템 동작에서 상기 타켓 서브시스템은 버스 대기 요구사항에 응하기 위해 바로 읽기 요구 명령에 응답할 수 있고, "Valid 응답은 응답버스를 통하여 전송된다. 상기 타켓 서브시스템이 버스 대기 요구사항에 응하기 위해 바로 응답하지 못하는 경우에, "Retry" 응답이 전송된다. 소망하는 데이터가 유용할 때 예상하기 위한 이니시에이터를 요구하는 것 보다 오히려 추가로 결과물들이 버스 사이클을 소모하거나 대기 명령을 증가시키며, 타켓 인터페이스 모듈은 대역 외(out-of-band) 신호들(또한 이점에서 플래그들을 참조)중 하나를 이용한다. 상기 타켓 인터페이스 모듈은 일단 상기 타겟 인터페이스 모듈이 데이터를 얻으면 상기 이니시에터에서 정확한 지시 백(indication back)을 제공하기 위해서 플래그들을 이용한다.
도 6은 상기 대역외 신호 라인들을 사용하는 재시도 과정을 예시한다. 고객이 통신 버스의 대기등에 응하지 못할 때 상기 타켓 인터페이스 모듈은 "Retry"를 지시하기 위해 상기 이니시에이터에 응답 패킷을 등록한다. 동시에 플래그 와이어 신호의 비트수 슬롯(slot)이 상기 FlagNum 라인들(단순화 목적을 위한 도 1의 플래그 라인들에 대한 부분)에 전송된다. 이것은 모니터링하고 재시도시 표시에 대한 프래그를 확인할 이니시에터 서브시스템에 표시한다.
도 6의 실시예에서, 읽기 요구 명령이 사이클 1로 전송된다. 상기 버스 대기 명령은 두 개의 사이클이므로 상기 데이터는 사이클 3으로 상기 타켓 인터페이스 모듈에 의해 리턴될 것이다. 그러나 상기 데이터는 아직 이용불가 하므로 상기 타겟은 응답 와이어들에 재시도 응답을 리턴하며 이는 예제 7의 상기 FlagNum 버스상에 다수개의 프래그 와이어를 리턴한다. 상기 타켓 인터페이스 모듈이 상기 데이터를 고객(예를들면 결합된 장치)에서 수신할 때, 상기 데이터를 로칼 메모리에 저장하고 표시된 플래그 와이어를 세게 구동하며, 바로 이용가능한 데이터가 이니시에이터에 표시된다. 도 6에서, 사이클 4이후, 이용가능한 데이터가 플래그 7상에 표시된다. 이때 이니시에이터 서브시스템은 도 3에서 사이클 6상에 발생한 응답 명령을 바로 재등록할 수 있다. 상기 타겟 인터페이스 모듈이 응답 명령(도 3의 사이클 8)을 만족할 때 이것이 응답 명령과 연합된 플래그라고 단언할 수 있다.
오히려 상기 통신 시스템은 상이한 타겟 인터페이스 모듈들에 할당된 다수개의 플래그들을 포함한다. 플래그 와이어들은 모듈간에 공유되고 또 특정 모듈에 바처질 수 있다. 본 실시예에서 상기 플래그들의 할당은 배치 레지스터들에 저장되고 따라서 이 할당은 통신 버스를 통해서 그리고 정상 버스 처리들에 필적할만한 속도로 프래그램되어진다.
상기 플래그 와이어들은 다양한 목적들로 사용될 수 있다. 예를들면, 플래그 와이어들의 다른 이용은 핸드세이크 신호들과 인터럽트 신호들의 관리이다. 이들은 상기 인터페이스 모듈들 또는 서브시스템에서 특별한 상황을 나타내는 신호이다. 그러한 신호들의 실시예는 에러 신호들이거나 비지 상태(정지 요구를 보냄)를 나타내는 신호들이거나 준비상태(서브시스템이 승인 요구를 취하기 위해 준비함)를 나타내는 신호들이다. 이들 신호들은 본질적으로 대역 외(out-of-band) 신호들이고 플래그 와이어들을 이용하여 옮겨진다. 이 목적에 대하여 상기 플래그 와이어들은 유일하게 타켓 인터페이스 모듈들, 인터럽트 특정 목적 또는 핸드세이크 신호에 대한 그들 서브 시스템 고객들에 할당된다. 본 실시예에서 이 데이터 할당은 배치 레지스터에 저장되므로 시스템 변화에 응하여 동적으로 변경된다. 상기 동일 정보는 핸드셰이크 또는 인터럽트 목표에 대해 모니터에서 이니시에터가 플래그 와이어들을 인식하도록 이니시에이터 서브시스템에도 프로그램 된다. 주지된 바와 같이, 상기 버스와 서브시스템들간에 인터페이스 모듈들은 고객과 인터페이스 동안에 버스 프로토콜들을 실행하기 위한 로직을 포함한다. 게다가 상기 인터페이스는 상기 시스템 버스 클럭에서 서브시스템의 고객 클럭을 얻어내기 위한 추가 로직(도 2의 245)을 포함하는 것이 바람직하다. 상기 배치 레지스터들을 경유하는 상기 인터페이스 모듈은 매우 다른 시스템 특징들 및 실행 요구사항과 함께 많은 다른 시스템들을 재사용하는 시스템들을 인에이블하기 위한 프로그래밍능력 레벨을 제공한다. 상기 시스템 버스 클럭의 주파수는 시스템 요구사항에 의해 결정되고, 특히 상기 전체 대역폭은 요구된 시스템 수행을 만족하는 버스상에 요구된다. 고객의 고객 클럭 주파수는 상기 시스템 버스 클럭에 독립될 수 있고, 고객의 기능적인 요구와 관계된다. 따라서 상기 인터페이스 모듈들은 상기 시스템의 충격을 완화시키는(decoupling) 강력한 수단과 서브시스템 요구사항을 제공한다.
통상적인 고정-대기 버스 시스템에서 상기 유용한 대역폭 증가는 버스 및 모든 고객에 대한 동작 주파수의 증가를 요구한다. 왜냐하면 상기 고객들이 대기에 응하는 보다 적은 시간에 응답을 요구하기 때문이다. 본 발명의 시스템으로 상기 버스 대기(사이클들로 측정됨)는 버스 주파수가 증가됨으로써 증가될 수 있는데 거의 일관된 주파수들을 작동하기 위해 고객들이 허용한다. 왜냐하면 상기 전체 대기(시간에서)가 상관적으로 일정하게 머무르기 때문이다. 상기 디커플링 특징은 인터페이스 모듈과 고객 사이에서 비동기적인 연결로 확장된다.
주파수 디커플링에 대한 요구사항은 본질적으로 이러한 접근으로부터 이득이 될 수 있는 다양한 시스템들을 토대로 한다. 일례 시스템은 무선 개인 발신기이고, 낮은 수행과 함께 대기 수행 실시간 서브시스템들(상기 무선 발신기들을 실행하기 위한), 마이크로 제어기 코어와 같은 컴퓨터 추론된 서브시스템들, 메립된 메모리, 키패드 입력 및 액정표시장치(LCD) 출력을 요구한다. 상기 발신기에 대한 키 설계 목적은 확신한 통신과 저전압에서 가능한 많은 특징들(상기 마이크로제어기상에서 소프트웨어로 수행됨)을 제공하기 위한 것이다. 제2 전형적인 시스템은 디지털 위성 텔레비젼 방송을 수신하기 위한 세톱 박스이다. 상기 세톱 박스는 설계는 보다 많는 비트율 데이터 통신과 비디오/오디오 데이터 압축을 줄이기 위해 최상의 계산력을 요구하고, 떨어지는 프레임들을 피하기 위해 전체 시스템을 가로질러 수행을 보증한다. 제3 시스템은 비동기 전송 모드(ATM) 스위치이다. 적절한 상기 스위치 설계는 단지 수행 모니터에서 중앙처리장치를 필요로 하고 진단테스트(정상 동작은 공유된 내부 접속을 가로질러 동일한 시스템들 사이에서 스위칭 패킷들을 포함)를 제공한다. 대부분 회로에서 스위칭 사용법과 수행 보증서는 상기 ATM 스위치의 적절한 동작에 비판적이다.
지금 다양한 시스템에 대한 재사용 설계에 의해 나타난 기회들이 설명되었다. 주문형 비디오에 대한 무선 시스템은 개인 발신기에서 양방향 무선 서브시스템, 상기 ATM 스위치에서 ATM 패킷 구성 엔진, 그리고 상기 세톱 박스에서 비디오 압축 서브시스템들을 결합시킬 수 있다. 서브시스템의 결합은 빠른 집적화로 공동 이용할 필요가 없어, 비용효율적인 시스템들로 달성될 수 있다.
상기 내용에 포함되어 있음.

Claims (20)

  1. 다수개의 버스 사이클들, 재발생 프레임들내에 분배된 다수개의 버스 사이클들, 적어도 하나의 클럭 사이클을 구비하는 패킷들내에 각 프레임이 추가로 분배되는 동안 활동하는 동기 버스;
    상기 버스, 상기 적어도 하나의 이니시에이터 서브시스템에 예비 할당된 적어도 하나의 패킷을 갖도록 구성된 적어도 하나의 이니시에이터에 결합되고, 상기 이니시에이터 서브시스템은 상기 적어도 하나의 예비 할당된 패킷내에서 클럭 사이클 동안 리케스트를 보내도록 구성되고, 상기 리케스트는 타겟 서브시스템 및 타겟 서브시스템의 어드레스에 의해 수행되어질 동작을 확인하는 명령을 포함하는 적어도 하나의 이니시에이터 서브시스템; 그리고
    상기 어드레스가 타겟 서브시스템의 어드레스에 해당하면 리케스트 및 결정 어드레스를 수신하도록 구성되고, 상기 리케스트 어드레스가 타겟 서브시스템의 어드레스에 해당하면 상기 타겟 서브시스템이 제2 클럭 사이클상에 리케스트에 응답하도록 구성되며, 상기 제2 클럭 사이클이 상기 제1 클럭 사이클후 소정 개수의 사이클들을 발생하는 적어도 하나의 타켓 서브시스템을 포함하는 것을 특징으로 하는 컴퓨터 버스 시스템.
  2. 제 1 항에 있어서, 상기 적어도 하나의 이니시에이터는 다수개의 이니시에이터 서브시스템과 다수개의 상기 이니시에이터 서브시스템의 적어도 2개에서 그것에 예비 할당된 적어도 하나의 포켓들을 가지는 것을 특징으로 하는 컴퓨터 버스 시스템.
  3. 제 1 항에 있어서, 매 미리 배치된 패킷은 기껏해야 하나의 이니시에이터에 할당됨을 특징으로 하는 컴퓨터 버스 시스템.
  4. 제 1 항에 있어서, 이니시에이터 서브시스템에 관한 결정은 상기 제1 사이클 전에 발생하는 사이클동안 발생하는 상기 제1 사이클상에 버스에서 억세스 됨을 특징으로 하는 컴퓨터 버스 시스템.
  5. 제 4 항에 있어서, 상기 이니시에이터 서브시스템을 사용하지 않고 패킷이 이니시에이터 서브시스템에 예비 할당될 때 또는 패킷이 예비 할당되지 않을 때 상기 이니시에이터 서브시스템은 공평한 라운드 로빈 방식에 따라서 상기 포켓에 대한 억세스를 중재하는 것을 특징으로 하는 컴퓨터 버스 시스템.
  6. 제 1 항에 있어서, 상기 이니시에이터 서브시스템과 타겟 서브시스템은 배치 데이터를 만드는 어드레스 가능한 메모리를 구비하며, 상기 배치 데이터는 상기 소정 개수의 사이클들과 상기 예비 할당 포켓들을 제어하고, 상기 어드레스 가능한 메모리는 이니시에이터 서브시스템들과 타겟 서브시스템들간에 데이터를 전송하기 위해 사용된 것과 유사한 리케스트들에 의해 버스를 통해 억세스시킴을 특징으로 하는 컴퓨터 버스 시스템.
  7. 제 1 항에 있어서, 상기 소정 개수 사이클들은 버스를 통해 정상 처리에 필적할만한 속도에서 실시간 동작으로 소프트웨어로 프로그램 가능케 함을 특징으로 하는 컴퓨터 버스 시스템.
  8. 제 1 항에 있어서, 상기 이니시에이터 서브시스템에서 포켓들의 예비 할당은 버스를 통해 정상 처리에 필적할만한 속도에서 실시간 동작으로 소프트웨어로 프로그램 가능케 함을 특징으로 하는 컴퓨터 버스 시스템.
  9. 제 1 항에 있어서, 상기 버스는 한 세트의 플래그 와이어들을 포함하고, 각 플래그 와이어는 하나의 서브시스템에 할당되어 있고, 상기 플래그 와이어들은 상기 고객들과 상기 고객들의 어드레스 간격이나 시간 세그먼트들의 예비 할당도 아닌 관련되지 않는 상기 제어정보 간에 제어정보를 전송하기 위해 사용됨을 특징으로 하는 컴퓨터 버스 시스템.
  10. 제 9 항에 있어서, 상기 제어정보는 상기 고객들의 어드레스 간격이나 상기 패킷들의 할당도 아닌 관련되지 않는 정보임을 특징으로 하는 컴퓨터 버스 시스템.
  11. 제 9 항에 있어서, 상기 버스는 한 세트의 플래그 수 와이어들을 더 구비하며, 정보를 전달하는 적어도 하나의 플래그 와이들로 숫자를 표시함을 특징으로 하는 컴퓨터 버스 시스템.
  12. 제 11 항에 있어서, 상기 플래그 와이어들은 대기를 결정하도록 실시간으로 응답할 수 없는 트랜잭션들을 관리하기 위해 사용됨을 특징으로 하는 컴퓨터 버스 시스템.
  13. 제 12 항에 있어서, 상기 데이터가 상기 제2 사이클 상에 이니시에이터 서브시스템의 요구에서 타겟 서스시스템에 의해 리턴할 수 없으면, 상기 타겟 서브시스템은 상기 제2 사이클상에 상기 플래그 수 와이어들을 통해 다수개의 플래그 와이어를 전송하도록 구성되고;
    상기 타겟 서브시스템은 이용 가능한 데이터를 가지거나 상기 데이터가 당장 이용가능하다고 결정할 수 있을 때 상기 타겟 모듈은 상기 플래그 수 와이들상에 전송된 숫자에 해당하는 하나의 플래그 와이어에 신호임을 내세우기(assert) 위해 구성되며; 그리고
    상기 이니시에이터 서브시스템은 상기 플래그 와이어상에 트랜잭션과 상기 트랜잭션 재등록을 검출하기 위해 구성되고, 상기 타겟 서브시스템은 상기 리케스트와 상기 플래그 와이어상에 신호를 비-내세우기(de-assert)에 응답하도록 구성함을 특징으로 하는 컴퓨터 버스 시스템.
  14. 제 1 항에 있어서, 상기 서브시스템은 인터페이스 모듈 및 고객 모듈을 구비하며, 상기 고객 클럭은 상기 버스 클럭에 동기시켜 배치하고, 상기 고객 클럭은 버스 클럭으로부터 얻어지고 버스 클럭대 고객 클럭의 비율은 소프트웨어로 프로그램(여기서 상기 버스 클럭 주파수로부터 고객의 클럭 주파수를 디커플링(decoupling)함)하는 것을 특징으로 하는 컴퓨터 버스 시스템.
  15. 제 1 항에 있어서, 상기 서브시스템은 인터페이스 모듈과 상기 버스 클럭 주파수에 무관하도록 배열된 고객의 고객 모듈 클럭 주파수를 구비하며, 상기 인터페이스 모듈은 상기 버스 클럭신호에 상기 클럭 신호를 동기시키도록 배치된 로직을 구비함을 특징으로 하는 컴퓨터 버스 시스템.
  16. 제 15 항에 있어서, 상기 로직은 프로그램 가능한 대기회로를 구비함을 특징으로 하는 컴퓨터 버스 시스템.
  17. 리케스트는 적어도 명령과 타겟 어드레스를 구비하고, 제1 사이클은 이니시에이터에 예비 할당된 패킷 부분이고, 상기 패킷은 적어도 클럭 사이클, 재발생 프레임을 구비하는 다수개의 패킷들을 구비하여 제1 클럭상에 리케스트를 송출하는 단계;
    상기 제1 사이클에서 상기 리케스트와 어드레스가 상기 타겟의 어드레스 간격에 해당하면 상기 리케스트에 응답하는 적어도 한 개의 타겟 대해 어드레스된 한 개의 타겟을 수신하는 단계; 그리고
    제1 사이클상에 상기 리케스트에 응답하고 상기 제1 사이클후 소정 수 사이클들을 발생하는 단계를 구비함을 특징으로 하는 공유된 버스를 통해 고객간에 데이터를 전송하기 위한 방법.
  18. 제 17 항에 있어서, 사용되지 않거나 클럭-사이클이 어느 이니시에이터에 예비 할당되지 않고 클럭 사이클이 이니시에이터에 예비 할당될 때 상기 비사용된 클럭 사이클이 다른 이니시에이터에 할당되는 제2 레벨 중재를 수행하는 단계를 더 구비함을 특징으로 하는 공유된 버스를 통해 고객간에 데이터를 전송하기 위한 방법.
  19. 적어도 두 고객을 커플링하고, 적어도 하나의 이니시에이터를 구비하는 컴퓨터 버스 시스템에서;
    각 고객과 제1 어드레스 가능한 메모리를 정의하는 단계;
    각 고객, 상기 고객으로 사용된 배치 데이터를 포함하는 제2 어드레스 가능한 메모리를 정의하는 단계;
    상기 고객들에 상기 제1 메모리에 어드레스된 버스를 통해서 쓰기 명령들을 등록하여 상기 고객의 상기 제1 메모리에 새로운 배치 데이터를 라이팅하는 단계;
    상기 새로운 배치 데이터가 상기 고객들로 사용되는 상기 제1 메모리에 상기 홀딩 메모리로부터 전송된 배치 데이터의 결과로 모든 고객에 단일 명령을 등록하는 단계를 구비함을 특징으로 하는 시스템 레벨 파라메터들을 변경하기 위한 방법.
  20. 적어도 하나의 이니시에이터 고객과 적어도 하나의 타겟 고객을 결합하는 버스를 구비하는 컴퓨터 버스 시스템에서;
    상기 이니시에이터 고객에 적어도 하나의 패킷을 미리 할당하고, 상기 적어도 하나의 패킷이 재발생하는 프레임들내로 버스 사이클들을 분할함에 의해 결정되고, 각 프레임은 적어도 하나의 클럭 사이클을 구성하는 패킷들내로 분할하는 수단;
    제1 사이클상에 리케스트를 전송하고, 상기 제1 싸이클은 상기 이니시에이터에 미리 할당된 타임 세스먼트의 부분이고 상기 리케스트는 적어도 명령필드와 어드레스 필드를 구비하며, 상기 어드레스 필드는 타겟 고객을 확인하는 이니시에이터;
    상기 어드레스 필드에 위치한 어드레스를 수신하고 상기 타겟의 어드레스가 상 어드레스 필드에 위치한 어드레스에 상응하면 상기 타겟 고객은 제1 사이클동안 상기 리케스트를 수신하고 상기 제2 사이클상에 상기 리케스트에 응답하며, 상기 제2 사이클은 상기 제1 사이클후 수정 수 사이클들을 발생하는 타겟 고객으로 구성함을 특징으로 하는 단일 칩 컴퓨터 버스 시스템.
KR1020007002388A 1997-09-05 1998-07-22 실시간 다이내믹 대역폭 할당을 갖는 완전히 파이프라인된 고정 대기 통신 시스템 KR100572372B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/924,368 1997-09-05
US08/924,368 US5948089A (en) 1997-09-05 1997-09-05 Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation
PCT/US1998/015006 WO1999013405A1 (en) 1997-09-05 1998-07-22 A fully-pipelined fixed-latency communications system with a real-time dynamic bandwidth allocation

Publications (2)

Publication Number Publication Date
KR20010023734A true KR20010023734A (ko) 2001-03-26
KR100572372B1 KR100572372B1 (ko) 2006-04-19

Family

ID=25450136

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007002388A KR100572372B1 (ko) 1997-09-05 1998-07-22 실시간 다이내믹 대역폭 할당을 갖는 완전히 파이프라인된 고정 대기 통신 시스템

Country Status (9)

Country Link
US (1) US5948089A (ko)
EP (1) EP1027657B1 (ko)
JP (1) JP4259751B2 (ko)
KR (1) KR100572372B1 (ko)
CN (1) CN1150460C (ko)
AT (1) ATE310277T1 (ko)
AU (1) AU8576498A (ko)
DE (1) DE69832410T2 (ko)
WO (1) WO1999013405A1 (ko)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895510B1 (en) * 1997-11-24 2005-05-17 International Business Machines Corporation Mutual internet authentication between a client and server utilizing a dummy IOP request
US6138187A (en) * 1998-08-21 2000-10-24 International Business Machines Corporation Method and system for increasing spatial reuse in a serial storage architecture subsystem
US6182183B1 (en) 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6487606B1 (en) * 1998-11-18 2002-11-26 Nortel Networks Limited System and method for delivering messages through a totem communications system
TW388817B (en) * 1998-11-20 2000-05-01 Via Tech Inc Method reducing latency of writing data in memory
JP3953243B2 (ja) * 1998-12-29 2007-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション システム分析のためにバス・アービトレーション制御を使用する同期方法及び装置
US6449671B1 (en) * 1999-06-09 2002-09-10 Ati International Srl Method and apparatus for busing data elements
GB2352144A (en) * 1999-07-16 2001-01-17 Texas Instruments Ltd Data transfer between memory nodes
US6801985B1 (en) * 1999-09-10 2004-10-05 Texas Instruments Incorporated Data bus using synchronous fixed latency loop including read address and data busses and write address and data busses
DE19946716A1 (de) * 1999-09-29 2001-04-12 Infineon Technologies Ag Verfahren zum Betrieb eines Prozessorbusses
US6701397B1 (en) 2000-03-21 2004-03-02 International Business Machines Corporation Pre-arbitration request limiter for an integrated multi-master bus system
DE10022479B4 (de) * 2000-05-09 2004-04-08 Infineon Technologies Ag Anordnung zur Übertragung von Signalen zwischen einer Datenverarbeitungseinrichtung und einer Funktionseinheit in einem Hauptspeichersystem eines Computersystems
US7325221B1 (en) 2000-08-08 2008-01-29 Sonics, Incorporated Logic system with configurable interface
US6785284B1 (en) * 2000-08-10 2004-08-31 Infineon Technologies North America Corp. Interleavement for transport of frames and cells
US7165094B2 (en) * 2001-03-09 2007-01-16 Sonics, Inc. Communications system and method with non-blocking shared interface
US6785753B2 (en) * 2001-06-01 2004-08-31 Sonics, Inc. Method and apparatus for response modes in pipelined environment
US20030004699A1 (en) * 2001-06-04 2003-01-02 Choi Charles Y. Method and apparatus for evaluating an integrated circuit model
WO2003027869A2 (de) * 2001-09-26 2003-04-03 Siemens Aktiengesellschaft Verfahren zur arbitrierung eines zugriffs auf einen datenbus
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US7099922B2 (en) * 2002-01-23 2006-08-29 International Business Machines Corporation Method and system for simultaneous management of multiple tokens on a communication ring
US7315551B2 (en) * 2002-03-15 2008-01-01 Lockheed Martin Corporation Synchronous low voltage differential I/O buss
US7254603B2 (en) * 2002-05-03 2007-08-07 Sonics, Inc. On-chip inter-network performance optimization using configurable performance parameters
US7194566B2 (en) * 2002-05-03 2007-03-20 Sonics, Inc. Communication system and method with configurable posting points
US7356633B2 (en) * 2002-05-03 2008-04-08 Sonics, Inc. Composing on-chip interconnects with configurable interfaces
US7302691B2 (en) * 2002-05-10 2007-11-27 Sonics, Incorporated Scalable low bandwidth multicast handling in mixed core systems
US6880133B2 (en) * 2002-05-15 2005-04-12 Sonics, Inc. Method and apparatus for optimizing distributed multiplexed bus interconnects
JP4025593B2 (ja) * 2002-07-11 2007-12-19 富士通株式会社 放送型通信データ配送装置および放送型通信システム
US7426182B1 (en) * 2002-08-28 2008-09-16 Cisco Technology, Inc. Method of managing signal processing resources
EP1403773B1 (en) * 2002-09-30 2007-06-13 Matsushita Electric Industrial Co., Ltd. Resource management device
US7243264B2 (en) * 2002-11-01 2007-07-10 Sonics, Inc. Method and apparatus for error handling in networks
US6976106B2 (en) * 2002-11-01 2005-12-13 Sonics, Inc. Method and apparatus for speculative response arbitration to improve system latency
US7266786B2 (en) * 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US7603441B2 (en) * 2002-12-27 2009-10-13 Sonics, Inc. Method and apparatus for automatic configuration of multiple on-chip interconnects
US20040210696A1 (en) * 2003-04-18 2004-10-21 Meyer Michael J. Method and apparatus for round robin resource arbitration
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
US7139854B2 (en) * 2003-06-10 2006-11-21 Texas Instruments Incorporated Pipelining access to serialization tokens on a bus
US7194658B2 (en) * 2003-07-24 2007-03-20 Sonics, Inc. Various methods and apparatuses for interfacing of a protocol monitor to protocol checkers and functional checkers
US20050066097A1 (en) * 2003-09-04 2005-03-24 Matsushita Electric Industrial Co., Ltd. Resource management apparatus
US7296105B2 (en) * 2003-10-03 2007-11-13 Sonics, Inc. Method and apparatus for configuring an interconnect to implement arbitration
US8407433B2 (en) 2007-06-25 2013-03-26 Sonics, Inc. Interconnect implementing internal controls
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US20050175027A1 (en) * 2004-02-09 2005-08-11 Phonex Broadband Corporation System and method for requesting and granting access to a network channel
US7475168B2 (en) * 2004-03-11 2009-01-06 Sonics, Inc. Various methods and apparatus for width and burst conversion
US7543088B2 (en) * 2004-03-11 2009-06-02 Sonics, Inc. Various methods and apparatuses for width and burst conversion
JP4480427B2 (ja) * 2004-03-12 2010-06-16 パナソニック株式会社 リソース管理装置
US20050210329A1 (en) * 2004-03-18 2005-09-22 Newisys, Inc. Facilitating system diagnostic functionality through selective quiescing of system component sensor devices
US7747771B1 (en) 2004-06-30 2010-06-29 Oracle America, Inc. Register access protocol in a multihreaded multi-core processor
WO2006035344A1 (en) * 2004-09-28 2006-04-06 Koninklijke Philips Electronics N.V. Data processing system and method for memory arbitration
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
US7155554B2 (en) * 2004-11-02 2006-12-26 Sonics, Inc. Methods and apparatuses for generating a single request for block transactions over a communication fabric
US7277975B2 (en) * 2004-11-02 2007-10-02 Sonics, Inc. Methods and apparatuses for decoupling a request from one or more solicited responses
US8032676B2 (en) * 2004-11-02 2011-10-04 Sonics, Inc. Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device
JP4907166B2 (ja) * 2005-01-12 2012-03-28 パナソニック株式会社 リソース管理装置
US7739437B2 (en) 2005-01-31 2010-06-15 Panasonic Corporation Access arbiter and arbitrable condition verification device
JP4419868B2 (ja) * 2005-02-25 2010-02-24 ソニー株式会社 情報処理装置および方法、メモリ制御装置および方法、記録媒体、並びにプログラム
US20060225015A1 (en) * 2005-03-31 2006-10-05 Kamil Synek Various methods and apparatuses for flexible hierarchy grouping
US20070067531A1 (en) * 2005-08-22 2007-03-22 Pasi Kolinummi Multi-master interconnect arbitration with time division priority circulation and programmable bandwidth/latency allocation
US8307147B2 (en) * 2005-09-09 2012-11-06 Freescale Semiconductor, Inc. Interconnect and a method for designing an interconnect
US7694249B2 (en) * 2005-10-07 2010-04-06 Sonics, Inc. Various methods and apparatuses for estimating characteristics of an electronic system's design
JP4974508B2 (ja) * 2005-10-28 2012-07-11 キヤノン株式会社 バスマスタ装置、バス調停装置及びバス調停方法
US8788569B2 (en) 2006-03-31 2014-07-22 British Telecommunications Public Limited Company Server computer system running versions of an application simultaneously
WO2007113542A1 (en) * 2006-03-31 2007-10-11 British Telecommunications Public Limited Company Server computer component
US20080082708A1 (en) * 2006-09-29 2008-04-03 Kar Leong Wong Token hold off for chipset communication
US8020124B2 (en) * 2006-11-20 2011-09-13 Sonics, Inc. Various methods and apparatuses for cycle accurate C-models of components
US20080120082A1 (en) * 2006-11-20 2008-05-22 Herve Jacques Alexanian Transaction Co-Validation Across Abstraction Layers
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
CN101232425B (zh) * 2007-01-26 2010-04-21 京信通信系统(中国)有限公司 一种总线式分布控制系统主从站对端控制方法
GB2447690B (en) 2007-03-22 2011-06-08 Advanced Risc Mach Ltd A Data processing apparatus and method for performing multi-cycle arbitration
US7814243B2 (en) * 2007-06-01 2010-10-12 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
US8438320B2 (en) * 2007-06-25 2013-05-07 Sonics, Inc. Various methods and apparatus for address tiling and channel interleaving throughout the integrated system
US8108648B2 (en) * 2007-06-25 2012-01-31 Sonics, Inc. Various methods and apparatus for address tiling
US8229723B2 (en) * 2007-12-07 2012-07-24 Sonics, Inc. Performance software instrumentation and analysis for electronic design automation
TWI337517B (en) * 2008-03-04 2011-02-11 Inventec Corp Trace carrier
US8073820B2 (en) 2008-04-07 2011-12-06 Sonics, Inc. Method and system for a database to monitor and analyze performance of an electronic design
US8135878B1 (en) * 2008-04-07 2012-03-13 Tellabs San Jose Inc. Method and apparatus for improving throughput on a common bus
US8032329B2 (en) * 2008-09-04 2011-10-04 Sonics, Inc. Method and system to monitor, debug, and analyze performance of an electronic design
US8032678B2 (en) * 2008-11-05 2011-10-04 Mediatek Inc. Shared resource arbitration
JP5460156B2 (ja) * 2009-07-14 2014-04-02 キヤノン株式会社 データ処理装置
US9342471B2 (en) * 2010-01-29 2016-05-17 Mosys, Inc. High utilization multi-partitioned serial memory
US20110213949A1 (en) * 2010-03-01 2011-09-01 Sonics, Inc. Methods and apparatus for optimizing concurrency in multiple core systems
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US8601288B2 (en) 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
US8438306B2 (en) 2010-11-02 2013-05-07 Sonics, Inc. Apparatus and methods for on layer concurrency in an integrated circuit
US9405700B2 (en) 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US8514889B2 (en) 2011-08-26 2013-08-20 Sonics, Inc. Use of common data format to facilitate link width conversion in a router with flexible link widths
US8711867B2 (en) 2011-08-26 2014-04-29 Sonics, Inc. Credit flow control scheme in a router with flexible link widths utilizing minimal storage
US8798038B2 (en) 2011-08-26 2014-08-05 Sonics, Inc. Efficient header generation in packetized protocols for flexible system on chip architectures
US8868941B2 (en) 2011-09-19 2014-10-21 Sonics, Inc. Apparatus and methods for an interconnect power manager
US9910454B2 (en) 2012-06-07 2018-03-06 Sonics, Inc. Synchronizer with a timing closure enhancement
US9378023B2 (en) * 2012-06-13 2016-06-28 International Business Machines Corporation Cross-pipe serialization for multi-pipeline processor
US10212497B2 (en) * 2013-10-22 2019-02-19 Hewlett Packard Enterprise Development Lp Hybrid circuit-packet switch
US10152112B2 (en) 2015-06-10 2018-12-11 Sonics, Inc. Power manager with a power switch arbitrator
CN105760607B (zh) * 2016-02-22 2019-05-03 烽火通信科技股份有限公司 基于令牌桶的模拟总线有效带宽的仿真组件及方法
US10268614B2 (en) 2016-04-19 2019-04-23 Nokia Of America Corporation Method and apparatus for a segmented on-chip digital interface block
WO2018000420A1 (zh) 2016-07-01 2018-01-04 深圳市亚辉龙生物科技股份有限公司 化学发光增强剂及化学发光免疫检测试剂盒
US10326651B1 (en) 2017-04-18 2019-06-18 Amazon Technologies, Inc. Client configurable hardware logic and corresponding signature
EP3729739B1 (en) * 2017-12-24 2023-08-23 Technion Research & Development Foundation Limited Message authentication based on a physical location on a bus
US10496593B1 (en) * 2018-06-01 2019-12-03 Nxp Usa, Inc. Inter-processor communication and signaling system and method
US10496594B1 (en) 2018-06-01 2019-12-03 Nxp Usa, Inc. Inter-processor communication method for access latency between system-in-package (SIP) dies

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4199661A (en) * 1978-05-05 1980-04-22 Control Data Corporation Method and apparatus for eliminating conflicts on a communication channel
EP0077328A4 (en) * 1981-04-27 1985-06-26 Textron Inc BUS FOR SEVERAL MAIN PROCESSORS.
JPH0740252B2 (ja) * 1986-03-08 1995-05-01 株式会社日立製作所 マルチプロセツサシステム
JP2728760B2 (ja) * 1990-02-13 1998-03-18 株式会社東芝 データ伝送装置並びに受信データ処理方法
FR2663137B1 (fr) * 1990-06-12 1994-07-29 Sgs Thomson Microelectronics Dispositif electronique de connexion.
DE69118752T2 (de) * 1990-06-14 1996-09-19 Mitsubishi Electric Corp Verfahren und System zur Verwaltung von Adressen in einem Netzwerk
US5430848A (en) * 1992-08-14 1995-07-04 Loral Fairchild Corporation Distributed arbitration with programmable priorities
US5553245A (en) * 1994-05-11 1996-09-03 Macronix International Co., Ltd. Automatic configuration of multiple peripheral interface subsystems in a computer system
US5701420A (en) * 1994-07-20 1997-12-23 Intel Corporation Method for initializing an array of configurable components

Also Published As

Publication number Publication date
KR100572372B1 (ko) 2006-04-19
EP1027657A4 (en) 2003-04-09
ATE310277T1 (de) 2005-12-15
EP1027657B1 (en) 2005-11-16
JP2001516100A (ja) 2001-09-25
JP4259751B2 (ja) 2009-04-30
CN1301364A (zh) 2001-06-27
EP1027657A1 (en) 2000-08-16
DE69832410D1 (de) 2005-12-22
AU8576498A (en) 1999-03-29
WO1999013405A1 (en) 1999-03-18
CN1150460C (zh) 2004-05-19
DE69832410T2 (de) 2006-08-03
US5948089A (en) 1999-09-07

Similar Documents

Publication Publication Date Title
KR100572372B1 (ko) 실시간 다이내믹 대역폭 할당을 갖는 완전히 파이프라인된 고정 대기 통신 시스템
US6725313B1 (en) Communications system and method with multilevel connection identification
US6738845B1 (en) Bus architecture and shared bus arbitration method for a communication device
EP1861787B1 (en) Bus access arbitration scheme
US6070205A (en) High-speed processor system having bus arbitration mechanism
JP5036120B2 (ja) 非ブロック化共有インターフェイスを持つ通信システム及び方法
CN105068951B (zh) 一种具有非等时传输结构的片上系统总线
JP2005182818A (ja) オンチップバス
US6415369B1 (en) Shared devices and memory using split bus and time slot interface bus arbitration
CN116028413A (zh) 一种总线仲裁器、总线仲裁的方法、装置及介质
US6694385B1 (en) Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor
US8352695B2 (en) Selectable access rates in a memory and memory communication system
US6822976B1 (en) Method and apparatus for high throughput multiplexing of data
JP2001134542A (ja) 集合的メモリを共有する複数のプロセッサの配列
JP2004246862A (ja) リソース管理装置
JP2001216279A (ja) リアルタイム・システム用時分割多重メモリーを用いた、複数のプロセッサーのインターフェース及び、同期化及びアービトレーション方法
JP4260720B2 (ja) バス制御装置
CN101184022B (zh) 信用处理装置和流控制传输装置及其方法
US6862640B2 (en) Arbitration in local system for access to memory in a distant subsystem
JPH04349558A (ja) 選択可能な中央処理ユニット付きワークステーションのアーキテクチャー
RU2053546C1 (ru) Процессор ввода-вывода
JPH08171531A (ja) アクセス競合制御方法
JPH11272600A (ja) プロセッサシステムのデバイス接続方式
JPS58154057A (ja) 並列処理システム
JP2002073536A (ja) バス調停装置及びバス調停方法

Legal Events

Date Code Title Description
A201 Request for examination
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: 20130320

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140320

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee