KR101168095B1 - 광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치 - Google Patents

광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치 Download PDF

Info

Publication number
KR101168095B1
KR101168095B1 KR1020050116009A KR20050116009A KR101168095B1 KR 101168095 B1 KR101168095 B1 KR 101168095B1 KR 1020050116009 A KR1020050116009 A KR 1020050116009A KR 20050116009 A KR20050116009 A KR 20050116009A KR 101168095 B1 KR101168095 B1 KR 101168095B1
Authority
KR
South Korea
Prior art keywords
transmission
address
data
reception
area
Prior art date
Application number
KR1020050116009A
Other languages
English (en)
Other versions
KR20070056864A (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 KR1020050116009A priority Critical patent/KR101168095B1/ko
Priority to US11/606,354 priority patent/US7746871B2/en
Publication of KR20070056864A publication Critical patent/KR20070056864A/ko
Application granted granted Critical
Publication of KR101168095B1 publication Critical patent/KR101168095B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Abstract

본 발명은 광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치를 제공한다.
이러한 본 발명에 따른 통신 시스템에서 송신 데이터와 수신 데이터를 구별하여 선입선출력 동작하는 메모리 사용 방법은, 마지막 송신 어드레스를 레지스터로부터 수신하는 과정과, L개의 어드레스를 가지는 하나의 메모리 모듈을, 상기 L개와 같거나 작은 수인 M개의 어드레스를 가지는 송신 영역과 상기 L-M개의 어드레스를 가지는 수신 영역으로 구별하는 과정과, 상기 메모리 모듈의 첫번째 어드레스부터 상기 마지막 송신 어드레스까지를 상기 송신 영역으로 할당하는 제1 할당 과정과, 상기 마지막 송신 어드레스에 1 증가한 어드레스부터 상기 메모리 모듈의 마지막 어드레스까지를 상기 수신 영역으로 할당하는 제2 할당 과정을 포함한다.
Figure R1020050116009
Wide-band stereo codec, FIFO, DPRAM

Description

광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치{METHOD AND APPARATUS FOR COMMUNICATION USING TX/RX FIFO IN A WIDE-BAND STEREO CODEC INTERFACE}
도 1은 종래 기술에 따라 고정되고 나누어진 송신 FIFO와 수신 FIFO 방식의 코덱 인터페이스의 구조를 도시한 도면.
도 2는 본 발명의 바람직한 실시 예에 따른 송수신 FIFO를 포함하는 코덱 인터페이스의 구조를 도시한 도면.
도 3은 본 발명의 바람직한 실시 예에 따른 송수신 FIFO와 제어 로직의 동작 절차를 도시한 도면.
도 4는 본 발명의 바람직한 실시 예에 따른 코덱 인터페이스의 인터럽트 발생을 도시한 도면.
도 5는 본 발명의 바람직한 실시 예에 따른 송수신 FIFO의 쓰기 및 읽기 어드레싱 동작을 도시한 도면.
도 6은 본 발명의 바람직한 실시 예에 따른 송수신 FIFO의 송수신 어드레싱 동작을 도시한 신호 흐름도.
본 발명은 통신 시스템에 관한 것으로서, 특히 이동 통신 칩에서 음성 및 오디오 정보를 처리하는 코덱 인터페이스의 송신 및 수신 데이터 통신 방법 및 장치에 관한 것이다.
일반적으로, 광대역 스테레오 코덱은 이동통신 시스템에서 수신 장치(일 예로, 단말기)로 입력된 수신 음성 및 오디오 정보 즉, 수신 아날로그 신호를 디지털로 바꾸는 아날로그 디지털 컨버터(analog to digital converter, 이하 ADC라 칭함)와, 음성 및 오디오 신호 출력하는 경우, 디지털 신호를 아날로그로 바꿔주는 디지털 아날로그 컨버터(digital to analog converter, 이하 DAC라 칭함)를 포함하는 장치들을 포함한다. 또한 상기 음성 및 오디오 정보에 대하여 부호화 및 복호화를 수행하는 장치를 더 포함한다.
상기와 같은 광대역 스테레오 코덱은 코덱 인터페이스부와 연결되어 상기 수신 장치내에 구비되는 다른 하드웨어 블록들로부터 송수신되는 데이터를 주고받는다. 이때, 상기 코덱 인터페이스부는 송신 데이터를 저장하는 송신 FIFO 메모리와, 수신 데이터를 저장하는 수신 FIFO 메모리를 구비하여 상기 광대역 스테레오 코덱과 음성 및 오디오 정보와 관련된 데이터를 송수신하게 된다.
이와 관련하여 도 1은 종래 기술에 따라 고정된 송신 FIFO 메모리와 수신 FIFO 메모리를 구비하여 광대역 스테레오 코텍과 연결되어 데이터를 송수신을 수행하는 FIFO 구조를 도시한 도면이다.
도 1을 참조하면, 종래의 코덱 인터페이스부(130)의 FIFO 구조는, 송신 FIFO 메모리(135)과 수신 FIFO 메모리(140)을 서로 구별하여 나누어 사용하는 구조이다. 그리고, 상기 정해진 크기를 가지는 송신 FIFO(135)과 수신 FIFO(140)를 통해 광대역 스테레오 코덱(1150와 인터페이스를 수행한다. 즉, 상기 송신 FIFO 메모리(135)와, 수신 FIFO 메모리(140)를 하드웨어적으로 분리되어 있다. 또한, 주문형 반도체(ASIC: APPLICATION SPECIFIC INTEGRATED CIRCUIT) 설계시에 상기 송신 FIFO 메모리(135)와 수신 FIFO 메모리(140)는 정해진 메모리 용량을 사용하여 인터페이스 동작을 수행한다.
다시 설명하며, 코덱 인터페이스부(130)는 상기 송신 FIFO 메모리(135)를 사용하여 송신 데이터의 흐름을 제어하고, 상기 수신 FIFO 메모리(140)을 사용하여 수신 데이터 흐름을 제어하는 방식을 사용한다.
이에 따른 광대역 스테레오 코덱(115)과 코덱 인터페이스부(130)로 음성 및 오디오 정보를 송수신하는 절차는 아래와 같다.
음성 및 오디오 정보를 송신 시, 발생한 음성 및 오디오 정보는 주변 하드웨어칩 사이에 정보 전달 전송 통로인 버스(145)를 통해 코덱 인터페이스부(130)의 송신 FIFO 메모리(135)로 입력 된다. 상기 송신 FIFO 메모리(135)는 순차적으로 입력되는 음성 및 오디오 정보를 순차적으로 저장한다. 상기 송신 FIFO(135)에 저장된 음성 및 오디오 정보는 광대역 스테레오 코덱(115)으로 순차적으로 전송되고, DAC(120)를 통해 아날로그 음성 및 오디오 신호로 변환된다. 그 후 아날로그 음성 및 오디오 신호는 스피커(105)를 통해 무선 상으로 출력된다.
한편, 음성 및 오디오 정보를 수신 시, 마이크(microphone)(110)을 통해 입력되는 아날로그 신호는 상기 광대역 스테레오 코덱(115)내의 ADC(125)를 거쳐서 디지털로 변환된 디지털 데이터를 출력한다. 코덱 인터페이스부(130)의 수신 FIFO 메모리(140)는 순차적으로 입력되는 디지털 데이터를 순차적으로 저장한다. 상기 디지털 형태의 음성 및 오디오 정보는 버스(145)를 통하여 다른 하드웨어 장치로 전달된다
상기된 바와 같이 종래 기술에서 코덱 인터페이스부(130)는 고정된 크기를 가지며, 하드웨어로 분리된 송신 FIFO 메모리(135)와 수신 FIFO 메모리(140)를 사용하여 음성 및 오디오 정보를 송신하고, 수신하는 동작을 수행한다. 곧, 송신을 위한 메모리(135)와 수신을 위한 메모리(140) 즉, 적어도 2개의 FIFO들을 구비한다. 이에 따라 종래 기술에 따라 이동통신 칩은 최소한 2개의 듀얼 포트 램(DPRAM:Dual-Port Random Access Memory)이 필요로 한다.
이와 관련하여 일반적으로, 반도체 공정상에서 메모리의 개수가 많아질수록, 테스트를 위한 디자인(DFT: Design For Test) 로직(logic)이 커진다. 이는 곧, 레이아웃(layout) 및 와이어링(wiring) 노력이 늘어남을 의미한다. 따라서, 상기 서로 구별되는 DPRAM이 2개인 것은 불필요한 공정 지연을 발생시킨다.
또한, 종래 기술에 따른 코덱 인터페이스부는 정해진 용량의 송신 FIFO 메모리와 정해진 용량의 수신 FIFO 메모리를 무조건 구별하여 사용함에 따라 하드웨어 측면에서 정해진 크기를 가지는 문제점이 있다.
또한, 정해진 용량의 송신 메모리 또는 수신 메모리만을 가지기 때문에, 일 예로 음성 및 오디오 정보가 많은 경우 송신 FIFO는 정해진 용량 만큼만을 저장하고, 대기하는 문제점을 가진다.
따라서 상기한 바와 같이 동작되는 종래 기술의 문제점을 해결하기 위하여 창안된 본 발명은, 광대역 스테레오 코덱 인터페이스부에서의 송수신 선입선출부(FIFO)의 크기를 조정 가능한 하나의 FIFO로 구현하여 전송하는 방법 및 장치를 제공한다.
본 발명은, 광대역 스테레오 코덱 인터페이스부에서의 고정되고 나누어진 송수신 선입 선출부를 통합하고, 조정 가능한 가변 길이 선입선출부 구조를 구현함으로써 어플리케이션에 따른 선입선출부 활용을 효율적으로 하는 방법 및 장치를 제공한다.
본 발명에 따른 송수신 선입선출 메모리를 이용하여 데이터를 송수신하는 광대역 스테레오 코덱 인터페이스부는, 광대역 스테레오 코덱과 음성 및 오디오 데이터 중 적어도 하나를 송수신하며, 송신 신호를 위한 어드레스 및 제어신호와, 수신 신호를 위한 어드레스 및 제어신호와 쓰기 데이터 신호를 발생하는 제1 인터페이스 로직부와, 상기 제1 인터페이스 로직부로부터 전달되는 상기 송신 신호 및 상기 수신 신호 중 하나를 토글신호에 따라 번갈아가며 출력하는 다중화기와, 미리 설정된 마지막 송신 어드레스로 구분되는 송신 영역 및 수신 영역으로 구성되며, 상기 다중화기로부터 출력되는 송수신신호에 따라 상기 송신 영역 및 수신 영역마다 읽기/쓰기를 수행하여, 송신할 읽기데이터는 상기 제1 인터페이스부로 전달하고, 수신한 읽기 데이터를 출력하는 송수신 선입선출 메모리부와, 상기 송수신 선입선출 메모리부로부터 상기 수신한 읽기 데이터를 전달받아 CPU로 전달하고, 상기 CPU로부터 전달받은 데이터를 쓰기 데이터로서 해당하는 제어신호 및 어드레스 신호와 함께 상기 송수신 선입선출 메모리부로 전달하는 제2 인터페이스 로직부를 포함하며, 상기 제1 인터페이스 로직부와 상기 제2 인터페이스 로직부는, 상기 송신 영역 및 상기 수신 영역 중 적어도 하나가 가득차거나 또는 비어가는 경우의 데이터 개수를 나타내는 파라미터값들을 저장하고 있는 제어 레지스터들을 구비하며, 상기 제1 내지 제2 인터페이스 로직부에 각각 입력되는 읽기 데이터들이 상기 각 파라미터 값에 도달하면 상기 각 파라미터 값에 따른 인터럽트 신호를 상기 CPU로 발생시키는 것을 특징으로 한다.
또한 본 발명에 따른 광대역 스테레오 코덱 인터페이스부 내에서 송수신 선입선출 메모리를 이용하여 데이터를 송수신하는 방법은, 입력된 신호가 송신 데이터인 경우, 상기 송신 데이터를 상기 송수신 선입선출 메모리의 어드레스 0부터 미리 설정된 마지막 송신 어드레스까지 저장하고, 상기 마지막 송신 어드레스 이후, 상기 어드레스 0부터 다시 저장하는 과정과, 상기 송신 데이터의 저장된 어드레스 순서에 대응하여 송신 데이터를 출력하는 과정과, 상기 입력된 신호가 수신 데이터인 경우, 상기 수신 데이터를 상기 송수신 선입선출 메모리의 마지막 어드레스부터 상기 마지막 송신 어드레스+1까지 저장하고, 상기 마지막 송신 어드레스+1 이후, 상기 마지막 어드레스부터 다시 저장하는 과정과, 상기 수신 데이터의 저장된 어드레스 순서에 대응하여 상기 수신 데이터를 읽기 데이터로 출력하는 과정을 포함한다.
또한 본 발명에 따른 통신 시스템에서 선입선출 방식을 이용하여 송수신 데이터를 통신하는 코덱 인터페이스부는, 상기 선입선출 방식에 따라, 송신 데이터를 저장하고 출력하는 송신 영역과 수신 데이터를 저장하고 출력하는 수신 영역이 공존하는 하나의 메모리 모듈과, 상기 송신 영역과 상기 수신 영역을 구별하고, 상기 송신 데이터의 양에 따라 가변적인 경계값을 제공하는 레지스터를 포함한다.
또한 본 발명에 따른 통신 시스템에서 송신 데이터와 수신 데이터를 구별하여 선입선출력 동작하는 메모리 사용 방법은, 마지막 송신 어드레스를 레지스터로부터 수신하는 과정과, L개의 어드레스를 가지는 하나의 메모리 모듈을, 상기 L개와 같거나 작은 수인 M개의 어드레스를 가지는 송신 영역과 L-M개의 어드레스를 가지는 수신 영역으로 구별하는 과정과, 상기 메모리 모듈의 첫번째 어드레스부터 상기 마지막 송신 어드레스까지를 상기 송신 영역으로 할당하는 제1 할당 과정과, 상기 마지막 송신 어드레스에 1 증가한 어드레스부터 상기 메모리 모듈의 마지막 어드레스까지를 상기 수신 영역으로 할당하는 제2 할당 과정을 포함한다.
이하 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐를 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하 본 발명은 통신시스템에서, 음성 및 오디오 정보를 송신 및 수신함에 있어서 송신 정보의 양 및 수신 정보의 양에 따라 가변적으로 메모리 영역을 사용하는 방안을 제안한다. 특히, 광대역 스테레오 코덱을 구비하여 통신을 수행하는 이동통신 시스템에서, 송신 및 수신 데이터를 처리함에 따라 보다 효율적인 FIFO 구조의 메모리 사용 방안을 제안한다.
이러한 본 발명은 상기 코덱과 연결되어 통신을 수행하는 코덱 인터페이스부가 하나의 FIFO 모듈을 구비하여 송신 데이터와 수신 데이터에 대한 쓰기 동작 및 읽기 동작을 수행함을 특징으로 한다. 한다. 또한, 상기 FIFO 모듈에서 송신 메모리 영역과 수신 메모리 영역을 발생한 데이터의 성격 및 양에 따라 가변적으로 조정 가능하도록 설정하는 방안을 제안한다.
이하, 본 명세서에서는 이동통신 단말기내의 광대역 스테레오 코덱 인터페이스부에서의 FIFO를 실시 예로서 설명하고 있다. 그러나, 본 발명은 통신 시스템에서 사운드나 동영상 데이터의 입출력을 위한 FIFO 메모리를 사용하는 컴퓨터나, 상기 입력과 출력이 동시에 발생하는 모든 멀티미디어 입출력 장치에 적용이 가능함을 포함한다.
도 2는 본 발명의 바람직한 실시 예에 따른 송신 메모리 영역과 수신 메모리 영역을 가변적으로 구별하여 사용하는 코덱 인터페이스부의 구조를 도시한 도면이다.
도 2를 참조하면, 코덱 인터페이스부(230)는 송신 메모리 영역과 수신 메모리 영역이 공존하는 하나의 FIFO(240) 모듈을 포함한다. 상기 코덱 인터페이스부(230)는 광대역 스테레오 코덱(215)과 인터페이싱하고, 상기 디지털 음성과 오디오 정보는 버스(265)를 통해 다른 하드웨어 장치들로 전달된다.
상기 FIFO(240) 모듈은, 마지막 송신 어드레스(TX_END_ADDR) 정보를 저장하고 있는 레지스터(register)(235)로부터, 어플리케이션에 대응하여 가변적인 값으로 설정되는 마지막 송신 어드레스(TX_END_ADDR) 정보를 전달 받는다. 상기 인터페이스부하나의 FIFO(240) 모듈은 상기 마지막 송신 어드레스(TX_END_ADDR) 정보를 이용하여 Tx FIFO(242) 영역과 Rx FIFO(244) 영역으로 나누어서 사용한다. 상기 FIFO 모듈은 RAM으로 구현 가능하다.
즉, 하나의 FIFO 모듈 (240)의 0번째 어드레스부터 TX_END_ADDR(235)까지를 송신을 위한 하나의 FIFO(242) 영역으로 사용하고, TX_END_ADDR+1 번지부터 상기 모듈(240)의 마지막 번지까지를 수신을 위한 FIFO(244) 영역으로 사용한다.
이때, 실행하고자 하는 어플리케이션에 대응하는 송수신 정보의 양에 따라 상기 TX_END_ADDR(235)이 가변적으로 설정되며, 따라서 송신 어드레스를 더 많이 설정하거나, 수신 어드레스를 더 설정할 수 있다.
예를 들어, MP3 플레이 어플리케이션을 실행하는 경우라면, 일반적으로 외부로부터 통화가 발생하지 않는 것으로 간주 할 수 있다. 따라서, 수신 데이터가 존재하지 않는 경우, 상기 FIFO모듈(240)의 전체 영역을 송신만을 위한 FIFO(242)로 설정하여 사용한다. 즉, 상기 마지막 송신 어드레스(TX_END_ADDR) 값을 FIFO(240)의 마지막 번지로 설정하여 사용한다.
이와 같이 하나의 RAM을 내부적으로 두 개의 영역으로 나누어 사용하는 본 발명의 FIFO 구조는, 상기 TX_END_ADDR(235) 값이 중요한 요소가 된다.
그 이유는, FIFO 메모리는 RAM에 데이터를 쓰거나 읽을 때, 어드레스를 고려하지 않아도 되는 특성을 가지지만 하드웨어적으로는 어드레스를 만들어 주어야 한다. 이에 따라 본 발명에서, 상기 어드레스를 만드는 어드레스 생성 방법은 순환 어드레싱(circular addressing) 방식을 사용하며, 상기 TX_END_ADDR(235) 값은 곧 송신 영역 또는 수신 영역에 대응하는 어드레스 전환 지점을 제공한다.
삭제
예를 들어, 송신 어드레스 포인터가 현재 TX_END_ADDR(235) 번지에 있다면, 입력되는 송신 데이터는 TX_END_ADDR+1 번지에 저장되는 것이 아니라 다시 0번지부터 저장되어야 한다. 이것은 어드레스 생성 로직이 TX_END_ADDR(235) 레지스터의 값을 이용해서 판단하는 것으로써, 0번지부터 순환적으로 데이터를 저장하기 시작이다. 한편, 수신 어드레스는 RAM의 마지막 어드레스(RAM_END_ADDR)부터 시작하여 TX_END_ADDR+1번지까지 수신 데이터를 저장하며, 순환 감소하고 다음 수신 데이터를 저장하기 위한 어드레스는 RAM_END_ADDR이 되는 것이다.
추가적으로 코덱 인터페이스부(230)는 FIFO 동작시 데이터의 흐름 제어와 관련하여 송신을 위한 가득참(FULL)/텅빔(EMPTY)을 나타내는 지시 신호(full/empty indication signal)와 수신을 위한 FULL/EMPTY을 나타내는 지시 신호(full/empty indication signal)를 만들기 위해서 TX_FULL_LIKE_VAL(245), TX_EMTPY_LIKE_VAL(250), RX_FULL_LIKE_VAL(260) 및 RX_EMPTY_LIKE_VAL(255) 등의 레지스터들을 더 포함한다. 상기 레지스터들(245, 250, 255, 260)은 상기 송신 영역이 가득차거나 텅빈 경우의 데이터 개수 파라미터 값을 저장하고 있으며, 또는 수신 영역이 가득차거나, 텅빈 경우의 데이터 개수 파라미터 값을 저장하고 있다. 여기서, 상기 레지스터들은 하나의 레지스터에 저장될 수도 있다.
따라서, 상기 값에 근접하는 경우, 코덱 인터페이스부는 인터럽트를 발생할 수 있도록 하며, 상기 발생한 인터럽트들은 CPU로 전달된다.
도 3은 본 발명의 바람직한 실시 예에 따라 코덱 인터페이스부에서 송신 영역 및 수신 영역을 구별하는 제어 동작을 도시한 도면이다.
도 3을 참조하면, 코덱 인터페이스부(330)는 하나의 FIFO 모듈(355)을 구비하여 데이터를 송신하거나 또는 데이터를 수신하는 동작을 수행한다. 상기 하나의 FIFO 모듈(355)에서 송신 및 수신 메모리로 동작하기 위하여, 상기 코덱 인터페이스부(330)는 주소생성 로직(address generation logic)을 포함한 인터페이스 로직(335, 365)과 제어 레지스터(340, 370)들을 구성하고 있다.
여기서, 상기 인터페이스 로직(335)은 광대역 스테레오 코덱(315)과 데이터 송수신 및 신호를 교환하기 위한 블록이다. 또한, 인터페이스 로직(365)은 버스(375)와의 데이터 송수신 및 신호를 교환하기 위한 블록이다. 상기 인터페이스 로직(335, 365)은 하나의 유닛으로 구현 가능하며 또는 서로 구별된 하드웨어 블록으로 구현가능하다.
상기 제어 레지스터(340, 370)는 상기 FIFO 모듈(355)의 송수신 어드레스가 가득차거나 텅비어 있음을 판단하기 위한 값들을 저장하고 있다. 코덱 인터페이스(330)는 상기 값들을 이용하여 인터럽트 신호를 발생 가능하다. 상기 발생된 인터럽트 신호는 메인 CPU로 전달되어 데이터의 송신 및 수신을 제어하도록 한다.
이와 같이 상기 인터페이스 로직(335, 365)과 제어 레지스터(340, 370)를 포함하는 코덱 인터페이스(330)를 이용한 음성 및 오디오 신호의 송수신 절차는 다음과 같다.
1. 음성 및 오디오 데이터 송신 시, 인터페이스 로직(365)은 버스(375)로부터 음성 및 오디오 데이터를 입력 받아, 상기 FIFO 모듈(355)로 로직 신호(360)를 전달한다. 상기 로직 신호(360)는 버스 듀얼포트 메모리 제어신호(BUS_DP_CONTROL)와, 생성된 어드레스 신호(BUS_DP_ADDR)와 쓰기 데이터 신호(BUS_DP_WDATA)를 포함한다.
상기 FIFO 모듈(355)은 상기 로직 신호(360)를 이용하여 송신 영역(356)에 순차적으로 데이터의 쓰기 동작을 수행한다. 또한, 상기 FIFO 모듈(355)은 송신 읽기 데이터(TX_RDATA)(342)를 이용하여 상기 FIFO(355)의 송신 영역(356)에 순차적으로 쓰여진 데이터를 인터페이스 로직(335)에 순차적으로 전달한다. 상기 인터페이스 로직(335)은 상기 FIFO 모듈(355)의 송신 영역(356)으로부터 순차적으로 쓰여진 읽기 데이터를 광대역 스테레오 코덱(315)으로 전달한다. 상기 광대역 스테레오 코덱(315)의 DAC(320)는 디지털 음성 및 오디오 신호를 아날로그 신호로 변환하여 스피커(305)를 통해 무선상으로 출력한다.
2. 음성 및 오디오 데이터 수신 시, 마이크(310)로부터 입력된 아날로그 신호는 상기 광대역 스테레오 코덱(315)의 ADC(325)를 통해 아날로그 신호에서 디지털로 변환된 후, 인터페이스 로직(335)으로 전달한다.
상기 인터페이스 로직(335)은 상기 FIFO 모듈(355)에 쓰기 데이터를 제공한다. 이때, 상기 인터페이스 로직(335)은 상기 FIFO 모듈(355)로 송신 신호(344)와 수신 신호(346)를 송수신 발생 때마다 전달한다. 여기서, 송신 신호(344)는 송신 영역 제어신호(TX_RCTRL)와 송신 영역 읽기 어드레스신호(TX_RADDR)를 포함한다. 또한, 수신 신호(346)는 수신 영역 쓰기 제어신호(RX_WCTRL)와, 수신 영역 쓰기 어드레스신호(RX_WADDR)와, 수신 영역 쓰기 데이터신호(RX_WDATA)를 포함한다.
상기 동시에 혹은 불규칙적으로 상기 송신 신호(344)와 수신 신호(346)가 상기 FIFO 모듈(355)에 전달되기 때문에, 스위치 혹은 다중화기(이하 다중화기라 칭함)(350)를 통하여 선택적으로 신호를 출력하여 상기 FIFO 모듈(355)로 전달하기 위함이다. 따라서, 상기 다중화기(350)는 송신 신호(344)와 수신 신호(346)를 규칙적으로 전송하기 위하여 미리 설정된 송수신 마스터 토글(TX_RX_MSTR_TGL)(348)을 입력 받는다. 상기 송수신 마스터 토글(TX_RX_MSTR_TGL)(348)을 제어 받은 후, 송신 신호(344)에 따라 상기 FIFO(355)로부터 데이터를 읽어와서 송신 동작을 수행하거나, 또는 수신 신호(346)에 따라 FIFO(355)에 수신한 데이터를 쓰는 동작을 수행하게 된다.
만약 상기 다중화기(350)로부터 수신 신호(346)를 전달 받았다면, 상기 수신 신호(346)에 포함된 쓰기 어드레스와 쓰기 데이터를 이용하여 상기 FIFO 모듈(355)의 수신 영역(358)에 데이터를 쓰기를 수행한다. 이후 상기 FIFO 모듈(355)은 수신 영역(358)에서 출력된 버스 듀얼 포트 메모리 읽기 데이터(BUS_DP_RDATA)신호를 인터페이스 로직(365)으로 전달한다. 최종적으로 상기 인터페이스 로직(365)이 수신 데이터를 읽어 버스(375)를 통해 다른 하드웨어 블록으로 수신 데이터를 전달하게 된다.
제어 레지스터(340, 370)들은 상기 도 2에 설명한 TX_FULL_LIKE_VAL(245), TX_EMTPY_LIKE_VAL(250), RX_FULL_LIKE_VAL(260), RX_EMPTY_LIKE_VAL(255)과 같은 경계 값을 저장하고 있는 레지스터들이다.
따라서, 상기 제어 레지스터(340,370)은 저장된 상기 송신 영역(356) 혹은 수신영역(358)의 FILL/EMPTY 여부를 판단하는 레지스터값들과, 상기 인터페이스 로직(335, 365)으로 수신된 신호(RDATA)들에 포함된 읽혀진 어드레스 값들을 비교한다., 상기 비교 결과는 인터럽트 신호로 발생 된다.
상기 발생된 인터럽트 신호에 대응하여 CPU는 송신 영역(356)으로 전송되는 데이터의 양을 조절할 수 있다, 또는 상기 인터럽트 신호에 대응하여 수신 영역(358)으로 인가되는 데이터의 양을 조절할 수 있다. 즉, 상기 발생된 인터럽트 신호는 메인 CPU(도시하지 않음)에 상기 FIFO(355)의 송신 및 수신되는 데이터의 흐름을 제어하도록 제공된다.
도 4는 본 발명의 바람직한 실시예에 따른 코덱 인터페이스부에서의 인터럽트 발생을 도시한 도면이다.
도 4를 참조하면, 코덱 인터페이스부(430)는 하나의 FIFO에 대하여 송신 및 수신 동작을 수행함에 따라 각종 인터럽트 신호를 발생할 수 있다. 상기 발생한 인터럽트 신호는 CPU(450)로 전달된다.
여기서, 상기 인터럽트 신호들은 송신 영역의 FIFO에러(TX_FIFO_ERROR_INT), 수신 영역의 FIFO에러(RX_FIFO_ERROR_INT), 수신 에러(RX_INT), 수신 영역 FULL 가능성 (RX_FULL_LIKE_INT), 수신 영역 EMPTY 가능성(RX_EMPTY_LIKE_INT), 수신 NOT_EMPTY 않음(RX_NOT_EMPTY_LIKE_INT), 송신 FULL 가능성(TX_FULL_LIKE_INT), 송신 EMPTY 가능성 (TX_EMPTY_LIKE_INT) 인터럽트 등이 있다.
게다가, 상기 수신 영역 EMPTY 가능성(RX_EMPTY_LIKE_INT), 수신 NOT_EMPTY 않음(RX_NOT_EMPTY_LIKE_INT), 송신 FULL 가능성(TX_FULL_LIKE_INT), 송신 EMPTY 가능성 (TX_EMPTY_LIKE_INT) 와 같은 인터럽트들은 상기 CPU(450)의 인터럽트 처리 지연을 보상해 주기 위해서 FULL 또는/ EMPTY 가 발생하기 전에 예고된다. 즉, 미리 CPU(450)에게 FIFO의 송신 영역 또는 수신 영역이 FULL 또는/ EMPTY에 인접된 긴급한 상태임을 보고한다.
이는 상기 CPU(450)에서 발생한 인터럽트 신호에 대한 처리 지연이 발생하는 경우, 잘못된 송신 데이터의 출력 또는 수신 데이터를 잃어버릴 수 있는 가능성이 존재하기 때문이다. 따라서, 코덱 인터페이스부(430)는 상기 언급된 가능성과 관련된 인터럽트 신호를 보고 하여 이러한 문제점을 사전에 예방하고자 한다.
도 5는 본 발명의 바람직한 실시 예에 따른 FIFO에서 송신 어드레스 및 수신 어드레스의 할당 동작을 도시한 도면이다.
도 5를 참조하면, 송신 어드레스와 수신 어드레스는 TX_END_ADDR(515)의 값을 기준으로 구별되어 어드레스를 할당 받게 된다. 즉, 하나의 FIFO 모듈은 상기 TX_END_ADDR(515)의 값을 이용하여 송신 영역과 수신 영역을 구별하여 어드레스를 할당하여 사용하게 된다.
본 발명의 실시 예에 따라 송신 영역은 어드레스는 0(505)부터 현재의 데이터의 전송 시점을 나타내는 inter-address of Tx(510)과, 상기 TX_END_ADDR(515)까지이다.
한편, 수신 영역은 상기 FIFO 모듈의 메모리 크기에 따라 결정된 마지막 어드레스인 RAM_END_ADDR(520)부터, 현재 데이터의 수신 시점을 나타내는 inter-address of RX(525)과, TX_END_ADDR+1(530)까지이다. 즉, 수신 영역은 상기 TX_END_ADDR(515)를 경계값으로, 하나의 어드레스가 증가한 TX_END_ADDR+1(530)부터 FIFO 모듈의 크기에 대응하는 마지막 어드레스까지 어드레스를 할당 받는다.
이때, CPU의 동작은 상기 FIFO 모듈에 하나의 어드레스를 할당해서 송신 또는 수신에 따른 쓰기/읽기 동작을 하도록 제어한다. 즉, 본 발명에서 CPU는 같은(동일한) 어드레스에서 송신 데이터를 쓰기/읽기 동작을 수행한다.
예를 들어, CPU는 0x1000번지에 FIFO의 어드레스를 할당했다면, CPU는 0x1000번지에 데이터 쓰기 동작할 것이다. 이에 코덱 인터페이스부는 상기 0x1000번지를 상기 FIFO 모듈의 시작 어드레스로 설정하여 상기 0x1000번지를 기준으로 송신 영역의 시작 어드레스로 설정한다. 그리고, 상기 시작 어드레스로부터 순차적으로 어드레스를 하나씩 증가시키면서 전송 데이터를 쓰기 동작한다. 이러한 코덱 인터페이스부의 어드레스 할당은 상기 CPU의 어드레스 할당하면서 동시에 데이터를 쓰는 동작에 따른 CPU 부하를 줄이는 장점을 가진다. 따라서, CPU를 다른 하드웨어 블록을 위해 사용하도록 하거나, 상기 CPU의 어드레스 할당에 따른 지연을 미리 방지함에 따라 상기 CPU를 보다 효율적으로 사용하게 된다.
또한, 상기 코덱 인터페이스부는 상기 FIFO의 0x1000번지부터 순차적으로 쓰여진 송신 데이터를 순차적으로 출력한다.
- 음성 및 오디어 정보를 송신하는 경우
상기 CPU가 0x1000번지에 송신 데이터 쓰기를 수행할 경우, 송신 FIFO 영역의 1단계인 0(505)에서부터 데이터 쓰기가 시작되어 2단계에서 어드레스 번호를 순차적으로 증가시키면서 쓰기 동작을 수행한다. 이후에 3단계의 inter-address of Tx(510)를 확인(pass)한 다음, 4단계에서 상기 inter-address of Tx(510)이후의 어드레스에 쓰기 동작을 순차적으로 수행한다. 5단계에서 송신 어드레스의 끝을 나타내는 TX_END_ADDR(515)에 도착하면, 6단계로 진행하여 즉, 순환 어드레스 방식에 따라 다시 0(505)번지부터 쓰기 동작을 수행한다.
한편, 상기 Wide-band Stereo CODEC(315)과 통신을 수행하는 Interface Logic(335)이 송신 데이터 읽기를 수행할 경우, 상기 송신 FIFO 영역의 1단계인 0(505)에서부터 데이터 읽기 동작을 수행한다. 이때, 상기 데이터 읽기 동작은 상기 송신 데이터 쓰기 동작보다 앞선 어드레스에서 수행될 수 없다. 즉, CPU는 상기 inter-address of Tx(510)를 확인(pass)하고, 상기 inter-address of Tx(510) 이후의 어드레스에 쓰기 동작이 일어난 후, 을 순차적으로 읽기 동작을 수행한다. 이 후, TX_END_ADDR(515)까지 데이터 읽기를 수행하면, 다시 0(505)번지부터 읽기 동작을 수행한다.
- 음성 및 오디어 정보를 수신하는 경우
상기 Wide-band Stereo CODEC(315)과 통신을 수행하는 Interface Logic(335)이 수신 데이터 쓰기를 수행할 경우, 입력되는 수신 데이터는, 7단계에서 수신 FIFO 영역 즉, FIFO 모듈의 크기에 대응하는 FIFO의 마지막 어드레스(520)에서부터 데이터 쓰기가 시작된다. 8단계에서 상기 Wide-band Stereo CODEC(315)과 통신을 수행하는 Interface Logic(335)부는 상기 FIFO의 어드레스 번호를 순차적으로 감소시키면서 쓰기 동작을 수행한다. 이후에 9단계의 inter-address of Rx(525)를 확인(pass)한 다음, 10단계에서 상기 inter-address of Rx(525)이후의 어드레스에 쓰기 동작을 순차적으로 수행한다. 11단계에서 수신 영역의 마지막 어드레스인 TX_END_ADDR+1(530)에 도착하면, 12단계로 진행하여 즉, 순환 어드레스 방식에 따라 다시 FIFO 모듈의 마지막 어드레스0(520)번지부터 쓰기 동작을 수행한다.
한편, CPU가 수신 데이터 읽기를 수행할 경우, 7단계에서 수신 FIFO 영역 즉, FIFO 모듈의 크기에 대응하는 FIFO의 마지막 어드레스(520)에서부터 데이터 읽기를 시작한다. CPU는 상기 FIFO의 어드레스 번호를 순차적으로 감소시키면서 읽기 동작을 수행하고, 9단계의 inter-address of Rx(525)를 확인(pass)한 다음, 10단계를 거쳐 상기 inter-address of Rx(525)이후의 어드레스에 읽기 동작을 순차적으로 수행한다. 11단계에서 수신 영역의 마지막 어드레스인 TX_END_ADDR+1(530)에 도착하면, 12단계로 진행하여 즉, 순환 어드레스 방식에 따라 다시 FIFO 모듈의 마지막 어드레스0(520)번지부터 읽기 동작을 수행한다.
즉, FIFO 동작에 따라 수신 영역의 RAM_END_ADDR(520)번지부터 순차적으로 쓰여진 수신 데이터를 순차적으로 읽기 동작을 수행하여 최종적으로 다른 하드웨어 블록으로 수신된 데이터를 전달한다.
여기서, 상기 송신 데이터와 수신 데이터의 각각의 쓰기 및 읽기 동작은 동시에 가능하다. 즉, 하나의 FIFO 모듈을 구비하나, 코덱 인터페이스부는 본 발명에 따라 설정된 레지스터의 값들을 이용하여 송신 영역과 수신 영역을 구별하여 사용한다. 따라서, 상기 각각의 메모리 영역에서 쓰기 동작 및 읽기 동작이 선입선출 동작으로 수행되며, 송신 데이터의 FIFO 동작과 수신 데이터의 FIFO 동작은 동시에 구현 가능하다.
또한, 이때, CPU는 FIFO의 시작 어드레스만을 알려주어 FIFO 모듈의 시작 어드레스를 통보하여, 상기 동일한 시작 어드레스에 송신 데이터 쓰기와 수신 데이터 읽기를 수행한다. 한편, 코덱 인터페이스부가 상기 시작 어드레스와 TX_END_ADDR(515)를 기준으로 송신 영역과 수신 영역을 구별하고, 각각의 메모리 영역에 대응하여 어드레스를 증가 감소 할당하여 사용한다.
도 6은 본 발명의 바람직한 실시예에 따른 재설정 가능한 송수신 FIFO에서의 송수신 어드레싱 동작을 도시한 흐름도이다.
도 6을 참조하면, 우선, 코덱 인터페이스부는 레지스터로부터 마지막 송신 어드레스를 나타내는 TX_END_ADDR을 이용하여 하나의 FIFO를 송신 영역과 수신 영역으로 구분하여 사용한다. 상기 TX_END_ADDR는 구현되는 어플리케이션에 따라 가변적인 값을 가지고 설정된다. 따라서, 상기 FIFO의 송신 영역과 수신 영역은 어플리케이션에 대응하여 동일한 크기로 구분되거나, 또는 송신 영역으로만 구현되거나, 또는 수신 영역으로부터 구현되어 사용 가능하다. 또한, 해당 어플리케이션에 따라 송신 영역이 수신 영역에 비하여 큰 크기(더 많은 어드레스를 포함하는 경우를 말함)를 가지고 설정 가능하다.
605단계에서 코덱 인터페이스부은 입력 받은 신호가 스피커를 통해 송신될 신호 인지, 또는 마이크를 통해 입력된 수신 신호 인지를 확인한다. 특히, 상기 코덱 인터페이스부의 인터페이스 로직이 입력 받은 신호가 송신될 신호인지 확인한다. 이때, 송신 신호임을 확인한 경우 610단계로 진행한다.
610 단계에서 코텍 인터페이스부는 입력 받은 송신 데이터를 0번째 어드레스부터 순차적으로 할당한다. 상기와 같은 순차적 어드레스 할당 후에 615단계에서 마지막 송신 어드레스(TX_END_ADDR)에 도달하였다면, 상기 610단계로 복귀하여 다시 어드레스 0부터 할당하여 순차적으로 어드레싱을 진행한다. 한편, 상기 마지막 송신 어드레스까지 송신 데이터가 할당 되지 않았다면, 620단계로 진행한다.
620 단계에서 어드레스를 순차적으로 증가시키면서(즉 +1씩 단조 증가) 송신 데이터를 할당한다. 625단계에서 모든 송신데이터에 대하여 모든 어드레싱을 수행하였다면, 630단계로 진행하여 제1 인터페이스 로직으로 송신 데이터를 전송한다. 그러나 모든 송신데이터 할당이 되지 않은 경우라면, 상기 615단계로 복귀한다.
반면에, 상기 605단계에서 입력된 신호가 수신 신호라면, 635단계로 진행한다. 635 단계에서 입력 받은 수신 데이터는 RAM의 마지막 어드레스, 즉 FIFO의 마지막 어드레스부터 어드레스를 역순으로 감소시키며 할당한다. 즉, 상기 마지막 어드레스부터 -1씩 증가하는 어드레스에 수신 데이터를 할당한다. 이후 640단계에서 '마지막 송신 어드레스 +1' 어드레스에 도달하였다면, 상기 635단계로 복귀하여 다시 상기 FIFO의 마지막 어드레스부터 번호를 역순으로 감소하여 수신 데이터를 할당한다.
그러나 '마지막 송신 어드레스 +1' 어드레스에 도달하지 못했다면, 645단계로 진행하여 계속해서 감소된 어드레스 번호(-1)에 수신 데이터를 할당한다. 650단계에서 모든 수신 데이터를 할당하였다면, 655 단계에서 인터페이스 로직으로 상기 수신 데이터를 전송한다. 상기 인터페이스 로직은 수신된 데이터를 다른 하드웨어 블록으로 전달한다. 이때, 한편, 상기 모든 수신 데이터가 할당된 상태가 아니라면, 상기 640단계로 진행하여 수신을 완료할 때까지 어드레싱을 수행한다.
상기 송신 데이터의 쓰기 및 읽기 동작은 동시에 수행 가능하다. 또한, 수신 데이터의 쓰기 및 읽기 동작은 수행 가능하다. 이때, 상기 쓰기 및 읽기 동작은 써진 데이터를 읽어서 출력하는 과정을 의미한다. 즉, 먼저 쓰기 동작이 수행된 후 읽기 동작을 수행하게 된다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명 중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, Tx FIFO 영역과 Rx FIFO 영역의 사이즈를 가변적으로 조정하여 메모리 사용 효율을 높이는 장점을 가진다. 즉, 하나의 FIFO 모듈을 구비하여 송신 메모리와 수신 메모리를 활용하는 장점을 가진다. 따라서, 하나의 FIFO 모듈을 구비함에 따라, 칩의 메모리 공간을 줄이는 장점을 가진다.
또한, 2개의 RAM을 하나로 합쳐 구현함에 따라 DFT 로직을 줄이고, 레이아웃 노력을 감소시켜서 이에 따르는 공정 지연요소를 제거할 수 있다.
또한, CPU가 하나의 어드레스로 송수신 데이터를 리드/라이트 할 수 있고, 코덱 인터페이스부가 메모리 사용 효율이 높기 때문에 CPU 부하를 감소시킬 수 있는 효과가 있다. 따라서, CPU의 효율을 보장하는 장점을 가진다.

Claims (21)

  1. 송수신 선입선출 메모리를 이용하여 데이터를 송수신하는 광대역 스테레오 코덱 인터페이스부에 있어서,
    광대역 스테레오 코덱과 음성 및 오디오 데이터 중 적어도 하나를 송수신하며, 송신 신호를 위한 어드레스 및 제어신호와, 수신 신호를 위한 어드레스 및 제어신호와 쓰기 데이터 신호를 발생하는 제1 인터페이스 로직부와,
    상기 제1 인터페이스 로직부로부터 전달되는 상기 송신 신호 및 상기 수신 신호 중 하나를 토글신호에 따라 번갈아가며 출력하는 다중화기와,
    미리 설정된 마지막 송신 어드레스로 구분되는 송신 영역 및 수신 영역으로 구성되며, 상기 다중화기로부터 출력되는 송수신신호에 따라 상기 송신 영역 및 수신 영역마다 읽기/쓰기를 수행하여, 송신할 읽기데이터는 상기 제1 인터페이스부로 전달하고, 수신한 읽기 데이터를 출력하는 송수신 선입선출 메모리부와,
    상기 송수신 선입선출 메모리부로부터 상기 수신한 읽기 데이터를 전달받아 CPU로 전달하고, 상기 CPU로부터 전달받은 데이터를 쓰기 데이터로서 해당하는 제어신호 및 어드레스 신호와 함께 상기 송수신 선입선출 메모리부로 전달하는 제2 인터페이스 로직부를 포함하며,
    상기 제1 인터페이스 로직부와 상기 제2 인터페이스 로직부는,
    상기 송신 영역 및 상기 수신 영역 중 적어도 하나가 가득차거나 또는 비어가는 경우의 데이터 개수를 나타내는 파라미터값들을 저장하고 있는 제어 레지스터들을 구비하며, 상기 제1 내지 제2 인터페이스 로직부에 각각 입력되는 읽기 데이터들이 상기 각 파라미터 값에 도달하면 상기 각 파라미터 값에 따른 인터럽트 신호를 상기 CPU로 발생시키는 것을 특징으로 하는 광대역 스테레오 코덱 인터페이스부.
  2. 제1항에 있어서, 상기 광대역 스테레오 코덱 인터페이스부는,
    입력받은 신호가 송신 데이터인 경우, 상기 송신 데이터를 상기 송수신 선입선출 메모리부의 어드레스 0부터 상기 마지막 송신 어드레스까지 저장하고, 상기 마지막 송신 어드레스 이후 상기 어드레스 0부터 다시 저장하는 송신 영역과,
    상기 입력받은 신호가 수신 데이터인 경우, 상기 수신 데이터를 상기 송수신 선입선출 메모리부의 마지막 수신 어드레스부터 상기 마지막 송신 어드레스+1까지 저장하고, 상기 마지막 송신 어드레스+1 이후 상기 마지막 수신 어드레스부터 다시 저장하는 수신 영역이 공존하는 상기 하나의 송수신 선입선출 메모리부를 포함함을 특징으로 하는 광대역 스테레오 코덱 인터페이스부.
  3. 제1항에 있어서, 상기 미리 설정된 마지막 송신 어드레스는,
    송수신 데이터량에 따라 설정됨을 특징으로 하는 광대역 스테레오 코덱 인터페이스부.
  4. 제1항에 있어서,
    상기 수신한 읽기 데이터는 버스를 통해 상기 CPU로 전달되고, 상기 CPU로부터 전달받은 데이터와 상기 해당하는 제어신호와 상기 어드레스 신호는 상기 버스를 통해 상기 송수신 선입선출 메모리부로 전달됨을 특징으로 하는 광대역 스테레오 코덱 인터페이스부.
  5. 광대역 스테레오 코덱 인터페이스부 내에서 송수신 선입선출 메모리를 이용하여 데이터를 송수신하는 방법에 있어서,
    입력된 신호가 송신 데이터인 경우, 상기 송신 데이터를 상기 송수신 선입선출 메모리의 어드레스 0부터 미리 설정된 마지막 송신 어드레스까지 저장하고, 상기 마지막 송신 어드레스 이후, 상기 어드레스 0부터 다시 저장하는 과정과,
    상기 송신 데이터의 저장된 어드레스 순서에 대응하여 송신 데이터를 출력하는 과정과,
    상기 입력된 신호가 수신 데이터인 경우, 상기 수신 데이터를 상기 송수신 선입선출 메모리의 마지막 어드레스부터 상기 마지막 송신 어드레스+1까지 저장하고, 상기 마지막 송신 어드레스+1 이후, 상기 마지막 어드레스부터 다시 저장하는 과정과,
    상기 수신 데이터의 저장된 어드레스 순서에 대응하여 상기 수신 데이터를 읽기 데이터로 출력하는 과정을 포함함을 특징으로 하는 데이터를 송수신하는 방법.
  6. 제5항에 있어서, 상기 미리 설정된 마지막 송신 어드레스는,
    송수신 데이터량에 따라 설정됨을 특징으로 하는 데이터를 송수신하는 방법.
  7. 통신 시스템에서 선입선출 방식을 이용하여 송수신 데이터를 통신하는 코덱 인터페이스부에 있어서,
    상기 선입선출 방식에 따라, 송신 데이터를 저장하고 출력하는 송신 영역과 수신 데이터를 저장하고 출력하는 수신 영역이 공존하는 하나의 메모리 모듈과,
    상기 송신 영역과 상기 수신 영역을 구별하고, 상기 송신 데이터의 양에 따라 가변적인 경계값을 제공하는 레지스터를 포함함을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  8. 제7항에 있어서,
    상기 레지스터는 상기 송신 데이터의 양을 고려하여 상기 송신 영역을 조절하는 마지막 송신 어드레스를 상기 경계값으로 설정하여 제공함을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  9. 제8항에 있어서,
    상기 송신 데이터의 양은 어플리케이션에 대응하여 가변됨을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  10. 제7항에 있어서,
    상기 코덱 인터페이스부는 순환적으로 상기 메모리 모듈의 시작 어드레스부터 어드레스를 순차적으로 증가시면서 상기 경계값까지 상기 송신 데이터를 저장하고 출력함을 특징으로 송수신 데이터를 통신하는 코덱 인터페이스부.
  11. 제10항에 있어서,
    상기 시작 어드레스는 메인 제어부(CPU)로부터 할당받음을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  12. 제7항에 있어서,
    상기 코덱 인터페이스부는 순환적으로 상기 메모리 모듈의 마지막 어드레스부터 어드레스를 역순으로 순차적으로 증가시키면서 상기 경계값+1까지 상기 수신 데이터를 저장하고 출력함을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  13. 제7항에 있어서,
    상기 레지스터는 상기 송신 영역이 근접하여 가득참을 나타내는 지시 신호를 더 포함하며, 상기 지시 신호를 이용하여 상기 송신 영역의 상태를 나타내는 인터럽트 신호를 발생함을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  14. 제7항에 있어서,
    상기 레지스터는 상기 송신 영역이 근접하여 텅 빔을 나타내는 지시 신호를 더 포함하며, 상기 지시 신호를 이용하여 상기 송신 영역의 상태를 나타내는 인터럽트 신호를 발생함을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  15. 제7항에 있어서,
    상기 레지스터는 상기 수신 영역이 근접하여 가득참을 나타내는 지시 신호를 더 포함하며, 상기 지시 신호를 이용하여 상기 수신 영역의 상태를 나타내는 인터럽트 신호를 발생함을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  16. 제7항에 있어서,
    상기 레지스터는 상기 수신 영역이 근접하여 텅 빔을 나타내는 지시 신호를 더 포함하며, 상기 지시 신호를 이용하여 상기 수신 영역의 상태를 나타내는 인터럽트 신호를 발생함을 특징으로 하는 송수신 데이터를 통신하는 코덱 인터페이스부.
  17. 통신 시스템에서 송신 데이터와 수신 데이터를 구별하여 선입선출력 동작하는 메모리 사용 방법에 있어서,
    마지막 송신 어드레스를 레지스터로부터 수신하는 과정과,
    L개의 어드레스를 가지는 하나의 메모리 모듈을, 상기 L개와 같거나 작은 수인 M개의 어드레스를 가지는 송신 영역과 L-M개의 어드레스를 가지는 수신 영역으로 구별하는 과정과,
    상기 메모리 모듈의 첫번째 어드레스부터 상기 마지막 송신 어드레스까지를 상기 송신 영역으로 할당하는 제1 할당 과정과,
    상기 마지막 송신 어드레스에 1 증가한 어드레스부터 상기 메모리 모듈의 마지막 어드레스까지를 상기 수신 영역으로 할당하는 제2 할당 과정을 포함함을 특징으로 하는 선입선출 메모리 사용 방법.
  18. 제17항에 있어서, 상기 수신하는 과정은 제어부에 의해 수행됨을 특징으로 하는 선입선출 메모리 사용 방법.
  19. 제18항에 있어서, 상기 구별하는 과정은 상기 제어부에 의해 수행됨을 특징으로 하는 선입선출 메모리 사용 방법.
  20. 제17항에 있어서, 상기 제1 할당 과정은 코덱 인터페이스부에 의해 수행됨을 특징으로 하는 선입선출 메모리 사용 방법.
  21. 제20항에 있어서, 상기 제2 할당 과정은 상기 코덱 인터페이스부에 의해 수행됨을 특징으로 하는 선입선출 메모리 사용 방법.
KR1020050116009A 2005-11-30 2005-11-30 광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치 KR101168095B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050116009A KR101168095B1 (ko) 2005-11-30 2005-11-30 광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치
US11/606,354 US7746871B2 (en) 2005-11-30 2006-11-30 Method and apparatus for communicating data using TX/RX FIFO structure in a wideband stereo codec interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050116009A KR101168095B1 (ko) 2005-11-30 2005-11-30 광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20070056864A KR20070056864A (ko) 2007-06-04
KR101168095B1 true KR101168095B1 (ko) 2012-07-24

Family

ID=38224314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050116009A KR101168095B1 (ko) 2005-11-30 2005-11-30 광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치

Country Status (2)

Country Link
US (1) US7746871B2 (ko)
KR (1) KR101168095B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8681526B2 (en) * 2008-07-02 2014-03-25 Cradle Ip, Llc Size and retry programmable multi-synchronous FIFO
US9722614B2 (en) * 2014-11-25 2017-08-01 Qualcomm Incorporated System and method for managing pipelines in reconfigurable integrated circuit architectures
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6179489B1 (en) * 1997-04-04 2001-01-30 Texas Instruments Incorporated Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
KR100505689B1 (ko) * 2003-06-11 2005-08-03 삼성전자주식회사 송수신 흐름에 따라 공유 버퍼 메모리의 할당량을제어하는 송수신 네트워크 제어기 및 그 방법
US7443978B2 (en) * 2003-09-04 2008-10-28 Kabushiki Kaisha Toshiba Method and apparatus for audio coding with noise suppression
JP2005157444A (ja) * 2003-11-20 2005-06-16 Toshiba Corp Fifo制御回路

Also Published As

Publication number Publication date
KR20070056864A (ko) 2007-06-04
US7746871B2 (en) 2010-06-29
US20070153786A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
US8520563B2 (en) Interface device, communications system, non-volatile storage device, communication mode switching method and integrated circuit
US7054986B2 (en) Programmable CPU/interface buffer structure using dual port RAM
US7788422B2 (en) Interface and interrupt circuitry coupling data to host DMA circuitry
US20030074502A1 (en) Communication between two embedded processors
US6526068B2 (en) Interface control of communication between a control processor and a digital signal processor
TWI678708B (zh) 平行存取多個快閃記憶體的控制架構
KR101168095B1 (ko) 광대역 스테레오 코덱 인터페이스에서 송수신 선입선출 구조를 통해 데이터 통신하는 방법 및 장치
CN112328523B (zh) 传输双倍速率信号的方法、装置及系统
JP2005084907A (ja) メモリ帯域制御装置
US6766423B2 (en) Message-based memory system for DSP storage expansion
US20080320178A1 (en) DMA transfer apparatus
WO2003025740A3 (en) Serial communication device with dynamic filter allocation
CN111930648B (zh) 一种缓存配置方法、装置及电子设备和存储介质
EP2017740B1 (en) Method for data transfer between host and device
JP2001144829A (ja) データ伝送装置、データ伝送システム及びデータ伝送方法
CN112069096B (zh) 控制器
US20020181456A1 (en) Switch device and data transfer system
KR100911336B1 (ko) 플렉스레이와 캔 통신 사이의 메시지 변환장치 및 캔아이디와 플렉스레이 슬롯의 매칭방법
JP2007172510A (ja) Dma転送装置
KR100469436B1 (ko) 멀티미디어 기기의 데이터 액세스 회로
KR20050060688A (ko) 고속 시리얼라인을 이용한 유엠티에스 기지국의 이중화버스제어장치
KR100680525B1 (ko) 광 전송시스템에서의 hdlc포트 전송장치 및 방법
JPH02280439A (ja) 先き入れ先だしメモリを用いた時分割方式よりパケット方式へのデータ変換回路
AU6524790A (en) Packet/fast packet switch for voice and data
KR100590171B1 (ko) Isdn 메시지 처리 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee