KR19990044427A - 동적지연 트랜잭션 장치 - Google Patents

동적지연 트랜잭션 장치 Download PDF

Info

Publication number
KR19990044427A
KR19990044427A KR1019980701672A KR19980701672A KR19990044427A KR 19990044427 A KR19990044427 A KR 19990044427A KR 1019980701672 A KR1019980701672 A KR 1019980701672A KR 19980701672 A KR19980701672 A KR 19980701672A KR 19990044427 A KR19990044427 A KR 19990044427A
Authority
KR
South Korea
Prior art keywords
transaction
bus
processor
delay
cpu
Prior art date
Application number
KR1019980701672A
Other languages
English (en)
Other versions
KR100296633B1 (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 KR19990044427A publication Critical patent/KR19990044427A/ko
Application granted granted Critical
Publication of KR100296633B1 publication Critical patent/KR100296633B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

상기 버스상에 유출된 트랜잭션의 지연을 컴퓨터 시스템내의 프로세서에 의해 조절하는 장치 및 방법이 설명되어 있다. 버스에 결합된 버스 트랜잭션 리코더는 인코드된 신호 버스상에 유출된 트랜잭션으로부터 처리한다. 버스에 결합된 라인은 미결 트랜잭션 요구가 버스상에 유출될 때 지시신호를 보낸다. CPU 대기시간 타이머는 새로운 미결 트랜잭션이 버스상에 기다리고 있을 때 버스상에 현재의 트랜잭션을 타이밍한다. CPU 대기시간 타이머는 트랜잭션이 완료하는데 소정량의 시간보다 더 걸릴 때 종료신호를 출력한다. 트랜잭션 프로세서 유니트는 버스 트랜잭션 리코더, 라인 및 CPU 대기시간 타이머에 결합되어 있다. 트랜잭션 프로세서유니트는 미결 트랜잭션이 버스상에서 유출되기를 기다리고 있음을 지시하는 지시신호를 트랜잭션, 프로세서가 수신할 때, 버스상에 유출된 트랜잭션으로부터의 인코드된 신호가 버스상에 유출된 트랜잭션이 지연후보임을 지시할 때, 그리고 CPU 대기시간 타이머가 종료신호를 출력할 때 버스상에 유출된 트랜잭션을 지연시킨다.

Description

동적 지연 트랜잭션 장치
버스는 일반적으로 CPU 버스 또는 I/O 버스로 분류된다. 프로세서 버스는 짧고, 일반적으로 고속이고, 메모리-프로세서 대역을 최대화하기 위해 메모리 시스템에 연결되어 있다. 대조적으로 I/O버스는 길게 될 수 있고, I/O버스에 접속된 여러 유형의 디바이스를 가질 수 있고, 종종 I/O 버스에 접속된 디바이스의 데이터 대역에서 광대역을 가지고 있다. I/O 버스는 I/O 브리지 메모리 제어기를 통해서 메모리와 접속할 수 있거나 메모리에 접속하기 위해 CPU 버스를 사용할 수 있다.
CPU 버스상의 전형적인 트랜잭션은 몇몇 위상으로 분류될 수 있다. 버스상의 에이전트, 프로세서나 I/O 인터페이스는 버스를 요구함으로써 트랜잭션을 개시한다. 중재 위상시에, 버스 에이전트는 그 버스의 다음 오너를 결정하기 위해 그들중에서 중재한다. 에이전트가 중재 위상시 중재에 도달했다면, 에이전트는 버스상의 요구를 요구 위상에 위치시킨다. 트랜잭션의 에러 위상시, 모든 에이전트는 올바른 패리티에 대한 요구를 체크하고 가능성 있는 에러를 신호할 수 있다. 모든 프로세서는 그것의 캐시의 내용에 반하여 트랜잭션의 요구의 어드레스를 체크하고, 트랜잭션의 스누프(Snoop)위상시의 결과를 지시한다. 스누프 위상은 트랜잭션내의 포인트를 프로세서의 메모리 액세스의 글로벌 관측 포인트와 캐시데이터의 소유권이 결정되는 곳에 마크한다. 그러면, 그 트랜잭션은 트랜잭션의 완료에 관한 추가정보가 신호될 수 있는 곳에서 응답 신호로 완료한다. 트랜잭션의 유형에 따라, 개시된 요구, 개시된 응답, 또는 개시된 스누프 데이터 위상은 트랜잭션으로 표현될 수 있다. 다수의 트랜잭션이 동시에 CPU 버스상에 유출될 수 있지만, 하나의 트랜잭션만이 동시에 그 위상의 각각에 있을 수 있다. 트랜잭션이 긴주기 시간동안 위상중 임의의 하나를 차지할 때, 이것은 다음 트랜잭션을 CPU 버스상에서 운용하는 것으로부터 연기할 것이다. 데이터를 포함한 프로세서 트랜잭션이 외부버스로 이송될 때 연속적인 트랜잭션 경험 딜레이를 유출하도록 파이프라인된 단일 프로세서나 복수의 프로세서를 가진 컴퓨터 시스템이 실행된다. 예를 들어 프로세서 I/O 액세스 트랜잭션은 보통 완료하는데 몇몇 클록주기가 걸린다. I/O 액세스 트랜잭션은 플레쉬 메모리와 같은 I/O 버스상에서 데이터 기억 디바이스 또는 메모리와 같은 I/O 디바이스로의 액세스를 포함하고 있다. 시간신호의 주기가 I/O 디바이스에서 늘어나거나 데이터가 I/O 디바이스로부터 검색되는 동안에, 프로세서는 계속해서 데이터 버스 라인을 유지한다. 이것은 다른 트랜잭션이 데이터 버스라인을 사용하는 것과 대기 시간 문제를 발생시키는 것을 방지한다.
그러므로, 필요한 것은 프로세서 I/O 액세스 트랜잭션에 의해 CPU 버스에서 바틀(bottle) 네킹(necking) 함으로써 야기된 대기시간을 줄이는 장치와 방법이다.
본 발명은 CPU 버스상에서의 대기를 감소시키는 디바이스에 관한 것이고, 더 상세히는 컴퓨터 시스템에서 분할 또는 지연 트랜잭션을 조절하는 방법 및 장치에 관한 것이다.
본 발명은 아래의 상세한 설명과 본 발명에 예시된 요소와 여러 특성의 첨부도면으로 충분히 이해할 수 있을 것이다. 명세서와 도면은 본 발명을 특정 실시예에 제한하는 것을 의미하지 않는다. 명세서와 도면은 설명과 이해를 위해 제공된다.
도 1은 컴퓨터 시스템에서 실시된 본 발명의 실시예,
도 2는 본 발명에 따른 트랜잭션 지연 유니트의 일실시예의 블록도,
도 3은 본 발명에 따른 호스트 버스 트랜잭션 리코더의 일실시예,
도 4는 본 발명에 따른 트랜잭션 프로세서의 일실시예,
도 5는 본 발명에 따른 I/O 버스 인터페이스의 일실시예,
도 6a는 트랜잭션이 종래의 컴퓨터 시스템에서 유출되는 방법,
도 6b는 지연 트랜잭션상에 걸리는 패널티,
도 6c는 본 발명의 일실시예에 따라서 지연 트랜잭션이 트랜잭션 지연 유니트로 유출되는 방법,
도 7은 본 발명의 일실시예에 따라서 I/O 액세스 트랜잭션을 프로세서에서 동적으로 지연시키는 방법을 설명하는 흐름도.
프로세서에 의해 버스상에 유출된 트랜잭션의 지연을 조절하는 트랜잭션 지연 장치가 나타나 있다. 버스 트랜잭션 리코더는 인코드 신호를 버스상에 유출된 트랜잭션으로부터 처리하는 버스에 연결되어 있다. 트랜잭션 프로세서 유니트는 버스 트랜잭션 리코더와 버스에 연결되어 있다. 트랜잭션 프로세서 유니트가 미결 트랜잭션이 버스상에 유출되도록 대기하고 있다는 것을 지시하는 지시신호를 버스로부터 수신할 때, 그리고 버스상에 유출된 트랜잭션으로부터의 인코드 신호가 버스상에 유출된 트랜잭션이 지연후보라는 것을 지시할 때 트랜잭션 프로세서 유니트는 버스상에 유출된 트랜잭션을 지연시킨다.
현재의 트랜잭션의 지연을 조절하는 방법이 설명되어 있다. 먼저, 미결 트랜잭션이 존재하는지를 결정한다. 다음, 현재의 트랜잭션이 지연 가능하는지를 결정한다. 최종적으로, 미결 트랜잭션이 존재하고 현재의 트랜잭션이 지연가능하다면 현재의 트랜잭션을 지연시킨다.
신규성 트랜잭션 지연 유니트가 설명되어 있다. 다음의 상세한 설명에서 본 발명의 완전한 이해를 돕기 위해 특정하게 설명되어 있다. 그러나, 당업자들은 본 발명이 특정하게 설명되지 않아도 실행될 수 있다는 것을 이해할 수 있을 것이다. 다른 경우에, 공지된 방법, 과정, 부품 및 회로는 본 발명을 모호하지 않게 하기 위해서 설명되지 않았다.
도 1은 본 발명의 일실시예의 컴퓨터 시스템을 블록도 형태로 설명하고 있다. 이 컴퓨터 시스템은 디지털 데이터를 처리하는 프로세서(101)로 구성되어 있다. 프로세서(101)는 복합명령세트계산(CISC) 마이크로프로세서, 감소된 명령 세트 계산(RISC) 마이크로프로세서, 매우 긴 명령워드(LIW) 마이크로프로세서, 또는 다른 프로세서 디바이스일수 있다. 도 1은 본 발명에서 사용하는 단일 프로세서 컴퓨터 시스템의 한예를 도시하고 있다. 그러나, 본 발명은 복수의 프로세서를 가진 컴퓨터 시스템에서 실행될 수 있다는 것을 알고 있다. 프로세서(101)는 컴퓨터 시스템내의 다른 부품과 프로세서(101) 사이에 신호를 전송하는 CPU 버스(110)에 연결되어 있다. 메모리(113)는 CPU 버스(110)에 연결되어 있고, 동적 임의 접근 메모리(DRAM) 디바이스, 정적 임의 접근 메모리(SRAM)디바이스, 또는 다른 메모리 디바이스로 구성되어 있다. 메모리(113)는 프로세서(101)에 의한 실행시에, 정보 또는 다른 중간 데이터를 저장한다. 브리지 메모리 제어기(111)는 CPU버스(110)와 메모리(113)에 연결되어 있다. 브리지 메모리 제어기(111)는 컴퓨터 시스템내의 다른 부품과 프로세서(101), 메모리(113) 사이의 데이터 소통량을 조정하고, 이 부품으로 부터의 신호를 고속 I/O 버스(120)에 브리지한다.
I/O 버스(120)는 높은 데이터 처리속도로 동작하는 주변장치를 지원한다. 버스(120)는 단일 버스 또는 복수의 버스 조합일 수 있다. 예를 들어, 버스(120)는 주변 부품 내부접속(PCI)버스, 퍼스널 컴퓨터 메모리 카드 인터네셔날 결합(PCMCIA)버스, VL버스 또는 다른 버스로 구성될 수 있다. 버스(120)는 컴퓨터 시스템내의 부품 사이에 통신연결로를 제공한다. 네트워크 제어기(121)는 컴퓨터의 네트워크를 서로 연결하고, 장치사이에 통신을 제공한다. 디스플레이 디바이스 제어기(122)는 고속 I/O 버스(120)에 연결되어 있다. 디스플레이 디바이스 제어기(122)는 컴퓨터 시스템에 디스플레이 디바이스를 연결시키고, 디스플레이 디바이스와 컴퓨터 시스템 사이에서 인터페이스로서 작동한다. 디스플레이 디바이스 제어기(122)는 단색 디스플레이 접합기(MDA) 카드, 컬러 그래픽 접합기(CGA)카드, 고화질 그래픽 접합기(EGA)카드, 다색 그래픽 접합기(MCGA)카드, 비디오 그래픽 어레이(VGA)카드, 확장 그래픽 어레이(XGA)카드 또는 다른 디스플레이 디바이스 제어기가 될 수 있다. 그 디스플레이 디바이스는 텔레비젼 세트, 컴퓨터 모니터, 평면 디스플레이 또는 다른 디스플레이 디바이스가 될 수 있다. 그 디스플레이 디바이스 는 프로세서(101)에서 디스플레이 디바이스 제어기(122)까지 정보와 데이터를 수신하고, 컴퓨터 시스템의 사용자에게 정보와 데이터를 디스플레이한다.
I/O 버스(130)는 더 낮은 처리량으로 작동하는 주변장치사이에 정보를 전달하는데 사용된다. I/O 버스(130)는 단일 버스가 되거나 복수버스의 결합체가 될 수 있다. 예를 들어, 버스(130)는 공업 표준 구조(ISA)버스, 확대공업표준구조(EISA)버스, 또는 마이크로 채널구조(MCA)버스로 구성될 수 있다. 버스(130)는 컴퓨터 시스템내의 부품사이에 통신연결로를 제공한다. 키보드 인터페이스(132)는 키보드 제어기 또는 다른 키보드 인터페이스가 될 수 있다. 키보드 인터페이스(132)는 전용 디바이스가 되거나 버스제어기나 다른 제어기와 같은 다른 디바이스내에 내장될 수 있다. 키보드 인터페이스(132)는 키보드를 컴퓨터 시스템에 결합시키고, 키보드에서 컴퓨터 시스템으로 신호를 전송한다. 대용량 기억 디바이스(131)는 하드 디스크 디바이스, 플로피 디스크 디바이스, CD-ROM 디바이스, 플레쉬 메모리 디바이스, 또는 다른 대용량 기억 디바이스가 될 수 있다. 사운드의 기록과 재생을 대응시키도록 작동하는 오디오 제어기(133)는 I/O 버스(130)에 또한 결합되어 있다. 버스브리지(123)는 버스(120)를 버스(130)에 결합시킨다. 버스 브리지(123)는 버스(120, 130)사이에 신호를 브리지하기 위해 번역기로 구성되어 있다.
본 발명의 일실시예에서, 브리지 메모리 제어기(111)는 트랜잭션 지연 유니트(112)로 구성되어 있다. 트랜잭션 지연 유니트(112)는 미결 트랜잭션이 유출되기를 대기하고 있을 때, 완료하는데 소정된 시간이상 걸리는 현재의 트랜잭션을 지연시키도록 작동한다. 트랜잭션 지연 유니트(112)는 현재의 트랜잭션이 분할 트랜잭션의 성능에 의해 지연되었음을 프로세서(101)에 지시하는 작동을 한다. 지연 또는 분할 트랜잭션은 복수의 부품이 동시에 CPU 버스(110) 상에서 통신하고자 할 때 CPU 버스(110)의 효과적인 버스 대역을 증가시킨다. 본 발명의 일실시예에서 복수의 부품은 CPU 버스(110)상에서 통신하고자 하는 복수의 프로세서가 될 수 있다. 트랜잭션이 지연될 때, 그 트랜잭션은 기록의 경우에, 어드레스, 제어정보 및 데이터를 포함하고 있는 요구 트랜잭션과 트랜잭션의 완료를 신호하는 프로세서에 메시지를 포함하고 있는 응답 트랜잭션으로 분류된다. 그 응답 메시지는 트랜잭션이 성공적이라면, 그 트랜잭션이 완료된다는 메시지나 트랜잭션이 성공적이지 않다면, 트랜잭션을 재시도하라는 메시지가 될 수 있다. 응답 트랜잭션은 본래 지연된 CPU 버스 트랜잭션을 완료하기 위해서 타겟에 의해 전형적으로 발생된다. 판독의 경우에, 응답 트랜잭션은 요구된 데이터를 또한 포함하고 있다. 트랜잭션의 각각은 프로세서(101)가 트랜잭션을 확인하는 순서로 태그(tag)된다. 요구 트랜잭션 다음에, CPU 버스(110)가 해제된다. 이것은 요구 트랜잭션이 I/O 디바이스로 전파되는 주기동안에 CPU 버스(110)를 위로 개방하고 다른 요구자가 CPU 버스(110)를 사용할 수 있게 한다. 전형적으로 CPU 버스(110)상의 데이터 버스 라인은 실제 데이터 전송이 일어나지 않을때조차, I/O 액세스시 프로세서에 의해 유지된다. 분할 트랜잭션에서, CPU 버스(110)상의 데이터 버스라인은 요구 트랜잭션이 판독에 대하여 완료된 후에만 다시 액세스된다.
분할 트랜잭션은 하나의 전송 또는 트랜잭션을 완료하는 시간을 증가시킨다. CPU 버스(110)는 요구 트랜잭션에 대하여 한번 그리고 응답 트랜잭션에 대하여 한번, 두 번이 요구되어야 한다. 분할 트랜잭션 프로토콜은 통신으로 다른 부품의 트랙을 유지하는 것이 요구된다. 브리지 메모리 제어기(111)는 버스 트랜잭션의 응답부분을 개시하는 요구자와 교신하여야 하고, 그래서 요구자의 확인은 메모리 시스템에 의해 전송되어 보유되어야 한다. 트랜잭션 지연 유니트(112)는 분할 트랜잭션이 전체 컴퓨터 시스템에 대한 효과적인 CPU 버스(110) 대역을 개선시킬수 있을때만 분할 트랜잭션을 동적으로 개시한다. 트랜잭션 지연 유니트(112)는 CPU 집중과 I/O 집중 성능과 견주기사이의 시스템 성능 균형을 깬다.
도 2는 본 발명의 트랜잭션 지연 유니트(112)의 일실시예를 설명하고 있다. 트랜잭션 지연 유니트(112)는 호스트 버스 트랜잭션 리코더(221), 트랜잭션 프로세서(222), CPU 대기시간 타이머(223), 지연대기열 상태 머신(224), 및 I/O 버스 인터페이스 유니트(225)로 구성되어 있다. 호스트 버스 트랜잭션 리코더 유니트(221)는 CPU 버스(110)상에서 현재 유출된 트랜잭션을 리코드하도록 작동한다. 라인(231)은 호스트 버스 트랜잭션 리코더를 CPU 버스(110)와 결합시킨다. 본 발명의 일실시예에서 호스트 버스 트랜잭션 리코더(221)는 CPU 버스(110)로부터 어드레스신호, 바이트 인에이블 신호, 및 캐시 간섭신호와 같은 요구 그룹 신호를 수신한다. 호스트 버스 트랜잭션 리코더(221)는 요구가 만들어지는 시간에 따라서, CPU 버스(110)상의 대기열을 모니터하고, 정보를 CPU 버스(110)상에 유출된 트랜잭션으로부터 리코더한다. 호스트 버스 트랜잭션 리코더(221)는 CPU 버스(110)로부터의 요구 그룹 신호를 처리하고, 급송 제어신호를 트랜잭션 프로세서(222)에 출력한다.
트랜잭션 프로세서(222)는 호스트 버스 트랜잭션 리코더(221)에 결합되어 이있다. 트랜잭션 프로세서(222)는 라인(233)을 통해 호스트 버스 트랜잭션 리코더(221)로부터 급송제어신호를 수신한다. 트랜잭션 프로세서(222)는 트랜잭션 대기열로부터의 급송제어신호를 호스트 버스 트랜잭션 리코더(221)에서 판독함으로써 현재 CPU 버스(110)상에 유출된 트랜잭션의 유형을 확인한다. 또한, 트랜잭션 프로세서는 라인(232)을 통해 CPU 버스(110)로부터 직접 신호를 수신한다. 트랜잭션 프로세서(222)는 CPU 버스(110)로부터 수신된 신호를 처리함으로써 유출되기를 기다리고 있는 미결 CPU 버스 트랜잭션이 있는지를 결정한다. 트랜잭션 프로세서(222)는 유출되기를 기다리고 있는 미결 CPU 버스 트랜잭션이 있을 때와 현재의 CPU 버스 트랜잭션이 지연후보일 때, 현재의 트랜잭션을 지연시키도록 작동한다. 트랜잭션 프로세서(222)는 어느 트랜잭션이 지연후보이고 어느 트랜잭션이 지연되지 않는지를 결정하기 위해 필터로서 작동하도록 프로그램될 수 있다. 본 발명의 일실시예에서, 프로세서 I/O 트랜잭션은 지연가능후보로서 트랜잭션 프로세서(222)에서 상태 머신에 의해 확인된다. 본 발명의 다른 실시예에서, 프로세서 I/O 사이클, 프로세서 인터럽트 긍정 응답 사이클, 및 포스트가 불가능할 때의 프로세서에서 고속 I/O 버스로의 특정 사이클과 프로세서에서 고속 I/O 버스로의 메모리 판독 및 기록 사이클은 지연 가능한 후보로서 트랜잭션 프로세서(205)에서 상태 머신에 의해 확인된다. 전형적으로 긴주기 시간동안 데이터버스 라인을 유지하는 트랜잭션은 지연에 대한 좋은 후보이다. 메모리 액세스 트랜잭션은 고정 대기시간을 가지고 있고, 일반적으로 완료하는데 짧은 주기시간이 걸린다. 그러므로, 메모리 액세스 트랜잭션은 분할 트랜잭션에 대하여 좋은 후보가 아니고 지연되지 않는다.
CPU 대기시간 타이머(223)는 트랜잭션 프로세서(222)에 결합되어 있다. 미결 CPU 버스 트랜잭션이 CPU 버스(110)의 데이터 버스상에서 처리되기를 기다리고 있을 때와 현재의 트랜잭션이 지연후보일 때, 트랜잭션 프로세서는 CPU 대기시간 타이머(223)를 작동시키기 위해 라인(234)을 통해 신호를 보낸다. CPU 대기시간 타이머(223)는 다른 미결 트랜잭션의 존재로 지연되기 전에 완료하는 현재의 트랜잭션에 주어진 시간의 양을 한정하도록 작동한다. CPU 대기시간 타이머(223)는 일부 미결 CPU 버스 트랜잭션의 대기시간을 동시에 리코드할 수 있다. 미결 CPU 버스(110) 트랜잭션의 대기시간의 소정의 설정시간을 초과한 후에, CPU 대기시간 타이머(223)는 그 타이머가 종료되었음을 지시하는 신호를 라인(234)을 통해서 트랜잭션 프로세서(222)에 출력한다.
I/O 버스 인터페이스 유니트(225)는 라인(238)을 통해 트랜잭션 프로세서(222)와 라인(239)을 통해 I/O 버스(120)에 결합되어 있다. I/O 버스 인터페이스유니트(225)는 라인(239)을 통해 CPU 버스(110)에 액세스하는 I/O 버스(120)상의 주변장치로부터 요구를 수신한다.
트랜잭션 프로세서(222)는 미결 CPU 버스 트랜잭션이 데이터에 존재하는지를 고려하는 정보를 CPU 버스(110)로부터, 미결 CPU 버스 트랜잭션의 대기시간이 소정의 설정시간을 초과했는지를 고려하는 정보를 CPU 대기시간 타이머(223)로부터, 현재의 CPU 버스 트랜잭션이 지연 트랜잭션에 대한 후보인지를 고려하는 정보를 호스트 버스 트랜잭션 리코더(221)로부터, 그리고 I/O 버스상의 트랜잭션이 메모리(113)를 타겟으로 하는지를 고려하는 정보를 I/O 버스 인터페이스(225)로부터 수신한다. 그 수신된 정보를 근거로하여, 트랜잭션 프로세서(222)는 분할 트랜잭션을 유출함으로써 CPU 버스(110)상에 유출된 현재의 트랜잭션을 동적으로 지연시키는지를 결정한다. 트랜잭션 프로세서(222)는 현재의 트랜잭션이 지연될 것임을 지시하는 신호를 라인(235)을 통해서 프로세서(101)에 출력한다.
지연 대기열 상태 머신(224)은 라인(237)을 통해 트랜잭션 프로세서(222)에 결합되어 있다. 지연 대기열 상태 머신(224)은 CPU 버스(110)와 I/O 버스(120)상에 현재 유출된 트랜잭션의 리코더를 트랜잭션 프로세서로부터 수신하고, 유출될 수 있는 새로운 트랜잭션을 한정하도록 작동한다. 유출될 수 없는 트랜잭션에 있어서, 지연대기열 상태 머신(224)은 그 트랜잭션이 재시도되어야 함을 명령하는 신호를 보낸다. 본 발명의 일실시예에서, 지연 대기열 상태 머신(224)은 I/O 액세스 트랜잭션이 요구되어 다른 I/O 액세스 트랜잭션이 현재 유출될 때마다, 재시도 명령을 유출하도록 작동한다.
도 3은 본 발명에 따른 호스트 버스 트랜잭션 리코더(221)의 일실시예의 블록도를 설명하고 있다. 호스트 버스 트랜잭션 리코더는 디코더 유니트(331), 트랜잭션 대기열(332), 및 버스 트래커 유니트(333)로 구성되어 있다. 버스 트래커 유니트(333)는 트랜잭션이 CPU 버스(110)상에 유출되었음을 지시하는 신호를 라인(231)을 통해 CPU 버스(110)로부터 수신한다. 버스 트래커 유니트(333)는 트랜잭션 대기열(332)이 어드레스신호, 바이트 인에이블 신호, 및 캐시 간섭신호와 같은 정보를 라인(231)을 통해 CPU 버스(110)로부터 래치하도록 명령하여 트랜잭션 대기열(332)에 보내는 신호를 발생시킨다. 그 제어신호는 라인(344)을 통해서 보내진다. 디코더 유니트(331)는 액세스의 끝점을 고려하여 인코드된 정보를 CPU 버스(110)로부터 디코드하도록 작동한다. 디코더 유니트(331)는 이 정보를 라인(345)을 통해 트랜잭션 대기열(322)에 보낸다. 트랜잭션 대기열(332)은 디코더 유니트(331)로부터 처리된 정보와 CPU 버스(110)로부터 검색된 정보를 각각의 트랜잭션으로부터 기억하는 기억 유니트이다. 트랜잭션 대기열(332)은 단일 트랜잭션로부터 정보를 기억하는 기억유니트 또는 복수의 트랜잭션으로부터 정보를 기억하는 FIFO와 같은 복수의 기억소자를 가진 기억유니트일 수 있다. 트랜잭션 대기열(332)은 각각의 트랜잭션을 고려한 정보를 급송된 제어신호로서 급송버스(233)를 통해 트랜잭션 프로세서(222)에 보낸다. 호스트 버스 트랜잭션 리코더(221)는 다른 공지된 논리회로에 의해 또한 이행될 수 있다.
도 4는 본 발명에 따른 트랜잭션 프로세서(222)의 일실시예의 블록도를 설명하고 있다. 트랜잭션 프로세서(222)는 배열 사이클 상태 머신(432)으로 구성되어 있다. 배열사이클 상태 머신(432)은 미결 CPU 버스 트랜잭션이 CPU 버스(110)로부터 데이터에 존재하는지를 고려한 정보를 라인(232)으로부터, 미결 CPU 버스트랜잭션의 대기시간이 CPU 대기시간 타이머(223)로부터 소정의 설정시간을 초과하였는지를 고려한 정보를 라인(234)으로부터, 현재의 CPU 버스 트랜잭션이 지연된 트랜잭션의 후보인지를 호스트 버스 트랜잭션 리코더(221)로부터 고려한 정보를 급송버스(233)로부터, I/O 버스상의 트랜잭션이 메모리(113)를 타겟하는지를 I/O 버스 인터페이스 유니트(225)로부터 고려한 정보를 라인(238)으로부터, 그리고 그 미결 트랜잭션이 지연 대기열 상태 머신(224)으로부터 재시도될 수 있는지 아닌지를 고려한 정보를 라인(237)으로부터 수신한다. 수신된 정보를 근거로하여, 배열사이클 상태 머신(432)은 분할 트랜잭션을 유출함으로써 CPU 버스(110)상에 유출된 현재의 트랜잭션을 동적으로 지연시키는지를 결정한다. 배열사이클 상태 머신(432)은 현재의 트랜잭션이 지연될 수 있음을 지시하는 신호를 라인(235)을 통해 프로세서(101)에 출력한다. 배열 사이클 상태 머신(432)은 라인(236)을 통해 데이터 경로와 DRAM 제어기에 마이크로명령을 출력한다.
본 발명의 일실시예에서, 배열 사이클 상태 머신(432)은 현재의 트랜잭션이 I/O 액세스 트랜잭션일때만 분할 트랜잭션을 유출한다. I/O 액세스 트랜잭션은 전형적으로 완료하는데 긴 주기시간이 걸린다. 트랜잭션이 분할 또는 지연될 때, 프로세서(101)는 액세스 메모리(113)와 같이 다른 트랜잭션을 수행하는 데이터 버스라인을 사용하게 된다. 본 발명의 다른 실시예에서, 배열 사이클 상태 머신(432)은 현재의 트랜잭션이 프로세서 I/O 사이클, 프로세서 인터럽트 긍정 응답사이클, 및 포스트가 불가능할때의 프로세서에서 고속 I/O 버스로의 특정 사이클과 프로세서에서 고속 I/O 버스로의 메모리 판독 및 기록 사이클일 때, 분할 트랜잭션을 유출한다. 본 발명의 다른 실시예에서 배열사이클 상태 머신(432)은 현재의 트랜잭션이 지연후보이고 미결 CPU 버스 트랜잭션이 CPU 버스 대기열에 있을때만 분할 트랜잭션을 유출한다. 본래 지연된 CPU 버스 트랜잭션을 완료하기 위해서 지연응답 트랜잭션을 발생시키기위한 타겟이 필요하기 때문에 트랜잭션이 지연될때마다 추가 부담이 초래된다. 전형적으로 패널티는 6 호스트 클록이다. CPU 버스에 미결 CPU 버스 트랜잭션이 있는지와는 무관하게 트랜잭션의 끝점만을 근거로하여 CPU 버스 트랜잭션이 지연되었다면, 그 시스템 I/O 성능은 패널티가 불필요하게 발생되는 상황에서 심각하게 강등될 것이다. 배열 사이클 상태 머신(432)은 컴퓨터 시스템 조건이 보장될 때만 분할 트랜잭션을 유출한다. 라인(232)을 통해 CPU 버스(110)상의 소통량을 모니터함을 근거로 하여 결정이 이루어진다.
본 발명의 다른 실시예에서, 배열사이클 상태 머신(432)은 현재의 트랜잭션이 지연후보이고 미결 CPU 버스 트랜잭션이 소정의 주기시간을 초과하여 CPU 버스대기열에서 대기하였을 때만 분할 트랜잭션을 유출한다. 본 발명의 이러한 실시예에서, 배열사이클 상태 머신(432)은 CPU 대기시간 타이머를 종료하게 하는 소정의 설정시간보다 큰 미결 CPU 버스 트랜잭션의 대기시간을 리코드한다. 그 소정의 설정시간은 프로그램가능 값이거나 하드코드 값일수 있다. 그 CPU 대기시간 타이머는 완료신호를 보내기전에 완료하기 위해 트랜잭션에 대해 주어진 양의 시간을 상태 엔진(202)에 배정한다. 시간종료주기를 늘림으로써, I/O 사이클은 덜 빈번하게 지연될 것이고, 이것은 전체 CPU에서 I/O 로의 액세스 대기시간을 낮출 것이다. 시간종료주기를 줄임으로써, CPU 버스대기시간은 감소될 것이다. 프로그램가능 CPU 대기시간 타이머는 모든 사람들이 선택된 컴퓨터 시스템 환경에서 효과적으로 트랜잭션지연 유니트(112)를 이용하게 한다. 예를 들어, I/O 디바이스로 접근하는 데스크톱 컴퓨터 시스템은 프로세서 계열 서버에 대하여 CPU 버스상의 짧은 대기시간이 더 중요한 까닭으로 더 중요하다. 그러므로 CPU 대기시간 타이머(223)는 데스크톱 컴퓨터 시스템에 대하여 I/O 사이클을 완료하는데 더 많은 시간을 주도록 프로그램될 수 있다. 컴퓨터 시스템 서버에서, 전형적으로 I/O 디바이스보다 더 자주 메모리에 액세스하는 일부 에이전트가 있다. 그러므로 서버환경에서 CPU 대기시간 타이머는 I/O 사이클을 완료하는데 더 적은 시간을 주도록 프로그램될 수 있다.
본 발명의 다른 실시예에서, 배열 사이클 상태 머신(432)은 현재의 CPU 버스트랜잭션이 유출되고, 그 이후에 I/O 버스 트랜잭션이 메모리(113)를 타겟할 때, 분할 트랜잭션을 유출한다. 트랜잭션 프로세서(222)는 다른 공지된 논리회로에 의해 또한 이행될 수 있다.
도 5는 본 발명에 따른 I/O 버스 인터페이스 유니트(225)의 일실시예의 블록도를 설명하고 있다. I/O 버스 인터페이스 유니트(225)는 개시기 상태 머신(531)과 타겟상태 머신(532)으로 구성되어 있다. 개시기 상태 머신(531)은 I/O 버스(120)에 액세스하는 CPU 버스(110)로부터 요구를 수신한다. 개시기 상태 머신(531)은 트랜잭션이 완료되었을 때 I/O 버스(120)로의 액세스를 얻고 CPU 버스(110)에 역으로 응답을 보내도록 작동한다. 타겟 상태 머신(532)은 CPU 버스(110)에 액세스하는 I/O 버스(120)로부터 요구를 수신한다. 타겟 상태 머신(532)은 그 요구를 트랜잭션 프로세서(222)에 보내도록 작동한다. 개시기 상태 머신(531)과 타겟 상태 머신(532)은 마이크로 명령을 매개로하여 트랜잭션 프로세서(222)와 통신한다. 개시기 상태 머신(531)은 I/O 버스(120)에 보내질 정보를 CPU 버스(110)로부터 또한 인코드한다. 타겟 상태 머신은 CPU 버스(110)에 보내질 정보를 I/O 버스(120)로부터 디코드한다. 버스 인터페이스 유니트(225)는 다른 공지된 논리회로에 의해 또한 이행될 수 있다.
도 6a 는 종래의 컴퓨터 시스템으로 트랜잭션이 CPU 버스상에 유출되는 방법의 예를 설명하고 있다. 도 6a에서, 트랜잭션(X)는 클록주기(0)에서 요구된다. 트랜잭션(X)은 외부 I/O 버스상에서 I/O 디바이스로부터 데이터를 액세스하는 외부 버스 트랜잭션이다.
클록주기(0)에서 CPU 버스상에 유출되는 다른 트랜잭션이 없기 때문에, 트랜잭션(X)은 클록주기(0-5)시에 이 요구위상과 스누프 위상을 완료한다. 이것은 X1시간으로 지시된다. 그 스누프 위상 이후에, 트랜잭션(X)은 클록주기(6)에서 데이터 위상을 시작한다. 클록주기(6-36)시에 트랜잭션(X)은 프로세서가 요구된 데이터를 수신할때까지,데이터 버스 라인을 CPU 버스상에 유지한다. 트랜잭션(X)이 그 데이터 버스라인을 유지하는 시간 주기는 X1' 시간으로서 도시되어 있다.
트랜잭션(Y)은 클록주기(8)에서 요구된 메모리 액세스 트랜잭션이다. 클록주기(8)에서, 트랜잭션(Y)은 요구버스라인과 스누프버스라인을 CPU 버스상에 액세스하고, 요구와 스누프 위상을 시작한다. 트랜잭션(X)은 클록주기(6-35)에서 데이터 버스라인을 유지하기 때문에, 트랜잭션(Y)은 스누프 위상에서 스톨되고 클록주기가 36일때까지 데이터 위상을 시작할 수 없다. Y1시간은 트랜잭션(Y)이 요구위상과 스누프 위상에 있는 시간을 도시한다. Y1' 시간은 트랜잭션(Y)이 데이터 위상에 있는 시간을 도시한다. 메모리 액세스 트랜잭션이 전형적으로 짧은 주기 시간으로 완료될 수 있지만, 트랜잭션(Y)은 트랜잭션이 I/O 버스로 향한 후에 실행될 때 완료하는데 44클록 주기가 걸린다. CPU 버스상에 데이터 버스 라인을 릴리스하기 위해 트랜잭션(X)을 기다리는 것이 필요하기 때문에, 트랜잭션(Y)을 완료하는데 추가시간이 필요하다. 단지 하나의 트랜잭션이 한시간에 데이터 버스라인을 유지할 수있기 때문에 대기가 필요하다.
도 6b는 트랜잭션을 분할하는데 초래되는 패널티와 분할 트랜잭션이 CPU 버스상에 유출되는 방법의 예를 설명하고 있다. 도 6b에서, 트랜잭션(X)는 클록주기(0)에서 요구된다. 트랜잭션(X)은 외부 I/O 버스상의 I/O 디바이스로부터 데이터를 액세스하는 외부 버스 트랜잭션이다. 클록주기(0)에서 CPU 버스상에 유출되는 다른 트랜잭션은 없기 때문에, 트랜잭션(X)은 클록주기(0-5)시에 요구 위상과 스누프 위상을 완료한다. 이것은 X1 시간으로 지시된다. 스누프 위상이후에 트랜잭션(X)은 클록주기(7)에서 데이터 위상을 시작한다. 그 스누프 위상이후에 트랜잭션(X)은 데이터 버스라인을 유지함으로써 데이터 위상을 시작한다. 그 데이터 위상이 시작한 후의 어느 시간에도 트랜잭션(X)은 지연될 수 있다. 지연시키는 단계에서, 프로세서는 데이터가 현재 이용불가능하지만 나중에 이용가능하게 될 것이다는 것을 알린다. 이것에 응답하여, 프로세서는 CPU 버스상에 데이터버스라인을 릴리스하고, 차후 요구된 트랜잭션이 CPU 버스상의 데이터라인상에 유출되게 한다. 그 데이터 라인이 다른 트랜잭션에 이용가능하게 되는 시간동안에 브리지 메모리 제어기는 독립적으로 그 요구된 데이터를 트랜잭션(X)으로부터 검색한다. 그 요구된 데이터를 검색하는 그 메모리 제어기에 요구되는 시간의 주기는 X1'시간으로서 설명되어 있다. 그 브리지 메모리 제어기가 트랜잭션(X)로부터 요구된 데이터를 검색한 후에, 그 메모리 제어기는 그 요구된 데이터를 프로세서에 보내는 CPU 버스상에 응답을 유출한다. 응답을 발생시키는 CPU 버스상에 요구되는 시간의 주기는 X2시간으로 설명되어 있다. 그 트랜잭션의 끝점에 단독으로 CPU 버스 트랜잭션을 자동으로 지연시키는 컴퓨터 시스템은 미결 CPU 버스 트랜잭션이 CPU 버스를 사용할 필요가 있는 것과 무관하게 X2시간의 패널티를 초래한다. CPU 버스를 사용하길 기다리는 미결 CPU 버스 트랜잭션이 없을 때, 존재하는 CPU 버스 트랜잭션이 지연없이 완료되게 하는 것이 더 효과적이다.
도 6c는 지연된 트랜잭션이 본 발명 일실시예에 따른 트랜잭션 지연 유니트로 유출되는 방법의 예를 설명하고 있다. 도 6c에서, 트랜잭션(X)은 클록주기(0)에서 요구된다. 트랜잭션(X)은 I/O 디바이스로부터의 데이터를 외부 I/O 버스상에 액세스하는 외부 버스 트랜잭션이다. 클록주기(0)에서 CPU 버스상에유출되는 다른 트랜잭션이 없기 때문에, 트랜잭션(X)은 클록주기(0-5)시에 요구위상과 스누프 위상을 완료한다. 이것은 X1시간으로 지시된다. 스누프 위상 이후에 트랜잭션(X)은 클록주기(6)에서 데이터 위상을 시작한다. 스누프 위상 이후에, 트랜잭션(X)은 데이터 버스 라인을 유지함으로써 데이터 위상을 시작한다. 이것은 X1' 시간영역내의 입체 라인에 의해 지시된다.
트랜잭션(Y)은 클록주기(8)에서 요구된 메모리 액세스 트랜잭션이다. 그 요구 버스라인과 스누프 버스라인은 이용가능하기 때문에, 트랜잭션(Y)은 클록주기(8)에서 요구와 스누프 위상을 시작한다. 트랜잭션(Y)가 클록주기(14)에 의해 요구와 스누프 위상을 완료할 수 있지만, 트랜잭션(X)가 클록주기(14)에서 데이터 위상라인을 유지하고 있기 때문에, 트랜잭션(Y)은 추가클록주기동안 스누프 위상에 스톨(Stall)된다. 본 발명의 트랜잭션 지연 유니트는 트랜잭션(Y)이 미결 CPU 트랜잭션이다는 것과 트랜잭션(X)이 지연후보인 I/O 액세스 트랜잭션이다는 것을 인식한다. 트랜잭션(Y)이 소정된 양의 시간동안 스누프 위상에 스톨된 후에, 트랜잭션(X)이 지연된다. 도 3c는 클록주기(18)에서 트랜잭션(X)이 지연되는 것을 도시하고 있다. 트랜잭션(X)을 지연시키는 단계에서, 그 트랜잭션 지연 유니트는 데이터가 현재 이용가능하지 않지만, 나중에 이용가능하게 될 것이라는 것을 프로세서에 알린다. 이것에 응답하여, 그 프로세서는 CPU 버스상에 데이터 버스라인을 릴리스하고, 트랜잭션(Y)이 CPU 버스상에서 데이터 위상을 시작하게 한다. 그 데이터 버스라인이 트랜잭션(Y)에 대하여 이용가능하게 되는 시간에 브리지 메모리 제어기는 독립적으로 그 요구된 데이터를 트랜잭션(X)으로부터 검색한다. Y1은 트랜잭션(Y)이 요구와 스누프 위상에 있는 시간주기를 도시한다. Y1'은 트랜잭션(Y)이 데이터 위상에 있는 시간주기를 도시한다. 그 요구된 데이터를 검색하는 브리지 메모리 제어기에 의해 필요되는 시간의 주기는 X1'시간으로서 설명되어 있다. 브리지 메모리 제어기가 트랜잭션(X)으로부터 요구된 데이터를 검색한 후에, 브리지 메모리 제어기는 요구된 데이터를 프로세서에 보내는 CPU 버스상에 응답을 유출한다. 응답을 발생시키는 CPU 버스상에 요구된 시간의 주기는 X2시간에 의해 설명되어 있다.
도 7은 본 발명의 일실시예에 따라 외부 버스 트랜잭션을 동적으로 지연시키는 방법을 설명하는 흐름도를 설명하고 있다. 먼저, 미결 버스 트랜잭션이 있는지를 결정한다. 이것은 CPU 버스로부터 신호를 판독하여 획득될 수 있다. 이것은 블록(701)에 도시되어 있다. 미결 버스 트랜잭션이 존재하지 않으면, 블록(701)으로 되돌아가라. 미결 버스 트랜잭션이 존재하면, 현재의 요구된 트랜잭션이 자연가능 트랜잭션인지를 결정한다. 이것은 블록(702)에 도시되어 있다. 현재의 버스 트랜잭션의 확인은 리코드된 정보를 트랜잭션 리코더에서 판독함으로써 결정될 수 있다. 본 발명의 일실시예에서, 트랜잭션은 프로세서 I/O 사이클, 프로세서 인터럽트 긍정응답 사이클, 프로세서에서 고속 I/O 버스로의 특정 사이클, 포스트가 불가능할때의 프로세서에서 고속 I/O 버스로의 메모리 판독 및 기록 사이클이라면 지연가능하다. 현재의 버스 트랜잭션에 지연가능하지 않다면, 블록(703)에 도시된 바와같이 지연시킴이 없이 현재의 트랜잭션을 완료한다. 현재의 CPU 버스 트랜잭션이 지연가능하다면, CPU 대기시간 타이머를 동작시킨다. 그 CPU 대기시간 타이머는 현재의 버스 트랜잭션이 완료하는데 걸리는 시간의 양을 타이밍한다. 이것은 블록(704)에 도시되어 있다. 다음, 블록(705)에 도시된 바와같이, CPU 대기시간 타이머가 종료되었는지를 결정한다. CPU 대기시간 타이머가 종료되었다면, 블록(706)에 도시된 바와같이, 현재의 버스 트랜잭션을 지연시킨다. CPU 대기시간 타이머가 종료되지 않았다면, 미결 버스 트랜잭션이 데이터 버스라인을 기다리는 고속 I/O 버스에서 메모리로의 액세스 트랜잭션인지를 결정한다. 이것은 블록(707)에 도시되어 있다. 데이터 버스라인을 기다리는 고속 I/O 버스에서 메모리로의 액세스 트랜잭션이 있으면, 블록(706)에 도시된 바와같이, 현재의 버스 트랜잭션을 지연시킨다. 미결 버스 트랜잭션이 고속 I/O 버스에서 메모리로의 액세스 트랜잭션이 아니면, 블록(708)에 도시된 바와같이 현재의 CPU 버스 트랜잭션이 완료되는지를 결정한다. 현재의 CPU 버스 트랜잭션이 완료하면, 블록(709)에 도시된 바와같이, 미결 트랜잭션을 시작한 다음, 블록(701)으로 되돌아간다. 현재의 트랜잭션이 완료하지 않으면, 시작으로 되돌아간다.
상기 설명한 바와같이, 본 발명은 특정 실시예를 기준으로하여 설명되어 있다. 그러나, 첨부된 청구범위에 설명된 바와같이 본 발명의 사상과 범위를 벗어남이 없이 여러 수정과 변경이 이루어질 수 있다는 것을 알 수 있다. 따라서, 상세한 설명과 도면은 제한적이기 보다는 예시적이다. 상기 설명을 참조한 후에 당업자는 본 발명의 여러 수정과 변경을 이해할 수 있기에, 예시적으로 설명되고 도시된 특정 실시예가 제한될 의도가 없다는 것을 알수 있다. 그러므로, 특정 실시예의 상세한 설명의 기준은 청구범위를 제한하지 않고, 이것은 자체로 본 발명에 필수적인 것으로 간주되는 특징만을 상술한다.

Claims (16)

  1. 프로세서에 의해 버스상에 유출된 트랜잭션의 지연을 조절하는 트랜잭션 지연장치로서,
    상기 버스에 결합되어 인코드된 신호를 상기 버스에 유출된 상기 트랜잭션으로부터 처리하는 버스 트랜잭션 리코더; 및
    상기 버스 트랜잭션 리코더와 상기 버스에 결합된 트랜잭션 프로세서 유니트로 구성되어 있으며, 상기 트랜잭션 프로세서 유니트는 미결 트랜잭션이 상기 버스상에 유출되기를 기다리는 것을 지시하는 지시신호를 상기 버스로부터 상기 트랜잭션 프로세서 유니트가 수신할 때, 및 상기 버스상에 유출된 상기 트랜잭션으로부터의 상기 인코드된 신호가 상기 버스상에 유출된 상기 트랜잭션이 지연후보임을 지시할 때, 상기 버스상에 유출된 상기 트랜잭션을 지연시키는 것을 특징으로 하는 트랜잭션 지연장치.
  2. 제 1 항에 있어서, 상기 트랜잭션 프로세서는 I/O 액세스 트랜잭션이 상기 지연후보임을 인식하도록 프로그램된 상태 머신으로 구성되어 있는 것을 특징으로 하는 트랜잭션 지연장치.
  3. 제 1 항에 있어서, 상기 버스 트랜잭션 리코더는
    상기 버스에 결합되어 상기 인코드된 신호를 상기 버스로부터 수신하고 상기 인코드된 신호를 상기 트랜잭션 프로세서에 의해 판독가능한 끝점 정보로 디코드하는 디코드 유니트; 및
    상기 디코더 유니트에 결합되어 상기 끝점 정보를 기억하는 트랜잭션 대기열로 구성되어 있는 것을 특징으로 하는 트랜잭션 지연장치.
  4. 제 3 항에 있어서, 상기 트랜잭션 대기열은 복수의 미결 트랜잭션으로부터 복수의 끝점 정보를 기억할 수 있는 FIFO인 것을 특징으로 하는 트랜잭션 지연장치.
  5. 제 4 항에 있어서, 상기 트랜잭션 프로세서는 상기 버스상에 유출된 상기 트랜잭션의 상기 끝점 정보를 기억하는 상기 FIFO 내의 제1 기억소자를 판독하는 포인터로 구성되어 있는 것을 특징으로 하는 트랜잭션 지연장치.
  6. 프로세서에 의해 버스상에 유출된 트랜잭션의 지연을 조절하는 트랜잭션 지연장치로서,
    상기 버스에 결합되어 인코드된 신호를 상기 버스상에 유출된 상기 트랜잭션으로부터 처리하는 버스 트랜잭션 리코더;
    미결 트랜잭션이 상기 버스상에서 기다리고 있을 때 상기 버스상에 유출된 상기 트랜잭션을 타이밍하는 CPU 대기시간 타이머; 및
    상기 버스 트랜잭션 리코더, 및 상기 CPU 대기시간 타이머에 결합된 트랜잭션 프로세서 유니트로 구성되어 있으며, 상기 CPU 대기시간 타이머는 상기 트랜잭션이 완료하는데 소정량의 시간보다 더 걸릴 때 종료 신호를 출력하고, 상기 트랜잭션 프로세서 유니트가 미결 트랜잭션이 상기 버스상에 유출되기를 기다리고 있음을 지시하는 지시신호를 상기 버스로부터 수신할 때, 상기 버스상에 유출된 상기 트랜잭션으로부터의 상기 인코드된 신호가 상기 버스상에 유출된 상기 트랜잭션이 지연후보임을 지시할 때, 그리고 상기 CPU 대기시간 타이머가 상기 종료신호를 출력할 때, 상기 트랜잭션 프로세서 유니트가 상기 버스상에 유출된 상기 트랜잭션을 지연시키는 것을 특징으로 하는 트랜잭션 지연장치.
  7. 제 6 항에 있어서, 상기 CPU 대기시간 타이머는 프로그램가능 타이머인 것을 특징으로 하는 트랜잭션 지연장치.
  8. 제 6 항에 있어서, 상기 미결 트랜잭션이 상기 버스상에 유출될 수 있는지를 결정하는 지연 대기열 상태 머신으로 더 구성되어 있는 것을 특징으로 하는 트랜잭션 지연장치.
  9. 제 6 항에 있어서, 상기 호스트 버스 트랜잭션 리코더는
    상기 버스에 결합되어 상기 인코드된 신호를 상기 버스로부터 수신하고 상기 인코드된 신호를 상기 트랜잭션 프로세서에 의해 판독가능한 끝점 정보로 디코드하는 디코더 유니트; 및
    상기 디코더 유니트에 결합되어 상기 끝점 정보를 기억하는 트랜잭션 대기열로 구성되어 있는 것을 특징으로 하는 트랜잭션 지연장치.
  10. 프로세서에 의해 버스상에 유출된 트랜잭션의 지연을 조절하는 트랜잭션 지연장치로서,
    상기 버스에 결합되어 인코드된 신호를 상기 버스로부터 유출된 상기 트랜잭션으로부터 처리하는 버스 리코더 수단;
    상기 버스에 유출된 상기 트랜잭션을 미결 트랜잭션이 상기 버스상에서 기다리고 있을 때 타이밍하는 타이밍수단; 및
    상기 버스 리코더수단, 상기 버스, 및 상기 타이밍수단에 결합된 프로세서 수단으로 구성되어 있으며, 상기 타이밍 수단 타이머는 상기 트랜잭션이 완료하는데 소정량의 시간보다 더 걸릴 때 종료신호를 출력하고, 상기 프로세서 수단은 미결 트랜잭션이 상기 버스상에 유출되기를 기다리고 있음을 지시하는 지시 신호를 상기 프로세서 수단이 상기 버스로부터 수신할 때, 상기 버스상에 유출된 상기 트랜잭션으로부터의 상기 인코드된 신호가 상기 버스상에 유출된 상기 트랜잭션이 지연후보임을 지시할 때, 그리고 상기 타이밍 수단이 상기 종료신호를 출력할 때 상기 버스상에 유출된 상기 트랜잭션을 지연시키는 것을 특징으로 하는 트랜잭션 지연장치.
  11. 상기 컴퓨터 시스템내의 부품사이에 연결로를 제공하는 버스;
    상기 버스에 결합되어 디지털 데이터를 처리하는 프로세서;
    상기 버스에 결합되어 디스플레이 디바이스를 상기 컴퓨터 시스템에 결합시키는 디스플레이 디바이스 제어기;
    상기 버스에 결합되어 정보를 기억할 수 있는 외부 메모리; 및
    상기 버스에 결합되어 인코드된 신호를 상기 버스상에 유출된 상기 트랜잭션으로부터 처리하는 버스 트랜잭션 리코더, 상기 버스상에 유출된 상기 트랜잭션을 미결 트랜잭션이 상기 버스상에서 기다리고 있을 때 타이밍하는 CPU 대기시간 타이머, 및 상기 트랜잭션 리코더와 상기 버스와 상기 CPU 대기시간 타이머에 결합된 트랜잭션 프로세서 유니트로 구성되어 있는 상기 프로세서에 의해 상기 버스상에 유출된 트랜잭션의 지연을 조절하는 트랜잭션 지연장치로 구성되어 있으며, 상기 트랜잭션 프로세서 유니트는 미결 트랜잭션이 상기 버스상에서 유출되기를 기다리는 것을 지시하는 지시신호를 상기 트랜잭션 프로세서 유니트가 상기 버스로부터 수신할 때, 상기 버스상에 유출된 상기 트랜잭션으로부터의 상기 인코드된 신호가 상기 버스상에 유출된 상기 트랜잭션이 지연후보임을 지시할 때, 그리고 상기 CPU 대기시간 타이머가 상기 종료신호를 출력할 때 상기 버스상에 유출된 상기 트랜잭션을 지연시키는 것을 특징으로 하는 컴퓨터 시스템.
  12. 현재의 트랜잭션의 지연을 조절하는 방법으로서,
    미결 트랜잭션이 존재하는지를 결정하는 단계;
    상기 현재의 트랜잭션이 지연가능하는지를 결정하는 단계; 및
    상기 미결 트랜잭션이 존재하고 상기 현재의 트랜잭션이 지연가능하다면 상기 현재의 트랜잭션을 지연시키는 단계로 구성되어 있는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서, 상기 미결 트랜잭션이 존재하는지를 결정하는 단계는 CPU 버스로부터 직접 신호를 처리함으로써 이루어지는 것을 특징으로 하는 방법.
  14. 제 12 항에 있어서, 상기 현재의 트랜잭션이 지연가능하는지를 결정하는 단계는 트랜잭션 리코더로부터 급송제어신호를 처리함으로써 이루어지는 것을 특징으로 하는 방법.
  15. 현재의 트랜잭션의 지연을 조절하는 방법으로서,
    미결 트랜잭션이 존재하는지를 결정하는 단계;
    상기 현재의 트랜잭션이 지연가능한지를 결정하는 단계;
    상기 현재의 트랜잭션이 완료하는데 소정의 주기시간보다 더 오래 걸리는지를 결정하는 단계; 및
    상기 미결 트랜잭션이 존재하고, 상기 현재의 트랜잭션이 지연가능하고, 상기 현재의 트랜잭션이 완료하는데 소정의 주기시간보다 더 오래 걸리면, 상기 현재의 트랜잭션을 지연시키는 단계로 구성되어 있는 것을 특징으로 하는 방법.
  16. 제 15 항에 있어서, 상기 현재의 트랜잭션이 완료하는데 소정의 주기시간보다 더 오래걸리는지를 결정하는 단계는 상기 현재의 트랜잭션을 CPU 대기시간 타이머로 타이밍함으로써 이루어지는 것을 특징으로 하는 방법.
KR1019980701672A 1995-09-05 1996-07-15 동적지연트랜잭션메카니즘 KR100296633B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/523,385 1995-09-05
US8/523,385 1995-09-05
US08/523,385 US5761444A (en) 1995-09-05 1995-09-05 Method and apparatus for dynamically deferring transactions
PCT/US1996/011716 WO1997011418A2 (en) 1995-09-05 1996-07-15 Dynamic deferred transaction mechanism

Publications (2)

Publication Number Publication Date
KR19990044427A true KR19990044427A (ko) 1999-06-25
KR100296633B1 KR100296633B1 (ko) 2001-08-07

Family

ID=24084778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980701672A KR100296633B1 (ko) 1995-09-05 1996-07-15 동적지연트랜잭션메카니즘

Country Status (10)

Country Link
US (1) US5761444A (ko)
EP (1) EP0870240B1 (ko)
KR (1) KR100296633B1 (ko)
CN (1) CN1146802C (ko)
AU (1) AU6493796A (ko)
DE (1) DE69625826T2 (ko)
HK (1) HK1016300A1 (ko)
MY (1) MY119493A (ko)
TW (1) TW305031B (ko)
WO (1) WO1997011418A2 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761444A (en) * 1995-09-05 1998-06-02 Intel Corporation Method and apparatus for dynamically deferring transactions
US5928346A (en) * 1996-09-11 1999-07-27 Hewlett-Packard Company Method for enhanced peripheral component interconnect bus split data transfer
ATE199787T1 (de) * 1996-10-08 2001-03-15 Siemens Ag Verfahren und regelungsstruktur zur momentenvorsteuerung numerisch geregelter, elastischer und damit schwingungsfähiger mehrmassensysteme
US5961621A (en) * 1997-03-28 1999-10-05 Intel Corporation Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system
US5935233A (en) * 1997-05-21 1999-08-10 Micron Electronics, Inc. Computer system with a switch interconnector for computer devices
US6003112A (en) * 1997-06-30 1999-12-14 Intel Corporation Memory controller and method for clearing or copying memory utilizing register files to store address information
US5889968A (en) * 1997-09-30 1999-03-30 Intel Corporation Method and apparatus for interlocking a broadcast message on a bus
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6223238B1 (en) 1998-03-31 2001-04-24 Micron Electronics, Inc. Method of peer-to-peer mastering over a computer bus
US6073198A (en) * 1998-03-31 2000-06-06 Micron Electronics, Inc. System for peer-to-peer mastering over a computer bus
US6816934B2 (en) * 2000-12-22 2004-11-09 Hewlett-Packard Development Company, L.P. Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol
US6145039A (en) * 1998-11-03 2000-11-07 Intel Corporation Method and apparatus for an improved interface between computer components
US20030110317A1 (en) * 1998-11-03 2003-06-12 Jasmin Ajanovic Method and apparatus for an improved interface between a memory control hub and an input/output control hub
US6289406B1 (en) * 1998-11-06 2001-09-11 Vlsi Technology, Inc. Optimizing the performance of asynchronous bus bridges with dynamic transactions
US6275887B1 (en) * 1999-03-17 2001-08-14 Intel Corporation Method and apparatus for terminating a bus transaction if the target is not ready
US6374317B1 (en) 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US7039047B1 (en) 1999-11-03 2006-05-02 Intel Corporation Virtual wire signaling
US6516375B1 (en) 1999-11-03 2003-02-04 Intel Corporation Peripheral component interconnect (PCI) configuration emulation for hub interface
US6694390B1 (en) * 2000-09-11 2004-02-17 Intel Corporation Managing bus transaction dependencies
US6961800B2 (en) * 2001-09-28 2005-11-01 Hewlett-Packard Development Company, L.P. Method for improving processor performance
US7051145B2 (en) * 2001-12-10 2006-05-23 Emulex Design & Manufacturing Corporation Tracking deferred data transfers on a system-interconnect bus
US7080169B2 (en) 2001-12-11 2006-07-18 Emulex Design & Manufacturing Corporation Receiving data from interleaved multiple concurrent transactions in a FIFO memory having programmable buffer zones
US8214531B2 (en) * 2002-10-24 2012-07-03 Emulex Design & Manufacturing Corporation Network configuration synchronization for hardware accelerated network protocol
US7249173B2 (en) 2002-10-25 2007-07-24 Emulex Design & Manufacturing Corporation Abstracted node discovery
CN100337228C (zh) * 2003-12-26 2007-09-12 华为技术有限公司 远程同步调用过程中的超时自适应方法
US7549004B1 (en) * 2004-08-20 2009-06-16 Altera Corporation Split filtering in multilayer systems
US20060129726A1 (en) * 2004-12-09 2006-06-15 International Business Machines Corporation Methods and apparatus for processing a command
US7868390B2 (en) 2007-02-13 2011-01-11 United Microelectronics Corp. Method for fabricating strained-silicon CMOS transistor
US7927954B2 (en) 2007-02-26 2011-04-19 United Microelectronics Corp. Method for fabricating strained-silicon metal-oxide semiconductor transistors
US20080320192A1 (en) * 2007-06-19 2008-12-25 Sundaram Chinthamani Front side bus performance using an early defer-reply mechanism
US8572687B2 (en) * 2011-08-15 2013-10-29 Bank Of America Corporation Apparatus and method for performing session validation
US8572686B2 (en) 2011-08-15 2013-10-29 Bank Of America Corporation Method and apparatus for object transaction session validation
US8752157B2 (en) 2011-08-15 2014-06-10 Bank Of America Corporation Method and apparatus for third party session validation
US9159065B2 (en) 2011-08-15 2015-10-13 Bank Of America Corporation Method and apparatus for object security session validation
US8572688B2 (en) * 2011-08-15 2013-10-29 Bank Of America Corporation Method and apparatus for session validation to access third party resources
US8726339B2 (en) 2011-08-15 2014-05-13 Bank Of America Corporation Method and apparatus for emergency session validation
US8584201B2 (en) 2011-08-15 2013-11-12 Bank Of America Corporation Method and apparatus for session validation to access from uncontrolled devices
US8850515B2 (en) 2011-08-15 2014-09-30 Bank Of America Corporation Method and apparatus for subject recognition session validation
US8601541B2 (en) 2011-08-15 2013-12-03 Bank Of America Corporation Method and apparatus for session validation to access mainframe resources
US8572724B2 (en) 2011-08-15 2013-10-29 Bank Of America Corporation Method and apparatus for network session validation
US8572690B2 (en) 2011-08-15 2013-10-29 Bank Of America Corporation Apparatus and method for performing session validation to access confidential resources
WO2015173853A1 (ja) * 2014-05-12 2015-11-19 株式会社日立製作所 情報処理装置、その処理方法、及び入出力装置
CN106326045B (zh) * 2015-06-30 2019-10-25 展讯通信(上海)有限公司 一种检测总线延时的方法
DE102016212808A1 (de) * 2016-07-13 2018-01-18 Robert Bosch Gmbh Unterbrechungsanforderungs-Verteilereinrichtung und Betriebsverfahren hierfür
US11488141B2 (en) * 2017-09-29 2022-11-01 Apple Inc. Command-based timer for wireless transactions
US11422968B2 (en) * 2020-03-09 2022-08-23 Infineon Technologies LLC Methods, devices and systems for high speed serial bus transactions

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3641505A (en) * 1969-06-25 1972-02-08 Bell Telephone Labor Inc Multiprocessor computer adapted for partitioning into a plurality of independently operating systems
US4148012A (en) * 1975-09-26 1979-04-03 Greer Hydraulics, Inc. Access control system
US4991008A (en) * 1988-12-01 1991-02-05 Intec Video Systems, Inc. Automatic transaction surveillance system
US5553248A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation System for awarding the highest priority to a microprocessor releasing a system bus after aborting a locked cycle upon detecting a locked retry signal
US5463753A (en) * 1992-10-02 1995-10-31 Compaq Computer Corp. Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller
US5426740A (en) * 1994-01-14 1995-06-20 Ast Research, Inc. Signaling protocol for concurrent bus access in a multiprocessor system
US6182176B1 (en) * 1994-02-24 2001-01-30 Hewlett-Packard Company Queue-based predictive flow control mechanism
US5524216A (en) * 1994-05-13 1996-06-04 Hewlett-Packard Company Coherent transaction ordering in multi-tiered bus system
US5535340A (en) * 1994-05-20 1996-07-09 Intel Corporation Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5761444A (en) * 1995-09-05 1998-06-02 Intel Corporation Method and apparatus for dynamically deferring transactions

Also Published As

Publication number Publication date
HK1016300A1 (en) 1999-10-29
KR100296633B1 (ko) 2001-08-07
US5761444A (en) 1998-06-02
WO1997011418A3 (en) 1997-05-09
WO1997011418A2 (en) 1997-03-27
CN1200823A (zh) 1998-12-02
EP0870240A4 (en) 2001-10-24
MY119493A (en) 2005-06-30
AU6493796A (en) 1997-04-09
EP0870240B1 (en) 2003-01-15
CN1146802C (zh) 2004-04-21
EP0870240A2 (en) 1998-10-14
DE69625826T2 (de) 2003-11-06
DE69625826D1 (de) 2003-02-20
TW305031B (ko) 1997-05-11

Similar Documents

Publication Publication Date Title
KR19990044427A (ko) 동적지연 트랜잭션 장치
US5848279A (en) Mechanism for delivering interrupt messages
US5740376A (en) Signaling protocol for a peripheral component interconnect
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
CA2186598C (en) Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
EP0760136B1 (en) Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US6418496B2 (en) System and apparatus including lowest priority logic to select a processor to receive an interrupt message
US6199134B1 (en) Computer system with bridge logic that asserts a system management interrupt signal when an address is made to a trapped address and which also completes the cycle to the target address
US5579530A (en) Method and apparatus for dynamically allocating access time to a resource shared between a peripheral bus and a host bus by dynamically controlling the size of burst data transfers on the peripheral bus
KR100422781B1 (ko) 통합 메모리 아키텍처에서 중재하기 위한 방법 및 장치
US6356963B1 (en) Long latency interrupt handling and input/output write posting
US6983337B2 (en) Method, system, and program for handling device interrupts
US6449677B1 (en) Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus
US6134625A (en) Method and apparatus for providing arbitration between multiple data streams
US6397279B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
JPH10293744A (ja) Pciバス・システム
US5832241A (en) Data consistency across a bus transactions that impose ordering constraints
US6108735A (en) Method and apparatus for responding to unclaimed bus transactions
US6047349A (en) System for communicating through a computer system bus bridge
US5857082A (en) Method and apparatus for quickly transferring data from a first bus to a second bus
US6418497B1 (en) Method and system for interrupt handling using system pipelined packet transfers
US5968144A (en) System for supporting DMA I/O device using PCI bus and PCI-PCI bridge comprising programmable DMA controller for request arbitration and storing data transfer information
US5790811A (en) System and method for performing data transfers during PCI idle clock cycles
US5933613A (en) Computer system and inter-bus control circuit
US6757798B2 (en) Method and apparatus for arbitrating deferred read requests

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: 20090506

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee