WO2013154398A1 - 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법 - Google Patents

소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법 Download PDF

Info

Publication number
WO2013154398A1
WO2013154398A1 PCT/KR2013/003109 KR2013003109W WO2013154398A1 WO 2013154398 A1 WO2013154398 A1 WO 2013154398A1 KR 2013003109 W KR2013003109 W KR 2013003109W WO 2013154398 A1 WO2013154398 A1 WO 2013154398A1
Authority
WO
WIPO (PCT)
Prior art keywords
radio
code
application
processor
function block
Prior art date
Application number
PCT/KR2013/003109
Other languages
English (en)
French (fr)
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 JP2015505652A priority Critical patent/JP5977438B2/ja
Priority to EP13774957.8A priority patent/EP2838014B1/en
Priority to US14/391,884 priority patent/US9350848B2/en
Priority to CN201380019710.2A priority patent/CN104254835B/zh
Publication of WO2013154398A1 publication Critical patent/WO2013154398A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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/44Arrangements for executing specific programs
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • the present invention relates to a method of distributing, installing, and executing a radio application for a software-defined radio (SDR) terminal, and more particularly, to a software-defined radio (SDR) operating independently of hardware and user applications.
  • SDR software-defined radio
  • radio applications As communication technology advances, many new kinds of radio applications are being used depending on the user's preference and purpose. Most radio applications, such as LTE, WCDMA, WIMAX, and GSM, run on the terminal while interacting with the modem.
  • a module according to a modem manufacturer or a model needs to understand a specific command of a modem and develop a module accordingly. This results in some radio applications running only on specific manufacturers or specific modems. To solve this problem, all the different control commands for different types of modems must be included in the application, or different executable files must be produced and distributed for each modem.
  • an object of the present invention is to provide a method for distributing a software defined radio application that operates independently of hardware and user applications.
  • another object of the present invention is to provide a method for installing a software defined radio application that operates independently of hardware and user applications.
  • another object of the present invention is to provide a method of executing a software-defined radio application that operates independently of hardware and user applications.
  • the present invention provides a radio application distribution method using a radio application package for installing a radio application in a terminal, comprising: generating a radio application package and uploading a radio application package to a server;
  • the radio application package provides a radio application distribution method comprising radio controller code, function block code, and pipeline configuration metadata.
  • the functional block code is a code for calling a functional block implemented using a dedicated hardware accelerator included in a radio processor of the terminal, or a standard functional block code that is an executable code operating on a core of a radio processor of the terminal.
  • a user-defined function block code that is not provided as the standard function block code or that customizes a function provided by the standard function block code.
  • the radio application package may further include a radio library composed of the executable code when the standard functional block code is provided as executable code operable on the radio processor of the terminal.
  • the user-defined functional block code of the execution code form executed by the radio processor of the terminal may be at least one.
  • the user defined function block code when it is in the form of a source code or an intermediate representation, it may be encrypted and included in the radio application package.
  • the pipeline configuration metadata may define a connection relationship between the radio controller code, the user defined function block, and the standard function block for the data transmission or reception function of the radio application.
  • the radio controller code is in the form of execution code executed by an application processor or a radio processor of the terminal, and provides context information of the radio application to a user application or an application processor or a radio processor of the terminal. It may be configured to transmit and receive data with the networking stack of the communication service layer present in the.
  • the present invention provides a method for installing a radio application in a user terminal using a radio application package, the method including downloading a radio application package from a server and a radio application included in the radio application package. And installing in the terminal, wherein the radio application package provides a radio controller code, a function block code, and pipeline configuration metadata.
  • the functional block code is a code for calling a functional block implemented using a dedicated hardware accelerator included in a radio processor of the terminal, or a standard functional block code that is an executable code operating on a core of a radio processor of the terminal.
  • a user-defined function block code that is not provided as the standard function block code or that customizes a function provided by the standard function block code.
  • the radio application package may further include a radio library composed of the executable code when the standard functional block code is provided as executable code operable on the core of the radio processor of the terminal.
  • the user defined function block code may be in the form of executable code executed by the radio processor of the terminal, in the form of source code that can be compiled into the executable code executed by the radio processor of the terminal, and in the form of intermediate representation (IR). It may be at least one of.
  • the user defined function block code may be compiled by a compiler executed by an application processor or a radio processor of the terminal.
  • the user defined function block code is in the form of a source code or an intermediate representation, it may be encrypted and included in the radio application package.
  • the radio controller code is in the form of execution code executed by an application processor or a radio processor of the terminal, and provides context information of the radio application to a user application or an application processor or a radio processor of the terminal. It may be configured to transmit and receive data with the networking stack of the communication service layer present in the.
  • the installing may be configured to install the radio controller code and the function block code in a storage device accessible by at least one of the application processor and the radio processor of the terminal with reference to the pipeline configuration metadata. have.
  • a method of executing a radio application including a functional block code and a radio controller code in a terminal having an application processor and a radio processor, the method comprising: receiving an execution command for the radio application; And loading the radio controller code and the function block code from a storage unit with reference to pipeline configuration metadata of the radio application, wherein the radio controller code is executed by the application processor or the radio processor.
  • the user-defined function block is executed by the radio processor to provide a method of executing a radio application.
  • the functional block code is a code for calling a functional block implemented using a dedicated hardware accelerator included in a radio processor of the terminal, or a standard functional block code that is an executable code operating on a core of a radio processor of the terminal.
  • a user-defined function block code that is not provided as the standard function block code or that customizes a function provided by the standard function block code.
  • a radio control framework executed in at least one of the application processor and the radio processor may provide an operating environment for the radio controller code and the functional block code.
  • the radio control framework when the radio control framework operates in the application processor and the radio processor, the radio control framework may be divided into an execution part executed on the application processor and an execution part executed on the radio processor.
  • the radio controller code when the radio control framework operates in the application processor and the radio processor, the radio controller code may be configured to operate on the application processor.
  • the radio controller code may be configured to operate on the radio processor.
  • the radio control framework performs installation / uninstallation and instance creation / deletion of the radio application for the terminal, and a configuration manager (CM: Configuration Manager) for managing radio parameters of the radio application.
  • CM Configuration Manager
  • Radio Connection Manager (RCM) that manages activation / deactivation of the radio applications and user data flow switches between radio applications, and a flow controller (FC) that controls the transmission / reception and flow of user data packets.
  • RCM Radio Connection Manager
  • FC flow controller
  • MRC multi-radio controller
  • RM resource manager
  • the software-defined radio terminal device As described above, it is possible to run the same radio application in a terminal having a modem chip of a different structure using a standard baseband API.
  • modem hardware manufacturers can use hardware or hardware based on the complexity or power consumption of each block contained in the standard baseband API.
  • Software implementations can be chosen, and radio application makers can create radio applications that are independent of the modem chip using standard baseband APIs.
  • by providing a block of a user-defined type to implement a function not included in the standard baseband API it is possible to extend a variety of standard baseband API.
  • FIGS. 1 and 2 are block diagrams illustrating a software architecture environment in which a radio application in accordance with the present invention operates.
  • 3 to 5 are conceptual diagrams showing a process from distribution to execution of a radio application according to the present invention.
  • FIG. 6 is a block diagram illustrating a configuration example of a radio application package according to the present invention.
  • FIG. 7 is a conceptual diagram illustrating an example in which a radio application according to the present invention is distributed in an online store.
  • FIG. 8 is a block diagram illustrating a process of distributing and installing a user-defined functional block code in the form of source code according to an embodiment of the present invention.
  • FIG. 9 is a block diagram illustrating another example of a process of distributing and installing a user-defined functional block code in the form of source code according to an embodiment of the present invention.
  • FIG. 10 is a conceptual diagram illustrating an example of a standard baseband interface according to an embodiment of the present invention.
  • FIG. 11 is a flowchart illustrating a distribution process of a radio application according to an embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating a process of installing a radio application according to an embodiment of the present invention.
  • first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • Radio Application An application for providing a radio communication environment independent of a specific hardware configuration and a user application, which is a target of a distribution, installation, and operation framework according to the present invention.
  • the radio application may be configured to operate on two processors by operating on a radio processor or consisting of a radio processor execution portion and an application processor execution portion.
  • the radio application consists of a radio controller and functional blocks. Function blocks include standard function blocks and user-defined function blocks.
  • Radio Application Package A distribution form of a radio application, which includes pipeline configuration metadata along with a radio controller and functional blocks that are components of a radio application.
  • the radio application package may additionally include a radio library.
  • Standard function blocks are standard function blocks in which the function of each block and the name of a function for executing the block are standardized.
  • the standard functional block will be a collection of standard functional blocks implemented by the hardware manufacturer when the radio platform chip vendor manufactures the standard functional block and may be provided with the driver.
  • executable code operating in the core of the radio processor it may also be referred to as a radio library.
  • Standard functional blocks may be implemented using dedicated hardware accelerators, or may be implemented in executable code running on the core of a radio processor.
  • the standard function blocks have standardized names and functions of functions, and can be defined by a standard baseband API header file.
  • UDF User Defined Function Block
  • functional blocks they may be implemented to execute in the core of a radio processor.
  • User-defined function blocks can be provided in executable code, source code, or intermediate representation.
  • UDFB User Defined Function Block
  • FIGS. 1 and 2 are block diagrams illustrating a software architecture environment in which a radio application according to the present invention operates.
  • a radio software architecture is called an application processor layer 110 and a radio processor (RP) that operate on an application processor (AP). And a radio processor layer 120 operating on the same.
  • RP radio processor
  • AP application processor
  • FIG. 1 illustrates a software architecture environment in which a Radio Control Framework (RCF), which will be described later, is divided into an application processor execution section and a radio processor execution section, and operates on two processors.
  • RCF Radio Control Framework
  • FIG. The framework illustrates a software architecture environment running on a radio processor.
  • non-real time operating systems such as Google's Android OS and Apple's iOS are operated.
  • radio OS On the radio processor, hereinafter referred to as radio OS.
  • the real time operating system (Real time OS) is operated.
  • OS 'operating system
  • OS real time operating system
  • Radio OS Radio OS
  • the application processor layer includes the following components, as shown in FIGS. 1 and 2.
  • Drivers 111 and 211 drive hardware devices (cameras, speakers, etc.) on a given operating system.
  • Operating systems 112 and 212 refer to non-real time OSs running on common mobile devices such as Android and iOS.
  • radio control framework is a configuration that operates on an application processor and a radio processor (ie, the configuration illustrated in FIG. 1), there may be an application processor layer execution portion 114 of the radio control framework on the operating system. If the radio control framework is a configuration that operates only on a radio processor (ie, the configuration illustrated in FIG. 2), there is no radio control framework in the application processor layer.
  • the radio control framework operates in an application processor and a radio processor (FIG. 2)
  • the communication service layer is a layer that provides at least some of the three services described below to the radio control framework.
  • the first service is related to administrative services, such as installing / uninstalling radio applications, creating / deleting instances, and obtaining a list of radio applications for each status (installation, instance, and activity).
  • the second service is a service related to access control, which is related to launching / deactivating a radio application, creating a data flow, creating a network assignment, and obtaining a list of radio applications of each status (installation, instance, activity).
  • the third service is a service related to data flow, which is related to sending and receiving user data.
  • the communication service layer may include an administrator application, a mobility policy manager application, a networking stack-communication. It may be configured to include at least some of a protocol stack- and a monitor application operating in the service layer.
  • the communication service layer may include only some of the components described above, or may include additional components other than the components described above.
  • the functions of at least two or more of the aforementioned components may be integrated.
  • the above-described components are merely examples of the components that the communication service layer should have in order to support the services that the communication service layer should perform. That is, the communication service layer is defined by the role that the communication service layer plays, and the configuration of the communication service layer is not limited by the above-described components.
  • the radio applications 131, 134, and 137 which are the targets of the distribution, installation, and operation method of the present invention, are each an application processor layer execution part. 132, 135, 138 and radio processor layer execution portions 133, 136, 139.
  • the Radio Controller (RC) the execution part of the application processor layer of a radio application, is responsible for sending context information to the monitor of the communication service layer or exchanging data with the networking stack of the communication service layer. It can be configured to perform.
  • the radio processor layer includes the following components as shown in FIGS. 1 and 2.
  • the radio OS 121,221 is a real time operating system.
  • the radio control framework is a configuration that operates on an application processor and a radio processor (ie, the configuration illustrated in FIG. 1), there may be a radio processor execution portion 124 of the radio control framework on the radio OS. If the radio control framework operates only in the radio processor (ie, the configuration illustrated in FIG. 2), the radio control framework does not exist in the application processor layer, and the radio control framework 230 exists only in the radio processor layer. exist.
  • the radio control framework is a configuration that operates only on a radio processor (ie, the configuration illustrated in FIG. 2), there is a Communication Service Layer 222 on the radio OS 221.
  • the role and configuration example of the communication service layer 222 illustrated in FIG. 2 is the same as the role and configuration example of the communication service layer 113 illustrated in FIG.
  • Radio Platform Driver (122, 223) is a component required by the radio OS in order to recognize a hardware radio platform like a general hardware driver.
  • Radio Platform Hardware may generally be comprised of the core (s) and baseband accelerator (s) of the radio processor.
  • Baseband accelerators prepared for standard functional block (s) are often provided in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • radio control framework operates only on a radio processor (i.e., the configuration illustrated in FIG. 2)
  • radio applications 231, 234, 237 that are the subject of the method of deployment, installation and operation of the present invention are radio processor layers. It works on
  • the radio controller (RC) 132, 135, and 138 of each radio application sends context information to the monitor of the communication service layer or sends data to the networking stack of the communication service layer. Perform the role of receiving.
  • a MultiRadio Interface is an interface between the communication service layer and a control framework
  • a Unified Radio Application Interface is an interface between a radio application and a control framework.
  • the radio application is an application that enables communication of a mobile terminal and may be distributed in the form of a radio application package (RAP).
  • RAP radio application package
  • the components of the radio application package are as follows.
  • UDFB User defined function block
  • Radio Library-The Radio Library is distributed with the Execution Code in the Radio Application Package when the Standard Function Block is distributed in the Execution Code.
  • the radio application package is downloaded to the OS of the application processor layer, and the user-defined function block code and the radio library are loaded from the application processor to the radio processor by referring to pipeline configuration metadata and loaded into the radio OS of the radio processor layer. Can be.
  • Radio Control Framework 130 and 230 are components that provide an operating environment for radio applications.
  • the radio control framework is a configuration that operates on an application processor and a radio processor (ie, the configuration illustrated in FIG. 1)
  • the radio control framework may be divided into two groups 114 and 124. That is, one group runs on an application processor and the other group runs on a radio processor. Which components of the radio control framework run in real time (on a radio processor) and which components run non-real time (on an application processor) can be determined differently by each vendor.
  • the radio control framework is a configuration that operates only on the radio processor (ie, the configuration illustrated in FIG. 2), the radio control framework exists only at the radio processor layer without distinction between the radio processor execution portion and the application execution portion.
  • the Radio Control Framework can basically be configured to manage radio application (s), including at least some of the following five components.
  • the radio control framework may include only some of the five components described below, or may further include components other than the five components.
  • the radio control framework may consist of components incorporating the functionality of at least two or more components described below.
  • the function and role of the radio control framework are defined by the functions performed by the components described below, and the configuration of the radio control framework is not limited by the exemplary components described below. That is, the radio control framework may have various configurations for performing at least some of the functions of the components described below.
  • CM Configuration Manager
  • Radio Connection Manager Activation / deactivation of radio applications according to user requirements and overall management of user data flows that can be switched from one radio application to another.
  • FC Flow Controller
  • Multiradio Controller Schedules requests for radio resources raised from concurrently running radio applications in order to detect interoperability problems between radio applications in advance.
  • RM Resource Manager
  • 3 to 5 are conceptual diagrams showing a process from distribution to execution of a radio application according to the present invention.
  • the user-defined function block code included in the radio application of the present invention may be in the form of source code, in the form of executable code (ie, object code) and intermediate expression (IR). Representation) may be provided by at least one method (two or more forms may be provided in a mixture), and the distribution, installation, and operation methods of at least one of FIGS. 3 to 5 may be selected according to the provided form. Can be.
  • FIG. 3 shows a process in which the user defined function block code is distributed and executed in the form of source code
  • FIG. 4 shows the user defined function block code in the form of executable code along with the standard function block code (radio library).
  • 5 shows a process in which the user-defined function block code is distributed and executed as an intermediate expression.
  • RAP Radio Application Package
  • FIG. 6 is a block diagram illustrating a configuration example of a radio application package according to the present invention.
  • a radio application may be composed of functional blocks and a radio controller, and the radio application package 510 may include a user-defined function block code 511, a radio library, and the like. Radio controller code 512. Accordingly, the radio application package for distribution of radio applications basically includes user defined function block code 511 and radio controller code 512 and further includes pipeline configuration meta-data 513. It can be configured to include.
  • the radio controller code is determined according to the software architecture environment described above with reference to FIGS. 1 and 2 in which the radio application code is included in the radio application package in the form of executable code of which processor, the radio processor or the application processor. That is, if the radio control framework is divided into an application processor execution section and a radio processor execution section, the radio controller code may be composed of code that runs on the application processor. When the radio control framework is executed only on the radio processor, the radio The controller code may consist of code that executes on the radio processor.
  • the user-defined functional block code as mentioned above, in any case may be included in the radio application package as executable code, source code, intermediate expression code executable in the radio processor as code that is executed in the radio processor.
  • a pipeline is a combination of a radio application, user-defined function blocks, and standard function blocks of a radio application for implementing a transmission or reception function of a radio application, and a connection relationship. Can be defined.
  • the application package 510 further includes a radio library 514 in the form of executable code (executable code in which the core of the radio processor is executable). It may be configured as described above.
  • the radio application package 510 is downloaded from the server 530 to the OS of the application processor layer, and the user defined function block code 512 and the radio library 514 refer to the pipeline configuration metadata 513 to the application processor.
  • the process may be loaded into the radio processor and loaded into the radio OS of the radio processor layer.
  • the process from distribution to execution of a radio application according to the present invention may be composed of three steps including a design and distribution step, an installation step, and an execution step.
  • the design / deployment phase (210 in FIG. 3, 310 in FIG. 4, and 410 in FIG. 5) is a step in producing and distributing the radio application, and the supplier of the radio application is a Radio Controller Code (212) for implementing the radio application.
  • the radio controller code and the user-defined function block code may be written to call the standard function blocks using a standard baseband interface header 214 that defines a standard baseband interface.
  • the radio controller code is included in the radio application package 220 in the form of executable code via the compiler 215.
  • the user defined function block code 314 also passes through the compilers 316-1,..., 316-3 to the radio application package 317-1,..., 317-3 in the form of executable code.
  • the user-defined function block code 413 is compiled into the intermediate representation by the front-end compiler 416 and included in the radio application package 420.
  • the user-defined function block code when distributed in the form of source code, as in the case of FIG. 3, it is distributed as encrypted source code through an encryption process through an encryptor 216 which is an optional component. Can be.
  • the user-defined function block code when the user-defined function block code is distributed in the form of source code, the user-defined function block code may be compiled in a terminal that is executed, thereby improving device independence of the user-defined function block code.
  • the user-defined function block code 314 is a variety of compilers (316-1, .. .316-3) may be compiled by a compiler suitable for the execution environment of the terminal and included in the application package in the form of executable code.
  • a radio library (313) which is a set of standard functional blocks operating in the core of the radio processor, is also compiled by a compiler suitable for the execution environment of the terminal and executed in the form of application packages 317-1, ..., 317-3).
  • the radio application package generated as described above may be uploaded to a distribution server (eg, a radio app store; 280, 380, 480) and downloaded from a terminal to implement a corresponding radio application.
  • a distribution server eg, a radio app store; 280, 380, 480
  • FIG. 7 is a conceptual diagram illustrating an example in which a radio application according to the present invention is distributed in an online store.
  • the user accesses the online app store 620 using the terminal device 610, selects a desired radio application from a list of radio applications supporting various wireless communication schemes provided by the app store, and corresponds to the corresponding application.
  • the radio application package of the radio application can be downloaded.
  • Various wireless schemes may include Longterm Evolution (LTE), Wideband Code Division Multiple Access (WCDMA), Worldwide Interoperability for Microwave Access (WiMAX), Global System for Mobile Communications (GSM), Radio-Frequency Identification (RFID), and the like.
  • LTE Longterm Evolution
  • WCDMA Wideband Code Division Multiple Access
  • WiMAX Worldwide Interoperability for Microwave Access
  • GSM Global System for Mobile Communications
  • RFID Radio-Frequency Identification
  • the installation step (230 of FIG. 3, 330 of FIG. 4, 430 of FIG. 5) is a step of downloading an application package and installing it on the terminal.
  • the user-defined function block code, radio controller code, and pipeline configuration metadata included in the application package may be installed in the application processor layer or the radio processor layer. That is, the radio controller code may be installed in the application processor layer or the radio processor layer, and the user-defined function block code may be installed in the radio processor layer.
  • the application package may further include a radio library including the executable code.
  • a user defined function block executable in the terminal may be generated through a compiler (RP compiler) 235.
  • the compiler 235 can run on an application processor or a radio processor. That is, the compiler 235 serves to compile the user-defined functional block code in the form of source code into the execution code of the radio processor, and may be executed in the radio processor or the application processor.
  • the source code may be compiled after decrypting through an optional component decrypter 236.
  • FIG. 8 is a block diagram illustrating a process of distributing and installing a user-defined functional block code in the form of source code according to an embodiment of the present invention.
  • the user-defined function block code 711 written at the time of manufacture of a radio application may be written in a high-level language, for example, C / C ++.
  • the user defined function block code 711 may optionally be changed to encrypted source code 715 via the encryptor 914.
  • the encrypted source code 715 may be included in a radio application package and distributed to each terminal.
  • the decoder 731 to 735 and the compilers 741 to 745 may be converted into machine codes 751-755 operable in a radio processor embedded in the terminal.
  • the compiler 741-745 is a part dependent on the modem hardware because it must be able to generate the machine language optimized for the modem hardware installed in each terminal.
  • Radio processor manufacturers can build compilers optimized for their radio processors and embed them in their radio processors or provide them to terminal companies that use their own radio processors.
  • a compiler optimized for a radio processor may be implemented to run on a radio processor or an application processor.
  • the user-defined functional block code is in the form of executable code compiled and distributed according to the terminal, as shown in FIG.
  • FIG. 9 is a block diagram illustrating another example of a process of distributing and installing a user-defined functional block code in the form of source code according to an embodiment of the present invention.
  • the user-defined function block code 911 created when the radio application is produced may be written in a high-level language such as C / C ++. Can be converted into machine code 851-855 in executable form. These machine codes 851-855 are each included in a separate radio application package and stored in a radio application server, and the terminal can download a radio application 851 operable in its radio processor 861. Therefore, a modem hardware manufacturer can make a compiler (941-945) optimized for its modem and provide it to the radio application producer.
  • the installation process of the radio application may be performed in an application processor or a radio processor. That is, the compiler and storage shown in FIGS. 3 to 5 may exist in at least one processor layer of an application processor and a radio processor, or may exist in both processor layers .
  • An execution step (250 of FIG. 3, 350 of FIG. 4, and 450 of FIG. 5) is a step in which an installed radio application is operated in an actual terminal. It is loaded into the step of performing the actual wireless communication.
  • the loader 254, 255, 354, 355, 454, 455 refers to the pipeline configuration metadata 231, 331, 431 to receive the application. It is possible to determine what functional blocks are required for execution. Based on this, the radio controller and the user defined function block are loaded from the storage devices 251, 252, and 253 of the terminal. In addition, the loader loads the radio controller code into the application processor layer or the radio processor layer (as previously mentioned, where the radio controller code determines which processor layer the radio controller code is loaded into, depending on the operating layer of the radio control framework). The configuration metadata will be referenced to load user-defined and standard function blocks into the radio processor layer.
  • the standard functional block pools 252, 253, 352, 353, 452, and 453 are sets of standard functional blocks that exist in the radio processor layer or application processor layer.
  • the standard functional block pool there may be standard functional blocks implemented using dedicated hardware and standard functional blocks executed in the core of the radio processor.
  • the standard functional block pool may be used to select and install the standard functional blocks used by the radio application in a storage device during the installation process by the installer referring to the pipeline configuration metadata.
  • FIG. 10 is a conceptual diagram illustrating an example of a standard baseband interface according to an embodiment of the present invention.
  • the standard baseband interface is an API that standardizes a digital signal processing algorithm required in a baseband region inside a modem, and includes standard functional blocks belonging to the standard interfaces 910 to 950 and a 'transform' standard interface. 914 is illustrated.
  • the standard interface type may include translation 910, channel coding 920, network mapper 930, interleaving 940, source coding 950.
  • the standard functional blocks for transform 910 are spreading 911, despreading 912, scrambling 913, descrambling 914, Fast Fourier Transform (FFT) 915, inverse.
  • FFT Fast Fourier Transform
  • IFFT Inverse Fast Fourier Transform
  • Data, attributes, and member functions input and output through the Fourier transform 915 which is a standard functional block, may be defined.
  • functional blocks of the same type can be given common attributes to enable object-oriented design of radio applications.
  • the embodiment of the present invention uses the standard interface API header written in the high-level language of the standard baseband interface described above. Therefore, a radio application author can create a radio application by referring to a standard interface API header.
  • FIG. 11 is a flowchart illustrating a distribution process of a radio application according to an embodiment of the present invention.
  • a distribution process of a radio application may include a user-defined function block code encryption step S1001, an application package generation step S1010, and an application package distribution step S1020. Can be.
  • the application package generation step (S1010) may be configured to include a user-defined function block code generation and compilation step, radio controller code generation and compilation step, pipeline configuration metadata generation step and package generation step.
  • the radio application is distributed in the form of an application package consisting of user defined function block code, radio controller code, pipeline configuration metadata.
  • the application package may additionally include a radio library in the form of executable code.
  • the user defined function block code encryption step S1001 is a step of encrypting a user defined function block code included in an application package.
  • the user defined function block code can be distributed in source code form, intermediate form, and executable form according to the radio application creator's choice. If the user defined function block code is distributed in the form of source code, it must be written using a standard language so that it can be compiled in various terminals. On the other hand, when distributed in the form of general source code, the source code is exposed as it is, it is possible to prevent the external exposure of the source code by encrypting and distributing.
  • the application package generation step (S1010) is a step of generating a radio application performed in the software-defined radio terminal.
  • the application package may include user defined function block code 511, radio controller code 512, and pipeline configuration metadata 513 as shown in FIG. 5, where the user defined function block code is in the form of executable code.
  • the application package may additionally include a radio library 514.
  • the user defined function block code 511 is a code defining function blocks necessary for implementing a radio application to be performed, and the radio controller code 512 is code written to perform a function of the radio controller described above.
  • the functional blocks defined in the user-defined functional block code may also be related to the implementation of the processing of baseband digital signal processing that is not implemented in the standard functional blocks defined in the standard baseband API header 520.
  • the user-defined function block code 511 is executable code directly from the radio processor of the terminal device in which the application package 500 is installed, source code (source code), intermediate expression code or execution code that requires compilation for execution It may be configured in any one form.
  • the user defined function block code 511 is in the form of executable code, it may be compiled by various compilers to be applicable to various terminals.
  • the radio controller code 512 may include code for delivering context information to the monitor of the application layer and exchanging data with the networking stack of the application layer.
  • the radio controller code 520 may be code compiled by a compiler in an executable form in an application processor or a radio processor.
  • the pipeline configuration metadata 513 may define functional blocks and connections between the functional blocks required for implementing the corresponding radio application.
  • the standard functional block and the user included in the standard baseband API header 520 may be defined.
  • Definition function block code 511 may include a description of the connection between the functional blocks and the initial value of the attribute of each functional block.
  • the user-defined function block code 511, the radio controller code 512, and the pipeline configuration metadata 513 generated as described above are uploaded to a server and downloaded and installed to a terminal requiring a corresponding radio application. It is created in the form of 500.
  • the application package distribution step S1020 uploads the application package 500 generated as described above to a radio application distribution server so that the application package 500 can be downloaded from a software-defined radio terminal that requires the corresponding radio application.
  • FIG. 12 is a flowchart illustrating a process of installing a radio application according to an embodiment of the present invention.
  • the installation process of a radio application may include a downloading step (S1110) and an application package installation step (S1120) of an application package.
  • the application package downloading step (S1110) is a step of downloading a radio application to be performed in the software-defined radio terminal from the distribution server.
  • the application package 500 including the pipeline configuration metadata 513 may be downloaded from the distribution server to the software-defined radio terminal.
  • the application package may be configured to include a radio library compiled into executable code when the user defined function block code is in the form of executable code.
  • the application package installation step (S1120) is a step of installing the application package downloaded from the distribution server in a form that can be performed in the terminal, the user-defined function block code compilation step (S1121), the step of installing in the storage unit (S1125) It may be configured to include a user-defined function block loading step (S1127).
  • Compilation of the user defined function block code is that the user defined function block code 511 included in the downloaded application package 500 is not directly executable code in the core of the radio processor of the terminal, but is source code or intermediate expression code. In the case of generating a user-defined functional block by compiling in the form of code executable in the core of the radio processor of the terminal.
  • the user defined function block code is encrypted, it can be decoded and compiled (not shown).
  • the step of installing in the storage unit (S1125) is a pipeline configuration metadata 513 included in the downloaded application package 500, a user-defined function block included in the user-defined function block code 511, radio controller code ( 512) and standard function blocks, which are specified based on a predefined standard baseband interface, are installed in the storage unit of the terminal with reference to the pipeline configuration metadata 514.
  • the user-defined function block loading step (S1127) is a step of directly loading the user-defined function block included in the user-defined function block code 511 of the downloaded application package 500 onto the radio processor layer.
  • the user defined function block code 511 is written in the form of code executable directly by the radio processor, the user included in the user defined function block code 511 without going through the step S1121 of compiling the user defined function block code.
  • Definition function blocks can be loaded directly into the radio processor layer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

하드웨어와 사용자 어플리케이션에 비의존적인 소프트웨어 정의 라디오에 기반한 라디오 어플리케이션의 배포, 설치 및 동작 방법이 개시된다. 라디오 어플리케이션은 라디오 컨트롤러 코드와 사용자 정의 기능 블록 코드를 포함하여 구성되며, 라디오 어플리케이션을 배포 및 설치하기 위한 라디오 어플리케이션 패키지는 라디오 어플리케이션의 파이프라인을 구성하기 위한 파이프라인 구성 메타 데이터를 포함한다. 사용자 정의 기능 블록 코드는 실행 코드, 소스 코드, 중간 표현 형태로 제공될 수 있고, 라디오 컨트롤러 코드와 사용자 정의 기능 블록 코드는 표준 기능 블록을 호출할 수 있다. 따라서, 본 발명의 라디오 어플리케이션의 구성과 배포, 설치 및 동작 방법을 이용하면 모뎀 칩에 비의존적으로 다양한 무선 통신 방식을 라디오 어플리케이션의 다운로드 및 설치만으로 이용할 수 있다.

Description

소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
본 발명은 소프트웨어 정의 라디오(SDR: Software-define Radio) 단말기를 위한 라디오 어플리케이션의 배포, 설치 및 실행 방법에 대한 것으로, 더욱 상세하게는 하드웨어와 사용자 어플리케이션에 독립적으로 동작하는 소프트웨어 정의 라디오(SDR: Software-Defined Radio) 라디오 어플리케이션의 배포, 설치 및 실행 방법에 관한 것이다.
통신기술이 발달함에 따라 사용자의 기호나 목적에 따라 많은 새로운 종류의 라디오 어플리케이션들이 사용되고 있다. LTE, WCDMA, WIMAX, GSM 등과 같은 라디오 어플리케이션들 대부분은 모뎀과 상호 작용하면서 단말기 상에서 실행된다.
이러한 라디오 어플리케이션들이 모뎀을 제어하기 위해서는 모뎀 제조사 또는 모델에 따라 모뎀이 갖는 고유의 명령어를 이해하고 이에 맞춘 모듈이 개발되어 적용되어야 한다. 이는 결과적으로 어떤 라디오 어플리케이션은 오직 특정 제조사나 특정 모뎀에서만 실행되는 결과를 초래한다. 이를 해결하기 위해 여러 종류의 모뎀에 맞춘 각기 다른 제어 명령을 모두 어플리케이션에 포함하거나 각 모뎀 별로 다른 실행 파일을 제작하여 배포하여야 한다.
그러나, 이러한 방법으로는 현재 시장에 출시되고 있는 다양한 모뎀의 하드웨어에 맞추어 일일이 최적화하여야 하므로 모든 단말기에서 작동이 가능한 라디오 어플리케이션을 제작하는 것은 사실상 불가능할 뿐만 아니라 하나의 라디오 어플리케이션을 제작하기 위하여 막대한 인력이 투입되어야 하는 문제가 있다.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 목적은 하드웨어와 사용자 어플리케이션에 비의존적으로 동작하는 소프트웨어 정의 라디오 어플리케이션의 배포 방법을 제공한다.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 다른 목적은 하드웨어와 사용자 어플리케이션에 비의존적으로 동작하는 소프트웨어 정의 라디오 어플리케이션의 설치 방법을 제공한다.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 또 다른 목적은 하드웨어와 사용자 어플리케이션에 비의존적으로 동작하는 소프트웨어 정의 라디오 어플리케이션의 실행 방법을 제공한다.
상기 목적을 달성하기 위해 본 발명은, 라디오 어플리케이션을 단말에 설치하기 위한 라디오 어플리케이션 패키지를 이용한 라디오 어플리케이션 배포 방법으로서, 라디오 어플리케이션 패키지를 생성하는 단계 및 라디오 어플리케이션 패키지를 서버에 업로드하는 단계를 포함하고, 상기 라디오 어플리케이션 패키지는 라디오 컨트롤러 코드, 기능 블록 코드 및 파이프라인 구성 메타 데이터를 포함하는 것을 특징으로 하는 라디오 어플리케이션 배포 방법을 제공한다.
여기에서, 상기 기능 블록 코드는 상기 단말의 라디오 프로세서에 포함된 전용의 하드웨어 가속기를 이용하여 구현된 기능 블록을 호출하는 코드이거나, 상기 단말의 라디오 프로세서의 코어 상에서 동작하는 실행 코드인 표준 기능 블록 코드 및 상기 표준 기능 블록 코드로 제공되지 않거나, 상기 표준 기능 블록 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 코드를 포함할 수 있다.
이때, 상기 라디오 어플리케이션 패키지는 상기 표준 기능 블록 코드가 상기 단말의 라디오 프로세서 상에서 동작 가능한 실행 코드로 제공되는 경우, 상기 실행 코드로 구성된 라디오 라이브러리를 추가로 포함할 수 있다.
이때, 상기 사용자 정의 기능 블록 코드는 상기 단말의 라디오 프로세서에 의해서 실행되는 실행 코드 형태, 상기 단말의 라디오 프로세서에 의해서 실행되는 실행코드로 컴파일 가능한 소스 코드 형태 및 중간 표현(IR: Intermediate Representation) 형태 중 적어도 하나일 수 있다. 이때, 상기 사용자 정의 기능 블록 코드가 소스 코드 형태 또는 중간 표현 형태인 경우, 암호화되어 상기 라디오 어플리케이션 패키지에 포함될 수 있다.
이때, 상기 파이프라인 구성 메타 데이터는 상기 라디오 어플리케이션의 데이터 송신 또는 수신 기능을 위한 상기 라디오 컨트롤러 코드, 상기 사용자 정의 기능 블록, 표준 기능 블록들의 연결 관계를 정의할 수 있다.
여기에서, 상기 라디오 컨트롤러 코드는 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 의해서 실행되는 실행 코드 형태이며, 상기 라디오 어플리케이션의 상황 정보 (context information)을 사용자 어플리케이션에 제공하거나, 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 존재하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하도록 구성될 수 있다.
상기 다른 목적을 달성하기 위해 본 발명은, 라디오 어플리케이션 패키지를 이용하여 사용자 단말에 라디오 어플리케이션을 설치하는 방법으로서, 라디오 어플리케이션 패키지를 서버로부터 다운로드하는 단계 및 상기 라디오 어플리케이션 패키지에 포함된 라디오 어플리케이션을 상기 사용자 단말에 설치하는 단계를 포함하고, 상기 라디오 어플리케이션 패키지는 라디오 컨트롤러 코드, 기능 블록 코드 및 파이프라인 구성 메타 데이터를 포함하는 것을 특징으로 하는 라디오 어플리케이션 설치 방법을 제공한다.
여기에서, 상기 기능 블록 코드는 상기 단말의 라디오 프로세서에 포함된 전용의 하드웨어 가속기를 이용하여 구현된 기능 블록을 호출하는 코드이거나, 상기 단말의 라디오 프로세서의 코어 상에서 동작하는 실행 코드인 표준 기능 블록 코드 및 상기 표준 기능 블록 코드로 제공되지 않거나, 상기 표준 기능 블록 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 코드를 포함할 수 있다.
이때, 상기 라디오 어플리케이션 패키지는 상기 표준 기능 블록 코드가 상기 단말의 라디오 프로세서의 코어 상에서 동작 가능한 실행 코드로 제공되는 경우, 상기 실행 코드로 구성된 라디오 라이브러리를 추가로 포함할 수 있다.
여기에서, 상기 사용자 정의 기능 블록 코드는 상기 단말의 라디오 프로세서에 의해서 실행되는 실행 코드 형태, 상기 단말의 라디오 프로세서에 의해서 실행되는 실행코드로 컴파일 가능한 소스 코드 형태 및 중간 표현(IR: Intermediate Representation) 형태 중 적어도 하나일 수 있다. 상기 사용자 정의 기능 블록 코드가 소스 코드 형태 또는 중간 표현 형태인 경우, 상기 사용자 정의 기능 블록 코드는 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 의해서 실행되는 컴파일러에 의해서 컴파일될 수 있다. 상기 사용자 정의 기능 블록 코드가 소스 코드 형태 또는 중간 표현 형태인 경우, 암호화되어 상기 라디오 어플리케이션 패키지에 포함될 수 있다.
여기에서, 상기 라디오 컨트롤러 코드는 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 의해서 실행되는 실행 코드 형태이며, 상기 라디오 어플리케이션의 상황 정보 (context information)을 사용자 어플리케이션에 제공하거나, 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 존재하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하도록 구성될 수 있다.
여기에서, 상기 설치하는 단계는 상기 파이프라인 구성 메타 데이터를 참조하여, 상기 라디오 컨트롤러 코드 및 상기 기능 블록 코드를 상기 단말의 어플리케이션 프로세서 및 라디오 프로세서 중 적어도 하나가 액세스 가능한 저장 장치에 설치하도록 구성될 수 있다.
상기 또 다른 목적을 달성하기 위해 본 발명은, 어플리케이션 프로세서와 라디오 프로세서를 구비한 단말에서, 기능 블록 코드 및 라디오 컨트롤러 코드로 구성된 라디오 어플리케이션의 실행 방법으로서, 상기 라디오 어플리케이션에 대한 실행 명령을 수신하는 단계 및 상기 라디오 어플리케이션의 파이프라인 구성 메타 데이터를 참조하여, 상기 라디오 컨트롤러 코드와 상기 기능 블록 코드를 저장부로부터 로딩하는 단계를 포함하고, 상기 라디오 컨트롤러 코드는 상기 어플리케이션 프로세서 또는 상기 라디오 프로세서에 의해서 실행되며, 상기 사용자 정의 기능 블록은 상기 라디오 프로세서 에 의해서 실행되는 것을 특징으로 하는 라디오 어플리케이션 실행 방법을 제공한다.
여기에서, 상기 기능 블록 코드는 상기 단말의 라디오 프로세서에 포함된 전용의 하드웨어 가속기를 이용하여 구현된 기능 블록을 호출하는 코드이거나, 상기 단말의 라디오 프로세서의 코어 상에서 동작하는 실행 코드인 표준 기능 블록 코드 및 상기 표준 기능 블록 코드로 제공되지 않거나, 상기 표준 기능 블록 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 코드를 포함할 수 있다.
여기에서, 상기 어플리케이션 프로세서와 상기 라디오 프로세서 중 적어도 하나에서 실행되는 라디오 컨트롤 프레임워크가 상기 라디오 컨트롤러 코드 및 상기 기능 블록 코드에 동작 환경을 제공할 수 있다.
이때, 상기 라디오 컨트롤 프레임 워크가 상기 어플리케이션 프로세서와 상기 라디오 프로세서에서 동작할 경우, 상기 라디오 컨트롤 프레임 워크는 상기 어플리케이션 프로세서 상에서 실행되는 실행 부분과 상기 라디오 프로세서 상에서 실행되는 실행 부분으로 분리 구성될 수 있다. 이때, 상기 라디오 컨트롤 프레임 워크가 상기 어플리케이션 프로세서와 상기 라디오 프로세서에서 동작할 경우, 상기 라디오 컨트롤러 코드는 상기 어플리케이션 프로세서 상에서 동작하도록 구성될 수 있다.
여기에서, 상기 라디오 컨트롤 프레임 워크가 상기 라디오 프로세서에서만 동작할 경우, 상기 라디오 컨트롤러 코드는 상기 라디오 프로세서 상에서 동작하도록 구성될 수 있다.
여기에서, 상기 라디오 컨트롤 프레임워크는 상기 단말에 대한 상기 라디오 어플리케이션의 인스톨/언인스톨 및 인스턴스(instance) 생성/삭제를 수행하고, 상기 라디오 어플리케이션의 라디오 파라미터들를 관리하는 설정 매니저(CM: Configuration Manager), 상기 라디오 어플리케이션들의 활성화/비활성화 및 라디오 어플리케이션들 간의 사용자 데이터 흐름 스위치를 관리하는 라디오 연결 매니저(RCM: Radio Connection Manager), 사용자 데이터 패킷의 송/수신 및 흐름을 제어하는 플로우 컨트롤러(FC: Flow Controller), 라디오 어플리케이션들로부터의 스펙트럼 자원들에 대한 요청을 스케쥴링하는 멀티 라디오 컨트롤러(MRC: Multi-Radio Controller) 및 라디오 어플리케이션들간에 라디오 자원의 공유시키는 리소스 매니저(RM: Resource Manager) 중 적어도 하나를 포함할 수 있다.
상술한 바와 같은 본 발명에 따른 소프트웨어 정의 라디오 단말 장치를 이용하면, 표준 베이스밴드 API를 이용하여 서로 다른 구조의 모뎀칩을 가진 단말기에서 동일한 라디오 어플리케이션을 실행할 수 있다. 또한 최적의 디지털 신호 처리 수행을 위하여 무선 디지털 통신에 필요한 여러 디지털 신호 처리 알고리즘을 표준 베이스밴드 API로 제공함으로써, 모뎀 하드웨어 제작사는 표준 베이스밴드 API에 포함된 각 블록의 복잡도 또는 전력 소비에 따라 하드웨어 또는 소프트웨어적 구현을 선택할 수 있고, 라디오 어플리케이션 제작사는 표준 베이스밴드API를 이용하여 모뎀칩에 독립적인 라디오 어플리케이션을 제작할 수 있다. 또한, 표준 베이스밴드API 에 포함되지 않은 기능을 구현하기 위하여 사용자 정의 형태의 블록을 제공함으로써 표준 베이스밴드 API의 다양한 확장을 가능하게 한다.
도 1 및 도 2는 본 발명에 따른 라디오 어플리케이션이 동작하는 소프트웨어 아키텍처 환경을 설명하기 위한 블록도들이다.
도 3 내지 도 5는 본 발명에 따른 라디오 어플리케이션의 배포에서 실행까지의 과정을 보여주는 개념도들이다.
도 6은 본 발명에 따른 라디오 어플리케이션 패키지의 구성예를 설명하기 위한 블록도이다.
도7은 본 발명에 따른 라디오 어플리케이션이 온라인 스토어에서 배포되는 예를 보여주는 개념도이다.
도 8은 본 발명의 일 실시예에 따른 소스 코드 형태의 사용자 정의 기능 블록 코드의 배포 및 설치 과정을 설명하는 블록도이다.
도 9는 본 발명의 일 실시예에 따른 소스 코드 형태의 사용자 정의 기능 블록 코드의 배포 및 설치 과정의 다른 예를 설명하는 블록도이다.
도 10은 본 발명의 일 실시예에 따른 표준 베이스밴드 인터페이스의 예를 보여주는 개념도이다.
도 11은 본 발명의 일 실시예에 따른 라디오 어플리케이션의 배포과정을 설명하기 위한 순서도이다.
도 12는 본 발명의 일 실시예에 따른 라디오 어플리케이션의 설치과정을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본발명에 따른 바람직한 실시예를 첨부한 도면들을 참조하여 상세하게 설명한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명을 설명하기 위해서 전반적으로 사용되는 용어들에 대한 간략한 정의들을 정리한다. 아래 용어들 이외의 용어들에 대해서는 본 명세서내의 적절한 부분에서 정의를 제공한다.
- 라디오 어플리케이션(RA: Radio Application): 본 발명에 따른 배포, 설치, 동작 프레임워크의 대상이 되는, 구체적인 하드웨어 구성 및 사용자 어플리케이션에 비의존적인 라디오 통신 환경을 제공하기 위한 어플리케이션이다. 라디오 어플리케이션은 라디오 프로세서 상에서 동작하거나, 라디오 프로세서 실행 부분과 어플리케이션 프로세서 실행 부분으로 구성되어 두개의 프로세서 상에서 동작하도록 구성될 수 있다. 라디오 어플리케이션은 라디오 컨트롤러 및 기능 블록들로 구성된다. 기능 블록에는 표준 기능 블록과 사용자 정의 기능 블록이 있다.
- 라디오 어플리케이션 패키지(RAP: Radio Application Package): 라디오 어플리케이션의 배포 형태로서, 라디오 어플리케이션의 구성요소인 라디오 컨트롤러, 기능 블록과 함께 파이프라인 구성 메타 데이터를 포함한다. 또한, 라디오 어플리케이션 패키지는 추가적으로 라디오 라이브러리(Radio Library)를 포함할 수도 있다.
- 표준 기능 블록(SBF: Standard Function Block): 표준 기능 블록은 각 블록의 기능과, 해당 블록을 실행하기 위한 함수의 이름이 표준화된 표준적 기능 블록들이다. 표준 기능블록은 라디오 플랫폼 칩 벤더가 표준기능 블록을 제작하는 경우 하드웨어 제조사가 구현한 표준 기능 블록의 집합체가 될 것이며 드라이버와 함께 제공될 수 있다. 라디오 프로세서의 코어에서 동작하는 실행 코드로 구현될 경우 라디오 라이브러리(Radio Library)로 지칭할 수도 있다. 표준 기능 블록은 전용의 하드웨어 가속기를 이용하여 구현되거나, 라디오 프로세서의 코어에서 동작하는 실행 코드로 구현될 수 있다. 표준기능블록들은 각 함수의 이름과 기능이 표준화 되어 있으며, 표준 베이스벤드 API 헤더(standard baseband API header) 파일에 의해서 정의될 수 있다.
- 사용자 정의 기능 블록(UDF: User Defined Function Block): 표준 기능 블록으로 제공되지 않거나, 표준 기능 블록으로 존재하는 기능을 보다 커스터마이징(customizing)할 필요성이 있는 경우, 라디오 어플리케이션 제공자에 의해서 제공될 수 있는 기능블록들로서, 라디오 프로세서의 코어에서 실행되도록 구현될 수 있다. 사용자 정의 기능 블록은 실행 코드, 소스 코드, 중간 표현 형태의 코드로 제공될 수 있다.
- 사용자 정의 기능 블록(User Defined Function Block, UDFB) 집합: 라디오 어플리케이션 제공자가 제공한 사용자정의 기능블록의 집합체이다.
라디오 어플리케이션의 구성 및 소프트웨어 아키텍처
도 1과 도 2는 본 발명에 따른 라디오 어플리케이션이 동작하는 소프트웨어 아키텍처 환경을 설명하기 위한 블록도들이다.
도 1과 도 2를 참조하면, 본 발명에 따른 라디오 소프트웨어 아키텍처는 어플리케이션 프로세서(AP: Application Processor) 상에서 동작하는 어플리케이션 프로세서 계층(110)과 라디오 프로세서(RP: Radio Processor; BP(Baseband Processor)라 명칭 되기도 함) 상에서 동작하는 라디오 프로세서 계층(120)으로 구성될 수 있다.
도 1은 후술되는 라디오 컨트롤 프레임워크(RCF; Radio Control Framework)가 어플리케이션 프로세서 실행 부분과 라디오 프로세서 실행 부분으로 분리되어 두 개의 프로세서 상에서 동작하는 소프트웨어 아키텍처 환경을 예시한 것이고, 도 2는 후술되는 라디오 컨트롤 프레임워크가 라디오 프로세서 상에서 동작하는 소프트웨어 아키텍쳐 환경을 예시한 것이다.
어플리케이션 프로세서 상에는 구글(Google)의 안드로이드(Android) OS와 애플(Apple)의 iOS와 같은 비 실시간(non-real time) 운영체제(Operating Systems, OS)가 동작되고, 라디오 프로세서 상에는 이하에서 라디오 OS라 지칭되는 실시간 운영체제((Real time OS)가 동작한다. 이하에서는, 명확한 구별을 위하여 어플리케이션 프로세서 계층에서 동작하는 비 실시간 운영체제를 '운영체제(OS)', 라디오 프로세서 계층에서 동작하는 실시간 운영체제는 '실시간 운영체제(Radio OS)'로 구분하여 명칭하기로 한다.
이하는 어플리케이션 프로세서 계층, 라디오 프로세서 계층 및 라디오 컨트롤 프레임워크를 구성하는 구성요소들에 대한 상세이다.
(1)어플리케이션 프로세서 계층
어플리케이션 프로세서 계층은 도 1과 도 2에서 보여진 바와 같이, 다음의 구성요소들을 포함한다.
-드라이버(driver; 111, 211)는 주어진 운영체제 상에서 하드웨어 디바이스들(카메라, 스피커 등)을 구동한다.
-운영체제(112, 212)는 안드로이드, iOS와 같이 통상적인 모바일 디바이스에서 동작하는 비-실시간 운영체제(non-real time OS)를 의미한다.
라디오 컨트롤 프레임워크가 어플리케이션 프로세서와 라디오 프로세서에서 동작하는 구성(즉, 도 1에서 예시되는 구성)이라면, 운영체제 상에 라디오 컨트롤 프레임워크의 어플리케이션 프로세서 계층 실행 부분(114)이 존재할 수 있다. 만약, 라디오 컨트롤 프레임워크가 라디오 프로세서에서만 동작하는 구성(즉, 도 2에서 예시되는 구성)이라면, 어플리케이션 프로세서 계층에는 라디오 컨트롤 프레임워크가 존재하지 않는다.
라디오 컨트롤 프레임워크가 어플리케이션 프로세서와 라디오 프로세서에서 동작하는 구성(도 2)에서, 어플리케이션 프로세서의 운영체제 상에 통신 서비스 계층(Communication service Layer; 113)이 존재할 수 있다.
통신 서비스 계층은 후술되는 3가지 서비스들 중 적어도 일부를 라디오 컨트롤 프레임워크에 제공하는 계층이다.
첫번째 서비스는, administrative에 관련된 서비스로써 라디오 어플리케이션의 인스톨/언인스톨, instance의 생성/삭제 그리고 각 status(인스톨, instance, 활동)의 라디오 어플리케이션의 목록 획득에 관련된 서비스이다.
두번째 서비스는, 접속 제어에 관련된 서비스로써 라디오 어플리케이션을 실행/비실행, 데이터 흐름 생성, 네트워크 할당 생성 그리고 각 status(인스톨, instance, 활동)의 라디오 어플리케이션의 목록 획득에 관련된 서비스이다.
마지막으로 세번째 서비스는, 데이터 흐름에 관련된 서비스로써 사용자 데이터를 보내고 받는데 관련된 서비스이다.
상술된 세가지 서비스들 중 적어도 일부 서비스를 제공하기 위한 통신 서비스 계층 구성의 하나의 예로서, 통신 서비스 계층은 관리자(administrator) 어플리케이션, 이동성 정책(mobility policy) 매니저 어플리케이션, 네트워킹 스택(networking stack)-통신 서비스 계층에서 동작하는 프로토콜 스택(protocol stack)- 및 모니터(monitor) 어플리케이션 중 적어도 일부를 포함하여 구성될 수 있다.
그러나, 통신 서비스 계층은 상술된 구성요소들 중 일부만 포함할 수도 있고, 상술된 구성요소들 이외의 추가적인 구성요소를 포함할 수도 있다. 또는, 통신 서비스 계층내에는 적어도 둘 이상의 상술된 구성요소들의 기능이 통합된 구성요소들로 구성될 수도 있다. 또한, 상술된 구성요소들은 통신 서비스 계층이 수행하여야 하는 서비스들을 지원하기 위하여 통신 서비스 계층이 구비하여야 하는 구성요소들의 일 예일뿐이다. 즉, 통신 서비스 계층은 통신 서비스 계층이 수행하는 역할에 의해서 정의되며, 상술된 구성요소들의 예시에 의해서 통신 서비스 계층의 구성이 한정되는 것은 아니다.
라디오 컨트롤 프레임워크가 어플리케이션 프로세서와 라디오 프로세서에서 동작하는 구성(도 1)에서, 본 발명의 배포, 설치 및 동작 방법의 대상이 되는 라디오 어플리케이션들(131, 134, 137)은 각각 어플리케이션 프로세서 계층 실행 부분(132, 135, 138)과 라디오 프로세서 계층 실행 부분(133, 136, 139)들로 구성될 수 있다. 라디오 어플리케이션의 어플리케이션 프로세서 계층 실행 부분인 라디오 컨트롤러(RC: Radio Controller)는 통신 서비스 계층(communication service layer)의 모니터에게 상황 정보(context information)을 보내거나 통신 서비스 계층의 네트워킹 스택과 데이터를 주고 받는 역할을 수행하도록 구성될 수 있다.
(2) 라디오 프로세서 계층
라디오 프로세서 계층은 도 1과 도 2에서 보여지는 바와 같이 다음의 구성요소들을 포함한다.
-라디오 OS(121, 221)는 실시간 운영체제이다.
라디오 컨트롤 프레임워크가 어플리케이션 프로세서와 라디오 프로세서에서 동작하는 구성(즉, 도 1에서 예시되는 구성)이라면, 라디오 OS 상에는 라디오 컨트롤 프레임워크의 라디오 프로세서 실행부분(124)이 존재할 수 있다. 만약, 라디오 컨트롤 프레임워크가 라디오 프로세서에서만 동작하는 구성(즉, 도 2에서 예시되는 구성)이라면, 어플리케이션 프로세서 계층에는 라디오 컨트롤 프레임워크가 존재하지 않으며, 라디오 프로세서 계층에만 라디오 컨트롤 프레임워크(230)이 존재한다.
- 라디오 컨트롤 프레임워크가 라디오 프로세서에서만 동작하는 구성(즉, 도 2에서 예시되는 구성)이라면, 라디오 OS(221) 상에 통신 서비스 계층(Communication service Layer; 222)이 존재한다.
도 2에 예시된 통신 서비스 계층(222)의 역할 및 구성예는 도 1에서 예시된 통신 서비스 계층(113)의 역할 및 구성예와 동일하므로 설명은 생략된다.
-라디오 플랫폼 드라이버(122, 223; Radio Platform Driver)는 일반적인 하드웨어 드라이버와 같이 하드웨어 라디오 플랫폼을 인식하기 위해서 라디오 OS에서 의해서 요구되는 구성요소이다.
-라디오 플랫폼 하드웨어(123, 224; Radio Platform Hardware)는 일반적으로 라디오 프로세서의 코어(들)과 베이스밴드 가속기(들)로 구성될 수 있다. 표준 기능 블록(들)을 위해서 준비되는 베이스밴드 가속기는 종종 ASIC(Application-Specific Integrated Circuit)의 형태로 제공된다.
- 라디오 컨트롤 프레임워크가 라디오 프로세서에서만 동작하는 구성(즉, 도 2에서 예시되는 구성)이라면 본 발명의 배포, 설치 및 동작 방법의 대상이 되는 라디오 어플리케이션들(231, 234, 237)은 라디오 프로세서 계층에서 동작한다.
각각의 라디오 어플리케이션의 라디오 컨트롤러(RC: Radio Controller; 132, 135, 138)는 통신 서비스 계층(communication service layer)의 모니터에게 상황 정보(context information)을 보내거나 통신 서비스 계층의 네트워킹 스택과 데이터를 주고 받는 역할을 수행한다.
멀티라디오 인터페이스(MUltiRadio Interface, MURI)는 상기 통신 서비스 계층과 컨트롤 프레임워크 사이의 인터페이스이며, 통합 라디오 어플리케이션 인터페이스(Unified Radio Application Interface, URAI)는 라디오 어플리케이션과 컨트롤 프레임워크 사이의 인터페이스이다.
라디오 어플리케이션은 모바일 단말의 통신을 가능하게 하는 어플리케이션으로써 라디오 어플리케이션 패키지(RAP: Radio Application Package)형태로 배포될 수 있다. 라디오 어플리케이션 패키지의 구성 요소들은 다음과 같다.
1) 사용자 정의 기능 블록(User defined Function Block, UDFB)
2) 파이프라인 구성 메타데이터(Metadata)
3) 라디오 컨트롤러 코드(RC code)
4) 라디오 라이브러리(Radio Library) - 라디오 라이브러리는 표준 기능 블록이 실행코드 형태로 배포되는 경우에 라디오 어플리케이션 패키지에 실행코드 형태로 함께 포함되어 배포됨.
라디오 어플리케이션 패키지는 어플리케이션 프로세서 계층의 OS에 다운로드되고, 사용자 정의 기능 블록 코드와 라디오 라이브러리는 파이프라인 구성 메타 데이터를 참조하여 어플리케이션 프로세서에서 라디오 프로세서로 로딩되는 과정을 거쳐 라디오 프로세서 계층의 라디오 OS에 로딩될 수 있다.
(3)라디오 컨트롤 프레임워크
라디오 컨트롤 프레임워크(RCF: Radio Control Framework; 130, 230)는 라디오 어플리케이션의 동작 환경을 제공하는 구성요소이다.
라디오 컨트롤 프레임워크가 어플리케이션 프로세서와 라디오 프로세서에서 동작하는 구성(즉, 도 1에서 예시되는 구성)이라면, 라디오 컨트롤 프레임워크는 두 개의 그룹(114, 124)으로 나누어질 수 있다. 즉, 하나의 그룹은 어플리케이션 프로세서 상에서 동작하며, 다른 하나의 그룹은 라디오 프로세서 상에서 동작한다. 라디오 컨트롤 프레임워크의 어떠한 구성요소가 실시간으로 동작(라디오 프로세서 상에서 동작)하고 어떠한 구성요소가 비-실시간으로 동작(어플리케이션 프로세서 상에서 동작)할 것인지는 각각의 벤더에 따라서 다르게 결정될 수 있다.
라디오 컨트롤 프레임워크가 라디오 프로세서에서만 동작하는 구성(즉, 도 2에서 예시되는 구성)이라면, 라디오 컨트롤 프레임워크는 라디오 프로세서 실행 부분과 어플리케이션 실행부분의 구분이 없이 라디오 프로세서 계층에서만 존재한다.
라디오 컨트롤 프레임워크(Radio Control Framework, RCF)는 기본적으로 다음의 5가지 구성요소들의 적어도 일부를 포함하여, 라디오 어플리케이션(들)을 관리하도록 구성될 수 있다.
그러나, 라디오 컨트롤 프레임워크는 후술되는 5가지 구성요소들 중 일부만 포함할 수도 있고, 5가지 구성요소 이외의 구성요소를 더 포함할 수도 있다. 또는, 라디오 컨트롤 프레임워크는 적어도 둘 이상의 후술되는 구성요소들의 기능이 통합된 구성요소들로 구성될 수도 있다.
라디오 컨트롤 프레임워크의 기능 및 역할은 후술되는 구성요소들이 수행하는 기능에 의해서 정의되며, 후술되는 예시적 구성요소들에 의해서 라디오 컨트롤 프레임워크의 구성이 한정되는 것은 아니다. 즉, 라디오 컨트롤 프레임워크는 후술되는 구성요소들의 기능들 중 적어도 일부를 수행하기 위한 다양한 구성을 가질 수 있다.
1) 설정 매니저(CM: Configuration Manager): 멀티라디오 단말 장치에 대한 라디오 어플리케이션의 인스톨/언인스톨, 인스턴스(instance)의 생성/삭제와 라디오 어플리케이션들의 라디오 파라미터들에 대한 액세스 관리.
2) 라디오 연결 매니저(RCM: Radio Connection Manager): 사용자 요구들에 따른 라디오 어플리케이션들의 활성화/비활성화 및 하나의 라디오 어플리케이션으로부터 다른 라디오 어플리케이션으로 스위칭될 수 있는 사용자 데이터 흐름의 전체적인 관리.
3) 플로우 컨트롤러(FC: Flow Controller): 사용자 데이터 패킷의 송신과 수신 및 흐름 제어.
4) 멀티라디오 컨트롤러(MRC: Multiradio Controller): 라디오 어플리케이션들간의 상호 운용성 문제를 미리 감지하기 위해서, 동시에 실행되는 라디오 어플리케이션들로부터 제기되는 라디오 자원들(radio resources)에 대한 요구들을 스케쥴링함.
5) 리소스 매니저(RM: Resource Manager): 실시간 요구사항을 충족시키면서 동시에 활성화된 라디오 어플리케이션들간에 멀티라디오 자원들을 공유하기 위한 멀티라디오 자원들의 관리.
본 발명에 따른 라디오 어플리케이션의 배포, 설치 및 동작 방법
도 3 내지 도 5는 본 발명에 따른 라디오 어플리케이션의 배포에서 실행까지의 과정을 보여주는 개념도들이다.
본 발명의 라디오 어플리케이션에 포함되는 사용자 정의 기능 블록 코드(user-defined function block code)는 소스 코드(source code) 형태, 실행 코드(executable code) 형태(즉, object code) 및 중간 표현(IR: Intermediate Representation) 형태 중 적어도 하나의 방법으로 제공될 수 있으며(두 가지 이상의 형태가 혼합되어 제공될 수도 있음), 그 제공 형태에 따라서 도 3 내지 도 5 중 적어도 하나의 배포, 설치 및 동작 방법이 선택될 수 있다.
예컨대, 도 3은 사용자 정의 기능 블록 코드가 소스코드의 형태로서 배포되어 실행되는 과정을 보여주고, 도 4는 사용자 정의 기능 블록 코드가 표준 기능 블록 코드(라디오 라이브러리)와 함께 실행 코드의 형태로서 배포되어 실행되는 과정을 보여주며, 도 5는 사용자 정의 기능 블록 코드가 중간 표현 형태로서 배포되어 실행되는 과정을 보여주는 것이다.
이하에서는, 본 발명에 따른 라디오 어플리케이션의 배포를 위한 라디오 어플리케이션 패키지(RAP: Radio Application Package)의 구성을 먼저 상술한다.
도 6은 본 발명에 따른 라디오 어플리케이션 패키지의 구성예를 설명하기 위한 블록도이다.
앞서 설명된 바와 같이, 본 발명의 일 실시예에 따른 라디오 어플리케이션은 기능 블록들과 라디오 컨트롤러로 구성될 수 있고, 라디오 어플리케이션 패키지(510)는 이들을 위한 사용자 정의 기능 블록 코드(511), 라디오 라이브러리와 라디오 컨트롤러 코드(512)를 포함하여 구성될 수 있다. 따라서, 라디오 어플리케이션의 배포를 위한 라디오 어플리케이션 패키지는 사용자 정의 기능 블록 코드(511) 및 라디오 컨트롤러 코드(512)를 기본적으로 포함하고, 파이프라인 구성 메타 데이터(pipeline configuration meta-data; 513)를 추가로 포함하여 구성될 수 있다.
라디오 컨트롤러 코드는 도 1 및 도 2를 통하여 상술된 소프트웨어 아키텍쳐 환경에 따라서 라디오 프로세서와 어플리케이션 프로세서 중 어느 프로세서의 실행 코드의 형태로 라디오 어플리케이션 패키지에 포함될지가 결정된다. 즉, 라디오 컨트롤 프레임워크가 어플리케이션 프로세서 실행 부분과 라디오 프로세서 실행 부분으로 분리된 경우는 라디오 컨트롤러 코드는 어플리케이션 프로세서에서 실행되는 코드로 구성될 수 있으며, 라디오 컨트롤 프레임워크가 라디오 프로세서에서만 실행되는 경우에는 라디오 컨트롤러 코드는 라디오 프로세서에 실행되는 코드로 구성될 수 있다. 반면, 사용자 정의 기능 블록 코드는, 앞서 언급된 바와 같이, 어느 경우이든 라디오 프로세서에서 실행되는 코드로서 라디오 프로세서에서 실행 가능한 실행 코드, 소스코드, 중간표현형태의 코드로서 라디오 어플리케이션 패키지에 포함될 수 있다.
파이프라인(pipeline)이란 라디오 어플리케이션의 송신 또는 수신 기능을 구현하기 위한 라디오 어플리케이션의 라디오 컨트롤러, 사용자 정의 기능 블록들 및 표준 기능 블록들의 조합과 그 연결관계를 의미하는 것으로서, 파이프라인 구성 메타 데이터에 의해서 정의될 수 있다.
또한, 표준 기능 블록 코드가 라디오 프로세서의 코어에서 실행 가능한 실행 코드 형태로 구성된다면 어플리케이션 패키지(510)는 실행코드 형태(라디오 프로세서의 코어가 실행 가능한 실행 코드)의 라디오 라이브러리(514)를 추가적으로 포함하여 구성될 수 있음은 앞서 설명된 바와 같다.
라디오 어플리케이션 패키지(510)는 서버(530)로부터 어플리케이션 프로세서 계층의 OS에 다운로드되고, 사용자 정의 기능 블록 코드(512)와 라디오 라이브러리(514)는 파이프라인 구성 메타 데이터(513)를 참조하여 어플리케이션 프로세서에서 라디오 프로세서로 로딩되는 과정을 거쳐 라디오 프로세서 계층의 라디오 OS에 로딩될 수 있다.
도 3 내지 도 5를 참조하면, 본 발명에 따른 라디오 어플리케이션의 배포에서 실행까지의 과정은 디자인 및 배포 단계, 설치 단계 및 실행 단계를 포함하는 세 단계로 구성될 수 있다.
(1)디자인/배포 단계(design/distribution time)
디자인/배포 단계(도 3의 210, 도 4의 310, 도 5의 410)는 라디오 어플리케이션을 제작하고 배포하는 단계로서 라디오 어플리케이션의 공급자는 라디오 어플리케이션을 구현하기 위한 라디오 컨트롤러 코드(Radio Controller Code; 212)와 사용자 정의 기능 블록 코드(User-defined function code; 213)를 포함하는 라디오 어플리케이션 패키지(Radio Application Package; 220)을 생성한다. 이때, 라디오 컨트롤러 코드와 사용자 정의 기능 블록 코드는 표준 베이스밴드 인터페이스를 정의한 표준 베이스밴드 API 헤더(standard baseband interface header; 214)를 이용하여 표준 기능 블록들을 호출하도록 작성될 수 있다. 한편, 라디오 컨트롤러 코드는 컴파일러(215)를 거쳐서 실행 코드의 형태로 라디오 어플리케이션 패키지(220)에 포함된다.
도 4의 경우, 사용자 정의 기능 블록 코드(314) 또한 컴파일러(316-1,..., 316-3)를 거쳐서 실행 코드의 형태로 라디오 어플리케이션 패키지(317-1,...,317-3)에 포함되며, 도 5의 경우, 사용자 정의 기능 블록 코드(413)가 프론트 엔드(front-end) 컴파일러(416)에 의해서 중간 표현 형태로 컴파일되어 라디오 어플리케이션 패키지(420)에 포함된다.
또한, 도3의 경우처럼, 사용자 정의 기능 블록 코드가 소스 코드의 형태로 배포되는 경우, 선택적인(optional) 구성요소인 암호화기(encryptor; 216)를 통한 암호화 과정을 거쳐서 암호화된 소스 코드로서 배포될 수 있다. 이와 같이 사용자 정의 기능 블록 코드가 소스 코드 형태로 배포되면, 사용자 정의 기능 블록 코드가 실행되는 단말에서 컴파일되도록 하여, 사용자 정의 기능 블록 코드의 장치 독립성을 제고할 수 있다.
한편, 도 4에 도시된 것처럼, 사용자 정의 기능 블록 코드가 단말에서 바로 실행가능 하도록 실행 코드의 형태로 배포되는 경우, 사용자 정의 기능 블록 코드(314)를 여러 가지 컴파일러들(316-1,...,316-3) 중에서 단말의 실행 환경에 맞는 컴파일러에서 컴파일하여 실행코드 형태로 어플리케이션 패키지에 포함시킬 수 있다. 또한, 라디오 프로세서의 코어에서 동작하는 표준 기능 블록들의 집합인 라디오 라이브러리(radio library; 313) 또한 단말의 실행 환경에 맞는 컴파일러에 의해서 컴파일되어 실행 코드 형태로 어플리케이션 패키지(317-1,...,317-3)에 포함될 수 이다.
이와 같이 생성된 라디오 어플리케이션 패키지는 배포 서버(예컨대, 라디오 앱 스토어; 280, 380, 480)로 업로드되어 해당 라디오 어플리케이션을 구현하고자 하는 단말에서 다운로드 받을 수 있다.
도7은 본 발명에 따른 라디오 어플리케이션이 온라인 스토어에서 배포되는 예를 보여주는 개념도이다.
도 7을 참조하면 사용자는 단말장치(610)를 이용하여 온라인 앱 스토어(620)에 접속하여, 앱 스토어가 제공하는 다양한 무선 통신 방식들을 지원하는 라디오 어플리케이션들의 리스트에서 원하는 라디오 어플리케이션을 선택하고, 해당 라디오 어플리케이션의 라디오 어플리케이션 패키지를 다운로드받을 수 있다.
다양한 무선 방식은 LTE(Longterm Evolution), WCDMA(Wideband Code Division Multiple Access), WiMAX (Worldwide Interoperability for Microwave Access), GSM(Global System for Mobile Communications), RFID(Radio-Frequency Identification) 등을 포함할 수 있다. 사용자는 자신의 단말에 복수의 라디오 어플리케이션을 다운로드 받아 설치해두고 상황에 따라 필요한 라디오 어플리케이션을 자유롭게 실행할 수 있다.
(2)설치 단계(install time)
설치 단계(도 3의 230, 도 4의 330, 도 5의 430)는 어플리케이션 패키지를 다운로드하여 단말에 설치하는 단계이다. 이때 어플리케이션 패키지에 포함된 사용자 정의 기능 블록 코드, 라디오 컨트롤러 코드 및 파이프라인 구성 메타데이터가 어플리케이션 프로세서 계층 또는 라디오 프로세서 계층에 설치될 수 있다. 즉, 라디오 컨트롤러 코드는 어플리케이션 프로세서 계층 또는 라디오 프로세서 계층에 설치되며, 사용자 정의 기능 블록 코드는 라디오 프로세서 계층에 설치될 수 있다. 표준 기능 블록 코드가 라디오 프로세서의 실행코드 형태라면, 어플리케이션 패키지에는 상기 실행 코드가 포함된 라디오 라이브러리가 추가로 포함될 수 있음을 앞서 언급한 바와 같다.
이때, 도 3에 도시된 것처럼, 사용자 정의 기능 블록 코드가 소스코드 형태라면 컴파일러(RP 컴파일러; 235)를 거쳐 단말에서 실행 가능한 사용자 정의 기능 블록이 생성될 수 있다. 컴파일러(235)는 어플리케이션 프로세서 또는 라디오 프로세서 상에서 실행될 수 있다. 즉, 컴파일러(235)는 소스 코드 형태의 사용자 정의 기능 블록 코드를 라디오 프로세서의 실행 코드로 컴파일하는 역할을 수행하며, 라디오 프로세서 또는 어플리케이션 프로세서에서 실행될 수 있다.
만일 사용자 정의 기능 블록 코드가 암호화 되어있다면 선택적(optional) 구성요소인 복호화기(decryptor; 236)를 통해 소스코드가 복호화된 후에 컴파일될 수 있다.
도 8은 본 발명의 일 실시예에 따른 소스 코드 형태의 사용자 정의 기능 블록 코드의 배포 및 설치 과정을 설명하는 블록도이다.
도 8을 참조하면 라디오 어플리케이션의 제작 시 작성되는 사용자 정의 기능 블록 코드(711)는 고급 언어, 예를 들면 C/C++로 작성될 수 있다. 사용자 정의 기능 블록 코드(711)는 선택적으로 암호화기(914)를 통해 암호화된 소스코드(715)로 변경될 수 있다.
이와 같이 암호화된 소스코드(715)는 라디오 어플리케이션 패키지에 포함되어 각 단말로 배포될 수 있다. 이때 단말에서의 설치과정에서 복호화기(731~735) 및 컴파일러(741-745)에 의해 단말에 내장된 라디오 프로세서에서 작동 가능한 기계어(Machine Code)(751-755)로 변환될 수 있다. 컴파일러(741-745)는 각 단말에 설치된 모뎀 하드웨어에 최적화된 기계어를 생성할 수 있어야 하므로 모뎀 하드웨어에 의존적인 부분이다. 라디오 프로세서 제조사에서는 자신의 라디오 프로세서에 최적화된 컴파일러를 제작하여 자신의 라디오 프로세서에 내장하거나, 자신의 라디오 프로세서를 사용한 단말기 회사에 제공할 수 있다. 라디오 프로세서에 최적화된 컴파일러는 라디오 프로세서 또는 어플리케이션 프로세서 상에서 실행되도록 구현될 수 있다.
한편, 사용자 정의 기능 블록 코드가 단말에 맞추어 컴파일되어 배포된 실행코드 형태라면, 도 4에 도시된 것과 같이 설치 단계에서 컴파일 과정을 거칠 필요가 없다.
도 9는 본 발명의 일 실시예에 따른 소스 코드 형태의 사용자 정의 기능 블록 코드의 배포 및 설치 과정의 다른 예를 설명하는 블록도이다.
도 9를 참조하면 라디오 어플리케이션의 제작 시 작성되는 사용자 정의 기능 블록 코드(911)는 C/C++과 같은 고급 언어로 작성될 수 있고, 대상 라디오 프로세서에 맞는 디자인/배포 단계에서 컴파일러(841~845)를 통해서 실행 가능한 형태인 머신 코드(851-855)로 변환될 수 있다. 이러한 머신 코드(851-855)들은 각각 별도의 라디오 어플리케이션 패키지에 포함되어 라디오 어플리케이션 서버에 저장되고, 단말기는 자신의 라디오 프로세서(861)에서 동작 가능한 라디오 어플리케이션(851)을 다운로드할 수 있다. 따라서, 모뎀 하드웨어 제조사는 자신의 모뎀에 최적화된 컴파일러(941-945)를 제작하여 라디오 어플리케이션 제작자에게 제공할 수 있다.
도 3내지 도 5를 참조하면 라디오 어플리케이션의 설치 과정은 어플리케이션 프로세서 또는 라디오 프로세서에서 진행될 수 있다. 즉 도 3내지 도 5에 표기된 컴파일러와 저장부는 어플리케이션 프로세서와 라디오 프로세서 중 적어도 하나의 프로세서 계층에 존재할 수 있으며, 또는 두 개의 프로세서 계층 모두에 존재 할 수도 있다.
(3)실행 단계(run time)
실행 단계(도 3의 250, 도 4의 350, 도 5의 450)는 설치된 라디오 어플리케이션이 실제 단말에서 동작하는 단계로서, 라디오 신호 처리를 하기 위한 라디오 어플리케이션의 대응되는 구성요소들이 어플리케이션 프로세서 또는 라디오 프로세서로 로딩되어 실제적인 무선 통신을 수행하는 단계이다.
예를 들면, 단말기에 설치된 라디오 어플리케이션의 실행 명령을 수신하는 경우, 로더(loader; 254, 255, 354, 355, 454, 455)는 파이프라인 구성 메타데이터(231, 331, 431)를 참조하여 어플리케이션 수행에 필요한 기능 블록들이 무엇인지 판단할 수 있다. 이에 기초하여 라디오 컨트롤러와 사용자 정의 기능 블록(user defined function block)은 단말기의 저장장치(251, 252, 253)에서 로딩된다. 또한, 로더는 라디오 컨트롤러 코드를 어플리케이션 프로세서 계층 또는 라디오 프로세서 계층에 로드하고(라디오 컨트롤 프레임워크의 동작 계층에 따라서 라디오 컨트롤러 코드가 어느 프로세서 계층으로 로드될 지가 결정됨은 앞서 언급된 바와 같음), 파이프라인 구성 메타데이터를 참조하여 사용자 정의 기능 블록과 표준 기능 블록을 라디오 프로세서 계층에 로딩하게 된다.
표준 기능 블록 풀(252, 253, 352, 353, 452, 453)은 표준 기능 블록들의 집합으로 라디오 프로세서 계층 또는 어플리케이션 프로세서 계층에 존재한다. 표준 기능 블록 풀에는 전용의 하드웨어를 이용하여 구현된 표준 기능 블록들과 라디오 프로세서의 코어에서 실행되는 표준 기능 블록들이 존재할 수 있다. 표준 기능 블록 풀은 설치 단계에서 인스톨러가 파이프라인 구성 메타 데이터를 참조하여 라디오 어플리케이션을 설치하는 과정에서, 해당 라디오 어플리케이션이 사용하는 표준 기능 블록들을 선택하여 저장 장치에 설치하기 위해서 사용될 수 있다.
도 10은 본 발명의 일 실시예에 따른 표준 베이스밴드 인터페이스의 예를 보여주는 개념도이다.
도 10을 참조하면 표준 베이스밴드 인터페이스는 모뎀 내부의 베이스밴드 영역에서 필요한 디지털 신호처리 알고리즘을 표준화한 API로서, 표준 인터페이스(910~950)와 '변환' 표준 인터페이스에 속한 표준 기능블록들(911-914)이 예시되어 있다.
예컨대, 표준 인터페이스 유형으로서 변환(910), 채널코딩(920), 네트워크 매퍼(930), 인터리빙(940), 소스코딩(950) 이 포함될 수 있다. 또한 변환(910)에 대한 표준 기능블록으로 스프레딩(911), 디스프레딩(912), 스크램블링(913), 디스크램블링(914), 고속 퓨리에 변환(FFT: Fast Fourier Transform)(915), 역 고속 퓨리에 변환(IFFT: Inverse Fast Fourier Transform)(916)이 정의될 수 있다.
표준 기능 블록인 퓨리에 변환(915)을 통해 입출력되는 데이터와 속성, 멤버함수 등이 정의될 수 있다. 또한 같은 유형의 기능 블록에는 공통적인 속성을 부여하여 라디오 어플리케이션의 객체 지향적 설계가 가능하다.
한편, 본 발명의 실시예는 상술된 표준 베이스밴드 인터페이스를 고급 언어로 작성한 표준 인터페이스 API 헤더를 이용한다. 따라서 라디오 어플리케이션 제작자는 표준 인터페이스 API헤더를 참조하여, 라디오 어플리케이션을 제작할 수 있다.
라디오 어플리케이션 배포 방법에 대한 실시예
이하, 본 발명의 일 실시예에 따른 소프트웨어 정의 라디오 단말장치를 위한 라디오 어플리케이션의 배포 방법을 보다 상세하게 설명하기로 한다.
도 11은 본 발명의 일 실시예에 따른 라디오 어플리케이션의 배포과정을 설명하기 위한 순서도이다.
도 11을 참조하면 본 발명의 일 실시예에 따른 라디오 어플리케이션의 배포과정은 사용자 정의 기능 블록 코드 암호화 단계(S1001), 어플리케이션 패키지 생성단계(S1010), 어플리케이션 패키지 배포 단계(S1020)를 포함하여 구성될 수 있다.
또한, 어플리케이션 패키지 생성단계(S1010)는 사용자 정의 기능 블록 코드 생성 및 컴파일 단계, 라디오 컨트롤러 코드 생성 및 컴파일 단계, 파이프라인 구성 메타데이터 생성 단계 및 패키지 생성단계를 포함하여 구성 될 수 있다.
앞서 언급된 바와 같이, 본 발명의 일 실시예에 라디오 어플리케이션은 사용자 정의 기능 블록 코드, 라디오 컨트롤러 코드, 파이프라인 구성 메타 데이터로 구성된 어플리케이션 패키지의 형태로 배포된다. 사용자 정의 기능 블록 코드가 실행 코드 형태로 구성된다면 어플리케이션 패키지는 실행코드 형태의 라디오 라이브러리를 추가적으로 포함하여 구성될 수 있음은 앞서 설명된 바와 같다.
이하, 본 발명의 일 실시예에 따른 라디오 어플리케이션의 배포과정의 각 단계에 대해서 좀 더 자세하게 설명한다.
사용자 정의 기능 블록 코드 암호화 단계(S1001)는 어플리케이션 패키지에 포함되는 사용자 정의 기능 블록 코드를 암호화하는 단계이다. 사용자 정의 기능 블록 코드는 라디오 어플리케이션 제작자의 선택에 따라 소스코드 형태, 중간 형태, 실행코드의 형태로 배포될 수 있다. 사용자 정의 기능 블록 코드가 소스 코드의 형태로 배포되는 경우, 여러 단말기에서 컴파일 가능하도록 표준 언어를 사용하여 작성되어야 하며, 한다. 한편, 일반 소스 코드 형태로 배포될 경우 소스 코드가 그대로 노출되므로 암호화하여 배포함으로써 소스 코드의 외부 노출을 막을 수 있다.
어플리케이션 패키지 생성단계(S1010)는 소프트웨어 정의 라디오 단말에서 수행되는 라디오 어플리케이션을 생성하는 단계이다. 어플리케이션 패키지는 도 5에 도시된 것과 같이 사용자 정의 기능 블록 코드(511), 라디오 컨트롤러 코드(512), 파이프라인 구성 메타데이터(513)로 구성될 수 있으며, 사용자 정의 기능 블록 코드가 실행 코드 형태일 경우, 어플리케이션 패키지는 추가적으로 라디오 라이브러리(514)를 포함하여 구성될 수 있다.
사용자 정의 기능 블록 코드(511)는 수행하고자 하는 라디오 어플리케이션을 구현하기 위해 필요한 기능블록들을 정의하는 코드이고, 라디오 컨트롤러 코드(512)는 상기 설명된 라디오 컨트롤러의 기능을 수행하도록 작성된 코드이다. 또한 사용자 정의 기능 블록 코드에서 정의하는 기능 블록은 표준 베이스밴드 API 헤더(520)에 정의된 표준 기능 블록에 구현되지 않은 베이스밴드 디지털 신호처리의 처리의 구현과 관련될 수 있다.
한편, 사용자 정의 기능 블록 코드(511)는 어플리케이션 패키지(500)가 설치된 단말장치의 라디오 프로세서에서 직접 실행 가능한 코드, 실행을 위한 컴파일을 필요로 하는 소스코드(source code), 중간 표현 코드 또는 실행 코드 중 어느 하나의 형태로 구성될 수 있다.
따라서, 사용자 정의 기능 블록 코드(511)가 실행 코드의 형태라면 다양한 단말에 적용가능 하도록 여러 가지 컴파일러에 의해 컴파일 된 것일 수 있다.
라디오 컨트롤러 코드(512)에는 어플리케이션 계층의 모니터에 상황 정보(context information)을 전달하고 어플리케이션 계층의 네트워킹 스택과 데이터를 주고 받기 위한 코드가 포함될 수 있다. 라디오 컨트롤러 코드(520)는 어플리케이션 프로세서 또는 라디오 프로세서에서 실행 가능한 형태로 컴파일러에 의해 컴파일된 코드일 수 있다.
한편, 파이프라인 구성 메타데이터(513)는 해당 라디오 어플리케이션을 구현하기 위해 필요한 기능블록들 및 기능블록들 간의 연결을 정의할 수 있는데, 표준 베이스밴드 API 헤더(520)에 포함된 표준 기능블록과 사용자 정의 기능 블록 코드(511)에서 정의하는 기능 블록간의 연결 및 각 기능블록이 갖는 속성의 초기값에 대한 기술을 포함할 수 있다.
이와 같이 생성된 사용자 정의 기능 블록 코드(511), 라디오 컨트롤러 코드(512) 및 파이프라인 구성 메타데이터(513)는 서버로 업로드되고 해당 라디오 어플리케이션을 필요로 하는 단말로 다운로드되어 설치될 수 있도록 어플리케이션 패키지(500)의 형태로 생성된다.
어플리케이션 패키지 배포 단계(S1020)는 상기와 같이 생성된 어플리케이션 패키지(500)를 라디오 어플리케이션 배포 서버에 업로딩하여 해당 라디오 어플리케이션을 필요로 하는 소프트웨어 정의 라디오 단말에서 다운로딩 할 수 있도록 한다.
라디오 어플리케이션 설치 방법에 대한 실시예
이하, 본 발명의 일 실시예에 따른 라디오 어플리케이션의 설치과정에 대해서 설명하기로 한다.
도 12는 본 발명의 일 실시예에 따른 라디오 어플리케이션의 설치과정을 설명하기 위한 순서도이다.
도 12를 참조하면 본 발명의 일 실시예에 따른 라디오 어플리케이션의 설치과정은 어플리케이션 패키지의 다운로딩 단계(S1110) 및 어플리케이션 패키지 설치 단계(S1120)를 포함하여 구성될 수 있다.
이하, 도 12을 참조하여 본 발명의 일 실시예에 따른 라디오 어플리케이션의 설치과정의 각 단계에 대해서 좀 더 자세하게 설명한다.
어플리케이션 패키지 다운로딩 단계(S1110)는 소프트웨어 정의 라디오 단말에서 수행될 라디오 어플리케이션을 배포서버로부터 다운로딩하는 단계로, 도 4에 도시된 것과 같이 사용자 정의 기능 블록 코드(511), 라디오 컨트롤러 코드(512), 파이프라인 구성 메타 데이터(513)로 구성된 어플리케이션 패키지(500)를 배포서버로부터 소프트웨어 정의 라디오 단말로 다운로드할 수 있다. 이때, 어플리케이션 패키지는 사용자 정의 기능 블록 코드가 실행 코드 형태일 경우 실행코드로 컴파일된 라디오 라이브러리를 포함하여 구성될 수 있음은 앞서 언급된 바와 같다.
어플리케이션 패키지 설치 단계(S1120)는 배포서버로부터 다운로딩한 어플리케이션 패키지를 단말에서 수행될 수 있는 형태로 설치하는 단계로서, 사용자 정의 기능 블록 코드 컴파일 단계(S1121), 저장부에 설치하는 단계(S1125), 사용자 정의 기능블록 로딩 단계(S1127)를 포함하여 구성될 수 있다.
사용자 정의 기능 블록 코드 컴파일 단계(S1121)는 다운받은 어플리케이션 패키지(500)에 포함된 사용자 정의 기능 블록 코드(511)가 단말의 라디오 프로세서의 코어에서 직접 실행 가능한 코드가 아니고 소스코드 또는 중간 표현 코드인 경우 단말의 라디오 프로세서의 코어에서 실행 가능한 코드의 형태로 컴파일하여 사용자 정의 기능블록을 생성하는 단계이다.
또한, 만일 사용자 정의 기능 블록 코드가 암호화되어 있다면 복호화하여 컴파일할 수 있다(미도시).
또한 저장부에 설치하는 단계(S1125)는 다운받은 어플리케이션 패키지(500)에 포함된 파이프라인 구성 메타데이터(513), 사용자 정의 기능 블록 코드(511)에 포함된 사용자 정의 기능블록, 라디오 컨트롤러 코드(512) 및 미리 정의된 표준 베이스밴드 인터페이스에 기초하여 작성된 표준적인 명령어가 명시된 표준 기능블록들을 파이프라인 구성 메타데이터(514)를 참조하여 단말의 저장부에 설치하는 단계이다.
사용자 정의 기능블록 로딩 단계(S1127)는 다운받은 어플리케이션 패키지(500)의 사용자 정의 기능 블록 코드(511)에 포함된 사용자 정의 기능 블록을 라디오 프로세서 계층에 직접 로딩하는 단계이다. 이때, 사용자 정의 기능 블록 코드(511)가 라디오 프로세서에서 직접 실행 가능한 코드의 형태로 작성되어 있다면, 사용자 정의 기능 블록 코드 컴파일 단계(S1121)를 거치지 않고 사용자 정의 기능 블록 코드(511)에 포함된 사용자 정의 기능블록을 라디오 프로세서 계층에 직접 로딩할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (22)

  1. 라디오 어플리케이션을 단말에 설치하기 위한 라디오 어플리케이션 패키지를 이용한 라디오 어플리케이션 배포 방법으로서,
    라디오 어플리케이션 패키지를 생성하는 단계; 및
    라디오 어플리케이션 패키지를 서버에 업로드하는 단계를 포함하고,
    상기 라디오 어플리케이션 패키지는 라디오 컨트롤러 코드, 기능 블록 코드 및 파이프라인 구성 메타 데이터를 포함하는 것을 특징으로 하는 라디오 어플리케이션 배포 방법.
  2. 청구항 1에 있어서,
    상기 기능 블록 코드는
    상기 단말의 라디오 프로세서에 포함된 전용의 하드웨어 가속기를 이용하여 구현된 기능 블록을 호출하는 코드이거나, 상기 단말의 라디오 프로세서의 코어 상에서 동작하는 실행 코드인 표준 기능 블록 코드; 및
    상기 표준 기능 블록 코드로 제공되지 않거나, 상기 표준 기능 블록 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 코드를 포함하는 것을 특징으로 하는 라디오 어플리케이션 배포 방법.
  3. 청구항 2에 있어서,
    상기 라디오 어플리케이션 패키지는 상기 표준 기능 블록 코드가 상기 단말의 라디오 프로세서 상에서 동작 가능한 실행 코드로 제공되는 경우, 상기 실행 코드로 구성된 라디오 라이브러리를 추가로 포함하는 것을 특징으로 하는 라디오 어플리케이션 배포 방법.
  4. 청구항 2에 있어서,
    상기 사용자 정의 기능 블록 코드는 상기 단말의 라디오 프로세서에 의해서 실행되는 실행 코드 형태, 상기 단말의 라디오 프로세서에 의해서 실행되는 실행코드로 컴파일 가능한 소스 코드 형태 및 중간 표현(IR: Intermediate Representation) 형태 중 적어도 하나인 것을 특징으로 하는 라디오 어플리케이션 배포 방법.
  5. 청구항 4에 있어서,
    상기 사용자 정의 기능 블록 코드가 소스 코드 형태 또는 중간 표현 형태인 경우, 암호화되어 상기 라디오 어플리케이션 패키지에 포함되는 것을 특징으로 하는 라디오 어플리케이션 배포 방법.
  6. 청구항 2에 있어서,
    상기 파이프라인 구성 메타 데이터는 상기 라디오 어플리케이션의 데이터 송신 또는 수신 기능을 위한 상기 라디오 컨트롤러 코드, 상기 사용자 정의 기능 블록, 표준 기능 블록들의 연결 관계를 정의하는 것을 특징으로 하는 라디오 어플리케이션 배포 방법.
  7. 청구항 1에 있어서,
    상기 라디오 컨트롤러 코드는 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 의해서 실행되는 실행 코드 형태이며, 상기 라디오 어플리케이션의 상황 정보 (context information)을 사용자 어플리케이션에 제공하거나, 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 존재하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하는 것을 특징으로 하는 라디오 어플리케이션 배포 방법.
  8. 라디오 어플리케이션 패키지를 이용하여 사용자 단말에 라디오 어플리케이션을 설치하는 방법으로서,
    라디오 어플리케이션 패키지를 서버로부터 다운로드하는 단계; 및
    상기 라디오 어플리케이션 패키지에 포함된 라디오 어플리케이션을 상기 사용자 단말에 설치하는 단계를 포함하고,
    상기 라디오 어플리케이션 패키지는 라디오 컨트롤러 코드, 기능 블록 코드 및 파이프라인 구성 메타 데이터를 포함하는 것을 특징으로 하는 라디오 어플리케이션 설치 방법.
  9. 청구항 8에 있어서,
    상기 기능 블록 코드는
    상기 단말의 라디오 프로세서에 포함된 전용의 하드웨어 가속기를 이용하여 구현된 기능 블록을 호출하는 코드이거나, 상기 단말의 라디오 프로세서의 코어 상에서 동작하는 실행 코드인 표준 기능 블록 코드; 및
    상기 표준 기능 블록 코드로 제공되지 않거나, 상기 표준 기능 블록 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 코드를 포함하는 것을 특징으로 하는 라디오 어플리케이션 설치 방법.
  10. 청구항 9에 있어서,
    상기 라디오 어플리케이션 패키지는 상기 표준 기능 블록 코드가 상기 단말의 라디오 프로세서의 코어 상에서 동작 가능한 실행 코드로 제공되는 경우, 상기 실행 코드로 구성된 라디오 라이브러리를 추가로 포함하는 것을 특징으로 하는 라디오 어플리케이션 설치 방법.
  11. 청구항 8에 있어서,
    상기 사용자 정의 기능 블록 코드는 상기 단말의 라디오 프로세서에 의해서 실행되는 실행 코드 형태, 상기 단말의 라디오 프로세서에 의해서 실행되는 실행코드로 컴파일 가능한 소스 코드 형태 및 중간 표현(IR: Intermediate Representation) 형태 중 적어도 하나인 것을 특징으로 하는 라디오 어플리케이션 설치 방법.
  12. 청구항 11에 있어서,
    상기 사용자 정의 기능 블록 코드가 소스 코드 형태 또는 중간 표현 형태인 경우, 상기 사용자 정의 기능 블록 코드는 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 의해서 실행되는 컴파일러에 의해서 컴파일되는 것을 특징으로 하는 라디오 어플리케이션 설치 방법.
  13. 청구항 11에 있어서,
    상기 사용자 정의 기능 블록 코드가 소스 코드 형태 또는 중간 표현 형태인 경우, 암호화되어 상기 라디오 어플리케이션 패키지에 포함되는 것을 특징으로 하는 라디오 어플리케이션 설치 방법.
  14. 청구항 8에 있어서,
    상기 라디오 컨트롤러 코드는 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 의해서 실행되는 실행 코드 형태이며, 상기 라디오 어플리케이션의 상황 정보 (context information)을 사용자 어플리케이션에 제공하거나, 상기 단말의 어플리케이션 프로세서 또는 라디오 프로세서에 존재하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하는 것을 특징으로 하는 라디오 어플리케이션 설치 방법.
  15. 청구항 8에 있어서,
    상기 설치하는 단계는 상기 파이프라인 구성 메타 데이터를 참조하여, 상기 라디오 컨트롤러 코드 및 상기 기능 블록 코드를 상기 단말의 어플리케이션 프로세서 및 라디오 프로세서 중 적어도 하나가 액세스 가능한 저장 장치에 설치하도록 구성되는 것을 특징으로 하는 라디오 어플리케이션 설치 방법.
  16. 어플리케이션 프로세서와 라디오 프로세서를 구비한 단말에서, 기능 블록 코드 및 라디오 컨트롤러 코드로 구성된 라디오 어플리케이션의 실행 방법으로서,
    상기 라디오 어플리케이션에 대한 실행 명령을 수신하는 단계; 및
    상기 라디오 어플리케이션의 파이프라인 구성 메타 데이터를 참조하여, 상기 라디오 컨트롤러 코드와 상기 기능 블록 코드를 저장부로부터 로딩하는 단계를 포함하고,
    상기 라디오 컨트롤러 코드는 상기 어플리케이션 프로세서 또는 상기 라디오 프로세서에 의해서 실행되며, 상기 사용자 정의 기능 블록은 상기 라디오 프로세서 에 의해서 실행되는 것을 특징으로 하는 라디오 어플리케이션 실행 방법.
  17. 청구항 16에 있어서,
    상기 기능 블록 코드는
    상기 단말의 라디오 프로세서에 포함된 전용의 하드웨어 가속기를 이용하여 구현된 기능 블록을 호출하는 코드이거나, 상기 단말의 라디오 프로세서의 코어 상에서 동작하는 실행 코드인 표준 기능 블록 코드; 및
    상기 표준 기능 블록 코드로 제공되지 않거나, 상기 표준 기능 블록 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 코드를 포함하는 것을 특징으로 하는 라디오 어플리케이션 실행 방법.
  18. 청구항 16에 있어서,
    상기 어플리케이션 프로세서와 상기 라디오 프로세서 중 적어도 하나에서 실행되는 라디오 컨트롤 프레임워크가 상기 라디오 컨트롤러 코드 및 상기 기능 블록 코드에 동작 환경을 제공하는 것을 특징으로 하는 라디오 어플리케이션의 실행 방법.
  19. 청구항 18에 있어서,
    상기 라디오 컨트롤 프레임 워크가 상기 어플리케이션 프로세서와 상기 라디오 프로세서에서 동작할 경우, 상기 라디오 컨트롤 프레임 워크는 상기 어플리케이션 프로세서 상에서 실행되는 실행 부분과 상기 라디오 프로세서 상에서 실행되는 실행 부분으로 분리 구성되는 것을 특징으로 하는 라디오 어플리케이션의 실행 방법.
  20. 청구항 18에 있어서,
    상기 라디오 컨트롤 프레임 워크가 상기 어플리케이션 프로세서와 상기 라디오 프로세서에서 동작할 경우, 상기 라디오 컨트롤러 코드는 상기 어플리케이션 프로세서 상에서 동작하는 것을 특징으로 하는 라디오 어플리케이션의 실행 방법.
  21. 청구항 18에 있어서,
    상기 라디오 컨트롤 프레임 워크가 상기 라디오 프로세서에서만 동작할 경우, 상기 라디오 컨트롤러 코드는 상기 라디오 프로세서 상에서 동작하는 것을 특징으로 하는 라디오 어플리케이션의 실행 방법.
  22. 청구항 18에 있어서,
    상기 라디오 컨트롤 프레임워크는
    상기 단말에 대한 상기 라디오 어플리케이션의 인스톨/언인스톨 및 인스턴스(instance) 생성/삭제를 수행하고, 상기 라디오 어플리케이션의 라디오 파라미터들를 관리하는 설정 매니저(CM: Configuration Manager);
    상기 라디오 어플리케이션들의 활성화/비활성화 및 라디오 어플리케이션들 간의 사용자 데이터 흐름 스위치를 관리하는 라디오 연결 매니저(RCM: Radio Connection Manager);
    사용자 데이터 패킷의 송/수신 및 흐름을 제어하는 플로우 컨트롤러(FC: Flow Controller);
    라디오 어플리케이션들로부터의 스펙트럼 자원들에 대한 요청을 스케쥴링하는 멀티 라디오 컨트롤러(MRC: Multi-Radio Controller); 및
    라디오 어플리케이션들간에 라디오 자원의 공유시키는 리소스 매니저(RM: Resource Manager) 중 적어도 하나를 포함하는 것을 특징으로 하는 라디오 어플리케이션의 실행 방법.
PCT/KR2013/003109 2012-04-12 2013-04-12 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법 WO2013154398A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015505652A JP5977438B2 (ja) 2012-04-12 2013-04-12 ソフトウェア定義無線アプリケーションの配布、設置及び実行方法
EP13774957.8A EP2838014B1 (en) 2012-04-12 2013-04-12 Method for distributing, installing and executing software-defined radio application
US14/391,884 US9350848B2 (en) 2012-04-12 2013-04-12 Method for distributing, installing and executing software-defined radio application
CN201380019710.2A CN104254835B (zh) 2012-04-12 2013-04-12 软件定义的无线电应用的分发、设置及执行方法

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
KR10-2012-0038045 2012-04-12
KR20120038045 2012-04-12
KR20120038062 2012-04-12
KR10-2012-0038062 2012-04-12
KR20120089783 2012-08-17
KR10-2012-0089783 2012-08-17
KR20120090575 2012-08-20
KR10-2012-0090575 2012-08-20
KR10-2012-0119229 2012-10-25
KR20120119229 2012-10-25
KR10-2012-0141664 2012-12-07
KR20120141664 2012-12-07

Publications (1)

Publication Number Publication Date
WO2013154398A1 true WO2013154398A1 (ko) 2013-10-17

Family

ID=49327892

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/003109 WO2013154398A1 (ko) 2012-04-12 2013-04-12 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법

Country Status (6)

Country Link
US (1) US9350848B2 (ko)
EP (1) EP2838014B1 (ko)
JP (1) JP5977438B2 (ko)
KR (1) KR102038392B1 (ko)
CN (1) CN104254835B (ko)
WO (1) WO2013154398A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338658A (zh) * 2020-02-27 2020-06-26 上海电力大学 一种基于stm32CPU下载PIC单片机程序的方法及系统
US11704100B2 (en) * 2021-06-07 2023-07-18 Snowflake Inc. Inline compilation of user defined functions

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015167264A1 (ko) * 2014-05-02 2015-11-05 한양대학교 산학협력단 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
GB2529475A (en) * 2014-08-22 2016-02-24 Ibm Tenant allocation in multi-tenant software applications technical field
WO2017138784A1 (ko) * 2016-02-12 2017-08-17 한양대학교 산학협력단 라디오 어플리케이션을 실행하는 방법 및 단말 장치
CN112204518A (zh) * 2017-07-21 2021-01-08 苹果公司 用于软件重新配置的多无线电接口
US10481898B2 (en) 2017-11-03 2019-11-19 Salesforce.Com, Inc. Automated software package deployment
US10747508B2 (en) * 2018-12-31 2020-08-18 Rockwell Automation Technologies, Inc. Function block framework generation
US10911941B2 (en) 2019-03-08 2021-02-02 Industry-University Cooperation Foundation Hanyang University Reconfigurable radio equipment having multiple radio computers, and operation method for the same
US11579578B2 (en) * 2020-03-26 2023-02-14 Honeywell International Inc. Hierarchal controller logic with incremental updates

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020071217A (ko) * 2001-03-05 2002-09-12 엘지전자 주식회사 에스디알 단말기의 애플리케이션 다운로드 장치 및 방법
JP2005223788A (ja) * 2004-02-09 2005-08-18 Matsushita Electric Ind Co Ltd ソフトウェア無線機及びソフトウェア無線機のソフトウェアダウンロード方法
KR20080040103A (ko) * 2006-11-02 2008-05-08 한국전자통신연구원 컴포넌트 핫스와핑을 지원하는 sca 기반 시스템 및 그지원 방법
KR20100097687A (ko) * 2007-12-14 2010-09-03 마이크로소프트 코포레이션 소프트웨어 기반 무선기 아키텍처

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043087A (ja) * 1999-08-02 2001-02-16 Nippon Telegr & Teleph Corp <Ntt> 無線通信端末のソフトウェア変更方法及び無線通信端末
US7917888B2 (en) * 2001-01-22 2011-03-29 Symbol Technologies, Inc. System and method for building multi-modal and multi-channel applications
JP2003122442A (ja) * 2001-10-16 2003-04-25 Sony Corp ソフトウェア・ダウンロードシステムのための無線データ通信方法および装置
JP2005039557A (ja) * 2003-07-15 2005-02-10 Hitachi Kokusai Electric Inc ソフトウェア無線機
US7406328B2 (en) * 2003-09-15 2008-07-29 Harris Corporation System and method for configuring a software radio
US20050165726A1 (en) * 2003-10-30 2005-07-28 Pepper Computer, Inc. Packaged, organized collections of digital information, and mechanisms and methods for navigating and sharing the collection
US20060203722A1 (en) * 2005-03-14 2006-09-14 Nokia Corporation System and method for managing performance of mobile terminals via remote diagnostics
US7659819B2 (en) * 2005-04-21 2010-02-09 Skyetek, Inc. RFID reader operating system and associated architecture
US8463319B2 (en) * 2005-06-17 2013-06-11 Honeywell International Inc. Wireless application installation, configuration and management tool
KR100712068B1 (ko) * 2005-11-11 2007-04-30 한국전자통신연구원 이중 모드를 지원하는 에스시에이(sca) 기반 기지국시스템에서 소프트웨어 컴포넌트의 초기화 및 교체 방법,그리고 이를 위한 애플리케이션 패키지 구조
US8645973B2 (en) * 2006-09-22 2014-02-04 Oracle International Corporation Mobile applications
JP4873627B2 (ja) * 2006-10-19 2012-02-08 Kddi株式会社 移動局における無線インタフェースの再構成方法、サーバ及びプログラム
US8595186B1 (en) * 2007-06-06 2013-11-26 Plusmo LLC System and method for building and delivering mobile widgets
KR100903999B1 (ko) * 2007-11-30 2009-06-22 한국전자통신연구원 Sdr 단말용 코아 프레임워크에서 데이터베이스를 이용한도메인 프로파일의 운용 시스템 및 방법
US20110113232A1 (en) * 2008-06-27 2011-05-12 Nokia Corporation Methods, apparatuses, and computer program products for memory management in devices using software defined radios
US8266577B2 (en) * 2008-09-09 2012-09-11 Sensormatic Electronics, LLC RFID enhanced operating system (EOS) framework
EP2394378A1 (en) * 2009-02-03 2011-12-14 Corning Cable Systems LLC Optical fiber-based distributed antenna systems, components, and related methods for monitoring and configuring thereof
US20110117956A1 (en) * 2009-11-17 2011-05-19 Yosi Levi Industrial radio device with unified programming interface and methods
JP5534801B2 (ja) * 2009-12-24 2014-07-02 株式会社日立国際電気 ソフトウェア無線装置
KR101785116B1 (ko) * 2010-12-24 2017-10-17 한양대학교 산학협력단 모뎀 하드웨어에 독립적인 라디오 어플리케이션을 위한 소프트웨어 정의 라디오 단말 장치
US8897782B2 (en) * 2012-01-16 2014-11-25 Microsoft Corporation System and method for offloading traffic from cellular networks using plugins

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020071217A (ko) * 2001-03-05 2002-09-12 엘지전자 주식회사 에스디알 단말기의 애플리케이션 다운로드 장치 및 방법
JP2005223788A (ja) * 2004-02-09 2005-08-18 Matsushita Electric Ind Co Ltd ソフトウェア無線機及びソフトウェア無線機のソフトウェアダウンロード方法
KR20080040103A (ko) * 2006-11-02 2008-05-08 한국전자통신연구원 컴포넌트 핫스와핑을 지원하는 sca 기반 시스템 및 그지원 방법
KR20100097687A (ko) * 2007-12-14 2010-09-03 마이크로소프트 코포레이션 소프트웨어 기반 무선기 아키텍처

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2838014A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338658A (zh) * 2020-02-27 2020-06-26 上海电力大学 一种基于stm32CPU下载PIC单片机程序的方法及系统
CN111338658B (zh) * 2020-02-27 2023-10-10 上海电力大学 一种基于stm32CPU下载PIC单片机程序的方法及系统
US11704100B2 (en) * 2021-06-07 2023-07-18 Snowflake Inc. Inline compilation of user defined functions

Also Published As

Publication number Publication date
JP5977438B2 (ja) 2016-08-24
EP2838014A4 (en) 2016-03-16
US9350848B2 (en) 2016-05-24
CN104254835B (zh) 2017-08-15
KR20130116037A (ko) 2013-10-22
JP2015525009A (ja) 2015-08-27
KR102038392B1 (ko) 2019-11-01
US20150052515A1 (en) 2015-02-19
EP2838014B1 (en) 2019-05-15
EP2838014A1 (en) 2015-02-18
CN104254835A (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
WO2013154398A1 (ko) 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
WO2015167264A1 (ko) 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
WO2013154380A1 (ko) 소프트웨어 정의 라디오 어플리케이션의 동작 방법
WO2012086992A2 (ko) 모뎀 하드웨어에 독립적인 라디오 어플리케이션을 위한 소프트웨어 정의 라디오 단말 장치
WO2013065915A1 (ko) 보안 영역과 비보안 영역 사이의 보안 연동 방법 및 보안 어플리케이션 다운로드 관리방법, 관리서버, 단말기, 및 이를 적용한 관리시스템
WO2018076841A1 (zh) 数据分享方法、装置、存储介质及服务器
WO2013097567A1 (zh) 一种实现开放平台功能扩展的方法及系统
WO2018076889A1 (zh) 数据备份的方法、装置、系统、存储介质及服务器
WO2016171401A1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
WO2011129635A2 (ko) 이동통신 시스템에서 응용 서비스를 제공하는 방법 및 장치
WO2017104902A1 (ko) 사용자 단말장치, 서버, 및 그 어플리케이션 실행 방법
WO2009136740A2 (ko) OSGi 서비스 플랫폼에 원격으로 설치된 번들에 대한 바인딩 정보를 관리하는 방법 및 장치
WO2014204084A1 (ko) 어플리케이션 공유 서비스 방법 및 이에 적용되는 장치
WO2020060021A1 (en) Packet data unit (pdu) session control method and apparatus
WO2020073615A1 (zh) 设备软件的升级方法、数据转化器及可读存储介质
WO2012153968A2 (ko) 소프트웨어 정의 라디오 단말 장치 및 라디오 어플리케이션의 배포 및 설치 방법
WO2016159496A1 (ko) 보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법
WO2021141441A1 (ko) 스크래핑 기반 서비스 제공 방법 및 이를 수행하는 어플리케이션
WO2016028086A1 (ko) 라디오 어플리케이션을 실행하는 방법 및 단말 장치
WO2020096239A1 (ko) 작업 의존성에 기초하여 컴퓨팅 작업을 서버에 스케줄링하는 방법 및 장치
WO2020180072A1 (ko) 엣지 컴퓨팅 환경에서 어플리케이션 재배치를 제어하기 위한 장치 및 방법
WO2017155371A1 (ko) 디지털 방송 시스템에서의 서비스 제공장치 및 방법
WO2016171477A1 (ko) 통합 라디오 어플리케이션의 관리 방법 및 이를 이용하는 재구성 가능한 모바일 장치
WO2022203387A1 (ko) 소스 컴파일러를 구비한 사용자 인터페이스 플랫폼 통합 개발 시스템 및 방법
WO2018128533A1 (en) Method and system for managing accessory application of accessory device by companion device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13774957

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015505652

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2013774957

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 14391884

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE