KR20050084869A - 데이터 버스를 통한 메모리 장치로의 패킷 데이터 전송방법 및 장치와, 메모리 장치로부터 통신 링크로의 데이터버스를 통한 출력 패킷 데이터 전송 방법 및 장치와,컴퓨터 시스템 - Google Patents

데이터 버스를 통한 메모리 장치로의 패킷 데이터 전송방법 및 장치와, 메모리 장치로부터 통신 링크로의 데이터버스를 통한 출력 패킷 데이터 전송 방법 및 장치와,컴퓨터 시스템 Download PDF

Info

Publication number
KR20050084869A
KR20050084869A KR1020057007095A KR20057007095A KR20050084869A KR 20050084869 A KR20050084869 A KR 20050084869A KR 1020057007095 A KR1020057007095 A KR 1020057007095A KR 20057007095 A KR20057007095 A KR 20057007095A KR 20050084869 A KR20050084869 A KR 20050084869A
Authority
KR
South Korea
Prior art keywords
packet data
data
buffer device
memory
transmitting
Prior art date
Application number
KR1020057007095A
Other languages
English (en)
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 KR20050084869A publication Critical patent/KR20050084869A/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/38Information transfer, e.g. on bus
    • 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
    • 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
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks

Abstract

본 발명은 입력 패킷 데이터를 데이터 버스를 거쳐 메모리 장치로 전송하고 출력 패킷 데이터를 상기 메모리 장치로부터 상기 데이터 버스를 거쳐 통신 링크에 전송하는 방법 및 장치를 개시한다. 데이터 버스를 통해 메모리 장치로 패킷 데이터를 전송하는 방법은, 패킷 데이터의 스트림을 수신하는 단계와, 버퍼 장치 내에 상기 수신된 패킷 데이터를 저장하는 단계와, 상기 저장된 패킷 데이터에 응답하여 패킷 데이터의 버스트를 상기 메모리 장치에 전송하는 단계를 포함하되, 상기 패킷 데이터 버스트의 사이즈는 상기 데이터 버스(10)의 특성에 의존한다. 메모리 장치로부터 데이터 버스를 거쳐 통신 링크에 출력 패킷 데이터를 전송하는 방법은, 상기 메모리 장치로부터 버퍼 장치로 패킷 데이터의 버스트를 전송하는 단계―상기 패킷 데이터 버스트의 사이즈는 상기 데이터 버스의 특성에 의존함―와, 상기 버퍼 장치 내에 상기 패킷 데이터를 저장하는 단계와, 상기 버퍼 내에서 상기 패킷 데이터를 세그먼트화하는 단계와, 상기 전송 단계에 응답하여 상기 세그먼트화된 패킷 데이터를 상기 통신 링크에 전송하는 단계를 포함한다.

Description

데이터 버스를 통한 메모리 장치로의 패킷 데이터 전송 방법 및 장치와, 메모리 장치로부터 통신 링크로의 데이터 버스를 통한 출력 패킷 데이터 전송 방법 및 장치와, 컴퓨터 시스템{METHOD AND APPARATUS FOR INTERMEDIATE BUFFER SEGMENTATION AND REASSEMBLY}
본 발명은 입력되는 패킷 데이터를 데이터 버스를 통해 메모리 장치로 전송하는 방법 및 장치에 관한 것이다. 본 발명은 또한 출력 패킷 데이터를 메모리 장치로부터 데이터 버스를 거쳐 통신 링크로 전송하는 방법 및 장치에 관한 것이다.
이 분야에서 가장 널리 알려진 대표로서의 ATM(비동기 전송 프로토콜) 혹은 TCP/IP(전송 제어 프로토콜/인터넷 프로토콜)를 갖는 거의 모든 통신 프로토콜들은 효율적인 통신을 위해 사용자 데이터 패킷을 세그먼트화하고 재조합한다. 대부분의 경우, 세그먼트화 및 재조합은 애플리케이션 메모리와 통신 매체 간의 사용자(혹은 애플리케이션)에게 투명하게 행해진다. 기본적으로는 두개의 극단적인 수단이 알려진다.
(1) 세그먼트화와 재조합은 애플리케이션('호스트') 메모리에 대해 직접 수행된다.
(2) 애플리케이션 패킷들은 '호스트' 메모리로부터 통신 어댑터 메모리로 전송되고 세그먼트화 및 재조합은 어댑터 메모리와 상기 통신 매체 간에서 수행된다.
두 극단적인 수단은 호스 프로세서 버스에 부하를 높여 호스트의 계산 처리량을 감소시키거나 네트워크 인터페이스 카드 상에 상당한 양의 부가적인 메모리를 필요로 하여 코스트를 상승시키는 단점을 갖는다.
보다 상세하게, (1)에서, 비교적 적은, 기껏해서 48바이트에 불과한 ATM 셀 페이로드(ATM cell payload)는 시스템 버스를 통해 전송되어, 이 전송에 커다란 오버헤드(overhead)를 야기시킨다. 64-비트 PCI 버스 상에서, 가령 6사이클은 48바이트 페이로드를 전송하는데 충분하며, 추가적으로 최상의 경우, 1 어드레스 사이클과 하나의 '버스트 엔드(burst-end)'사이클이 적용되어, 25%의 오버헤드를 야기하는 8사이클을 발생시킨다. (2)에서, 상기 어댑터 메모리는 코스트가 높고 제한을 많이 받는다. 제한된 메모리의 양은 지원될 동시 커넥션(concurrent connection)의 수를 제한하며, 애플리케이션 패킷이 도달하고 있는 동안 메모리가 '사용중'이라는 사실은 상당한 메모리를 요구하며, 평균 애플리케이션 패킷 사이즈가 2Kbyte인 1000개의 커넥션에 대해 최악의 경우를 대처하는데 2Mbyte이상의 재조합 메모리가 요구된다. 그렇지 않으면, 데드락(deadlock)을 방지하는데 복소 알고리즘(complex algorithms)이 개발되고 구현되어야만 한다. 이 요구되는 메모리의 처리량은 그것을 고가로 만든다. 동시에, 이 시스템에서는 '호스트' 메모리의 가상의 무한 소스가 이용가능하지만 사용되지는 않는다.
미국 특허 제 5,303,302호는 인터리빙된 셀 스트림(interleaved streams of cells)의 형태로 암호화된 데이터 패킷을 수신하고, 그 수신된 셀을 버퍼 내에 각각의 패킷의 엔드 셀(end cell)이 수신될 때까지 저장하는 네트워크 제어기를 개시하는데, 각각의 패킷의 엔드 셀이 수신되면, 완전한 패킷이 암호해독되고, 에러 체크되고 그리고 호스트 컴퓨터에 송신된다. 패킷은 따라서 오프-호스트 프로세서 메모리(off-host processor memory)에서 완전히 재조합되고, 암호해독되고 그리고 직접 메모리 액세스(DMA) 메카니즘을 통해 호스트 메모리로 전송된다.
컴퓨터 시스템에서 여러 공지된 시스템 버스들은 패킷 전송을 위해 사용되는 최적의 것이 아니다. 이것은 특히 보다 작은 평균 패킷 사이즈를 갖는 보다 많은 동시 커넥션들이 사용될 때에 단점이 된다.
전술한 것으로부터 볼 때, 버스 오버헤드를 감소시키며 최적의 코스트/성능 솔루션을 달성하기 위해 컴퓨터 시스템에서 패킷 전송을 개선시키기 위한 필요성이 여전히 존재한다.
장래의 온칩 솔루션(on-chip solution)은 송신 메모리 및 수신 메모리가 다이나믹하게 공유할 수 있도록 하여, 처리량을 증가시켜야 한다.
도 1은 본 발명의 실시예의 개략적인 도면이다.
도 2는 버퍼 장치를 보다 상세하게 도시한 도면이다.
도면은 예시용으로만 제공된다.
일반적으로, 온 어댑터 메모리(on-adapter memory)로서 간주되는 버퍼 장치(buffer unit)는 가령, 256바이트 혹은 512바이트 데이터 블럭의 세그먼트화 및 재조합을 가능하게 한다. 버퍼 장치가 256 바이트의 패킷 데이터를 송신하거나 수신하자마자, 가령 새로운 256바이트의 패킷 데이터 버스트가 애플리케이션 메모리로 지칭되기도 하는 메모리 장치로부터 요구되거나 그 메모리 장치로 송신된다. 이 애플리케이션 메모리는 컴퓨터 시스템의 메인 메모리이거나 캐시일 수 있다. 메모리 장치는 통상 256 혹은 512 바이트의 데이터 블럭을 사용한다. 이 256 혹은 512 바이트의 데이터 블럭은 애플리케이션 메모리와 통신 어댑터 메모리 간의 전송의 단위로서 간주되며, 동시에 이는 버퍼 장치, 즉 온 어댑터 메모리의 성능을 계산할 때 고려의 대상이 될 기본적인 패킷 데이터 사이즈를 형성한다.
본 발명에 따르면, 데이터 버스를 통해 메모리 장치에 패킷 데이터를 전송하는 방법이 제공된다. 이 방법은 패킷 데이터의 스트림을 수신하는 단계와, 버퍼 장치 내에 상기 수신된 패킷 데이터를 저장하는 단계와, 상기 저장된 패킷 데이터에 응답하여 패킷 데이터의 버스트를 상기 메모리 장치로 전송하는 단계를 포함하되, 상기 패킷 데이터의 버스트의 사이즈는 상기 데이터 버스의 특성에 의존한다.
본 발명의 제 2 측면에 의하면, 메모리 장치로부터 데이터 버스를 거쳐 통신 링크로 출력 패킷 데이터를 송신하는 방법이 제공된다. 이 방법은 메모리 장치로부터 버퍼 장치로 패킷 데이터 버스트를 송신하는 단계와, 상기 버퍼 장치 내에 상기 패킷 데이터를 저장하는 단계와, 상기 송신 단계에 응답하여 상기 저장된 패킷 데이터를 통신 링크로 전송하는 단계를 포함하되, 상기 패킷 데이터의 버스트의 사이즈는 상기 데이터 버스의 특성에 의존한다.
상기 수신된 패킷 데이터는 버퍼 장치에 저장될 수 있는데, 이는 데이터가 버퍼 장치 내에서 이미 구분되어 나중에 메모리 장치에서 메시지에 대한 재조합이 보다 효율적으로 수행될 수 있다고 하는 이점을 갖는다. 이는 패킷 데이터 버스트의 송신이 이미 소팅된 패킷 데이터(sorted packet data)를 포함할 때 더욱 뒷받침된다.
데이터 버스를 통해 송신될 패킷 데이터 버스트가 데이터 버스 동작에 의해 허용되는 사이즈와 상응할 경우에 전송 사이클 내에서 최적의 패킷 데이터 양이 전송될 수 있다는 이점이 있다.
메모리 장치로부터 데이터 버스를 거쳐 통신 링크로의 출력 패킷 데이터의 송신은 버퍼 장치에서 패킷 데이터를 세그먼트화하는 단계를 포함할 수 있다. 따라서, 상기 송신 단계는 상기 세그먼트화된 패킷 데이터를 통신 링크로 전송하는 단계를 포함할 수 있다. 일반적으로, 데이터 버스를 통해 도달하는 패킷 데이터는 버퍼 장치 내에서 통신 링크로 전송되기에 적합한 보다 소형의 사이즈로 세그먼트화된다. 이는 메모리 장치로부터 상기 세그먼트화를 분리시킬 수가 있다.
본 발명의 제 3 측면에 의하면, 데이터 버스를 거쳐 메모리 장치로 패킷 데이터를 송신하는 장치가 제공된다. 이 장치는 패킷 데이터의 스트림을 수신하는 수신 수단과, 상기 수신된 패킷 데이터를 저장하는 버퍼 장치와, 상기 저장된 패킷 데이터에 응답하여 상기 버퍼 장치로부터 상기 메모리 장치로 패킷 데이터 버스트의 송신을 개시하는 제어 장치를 포함하되, 상기 패킷 데이터의 버스트의 사이즈는 상기 데이터 버스의 특성에 의존한다.
본 발명의 제 4 측면에 의하면, 출력 패킷 데이터를 통신 링크로 전송하는 장치가 제공된다. 이 장치는 출력 패킷 데이터를 제공하는 메모리 장치와, 상기 패킷 데이터를 저장하는 버퍼 장치와, 메모리 장치와 버퍼 장치를 연결하는 데이터 버스와, 동작시 데이터 버스에 액세스하고, 상기 메모리 장치로부터 버퍼 장치로 패킷 데이터 버스트의 전송을 개시하고, 상기 전송에 응답하여 상기 저장된 패킷 데이터를 버퍼 장치로부터 통신 링크로의 전송을 야기하는 제어 장치를 포함하되, 상기 패킷 데이터의 버스트의 사이즈는 상기 데이터 버스의 특성에 의존한다.
버퍼 장치는 인터리빙되어 도달하는 패킷 데이터를 소팅하는 소팅 수단(sorting means)을 포함할 수 있다. 이는 멀티플렉서와 메시지의 부분을 형성하는 패킷 데이터 혹은 패킷을 일시적으로 저장하는 큐(queues)에 의해 구현될 수 있다.
버퍼 장치는 패킷 데이터를 세그먼트화하고 재조합하도록 적응될 수 있다. 이는 입력 및 출력 패킷 데이터가 동일한 장치에 의해 처리되어 하나의 제어 장치에 의해 효율적으로 처리될 수 있다는 이점을 갖는다.
제어 장치는 버퍼 장치 제어기와 메모리 제어기를 포함할 수 있다. 이 장치는 버퍼 장치의 독립적인 제어와 메모리 장치의 액세스를 가능하게 한다. 특히, 버퍼 장치 제어기는 상기 패킷 데이터의 소팅, 제조합, 및/또는 세그먼트화를 제어할 수 있다.
제안된 솔루션은 온 어댑터 메모리의 요건을, 가령 DRAM 및 칩 상의 로직의 단일 칩 구현을 요즘의 기술로 가능하게 하는 레벨의 정도로 감소시킨다.
게다가, 버스 오버헤드는 25%에서 대략 6%(256바이트) 혹은 3%(512바이트)로 감소될 수 있다.
보다 소형의 평균 패킷 데이터 혹은 패킷 사이즈로 인해 보다 많은 동시 커넥션을 지원하는 것이 보다 더 간단해질 것이며, 온 칩 DRAM 솔루션이 송신 및 수신 메모리를 다이나믹하게 공유할 수 있기 때문에 이 메모리의 사용을 개선시킬 수 있으며 동일 코스트에서 처리량을 증가시킬 수 있다.
622 Mbps ATM의 세그먼트화/재조합(SAR) 어댑터의 효율적인 설계와, 공유 메모리의 원하는 효율 및 전체 처리량(4*622 Mbps)을 위해, 온칩 DRAM 솔루션이 제안된 솔루션을 통해 구현될 수 있다. 따라서, 최적의 코스트 및 성능 비율이 달성될 수 있다.
본 발명의 바람직한 실시예는 후술되는 개략적인 도면의 간단한 설명을 참조하면서 예를 통해 상세하게 설명될 것이다.
본 발명의 실시예를 도면을 참조하여 설명하기에 앞서, 몇가지 일반적인 문제에 역점을 두고 다루어진다.
먼저, 모든 호스트 컴퓨터 시스템은 하나 이상의 캐시 라인의 정도로, 가령 32 바이트의 멀티플인 최적의 메모리 블럭 전송 사이즈를 갖는다. 모든 버스 전송은 고정된 어드레싱 사이클의 오버헤드와, 처음으로 전송될 기타의 파라미터를 갖는다. 데이터 전송을 셋업하기 위한 고정된 버스 혹은 어드레싱 사이클의 수와 최대 데이터 버스 길이는 데이터 버스의 특성이 된다. 이들의 관계는 데이터 버스의 효율을 나타낸다. 따라서 만약 패킷 데이터의 수 혹은 길이가 상기 최대 데이터 버스 길이와 같거나 거의 유사하다면 최적의 효율이 달성된다. 그 효율은 보다 작은 패킷 데이터가 송신될 때 감소하며, 그리고 만약 고정된 오버헤드의 어드레싱 사이클이 전송될 실제의 패킷 데이터와 비교해서 더 크다면 더욱 악화된다.
도 1은 시스템 버스(10)으로 지칭되기도 하는 데이터 버스(10)를 통해 입력 및 출력 패킷 데이터를 전송하기 위한 장치의 개략적인 도면이다. 용어 "패킷 데이터"는 본 명세서에서 가변 길이 패킷으로 지칭되기도 하는 패킷의 부분을 형성하거나 혹은 실제로 고정 길이 정보가 되는 셀의 부분을 형성하는 정보를 언급한다. 이 장치는 컴퓨터 시스템의 일부이며, 통신 링크(60)로부터 패킷 데이터의 스트림을 수신하는 수신 수단(40)과, 수신된 패킷 데이터를 저장하기 위한, 중간의 세그먼트화/재조합 메모리로 지칭되기도 하는 버퍼 장치(50)를 포함하며, 상기 버퍼 장치(50)는 수신 라인(41) 및 송신 라인(42)을 거쳐 수신 수단(40)에 연결된다. 상기 수신 수단(40)은 송신(TX)으로부터 통신 링크(60)로의 수신(RX)을 지원하기 위한 트랜시버(40)로서 구현될 수 있다. 이 장치는 메인 저장장치(20)로 지칭되기도 하는 메인 메모리(20)와, 호스트 CPU 혹은 프로세서(32)에 연결된 캐시(30)를 더 포함한다. 상기 메인 멤모리(20)와 캐시(30) 모두는 데이터 버스(10)에 연결되며, 이 데이터 버스(10)는 버퍼 장치(50)에 연결되기도 한다. 제어 라인(12)을 통해 버퍼 장치(50)에 연결된 제어 장치(70)가 더 제공되며, 이 제어 장치(70)는 버퍼 장치 제어기(72) 및 메모리 제어기(74)를 포함한다. 제어 장치(70)는, 버퍼 장치(50)와 메인 메모리(20) 혹은 캐시(30) 간의 최적의 상호 작용이 달성될 수 있는 방식으로 버퍼 장치 제어기(72) 및 메모리 제어기(74)를 제어한다. 또한, 버퍼 장치 제어기(72)는 버퍼 장치(50) 및 메모리 제어기(74)를 제어하여 데이터 버스(10)를 통한 메인 메모리(20) 및 캐시(30)로의 액세스를 제어한다.
버퍼 장치(50) 내에 저장되고 재조합된 패킷 데이터, 가령 저장되거나 소팅된 패킷 데이터의 수에 응답하여, 제어 장치(70)는 버퍼 장치(50)로부터 메인 메모리(20) 혹은 캐시(30)로의 패킷 데이터 버스트의 송신을 개시한다. 패킷 데이터 버스트의 사이즈는 데이터 버스(10)의 특성에 의존한다. 데이터 버스(10)의 특성은 최대 데이터 버스 길이 및 데이터 전송을 셋업하기 위한 고정된 버스 사이클의 수로서 간주된다.
통신 링크(60)로의 송신 전에 패킷 데이터를 버퍼 장치(50) 내에서 효과적으로 세그먼트화하는 출력 패킷 데이터에 대해, 제어 장치(70)는 데이터 버스(10)에 액세스하고, 메인 메모리(20) 혹은 캐시(30)로부터 버퍼 장치(50)로 패킷 데이터 버스트의 전송을 개시하고, 상기 전송에 응답하여 버퍼 장치(50)로부터 트랜시버(40)를 거쳐 통신 링크(60)로 세그먼트화된 패킷 데이터의 전송을 야기한다. 이에 의해 패킷 데이터 버스트의 사이즈는 데이터 버스(10)의 특성에 의존한다.
시스템은 다음과 같이 동작한다. 메시지의 일부이며, 하나의 메시지를 형성하는 다중 TCP/IP 패킷, 혹은 데이터 패킷을 형성하는 다중 ATM 셀로 간주할 수 있는 패킷 데이터는 통상적으로 상이한 다중 메시지에 속하는 패킷 데이터를 포함하는 패킷들 혹은 셀들이 인터리빙되는 방식으로 통신 링크(60)에 도달한다. CPU(32)가 영향을 미칠 완전한 메시지를 재조합하기 위해 다중 패킷 데이터는 메시지 내로 재조합되어야만 한다. 통신 링크 재조합 제어장치로서 간주되는 버퍼 장치 제어기(72)는 다중 패킷들 혹은 패킷 데이터를 하나의 메시지로 조합하는 책임을 갖는다. 버퍼 장치 제어기는 이를 수행할 중간의 세그먼트화/재조합 메모리로서 버퍼 장치(50)를 사용한다. 제어 장치(70)는 호스 CPU(32)의 버퍼 장치(50)와 메인 메모리(20) 혹은 캐시(30) 간의 데이터 전송의 최적의 사이즈에 따라, 캐시/메인 메모리 제어 장치로서 작용할 메모리 제어기(74)에 명령하여, 통상 하나의 패킷보다 더 큰 적절한 사이즈의 데이터 조각을 메인 메모리(20) 혹은 캐시(30)로 이동시키고, 이 전송의 완료 후에, 버퍼 장치 제어기(72)에 의한 재 사용을 위해 버퍼 장치(50) 내의 메모리를 릴리스(해제)할 것이다. 당업자라면 이러한 것은 버퍼 장치 제어기(72)가 없이도 발생가능하여, 통신 링크(60) 상의 패킷 사이즈와 버퍼 장치(50)와 메인 메모리(20) 혹은 캐시(30) 간의 패킷 데이터 전송 사이즈를 분리할 수가 있다는 것을 이해할 수 있다. 캐시(30)와 메인 메모리(20) 간의 최적의 데이터 전송 사이즈는 상이하며, 제어 장치(70)는 메시지가 메인 메모리(20)로 전달되는지 아니면 캐시(30)로 전달되는지에 따라 상이한 전략을 적용할 수가 있다. 패킷 데이터의 버스트에 상응하는 최적의 사이즈는 본 명세서에서 청크(chunk)로서 지칭된다. 일단 버퍼 장치 제어기(72)가 메시지 표시기의 종료를 검출했다면, 제어 장치(70)는 남아있는 패킷 데이터를 버퍼 장치(50)로부터 메인 메모리(20) 혹은 캐시(30)로 전송할 것을 명령하여, 메시지의 최종 부분이 버퍼 장치(50) 내에 스틱(stick)하는 것을 방지한다.
시스템을 빠져나오는 메시지에 대해, 즉 통신 링크(60) 상에서 발송되는 메시지에 대해, CPU(32)는 메인 메모리(20) 혹은 캐시(30)로부터 통신 링크(60)로 메시지의 패킷 데이터를 이동시키는 전송을 이를 수행하는 메모리 제어기(74)에 지시함으로써 개시할 것이다. 제어 장치(70)는 이의 제어권을 가지며, 최적의 청크를 버퍼 장치(50)로 이동시키며, 버퍼 장치 제어기(72)에 지시하여 청크의 세그먼트화를 개시하고 패킷을 발송할 것이다. 일단 청크의 조각이 송신되었다면 제어 장치(70)는 다음 청크의 전송을 개시할 것이다.
기술된 시스템은 호스트 CPU 시스템에서의 패킷 데이터 전송을 위한 최적의 청크 사이즈로부터 통신 링크 패킷 및 메시지 사이즈의 분리를 달성하여, 당업자가 상기 청크, 상기 버퍼 장치, 즉 중간의 세그먼트화 및 재조합 메모리 및 시스템 성능의 최적 사이즈를 결정할 수 있도록 한다.
도 2는 버퍼 장치(50) 혹은 중간의 세그먼트화 및 재조합 메모리를 보다 상세하게 도시한다. 동일한 참조 부호는 동일한 부분을 표시하도록 사용된다. 버퍼 장치(50)는 패킷 데이터를 세그먼트화하고 재조합할 수 있다. 그를 위해, 버퍼 장치(50)는 트랜시버(40)로부터 수신 라인(41)을 통해 인터리빙되어 도달하는 패킷 데이터를 소팅(sorting)하기 위한 소팅 수단(52)을 포함한다. 소팅 수단(52)은 수개의 입력 큐(52)와, RX 채널을 통해 각각의 큐(52)에 수신된 패킷 데이터를 분배하기 위한 멀티플렉서일 수 있는 입력 분배기(53)를 포함한다. 입력 패킷 데이터를 제각기의 입력 큐(52)로 소팅하는 것은 제어 장치(70), 특히 제어 라인(12)을 통한 버퍼 장치 제어기(72)에 의해 제어된다. 출력 패킷 데이터의 경우, 버퍼 장치(50)는 출력 멀티플렉서(55)와 더불어 출력 큐(54)를 더 포함한다. 이 패킷 데이터는 버퍼 장치 제어기(72)의 제어하에 세그먼트화되어 TX로 표시되는 송신 라인(42)을 통해 트랜시버(40)에 송신된다. 세그먼트화 및 트랜시버(40)로의 출력 패킷 데이터의 전송은 일반적으로 제어 장치(70)에 의해 제어된다.

