KR20050074314A - 데이터 전달 방법 - Google Patents

데이터 전달 방법 Download PDF

Info

Publication number
KR20050074314A
KR20050074314A KR1020050002563A KR20050002563A KR20050074314A KR 20050074314 A KR20050074314 A KR 20050074314A KR 1020050002563 A KR1020050002563 A KR 1020050002563A KR 20050002563 A KR20050002563 A KR 20050002563A KR 20050074314 A KR20050074314 A KR 20050074314A
Authority
KR
South Korea
Prior art keywords
data
word
words
output
input
Prior art date
Application number
KR1020050002563A
Other languages
English (en)
Other versions
KR101087827B1 (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 KR20050074314A publication Critical patent/KR20050074314A/ko
Application granted granted Critical
Publication of KR101087827B1 publication Critical patent/KR101087827B1/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/10Program control for peripheral devices
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

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)

Abstract

본 발명은 시스템 내에서 데이터 입력으로부터 데이터 출력으로 데이터를 전달하는 방법에 관한 것으로서, 최적화할 시스템 성능 파라미터를 선택하는 단계와, 데이터 입력에서 이산 데이터 워드의 시퀀스를 수신하는 단계와, 선택된 성능 파라미터를 최적화하도록 데이터 워드를 데이터 출력으로 전달하기 위한 최적의 모드를 정하는 단계를 포함한다. 최적 전달 모드는 데이터 워드 전달의 최적 시각 및 시퀀스 중 적어도 하나를 포함할 수 있다.

Description

데이터 전달 방법{CONTROLLING DATA DELIVERY}
컴퓨터 및 기타 데이터 프로세싱 시스템은 잠복을 감소시키고 시스템 성능을 향상시키기 위해 가능한 한 고속으로 시스템의 여러 부분들간에 데이터를 통상적으로는 데이터 워드의 형태로 전달할 필요성이 있다. 어떤 데이터는 예측할 수 없는 시각에 시스템의 소정 위치에 도착할 수 있지만, 다른 데이터는 시스템 내의 또 다른 위치로부터 보다 예측 가능하게 도착할 수 있다. 서로 다른 도착 시각으로 인해 데이터 워드들 간에 간격이 생기고, 데이터 워드가 버퍼링될 필요성이 생기고, 어떤 경우에는 소정의 위치에 데이터 워드가 전달되기 전에 사전 결정된 시퀀스로 입력될 필요성이 생긴다. 간단히 데이터 워드를 버퍼링하고, 그 후에 이들을 한번에 전달하는 대신에, 선택한 시스템 성능, 예컨대 잠복, 대역폭 또는 안전성을 최적화하는 시각 및 시퀀스로 데이터 워드를 전달하면, 이러한 시스템의 성능이 최적화될 수 있다.
그 광범위한 측면에서, 본 발명은 시스템 내에서 데이터를 데이터 입력으로부터 데이터 출력으로 전달하는 방법을 포함하고, 최적화할 시스템 성능 파라미터를 선택하는 단계와, 데이터 입력에서 이산 데이터 워드의 시퀀스를 수신하는 단계와, 선택한 성능 파라미터를 최적화하도록 데이터 워드를 데이터 출력으로 전달하기 위한 최적의 모드를 결정하는 단계와, 결정된 최적의 모드로 데이터 입력으로부터 데이터 출력으로 데이터 워드를 전달하는 단계를 포함한다. 최적 전달 모드는 데이터 워드 전달의 최적 시각 및 시퀀스 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 본 발명은 시스템 내에서 데이터 입력으로부터 데이터 출력으로 데이터를 전달하는 방법을 포함하고, 잠복을 최소화하기 위해, 데이터 입력에서 데이터 워드를 수신한 후에 가능한 한 빨리 각 데이터 워드를 데이터 출력으로 전달하는 단계를 포함한다. 원하는 경우에는, 데이터 워드가 데이터 출력으로 전달되기 전에 사전 선택된 시퀀스로 배열될 수도 있다.
또 다른 실시예에서, 본 발명은 시스템 내에서 데이터를 데이터 입력으로부터 데이터 출력으로 전달하는 방법을 포함하되, 본 방법은 대역폭을 최대화하기 위해, 데이터 입력에서 데이터 패킷을 포함하는 이산 데이터 워드의 시퀀스를 수신하는 단계와, 데이터 패킷을 포함하는 추가의 데이터 워드를 데이터 입력에서 수신할 때까지 데이터 입력에서 먼저 수신한 데이터 워드 중 적어도 하나를 큐에 보유하는 단계와, 데이터 패킷을 포함하는 추가의 데이터 워드가 데이터 입력에서 수신될 때 상기 데이터 워드들간에 최소한의 시간 간격으로 큐 내의 데이터 워드를 큐로부터 데이터 출력으로 전달하는 단계와, 데이터 입력에서 추가 데이터 워드가 수신된 후에 가능한 한 빨리 실질적으로는 바로 추가 데이터 워드를 데이터 입력으로부터 데이터 출력으로 전달하는 단계를 포함한다.
또 다른 실시예에서, 본 발명은 시스템 내에서 데이터를 데이터 입력으로부터 데이터 출력으로 전달하는 방법을 포함하되, 본 방법은 안전성을 최대화하기 위해, 데이터 입력에서 이산 데이터 워드의 시퀀스를 수신하는 단계와, 데이터 패킷을 포함하는 전체 데이터 워드가 수신될 때까지 수신된 각각의 데이터 워드를 저장소에 보유하는 단계와, 데이터 워드들간에 최소한의 시간 간격으로 데이터 워드를 저장소로부터 데이터 출력으로 전달하는 단계를 포함한다. 원하는 경우에는, 데이터 워드가 저장소로부터 데이터 출력으로 전송되기 전에 사전 선택된 시퀀스로 배열될 수도 있다.
본 발명을 설명하기 위해, 도면에는 현재 바람직한 형태가 도시되어 있다. 그러나, 본 발명은 도시한 이러한 장치 및 수단에 국한되지 않음을 이해할 수 있을 것이다.
동일 참조 부호가 동일 요소를 나타내는 도면을 참조하면, 도 1에는, 데이터를 수신하고 프로세싱하는 시스템(10)이 도시되어 있다. 도시한 실시예에서, 시스템(10)은 데이터 버스(14)와 데이터 통신하는 프로세서(12)를 포함한다. 통상, 데이터 버스(14)는 프로세서(12)를 다른 시스템 자원, 예컨대 주 프로세싱 장치(MPU), 중앙 에이전트 제어기, 입/출력(I/O) 프로세싱 에이전트 및 메모리 장치에 접속시킨다. 본 발명의 문맥에서, "프로세서"는 중앙 처리 장치(CPU) 및 I/O 프로세싱 장치를 포함하지만, 이에 국한되지 않는다.
프로세서(12)는 버스(14)로부터 데이터를 수신하고, 그 데이터에 입각하여 동작을 실행하고, 버스(14)로 데이터를 출력한다. 프로세서(12)가 프로세서 외부 소스로부터의 데이터를 필요로 하면, 프로세서는 링크 출력(16)을 통해 데이터에 대한 요청을 한다. 프로세서(12)가 요청하는 데이터 등 프로세서(12)로 전송되는 데이터는 링크 입력(18)에서 수신된다. 통상, 프로세서(12)가 수신 및 출력하는 데이터는 데이터 패킷으로 그루핑될 수 있는 개개의 데이터 워드의 형태이다. 예컨대 데이터 패킷은 사전 결정된 시퀀스로, (A), (B), (C) 및 (D)로 임의로 지정된 네 개의 개개의 데이터 워드와, (H)로 임의로 지정된 헤더(실제 데이터의 윗자리를 차지하고, 소스 어드레스, 목적지 어드레스, 에러 검사 및 기타 필드를 포함함)로 구성될 수 있다.
데이터는 링크 입력(18)으로부터 동기 장치(synchronizer)(20)로 전달된다. 동기 장치(20)는 서로 다른 클럭 도메인의 데이터들을 동기화한다. 예를 들어, 링크 입력(18)이 300 MHz의 클럭 주파수로 동작할 수 있는 반면, 링크 입력(18)의 하류 부문의 다른 시스템 구성요소는 이와 다른 클럭 주파수, 예컨대 200 MHz로 동작할 수 있다. 동기 장치(20)는 클럭 주파수를 기초로 하여 데이터 워드들 간에 간격을 삽입하거나 제거해서 링크 입력(18)에 도착하는 데이터가 하류 부문 구성요소에 대한 적절한 시각에 하류 부문으로 전송되도록 할 수 있다. 물론, 전체 시스템 구성요소가 동일한 클럭 주파수로 동작하면, 동기 장치(20)는 불필요하게 되어 생략될 수 있다. 다음으로, 동기 장치(20)로부터 동기화된 데이터는 큐(22)로 이동된다. 큐는 데이터 워드를 저장하기 위해 사용되는 선입 선출 데이터 구조이다. 데이터 워드는 큐의 "후미"에 추가되고, "선단(head)"으로부터 추출된다.
또한, 데이터 워드는 메모리 장치(24)에 의해 큐(22) 내로 배치될 수 있다. 프로세서(12)가 필요로 하는 데이터는 다수의 경우에, 링크 출력(16)을 통해 시스템(10)의 다른 부분으로부터 요청되어야 하는 데이터가 아니라, 메모리 장치, 예컨대 메모리 장치(24)에 저장되는 데이터일 수 있다. 간략화를 위해 단일의 큐(22)가 도시되어 있지만, 실제로는 동기 장치(20)로부터 데이터를 수신하기 위한 하나의 큐와 메모리 장치(24)로부터 데이터를 수신하기 위한 별도의 큐가 있을 수 있다.
도 1에서, 개개의 시스템 소자들간의 접속은 표시를 간략하게 하기 위해 단일의 라인을 이용하여 도시되어 있다. 그러나, 다수의 경우에, 실제로 각 라인은 다수의 배선으로 구성되고, 각 배선은 다수의 데이터 채널을 지닐 것이다. 본 발명은 특정 개수의 개개의 배선 또는 채널에 국한되지 않는다. 데이터 채널은 TDM(time-division multiplexing)을 이용하여 각 라인 상에서 결합된다. 당업자가 이해할 수 있는 바와 같이, 어떤 특정 간격 동안에, 그 라인 상에 서로 다른 개개의 채널의 데이터만 제공되도록 TDM은 라인 상에 있는 개개의 채널 내의 데이터에 특정 시간 간격을 할당한다. 그 제각각의 채널에 대한 시간 간격으로 데이터 워드를 클럭킹하여 냄으로써 데이터를 개개의 채널 내로 분리하기 위해 큐(22)가 사용된다.
큐(22)의 헤드로부터 추출된 데이터 워드는 바로 멀티플렉서(26)로 또는 또 다른 큐(28)로 갈 수 있다. 데이터는 큐(28)로 전송되고, 그 후, 프로세서(30)가 특수한 패킷 프로세싱을 할 필요가 있으면 프로세서(30)로 전송된다. 특수한 패킷 프로세싱에는 필요한 경우의 에러 보정 및 데이터 포맷이 있다. 예를 들어, 데이터 워드의 절반만 유효하면, 특수한 패킷 프로세싱은 데이터를 2배로 하는 것을 포함할 수 있다. 특수 패킷 프로세싱 후에, 프로세서(30)로부터의 데이터는 멀티플렉서(26)로 이동한다. 멀티플렉서(26)는 큐(22)로부터의 데이터와 프로세서(30)로부터의 데이터를 단일의 TDM 데이터 스트림으로 결합하고, 이 TDM 데이터 스트림은 동기 장치(32)로 전송된다. 동기 장치(20)와 유사한 동기 장치(32)는 동기 장치(32)의 상류 부문의 구성요소와, 아래에 설명하는 저장 장치(34) 및 멀티플렉서(36)와 버스(14)를 포함하는 동기 장치(32)의 하류 부문의 구성요소간의 클럭 주파수의 차를 조절하기 위해 제공된다. 그러나, 전체 시스템 구성요소가 동일한 클럭 주파수에서 실행되면, 동기 장치(32)는 불필요하게 되어 생략될 수 있다.
그 후, 동기 장치(32)로부터 동기화된 데이터는 저장 장치(34) 또는 멀티플렉서(36)로 이동한다. 데이터 워드가 저장 장치(34)에 기록되었던 순서와 다른 순서 등의 임의의 순서로 독출될 수 있도록 저장 장치(34)는 래치 어레이 또는 레지스터 어레이일 수 있다. 멀티플렉서(36)는 저장 장치(34)로부터의 데이터와 동기 장치(32)로부터의 데이터가 단일의 TDM 데이터 스트림으로 결합시키고, 이 TDM 데이터 스트림은 버스(14)로 전송되고, 이어서, 프로세서(12)로 전송된다.
도 1에 도시한 시스템은, 데이터가 데이터 소스, 예컨대 링크 입력(18) 또는 메모리 장치(24)로부터 프로세서(12)로, 서로 다른 시스템 성능 파라미터의 최적화를 각각 가능하게 하는 세 개의 서로 다른 모드 중 하나의 모드로 전달되게 할 수 있다.
ASAP 모드
ASAP 모드는 소스, 예컨대 링크 입력(18) 또는 메모리 장치(24)로부터의 데이터를 프로세서(12)로 가능한 한 빨리 전달한다. ASAP 모드에서 최적화되는 시스템 성능 파라미터는 잠복이다. 데이터를 가능한 한 빨리 전달함으로써 잠복이 크게 감소된다. ASAP 모드에서, 링크 입력(18)에서 수신된 데이터 패킷의 일부인 데이터 워드는 링크 입력(18)으로부터 동기 장치(20)로, 동기 장치(20)로부터 큐(22)로, 큐(22)로부터 멀티플렉서(26)로, 멀티플렉서(26)로부터 동기 장치(32)로, 동기 장치(32)로부터 멀티플렉서(36)로, 멀티플렉서(36)로부터 버스(14) 및 프로세서(12)로의 경로를 따라서 이동한다. 이는 링크 입력(18)으로부터 프로세서(12)로의 최단 경로이다. 이와 다르게 또는 추가로, 메모리 장치(24)로부터의 데이터는 순차적으로 독출되어 큐(22)로, 큐(22)로부터 멀티플렉서(26)로, 멀티플렉서(26)로부터 동기 장치(32)로, 동기 장치(32)로부터 멀티플렉서(36)로, 멀티플렉서(36)로부터 버스(14) 및 프로세서(12)로 전송된다. ASAP 모드에서, 데이터 워드는 수신된 후에 가능한 한 빨리 멀티플렉서(36)로 전달된다. ASAP 모드에서는, 데이터 워드들간의 시간 간격을 분배하는 설비는 제공되지 않는다.
ASAP-BW 모드
ASAP 모드는 잠복을 최적화하지만, 대역폭의 측면에서는 최적일 수 없다. ASAP 모드에서, 링크 입력(18)에서 수신되는 데이터 워드들간에는 긴 시간 간격이 있을 수 있다. 데이터 워드들간의 긴 시간 간격은 시스템 대역폭을 감소시키는데 기여하는 유휴 데이터 버스 시간을 의미한다. ASAP-BW 모드는 잠복도 감소시키며 대역폭을 최적화하려는 것이다. ASAP-BW 모드에서, 데이터 워드는 일정 시간 동안 보유되고, 재시도 동안에 발생할 수 있는 것과 같이, 데이터 워드들간에 매우 큰 간격이 없으면, 그 후에 간격 없이 함께 전달된다.
데이터 도착 시간은 통상적으로 데이터 워드의 소스를 기초로 하는 것으로 알려져 있다. 알려져 있는 도착 시간으로부터, 시스템은, 도착하는 마지막 워드가 동기 장치(32)로부터 멀티플렉서(36)를 통과하여 버스(14) 상으로 즉시 전송되도록 데이터 워드를 전송한다. 마지막 데이터 워드는 항상 그 데이터 워드가 수신되자마자 곧 전송된다. 예상되는 또는 통상적인 데이터 워드 도착 방법에 의해, 마지막 데이터 워드의 도착이 예상될 수 있고, 마지막 데이터의 전달은 마지막 데이터가 도착하면 즉시 마지막 데이터 워드를 전송하도록 최적화될 수 있다.
링크 입력(18)에서 먼저 수신된 데이터 워드, 통상 데이터 패킷 내의 제 1 데이터 워드 중 적어도 하나는 데이터 패킷 내의 추가의 데이터 워드가 링크 입력(18)에 도착할 때까지 저장 장치(34)에 보유된다. 그러므로, 제 1 데이터 워드는 링크 입력(18)으로부터 동기 장치(20)로, 큐(22)로, 멀티플렉서(26)로, 동기 장치(34)로, 그리고 저장 장치(34)로의 경로를 따라간다. 제 1 데이터 워드는, 데이터 패킷 내의 추가의 데이터 워드가 동기 장치(32)에서 수신될 때까지 저장 장치(34)에 보유된다. 추가 데이터 워드가 수신되면, 저장 장치(34) 내에 보유되고 있는 데이터 패킷 내의 데이터 워드 혹은 워드들은 멀티플렉서(36)로 클럭킹 되어 버스(14) 상으로 나가 프로세서(12)에 전달된다. 링크 입력(18)에서 수신된 추가 데이터 워드는 링크 입력(18)으로부터 동기 장치(20)로, 큐(22)로, 멀티플렉서(26)로, 동기 장치(32)로 그리고 거기서부터 직접 멀티플렉서(36)로 그리고 버스(14) 상으로의 경로를 따라가 프로세서(12)로 전달되거나 저장 장치(34)로 그리고 그 후에 멀티플렉서(36)로의 경로를 따라가 프로세서(12)로 전달된다.
ASAP-BW 모드에서, 링크 입력(18)에서 먼저 수신된 데이터 워드는 동기 장치(32)에 도착하는 데이터 패킷 내에 데이터 워드가 남아 있는 동안만 저장 장치(34)에 보유된다. 이는 먼저 수신된 데이터 워드의 전달을 지연시키지만, 그 지연은, 최소의 시간 간격으로 전체 데이터를 함께 프로세서(12)로 전달하기 전에, 데이터 패킷 내의 전체 데이터 워드의 도착을 예상하고 데이터 워드들간의 시간 간격을 제거할 필요성이 있는 동안일 뿐이다. 워드들간에 시간 간격을 제거함으로써, 프로세서(12) 내의 유휴 프로세싱 시간을 감소시켜서 대역폭을 최적화한다. 추가의 데이터 워드가 링크 입력(18)에 도착하면, 추가의 데이터 워드는 수신된 후에 최대한 빨리 전달된다. 이것으로, 데이터 워드를 프로세서(12)에 전달하기 전에 전체 데이터 워드를 보유하는 것에 비해 잠복을 적어도 일부 감소시킬 수 있게 된다. 그러므로, ASAP-BW 모드에 의해 최적화되는 시스템 성능 파라미터가 대역폭이며, 또한 ASAP-BW 모드는 잠복을 감소시킨다.
안전 모드
"유휴 상태가 없는(no idle)" 모드로서 간주될 수도 있는 안전 모드는 실질적으로 시간 간격 없이 항상 데이터 패킷 내의 데이터 워드를 함께 전달하여 시스템 안전성을 최적화한다. "안전성"이란 CPU에서와 같은 데이터 워드의 프로세싱에서 문제의 위험성의 감소를 의미한다. 데이터 패킷을 포함하는 데이터 워드가 함께 전송되면 대부분의 시스템은 우수하게 작동한다. 또한, 다수의 시스템은 CPU로 전달되는 데이터 패킷 내에 유휴 싸이클이 포함되어 작동할 것이다. 그러나, 어떤 경우, 예를 들어, CPU의 논리 회로 내에 버그가 있거나, 또는 어떤 조건 하에 포함되어 있는 유휴 싸이클을 받아들일 수 없으면, 프로세싱 문제가 발생할 수 있다. 데이터 패킷을 포함하는 전체 데이터 워드가 수신될 때까지 수신되는 각 데이터 워드를 저장소에 보유하고, 데이터 워드를 저장소로부터 데이터 출력으로 실질적으로 데이터 워드들간에 시간 간격이 없이 전달하는 것은 프로세싱 문제를 최소화하고, 프로세싱 동작의 "안전성"을 최대화한다.
안전 모드에서, 데이터 패킷을 포함하는 전체 데이터 워드는 전체 데이터 워드가 수신될 때까지 저장 장치(34) 내에 보유된다. 데이터 워드는 링크 입력(18)으로부터 동기 장치(20)로, 큐(22)로, 멀티플렉서(26)로, 동기 장치(32)로 그리고 데이터 패킷을 포함하는 개개의 데이터 워드의 전체가 수신될 때까지 데이터 워드를 보유하는 저장 장치(34)로의 경로를 따라간다. 개개의 데이터 워드의 전체가 저장 장치(34)에 수신되면, 전체의 개개의 데이터 워드 전체는 멀티플렉서(36)로, 그리고 거기서 버스(14) 및 프로세서(12)로 전송된다. 안전 모드는 개개의 워드들간에 시간 간격을 제거하기 위해 프로세서(12)로 전송되기 전에 전체 데이터 워드가 수신되어야 하는 점에서 다른 동작 모드와 다르다.
서로 다른 소스로부터의 데이터에 다른 모드가 동시에 할당될 수 있다. 즉, 하나의 소스로부터의 데이터 패킷이 하나의 모드로 전달될 수 있고, 다른 소스로부터의 데이터 패킷이 다른 모드로 전달될 수 있다. 예를 들어, 메모리 장치(24)로부터의 데이터는 ASAP 모드로 프로세싱될 수 있고, 링크 입력(18)으로부터의 데이터는 안전 모드로 프로세싱될 수 있다.
다수의 데이터 채널이 단일의 라인으로 시간 분할 멀티플렉싱될 수 있기 때문에, 서로 다른 데이터 채널이 동시에 서로 다른 모드로 동작하는 것이 가능하다. 예를 들어, 데이터는 제 1 채널 상에서는 ASAP 모드로 전달될 수 있고, 동시에, 제 2 채널 상의 데이터는 안전 모드로 전달될 수 있다. 임의의 합당한 실제 개수의 채널이 본 발명의 범주로부터 이탈하지 않고, 단일의 라인으로 멀티플렉싱될 수 있다.
결정적 워드 순서
어떤 경우에, 데이터 패킷을 포함하는 개개의 데이터 워드의 시퀀스는 시스템의 적절한 동작에 결정적이지 않다. 이러한 경우에, 데이터 워드를 재정렬하지 않고 데이터 워드가 수신되는 것과 동일한 순서로 전달함으로써, 전체 모드에서 잠복이 감소된다.
그러나, 실제로, 데이터 패킷 내의 워드 순서는 결정적일 수 있다. 예를 들어, 어떤 버스 표준에서, 데이터 패킷 내의 데이터 워드는 프로세서(12)가 데이터 패킷을 요청하는 방법에 따라 특정 순서로 리턴되어야 한다. 어떤 알려져 있는 표준으로, 예를 들어, 결정적 워드 순서가 ABCD인 순서 0, 결정적 워드 순서가 BADC인 순서 2, 결정적 워드 순서가 CDAB인 순서 4, 결정적 워드 순서가 DCBA인 순서 6으로 지정되는 네 개의 결정적 워드 순서가 사용된다. 본 발명에 따른 전체 모드에서, 데이터 패킷을 포함하는 개개의 데이터 워드는 저장 장치(34)로부터 멀티플렉서(36) 및 버스(14)로 전송되기 전에 사전 선택된 시퀀스로 놓일 수 있다. 저장 장치(34) 내에 데이터 워드의 일부를 보유하고, 이들을 저장 장치(34) 밖으로 원하는 시퀀스로 클럭킹하여 냄으로써 전체 모드에서 데이터 패킷에서의 결정적 워드 순서를 이룰 수 있다.
데이터 워드가 원하는 시퀀스로 전달되는 방법에 대한 예가 도 2 및 3에 도시되어 있다. 도 2를 먼저 참조하면, 두 개의 채널 시스템 내의 단일의 채널에 대한 데이터가 상부 라인 상에 도시되며, 개개의 데이터 워드는 1부터 16까지 번호가 매겨진 이산 TDM 간격으로 도시된다. 도 2에서, 데이터 워드 A, B, C 및 D는 동기 장치(32)의 출력에서 각각 그 순서로 TDM 간격 1, 3, 5, 7에 존재하는 것으로 도시되어 있다. 동기 장치의 출력에서의 데이터 워드가 결정적 워드 순서 0이라는 것을 이해할 수 있을 것이다. 각 데이터 워드는 이산 TDM 간격에 있고, 데이터 워드는 하나의 간격에 의해 분리된다. 도 2에서 데이터 워드 A, B, C 및 D를 분리하는 "블랭크" 간격인 2, 4 및 6은 도시한 2 채널 시스템에서의 다른 채널에 대한 TDM 간격을 나타낸다.
ASAP 모드에서, 개개의 데이터 워드는 개개의 데이터 워드가 동기 장치(32)의 출력에서 나타나자마자 곧 멀티플렉서(36)를 통과하여 버스(14)로 전달된다. 결정적 워드 순서 0에서는, 데이터 워드의 재정렬이 필요하지 않고, 데이터 워드는 간단히 바로 멀티플렉서(36)로 전달된다. 개개의 데이터 워드는 지연되지 않고, 개개의 데이터 워드가 동기 장치(32)의 출력에서 나타나는 동일한 TDM 간격에서 멀티플렉서(36)로 전달된다.
그러나, 결정적 워드 순서 2에서는, A가 처음에 나타나더라도, 데이터 워드 B가 나타난 그 후까지 전송될 수 없기 때문에 데이터 워드가 BADC로 재정렬되어야 한다. 이러한 경우에, 데이터 워드 A는 데이터 워드 A가 필요할 때까지 저장 장치(34)로 전송된다. 데이터 워드 B가 동기 장치(32)의 출력에서 나타나자마자, 데이터 워드 B는 멀티플렉서(36)로 전송되고, 그 즉시, 순서 2에서의 다음 데이터 워드인 데이터 워드 A가 다음 간격에서 저장 장치(34) 밖으로 클럭킹되어 나와 뒤따른다. 순서 2에서 제 3 데이터 워드는 D이므로 데이터 워드 C가 동기 장치(32)의 출력에서 나타나면 데이터 워드 C는 데이터 워드 D가 수신될 때까지 저장 장치(34) 에 저장되어야 한다. 그러므로, D가 동기 장치(32)의 출력에서 나타날 때까지 두 개의 간격의 지연이 생긴다. D가 동기(32)의 출력에서 나타나자마자, 데이터 워드 C가 다음 간격에서 저장 장치(34) 밖으로 클럭킹되어 나와 뒤따른다.
이와 유사하게, 결정적 워드 순서 4(CDAB)에서, 데이터 워드 A 및 B는 데이터 워드 D가 동기 장치(32)의 출력에서 나타날 때까지 저장 장치(34)로 전송된다. 데이터 워드 C가 나타나자마자 전송되고, 두 개의 간격 후에 데이터 워드 D가 나타나 뒤따르고, 즉시, 다음 두 개의 계속되는 간격에서 데이터 워드 A 및 B가 저장 장치(34)의 밖으로 클럭킹되어 나와 뒤따른다. 순서 6에서는, 데이터 워드 A, B 및 C 전체가, 데이터 워드 D가 나타날 때까지 저장소로 전송된다. D가 나타나자 마자, D는 멀티플렉서(36)로 전송되고, 다음 세 개의 계속되는 간격에서 데이터 워드 C, B 및 A가 그 순서로 저장 장치(34) 밖으로 클럭킹되어 뒤따른다.
ASAP-BW 모드에서, 그 목적은 데이터 워드들간에 시간 간격을 제거하는 것이다. 도 2에 도시한 예에서, 데이터 워드 A, B, C 및 D는 그 순서로 TDM 간격 1, 3, 5, 7에서 동기 장치(32)의 출력에서 나타날 것이다. 데이터 워드가 결정적 워드 순서 0으로 나타날 것이라는 것을 이해할 수 있을 거이다. 순서 0에서, 데이터 워드의 재정렬은 불필요하지만, ASAP-BW 모드에서는 데이터 워드들간의 시간 간격을 제어할 필요가 있다. 데이터 워드 D가 TDM 간격 7에서 동기 장치(32)의 출력에 나타날 것이기 때문에, 데이터 워드 A, B 및 C는 이들이 나타날 때는 저장 장치(34)에 저장되고, TDM 간격 4에서 시작하는 순서로 멀티플렉서(36)로 클럭킹되어 나온다. 즉, 데이터 워드 A는 간격 4에서 클럭킹되어 나오고, 데이터 워드 B는 간격 5에서 클럭킹되어 나오고, 데이터 워드 C는 간격 6에서 클럭킹되어 나오고, 데이터 워드 D는 간격 7에서 클럭킹되어 나온다. 데이터 워드 D가 동기 장치(32)의 출력에서 나타나자마자 데이터 워드 D는 멀티플렉서(36)로 바로 전송된다. 그러므로, 데이터 워드 A, B, C 및 D는 이들간에 시간 간격 없이 간격 4, 5, 6 및 7에서 순서 0으로 멀티플렉서(36)로 전송된다.
이와 유사하게, 순서 2(BADC)에서, 데이터 워드 A, B 및 C는 이들이 동기 장치(32)의 출력에서 나타날 때 저장 장치(34)에 저장된다. 데이터 워드 D가 간격 7에서 나타날 것이라고 가정하면, 데이터 워드 B 및 A는 그 순서로 간격 5 및 6에서 저장 장치(34)의 밖으로 클럭킹되어 나오고, 데이터 워드 D는 간격 7에서 전송되고, 데이터 워드 C는 간격 8에서 저장 장치(34) 밖으로 클럭킹되어 나온다. 그러므로, 데이터 워드 B, A, D 및 C는 순서 2로 간격 5, 6, 7 및 8에서 이들 데이터 워드간에 시간 간격 없이 멀티플렉서(36)로 전송된다. 순서 4 및 순서 6에 대해서도 동일한 절차가 뒤따르므로, 순서 4에서, 데이터 워드 C, D, A 및 B는 간격 6, 7, 8 및 9에서 멀티플렉서(36)로 전송되고, 순서 6에서, 데이터 워드 D, C, B 및 A는 간격 7, 8, 9 및 10에서 전송되며, 데이터 워드들간에는 전부 시간 간격이 없다.
안전 모드에서, 그 목적은 전체 데이터 워드를 수신할 때까지 대기하고, 전체 데이터 워드를 이들 간에 시간 간격없이 원하는 순서로 전송하는 것이다. 그러므로, 도 2에 도시하는 바와 같이, 개개의 데이터 워드는 데이터 워드 D가 간격 7에서 수신될 때까지 저장 장치(34)에 보유된다. 그 때, 데이터 워드는 간격 7에서 시작하여 원하는 결정적 워드 순서로, 데이터 워드들간에 시간 간격없이 저장 장치(34) 밖으로 클럭킹되어 나온다.
본 발명은 (예컨대, 링크 데이터를 전송을 재시도함으로써 야기되는) 긴 간격 등, 데이터 패킷내의 예측할 수 없는 간격을 조절한다. 도 2와 유사한, 도 3에는, 데이터 워드 A, B, C 및 D를 포함하고 B와 C 사이에 3개의 간격이 있는 데이터 패킷이 도시되어 있다. (세 개의 3개의 간격이 도시되어 있지만, 본 발명은 훨씬 긴 간격도 조절할 수 있다.) 세 개의 모드 및 네 개의 결정적 워드 순서에 대한 개개의 데이터 워드는 도 2에 도시한 것과 동일한 방식으로 프로세싱되는데, 도 2와 다른 것은 데이터 워드 B 및 C간의 간격 때문에 데이터를 지연시킨다는 것이다. 그러므로, 데이터 전달은 도 2에 도시한 예에 비해 두 개의 추가 간격만큼 지연되지만, 동일한 방식으로 전달된다.
전술한 예는 예시일 뿐, 제한하려는 것이 아님을 이해해야 한다. 예를 들어, 설계 제한 사항을 포함하는 실제의 고려 사항들, 버스 프로토콜 타이밍 및 기타 인자들은 본 발명으로부터 벗어나지 않고 도시한 특정 예로부터 다소 변형될 수 있다.
본 발명은 데이터를 수신하자마자 데이터를 전달함으로써 잠복을 감소시킨다. 또한, 본 발명은 데이터 워드를 재정렬함으로써 야기되는 지연을 제거하기 위해, 프로세서 회수 및 메모리 저장소를 최적화하여 원하는 결정적 데이터 워드 순서로 데이터를 리턴함으로써 잠복을 감소시킨다. 전체 모드에서, 전체 시스템 소자가, 데이터를 수신한 후 가능한 빨리 데이터 경로 내의 다음 소자로 데이터를 전달하게 함으로써, 서로 다른 시스템 파라미터가 최적화되면서도 잠복이 감소될 수 있다.
본 발명 및 본 발명의 유리한 점을 상세히 설명하였으나, 청구의 범위가 정의하는 본 발명의 사상 및 범주로부터 이탈하지 않고, 다양한 수정, 대체 및 변경이 이루어질 수 있음을 이해할 수 있을 것이다. 또한, 본 애플리케이션의 범주는 본 명세서에서 설명한 본 발명의 특정 실시예에 국한되지 않는다. 당업자라면, 전술한 설명으로부터, 본 명세서에서 설명하는 대응 실시예와 실질적으로 동일한 기능을 수행하거나 실질적으로 동일한 결과를 낼 수 있는 기존의 또는 추후에 개발될 프로세서, 머신, 제조품, 물체의 조합, 수단, 방법 또는 단계들이 본 발명을 구현 및 수행하기 위해 이용될 수 있다는 것을 이해할 수 있을 것이다. 이에 따라, 첨부한 청구의 범위는 이러한 프로세스, 머신, 제조품, 물체의 조합, 수단, 방법 또는 단계들을 그 범주 내에 포함시킨다.
전술은 본 발명가들이 상세한 설명을 이용할 수 있다고 예견하는 실시예의 측면에서 설명되었으나, 현재 제시되지 않은 본 발명의 비실체적 수정도 등가를 나타낼 수 있다.
전체 시스템 소자가, 데이터를 수신한 후 가능한 빨리 데이터 경로 내의 다음 소자로 데이터를 전달하게 함으로써, 서로 다른 시스템 파라미터가 최적화되면서도 잠복이 감소될 수 있다.
도 1은 본 발명의 일 실시예에 따른, 그리고 본 발명의 방법이 실행될 수 있는 시스템의 블록도를 간략화한 형태로 도시하는 도면,
도 2 및 3은 본 발명의 일 실시예에 따른 데이터 전달의 타이밍 및 시퀀스를 도시하는 도면.
도면의 주요 부분에 대한 부호의 설명
12 : 프로세서 14 : 데이터 버스
16 : 링크 출력 18 : 링크 입력
20, 32 : 동기 장치(synchronizer) 22, 28, 34 : 저장소
26, 36 : 멀티플렉서

