KR20130098265A - 컴퓨터 시스템 및 그것의 운영을 위한 방법 - Google Patents

컴퓨터 시스템 및 그것의 운영을 위한 방법 Download PDF

Info

Publication number
KR20130098265A
KR20130098265A KR1020137000022A KR20137000022A KR20130098265A KR 20130098265 A KR20130098265 A KR 20130098265A KR 1020137000022 A KR1020137000022 A KR 1020137000022A KR 20137000022 A KR20137000022 A KR 20137000022A KR 20130098265 A KR20130098265 A KR 20130098265A
Authority
KR
South Korea
Prior art keywords
cache
storage device
network
block
data packet
Prior art date
Application number
KR1020137000022A
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 KR20130098265A publication Critical patent/KR20130098265A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 컴퓨터 시스템(2) 및 그것을 운영하기 위한 방법에 관한 것이다. 컴퓨터 시스템(2)은 직렬 네트워크 링크(4)에 의해 복수의 네트워크 디바이스(ND1...ND3)에 접속된 네트워크 저장 디바이스(NSD)를 포함한다. 네트워크 저장 디바이스(NSD)는 블록 기반 저장 디바이스(BBSD), 및 복수의 캐시 큐(QL1...QL3)로 세분되는 캐시 메모리(10)를 갖는 스케일가능한 캐시 선택기(SCS)를 포함하고, 각각의 캐시 큐(QL1...QL3)는 네트워크 디바이스들(ND1...ND3) 중 하나에 전용이다. 방법은, a) 큐 선택기(QS)에서 네트워크 디바이스들(ND1...ND3) 중 하나에 할당되는 적어도 하나의 입력 데이터 패킷(3)을 수신하는 단계, b) 상기 입력 데이터 패킷(3)을 전송하여 개별 네트워크 디바이스(ND1...ND3)에 할당된 캐시 큐(QL1...QL3) 내에 저장하는 단계, c) 상기 캐시 큐(QL1...QL3)로부터, 상기 캐시 큐(QL1...QL3) 내에 저장된 입력 데이터 패킷들(3)에 포함되는 데이터 컨텐츠의 적어도 일부분을 포함하는 출력 데이터 패킷(5)을 송신하는 단계를 포함하고, 상기 캐시 큐(QL1...QL3) 내에 저장된 수신된 입력 데이터 패킷들(3)의 데이터의 양이 출력 데이터 패킷(5)의 미리 정해진 크기를 정의하는 임계값(BS, FS)을 초과하는 경우, 출력 데이터 패킷(5)을 출력하는 단계가 수행된다.

Description

컴퓨터 시스템 및 그것의 운영을 위한 방법{COMPUTER SYSTEM AND METHOD FOR OPERATING THE SAME}
최신의 멀티미디어 환경, 예를 들어 전형적으로 수 개의 디지털 카메라, 디스플레이 모니터, 스캐너 등을 포함하는 디지털 비디오 제작을 위한 환경에서는, 네트워크 디바이스라고도 지칭되는 상술한 디바이스들을 접속하는 고속 네트워크를 통해 대량의 고해상도 멀티미디어 데이터가 전달된다. 그러한 멀티미디어 환경에서는, 데이터의 영구적인 저장을 위해, 적절한 저장 디바이스가 중요한 역할을 한다. 통상적으로, 하드 디스크들 또는 플래시 메모리들의 어레이와 같은 블록 기반 네트워크 저장 디바이스가 이더넷, 파이어와이어 또는 USB와 같은 직렬 네트워크를 통해 네트워크 디바이스들에 접속된다. 전체 멀티미디어 환경의 성능을 위해, 특히 실시간 응용을 위해서는, 네트워크 저장 디바이스로의, 그리고 네트워크 저장 디바이스로부터의 높은 데이터 전송 레이트가 중요하다.
본 발명의 목적은 직렬 네트워크 링크를 통해 블록 기반 네트워크 저장 디바이스에 접속되는 복수의 네트워크 디바이스를 포함하는 컴퓨터 시스템, 및 상기 컴퓨터 시스템을 운영하기 위한 방법을 제공하는 것이며, 여기에서 블록 기반 저장 디바이스로의, 그리고 블록 기반 저장 디바이스로부터의 판독/기입 프로세스는 개선된 데이터 레이트를 제공한다.
이러한 목적은 독립 청구항들의 발명의 주제에 의해 달성되며, 유리한 실시예들은 종속 청구항들의 발명의 주제이다.
본 발명에 따르면, 직렬 네트워크 링크에 의해 복수의 네트워크 디바이스에 접속된 네트워크 저장 디바이스를 포함하는 컴퓨터 시스템을 운영하기 위한 방법이 제공된다. 네트워크 저장 디바이스는 네트워크 디바이스들에 관련된 데이터를 저장하기 위한 블록 기반 저장 디바이스를 포함한다. 상기 네트워크 저장 디바이스는 복수의 캐시 큐로 세분되는 캐시 메모리를 갖는 스케일가능한 캐시 선택기를 더 포함한다. 각각의 캐시 큐는 상술한 네트워크 디바이스들 중 하나에 전용이다. 스케일가능한 캐시 선택기는 네트워크 디바이스들로부터 수신되거나 그들로 송신되는 데이터 패킷들을 개별 캐시 큐에 할당하기 위한 큐 선택기를 더 포함한다. 본 발명에 따른 방법은:
a) 큐 선택기에서 네트워크 디바이스들 중 하나에 할당되는 적어도 하나의 입력 데이터 패킷을 수신하는 단계,
b) 상기 입력 데이터 패킷을 전달하여 캐시 메모리의 캐시 큐 내에 저장하는 단계 - 캐시 큐는 개별 네트워크 디바이스에 할당됨 - ,
c) 캐시 메모리의 상기 캐시 큐로부터, 상기 캐시 큐 캐에 저장캣 입력 데이터 패킷들에 의해 포함되는 데이터 컨텐츠의 적어도 일부분을 포함하는 출력 데이터 패킷을 송신하는 단계
를 포함하고, 상기 캐시 큐 내에 저장된 수신된 입력 데이터 패킷들의 데이터의 양이 출력 데이터 패킷의 미리 정해진 크기를 정의하는 임계값을 초과하는 경우, 출력 데이터 패킷을 출력하는 단계가 수행된다.
본 발명에 따른 방법은 이하의 고려사항들에 기초한다:
본 기술분야에 따르면, 하드 디스크에 기입되거나 하드 디스크로부터 판독될 데이터를 버퍼링하기 위해 캐시 메모리가 이용되며, 다른 블록 기반 저장 디바이스들에 대해서도 동일하게 적용된다. 그러한 하드 디스크 캐시 메모리는 실제 하드 디스크로의, 그리고 실제 하드 디스크로부터의 데이터 트래픽을 버퍼링하고, 그에 의해 판독/기입 헤드의 과도한 이동으로부터 드라이브를 해방시킨다. 이제, 직렬 네트워크 링크에 의해 복수의 네트워크 디바이스에 접속된 그러한 블록 기반 저장 디바이스를 포함하는 컴퓨터 시스템이 참조될 것이다. 그러한 시스템에서, 하드 디스크에 의해 수신되는 데이터 스트림은 상이한 디지털 카메라들과 같은 상이한 소스들/네트워크 디바이스들로부터 온 정보/데이터 패킷들을 포함한다. 네트워크 접속이 직렬 네트워크 링크(예를 들어, 이더넷, 파이어와이어 또는 USB)라는 사실로 인해, 상이한 기원들(origins)을 갖는 데이터 패킷들의 시퀀스가 하드 디스크에 전달된다.
본 기술분야에 따른 캐시 메모리는 기원에 무관하게 정보를 저장하는 단순 버퍼이다. 결과적으로, 블록 기반 저장 디바이스, 예를 들어 하드 디스크에 기입되는 데이터 블록은 데이터의 "혼합(mixture)", 즉 복수의 상이한 기원을 갖는 데이터를 포함한다. 위에서 설명된 것과 같은 멀티미디어 환경을 오직 예로서만 참조하면, 그러한 블록은 예를 들어 제1 및 제2 디지털 카메라에 관련된 데이터를 포함할 수 있다. 그러한 멀티미디어 환경의 사용자가 예를 들어 1번 카메라로부터의 비디오 스트림을 검토하기를 원하는 경우, 상기 카메라의 스트림에 관련된 데이터가 하드 디스크의 복수의 상이한 블록으로부터 "수집"되어야 한다. 하나의 데이터 블록이 상이한 기원들의 데이터를 포함할 수 있으므로, 단일 기원의 데이터를 보기 위해 그러한 데이터 블록을 판독하는 것에 의해, 요청되지 않은 데이터도 판독된다. 결과로서, 하드 디스크의 판독/기입 헤드는 매우 많은 수의 이동을 수행해야만 한다. 명백히, 이것은 달성가능한 데이터 레이트에 관한 단점이다.
본 발명에 따른 방법은 이러한 단점을 그 근본에서 다루고 있다. 직렬 네트워크 링크를 통해 수신된 데이터 스트림은 단순 버퍼 대신에, 구조화된 캐시 메모리에 저장된다. 즉, 데이터 스트림에 포함된 데이터 패킷들은 그들의 기원에 따라 분류(sort)된다. 제1 소스/제1 네트워크 디바이스(예를 들어, 제1 디지털 카메라)로부터 수신된 데이터 패킷들은 제1 캐시 큐 내에 저장되는 한편, 제2 네트워크 디바이스로부터 온 데이터 패킷들은 제2 캐시 큐 내에 저장되는 등이다. 이러한 캐시 큐들 중 하나가 소정 임계 레벨을 초과하는 경우(바람직하게는, 임계 레벨은 블록 기반 저장 디바이스의 블록 사이즈에 일치하도록 선택됨), 전체 데이터 블록이 블록 기반 저장 디바이스에 전송/기입된다. 결과적으로, 블록 기반 저장 디바이스에 저장된 데이터는 네트워크 저장 디바이스에 접속된 소스들/네트워크 디바이스들에 따라 블록별로 분류된다. 즉, 저장 디바이스의 각 블록은 단일 네트워크 디바이스에 관련된 데이터만을 포함한다.
앞의 단락들에서, 본 발명에 따른 방법은 오직 예시로서 기입 프로세스에 대해 설명되었다. 본 방법은 판독 프로세스에도 적용가능하다는 것이 이해된다. 이러한 선택은 상세한 설명에서 설명될 것이다.
이하에서 빈번하게 사용되는 입력 및 출력 데이터 패킷이라는 용어가 설명될 것이다. 입력 및 출력은 캐시 메모리에 대하여 고려된다. 따라서, 네트워크 디바이스 또는 블록 기반 데이터 저장소로부터 오는, 캐시 메모리 내에 저장되어야 하는 데이터 패킷이 입력 데이터 패킷인 한편, 출력 데이터 패킷은 항상 네트워크 디바이스 또는 블록 기반 데이터 저장소를 향하는 방향으로 캐시 메모리를 떠난다.
바람직하게는, 블록 기반 저장 디바이스에 기입하는 프로세스 동안, 단계 a)는 직렬 네트워크 링크를 통해 네트워크 디바이스로부터 적어도 하나의 입력 데이터 패킷을 수신하는 단계를 포함하고, 단계 c)는 상기 블록 기반 저장 디바이스에 출력 데이터 패킷을 송신하는 단계를 포함하며, 여기에서 미리 정해진 크기는 블록 기반 저장 디바이스의 블록 크기에 대응한다. 더 바람직하게도, 출력 데이터 패킷의 미리 정해진 크기는 블록 기반 저장 디바이스의 블록 크기와 동일하다.
상술한 방법에 따라 블록 기반 저장 디바이스에 기입하는 것이 유리한데, 왜냐하면 단 하나의 데이터 소스에 관련된 데이터를 포함하는 거대한 세그먼트를 포함하는 데이터 랜드스케이프가 블록 기반 저장 디바이스 상에 만들어지기 때문이다. 즉, 저장 디바이스의 각각의 세그먼트는 단일 네트워크 디바이스에 관련된 데이터만을 포함한다. 결과적으로, 상기 블록 기반 저장 디바이스에 포함되는 데이터는 본 기술분야에 알려져 있는 기입 프로세스를 거친 블록 기반 저장 디바이스에 비해 훨씬 더 많이 분류되어 있다. 결과로서, 저장 디바이스는 훨씬 더 빠르게 액세스가능하고, 하드 디스크가 블록 기반 저장 디바이스로서 적용되는 경우, 판독/기입 헤드의 이동이 훨씬 더 적은 수만큼 필요하게 된다.
바람직하게는, 블록 기반 저장 디바이스로부터의 판독 프로세스 동안, 단계 a)는 블록 기반 저장소로부터 적어도 하나의 데이터 블록을 수신하는 단계를 포함하고, 단계 c)는 미리 정해진 크기의 출력 데이터 패킷을 직렬 네트워크 링크에 송신하는 단계를 포함한다. 또한, 바람직하게, 출력 데이터 패킷의 미리 정해진 크기는 직렬 네트워크 링크의 프레임 크기와 동일하며, 또한 바람직하게, 블록 기반 저장소로부터 수신되는 데이터 블록의 크기는 블록 기반 저장 디바이스의 블록 크기와 동일하다.
유리하게도, 소정 네트워크 디바이스에 관련된 데이터는 블록 기반 저장소로부터 블록별로 판독된다. 하드 디스크가 적용되는 경우, 판독/기입 헤드의 이동 횟수는 최소로 감소된다. 결과로서, 데이터 레이트가 증가한다. 상술한 방법으로, 고해상도 영화 데이터가 하드 디스크 드라이브로부터 실시간으로 판독될 수 있다는 것이 특히 유리하다.
본 발명에 따른 네트워크 저장 디바이스는 직렬 네트워크 링크에 의해 복수의 네트워크 디바이스에 접속되도록 제공된다. 네트워크 저장 디바이스는 네트워크 디바이스들에 관련된 데이터를 저장하기 위해 블록 기반 저장 디바이스를 포함한다. 네트워크 저장 디바이스는 복수의 캐시 큐로 세분되는 캐시 메모리를 갖는 스케일가능한 캐시 선택기를 더 포함하며, 각각의 캐시 큐는 네트워크 디바이스들 중 하나에 전용이다. 스케일가능한 캐시 선택기는 위에서 설명된 것과 같이 판독 및/또는 기입을 위한 방법을 실행할 수 있다.
바람직하게는, 컴퓨터 시스템의 블록 기반 저장 디바이스는 하드 디스크 드라이브 또는 플래시 드라이브이다. 하드 디스크의 경우, 그것은 훨씬 더 유리한데, 왜냐하면 판독/기입 헤드의 이동이 감소되고, 이는 하드 디스크에 대한 판독 및 기입을 가속화하고 마모를 감소시키기 때문이다.
본 발명에 따른 방법에 관하여 언급된 것들과 유사하거나 동일한 이점들이 본 발명에 따른 컴퓨터 시스템에 적용된다.
이하에서, 본 발명은 도면들을 참조하여 더 상세하게 설명될 것이다.
도 1은 직렬 네트워크 링크를 통해 네트워크 저장 디바이스에 접속된 복수의 네트워크 디바이스를 포함하는 컴퓨터 시스템을 도시한다.
도 2는 도 1에서 알려진 네트워크 저장 디바이스 내부의 기입 프로세스 동안의 데이터플로우 프로세스를 도시하는 한편, 도 3은 도 1에서 알려진 네트워크 저장 디바이스 내부의 판독 프로세스 동안의 데이터플로우 프로세스를 도시한다.
도 1은 네트워크 브리지(NB) 및 직렬 네트워크 링크(4)를 통해 네트워크 저장 디바이스(NSD)에 접속된 복수의 네트워크 디바이스(ND1...ND3)를 포함하는 컴퓨터 시스템(2)을 도시한다. 네트워크 디바이스들(ND1...ND3)은 예를 들어 디지털 카메라, 모니터 또는 비머(beamer)와 같은 디스플레이 디바이스, 스캐너 등이다. 네트워크 디바이스(ND1...ND3)가 또한 컴퓨터 상에서 실행되는 애플리케이션일 수 있음이 이해된다. 하나보다 많은 네트워크 디바이스(ND1...ND3), 즉 복수의 애플리케이션이 단 하나의 머신/컴퓨터에 의해 포함/실행되는 것도 가능하다. 또한, 도 1에 도시된 컴퓨터 시스템(2)이 세 개보다 많거나 적은 네트워크 디바이스(ND1...ND3)를 포함할 수 있다는 것이 이해된다.
모든 애플리케이션/네트워크 디바이스들(ND1...ND3)이 네트워크를 통해 데이터 스트림을 송신하고 수신할 수 있는데, 예를 들어 제1 네트워크 디바이스(ND1)는 페이로드 패키지(pl11) 및 라벨(L1)을 포함하는 입력 데이터 패킷(3)을 네트워크 브리지(NB)에 송신한다. 제2 및 제3 네트워크 디바이스(ND2, ND3)는 도 1에 나타난 바와 같이 동일한 방식으로 작동할 수 있다. 라벨(L1...L3)은 네트워크 디바이스(ND1...ND3)를 나타내는데, 예를 들어 L1은 제1 네트워크 디바이스(ND1)를 지칭하고, L2는 제2 네트워크 디바이스(ND2)를 지칭하는 등이다. 네트워크 브리지(NB)와 네트워크 저장 디바이스(NSD) 사이의 네트워크 링크는 이더넷, 파이어와이어, USB 등과 같은 직렬 네트워크 링크(4)이므로, 입력 데이터 패킷들(3)은 네트워크 저장 디바이스(NSD)에 순차적으로 송신된다. 즉, 연속적인 입력 데이터 패킷들(3)의 데이터 스트림이 네트워크 저장 디바이스(NSD)에 제공되고, 입력 데이터 패킷들(3)은 상이한 기원들을 가지며, 상이한 네트워크 디바이스들(ND1...ND3)에 의해 송신된다.
네트워크 저장 디바이스(NSD)는 스케일가능한 캐시 선택기(SCS) 및 블록 기반 저장 디바이스(BBSD), 예를 들어 하드 디스크 또는 플래시 메모리의 어레이를 포함한다.
이하에서, 우선, 블록 기반 저장 디바이스(BBSD)에 기입하는 프로세스 동안의 네트워크 저장 디바이스들(NSD)의 기능성이 도 2를 참조하여 설명될 것이다. 그 다음, 판독 프로세스 동안의 네트워크 저장 디바이스들(NSD)의 기능성은 도 3을 참조하여 설명될 것이다.
상이한 네트워크 디바이스들(ND1...ND3)에 의해 송신된 복수의 입력 데이터 패킷(3)을 포함하는 데이터 스트림은 직렬 네트워크 링크(4)를 통해 네트워크 브리지(NB)로부터 네트워크 저장 디바이스들(NSD)의 큐 선택기(QS)에서 수신된다. 네트워크 저장 디바이스(NSD) 내의 스케일가능한 캐시 선택기(SCS)에 둘 다 포함되는 큐 선택기(QS) 및 캐시 메모리(10)는 캐시 제어기(12)를 통해 함께 링크된다. 캐시 메모리(10)는 복수의 캐시 큐(QL1...QL3)를 포함한다. 큐 선택기(QS)의 주된 작업은 들어오는 데이터 패킷들(3)을 캐시 메모리(10)의 캐시 큐들(QL1...QL3) 내로 분류하는 것이다. 큐 선택기(QS)는 이러한 목적을 위해 상이한 캐시 큐들(QL1...QL3)의 정보를 저장하기 위한 엔트리들(QL1'...QL3')을 포함하는 캐시 큐 파일(8)을 포함한다. 도 2에 의해 주어진 예시적인 실시예에 따르면, 각각의 캐시 큐 파일 엔트리(QL1'...QL3')는 캐시 메모리(10) 내의 개별 캐시 큐(QL1...QL3)의 시작 및 종료 어드레스(Start, End)에 관한 정보를 포함한다. 또한, 직렬 네트워크 링크(4)의 프레임 크기(FS), 블록 기반 저장 디바이스(BBSD)의 블록 크기(BS), 및 엔트리마다의 시작 어드레스를 가리키는 판독 및 기입 어드레스(Rd, Wr)가 캐시 큐 파일 엔트리들(QL1',,,QL3')에 포함된다.
큐 선택기(QS)에서 수신되는 입력 데이터 패킷들(3)은 각각 페이로드 패키지(pl11...pl31), 및 라벨(L1...L3)을 포함한다. 네트워크 프로토콜에 따라, 라벨(L1...L3)은 적절한 네트워크 헤더이다. 라벨(L1...L3)은 개별 입력 데이터 패킷(3)을 송신하는 네트워크 디바이스(ND1...ND3)를 나타낸다. 큐 선택기(QS)는 입력 데이터 패킷(3)의 라벨(L1...L3)을 판독하고, 개별 네트워크 디바이스(ND1...ND3)에 전용인 적절한 캐시 큐(QL1...QL3) 내에 페이로드 패키지(pl11...pl31)를 저장한다. 예를 들어, 페이로드 패키지(pl31) 및 라벨(L3)을 포함하는 제3 네트워크 디바이스(ND3)에 의해 송신된 입력 데이터 패킷(3)은 도 2에 나타나 있는 바와 같이, 제3 캐시 큐(QL3) 내에 저장될 것이다. 캐시 메모리(10)의 상이한 캐시 큐들(QL1...QL3)에 저장된 페이로드 패키지들(pl11...pl33)의 처리는 적절한 캐시 제어기(12)에 의해 행해진다.
들어오는 입력 데이터 패킷(3)의 수가 증가함에 따라, 캐시 메모리(10)의 캐시 큐들(QL1...QL3)은 페이로드 데이터로 점점 더 채워진다. 캐시 큐들(QL1...QL3)은 그들의 레벨이 미리 정해진 임계 레벨에 도달할 때까지 채워진다. 도 2에 주어진 실시예에 따르면, 이 임계 레벨은 블록 기반 저장 디바이스(BBSD)의 블록 크기(BS)이다. 도 2에 도시된 네트워크 저장 디바이스(NSD)의 예시적인 상태에 따르면, 제1 및 제2 캐시 큐(QL1, QL2)는 그들의 임계 레벨(BS)에 도달했다. 캐시 큐들(QL1...QL3)에는 동일한 임계 레벨(BS)이 주어진다.
다음 단계에서, 하나의 네트워크 디바이스(ND1...ND3)에 관련된 데이터만을 포함하는 전체 데이터 블록이 블록 기반 저장 디바이스(BBSD)에 기입된다. 이 데이터 블록이 출력 데이터 패킷(5)이다. 도 2에 따르면, 출력 데이터 패킷(5), 즉 데이터 블록(blk11)은 제1 네트워크 디바이스(ND1)에 관련된 데이터만을 포함하고, 블록 기반 저장 디바이스(BBSD)의 블록에 기입된다. 데이터 블록(blk11)은 포함되어 있는 페이로드 데이터가 제1 네트워크 디바이스(ND1)에 관련되는 것임을 나타내는 라벨(L1)을 제공받고 연쇄되어 있는 제1 및 제2 페이로드 데이터 패키지(pl11 및 pl12) 전체를 포함한다. 제1 및 제2 페이로드 데이터 패키지(pl11, pl12)의 합이 블록 크기(BS)에 도달하지 않으므로, 추가의 데이터가 데이터 블록(blk11)에 추가될 수 있다. 그러나, 제3 페이로드 패키지(pl13)가 지나치게 크고, 3개의 데이터 패키지(pl11, pl12 및 pl13) 전부의 합이 블록 크기(BS)를 초과할 것인데, 즉 3개의 패키지 전부가 블록 기반 저장 디바이스(BBSD)의 단일 블록 내에 완전하게 기입될 수 없다. 해결책으로서, 마지막 페이로드 데이터 패키지(pl13)가 분할된다. 그것의 일부(즉, pl13*)만이 블록(blk11)으로 가고, 그것의 나머지는 캐시 큐(QL1) 내에 남아있는다. 이러한 남아있는 데이터는, 캐시 큐(QL1)가 다시 그것의 임계값(BS)에 도달하는 경우에, 다음 페이로드 데이터 패키지들과 함께 블록 기반 저장 디바이스(BBSD)에 기입된다.
다른 캐시 큐들(QL2 및 QL3)이 그들의 임계값 BS에 도달하는 경우, 블록 기반 저장 디바이스(BBSD)에 기입하는 동일한 방법이 그들에 적용된다. 도 2의 예시적인 실시예를 참조하면, 블록 기반 저장 디바이스(BBSD)에 기입될 다음 블록은 현재 제2 캐시 큐(QL2) 내에 저장되어 있는 데이터 패킷들(pl21 내지 pl24)과 페이로드 데이터 패킷(pl25)의 일부분을 포함할 것이다.
바람직하게는, 시작 및 종료 어드레스(Start, End)에 의해 주어지는 캐시 큐들(QL1...QL3)의 크기는 블록 크기(BS)를 갖는 적어도 2개의 블록을 캡처하면 충분하다. 큐 선택기(QS)가 출력 데이터 패킷(5)을 송신할 때, 즉 데이터 블록을 제1 캐시 큐(QL1...QL3)로부터 블록 기반 저장 디바이스(BBSD)로 송신할 때, 각각의 다른 캐시 큐(QL1...QL3)는 들어오는 페이로드 데이터 패키지들(pl11...pl32)로 병렬로 채워질 수 있다. 그러나, 바람직하게는, 블록은 다른 페이로드 패키지들(pl11...pl32)이 개별 캐시 큐(QL1...QL3) 내에 저장될 수 있기 전에 완전하게 송신되어야 한다.
이하에서는, 블록 기반 저장 디바이스(BBSD)로부터의 데이터 플로우, 즉 판독 동작이 도 3을 참조하여 설명될 것이다.
판독 동작은 네트워크 저장 디바이스(NSD)로부터 데이터를 요청하고 있는 네트워크 디바이스(ND1...ND3)에 의해 개시된다. 오직 예시로서, 도 3에서는 제1 네트워크 디바이스(ND1)(예를 들어 디스플레이 디바이스)에 의해 요청되는 데이터 블록(blk11)이 네트워크 저장 디바이스(NSD)로부터 판독된다. 이 데이터 블록(blk11)은 블록 기반 저장 디바이스(BBSD)로부터 스케일가능한 캐시 선택기(SCS)로, 그리고 캐시 메모리(10)로 송신되므로, 입력 데이터 패킷이라는 것이 이해된다. 블록(blk11)은 L1으로 라벨링되어, 페이로드가 제1 네트워크 디바이스(ND1)에 전달되어야 함을 나타낸다. 큐 선택기(QS)는 이 프리픽스 및 엔트리 블록(blk11)을 제1 캐시 큐(QL1) 내로 판독한다.
도 2에서 설명된 기입 프로세스로부터 알려진 바와 같이, 캐시 큐들(QL1...QL3)은 네트워크 디바이스들(ND1...ND3) 각각에 전용이다. 캐시 큐들(QL1...QL3)의 위치는 캐시 큐 파일(8)의 엔트리들(QL1'...QL3')에 의해 정의되어, 개별 캐시 큐들(QL1...QL3)의 시작 및 종료 어드레스(Start, End)와 블록 및 프레임 크기(BS, FS)를 나타낸다. 다시, 캐시 큐들(QL1...QL3)에는 공통의 임계 레벨이 주어진다. 그러나, 기입 프로세스와는 반대로, 블록 크기(BS)가 아니라 직렬 네트워크 링크(4)의 프레임 크기(FS)가 임계 레벨로서 취해진다. 큐 선택기(QS)는 대응 레벨들(L1...L3)이 프리픽스로서 주어져 있는 데이터 서브스트림들 및 프레임 크기(FS)를 갖는 페이로드 패키지들(pl11r...pl32r)을 직렬 네트워크 링크(4)를 통해 네트워크 브리지(NB)에, 그리고 개별 네트워크 디바이스들(ND1...ND3)에 송신하고 있다. 대응하는 레벨들(L1...L3)을 포함하는 페이로드 패키지들(pl11r...pl32r)은 캐시 메모리(10)를 떠나고 있으므로 출력 데이터 패킷들(5)이라는 것이 이해된다.
하나의 블록(blk11...blk32)이 지정된 캐시 큐(QL1...QL3) 내에 남아있을 때, 그것은 다음 전송 사이클에서, 즉 새로운 블록이 각각의 캐시 큐(QL1...QL3) 내에 저장되고 임계 레벨 FS에 다시 도달된 때 송신되어야 한다. 기입 프로세스로부터 알려져 있는 바와 같이, 바람직하게는, 블록은 다른 블록이 각각의 캐시 큐(QL1...QL3) 내에 저장될 수 있기 전에 완전하게 송신되어야 한다. 남아있는 블록들로 인해, 때로는 2개의 블록을 송신할 필요가 있다. 큐 선택기(QS)가 제1 캐시 큐(QL1...QL3)로부터 네트워크 브리지(NB)로 서브스트림들을 송신할 때, 캐시 메모리(10) 내에 충분한 공간이 있다고 가정하면, 각각의 다른 캐시 큐(QL1...QL3)가 블록 기반 저장 디바이스(BBSD)로부터 온 데이터 블록들로 채워질 수 있다.

Claims (9)

  1. 컴퓨터 시스템(2)을 운영하기 위한 방법으로서,
    상기 컴퓨터 시스템은 직렬 네트워크 링크(4)에 의해 복수의 네트워크 디바이스(ND1...ND3)에 접속된 네트워크 저장 디바이스(network storage device: NSD)를 포함하고, 상기 네트워크 저장 디바이스(NSD)는 상기 네트워크 디바이스들(ND1...ND3)에 관련된 데이터를 저장하기 위한 블록 기반 저장 디바이스(block based storage device: BBSD), 및 복수의 캐시 큐(QL1...QL3)로 세분되는 캐시 메모리(10)를 갖는 스케일가능한 캐시 선택기(scalable cache selector: SCS)를 포함하고, 각각의 캐시 큐(QL1...QL3)는 상기 네트워크 디바이스들(ND1...ND3) 중 하나에 전용이고, 상기 스케일가능한 캐시 선택기(SCS)는 상기 네트워크 디바이스들(ND1...ND3)로부터 수신되거나 그들로 송신되는 입력 데이터 패킷들(3)을 개별 캐시 큐(QL1...QL3)에 할당하기 위한 큐 선택기(queue selector: QS)를 더 포함하며,
    상기 방법은,
    a) 상기 직렬 네트워크 링크(4)를 통해 상이한 네트워크 디바이스들(ND1...ND3)로부터 입력 데이터 패킷들(3)을 수신하는 단계,
    b) 상기 직렬 네트워크 링크(4)를 통해 수신된 입력 데이터 패킷(3) 스트림을 분리하여, 상기 큐 선택기(QS)에서 각각의 입력 데이터 패킷(3)을 상기 네트워크 디바이스들(ND1...ND3) 중 하나로부터 기원한 것으로서 식별하는 단계,
    c) 상기 입력 데이터 패킷(3)을 전송하여 상기 캐시 메모리(10)의 캐시 큐(QL1...QL3) 내에 저장하는 단계 - 상기 캐시 큐(QL1...QL3)는 개별 네트워크 디바이스(ND1...ND3)에 할당됨 - ,
    d) 상기 캐시 메모리(10)의 상기 캐시 큐(QL1...QL3)로부터 출력 데이터 패킷(5)을 송신하는 단계 - 상기 출력 데이터 패킷(5)은 상기 캐시 큐(QL1...QL3) 내에 저장된 상기 입력 데이터 패킷들(3)에 포함되는 데이터 컨텐츠의 적어도 일부분을 포함함 -
    를 포함하고, 상기 캐시 큐(QL1...QL3) 내에 저장된 수신된 입력 데이터 패킷들(3)의 데이터의 양이 상기 출력 데이터 패킷(5)의 미리 정해진 크기를 정의하는 임계값(BS, FS)을 초과하는 경우, 상기 출력 데이터 패킷(5)을 출력하는 단계가 수행되는 방법.
  2. 제1항에 있어서,
    상기 블록 기반 저장 디바이스(BBSD)에 기입하는 프로세스 동안,
    단계 d)는 출력 데이터 패킷(5)을 상기 블록 기반 저장 디바이스(BBSD)에 송신하는 단계를 포함하고, 상기 미리 정해진 크기는 상기 블록 기반 저장 디바이스(BBSD)의 블록 크기(BS)에 대응하는 방법.
  3. 제2항에 있어서,
    상기 블록 기반 저장 디바이스(BBSD)는 세그먼트들로 분할되고, 각각의 세그먼트는 하나의 네트워크 디바이스(ND1...ND3)로부터의 데이터 블록들(blk11... blk32)을 저장하는 방법.
  4. 컴퓨터 시스템(2)을 운영하기 위한 방법으로서,
    상기 컴퓨터 시스템은 직렬 네트워크 링크(4)에 의해 복수의 네트워크 디바이스(ND1...ND3)에 접속된 네트워크 저장 디바이스(NSD)를 포함하고, 상기 네트워크 저장 디바이스(NSD)는 상기 네트워크 디바이스들(ND1...ND3)에 관련된 데이터를 저장하기 위한 블록 기반 저장 디바이스(BBSD), 및 복수의 캐시 큐(QL1...QL3)로 세분되는 캐시 메모리(10)를 갖는 스케일가능한 캐시 선택기(SCS)를 포함하고, 각각의 캐시 큐(QL1...QL3)는 상기 네트워크 디바이스들(ND1...ND3) 중 하나에 전용이고, 상기 스케일가능한 캐시 선택기(SCS)는 상기 네트워크 디바이스들(ND1...ND3)로부터 수신되거나 그들로 송신되는 입력 데이터 패킷들(3)을 개별 캐시 큐(QL1...QL3)에 할당하기 위한 큐 선택기(QS)를 더 포함하며,
    상기 방법은,
    a) 상기 블록 기반 저장소(block base storage: BBDS)로부터 적어도 하나의 데이터 블록(blk11...blk32)을 입력 데이터 패킷(3)으로서 수신하는 단계,
    b) 상기 블록 기반 저장소(BBDS)로부터 수신된 입력 데이터 패킷(3) 스트림을 분리하여, 상기 큐 선택기(QS)에서 각각의 입력 데이터 패킷(3)을 상기 네트워크 디바이스들(ND1...ND3) 중 하나에 할당하는 단계,
    c) 상기 입력 데이터 패킷(3)을 전송하여 상기 캐시 메모리(10)의 캐시 큐(QL1...QL3) 내에 저장하는 단계 - 상기 캐시 큐(QL1...QL3)는 개별 네트워크 디바이스(ND1...ND3)에 할당됨 - ,
    d) 상기 캐시 메모리(10)의 상기 캐시 큐(QL1...QL3)로부터 출력 데이터 패킷(5)을 송신하는 단계 - 상기 출력 데이터 패킷(5)은 상기 캐시 큐(QL1...QL3) 내에 저장된 상기 입력 데이터 패킷들(3)에 의해 포함되는 데이터 컨텐츠의 적어도 일부분을 포함함 -
    를 포함하고, 상기 캐시 큐(QL1...QL3) 내에 저장된 수신된 입력 데이터 패킷들(3)의 데이터의 양이 상기 출력 데이터 패킷(5)의 미리 정해진 크기를 정의하는 임계값(BS, FS)을 초과하는 경우, 상기 출력 데이터 패킷(5)을 출력하는 단계가 수행되는 방법.
  5. 제4항에 있어서,
    상기 블록 기반 저장 디바이스(BBSD)로부터 판독하는 프로세스 동안,
    단계 c)는 미리 정해진 크기의 출력 데이터 패킷(5)을 상기 직렬 네트워크 링크(4)에 송신하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 출력 데이터 패킷(5)의 미리 정해진 크기는 상기 직렬 네트워크 링크(4)의 프레임 크기(FS)와 동일한 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 블록 기반 저장소(BBDS)로부터 수신되는 데이터 블록(blk11...blk32)의 크기는 상기 블록 기반 저장 디바이스(BBSD)의 블록 크기와 동일한 방법.
  8. 직렬 네트워크 링크(4)를 통해 복수의 네트워크 디바이스(ND1...ND3)에 접속되기 위한 입력을 갖는 네트워크 저장 디바이스(NSD)로서,
    상기 네트워크 저장 디바이스(NSD)는 상기 네트워크 디바이스들(ND1...ND3)에 관련된 데이터를 저장하기 위한 블록 기반 저장 디바이스(BBSD), 및 복수의 캐시 큐(QL1...QL3)로 세분되는 캐시 메모리(10)를 갖는 스케일가능한 캐시 선택기(SCS)를 포함하고, 각각의 캐시 큐(QL1...QL3)는 상기 네트워크 디바이스들(ND1...ND3) 중 하나에 전용이고, 상기 스케일가능한 캐시 선택기(SCS)는 제1항 내지 제6항 중 어느 한 항에 따른 방법을 실행할 수 있는 컴퓨터 시스템.
  9. 제8항에 있어서,
    상기 블록 기반 저장 디바이스(BBSD)는 하드 디스크 드라이브 또는 플래시 드라이브인 컴퓨터 시스템.
KR1020137000022A 2010-07-02 2011-06-30 컴퓨터 시스템 및 그것의 운영을 위한 방법 KR20130098265A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10305724.6 2010-07-02
EP10305724A EP2403202A1 (en) 2010-07-02 2010-07-02 Computer system and method for operating the same
PCT/EP2011/061043 WO2012001122A1 (en) 2010-07-02 2011-06-30 Computer system and method for operating the same

Publications (1)

Publication Number Publication Date
KR20130098265A true KR20130098265A (ko) 2013-09-04

Family

ID=43088166

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137000022A KR20130098265A (ko) 2010-07-02 2011-06-30 컴퓨터 시스템 및 그것의 운영을 위한 방법

Country Status (7)

Country Link
US (1) US9319354B2 (ko)
EP (2) EP2403202A1 (ko)
JP (1) JP2013539566A (ko)
KR (1) KR20130098265A (ko)
CN (1) CN102959913A (ko)
BR (1) BR112013000088A2 (ko)
WO (1) WO2012001122A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9423983B2 (en) 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
CN102916903B (zh) * 2012-10-25 2015-04-08 华为技术有限公司 缓存调整方法及装置
US9674086B2 (en) * 2013-11-05 2017-06-06 Cisco Technology, Inc. Work conserving schedular based on ranking
CN107371061B (zh) * 2017-08-25 2021-03-19 普联技术有限公司 一种视频流播放方法、装置及设备
US10678718B2 (en) * 2018-01-16 2020-06-09 Marvell Israel (M.I.S.L) Ltd. Network device and method of operation
CN111245743B (zh) * 2020-01-09 2023-09-08 浙江吉利汽车研究院有限公司 一种信息处理方法、存储介质、网关及汽车

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076568B2 (en) 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US6973455B1 (en) 1999-03-03 2005-12-06 Emc Corporation File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US6678758B2 (en) * 2001-02-05 2004-01-13 Fujitsu Limited Dynamic queuing for read/write requests
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US7386627B1 (en) * 2002-01-29 2008-06-10 Network Appliance, Inc. Methods and apparatus for precomputing checksums for streaming media
CN100342352C (zh) 2005-03-14 2007-10-10 北京邦诺存储科技有限公司 一种可扩充的高速存储网络缓存系统
US9390019B2 (en) 2006-02-28 2016-07-12 Violin Memory Inc. Method and apparatus for providing high-performance and highly-scalable storage acceleration
US7725654B2 (en) 2006-07-25 2010-05-25 Hewlett-Packard Development Company, L.P. Affecting a caching algorithm used by a cache of storage system
US8171487B2 (en) * 2007-05-02 2012-05-01 International Business Machines Corporation Method for processing work items of a workflow system
US8036115B2 (en) * 2008-09-17 2011-10-11 Intel Corporation Synchronization of multiple incoming network communication streams
US20100199039A1 (en) * 2009-01-30 2010-08-05 International Business Machines Corporation Systems and Methods for Optimizing Host Reads and Cache Destages in a Raid System

Also Published As

Publication number Publication date
EP2403202A1 (en) 2012-01-04
US20130110965A1 (en) 2013-05-02
BR112013000088A2 (pt) 2016-05-10
JP2013539566A (ja) 2013-10-24
CN102959913A (zh) 2013-03-06
EP2589196A1 (en) 2013-05-08
US9319354B2 (en) 2016-04-19
WO2012001122A1 (en) 2012-01-05

Similar Documents

Publication Publication Date Title
US11916781B2 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC)
US8472457B2 (en) Method and apparatus for queuing variable size data packets in a communication system
US10044646B1 (en) Systems and methods for efficiently storing packet data in network switches
KR20130098265A (ko) 컴퓨터 시스템 및 그것의 운영을 위한 방법
US9112708B1 (en) Processing multicast packets in a network device
US8873550B2 (en) Task queuing in a multi-flow network processor architecture
JP2007317181A (ja) ネットワークストレージ装置
US10990326B2 (en) High-speed replay of captured data packets
WO2016019554A1 (zh) 一种队列管理的方法和装置
US9942169B1 (en) Systems and methods for efficiently searching for stored data
TWI476601B (zh) 交換機和交換機中的組播流量讀取方法
CN111490969A (zh) 网络设备中的灵活报头变更
JP2013539566A5 (ko)
JP5332430B2 (ja) 共有メモリシステム
US7746856B2 (en) Method, apparatus and system for optimizing packet throughput for content processing systems on chips
KR100518813B1 (ko) 패킷 메모리 관리 장치를 가지는 패킷 포워딩 시스템 및 그의 동작방법
US7855967B1 (en) Method and apparatus for providing line rate netflow statistics gathering
CN113347112B (zh) 一种基于多级缓存的数据包转发方法及装置
JP2021034801A (ja) 再生能力を有する高速データ・パケット・キャプチャおよび記憶
JP5239636B2 (ja) バックプレッシャパケット送出機能を有する通信装置
CN115080258A (zh) 数据传输系统及相关设备
JP4675290B2 (ja) マルチメディア蓄積配信サーバ、および、マルチメディアデータ多重読出し書込み方法
US20100067543A1 (en) Method and an apparatus for data storage and communications
WO2010029168A1 (en) A method and an apparatus for data storage and communications
US20140006537A1 (en) High speed record and playback system

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid