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

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

Info

Publication number
WO2015167264A1
WO2015167264A1 PCT/KR2015/004355 KR2015004355W WO2015167264A1 WO 2015167264 A1 WO2015167264 A1 WO 2015167264A1 KR 2015004355 W KR2015004355 W KR 2015004355W WO 2015167264 A1 WO2015167264 A1 WO 2015167264A1
Authority
WO
WIPO (PCT)
Prior art keywords
radio
code
application
user terminal
user
Prior art date
Application number
PCT/KR2015/004355
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 US15/308,226 priority Critical patent/US10228927B2/en
Publication of WO2015167264A1 publication Critical patent/WO2015167264A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/18Selecting a network or a communication service
    • 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/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/54Allocation or scheduling criteria for wireless resources based on quality criteria

Definitions

  • the present invention relates to a method for 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
  • -Defined Radio How to deploy, install and run an application.
  • radio applications As communication technology advances, many new kinds of radio applications are used depending on the user's preferences and purpose. Most radio applications that support wireless communications such as LTE, WCDMA, WIMAX, GSM, etc., run on the terminal while interacting with the modem.
  • radio applications To control a modem, radio applications must develop and apply a custom module that understands the modem's unique commands, depending on the modem manufacturer or model. As a result, this results in certain radio applications running only on certain modems from certain manufacturers. To solve this problem, you can prepare a radio application that contains all of the different control commands to support different types of modems, or you can create and distribute different executables for each modem.
  • 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 for executing a software-defined radio application that operates independently of hardware and user applications.
  • a radio application distribution method for installing a radio application in a user terminal using a radio application package, radio controller code compiled by an application processor compiler, and a user-defined function Generating a radio application package including block code, and uploading the radio application package to a server, wherein the radio controller code is in the form of executable code executed by an application processor or a radio computer of the user terminal and Provides the status information of the installed radio application to the user application of the user terminal or transmits data and the networking stack of the communication service layer located in the application processor Your system provides a way to distribute radio applications that define a radio controller.
  • the user defined function block code may be in the form of executable code executed by an application processor or a radio computer, or in the form of source code or intermediate representation (IR) that may be compiled into executable code executed by an application processor or a radio computer. It can be included in a radio application package.
  • IR intermediate representation
  • the radio application package when having an executable code form, further includes standard functional block code, and the radio application code including the standard functional block code and the user-defined functional block code is compiled by one or more compilers to generate the radio. It can be included in an application package.
  • the user defined function block may be compiled by the front end compiler and included in the radio application package.
  • the radio application package when having a source code form or an intermediate representation form, the radio application package further includes pipeline configuration metadata for constructing a pipeline of the radio application, the pipeline configuration metadata being used to transmit data or You can define the linkage between the radio controller code, the user-defined function block code, and the standard function block code for the receive function.
  • a radio application installation method is provided that defines a radio controller for transmitting and receiving data to and from a networking stack of a communication service layer located in an application processor.
  • the user defined function block code may be in the form of executable code executed by an application processor or a radio computer, or in the form of source code or intermediate representation (IR) that may be compiled into executable code executed by an application processor or a radio computer. It can be included in a radio application package.
  • IR intermediate representation
  • the radio application package further includes a standard functional block code when the executable code form is included, and the radio application code including the standard functional block code and the user-defined functional block code is combined with a radio controller included in the radio application package.
  • the radio application code can be installed in the storage unit of the user terminal by the installer of the user terminal.
  • the configuration code including the user-defined function block code may include a compiler of the user terminal referring to the pipeline configuration metadata of the radio application package or a cloud connected to the user terminal. It can be compiled by the compiler and generated as executable code (executable code for configuration code).
  • the executable code may be installed in a storage unit of the user terminal through an installer of the user terminal together with a radio controller of the radio application package.
  • the configuration code may correspond to a result of compiling a radio application code including a user-defined function block.
  • the user terminal may compile standard functional block codes in the radio library together to generate executable code.
  • the radio library includes a standard donated block code, and may be used to link the user defined function block code and the standard function block code when compiling the user defined function block code.
  • the radio application installation method may further include, before the step of installing the radio application to the user terminal, decrypting the configuration code through a decoder of the cloud connected to the user terminal or the user terminal and providing it to the compiler. .
  • the configuration code or radio application code including the user-defined function block is combined with the pipeline configuration metadata of the radio application package to the user terminal or the cloud connected to the user terminal. It can be compiled by the backend compiler and generated into executable code. Execution code (function block execution code) for the configuration code may be installed in the user terminal by the installer of the user terminal together with the radio controller of the radio application package.
  • the compiler may generate the executable code by compiling the radio library or the standard functional block code of the user terminal with reference to the pipeline configuration metadata.
  • a method for executing a radio application installed in the storage unit in a user terminal having an application processor and a radio computer receiving a command to execute a radio application, Executing, by the first loader operating in the first operating system of the application processor in response to the execution instruction, the radio controller execution code installed in the storage unit on the application processor; and in response to the executing instruction, the second loader operating in the radio operating system of the radio computer.
  • a method of executing a radio application comprising executing a function block execution code installed in a storage unit on a radio computer.
  • first loader and the second loader may refer to pipeline configuration metadata of the radio application installed in the storage.
  • Pipeline configuration metadata may define a connection relationship between the radio controller execution code and the function block execution code for a data transmission or reception function of a radio application.
  • the function block execution code is a code for calling a function block of a dedicated hardware accelerator included in a radio computer, or a standard function block execution code, which is an execution code operating on a radio computer of a user terminal, and a standard function block execution code. It can contain custom function block execution code that is not provided or that customizes the functionality provided by the standard function block execution code.
  • the second loader executes the radio library stored in the storage unit together with the function block execution code (user-defined function block execution code) on the radio operating system of the radio computer. Can be.
  • the second loader links the standard function block execution code in the radio library of the user terminal with the user-defined function block execution code of the function block execution code. Can be run on the radio operating system.
  • 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 including radio controller code, functional block code, and pipeline configuration metadata.
  • the function block code is a standard for calling a function block implemented using a dedicated hardware accelerator included in a radio computer of a radio application terminal (mobile device) or an executable code for operating in a radio computer of a radio application terminal.
  • Functional block codes, and user-defined functional block codes that are not provided as standard functional block codes or that customize functions provided by the standard functional block codes.
  • the radio application package may further include a radio library composed of executable code, if the standard functional block code is provided as executable code operable on a radio computer.
  • the user defined function block code may be at least one of an executable code form executed by a radio computer, a source code form compileable into executable code executed by the radio computer, and an intermediate representation (IR) form.
  • the user defined function block code when the user defined function block code is in the form of a source code or an intermediate representation, the user defined function block code may be encrypted and included in the radio application package.
  • the pipeline configuration metadata may define a connection relationship between radio controller code, user-defined function blocks, and standard function blocks for data transmission or reception functions of a radio application.
  • the radio controller code includes a form of executable code executed by an application processor or a radio computer of a radio application terminal, and provides context information of the radio application to a user application or exists in an application processor or a radio computer. It can send and receive data with the networking stack of the communication service layer.
  • a method for installing a radio application in a user terminal using a radio application package the step of downloading the radio application package from the server and the radio application included in the radio application package It includes the step of installing in the user terminal, the radio application package provides a radio application installation method comprising the radio controller code, functional block code and pipeline configuration metadata.
  • the function block code may be a code for calling a function block implemented using a dedicated hardware accelerator included in a radio computer of a radio application terminal, and a standard function block, which is an executable code operating in a radio computer of a radio application terminal.
  • Code, and custom functional block codes that are not provided as standard functional block codes or that customize functionality provided by the standard functional block codes.
  • the radio application package may further include a radio library composed of executable code, if the standard functional block code is provided as executable code operable on a radio computer.
  • the user defined function block code may be at least one of an executable code form executed by the radio computer, a source code form compileable into executable code executed by the radio computer, and an intermediate representation (IR) form. If the user defined function block code is in source code form or intermediate representation form, the user defined function block code may be compiled by a compiler executed by an application processor or a radio computer of a radio application terminal. If the user defined function block code is in source code form or intermediate representation, the user defined function block code may be encrypted and included in the radio application package.
  • IR intermediate representation
  • the radio controller code may be in the form of executable code executed by an application processor or a radio computer, and may provide context information of the radio application to a user application or may be provided by a communication service layer existing in the application processor or the radio computer. Send and receive data to and from the networking stack.
  • the installing may be configured to install the radio controller code and the functional block code in a storage device accessible by at least one of the application processor and the radio computer with reference to the pipeline configuration metadata.
  • a method for executing a radio application consisting of a functional block code and a radio controller code in a user terminal (mobile device) having an application processor and a radio computer, Receiving an execution command for the radio application, and loading the radio controller code and the function block code from the storage by referring to the pipeline configuration metadata of the radio application, wherein the radio controller code is executed by the application processor or the radio computer.
  • the user defined function block provides a way to run a radio application that is executed by a radio computer.
  • the function block code may be code for calling a function block implemented using a dedicated hardware accelerator included in a radio computer of a radio application terminal, and a standard function block code, which is an executable code operating in a radio computer, and a standard. It may include user-defined functional block codes that are not provided as functional block codes or have customized functions provided by standard functional block codes.
  • a radio control framework running on at least one of an application processor and a radio computer can provide an operating environment for radio controller code and functional block code.
  • the radio control framework when the radio control framework operates in the application processor and the radio computer, the radio control framework may be divided into an execution part executed in the application processor and an execution part executed in the radio computer.
  • the radio controller code when the radio control framework operates in the application processor and the radio computer, the radio controller code may be configured to operate in the application processor.
  • the radio controller code may be configured to operate on the radio computer.
  • the radio control framework installs or uninstalls a radio application to a radio application terminal, creates or deletes an instance, and configures a configuration manager (CM) that manages radio parameters of the radio application.
  • CM configuration manager
  • Radio Connection Manager (RCM) that manages the activation or deactivation of applications, and user data flow switches between radio applications
  • Flow Controller (FC) that controls the transmission and reception of user data packets
  • radio applications At least one of a Multi-Radio Controller (MRC) that schedules requests for spectrum resources from those resources and a Resource Manager (RM) that shares radio resources between radio applications.
  • MRC Multi-Radio Controller
  • RM Resource Manager
  • the same radio application can be installed in a user terminal having a modem chip having a different structure. You can run
  • modem hardware manufacturers can use hardware based on the complexity or power consumption of each block in the standard baseband APIs.
  • software implementations can be chosen, and radio application makers can create radio applications that are independent of the modem chip using standard baseband APIs.
  • other target programs may be linked to user-defined function blocks or installed during the installation of radio applications distributed in the form of executable code, source code, or intermediate representation. It is possible to provide a method for distributing, installing, and executing a radio application using a radio application package that can be configured to link another target program with a user-defined function block during execution of an application.
  • FIG. 1 is a block diagram illustrating an architecture of a software defined radio terminal device (hereinafter, simply referred to as a mobile device) according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating an architectural reference model of a mobile device for a multi-radio application according to an embodiment of the present invention.
  • 3 to 7 are conceptual diagrams illustrating a distribution, installation, and execution process of a software defined radio application (hereinafter, simply referred to as a radio application) according to an embodiment of the present invention.
  • FIG. 9 is a conceptual diagram illustrating an embodiment of distributing the radio application package of FIG. 8 in an online store.
  • FIG. 10 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. 11 is a block diagram illustrating another example of a process of distributing and installing a user-defined function block code in the form of source code according to an embodiment of the present invention.
  • FIG. 12 is a conceptual diagram illustrating an example of a standard baseband interface according to an embodiment of the present invention.
  • FIG. 13 is a flowchart illustrating a method of distributing a radio application according to an embodiment of the present invention.
  • FIG. 14 is a flowchart illustrating a method of installing and executing a radio application according to an embodiment of the present invention.
  • 15 is a conceptual diagram illustrating a software reauthentication process using a radio virtual machine according to an embodiment of the present invention.
  • 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.
  • the term "and / or" includes a combination of a plurality of related items or any of a plurality of related items.
  • Radio Application A medium for reconfiguring a mobile device to implement a method of distributing, installing, and executing a software-defined radio application (hereinafter, simply referred to as a radio application) according to the present embodiment. It is an application that provides a radio communication environment to a mobile device independently of hardware configuration and user application. That is, the radio application may be software that generates a radio (RF) signal or decrypts a received RF signal.
  • RF radio
  • RF radio virtual machine
  • RVM radio virtual machine
  • a radio application may be represented in various forms, for example, Source Codes, Intermediate Representation (IR), or Executable Codes.
  • the source code may include a radio library native implementation and a radio library calling radio hardware abstraction layer (Radio HAL) calls.
  • the intermediate representation may also include a radio library native implementation and a radio library that calls the radio hardware abstraction layer calls.
  • the executable code may be for a specific radio platform.
  • the radio application may include a radio controller (RC) and function blocks.
  • the function block includes a user-defined function block (UDFB), and may further include a radio library standard function block (SBF) as necessary.
  • the radio application may be an integrated radio application that is installed on a mobile device via a radio application package.
  • Radio Application Package A distribution form of a radio application, which may include functional blocks, radio controller code, and pipeline configuration metadata that are components of a radio application.
  • the radio application package may additionally include a radio library.
  • Standard Function Block is a functional block in which the function of each block of the mobile device and the name of a function for executing the block are standardized.
  • the standard function block may be a collection of standard function blocks implemented by the hardware manufacturer when the hardware manufacturer such as a radio platform chip vendor manufactures the standard function block, and may be provided with a driver for driving the block.
  • the library When implemented in executable code that operates on a radio computer, the library may also be referred to as a radio library.
  • Standard functional blocks may be implemented using dedicated hardware accelerators.
  • Standard function blocks have standardized names and functions of functions, and can be defined by a standard baseband API header file.
  • UDFB User Defined Function Block
  • UDFB User Defined Function Block
  • FIG. 1 and 2 are block diagrams illustrating a software architecture environment in which a radio application operates according to an embodiment of the present invention.
  • FIG. 1 is a block diagram illustrating an architecture of a software defined radio terminal device (hereinafter, simply referred to as a mobile device) for radio reconfiguration according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating the mobile device architecture of FIG.
  • the mobile device architecture basically includes a communication services layer (CSL), a radio control framework (RCF) 114, and a radio platform (RCF). Radio Platform, 121).
  • CSL communication services layer
  • RCF radio control framework
  • RCF radio platform
  • the communication service layer 113 is a layer that supports general applications such as Internet access.
  • the communication service layer 113 may include an administrator application 1131, a mobility policy manager application 1132, a networking stack-communication service layer for at least some of the three services described below. It includes a protocol stack-1133 and a monitor application 1134 that operate on the device, and can be connected to the radio control framework 114 through a multiradio interface (MURI).
  • MURI multiradio interface
  • the multiradio interface (MURI) is an interface between the communication service layer 113 and the radio control framework 114.
  • 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 state (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 113 providing the above three services is not limited to including the above-described components. That is, the communication service layer 113 may include only at least some of the above-described components 1131 to 1134, or may include additional components other than the above-described components. In addition, the communication service layer 113 may include one or more components in which the functions of at least two or more of the aforementioned components are integrated. In addition, the above-described components are merely examples of the components that the communication service layer 113 should have in order to support the services that the communication service layer 113 should perform. In other words, the communication service layer 113 is defined by the role performed by the communication service layer, and the configuration of the communication service layer 113 is not limited by the above-described examples.
  • the radio control framework 114 is a control framework that extends OS capabilities instead of radio resource management as part of an operating system (OS).
  • the radio control framework 114 is connected with the Unified Radio Application 115 through the Unified Radio Application Interface (URAI).
  • URAI Unified Radio Application Interface
  • the integrated radio application interface (URAI) is the interface between the radio application and the radio control framework 114.
  • the radio control framework 114 is a component that provides an operating environment for radio applications.
  • the radio control framework 114 basically stores at least some of the five components of the configuration manager 1141, the radio connection manager 1142, the flow controller 1143, the multi-radio controller 1144, and the resource manager 1145. To manage radio applications.
  • the configuration manager (CM) 1141 is responsible for installing / uninstalling a radio application for a multi-radio terminal device as a mobile device, creating / deleting an instance, and managing access to radio parameters of radio applications.
  • Radio Connection Manager (RCM) 1142 is responsible for activating / deactivating radio applications according to user requirements and for overall management of user data flows that can be switched from one radio application to another.
  • a multiradio controller (MRC) 1144 schedules requests for radio resources raised from concurrently running radio applications in order to detect interoperability problems between radio applications in advance.
  • a resource manager (RM) 1145 is responsible for managing multi-radio resources for sharing multi-radio resources between active radio applications while meeting real-time requirements.
  • the resource manager 1145 may basically be part of the operating system.
  • the radio control framework 114 may include only some of the above five components, or may further include components other than the five components.
  • the radio control framework 114 may also be comprised of one or more components incorporating the functionality of at least two or more components.
  • the function and role of the radio control framework 114 are defined by the functions performed by the above-described components, but the configuration of the radio control framework 114 is not limited by the above-described exemplary components. That is, the radio control framework 114 may have various configurations for performing at least some of the functions of the above-described components.
  • the radio platform 121 is part of the hardware of a mobile device capable of generating a signal or receiving a high frequency signal and includes hardware for the implementation of a functional block.
  • the hardware may be heterogeneous hardware that includes different signal processing components, such as fixed or dedicated accelerators and reconfigurable accelerators.
  • Dedicated accelerators can include application-specific integrated circuits (ASICs), etc.
  • reconfigurable accelerators can be field programmable gate arrays (FPGAs), graphics processing units (GPUs), digital A digital signal processing device and the like.
  • the radio platform 121 is part of the mobile device hardware associated with the radio signal processing capability, programmable hardware (1211), dedicated hardware (1212), RF transceiver 1213 and antenna 1214. ) May be included.
  • Programmable hardware 1211 and dedicated hardware 1212 may be included in a modem 1210 that includes baseband and other components, and dedicated hardware 1212 may comprise a hardware accelerator or a baseband accelerator. It may include.
  • Programmable hardware 1211 may be used to support the extensibility of standard functional blocks in reconfigurable mobile devices.
  • Baseband accelerators prepared for the execution of a function block can often be provided in the form of an application-specific integrated circuit (ASIC).
  • the radio platform 121 may be connected to a unified radio application 115 through a reconfigurable radio frequency interface (RRFI).
  • the RRFI is an interface between the radio platform 121 and the integrated radio application 115.
  • the aforementioned radio platform 121 may correspond to radio platform hardware and may be connected to the radio OS 123 through a radio platform driver 122.
  • the radio control framework 114 may operate on the radio OS 123 and the communication service layer 113.
  • the radio control framework 114 may be divided into two groups, or Execution regions and the like. In one example, one group operates on the application processor 110 and the other group operates on the radio computer 120. Which components of the radio control framework 114 operate in real time on the radio computer 120 and which components operate non-real time on the application processor 110 may be determined by the vendor of each radio application package. have.
  • the radio control framework 114 may not be divided between the radio computer 120 execution portion and the application processor 110 execution portion. It can be implemented to operate only on).
  • the execution portion of the radio control framework 114 operating on the communication service layer 113 may be referred to as a radio controller, and the execution portion of the radio controller framework 114 operating on the radio OS 123. May be referred to as a function block.
  • the mobile device architecture includes a Radio Controller running on the application processor 110 and a function block running on the radio computer 120 and / or the radio OS 123. ) May be included.
  • the radio computer 120 may be part of mobile device hardware for a radio software architecture, and the peripheral device may include an RF part, such as an RF transceiver 1213, that processes Radio Frequency (RF). Can be.
  • RF Radio Frequency
  • the radio computer 120 may correspond to a radio computer.
  • the radio computer may also be implemented on programmable hardware 1211.
  • the radio computer may broadly correspond to at least a portion of the radio computer 120 including programmable hardware, hardware accelerators, peripherals, and the like.
  • radio applications can be implemented directly through the radio library on the radio computer without the need for extra hardware.
  • a non-real time operating system such as Google's Android OS and Apple's iOS
  • the radio computer 120 operates.
  • a real time OS referred to as the radio OS 123
  • a non-real time operating system operating on the application processor 110 is referred to as an 'operating system (OS)'
  • a real time operating system operating on the radio computer 120 is referred to as a 'real time operating system' or 'radio operating system (Radio OS)'.
  • OS 'operating system
  • Radio OS radio operating system
  • the application processor 110 of the mobile device may include the following components, as shown in FIG. 2, that is, a driver 117, an operating system (OS) 116, and a communication service layer 113.
  • a driver 117 an operating system (OS) 116
  • OS operating system
  • a communication service layer 113 a communication service layer 113.
  • Driver 117 drives hardware devices on a given operating system 116.
  • Hardware devices may include cameras, speakers, and the like.
  • Operating system (OS) 116 may include a non-real time OS operating on conventional mobile devices such as Android, iOS.
  • One or more user applications 1161 may operate on the operating system 116.
  • the operating system 116 may be referred to as a 'first operating system' to distinguish it from the radio operating system described below.
  • the communication service layer 113 supports the operation of one or more radio applications RA 1, RA 2, RA 3,..., RA N of the integrated radio application 115 running on the radio control framework 114.
  • a radio controller which is a specific execution part of a radio application, may operate. If the radio control framework 114 is configured to operate only on the radio computer 120, the radio control framework 114 may be omitted on the application processor 110 or the communication service layer 113.
  • radio applications RA 1 which is a target of a method for distributing, installing, and executing a radio application in a configuration in which the radio control framework 114 operates on the application processor 110 and the radio computer 120.
  • RA 2, RA 3,..., RA N send context information to the monitor 1134 of the communication service layer 113 through a radio controller which is an application processor execution part, or transmit a communication service layer. It may be implemented to exchange data with the networking stack 1133 of 113.
  • the radio computer includes the following components, that is, a radio operating system (123), a radio platform driver (122), and a radio platform (121).
  • Radio OS 123 is any suitable real-time operating system to which the radio control framework 114 is authorized to reconfigure software architectures, install or execute functional blocks, and the like.
  • the radio OS 123 has basic management capabilities and radios related to the management of the radio platform 121 such as resource management, file system support, unified access to hardware resources, and the like. Can provide control framework capabilities.
  • the radio platform driver 122 is a hardware driver of the radio OS 123 and interacts with the radio platform hardware.
  • the radio platform 121 is a radio platform hardware, the configuration and operation of which is as described above.
  • the radio application according to the present embodiment may be distributed in the form of a radio application package (RAP) as an application for reconfiguring a mobile device.
  • RAP radio application package
  • the radio application package installed in the reconfigurable mobile device may include function block codes, radio application codes, and metadata (see FIG. 8).
  • the function block code may be installed in a radio computer 120 that includes codes for one or more standard function blocks and / or one or more user-defined function blocks and operates in real time.
  • the radio application package may be distributed including the radio library in the form of executable code.
  • the radio application code may include a radio controller code (RC codes), and the metadata may include a metadata for pipeline configuration metadata.
  • the radio controller code may be installed in the application processor 110 for an operation that does not require real time processing such as situation information processing.
  • the radio application package is downloaded from the server side by the OS 116 of the application processor 110, and the configcodes and radio libraries in the radio application package refer to the pipeline configuration metadata to the radio at the application processor 110.
  • the computer 120 may be loaded into the radio OS 123 of the radio computer 120.
  • 3 to 7 are conceptual views illustrating a process of distributing, installing, and executing a radio application according to an embodiment of the present invention.
  • the radio application may be distributed in at least one of an executable code form, a source code form, and an intermediate representation form.
  • an executable code form e.g., a source code form
  • an intermediate representation form e.g., a source code form
  • RAP Radio Application Package
  • the design / deployment phase is the creation and deployment of a radio application in which the supplier or distributor side computing device (hereinafter referred to as the distributor device) of the radio application is a radio application package containing radio controller code and user-defined functional blocks.
  • the distributor device the supplier or distributor side computing device (hereinafter referred to as the distributor device) of the radio application is a radio application package containing radio controller code and user-defined functional blocks.
  • the radio controller code or the radio application code may be written to call function blocks using a standard radio library header defining a standard radio library interface.
  • the radio controller code may be compiled by the application processor compiler of the distributor device and included in the radio application package in the form of a radio controller or radio controller execution code.
  • the radio controller code may be compiled by an application processor compiler (AP Compiler) of a distributor device and included in a radio application package in the form of executable code.
  • AP Compiler application processor compiler
  • the radio application code is distributed in the form of executable code executable on the user terminal, the radio application code is compiled from a compiler suitable for the execution environment of the terminal (mobile device) among various compilers and included in the radio application package in the form of executable code. You can.
  • the radio application code may be compiled into an intermediate representation by a front-end compiler and included in the radio application package.
  • the generated radio application package may be uploaded to a distribution server (eg, a radio app store) and prepared to be downloaded from a user terminal to implement a corresponding radio application.
  • a distribution server eg, a radio app store
  • radio application Deploy, install, and run a package (RAP)
  • FIG. 3 is a conceptual diagram illustrating a method of distributing, installing and executing a radio application according to an embodiment of the present invention.
  • This embodiment is a block diagram of a case of distributing a Radio Application Package (RAP) having platform-specific executable code on a platform of a mobile device.
  • RAP Radio Application Package
  • Standard & User Defined Functional Blocks located in the Distributor device for distribution of the RAP are defined by the Standard Radio Library Header and compiled after each. Included in the RAP.
  • RAP also includes Radio Controller or Radio Controller Executable Code compiled in the Distributor Device's Application Processor Compiler.
  • Standard function blocks (SFBs) and user-defined function blocks (UDFBs) are reconfigured in a plurality of mobile devices.
  • Compiler A, Compiler B, and Compiler C may be compiled independently or differently to correspond to each radio application. This means that the executable code of user-defined and standard function blocks is compiled to match the radio computer that is set up before it is included in the RAP.
  • the generated RAP may be uploaded from a distributor device to a RadioApp Store via a network.
  • the radio application store may obtain system information from the mobile device through data communication with the mobile device, and service the RAP download of the mobile device based on the system information.
  • the RAP download may be performed based on the RAP download request message included in the system information or based on a separate RAP download request message transmitted by the mobile device to the radio application store.
  • the mobile device obtains configcodes and radio controllers executable on the mobile device from the RAP (Radio Application Package), and installs the RAP to the mobile device through an installer. Can be installed.
  • the configuration code and the radio controller may be stored in the storage.
  • the storage may include fast random access memory such as one or more magnetic disk storage devices, nonvolatile memory, one or more optical storage devices, flash memory, or a combination thereof. Storage may be referred to as storage.
  • the configuration code When the configuration code is executable code on a specific platform of the mobile device, the configuration code is a user defined function block (UDFB) executable code and a standard function block (SFB) that executes radio application related tasks. It can include executable code.
  • the executable code of the user-defined function block and the standard function block included in the configuration code is executed by the loader of the radio operating system in order to be executed on the radio operating system (Radio OS) of the radio computer of the mobile device. Second loader) to the mobile device.
  • the radio controller execution code included in the configuration code may be loaded on an operating system (OS) (hereinafter, also referred to as a first operating system) of an application processor of a mobile device. Loaded to the mobile device by (Loader).
  • OS operating system
  • the mobile device may be reconfigured by a Radio Application including RC executable code running on the first operating system of the application processor and executable code of functional blocks running on the radio operating system of the radio computer.
  • the mobile device may be reconfigured by receiving an execution command for the radio application and loading the execution code of the radio controller execution code and the function blocks according to the received execution command, and newly supported by the reconfiguration in the reconfigured state.
  • the communication protocol and the like can be used to execute functions such as a wireless communication function and an internet connection provided in the mobile device.
  • 4 and 5 are conceptual diagrams illustrating a method of distributing, installing, and executing a radio application according to another embodiment of the present invention.
  • This embodiment corresponds to a case of distributing a Radio Application Package (RAP) having a platform-independent source code form on a platform of a mobile device. That is, FIG. 4 corresponds to a case where the RAP has a platform independent source code form having a static linking structure, and FIG. 5 corresponds to a case where the RAP has a platform independent source code form having a dynamic linking structure. do.
  • static linking refers to linking other target programs necessary before execution of RAP (corresponding to a program) to complete the final executable code at the installation stage
  • dynamic linking refers to the execution of a program when another target program is needed during program execution.
  • the control function may refer to linking the corresponding target program to complete the final executable code of the radio application at the execution stage.
  • a RA code for a Radio Application Package (RAP) in a design time includes only a Radio Controller Code and User Defined Functional Blocks.
  • the RAP may include metadata for pipeline configuration. Pipeline configuration metadata provides information for efficient compilation of standard functional blocks. The calling function of these standard functional blocks (SFBs) may be included in the configuration code as needed to execute a target radio application.
  • the RA code may be optionally encrypted at the design stage. That is, the radio controller code defined by the standard radio library header at the design stage may be included in the RAP after being compiled by an application processor compiler of the distributor device.
  • User Defined Functional Blocks defined by the standard radio library header may be included in the RAP after being encrypted by an encryptor. Encryption of the user-defined function block may optionally be performed.
  • the generated RAP may be uploaded from the distributor device to the RadioApp Store.
  • the mobile device may download the RAP from a radio application store that is connected via a network.
  • the mobile device may obtain configcodes, radio controllers and metadata for pipeline configuration metadata from the RAP.
  • Configuration code that includes user-defined function blocks can be compiled on the mobile device or in the cloud to reconfigure during the installation phase. If a mobile device is equipped with a compiler, the configuration code may be compiled for the mobile device. This may mean that each mobile device may be equipped with a compiler that translates the configuration code into specific executable code of the mobile device. If the RA code or configuration code was originally encrypted at the design stage, the configuration code can be decrypted by a decrypter before being compiled at the installation stage.
  • Pipeline configuration metadata can be compiled on a mobile device or cloud system.
  • the pipeline configuration metadata included in the RAP may be referenced by the compiler during the process of compiling the configuration code in the form of source code into the executable code of the radio computer at the installation stage of the RAP.
  • the executable code obtained by compiling the configuration code in the installation step is installed on the mobile device by the installer.
  • the radio controller is then installed on the mobile device by the installer.
  • Software, programs, instruction sets, or combinations thereof, generated by the installer on the mobile device may be stored in storage.
  • linking of the user-defined functional blocks and the standard functional blocks may be performed at the installation stage by using a radio library.
  • the execution step the compiled code of the user-defined function blocks and the standard function blocks (executable code) can be loaded and executed on the radio operating system.
  • a radio controller executable code operating on an application processor of a mobile device is extracted from a storage unit and loaded with a loader of a first operating system of the application processor. Loader) on the application processor.
  • the execution blocks of the functional blocks running on the radio computer of the mobile device are extracted from the storage unit and loaded on the radio computer by the loader of the radio operating system of the radio computer. Is loaded.
  • the functional blocks may include standard functional blocks (SFBs) and user-defined functional blocks (UDFBs).
  • linking of user-defined functional blocks and standard functional blocks may be performed at an execution stage using a radio library.
  • the loader of the first operating system loads the RC Executable Code of the storage onto the Application Processor.
  • the loader of the radio operating system loads the executable code of the functional blocks of the storage unit (one or more user-defined functional blocks) and the executable code of one or more standard functional blocks in the mobile device's Radio Library on the radio computer. Can be.
  • 6 and 7 are conceptual diagrams for explaining a method of distributing, installing, and executing a radio application according to another embodiment of the present invention.
  • the present embodiment corresponds to a case of distributing a Radio Application Package (RAP) having a platform-independent intermediate representation form on a platform of a mobile device. That is, FIG. 6 corresponds to a case where the RAP has a platform independent intermediate representation form of static linking, and FIG. 7 corresponds to a case where the RAP has a platform independent intermediate representation form of the dynamic linking scheme. do.
  • RAP Radio Application Package
  • a Radio Application (RA) code that includes user-defined functional block code is a front-end (design) at the design stage.
  • front-end can be compiled.
  • the user-defined functional block code of the front-end compiled configuration code may be back-end compiled on a reconfigurable mobile device during installation and converted into executable code specific to a given radio computer.
  • Native implementations of standard functional blocks (SFBs) may be performed prior to the execution phase and included in native libraries.
  • the linking of the user-defined functional blocks and the standard functional blocks may be performed at the installation stage by using a radio library.
  • the execution step the compiled code of the user-defined function blocks and the standard function blocks (executable code) can be loaded and executed on the radio operating system.
  • linking of user-defined functional blocks and standard functional blocks may be performed at an execution stage using a radio library.
  • pipeline configuration metadata may be compiled on a mobile device or cloud system.
  • the pipeline configuration metadata included in the RAP may be referred to by the compiler during the process of compiling the intermediate representation of the configuration code into the executable code of the radio computer.
  • the compilation process in the installation step can be largely performed using one of two methods. That is, the installation step in the first scheme may be performed in the mobile device or equivalent device. In the second method, some installation steps except for the installer function may be performed externally, for example, in a cloud. Such cloud services can be controlled by platform vendors on the network.
  • the mobile device architecture may have a structure that the compiler has omitted, and if the configuration code of the radio application is compiled through a cloud service in dynamic linking, the radio library may be included in the mobile device for compilation.
  • a basic implementation may be provided.
  • various input languages and output languages can be supported by expressing various input languages in the same intermediate expression or using various output languages by using the RAP having an intermediate expression form.
  • the program can be efficiently optimized in a low-level language, which is advantageous in terms of speed and optimization of a mobile device.
  • the virtual machine's bytecode, etc. can be compiled once again into the machine language of the current platform just before the virtual machine is executed in a virtual machine that is slower than the machine's machine language. Thereby, the speed of the apparatus can be improved.
  • FIG. 8 is a block diagram illustrating a configuration of a radio application package according to an embodiment of the present invention.
  • the radio application package 810 may include a user-defined function block code 811, a radio controller code 812, and pipeline configuration metadata 813.
  • the radio application package 810 may further include a radio library 814 when implemented in specific executable code on the platform of the mobile device.
  • User-defined functional block code 811 is a code that defines the functional blocks required for real-time implementation of a radio application.
  • User-defined function block code 811 provides real-time processing to implement reconfigurable software-defined radio applications, as well as modem functions of Layer 1 (L1), Layer 2 (L2), and Layer 3 (L3) of Open Systems Interconnection (OSI). It may include functional blocks that should be. Each functional block can have a unique name, input, output, and attributes.
  • the radio application package 810 is executed by various compilers to be applicable to various mobile devices (user terminals). Compiled user defined function block code 811 may be included.
  • the user defined function block code 811 is in the form of executable code
  • the user defined function block code 811 and the radio library 814 may include the user defined function block and the radio library 814 in the user defined function block code 811.
  • the standard functional blocks within can be replaced with radio application code compiled together.
  • the radio application code may be referred to as a configcode.
  • the radio library 814 is to provide a standard functional block executable code that can be executed by a mobile device that is a user terminal when the radio application package 810 has an executable code form.
  • the above-described user-defined functional block may include functional blocks dependent on a specific radio application. These functional blocks can be used to support specific functions required for specific radio applications or to support specific algorithms used to improve performance.
  • the user-defined function block may be related to the implementation of baseband digital signal processing that is not implemented in the standard function block defined in the standard radio library header. That is, the user-defined function block may be used as a baseband controller function block to control function blocks that operate in a real-time baseband processor (which may correspond to a portion of a radio computer) and process real-time context information.
  • the user-defined function block code 811 may be code that requires compilation for execution on a mobile device in addition to the form of executable code (executable code) directly on the radio computer of the mobile device where the radio application package 810 is installed. Code or intermediate representation).
  • Radio controller code 812 is code written to perform the function of a radio controller.
  • the radio controller code 812 may be a set of software, programs or instructions for reconfiguring the radio controller. That is, the radio controller code 812 may include code for delivering context information to the monitor of the communication service layer of the user terminal and exchanging data with the networking stack of the communication service layer.
  • the above-described radio controller code 812 may be included in a radio application package in the form of executable code executed in any one of a radio computer and an application processor of the mobile device architecture described above with reference to FIGS. 1 and 2. To this end, the radio controller code 812 may be compiled in an application processor compiler of the distributor device.
  • the radio controller code 812 may include code that is executed in the application processor, and the radio control framework runs only on the radio computer. If so, the radio controller code may consist of code that runs only on the radio computer.
  • Pipeline configuration metadata 813 defines the functional blocks needed to implement a radio application at the user terminal and the connections between these functional blocks. That is, the pipeline configuration metadata 813 is a connection between the standard functional blocks included in the standard radio library header 820 and the functional blocks defined by the user-defined functional block code 811 and the initial values of the attributes of each functional block. It may include a description of the value.
  • the above-described radio application package 810 may use a standard baseband API header 820 written in a high-level language to a standard radio library interface (see FIG. 12). Accordingly, a radio application producer may create a radio application or a radio application package 810 with reference to the standard baseband API header 820. The produced radio application package 810 may be uploaded and distributed to a server 830 such as a radio application store. The radio application package 810 can then be downloaded from the server 830 to the mobile device.
  • a producer or distributor of a radio application generates a radio application package for executing the same radio application in a mobile device or a user terminal having a modem chip having a different structure using a standard baseband application programming interface (API).
  • API application programming interface
  • modem hardware manufacturers can use hardware based on the complexity or power consumption of each block in the standard baseband APIs. Or you can choose a software implementation.
  • Radio application manufacturers can create radio applications that are independent of the modem chip using standard baseband APIs.
  • blocks in a user-defined form to implement functions not included in the standard baseband API various extensions of the standard baseband API are possible.
  • FIG. 9 is a conceptual diagram illustrating an embodiment of distributing the radio application package of FIG. 8 in an online store.
  • a user connects to an online app store 920 using a mobile device 910, and supports a variety of wireless communication schemes provided by the app store.
  • a desired radio application may be selected from a list of applications, and a radio application package of the corresponding radio application may be downloaded.
  • Various wireless communication methods 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. have. The user can download and install a plurality of radio applications on his mobile device and freely execute necessary radio applications according to the situation.
  • 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
  • FIG. 10 is a block diagram illustrating a distribution and installation process of a radio application package including a configuration code in the form of source code according to an embodiment of the present invention.
  • the configuration codes written in the machine-independent section 1010 may be written in a high-level language 1011, for example, C / C ++.
  • the configuration code may optionally be changed to encrypted source code 1015 via an encoder 1014.
  • the encrypted source code 1015 may be included in the radio application package and distributed to each terminal (1020).
  • the machine independent section 1010 may be some functional or component part of at least one computing device, such as a distributor device, a RAP developer device, a RAP provider device, or the like.
  • the terminal (mobile device) that downloaded the radio application package may include decoders 1031 to 1035 and compilers 1041 to 1045 for installing the radio application package.
  • the mobile device may convert the encrypted source code 1015 into machine codes 1051 to 1055 that are operable in a radio computer embedded in the terminal using the decoders 1031 to 1035 and the compilers 1041 to 1045. Can be.
  • Decoders 1031-1035 can operate in a machine independent section of a mobile device, and compilers 1041-1045 and machine language 1051-1055 can operate in a machine independent section.
  • Compilers 1041 to 1045 are dependent on modem hardware because they must be able to generate machine language optimized for modem hardware installed in mobile devices. That is, the compiler includes a compiler 1041 for the A architecture, a compiler 1042 for the B architecture, a compiler 1043 for the C architecture, a compiler 1044 for the D architecture, a compiler 1045 for the E architecture, and the like. It may include.
  • the machine language may include the A machine code 1051, the B machine code 1052, the C machine code 1053, the D machine code 1054, the E machine code 1055, and the like.
  • Radio computers can build compilers optimized for their radio computers or radio operating systems, embed them in their radio operating systems, or provide them to terminal companies that use their own radio operating systems. Compilers optimized for mobile devices may be implemented to run on a radio computer or application processor.
  • the compilation process according to the present embodiment may be omitted in the RAP installation step in the mobile device ( 3).
  • FIG. 11 is a block diagram illustrating another example of a process of distributing and installing a radio application package including a configuration code in the form of source code according to an embodiment of the present invention.
  • configcodes written in a machine-independent section when a radio application is produced according to the present embodiment may be written in a high-level language 1111 such as C / C ++, and the radio of a target mobile device.
  • the compilers 1141 to 1145 may be converted into machine words 1151 to 1155 in an executable form. These machine words 1151-1155 are each included in a separate radio application package and stored in a radio application server (corresponding to a distribution server or a radio app store), and the mobile device is a radio computer (for example, an A architecture radio computer)
  • the radio application package operable may be downloaded.
  • a modem hardware manufacturer may manufacture a compiler 1141 to 1145 optimized for a modem of a specific mobile device provided by the modem hardware manufacturer and provide the same to a radio application producer.
  • the aforementioned compilers 1141-1145 and machine language 1051-1055 can operate in a machine non-independent section on the distributor device side.
  • the compiler may include a compiler 1141 for the A architecture, a compiler 1142 for the B architecture, a compiler 1143 for the C architecture, a compiler 1144 for the D architecture, and a compiler 1145 for the E architecture.
  • the machine language may include A machine code 1151, B machine code 1152, C machine code 1153, D machine code 1154, and E machine code 1155.
  • the installation process of the radio application may be performed in an application processor or a radio computer.
  • the compiler and / or storage may be present in at least one of the application processor and the radio computer, or in both.
  • FIG. 12 is a conceptual diagram illustrating an example of a standard radio library interface according to an embodiment of the present invention.
  • the standard radio library interface 820 is an API that standardizes a digital signal processing algorithm required in a baseband region inside a modem and may correspond to the standard baseband API of FIG. 8.
  • the standard radio library interface 820 may include standard function blocks 1211-1214 belonging to the standard interface 1210-1250 and the "convert" standard interface.
  • Standard interface types may include, for example, translation 1210, channel coding 1220, network mapper 1230, interleaving 1240, and source coding 1250.
  • Standard functional blocks for transform 1210 include spreading 1211, despreading 1212, scrambling 1213, descrambling 1214, Fast Fourier Transform (FFT) 1215, An Inverse Fast Fourier Transform (IFFT) 1216 may be defined.
  • FFT Fast Fourier Transform
  • IFFT Inverse Fast Fourier Transform
  • fast Fourier transform 1215 which is a standard functional block, its attributes (points, etc.), and member functions ⁇ Run (), Stop (), etc.) may be defined.
  • functional blocks of the same type can be given common attributes to enable object-oriented design of radio applications.
  • FIG. 13 is a flowchart illustrating a distribution process of a radio application according to an embodiment of the present invention.
  • the distribution process of the radio application includes a radio application package preparation step (S1310), a radio application package generation step (S1320), and a radio application package distribution step (S1330).
  • the distribution process can include the design process and vice versa.
  • the radio application package preparation step S1310 is a step of preparing a user-defined function block and a radio controller code included in the radio application package.
  • Elements included in the radio application package may include radio libraries and / or metadata in addition to user-defined function blocks and radio controller code.
  • the radio library can provide standard functional blocks to mobile devices that are subject to software-defined radio reconfiguration. Metadata defines relationships between elements and may be pipeline configuration metadata.
  • Generating the radio application package is a step of generating a radio application to be performed in the software-defined radio terminal.
  • the radio application package may include radio application code, radio controller code, and pipeline configuration metadata (see FIG. 8).
  • Radio application code may be referred to as Configcode that is the result of compiling a user defined function block.
  • the radio application package generation step S1320 may include a radio application code generation and compilation step, a radio controller code generation and compilation step, a pipeline configuration metadata generation step, and a package generation step.
  • the step of generating a radio application package may include encrypting a user-defined functional block.
  • the user-defined function block and the standard function block may be encrypted together in encryption. Such encryption is more useful when the radio application code, including user-defined functional blocks and / or standard functional blocks, is in source code form or intermediate representation.
  • the radio application code when the radio application code is distributed in the form of source code, it should be written using a standard language so that it can be compiled in various user terminals.
  • the source code when the source code is distributed in the form of general source code, the source code is exposed as it is, so that the source code is exposed by encrypting and distributing it.
  • the radio application code When the radio application code is distributed in the form of executable code (executable code) in the user terminal, the radio application code is compiled and prepared by one or more compilers corresponding to the user terminal.
  • the radio controller code may be compiled in an application processor compiler of the distributor device and prepared in the form of radio controller or radio controller executable code.
  • the generated radio application code, radio controller code and pipeline configuration metadata are generated into a radio application package.
  • the radio application package distribution step (S1330) uploads the radio application package generated as described above to a radio application distribution server so as to be downloaded from a software-defined radio terminal (user terminal) that requires the radio application.
  • FIG. 14 is a flowchart illustrating a method of installing and executing a radio application according to an embodiment of the present invention.
  • the radio application installation and execution method includes a radio application package downloading step S1410, a radio application package installation step S1420, and a radio application execution step S1430.
  • the radio application package downloading step (S1410) is a step of downloading a radio application package from a distribution server connected through a network to execute a radio application in a software defined radio terminal.
  • the radio application package may include radio application code, radio controller code, and pipeline configuration metadata.
  • the radio application package installation step (S1420) is a step of installing the function block execution code and the radio controller execution code of the radio application package downloaded from the distribution server to the user terminal, execution code determination step (S1421), compilation step (S1422) ) And a storage step (S1423).
  • Execution code determination step (S1421) determines whether the radio application code or configuration code included in the radio application package is a form of code directly executable in the user terminal. If the execution code, the next compilation step (S1422) is omitted, and proceeds to the storage step (S1423).
  • the compilation step S1422 compiles the configuration code when the radio application code or configuration code included in the radio application package is in the form of a source code or an intermediate representation.
  • the compilation step S1422 may be performed by a compiler mounted in the user terminal, but is not limited thereto and may be performed by a compiler located in the cloud 1400 connected to the user terminal through a network.
  • the compiler may include a back-end compiler.
  • the user-defined function block execution code and the radio controller (RC) execution code can be generated.
  • the user terminal may generate a function block execution code linking the user-defined function block and the standard function block based on the radio library and the pipeline configuration metadata according to the distribution form of the radio application package.
  • the configuration code having a source code form is encrypted before the compilation step (S1422), it can be compiled after decrypting the configuration code through the decoder of the user terminal.
  • the storage step S1423 stores pipeline configuration metadata included in the radio application package by the installer of the user terminal, execution code of a function block including a user-defined function block, radio controller execution code, and the like in a storage unit.
  • the installer can install the standard function blocks in which the function instructions are written based on the function block execution code, the radio controller execution code, and the predefined standard baseband interface, in the storage of the user terminal by referring to the pipeline configuration metadata. have.
  • the radio application execution step S1430 includes an execution command receiving step S1431 and an execution code loading step S1432.
  • the execution command receiving step S1431 may receive an execution command of a radio application from a user application of the user terminal, a user interface, another user terminal accessible to the user terminal on a network, and the like.
  • Execution instructions include all instructions capable of executing a specific software defined radio application installed in the storage of the user terminal to radio reconfigure the user terminal.
  • the execution code loading step S1432 executes the user-defined function block execution code and the radio controller execution code stored in the storage unit in response to the execution command.
  • the user-defined function block execution code may be directly loaded into the radio computer of the user terminal, and the radio controller execution code may be directly loaded into the application processor of the user terminal.
  • the loader on the radio computer may link the user-defined function block execution code with the standard function block execution code in the radio library of the user terminal in real time and execute the linked standard and the user-defined function blocks on the radio computer.
  • the Radio Controller of the Radio Application Package is installed in the storage of the mobile device by the installer.
  • the radio controller installed in the storage unit may have a form of a radio controller (RC) executable code.
  • the RC execution code may be installed on an application processor for an operation that does not necessarily need to be executed in real time processing such as processing of context information. This is different from the fact that a functional block of radio application (RA) code must be installed on a radio computer because it must be processed in real time.
  • a radio application installed in a storage unit is operated in an actual user terminal.
  • Corresponding components of a radio application for radio signal processing are loaded into an application processor or a radio computer to actually execute the radio application.
  • a wireless communication function can be performed.
  • the loader may determine what functional blocks are required to execute an application by referring to pipeline configuration metadata. Based on this, the radio controller execution code and the function block execution code are loaded from the storage into the corresponding area of the user terminal. In addition, the loader loads the radio controller code into the application processor or radio computer (depending on the operating layer of the radio control framework, which specific region the radio controller code will be loaded into), and referring to the pipeline configuration metadata. You can load user-defined function blocks and standard function blocks on the radio computer.
  • a radio library is a collection of standard functional blocks that reside in a radio computer or application processor.
  • the standard functional block pool of the user terminal there may be standard functional blocks implemented using dedicated hardware and standard functional blocks executed in a radio computer.
  • the standard functional block pool may be used to select standard functional blocks used by the corresponding radio application and install them in a storage unit in the process of installing the radio application by referring to the pipeline configuration metadata at the installation stage.
  • the standard functional block pool can be used by the loader at the execution stage of the radio application to select and load the standard functional blocks used by the radio application onto the radio computer.
  • 15 is a conceptual diagram illustrating a software reauthentication process using a radio virtual machine according to an embodiment of the present invention.
  • the Radio Virtual Machine is a controlled execution environment for software that affects the radio characteristics of a mobile device. This assumes a situation where reconfiguration software, ie radio applications, are loaded into the radio virtual machine.
  • a radio device architecture of a mobile device includes an RF transceiver chain, analog-to-digital converters (ADCs), digital-to-analog converters (DACs), And base band processing.
  • ADCs analog-to-digital converters
  • DACs digital-to-analog converters
  • the ADC and DAC connect between the modem 1210 including the radio virtual machine (RVM) and the baseband transmission medium and the RF transceiver chain / RF front-end.
  • the radio virtual machine is connected to the application processor 110 of the mobile device (user terminal) via a baseband transmission medium.
  • the baseband transmission medium may include a hard-wired of baseband implementation of the ASIC type.
  • the application processor may include a MAC (Medium Access Control) (Layer 2) and a high level layer processor.
  • the radio virtual machine allows the radio application to select one of several available protection classes for the code running in the radio virtual machine, as well as protection classes for the radio frequency (RF) front end. do. That is, the radio virtual machine controls the selection of the RF transceiver chain, in particular the RF and RVM protection classes.
  • RF radio frequency
  • the certification or re-certification process of the required software reconfiguration radio platform may be performed based on the combination of the selected RF and the protection class of the radio virtual machine.

Landscapes

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

Abstract

하드웨어와 사용자 어플리케이션에 비의존적인 소프트웨어 정의 라디오에 기반한 라디오 어플리케이션의 배포, 설치 및 동작 방법이 개시된다. 라디오 어플리케이션 배포 방법은, 라디오 어플리케이션 패키지를 이용하여 라디오 어플리케이션을 사용자 단말에 설치하기 위한 라디오 어플리케이션 배포 방법으로서, 어플리케이션 프로세서 컴파일러에 의해 컴파일된 라디오 컨트롤러 코드, 및 사용자 정의 기능 블록을 포함하는 라디오 어플리케이션 패키지를 생성하는 단계와 라디오 어플리케이션 패키지를 서버에 업로드하는 단계를 포함하며, 라디오 컨트롤러 코드는 사용자 단말의 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행 코드 형태를 가지고 사용자 단말에 설치되는 라디오 어플리케이션의 상황 정보를 사용자 단말의 사용자 어플리케이션에 제공하거나 어플리케이션 프로세서에 위치하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하는 라디오 컨트롤러를 정의한다.

Description

소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
본 발명은 소프트웨어 정의 라디오(SDR: Software-define Radio) 단말기를 위한 라디오 어플리케이션의 배포, 설치 및 실행 방법에 관한 것으로, 더욱 상세하게는 하드웨어와 사용자 어플리케이션에 독립적으로 동작하는 소프트웨어 정의 라디오(SDR: Software-Defined Radio) 어플리케이션의 배포, 설치 및 실행 방법에 관한 것이다.
통신 기술이 발전함에 따라 사용자의 기호나 목적에 따라 많은 새로운 종류의 라디오 어플리케이션들이 사용되고 있다. LTE, WCDMA, WIMAX, GSM 등과 같은 무선 통신 방식을 지원하는 라디오 어플리케이션들 대부분은 모뎀과 상호 작용하면서 단말기 상에서 실행된다.
라디오 어플리케이션들이 모뎀을 제어하기 위해서는 모뎀 제조사 또는 모델에 따라 모뎀이 갖는 고유의 명령어를 이해할 수 있는 맞춤형 모듈을 개발 및 적용하여야 한다. 결과적으로 이것은, 특정 라디오 어플리케이션은 오직 특정 제조사의 특정 모뎀에서만 실행되는 결과를 초래한다. 이러한 문제를 해결하기 위해 여러 종류의 모뎀을 지원하도록 각기 다른 제어 명령을 모두 포함하는 라디오 어플리케이션을 준비하거나 각 모뎀별로 다른 실행 파일을 제작하여 배포할 수 있다.
그러나 전술한 해결 방안은 현재 시장에 출시되고 있는 다양한 모뎀의 하드웨어에 맞추어 각각의 라디오 어플리케이션을 최적화하여야 하므로 모든 단말기에서 작동 가능한 라디오 어플리케이션을 제작하는 것은 사실상 불가능할 뿐만 아니라 하나의 라디오 어플리케이션을 제작하기 위하여 막대한 인력을 투입하여야 하는 문제가 있다.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 목적은 하드웨어와 사용자 어플리케이션에 비의존적으로 동작하는 소프트웨어 정의 라디오 어플리케이션의 배포 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 다른 목적은 하드웨어와 사용자 어플리케이션에 비의존적으로 동작하는 소프트웨어 정의 라디오 어플리케이션의 설치 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 또 다른 목적은 하드웨어와 사용자 어플리케이션에 비의존적으로 동작하는 소프트웨어 정의 라디오 어플리케이션의 실행 방법을 제공하는데 있다.
상기의 목적을 달성하기 위한 본 발명의 일 측면에서는, 라디오 어플리케이션 패키지를 이용하여 라디오 어플리케이션을 사용자 단말에 설치하기 위한 라디오 어플리케이션 배포 방법으로서, 어플리케이션 프로세서 컴파일러에 의해 컴파일된 라디오 컨트롤러 코드, 및 사용자 정의 기능 블록 코드를 포함하는 라디오 어플리케이션 패키지를 생성하는 단계, 및 라디오 어플리케이션 패키지를 서버에 업로드하는 단계를 포함하며, 라디오 컨트롤러 코드는 사용자 단말의 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행 코드 형태이고 사용자 단말에 설치되는 라디오 어플리케이션의 상황 정보를 사용자 단말의 사용자 어플리케이션에 제공하거나 어플리케이션 프로세서에 위치하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하는 라디오 컨트롤러를 정의하는, 라디오 어플리케이션 배포 방법을 제공한다.
여기에서, 사용자 정의 기능 블록 코드는 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행 코드 형태, 또는 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행코드로 컴파일 가능한 소스 코드 형태 또는 중간 표현(IR: intermediate Representation) 형태로 라디오 어플리케이션 패키지에 포함될 수 있다.
여기에서, 실행 코드 형태를 구비하는 경우, 라디오 어플리케이션 패키지는 표준 기능 블록 코드를 더 포함하고, 표준 기능 블록 코드와 사용자 정의 기능 블록 코드를 포함하는 라디오 어플리케이션 코드는 하나 이상의 컴파일러들에 의해 컴파일되어 라디오 어플리케이션 패키지에 포함될 수 있다.
여기에서, 라디오 어플리케이션 패키지가 소스 코드 형태를 구비하는 경우, 사용자 정의 기능 블록은 프론트 엔드 컴파일러에 의해 컴파일되어 라디오 어플리케이션 패키지에 포함될 수 있다.
여기에서, 소스 코드 형태 또는 중간 표현 형태를 구비하는 경우, 라디오 어플리케이션 패키지는 라디오 어플리케이션의 파이프라인을 구성하기 위한 파이프라인 구성 메타데이터를 더 포함하며, 파이프라인 구성 메타데이터는 라디오 어플리케이션의 데이터 송신 또는 수신 기능을 위한 라디오 컨트롤러 코드, 사용자 정의 기능 블록 코드 및 표준 기능 블록 코드 간의 연결 관계를 정의할 수 있다.
상기의 목적을 달성하기 위한 본 발명의 다른 측면에서는, 라디오 어플리케이션 패키지를 이용하여 사용자 단말에 라디오 어플리케이션을 설치하는 방법으로서, 라디오 어플리케이션 제공자 측의 어플리케이션 프로세서 컴파일러에 의해 컴파일된 라디오 컨트롤러 코드, 및 사용자 정의 기능 블록 코드를 포함하는 라디오 어플리케이션 패키지를 서버로부터 다운로드하는 단계, 및 라디오 어플리케이션 패키지를 사용자 단말에 설치하는 단계를 포함하고, 라디오 컨트롤러 코드는 사용자 단말의 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행 코드 형태이고 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되어 사용자 단말에 설치된 라디오 어플리케이션의 상황 정보를 사용자 단말의 사용자 어플리케이션에 제공하거나 어플리케이션 프로세서에 위치하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하기 위한 라디오 컨트롤러를 정의하는, 라디오 어플리케이션 설치 방법을 제공한다.
여기에서, 사용자 정의 기능 블록 코드는 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행 코드 형태, 또는 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행코드로 컴파일 가능한 소스 코드 형태 또는 중간 표현(IR: intermediate Representation) 형태로 라디오 어플리케이션 패키지에 포함될 수 있다.
여기에서, 실행 코드 형태를 구비하는 경우, 라디오 어플리케이션 패키지는 표준 기능 블록 코드를 더 포함하고, 표준 기능 블록 코드와 사용자 정의 기능 블록 코드를 포함하는 라디오 어플리케이션 코드는 라디오 어플리케이션 패키지에 포함된 라디오 컨트롤러와 함께 사용자 단말의 인스톨러에 의해 사용자 단말의 저장부에 설치될 수 있다.
여기에서, 라디오 어플리케이션 패키지가 소스 코드 형태를 구비하는 경우, 사용자 정의 기능 블록 코드를 포함하는 구성코드는 라디오 어플리케이션 패키지의 파이프라인 구성 메타데이터를 참조하는 사용자 단말의 컴파일러 또는 사용자 단말에 연결되는 클라우드의 컴파일러에 의해 컴파일되어 실행코드(구성코드에 대한 실행코드)로 생성될 수 있다. 이 실행코드는 라디오 어플리케이션 패키지의 라디오 컨트롤러와 함께 사용자 단말의 인스톨러를 거쳐 사용자 단말의 저장부에 설치될 수 있다. 구성코드는 사용자 정의 기능 블록을 포함하는 라디오 어플리케이션 코드를 컴파일한 결과에 대응할 수 있다.
여기에서, 파이프라인 구성 메타데이터를 참조하여 구성코드를 컴파일할 때 사용자 단말은 라디오 라이브러리 내의 표준 기능 블록 코드를 함께 컴파일하여 실행코드(Executable Code)를 생성할 수 있다. 이때, 라디오 라이브러리는 표준 기증 블록 코드를 포함하며, 사용자 정의 기능 블록 코드를 컴파일할 때 사용자 정의 기능 블록 코드와 표준 기능 블록 코드를 링킹하는데 이용될 수 있다.
여기에서, 라디오 어플리케이션 설치 방법은, 라디오 어플리케이션을 사용자 단말에 설치하는 단계 이전에, 사용자 단말 또는 사용자 단말에 연결되는 클라우드의 복호화기를 통해 구성코드를 복호화하여 컴파일러에 제공하는 단계를 더 포함할 수 있다.
여기에서, 라디오 어플리케이션 패키지가 중간 표현 형태를 구비하는 경우, 사용자 정의 기능 블록을 포함하는 구성코드 또는 라디오 어플리케이션 코드는 라디오 어플리케이션 패키지의 파이프라인 구성 메타데이터와 함께 사용자 단말 또는 사용자 단말에 연결되는 클라우드의 백엔드 컴파일러에 의해 컴파일되어 실행코드로 생성될 수 있다. 구성코드에 대한 실행코드(기능 블록 실행 코드)는 라디오 어플리케이션 패키지의 라디오 컨트롤러와 함께 사용자 단말의 인스톨러에 의해 사용자 단말에 설치될 수 있다.
여기에서, 컴파일러는 구성코드를 컴파일할 때 파이프라인 구성 메타데이터를 참조하여 사용자 단말의 라디오 라이브러리 또는 표준 기능 블록 코드를 함께 컴파일하여 실행코드를 생성할 수 있다.
상기의 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 어플리케이션 프로세서와 라디오 컴퓨터를 구비하는 사용자 단말에서 저장부에 설치된 라디오 어플리케이션을 실행하는 방법에 있어서, 라디오 어플리케이션에 대한 실행 명령을 수신하는 단계, 실행 명령에 응하여 어플리케이션 프로세서의 제1 운영체제에서 동작하는 제1 로더가 저장부에 설치된 라디오 컨트롤러 실행 코드를 어플리케이션 프로세서 상에서 실행하는 단계, 및 실행 명령에 응하여 라디오 컴퓨터의 라디오 운영체제에서 동작하는 제2 로더가 저장부에 설치된 기능 블록 실행 코드를 라디오 컴퓨터 상에서 실행하는 단계를 포함하는, 라디오 어플리케이션 실행 방법을 제공한다.
여기에서, 제1 로더 및 제2 로더 중 어느 하나 또는 둘 모두는 저장부에 설치된 라디오 어플리케이션의 파이프라인 구성 메타데이터를 참조할 수 있다. 파이프라인 구성 메타데이터는 라디오 어플리케이션의 데이터 송신 또는 수신 기능을 위하여 라디오 컨트롤러 실행 코드와 기능 블록 실행 코드 간의 연결 관계를 정의할 수 있다.
여기에서, 기능 블록 실행 코드는, 라디오 컴퓨터에 포함된 전용 하드웨어 가속기의 기능 블록을 호출하는 코드이거나, 사용자 단말의 라디오 컴퓨터상에서 동작하는 실행코드인 표준 기능 블록 실행 코드, 및 표준 기능 블록 실행 코드로 제공되지 않거나 표준 기능 블록 실행 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 실행 코드를 포함할 수 있다.
여기에서, 라디오 어플리케이션 패키지가 사용자 단말에서 실행 가능한 실행 코드 형태일 때, 제2 로더는 저장부에 저장된 라디오 라이브러리를 기능 블록 실행 코드(사용자 정의 기능 블록 실행 코드)와 함께 라디오 컴퓨터의 라디오 운영체제 상에서 실행할 수 있다.
여기에서, 라디오 어플리케이션 패키지가 소스 코드 형태 또는 중간 표현 형태일 때, 제2 로더는 사용자 단말의 라디오 라이브러리 안에 있는 표준 기능 블록 실행 코드를 기능 블록 실행 코드의 사용자 정의 기능 블록 실행 코드와 링킹하여 라디오 컴퓨터의 라디오 운영체제 상에서 실행할 수 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 측면에서는, 라디오 어플리케이션을 단말에 설치하기 위한 라디오 어플리케이션 패키지를 이용한 라디오 어플리케이션 배포 방법으로서, 라디오 어플리케이션 패키지를 생성하는 단계 및 라디오 어플리케이션 패키지를 서버에 업로드하는 단계를 포함하고, 라디오 어플리케이션 패키지는 라디오 컨트롤러 코드, 기능 블록 코드 및 파이프라인 구성 메타 데이터를 포함하는 라디오 어플리케이션 배포 방법을 제공한다.
여기에서, 기능 블록 코드는 라디오 어플리케이션 단말(모바일 장치)의 라디오 컴퓨터에 포함된 전용의 하드웨어 가속기를 이용하여 구현된 기능 블록을 호출하는 코드이거나, 라디오 어플리케이션 단말의 라디오 컴퓨터에서 동작하는 실행 코드인 표준 기능 블록 코드, 및 표준 기능 블록 코드로 제공되지 않거나 표준 기능 블록 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 코드를 포함할 수 있다.
여기에서, 라디오 어플리케이션 패키지는, 표준 기능 블록 코드가 라디오 컴퓨터에서 동작 가능한 실행 코드로 제공되는 경우, 실행 코드로 구성된 라디오 라이브러리를 추가로 포함할 수 있다.
여기에서, 사용자 정의 기능 블록 코드는 라디오 컴퓨터에 의해 실행되는 실행 코드 형태, 라디오 컴퓨터에 의해서 실행되는 실행 코드로 컴파일 가능한 소스 코드 형태 및 중간 표현(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(application programming interface)를 사용하여 서로 다른 구조의 모뎀칩을 가진 사용자 단말에서 동일한 라디오 어플리케이션을 실행할 수 있다.
또한, 최적의 디지털 신호 처리 수행을 위하여 무선 디지털 통신에 필요한 여러 디지털 신호 처리 알고리즘을 표준 베이스밴드 API로 제공함으로써, 모뎀 하드웨어 제작사는 표준 베이스밴드 API에 포함된 각 블록의 복잡도 또는 전력 소비에 따라 하드웨어 또는 소프트웨어적 구현을 선택할 수 있고, 라디오 어플리케이션 제작사는 표준 베이스밴드 API를 이용하여 모뎀칩에 독립적인 라디오 어플리케이션을 제작할 수 있다.
또한, 표준 베이스밴드 API에 포함되지 않은 기능을 구현하기 위하여 사용자 정의 형태의 기능 블록을 제공함으로써 표준 베이스밴드 API의 다양한 확장을 가능하게 한다.
또한, 라디오 어플리케이션의 정적 링킹 또는 동적 링킹 방식에 따라 실행 코드 형태, 소스 코드 형태 또는 중간 표현 형태로 배포되는 라디오 어플리케이션의 설치 중에 다른 목적 프로그램(표준 기능 블록 등)을 사용자 정의 기능 블록과 링킹하거나 라디오 어플리케이션의 실행 도중에 다른 목적 프로그램을 사용자 정의 기능 블록과 링킹할 수 있도록 구성하여 다양한 사용자 단말에 대하여 효과적으로 적용가능한, 라디오 어플리케이션 패키지를 이용한 라디오 어플리케이션 배포, 설치 및 실행 방법을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 소프트웨어 정의 라디오 단말 장치(이하, 간략히 모바일 장치라고 한다)의 아키텍처 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 일실시예에 따른 멀티라디오 어플리케이션을 위한 모바일 장치의 아키텍처 참조 모델을 보여주는 블록도이다.
도 3 내지 7은 본 발명의 일실시예에 따른 소프트웨어 정의 라디오 어플리케이션(이하, 간략히 라디오 어플리케이션이라 한다)의 배포, 설치 및 실행 과정을 설명하기 위한 개념도들이다.
도 8은 본 발명의 일실시예에 따른 라디오 어플리케이션 패키지의 구성 및 배포 과정을 설명하기 위한 블록도이다.
도 9는 도 8의 라디오 어플리케이션 패키지를 온라인 스토어에서 배포하는 실시예를 보여주는 개념도이다.
도 10은 본 발명의 일실시예에 따른 소스 코드 형태의 사용자 정의 기능 블록 코드의 배포 및 설치 과정을 나타낸 블록도이다.
도 11은 본 발명의 일실시예에 따른 소스 코드 형태의 사용자 정의 기능 블록 코드의 배포 및 설치 과정의 다른 예를 나타낸 블록도이다.
도 12는 본 발명의 일실시예에 따른 표준 베이스밴드 인터페이스의 일례를 보여주는 개념도이다.
도 13은 본 발명의 일실시예에 따른 라디오 어플리케이션의 배포 방법을 설명하기 위한 흐름도이다.
도 14는 본 발명의 일실시예에 따른 라디오 어플리케이션의 설치 및 실행 방법을 설명하기 위한 흐름도이다.
도 15는 본 발명의 일실시예에 따른 라디오 가상 머신을 이용한 소프트웨어 재인증 프로세스를 설명하기 위한 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태로 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 그리고, "및/또는" 이라는 용어는 복수의 관련 기재 항목들의 조합 또는 복수의 관련 기재 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되어 있거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술 분야에서 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면들을 참조하여 상세하게 설명한다. 본 실시예를 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복되는 설명은 생략한다.
본 발명을 설명하기 위해서 전반적으로 사용되는 용어들에 대한 간략한 정의들을 먼저 정리한다. 아래 용어들 이외의 용어들에 대해서는 본 명세서 내의 적절한 부분에서 정의를 제공한다.
- 라디오 어플리케이션(RA: Radio Application): 본 실시예에 따른 소프트웨어 정의 라디오 어플리케이션(이하, 간략히 라디오 어플리케이션이라 한다)의 배포, 설치 및 실행 방법의 구현을 위하여 모바일 장치를 재구성하는 매개체가 되는 것으로서, 구체적인 하드웨어 구성 및 사용자 어플리케이션에 비의존적으로 모바일 장치에 라디오 통신 환경을 제공하는 어플리케이션이다. 즉, 라디오 어플리케이션은 무선(RF) 신호의 생성 또는 수신 RF 신호의 복호화를 시행하는 소프트웨어일 수 있다. 이러한 라디오 어플리케이션은 라디오 컴퓨터, 특정 라디오 플랫폼 또는 라디오 플랫폼의 일부인 라디오 가상 머신(Radio Virtual Machine, RVM) 상에서 동작하거나, 라디오 컴퓨터 실행 부분과 어플리케이션 프로세서 실행 부분으로 구분되어 두 개의 계층 또는 영역에서 동작하도록 구현될 수 있다.
또한, 라디오 어플리케이션은 여러 형태들로 표현될 수 있는데, 예를 들어 소스 코드(Source Codes), 중간 표현(Intermediate Representation, IR) 또는 실행 코드(Executable Codes)로 표현될 수 있다. 소스 코드는 라디오 라이브러리 네이티브 구현(Radio Library native implementation)과 라디오 하드웨어 추상화 계층(Radio Hardware Abstraction Layer, Radio HAL) 콜(calls)을 호출하는 라디오 라이브러리를 포함할 수 있다. 중간 표현 또한 라디오 라이브러리 네이티브 구현과 라디오 하드웨어 추상화 계층 콜(calls)을 호출하는 라디오 라이브러리를 포함할 수 있다. 그리고 실행 코드는 특정 라디오 플랫폼을 위한 것일 수 있다. 또한, 라디오 어플리케이션은 라디오 컨트롤러(Radio Controller, RC) 및 기능블록(Function Blocks)을 포함할 수 있다. 기능블록은 사용자 정의 기능 블록(UDFB)을 포함하며, 필요에 따라 라디오 라이브러리 표준 기능 블록(SBF)을 더 포함할 수 있다. 라디오 어플리케이션은 라디오 어플리케이션 패키지를 통해 모바일 장치에 설치되는 통합 라디오 어플리케이션일 수 있다.
- 라디오 어플리케이션 패키지(RAP: Radio Application Package): 라디오 어플리케이션의 배포 형태로서, 라디오 어플리케이션의 구성요소인 기능 블록, 라디오 컨트롤러 코드 및 파이프라인 구성 메타데이터를 포함할 수 있다. 또한, 라디오 어플리케이션 패키지는 추가적으로 라디오 라이브러리(Radio Library)를 포함할 수 있다.
- 표준 기능 블록(SBF: Standard Function Block): 표준 기능 블록은 모바일 장치의 각 블록의 기능과, 해당 블록을 실행하기 위한 함수의 이름이 표준화된 기능 블록이다. 표준 기능 블록은 라디오 플랫폼 칩 벤더 등의 하드웨어 제조사가 표준 기능 블록을 제작하는 경우, 하드웨어 제조사가 구현한 표준 기능 블록의 집합체가 될 수 있고 블록 구동용 드라이버와 함께 제공될 수 있다. 라디오 컴퓨터에서 동작하는 실행 코드로 구현될 경우, 라디오 라이브러리(Radio Library)로 지칭될 수도 있다. 표준 기능 블록은 전용의 하드웨어 가속기를 이용하여 구현될 수도 있다. 표준 기능 블록들은 각 함수의 이름과 기능이 표준화되어 있으며, 표준 베이스벤드 API 헤더(standard baseband API header) 파일에 의해 정의될 수 있다.
- 사용자 정의 기능 블록(UDFB: User Defined Function Block): 표준 기능 블록으로 제공되지 않거나 표준 기능 블록으로 존재하는 기능을 보다 커스터마이징(customizing)할 필요성이 있는 경우에 라디오 어플리케이션 제공자에 의해 제공될 수 있는 기능 블록으로서, 라디오 컴퓨터에서 실행되도록 구현될 수 있다.
- 사용자 정의 기능 블록(User Defined Function Block, UDFB) 집합: 라디오 어플리케이션 제공자가 제공하는 사용자 정의 기능 블록의 집합체를 지칭한다.
라디오 어플리케이션을 위한 모바일 장치 아키텍처
도 1과 도 2는 본 발명의 일실시예에 따른 라디오 어플리케이션이 동작하는 소프트웨어 아키텍처 환경을 설명하기 위한 블록도들이다. 도 1은 본 발명의 일실시예에 따른 라디오 재구성을 위한 소프트웨어 정의 라디오 단말 장치(이하, 간략히 모바일 장치라고 한다)의 아키텍처 구성을 설명하기 위한 블록도이고, 도 2는 도 1의 모바일 장치 아키텍처를 확장한 실시예로서 멀티라디오 어플리케이션을 위한 모바일 장치의 아키텍처 참조 모델을 보여주는 블록도이다.
도 1 및 도 2을 참조하면, 본 실시예에 따른 모바일 장치 아키텍처는 기본적으로 통신 서비스 계층(CSL: Communication Services Layer, 113), 라디오 컨트롤 프레임워크(RCF: Radio Control Framework, 114) 및 라디오 플랫폼(Radio Platform, 121)을 포함한다.
통신 서비스 계층(113)은 인터넷 접속과 같은 일반적인 어플리케이션을 지원하는 계층이다. 통신 서비스 계층(113)은 후술되는 3가지 서비스들 중 적어도 일부를 위해 관리자(administrator) 어플리케이션(1131), 이동성 정책 매니저(mobility policy manager) 어플리케이션(1132), 네트워킹 스택(networking stack)-통신 서비스 계층에서 동작하는 프로토콜 스택(protocol stack)-(1133) 및 모니터(monitor) 어플리케이션(1134)를 포함하고, 멀티라디오 인터페이스(MUltiRadio Interface, MURI)를 통해 라디오 컨트롤 프레임워크(114)와 연결될 수 있다. 멀티라디오 인터페이스(MURI)는 통신 서비스 계층(113)과 라디오 컨트롤 프레임워크(114) 사이의 인터페이스이다.
통신 서비스 계층(11)의 세 가지 서비스들 중 첫 번째 서비스는, 관리(administrative)에 관련된 서비스로서 라디오 어플리케이션의 인스톨/언인스톨, 인스턴스(instance)의 생성/삭제 그리고 각 상태(status)(인스톨, 인스턴스, 활동 등)의 라디오 어플리케이션의 목록 획득에 관련된다.
두 번째 서비스는, 접속 제어에 관련된 서비스로서 라디오 어플리케이션을 실행/비실행, 데이터 흐름 생성, 네트워크 할당 생성 그리고 각 상태(인스톨, 인스턴스, 활동)의 라디오 어플리케이션의 목록 획득에 관련된 서비스이다.
마지막으로 세 번째 서비스는, 데이터 흐름에 관련된 서비스로서 사용자 데이터를 보내고 받는데 관련된 서비스이다.
상술한 세 가지 서비스들을 제공하는 통신 서비스 계층(113)은 전술한 구성요소를 포함하는 것으로 한정되지 않는다. 즉, 통신 서비스 계층(113)은 상술한 구성요소들(1131 내지 1134) 중 적어도 일부만 포함할 수도 있고, 상술한 구성요소들 이외의 추가적인 구성요소를 포함할 수도 있다. 또한, 통신 서비스 계층(113) 내에는 적어도 둘 이상의 상술한 구성요소들의 기능이 통합된 하나 이상의 구성요소가 포함될 수도 있다. 또한, 상술한 구성요소들은 통신 서비스 계층(113)이 수행하여야 하는 서비스들을 지원하기 위하여 통신 서비스 계층(113)이 구비하여야 하는 구성요소들의 일례일 뿐이다. 다시 말해서, 통신 서비스 계층(113)은 통신 서비스 계층이 수행하는 역할에 의해서 정의되며, 상술한 구성요소들의 예시에 의해서 통신 서비스 계층(113)의 구성이 한정되는 것은 아니다.
라디오 컨트롤 프레임워크(114)는 운영 체계(Operating System, OS)의 일부분으로서 라디오 자원 관리(radio resource management) 대신에 OS 능력을 확장하는 컨트롤 프레임워크이다. 라디오 컨트롤 프레임워크(114)는 통합 라디오 어플리케이션 인터페이스(Unified Radio Application Interface, URAI)를 통해 통합 라디오 어플리케이션(Unified Radio Application, 115)과 연결된다. 통합 라디오 어플리케이션 인터페이스(URAI)는 라디오 어플리케이션과 라디오 컨트롤 프레임워크(114) 사이의 인터페이스이다.
좀더 구체적으로, 라디오 컨트롤 프레임워크(114)는 라디오 어플리케이션의 동작 환경을 제공하는 구성요소이다. 라디오 컨트롤 프레임워크(114)는 기본적으로 설정 매니저(1141), 라디오 연결 매니저(1142), 플로우 컨트롤러(1143), 멀티라디오 컨트롤러(1144) 및 리소스 매니저(1145)의 5가지 구성요소들의 적어도 일부를 포함하여 라디오 어플리케이션을 관리할 수 있다.
설정 매니저(CM: Configuration Manager, 1141)은 모바일 장치인 멀티라디오 단말 장치에 대한 라디오 어플리케이션의 인스톨/언인스톨, 인스턴스(instance)의 생성/삭제와 라디오 어플리케이션들의 라디오 파라미터들에 대한 액세스 관리를 담당한다.
라디오 연결 매니저(RCM: Radio Connection Manager, 1142)는 사용자 요구들에 따른 라디오 어플리케이션들의 활성화/비활성화 및 하나의 라디오 어플리케이션으로부터 다른 라디오 어플리케이션으로 스위칭될 수 있는 사용자 데이터 흐름의 전체적인 관리를 담당한다.
플로우 컨트롤러(FC: Flow Controller, 1143)는 사용자 데이터 패킷의 송신과 수신 및 흐름 제어를 담당한다.
멀티라디오 컨트롤러(MRC: Multiradio Controller, 1144)는 라디오 어플리케이션들 간의 상호 운용성 문제를 미리 감지하기 위해서, 동시에 실행되는 라디오 어플리케이션들로부터 제기되는 라디오 자원들(radio resources)에 대한 요구들을 스케쥴링한다.
리소스 매니저(RM: Resource Manager, 1145)는 실시간 요구사항을 충족시키면서 동시에 활성화된 라디오 어플리케이션들 간에 멀티라디오 자원들을 공유하기 위한 멀티라디오 자원들의 관리를 담당한다. 리소스 매니저(1145)는 기본적으로 운영 체계의 일부분일 수 있다.
한편, 라디오 컨트롤 프레임워크(114)는 전술한 5가지 구성요소들 중 일부만 포함할 수도 있고, 5가지 구성요소 이외의 구성요소를 더 포함할 수도 있다. 또한, 라디오 컨트롤 프레임워크(114)는 적어도 둘 이상의 구성요소들의 기능이 통합된 하나 이상의 구성요소로 구성될 수도 있다.
라디오 컨트롤 프레임워크(114)의 기능 및 역할은 전술한 구성요소들이 수행하는 기능에 의해서 정의되나, 전술한 예시적 구성요소들에 의해서 라디오 컨트롤 프레임워크(114)의 구성이 한정되는 것은 아니다. 즉, 라디오 컨트롤 프레임워크(114)는 전술한 구성요소들의 기능들 중 적어도 일부를 수행하기 위한 다양한 구성을 가질 수 있다.
라디오 플랫폼(121)은 신호를 발생시키거나 고주파 신호를 수신할 수 있는 모바일 장치의 하드웨어의 일부분으로서, 기능 블록의 구현을 위한 하드웨어를 포함한다. 하드웨어는 전용 가속기(fixed 또는 dedicated accelerators) 및 재구성 가능한 가속기(reconfigurable accelerators) 등의 서로 다른 신호 처리 구성요소들을 포함하는 이기종 하드웨어일 수 있다. 전용 가속기는 주문형 반도체(Application-Specific Integrated Circuit, ASIC) 등을 포함할 수 있고, 재구성 가능한 가속기는 현장 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA), 그래픽 프로세싱 유닛(Graphics Processing Unit, GPU), 디지털 신호 처리(Digital Signal Processing) 장치 등을 포함할 수 있다.
즉, 라디오 플랫폼(121)은 무선(radio) 신호처리 능력과 관련된 모바일 장치 하드웨어의 일부분으로서 프로그래머블 하드웨어(Programmable Hardware, 1211), 전용 하드웨어(Dedicated Hardware, 1212), RF 송수신기(1213) 및 안테나(1214)를 포함할 수 있다. 프로그래머블 하드웨어(1211) 및 전용 하드웨어(1212)는 베이스밴드 및 기타 구성부를 포함하는 모뎀(1210)에 포함될 수 있고, 전용 하드웨어(1212)는 하드웨어 가속기(Hardware Accelerator) 또는 베이스밴드 가속기(Baseband Accelerator)를 포함할 수 있다. 프로그래머블 하드웨어(1211)를 이용하면, 재구성 가능한 모바일 장치에서 표준 기능 블록의 확장성(extendibility)을 지원할 수 있다.
기능 블록(Function Block)의 실행을 위해 준비되는 베이스밴드 가속기는 종종 ASIC(Application-Specific Integrated Circuit)의 형태로 제공될 수 있다. 이러한 라디오 플랫폼(121)은 재구성 가능한 무선주파수 인터페이스(Reconfigurable Radio Frequency Interface, RRFI)를 통해 통합 라디오 어플리케이션(Unified Radio Application, 115)과 연결될 수 있다. RRFI는 라디오 플랫폼(121)과 통합 라디오 어플리케이션(115) 사이의 인터페이스이다.
전술한 라디오 플랫폼(121)은 라디오 플랫폼 하드웨어(Radio Platform Hardware)에 대응할 수 있으며, 라디오 플랫폼 드라이버(Radio Platform Driver, 122)을 통해 라디오 OS(123)와 연결될 수 있다. 여기서, 라디오 컨트롤 프레임워크(114)는 라디오 OS(123) 및 통신 서비스 계층(113) 상에서 동작할 수 있다.
전술한 구성에 있어서, 라디오 컨트롤 프레임워크(114)가 어플리케이션 프로세서(Application Processor, 110)와 라디오 컴퓨터(Radio Computer, 120)에서 동작하는 구성이라면, 라디오 컨트롤 프레임워크(114)는 두 개의 그룹들 또는 실행 영역들 등으로 나누어질 수 있다. 일례로, 하나의 그룹은 어플리케이션 프로세서(110) 상에서 동작하며, 다른 하나의 그룹은 라디오 컴퓨터(120) 상에서 동작한다. 라디오 컨트롤 프레임워크(114)의 어떤 구성요소가 라디오 컴퓨터(120) 상에서 실시간으로 동작하고 어떤 구성요소가 어플리케이션 프로세서(110) 상에서 비-실시간으로 동작할 것인지는 각각의 라디오 어플리케이션 패키지의 벤더에 의해 결정될 수 있다.
라디오 컨트롤 프레임워크(114)가 라디오 컴퓨터(120) 상에서만 동작하는 구성이라면, 라디오 컨트롤 프레임워크(114)는 라디오 컴퓨터(120) 실행 부분과 어플리케이션 프로세서(110) 실행 부분의 구분없이 라디오 컴퓨터(120) 상에서만 동작하도록 구현될 수 있다. 통신 서비스 계층(113) 상에서 동작하는 라디오 컨트롤 프레임워크(114)의 실행 부분은 라디오 컨트롤러(Radio Controller)로 지칭될 수 있고, 라디오 OS(123) 상에서 동작하는 라디오 컨트롤러 프레임워크(114)의 실행 부분은 기능 블록(Function Block)로 지칭될 수 있다.
위에서 설명한 바와 같이, 본 실시예에 따른 모바일 장치 아키텍처는 어플리케이션 프로세서(110) 상에서 동작하는 라디오 컨트롤러(Radio Controller)와 라디오 컴퓨터(120) 및/또는 라디오 OS(123) 상에서 동작하는 기능 블록(Function Block)을 포함할 수 있다. 라디오 컴퓨터(120)는 라디오 소프트웨어 아키텍처를 위한 모바일 장치 하드웨어의 일부분일 수 있으며, 주변장치는 무선 주파수(Radio Frequency, RF)를 처리하는 RF 송수신기(1213) 등의 고주파 처리부(RF part)를 포함할 수 있다.
여기서, 라디오 컴퓨터(120)는 라디오 컴퓨터에 대응될 수 있다. 또한, 라디오 컴퓨터는 프로그래머블 하드웨어(1211) 상에서 구현될 수 있다. 그 경우, 라디오 컴퓨터는 넓은 의미에서 프로그래머블 하드웨어, 하드웨어 가속기, 주변장치 등을 포함하는 라디오 컴퓨터(120)의 적어도 일부분에 대응될 수 있다. 즉, 라디오 컴퓨터의 연산 기능이 충분히 빠르면 별도의 하드웨어를 사용하지 않고 라디오 컴퓨터에서 라디오 라이브러리를 통해 라디오 어플리케이션을 직접 구현할 수 있다.
어플리케이션 프로세서(110)에서는 구글(Google)의 안드로이드(Android) OS, 애플(Apple)의 iOS와 같은 비 실시간(non-real time) 운영체제(Operating Systems, OS)가 동작되고, 라디오 컴퓨터(120)에서는 라디오 OS(123)라 지칭되는 실시간 운영체제(real time OS)가 동작한다. 이하에서는, 명확한 구별을 위하여 어플리케이션 프로세서(110) 상에서 동작하는 비 실시간 운영체제를 '운영체제(OS)'라고 부르고, 라디오 컴퓨터(120) 상에서 동작하는 실시간 운영체제는 '실시간 운영체제' 또는 '라디오 운영체제(Radio OS)'로 부를 수 있다.
이하에서는 어플리케이션 프로세서(110) 및 라디오 컴퓨터(120)를 포함하는 모바일 장치의 아키텍처 참조 모델의 구성요소들에 대한 상세이다.
어플리케이션 프로세서
모바일 장치의 어플리케이션 프로세서(110)는 도 2에 도시한 바와 같이 다음의 구성요소들 즉, 드라이버(117), 운영체제(OS, 116) 및 통신 서비스 계층(113)을 포함할 수 있다.
드라이버(driver, 117)는 주어진 운영체제(116) 상에서 하드웨어 디바이스들을 구동한다. 하드웨어 디바이스들은 카메라, 스피커 등을 포함할 수 있다.
운영체제(OS, 116)는 안드로이드, iOS와 같이 통상적인 모바일 디바이스에서 동작하는 비-실시간 운영체제(non-real time OS)를 포함할 수 있다. 운영체제(116) 상에서는 하나 이상의 사용자 어플리케이션(User Application, 1161)이 동작할 수 있다. 운영체제(116)는 아래에서 설명하는 라디오 운영체제와의 구별을 위해 '제1 운영체제'라 지칭될 수 있다.
통신 서비스 계층(113)은 라디오 컨트롤 프레임워크(114) 상에서 실행되는 통합 라디오 어플리케이션(115)의 하나 이상의 라디오 어플리케이션(RA 1, RA 2, RA 3, …, RA N)의 동작을 지원한다. 통신 서비스 계층(113)에서는 라디오 어플리케이션의 특정 실행 부분인 라디오 컨트롤러가 동작할 수 있다. 만약, 라디오 컨트롤 프레임워크(114)가 라디오 컴퓨터(120) 상에서만 동작하는 구성이라면, 어플리케이션 프로세서(110) 또는 통신 서비스 계층(113) 상에는 라디오 컨트롤 프레임워크(114)가 생략될 수 있다.
본 실시예에 의하면, 라디오 컨트롤 프레임워크(114)가 어플리케이션 프로세서(110)와 라디오 컴퓨터(120)에서 동작하는 구성에서 라디오 어플리케이션의 배포, 설치 및 실행 방법의 대상이 되는 라디오 어플리케이션들(RA 1, RA 2, RA 3, …, RA N)은, 어플리케이션 프로세서 실행 부분인 라디오 컨트롤러(Radio Controller)를 통해 통신 서비스 계층(113)의 모니터(1134)에게 상황 정보(context information)을 보내거나 통신 서비스 계층(113)의 네트워킹 스택(1133)과 데이터를 주고받는 역할을 수행하도록 구현될 수 있다.
라디오 컴퓨터
라디오 컴퓨터는 도 2에 나타낸 바와 같이 다음의 구성요소들 즉, 라디오 OS(Radio Operating System, 123), 라디오 플랫폼 드라이버(Radio Platform Driver, 122) 및 라디오 플랫폼(Radio Platform, 121)을 포함한다.
라디오 OS(123)는 라디오 컨트롤 프레임워크(114)에 의해 소프트웨어 아키텍처의 재구성이나 기능 블록 설치 또는 실행 등에 대한 권한이 주어지는 어떤 적절한 실시간 운영체제이다. 라디오 OS(123)는 자원 관리(resource management), 파일 시스템 지원(file system support), 하드웨어 자원의 통합 접근(unified access to hardware resources) 등과 같은 라디오 플랫폼(121)의 관리에 관련된 기본적인 관리 능력과 라디오 컨트롤 프레임워크 능력을 제공할 수 있다.
라디오 플랫폼 드라이버(122)는 라디오 OS(123)의 하드웨어 드라이버로서 라디오 플랫폼 하드웨어와 상호 작용한다. 라디오 플랫폼(121)은 라디오 플랫폼 하드웨어로서 그 구성 및 작용은 위에서 설명한 바와 같다.
본 실시예에 따른 라디오 어플리케이션은 모바일 장치의 재구성을 가능하게 하는 어플리케이션으로서 라디오 어플리케이션 패키지(RAP: Radio Application Package) 형태로 배포될 수 있다. 재구성 가능한 모바일 장치에 설치되는 라디오 어플리케이션 패키지는 기능 블록 코드(Function Block codes), 라디오 어플리케이션 코드(RA codes) 및 메타데이터(Metadata)를 포함할 수 있다(도 8 참조).
여기서, 기능 블록 코드는 하나 이상의 표준 기능 블록 및/또는 하나 이상의 사용자 정의 기능 블록을 위한 코드들을 포함하고 실시간 동작하는 라디오 컴퓨터(120)에 설치될 수 있다. 표준 기능 블록이 실행 코드 형태로 배포되는 경우, 라디오 어플리케이션 패키지는 라디오 라이브러리(Radio Library)를 실행 코드 형태로 포함하여 배포될 수 있다.
그리고 라디오 어플리케이션 코드는 라디오 컨트롤러 코드(RC codes)를 포함할 수 있고, 메타데이터는 파이프라인 구성 메타데이터(Metadata for Pipeline Configuration)를 포함할 수 있다. 라디오 컨트롤러 코드는 상황 정보 처리와 같은 실시간 처리가 필요하지 않는 동작을 위해 어플리케이션 프로세서(110)에 설치될 수 있다.
라디오 어플리케이션 패키지는 어플리케이션 프로세서(110)의 OS(116)에 의해 서버 측으로부터 다운로드되고, 라디오 어플리케이션 패키지 내의 구성코드(Configcodes)와 라디오 라이브러리가 파이프라인 구성 메타데이터를 참조하여 어플리케이션 프로세서(110)에서 라디오 컴퓨터(120)로 로딩되는 과정을 거쳐 라디오 컴퓨터(120)의 라디오 OS(123)에 로딩될 수 있다.
이하에서는 본 발명의 일실시예에 따른 라디오 어플리케이션의 배포, 설치 및 실행 방법에 대하여 좀더 구체적으로 설명하기로 한다.
도 3 내지 7은 본 발명의 일실시예에 따른 라디오 어플리케이션의 배포, 설치 및 실행 과정을 보여주는 개념도들이다.
본 실시예에 따른 방법에서는 라디오 어플리케이션을 실행 코드(executable code) 형태, 소스 코드(source code) 형태, 및 중간 표현(IR: Intermediate Representation) 형태 중 적어도 하나의 방법으로 배포할 수 있다. 다만, 본 실시예를 각 실시 형태를 설명하기에 앞서 RAP 또는 RA 소스 코드(RA source codes)를 실행 코드, 소스 코드 및 중간 표현 형태로 각각 배포, 설치 및 실행하는 방법에서의 기본적인 구성에 대하여 먼저 설명하고 그 다음에 각각의 형태에 대하여 차례로 상세히 설명하기로 한다.
타겟 모바일 장치(Mobile Device)에 대한 RAP(Radio Application Package)의 배포, 설치 및 실행 과정에서의 기본적인 동작을 설명하면 다음과 같다.
디자인/배포 단계는 라디오 어플리케이션을 제작하고 배포하는 단계로서, 이 단계에서 라디오 어플리케이션의 공급자 또는 배포자 측 컴퓨팅 장치(이하, 배포자 장치라고 한다)는 라디오 컨트롤러 코드와 사용자 정의 기능 블록을 포함하는 라디오 어플리케이션 패키지를 준비한다. 이때, 라디오 컨트롤러 코드 또는 라디오 어플리케이션 코드는 표준 라디오 라이브러리 인터페이스를 정의한 표준 라디오 라이브러리 헤더(standard radio library header)를 이용하여 기능 블록들을 호출하도록 작성될 수 있다. 한편, 라디오 컨트롤러 코드는 배포자 장치의 어플리케이션 프로세서 컴파일러에 의해 컴파일되어 라디오 컨트롤러 또는 라디오 컨트롤러 실행 코드의 형태로 라디오 어플리케이션 패키지에 포함될 수 있다.
도 3의 경우, 라디오 컨트롤러 코드(Radio Controller Code)는 배포자 장치의 어플리케이션 프로세서 컴파일러(AP Compiler)에 의해 컴파일되어 실행 코드의 형태로 라디오 어플리케이션 패키지에 포함될 수 있다. 라디오 어플리케이션 코드가 사용자 단말에서 실행 가능한 실행 코드의 형태로 배포되는 경우, 라디오 어플리케이션 코드를 여러 가지 컴파일러들 중에서 단말(모바일 장치)의 실행 환경에 맞는 컴파일러에서 컴파일하여 실행코드 형태로 라디오 어플리케이션 패키지에 포함시킬 수 있다.
한편, 도 4 및 도 5의 경우처럼, 라디오 어플리케이션 코드가 소스 코드의 형태로 배포되는 경우, 선택적인(optional) 구성요소인 암호화기(encryptor)를 통한 암호화 과정을 거쳐서 암호화된 소스 코드로서 배포될 수 있다. 이와 같이 라디오 어플리케이션 코드를 소스 코드 형태로 배포하면, 라디오 어플리케이션 코드를 설치하는 사용자 단말 측에서 컴파일하도록 하여, 라디오 어플리케이션 코드의 장치 독립성을 제고할 수 있다.
그리고 도 6과 도 7의 경우, 라디오 어플리케이션 코드가 프론트 엔드 컴파일러(front-end compiler)에 의해서 중간 표현 형태로 컴파일되어 라디오 어플리케이션 패키지에 포함될 수 있다.
생성된 라디오 어플리케이션 패키지는 배포 서버(예컨대, 라디오 앱 스토어)로 업로드되어 해당 라디오 어플리케이션을 구현하고자 하는 사용자 단말에서 다운로드 받을 수 있도록 준비될 수 있다.
라디오 어플리케이션 패키지(RAP)의 배포, 설치 및 실행
이하에서는 타겟 모바일 장치에 대한 RAP의 배포, 설치 및 실행 방법에 대한 구체적인 실시예들을 도 3 내지 도 7을 참조하여 설명한다.
도 3은 본 발명의 일실시예에 따른 라디오 어플리케이션의 배포, 설치 및 실행 방법을 설명하기 위한 개념도이다.
본 실시예는 모바일 장치의 플랫폼에 특정한 실행 가능한 코드(platform-specific executable code)를 가진 RAP(Radio Application Package)를 배포하는 경우에 대한 블록도이다.
도 3을 참조하면, RAP의 배포를 위하여 배포자 장치에 위치하는 표준 및 사용자 정의 기능 블록들(Standard & User Defined Functional Blocks)은 표준 라디오 라이브러리 헤더(Standard Radio Library Header)에 의해 정의되고 각각 컴파일된 후 RAP에 포함된다. RAP에는 표준 및 사용자 정의 기능 블록 실행 코드들 외에 배포자 장치의 어플리케이션 프로세서 컴파일러에서 컴파일된 라디오 컨트롤러 또는 라디오 컨트롤러 실행 코드(Radio Controller Executable Code)도 포함된다.
즉, RAP의 배포를 위하여 기능 블록으로부터 사용자의 모바일 장치에 상응하는 구성코드(configcodes)를 생성하는 디자인 단계에서, 표준 기능 블록(SFBs)과 사용자 정의 기능 블록(UDFBs)은 다수의 모바일 장치에서 재구성되는 각각의 라디오 어플리케이션(Radio Application)에 대응하도록 서로 독립적으로 혹은 서로 다르게 컴파일될 수 있다(Compiler A, Compiler B, Compiler C). 이것은 사용자 정의 기능 블록과 표준 기능 블록의 실행 코드(Executable Codes)가 RAP에 포함되기 전에 미리 설정되는 라디오 컴퓨터와 부합되게 컴파일된다는 것을 의미한다. 생성된 RAP(Radio Application Package)는 배포자 장치로부터 네트워크를 통해 라디오 어플리케이션 스토어(RadioApp Store)에 업로드될 수 있다.
라디오 어플리케이션 스토어는 모바일 장치와의 데이터 통신을 통해 모바일 장치로부터 시스템 정보(System Information)를 획득하고, 시스템 정보를 토대로 모바일 장치의 RAP 다운로드를 서비스할 수 있다. RAP 다운로드는 상기의 시스템 정보에 포함된 RAP 다운로드 요청 메시지를 토대로 수행되거나 모바일 장치가 라디오 어플리케이션 스토어로 전송하는 별도의 RAP 다운로드 요청 메시지 등을 토대로 수행될 수 있다.
모바일 장치에 RAP가 다운로드되면, 모바일 장치는 RAP(Radio Application Package)에서 모바일 장치에서 실행 가능한 구성코드(configcodes)와 라디오 컨트롤러(Radio Controller)를 획득하고, 인스톨러(installer)를 통해 모바일 장치에 RAP를 설치할 수 있다. RAP의 설치 시, 구성코드와 라디오 컨트롤러를 저장부(Storage)에 저장될 수 있다. 저장부는 하나 이상의 자기 디스크 저장 장치와 같은 고속 랜덤 액세스 메모리, 비휘발성 메모리, 하나 이상의 광 저장 장치, 플래시 메모리 또는 이들의 조합 등을 포함할 수 있다. 저장부는 저장장치로 지칭될 수 있다.
구성코드가 모바일 장치의 특정 플랫폼에서 실행 가능한 코드일 때, 구성코드는 라디오 어플리케이션 관련 작업을 실행하는 사용자 정의 기능 블록(UDFB, User Defined Function Block) 실행 코드와 표준 기능 블록(SFB, Standard Function Block) 실행 코드를 포함할 수 있다. 구성코드에 포함되어 있던 사용자 정의 기능 블록 및 표준 기능 블록의 실행 코드는 모바일 장치의 라디오 컴퓨터(Radio Computer)의 라디오 운영체제(Radio Operating System, Radio OS) 상에서 수행되기 위하여 라디오 운영체제의 로더(Loader)(제2로더)에 의해 모바일 장치에 로드된다. 그리고 구성코드에 포함되어 있던 라디오 컨트롤러(Radio Controller) 실행 코드는 모바일 장치의 어플리케이션 프로세서(Application Processor)의 운영체제(Operating System, OS)(이하, 제1 운영체제라고도 한다) 상에서 수행되도록 제1 운영체제의 로더(Loader)(제1로더)에 의해 모바일 장치에 로드된다.
즉, 모바일 장치는 어플리케이션 프로세서의 제1 운영체제 상에서 동작하는 RC 실행 코드와 라디오 컴퓨터의 라디오 운영체제 상에서 동작하는 기능 블록들의 실행 코드들을 포함하는 라디오 어플리케이션(Radio Application)에 의해 재구성될 수 있다. 이와 같이, 모바일 장치는 라디오 어플리케이션에 대한 실행 명령을 수신하고, 수신한 실행 명령에 따라 라디오 컨트롤러 실행 코드와 기능 블록들의 실행 코드들을 로딩하여 재구성될 수 있으며, 재구성된 상태에서 재구성에 의해 새로이 지원되는 통신 프로토콜 등을 이용하여 모바일 장치에 구비된 무선 통신 기능, 인터넷 접속 등의 기능을 실행할 수 있다.
한편, 전술한 설명에서 언급하지는 않았지만, 본 실시예에 따른 방법에 있어서 라디오 어플리케이션 패키지가 모바일 장치의 플랫폼에서 특정한 실행 가능한 코드 형태를 가질 때, 라디오 어플리케이션 패키지는 특정 모바일 장치에 필요한 라디오 라이브러리를 더 포함하도록 구현될 수 있다. 라디오 라이브러리를 사용자 단말의 표준 기능 블록을 포함할 수 있다.
도 4 및 도 5는 본 발명의 다른 실시예에 따른 라디오 어플리케이션의 배포, 설치 및 실행 방법을 설명하기 위한 개념도들이다.
본 실시예는 모바일 장치의 플랫폼에 독립적인 소스 코드(platform-independent source code) 형태를 가진 RAP(Radio Application Package)를 배포하는 경우에 해당한다. 즉, 도 4는 RAP가 정적 링킹(static linking) 구조의 플랫폼 독립형 소스 코드 형태를 갖는 경우에 해당하고, 도 5는 RAP가 동적 링킹(dynamic linking) 구조의 플랫폼 독립형 소스 코드 형태를 갖는 경우에 해당한다. 여기서, 정적 링킹은 RAP(프로그램에 대응함)의 실행에 앞서 필요한 다른 목적 프로그램을 링킹하여 최종 실행 코드를 설치 단계에서 완성하는 것을 지칭하고, 동적 링킹은 프로그램 실행 도중에 다른 목적 프로그램이 필요해졌을 때 프로그램의 제어 기능에 의해 해당 목적 프로그램을 링킹하여 라디오 어플리케이션의 최종 실행코드(executable code)를 실행 단계에서 완성하는 것을 지칭할 수 있다.
도 4 및 도 5를 참조하면, 디자인 단계(Design Time)에서 RAP(Radio Application Package)를 위한 RA 코드는 라디오 컨트롤러 코드(Radio Controller Code) 및 사용자 정의 기능 블록(User Defined Functional Blocks)만을 포함한다. RAP는 파이프라인 구성 메타데이터(Metadata for Pipeline Configuration)를 포함할 수 있다. 파이프라인 구성 메타데이터는 표준 기능 블록의 효율적인 컴파일 작업을 위한 정보를 제공한다. 이러한 표준 기능 블록들(SFBs)의 호출 기능은 타겟 라디오 어플리케이션(Radio Application)을 실행하는데 필요한 것으로서 구성코드에 포함될 수 있다.
또한, 디자인 단계에서 RA 코드의 적어도 일부는 선택적으로 암호화될 수 있다. 즉, 디자인 단계에서 표준 라디오 라이브러리 헤더(Standard Radio Library Header)에 의해 정의되는 라디오 컨트롤러 코드(Radio Controller Code)는 배포자 장치의 어플리케이션 프로세서 컴파일러(AP Compiler)에 의해 컴파일된 후 RAP에 포함될 수 있다. 그리고 표준 라디오 라이브러리 헤더에 의해 정의되는 사용자 정의 기능 블록(User Defined Functional Blocks)은 암호화기(Encryptor)에 의해 암호화된 후 RAP에 포함될 수 있다. 사용자 정의 기능 블록의 암호화는 선택적으로 수행될 수 있다. 생성된 RAP는 배포자 장치로부터 라디오 어플리케이션 스토어(RadioApp Store)에 업로드될 수 있다.
설치 단계(Installation Time)에서, 모바일 장치는 네트워크를 통해 연결되는 라디오 어플리케이션 스토어로부터 RAP를 다운로드할 수 있다. 모바일 장치는 RAP로부터 구성코드(Configcodes), 라디오 컨트롤러(Radio Controller) 및 파이프라인 구성 메타데이터(Metadata for Pipeline Configuration)를 획득할 수 있다.
사용자 정의 기능 블록을 포함하는 구성코드는 설치 단계 동안에 재구성 가능한 모바일 장치 또는 클라우드에서 컴파일될 수 있다. 모바일 장치에 컴파일러(Compiler)가 구비된 경우, 구성코드는 해당 모바일 장치에 적합하게 컴파일될 수 있다. 이것은 각 모바일 장치가 구성코드를 모바일 장치의 특정한(specific) 실행 가능한 코드로 변환하는 컴파일러를 탑재하고 있을 수 있음을 의미할 수 있다. 만약, RA 코드 또는 구성코드가 디자인 단계에서 원천적으로 암호화되어 있었다면, 구성코드는 설치 단계에서 컴파일되기 전에 복호화기(Decryptor)에 의해 복호화될 수 있다.
파이프라인 구성 메타데이터는 모바일 장치 또는 클라우드 시스템에서 컴파일될 수 있다. 동적 링킹(dynamic linking)의 경우에, RAP에 포함되는 파이프라인 구성 메타데이터는 RAP의 설치 단계에서 소스 코드 형태의 구성코드를 라디오 컴퓨터의 실행코드로 컴파일하는 과정 중에 컴파일러에 의해서 참조될 수 있다.
표준 기능 블록들(SFBs)의 기본 구현(native implementation)은 모바일 장치의 내장 라디오 라이브러리(native Radio Library)에 포함되고, 모바일 장치에서의 소프트웨어 정의 라디오 재구성 동작 등과 같은 실행 단계(Run Time) 이전에 수행될 수 있다.
또한, 설치 단계에서 구성코드를 컴파일하여 얻은 실행 코드(Executable Code)는 인스톨러(Installer)에 의해 모바일 장치에 설치된다. 그리고 라디오 컨트롤러는 인스톨러에 의해 모바일 장치에 설치된다. 모바일 장치에서 인스톨러에 의해 생성되는 소프트웨어, 프로그램, 명령어 집합 또는 이들의 조합은 저장부(Storage)에 저장될 수 있다.
또한, 정적 링킹의 경우, 도 4에 도시한 바와 같이, 사용자 정의 기능 블록들과 표준 기능 블록들의 링킹은 라디오 라이브러리(Radio Library)를 이용하여 설치 단계에서 수행될 수 있다. 실행 단계에서 사용자 정의 기능 블록들과 표준 기능 블록들의 컴파일된 코드(실행 코드)는 라디오 운영체제 상에 로드되어 실행될 수 있다.
즉, 실행 단계(Run Time)에서, 모바일 장치의 어플리케이션 프로세서(Application Processor) 상에서 동작하는 라디오 컨트롤러 실행 코드(RC Executable Code)는 저장부에서 추출되어 어플리케이션 프로세서의 제1 운영체제(Operating System)의 적재기(Loader)에 의해 어플리케이션 프로세서 상에 로드된다. 그리고 모바일 장치의 라디오 컴퓨터(Radio Computer) 상에서 동작하는 기능 블록들의 실행 코드(Functional Blocks Executable Code)는 저장부에서 추출되어 라디오 컴퓨터의 라디오 운영체제(Radio Operating System)의 적재기(Loader)에 의해 라디오 컴퓨터 상에 로드된다. 기능 블록들은 표준 기능 블록들(SFBs)과 사용자 정의 기능 블록들(UDFBs)을 포함할 수 있다.
한편, 동적 링킹의 경우, 도 5에 도시한 바와 같이, 사용자 정의 기능 블록들과 표준 기능 블록들의 링킹은 라디오 라이브러리를 이용하여 실행 단계에서 수행될 수 있다.
다시 말해서, 실행 단계(Run Time)에서, 제1 운영체제의 로더(Loader, Dispatcher, etc)는 저장부(Storage)의 라디오 컨트롤러 실행 코드(RC Executable Code)를 어플리케이션 프로세서(Application Processor) 상에 로드하고, 라디오 운영체제의 로더는 저장부의 기능 블록들(하나 이상의 사용자 정의 기능 블록들)의 실행 코드와, 모바일 장치의 라디오 라이브러리(Radio Library) 내의 하나 이상의 표준 기능 블록들의 실행 코드를 라디오 컴퓨터 상에 로드할 수 있다.
컴파일 작업을 클라우드에서 실행하면, 모바일 장치 아키텍처는 컴파일러가 생략된 구조를 가질 수 있다. 또한, 동적 링킹에서 라디오 어플리케이션의 구성코드를 클라우드 서비스를 통해 컴파일하는 경우, 컴파일 작업을 위해 모바일 장치에는 라디오 라이브러리 기본 구현(Radio Library Native Implementation)이 구비된다.
도 6 및 도 7은 본 발명의 또 다른 실시예에 따른 라디오 어플리케이션의 배포, 설치 및 실행 방법을 설명하기 위한 개념도들이다.
본 실시예는 모바일 장치의 플랫폼에 독립적인 중간 표현(platform-independent Intermediate Representation) 형태를 가진 RAP(Radio Application Package)를 배포하는 경우에 해당한다. 즉, 도 6은 RAP가 정적 링킹(static linking) 방식의 플랫폼 독립형 중간 표현 형태를 갖는 경우에 해당하고, 도 7은 RAP가 동적 링킹(dynamic linking) 방식의 플랫폼 독립형 중간 표현 형태를 갖는 경우에 해당한다. 본 실시예를 설명함에 있어서, 용이한 이해를 위해 도 3 내지 도 5와 중복되는 설명은 생략한다.
도 6 및 도 7을 참조하면, 구성코드(Configcodes)가 플랫폼에 독립적인 중간 표현 형태로 제공될 때, 사용자 정의 기능 블록 코드를 포함하는 라디오 어플리케이션(RA) 코드는, 디자인 단계에서 프론트-엔드(front-end) 컴파일될 수 있다. 프론트-엔드 컴파일된 구성코드의 사용자 정의 기능 블록 코드는 설치 단계에서 재구성 가능한 모바일 장치에서 백-엔드(back-end) 컴파일되어 소정의 라디오 컴퓨터에 특정한 실행가능한 코드로 변환될 수 있다. 표준 기능 블록들(SFBs)의 기본 구현(native implementation)은 실행 단계 이전에 수행되고 내장 라이브러리(native library)에 포함될 수 있다.
정적 링킹 방식의 경우, 도 6에 도시한 바와 같이, 사용자 정의 기능 블록들과 표준 기능 블록들의 링킹은 라디오 라이브러리(Radio Library)를 이용하여 설치 단계에서 수행될 수 있다. 실행 단계에서 사용자 정의 기능 블록들과 표준 기능 블록들의 컴파일된 코드(실행 코드)는 라디오 운영체제 상에 로드되어 실행될 수 있다.
한편, 동적 링킹의 경우, 도 7에 도시한 바와 같이, 사용자 정의 기능 블록들과 표준 기능 블록들의 링킹은 라디오 라이브러리를 이용하여 실행 단계에서 수행될 수 있다. 또한, 동적 링킹의 경우에, 파이프라인 구성 메타데이터는 모바일 장치 또는 클라우드 시스템에서 컴파일될 수 있다. RAP에 포함되는 파이프라인 구성 메타데이터는 RAP의 설치 단계에서 중간 표현 형태의 구성코드를 라디오 컴퓨터의 실행코드로 컴파일하는 과정 중에 컴파일러에 의해서 참조될 수 있다.
전술한 경우들에 있어서, 설치 단계에서의 컴파일 과정은 크게 두 가지 방안 중 어느 하나를 이용하여 수행될 수 있다. 즉, 첫 번째 방안에서의 설치 단계는 모바일 장치 또는 이에 상응하는 장치에서 수행될 수 있다. 그리고 두 번째 방안에서 인스톨러의 기능을 제외한 일부 설치 단계는 외부적으로 예컨대, 클라우드(Cloud)에서 수행될 수 있다. 이러한 클라우드 서비스는 네트워크상의 플랫폼 벤더에 의해 제어될 수 있다.
따라서, 컴파일 작업을 클라우드에서 실행할 때, 모바일 장치 아키텍처는 컴파일러가 생략된 구조를 가질 수 있으며, 동적 링킹에서 라디오 어플리케이션의 구성코드를 클라우드 서비스를 통해 컴파일하는 경우, 컴파일 작업을 위해 모바일 장치에는 라디오 라이브러리 기본 구현(Radio Library Native Implementation)이 구비될 수 있다.
본 실시예에 의하면, 중간 표현 형태를 갖는 RAP를 이용함으로써 다양한 입력 언어를 동일한 중간 표현으로 표현하거나 동일한 여러 가지 출력 언어로 표현하면서 다양한 입력 언어와 출력 언어를 지원할 수 있다. 또한, RA 소스 코드의 고수준 언어를 중간 형태를 거쳐 처리하여 낮은 수준의 언어에서 효율적으로 프로그램을 최적화할 수 있으므로 모바일 장치의 속도 및 최적화에 유리한 장점이 있다. 또한, 중간 표현 형태를 갖는 RAP를 이용하면, 가상 머신의 바이트코드 등의 출력을 통해 플랫폼의 기계어에 비해 속도가 느린 가상 머신에서 가상 머신의 실행 직전에 현재 플랫폼의 기계어로 다시 한번 컴파일할 수 있고 그에 의해 장치의 속도를 향상시킬 수 있다.
도 8은 본 발명의 일실시예에 따른 라디오 어플리케이션 패키지의 구성을 설명하기 위한 블록도이다.
도 8을 참조하면, 본 실시예에 따른 라디오 어플리케이션 패키지(810)는, 사용자 정의 기능 블록 코드(811), 라디오 컨트롤러 코드(812) 및 파이프라인 구성 메타데이터(813)를 포함할 수 있다. 또한, 라디오 어플리케이션 패키지(810)는 모바일 장치의 플랫폼에서 특정한 실행 가능한 코드로 구현되는 경우 라디오 라이브러리(814)를 더 포함할 수 있다.
사용자 정의 기능 블록 코드(811)는 라디오 어플리케이션의 실시간 구현을 위해 요구되는 기능 블록들을 정의하는 코드이다. 사용자 정의 기능 블록 코드(811)는 OSI(Open Systems Interconnection)의 레이어 1(L1), 레이어 2(L2) 및 레이어 3(L3)의 모뎀 기능뿐 아니라 재구성 가능한 소프트웨어 정의 라디오 어플리케이션을 구현하기 위해 실시간 처리되어야 하는 기능 블록들을 포함할 수 있다. 각 기능 블록은 고유한 이름, 입력, 출력 및 속성을 가질 수 있다.
사용자 정의 기능 블록 코드(811)가 모바일 장치의 플랫폼에서 특정한 실행 가능한 코드(실행 코드)로 구현되는 경우, 라디오 어플리케이션 패키지(810)는 다양한 모바일 장치(사용자 단말)에 적용 가능하도록 여러 가지 컴파일러에 의해 컴파일된 사용자 정의 기능 블록 코드(811)를 포함할 수 있다.
또한, 사용자 정의 기능 블록 코드(811)가 실행 코드 형태라면, 사용자 정의 기능 블록 코드(811)와 라디오 라이브러리(814)는 사용자 정의 기능 블록 코드(811) 내의 사용자 정의 기능 블록과 라디오 라이브러리(814) 내의 표준 기능 블록을 함께 컴파일한 라디오 어플리케이션 코드로 대체될 수 있다. 라디오 어플리케이션 코드는 구성코드(Configcode)로 지칭될 수 있다.
여기서, 라디오 라이브러리(814)는 라디오 어플리케이션 패키지(810)가 실행 코드 형태를 가질 때 사용자 단말인 모바일 장치가 실행할 수 있는 표준 기능 블록 실행 코드를 제공하기 위한 것이다.
전술한 사용자 정의 기능 블록은 특정 라디오 어플리케이션에 종속적인 기능 블록들을 포함할 수 있다. 이러한 기능 블록들은 특정 라디오 어플리케이션에 필요한 특정 기능을 지원하거나 성능 향상을 위해 사용되는 특정 알고리즘을 지원하는데 이용될 수 있다. 또한, 사용자 정의 기능 블록은 표준 라디오 라이브러리 헤더에 정의된 표준 기능 블록에 구현되지 않은 베이스밴드 디지털 신호처리의 구현과 관련될 수 있다. 즉, 사용자 정의 기능 블록은 베이스밴드 컨트롤러 기능 블록으로서 실시간 베이스밴드 프로세서(라디오 컴퓨터의 일부분에 대응할 수 있다)에서 동작하면서 실시간 상황 정보를 처리하는 기능 블록들을 제어하는데 사용될 수 있다.
그리고 표준 기능 블록은 라디오 라이브러리에 포함되는 형태를 가질 수 있고, 다수의 라디오 어플리케이션들에 의해 공유될 수 있다. 라디오 어플리케이션들은 순방향 오류 정정(Forward Error Correction, FEC), 고속 푸리에 변환(Fast Fourier Transform, FFT)/역 고속 푸리에 변환(Inverse FFT, IFFT), 인터리버(interleaver)/역인터리버(deinterleaver), 터보 코딩(Turbo coding), 비터비 코딩(Viterbi coding), 다중 입력 다중 출력(Multiple Input Multiple Output, MIMO), 빔포밍(Beamforming) 등을 위한 어플리케이션들을 포함할 수 있다.
또한, 사용자 정의 기능 블록 코드(811)는 라디오 어플리케이션 패키지(810)가 설치된 모바일 장치의 라디오 컴퓨터에서 직접 실행 가능한 코드(실행 코드) 형태 이외에 모바일 장치에서의 실행을 위해 컴파일을 필요로 하는 코드(소스 코드 또는 중간 표현) 형태로 구현될 수 있다.
라디오 컨트롤러 코드(812)는 라디오 컨트롤러의 기능을 수행하도록 작성된 코드이다. 라디오 컨트롤러 코드(812)는 라디오 컨트롤러를 재구성하기 위한 소프트웨어, 프로그램 또는 명령어 집합일 수 있다. 즉, 라디오 컨트롤러 코드(812)는 사용자 단말의 통신 서비스 계층의 모니터에 상황 정보(context information)를 전달하고 통신 서비스 계층의 네트워킹 스택과 데이터를 주고받기 위한 코드를 포함할 수 있다.
전술한 라디오 컨트롤러 코드(812)는 도 1 및 도 2를 참조하여 앞서 설명한 모바일 장치 아키텍처의 라디오 컴퓨터와 어플리케이션 프로세서 중 어느 하나에서 실행되는 실행 코드 형태로 라디오 어플리케이션 패키지에 포함될 수 있다. 이를 위해 라디오 컨트롤러 코드(812)는 배포자 장치의 어플리케이션 프로세서 컴파일러에서 컴파일될 수 있다.
또한, 라디오 컨트롤 프레임워크가 어플리케이션 프로세서 실행 부분과 라디오 컴퓨터 실행 부분으로 분리된 경우는, 라디오 컨트롤러 코드(812)는 어플리케이션 프로세서에서 실행되는 코드를 포함할 수 있으며, 라디오 컨트롤 프레임워크가 라디오 컴퓨터에서만 실행되는 경우에는 라디오 컨트롤러 코드는 라디오 컴퓨터에서만 실행되는 코드로 구성될 수 있다.
파이프라인 구성 메타데이터(813)는 사용자 단말에서의 라디오 어플리케이션을 구현하기 위해 필요한 기능 블록들과 이 기능 블록들 간의 연결을 정의한다. 즉, 파이프라인 구성 메타데이터(813)는 표준 라디오 라이브러리 헤더(820)에 포함된 표준 기능 블록과 사용자 정의 기능 블록 코드(811)에서 정의하는 기능 블록들 간의 연결 및 각 기능 블록이 갖는 속성의 초기값에 대한 기술을 포함할 수 있다.
파이프라인(pipeline)이란 라디오 어플리케이션의 송신 또는 수신 기능을 구현하기 위한 라디오 어플리케이션의 라디오 컨트롤러, 사용자 정의 기능 블록들 및 표준 기능 블록들의 조합과 그 연결관계를 의미한다.
전술한 라디오 어플리케이션 패키지(810)는 표준 라디오 라이브러리 인터페이스(도 12 참조)를 고급 언어로 작성한 표준 베이스밴드 API 헤더(820)를 이용할 수 있다. 따라서 라디오 어플리케이션 제작자는 표준 베이스밴드 API 헤더(820)를 참조하여, 라디오 어플리케이션 또는 라디오 어플리케이션 패키지(810)을 제작할 수 있다. 제작된 라디오 어플리케이션 패키지(810)는 라디오 어플리케이션 스토어 등의 서버(830)에 업로드되어 배포될 수 있다. 그리고 라디오 어플리케이션 패키지(810)는 서버(830)로부터 모바일 장치에 다운로드될 수 있다.
본 실시예에 의하면, 라디오 어플리케이션 제작자 또는 배포자는 표준 베이스밴드 API(application programming interface)를 사용하여 서로 다른 구조의 모뎀칩을 가진 모바일 장치 또는 사용자 단말에서 동일한 라디오 어플리케이션을 실행하기 위한 라디오 어플리케이션 패키지를 생성할 수 있다. 또한, 최적의 디지털 신호 처리 수행을 위하여 무선 디지털 통신에 필요한 여러 디지털 신호 처리 알고리즘을 표준 베이스밴드 API로 제공함으로써, 모뎀 하드웨어 제작사는 표준 베이스밴드 API에 포함된 각 블록의 복잡도 또는 전력 소비에 따라 하드웨어 또는 소프트웨어적 구현을 선택할 수 있다. 라디오 어플리케이션 제작사는 표준 베이스밴드 API를 이용하여 모뎀칩에 독립적인 라디오 어플리케이션을 제작할 수 있다. 또한, 표준 베이스밴드 API에 포함되지 않은 기능을 구현하기 위하여 사용자 정의 형태의 블록을 제공함으로써 표준 베이스밴드 API의 다양한 확장을 가능하게 한다.
도 9는 도 8의 라디오 어플리케이션 패키지를 온라인 스토어에서 배포하는 실시예를 보여주는 개념도이다.
도 9를 참조하면, 본 실시예에 따른 라디오 어플리케이션을 이용하기 위하여 사용자는 모바일 장치(910)를 이용하여 온라인 앱 스토어(920)에 접속하고, 앱 스토어가 제공하는 다양한 무선 통신 방식들을 지원하는 라디오 어플리케이션들의 리스트에서 원하는 라디오 어플리케이션을 선택하고, 해당 라디오 어플리케이션의 라디오 어플리케이션 패키지를 다운로드받을 수 있다.
다양한 무선 통신 방식은 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) 등을 포함할 수 있다. 사용자는 자신의 모바일 장치에 복수의 라디오 어플리케이션을 다운로드받아 설치해 두고 상황에 따라 필요한 라디오 어플리케이션을 자유롭게 실행할 수 있다.
도 10은 본 발명의 일실시예에 따른 소스 코드 형태의 구성코드를 포함하는 라디오 어플리케이션 패키지의 배포 및 설치 과정을 설명하는 블록도이다.
도 10을 참조하면, 본 실시예에 따른 라디오 어플리케이션의 제작 시 머신 독립적인 섹션(1010)에서 작성되는 구성코드(Configcodes)는 고급 언어(1011), 예를 들면 C/C++로 작성될 수 있다. 구성코드는 선택적으로 암호화기(1014)를 통해 암호화된 소스코드(1015)로 변경될 수 있다. 암호화된 소스코드(1015)는 라디오 어플리케이션 패키지에 포함되어 각 단말로 배포될 수 있다(1020).
머신 독립적인 섹션(1010)은 배포자 장치, RAP 개발자 장치, RAP 공급자 장치 등과 같은 적어도 어느 하나의 컴퓨팅 장치의 일부 기능부이거나 구성부일 수 있다.
라디오 어플리케이션 패키지를 다운로드한 단말(모바일 장치)에서는 라디오 어플리케이션 패키지의 설치를 위하여 복호화기(1031~1035) 및 컴파일러(1041~1045)를 구비할 수 있다. 모바일 장치는 복호화기(1031~1035)와 컴파일러(1041~1045)를 이용하여 암호화된 소스코드(1015)를 단말에 내장된 라디오 컴퓨터에서 작동 가능한 기계어(Machine Code)(1051 ~ 1055)로 변환할 수 있다.
복호화기(1031~1035)는 모바일 장치의 머신 독립적인 섹션에서 동작할 수 있고, 컴파일러(1041~1045)와 기계어(1051 ~ 1055)는 머신 비독립적인 섹션에서 동작할 수 있다. 컴파일러(1041~1045)는 모바일 장치에 설치된 모뎀 하드웨어에 최적화된 기계어를 생성할 수 있어야 하므로 모뎀 하드웨어에 의존적인 부분이다. 즉, 컴파일러는 A 아키텍처를 위한 컴파일러(1041), B 아키텍처를 위한 컴파일러(1042), C 아키텍처를 위한 컴파일러(1043), D 아키텍처를 위한 컴파일러(1044), E 아키텍처를 위한 컴파일러(1045) 등을 포함할 수 있다. 이 경우, 기계어는 A 머신 코드(1051), B 머신 코드(1052), C 머신 코드(1053), D 머신 코드(1054), E 머신 코드(1055) 등을 포함할 수 있다.
라디오 컴퓨터의 제조사에서는 자신의 라디오 컴퓨터 또는 라디오 운영체제에 최적화된 컴파일러를 제작하여 자신의 라디오 운영체제에 내장하거나, 자신의 라디오 운영체제를 사용하는 단말기 회사에 제공할 수 있다. 모바일 장치에 최적화된 컴파일러는 라디오 컴퓨터 또는 어플리케이션 프로세서 상에서 실행되도록 구현될 수 있다.
한편, 라디오 어플리케이션 패키지의 구성코드(Configcodes)가 사용자 단말인 모바일 장치에 맞추어 컴파일된 후 배포되는 실행 코드 형태라면, 본 실시예에 따른 컴파일 과정은 모바일 장치에서의 RAP 설치 단계에서 생략될 수 있다(도 3 참조).
도 11은 본 발명의 일실시예에 따른 소스 코드 형태의 구성코드를 포함하는 라디오 어플리케이션 패키지의 배포 및 설치 과정의 다른 예를 설명하는 블록도이다.
도 11을 참조하면, 본 실시예에 따른 라디오 어플리케이션의 제작 시 머신 독립적인 섹션에서 작성되는 구성코드(Configcodes)는 C/C++과 같은 고급 언어(1111)로 작성될 수 있고, 대상 모바일 장치의 라디오 컴퓨터에 맞는 디자인/배포 단계를 위하여 컴파일러(1141~1145)를 통해서 실행 가능한 형태인 기계어(1151~1155)로 변환될 수 있다. 이러한 기계어(1151~1155)들은 각각 별도의 라디오 어플리케이션 패키지에 포함되어 라디오 어플리케이션 서버(배포 서버 또는 라디오 앱 스토어에 대응함)에 저장되고, 모바일 장치는 자신의 라디오 컴퓨터(예컨개, A 아키텍처 라디오 컴퓨터)(1161)에서 동작 가능한 라디오 어플리케이션 패키지를 다운로드할 수 있다(1120). 따라서, 모뎀 하드웨어 제조사는 자신이 공급하는 특정 모바일 장치의 모뎀에 최적화된 컴파일러(1141~1145)를 제작하여 라디오 어플리케이션 제작자에게 제공할 수 있다.
전술한 컴파일러(1141~1145)와 기계어(1051 ~ 1055)는 배포자 장치 측의 머신 비독립적인 섹션에서 동작할 수 있다. 컴파일러는 A 아키텍처를 위한 컴파일러(1141), B 아키텍처를 위한 컴파일러(1142), C 아키텍처를 위한 컴파일러(1143), D 아키텍처를 위한 컴파일러(1144) 및 E 아키텍처를 위한 컴파일러(1145)를 포함할 수 있다. 그리고 기계어는 A 머신 코드(1151), B 머신 코드(1152), C 머신 코드(1153), D 머신 코드(1154) 및 E 머신 코드(1155)를 포함할 수 있다.
본 실시예와 관련하여 도 3 내지 도 7을 참조하면, 라디오 어플리케이션의 설치 과정은 어플리케이션 프로세서 또는 라디오 컴퓨터에서 진행될 수 있다. 예컨대, 컴파일러 및/또는 저장부는 어플리케이션 프로세서와 라디오 컴퓨터 중 적어도 하나에 존재하거나 둘 모두에 존재할 수 있다.
도 12는 본 발명의 일 실시예에 따른 표준 라디오 라이브러리 인터페이스의 예를 보여주는 개념도이다.
도 12를 참조하면, 본 실시예에 따른 표준 라디오 라이브러리 인터페이스(820)는 모뎀 내부의 베이스밴드 영역에서 필요한 디지털 신호처리 알고리즘을 표준화한 API로서, 도 8의 표준 베이스밴드 API에 대응될 수 있다. 표준 라디오 라이브러리 인터페이스(820)는 표준 인터페이스(1210~1250)와 '변환' 표준 인터페이스에 속한 표준 기능블록들(1211~1214)을 포함할 수 있다.
표준 인터페이스 유형으로는 예를 들어 변환(1210), 채널코딩(1220), 네트워크 매퍼(1230), 인터리빙(1240), 소스코딩(1250)을 포함할 수 있다. 또한 변환(1210)에 대한 표준 기능블록으로는 스프레딩(1211), 디스프레딩(1212), 스크램블링(1213), 디스크램블링(1214), 고속 퓨리에 변환(FFT: Fast Fourier Transform)(1215), 역 고속 퓨리에 변환(IFFT: Inverse Fast Fourier Transform)(1216)이 정의될 수 있다.
또한, 표준 기능 블록인 고속 퓨리에 변환(1215)을 통해 입출력되는 데이터와 그 속성(points 등), 멤버 함수{Run(), Stop() 등}가 정의될 수 있다. 또한, 같은 유형의 기능 블록에는 공통적인 속성을 부여하여 라디오 어플리케이션의 객체 지향적 설계가 가능하다.
라디오 어플리케이션 배포 방법에 대한 실시예
이하, 본 실시예에 따른 소프트웨어 정의 라디오 단말장치(사용자 단말 또는 모바일 장치에 대응한다)를 위한 라디오 어플리케이션의 배포 방법을 보다 상세하게 설명하기로 한다.
도 13은 본 발명의 일실시예에 따른 라디오 어플리케이션의 배포 과정을 설명하기 위한 순서도이다.
도 13을 참조하면 본 실시예에 따른 라디오 어플리케이션의 배포 과정은 라디오 어플리케이션 패키지 준비 단계(S1310), 라디오 어플리케이션 패키지 생성 단계(S1320), 라디오 어플리케이션 패키지 배포 단계(S1330)를 포함한다. 배포 과정은 디자인 과정을 포함할 수 있으며, 그 역도 가능하다.
라디오 어플리케이션 배포 과정의 각 단계에 대해서 좀 더 자세하게 설명하면 다음과 같다.
라디오 어플리케이션 패키지 준비 단계(S1310)는 라디오 어플리케이션 패키지에 포함되는 사용자 정의 기능 블록과 라디오 컨트롤러 코드를 준비하는 단계이다. 라디오 어플리케이션 패키지에 포함되는 요소들로서는 사용자 정의 기능 블록과 라디오 컨트롤러 코드 외에 라디오 라이브러리 및/또는 메타데이터가 포함될 수 있다. 라디오 라이브러리는 소프트웨어 정의 라디오 재구성의 대상이 되는 모바일 장치에 표준 기능 블록을 제공할 수 있다. 메타데이터는 요소들 간의 관계를 정의한 것으로서 파이프라인 구성 메타데이터일 수 있다.
라디오 어플리케이션 패키지 생성 단계(S1320)는 소프트웨어 정의 라디오 단말에서 수행되는 라디오 어플리케이션을 생성하는 단계이다. 라디오 어플리케이션 패키지는 라디오 어플리케이션 코드, 라디오 컨트롤러 코드 및 파이프라인 구성 메타데이터를 포함할 수 있다(도 8 참조). 라디오 어플리케이션 코드는 사용자 정의 기능 블록을 컴파일한 결과인 구성코드(Configcode)로서 지칭될 수 있다.
라디오 어플리케이션 패키지 생성 단계(S1320)는 라디오 어플리케이션 코드 생성 및 컴파일 단계, 라디오 컨트롤러 코드 생성 및 컴파일 단계, 파이프라인 구성 메타데이터 생성 단계 및 패키지 생성 단계를 포함할 수 있다.
또한, 라디오 어플리케이션 패키지 생성 단계(S1320)는 사용자 정의 기능 블록을 암호화하는 과정을 포함할 수 있다. 물론, 암호화 시 사용자 정의 기능 블록과 표준 기능 블록이 함께 암호화될 수 있다. 이러한 암호화는 사용자 정의 기능 블록 및/또는 표준 기능 블록을 포함한 라디오 어플리케이션 코드가 소스 코드 형태 또는 중간 표현 형태일 때 더욱 유용하다.
즉, 라디오 어플리케이션 코드가 소스 코드의 형태로 배포되는 경우, 여러 사용자 단말에서 컴파일 가능하도록 표준 언어를 사용하여 작성되어야 한다. 그 경우, 일반 소스 코드 형태로 배포될 경우 소스 코드가 그대로 노출되므로 암호화하여 배포함으로써 소스 코드의 외부 노출을 막을 수 있다.
그리고 라디오 어플리케이션 코드가 사용자 단말에서 실행 가능한 코드(실행 코드) 형태로 배포되는 경우, 라디오 어플리케이션 코드는 사용자 단말에 대응하는 하나 이상의 컴파일러에 의해 컴파일되어 준비된다. 이와 유사하게, 라디오 컨트롤러 코드도 배포자 장치의 어플리케이션 프로세서 컴파일러에서 컴파일되어 라디오 컨트롤러 또는 라디오 컨트롤러 실행 코드 형태로 준비될 수 있다.
생성된 라디오 어플리케이션 코드, 라디오 컨트롤러 코드 및 파이프라인 구성 메타데이터는 라디오 어플리케이션 패키지로 생성된다.
라디오 어플리케이션 패키지 배포 단계(S1330)는 상기와 같이 생성된 라디오 어플리케이션 패키지를 라디오 어플리케이션 배포 서버에 업로드하여 해당 라디오 어플리케이션을 필요로 하는 소프트웨어 정의 라디오 단말(사용자 단말)에서 다운로드할 수 있도록 기능한다.
라디오 어플리케이션 설치 방법에 대한 실시예
이하, 본 발명의 실시예에 따른 라디오 어플리케이션의 설치 및 라디오 어플리케이션의 실행 과정에 대해서 설명하기로 한다.
도 14는 본 발명의 일실시예에 따른 라디오 어플리케이션의 설치 및 실행 방법을 설명하기 위한 흐름도이다.
도 14를 참조하면, 본 실시예에 따른 라디오 어플리케이션 설치 및 실행 방법은 라디오 어플리케이션 패키지 다운로딩 단계(S1410), 라디오 어플리케이션 패키지 설치 단계(S1420) 및 라디어 어플리케이션 실행 단계(S1430)를 포함한다.
라디오 어플리케이션 패키지 다운로딩 단계(S1410)는 소프트웨어 정의 라디오 단말에서 라디오 어플리케이션을 실행하기 위하여 네트워크를 통해 접속한 배포 서버로부터 라디오 어플리케이션 패키지를 다운로딩하는 단계이다. 라디오 어플리케이션 패키지는 라디오 어플리케이션 코드, 라디오 컨트롤러 코드, 파이프라인 구성 메타데이터를 포함할 수 있다.
다음, 라디오 어플리케이션 패키지 설치 단계(S1420)는 배포서버로부터 다운로드한 라디오 어플리케이션 패키지의 기능 블록 실행 코드와 라디오 컨트롤러 실행 코드를 사용자 단말에 설치하는 단계로서, 실행 코드 판단 단계(S1421), 컴파일 단계(S1422) 및 저장 단계(S1423)를 포함할 수 있다.
실행 코드 판단 단계(S1421)는 라디오 어플리케이션 패키지에 포함된 라디오 어플리케이션 코드 또는 구성코드가 사용자 단말에서 직접 실행 가능한 코드 형태인지를 판단한다. 실행 코드이면, 다음의 컴파일 단계(S1422)가 생략되고 저장 단계(S1423)로 진행할 수 있다.
컴파일 단계(S1422)는 라디오 어플리케이션 패키지에 포함된 라디오 어플리케이션 코드 또는 구성코드가 소스 코드 형태 또는 중간 표현 형태인 경우, 구성 코드를 컴파일한다. 컴파일 단계(S1422)는 사용자 단말에 탑재되어 있는 컴파일러에 의해 수행될 수 있으나, 이에 한정되지는 않으며 사용자 단말과 네트워크를 통해 연결되는 클라우드(1400)에 위치하는 컴파일러에 의해 수행될 수 있다.
라디오 어플리케이션 코드 또는 구성코드가 중간 표현 형태인 경우, 컴파일러는 백엔드 컴파일러(Back-End Compiler)를 포함할 수 있다. 컴파일 단계(S1422)에 의하면, 사용자 정의 기능 블록 실행 코드 및 라디오 컨트롤러(RC) 실행 코드를 생성할 수 있다. 또한, 컴파일 단계(S1422)에서 사용자 단말은 라디오 어플리케이션 패키지의 배포 형태에 따라 라디오 라이브러리와 파이프라인 구성 메타데이터를 토대로 사용자 정의 기능 블록과 표준 기능 블록을 링킹한 기능 블록 실행 코드를 생성할 수 있다.
한편, 컴파일 단계(S1422) 전에 소스 코드 형태를 갖는 구성코드가 암호화되어 있다면, 해당 구성코드를 사용자 단말의 복호화기를 통해 복호화한 후 컴파일할 수 있다.
저장 단계(S1423)는 사용자 단말의 인스톨러에 의해 라디오 어플리케이션 패키지에 포함된 파이프라인 구성 메타데이터, 사용자 정의 기능 블록을 포함한 기능 블록의 실행 코드, 라디오 컨트롤러 실행 코드 등을 저장부에 저장한다. 이때, 인스톨러는 기능 블록 실행 코드, 라디오 컨트롤러 실행 코드 및 미리 정의된 표준 베이스밴드 인터페이스에 기초하여 작성된 표준적인 명령어가 명시된 표준 기능 블록들을 파이프라인 구성 메타데이터를 참조하여 사용자 단말의 저장부에 설치할 수 있다.
다음, 라디어 어플리케이션 실행 단계(S1430)는, 실행 명령 수신 단계(S1431) 및 실행 코드 로딩 단계(S1432)를 포함한다.
실행 명령 수신 단계(S1431)는 사용자 단말의 사용자 어플리케이션, 사용자 인터페이스, 네트워크 상에서 사용자 단말에 접근 가능한 다른 사용자 단말 등으로부터 라디오 어플리케이션의 실행 명령을 수신할 수 있다. 실행 명령은 사용자 단말을 라디오 재구성하기 위하여 사용자 단말의 저장부에 설치된 특정 소프트웨어 정의 라디오 어플리케이션을 실행할 수 있는 모든 명령을 포함한다.
실행 코드 로딩 단계(S1432)는 실행 명령에 응하여 저장부에 저장된 사용자 정의 기능 블록 실행 코드와 라디오 컨트롤러 실행 코드를 사용자 단말에서 실행한다. 실행 코드 로딩 단계(S1432)에서 사용자 정의 기능 블록 실행 코드는 사용자 단말의 라디오 컴퓨터에 직접 로딩되고, 라디오 컨트롤러 실행 코드는 사용자 단말의 어플리케이션 프로세서에 직접 로딩될 수 있다. 이때, 라디오 컴퓨터 상의 로더는 사용자 정의 기능 블록 실행 코드를 사용자 단말의 라디오 라이브러리 내의 표준 기능 블록 실행 코드와 실시간 링킹하고 링킹된 표준 및 사용자 정의 기능 블록들을 라디오 컴퓨터 상에서 실행할 수 있다.
다시 말해서, 라디오 어플리케이션 패키지(Radio Application Package)가 모바일 장치에 다운로드된 후, 라디오 어플리케이션 패키지(Radio Application Package)의 라디오 컨트롤러(Radio Controller)는 인스톨러에 의해 모바일 장치의 저장부에 설치된다. 저장부에 설치된 라디오 컨트롤러는 라디오 컨트롤러(RC) 실행 코드 형태를 구비할 수 있다. RC 실행 코드는 상황 정보(context information)의 프로세싱과 같이 반드시 실시간 프로세싱으로 실행될 필요가 없는 동작을 위한 어플리케이션 프로세서(Application Processor) 상에 설치될 수 있다. 이는 라디오 어플리케이션(RA) 코드의 기능 블록(Functional Block)이 실시간으로 처리되어야 하기에 라디오 컴퓨터(Radio Computer) 상에 설치되어야 하는 점과 다르다.
전술한 라디오 어플리케이션 실행 단계(S1430)에서는 저장부에 설치된 라디오 어플리케이션이 실제 사용자 단말에서 동작하는 단계로서, 라디오 신호 처리를 하기 위한 라디오 어플리케이션의 대응되는 구성요소들이 어플리케이션 프로세서 또는 라디오 컴퓨터에 로딩되어 실제적인 무선 통신 기능을 수행할 수 있다.
예를 들면, 사용자 단말에 설치된 라디오 어플리케이션의 실행 명령을 수신하는 경우, 로더는 파이프라인 구성 메타데이터를 참조하여 어플리케이션 수행에 필요한 기능 블록들이 무엇인지 판단할 수 있다. 이에 기초하여 라디오 컨트롤러 실행 코드와 기능 블록(function block) 실행 코드가 저장부로부터 사용자 단말의 대응 영역에 로딩된다. 또한, 로더는 라디오 컨트롤러 코드를 어플리케이션 프로세서 또는 라디오 컴퓨터에 로드하고(라디오 컨트롤 프레임워크의 동작 계층에 따라서 라디오 컨트롤러 코드가 어느 특정 영역에 로드될지가 결정될 수 있다), 파이프라인 구성 메타데이터를 참조하여 사용자 정의 기능 블록과 표준 기능 블록을 라디오 컴퓨터에 로드할 수 있다.
라디오 라이브러리는 표준 기능 블록들의 집합으로 라디오 컴퓨터 또는 어플리케이션 프로세서에 존재한다. 사용자 단말의 표준 기능 블록 풀에는 전용의 하드웨어를 이용하여 구현된 표준 기능 블록들과 라디오 컴퓨터에서 실행되는 표준 기능 블록들이 존재할 수 있다. 표준 기능 블록 풀은 설치 단계에서 인스톨러가 파이프라인 구성 메타 데이터를 참조하여 라디오 어플리케이션을 설치하는 과정에서, 해당 라디오 어플리케이션이 사용하는 표준 기능 블록들을 선택하여 저장부에 설치하기 위해서 사용될 수 있다. 또한, 표준 기능 블록 풀은 라디오 어플리케이션의 실행 단계에서 로더가 해당 라디오 어플리케이션이 사용하는 표준 기능 블록들을 선택하여 라디오 컴퓨터 상에 로드하는데 사용될 수 있다.
멀티 라디오 어플리케이션을 위한 라디오 가상 머신
도 15는 본 발명의 일실시예에 따른 라디오 가상 머신을 이용한 소프트웨어 재인증 프로세스를 설명하기 위한 개념도이다.
본 실시예에 따른 라디오 가상 머신(RVM, Radio Virtual Machine)은 모바일 장치의 라디오 특성에 영향을 미치는 소프트웨어를 위한 제어된 실행 환경이다. 이는 재구성 소프트웨어, 즉 라디오 어플리케이션들이 라디오 가상 머신에 로드되는 상황을 가정한다.
도 15를 참조하면, 모바일 장치의 라디오 장비 아키텍처는 RF 송수신기 체인(RF Transceiver chain), 아날로그 디지털 컨버터(Analog-to-Digital converters, ADC), 디지털 아날로그 컨버터(Digital-to-Analog converters, DAC), 베이스밴드 처리부(Base Band Processing) 등을 포함할 수 있다.
ADC 및 DAC는 라디오 가상 머신(RVM)과 베이스밴드 전송매체를 포함하는 모뎀(1210)과 RF 송수신기 체인/RF 프론트-엔드(Front-End) 사이를 연결한다. 라디오 가상 머신은 베이스밴드 전송매체를 통해 모바일 장치(사용자 단말)의 어플리케이션 프로세서(110)와 연결된다. 베이스밴드 전송매체는 ASIC 타입의 베이스밴드 구현 하드 와이어(Hard-wired of BaseBand Implementation)를 포함할 수 있다. 그리고 어플리케이션 프로세서는 MAC(Medai Access Control)(Layer 2) 및 고수준 레이어 처리부를 포함할 수 있다.
라디오 가상 머신은 라디오 어플리케이션이, RF(Radio Frequency) 프론트 엔드에 대한 프로텍션 클래스(protection classes)뿐만 아니라 라디오 가상 머신에서 실행되는 코드에 대하여 여러 가용한 프로텍션 클래스(protection classes)들 중 하나를 선택할 수 있도록 한다. 즉, 라디오 가상 머신은 RF 송수신기 체인, 특히 RF 및 RVM 프로텍션 클래스의 선택을 제어한다.
선택된 RF와 라디오 가상 머신의 프로텍션 클래스의 결합에 기반하여 요구되는 소프트웨어 재구성 라디오 플랫폼의 인증(certification) 또는 재인증(re-certification) 프로세스가 수행될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (18)

  1. 라디오 어플리케이션 패키지를 이용하여 라디오 어플리케이션을 사용자 단말에 설치하기 위한 라디오 어플리케이션 배포 방법으로서,
    어플리케이션 프로세서 컴파일러에 의해 컴파일된 라디오 컨트롤러 코드, 및 사용자 정의 기능 블록 코드를 포함하는 라디오 어플리케이션 패키지를 생성하는 단계; 및
    라디오 어플리케이션 패키지를 서버에 업로드하는 단계를 포함하며,
    상기 라디오 컨트롤러 코드는 상기 사용자 단말의 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행 코드 형태이며, 상기 사용자 단말에 설치되는 통합 라디오 어플리케이션의 상황 정보를 상기 사용자 단말의 사용자 어플리케이션에 제공하거나, 상기 어플리케이션 프로세서에 위치하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하는 라디오 컨트롤러를 정의하는, 라디오 어플리케이션 배포 방법.
  2. 청구항 1에 있어서,
    사용자 정의 기능 블록 코드는 상기 어플리케이션 프로세서 또는 상기 라디오 컴퓨터에 의해 실행되는 실행 코드 형태, 또는 상기 어플리케이션 프로세서 또는 상기 라디오 컴퓨터에 의해 실행되는 실행코드로 컴파일 가능한 소스 코드 형태 또는 중간 표현(IR: intermediate Representation) 형태로 상기 라디오 어플리케이션 패키지에 포함되는, 라디오 어플리케이션 배포 방법.
  3. 청구항 2에 있어서,
    상기 실행 코드 형태를 구비하는 경우, 상기 라디오 어플리케이션 패키지는 표준 기능 블록 코드를 더 포함하고,
    상기 표준 기능 블록 코드와 상기 사용자 정의 기능 블록 코드를 포함하는 라디오 어플리케이션 코드는 하나 이상의 컴파일러들에 의해 컴파일되어 상기 라디오 어플리케이션 패키지에 포함되는, 라디오 어플리케이션 배포 방법.
  4. 청구항 2에 있어서,
    상기 라디오 어플리케이션 패키지가 상기 소스 코드 형태를 구비하는 경우, 상기 사용자 정의 기능 블록은 프론트 엔드 컴파일러에 의해 컴파일되어 상기 라디오 어플리케이션 패키지에 포함되는, 라디오 어플리케이션 배포 방법.
  5. 청구항 2에 있어서,
    상기 소스 코드 형태 또는 상기 중간 표현 형태를 구비하는 경우, 상기 라디오 어플리케이션 패키지는 라디오 어플리케이션의 파이프라인을 구성하기 위한 파이프라인 구성 메타데이터를 더 포함하며,
    상기 파이프라인 구성 메타데이터는 상기 라디오 어플리케이션의 데이터 송신 또는 수신 기능을 위한 상기 라디오 컨트롤러 코드, 상기 사용자 정의 기능 블록 코드 및 표준 기능 블록 코드 간의 연결 관계를 정의하는, 라디오 어플리케이션 배포 방법.
  6. 라디오 어플리케이션 패키지를 이용하여 사용자 단말에 라디오 어플리케이션을 설치하는 방법으로서,
    라디오 어플리케이션 제공자 측의 어플리케이션 프로세서 컴파일러에 의해 컴파일된 라디오 컨트롤러 코드, 및 사용자 정의 기능 블록 코드를 포함하는 라디오 어플리케이션 패키지를 서버로부터 다운로드하는 단계; 및
    상기 라디오 어플리케이션 패키지를 상기 사용자 단말에 설치하는 단계를 포함하고,
    상기 라디오 컨트롤러 코드는 상기 사용자 단말의 어플리케이션 프로세서 또는 라디오 컴퓨터에 의해 실행되는 실행 코드 형태이고, 상기 어플리케이션 프로세서 또는 상기 라디오 컴퓨터에 의해 실행되어 상기 사용자 단말에 설치되는 통합 라디오 어플리케이션의 상황 정보를 상기 사용자 단말의 사용자 어플리케이션에 제공하거나 상기 어플리케이션 프로세서에 위치하는 통신 서비스 계층의 네트워킹 스택과 데이터를 송수신하기 위한 라디오 컨트롤러를 정의하는, 라디오 어플리케이션 설치 방법.
  7. 청구항 6에 있어서,
    상기 사용자 정의 기능 블록 코드는 상기 어플리케이션 프로세서 또는 상기 라디오 컴퓨터에 의해 실행되는 실행 코드 형태, 또는 상기 어플리케이션 프로세서 또는 상기 라디오 컴퓨터에 의해 실행되는 실행코드로 컴파일 가능한 소스 코드 형태 또는 중간 표현(IR: intermediate Representation) 형태로 상기 라디오 어플리케이션 패키지에 포함되는, 라디오 어플리케이션 설치 방법.
  8. 청구항 7에 있어서,
    상기 실행 코드 형태를 구비하는 경우, 상기 라디오 어플리케이션 패키지는 표준 기능 블록 코드를 더 포함하고,
    상기 표준 기능 블록 코드와 상기 사용자 정의 기능 블록 코드를 포함하는 구성코드는 상기 라디오 어플리케이션 패키지에 포함된 라디오 컨트롤러 또는 라디오 컨트롤러 실행 코드와 함께 상기 사용자 단말의 인스톨러에 의해 상기 사용자 단말의 저장부에 설치되는, 라디오 어플리케이션 설치 방법.
  9. 청구항 7에 있어서,
    상기 라디오 어플리케이션 패키지가 상기 소스 코드 형태를 구비하는 경우, 상기 사용자 정의 기능 블록 코드를 포함하는 구성코드는 상기 라디오 어플리케이션 패키지의 파이프라인 구성 메타데이터와 함께 상기 사용자 단말 또는 상기 사용자 단말에 연결되는 클라우드의 컴파일러에 의해 컴파일되어 실행코드로 생성되고,
    상기 실행코드는 상기 라디오 어플리케이션 패키지의 라디오 컨트롤러와 함께 상기 사용자 단말의 인스톨러에 의해 상기 사용자 단말의 저장부에 설치되는, 라디오 어플리케이션 설치 방법.
  10. 청구항 9에 있어서,
    상기 컴파일러는 상기 파이프라인 구성 메타데이터를 참조하여 상기 구성코드의 상기 사용자 정의 기능 블록 코드를 컴파일할 때 상기 사용자 단말의 라디오 라이브러리 내의 표준 기능 블록 코드를 함께 컴파일하여 상기 실행코드를 생성하는, 라디오 어플리케이션 설치 방법.
  11. 청구항 10에 있어서,
    상기 라디오 어플리케이션을 상기 사용자 단말에 설치하는 단계 전에, 상기 사용자 단말 또는 상기 사용자 단말에 연결되는 클라우드의 복호화기를 통해 상기 구성코드를 복호화하여 상기 컴파일러에 제공하는 단계를 더 포함하는, 라디오 어플리케이션 설치 방법.
  12. 청구항 9에 있어서,
    상기 라디오 어플리케이션 패키지가 상기 중간 표현 형태를 구비하는 경우, 상기 사용자 정의 기능 블록 코드를 포함하는 구성코드는 상기 라디오 어플리케이션 패키지의 파이프라인 구성 메타데이터와 함께 상기 사용자 단말의 백엔드 컴파일러 또는 상기 사용자 단말에 연결되는 클라우드의 백엔드 컴파일러에 의해 컴파일되어 실행코드로 생성되고,
    상기 실행코드는 상기 라디오 어플리케이션 패키지의 라디오 컨트롤러와 함께 상기 사용자 단말의 인스톨러에 의해 상기 사용자 단말의 저장부에 설치되는, 라디오 어플리케이션 설치 방법.
  13. 청구항 12에 있어서,
    상기 컴파일러는 상기 파이프라인 구성 메타데이터를 참조하여 상기 구성코드의 상기 사용자 정의 기능 블록 코드를 컴파일할 때 상기 사용자 단말의 라디오 라이브러리 내의 표준 기능 블록 코드를 함께 컴파일하여 상기 실행코드를 생성하는, 라디오 어플리케이션 설치 방법.
  14. 어플리케이션 프로세서와 라디오 컴퓨터를 구비하는 사용자 단말에서 저장부에 설치된 라디오 어플리케이션을 실행하는 방법에 있어서,
    상기 라디오 어플리케이션에 대한 실행 명령을 수신하는 단계;
    상기 실행 명령에 응하여 상기 어플리케이션 프로세서의 제1 운영체제에서 동작하는 제1 로더가 상기 사용자 단말의 저장부에 설치된 라디오 컨트롤러 실행 코드를 상기 어플리케이션 프로세서 상에서 실행하는 단계; 및
    상기 실행 명령에 응하여 상기 라디오 컴퓨터의 라디오 운영체제에서 동작하는 제2 로더가 상기 저장부에 설치된 기능 블록 실행 코드를 상기 라디오 컴퓨터 상에서 실행하는 단계를 포함하는, 라디오 어플리케이션 실행 방법.
  15. 청구항 14에 있어서,
    상기 제1 로더 및 상기 제2 로더 중 어느 하나 또는 둘 모두는 상기 저장부에 설치된 라디오 어플리케이션의 파이프라인 구성 메타데이터를 참조하며,
    상기 파이프라인 구성 메타데이터는 상기 라디오 어플리케이션의 데이터 송신 또는 수신 기능을 위하여 상기 라디오 컨트롤러 실행 코드와 상기 기능 블록 실행 코드 간의 연결 관계를 정의하는, 라디오 어플리케이션 실행 방법.
  16. 청구항 14에 있어서,
    상기 기능 블록 실행 코드는,
    상기 라디오 컴퓨터에 포함된 전용 하드웨어 가속기의 기능 블록을 호출하는 코드이거나, 상기 사용자 단말의 라디오 컴퓨터상에서 동작하는 실행코드인 표준 기능 블록 실행 코드; 및
    상기 표준 기능 블록 실행 코드로 제공되지 않거나 상기 표준 기능 블록 실행 코드가 제공하는 기능을 커스터마이징한 사용자 정의 기능 블록 실행 코드를 포함하는, 라디오 어플리케이션 실행 방법.
  17. 청구항 14에 있어서,
    상기 라디오 어플리케이션 패키지가 상기 사용자 단말에서 실행 가능한 실행 코드 형태일 때, 상기 제2 로더는 상기 저장부에 저장된 라디오 라이브러리를 상기 기능 블록 실행 코드와 함께 상기 라디오 컴퓨터의 라디오 운영체제 상에서 실행하는, 라디오 어플리케이션 실행 방법.
  18. 청구항 14에 있어서,
    상기 라디오 어플리케이션 패키지가 소스 코드 형태 또는 중간 표현 형태일 때, 상기 제2 로더는 상기 사용자 단말의 라디오 라이브러리 안에 있는 표준 기능 블록 실행 코드를 상기 기능 블록 실행 코드의 사용자 정의 기능 블록 실행 코드와 링킹하여 상기 라디오 컴퓨터의 라디오 운영체제 상에서 실행하는, 라디오 어플리케이션 실행 방법.
PCT/KR2015/004355 2014-05-02 2015-04-29 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법 WO2015167264A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/308,226 US10228927B2 (en) 2014-05-02 2015-04-29 Method for distributing, installing, and executing software-defined radio application

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2014-0053688 2014-05-02
KR20140053688 2014-05-02
KR10-2014-0129597 2014-09-26
KR20140129597 2014-09-26

Publications (1)

Publication Number Publication Date
WO2015167264A1 true WO2015167264A1 (ko) 2015-11-05

Family

ID=54358905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/004355 WO2015167264A1 (ko) 2014-05-02 2015-04-29 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법

Country Status (3)

Country Link
US (1) US10228927B2 (ko)
KR (1) KR101701037B1 (ko)
WO (1) WO2015167264A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021054703A1 (ko) * 2019-09-16 2021-03-25 한양대학교 산학협력단 복수의 라디오 컴퓨터를 가진 재구성 가능한 라디오 장치에서 통합 라디오 어플리케이션의 분산 설치 방법
WO2021054704A1 (ko) * 2019-09-16 2021-03-25 한양대학교 산학협력단 복수의 라디오 컴퓨터들을 구비한 재구성 가능한 라디오 장치에서 기능 블록들 간의 통신 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170191833A1 (en) * 2015-12-31 2017-07-06 Fogo Digital Inc. Orienteering Tool Integrated with Flashlight
KR101945941B1 (ko) * 2016-02-12 2019-02-12 주식회사 네오세스텍 라디오 어플리케이션을 실행하는 방법 및 단말 장치
US9971610B2 (en) * 2016-06-20 2018-05-15 Telefonaktiebolaget Lm Ericsson (Publ) Distributed application execution based on device-specific support for platform-independent device functions
EP3643086B1 (en) * 2017-06-23 2023-12-13 Apple Inc. Systems and methods for delivering radio applications to reconfigurable radio equipment
US10445119B2 (en) * 2017-06-30 2019-10-15 Intel Corporation Software reconfigurable mobile devices and methods
US11586427B2 (en) * 2017-07-21 2023-02-21 Apple Inc. Multiradio interface for software reconfiguration
CN108170477B (zh) * 2017-11-17 2020-12-15 上海微波技术研究所(中国电子科技集团公司第五十研究所) Sca软件无线电台中自动生产配置文件的方法
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
CN110633089B (zh) * 2019-10-25 2023-04-25 RealMe重庆移动通信有限公司 一种应用安装方法、终端及存储介质
EP4070171A1 (en) 2019-12-05 2022-10-12 Anlotek Limited Use of stable tunable active feedback analog filters in frequency synthesis
CN111078278B (zh) * 2019-12-21 2020-09-08 众能联合数字技术有限公司 支持Flutter及iOS混编工程的自动化打包方法
KR20220130664A (ko) * 2020-01-17 2022-09-27 인텔 코포레이션 무선 인터페이스 엔진들 및 무선 가상 머신들을 포함하는 재구성가능한 무선 시스템들
EP3890189A1 (en) 2020-03-30 2021-10-06 Anlotek Limited Active feedback analog filters with coupled resonators
US11502715B2 (en) * 2020-04-29 2022-11-15 Eagle Technology, Llc Radio frequency (RF) system including programmable processing circuit performing block coding computations and related methods
EP3926828A1 (en) 2020-06-15 2021-12-22 Anlotek Limited Tunable bandpass filter with high stability and orthogonal tuning
EP4054076A1 (en) 2021-02-27 2022-09-07 Anlotek Limited Active multi-pole filter

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120089653A (ko) * 2009-08-18 2012-08-13 콸콤 인코포레이티드 무선 통신 디바이스에서 애플리케이션들을 라디오들에 매핑하기 위한 방법 및 장치
KR20130004927A (ko) * 2010-04-01 2013-01-14 콸콤 인코포레이티드 무선 디바이스에 의한 프랙셔널 시스템 선택을 수행하기 위한 방법 및 장치
KR20130073374A (ko) * 2011-12-23 2013-07-03 삼성전자주식회사 응용 프로그램의 분산형 컴파일 시스템, 장치 및 방법
KR20130116037A (ko) * 2012-04-12 2013-10-22 한양대학교 산학협력단 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7659819B2 (en) * 2005-04-21 2010-02-09 Skyetek, Inc. RFID reader operating system and associated architecture
US20090210631A1 (en) * 2006-09-22 2009-08-20 Bea Systems, Inc. Mobile application cache system
US8266577B2 (en) * 2008-09-09 2012-09-11 Sensormatic Electronics, LLC RFID enhanced operating system (EOS) framework
US8983639B2 (en) * 2008-12-14 2015-03-17 Apple Inc. Techniques for facilitating interoperation between a host device and a digital RF tuner accessory
AU2010210766A1 (en) * 2009-02-03 2011-09-15 Corning Cable Systems Llc Optical fiber-based distributed antenna systems, components, and related methods for monitoring and configuring thereof
JP2010198392A (ja) * 2009-02-25 2010-09-09 Kyocera Corp 携帯電子機器
US20100235827A1 (en) * 2009-03-10 2010-09-16 Nokia Corporation Creation of multiple radio instances
FR2957218B1 (fr) * 2010-03-04 2012-05-11 Eads Defence & Security Sys Procede d'allocation de ressources radio dans un systeme de radiocommunication
US20120096445A1 (en) * 2010-10-18 2012-04-19 Nokia Corporation Method and apparatus for providing portability of partially accelerated signal processing applications
KR101785116B1 (ko) * 2010-12-24 2017-10-17 한양대학교 산학협력단 모뎀 하드웨어에 독립적인 라디오 어플리케이션을 위한 소프트웨어 정의 라디오 단말 장치
US8855709B2 (en) * 2012-05-04 2014-10-07 Intel Mobile Communications GmbH Communication devices and methods for selecting a radio access mode
WO2015034526A1 (en) * 2013-09-08 2015-03-12 Intel Corporation Device, system and method of configuring a radio transceiver
US9354910B2 (en) * 2013-12-23 2016-05-31 Intel Corporation Method for certification of reconfigurable radio equipment when reconfiguration software developed by third party

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120089653A (ko) * 2009-08-18 2012-08-13 콸콤 인코포레이티드 무선 통신 디바이스에서 애플리케이션들을 라디오들에 매핑하기 위한 방법 및 장치
KR20130004927A (ko) * 2010-04-01 2013-01-14 콸콤 인코포레이티드 무선 디바이스에 의한 프랙셔널 시스템 선택을 수행하기 위한 방법 및 장치
KR20130073374A (ko) * 2011-12-23 2013-07-03 삼성전자주식회사 응용 프로그램의 분산형 컴파일 시스템, 장치 및 방법
KR20130116037A (ko) * 2012-04-12 2013-10-22 한양대학교 산학협력단 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FIREW SIYOUM ET AL.: "Analyzing synchronous dataflow scenarios for dynamic software- defined radio applications.", SYSTEM ON CHIP (SOC), 2011 INTERNATIONAL SYMPOSIUM, 31 October 2011 (2011-10-31), pages 14 - 21, XP032028800, ISBN: 978-1-4577-0671-4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021054703A1 (ko) * 2019-09-16 2021-03-25 한양대학교 산학협력단 복수의 라디오 컴퓨터를 가진 재구성 가능한 라디오 장치에서 통합 라디오 어플리케이션의 분산 설치 방법
WO2021054704A1 (ko) * 2019-09-16 2021-03-25 한양대학교 산학협력단 복수의 라디오 컴퓨터들을 구비한 재구성 가능한 라디오 장치에서 기능 블록들 간의 통신 방법

Also Published As

Publication number Publication date
KR20150126559A (ko) 2015-11-12
US20170147314A1 (en) 2017-05-25
US10228927B2 (en) 2019-03-12
KR101701037B1 (ko) 2017-02-13

Similar Documents

Publication Publication Date Title
WO2015167264A1 (ko) 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
WO2013154380A1 (ko) 소프트웨어 정의 라디오 어플리케이션의 동작 방법
WO2013154398A1 (ko) 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
WO2012086993A2 (ko) 소프트웨어 정의 라디오 단말 장치 및 라디오 어플리케이션의 배포 및 설치 방법
WO2016024695A1 (en) Method and apparatus for profile download of group devices
WO2019050325A1 (en) METHOD AND APPARATUS FOR SUPPORTING PROFILE TRANSFER BETWEEN DEVICES IN A WIRELESS COMMUNICATION SYSTEM
WO2013115565A2 (ko) 가상 머신 관리 방법 및 이를 위한 장치
WO2020096239A1 (ko) 작업 의존성에 기초하여 컴퓨팅 작업을 서버에 스케줄링하는 방법 및 장치
WO2016028086A1 (ko) 라디오 어플리케이션을 실행하는 방법 및 단말 장치
WO2012047050A2 (ko) 스마트안테나 소프트웨어 정의 라디오 단말 장치 및 소프트웨어 정의 라디오 단말 어플리케이션의 배포 및 설치 방법
WO2017138784A1 (ko) 라디오 어플리케이션을 실행하는 방법 및 단말 장치
WO2021054704A1 (ko) 복수의 라디오 컴퓨터들을 구비한 재구성 가능한 라디오 장치에서 기능 블록들 간의 통신 방법
WO2022080971A1 (en) Method and device for initialization between user equipment and universal integrated circuit card in wireless communication system
WO2021054705A1 (ko) 복수의 라디오 컴퓨터들을 구비한 재구성 가능한 라디오 장치에서 라디오 어플리케이션을 구성하는 기능 블록들의 동적 재구성 방법
WO2020101288A1 (en) User equipment, server, control method of the user equipment and control method of the server
WO2016171477A1 (ko) 통합 라디오 어플리케이션의 관리 방법 및 이를 이용하는 재구성 가능한 모바일 장치
WO2021054703A1 (ko) 복수의 라디오 컴퓨터를 가진 재구성 가능한 라디오 장치에서 통합 라디오 어플리케이션의 분산 설치 방법
WO2012153968A2 (ko) 소프트웨어 정의 라디오 단말 장치 및 라디오 어플리케이션의 배포 및 설치 방법
WO2014171780A1 (ko) 라디오 어플리케이션을 실행하는 단말 장치
WO2019088621A1 (ko) 네트워크 시스템, 이에 적용되는 네트워크장치 및 그 장치의 동작, 네트워크노드의 동작 방법
Jin et al. The ETSI standard architecture, related interfaces, and reconfiguration process for reconfigurable mobile devices
WO2017030353A1 (ko) 통합 라디오 어플리케이션 인터페이스를 이용하는 재구성 가능한 모바일 장치 및 그 작동 방법
WO2024072114A1 (ko) 무선 통신 시스템에서 프로파일 프로비저닝을 위한 euicc의 암호화 키 관리 방법 및 장치
WO2020101095A1 (ko) Ran 재구성 방법 및 이를 이용하는 재구성 가능한 장치
WO2024225739A1 (ko) 무선 통신 시스템에서 프로파일 프로비저닝을 위한 임시 암호화 키 관리 방법 및 장치

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: 15785653

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 15308226

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 15785653

Country of ref document: EP

Kind code of ref document: A1