KR20060034306A - 이벤트 타임-스탬핑 - Google Patents

이벤트 타임-스탬핑 Download PDF

Info

Publication number
KR20060034306A
KR20060034306A KR1020067002656A KR20067002656A KR20060034306A KR 20060034306 A KR20060034306 A KR 20060034306A KR 1020067002656 A KR1020067002656 A KR 1020067002656A KR 20067002656 A KR20067002656 A KR 20067002656A KR 20060034306 A KR20060034306 A KR 20060034306A
Authority
KR
South Korea
Prior art keywords
event
time
detected
events
stream
Prior art date
Application number
KR1020067002656A
Other languages
English (en)
Other versions
KR100829643B1 (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 KR20060034306A publication Critical patent/KR20060034306A/ko
Application granted granted Critical
Publication of KR100829643B1 publication Critical patent/KR100829643B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Plural Heterocyclic Compounds (AREA)
  • Chemical And Physical Treatments For Wood And The Like (AREA)
  • Quinoline Compounds (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

이벤트들을 타임 스탬핑하는 시스템 판독가능한 매체, 방법 및 장치가 개시되어 있다. 일 실시예에 있어서, 타임-스탬핑 회로는 인터럽트 신호들, 중재 신호들 등과 같은 관심대상인 이벤트들을 검출할 수 있다. 이러한 이벤트를 검출하는 것에 응답하여, 타임-스탬핑 회로는 이벤트를 위한 타임 스탬프를 저장할 수 있다. 프로세서와 같은 요청자가 타임-스탬핑 회로에 이벤트의 타임 스탬프를 나중에 요청할 수 있다. 요청자는 그 다음에 검색된 타임 스탬프들에 기초하여 이러한 이벤트들의 생성과 연관된 처리 속도를 조정할 수 있다.
타임 스탬프, 이벤트, 컴퓨팅 장치, 인터럽트, 중재, 승인, 인터럽트

Description

이벤트 타임-스탬핑{EVENT TIME-STAMPING}
컴퓨팅 장치들은, 범용 비-실시간 수치 처리기(number cruncher)들로부터 디지털 처리 태스크들을 수행하는 메인 프로세서들을 포함하는 실시간 처리 장치들로 진화하고 있다. 현대의 컴퓨팅 장치들에 있어서는, 캐시 메모리, 지연된 인터럽트 핸들링, 및 공유된 자원 등과 같은 요인들의 조합으로 인해, 일반적으로 이들 장치들의 처리 시간이 매우 가변적이고 예측 불가능하게 된다. 예를 들어, 통상의 프로그램 루프를 통한 제1 패스(pass)는 캐시 필(fill) 사이클들로 인해 동일한 프로그램 루프를 통한 후속 패스들보다 10-50배 더 걸릴 수 있다. 그러나, 종래의 스트림 처리는 통상적으로 높은 품질 결과를 달성하기 위해 예측 가능하고 실질적으로 비-가변적인 처리 시간을 필요로 한다.
본 명세서에 기재된 본 발명은 첨부 도면들에서 예시적으로 도시되어 있으며, 이것으로 한정하고자 하는 것은 아니다. 예시의 간단함 및 명확함을 위하여, 도면들에 예시된 요소들은 반드시 비례하여 도시되지 않는다. 예를 들어, 일부 요소들의 치수들은 명확함을 위하여 다른 요소들에 비해 과장될 수 있다. 또한, 적절한 곳에서, 참조 라벨들은 대응하거나 유사한 요소들을 나타내기 위해 도면들 사이에 반복되었다.
도 1은 타임-스탬핑 회로(time-stamping circuit)를 포함하는 컴퓨팅 장치의 실시예를 예시하는 도면.
도 2는 도 1의 타임-스탬핑 회로의 실시예를 예시하는 도면.
도 3은 도 1의 컴퓨팅 장치들 및 서버를 포함하는 스트리밍 시스템(streaming system)의 실시예를 예시하는 도면.
도 4는 도 3의 스트리밍 시스템에 의해 구현될 수 있는 스트림을 처리하는 방법의 실시예를 예시하는 도면.
다음의 설명은, 다른 것들 중에서, 오디오 스트림, 비디오 스트림 및/또는 데이터 스트림 등과 같은 스트림들을 처리하는데에 유용할 수 있는 이벤트 핸들링(event handling) 기술들을 설명한다. 다음의 설명에서는, 논리 구현들, 연산 부호들, 피연산자를 특정하기 위한 수단, 자원 분할/공유/복제 구현들, 시스템 컴포넌트들의 타입들 및 상호관계들, 및 논리 분할/통합 선택들과 같은 다수의 특정 세부사항이 본 발명의 보다 완전한 이해를 제공하기 위해 정의되어 있다. 그러나, 본 발명은 이러한 특정 세부사항 없이도 실행될 수 있다는 것이 이 기술분야의 당업자에게 자명하다. 다른 경우들에서, 제어 구조들, 게이트 레벨 회로들 및 풀(full) 소프트웨어 명령 시퀀스들은 본 발명을 불명료하지 않게 하기 위해서 도시되지 않았다. 이 기술분야의 당업자들은, 포함된 설명들에 의해, 부적절한 실험 없이 적절한 기능을 구현할 수 있을 것이다.
"일 실시예", "실시예", "예시적인 실시예" 등에 대한 본 명세서에서의 참조 들은, 기재된 실시예가 특정한 특징, 구조, 또는 특성을 포함할 수 있다는 것을 나타내지만, 모든 실시예가 반드시 특정한 특징, 구조, 또는 특성을 포함할 필요는 없다. 또한, 이러한 구절(phrase)은 반드시 동일한 실시예를 지칭하고 있지는 않다. 또한, 특정한 특징, 구조, 또는 특성이 실시예와 관련하여 기재될 때, 명시적으로 기재되어 있든지 없든지 간에 다른 실시예들과 관련하여 이러한 특징, 구조 또는 특성을 달성하는 것은 이 기술분야의 당업자의 지식 내에 있다는 것을 알 수 있다.
본 발명의 실시예들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 본 발명의 실시예들은 또한 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는 시스템 판독가능한 매체에 저장된 명령들로서 구현될 수 있다. 시스템 판독가능한 매체는 시스템(예를 들어, 컴퓨팅 장치)에 의해 판독가능한 형태로 정보를 저장 또는 전송하기 위한 임의의 메커니즘을 포함할 수 있다. 예를 들어, 시스템 판독가능한 매체는 ROM(read only memory), RAM(random access memory), EEPROM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치, 전달되는(propagated) 신호들(예를 들어, 캐리어파, 적외선 신호, 디지털 신호 등)의 전기적, 광학적, 음향적 또는 다른 형태, 및 기타 다른 매체를 포함할 수 있다. 또한, 펌웨어, 소프트웨어, 루틴, 명령은 특정 액션들을 수행하는 것으로서 본 명세서에서 설명될 수 있다. 그러나, 이러한 설명들은 단지 편리함을 위한 것이고, 이러한 액션들은 사실상 컴퓨팅 장치, 프로세서, 컨트롤러, 또는 다른 장치들이 펌웨어, 소프트웨어, 루틴, 명령 등을 실행하게 한다는 것을 이해해야 한다.
도 1에는, 타임-스탬핑 회로(102)를 포함하는 컴퓨팅 장치(100)의 실시예가 도시되어 있다. 예시되어 있는 바와 같이, 컴퓨팅 장치(100)는 하나 이상의 프로세서들(104)을 포함할 수 있다. 프로세서들(104)은 운영 체계(106), 애플리케이션(108), 장치 드라이버(110), BIOS(basic input/output system) 펌웨어(112), 및/또는 일부 다른 소프트웨어 또는 펌웨어 모듈의 명령들을 실행하는 것에 응답하여 액션들을 수행할 수 있다.
컴퓨팅 장치(100)는 프로세서 버스를 통해 프로세서들(104)에 연결되는 칩셋(114)을 더 포함할 수 있다. 칩셋(114)은 프로세서들(104)을 메모리(116)와 같은 컴퓨팅 장치(100)의 다른 컴포넌트들에 연결하는 하나 이상의 집적 회로 패키지 또는 칩셋을 포함할 수 있다. 메모리(116)는 판독 및/또는 기입될 수 있는 어드레스 가능한 저장 위치들을 가지는 메모리 장치들(도시되지 않음)을 포함할 수 있다. 메모리 장치들은 예를 들어, RAM(Random Access Memory) 장치들, SRAM(static RAM) 장치들, DRAM(dynamic RAM) 장치들, SDRAM(synchronous DRAM) 장치들, DDR(double data rate) SDRAM 장치들 등과 같은 하나 이상의 휘발성 메모리 타입들을 포함할 수 있다. 메모리 장치들은 예를 들어, 플래시 메모리 장치들, ROM(Read Only Memory) 장치들, PROM(Programmable Read Only Memory) 장치들, EPROM(erasable PROM) 장치들, EEPROM(electrically erasable PROM) 장치들, 강유전성(ferroelectric) 메모리 장치들, 배터리-백형(battery-backed) 메모리 장치들 등과 같은 하나 이상의 비휘발성 메모리 타입들을 더 포함할 수 있다.
칩셋(114)은 프로세서들(104)을 BIOS 펌웨어(112)에 더 연결할 수 있다. BIOS 펌웨어는 컴퓨팅 장치(100)가 프로세서들(104), 칩셋(114) 및 컴퓨팅 장치(100)의 다른 컴포넌트들을 초기화하기 위하여 시스템 시동 동안에 실행할 수 있는 루틴들을 포함할 수 있다. 또한, BIOS 펌웨어(112)는 컴퓨팅 장치(100)가 컴퓨팅 장치(100)의 하나 이상의 컴포넌트들과 통신하기 위해 실행할 수 있는 루틴들 또는 드라이버들을 포함할 수 있다.
칩셋(114)은 프로세서들(104)을 하나 이상의 버스들(124)을 통하여 하나 이상의 미디어 장치들(118), 네트워크 인터페이스들(120), 및/또는 다른 I/O 장치들(122)에 더 연결할 수 있다. 미디어 장치들은 오디오/비디오 재생 장치들, 오디오/비디오 캡처(capture) 장치들, 오디오/비디오 전송 장치들 등을 포함할 수 있다. 네트워크 인터페이스들(120)은 컴퓨팅 장치(100)에 다른 컴퓨팅 장치들, 서버들, 및/또는 다른 네트워크-가능 장치들(network-enabled devices)과의 통신 링크들을 제공하는 LAN(local area network) 컨트롤러들, 모뎀들, 및/또는 무선 네트워크 컨트롤러들을 포함할 수 있다. 또한, I/O 장치들(122)은 마우스들, 키보드들, 비디오 컨트롤러들, 하드 디스크 드라이브들, 플로피 디스크 드라이브들 등을 포함할 수 있다.
도시된 바와 같이, 버스(124)는 하나 이상의 미디어 장치들(118), 네트워크 인터페이스들(120) 및/또는 I/O 장치들(122) 사이에 공유될 수 있다. 따라서, 컴퓨팅 장치(100)는 공유된 버스(124)와의 액세스를 할당하기 위해 중재 방식(arbitration scheme)을 포함할 수 있다. 일 실시예에 있어서, 컴퓨팅 장치(100)는, 버스를 공유하는 장치들(118, 120, 122)로부터 요청(request) 신호들 또는 메 시지들을 수신하고, 요청 장치들(118, 120, 122) 중 하나의 장치에 공유된 버스(124)와의 액세스 또는 그의 소유권을 승인하기 위해 승인(grant) 신호들 또는 메시지들을 생성하는 중재기(arbiter)(126)를 포함할 수 있다. 도시된 바와 같이, 칩셋(114)은 공유된 버스(124)를 위해 중재기(126)를 포함할 수 있다. 그러나, 다른 실시예들에 있어서, 중재기(126)는 칩셋(114)의 외부에 있을 수 있다. 또한, 컴퓨팅 장치(100)는 공유된 버스(124)를 위해 중앙 중재기(126) 없이도 구현될 수 있다. 이러한 실시예에 있어서, 장치들(118, 120, 122)은, 장치들(118, 120, 122)로 하여금, 공유된 버스(124)의 소유권을 획득하기 위해 그들 사이에서 중재하게 하는 신호들을 생성할 수 있다.
또한, 칩셋(114)은, 장치들(118, 120, 122)로부터 인터럽트 이벤트들(예를 들어, 신호들, 메시지들)을 수신하고 그 인터럽트 이벤트들을 처리를 위해 프로세서(104)에 전달하기 위하여 인터럽트 컨트롤러(127)를 포함할 수 있다. 특히, 인터럽트 컨트롤러(127)는 하나 이상의 인터럽트 이벤트의 발생을 검출할 수 있고, 검출된 인터럽트 이벤트들을 검출된 인터럽트 이벤트들 각각과 연관된 우선권에 기초하는 순서로 프로세서(104)에 전달할 수 있다.
이제, 도 1 및 도 2를 참조하면, 칩셋(114)은 이벤트 타임-스탬핑 회로(102)를 더 포함할 수 있지만, 다른 실시예들에 있어서, 타임 스탬핑 회로는 중재기(126), 인터럽트 컨트롤러(127), 또는 칩셋(114)과 별개의 컴포넌트에 통합될 수 있다. 타임-스탬핑 회로(102)는 기준 클록(128)으로부터 기준 클록 신호를 수신할 수 있고, 기준 클록 신호에 응답하여 로컬 카운트(local count)(130)를 주기적으로 갱신할 수 있다. 타임 스탬핑 회로(102)는 로컬 카운트(130)에 기초하는 타임 스탬프(132)로 이벤트들을 더 스탬핑할 수 있다. 이벤트가 발생했을 때의 비교적 정확한 표시를 획득하기 위해 요청자(예를 들어, 프로세서(104))가 나중에 타임-스탬핑 회로(102)로부터 이벤트를 위한 타임 스탬프(132)를 요청할 수 있다. 타임-스탬핑 회로(102)를 이벤트원들(예를 들어, 장치들(118, 120, 122) 및 중재기(126)) 근처에 배치함으로써, 이벤트가 발생했을 때와 이벤트가 검출되어 타임-스탬핑 회로(102)에 의해 스탬핑되었을 때 사이에 약간의 지연이 삽입될 수 있다. 또한, 이벤트원들과 타임-스탬핑 회로(102) 사이에 컴포넌트들 및 공유된 자원들을 점점 더 적게 배치할수록, 이벤트들 사이에 삽입된 지연이 점점 더 작게 변할 수 있다. 따라서, 컴퓨팅 장치들(100)은, 프로세서들(104)이 2개 이상의 이벤트의 발생 사이의 매우 정확한 시간차를 결정할 수 있도록 구현될 수 있다.
도 2에 도시된 바와 같이, 타임-스탬핑 회로(102)는 카운터(134), 컨트롤러(136), 이벤트 저장소(138) 및 인터페이스(140)를 포함할 수 있다. 카운터(134)는 예를 들어, 27MHz와 같은 기준 주파수를 가지는 기준 클록 신호를 수신하기 위해 기준 클록(128)에 연결될 수 있다. 또한, 카운터(134)는 기준 클록 신호의 각 사이클에 응답하여 그 카운트(130)를 갱신할 수 있는 32 비트 롤 오버 카운터(roll over counter)로서 구현될 수 있다.
컨트롤러(136)는 미디어 장치들(118), 네트워크 인터페이스들(120), I/O 장치들(122) 및/또는 중재기(126)로부터 예를 들어, 인터럽트 요청 신호들, 인터럽트 요청 메시지들, 중재 승인 신호들 등과 같은 이벤트들을 수신할 수 있다. 컨트롤 러(136)는 관심대상인 특정 이벤트들을 스탬핑하고 다른 이벤트들을 기본적으로 무시하도록 더 프로그램될 수 있다. 예를 들어, 컨트롤러(136)는 미디어 장치들(118)의 오디오 인터페이스로부터 인터럽트 요청을 뒤따르는 제1 중재 승인 신호를 스탬핑하도록 프로그램되거나 구성될 수 있다. 마찬가지로, 미디어 장치(118)는 특정 인터럽트선(예를 들어, 인터럽트 신호선 INT_5) 위에 인터럽트 요청들을 생성하도록 지정될 수 있고, 컨트롤러(136)는 미디어 장치(118)에 지정된 인터럽트선에 수신된 모든 인터럽트 요청들을 스탬핑하도록 프로그램되거나 구성될 수 있다.
관심대상인 이벤트를 검출하는 것에 응답하여, 컨트롤러(136)는 검출된 이벤트를 위한 타임 스탬프(132)를 이벤트 저장소(138)에 저장할 수 있다. 하나의 실시예에 있어서, 컨트롤러(136)는 검출된 이벤트를 위한 타임 스탬프(132)로서 카운터(134)의 현재의 카운트(130)를 간단하게 저장할 수 있다. 다른 실시예에 있어서, 컨트롤러(136)는 카운터(134)의 카운트(130)에 기초하여 타임 스탬프(132)를 생성할 수 있다. 예를 들어, 컨트롤러(136)는, 타임 스탬프(132)가 카운트(130)보다 소수의 비트를 포함하도록 카운트(130)를 인코딩(encoding)함으로써 및/또는 타임 스탬프(132)를 요청자(예를 들어, 프로세서(104))에 의해 기대되거나 그에 적절한 형태로 배치함으로써 타임 스탬프(132)를 생성할 수 있다.
관심대상인 이벤트를 검출하는 것에 응답하여, 컨트롤러(136)는 이벤트 저장소(138)에 타임 스탬프(132)와 함께 이벤트 식별자(142)를 더 저장할 수 있다. 이벤트 식별자(142)는 이벤트원(예를 들어, 특정 미디어 장치(118)) 또는 이벤트 타입(예를 들어, 인터럽트 신호 INT_5 또는 중재 승인 GNT_1)을 나타낼 수 있다. 이 벤트 식별자(142)는 이벤트 저장소(138)로부터 특정 이벤트를 위한 타임 스탬프(132)를 검색하는데 이용될 수 있다. 일 실시예에 있어서, 이벤트 저장소(138)는 다수의 이벤트 및 동일한 타입의 다수의 이벤트를 저장할 수 있다. 이벤트 저장소(138)는 저장된 타임 스탬프들(132)을 이벤트 식별자(142)에 기초하여 FIFO(first in first out) 순서로 더 검색할 수 있다.
일 실시예에 있어서, 이벤트 저장소(138)는 도 2에 예시된 바와 같이 단일 태그된 FIFO 대기열형 구조(single tagged FIFO queue-like structure)로서 구현될 수 있다. 컨트롤러(136)는 이러한 실시예에 있어서, 이벤트들이 검출되었을 때 이벤트 식별자들(142) 및 연관된 타임 스탬프들(132)을 FIFO 구조의 테일(tail)(144)에 푸시(push)할 수 있다. 인터페이스(140)는 FIFO 구조에 이벤트 식별자(142)의 타임 스탬프(132)를 나중에 요청할 수 있다. 그 요청에 응답하여, FIFO 구조는 연관된 이벤트 식별자(142)를 가지는 타임 스탬프(132)를 인터페이스(140)에 제공할 수 있다. FIFO 구조가 그 연관된 이벤트 식별자(142)를 가지는 다수의 타임 스탬프들(132)을 포함하는 경우, FIFO 구조는 FIFO 구조의 헤드(head)(146)에 가장 근접한 것을 리턴한다.
예를 들어, 도 2는, 컨트롤러(136)가 EID_0, EID_2 및 EID_5의 이벤트 식별자들(142) 및 그의 연관된 타임 스탬프들(132)을 가지는 여러 이벤트를 FIFO 구조의 테일(144)에 푸시한 후의 FIFO 구조를 도시한다. 이벤트 식별자 EID_0과 연관된 타임 스탬프(132)를 위한 요청에 응답하여, FIFO 구조는 FIFO 구조의 헤드(146)에 가장 근접한 타임 스탬프 TS_0를 리턴함으로써 가장 오래된 이벤트 식별자 EID_0과 연관된 타임 스탬프 TS_0를 리턴할 수 있다. 마찬가지로, 이벤트 식별자 EID_5과 연관된 타임 스탬프(132)를 위한 요청에 응답하여, FIFO 구조는 FIFO 구조의 헤드(146)에 가장 근접한 타임 스탬프 TS_5를 리턴함으로써 가장 오래된 이벤트 식별자 EID_5와 연관된 타임 스탬프 TS_5를 리턴할 수 있다.
그러나, 이벤트 저장소(138)는 다른 저장소 구조들을 이용하여 구현될 수 있다. 예를 들어, 이벤트 저장소(138)는 각각의 지원되는 이벤트 타입/이벤트원을 위한 별개의 FIFO 구조를 포함할 수 있고, 컨트롤러(136)는 적절한 FIFO 구조에 타임 스탬프들(132)을 푸시할 수 있다. 이러한 실시예에 있어서, 이벤트 식별자들(142)은, 타임 스탬프들(132)이 적절한 FIFO 구조의 헤드(146)로부터 간단하게 풀링(pull)될 수 있기 때문에, 이벤트 저장소(138)에 저장되지 않을 수 있다. FIFO 구조들은 다양한 방식으로 구현될 수 있다는 것을 또한 알아야 한다. 예를 들어, FIFO 구조들은 각각의 FIFO 구조의 헤드(146) 및 테일(144)을 추적하기 위해 헤드 및 테일 포인터(pointer)들을 갖는 링 버퍼(ring buffer)들로서 구현될 수 있다.
이제, 도 3을 참조하면, 스트리밍 시스템(148)의 실시예가 도시되어 있다. 도시된 바와 같이, 스트리밍 시스템(148)은 예를 들어, 오디오 스트림, 비디오 스트림, 오디오/비디오 스트림, 데이터 스트림 등과 같은 스트림들(152)을 네트워크(154)를 통해 컴퓨팅 장치(100)에 전송하기 위해 서버(150)를 포함할 수 있다. 도시된 바와 같이, 서버(150)는 PCR(program clock rate)을 가지는 프로그램 클록 신호를 생성하는 프로그램 클록(156)을 포함할 수 있다. 프로그램 클록 신호에 응답하여, 서버(150)는 프로그램 클록(156)의 PCR로 스트림(152)을 전송할 수 있다. 일 실시예에 있어서, 서버(150)는 프로그램 클록(156)으로부터 생성된 PCR 스탬프들(160)이 산재해 있는 데이터 블록들(158)의 시퀀스로서 스트림(152)을 전송할 수 있다. PCR 스탬프들(160)은 일반적으로 스트림(152)의 재생 또는 처리를 위해 기준 타임 베이스(reference time base)를 제공한다.
컴퓨팅 장치(100)의 하나 이상의 프로세서들(104)은 미디어 장치(118)에 의한 처리에 적절한 형태로 데이터 블록들(158)을 배치하기 위해 수신된 스트림(152)의 데이터 블록들(158)을 준비할 수 있다. 프로세서들(104)은 그 다음에 준비된 데이터 블록들(158)로 하여금, 처리를 위해 미디어 장치(118)(예를 들어, 오디오 코덱)에 전송되게 할 수 있다. 미디어 장치(118)는 데이터 블록들(158)을 오디오 샘플들 및/또는 비디오 프레임들로 변환할 수 있고, 오디오 샘플들 및/또는 비디오 프레임들을 컴퓨팅 장치(100)의 기준 클록(128)에 기초하는 처리 속도로 재생 및/또는 처리할 수 있다.
이상적으로, 기준 클록(128)의 주파수 및 프로그램 클록(156)의 주파수는 일치할 것이다. 이 경우에, 미디어 장치(118)는 기준 클록(128)에 의해 설정된 처리 속도로 데이터 블록들(158)을 간단하게 처리함으로써 서버(150)에 동기화되어 유지할 수 있다. 그러나, 사실상, 기준 클록(128)의 주파수와 프로그램 클록(156)의 주파수는 정확하게 일치하지 않는다. 그 결과, 교정 액션(corrective action)이 취해지지 않는 한, 오버-런(over-run) 또는 언더-런(under-run) 상태가 발생할 수 있어, 스트림(152)의 재생 또는 처리에 아티팩트(artifact)를 삽입하게 된다. 특히, 프로그램 클록(156)이 기준 클록(128)보다 빠른 경우, 컴퓨팅 장치(100)의 버 퍼들은 처리되고 있는 것보다 빠른 속도로 데이터 블록들(158)을 수신하는 결과로서 오버-런할 가능성이 있다. 마찬가지로, 프로그램 클록(156)이 기준 클록(128)보다 느린 경우, 컴퓨팅 장치(100)의 하나 이상의 버퍼들은 처리되고 있는 것보다 느린 속도로 데이터 블록들(158)을 수신하는 결과로서 언더-런할 가능성이 있다.
일 실시예에 있어서, 미디어 장치(118)는 미디어 장치(118)가 처리를 위해 더 많은 데이터 블록들(158)을 수신할 준비가 되어 있을 때마다 인터럽트 신호를 생성할 수 있다. 이러한 실시예에 있어서, 인터럽트 신호들은 미디어 장치(118)의 실제 처리 속도를 정확하게 반영할 수 있다. 따라서, 프로세서(104)가 이러한 인터럽트 신호들이 생성되는 횟수(times)를 정확하게 결정할 수 있는 경우, 프로세서(104)는 미디어 장치(118)의 실제 처리 속도를 정확하게 결정할 수 있다. 프로세서(104)가 이러한 인터럽트 신호들의 횟수를 정확하게 결정할 수 있게 하기 위해서, 타임-스탬핑 회로(102)는 이벤트 발생과 이벤트 스탬핑 사이의 감지할 수 있을 정도의 대기시간(latency) 및/또는 대기시간 변동 없이 이러한 인터럽트 신호들을 검출하고 스탬핑할 수 있다.
다른 실시예에 있어서, 중재기(126)는 데이터 블록들(158)이 처리를 위해 미디어 장치(118)에 전송될 때마다 버스(124)와의 액세스를 미디어 장치(118)에 승인하는 승인 신호를 생성할 수 있다. 이러한 중재 신호들은 미디어 장치(118)의 실제 처리 속도를 정확하게 반영할 수 있다. 또한, 프로세서(104)가 이러한 승인 신호들이 생성되는 횟수를 정확하게 결정할 수 있는 경우, 프로세서(104)는 미디어 장치(118)의 실제 처리 속도를 정확하게 결정할 수 있다. 프로세서(104)가 이러한 승인 신호들의 횟수를 정확하게 결정할 수 있게 하기 위해서, 타임-스탬핑 회로(102)는 검출된 승인 신호의 발생과 검출된 승인 신호의 스탬핑 사이의 감지할 수 있을 정도의 대기시간 및/또는 대기시간 변동 없이 이러한 승인 신호들을 검출하고 스탬핑할 수 있다. 그러나, 다른 이벤트들이 또한 미디어 장치(118)의 처리 속도를 정확하게 반영할 수 있다는 것을 알아야 한다. 따라서, 타임-스탬핑 회로(102)는 이 이벤트들의 발생 횟수가 정확하게 결정될 수 있도록 이들 다른 이벤트들을 스탬핑하도록 구성될 수 있다.
도 4에는 스트림 처리 방법의 실시예가 도시되어 있다. 블록(200)에서 예를 들어, MP3(MPEG audio layer 3) 플레이어 또는 QuickTime™ Movie 플레이어와 같은 애플리케이션(108)이 서버(150)로부터 스트림(152)을 요청할 수 있다. 블록(202)에서, 서버(150)는 애플리케이션(108)에 서버(150)의 프로그램 클록(156)에 기초하는 PCR 스탬프들(160)을 가지는 요청된 스트림(152)을 전송할 수 있다. 블록(204)에서 애플리케이션(108)은 처리를 위해 수신된 스트림(152)의 데이터 블록들(158)을 준비할 수 있고, 준비된 데이터 블록들(158)을 처리하도록 미디어 장치(118)에 요청할 수 있다. 일 실시예에 있어서, 애플리케이션(108)은 스트림(152)의 전송 헤더들을 제거할 수 있고, 스트림(152)의 데이터 블록들(158)을 메모리(116)에 저장할 수 있다. 또한, 애플리케이션(108)은 메모리(116)에 저장된 데이터 블록들(158)을 플레이하도록 미디어 장치(118)에 요청할 수 있다.
애플리케이션(108)이 미디어 장치(118)에게 하나 이상의 데이터 블록(158)을 처리하도록 요청하는 것에 응답하여, 블록(206)에서 미디어 장치(118)를 위한 장치 드라이버(110)가 스트림(152)의 처리를 위해 미디어 장치(118)를 구성할 수 있고, 미디어 장치(118)의 처리 속도를 나타내는 이벤트들의 스탬핑을 위해 타임-스탬핑 회로(102)를 구성할 수 있다. 일 실시예에 있어서, 장치 드라이버(110)는 미디어 장치(118)가 더 많은 데이터 블록들(158)을 처리할 준비가 되어 있을 때 미디어 장치(118)에 의해 생성되는 인터럽트 신호들을 스탬핑하도록 타임-스탬핑 회로(102)를 프로그램할 수 있다. 다른 실시예에 있어서, 장치 드라이버(110)는 데이터 블록들(158)이 공유된 버스(124)를 통해 미디어 장치(118)에 전송되기 전에 중재기(126)에 의해 생성되는 승인 신호들을 스탬핑하도록 타임-스탬핑 회로(102)를 프로그램할 수 있다.
블록(208)에서 미디어 장치(118)는 미디어 장치(118)가 스트림(152)의 하나 이상의 데이터 블록들(158)을 수신할 준비가 되어 있을 때 인터럽트 이벤트(예를 들어, 인터럽트 신호 INT_5)를 생성할 수 있다. 블록(210)에서 타임-스탬핑 회로(102)의 컨트롤러(136)는 인터럽트 이벤트를 타임 스탬핑할지를 결정할 수 있다. 일 실시예에 있어서, 컨트롤러(136)는, 검출된 인터럽트 이벤트가, 컨트롤러(136)가 타임 스탬핑하도록 프로그램되었던 관심대상인 이벤트인지를 결정할 수 있다. 인터럽트 이벤트를 타임 스탬핑하는 것을 결정하는 것에 응답하여, 컨트롤러(136)는 이벤트를 위한 이벤트 식별자(142) 및 타임 스탬프(132)를 이벤트 저장소(138)에 저장할 수 있다(블록(212)).
인터럽트 이벤트에 응답하여, 블록(214)에서 미디어 장치(118)를 위한 장치 드라이버(110)는 미디어 장치(118)의 처리 속도를 나타내는 이벤트를 위한 타임 스 탬프(132)를 타임-스탬핑 회로(102)로부터 요청할 수 있다. 일 실시예에 있어서, 장치 드라이버(110)는 이러한 이벤트(예를 들어, 인터럽트 신호 및/또는 중재 신호)를 위한 이벤트 식별자(142)를 인터페이스(140)에 제공할 수 있다. 블록(216)에서 타임-스탬핑 회로(102)는 수신된 이벤트 식별자(142)에 기초하여 그 이벤트 저장소(138)로부터 타임 스탬프를 장치 드라이버(110)에 제공할 수 있다.
블록(218)에서 장치 드라이버(110)는 수신한 타임 스탬프(132)에 기초하여 미디어 장치(118)의 처리 속도를 결정할 수 있고, 스트림(152)의 PCR 스탬프들(160)에 기초하여 스트림(152)의 PCR을 결정할 수 있다. 일 실시예에 있어서, 장치 드라이버(110)는 수신한 타임 스탬프(132) 및 하나 이상의 이전에 수신한 타임 스탬프들(132)에 기초하여 처리 속도를 결정할 수 있다. 마찬가지로, 장치 드라이버(110)는 PCR 스탬프(160) 및 하나 이상의 이전에 수신한 PCR 스탬프들(160)에 기초하여 PCR을 결정할 수 있다. 예를 들어, 장치 드라이버(110)는 현재의 타임 스탬프(132)와 이전에 수신한 타임 스탬프(132) 사이의 차이를 결정할 수 있고, 취득한 차이에 기초하여 소정의 처리 속도를 갱신할 수 있다. 마찬가지로, 장치 드라이버(110)는 현재의 PCR 스탬프(160)와 이전에 수신한 PCR 스탬프(160) 사이의 차이를 결정할 수 있고, 취득한 차이에 기초하여 소정의 PCR을 갱신할 수 있다.
블록(220)에서, 장치 드라이버(110)는 소정의 처리 속도 및 PCR에 기초하여 미디어 장치(118)의 처리 속도를 조정할 수 있다. 일 실시예에 있어서, 장치 드라이버(110)는 기준 클록(128)의 주파수를 조정할 수 있고, 및/또는 기준 클록(128)의 주파수와 관련하여 그 처리 속도를 조정하도록 미디어 장치(118)를 재구성할 수 있다. 다른 실시예에 있어서, 장치 드라이버(110) 및/또는 애플리케이션(108)은 스트림(152)의 하나 이상의 데이터 블록들(158)을 재-샘플링(re-sampling)하여 재-샘플링된 데이터 블록들(158)의 PCR을 미디어 장치(118)의 처리 속도와 실질적으로 일치시킨다. 예를 들어, 장치 드라이버(110) 및/또는 애플리케이션(108)은 미디어 장치(118)의 처리 속도가 스트림(152)의 PCR보다 빠른 경우에 하나 이상의 데이터 블록들(158)을 업샘플링(upsampling)할 수 있다. 마찬가지로, 장치 드라이버(110) 및/또는 애플리케이션(108)은 미디어 장치(118)의 처리 속도가 스트림(152)의 PCR보다 느린 경우에 하나 이상의 데이터 블록들(158)을 다운샘플링(downsampling)할 수 있다.
블록(222)에서, 장치 드라이버(110)는 칩셋(114) 및/또는 미디어 장치(118)로 하여금, 메모리(116)로부터 데이터 블록들(158)을 전송하게 할 수 있다. 일 실시예에 있어서, 장치 드라이버(110)는 칩셋(114) 또는 미디어 장치(118)의 DMA(direct memory access) 엔진으로 하여금, 처리를 위해 메모리(116)로부터 미디어 장치(118)로 데이터 블록들(158)을 전송하게 할 수 있다. 블록(224)에서, 칩셋(114) 및/또는 미디어 장치(118)는 미디어 장치(118)를 위한 공유된 버스(124)의 소유권을 요청할 수 있고, 중재기(126)는 공유된 버스(124)의 소유권을 요청자(114, 118)에게 승인할 수 있다. 블록(226)에서 타임-스탬핑 회로(102)의 컨트롤러(136)는 승인 이벤트를 타임 스탬핑할지를 결정할 수 있다. 일 실시예에 있어서, 컨트롤러(136)는, 검출된 승인 이벤트가, 컨트롤러(136)가 타임 스탬핑하도록 프로그램되었던 관심대상인 이벤트인지를 결정할 수 있다. 승인 이벤트를 타임 스 탬핑하는 것을 결정하는 것에 응답하여, 컨트롤러(136)는 이벤트를 위한 이벤트 식별자(142) 및 타임 스탬프(132)를 이벤트 저장소(138)에 저장할 수 있다(블록(228)).
블록(230)에서 미디어 장치(118)는 데이터 블록들(158)을 수신할 수 있고, 기준 클록(128)에 의해 제어된 처리 속도로 데이터 블록들(158)을 처리할 수 있다. 특히, 미디어 장치(118)는 데이터 블록들(158)로부터 오디오 샘플들 및/또는 비디오 프레임들을 생성할 수 있고, 오디오 샘플들 및/또는 비디오 프레임들을 기준 클록(128)에 의해 지시된 속도로 재생할 수 있다. 블록(232)에서, 미디어 장치(118)는 스트림(152)의 처리를 완료하였는지를 결정할 수 있다. 미디어 장치(118)가 스트림(152)의 다른 데이터 블록들(158)을 처리하는 것을 결정하는 경우, 미디어 장치(118)는 미디어 장치(118)가 추가적인 데이터 블록들(158)을 수신할 준비가 되어 있음을 나타내는 인터럽트 신호를 생성하기 위해 블록(208)으로 리턴할 수 있다. 그렇지 않은 경우, 미디어 장치(118)는 스트림(152)의 처리를 중지할 수 있다.
본 발명의 특정한 특징들은 예시적인 실시예들을 참조하여 설명되었지만, 그 설명은 한정적인 의미로 해석되도록 의도되지 않는다. 예시적인 실시예들의 다양한 변경들뿐만 아니라, 본 발명의 다른 실시예들이 본 발명의 기술 사상 및 범위 내에 있다는 것은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명하다.

Claims (35)

  1. 장치로 이벤트를 검출하는 단계;
    상기 이벤트를 검출하는 것에 응답하여 상기 이벤트를 상기 장치의 타임 스탬프(time stamp)로 스탬핑(stamping)하는 단계;
    상기 이벤트의 상기 타임 스탬프를 위한 요청을 수신하는 단계; 및
    상기 요청의 수신에 응답하여 상기 이벤트에 대해 상기 타임 스탬프를 제공하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 이벤트가 타임 스탬핑될 것인지를 결정하는 단계; 및
    상기 이벤트가 타임 스탬핑될 것임을 결정하는 것에 응답하여 상기 타임 스탬프로 상기 이벤트를 스탬핑하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 이벤트를 검출하는 단계는, 중재 승인(arbitration grant)을 검출하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 이벤트를 검출하는 단계는, 인터럽트(interrupt)를 검출하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 이벤트를 위한 상기 타임 스탬프 및 스트림의 타임 스탬프에 기초하여 상기 스트림의 처리 속도(processing rate)를 조정하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 이벤트를 위한 상기 타임 스탬프 및 상기 스트림의 타임 스탬프에 기초하여 스트림을 재-샘플링(re-sampling)하는 단계를 더 포함하는 방법.
  7. 기준 클록에 응답하여 카운트(count)를 갱신하기 위한 카운터(counter);
    이벤트들을 검출하고, 검출된 이벤트들에 상기 카운터의 상기 카운트에 기초하는 타임 스탬프들을 제공하기 위한 컨트롤러; 및
    상기 검출된 이벤트를 위한 요청을 수신하는 것에 응답하여 검출된 이벤트의 상기 타임 스탬프를 출력하기 위한 인터페이스
    를 포함하는 장치.
  8. 제7항에 있어서,
    검출된 이벤트들의 타임 스탬프들을 저장하고, 상기 요청의 상기 검출된 이 벤트의 상기 타임 스탬프를 상기 인터페이스에 제공하기 위한 이벤트 저장소를 더 포함하는 장치.
  9. 제7항에 있어서,
    검출된 이벤트들의 타임 스탬프들을 저장하고, 상기 인터페이스로부터 상기 검출된 이벤트를 위한 이벤트 식별자를 수신하는 것에 응답하여 상기 요청의 상기 검출된 이벤트의 상기 타임 스탬프를 상기 인터페이스에 제공하기 위한 이벤트 저장소를 더 포함하는 장치.
  10. 제9항에 있어서,
    상기 인터페이스는 상기 검출된 이벤트를 위한 상기 요청 내의 상기 검출된 이벤트를 위한 상기 이벤트 식별자를 수신하는 장치.
  11. 제7항에 있어서,
    타임 스탬프들 및 검출된 이벤트들의 연관된 이벤트 식별자들을 저장하고, 상기 인터페이스로부터 상기 검출된 이벤트를 위한 이벤트 식별자를 수신하는 것에 응답하여 상기 요청의 상기 검출된 이벤트의 상기 타임 스탬프를 상기 인터페이스에 제공하기 위한 이벤트 저장소를 더 포함하는 장치.
  12. 제7항에 있어서,
    상기 컨트롤러는 검출된 이벤트에, 상기 검출된 이벤트가 타임 스탬핑될 이벤트 타입의 것임을 결정하는 것에 응답하여 타임 스탬프를 제공하는 장치.
  13. 제12항에 있어서,
    상기 컨트롤러는 검출된 이벤트에, 상기 검출된 이벤트가 타임 스탬핑될 이벤트 타입의 것이 아님을 결정하는 것에 응답하여 타임 스탬프를 제공하지 않고 상기 검출된 이벤트를 무시하는 장치.
  14. 제13항에 있어서,
    상기 컨트롤러에 의해 타임 스탬핑될 상기 이벤트 타입들은 프로그램 가능한 장치.
  15. 제7항에 있어서,
    컴퓨팅 장치의 다른 컴포넌트들에 프로세서를 연결하기 위한 칩셋에 통합되는 장치.
  16. 제7항에 있어서,
    중재 이벤트들에 기초하여 공유된 자원과의 액세스를 중재하기 위한 중재기(arbiter)에 통합되는 장치.
  17. 제7항에 있어서,
    인터럽트 이벤트들을 제어하기 위한 인터럽트 컨트롤러에 통합되는 장치.
  18. 프로그램 클록 속도로 데이터 블록들 및 상기 프로그램 클록 속도를 나타내는 프로그램 클록 속도 스탬프들을 포함하는 스트림을 수신하기 위한 네트워크 인터페이스;
    기준 클록 신호를 생성하기 위한 기준 클록;
    상기 기준 클록 신호에 의해 설정된 처리 속도로 상기 스트림의 상기 데이터 블록들을 처리하고, 상기 처리 속도를 나타내는 이벤트들을 유발시키기 위한 장치; 및
    상기 처리 속도를 나타내는 상기 이벤트들을 검출하고, 상기 기준 클록 신호에 기초하는 상기 이벤트들을 위한 타임 스탬프들을 저장하기 위한 타임-스탬핑 회로
    를 포함하는 시스템.
  19. 제18항에 있어서,
    타임-스탬핑 회로는 상기 타임-스탬핑 회로에 프로그램된 이벤트 타입들에 기초하여 상기 처리 속도를 나타내는 상기 이벤트들을 검출하는 시스템.
  20. 제19항에 있어서,
    상기 처리 속도를 나타내는 상기 이벤트들을 위한 상기 타임 스탬프들을 상기 타임-스탬핑 회로에 요청하기 위한 프로세서를 더 포함하는 시스템.
  21. 제20항에 있어서,
    상기 프로세서는 상기 이벤트들을 위한 상기 타임 스탬프들 및 상기 스트림의 상기 프로그램 클록 속도 스탬프들에 기초하여 상기 처리 속도를 조정하는 시스템.
  22. 제20항에 있어서,
    상기 프로세서는 상기 이벤트들을 위한 상기 타임 스탬프들 및 상기 스트림의 상기 프로그램 클록 속도 스탬프들에 기초하여 상기 기준 클록 신호의 주파수를 조정하는 시스템.
  23. 제20항에 있어서,
    상기 프로세서는 상기 이벤트들을 위한 상기 타임 스탬프들 및 상기 스트림의 상기 프로그램 클록 속도 스탬프들에 기초하여 상기 데이터 블록들을 재-샘플링하는 시스템.
  24. 제20항에 있어서,
    상기 타임-스탬핑 회로는 검출된 이벤트들의 타임 스탬프들을 저장하고, 상 기 프로세서가 상기 타임-스탬핑 회로로부터의 타임 스탬프를 요청하는 것에 응답하여 검출된 이벤트를 위한 저장된 타임 스탬프를 상기 프로세서에 제공하는 시스템.
  25. 제20항에 있어서,
    상기 타임-스탬핑 회로는 검출된 이벤트들의 타임 스탬프들을 저장하고, 상기 프로세서가 상기 검출된 이벤트를 위한 이벤트 식별자를 상기 타임-스탬핑 회로에 제공하는 것에 응답하여 검출된 이벤트의 저장된 타임 스탬프를 상기 프로세서에 제공하는 시스템.
  26. 제18항에 있어서,
    상기 타임-스탬핑 회로는 상기 검출된 이벤트가 타임 스탬핑될 이벤트 타입의 것임을 결정하는 것에 응답하여 검출된 이벤트를 위한 타임 스탬프를 저장하는 시스템.
  27. 제26항에 있어서,
    상기 타임-스탬핑 회로는 상기 검출된 이벤트가 타임 스탬핑될 이벤트 타입의 것이 아님을 결정하는 것에 응답하여 상기 검출된 이벤트를 위한 타임 스탬프를 저장하지 않고 상기 검출된 이벤트를 무시하는 시스템.
  28. 제20항에 있어서,
    상기 타임-스탬핑 회로를 포함하고, 상기 프로세서를 상기 네트워크 인터페이스 및 상기 장치에 연결하는 칩셋을 더 포함하는 시스템.
  29. 제18항에 있어서,
    상기 타임-스탬핑 회로를 포함하고, 공유된 자원을 위한 요청들을 중재하는 중재기를 더 포함하고,
    상기 타임-스탬핑 회로는 이벤트 타입의 검출된 중재 신호들을 위한 타임 스탬프들을 저장하는 시스템.
  30. 제18항에 있어서,
    상기 타임-스탬핑 회로를 포함하고, 상기 장치로부터 수신된 인터럽트들을 처리하는 인터럽트 컨트롤러를 더 포함하고,
    상기 타임-스탬핑 회로는 이벤트 타입의 검출된 인터럽트 신호들을 위한 타임 스탬프들을 저장하는 시스템.
  31. 컴퓨팅 장치에 의해 실행되는 것에 응답하여, 상기 컴퓨팅 장치로 하여금,
    스트림을 위한 처리 속도를 나타내는 검출된 이벤트의 타임 스탬프를 타임-스탬핑 회로에 요청하고,
    상기 검출된 이벤트의 상기 타임 스탬프에 기초하여 상기 스트림을 위한 상 기 처리 속도를 결정하고,
    상기 스트림의 프로그램 클록 속도 스탬프에 기초하여 상기 스트림을 위한 프로그램 클록 속도를 결정하고,
    소정의 차이를 가지는 상기 처리 속도와 상기 프로그램 클록 속도에 응답하여 상기 스트림을 위한 상기 처리 속도를 조정하게 하는 다수의 명령을 포함하는 시스템 판독가능한 매체.
  32. 제31항에 있어서,
    상기 다수의 명령은, 상기 컴퓨팅 장치로 하여금, 상기 스트림의 데이터 블록들을 재-샘플링하는 것에 의해 상기 처리 속도를 조정하게 하는 시스템 판독가능한 매체.
  33. 제31항에 있어서,
    상기 다수의 명령은, 상기 컴퓨팅 장치로 하여금, 상기 처리 속도를 제어하는 기준 클록을 조정하게 하는 시스템 판독가능한 매체.
  34. 제31항에 있어서,
    상기 다수의 명령은, 상기 컴퓨팅 장치로 하여금, 상기 스트림을 위한 상기 처리 속도를 나타내는 인터럽트 이벤트들을 스탬핑하도록 상기 타임-스탬핑 회로를 프로그램하게 하는 시스템 판독가능한 매체.
  35. 제31항에 있어서,
    상기 다수의 명령은, 상기 컴퓨팅 장치로 하여금, 상기 스트림을 위한 상기 처리 속도를 나타내는 중재 이벤트들을 스탬핑하도록 상기 타임-스탬핑 회로를 프로그램하게 하는 시스템 판독가능한 매체.
KR1020067002656A 2003-08-07 2004-07-28 이벤트 타임-스탬핑 KR100829643B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/637,301 2003-08-07
US10/637,301 US20050091554A1 (en) 2003-08-07 2003-08-07 Event time-stamping

Publications (2)

Publication Number Publication Date
KR20060034306A true KR20060034306A (ko) 2006-04-21
KR100829643B1 KR100829643B1 (ko) 2008-05-19

Family

ID=34193567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067002656A KR100829643B1 (ko) 2003-08-07 2004-07-28 이벤트 타임-스탬핑

Country Status (10)

Country Link
US (1) US20050091554A1 (ko)
EP (1) EP1652054B1 (ko)
JP (1) JP2007501977A (ko)
KR (1) KR100829643B1 (ko)
CN (1) CN100456201C (ko)
AT (1) ATE371890T1 (ko)
DE (1) DE602004008647T2 (ko)
RU (1) RU2312386C2 (ko)
TW (1) TWI279673B (ko)
WO (1) WO2005017724A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529979B2 (en) * 2003-12-12 2009-05-05 International Business Machines Corporation Hardware/software based indirect time stamping methodology for proactive hardware/software event detection and control
AT502550B1 (de) * 2005-10-11 2009-11-15 Arc Seibersdorf Res Gmbh Digitaler synchroner arbiter, sensor mit einem derartigen arbiter und verfahren zum sequentialisieren von synchronisierten ereignissen mit einem derartigen arbiter
US8468283B2 (en) 2006-06-01 2013-06-18 Telefonaktiebolaget Lm Ericsson (Publ) Arbiter diagnostic apparatus and method
CN101459693A (zh) * 2008-12-29 2009-06-17 中兴通讯股份有限公司 一种流媒体下载方法及系统
US8971470B2 (en) * 2011-02-25 2015-03-03 Intel Corporation System, method, and device to distribute accurate synchronization timestamps in an expandable and timing critical system
US9465755B2 (en) 2011-07-18 2016-10-11 Hewlett Packard Enterprise Development Lp Security parameter zeroization
US9201821B2 (en) 2012-09-27 2015-12-01 Apple Inc. Interrupt timestamping
US10409244B2 (en) 2013-10-15 2019-09-10 Omron Corporation Controller and control method
US9641267B2 (en) * 2014-06-10 2017-05-02 Halliburton Energy Services Inc. Synchronization of receiver units over a control area network bus
US9904637B2 (en) * 2014-11-26 2018-02-27 Qualcomm Incorporated In-band interrupt time stamp
TWI549014B (zh) * 2014-12-31 2016-09-11 Nobuyoshi Morimoto Verification system and method for issuing real-time timestamps with digital timestamp devices
TWI559163B (zh) * 2015-03-27 2016-11-21 Nobuyoshi Morimoto Time stamped digital content protection methods and systems
JP6540478B2 (ja) * 2015-11-30 2019-07-10 セイコーエプソン株式会社 計時装置、電子機器、及び、移動体
TWI632461B (zh) * 2017-05-25 2018-08-11 緯穎科技服務股份有限公司 獲取時間戳記的方法以及使用該方法的電腦裝置
US11019585B1 (en) 2018-07-24 2021-05-25 Sprint Communications Company L.P. Network generated precision time
CN112650616A (zh) * 2021-01-05 2021-04-13 上海擎昆信息科技有限公司 一种中断检测方法、装置和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038319A (en) * 1989-04-24 1991-08-06 Xerox Corporation System for recording and remotely accessing operating data in a reproduction machine
US5297277A (en) * 1990-08-31 1994-03-22 International Business Machines Corporation Apparatus for monitoring data transfers of an oemi channel interface
US5426774A (en) * 1993-04-06 1995-06-20 Honeywell Inc. Method for maintaining a sequence of events function during failover in a redundant multiple layer system
US5862388A (en) * 1993-11-24 1999-01-19 Intel Corporation Interrupt-time processing of received signals
US5822317A (en) * 1995-09-04 1998-10-13 Hitachi, Ltd. Packet multiplexing transmission apparatus
US6173207B1 (en) * 1997-09-22 2001-01-09 Agilent Technologies, Inc. Real-time control system with non-deterministic communication
US6097699A (en) * 1998-06-05 2000-08-01 Gte Laboratories Incorporated Method and system for monitoring broadband quality of services
US6571344B1 (en) * 1999-12-21 2003-05-27 Koninklijke Philips Electronics N. V. Method and apparatus for authenticating time-sensitive interactive communications
AUPQ896300A0 (en) * 2000-07-24 2000-08-17 Nec Australia Pty Ltd A clock synchronisation method for usb sink devices
EP1393575A1 (en) * 2001-05-14 2004-03-03 Koninklijke Philips Electronics N.V. Mpeg data packet transmission through an atm network with jitter free decoding
US7123963B2 (en) * 2002-10-31 2006-10-17 Medtronic, Inc. Method of automatic evoked response sensing vector selection using evoked response waveform analysis
US7124332B2 (en) * 2003-06-30 2006-10-17 Intel Corporation Failure prediction with two threshold levels

Also Published As

Publication number Publication date
TWI279673B (en) 2007-04-21
RU2006106916A (ru) 2006-07-27
DE602004008647T2 (de) 2008-06-12
WO2005017724A2 (en) 2005-02-24
US20050091554A1 (en) 2005-04-28
ATE371890T1 (de) 2007-09-15
CN100456201C (zh) 2009-01-28
EP1652054B1 (en) 2007-08-29
KR100829643B1 (ko) 2008-05-19
TW200516386A (en) 2005-05-16
JP2007501977A (ja) 2007-02-01
RU2312386C2 (ru) 2007-12-10
CN1860427A (zh) 2006-11-08
WO2005017724A3 (en) 2005-11-17
DE602004008647D1 (de) 2007-10-11
EP1652054A2 (en) 2006-05-03

Similar Documents

Publication Publication Date Title
KR100829643B1 (ko) 이벤트 타임-스탬핑
KR100784385B1 (ko) 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법
US20110296110A1 (en) Critical Word Forwarding with Adaptive Prediction
US8745335B2 (en) Memory arbiter with latency guarantees for multiple ports
US20060184737A1 (en) Data stream generation method for enabling high-speed memory access
CN114666288A (zh) 用网络接口控制器发送和/或接收数据流的方法和装置
KR20100050819A (ko) 반도체 메모리 시스템의 동작 방법
US20080075015A1 (en) Method for time-stamping messages
US6415367B1 (en) Apparatus for reducing asynchronous service latency in a time slot-based memory arbitration scheme
US6477600B1 (en) Apparatus and method for processing isochronous interrupts
US7321945B2 (en) Interrupt control device sending data to a processor at an optimized time
US6363461B1 (en) Apparatus for memory resource arbitration based on dedicated time slot allocation
JP2003501892A (ja) 電子ネットワークにおけるコンテクストを切り換える装置及び方法
US6412049B1 (en) Method for minimizing CPU memory latency while transferring streaming data
CN116107635A (zh) 命令分发器、命令分发方法、调度器、芯片、板卡、设备
US7673091B2 (en) Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system
TWI287710B (en) Stream under-run/over-run recovery
US6260119B1 (en) Memory cache management for isochronous memory access
JP5857273B2 (ja) ストリーム処理装置
JP2005509943A (ja) セマフォを使用する効率的なfifo通信
JP4126959B2 (ja) データ転送システム、およびアクセスモニタ装置
US8195846B2 (en) Direct memory access controller for improving data transmission efficiency in MMoIP and method therefor
US20050044334A1 (en) Efficient management of memory access requests from a video data stream
CN110825596A (zh) 具有分布式时钟的集成电路的高效性能监控
Lian Multi-thread chain DMA data transfer method for SuperSpeed bus video transmissions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120502

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee