KR100723496B1 - 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법 - Google Patents

통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법 Download PDF

Info

Publication number
KR100723496B1
KR100723496B1 KR1020050073730A KR20050073730A KR100723496B1 KR 100723496 B1 KR100723496 B1 KR 100723496B1 KR 1020050073730 A KR1020050073730 A KR 1020050073730A KR 20050073730 A KR20050073730 A KR 20050073730A KR 100723496 B1 KR100723496 B1 KR 100723496B1
Authority
KR
South Korea
Prior art keywords
memory
data
output
flow
input data
Prior art date
Application number
KR1020050073730A
Other languages
English (en)
Other versions
KR20070019807A (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 삼성전자주식회사
Priority to KR1020050073730A priority Critical patent/KR100723496B1/ko
Priority to US11/502,036 priority patent/US20070036022A1/en
Priority to CNA2006101431857A priority patent/CN1945522A/zh
Publication of KR20070019807A publication Critical patent/KR20070019807A/ko
Application granted granted Critical
Publication of KR100723496B1 publication Critical patent/KR100723496B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • G11C19/28Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
    • G11C19/282Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements with charge storage in a depletion layer, i.e. charge coupled devices [CCD]
    • G11C19/285Peripheral circuits, e.g. for writing into the first stage; for reading-out of the last stage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/103Read-write modes for single port memories, i.e. having either a random port or a serial port using serially addressed read-write data registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

통합 FIFO 메모리를 사용하는 다중-레이트 입력 데이터의 동기화기 및 방법이 개시된다. 상기 동기화기에서는 메모리가 콘트롤러의 제어에 따라 다중-레이트 입력 데이터를 받아 하나의 시스템 동작 주파수로 변환된 다수의 해당 데이터를 출력한다.

Description

통합 FIFO 메모리를 사용하는 다중-레이트 입력 데이터의 동기화기 및 방법{Synchronizer and method of multi-rate input data using unified First-In-First-Out memory}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 다중-레이트 입력 데이터를 처리하는 일반적인 데이터 처리 시스템의 블록도이다.
도 2는 다중-레이트 입력 데이터의 처리를 위한 일반적인 DPSRAM을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 다중-레이트 입력 데이터의 동기화기의 개념적인 도면이다.
도 4는 본 발명의 일실시예에 따른 동기화기를 구체적으로 나타낸 블록도이다.
도 5는 본 발명의 일실시예에 따른 동기화기를 좀더 구체적으로 나타낸 블록도이다.
도 6은 도 5의 샘플링 주파수 변환기들의 구체적인 블록도이다.
도 7은 도 5의 입력 선택부의 동작을 설명하기 위한 도면이다.
도 8은 도 5의 흐름 콘트롤 버퍼들의 구체적인 블록도이다.
도 9는 본 발명의 일실시예에 따른 동기화기의 동작 설명을 위한 흐름도이다.
본 발명은 데이터 처리 시스템에 관한 것으로, 특히 다중-레이트(multi-rate) 입력 데이터를 동기화시키기 위한 장치 및 방법에 관한 것이다.
도 1은 다중-레이트 입력 데이터를 처리하는 일반적인 데이터 처리 시스템(100)의 블록도이다. 도 1을 참조하면, 상기 데이터 처리 시스템(100)은 DDR(Double Data Rate) SDRAM과 같은 메모리(140), 서로 다른 데이터 레이트를 가지는 데이터들(D1~D3)을 버퍼링하기 위한 DPSRAM(Dual port SRAM)과 같은 버퍼들(110~130), 버스를 통하여 상기 메모리(140)에 접근하는 IPC(Interlace-Progressive Converter)(150), 스케일러(scaler)(160), 및 MPEG 프로토콜에 따른 데이터 압축기(170)를 포함한다.
예를 들어, 상기 데이터 처리 시스템(100)은 HDTV 방송과 기존 아날로그 방송 또는 컴퓨터 디스플레이 신호를 동시에 처리하여, 하나의 디스플레이 장치로 시청 하고자할 때 이용될 수 있다. 이때, 상기 IPC(150), 상기 스케일러(160), 및 상기 데이터 압축기(170) 등은 해당 신호 처리를 위하여 상기 메모리(140)에 저장된 여러 프레임/라인의 데이터를 읽어와 주파수 변환, 스케일링 및 압축 등을 수행한 다. 이때, 상기 메모리(140)에서 읽어오는 데이터를 임시 저장하기 위한 내부 버퍼가 사용될 수 있다. 이와 같이, 종래에는 보편적으로 상기 메모리(140)에 데이터를 기록하거나 상기 메모리(140)로부터 데이터를 읽어오기 위하여, 각각의 해당 채널에 필요한 버퍼를 별도로 두는 방법을 사용하여 오고있다.
특히, 서로 다른 클럭 신호들(CK1~CK3)에 동기된 서로 다른 데이터 레이트의 입력 비디오 데이터(D1~D3)를, 일시 저장하였다가 출력 클럭 신호(CKO)에 동기된 일정 데이터 레이트로 출력하기 위하여 DPSRAM과 같은 상기 버퍼들(110~130)이 이용될 수 있다. 상기 버퍼들(110~130)은 상기 메모리(140) 및 상기 메모리(140)에 후속하는 프로세서들의 동작 클럭 신호인 상기 출력 클럭 신호(CKO)에 동기된 일정 데이터 레이트로 상기 입력 비디오 데이터들(D1~D3)이 상기 메모리(140)로 전송되도록 버퍼링한다.
동작 주파수가 다른 입출력 버퍼링을 위하여 위와 같은 DPSRAM은, 도 2와 같이, 하나의 데이터를 처리하여 주파수 변환된 하나의 데이터를 처리하는 방식이다. SOC(Silicon-On Chip)를 지향하는 현재의 반도체 집적회로 분야에서, 내장되는 메모리의 규모 및 구성 비율이 커짐에 따라 전체 칩 사이즈에 큰 영향을 미치므로, 메모리를 효율적으로 운용하여야 할 필요성이 대두되고 있다. 그러나, 위와 같은 DPSRAM은 SPSRAM(Single port SRAM)보다 사이즈(size) 면에서 보통 2배 크고, 각각의 입력 데이터 버퍼링을 위한 별도의 DPSRAM들(예를 들어, 위에서 3개)이 이용되므로, 전체 회로 사이즈를 크게 증가시키는 문제점이 있다.
따라서, 본 발명이 이루고자하는 기술적 과제는, 동시에 서로 다른 주파수 또는 데이터 레이트로 입력되는 다수의 입력 신호들을 시스템 동작 주파수로 변환하기 위한, 사이즈 효율성(size effective)을 가지는 다중-레이트 입력 데이터의 동기화기를 제공하는 데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 통합 FIFO 메모리(예를 들어, SPSRAM) 하나를 사용하여 다중-레이트 입력 데이터를 동기화하는 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한 본 발명의 일면에 따른 다중-레이트 입력 데이터의 동기화기는, FIFO 타입 SPSRAM인 메모리; 및 상기 메모리의 입출력을 제어하는 콘트롤러를 구비하고, 상기 콘트롤러는 상기 메모리가 다중-레이트 입력 데이터를 받아 하나의 일정 동작 주파수로 변환된 다수의 해당 채널 데이터를 출력하도록 제어하는 것을 특징으로 한다.
상기의 기술적 과제를 달성하기 위한 본 발명의 다른 일면에 따른 다중-레이트 입력 데이터의 동기화기는, 메모리; 적어도 2개 이상의 다중-레이트 입력 데이터를 받아 일정 동작 주파수로 변환된 다수의 해당 채널 데이터가 상기 메모리에 기록되도록 제어하는 입력 콘트롤부; 및 외부의 버스 중재에 따라 상기 메모리에 기록된 데이터가 상기 일정 동작 주파수로 출력되도록 제어하는 출력 콘트롤부를 구비하는 것을 특징으로 한다.
상기 입력 콘트롤부는, 상기 다중-레이트의 각 채널 입력 데이터를 받아 상 기 일정 동작 주파수로 변환하여 출력하는 샘플링 주파수 변환기들; 및 상기 샘플링 주파수 변환기들 각각이 출력하는 채널 데이터에 대하여 상기 본래의 각 입력 데이터의 레이트에 비례하게 시간 구간을 배분하여 해당 채널 데이터를 상기 메모리로 출력하는 입력 선택부를 포함하는 것을 특징으로 한다.
상기 출력 콘트롤부는, 출력 경로 상의 오버-플로우 및 언더-플로우 상태를 기반으로 상기 메모리에 기록된 다수의 채널 데이터의 채널별 출력을 선택하여 출력하는 출력 선택부; 및 상기 버스 중재에 따라 상기 메모리 및 상기 출력 선택부를 통하여 출력되는 각 채널별 출력을 임시 저장하고, 상기 임시 저장된 각 채널 데이터를 상기 버스 중재에 따라 상기 일정 동작 주파수로 출력하는 적어도 2개 이상의 흐름 콘트롤 버퍼들을 포함하는 것을 특징으로 한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명의 또 다른 일면에 따른 다중-레이트 입력 데이터의 동기화 방법은, 적어도 2개 이상의 채널로부터 다중-레이트 입력 데이터를 수신하는 단계; 상기 다중-레이트 입력 데이터를 하나의 일정 동작 주파수로 변환하는 단계; 상기 변환된 채널 데이터를 하나의 메모리에 기록하는 단계; 및 외부의 버스 중재에 따라 상기 메모리에 기록된 채널별 데이터를 상기 일정 동작 주파수로 출력하는 단계를 구비하는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 본 발명의 일실시예에 따른 다중-레이트 입력 데이터의 동기화기(300)의 개념적인 도면이다. 도 3을 참조하면, 상기 동기화기(300)는 SPSRAM인 하나의 메모리(310)와 상기 메모리(310)의 입출력을 제어하는 콘트롤러(320)를 포함한다.
상기 동기화기(300)는 HDTV 방송과 기존 아날로그 방송 또는 컴퓨터 디스플레이 신호 등 비동기적인(asynchronous) 다중-레이트 신호들을 동시에 처리하여, 하나의 디스플레이 장치로 전송함으로써, 유저가 여러 방송이나 컴퓨터 콘텐츠 등을 동시에 시청할 수 있도록 한다. 종래에는, 이와 같은 기능을 위한 버퍼로서 도 2와 같이, 한 종류의 입력 데이터만을 시스템 동작 주파수로 변환하여 출력하는 DPSRAM 다수개를 이용하여 왔다. 이와 달리, 본 발명에서는 상기 메모리(310)로서 통합(unified) FIFO(First-In-First-Out) 타입으로 동작하는 SPSRAM 하나만을 이용하여도, 상기 콘트롤러(320)의 제어에 따라 상기 메모리(310)가 다중-레이트 입력 데이터를 받아 시스템 동작 주파수로 변환된 다수의 해당 채널 데이터를 출력할 수 있도록 함으로써, 전체 칩 사이즈의 효율성을 제공하고자 한다.
도 3을 구체적으로 나타낸 본 발명의 일실시예에 따른 동기화기(400)가 도 4에 도시되어 있다. 도 4를 참조하면, 상기 동기화기(400)는 메모리(310), 입력 콘트롤부(410) 및 출력 콘트롤부(420)를 포함한다. 상기 메모리(310)는 도 3에서와 같고, 상기 입력 콘트롤부(410) 및 상기 출력 콘트롤부(420)는 도 3의 콘트롤러 (320)에 대응된다.
상기 입력 콘트롤부(410)는 다수의 데이터 채널(D_CH1~D_CH3)을 통하여 다중-레이트 입력 데이터를 받아 시스템 동작 주파수로 변환된 다수의 해당 채널 데이터가 상기 메모리(310)에 기록되도록 제어한다. 상기 출력 콘트롤부(420)는 버스 점유에 대한 중재를 받고, 상기 메모리(310)에 기록된 데이터가 상기 시스템 동작 주파수를 가지고 버스로 출력되도록 제어한다. 여기서, 다중-레이트 입력 데이터의 채널은 3개인 것으로 도시되었으나, 시스템의 사양에 따라 비동기적인 데이터를 가지는 적어도 2개 이상의 채널일 수 있다.
도 4를 좀 더 구체적으로 나타낸 본 발명의 일실시예에 따른 동기화기(500)가 도 5에 도시되어 있다. 도 5를 참조하면, 도 4의 상기 입력 콘트롤부(410)는 다수의 샘플링 주파수 변환기들(sampling frequency converters)(411~413) 및 입력 선택부(415)를 포함하고, 도 4의 상기 출력 콘트롤부(420)는 출력 선택부(421) 및 다수의 흐름 콘트롤 버퍼들(flow control buffers)(425~427)을 포함한다. 이외에도 상기 동기화기(500)는 상기 다수의 흐름 콘트롤 버퍼들(425~427)의 버스 점유를 중재하는 버스 아비터(arbiter)(510)를 더 포함할 수 있다.
상기 다수의 샘플링 주파수 변환기들(411~413)은 다중-레이트의 각 채널(D_CH1/D_CH2/D_CH3) 입력 데이터를 받아 출력 클럭 신호(CKO)의 주파수, 즉, 상기 시스템 동작 주파수로 변환하여 출력한다. 상기 다중-레이트의 각 채널 입력 데이터는 각각의 입력 클럭 신호(CK1/CK2/CK3)에 동기되어 입력된다. 상기 다수의 샘플링 주파수 변환기들(411~413) 이후의 프로세싱에서는 상기 출력 클럭 신호(CKO)에 동기되어 처리된다. 상기 다수의 샘플링 주파수 변환기들(411~413)에 대해서는 도 6에서 좀 더 자세히 설명된다.
상기 입력 선택부(415)는 상기 샘플링 주파수 변환기들(411~413) 각각이 출력하는 채널 데이터에 대하여, 상기 채널(D_CH1/D_CH2/D_CH3)을 통하여 입력되는 각 입력 데이터 본래의 레이트에 비례하게 시간 구간을 배분하여 해당 채널 데이터를 상기 메모리(310)로 출력한다. 예를 들어, 제1 채널(D_CH1), 제2 채널(D_CH2) 및 제3 채널(D_CH3) 각각을 통하여 입력되는 데이터 레이트가 그 순서로 작아질 때(제1 채널(D_CH1)의 데이터 레이트가 가장 큼), 도 7과 같이, 상기 제1 채널(D_CH1), 상기 제2 채널(D_CH2) 및 상기 제3 채널(D_CH3) 각각에 T1>T2>T3 와 같이 분배된 시간 구간에 따라, 상기 입력 선택부(415)는 해당 채널 데이터를 상기 메모리(310)로 출력한다. 이는 데이터 레이트가 큰 경우에, 분배된 시간을 크게 하여 같은 출력 클럭 신호(CKO)에 동기하여 출력되는 데이터량이 더 많도록 함으로써, 모든 다중-레이트의 입력 데이터에 따른 동시 디스플레이가 후속 디스플레이 장치 등에서 같은 시간에 정상적으로 이루어지도록 하기 위함이다. 상기 입력 선택부(415)는 라운드 로빈(Round Robin) 스케쥴링 방식과 같이, 상기 배분된 시간 구간(T1>T2>T3) 각각 동안 한번씩 최고 우선 순위로 해당 채널 데이터를 상기 메모리(310)로 출력한다.
상기 메모리(310)는 상기 입력 선택부(415)로부터 받는 각 해당 채널 데이터를 각 할당 주소 영역에 저장한다. 상기 버스 아비터(510)로부터의 버스 점유 허가 신호(GNT1/GNT2/GNT3)가 액티브되면, 상기 메모리(310)의 일정양의 해당 채널 데이 터가 버스로 지연없이 전송될 수 있다. 이와 같이 상기 메모리(310)로부터 버스로의 데이터 전송이 지연 없이 이루어지도록 하기 위하여, 상기 메모리(310)에 후속하는 상기 출력 선택부(421)와 각 채널을 위한 상기 다수의 흐름 콘트롤 버퍼들(425~427)이 존재한다. 상기 출력 선택부(421)와 상기 다수의 흐름 콘트롤 버퍼들(425~427)이 없다면, 버스 점유 허가를 받더라도 최소한 1 클럭 싸이클 이상의 레이턴시(latency)가 필요할 수 있다. 이와 같은 측면에서, 본 발명은 칩 사이즈 효율성과 함께 데이터 전송 처리량(throughput)을 향상시킬 수 있는 구조이다.
도 5에서, 상기 출력 선택부(421)는 상기 메모리(310)의 할당 주소에 기록된 다수의 채널 데이터의 채널별 출력을 선택하여 출력한다. 상기 출력 선택부(421)는 출력 경로 상의 오버-플로우 및 언더-플로우 상태를 기반으로 상기 메모리(310)로부터의 데이터 출력을 제어한다.
상기 다수의 흐름 콘트롤 버퍼들(425~427)은 상기 버스 아비터(510)의 버스 중재를 받는다. 상기 흐름 콘트롤 버퍼들(425~427)은 내부 데이터 흐름이 언더-플로우가 아닐 때, 버스 점유 요청 신호(REQ1/REQ2/REQ3)를 액티브시켜 버스 점유를 요청한다. 이에 응답하여 상기 버스 아비터(510)가 버스 점유 허가 신호(GNT1/GNT2/GNT3)를 액티브시키면, 상기 흐름 콘트롤 버퍼들(425~427)은, 해당 채널의 준비 완료 신호(READY1/READY2/READY3)를 액티브시켜 상기 출력 선택부(421)로부터 받은 해당 채널 데이터를 상기 버스로 출력한다.
상기 출력 경로 상의 오버-플로우 상태는 상기 다수의 흐름 콘트롤 버퍼들(425~427) 내부에서 데이터 흐름이 오버-플로우된 상태로서, 이와 같은 오버-플로 우된 상태를 지시하기 위하여 상기 다수의 흐름 콘트롤 버퍼들(425~427)은 도 8과 같은 동작에 따라 오버-플로우 신호(OF1/OF2/OF3)를 액티브시킨다. 또한, 상기 출력 경로 상의 언더-플로우 상태는 상기 메모리(310) 내부에서 데이터 흐름이 언더-플로우된 상태로서, 이와 같은 언더-플로우된 상태를 지시하기 위하여 상기 메모리(310)는 데이터 흐름을 감시하여 언더-플로우 신호(UF1/UF2/UF3)를 액티브시킨다.
예를 들어, 상기 출력 선택부(421)는 상기 흐름 콘트롤 버퍼들(425~427) 중 하나가 오버-플로우 상태가 아니고(OF1/OF2/OF3이 "0"인 경우), 상기 메모리(310)의 각 채널에 할당된 저장 영역이 언더-플로우 상태가 아니라면(UF1/UF2/UF3이 "0"인 경우), 해당 채널 오픈 신호(CH1ON/CH2ON/CH3ON)를 상기 메모리(310)로 전송한다. 이에 따라 상기 메모리(310)에 기록된 해당 채널 데이터가 상기 메모리(310)로부터 출력되면, 상기 출력 선택부(421)는 해당 채널 데이터를 상기 오버-플로우 상태가 아닌 흐름 콘트롤 버퍼로 출력한다. 상기 출력 선택부(421)와 관련된 동작에 대해서는 도 9에서 좀 더 자세히 설명된다.
다시 말하여, 상기 다수의 흐름 콘트롤 버퍼들(425~427)은 이와 같은 상기 버스 아비터(510)의 버스 중재에 따라 상기 메모리(310) 및 상기 출력 선택부(421)를 통하여 출력되는 각 채널별 출력을 임시 저장하고, 상기 임시 저장된 각 채널 데이터를 상기 버스 중재에 따라 상기 출력 클럭 신호(CKO) 주파수로 출력한다. 상기 다수의 흐름 콘트롤 버퍼들(425~427)에 대해서는 도 8에서 좀 더 자세히 설명된다.
도 6은 도 5의 샘플링 주파수 변환기들(411~413)의 구체적인 블록도이다. 도 6을 참조하면, 상기 샘플링 주파수 변환기들 각각(411/412/413)은, 기록 주소 카운터(write address counter)(610), 디먹스(demultiplexer)(620), 레지스터(630), 먹스(multiplexer)(640), 읽기 주소 카운터(read address counter)(650), 언더-플로우 상태 검출기(660) 및 주파수 변환기(670)를 포함한다.
상기 기록 주소 카운터(610)는 해당 채널의 입력 데이터(DATAIN)가 수신될 때 액티브되는 인에이블 신호(DIEN)에 따라, 해당 채널의 입력 클럭 신호(CKIN)의 펄스를 카운트하여 기록 주소를 생성한다. 상기 카운트되는 기록 주소는 상기 인에이블 신호(DIEN)가 액티브될 때마다 리셋되어, 상기 입력 클럭 신호(CKIN)의 펄스에 따라 하나씩 증가될 수 있다.
상기 주파수 변환기(670)는 상기 기록 주소 카운터(610)에서 출력되는 상기 기록 주소를 출력 클럭 신호(CKO) 주파수로 변환한다.
상기 디먹스(620)는 해당 채널의 입력 데이터(DATAIN)를 상기 기록 주소 카운터(610)에서 출력되는 상기 기록 주소로 출력하고, 이에 따라 상기 레지스터(630)는 상기 기록 주소에 해당하는 레지스터 셀(REG)에 데이터를 저장한다. 각 채널(D_CH1/D_CH2/D_CH3)을 통하여 입력되는 입력 데이터(DATAIN) 전체의 레이트 합은 상기 출력 클럭 신호(CKO) 주파수보다 작아야하므로, 각 입력 데이터(DATAIN)의 데이터 레이트에 비례하여 상기 레지스터(630) 셀(REG)수가 많아지도록 정해진다. 상기 레지스터(630)는 FIFO 타입으로 동작한다.
상기 언더-플로우 상태 검출기(660)는 상기 읽기 주소 카운터(650)에서 출력되는 독출 주소와 상기 주파수 변환기(670)에서 변환된 기록 주소를 기반으로 상기 레지스터(630)의 언더-플로우 상태를 감시한다.
상기 레지스터(630)의 언더-플로우는 다음과 같은 [알고리즘 1]에 따라 계산될 수 있다.
[알고리즘 1]
if(W_addr > R_addr)
if(W_addr - R_addr < DELTA)
Underflow = 1
else Underflow = 0
else
if(N + W_addr - R_addr < DELTA)
Underflow = 1
else Underflow = 0
위의 알고리즘에서, W_addr은 마지막 기록 주소, R_addr은 마지막 독출 주소, DELTA는 유저가 설정할 수 있는 임계치, 및 N은 상기 레지스터 셀 수이다. 이와 같이, 상기 레지스터(630)의 언더-플로우 상태는 W_addr가 R_addr보다 큰 경우 또는 작은 경우에 상관없이, 상기 레지스터(630)에 기록된 마지막 기록 주소와 상기 레지스터(630)로부터 독출된 마지막 독출 주소의 차이가 일정 임계치(DELTA) 보다 작은 경우이다.
상기 읽기 주소 카운터(650)는 상기 언더-플로우 상태 검출기(660) 출력(DOEN)이 언더-플로우 상태가 아닌 경우를 나타낼 때 상기 출력 클럭 신호(CKO) 펄 스를 카운트하여 상기 독출 주소를 생성하고, 상기 언더-플로우 상태 검출기(660) 출력(DOEN)이 언더-플로우 상태라면 이전 주소를 유지한다.
상기 먹스(640)는 상기 레지스터(630)의 데이터 중 상기 독출 주소에 해당하는 데이터를 출력한다.
이와 같이, 상기 샘플링 주파수 변환기들(411~413)은 상기 레지스터(630)의 언더-플로우가 아닐 때, 상기 각 채널 입력 데이터(DATAIN)가 상기 출력 클럭 신호(CKO) 주파수로 변환된 데이터를 출력한다.
도 8은 도 5의 흐름 콘트롤 버퍼들(425~427)의 구체적인 블록도이다. 도 8을 참조하면, 상기 흐름 콘트롤 버퍼들 각각(425/426/427)은, 기록 주소 카운터(810), 디먹스(820), 레지스터(830), 먹스(840), 읽기 주소 카운터(850), 및 언더-플로우/오버-플로우 상태 검출기(860)를 포함한다. 도 8은 도 6과 비교할 때, 도 6의 주파수 변환기(670)가 없는 구조이고, 상기 읽기 주소 카운터(850)는 출력 클럭 신호(CKO)를 받으며, 상기 상태 검출기(860)는 언더-플로우와 오버-플로우 상태를 모두 감시한다.
상기 기록 주소 카운터(820)는 상기 출력 선택부(421)로부터 해당 채널의 데이터(DATAIN)가 수신될 때 액티브되는 인에이블 신호(DIEN)에 따라, 출력 클럭 신호(CKO)의 펄스를 카운트하여 기록 주소를 생성한다. 상기 카운트되는 기록 주소는 상기 인에이블 신호(DIEN)가 액티브될 때마다 리셋되어, 상기 출력 클럭 신호(CKO)의 펄스에 따라 하나씩 증가될 수 있다.
상기 디먹스(820)는 해당 채널의 데이터(DATAIN)를 상기 기록 주소 카운터 (810)에서 출력되는 상기 기록 주소로 출력하고, 이에 따라 상기 레지스터(830)는 상기 기록 주소에 해당하는 레지스터 셀(REG)에 데이터를 저장한다. 상기 레지스터(830)는 FIFO 타입으로 동작한다.
상기 언더-플로우/오버-플로우 상태 검출기(860)는 상기 읽기 주소 카운터(850)에서 출력되는 독출 주소와 상기 기록 주소 카운터(810)에서 생성된 기록 주소를 기반으로 상기 레지스터(830)의 언더-플로우 상태 및 오버 플로우 상태를 감시한다. 상기 언더-플로우/오버-플로우 상태 검출기(860)는 상기 레지스터(830)의 언더-플로우 상태가 아닐 때, 버스 점유 요청 신호(REQ1/REQ2/REQ3)를 액티브시켜 버스 점유를 요청한다(REQ1/REQ2/REQ3이 "1"인 경우). 또한, 상기 언더-플로우 상태 검출기(860)는 상기 레지스터(830)의 오버-플로우 상태인지를 나타내는 오버-플로우 신호(OF1/OF2/OF3)를 상기 출력 선택부(421)와 상기 메모리(310)로 피드백한다.
상기 레지스터(830)의 언더-플로우는 위의 [알고리즘 1]에 따라 계산될 수 있고, 상기 레지스터(830)의 오버-플로우는 다음과 같은 [알고리즘 2]에 따라 계산될 수 있다.
[알고리즘 2]
if(W_addr > R_addr)
if(N + W_addr - R_addr < DELTA)
Overflow = 1
else Overflow = 0
else
if(R_addr - W_addr < DELTA)
Overflow = 1
else Overflow = 0
위의 알고리즘에서, W_addr은 마지막 기록 주소, R_addr은 마지막 독출 주소, DELTA는 유저가 설정할 수 있는 임계치, 및 N은 상기 레지스터 셀 수이다. 이와 같이, 상기 레지스터(830)의 언더-플로우 상태 및 오버-플로우 상태는 W_addr가 R_addr보다 큰 경우 또는 작은 경우에 상관없이, 상기 레지스터(830)에 기록된 마지막 기록 주소와 상기 레지스터(830)로부터 독출된 마지막 독출 주소의 차이가 일정 임계치(DELTA)보다 작은 경우이다.
상기 읽기 주소 카운터(850)는 상기 언더-플로우/오버-플로우 상태 검출기 (860) 출력(REQ1/REQ2/REQ3)이 언더-플로우 상태가 아닌 경우(REQ1/REQ2/REQ3이 "1"인 경우)를 나타낼 때 상기 출력 클럭 신호(CKO) 펄스를 카운트하여 상기 독출 주소를 생성하고, 상기 언더-플로우/오버-플로우 상태 검출기(860) 출력(REQ1/REQ2/REQ3)이 언더-플로우 상태라면 이전 주소를 유지한다(REQ1/REQ2/REQ3이 "0"인 경우). 이에 따라, 상기 언더-플로우 상태 검출기(860)의 상기 액티브된 버스 점유 요청 신호(REQ1/REQ2/REQ3)에 응답하여 상기 버스 아비터(510)가 버스 점유 허가 신호(GNT1/GNT2/GNT3)를 액티브시키면, 상기 읽기 주소 카운터(850)는 상기 생성된 독출 주소를 상기 먹스(840)로 출력하고, 이에 따라 상기 먹스(840)는 상기 레지스터(830)의 데이터 중 상기 독출 주소에 해당하는 데이터를 버스로 출력 한다. 상기 먹스(840)가 데이터를 버스로 출력할 때, 해당 채널의 준비 완료 신호(READY1/READY2/READY3)를 액티브시켜 버스 아비터(510)로 전달할 수 있다.
다시 말하여, 상기 언더-플로우/오버-플로우 상태 검출기(860) 출력(OF1/OF2/OF3)이 오버-플로우 상태가 아닌 경우(OF1/OF2/OF3이 "0"인 경우)를 나타내고, 상기 메모리(310)의 각 채널에 할당된 저장 영역이 언더-플로우 상태가 아니라면(UF1/UF2/UF3이 "0"인 경우), 상기 출력 선택부(421)가 상기 메모리(310)에 기록된 해당 채널 데이터를 상기 흐름 콘트롤 버퍼(425/426/427)로 출력한다. 이때, 상기 레지스터(830)의 언더-플로우가 아닐 때(REQ1/REQ2/REQ3이 "1"인 경우), 상기 버스 아비터(510)로부터 받는 버스 점유 허가에 따라, 상기 흐름 콘트롤 버퍼(425/426/427)는 상기 출력 선택부(421)로부터의 해당 채널 출력 데이터(DATAIN)를 오버-플로우 상태가 아닌 해당 흐름 콘트롤 버퍼(425/426/427)로 출력한다.
상기 출력 선택부(421)와 관련된 동작 설명을 위한 흐름도가 도 9에 도시되어 있다. 도 9에는 3비트의 상태 함수 ISTAE==0인 경우를 예로 들어 도시되어 있다. ISTAE는 상기 흐름 콘트롤 버퍼들(425~427) 각각이 생성하는 오버 플로우 신호들(OF1, OF2, OF3)의 3비트 로직 상태 함수이다. 도 9를 참조하면, 단계 S91에서,초기에는 상기 흐름 콘트롤 버퍼들(425~427)에 데이터가 없으므로 ISTAE==0으로 시작한다. 이때, 단계 S92에서, 제1 채널에 대하여 버스 아비터(510)로부터의 버스 점유 허가가 있고(GNT1==1), 단계 S93에서 상기 FIFO 메모리(310)의 제1 채널 영역이 언더-플로우 상태 아니라면(UF1==0), 상기 출력 선택부(421)는 제1 채널 오픈 신호(CH1ON)를 액티브시켜(Nstate=100), 상기 제1 채널 영역의 상기 FIFO 메모리 (310)의 데이터를 제1 흐름 콘트롤 버퍼(425)로 저장시킨다. 제1 흐름 콘트롤 버퍼(425)는 제1 준비 완료 신호(READY1)를 액티브시켜, 상기 FIFO 메모리(310)로부터 받은 데이터를 버스로 전달할 수 있다.
이와 같이, 정상적으로 UFIFO 메모리(310)의 데이터가 버스로 전달되다가, 전달될 더 이상의 데이터가 없는 경우에, 단계 S93에서 상기 FIFO 메모리(310)의 제1 채널 영역이 언더-플로우 상태로 바뀐다(UF1==1). 이때 전체적인 시스템 홀드(hold) 상태를 없애기 위하여, 단계 S94에서와 같이, 제2 채널 및 제 3 채널에 대하여 단계 S93과 같은 동작을 수행한다. 이에 따라, 상기 출력 선택부(421)는 제2 채널 오픈 신호(CH2ON) 또는 제3 채널 오픈 신호(CH3ON)를 액티브시켜(Nstate=010/001), 상기 FIFO 메모리(310)의 제1 또는 제2 채널 영역 데이터를 제2 또는 제3 흐름 콘트롤 버퍼(426/427)로 저장시킨다. 상기 FIFO 메모리(310)의 제1 채널, 제2 채널 및 제 3채널 영역 모두가 언더-플로우 상태라면, 이전 상태로 홀드 된다(Nstate=Nstate).
이와 같이, 본 발명에서는, 상기 흐름 콘트롤 버퍼들(425~427) 중 어느 하나가 상기 버스 점유 허가를 얻고, 상기 메모리(310)의 해당 채널 영역이 언더-플로우 상태라면, 상기 출력 선택부(421)의 제어에 따라 다른 흐름 콘트롤 버퍼로 상기 메모리(310)에 기록된 해당 채널 데이터를 저장하여, 상기 다른 흐름 콘트롤 버퍼가 버스 점유 허가를 받는 즉시 버스를 점유할 수 있도록 준비한다. 이에 따라, 상기 흐름 콘트롤 버퍼들(425~427)에 데이터의 준비 부족으로 인한 버스 처리량(throughput)이 떨어지는 것을 방지할 수 있다.
단계 S92에서, 제1 채널에 대하여 버스 아비터(510)로부터의 버스 점유 허가가 없고(GNT1==0), 제2 채널 또는 제2 채널에 버스 점유 허가가 있는 경우에(GNT1/GNT2==1), 단계 S95 내지 S100에서는 상기 단계 S93 및 상기 단계 S94와 유사하게 동작한다.
한편, 단계 S92, S95, 및 S98에서 모두 버스 점유 허가가 없는 경우에(GNT1==0, GNT2==0, GNT3==0,), 단계 S101에서, 상기 FIFO 메모리(310)의 제1 채널 영역이 언더-플로우 상태 아니라면(UF1==0), 상기 출력 선택부(421)는 제1 채널 오픈 신호(CH1ON)를 액티브시켜(Nstate=100), 상기 제1 채널 영역의 상기 FIFO 메모리(310)의 데이터를 제1 흐름 콘트롤 버퍼(425)로 저장시킨다. 제1 흐름 콘트롤 버퍼(425)는 제1 준비 완료 신호(READY1)를 액티브시켜, 상기 FIFO 메모리(310)로부터 받은 데이터를 버스로 전달할 수 있다.
이와 같이, 정상적으로 UFIFO 메모리(310)의 데이터가 버스로 전달되다가, 전달될 더 이상의 데이터가 없는 경우에, 단계 S101에서 상기 FIFO 메모리(310)의 제1 채널 영역이 언더-플로우 상태로 바뀐다(UF1==1). 이때 전체적인 시스템 홀드(hold) 상태를 없애기 위하여, 단계 S102 및 S103에서와 같이, 제2 채널 및 제 3 채널에 대하여 단계 S101과 같은 동작을 수행한다. 이에 따라, 상기 출력 선택부(421)는 제2 채널 오픈 신호(CH2ON) 또는 제3 채널 오픈 신호(CH3ON)를 액티브시켜(Nstate=010/001), 상기 FIFO 메모리(310)의 제1 또는 제2 채널 영역 데이터를 제2 또는 제3 흐름 콘트롤 버퍼(426/427)로 저장시킨다. 이때, 상기 FIFO 메모리(310)의 제1 채널, 제2 채널 및 제 3채널 영역 모두가 언더-플로우 상태라면, 이전 상태 로 홀드 된다(Nstate=Nstate).
이와 같이, 본 발명에서는, 상기 흐름 콘트롤 버퍼들(425~427) 중 어느 하나가 상기 버스 점유 허가를 얻지 못하더라도, 상기 출력 선택부(421)의 제어에 따라 다른 흐름 콘트롤 버퍼로 상기 메모리(310)에 기록된 해당 채널 데이터를 저장하여, 상기 다른 흐름 콘트롤 버퍼가 버스 점유 허가를 받는 즉시 버스를 점유할 수 있도록 준비한다. 이에 따라서, 상기 흐름 콘트롤 버퍼들(425~427)에 데이터의 준비 부족으로 인한 버스 처리량(throughput)이 떨어지는 것을 방지할 수 있다.
단계 S91에서, ISTAE==0이 아닌 경우에도, 상기 단계들 S92~S103과 유사하게 동작하여, 상기 통합 FIFO 메모리(310)의 언더-플로우 상태 시, 또는 상기 흐름 콘트롤 버퍼들(425~427)이 버스 점유 허가를 받든지 받지 못하든지 상관없이 데이터를 미리 채웠다가, 버스 점유 허가를 받는 즉시 버스로 전달될 수 있도록 준비한다. 또한, 이때에는, 상기 흐름 콘트롤 버퍼들(425~427) 중 어느 하나가 이상이 오버-플로우 상태인 경우이므로, 상기 출력 선택부(421)의 제어에 따라 상기 메모리(310)로부터의 해당 채널 데이터가 오버-플로우 상태가 아닌 흐름 콘트롤 버퍼(425/426/427)로 저장될 것이다.
위에서 기술한 바와 같이, 본 발명의 일실시예에 따른 동기화기(300)에서는, 메모리(310)가 콘트롤러(320)의 제어에 따라 다중-레이트 입력 데이터를 받아 하나의 시스템 동작 주파수로 변환된 다수의 해당 데이터를 출력한다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 다중-레이트 입력 데이터의 동기화기에서는, SPSRAM 1개를 사용하여 비동기적인(asynchronous) 다수의 입력 신호들을 시스템 동작 주파수로 변환하므로, 채널별로 하나씩 DPSRAM을 사용하는 종래 방식에 비하여 SOC 전체 칩 사이즈를 줄일 수 있다. 또한, 상기 동기화기에서는 통합 FIFO 메모리의 언더-플로우 상태 시, 또는 버스 점유 허가 받기 전 어느 때라도, 주파수 변환된 출력 데이터가 흐름 콘트롤 버퍼에 미리 저장되므로, 버스의 처리량(throughput)을 증가시키는 효과가 있다.

Claims (30)

  1. 메모리; 및
    상기 메모리의 입출력을 제어하는 콘트롤러를 구비하고,
    상기 콘트롤러는 상기 메모리가 다중-레이트 입력 데이터를 받아 일정 값을 갖는 하나의 시스템 동작 주파수로 변환된 다수의 해당 채널 데이터를 출력하도록 제어하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  2. 제 1항에 있어서, 상기 메모리는 SPSRAM인 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  3. 제 1항에 있어서, 상기 메모리는 FIFO 타입인 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  4. 메모리;
    적어도 2개 이상의 다중-레이트 입력 데이터를 받아 일정 값을 갖는 시스템의 동작 주파수로 변환된 다수의 해당 채널 데이터가 상기 메모리에 기록되도록 제어하는 입력 콘트롤부; 및
    외부의 버스 중재에 따라 상기 메모리에 기록된 데이터가 상기 시스템 동작 주파수로 출력되도록 제어하는 출력 콘트롤부를 구비하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  5. 제 4항에 있어서, 상기 입력 콘트롤부는,
    상기 다중-레이트의 각 채널 입력 데이터를 받아 상기 일정 동작 주파수로 변환하여 출력하는 샘플링 주파수 변환기들; 및
    상기 샘플링 주파수 변환기들 각각이 출력하는 채널 데이터에 대하여 상기 본래의 각 입력 데이터의 레이트에 비례하게 시간 구간을 배분하여 해당 채널 데이터를 상기 메모리로 출력하는 입력 선택부를 포함하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  6. 제 5항에 있어서, 상기 샘플링 주파수 변환기들이,
    내부 레지스터의 언더-플로우가 아닐 때, 상기 일정 동작 주파수로 변환된 데이터를 출력하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  7. 제 6항에 있어서, 상기 샘플링 주파수 변환기들의 내부 레지스터는 FIFO 타입이고, 상기 내부 레지스터의 언더-플로우 상태는 상기 내부 레지스터에 기록된 마지막 부분의 주소와 상기 내부 레지스터로부터 독출된 마지막 부분의 주소의 차이가 일정 이하인 경우인 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  8. 제 5항에 있어서, 상기 입력 선택부는,
    상기 배분된 시간 구간 동안 한번씩 최고 우선 순위로 해당 채널 데이터를 상기 메모리로 출력하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  9. 제 4항에 있어서, 상기 출력 콘트롤부는,
    출력 경로 상의 오버-플로우 및 언더-플로우 상태를 기반으로 상기 메모리에 기록된 다수의 채널 데이터의 채널별 출력을 선택하여 출력하는 출력 선택부; 및
    상기 버스 중재에 따라 상기 메모리 및 상기 출력 선택부를 통하여 출력되는 각 채널별 출력을 임시 저장하고, 상기 임시 저장된 각 채널 데이터를 상기 버스 중재에 따라 상기 일정 동작 주파수로 출력하는 적어도 2개 이상의 흐름 콘트롤 버퍼들을 포함하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  10. 제 9항에 있어서, 상기 출력 선택부는,
    상기 흐름 콘트롤 버퍼들 중 어느 하나가 오버-플로우 상태가 아니고, 상기 메모리의 해당 채널 영역이 언더-플로우 상태가 아니라면, 상기 메모리에 기록된 해당 채널 데이터를 상기 오버-플로우 상태가 아닌 흐름 콘트롤 버퍼로 출력하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  11. 제 9항에 있어서, 상기 흐름 콘트롤 버퍼들은,
    내부 레지스터의 언더-플로우가 아닐 때 버스 점유를 요청하고, 이에 응답하 여 버스 점유 허가를 얻으면 해당 채널 데이터를 상기 버스로 출력하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  12. 제 11항에 있어서, 상기 흐름 콘트롤 버퍼들의 내부 레지스터는 FIFO 타입이고, 상기 내부 레지스터의 언더-플로우 및 오버-플로우 상태는 상기 내부 레지스터에 기록된 마지막 부분의 주소와 상기 내부 레지스터로부터 독출된 마지막 부분의 주소의 차이를 기반으로 결정되는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  13. 제 11항에 있어서, 상기 흐름 콘트롤 버퍼들 중 어느 하나가 상기 버스 점유 허가를 얻고, 상기 메모리의 해당 채널 영역이 언더-플로우 상태라면, 상기 출력 선택부의 제어에 따라 다른 흐름 콘트롤 버퍼로 상기 메모리에 기록된 해당 채널 데이터를 저장하여, 상기 다른 흐름 콘트롤 버퍼가 버스 점유 허가를 받는 즉시 버스를 점유할 수 있도록 준비하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  14. 제 11항에 있어서, 상기 흐름 콘트롤 버퍼들 중 어느 하나가 상기 버스 점유 허가를 얻지 못하더라도, 상기 출력 선택부의 제어에 따라 다른 흐름 콘트롤 버퍼로 상기 메모리에 기록된 해당 채널 데이터를 저장하여, 상기 다른 흐름 콘트롤 버퍼가 버스 점유 허가를 받는 즉시 버스를 점유할 수 있도록 준비하는 것을 특징으 로 하는 다중-레이트 입력 데이터의 동기화기.
  15. 제 5항에 있어서, 상기 샘플링 주파수 변환기들 각각은,
    해당 채널의 입력 클럭 신호의 펄스를 카운트하여 기록 주소를 생성하는 제1 카운터;
    상기 기록 주소를 상기 일정 동작 주파수로 변환하는 주파수 변환기;
    해당 채널의 입력 데이터를 상기 기록 주소로 출력하는 디먹스;
    상기 기록 주소에 해당 데이터를 저장하는 레지스터;
    독출 주소와 상기 변환된 기록 주소를 기반으로 상기 레지스터의 언더-플로우 상태를 감시하는 상태 검출기;
    상기 상태 검출기 출력이 언더-플로우 상태가 아닌 경우를 나타낼 때 상기 일정 동작 주파수의 클럭 신호 펄스를 카운트하여 상기 독출 주소를 생성하고, 상기 상태 검출기 출력이 언더-플로우 상태라면 이전 주소를 유지하는 제2 카운터; 및
    상기 레지스터의 데이터 중 상기 독출 주소에 해당하는 데이터를 출력하는 먹스를 포함하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  16. 제 9항에 있어서, 상기 흐름 콘트롤 버퍼들 각각은,
    상기 일정 동작 주파수의 클럭 신호 펄스를 카운트하여 기록 주소를 생성하는 제1 카운터;
    해당 채널 출력 데이터를 상기 기록 주소로 출력하는 디먹스;
    상기 기록 주소에 해당 데이터를 저장하는 레지스터;
    독출 주소와 상기 기록 주소를 기반으로 상기 레지스터의 언더-플로우 상태 및 오버 플로우 상태를 감시하는 상태 검출기;
    상기 상태 검출기 출력이 언더-플로우 상태가 아닌 경우를 나타낼 때 상기 일정 동작 주파수의 클럭 신호 펄스를 카운트하여 상기 독출 주소를 생성하고, 상기 상태 검출기 출력이 언더-플로우 상태라면 이전 주소를 유지하는 제2 카운터; 및
    상기 레지스터의 데이터 중 상기 독출 주소에 해당하는 데이터를 출력하는 먹스를 포함하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  17. 제 16항에 있어서, 상기 출력 선택부는,
    상기 상태 검출기 출력이 오버-플로우 상태가 아닌 경우를 나타내고, 상기 메모리의 언더-플로우 상태가 아니라면, 상기 메모리에 기록된 해당 채널 데이터를 상기 오버-플로우 상태가 아닌 흐름 콘트롤 버퍼로 출력하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화기.
  18. 적어도 2개 이상의 채널로부터 다중-레이트 입력 데이터를 수신하는 단계;
    상기 다중-레이트 입력 데이터를 일정 값을 갖는 하나의 시스템 동작 주파수로 변환하는 단계;
    상기 변환된 채널 데이터를 하나의 메모리에 기록하는 단계; 및
    외부의 버스 중재에 따라 상기 메모리에 기록된 채널별 데이터를 상기 일정 동작 주파수로 출력하는 단계를 구비하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  19. 제 18항에 있어서, 상기 메모리는 SPSRAM인 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  20. 제 18항에 있어서, 상기 메모리는 FIFO 타입인 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  21. 제 18항에 있어서, 상기 변환에 이용되는 레지스터의 언더-플로우 상태가 아닐 때, 상기 변환된 데이터가 상기 메모리로 전송되는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  22. 제 21항에 있어서, 상기 레지스터는 FIFO 타입이고, 상기 레지스터의 언더-플로우 상태는 상기 레지스터에 기록된 마지막 부분의 주소와 상기 레지스터로부터 독출된 마지막 부분의 주소의 차이가 일정 이하인 경우인 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  23. 제 18항에 있어서, 상기 변환된 각 채널 데이터에 대하여 상기 본래의 입력 데이터의 레이트에 비례하게 시간 구간을 배분하여 해당 채널 데이터를 상기 메모리로 출력하는 단계를 더 포함하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  24. 제 23항에 있어서, 상기 배분된 시간 구간 동안 한번씩 최고 우선 순위로 해당 채널 데이터를 상기 메모리로 출력하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  25. 제 18항에 있어서, 상기 출력 단계는,
    출력 경로 상의 오버-플로우 및 언더-플로우 상태를 기반으로 상기 메모리에 기록된 다수의 채널 데이터의 채널별 출력을 선택하는 단계; 및
    상기 버스 중재 및 상기 선택에 따라 상기 메모리로부터의 각 채널별 출력을 버퍼들에 임시 저장하는 단계; 및
    상기 임시 저장된 각 채널 데이터를 상기 일정 동작 주파수로 상기 버스에 출력하는 단계를 포함하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  26. 제 25항에 있어서, 상기 버퍼들 중 하나가 오버-플로우 상태가 아니고, 상기 메모리의 해당 채널 영역이 언더-플로우 상태가 아니라면, 상기 메모리에 기록된 해당 채널 데이터를 상기 오버-플로우 상태가 아닌 버퍼로 출력하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  27. 제 25항에 있어서, 상기 버퍼들은,
    내부 레지스터의 언더-플로우가 아닐 때 버스 점유를 요청하고, 이에 응답하여 버스 점유 허가를 얻으면 해당 채널 데이터를 상기 버스로 출력하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  28. 제 27항에 있어서, 상기 버퍼들의 내부 레지스터는 FIFO 타입이고, 상기 내부 레지스터의 언더-플로우 및 오버-플로우 상태는 상기 내부 레지스터에 기록된 마지막 부분의 주소와 상기 내부 레지스터로부터 독출된 마지막 부분의 주소의 차이를 기반으로 결정되는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  29. 제 27항에 있어서, 상기 흐름 콘트롤 버퍼들 중 어느 하나가 상기 버스 점유 허가를 얻고, 상기 메모리의 해당 채널 영역이 언더-플로우 상태라면, 다른 버퍼로 상기 메모리에 기록된 해당 채널 데이터를 저장하여, 상기 다른 버퍼가 버스 점유 허가를 받는 즉시 버스를 점유할 수 있도록 준비하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
  30. 제 27항에 있어서, 상기 버퍼들 중 어느 하나가 상기 버스 점유 허가를 얻지 못하더라도, 다른 버퍼로 상기 메모리에 기록된 해당 채널 데이터를 저장하여, 상기 다른 버퍼가 버스 점유 허가를 받는 즉시 버스를 점유할 수 있도록 준비하는 것을 특징으로 하는 다중-레이트 입력 데이터의 동기화 방법.
KR1020050073730A 2005-08-11 2005-08-11 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법 KR100723496B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020050073730A KR100723496B1 (ko) 2005-08-11 2005-08-11 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법
US11/502,036 US20070036022A1 (en) 2005-08-11 2006-08-10 Synchronizer for multi-rate input data using unified first-in-first-out memory and method thereof
CNA2006101431857A CN1945522A (zh) 2005-08-11 2006-08-11 多速率输入数据的同步装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050073730A KR100723496B1 (ko) 2005-08-11 2005-08-11 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법

Publications (2)

Publication Number Publication Date
KR20070019807A KR20070019807A (ko) 2007-02-15
KR100723496B1 true KR100723496B1 (ko) 2007-06-04

Family

ID=37742373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050073730A KR100723496B1 (ko) 2005-08-11 2005-08-11 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법

Country Status (3)

Country Link
US (1) US20070036022A1 (ko)
KR (1) KR100723496B1 (ko)
CN (1) CN1945522A (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006041306A1 (de) * 2006-09-01 2008-03-20 Micronas Gmbh Speicherverwaltungs-Schaltungsanordnung und Speicherverwaltungsverfahren
US8249171B2 (en) * 2006-11-10 2012-08-21 Texas Instruments Incorporated MPEG-2 transport stream packet synchronizer
US8111767B2 (en) * 2007-05-31 2012-02-07 Renesas Electronics Corporation Adaptive sliding block Viterbi decoder
KR101586844B1 (ko) 2010-01-06 2016-02-02 삼성전자주식회사 영상 처리 장치 및 방법
CN101883273B (zh) * 2010-06-12 2013-08-21 北京国科环宇空间技术有限公司 数字信号分解时的同步方法
US20130066451A1 (en) * 2011-09-14 2013-03-14 Aravind Na Ganesan System and method for mitigating frequency mismatch in a receiver system
US9893999B2 (en) 2013-11-26 2018-02-13 Macom Connectivity Solutions, Llc Multiple datastreams processing by fragment-based timeslicing
US9781039B2 (en) * 2013-12-06 2017-10-03 Macom Connectivity Solutions, Llc Times-sliced design segmentation
US9389906B2 (en) * 2013-12-23 2016-07-12 Intel Corporation Latency agnostic transaction buffer for request-grant protocols
CN103685961B (zh) * 2013-12-24 2017-01-25 南京理工大学 一种利用单片sram实现视频数据同步实时处理的系统
US9367491B2 (en) * 2013-12-31 2016-06-14 Global Unichip, Corp. Method and apparatus for on-the-fly learning traffic control scheme
CN108614793A (zh) * 2016-12-12 2018-10-02 上海诺基亚贝尔股份有限公司 一种转换数据的器件和设备
CN108121679B (zh) * 2017-08-07 2021-01-01 鸿秦(北京)科技有限公司 一种嵌入式SoC系统总线及其协议转换桥接装置
US10476656B2 (en) * 2018-04-13 2019-11-12 DeGirum Corporation System and method for asynchronous, multiple clock domain data streams coalescing and resynchronization
US10691632B1 (en) 2019-03-14 2020-06-23 DeGirum Corporation Permutated ring network interconnected computing architecture
CN112540642B (zh) * 2020-11-27 2023-09-05 山东云海国创云计算装备产业创新中心有限公司 一种多时钟域处理方法、装置、设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040019335A (ko) * 2001-07-18 2004-03-05 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 다중프로세서 디바이스 및 동기화 최적화 방법 및 액세스제어 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255374A (en) * 1992-01-02 1993-10-19 International Business Machines Corporation Bus interface logic for computer system having dual bus architecture
US5451942A (en) * 1994-02-04 1995-09-19 Digital Theater Systems, L.P. Method and apparatus for multiplexed encoding of digital audio information onto a digital audio storage medium
JP3717551B2 (ja) * 1995-08-31 2005-11-16 株式会社日立製作所 ディスクアレイシステム
US5818769A (en) * 1996-11-26 1998-10-06 Tweed; David B. Dynamically variable digital delay line
US5781480A (en) * 1997-07-29 1998-07-14 Motorola, Inc. Pipelined dual port integrated circuit memory
US6185635B1 (en) * 1998-05-30 2001-02-06 Alcatel Networks Corporation Method and circuit for transporting data based on the content of ingress data words and egress data words
US7162564B2 (en) * 2002-07-09 2007-01-09 Intel Corporation Configurable multi-port multi-protocol network interface to support packet processing
US7089412B2 (en) * 2003-01-17 2006-08-08 Wintec Industries, Inc. Adaptive memory module

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040019335A (ko) * 2001-07-18 2004-03-05 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 다중프로세서 디바이스 및 동기화 최적화 방법 및 액세스제어 방법

Also Published As

Publication number Publication date
CN1945522A (zh) 2007-04-11
KR20070019807A (ko) 2007-02-15
US20070036022A1 (en) 2007-02-15

Similar Documents

Publication Publication Date Title
KR100723496B1 (ko) 통합 fifo 메모리를 사용하는 다중-레이트 입력데이터의 동기화기 및 방법
US7269709B2 (en) Memory controller configurable to allow bandwidth/latency tradeoff
JP3898899B2 (ja) バスシステム
TWI443675B (zh) 記憶體系統以及存取記憶體之方法
KR101557090B1 (ko) 이종 소스들에 대한 계층적인 메모리 중재 기법
US8166237B1 (en) Configurable allocation of thread queue resources in an FPGA
US6493818B2 (en) Technique for pipelining synchronization to maintain throughput across two asynchronous clock domain boundaries
US9684633B2 (en) Adaptive service controller, system on chip and method of controlling the same
US20130054901A1 (en) Proportional memory operation throttling
US20100198936A1 (en) Streaming memory controller
US6920510B2 (en) Time sharing a single port memory among a plurality of ports
EP3076305A1 (en) Semiconductor device
US20050091554A1 (en) Event time-stamping
US6415367B1 (en) Apparatus for reducing asynchronous service latency in a time slot-based memory arbitration scheme
US20090216960A1 (en) Multi Port Memory Controller Queuing
JP2004517413A (ja) 異なるリソースアクセス方式を有するシステム統合エージェント
US20040199706A1 (en) Apparatus for use in a computer systems
US6363461B1 (en) Apparatus for memory resource arbitration based on dedicated time slot allocation
KR101420290B1 (ko) 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템
JP2005316609A (ja) バス調停装置およびバス調停方法
US6412049B1 (en) Method for minimizing CPU memory latency while transferring streaming data
US6715042B1 (en) Systems and methods for multiport memory access in a multimaster environment
US6094696A (en) Virtual serial data transfer mechanism
US10146434B1 (en) FIFO systems and methods for providing access to a memory shared by multiple devices
US9343124B1 (en) Method and system for operating a multi-port memory system

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
G170 Re-publication after modification of scope of protection [patent]
LAPS Lapse due to unpaid annual fee