KR20050046588A - 매체 플랫폼 - Google Patents

매체 플랫폼 Download PDF

Info

Publication number
KR20050046588A
KR20050046588A KR1020040092201A KR20040092201A KR20050046588A KR 20050046588 A KR20050046588 A KR 20050046588A KR 1020040092201 A KR1020040092201 A KR 1020040092201A KR 20040092201 A KR20040092201 A KR 20040092201A KR 20050046588 A KR20050046588 A KR 20050046588A
Authority
KR
South Korea
Prior art keywords
media
dma
module
tmc
slot
Prior art date
Application number
KR1020040092201A
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 KR20050046588A publication Critical patent/KR20050046588A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

본 발명은 매체 플랫폼을 위한 방법, 시스템 및 장치에 관한 것이다. 하나의 방법은 DMA 메모리 모듈(226)의 DMA 슬롯(230)에 매체 데이터 트래픽을 접속시키라는 DMA 요청을 수신하는 것이다. 가용 DMA 슬롯의 풀(pool)로부터 이용 가능한 DMA 슬롯(230)이 정해지고, 매체 데이터 트래픽을 위해 할당된다(209). DMA 슬롯은 그 DMA 슬롯이 더 이상 사용되지 않으면, 이용 가능한 DMA의 풀로 릴리스된다(210). 또한, 본 방법은 할당된 DMA 슬롯에 따라 DMA 메모리 모듈(226)과 DSP 소프트웨어 모듈(228) 사이에 매체 데이터 트래픽을 접속시키는 TMC 프록시(220)를 사용하는 것을 포함한다.

Description