Claims (13)

  1. 데이터 버스(10)를 통해 메모리 장치(20,30)로 패킷 데이터를 전송하는 방법에 있어서,
    패킷 데이터의 스트림을 수신하는 단계와,
    버퍼 장치(50) 내에 상기 수신된 패킷 데이터를 저장하는 단계와,
    상기 저장된 패킷 데이터에 응답하여 패킷 데이터의 버스트를 상기 메모리 장치(20,30)에 전송하는 단계를 포함하되,
    상기 패킷 데이터 버스트의 사이즈는 상기 데이터 버스(10)의 특성에 의존하는
    패킷 데이터 전송 방법.
  2. 제 1 항에 있어서,
    상기 버퍼 장치(50) 내에 상기 패킷 데이트를 소팅하는 단계를 더 포함하는 패킷 데이터 전송 방법.
  3. 제 2 항에 있어서,
    상기 패킷 데이터의 버스트를 전송하는 단계는 상기 소팅된 패킷 데이터를 포함하는 패킷 데이터 전송 방법.
  4. 제 1 항 내지 제 3 항 중의 어느 한 항에 있어서,
    전송될 상기 패킷 데이터의 버스트는 데이터 버스 동작에 의해 허용되는 사이즈에 대응하는 패킷 데이터 전송 방법.
  5. 메모리 장치(20,30)로부터 데이터 버스(10)를 거쳐 통신 링크(60)에 출력 패킷 데이터를 전송하는 방법에 있어서,
    상기 메모리 장치(20,30)로부터 버퍼 장치(50)로 패킷 데이터의 버스트를 전송하는 단계―상기 패킷 데이터 버스트의 사이즈는 상기 데이터 버스(10)의 특성에 의존함―와,
    상기 버퍼 장치(50) 내에 상기 패킷 데이터를 저장하는 단계와,
    상기 전송 단계에 응답하여 상기 저장된 패킷 데이터를 상기 통신 링크(60)에 전송하는 단계를 포함하는
    출력 패킷 데이터 전송 방법.
  6. 제 5 항에 있어서,
    상기 버퍼 장치(50) 내에 패킷 데이터를 세그먼트화하는 단계를 더 포함하는 출력 패킷 데이터 전송 방법.
  7. 데이터 버스(10)를 통해 메모리 장치(20,30)로 패킷 데이터를 전송하는 장치에 있어서,
    패킷 데이터의 스트림을 수신하는 수신 수단(40)과,
    상기 수신된 패킷 데이터를 저장하는 버퍼 장치(50)와,
    상기 저장된 패킷 데이터에 응답하여 상기 버퍼 장치(50)로부터 상기 메모리 장치(20,30)로 패킷 데이터의 버스트의 전송을 개시하는 제어 장치(70)를 포함하되,
    상기 패킷 데이터 버스트의 사이즈는 상기 데이터 버스(10)의 특성에 의존하는
    패킷 데이터 전송 장치.
  8. 제 7 항에 있어서,
    상기 버퍼 장치(50)는 인터리빙되어 도달하는 패킷 데이터를 소팅하는 소팅 수단(52,53)을 포함하는 패킷 데이터 전송 장치.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 버퍼 장치(50)는 상기 패킷 데이터를 재조합하도록 적응되는 패킷 데이터 전송 장치.
  10. 출력 패킷 데이터를 통신 링크(60)에 전송하는 장치에 있어서,
    상기 출력 패킷 데이터를 제공하는 메모리 장치(20,30)와,
    상기 패킷 데이터를 저장하는 버퍼 장치(50)와,
    상기 메모리 장치(20,30)와 버퍼 장치(50)를 연결하는 데이터 버스(10)와,
    동작시에 상기 데이터 버스(10)를 액세스하고, 상기 메모리 장치(20,30)로부터 상기 버퍼 장치(50)로의 패킷 데이터의 버스트의 전송을 개시하고, 상기 전송에 응답하여 상기 버퍼 장치(50)로부터 상기 통신 링크(60)로의 상기 저장된 패킷 데이터의 전송을 야기하는 제어 장치(70)를 포함하되,
    상기 패킷 데이터의 버스트의 사이즈는 상기 데이터 버스(10)의 특성에 의존하는
    출력 패킷 데이터 전송 장치.
  11. 제 7 항 내지 제 10 항 중의 어느 한 항에 있어서,
    상기 제어 장치(70)는 상기 패킷 데이터를 재조합하고 세그먼트화하기 위한 버퍼 장치 제어기(72)를 포함하는 출력 패킷 데이터 전송 장치.
  12. 제 7 항 내지 제 11 항 중의 어느 한 항에 있어서,
    상기 제어 장치(70)는 상기 메모리 장치(20,30)로의 액세스를 제어하기 위한 메모리 제어기(74)를 포함하는 출력 패킷 데이터 전송 장치.
  13. 제 7 항 내지 제 12 항 중의 어느 한 항에 따른 장치를 포함하는 컴퓨터 시스템.
KR1020057007095A 2002-11-25 2003-11-05 데이터 버스를 통한 메모리 장치로의 패킷 데이터 전송방법 및 장치와, 메모리 장치로부터 통신 링크로의 데이터버스를 통한 출력 패킷 데이터 전송 방법 및 장치와,컴퓨터 시스템 KR20050084869A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02406015.4 2002-11-25
EP02406015 2002-11-25

Publications (1)

Publication Number Publication Date
KR20050084869A true KR20050084869A (ko) 2005-08-29

Family

ID=32338230

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057007095A KR20050084869A (ko) 2002-11-25 2003-11-05 데이터 버스를 통한 메모리 장치로의 패킷 데이터 전송방법 및 장치와, 메모리 장치로부터 통신 링크로의 데이터버스를 통한 출력 패킷 데이터 전송 방법 및 장치와,컴퓨터 시스템

Country Status (5)

Country Link
US (1) US20060120405A1 (ko)
KR (1) KR20050084869A (ko)
AU (1) AU2003278452A1 (ko)
TW (1) TWI313412B (ko)
WO (1) WO2004049179A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100707228B1 (ko) * 2006-02-27 2007-04-17 후지쯔 가부시끼가이샤 데이터 송신 장치, 데이터 송수신 방법 및 데이터 송수신프로그램을 기록한 컴퓨터 판독가능한 기록매체
KR100915784B1 (ko) * 2007-12-28 2009-09-04 포스데이타 주식회사 데이터 버스트 할당 방법 및 장치

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4567373B2 (ja) * 2004-05-20 2010-10-20 ルネサスエレクトロニクス株式会社 データ転送装置及び通信データ処理システム
US7623539B2 (en) 2005-03-31 2009-11-24 Agere Systems Inc. Apparatus and method for processing cells in an ATM adaptation layer device in a communications system that exhibits cell delay variation
US8169891B2 (en) 2005-03-31 2012-05-01 Agere Systems Inc. Apparatus and method for handling lost cells in a communications system
JP2007323321A (ja) * 2006-05-31 2007-12-13 Toshiba Corp 半導体記憶装置およびそのデータ送信方法
EP1868328B2 (de) * 2006-06-12 2017-03-01 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungsgerätes und Automatisierungsgerät
US7596147B2 (en) 2006-06-28 2009-09-29 Agere Systems Inc. Apparatus and method for fractional processing of cells in a communications system
GB0616025D0 (en) * 2006-08-11 2006-09-20 Aspex Semiconductor Ltd Improvements relating to direct data input/output interfaces
US8169914B2 (en) * 2009-03-16 2012-05-01 Sling Media Pvt. Ltd. Method and node for transmitting data over a communication network using negative acknowledgment
US9003084B2 (en) 2011-02-18 2015-04-07 Ab Initio Technology Llc Sorting
US8447901B2 (en) 2011-02-18 2013-05-21 Ab Initio Technology Llc Managing buffer conditions through sorting
CN104158770B (zh) * 2014-08-20 2018-02-13 电子科技大学 一种交换机数据包切分与重组的方法与装置
US9923828B2 (en) * 2015-09-23 2018-03-20 Cisco Technology, Inc. Load balancing with flowlet granularity
US11500779B1 (en) 2019-07-19 2022-11-15 Marvell Asia Pte, Ltd. Vector prefetching for computing systems
US11379379B1 (en) * 2019-12-05 2022-07-05 Marvell Asia Pte, Ltd. Differential cache block sizing for computing systems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546543A (en) * 1993-03-26 1996-08-13 Digital Equipment Corporation Method for assigning priority to receive and transmit requests in response to occupancy of receive and transmit buffers when transmission and reception are in progress
US5793953A (en) * 1995-07-07 1998-08-11 Sun Microsystems, Inc. Method and apparatus for allowing packet data to be separated over multiple bus targets
US5930525A (en) * 1997-04-30 1999-07-27 Adaptec, Inc. Method and apparatus for network interface fetching initial and data burst blocks and segmenting blocks and scheduling blocks compatible for transmission over multiple virtual circuits
US6249528B1 (en) * 1998-03-12 2001-06-19 I-Cube, Inc. Network switch providing per virtual channel queuing for segmentation and reassembly
US6216224B1 (en) * 1998-06-05 2001-04-10 Micron Technology Inc. Method for read only memory shadowing
US6952739B2 (en) * 2000-08-03 2005-10-04 International Business Machines Corporation Method and device for parameter independent buffer underrun prevention

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100707228B1 (ko) * 2006-02-27 2007-04-17 후지쯔 가부시끼가이샤 데이터 송신 장치, 데이터 송수신 방법 및 데이터 송수신프로그램을 기록한 컴퓨터 판독가능한 기록매체
KR100915784B1 (ko) * 2007-12-28 2009-09-04 포스데이타 주식회사 데이터 버스트 할당 방법 및 장치

Also Published As

Publication number Publication date
TWI313412B (en) 2009-08-11
TW200415474A (en) 2004-08-16
AU2003278452A1 (en) 2004-06-18
WO2004049179A3 (en) 2004-07-29
US20060120405A1 (en) 2006-06-08
WO2004049179A2 (en) 2004-06-10

Similar Documents

Publication Publication Date Title
JP4205181B2 (ja) Atmパケット・ヘッダおよびデータをホスト・コンピュータ・システムにバースト転送するための方法および装置
US7739427B2 (en) Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US7145914B2 (en) System and method for controlling data paths of a network processor subsystem
KR20050084869A (ko) 데이터 버스를 통한 메모리 장치로의 패킷 데이터 전송방법 및 장치와, 메모리 장치로부터 통신 링크로의 데이터버스를 통한 출력 패킷 데이터 전송 방법 및 장치와,컴퓨터 시스템
US7782849B2 (en) Data switch and switch fabric
US5793953A (en) Method and apparatus for allowing packet data to be separated over multiple bus targets
US7606151B2 (en) Power reduction in switch architectures
US9361225B2 (en) Centralized memory allocation with write pointer drift correction
US7596148B2 (en) Receiving data from virtual channels
TWI257790B (en) System for protocol processing engine
US5930525A (en) Method and apparatus for network interface fetching initial and data burst blocks and segmenting blocks and scheduling blocks compatible for transmission over multiple virtual circuits
US6388989B1 (en) Method and apparatus for preventing memory overrun in a data transmission system
US7391776B2 (en) Microengine to network processing engine interworking for network processors
US7580410B2 (en) Extensible protocol processing system
WO2002069603A2 (en) Ethernet to clan bridge
JPH0660041A (ja) 主通信データ経路の外で複合機能を実行するピコプロセッサを利用した通信システムおよびデータ処理方法
Almesberger High-speed ATM networking on low-end computer systems
US7092404B1 (en) Interposer chip for protocol conversion
CN115941603A (zh) 一种处理报文的方法和网络设备
JP2001292118A (ja) データ伝送方法及びデータ伝送装置
KR19990004524A (ko) 에이티엠 브리지 네트워크 인터페이스 카드
EP0863465A1 (en) Network interface device and method
JP2004120047A (ja) 通信ノード装置
GB2375196A (en) Method for optimisation of memory storage by measuring filling

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application