Claims (10)

  1. 시스템 내에서 데이터 입력으로부터 데이터 출력으로 데이터를 전달하는 방법으로서,
    최적화되는 시스템 성능 파라미터를 선택하는 단계와,
    상기 데이터 입력에서, 이산 데이터 워드의 시퀀스를 수신하는 단계와,
    상기 선택된 성능 파라미터를 최적화하도록 상기 데이터 출력으로 상기 데이터 워드를 전달하기 위한 최적의 전달 모드를 결정하는 단계와,
    상기 결정된 최적의 모드로 상기 데이터 입력으로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하는 단계를 포함하는
    데이터 전달 방법.
  2. 제 1 항에 있어서,
    상기 최적의 전달 모드 결정 단계는
    상기 데이터 워드를 전달하기 위한 최적 시각 및 시퀀스 중 적어도 하나를 결정하는 단계를 포함하는
    데이터 전달 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 데이터 입력으로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하기 전에, 상기 데이터 워드를 원하는 시퀀스로 재정렬하는 단계를 더 포함하는
    데이터 전달 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 선택된 성능 파라미터를 최적화하도록 상기 데이터 출력으로 상기 데이터 워드를 전달하기 위한 최적의 모드를 결정하는 상기 단계는
    상기 선택된 성능 파라미터를 최적화하도록 상기 데이터 워드를 상기 데이터 출력으로 전달하기 위한 최적의 시퀀스 및 시각을 결정하는 단계를 포함하고,
    상기 결정된 최적의 모드로 상기 데이터 입력으로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하는 상기 단계는
    상기 결정된 최적의 시퀀스로 그리고 최적의 시각에 상기 데이터 입력으로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하는 단계를 포함하는
    데이터 전달 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 결정된 최적의 모드로 상기 데이터 입력으로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하는 상기 단계는
    상기 데이터 입력에서 상기 데이터 워드가 수신된 후에 가능한 한 빨리, 시퀀스를 고려하지 않고 각 데이터 워드를 상기 데이터 출력으로 전달하는 단계를 포함하여 잠복이 최소화되는
    데이터 전달 방법.
  6. 제 5 항에 있어서,
    상기 데이터 워드를 상기 데이터 출력으로 전달하기 전에 상기 데이터 워드를 사전 선택된 시퀀스로 배열하는 단계를 더 포함하는
    데이터 전달 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 데이터 입력에서 먼저 수신한 데이터 워드 중 적어도 하나는 상기 데이터 패킷을 포함하는 추가의 데이터 워드가 상기 데이터 입력에서 수신될 때까지, 저장소에 보유되고,
    상기 데이터 워드를 상기 데이터 출력으로 전달하기 위한 상기 최적의 모드는
    상기 데이터 패킷을 포함하는 상기 추가의 데이터 워드가 상기 데이터 입력에서 수신될 때 상기 데이터 워드들간에 최소의 시간 간격으로 상기 저장소로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하는 단계를 포함하고,
    상기 사전 결정된 최적의 모드로 상기 데이터 입력으로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하는 상기 단계는
    상기 추가의 데이터 워드가 상기 데이터 입력에서 수신된 후에 가능한 한 빨리 실질적으로 바로 상기 데이터 입력으로부터 상기 데이터 출력으로 상기 추가의 데이터 워드를 전달하는 단계를 포함하여 대역폭이 최대화되는
    데이터 전달 방법.
  8. 제 7 항에 있어서,
    상기 데이터 워드를 상기 데이터 출력으로 전달하기 전에 상기 데이터 워드를 사전 결정된 시퀀스로 배열하는 단계를 더 포함하는
    데이터 전달 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    수신된 각각의 상기 데이터 워드는 상기 데이터 패킷을 포함하는 전체 데이터 워드가 수신될 때까지 저장소에 보유되고,
    상기 결정된 최적의 모드로 상기 데이터 입력으로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하는 상기 단계는
    상기 사전 선택된 시퀀스로 그리고 상기 데이터 워드들 간에 실질적으로 시간 간격이 없이 상기 저장소로부터 상기 데이터 출력으로 상기 데이터 워드를 전달하는 단계를 포함하여 안전성이 최대화되는
    데이터 전달 방법.
  10. 제 9 항에 있어서,
    상기 데이터 워드를 상기 저장소로부터 상기 데이터 출력으로 전달하기 전에, 상기 데이터 워드를 사전 선택된 시퀀스로 배열하는 단계를 더 포함하는
    데이터 전달 방법.
KR1020050002563A 2004-01-12 2005-01-11 데이터 전송 방법 KR101087827B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/756,448 2004-01-12
US10/756,448 US7457888B2 (en) 2004-01-12 2004-01-12 Data delivery based on a select data delivery performance parameter in a data processing system

Publications (2)

Publication Number Publication Date
KR20050074314A true KR20050074314A (ko) 2005-07-18
KR101087827B1 KR101087827B1 (ko) 2011-11-30

Family

ID=34739834

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050002563A KR101087827B1 (ko) 2004-01-12 2005-01-11 데이터 전송 방법

Country Status (2)

Country Link
US (1) US7457888B2 (ko)
KR (1) KR101087827B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7600023B2 (en) * 2004-11-05 2009-10-06 Hewlett-Packard Development Company, L.P. Systems and methods of balancing crossbar bandwidth
US7734853B2 (en) * 2006-02-28 2010-06-08 Arm Limited Latency dependent data bus transmission
US20110246692A1 (en) * 2010-03-31 2011-10-06 International Business Machines Corporation Implementing Control Using A Single Path In A Multiple Path Interconnect System

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655105A (en) * 1995-06-30 1997-08-05 Micron Technology, Inc. Method and apparatus for multiple latency synchronous pipelined dynamic random access memory
EP1073064A1 (en) * 1999-07-30 2001-01-31 STMicroelectronics S.r.l. Non-volatile memory with the functional capability of simultaneous modification of the contents and burst mode read or page mode read
US7522551B2 (en) * 2001-09-17 2009-04-21 Microsoft Corporation Method and apparatus for wireless routing on a plurality of different wireless channels
US6799257B2 (en) * 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
US8780898B2 (en) * 2002-10-31 2014-07-15 Agere Systems Llc Processor for packet switching between cell streams with optional virtual channel and channel identification modification
US7512070B2 (en) * 2003-06-23 2009-03-31 Intel Corporation Adaptive use of a transmit opportunity

Also Published As

Publication number Publication date
US20050154806A1 (en) 2005-07-14
US7457888B2 (en) 2008-11-25
KR101087827B1 (ko) 2011-11-30

Similar Documents

Publication Publication Date Title
JP3989932B2 (ja) マスタ−スレーブ分散通信システムにおけるローカル同期の方法および機構
US6327253B1 (en) Method and apparatus for controlling switching of connections among data processing devices
EP1124179B1 (en) An apparatus for signal synchronization between two clock domains
US7181485B1 (en) Variably delayable transmission of packets between independently clocked source, intermediate, and destination circuits while maintaining orderly and timely processing in one or both of the intermediate and destination circuits
US7085847B2 (en) Method and system for scheduling network communication
US6654370B1 (en) Backplane synchronization in a distributed system with clock drift and transport delay
US9985774B2 (en) Methods and systems for synchronization between multiple clock domains
US6687255B1 (en) Data communication circuit having FIFO buffer with frame-in-FIFO generator
US6792484B1 (en) Method and apparatus for storing data using a plurality of queues
US6317415B1 (en) Method and system for communicating information in a network
US6631138B1 (en) Reduced pin-count 10Base-T MAC to transceiver interface
US7283547B1 (en) Switch fabrics logical synchronization utilizing propagation lockdown
EP3776176B1 (en) System and method for asynchronous, multiple clock domain data streams coalescing and resynchronization
JP2004503136A (ja) キュー再同期:分散スイッチングシステムの同期式リアルタイムアップグレード
KR20070039580A (ko) 통신 구성 요소의 메시지 메모리의 데이터에 대한 액세스를제어하기 위한 메시지 관리자 및 제어 방법
KR101087827B1 (ko) 데이터 전송 방법
EP2036232B1 (en) Method and apparatus for transmitting data in a flexray node
JP4516395B2 (ja) リンク・リスト・プロセッサを持つメモリ管理システム
WO2000019683A1 (en) Method and system for managing storage of data
US5515371A (en) Timeslot interleaving delay compensation (bonding) mechanism for time division multiplexed digital communication network
CN108431790B (zh) 用于高速迁移(EXTRA)NoC的路由器的专用SSR管线级
US5799175A (en) Synchronization system and method for plesiochronous signaling
US20100046534A1 (en) Data transmission apparatus
US7224693B1 (en) Long packet handling
JP2009206696A (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
LAPS Lapse due to unpaid annual fee