매체 플랫폼{DMA SLOT ALLOCATION}
다른 것들 중에서 전자 통신 시스템은 컴퓨팅 장비의 네트워크를 포함할 수 있다. 컴퓨팅 장비는 운영 체제 소프트웨어 및 운영 체제 소프트웨어 상에서 연관된 API(application program interface)를 가지고 있는 컴퓨터 장치를 포함한다. 일반적으로, 장비가 그 시스템 및 네트워크 구조로 다른 역할을 할 수 있게 하는 전자 통신 프로그램은 특정 API 및 운영 체제 소프트웨어와 함께 실행되도록 제작된다. 예컨대, 다양한 전자 통신 컴퓨팅 장비는 제공된 컴퓨팅 장치가 매체 플랫폼으로서 기능할 수 있게 하는 프로그램을 포함할 수 있다.
전자 통신 산업에서 사용되는 매체 플랫폼은 트렁크 라인, 스위치, 라우터, 서버 및 데이터베이스와 같은 하드웨어 구성요소를 포함한다. 또한, 매체 플랫폼은 소프트웨어, 애플리케이션 모듈, 펌웨어 및 하드웨어 구성요소들 상에서 동작할 수 있는 기타 컴퓨터 실행 가능 인스트럭션을 포함할 수 있다. 오늘날의 매체 플랫폼에서의 서비스가 보다 수적으로 증가되고, 보다 기능적이거나 인텔리전트해짐에 따라, 이들은 매체 플랫폼 상에 제공되는 소트프웨어 툴과의 협력을 제공할 수 있다.
매체 플랫폼 상의 어떤 기능은 호 신호를 처리하는 것과 관련하여 DSP(digital signal processing) 모듈 및 DMA(direct memory access) 모듈의 사용을 포함한다. 예컨대, DSP 모듈은 고속 푸리에 변환과 같은 각종 알고리즘을 이용하여 프로세싱 및 라우팅되는 호 신호를 분석하기 위해 사용된다. DMA 모듈은 데이터 전달 때마다 프로세서를 사용하는 대신에, 매체 플랫폼 상에서, 예를 들어, 하나의 메모리로부터 또 다른 메모리로 데이터(가령, 호 신호 또는 기타 매체 데이터 트래픽)를 라우팅하는 회로를 포함한다. 매체 데이터 트래픽은 음성, 데이터, 비디오 유형 신호 등을 포함한다. DMA 모듈과 연관되어 있는 DMA 슬롯은 매체 플랫폼 상의 매체 채널 및/또는 기타 버스 슬롯을 DMA 모듈로 접속시키기 위해 사용될 수 있다.
어떤 매체 플랫폼에서, DMA 슬롯의 할당은 컴퓨팅 장치의 운영 체제 계층에서 프록시 모듈에 의해 처리된다. DMA 슬롯은 매체 플랫폼 상의 특정 매체 채널 에 직접 할당 및 회로 접속될 수 있고/있거나 매체 플랫폼 상의 버스 슬롯 또는 프록시 모듈은 선도착 선우선 처리 방식(first come first serve basis)으로 슬롯을 할당할 수 있다. 이러한 프록시 모듈은 특정 하드웨어 세트, 예를 들어, 특정 유형의 매체 채널을 구비하는 특정 매체 카드와 함께 동작하고, 특정 유형의 운영 체제와 함께 작동하는 소프트웨어, 가령, 컴퓨터 실행 가능 인스트럭션을 포함하도록 설계된다. 예를 들어, 통상적인 매체 플랫폼은 DMA 슬롯을 SONET 유형 TMC(telecommunication media card)의 매체 채널에 할당하는 API를 갖는 프록시 모듈을 포함한다.
DS0은 매체 채널의 일 예이고, 초당 64 킬로 비트(Kb/s) 시그널링 채널을 나타낸다. DS0은 TMC를 위한 형성 블록이다. SONET 유형 TMC는 672 DS0과 등가이고, 초당 45.736 메가 비트(Mb/s)의 신호 레이트를 제공한다. 비교로서, T1 유형 TMC는 전체 96개 매체 채널에 4개의 트렁크(truncks) 또는 스팬(spans)을 포함한다. 1.544 Mb/s의 신호 레이트를 위해 각각의 T1 트렁크 또는 스팬에 24개의 DSO가 제공된다. 비교로서, E1 유형 TMC는 전체 124개의 매체 채널에 4개의 트렁크 또는 스팬을 포함한다. 2.048 Mb/s를 위해 각각의 E1 트렁크 또는 스팬에 31개의 DSO가 제공된다. J1 유형 TMC의 J1 트렁크 또는 스팬은 TMC의 T1 트렁크 또는 스팬과 등가인 일본 사양이다.
복수의 T1, E1 및/또는 J1 유형 TMC가 매체 플랫폼 상에 제공될 수 있다. 예를 들어, 7개의 T1 유형 TMC는 하나의 SONET 유형 TMC 상의 개수와 동일한 672개의 매체 채널을 제공할 것이다. 그러나, SONET 유형 TMC의 매체 채널 상의 신호는 T1, E1 및/또는 J1 유형 TMC 상의 매체 채널의 레이트 및 프레이밍 포맷과 다른 레이트 및 프레이밍 포맷을 가진다. 이에 따라, SONET 유형 TMC의 매체 채널에 DMA 슬롯 접속을 할당하도록 설계되는 프록시 모듈은 또 다른 유형의 TMC의 매체 채널에 DMA 슬롯 접속을 할당하기에는 적합하지 않다.
또한, 매체 플랫폼 상의 TMC는 당업자라면 알고 있고 이해하는 바와 같이, 버스 슬롯을 포함하여 복수의 TMC간의 신호 접속을 연결 및/또는 기타 네트워크 시스템 기능성을 위해 사용되는 버스 슬롯을 포함할 수 있다. 예를 들어, 당업자라면, 알고 있고 이해하는 바와 같이, H100 유형의 버스 슬롯은 서로 다른 TMC, 예를 들면, 복수의 T1 유형 TMC 상의 매체 채널들간의 접속을 연결하기 위해 사용될 수 있다. 매체 채널은 프로그램 애플리케이션이 실행하기 위한 인스트럭션과 매체 플랫폼의 운영 체제와 통신하는 API의 사용에 따라 TMC 상의 버스 슬롯에 접속될 수 있다. H100 버스는 당업자라면 알고 있는 바와 같이, TMC간의 접속을 연결하기 위하여 사용될 수 있는 버스 슬롯의 유형의 일 예이다. 그리고, 당업자라면 알고 있는 바와 같이, TMC 상의 DS0 및 버스 슬롯은 ISDN(integrated service digital network)의 일부로서 사용될 수 있다. 위에서 언급한 바와 같이, 호 신호는 매체 플랫폼 상의 매체 채널 또는 버스 슬롯 상에서 전달될 수 있는 매체 데이터 트래픽의 한가지 형태이다.
전자 통신 분야에서, 추가의 전자 통신 애플리케이션 서비스를 제공하기 위해 보다 새로운 프로그램이 지속적으로 제작되고 있다. 이들 새로운 프로그램의 다수는 리눅스형 운영 체제와 함께 기능하도록 제작된다. 오늘날의 매체 플랫폼은 SONET 유형 TMC와 다른 TMC를 이용하여 또는 리눅스형 운영 체제를 이용하여 매체 채널 및 버스 슬롯에 DMA를 동적으로 할당하는 방법을 제공하지는 않는다.
본 발명의 실시예는 매체 플랫폼 상의 T1, E1 및/또는 J1 유형 TMC의 매체 채널 및 버스 슬롯을 이용하여 DMA(direct memory access) 슬롯을 할당하는 프로그램 및 방법을 제공한다. 본 명세서에서 설명되는 프로그램 실시예는 실시간으로 엔드 포인트, 가령, T1, E1 및/또는 J1 유형 TMC와 연관되어 있는 매체 채널 및 버스 슬롯을 매체 플랫폼 상의 DMA 슬롯에 할당하는 소프트웨어로 구성되는 프록시 모듈을 포함한다. 실시간 할당은 매체 플랫폼 상에서의 성능 및 스위칭 능력을 향상시킬 수 있다. 프로그램 실시예는 아래에서 더 정의되는 매체 제공자 모듈 및 매체 그룹 모듈을 이용하여 DMA 슬롯 할당 인스트럭션이 운영 체제 계층("커널" 공간이라고도 함) 위의 논리 계층("사용자" 공간이라고도 함)에서 처리될 수 있게 한다. 매체 제공자 모듈 및 매체 그룹 모듈은 API(application program interface) 라이브러리로의 액세스를 포함한다. 다양한 실시예에서, 이들 라이브러리 내의 API는 T1, E1 및/또는 J1 유형 TMC와 연결하여 DMA 슬롯을 할당 및 릴리스하기 위해 매체 제공자 모듈 및 매체 그룹 모듈에 의해 실행되는 인스트럭션과 함께 사용된다.
본 명세서에서 사용되는 논리 계층은 운영 체제 계층 및 애플리케이션 계층을 포함한다. 운영 체제 계층은 컴퓨팅 장치 상에서 실행되는 애플리케이션 프로그램의 표준을 설정한다. 애플리케이션 계층은 운영 체제 계층 위에 배치되는 논리 계층이라고 간주된다. 본 명세서에서 사용되는 바와 같이, "사용자" 공간 또는 "사용자-모드"는 예를 들어, 운영 체제 계층 또는 "커널" 공간에 있는 코드의 계층보다 용이하게 액세스할 수 있는, 예를 들어 오픈 소스 코드를 포함하는 코드의 계층을 의미한다. 당업자는 사용자 모드에서의 디버깅이 "커널-모드"에서보다 용이하고, 문제가 덜 치명적이고, 예를 들면, 커널 모드에서 어떤 것이 나쁘게 되면 전체 시스템에 영향을 미칠 수 있지만, 사용자 모드에서의 이러한 문제는 프로세스 재시작만을 필요로 할 수 있다는 것을 이해할 수 있을 것이다. 또한, GPL(general publick license)의 리눅스 구현은 예를 들어, 그 코드가 액세스될 수 있는 오픈 소스 코드를 지정한다. 도 2b와 함께 나타낸 바와 같이, 다양한 실시예는 사용자 공간에 프록시 모듈 및 DSP 모듈과 연관되어 있는 어떤 소스 코드를 배치하여 공통 코드 기반을 확대하고, 신규 모듈의 개발 및 디버깅을 보다 용이하게 한다.
도 1은 매체 플랫폼(104)의 블록도이다. 도 1에 도시한 것과 같은 매체 플랫폼, 설비는 전자 통신 서비스를 사용자에게 제공 또는 공급한다. 예를 들어, 매체 플랫폼(104)은 LEC(local exchange carrier)가 발신하는 호 신호를 수신하고, 예로서, 홈, 또 다른 LEC 또는 특정 전자 통신 서비스(가령, 가상의 사설 네트워크 호 라우팅 뿐만 아니라 음성 메일, 수신자 부담 800 호 라우팅, 대화식 음성 응답 애플리케이션, DTMF(dual tone multiple frequency))와 같은 의도한 목적지에 호를 라우팅하기 위해 스위치(154)로 호 신호를 전달한다. 위에서 언급한 바와 같이, 매체 플랫폼 상의 어떤 전자 통신 서비스 기능은 호 신호를 프로세싱하는 것과 관련하여 DSP 모듈 및 DMA 모듈을 채용한다.
매체 플랫폼(104)은 하드웨어 및 소프트웨어 자원을 둘 다 포함한다. 이들 중에서, 매체 플랫폼은 프로세서(150) 및 메모리(152)를 포함할 수 있다. 메모리(152)는 매체 플랫폼(104) 상에서 이것에 의해 실행될 수 있는 각종 함수 및 전자 통신 서비스 애플리케이션에 관련되어 있는 소프트웨어(가령, 컴퓨터 판독 가능 인스트럭션 및 기타 프로그램)를 저장할 수 있다. 프로세서(150)는 매체 플랫폼(104)의 동작을 제어하기 위한 제어 로직의 일부로서 컴퓨터 실행 가능 인트럭션에 입각하여 동작할 수 있다. 메모리(152)는 플래시 메모리, ROM(read only memory), RAM(random access memory) 및 광 메모리 등과 같은 비휘발성 및 휘발성 메모리를 포함할 수 있다.
예로서, 추가 하드웨어 및 소프트웨어 자원은 도 1에 도시되어 있고, DSP(digital signal processing) 모듈(156) 및 DMA(direct memory access) 모듈(158)을 포함할 수 있다. DSP 모듈(156) 및 DMA 모듈(158)은 프로세스(150) 상에서 실행될 수 있는, 메모리(152)로부터의 인스트럭션과 함께 사용된다. 의도한 목적지로 호 신호의 라우팅을 완료하기 위해, TMC(telecom media card)(116) 상에서 이용할 수 있는 DSP 모듈(156) 및 DMA 모듈(158)은 프로세서(150) 및 메모리(152) 자원과 함께 작동하여 호 신호를 특정 매체 채널에 제공한다. 도 1은 주어진 매체 플랫폼 상에 도면 부호(116-1 내지 116-N)로 도시한 복수의 TMC가 포함될 수 있음을 나타낸다. TMC(telecom media card)는 개개의 매체 채널을 포함하고, TMC의 유형은 그 매체 채널 상에서의 신호에 대한 데이터 레이트 및 프레이밍 포맷을 결정한다. TMC(116-1 내지 116-N)는 동일한 및/또는 상이한 유형의 TMC를 포함할 수 있다.
PSTN(publicaly switched telephone network)에서의 스위치와 같은 스위치(154)는 의도한 목적지로의 신호를 계속하여 라우팅하기 위하여, 하나의 매체 채널 상의 호 신호 또는 다른 매체 데이터 트래픽을 또 다른 이용 가능한 매체 채널로 접속시킨다. 스위치(154)는 SS7(signaling system 7) 제어 신호를 기초로 하여 그 기능을 수행할 수 있다. SS7은 시그널링을 위해 사용되는 잘 알려져 있는 대화형 통신 프로토콜이고, 전자 통신 매체 플랫폼과 같은 컴퓨팅 플랫폼과 통신하기 위해 사용될 수 있다.
위에서 언급한 바와 같이, DSP 모듈(156)은 고속 푸리에 변환과 같은 각종 알고리즘을 이용하여 프로세싱 및 라우팅되는 호 신호를 분석할 수 있다. 매체 플랫폼 상의 DMA 모듈(158)은 데이터 전달 때마다 프로세서(150)를 이용하는 대신에, 매체 플랫폼 상에서 데이터(가령, 호 신호 또는 다른 매체 데이터 트래픽)를 하나의 메모리로부터 또 다른 메모리로 라우팅하는 회로를 포함한다. 도입부에서 설명한 바와 같이, 매체 플랫폼은 매체 플랫폼(104)의 운영 체제 중 특정 운영 체제 유형, 가령, 리눅스, 맥, 유닉스 등과 함께 사용하도록 생성된 애플리케이션 계층 내에 프로그램을 포함할 수 있다. 다양한 실시예에서, 운영 체제 유형은 T1, E1 및/또는 J1 유형 TMC 하드웨어와 함께 사용되는 리눅스 운영 체제이다. 그러나, 실시예는 이에 국한되지 않는다. 예를 들어, 운영 체제는 T1, E1 및/또는 J1 유형 TMC 하드웨어와 함께 사용되는 유닉스형 운영 체제를 포함할 수 있다.
매체 플랫폼 상의, 예를 들어, 메모리(152)에 상주하고 프로세서(150)에 의해 실행될 수 있는 소프트웨어는 메모리(152) 내의 특정 위치, 가령, DSP 및 DMA 모듈을 채용하는 가입자의 음성 사서함 내로 음성 메세지 또는 오디오 파일을 기록하게 하기 위한 인스트럭션을 포함할 수 있다. 또한, 특정 음성 사서함로부터 기록된 음성 메세지를 매체 채널을 거꾸로 가로질러 재생하기 위해, 또 메모리와 프로세서 및 위에서 설명한 DSP 모듈 및 DMA 모듈과 같은 기타 하드웨어를 이용하여 매체 플랫폼 상의 소프트웨어가 호 신호를 수신하고, 호 신호 내에 인코딩되어 있기 위한 인스트럭션을 번역하여 실행할 수 있다.
매체 플랫폼 상에서 실행될 수 있는 전자 통신 서비스 애플리케이션의 예는 가상의 사적 네트워크 호 라우팅 뿐만 아니라 음성 메일, 수신자 부담 800 호 라우팅, 대화식 음성 응답 애플리케이션(IVR), DTMF(dual tone multiple frequency) 애플리케이션을 포함한다. IVR 애플리케이션은 의도한 목적지로 호 신호의 라우팅을 완료하기 위하여 가령 DSP 모듈을 이용하여 발신 음성 신호를 프로세싱하고, 그 호 신호를 특정 매체 채널(116)에 제공할 수 있는 애플리케이션을 포함한다. DTMF 서비스는 의도한 목적지로 그 호 신호의 라우팅을 완료하기 위해, 터치 톤 전화 상의 버튼을 누르는 것으로부터 생성되는 오디오 유형 신호를 프로세싱하고 그 호 신호를 TMC(116)의 특정 매체 채널에 제공할 수 있는 애플리케이션을 포함한다.
예를 들어, 메모리(152) 내에 있고 프로세서(150)에 의해 실행될 수 있는 소프트웨어는 TMC(116) 상의 특정 매체 채널 상에서 신호를 검색할 수 있고, 이와 함께 DSP 모듈(156), DMA 모듈(158) 및/또는 스위치(154)와 연관되어 있는 하드웨어는 신호를 음성 사서함과 같은 의도한 목적지에 라우팅할 수 있다.
당업자라면, 프로그램 애플리케이션이 호 신호를 생성 및/또는 호 신호를 검색하는 실행 가능 인스트럭션을 포함할 수 있다는 것을 이해할 수 있을 것이다. 실행 가능 인스트럭션은 제어 스크립트 및 확인 스크립트를 포함할 수 있다. 제어 스크립트는 호 신호를 구동하거나 매체 파일을 재생하기 위해 사용되는 소프트웨어이다. 확인 스크립트는 그 신호가 호 신호, DTMF 톤 또는 매체 플랫폼(104)으로 또는 매체 플랫폼(104)으로부터 재생되는 매체 파일인 것과 관계없이 신호, 가령, 매체 채널로부터의 매체 데이터 트래픽을 수신할 수 있다. 비제한적인 예로서, 제어 스크립트는 DTMF 신호를 생성하거나 매체 파일을 재생하기 위해 사용될 수 있고, 확인 스크립트는 DTMF 신호 또는 기록된 매체 파일을 검색하기 위해 사용될 수 있다. 제어 스크립트 및 확인 스크립트는 자바 스크립트와 같은 프로그래밍 언어로 기록될 수 있다. 그러나, 실시예는 특정 프로그래밍 언어로 기록된 인스트럭션에 국한되지 않는다. 당업자라면, API가 매체 채널, 버스 슬롯 및 DMA 슬롯 접속 에 대한 요청을 포함할 수 있다는 것을 인식할 수 있을 것이다.
도 2a는 매체 플랫폼(200) 상에서 논리 계층들간에 접속이 있는 논리 계층의 블록도이다. 다양한 실시예에서, 매체 플랫폼(200)은 리눅스, 유닉스 또는 맥 기반 운영 체제 등을 포함할 수 있다. 도 2a의 실시예에서, 매체 플랫폼은 세 개의 서로 다른 부분으로 나뉘어져 도시되어 있다. 이들 섹션은 사용자 공간(203)(가령, 애플리케이션 계층), 커널 공간(205)(가령, 운영 체제 계층) 및 하드웨어 공간(207)(가령, 매체 채널 및 버스 슬롯이 연관되어 있는 TMC)로서 도시되어 있다.
프로세서 로직 및 메모리를 구비하는 컴퓨팅 장치, 예를 들어, 본 명세서에서 설명하는 매체 플랫폼은 장치가 각종 기능 또는 역할을 수행하는 것을 가능하게 하는 운영 체제 계층 및 애플리케이션 계층을 포함한다. 운영 체제 계층은 컴퓨팅 장치를 실행시키는 마스터 제어 프로그램을 포함한다. 당업자라면 이해할 수 있는 바와 같이, 마스터 제어 프로그램은 작업 관리, 장치 관리 및 데이터 관리 등을 제공한다. 운영 체제 계층은 다수의 API를 통해 운영 체제 계층 상에서 실행되는 프로그램 애플리케이션과의 통신을 포함한다. 즉, API는 운영 체제와 통신하는 애플리케이션 프로그램이 사용하는 언어 및/또는 메세지를 포함한다. API의 언어 및/또는 메세지 포맷은 운영 체제가 애플리케이션 계층 내의 프로그램 애플리케이션으로부터 수신되는 실행 가능한 인스트럭션을 번역하고 결과를 애플리케이션으로 리턴하게 해준다.
API는 프로그램 내에 함수 호출을 기록함으로써 구현되고, 실행을 위해 필요한 서브루틴으로의 연결을 제공한다. 윈도우즈, 맥 또는 유닉스와 같은 전부 갖춘 운영 체제 내에서는 1000번 이상의 API 호출이 있다.
본 발명의 프로그램 실시예는 메모리 내에 API, 예컨대, 메모리 내에 라이브러리와, 프로그램 애플리케이션이 DMA 슬롯을 T1, E1 및/또는 J1 유형 TMC 상의 매체 채널 및 버스 슬롯에 할당할 수 있게 하는 새로운 프록시 모듈을 제공한다. 도 2a에 도시하는 바와 같이, API는 매체 제공자 모듈(202) 및 매체 그룹 모듈(206)(아래에 더 설명됨)과 함께 제공되어 DMA 슬롯을 매체 채널 및 버스 슬롯에 할당하고 릴리스한다.
도 2a에서, 애플리케이션 계층에서의 논리적 프로세서와 메모리의 상호작용은 블록(201)으로 그룹화되었다. 프로세서와 메모리의 상호작용은 도 1에 도시하는 바와 같이 프로세서(150) 및 메모리(152)의 상호작용을 나타낼 수 있다. 블록(201)은 매체 제공자 모듈(202)을 포함한다. 매체 제공자 모듈(202)은 매체 채널, 버스 슬롯 및 DMA(direct memory access) 슬롯 접속(아래에 설명됨)에 대한 프로그램 애플리케이션 요청을 수신할 수 있다. 매체 제공자 모듈(202)은 제 1 API(application program interface) 라이브러리(204)를 액세스한다. 매체 제공자 모듈은 제 1 API 라이브러리(204)로부터, 매체 채널, 버스 슬롯 및 DMA(direct memory access) 슬롯 접속을 설정 및 설정 해제하기 위한 접속 요청을 실행하는 API를 검색할 수 있다. 다양한 실시예에서, 제 1 API 라이브러리는 JNI(java native interface) 라이브러리이다.
블록(201)은 매체 그룹 모듈(206)을 더 포함한다. 통상적으로, 매체 그룹 모듈(206)은 매체 채널, 버스 슬롯 및 DMA 슬롯을 접속하라는 프로그램 애플리케이션 요청을 수신할 것이다. 프로그램 실시예는 특정 접속 요청을 매체 제공자에게 시그널링하기 위한 인스트럭션을 매체 그룹 모듈(206)이 실행하게 한다. 매체 그룹 모듈(206)은 제 2 API 라이브러리(208)를 액세스한다. 매체 그룹 모듈(206)은 매체 제공자 모듈(202)로부터 DMA 슬롯 할당 인스트럭션(209)을 수신할 수 있다. 매체 그룹 모듈(206)은 제 2 API 라이브러리(208)로부터, 매체 제공자 모듈(202)로부터 수신되는 DMA 슬롯 할당 인스트럭션에 따라 DMA 슬롯을 할당하는 API를 검색할 수 있다. 다양한 실시예에서, 제 2 API 라이브러리는 JNI 및 C++ 라이브러리이다.
매체 제공자 모듈(202)은 현재 사용되고 있는 DMA 슬롯 및 현재 사용되고 있지 않은 DMA 슬롯을 추적할 수 있는 프로그램 실시예를 포함한다. 다양한 실시예에서, 매체 그룹 모듈(206)은 DMA 슬롯이 더 이상 사용되고 있지 않는다는 것을 식별할 수 있고, 매체 제공자 모듈(202) 내의 실행 가능한 인스트럭션에 의해 추적되는 가용 DMA 슬롯의 풀에 그 DMA 슬롯을 릴리스 또는 추가할 수 있다. 매체 그룹 모듈(206)은 매체 제공자 모듈(202)에게 DMA 슬롯이 또 한번 이용 가능하다는 것을 시그널링하기 위한 인스트럭션을 실행할 수 있다. 즉, 매체 그룹 모듈(206)은 DMA 슬롯을 릴리스할 수 있고, 특정 DMA 슬롯이 릴리스되지 않은 매체 제공자 모듈(202)에게 인스트럭션(210)을 전달할 수 있다.
도 2a에 도시하는 바와 같이, 제 1 API 라이브러리(204)를 사용하면, 매체 제공자 모듈(202)은 제어 경로(212)를 통해 TMC(telecom media card)(214) 상의 매체 채널, 버스 슬롯 및 DMA 슬롯 접속을 설정 및 설정 해제하기 위한 접속 요청을 실행할 수 있다. 즉, 매체 제공자 모듈(202)은 제 1 API 라이브러리(204)로부터, TMC(214)와 연관되어 있는 제 1 드라이버(216)와의 매체 채널, 버스 슬롯 및 DMA(direct memory access) 슬롯 접속을 위한 애플리케이션 요청을 할당하는 API를 검색할 수 있다. 드라이버는 신호 또는 전류를 제공하여 전송선을 활성화하는 하드웨어 장치(통상적으로 트랜지스터)를 포함할 수 있다. 또한, 드라이버는 운영 체제를 주변 장치 또는 단말기 접속, 예컨대 매체 채널 또는 버스 슬롯에 연결하는 프로그램 루틴(예를 들어, 소프트웨어 드라이브일 수 있음)을 포함할 수 있다. 하드웨어의 명령 언어 및 특성을 이해하는 프로그래머가 제작한 드라이버는 애플리케이션이 요청하는 기능을 수행하기 위해 필요한 머신 언어를 포함한다. 통상적으로, 운영 체제는 드라이버를 호출하고, 드라이버는 장치를 "구동"한다. 매체 채널은 도면 부호(218)로서 도시되어 있다. 버스 슬롯은 도면부호(219)로서 도시되어 있다. TMC(214) 상에서의 매체 채널 및 버스 슬롯 접속은 ISDN 접속을 위한 T1 매체 채널 및 H100 버스 슬롯을 포함할 수 있다. 당업자라면 이해할 수 있는 바와 같이, 이러한 구성에서 매체 플랫폼(200) 상에 하나보다 많은 T1 유형 TMC가 제공될 수 있고, 버스 슬롯(219)은 하나의 TMC 상의 매체 채널(218)을 또 다른 TMC(명료성을 위해 도시하지는 않음) 상의 매체 채널로 접속하기 위해 사용될 수 있다.
도 2a는 제 2의 가령, TMC(214)와 연관되어 있는 DMA 드라이버(222)에 결합되는 TMC 프록시 모듈(220)을 도시한다. TMC 프록시 모듈(220)은 매체 그룹 모듈(206)로부터 DMA 슬롯 할당 인스트럭션을 수신할 수 있고, DMA 슬롯 및 버퍼 어드레스 인스트럭션(224)을 제 2 드라이버(222)에 전달할 수 있다. 도 2a에 도시하는 바와 같이, DMA(direct memory access) 모듈(226)은 TMC 프록시 모듈(220)과 TMC(214) 사이에 결합된다. 매체 채널 및 버스 슬롯은 DMA 슬롯 및 버퍼 어드레스 인스트럭션을 기초로 하여 DMA 모듈(226)의 DMA 슬롯에 접속된다.
도 2a에 도시하는 바와 같이, TMC 프록시 모듈(220)은 TMC(214)를 이용하여 매체 데이터 트래픽을 프로세싱하기 위해 DSP(digital signal processor) 소프트웨어 모듈(228)에 또한 결합된다. DSP(digital signal processor) 소프트웨어 모듈(228)은 TMC 프록시 모듈(220)에 결합되어 매체 데이터 트래픽을 프로세싱한다. TMC 프록시 모듈(220)은 DSP 소프트웨어 모듈(228)과, TMC 프록시 모듈(220)과 TMC(214) 사이에 결합되는 DMA 메모리 모듈(226)간에 매체 데이터 트래픽 액세스를 제공한다. 도 2a에 도시하는 바와 같이, DMA 메모리 모듈(226)은 회로를 통해 TMC(214) 상의 DMA 메모리 슬롯(230)에 결합되어 DMA 데이터 경로(232)를 제공할 수 있다.
도 2a는 비리눅스형 운영 체제 기반 매체 플랫폼, 예컨대 유닉스 커널 구현에서의 일 실시예를 도시한다. 본 실시예에서, 이 구현은 커널 버퍼 또는 운영 체제 계층 버퍼(도시되지 않음) 내로 라우팅되는 DMA 매체 데이터 트래픽을 갖는다. 이러한 버퍼는 잘 알려져 있고, 본 발명을 모호하게 하지 않도록 본 명세서에서는 상세히 설명되지 않는다. 도 2a의 프로그램 실시예는 위에서 설명한 바와 같이, DSP 모듈(228)의 입력으로 매체 데이터 트래픽을 접속시키기 위한 위에서 설명한 인스트럭션을 프록시 모듈(220) 내에 포함한다. 또한, 도 2a의 프로그램 실시예는 DSP 모듈 프로세싱을 위한 타이밍을 제공하기 위해 DMA 완료를 카운트할 수 있는 소프트웨어 인스트럭션을 프록시 모듈(200) 내에 포함한다. 당업자라면 소프트웨어 인스트럭션이 DMA 완료를 카운트하기 위해 사용될 수 있다는 것을 이해할 수 있을 것이다.
도 2b는 유닉스, 리눅스 또는 기타 운영 체제 기반 매체 플랫폼의 또 다른 실시예를 도시한다. 도 2b에 도시하는 바와 같이, DPS 모듈(228) 및 프록시 모듈의 일부(220-1)가 사용자 공간(203)에 제공된다. 위에서 언급한 바와 같이, 리눅스 구현에서, GPL(general public license)의 항은 오픈 소스 코드, 예컨대 액세스될 수 있는 소스 코드를 지정한다. 그래서, 도 2b에 도시하는 바와 같이, 매체 데이터 트래픽을 프로세싱하기 위한 인스트럭션을 DSP 모듈(228) 내에 포함하는 프로그램 실시예가 사용자 공간(203)에서 이용 가능하게 된다. 위와 마찬가지로, DMA 완료를 카운트하기 위한 소프트웨어 인스트럭션을 포함하는 프로그램 실시예도 사용자 공간(203)에 도시되어 있는 프록시 모듈의 일부(220-1)에서 이용 가능하게 될 수 있다. 도 2b의 프록시 모듈의 커널부(220-2)는 다음 DMA 기능이 완료되는 것을 대기하기 위한 소프트웨어 인스트럭션을 가지고 있는 프로그램 실시예를 포함한다. 당업자라면, 소프트웨어 인스트럭션이 다음 DMA 기능이 완료되는 것을 추적 및 대기하기 위해 사용될 수 있는 방식을 이해할 수 있을 것이다. 리눅스 구현에서, 프록시 모듈의 커널부(220-2)는 오픈 소스로서 릴리스된다. 당업자라면, 도 2b의 실시예에서, 사용자 공간(203)에 DSP 모듈(228) 및 프록시 모듈의 일부(220-1)를 배치시키면, 보다 용이하게 식별되는 바와 같이, 사용자 모드 애플리케이션 계층에서의 디버깅이 커널 모드, 가령, 운영 체제, 계층에서보다 용이하기 때문에, 매체 플랫폼 내의 운영 체제 유형과 관계없이 새로운 모듈의 개발 및 디버깅이 보다 용이하게 된다는 것을 이해할 수 있을 것이다.
또한, 도 2b를 참조하여 다음 예가 제공된다. 그러나, 본 발명의 실시예는 이들 예에 국한되지 않는다. 비제한적인 예로서, 유닉스 구현에서, DMA 매체 데이터 트래픽은 사용자 공간 버퍼, 예컨대, 보다 상위의 애플리케이션 계층, 비운영 체제(비커널) 버퍼 내로 라우팅된다. 이는 프록시 모듈의 사용자 공간 부분(220-1)으로 라우팅되는 DMA 슬롯 및 버퍼 어드레스(224)로 도시되어 있다. 이전과 마찬가지로, 버퍼는 당업자에게 잘 알려져 있으므로 본 발명을 모호하게 하지 않기 위하여 본 명세서에서는 상세히 설명되지 않는다. 도 2b의 프로그램 실시예는 버퍼로부터의 매체 데이터 트래픽을 프로세싱되도록 DSP 모듈(228) 내로 접속시키기 위한 인스트럭션을 프록시 모듈의 사용자부(220-1)에 포함한다. 또한, 프로그램 실시예는 DSP 모듈(228) 내에서의 프로세싱을 위한 타이밍을 제공하고 DMA 완료가 카운트될 수 있도록 DMA 완료를 대기하기 위한 인스트럭션을 프록시 모듈의 사용자부(220-1)에 포함한다. 또, 당업자라면 DMA 완료를 카운트하기 위해 소프트웨어 인스트럭션이 사용될 수 있는 방식을 이해할 수 있을 것이다. 도 2b의 프로그램 실시예는 다음 DMA가 완료하는 것을 대기하기 위한 인스트럭션을 프록시 모듈의 커널부(220-2)에 포함한다.
도 2b, 예를 들어 리눅스 구현을 참조하는 또 다른 예로서, DMA 매체 데이터 트래픽은 커널 공간 버퍼로 라우팅된다. 또, 이러한 버퍼는 당업자에게 잘 알려져 있으므로 본 발명을 모호하게 하지 않도록 본 명세서에서는 상세히 설명되지 않는다. 본 실시예에서, 도 2b의 프로그램 실시예는 커널 버퍼가 사용자 공간(203) 내에서 보일 수 있도록 커널 버퍼를 사용자 공간으로 매핑하기 위한 인스트럭션을 프록시 모듈의 커널부(220-2)에 포함한다. 이는 도 2b에 DMA 슬롯 및 버퍼 어드레스(224)가 프록시 모듈의 사용자 공간부(220-1)에 제공되는 것으로 도시되어 있다. 도 2b의 프로그램 실시예는 버퍼로부터의 매체 데이터 트래픽을 프로세싱되도록 DSP 모듈(228)로 접속시키기 위한 인스트럭션을 프록시 모듈의 사용자부(220-1)에 포함한다. 이전의 유닉스 예에서와 마찬가지로, 프로그램 실시예는 DSP 모듈(228) 내에서의 프로세싱을 위한 타이밍을 제공하고 DMA 완료가 카운트될 수 있도록 DMA 완료를 대기하기 위한 인스트럭션을 프록시 모듈의 사용자부(220-1)에 포함한다. 또, 당업자라면, DMA 완료를 카운트하기 위해 소프트웨어 인스트럭션이 사용될 수 있는 방식을 이해할 수 있을 것이다.
도시한 전체 예에서, 매체 데이터 트래픽을 DMA 모듈에 접속시키는 프록시 모듈 인스트럭션은 예를 들면 위에서 설명한 DMA 슬롯 할당 인스트럭션으로부터 어느 DMA 메모리 모듈, 예컨대 DMA 메모리 모듈(226)이 사용되어야 하는 지 그리고 그 모듈 내에서 사용되기 위해 복수의 DMA 메모리 슬롯(230) 중에서 어느 DMA 메모리 슬롯 또는 채널, 가령 DMA 메모리 슬롯 또는 채널로부터의 DMA 경로(232)가 사용되어야 하는 지를 식별한다. 매체 채널(218), 버스 슬롯(219) 및 DMA 슬롯/채널(230/232) 사이에 접속시키기 위한, 매체 제공자 모듈(202)로부터의 인스트럭션에 따라 제어 경로(212)가 사용된다.
또한, 도 3 및 4는 매체 플랫폼을 위한 다양한 방법 실시예를 나타낸다. 명시적으로 언급되지 않으면, 본 명세서에서 개시하는 방법 실시예는 특정 순서 또는 시퀀스에 제한되지 않는다. 또한, 개시하는 방법 실시예 또는 실시예의 요소의 일부는 동시에 발생 또는 수행될 수 있다. 실시예는 소프트웨어 프로그램(가령, 컴퓨터 실행 가능 인스트럭션), 하드웨어, 애플리케이션 모듈 및 본 명세서에서 도시한 시스템 및 장치 또는 도시하지 않는 시스템 및 장치 상에서 실행될 수 있는 것에 의해 수행될 수 있다. 그러나, 본 발명의 실시예는 특정 프로그래임 언어로 제작된 소프트웨어에 국한되지 않는다. 그리고, 본 발명의 실시예를 수행하기에 적합한 소프트웨어 애플리케이션 모듈 및/또는 컴퓨터 실행 가능 인스트럭션이 하나 이상의 장치 또는 위치 또는 다수의 위치에 상주할 수 있다.
도 3은 매체 플랫폼을 위한 방법 실시예를 나타내는 블록도이다. 도 3에 도시하는 바와 같이, 본 방법은 단계(310)에서, TMC(telecom media card) 상의 매체 채널 및 버스 슬롯을 DMA 메모리 모듈의 DMA 슬롯으로 접속시키라는 DMA 요청을 수신하는 단계를 포함한다. 당업자라면, 프로그램 애플리케이션 인스트럭션이 매체 채널, 버스 슬롯 및 DMA 슬롯 접속에 대한 요청을 포함할 수 있는 방식을 인식할 수 있을 것이다. 본 발명의 실시예를 모호하게 하지 않도록 이는 본 명세서에서 보다 상세히 설명되지는 않는다. 블록(320)에서, 본 방법은 가용 DMA 슬롯의 풀로부터 이용 가능한 DMA 슬롯을 결정하고 DMA 슬롯을 TMC 상의 매체 채널 및 버스 슬롯에 할당하는 단계를 포함한다. 다양한 실시예에서, 본 방법은 위에서 설명한 바와 같이 이용 가능한 DMA 슬롯을 추적하여 TMC 상의 매체 채널 및 버스 슬롯에 할당하기 위한, 매체 제공자 모듈에 제공되는 프로그램 인스트럭션을 포함한다. 본 프로그램 실시예는 또한 이용 가능한 DMA 슬롯을 TMC 상의 매체 채널 및 버스 슬롯에 물리적으로 접속시키기 위한 인스트럭션을 실행시킬 수 있다. 본 프로그램 실시예는 매체 제공자 모듈과 연관되어 있는 API의 세트를 사용하여 위에서 설명한 인스트럭션을 실행하여 제어 경로, 예컨대 도 2a 및 2b에 도시한 제어 경로(212)를 통해 TMC 상의 매체 채널 및 버스 슬롯에 이용 가능한 DMA 슬롯을 접속시킨다.
블록(330)에서, 본 방법은 DMA 슬롯이 더 이상 사용되고 있지 않으면 이용 가능한 DMA의 풀에 DMA 슬롯을 릴리스하는 단계를 포함한다. 도 2a 및 2b에 도시하는 바와 같이, 본 방법은 DMA 슬롯이 더 이상 사용되고 있지 않으면 DMA의 풀에 DMA 슬롯을 릴리스하기 위한, 매체 그룹 모듈에 제공되는 프로그램 인스트럭션을 포함한다. 매체 그룹 모듈의 프로그램 인스트럭션은 매체 그룹 모듈에 제공되는 API 세트를 사용하여 DMA 슬롯 접속을 실행하고 DMA 슬롯을 릴리스한다. 도 2a 및 2b와 관련하여 설명한 바와 같이, 위에서 설명한 이들 인스트럭션이 사용자 공간에 제공된다. 그리고, 블록(340)에 도시하는 바와 같이, 본 방법은 DMA 메모리 모듈과 DSP 소프트웨어 모듈간에 매체 데이터 트래픽을 제공하기 위해 TMC 프록시를 이용하는 단계를 포함한다. 다양한 실시예에서, 본 방법은 DMA의 버퍼로부터의 매체 데이터 트래픽을 DSP 소프트웨어 모듈로 접속하기 위한, 프록시 모듈에 의해 제공되는 프로그램 인스트럭션을 포함한다. 도 2a 및 2b와 함께 도시하는 바와 같이, 프록시 모듈의 프로그램 인스트럭션이 실행하여 DMA 기능 완료를 카운트하고, 이에 따라 DMA 완료를 카운팅함으로써 DPS 모듈 프로세싱을 위한 타이밍을 제공한다. 프로그램 인스트럭션은 DMA 기능이 완료되는 것을 추적 및 대기하여 이용 가능한 DMA 슬롯을 제공한다. 프록시 모듈의 프로그램 인스트럭션은 도 2b에 도시한 바와 같이 DMA 슬롯 접속 및 버퍼 어드레스를 사용자 공간에 제공할 수 있다. 그리고, 도 2b에 도시한 어떤 실시예에 따라, DSP 소프트웨어 모듈용 프로그램 인스트럭션이 이와 마찬가지로 사용자 공간, 예를 들어, 리눅스 구현에 제공되어 오픈 소스 GPL 지시에 따른다. 다양한 실시예에 따라, DMA 슬롯의 동적 할당 및 이러한 TMC가 리눅스 유형 매체 플랫폼 또는 기타 운영 체제 유형 플랫폼 상에 배치되는 지와 관계없이 T1, E1 및/또는 J1 유형 TMC 상의 매체 채널 및 버스 슬롯에 DMA 슬롯의 실시간 접속을 가능하게 하는 프로그램 인스트럭션이 작성된다.
다른 설명으로서, 비제한적인 다음 예가 제공된다. 우선, 호 신호가 SS7 시그널링 채널 상에서 수신되고, 전화 채널, 예컨대, T1 매체 채널 또는 H100 버스 슬롯이 음성 데이터를 운반하기 위해 선택된다. 이는 당업자라면 이미 알고 있고 이해하고 있다. 매체 플랫폼 상의 프로그램 애플리케이션 인스트럭션의 세트가 선택되고 선택된 전화 채널과 함께 시작된다.
당업자라면 인식할 수 있는 바와 같이, 선택된 프로그램 애플리케이션의 인스트럭션이 실행되어 특정 호 신호에 대해 어떤 유형의 신호 프로세싱이 적용될 지를 결정할 수 있다. 선택된 프로그램 애플리케이션 인스트럭션이 실행되어 매체 플랫폼 상에서 수행되는 것이라 알려져 있는 신호 프로세싱 요구사항 세트를 형성할 수 있다. 예를 들어, 이러한 신호 프로세싱 요구사항 세트는 DTMF 신호를 생성 및/또는 검출하고, 음성 사서함으로부터 오디오 기록과 같은 매체 파일을 재생하고, 음성 사서함에 음성 신호를 기록하는 것과 같이 매체 파일을 기록하고, TTS(text to speech) 데이터를 재생하고, IVR과 같은 스피치를 인식 등을 하기 위한 위에서 언급한 제어 스크립트 및 확인 스크립트를 포함할 수 있다.
프로그램 애플리케이션 인스트럭션은 도 2a 및 2b에 설명한 바와 같이 이 신호 처리 요구사항 세트를 수신하는 매체 그룹으로 이 신호 처리 요구사항 세트를 전송한다. 매체 그룹 모듈은 본 명세서에서 설명한 프로그램 실시예에 따른 인스트럭션을 실행하여 신호 프로세싱 요구사항 요청을 구현한다.
매체 그룹 모듈이 신호 프로세싱 요구사항 세트의 수신에 의해 활성화되면, 전화 채널과 함께 프로그램 인스트럭션이 프록시 모듈에 제공된다. 프록시 모듈은 DMA 슬롯을 할당하고, DMA 슬롯 상의 정보와 이와 연관된 버퍼 어드레스를 TMC 상의 DMA 드라이버로 제공하는 프로그램 인스트럭션을 실행한다. TMC 상의 DMA 드라이버는 특정 전화 채널, 예컨대 매체 채널 또는 버스 슬롯을 할당된 DMA 슬롯에 접속시킨다. 또한, DMA 메모리 모듈과 연관되어 있는 DMA 슬롯을 DSP 모듈에 접속시키기 위한 프로그램 인스트럭션이 프록시 모듈 상에서 실행된다.
호가 실행 중인 동안, DSP 모듈과 DMA 슬롯사이에서 교환되는 매체 데이터 트래픽을 수신 및 전송하기 위한 프로그램 인스트럭션이 프록시 모듈 상에서 실행된다. DSP 모듈과 DMA 슬롯간의 매체 데이터 트래픽의 교환은 매체 플랫폼의 프로세서 및 메모리를 사용하여 프로그램 인스트럭션을 실행한다. DMA 슬롯과 TMC 상의 매체 채널 및/또는 버스 슬롯간의 매체 데이터 트래픽을 교환하기 위한 이들 프로그램 인스트럭션이 또한 실행된다.
위에 언급한 바와 같이, 호가 종료되었을 때 특정 전화 채널, 예컨대, 매체 채널 또는 버스 슬롯으로부터 매체 그룹 모듈을 비활성화시키기 위한 인스트럭션을 더 포함하는 프로그램 실시예가 제공된다. 여기에서, TMC 상의 DMA 드라이버에게 특정 전화 채널, 예컨대, 매체 채널 또는 버스 슬롯을 특정 DMA 슬롯으로부터 접속 해제하라고 지시하기 위한 프록시 모듈의 프로그램 인스트럭션이 실행된다. 또한, DSP 모듈로부터 DMA 슬롯을 접속 해제시키기 위한 프로그램 인스트럭션이 프록시 모듈 상에서 실행된다. 또한, 매체 제공자 모듈에게 특정 DMA 슬롯이 릴리스되었다는 것을 지시하기 위한 프로그램 인스트럭션이 매체 모듈 내에서 실행된다.
도 4는 매체 플랫폼의 또 다른 방법 실시예를 도시하는 블록도이다. 도 4에서, 본 방법은 블록(410)에서 API의 제 1 세트를 제 1 모듈로 제공하는 단계를 포함한다. API의 제 1 세트는 DMA 슬롯 할당 요청을 수신할 수 있고, TMC(telcom media card) 상의 매체 채널 및 버스 슬롯에 대한 접속을 본 명세서에서 설명한 바와 같이 스위칭하는 단계를 포함할 수 있다. 블록(420)에서, 본 방법은 API의 제 2 세트를 제 2 모듈, 예컨대, 매체 그룹 모듈로 제공하는 단계를 포함한다. API의 제 2 세트는 제 1 모듈로부터의 DMA 슬롯 할당 인스트럭션을 수신할 수 있고, 위에서 설명한 바와 같이 프록시를 통해 DMA 슬롯 할당을 실행할 수 있다. API의 제 2 세트는 본 명세서에서 설명한 방법에 따라 프록시로부터의 피드백에 기초하여 DMA 슬롯을 제 1 모듈로 릴리스하기 위한 인스트럭션을 실행할 수 있다. 블록(430)에서, 본 방법은 프록시로부터의 DMA 슬롯 할당 인스트럭션을 TMC로 전달하여 DMA 모듈의 DMA 슬롯과 TMC 상의 매체 채널 및 버스 슬롯 사이에 접속을 설정하는 단계를 포함한다. 다양한 실시예에서, 프록시는 할당된 DMA 슬롯에 따라 DSP 소프트웨어 모듈과 DMA 모듈 사이에서 매체 데이터 트래픽을 접속시키기 위한 인스트럭션을 포함한다. 다양한 실시예에 따라, API의 제 1 및 제 2 세트 및 T1, E1 및/또는 J1 유형 TMC 상의 매체 채널 및 버스 슬롯에 DMA 슬롯의 동적 할당 및 실시간 접속을 가능하게 하기 위한 연관된 프로그램 인스트럭션이 기록된다. 다양한 실시예에서, 제 1 및 제 2 API 및 위에서 언급한 TMC가 리눅스, 유닉스, 맥 또는 기타 운영 체제 유형 플랫폼 상에 배치되는 것과 관계없이 동적 할당을 가능하게 하기 위한 연관된 프로그램 인스트럭션이 기록된다.
도 5는 전자 통신 사용자를 위해 개선된 서비스 애플리케이션을 포함할 수 있는 전자 통신 네트워크(500)의 블록도이다. 네트워크(500)에 접속되는 전자 통신 인에이블형 장치, 예컨대 셀룰러 전화, 다기능 장치(PDA) 등에 의해 전화 통화가 이루어질 수 있다. 네트워크는 하나 이상의 다양한 역할을 하는 네트워크, PSTN(publicly switched telephone networks) GSM(global system for mobile communication) 네트워크, ANSI(American national standards institute) 네트워크, PWLAN(publicly wireless local area networks) 및/또는 IP(internet protocol) 네트워크 등을 포함할 수 있으나 이에 국한되지 않는다.
예시를 위하여, 전화 호는 "LEC"(local exchange carrier) 네트워크(502)를 이용하여 발신하는 것으로 도시될 수 있다. LEC는 전자 통신 플랫폼 또는 매체 플랫폼(506) 상에 상주할 수 있는 스위치(504), 예컨대 발신 스위치 또는 종료 스위치에 호를 전달한다. 발신 스위치는 전화 호를 프로세싱하고, 그 호를 그 목적지(508)로 라우팅한다. 목적지는 다른 LEC, 호 뱅크 또는 위에서 언급한 다른 유형의 전자 통신 네트워크일 수 있다.
매체 플랫폼(506)은 본 명세서에서 설명한 프로그램 및 방법을 포함하는 매체 플랫폼이다. 본 매체 플랫폼(506)은 사설 네트워크내의 사설 전자 통신 플랫폼으로서 사용될 수 있다. 그러나, 매체 플랫폼(506)은 또한 PBX(private branch exchange), MSC(mobile switching center)와 같은 교환국 또는 지역 교환국 등으로서 사용될 수도 있다. 위에서 언급한 바와 같이, 매체 플랫폼은 컴퓨터 실행 가능 인스트럭션에 따라 동작할 수 있는 스위치, 라우터, 프로세서, DSP(digital signal processing) 모듈, 메모리, 매체 카드 등의 형태의 하드웨어 및 소프트웨어 자원을 포함한다.
예를 들어, 발신 스위치(504)는 전화 통화를 위해 개선된 서비스에 대한 프로세싱이 필요로 한 때를 결정할 수 있다. 개선된 서비스에 대한 프로세싱이 필요하면, 발신 스위치는 매체 플랫폼과의 대화를 개시하고, 하위 레벨 SS7 프로토콜 메세지 내에 내장되어 있는 상위 레벨 프로토콜 메세지를 매체 플랫폼(506)과 교환한다.
"SS7"(signaling system 7)은 시그널링을 위해 사용되는 대화 기반 통신 프로토콜로서 잘 알려져 있고, 전자 통신 매체 플랫폼과 같은 컴퓨팅 플랫폼과의 통신을 위해 사용될 수 있다. 발신 스위치와 매체 플랫폼간의 SS7 프로토콜 결합을 이용하여 교환되는 데이터는 공통적으로 INAP(intelligent network application protocol) 메세지로 포맷된다. 발신 스위치(504)와 매체 플랫폼(506)간의 대화를 포함하여 INAP 메세지의 교환의 종료시, 매체 플랫폼(506)은 매체 스트림, 예컨대 음성, 데이터 및/또는 비디오의 전송을 용이하게 하기 위하여 발신 스위치에게 전화 호를 최종 목적지(508)에 접속하라고 지시한다.
본 명세서에서 특정 실시예를 도시하고 설명하였으나, 당업자라면, 동일한 방법을 달성하도록 계산된 장치가 도시한 특정 실시예를 대체할 수 있다는 것을 이해할 수 있을 것이다. 본 설명은 본 발명의 다양한 실시예의 개조 또는 변형을 포함하려는 것이다. 위의 설명은 예시적이며 제한적인 것이 아님을 이해해야 한다. 위의 설명을 검토하면, 위의 실시예와 본 명세서에서 세부적으로 개시되지 않은 다른 실시예의 조합이 당업자에게 명백할 것이다. 본 발명의 다양한 실시예의 범위는 위의 구조 및 방법이 사용되는 다른 애플리케이션을 포함한다. 그러므로, 본 발명의 다양한 실시예의 범위는 첨부 청구항들 및 이러한 청구항들이 자격 부여된 등가물의 전체 범위를 참조하여 정해진다.
전술한 상세한 설명에서, 본 설명을 계속하기 위해 다양한 실시예들이 단일의 실시예에 함께 그루핑되었다. 본 발명의 방법은 본 발명의 실시예가 각 청구항에 명시적으로 언급하는 것보다 많은 특징을 필요로 하는 것을 반영하는 것으로 해석되어서는 안된다. 오히려, 다음의 청구의 범위가 나타내는 바와 같이, 신규의 대상은 하나의 개시된 실시예의 전체 특징보다도 적다. 따라서, 다음 청구의 범위는 이에 따라 상세한 설명에 통합되며, 각각의 청구항은 별도의 실시예를 나타낸다.
사용자 공간에 프록시 모듈 및 DSP 모듈과 연관되어 있는 소스 코드를 배치하여 공통 코드 기반을 확대하고, 신규 모듈의 개발 및 디버깅을 보다 용이하게 한다.
도 1은 매체 플랫폼의 블록도,
도 2a는 매체 플랫폼 상에서의 논리 계층 접속의 일 실시예의 블록도,
도 2b는 매체 플랫폼 상에서의 논리 계층 접속의 또 다른 실시예의 블록도,
도 3은 매체 플랫폼을 위한 방법 실시예를 나타내는 블록도,
도 4는 매체 플랫폼을 위한 또 다른 방법 실시예를 나타내는 블록도,
도 5는 본 명세서에서 설명하는 실시예에 따른 매체 플랫폼을 포함하는 전자 통신 네트워크의 블록도.
도면의 주요 부분에 대한 부호의 설명
202 : 매체 제공자 모듈 204 : API 라이브러리
206 : 매체 그룹 모듈 208 : API 라이브러리
216 : TMC 드라이버 220 : TMC 프록시
222 : DMA 드라이버 226 : DMA 드라이버
228 : DSP 230 : DMA 메모리 슬롯

Claims (10)

  1. 매체 플랫폼(104)으로서,
    DMA(direct memory access) 슬롯 할당에 대한 애플리케이션 요청을 수신하는 매체 제공자 모듈(202)과,
    상기 매체 제공자 모듈(202)로부터 DMA 슬롯 할당 인스트럭션을 수신하는 매체 그룹 모듈(206)과,
    TMC(telecom media card)(214)와 연관되어 있으며, 상기 매체 제공자 모듈(202)로부터의 인스트럭션을 수신하여 상기 TMC(214) 상의 매체 데이터 트래픽 접속을 제공하는 제 1 드라이버(216)와,
    상기 TMC(214)와 연관되어 있는 제 2 드라이버(222)에 결합되어 있으며, 상기 매체 그룹 모듈(206)로부터 DMA 슬롯 할당 인스트럭션을 수신하여, DMA 슬롯 및 버퍼 어드레스 인스트럭션(224)을 상기 제 2 드라이버(222)에 전달하여 DMA 슬롯(230)에 접속시키는 TMC 프록시 모듈(220)을 포함하는
    매체 플랫폼.
  2. 제 1 항에 있어서,
    상기 매체 제공자 모듈(220) 및 상기 매체 그룹 모듈(206)이 사용자 공간(203)에 제공되는
    매체 플랫폼.
  3. 제 1 항에 있어서,
    상기 DMA 슬롯은 상기 TMC 프록시 모듈(220)과 상기 TMC(214) 사이에 결합되는 DMA(direct memory access) 모듈(226)로의 매체 채널(218) 및 버스 슬롯(219) 액세스를 제공하는
    매체 플랫폼.
  4. 제 1 항에 있어서,
    상기 매체 그룹 모듈(206)은 DMA 슬롯(230)을 릴리스하기 위한 인스트럭션을 상기 매체 제공자 모듈(202)에게 전달하는
    매체 플랫폼.
  5. 제 1 항에 있어서,
    상기 매체 제공자 모듈(202)은 제 1 API(application program interface) 라이브러리(204)를 포함하되,
    상기 매체 제공자 모듈(202)은 상기 제 1 API 라이브러리(204)로부터 접속 요청을 실행하고, 매체 채널(218)과, 버스 슬롯(219)과 DMA(direct memory access) 슬롯(230) 접속을 설정 및 설정 해제하기 위한 API를 검색하는
    매체 플랫폼.
  6. 제 1 항에 있어서,
    상기 매체 그룹 모듈(206)은 제 2 API 라이브러리(208)를 포함하되,
    상기 매체 그룹 모듈(206)은 상기 제 2 API 라이브러리(208)로부터 DMA 슬롯(230)을 할당하기 위한 API를 검색하는
    매체 플랫폼.
  7. 제 1 항에 있어서,
    상기 TMC 프록시 모듈(220)은 또한, DSP(digital signal processor) 소프트웨어 모듈(228)에 결합되어 상기 TMC(214)를 이용하여 매체 데이터 트래픽을 프로세싱하는
    매체 플랫폼.
  8. 제 7 항에 있어서,
    상기 DSP 소프트웨어 모듈(228) 및 상기 TMC 프록시 모듈의 일부(220-1)는 사용자 공간(203)에 배치되는
    매체 플랫폼.
  9. 제 1 항에 있어서,
    상기 매체 플랫폼(104)은 리눅스 기반 운영 체제(205)를 포함하고, 상기 TMC(214)는 ISDN(integrated services digital network) 접속을 위한 T1 매체 채널 및 H100 버스 슬롯을 포함하는
    매체 플랫폼.
  10. 제 1 항에 있어서,
    상기 매체 플랫폼(104)은
    매체 데이터 트래픽을 DMA 메모리 모듈(226)의 DMA 슬롯(230)으로 접속시키라는 DMA 요청을 수신하는 단계와,
    이용 가능한 DMA 슬롯의 풀로부터 이용 가능한 DMA 슬롯을 결정하고, DMA 슬롯을 할당(209)하는 단계와,
    DMA 슬롯이 더 이상 사용되지 않으면, 상기 이용 가능한 DMA 슬롯의 풀에 DMA 슬롯을 릴리스(210)하는 단계와,
    TMC 프록시(220)를 이용하여 할당된 DMA 슬롯을 기초로 하여 상기 DAM 메모리 모듈(226)과 DSP 소프트웨어 모듈(228) 사이에 매체 데이터 트래픽을 접속시키는 단계를 포함하는
    방법을 장치가 수행하게 하는 프로그램을 갖는 컴퓨터 판독 가능 매체(152)를 포함하는
    매체 플랫폼.
KR1020040092201A 2003-11-14 2004-11-12 매체 플랫폼 KR20050046588A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/714,344 2003-11-14
US10/714,344 US7188195B2 (en) 2003-11-14 2003-11-14 DMA slot allocation

Publications (1)

Publication Number Publication Date
KR20050046588A true KR20050046588A (ko) 2005-05-18

Family

ID=34522975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040092201A KR20050046588A (ko) 2003-11-14 2004-11-12 매체 플랫폼

Country Status (5)

Country Link
US (2) US7188195B2 (ko)
KR (1) KR20050046588A (ko)
CN (1) CN1617556A (ko)
CA (1) CA2487714A1 (ko)
FR (1) FR2862459B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802022B2 (en) * 2004-04-29 2010-09-21 Microsoft Corporation Generic USB drivers
US8825897B2 (en) * 2004-09-24 2014-09-02 Oracle America, Inc. Positional addressing for a computer cluster
US20070005553A1 (en) * 2005-06-30 2007-01-04 Ravi Sahita System for composite instrumented resource data

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69132460T2 (de) 1990-11-29 2001-03-15 Fujitsu Ltd ISDN-Schnittstellenschaltung
CA2069711C (en) 1991-09-18 1999-11-30 Donald Edward Carmon Multi-media signal processor computer system
GB9623298D0 (en) 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
KR100229897B1 (ko) 1997-01-10 1999-11-15 윤종용 직접 메모리 억세스 전송방법에 따른 타이밍 모드선택장치
US6212574B1 (en) 1997-04-04 2001-04-03 Microsoft Corporation User mode proxy of kernel mode operations in a computer operating system
US5930525A (en) * 1997-04-30 1999-07-27 Adaptec, Inc. Method and apparatus for network interface fetching initial and data burst blocks and segmenting blocks and scheduling blocks compatible for transmission over multiple virtual circuits
US6092127A (en) 1998-05-15 2000-07-18 Hewlett-Packard Company Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available
US6425021B1 (en) 1998-11-16 2002-07-23 Lsi Logic Corporation System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts
AU2481600A (en) 1998-12-17 2000-07-03 Pcfirst.Com, Inc. Automatic and selective transfer of software and configuration information from a source computer to a target computer and automatic upgrade of software
WO2000074368A2 (en) 1999-06-01 2000-12-07 Bsquare Corporation Device driver platform layer
US6467088B1 (en) 1999-06-30 2002-10-15 Koninklijke Philips Electronics N.V. Reconfiguration manager for controlling upgrades of electronic devices
US6487585B1 (en) 1999-08-11 2002-11-26 Lucent Technologies Inc. System and method for “Open Mike” network-based communication
WO2002025438A1 (en) 2000-09-22 2002-03-28 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US6954928B2 (en) 2001-08-08 2005-10-11 Hewlett-Packard Development Company, L.P. Method for selecting a set of patches to update a system of programs

Also Published As

Publication number Publication date
US20080016258A1 (en) 2008-01-17
US7188195B2 (en) 2007-03-06
FR2862459B1 (fr) 2007-02-16
US20050147253A1 (en) 2005-07-07
CN1617556A (zh) 2005-05-18
CA2487714A1 (en) 2005-05-14
US7552250B2 (en) 2009-06-23
FR2862459A1 (fr) 2005-05-20

Similar Documents

Publication Publication Date Title
EP0724804B1 (en) Telecommunication switch having programmable network protocols and communications services
TWI309128B (en) Flexible and scalable integrated access device
KR19980701797A (ko) 표준화된 대화식 호출 프로세싱 통신을 위한 범용 응용 프로그램 인터페이스를 갖고 있는 전기통신 스위치
US20020159439A1 (en) Dynamically downloading telecommunication call services
AU5843299A (en) Operating system for telecommunications
US5838766A (en) System and method for providing shared resources to test platforms
US5854823A (en) System and method for providing resources to test platforms
US6848103B2 (en) Method and apparatus for processing data in a multi-processor environment
JP3490638B2 (ja) ネットワーク・リソース・サーバ
US7552250B2 (en) DMA slot allocation
FR2547151A1 (fr) Systeme de commutation numerique
US20050111363A1 (en) Operating system for telecommunications
US8054947B2 (en) Apparatus and method for multiplexing communication signals
KR100763321B1 (ko) 음성 브라우저, 음성 처리 시스템, 음성 브라우저애플리케이션 관리 방법 및 머신 판독 가능 저장 장치
EP1309220B1 (en) Data processing system and method
CA2301939A1 (en) Intelligent, high-speed switching matrix
US20050071109A1 (en) Media platform testing
JPH10285285A (ja) 収容交換機を変更したとき変更前の加入者電話番号を用いることを可能にした呼の接続方法
US20020067735A1 (en) Telecommunication system for control of multiple switches in a common address space
KR100233911B1 (ko) 전전자 교환기의 타임 스위치 연결 방법
KR100596004B1 (ko) Ip 교환기를 이용하여 단말을 제어하기 위한 방법 및 그장치
US20100278154A1 (en) Handling resources in a communications network
KR20000031812A (ko) 개인휴대 이동전화 시스템에서의 호 추적 방법

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