KR100624609B1 - 메모리 상호 접속에서 사이드밴드 판독 리턴 헤더를 위한방법 및 장치 - Google Patents

메모리 상호 접속에서 사이드밴드 판독 리턴 헤더를 위한방법 및 장치 Download PDF

Info

Publication number
KR100624609B1
KR100624609B1 KR1020047007226A KR20047007226A KR100624609B1 KR 100624609 B1 KR100624609 B1 KR 100624609B1 KR 1020047007226 A KR1020047007226 A KR 1020047007226A KR 20047007226 A KR20047007226 A KR 20047007226A KR 100624609 B1 KR100624609 B1 KR 100624609B1
Authority
KR
South Korea
Prior art keywords
read
data
memory
request
return header
Prior art date
Application number
KR1020047007226A
Other languages
English (en)
Other versions
KR20050058232A (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 KR20050058232A publication Critical patent/KR20050058232A/ko
Application granted granted Critical
Publication of KR100624609B1 publication Critical patent/KR100624609B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

사이드밴드 판독 리턴 헤더를 통해 메모리 판독 동작을 최적화하는 방법 및 장치가 개시된다. 판독 요구는 판독을 개시할 때 수신되고, 판독 리턴 헤더는 판독 결과를 송신하기에 앞서서 송신된다.
판독 패킷, 기입 패킷, 메모리 상호 접속, 판독 착수 최적화

Description

메모리 상호 접속에서 사이드밴드 판독 리턴 헤더를 위한 방법 및 장치{METHOD AND APPARATUS FOR SIDEBAND READ RETURN HEADER IN MEMORY INTERCONNECT}
본 발명은 메모리 접속에 관한 것이다. 특히, 본 발명은 사이드밴드 판독 리턴 헤더(sideband read return header)를 통해 메모리 판독 동작을 최적화하는 방법 및 장치에 관한 것이다.
마이크로프로세서가 고속화됨에 따라, 고속 메모리 상호 접속에 대한 요구가 증가되었다. 마이크로프로세서의 성능은 극적으로 증가되고 있다. 시스템 성능은 일반적으로 여러 이유로 인해 증가된 마이크로프로세서의 성능을 따라오지 못한다. 하나의 이유는 하드 디스크 드라이브와 같은 대용량 기억 장치의 기계적 성질 때문이다.
시스템 성능에 영향을 미치는 다른 영역은 마이크로프로세서의 외부 메모리이다. 이 메모리는 외부의 고속 캐시 및 외부의 보통 저속이지만 큰 사이즈인 주 메모리로 구성될 수 있다. 외부 메모리에 대한 액세스는 성능에 영향을 미치는 지연 시간(latency) 및 구현의 복잡성(complexity)을 가질 수 있다. 지연 시간을 줄이고 구현의 복잡성을 줄이는 능력은 유용하다. 메모리와 상호 접속하기 위해 최 적화를 갖는 프로토콜도 또한 유용하다.
본 발명은 제한으로서가 아니라 일예로서 첨부한 도면들에 예시되어 있으며, 이들 도면에서 같은 참조 부호는 유사한 구성 요소를 나타낸다.
도 1은 일 실시예에 따른, 본 발명이 실시될 수 있는 네트워크 환경을 나타낸다.
도 2는 일 실시예에 따른, 컴퓨터 시스템의 블록도를 나타낸다.
도 3은 일 실시예에 따른 메모리 포트 인터페이스를 나타낸다.
도 4A 및 4B는 기입 요구 패킷을 강제 중단시키는 판독 요구 패킷에 대한 두 실시예들을 나타낸다.
도 5는 일 실시예에 따른, 메모리의 조기 판독 요구의 디스패칭(dispatching)을 나타낸다.
도 6A 및 6B는 판독 리턴 헤더(read return header)를 송신하는 두 실시예들을 나타낸다.
도 7은 일 실시예에 따른, 메모리 포트 인터페이스를 나타낸다.
도 8은 일 실시예에 따른, 메모리 포트 프로토콜을 나타낸다.
도 9는 일 실시예에 따른, 4개 전송을 요구하는 플릿(flit)을 나타낸다.
도 10은 다른 실시예에 따른, 플릿을 나타낸다.
도 11은 일 실시예에 따른, 플릿에서의 링크층(link layer) 및 페이로드(payload)의 시간적 변위를 나타낸다.
도 12는 다른 실시예에 따른, 메모리 포트 프로토콜을 나타낸다.
도 13은 일 실시예에 따른, 메모리 명령 포맷을 나타낸다.
도 14는 일 실시예에 따른, 장치 명령 포맷을 나타낸다.
도 15는 일 실시예에 따른, 구성 명령 포맷을 나타낸다.
도 16은 일 실시예에 따른, 아웃바운드(outbound) 링크층 포맷을 나타낸다.
도 17은 일 실시예에 따른, 공통 인바운드 링크층 포맷 비트를 나타낸다.
도 18은 일 실시예에 따른, 판독 리턴 헤더 포맷을 나타낸다.
도 19는 일 실시예에 따른, 기입 확인 포맷을 나타낸다.
도 20은 일 실시예에 따른, 상태(status) 포맷을 나타낸다.
메모리 상호 접속에서 사이드밴드 판독 리턴 헤더를 통해 메모리 판독 동작을 최적화하는 방법 및 장치를 설명한다.
다음의 기술에서는, 본 발명에 대한 철저한 이해를 제공하기 위해서, 설명을 위해, 다수의 구체적인 상세 내용들이 제시된다. 그러나, 당업자라면 이들 구체적인 상세 내용들이 없이도 본 발명이 실시될 수 있다는 것은 자명할 것이다. 몇몇 예에서는, 본 발명을 불명료하게 하지 않기 위해서 주지의 구성 및 장치들을 상세히 도시하기 보다는 블럭도 형태로 도시한다.
도 1은 설명된 기술이 적용될 수 있는 네트워크 환경(100)을 나타낸다. 도시된 바와 같이, 여러 프로세서들(104-1 내지 104-P) 및 메모리들(106-1 내지 106-M)은, 예를 들어, 컴퓨터 버스일 수 있는 네트워크(102)를 통해 서로 접속되어 있 다. 대안으로 네트워크(102)는 로컬 네트워크일 수도 있고 또는 로컬 네트워크를 포함할 수 있다는 점을 주목한다. 본 명세서에 기술된 방법 및 장치는 로컬이든지 원격이든지 통신 수단 또는 장치의 본질상 어떤 유형에라도 적용될 수 있다.
도 2는, 일 실시예에서 본 발명이 실시될 수 있는, 컴퓨터 시스템(200)을 블록도 형태로 나타낸다. 버스 시스템(202)은 중앙 처리 장치(CPU)(204), 판독 전용 메모리(ROM)(206), 랜덤 액세스 메모리(RAM)(208), 기억 장치(210), 디스플레이(220), 오디오(222), 키보드(224), 포인터(226), 각종 입/출력(I/O) 장치(228) 및 통신들(230)과 상호 접속한다. 버스 시스템(202)은 예를 들어, 시스템 버스, PCI(Peripheral Component Interconnect), AGP(Advanced Graphics Port), SCSI(Small Computer System Interface), IEEE(Institute of Electrical and Electronics Engineers) 표준 번호 1394(FireWire:파이어와이어), USB(Universal Serial Bus) 등과 같은 버스들 중 하나 이상일 수 있다. CPU(204)는 단일 컴퓨팅 자원, 다중 컴퓨팅 자원 또는 분산 컴퓨팅 자원일 수도 있다. 부가적으로, CPU(204)에 의해 예시된 서브시스템은 다른 서브시스템, 예를 들어 메모리로의 별도의 버스를 가질 수 있다. 이와 같은 일예는 AGP와 같은 그래픽에 대한 것일 수 있다. 또 다른 예는 CPU(204)에 대해 외부에 있는 메모리, 이를테면 ROM(206), RAM(208) 등에 대한 메모리 포트 인터페이스일 수 있다.
이하에 상세히 기술되는 바와 같이, 알아야 할 것은, 동작의 스피드를 올릴 수 있고/또는 지연 시간 및/또는 복잡성을 줄일 수 있는 메모리 포트 인터페이스 및/또는 프로토콜이 유용하다는 점이다. 예를 들면, 메모리에의 판독 요구 시에 는, 이하 기술되는 바와 같이, 메모리 판독을 착수하는 데 필요한 정보만을 먼저 송신함으로써 메모리의 실제 판독이 판독 요구 전부를 수신하기에 앞서서 시작될 수 있는 것이 가능하다. 예를 들어, 먼저 주소들이 송신되면, 메모리 서브시스템은 메모리 콘텐츠의 판독을 시작할 수 있다. 아마도, 판독 요구가 액세스되고 있는 워드 중의 한 바이트만을 원하지만, 이 바이트만의 정보는 주소들이 송신된 후에 송신될 수 있고, 메모리 서브시스템이 요구된 바이트만을 송신하기에 적당한 때에 도착할 수 있다. 이런 식으로, 동작들은 동시에 또는 다른 동작들에 앞서서 처리될 수 있다. 이와 유사하게, 만약 메모리 서브시스템이 메모리를 액세스하였고 일정 시간 후에 어떤 결과를 얻을 것을 안다면, 이하 기술되는 바와 같이, 실제 데이터에 앞서서 판독 리턴 헤더(read return header)를 송신하는 것이 가능하다. 이에 따라 데이터를 수신하는 장치는 데이터가 다가오는 것을 앎으로써 이에 대비할 수 있게 된다. 예를 들면, 판독 리턴 헤더는 어떤 판독 요구가 다가오는 데이터와 연관되는지를 식별하고, 장치로 하여금 데이터가 도착하기 전에 그 데이터가 어디로 가야할 지를 결정하게 해주는 정보를 가질 수 있다. 이 판독 리턴 헤더 정보를 실제 데이터에 앞서 송신함으로써, 장치는 데이터가 실제로 도착하기 전에 데이터의 행선지를 결정할 시간을 갖게 된다.
도 3은 메모리 포트 인터페이스(300)의 일 실시예를 블럭도 형태로 나타낸다. 이 실시예에서, 메모리 포트(320)는 (프로세서 모듈(310) 내에 있는) 프로세서와 그 로컬 메모리(340 및 342) 간의 고속이고 효율적인 상호 접속(pin-efficient interconnect)이다. 메모리 포트 인터페이스의 프로토콜층(때때로 메모 리 포트 프로토콜이라 함)은 임의의 특정 메모리 기술과 무관하며, 따라서 메모리 기술 및 미래의 메모리 로드맵 문제로부터 프로세서를 격리시킨다. 이 프로토콜층은 그 중에서도 특히, 메모리 요구의 지연 시간을 줄이고 구현의 복잡성을 줄이는 이 명세서의 당면 과제인 특정한 특징을 갖는다.
프로세서 모듈(310)은, 예를 들면, IO(302), 메모리 포트(320) 등을 통해 갖가지 다른 장치들과 인터페이스할 수 있다. 메모리 포트(320)는, 도 3에 도시된 바와 같이, 프로세서 모듈(310)로부터 XMB(eXternal Memory Bridge:외부 메모리 브리지)(330)으로의 전용 인터페이스로 간주될 수 있다. XMB(330)는 원시 메모리, 이를테면 두 뱅크의 DRAM(340 및 342)에 대한 메모리 제어기(338) 및 인터페이스를 포함할 수 있다. 따라서, XMB(330)는 메모리 타입 (기술 및 속도), 메모리 편성(DRAM 사이즈, 모듈당 DRAM의 수, 및 채널의 수), 및 메모리 제어(타이밍, 리프레시, 및 전원 관리)와 같은 메모리 의존성을 캡슐화한다.
메모리 포트(320)는 물리적 상호 접속 및 프로토콜의 양자로 구성될 수 있다. 물리적 상호 접속은 여러 병렬 상호 접속으로 구성될 수 있거나, 또는 여러 병렬 상호 접속으로 간주될 수 있다. 예를 들면, 데이터용의 주 링크 및 제어용의 또 다른 링크층(때때로 사이드밴드라 함)이 있을 수 있다. 프로토콜은 물리적 상호 접속을 거쳐 통신되는 명령, 데이터, 응답 등으로 구성될 수 있다. 예를 들면, 메모리 포트 명령들은 메모리 판독 및 기입; 장치 판독 및 기입; 및 구성 판독 및 기입으로 구성될 수 있다. 또한, 링크층은 판독 리턴 헤더, 기입 확인(write acknowledgement), 상태 등과 같은 인바운드(inbound) 및 아웃바운드(outbound) 정 보를 가질 수 있다.
메모리 포트 트래픽은 메모리, 장치, 및 구성 판독 및 기입 명령들로 구성될 수 있다. XMB(330)의 복잡성을 최소화하기 위해서, 일 실시예에서는, 프로세서 메모리 인터페이스(PMI: Processor Memory Interface)(308)가 모든 데이터 전송을 개시한다. 복잡성을 더욱 줄이기 위해서, 일 실시예에서는, 메모리 포트(320)가 XMB(330)에 의해 개시된 데이터 전송을 지원하지 않는다. 일 실시예에서, 복잡성은 XMB(330)에서 또는 XMB(330)을 통해 I/O 또는 그래픽 장치들을 지원하지 않는 메모리 포트(320)에 의해 감소된다. 복잡성의 추가적인 감소는 어떤 코히어런시 트래픽(coherency traffic)도 지원하지 않는 메모리 포트(320)에 의해 성취될 수 있다.
프로세서 모듈(310)에서, 메모리 포트(320)는 PMI(308) 내에 캡슐화된 기능성을 포함한다. PMI(308)는 기입 버퍼들, 흐름 제어, 오류 처리, 그리고 제어 및 상태 레지스터 등과 같은 것들을 포함할 수 있다. XMB(330)에서 메모리 포트(320)는 XMI(332) 내에 캡슐화된 이러한 기능성을 포함할 수 있다. XMI(332)는 또한 판독 및 기입 버퍼들, 오류 로깅(error logging), 제어 및 상태 레지스터 등을 포함할 수 있다.
일 실시예에서, 메모리 포트(320)는 메모리 트래픽이 메모리 판독 및 기입 뿐이라는 정보를 활용할 수 있고, 따라서 메모리 요구에 대해 최적화하여 복잡성을 최소화하면서 성능을 최대화할 수 있다. 본 명세서는 메모리에 대한 판독 요구를 착수하는 지연 시간을 줄이는 것과 관련한 메모리 포트(320)에서의 두개의 이와 같 은 최적화 및 메모리 포트(320)에서의 사이드밴드 판독 리턴 헤더의 사용과 관련된 제3 최적화를 설명한다.
도 4A는 판독 패킷이 기입 패킷을 강제 중단(preempt)시킬 수 있는 방법(400)을 나타낸다. 판독 패킷은 판독 명령 및 판독할 주소 또는 주소의 범위를 포함할 수 있다. 유사하게, 기입 패킷은 기입 명령, 기입할 주소 또는 주소의 범위, 및 기입할 데이터(기입 데이터)를 포함할 수 있다. 판독 및/또는 기입 패킷은, 전송될 정보의 양 및 통신 채널의 폭 때문에, 하나 이상의 전송으로 송신될 수 있다. 기입 패킷은 기입될 데이터의 형태로 추가적인 정보를 가지기 때문에, 기입 패킷은 판독 패킷 보다 많은 전송을 필요로 할 수 있다.
402에서는 입력이 수신된다. 404에서는 402에서 수신된 입력이 판독 패킷의 일부인지가 결정된다. 만약 판독 패킷의 일부라면, 406에서는 판독 패킷이 완전한지를 확인하기 위해서 체크가 이루어진다. 만약 판독 패킷이 완전하다면, 408에서 판독이 수행되고, 402에서는 다른 입력이 수신된다. 만약 406에서 판독 패킷이 완전하지 않다고 결정되면, 402에서 다른 입력이 수신된다.
404에서, 수신된 입력(402)이 판독 패킷의 일부가 아니라고 결정되면, 410에서는 402에서 수신된 입력이 기입 패킷의 일부인지를 결정한다. 수신된 입력(402)이 기입 패킷의 일부가 아니라면 416에서 어떤 다른 동작이 수행되고, 402에서는 다른 입력이 수신된다. 410에서, 수신된 입력(402)이 기입 패킷의 일부라고 결정된다면, 412에서는 기입 패킷이 완전한지를 결정한다. 기입 패킷이 완전하면, 414에서 기입이 수행되고, 402에서는 다른 입력이 수신된다. 410에서, 402에서 수신 된 입력이 기입 요구 패킷의 일부가 아니라고 결정되면, 어떤 다른 동작(416)이 일어날 수 있고 입력을 수신하기 위해서 402로 되돌아간다.
그러므로, 판독 패킷이 기입 패킷을 강제 중단시키는 것이 가능해진다. 일 실시예에서, 판독 명령 및 판독할 주소 또는 주소들로 구성된 판독 패킷은 단일 전송 또는 단일 플릿(flit)일 수 있다. 기입 패킷은 기입 명령, 기입할 주소 또는 주소들을 가지는 단일 전송 및 관련 기입 데이터를 가지는 다른, 어쩌면 다중 전송들로 구성된다. 설명의 편의를 위해서, 판독 명령 및 판독될 주소 또는 주소들을 포함하는 판독 패킷을 판독 요구라 한다. 그러므로, 판독 요구 및 판독 패킷은 동일한 정보를 전달한다. 설명의 편의를 위해서, 기입 명령 및 기입할 주소 또는 주소들을 포함하는 기입 패킷의 일부를 기입 요구라 한다. 기입 패킷의 데이터 부분은 기입 데이터라 한다. 그러므로, 기입 패킷은 기입 요구 및 기입 데이터를 포함한다.
그러므로, 예를 들어, 기입 요구가 402에서 수신된다고 가정하자. 기입 요구는 404로 보내지고 판독 패킷의 일부가 아닌 것이 410으로 보내진다. 410에서 이것은 기입 패킷의 일부이므로 412로 진행한다. 412에서는 이것이 단지 기입 요구일 뿐 기입 데이터가 수신되지 않았다고 결정되므로, 기입 패킷이 완전하지 않고, 그래서 402로 되돌아간다. 만약 402에서 판독 요구가 지금 수신된다면, 404로 진행하여, 여기서 판독 요구가 판독 패킷의 일부라고 결정되어 406으로 진행한다. 406에서는 판독 패킷이 완전한지에 대한 결정이 이루어진다. 이 실시예에서는, 판독 요구가 완전한 판독 패킷을 포함하는 것으로 정의했으므로 408에서 판독을 수행 하고, 402로 되돌아간다. 이 예에서는, (기입 요구의 수신에 의해) 시작된 기입 동작은 완료되지 않았고 판독 요구가 기입을 강제 중단하였다.
도 4A의 순서에 따르면, 판독 요구는 기입 데이터의 맨 끝이 수신될 때까지 어디서든 기입을 강제 중단시킬 수 있다. 그러므로, 예를 들어 기입 패킷이 기입 요구 및 4개 전송의 기입 데이터를 포함한다면, 판독 요구는 기입 요구, 제1, 제2, 또는 제3 기입 데이터 후에 수신되더라도 기입 패킷을 강제 중단시킬 수 있다.
다른 실시예에서, 판독 요구는 완전한 판독 패킷을 포함하지 않을 수 있다. 이러한 실시예에서는, 406에서 완전한 판독 패킷에 대한 체크가 완전하지 않을 수 있고 그러한 사정에서는, 다른 입력을 수신하기 위해서 402로 진행할 것이다. 완전한 판독 패킷이 수신된 경우에는, 406에서 408로 진행되며 판독을 수행한 후, 입력을 수신하기 위해서 402로 되돌아간다.
기입 요구 또는 기입 데이터 후에 수신되는 판독 요구가 먼저 수신된 기입 요구 또는 기입 데이터를 강제 중단시킬 수 있게 함으로써 결과적으로 기입에 앞서 판독이 실행된다. 이것은, 메모리가 먼저 기입에 응답하고 난 후 판독 요구에 응답해야 하는 경우보다 고속으로 판독 요구에 응답할 수 있게 한다.
판독 및/또는 기입 요구들을 송신하는 에이전트가 순서 장애(ordering hazard)를 방지할 수 있음은 물론이다. 즉, 송신 에이전트는 판독 및 기입 요구를 내릴 수 있는 방법을 제한하길 원할 수 있다. 예를 들면, 송신 에이전트는 복잡성을 줄이기 위해서 하나의 판독 요구가 또 다른 판독 요구를 강제 중단시킬 수 없는 것으로 결정할 수 있다.
도 4B는 판독 패킷이 기입 요구를 강제 중단시킬 수 있는 본 발명의 다른 실시예(450)을 나타낸다. 이 예에서는, 판독 및 기입 패킷만을 고려한다. 게다가, 도 4B는 기입 패킷이 판독 요구에 의해 강제 중단될 수 있지만 도4A에서 가능했던 다른 기입 요구에 의해서는 강제 중단될 수 없는 실시예를 나타낸다. 도 4B에서, 입력은 452에서 수신된다. 454에서는 이 입력이 판독 패킷인지를 체크한다. 이것이 판독 패킷이라면 456에서 판독이 수행되고 452에서 입력을 수신하기 위해서 되돌아간다. 452에서 수신된 입력이 판독 패킷이 아니라면, 458에서 기입 패킷인지를 체크한다. 기입 패킷이 아니라면 452에서 입력을 수신하기 위해서 되돌아간다. 한편, 458에서 패킷이 기입 패킷이라면 460 내지 470으로 부호가 붙여진 "내부 루프"의 동작들로 진입한다.
이 내부 루프는, 460에서는 입력을 수신하고, 462에서는 판독 패킷인지를 체크하고, 만약 판독 패킷이라면 464에서 판독을 수행하고 입력을 수신하기 위해서 460으로 되돌아가는 것에서 알 수 있는 바와 같이, 판독 패킷 강제 중단을 허용한다. 그러나, 외부 루프(452 내지 458)로 되돌아가는 유일한 방법은 468에서 기입 패킷이 완전하여 470에서 기입이 수행되는 때이다. 458에서부터 내부 루프로 들어가면, 기입 데이터가 존재하는지를 결정하기 위해서 466에서 체크된다. 기입 데이터가 없다면 460에서 입력을 수신하도록 진행한다. 기입 데이터가 있다면 468에서 기입 패킷이 완전한지를 확인하기 위해서 체크가 이루어진다. 기입 패킷이 완전하지 않다면 460에서 입력을 수신하도록 진행한다. 그러나, 기입 패킷이 완전하다면, 470에서 기입이 수행되고 452에서 외부 루프로부터 입력을 수신하도록 진행한 다. 그러므로, 도 4B는 단일 기입 패킷만이 (판독 패킷 내의) 판독 요구 또는 다중 판독 요구들(즉, 470에서 기입하기 전에 1번 이상 루프(460, 462, 464)가 경유되는 경우)에 의해 강제 중단되도록 하는 실시예를 나타낸다.
상기 논의에서는, 예를 들어, 판독 요구가 판독 명령 및 판독될 주소 또는 주소들을 어떻게 포함할 수 있는지를 상술하였다. 부가적으로, 예를 들어, 요구의 무결성을 보장하는 오류 정정 비트들과, 제어 정보 등의 다른 정보도 전달될 수 있다. 본 발명의 논의의 편의를 위해서, 용어 '플릿(flit)'은 하나의 실체(entity) 또는 동작과 관련된 정보 전송의 단위를 나타내는 데 사용되고, 이것은 하나 이상의 전송들로 구성될 수 있다. 패킷은 하나 이상의 플릿들로 구성될 수 있다. 그러므로, 예를 들어, 판독 요구 패킷은 판독 요구와 관련된 모든 정보를 나타내는 단일 플릿으로 구성될 수 있다. 이 정보는, 특정 구현에 따라서, 완전히 송신하기 위해서 하나 이상의 전송을 필요로 할 수 있다. 예를 들어, 판독 요구 플릿이 32비트의 정보를 포함하고 컴퓨터 버스가 16 비트 전송을 실행할 수 있다면, 판독 요구 플릿의 전송을 실행하기 위해서 두개의 전송이 요구될 것이다. 플릿 및 전송의 보다 상세한 설명 및 예들이 이하 기술된다.
도 5는 메모리에 조기 판독 요구를 디스패치하는 것(500)을 나타낸다. 여기서는 502에서 입력이 수신된다. 504에서는, 502에서 수신된 입력이 판독 요구 플릿의 일부인지를 확인하기 위해서 체크된다. 그렇다면, 506에서 판독의 조기 디스패치가 가능한지를 확인하기 위해서 체크가 이루어진다. 조기 디스패치가 가능하다면 508에서 조기 판독 디스패치가 수행되고 입력을 수신하기 위해서 502로 되돌 아간다. 조기 디스패치가 불가능하다면 510에서 판독 플릿이 완전한지를 확인하기 위해서 체크가 이루어진다. 만약 완전하다면, 512에서 판독이 수행된 후 입력을 수신하기 위해서 502로 되돌아간다. 판독 플릿이 완전하지 않다면 입력을 수신하기 위해서 502로 되돌아간다. 502에서 수신된 입력이 판독 요구 플릿의 일부가 아니라고 504에서 결정되면, 어떤 다른 동작(514)이 일어난 후 입력을 수신하기 위해서 502로 되돌아간다.
판독 요구 플릿을 수신하는 동안, 메모리에의 조기 판독 요구의 디스패칭이 이루어질 수 있다. 그러므로, 메모리에 조기 판독 요구를 디스패치하기 전에 전체 판독 요구 플릿이 수신될 필요는 없다. 전체 판독 요구 플릿이 수신되는 것을 기다리지 않아도 됨으로써, 판독 요구를 발행하기 전에 전체 판독 요구 플릿이 수신되는 것을 기다릴 필요가 있었던 경우보다 빠르게 메모리가 조기 판독 요구에 응답할 수 있게 된다. 그러므로 플릿의 제1 부분이 조기 판독 요구를 포함한다면, 메모리는 메모리 콘텐츠에 대한 변경자 정보를 가질 수 있는 플릿의 제2 부분이 수신되는 동안 동시에 액세스될 수 있다. 이 변경자 정보는 결국 어떤 메모리 데이터가 송신되는지에 영향을 미칠 수 있다.
도 6A는 판독 리턴 헤더(606)를 송신하는 것(600)을 나타낸다. 여기서는 602에서 입력이 수신된다. 604에서는 이 입력이 판독 요구인지를 확인하기 위해서 체크된다. 판독 요구가 아니라면, 614에서 다른 동작이 수행될 수 있고 입력을 수신하기 위해서 602로 되돌아간다. 602에서 수신된 입력이 604에서 판독 요구인 것으로 결정되면, 두 가지 일들이 발생한다. 먼저, 606에서는 판독 리턴 헤더가 송 신되고, 입력을 위해 602로 되돌아간다. 둘째로, 608에서 판독이 개시되고, 610에서 판독 결과가 수신되며, 612에서 판독 결과가 송신된 후 입력을 수신하기 위해서 602로 되돌아간다. 그러므로, 예를 들어, 608에서 개시된 메모리 판독 및 606에서 송신된 판독 리턴 헤더는 실질적으로 동시에 발생할 수 있고/또는 판독 리턴 헤더가 판독 결과의 송신보다 조금 앞설 수 있다. 따라서, 판독 리턴 헤더(606)를 송신하기 전에 전체 판독 결과가 수신될 필요는 없다. 전체 판독 결과를 기다리지 않아도 됨으로써, 판독 리턴 헤더를 송신하기 전에 전체 판독 요구가 수신되는 것을 기다릴 필요가 있었던 경우보다 조기에 메모리 및/또는 시스템이 판독 리턴 헤더(606)를 송신할 수 있게 된다.
도 6B는 판독 리턴 헤더(656)를 송신하는 다른 실시예 650을 나타낸다. 여기서는 652에서 입력이 수신된다. 654에서는 입력이 판독 요구인지를 확인하기 위해서 체크된다. 판독 요구가 아니라면, 다른 동작(664)의 수행이 가능하고 입력을 수신하기 위해서 652로 되돌아간다. 652에서 수신된 입력이 654에서 판독 요구인 것으로 결정되면, 658에서 판독이 개시된다. 이 시점에서 두 가지 일들이 발생한다. 먼저, 656에서는 판독 리턴 헤더가 송신되고, 입력을 위해서 652로 되돌아간다. 둘째로, 660에서 판독 결과가 수신되고, 662에서 판독 결과가 송신된 후, 입력을 수신하기 위해서 602로 되돌아간다. 그러므로, 예를 들어, 658에서 개시된 메모리 판독의 결과로 656에서 판독 리턴 헤더가 송신된다. 이 헤더는 판독 결과의 수신(660) 및 송신(662)과 병행하여 송신되고, 따라서 판독 리턴 헤더는 판독 결과의 송신보다 앞설 수 있다. 따라서, 판독 리턴 헤더(656)를 송신하기 전에 전 체 판독 결과가 수신될 필요는 없다. 전체 판독 결과를 기다리지 않아도 됨으로써, 판독 리턴 헤더를 송신하기 전에 전체 판독 요구가 수신되는 것을 기다릴 필요가 있었던 경우보다 조기에 메모리 및/또는 시스템이 판독 리턴 헤더(656)를 송신할 수 있게 된다.
(606 또는 656에서 송신된) 판독 리턴 헤더의 일 실시예에서, 판독 리턴 헤더는 그 안에 부호화된 식별자를 가지며, 이 식별자는 당해 판독 리턴 헤더를 이 판독 리턴 헤더가 송신되도록 한 판독 요구와 관련시키는 것이다. 이 방법으로, 예를 들어, PMI(308)는 판독 리턴 헤더 식별자를 통해 그 판독 리턴 헤더가 어떤 판독 요구와 관련되는지(및 그 결과 다가오는 데이터)를 식별할 수 있다.
606 또는 656에서 송신된 판독 리턴 헤더를 전송하는 실제 경로는, 주 데이터 경로가 가능하지만, 사이드밴드가 바람직하고 데이터로부터 이미 알고 있는 고정된 오프셋을 갖는 사이드밴드가 바람직하다는 것을 알 수 있을 것이다. 즉, 데이터 경로와 병행하여 사이드밴드 경로(링크층)를 사용하고 사이드밴드 경로가 관련된 판독 데이터에 앞서 판독 리턴 헤더를 운반하게 함으로써, 수신 장치가 데이터를 수신하기에 앞서 데이터가 어디로 가야할지를 결정할 수 있게 된다. 그러므로, 데이터에 앞서 판독 리턴 헤더가 송신된다면 지연 시간의 감소를 달성할 수 있다.
도 7은 메모리 포트 인터페이스(700)의 일 실시예를 나타낸다. 이 실시예에서, 메모리 포트는 양방향(full duplex) 상호 접속(메모리 포트 링크 720 및 740)이다. (프로세서 모듈(710) 및 PMI(708)로부터 이탈하는) 아웃바운드 방향에서, 메모리 포트 링크(720)는 두개의 정보 스트림으로 구성된다. 하나의 스트림은 폭 w의 데이터 스트림이고 두 번째 스트림은 폭 x의 링크층 스트림이다. 상기와 같이, 발명을 논의하기 위해서, 관련된 데이터 및 링크층 정보의 편리한 그룹핑을 플릿이라 부른다. (프로세서 모듈(710) 및 PMI(708) 내로의) 인바운드 방향에서, 메모리 포트 링크(740)는 두개의 정보 스트림으로 구성된다. 하나의 스트림은 폭 y의 데이터 스트림이고, 두 번째는 폭 z의 링크층 스트림이다.
예를 들어, 도 8은 메모리 포트 프로토콜(800)의 일 실시예를 나타낸다. 이 실시예에서, 플릿(802)은 유휴(idle)(802a) 및 링크층(LL)(802b) 정보를 나타내는 데이터로 구성된다. 유사한 방식으로, 플릿들(804 내지 816)(일반적으로 8XX)은 각각 8XXa 및 8XXb 부분으로 구성된다. 이 실시예는 80 비트를 갖는 플릿의 일 실시예를 나타내는데, 여기서 데이터 버스 폭 w는 18 비트 폭이고 링크층 버스 폭 x는 2 비트 폭이다. 예시된 실시예는 단일 플릿당 4개의 전송들을 필요로 하고, 페이로드에 72 비트 및 링크층에 8 비트가 있다.
예를 들어, 도 9는 4개의 전송들을 필요로 하는 플릿(900)을 나타낸다. 여기서, 플릿(910)은 72 비트의 데이터 및/또는 명령(d/c) 정보 및 8 비트의 링크층(LL) 정보를 갖는다. 여기서, 전송들은 시간 910a-0 및 910b-0 에서 20 비트가 전송되고, 이후에는 910a-1 및 910b-1 등에서 20 비트가 전송된다. 도 9는 동일 시간 프레임에서 일어나는 d/c 및 LL 전송을 보이고 있지만, 이것은 필요 조건이 아니다. 즉, 하나의 플릿 내의 특정한 전송과 관련될 수 있는 LL 데이터는 각각의 d/c 전송으로부터 시간적으로 변위될 수 있다. 게다가, 시간적 변위는 플 릿 경계를 가로지를 수도 있다.
링크층(LL)은, 예를 들어, 제어 비트 및 주기적 덧붙임 검사(CRC: cyclic redundancy check) 비트를 가질 수 있다. 제어 비트는, 예를 들어, 헤드, 테일, 또는 유휴를 나타낼 수 있다.
도 8로 돌아가 참조하면, 기입 패킷(818)이 보통은 기입 요구 및 관련 데이터만을 포함한다는 것을 주목하여야 한다. 그러나, 본 발명에서는, 도 8에 나타낸 바와 같이, 이와 같은 제약이 요구되지 않는다. 기입 패킷(818)은 기입 요구 플릿(804), 관련 데이터 플릿(806, 808, 812, 814 및 816)은 물론이고 판독 요구 패킷 플릿(810)도 그 안에 가지고 있는 것으로 도시되어 있다.
도 10은 96 비트를 갖는 플릿(1000)의 다른 실시예를 나타내는데, 여기서 데이터 버스 폭 y는 18 비트 폭이고, 링크층 버스 폭 z는 4 비트 폭이다. 이 실시예는 단일 플릿에 대해 4개의 전송들을 필요로 하고, 64개의 데이터 비트, 8개의 체크 비트, 및 링크층 내에 16 비트가 있다. 각 플릿(1002 내지 1016)은 패이로드 패킷 10xxa 및 관련된 링크층(LL) 패킷 10xxb를 가질 수 있다. 도 10은 프로세서 모듈에의 입력을 나타낼 수 있다. 링크층(LL)은, 예를 들어, 링크층 제어 비트 및 CRC 비트를 가질 수 있다. 제어 비트는, 예를 들어, 판독 헤더, 기입 헤더, 데이터, 테일이 있는 데이터, 유휴, 기입 ack(확인), 흐름 제어 등일 수 있다.
LL 제어가 페이로드와 관련되기는 하지만, 동시에 송신될 필요는 없다는 것을 또한 알아야 할 것이다. 예를 들어, 프로세서 모듈이 판독 데이터가 얼만 안 있어 도착할 것이라는 사전 정보를 가지고 있다면 성능을 향상시킬 수 있을 것이 다. 그러므로, 예를 들어, LL에 있는 조기 판독 헤더가 이와 같은 지시를 제공할 수 있다. 예를 들어, 도 10에서, 플릿 데이터(1006a)와 관련된 LL은, 시간적으로 이른 위치, 예를 들어, 위치 1004b에 있을 수 있다. 그러므로, 1106과 같은 플릿은 도 11에 도시된 바와 같이, 위치 1106a에 페이로드를 위치 1106b에 LL 제어를 포함할 수 있다. 따라서, 도 11은 플릿 1100에서 링크층 및 페이로드의 시간적 변위를 나타낸다.
(PMI(308)로의) 인바운드 사이드밴드 링크층(LL)은 또한 다른 전송 및/또는 트랜잭션에 대한 정보를 포함할 수 있다. 예를 들어, LL은 아웃바운드 기입 명령을 확인하는 기입 확인, 아웃바운드 흐름 제어 피드백에 대한 정지 비트, 상태 지시(유휴 대 데이터 페이로드 등) 등을 포함할 수 있다. 또한, 플릿과 관련된 LL은 한개 이상의 정보를 전달할 수 있고, 예를 들어, LL 코딩은 유휴 페이로드나 비유휴 페이로드를 나타낼 수 있고, 게다가 그것이 판독 리턴 헤더인지, 기입 확인인지, 정지 지시인지, 유휴 제어인지 등을 나타낼 수 있다. 또한, 상술한 바와 같이, 이 정보는 시간적으로 시프트될 수 있다는 것을 알아야 할 것이다.
시간적으로 정보를 시프팅함으로써 인터페이스의 복잡성이 감소할 수 있다. 예를 들어, 판독 리턴 헤더를 판독 리턴 데이터와 함께 대역 내에 둘 경우 XMI(332)에 부가적 기능성을 부과할 수 있는데, 그 이유는 XMI(332)가 헤더 및 데이터 정보를 다중화(multiplex)해야 하고 XMI(332)가 메모리 판독 대역폭을 인라인 헤더의 대역폭 오버헤드에 대한 보상에 필요한 약간 높은 인바운드 메모리 포트 대역폭과 레이트 일치(rate match)시키기 위해 착신되는 판독 리턴 데이터를 버퍼링해야 하기 때문이다. 이러한 추가적인 기능성은 추가적인 복잡성 및 있음직한 추가적인 지연 시간을 수반할 수 있다. 대신에, 판독 리턴 헤더를 시간적으로 시프트된 사이드밴드에 둠으로써 XMI(332) 데이터 경로가 메모리 버스와 동일한 주파수에서 동작하도록 할 수 있고, 그에 의해 XMI(332)가 판독 리턴 데이터 경로에서 버퍼링 또는 다중화 없이 동작할 수 있게 한다. 그러므로, 데이터 경로와 병행하여 사이드밴드 경로(링크층)를 사용하고 사이드밴드 경로가 관련된 판독 데이터에 앞서서, 아마도 비연속적으로(non-contiguously), 판독 리턴 헤더를 운반하게 함으로써, 조정 및 제어 로직(steering and control logic)이 수신되는 데이터에 앞서서 먼저 동작할 수 있게 된다. 판독 리턴 헤더가 데이터에 앞서서 송신될 수 있다면 지연 시간의 감소가 달성될 수 있다. 헤더는 0 플릿 이상의 플릿만큼 판독 리턴 데이터보다 앞설 수 있다(판독 리턴 오프셋은 초기화 시간에서 결정될 수 있다). 조기 판독 리턴 헤더는 프로세서가 헤더 디코드 및 데이터 조정 로직을 임계 경로(critical path) 밖으로 옮길 수 있게 하고 착신되는 판독 리턴 데이터를 프로세서 내의 적절한 행선지로 곧바로 인도할 수 있게 한다.
판독 리턴 헤더가 데이터에 앞서서 송신될 수 있는 시간(오프셋)은 어떤 시점에서 고정될 수 있고 또는 동적일 수도 있다. 예를 들어, 고정된 지연은 시스템 초기화 시간에 결정될 수 있다. 대안으로, 이 시스템은 동작 중에 이것을 결정할 수 있고, 이것을 정적으로 만들 수 있다. 다른 실시예는 판독 리턴 헤더 내에 부호화된 데이터에 대한 오프셋 시간을 가질 수 있다. 그러므로, 당업자라면 많은 가능한 실시예들이 존재한다는 것을 알 수 있을 것이다.
시간적으로 정보를 시프팅함으로써 PMI(308) 인터페이스의 복잡성이 또한 감소될 수 있다. 즉, PMI(308)는 주 데이터 경로 상의 데이터에 앞서서 사이드밴드를 통해 정보를 전송한다면 복잡성 및/또는 지연 시간을 줄일 수 있다. 당업자라면 지연 시간 및/또는 복잡성의 감소가 인바운드 방향뿐만아니라 아웃바운드 방향에서도 달성될 수 있음을 알 수 있을 것이다.
도 12는 메모리 포트 프로토콜(1200)의 다른 실시예를 나타내는데, 여기서 데이터 및 명령 폭은 36 비트이고 링크층은 4 비트이다. 유휴 플릿들(1202, 1204, 1216, 1220 및 1234)은 그들 각각의 "a" 부분(1202a, 1204a, 1216a, 1220a 및 1234a)에 유휴 페이로드를, 그들 각각의 "b" 부분(1202b, 1204b, 1216b, 1220b 및 1234b)에 링크층(LL) 제어 코드를 가질 수 있다. 표준 기입 패킷(1240)은 기입 관련 데이터, 이를테면 기입 요구(1206) 플릿 및 기입 데이터 플릿들(1208 내지 1214)만을 갖는다. 각 플릿은 추가 정보를 나타낼 수 있는 LL 제어를 갖는다. 예를 들어, 데이터 0, 데이터 1 및 데이터 2(각각, 1208a, 1210a 및 1212a)는 데이터가 기입 데이터라는 것을 나타내기 위해서 링크층(LL) 제어(각각, 1208b, 1210b 및 1212b) 내에 정보를 가질 수 있다. LL(1214b)는 1214a가 기입 데이터이고 기입 데이터의 테일임을 나타낼 수 있다. LL(1206b)는 기입 요구(1206a) 명령에 대한 추가 정보를 나타낼 수 있다.
플릿(1218)은 기입 패킷을 강제 중단시키지 않는 판독 요구를 나타낸다. 판독 요구 플릿(1218)은 관련 링크층(1218b) 내에 판독 요구 식별 및 있음직한 추가 정보를 포함하는 관련 판독 요구(1218a)를 갖는다. 대안으로, 판독 요구 식별 및/ 또는 추가 정보는 1218a 및/또는 1218b 내에 위치될 수 있다.
판독 요구에 의해 강제 중단된 기입 패킷은 1228에 예시되어 있다. 여기서, 기입 요구 플릿(1222) 및 기입 데이터 플릿들(1224, 1226, 1230, 및 1232)을 갖는 기입 요구 패킷은 데이터 1 플릿(1226)과 데이터 2 플릿(1230) 사이에 판독 요구 플릿(1228)을 갖는다. 이 판독 요구 플릿(1228)은, 판독 요구(1228a) 및 관련 링크층(1228b)를 가지며, 기입 요구 플릿(1222)을 강제 중단하였다.
상술한 바와 같이, 표준 기입 패킷(1240)에 대해서, 기입 요구 플릿(1222) 및 관련 기입 데이터 플릿들(1224, 1226, 1230, 및 1232)은 "a" 페이로드 및 관련 "b" 링크층 제어를 갖는다.
명령, 필드 비트 정의, 링크층 제어 등에 대한 가능한 실시예들이 이하 상세히 기술된다. 이들 특정 예들은 본 발명에 대한 이전 논의들을 한정하는 것으로 간주되어서는 안된다는 것을 알아야 한다. 이들 예들은 단지 설명을 위해서 제시되었을 뿐이다.
다시 도 3을 참조하면, PMI(308)은 메모리 포트(320) 메모리 명령들 및 구성 명령들을 내릴 수 있다. 이 예에서, XMI(332)는 메모리 포트(320)를 통해 어떤 명령들도 내리지 않는다. 게다가, 부분 메모리 기입은 도시되지 않는다.
여기에는 3가지 일반 유형의 명령들, 즉 메모리, 장치, 및 구성 명령이 있다.
메모리 명령, 이를테면 판독, 기입 및 취소는, 일반적으로, 순수 메모리(예를 들면, DRAM)로 행동하는 XMB(330)에 접속 및/또는 포함된 주 메모리를 타깃으로 한다.
장치 명령, 이를테면 판독 및 기입은, 일반적으로, 순수 메모리로 행동하지 않는 메모리 위치를 타깃으로 한다. 예를 들어, 플래시 메모리 및/또는 장치 레지스터로의 기입은 기입 (및 때로는) 판독이 부작용을 갖는 메모리 공간으로 맵핑된다. 이러한 경우에, 각각의 기입 명령은 타깃에서 정확히 한번 실행하기를 원할 수 있다. 더욱이, 그러한 명령들은 소스에 의해 명령이 내려지는 동일한 순서로 타깃에서 실행하기를 원할 수 있다.
장치 명령은 메모리 명령과 유사하고, 데이터 전송 사이즈를 나타내는 사이즈 필드 또는 비트를 가질 수 있다. 가능한 사이즈는, 예를 들어, 1 내지 8 바이트, 16, 32, 또는 64 바이트, 및/또는 풀 캐시라인(full cacheline)의 데이터를 포함할 수 있다. 데이터 전송 사이즈에 상관없이, 명령 페이로드는 사이즈에서 풀 캐시라인일 수 있고, 필요에 따라 데이터 전송이 끝나는 데서 캐시라인까지 1 및/또는 0으로 메워질 수 있다.
장치 명령은 또한 부분 판독 및/또는 기입을 지원하는 마스크 비트를 가질 수 있다. 예를 들어, 판독 명령에서, 이 마스크는 판독할 바이트의 위치, 및 판독 리턴에서 어떤 바이트가 유효한지를 나타낼 수 있다. 기입 명령에서는, 바이트 마스크는 페이로드에서 어떤 바이트가 유효한지를 나타낼 수 있다.
구성 명령, 이를테면 판독 및 기입은 장치 및/또는 레지스터, 예를 들어, PCI 구성 공간에서의 위치들을 타깃으로 할 수 있는 특별한 종류의 장치 명령으로 간주될 수 있다. 게다가, 명령의 성질 때문에, PMI(308)는 한번에 단 하나의 구성 명령만이 두드러지도록 할 수 있다.
모든 명령 타입은 공통 기본 포맷(common base format)을 공유할 수 있다. 예를 들어, 명령 플릿은 플릿 페이로드 내에 부호화된 72 비트 명령을 64개의 명령 비트 및 8개의 체크 비트로서 포함할 수 있다. 메모리 판독 요구에 대한 지연 시간을 최소화하기 위해서, 판독 명령 포맷은 플릿의 전반부(first half)에 모든 임계 정보(critical information)를 가질 수 있고, 따라서 XMI(332)가 전체 플릿을 수신하기 전에 메모리에의 판독 요구의 디스패치를 가능하게 한다.
조기 표시자, 예를 들어, 명령에서의 일 비트는 플릿의 전반부가 메모리 판독 요구를 착수하기에 충분한 정보를 포함하는지, 또는 XMI(332)가 전체 플릿 내의 정보를 축적해야 하는지를 나타낼 수 있다. 이 비트는 메모리 판독 명령에 대해서만 설정될 수 있다. 그렇지 않으면, XMI(332)는 구성 명령, 장치 명령, 또는 메모리 기입 명령에 대한 메모리 판독 요구들을 정확하게 착수할 수 없을 것이다. 그러나, 모든 메모리 판독 명령에서 조기 비트가 활성으로 설정되지 않을 수도 있다. 예를 들어, 플릿의 후반부에 특정 스케줄링 정보, 예를 들어, 스트림 식별 또는 우선 순위를 갖는 어떤 메모리 판독 명령은 메모리 판독 요구를 디스패치하기 전에 XMI(332)가 이 정보를 참작하게 하기 위해 조기 비트를 비활성으로 강제할 수도 있다.
명령 행선지 비트는 메모리 명령, 장치 명령, 또는 구성 명령과 같은 명령 타입을 표시할 수 있다.
일 실시예에서는, 판독/기입 비트와 함께, 트랜잭션 (태그) 비트가 각 명령 에 대한 고유 ID를 포함한다. 고유 ID는, PMI(308)가 관련 트랜잭션 ID를 갖는 당해 타입의 임의의 이전 명령에 대한 응답을 수신하거나 또는 PMI(308)가 그 트랜잭션 ID를 갖는 당해 판독/기입(rd/wr) 타입의 임의의 이전 명령이 타임 아웃된 것으로 결정할 때까지 후속 명령에 대해 재사용되지 않을 수 있다.
취소 비트는 메모리 판독 명령이 이전의 메모리 판독 명령을 취소하는지를 나타내는 변경자이다.
메모리 명령의 경우에, 오프셋 비트는 메모리 판독 및 기입을 위한 주소 비트에 의해 특정된 메모리 위치로부터의 오프셋을 식별한다. 장치 명령의 경우에, 주소 비트와 결부된 이 오프셋은 (예를 들면, 메모리 맵 장치 레지스터로의) 타킷 위치를 특정할 수 있다.
상술한 바와 같이, 스트림 id/우선 순위는 메모리 판독 명령이 속하는 스트림 또는 XMI(332)가 서로 다른 메모리 요구에 대해 서로 다른 스케줄링 정책을 적용하게 하는 메모리 판독 명령 우선 순위를 부호화하도록 정의될 수 있다. 예를 들어, 이 필드는 메모리 명령이 등시성 스트림(isochronous stream)에 속하는지를 나타낼 수 있고, 그러므로 등시성 데이터 전달 마감 시간을 맞추기 위해 특정 서비스 시간을 필요로 할 수 있다.
마스크 비트는 장치 및 구성 명령에 대한 부분 판독 및 기입에 있어서 어떤 바이트가 유효한지를 표시하는 비트 벡터 바이트 마스크일 수 있다.
사이즈 비트는 장치 및 구성 명령을 위한 데이터 전송 사이즈를 나타낼 수 있다. 이와 같은 명령들에 대한 가능한 데이터 전송 사이즈는 1 내지 8 바이트(마 스크 비트와 함께), 16 바이트, 32 바이트, 64 바이트 등 및 풀 캐시라인 사이즈이다.
각 명령들의 무결성(integrity)은 플릿의 후반부에 분포된 체크 비트를 갖는 72 비트 명령에 대해 오류 정정 코드(ECC: Error Correcting Code)를 사용하여 보호될 수 있다. 그러나, 전체 명령 플릿이 수신되고 ECC 오류 체크가 완료될 때까지 XMI(332)는 조기 비트를 힌트로 간주하고, 명령에 대해 조기에 디스패치된 임의의 메모리 판독 요구를 확실치 않은(speculative) 것으로 간주하고 싶어할 수도 있다. 결과적으로, XMI(332)는 그와 같은 확실치 않은 조기 메모리 판독 요구를 그것이 디스패치되기 전에 처리하기 위한 충분한 자원을 확보하기를 원할 수 있다. 예를 들어, XMI(332)는 조기 판독 요구를 디스패칭함으로써 메모리 제어기 판독 요구 대기열의 오버플로가 초래되지 않도록 보증하여야 한다.
기입 명령 필드에서는, 이 실시예에서의 부호화 및 복호화를 단순화하기 위해서, 이들 필드들은 오프셋 및 코드 필드를 제외하고 판독 명령의 경우와 동일할 수 있다.
도 13은 메모리 명령 포맷(1300)의 일 실시예를 나타낸다. 이 예에서, 플릿당 4개의 전송과 전송당 18 비트를 갖는 물리층을 가정한다. 즉, 이 명령은 4개 전송에서 전달되는 72 비트를 갖는다. 각 전송(전송 0, 1, 2, 3)은 상호 접속을 가로질러 하나의 비트 셀 시간과 대응한다고 가정한다. 예를 들어, 제1 전송(전송 0) 동안에는, 내림 차순 주소 비트 및 판독/기입 명령이 전송될 수 있다. 전송 1 동안은 오름 차순 주소 비트 및 조기 판독 표시자가 전송될 수 있다. 전송 2 및 3 동안은, 명령 행선지, 주소로부터의 오프셋, 트랜잭션 ID, 체크, 마스크, 스트림 ID, 사이즈, 취소 명령, 우선 순위 등을 나타내는 비트들이 전송될 수 있다.
도 14는 장치 명령 포맷(1400)의 일 실시예를 나타내는데, 여기서는 플릿당 4개의 전송과 전송당 18 비트를 갖는 물리층을 가정한다. 여기서는, 전송 0 동안, 내림 차순 주소 비트 및 판독/기입 명령이 전송될 수 있다. 전송 1 동안은 오름 차순 주소 비트 및 조기 판독 표시자가 송신될 수 있다. 전송 2 및 3 동안은, 명령 행선지, 주소로부터의 오프셋, 트랜잭션 ID, 체크 비트, 마스크 비트, 전송 사이즈 등을 나타내는 정보가 전송될 수 있다.
도 15는 구성 명령 포맷(1500)의 일 실시예를 나타내는데, 여기서는 플릿당 4개의 전송과 전송당 18 비트를 갖는 물리층을 가정한다. 전송 0 동안, 내림 차순 구성 주소 비트 및 판독/기입 명령이 전송될 수 있다. 전송 1 동안은 오름 차순 구성 주소 비트 및 조기 판독 표시자가 송신될 수 있다. 전송 2 및 3 동안은, 명령 행선지, 주소로부터의 오프셋, 트랜잭션 ID, 체크 비트, 마스크 비트 등을 나타내는 정보가 전송될 수 있다.
상술한 바와 같이, 링크층(LL)은 아웃바운드 포맷 및 인바운드 포맷을 모두 갖는다. 도 16은 아웃바운드 링크층 포맷(1600)의 일 실시예를 나타낸다. 기본 아웃바운드 링크층 포맷은, 예를 들어, 플릿 당 8 비트를 가질 수 있다. 이 기본 포맷은, 예를 들어, 다른 8 비트로 선택적으로 확장되어 플릿 당 총 16비트가 될 수 있다. 도 16은 플릿 당 16 비트 포맷을 나타낸다. LL 신호 0은 전송 0:3(4개 전송: 0, 1, 2, 및 3) 동안 송신되는 정보(인포) 비트 및 체크 비트를 통신하는 데 사용된다. 인포 비트(들)는 플릿이 비 유휴인지, 즉 플릿이 명령이나 데이터를 포함하는지, 또는 유휴인지를 표시할 수 있다. LL 신호 1은 헤더, 테일, 및 체크 비트를 통신하는 데 사용된다. 테일 비트는 패킷의 끝을 나타내고, 헤더 비트는 플릿이 명령을 포함하는지를 나타낸다. 헤더 및 테일 비트는, 플릿 페이로드가 데이터이고 패킷 중의 마지막 데이터 페이로드가 아닌 상태; 플릿 페이로드가 데이터 페이로드이고 패킷의 마지막 플릿인 상태; 플릿 페이로드가 기입 명령인 상태; 및 플릿 페이로드가 판독 명령이고 패킷의 마지막 플릿인 상태와 같은 다른 상태들을 부호화할 수 있다. 체크 비트는 링크층 포맷의 16 비트에 대해 계산된 CRC를 포함한다. 확장 모드 비트는 LL 신호 2 및 3에 송신된다.
확장 모드 비트도 또한 링크층 내에 있을 수 있고 록스텝(lockstep) 메모리 포트를 갖는 데이터 플릿에 사용될 수 있다. 록스텝 메모리 포트를 갖는 XMI(332)에서의 오류 체크를 지원하기 위해서, 확장 모드 비트는 다른 메모리 포트에 송신된 절반(half) 캐시라인의 오류 신드롬(error syndrome)을 부호화할 수 있다.
인바운드 링크층은 여러 포맷을 가질 수 있다. 예를 들어, 일 실시예에서는, 판독 리턴 헤더, 기입 확인, 상태 및 구성과 같은 4가지 서로 다른 인바운드 링크층 포맷들이 있을 수 있다. 이하 기술될 실시예에서, 이들 4가지 링크층 포맷은 다수의 비트를 공통으로 공유할 수 있다. 도 17은 공통 인바운드 링크층 포맷 비트들(1700)의 일 실시예를 나타낸다.
인포 비트는 플릿 페이로드가 비 유휴, 즉, 데이터를 포함하는지, 또는 유휴인지를 표시한다. 체크 비트는 링크층 포맷의 16 비트에 대해 계산된 CRC를 포함 한다.
타입 비트는 4가지 서로 다른 인바운드 링크층 포맷들, 이를테면, 판독 리턴 헤더, 기입 확인, 상태, 및 구성 중 하나를 나타낼 수 있다.
도 18은 판독 리턴 헤더 포맷(1800)의 일 실시예를 나타낸다. 여기서, 태그 비트는 트랜잭션 ID를, 예를 들어, 리틀 엔디언(little endian) 순서로 부호화할 수 있다. 제어 비트는 판독 리턴이 데이터를 가지고 있고, 제1 데이터 페이로드 플릿이 현재 플릿의 시작으로부터 소정의 오프셋 플릿들에서 시작함을 표시할 수 있다. 오프셋이 0이라면, 제1 데이터 페이로드는 현재 플릿에서 시작한다. 제어 비트는 또한 판독 리턴 헤더가 nack(부정 응답(negative acknowledgement)의 줄임)이라는 것을 표시할 수 있는데, 이 경우에는, 관련 데이터가 존재하지 않는다. 판독 리턴 nack은 XMI(332)가 판독 취소 명령을 수신한 결과로서 최초 메모리 판독 명령을 취소하였음을 PMI(308)에 통지하고, 따라서 PMI(308)는 판독 명령에 대한 판독 리턴 데이터를 기대하지 않아야 한다. XMI(332)는 판독 명령을 취소할 경우 판독 리턴 nack만을 송신한다. 그러므로, XMI(332)는 판독 명령을 취소하지 않고 판독 취소 명령을 폐기할 경우, 판독 리턴 nack를 송신하지 않는다.
도 19는 기입 확인 포맷(1900)의 일 실시예를 나타낸다. 이 예에서는, 제어 비트가 없는 것을 제외하고, 이 포맷은 상술한 판독 리턴 헤더와 동일하다.
도 20은 상태 포맷의 일 실시예(2000)를 나타낸다. 메모리 포트(320)는, 프로세서에 아웃바운드 흐름 제어 정보를 리턴하기; 비동기 신호를 전달하기; 및 링크층이 플릿에 대해 유휴인지를 나타내기와 같은 3가지 기능에 대한 상태 포맷을 사용할 수 있다.
정지 비트가 활성이라면, 프로세서가 링크층 상태 포맷 및 비활성 정지 비트를 갖는 후속 플릿을 수신할 때까지 프로세서는 어떤 기입 명령도 XMI(332)에 송신하지 않아야 한다. XMI(332)는 착신되는 기입 명령의 흐름 제어를 원할 때, 예를 들면, XMI(332) 기입 버퍼가 소정의 임계치를 초과할 때, 정지 비트를 어서트(assert)한다. 정지 비트가 비활성이라면, 프로세서는 기입 명령을 XMI(332)로 송신할 수 있다.
신호 비트는 신호 코드를 포함할 수 있다. XMI(332)는 신호 코드를 적절히 설정함으로써 판독 리턴 데이터와 동시에 프로세서에 의한 어떤 동작을 비동기적으로 신호할 수 있다.
당업자라면, 상기 실시예들의 예들로부터 구성 포맷이 구성 정보를 전달하기 위해서 인바운드 링크층에 기능성을 제공하도록 유사하게 부호화될 수 있다는 것을 알 수 있을 것이다.
이들 실시예들은 당업자가 본 발명을 실시할 수 있도록 충분히 상세히 기술되었고, 다른 실시예들이 이용될 수도 있고, 본 발명의 범주를 벗어나지 않고 그 논리적, 기계적, 전기적 및 다른 변경들이 행해질 수 있음은 물론이다. 상술한 아키텍처 및 기능성이 다른 실시예들을 가질 수 있음을 알아야 할 것이다. 상기 포맷들, 명령들 등의 어떤 것이든 비트에 대한 다른 정의뿐만아니라 다른 비트 할당을 가질 수 있다. 예를 들어, 판독 리턴 헤더 포맷은 비트에 대한 다른 정의뿐만아니라 다른 비트 할당을 가질 수 있고, 그 순서는 리틀 엔디언이 아니라 빅 엔디 언(big endian)일 수도 있다.
추가적으로, 설명을 명확히 하기 위해서, 인바운드 및 아웃바운드 방향에 관하여 실시예들에서 기술된 본 발명의 몇몇 양상들에 있어서, 인바운드 및 아웃바운드 모두에 적용할 수 있다는 것은 말할 것도 없다. 예를 들어, 플릿 내의 특정 전송과 관련될 수 있는 링크층 데이터는 개별 전송으로부터 시간적으로 변위될 수 있고, 이 전송은 인바운드 및/또는 아웃바운드 방향에 있을 수 있다. 예를 들어, PMI(308)는 정보에 앞서(정보의 오프셋만큼) 링크층을 통해 XMI(322)로 송신되는 헤더를 발행할 수 있다.
기계 판독 가능 매체가 기계(예를 들면, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함하는 것은 물론이다. 예를 들어, 기계 판독 가능 매체는 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 자기 디스크 저장 매체; 광 저장 매체; 플래시 메모리 장치; 전기, 광, 음향 또는 다른 형태의 전달 신호(예를 들면, 반송파, 적외선 신호, 디지털 신호 등) 등을 포함한다.
당업자라면, 컴퓨터를 사용한 구현이 파워 업 또는 리셋 시에 컴퓨터가 장치로서 방법 또는 태스크를 수행하기 전에 자신을 적절히 구성할 것을 필요로 한다는 것을 알 것이다. 이것은 보통 초기화라 하고, 칩의 타이밍을 설정하고, 장착된 장치를 결정하고, 메모리와 같은 서브시스템을 구성하고, 액세스 속도를 체크하고, 상호 접속을 체크하는 것 등을 포함할 수 있지만 이들에 한정되지는 않는다. 완전한 기능 동작을 준비하기 위해서, 컴퓨터 시스템은 많은 체크를 수행하고, 많은 파 라미터 등을 설정할 수 있다는 것을 알아야 할 것이다. 예를 들어, 컴퓨터는, 초기화 시에 장착된 메모리를 결정하고 설정들 및 파라미터를 변경하여 최적 인터페이스 속도, 타이밍 설정 등을 결정할 수 있다. 부가적으로, 동작 중의 컴퓨터도 또한 적절한 동작을 확인하기 위해 체크를 수행하고, 필요하다면 설정 등을 변경할 수 있다.
이렇게 하여, 사이드밴드 판독 리턴 헤더를 통해 메모리 판독 동작을 최적화하는 방법 및 장치에 대해 설명하였다.

Claims (23)

  1. 프로세서 모듈로부터 판독 요구의 제1 부분을 수신하는 단계;
    상기 판독 요구의 상기 제1 부분에 응답하여 판독을 개시하는 단계;
    상기 판독으로부터 결과들을 수신하는 단계;
    상기 판독 요구의 나머지 부분을 수신하는 단계;
    상기 판독 요구에 응답하여 상기 프로세서 모듈이 판독 데이터의 수신을 준비하도록 하기 위해 상기 프로세서 모듈에 판독 리턴 헤더를 송신하는 단계;
    상기 판독 요구의 나머지 부분에 기초하여 상기 결과들로부터 판독 데이터를 결정하는 단계; 및
    상기 판독 데이터를 상기 프로세서 모듈에 송신하는 단계
    를 포함하고, 상기 판독 리턴 헤더는 상기 판독 데이터를 송신하기에 앞서서 먼저 상기 프로세서 모듈에 송신되는 방법.
  2. 제1항에 있어서,
    상기 판독 리턴 헤더는 사이드밴드로 송신되는 방법.
  3. 제2항에 있어서,
    상기 판독 리턴 헤더가 상기 판독 데이터를 송신하기에 앞서서 먼저 상기 프로세서 모듈에 송신되는 시간 오프셋은 초기화시에 결정되는 방법.
  4. 프로세서 모듈로부터 수신된 판독 요구의 일부에 응답하여, 상기 판독 요구의 모든 부분들이 수신되기 전에, 판독을 개시하는 단계; 및
    상기 판독으로부터 결과들을 수신하기에 앞서서 먼저 판독 리턴 헤더를 상기 프로세서 모듈에 송신하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서,
    상기 판독 리턴 헤더는 사이드밴드로 송신되는 방법.
  6. 제5항에 있어서,
    상기 판독으로부터 결과들을 수신하기에 앞서서 먼저 상기 판독 리턴 헤더를 상기 프로세서 모듈에 송신하는 시간 오프셋은 초기화시에 결정되는 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 시스템에 의해 실행될 때, 상기 시스템으로 하여금,
    소스로부터 판독 요구의 수신을 개시하는 단계;
    상기 판독 요구가 완전히 수신되기 전에 판독을 개시하는 단계;
    상기 판독으로부터 데이터를 수신하는 단계;
    상기 데이터에 앞서서 먼저 판독 리턴 헤더를 상기 소스에 송신하는 단계; 및
    상기 데이터를 상기 소스에 송신하는 단계
    를 수행하도록 하는 명령어들이 저장되어 있는 컴퓨터 판독가능 저장 매체.
  11. 삭제
  12. 제10항에 있어서,
    상기 판독 리턴 헤더는 상기 데이터와는 다른 링크를 통해 상기 소스에 송신되는 컴퓨터 판독가능 저장 매체.
  13. 판독 요구, 기입 요구, 및 제어 정보를 발행할 수 있는 프로세서; 및
    상기 프로세서 및 메모리에 결합된 메모리 인터페이스 디바이스 - 상기 메모리 인터페이스 디바이스는 판독 요구, 및 제어 정보를 수신하고, 상기 판독 요구가 완전히 수신되기 전에, 상기 메모리로부터 상기 판독 요구와 연관된 데이터를 판독하기 위해 판독을 개시하고, 상기 메모리로부터의 데이터 및 제어 신호를 상기 프로세서에 송신하고, 상기 제어 신호는 상기 메모리로부터의 데이터가 상기 프로세서에 송신되기 전에 상기 프로세서에 송신됨 -
    를 포함하는 시스템.
  14. 제13항에 있어서,
    상기 메모리로부터의 상기 데이터 및 상기 제어 신호들은 다른 링크들을 통해 상기 프로세서에 송신되는 시스템.
  15. 삭제
  16. 소스로부터 판독 요구를 수신하고, 상기 판독 요구가 완전히 수신되기 전에 상기 판독 요구의 일부에 응답하여 메모리를 액세스하기 시작하는 수단;
    판독 데이터를 송신하기에 앞서서 먼저 판독 리턴 헤더를 상기 소스에 송신하기 위한 수단; 및
    상기 판독 데이터를 송신하기 위한 수단
    을 포함하는 장치.
  17. 제16항에 있어서,
    상기 판독 리턴 헤더를 송신하기 위한 수단은 판독 데이터를 송신하기 위한 수단과 동일하지 않은 장치.
  18. 제17항에 있어서,
    상기 판독 리턴 헤더를 송신하는 것은 상기 판독 데이터를 송신하기 전에 수행되는 장치.
  19. 제16항에 있어서,
    상기 판독 데이터를 송신하기 위한 수단은 메모리 판독 데이터 레이트와 동일한 데이터 레이트로 판독 리턴 데이터 경로로 판독 리턴 데이터를 송신하기 위한 수단을 더 포함하는 장치.
  20. 제19항에 있어서,
    상기 판독 리턴 데이터 레이트 및 상기 메모리 판독 데이터 레이트는 외부 메모리 인터페이스 데이터 레이트와 동일한 장치.
  21. 제20항에 있어서,
    상기 판독 리턴 데이터 경로에 상기 메모리 판독 데이터의 다중화가 존재하지 않는 장치.
  22. 프로세서 모듈로부터 판독 요구를 수신하는 단계;
    상기 판독 요구가 수신되고 있는 동안 상기 판독 요구의 수신된 일부분에 응답하여, 상기 판독 요구를 모두 수신하기 전에, 판독을 개시하는 단계;
    상기 판독으로부터의 결과를 수신하는 단계; 및
    상기 결과를 송신하기 전에 판독 리턴 헤더를 상기 프로세서 모듈에 송신하는 단계
    를 포함하는 방법.
  23. 제22항에 있어서,
    상기 판독 리턴 헤더는 사이드밴드로 송신되는 방법.
KR1020047007226A 2001-11-12 2002-11-07 메모리 상호 접속에서 사이드밴드 판독 리턴 헤더를 위한방법 및 장치 KR100624609B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/011,385 US20030093632A1 (en) 2001-11-12 2001-11-12 Method and apparatus for sideband read return header in memory interconnect
US10/011,385 2001-11-12

Publications (2)

Publication Number Publication Date
KR20050058232A KR20050058232A (ko) 2005-06-16
KR100624609B1 true KR100624609B1 (ko) 2006-09-20

Family

ID=21750148

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047007226A KR100624609B1 (ko) 2001-11-12 2002-11-07 메모리 상호 접속에서 사이드밴드 판독 리턴 헤더를 위한방법 및 장치

Country Status (10)

Country Link
US (1) US20030093632A1 (ko)
EP (1) EP1444589B1 (ko)
KR (1) KR100624609B1 (ko)
CN (1) CN1585933A (ko)
AT (1) ATE384295T1 (ko)
AU (1) AU2002359366A1 (ko)
DE (1) DE60224700T2 (ko)
HK (1) HK1065136A1 (ko)
TW (1) TWI234071B (ko)
WO (1) WO2003042846A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050172091A1 (en) * 2004-01-29 2005-08-04 Rotithor Hemant G. Method and an apparatus for interleaving read data return in a packetized interconnect to memory
US8418226B2 (en) * 2005-03-18 2013-04-09 Absolute Software Corporation Persistent servicing agent
US8788633B2 (en) * 2005-08-02 2014-07-22 Hamilton Sundstrand Space Systems International, Inc. Low bandwidth remote control of an electronic device
US7881320B1 (en) * 2005-12-12 2011-02-01 Xilinx, Inc. Parsing data from multiple digital bitstreams
JP5887970B2 (ja) * 2012-02-07 2016-03-16 富士通株式会社 情報処理装置および情報処理装置の制御方法
US9418035B2 (en) * 2012-10-22 2016-08-16 Intel Corporation High performance interconnect physical layer
US9733847B2 (en) * 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
GB2548845B (en) 2016-03-29 2019-11-27 Imagination Tech Ltd Handling memory requests
KR102482035B1 (ko) * 2017-11-30 2022-12-28 에스케이하이닉스 주식회사 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
US10997112B2 (en) * 2019-10-02 2021-05-04 International Business Machines Corporation Link interface
US11734105B2 (en) 2020-07-06 2023-08-22 International Business Machines Corporation Efficient error reporting in a link interface

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07504773A (ja) * 1992-03-18 1995-05-25 セイコーエプソン株式会社 マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法
US6487626B2 (en) * 1992-09-29 2002-11-26 Intel Corporaiton Method and apparatus of bus interface for a processor
JP3010947B2 (ja) * 1992-11-26 2000-02-21 日本電気株式会社 メモリアクセス制御装置
US5636364A (en) * 1994-12-01 1997-06-03 International Business Machines Corporation Method for enabling concurrent misses in a cache memory
EP0738977B1 (en) * 1995-03-31 2002-07-03 Sun Microsystems, Inc. Method and apparatus for quickly initiating memory accesses in a multiprocessor cache coherent computer system
US6308248B1 (en) * 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
FR2759178B1 (fr) * 1997-02-05 1999-04-09 Sgs Thomson Microelectronics Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
US6092158A (en) * 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6285679B1 (en) * 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6247084B1 (en) * 1997-10-08 2001-06-12 Lsi Logic Corporation Integrated circuit with unified memory system and dual bus architecture
US6295581B1 (en) * 1998-02-20 2001-09-25 Ati Technologies, Inc. Method and apparatus for assuring cache coherency
US6266747B1 (en) * 1998-10-30 2001-07-24 Telefonaktiebolaget Lm Ericsson (Publ) Method for writing data into data storage units
JP5220974B2 (ja) * 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US20010036834A1 (en) * 2000-03-03 2001-11-01 Subir Das Supporting fast intra-domain handoffs and paging in wireless cellular networks

Also Published As

Publication number Publication date
CN1585933A (zh) 2005-02-23
US20030093632A1 (en) 2003-05-15
EP1444589A2 (en) 2004-08-11
WO2003042846A2 (en) 2003-05-22
WO2003042846A3 (en) 2004-02-26
TWI234071B (en) 2005-06-11
DE60224700T2 (de) 2009-01-15
AU2002359366A1 (en) 2003-05-26
HK1065136A1 (en) 2005-02-08
KR20050058232A (ko) 2005-06-16
DE60224700D1 (de) 2008-03-06
ATE384295T1 (de) 2008-02-15
EP1444589B1 (en) 2008-01-16

Similar Documents

Publication Publication Date Title
KR100618474B1 (ko) 메모리 상호 접속에서 판독 착수 최적화를 위한 방법 및장치
CN100444131C (zh) 具有仲裁分组协议的存储器仲裁系统及方法
US5020020A (en) Computer interconnect system with transmit-abort function
US6925512B2 (en) Communication between two embedded processors
US7978705B2 (en) Self-healing link sequence counts within a circular buffer
US7058744B2 (en) Cluster system, computer and program
JPH06511338A (ja) 並行パケットバスに関する方法及び装置
US20070183331A1 (en) Method and system for providing indeterminate read data latency in a memory system
KR100624609B1 (ko) 메모리 상호 접속에서 사이드밴드 판독 리턴 헤더를 위한방법 및 장치
US5584033A (en) Apparatus and method for burst data transfer employing a pause at fixed data intervals
KR20010076328A (ko) 티씨피/아이피를 하드웨어적으로 처리하는 장치 및 그동작방법
US7275125B2 (en) Pipeline bit handling circuit and method for a bus bridge
CN116795763B (zh) 基于axi协议的数据分组传输的方法、片上系统和芯片
US20060256796A1 (en) Independent source read and destination write enhanced DMA
US20070028015A1 (en) System and method for processing data streams
US20090222841A1 (en) Acceleration of receive data throughput of a usb device
CN115982071A (zh) 一种面向ddr3控制器的片上网络转换接口
EP1793314B1 (en) Data transfer operations and buffer memories
JP2005510798A (ja) 高速チップ間インタフェースプロトコル
US7472212B2 (en) Multi CPU system
US7107374B1 (en) Method for bus mastering for devices resident in configurable system logic
US20060140122A1 (en) Link retry per virtual channel
JP2803616B2 (ja) 入出力バスインタフェース制御方式
JPH07245620A (ja) パケット管理装置
CN117807004A (zh) 面向片上网络与NandFlash控制器的通信接口

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
LAPS Lapse due to unpaid annual fee