CN108369501B - 实时系统中组件的空间和时间感知组织与隔离 - Google Patents
实时系统中组件的空间和时间感知组织与隔离 Download PDFInfo
- Publication number
- CN108369501B CN108369501B CN201680069400.5A CN201680069400A CN108369501B CN 108369501 B CN108369501 B CN 108369501B CN 201680069400 A CN201680069400 A CN 201680069400A CN 108369501 B CN108369501 B CN 108369501B
- Authority
- CN
- China
- Prior art keywords
- time domain
- file
- service
- source
- time
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种方法,包括:第一处理器获取第一软件架构描述文件,并通过所述第一处理器获取平台无关模型文件。该方法还包括所述第一处理器获取平台架构定义文件,以及所述第一处理器根据所述第一软件架构描述文件、所述平台无关模型文件以及所述平台架构定义文件执行第一源到源编译,产生生成的接口代码。此外,该方法包括所述第一处理器根据所述生成的接口代码生成运行时间代码,以及第二处理器实时运行所述运行时间代码。
Description
相关申请案交叉引用
本申请要求于2015年12月15日提交的第62/267,473号美国临时申请的权益,以及于2016年12月14日提交的第15/378,714号、题为“实时系统中组件的空间和时间感知组织与隔离”的美国发明专利申请的权益,这些申请在此通过引用并入本文。
技术领域
本发明一般涉及用于实时处理的系统和方法,更具体地,涉及用于组件的空间和时间感知组织与隔离(space and time aware organization and isolation ofcomponents,STOIC)的系统和方法。
背景技术
实时系统,例如基带处理系统,包括算法内核与数据管理内核,它们通过以通用语言(例如C)编写的极复杂的控制代码缝合(stitch)在一起。控制代码涉及许多复杂的情况,因而可能由于其复杂性而难于理解并难以进行更新。控制代码可以包括用于围绕数据移动的基础设施。
发明内容
根据本发明一实施例,一种方法包括:第一处理器获取第一软件架构描述文件,并通过所述第一处理器获取平台无关模型文件。该方法还包括所述第一处理器获取平台架构定义文件,并且,所述第一处理器根据所述第一软件架构描述文件、所述平台无关模型文件以及所述平台架构定义文件执行第一源到源编译,产生生成的接口代码。此外,该方法包括所述第一处理器根据所述生成的接口代码生成运行时间代码,以及第二处理器实时运行所述运行时间代码。
根据本发明的另一实施例,一种方法包括:第一处理器获取文件,所述文件包括软件模块;所述第一处理器对所述文件执行源到源编译以产生生成的内核与数据管理文件,以及与所述生成的内核与数据管理文件对应的头文件。该方法还包括所述第一处理器根据所述生成的内核与数据管理文件、头文件以及生成的接口代码来生成运行时间代码,以及第二处理器实时运行所述时间代码。
根据本发明的又一实施例,一种系统包括包含指令的第一非暂时性存储器存储部件,以及与所述第一存储器通信的一个或多个第一处理器。所述一个或多个第一处理器执行所述指令,以获取软件架构描述文件、获取平台无关模型文件,以及获取平台架构定义文件。所述指令还包括对软件架构描述文件、平台无关模型文件和平台架构定义文件执行第一源到源编译的指令,以产生生成的接口代码,并根据所述生成的接口代码生成运行时间代码。此外,该系统包括包括指令的第二非暂时性存储器存储部件,以及与所述第二存储器通信的一个或多个第二处理器,其中所述一个或多个第二处理器执行所述指令以运行所述运行时间代码。
附图说明
为了更全面地了解本发明及其优点,现结合附图参考以下描述,其中:
图1示出了一实施例实时系统架构;
图2示出了具有多个时间域的一实施例系统;
图3示出了具有多个时间域的另一实施例系统;
图4示出了在相同时间域中具有多项服务的一实施例系统;
图5示出了在相同时间域中具有多项服务的另一实施例系统;
图6示出了在多个时间域中具有多项服务的一实施例系统;
图7示出了在多个域中具有多项服务的另一实施例系统;
图8示出了执行组件的空间和时间感知组织与隔离(space andtime awareorganization and isolation ofcomponent,STOIC)的一实施例方法的流程图;
图9示出了实现具有多个时间域系统的一实施例方法的流程图;
图10示出了一实施例处理系统的实施例框图;以及
图11示出了一实施例收发机的实施例框图。
除非另外指明,否则不同附图中的相应标号和符号一般指相应的部件。该附图的绘制旨在清楚地说明实施例的相关方面,而未必按照比例绘制。
具体实施方式
首先,应当理解,尽管下文提供了一个或多个实施例的说明性实施方式,但是可以使用任何数量的技术实现所公开的系统和/或方法,不论该技术目前是否已为人所知。本公开绝不应限于下文示出的说明性实施方式、附图和技术,包括在此说明和描述的示例性设计和实施方式,但是可以在所附权利要求的范围内以及它们等同物的全部范围内进行修改。
实时系统(real-time system,RTS)是容器,它可以包括多个具有各种服务的时间域,其中服务是算法片段的集合。在一些实施例中,多个时间域在预定的时间约束下彼此进行交互,因此,RTS作为一个整体可以满足它的实时要求。在一个示例中,RTS描述有线通信处理,而在其他示例中,则可以使用无线通信,或有线通信和无线通信的组合。所述系统可以调用一组服务来执行重要意图(endeavor)。比如,信道估计过程是服务的一个例子。所述信道估计过程可以在数字信号处理器(digital signal processor,DSP)上运行,该处理器是高度专用处理器。为了利用DSP的矢量单元,以特定的形状和大小馈送数据。实时系统可以对不同时间域中运作的各种服务进行操作。时间域是以相同的时间域速率运行的系统的一部分。期望为在不同时间域中运行的服务之间提供接口。
一实施例RTS可以由不同的平台和目标来实现。RTS的实施例提供了灵活的用于生成代码和调度参数的框架,以此实现在不同时间域中对不同的服务进行操作。因此,随着技术的变化,需要在更新硬件和具体实施方式的同时维护系统组织。
一实施例RTS可以由领域专用语言(domain specific language,DSL)描述,并且可以使用自动化框架创建平台专用的较低层实施方式。定义了对应于DSL的实施例方法。DSL的一个例子包括组件的空间和时间感知组织与隔离(space and time awareorganization and isolation of component,STOIC)。在一实施例中,框架用于将实时系统描述为时间域的集合。在一个实施例中,所述实时系统为基带处理系统。实施例系统和方法通过对不同实施方式使用相同的框架提高可伸缩性。在一实施例中,通过DSL到C或到另一源级语言的源到源编译自动生成复杂的C级控制代码。DSL基础设施可包括与用于RTS设计的工具链相结合的语言。所述DSL描述了时间行为、约束和交互,这些行为、约束和交互可以通过自动化的方式描述并编译为详细地、自动正确构建的(correct-by-construction)硬件与软件架构。
在一实施例中,使用STOIC构造来暴露系统级的并行性。STOIC可以使用不变的构造。不变的值没有值,例如未明确设置,或者一直占用一个值。不变的值一经设置,就不会有使用其错误版本的风险,因为它不再改变。不变的流是完全未经设置的,或是永久设定的。不变的流成为一个半无限的不变变量。在一实施例中,相较静态数据流,STOIC以更加灵活的方式明确地定义了流中元素间的关系。
在一实施例中,STOIC采集各个模块的操作概念的速率。暴露并行性以及使用不变性的结合促进了编译器优化技术,这种技术可应用到手动编写的C代码中。
在一实施例中,所述RTS包括实时数据仓库(real-time data warehouse,rDW)。rDW涉及用于定义、访问和管理存储数据的高效存储管理。实施例rDW包括硬件、固件和软件。此外,可以使用诸如C/C++的编程语言实现rDW数据定义(rDW data definition,rDD),可以使用实时查询语言(real-time query language,rQL),例如结构化查询语言(structured query language,SQL))实现rDW查询定义(rDW query definition,rQD)。在2015年7月15日提交的题为“数据仓库和片上系统(System on Chip,SoC)的精细粒度调度的系统和方法”的第14/800,354号美国专利申请中讨论了实时数据仓库的额外细节,该申请在此通过引入全部并入本文。在2016年5月31日提交的题为“实时数据仓库的系统和方法”的第15/169,094号美国专利申请讨论了rDW的其他细节,该申请在此通过引用全部并入本文。
图1示出了用于在实时系统中生成并运行代码的自动化基础设施220。自动化基础设施220包括非运行时间环境222,其中代码在运行时间之前生成;以及运行时间环境224,其中代码在运行时间由一个或多个实时系统执行。
非运行时间环境222包括架构描述226。架构描述226包括所述平台的信息,用于所述代码的编译。架构描述226包括基带1级(L1)软件架构描述228、基带片上系统(basebandsystem-on-a-chip,BBSoC)平台无关模型230,以及BBSoC HW平台架构定义232。所述基带L1软件架构描述228对服务之间的连接性、速率匹配、所述系统在时间域的划分,以及智能存储的连接性进行描述。DSL,例如STOIC,可以用于描述基带L1软件架构描述228。同时,BBSoC平台无关模型230包括所述硬件的平台无关抽象。此外,所述BBSoC HW平台架构定义232包括所述硬件的平台相关细节。STOIC源到源(source-to-source,Src-to-Src)编译器使用架构描述226生成接口代码。
非运行时间环境222还包括用于算法计算和数据管理的基带L1软件模块。在一实施例中,所述用于算法计算和数据管理的基带L1软件模块使用DSL,例如CW和/或rQL。模块级Src-to-Src编译器234在用于算法计算和数据管理的基带L1软件L1模块236上执行编译。模块级Src-to-Src编译器234生成对应于生成的内核与数据管理的报头240、以及生成的内核与数据管理248。对应于生成的内核与数据管理的报头240,例如.h文件,为模块和计算函数调用提供接口。生成的内核与数据管理248包括C和固有(intrinsic)代码段。
STOIC Src-to-Src编译器242在架构细节226和对应于生成的内核与数据管理的报头240上执行源到源编译。STOIC Src-to-Src编译器242将实时系统缝合在一起。然后,STOIC Src-to-Src编译器242产生所生成的接口代码246。生成的接口代码246的语言可以是C或其他编程语言,例如另一种通用编程语言。
在非运行时间系统222中,DSP/CPU/rDW工具链238为运行时间系统224的所有方面生成机器可执行的二进制代码。DSP/CPU/rDW工具链238基于生成的接口代码246、对应于生成的内核和数据管理的报头240、生成的内核与数据管理248,以及包括预定义库和应用程序接口(application programming interface,API)的API和库256,生成代码。之后,在运行时间环境224中实时地使用所述生成的代码。
运行时间环境224包括计算模块250和数据重组与管理254,它们在运行时间环境244中经由消息/进程间通信(inter-process communication,IPC)/远程过程调用(remoteprocedure call,RPC)252进行通信。计算模块250包括诸如DSP、CPU和HAC的硬件。数据重组和管理模块254是分布式智能存储部件,并且可以包括StoresQueries.bin、一个或多个二进制文件以及诸如CPU和/或rDW引擎的硬件。所述二进制文件是存储在存储器中的可执行文件,可以在计算引擎250上运行。
实施例RTS使得能够使用多个时间域执行多项服务。在一些实施例中,所述RTS允许一个或多个智能存储部件使用多个时间域进行通信。在另外的实施例中,多个时间域在预定义的时间约束下彼此交互,因此,所述RTS作为一个整体可以满足它的实时要求。而且,实施例RTS使用DSL基础设施,其中所述DSL描述了时间行为、约束和交互,这些行为、约束和交互通过自动化的方式被描述并编译为详细地、自动正确构建的(correct-by-construction)硬件与软件架构。一实施例DSL为STOIC,它可以与编译器一起使用。STOIC可以包括对以下的定义:时间域、时间域内的服务(包括对服务底层数据流的表示)、服务和时间域之间的时间关系、服务和时间域之间的接口,时间域内服务的分层组合,以及所述RTS内时间域的分层组合。
在一实施例中,STOIC将以不同语言编写的服务(诸如rQL、CW/CM、C)、支持查询和更新、通用计算,以及类C数据结构缝合在一起。可以使用比表格更复杂的数据结构。在一实施例中,STOIC以传统DSL风格编写,其中简单的语言调用复杂的和领域特定的功能。可以在STOIC中内置并发性(concurrency),类似于硬件描述语言或SystemC。在一实施例中,将STOIC编译为由通用处理器执行的C代码。在另一实施例中,将STOIC代码编译用于集成专用处理器上。STOIC使得所述RTS系统能够在多个时间域中运行多项服务。在一实施例中,将STOIC代码编译为硬件描述语言。
图2示出了具有多个时间域110的RTS100。每个时间域110以明确定义的速率运行,并包括一组服务或无状态进程。服务是将每个请求视为无关于先前请求的独立业务的进程。描绘了三个时间域110,但是可以使用任何数量的时间域110。时间域包括以特定时间域速率运行的一项或多项服务。在时间域中,输入数据流和输出数据流以时间域速率运行。时间域110包括一系列触发所述时间域110的整数倍基本域速率的作业(job)。时间域可以包括多项服务,例如服务112、114和116,并且服务可以包括多个子服务。例如,服务116包括子服务118、120和122。在一个实施例中,时间域110是无状态的。或者,时间域110不是无状态的。
在一实施例时间域110中,在已知时间段内仅发生一次触发,与时间域速率相反。在这段时间内的触发可以是所述服务正常运行的条件,但在触发的瞬间可能会有一些变化。在一些实施例中,一个时间域110中的所有服务的所有输入和输出也以时间域速率的整数倍进行操作。当RTS(如RTS100)包括多个时间域110时,不同的时间域110可以使用不同的时间域速率。所述时间域速率表示域的运行速度或频率,但可以用于描述支配域的操作速率的其他因素。不同时间域110的时间域速率之间的速率关系是两个时间域110的时间域速率间的乘法因子。当两个时间域110的速率以整数乘法因子相关时,该两个时间域110是整数倍速率相关的。在一实施例中,两个整数倍速率相关的时间域110具有成员关系。在成员关系里,一个时间域中的每个服务也是另一个时间域的成员。或者,两个整数倍速率相关的时间域110不具有成员关系。RTS100中的所有时间域110是速率相关的,但不一定是整数倍速率相关。在一些实施例中,与其他时间域110非整数倍相关的时间域110的数量受限于适应异步输入和定时器。
当一个时间域110中的服务从另一时间域110中的服务接收输入和/或将输出发送给另一时间域110中的服务时,两个时间域110通过时间域(temporal domain,TD)接口108进行通信。时间域110中的输入和输出可以是数据流或半静态数据,包括可通过消息传递来实现的非周期性数据。TD接口108协调时间域110之间以及时间域110与rDW104之间的交互。时间域110并行运行。并且,TD接口108控制一项或多项服务操作的速率。
时间域110通过不变的集合流,独立于TD接口108地接收输入数据并发送输出数据。在一实施例中,服务112、114和116为事件驱动,并且对于特定的服务,以类似于对以相同数据速率发送的无限流的处理方式,处理一些输入数据和输出数据。TD接口108提供统一的数据流和控制。此外,TD接口108可以用硬件、软件或硬件与软件的组合来实现。在一个实施例中,共享存储器出现在TD接口108中。
在所描绘的实施例中,RTS100使用一个rDW104来进行数据管理。在其他实施例中,RTS100不使用rDW,而且可以使用另一个外部存储部件。在另外的实施例中,RTS100包括多个rDW104。rDW104包括存储部件106。此外,rDW104从rQL描述102处接收查询更新。在一实施例中,所述服务不包括存储,并且数据存储在rDW104中。或者,至少一些服务包括存储。
在一实施例中,多项服务在独立的时间域内运行,这增强了对所述RTS系统中的服务的优化。在较高的层次,服务可以是长期演进(longterm evolution,LTE)信道,或是通用移动通信系统(universal mobile telecommunications system,UMTS)信道。在中等层次,服务可以执行信道估计,其可以支持更高级的服务。更具体地说,服务可以向实时系统提供不同的功能,例如多输入多输出(multiple-input multiple-output,MIMO)处理。长期演进(LTE)的一些附加服务的例子包括物理信道处理,如物理下行控制信道(physicaldownlink control channel,PDCCH)处理或物理上行共享信道(physical uplink sharedchannel,PUSCH)处理、解调参考信号(demodulation reference signal,DMRS)处理,或探测参考信号(sounding reference signal,SRS)处理。服务的部分也可能是服务。例如,信道估计或对特定参考符号的处理可以是服务,也可以是PUSCH服务的一部分。可以基于对RTS的组织对服务进行划分。较高级服务(如信道)是由算法服务组成的。这些服务可以包括在同一时间动态实例化的多项服务、对所述服务参数化的支持、由所述系统外部的服务质量(quality of service,QoS)需求驱动的服务、对分层结构的支持、包括其他服务的服务,以及对描述服务间的依赖关系的支持。
图3示出了RTS130,描述了多个时间域,包括分层嵌套的时间域。时间域138包括时间域132和时间域134。在一个实施例中,时间域132创建以该时间域的速率产生数据的流。当该流进入时间域134时,速率转换器对所述流的速率进行速率匹配,以使它与时间域134的速率相匹配。当时间域132产生的输出流进入时间域136时,所述流经历两次速率匹配。首先,所述流从时间域132转换到时间域138时经历一次速率匹配。然后,所述流将输出流的速率从时间域138匹配到时间域136。RTS 130定义构建的规则,并且所述编译器可以了解当流跨时间域时如何确定速率匹配的需要。
当时间域134的所有服务也都在时间域132中,但并非时间域132中的所有服务都在时间域134中时,时间域132是时间域134的成员。
服务可以遵循实时系统的限制,例如数据流组件和/或服务的资源要求。所述资源需求可包括需要实例化哪些依赖关系。在一实施例中,所述资源要求包括QoS要求是否来自北向接口,所述北向接口用于与更高层的协议栈进行通信。在无线环境中,例如使用OpenStack的无线环境,可以对两个信道进行实例化,并向配置管理器通知所述信道的QoS要求。
可以使用不同的工具来执行RTS。这些工具包括源到源工具以及源到二进制工具。在一实施例中,STOIC代码编译产生用于工作量分配引擎的输入、配置或表格,所述工作量分配引擎将工作量划分给处理器或处理器集群。对于特定目标平台的给定平台特性,STOIC编译器生成数据整形要求,编译后的STOIC代码必须满足这些要求才能有效执行。在一实施例中,STOIC系统包括rQL编译器或另一编译器。在一实施例中,所述STOIC语言与工作量分配引擎进行交互,并可以具有诸如远近概念的意识,以便于与工作量分配引擎进行交互。此外,STOIC可以定义所述语言所代表以及向慢速调度器传递的运行时间要求,而无需告知所述调度器将哪个作业放置在哪一队列中。
所述STOIC语言可以,例如通过具有严格周期性的接口,描述片上系统(system-on-a-chip,SoC)或其他级别的数据流,且其中的数据遵循先进先出(first-in-first-out,FIFO)顺序。所述STOIC语言可以,例如经由具有未定义周期性的接口,定义应用于数据流中节点和/或边缘的参数、时序约束和资源需求,并且其中数据处于半静态顺序。此外,所述STOIC语言还定义了分层结构中服务的组成,以及有关调度和映射到处理器内核的SoC级指令。
当输入或输出从一个时间域穿到另一个时间域时,实施例RTS了解到数据转换规则,用于——例如通过执行数据填充或数据抽取——防止数据的随机备份。所述数据转换规则可以使用STOIC或其他语言来指定。由于是逻辑接口,这些规则可以在语法和语义上进行扩展,或者通过另一个DSL进行扩展。在一实施例中,将不同的DSL编译成STOIC和其他语言片段。所述编译器使用数据转换定义创建控制代码以执行填充、抽取或其他功能,如其他数据转换功能。所述定义可以包括两个非整数相关的时间域之间的定义接口。
时间域或服务的输入和输出属性由数据排序属性和使用属性来表征。当执行STOIC语言时,数据集合可能有不同的排序选项,如FIFO顺序和半静态顺序。在FIFO顺序下,每个数据集合只接收或发送一次。在半静态顺序下,每个数据集合保持不变且可用,直到接收到下一个数据集合为止,而在接收到下一个数据集合时,这一数据集合将先前的数据集合重写。
输入或输出数据的到达是周期性的或非周期性的。对于周期性速率,所述输入或输出与时间域的时间域速率之间为整数倍速率相关。而另一方面,对于非周期性速率,所述输入或输出可以以连续的生成事件之间的任意间隙生成。对于非周期性速率,后续阶段的调度器可能会对生成n个数据片段的实际速率做出反应。在一实施例中,将所述数据标记为松散周期性的数据的元数据,而STOIC和相关联的工具链采集并生成元数据和数据流作为输出。在一个实施例中,虽然速率是非周期性的,但它具有有序的元数据。虽然该实施例是非周期性的,但是类似于周期性的速率。所述编译器可以基于所述元数据确定流内的有效数据的模式特征。在一实施例中,使用概率或概率分布来检查数据流的有效性。所述编译器之后可以使用这些信息来决定并建立一机制来检查实际系统中到达的数据是否有效。
时间域和服务的输入和输出可以用多种方式实现。在一个实施例中,所述时间域的输入是具有严格周期速率的FIFO顺序的流。在另一实施例中,所述时间域的输入是断断续续的、具有未定义的速率。在这两个实施例中,为了兼容性,可以使用元数据来修改所述时间域的关系。所述时间域中可能存在这样的状态:在所述时间域内的服务之间进行传递的数据存在延迟或在有限量的时间内将所述数据存储起来。在该示例中,所述时间域不是无状态的。延迟可以按照FIFO顺序存储和释放,因此所述延迟的插入不会改变所述时间域。
在一实施例中,STOIC系统满足RTS系统的要求。所述STOIC系统可以了解处理系统配置时间域的时间成本和请求优先级。在一实施例中,所述STOIC系统可以优先考虑服务以完成不同时间域中的任务,优化可用资源。
图4-7示出了实时系统的示例,例如进一步扩展图2和图3所示的实时系统。在一个示例中,这些实时系统可以使用图1所示的系统来开发。
图4示出了具有单个时间域的RTS140,其中生产商服务142和消费者服务146在相同的时间域中。在一个实施例中,生产商服务142是快速傅立叶变换(Fast FourierTransform,FFT)服务,而消费者服务146是增益控制服务。数据集合144以先进先出(FIFO)顺序沿着数据流148从生产商服务142行进到消费者服务146,其中所述流的每个条目都是无序的数据集合。在时间域的每个时刻点(tick),生产商服务142在数据流148的尾部插入数据集合144的一个无序集合或数据对象,而消费者服务146从数据流148的首部消耗一个数据集合144。生产商服务142产生数据集合144,而消费者服务146消耗数据集合144。数据集合144被视为单个实体,并且在数据流148中保持FIFO顺序。数据流属性确定数据流148中的数据集合144如何在每个时刻点后呈现在数据流148首部的详细情况。在一个实施例中,由生产商服务142插入的新数据集合144替换在数据流148首部的由数据流148呈现的数据集合144。在该实施例中,数据流148对应于同步数据流。
图5示出了在单个时间域中包括生产商服务152、生产商服务160和消费者服务158的RTS150。RTS150可用于同步数据流和更多不能表示为同步数据流的通用数据流。在一个实施例中,生产商服务152是信道估计服务,生产商服务160是用户信息服务,而消费者服务158是MIMO信道相关性计算服务。包括遵循FIFO顺序的数据集合的数据流162从生产商服务152行进到调制器154。此外,来自生产商服务160的数据流166,例如遵循FIFO顺序的用户信息,对调制器154处的数据流162进行调制,产生包括数据集合156的数据流164。由生产商服务160的调制输入引导调制器154执行流调制,产生来自生产商服务152的每个输入数据集合的新形式。数据集合156到达消费者服务158。在所述时间域的每个时刻点,生产商服务152和160分别在数据流162和166的尾部插入一个数据集合,而消费者服务158以FIFO顺序在数据流164的首部消耗一个数据集合156。
图6示出了在时间域184中具有生产商服务172和消费者服务178,以及在时间域186中具有生产商服务180的RTS170。在一个实施例中,生产商服务172是解调参考信号(demodulation reference signal,DMRS)数字自动增益控制(digital automatic gaincontrol,DAGC)服务,生产商服务180是用户信息服务,消费者服务178是信道估计服务。数据流171和175处在时间域184中,并且没有使用速率匹配。在一个示例中,时间域184每500微秒进行一次打点,例如与1毫秒LTE子帧中的每个DMRS符号对齐。在该示例中,时间域186每1000微秒进行一次打点,例如与1毫秒LTE子帧中的每个符号0对齐。数据流188在流交叉182处从时间域186跨到时间域184,产生数据流181。流交叉182意味着速率匹配,换句话说,流交叉182是从时间域186的速率到时间域184的速率的速率匹配器。在一个示例中,静态配置速率匹配,例如使用零插入、复制、插值、抽取或创建更大的集合。或者,所述速率匹配是用户定义的函数。数据流181为FIFO顺序的调制控制流,用于调制器174处的数据流171。之后在消费者服务178处接收数据流175的数据集合176。在一个实施例中,消费者服务178处的数据集合176的视图(view)包括仅由生产商服务180提供信息的用户的DMRS DACG符号的子集。
图7示出了RTS190,其中生产商服务192在时间域206中,并且生产商服务204和消费者服务202都在时间域208中。在一个实施例中,生产商服务192是用于所有用户的SRS处理与单用户波束成形权重计算服务,生产商服务204是选择的下行链路(downlink,DL)用户信息服务,而消费者服务202是用于所选DL用户的多用户波束成形权重计算服务。在该实施例中,对于1毫秒LTE子帧,时间域206每n毫秒(其中n∈[2...320])进行一次打点,与子帧中第14个符号对齐,而对于1毫秒LTE子帧,时间域208每1000微秒进行一次打点,与子帧中的符号0对齐。速率匹配器196对数据流195的数据集合194进行速率转换,将其速率转换为时间域208的速率,以产生数据流197。速率匹配器196可以是用户定义的功能,或者可以是静态配置的,例如零插入、复制、插值、抽取或创建较大的集合。流调制器198对数据流197进行调制,数据流197由来自生产商服务204的数据确定。由于数据流205已经与时间域208的速率进行速率匹配,所以不再对数据流205中的FIFO数据执行速率匹配。之后数据流201的数据集合200由消费者服务202接收。
图8示出了用于RTS中的STOIC的实施例方法260的流程图。在框264中,处理器生成用于实现时间域的代码。处理器组织时间域,所述时间域可以具有不同的速率。在一个实施例中,所述时间域是并行实现的。在另一实施例中,所述时间域是串行的,并且不同时间域中的服务(例如通过使用速率转换)彼此进行交互。一个时间域可以包括多项服务,而一个服务可以包括多个子服务。在一个实施例中,一个时间域与另一个时间域整数倍速率相关。在另一实施例中,一个时间域是另一个时间域的成员。图1所示的数据定义可以用于配置所述时间域。在一实施例中,可以为各种算法计算和数据管理代码段生成接口代码段。用于不同服务的代码段可以分开生成,例如通过使用不同的编程语言。所述代码可以由DSL编译器生成,例如STOIC编译器。所述DSL可以包括对所述时间域和所述服务的定义。C级代码可以自动生成。可以生成不同编程语言的代码用于在单个RTS中实现不同的服务。
在框268处,所述处理器对框264处生成的代码进行编译。所述代码可以是源到源编译的。在一个实施例中,由rQL编译器执行对所述编码的编译。在另一实施例中,编译所述代码产生用于工作量分配引擎的配置。所述编译器确定是否需要在时间域间的接口上进行速率匹配,并根据需要生成速率匹配器。在一个实施例中,所述编译器将两个不同时间域中的两个函数编译为具有异步、反应性接口(即函数调用或类似物)的两个独立函数。在另一实施例中,因为所述时间域之间的关系已知,因此编译器将两个函数组合为一个较大的函数。对于所述编译器,STOIC DSL输入中的流并不一定清楚地显示在所述编译器的输出中。在一实施例中,所述编译器基于关于流内模式的元数据决定不同时间域内的两个函数进行通信的机制。
在框266处,所述处理器运行在框264处生成的编译代码。在所述时间域中执行指令。多项服务可以在不同的时间域上实现。在一个实施例中,来自一个数据流的数据调制来自另一个数据流的数据。在一个实施例中,所述服务是无状态的,并且数据(例如通过使用rDW)存储在外部。在另一示例中,至少一些所述服务具有本地存储。服务接收输入数据流,并执行服务,以产生输出数据流。所述数据流具有所述服务所在时间域的基本数据速率。当移动穿过具有不同时间域速率的不同时间域时,数据流之间可能存在速率转换。
图9示出了实现具有多个时间域的系统的实施例方法270的流程图。虽然为了清楚起见将方法270中的方框按次序示出,但也可以并行执行各种操作。方法270示出了两个时间域中两个服务之间的交互,但是在其他实施例中可以有更多的服务进行交互。例如,三个、四个、五个或更多时间域中的服务可以进行交互。
在框272处,在第一时间域中以第一速率接收第一输入数据流。在一个实施例中,所述输入数据流是周期性的。在另一实施例中,所述输入数据流是非周期性的,并且通过适当的速率匹配器转换为周期性数据流。在框274处,对框272处接收的所述第一输入数据流执行第一服务。所述第一服务可以是FFT服务、信道估计服务、用户信息服务、DMRS DAGC服务、SRS服务或其他服务,比如另一个基带处理服务。在一个示例中,所述第一服务是无状态的,并且可以使用如rDW之类的外部存储部件。或者,所述第一个服务包括本地存储。所述第一服务可以每第一周期被触发一次,其中所述第一周期是所述第一数据速率的倒数。之后,在框276处,所述系统以所述第一时间域速率发送输出数据流作为所述第一服务的输出。所述输出数据流的顺序可以是FIFO顺序。在一个实施例中,所述速率匹配器将所述输出流转换为半静态顺序。
在框280处,对所述输出数据流执行速率匹配。通过使用速率匹配将所述输出数据流转换为具有第二时间域的第二速率的第二输入数据流。在一个实施例中,速率匹配是静态配置的,例如使用零插入、复制、插值、抽取或创建更大的集合。或者,所述速率匹配是用户定义的函数。
在框282处,在所述第二时间域接收框280处产生的所述第二输入数据流。接下来,在方框284处,对所述第二输入数据流执行第二服务。所述第二服务可以是信道估计服务、MIMO信道相关性计算服务、多用户波束成形权重计算服务、增益控制服务或其他服务,比如另一项基带服务。框284处执行的所述第二服务与框274处执行的所述第一服务并行执行。在一个实施例中,所述第二服务是无状态的,并且使用外部存储部件,例如rDW。或者,所述第二服务包括本地存储。所述第二个服务可以每第二周期触发一次,其中所述第二周期是所述第二时间域速率的倒数。之后,在方框286处,所述第二服务以所述第二时间域速率发送所述第二输出数据流。
在一实施例中,可以在所述第一服务和所述第二服务之间执行仲裁。
图10示出了用于执行本文所描述的方法的实施例处理系统600的框图,它可以安装在主机设备中。如图所示,处理系统600包括处理器604、存储器606和接口610-614,它们可以(或可以不)按照图10所示进行排列。处理器604可以是任何用于执行计算和/或其他处理相关任务的组件或组件的集合,而存储器606可以是任何用于存储由处理器604执行的程序和/或指令的组件或组件的集合。在一实施例中,存储器606包括非暂时性计算机可读介质。接口610、612、614可以是任何允许处理系统600与其他设备/组件和/或用户进行通信的组件或组件的集合。例如,接口610、612、614中的一个或多个可以用于将来自处理器604的数据、控制或管理消息传送给安装在主机设备和/或远程设备上的应用。作为另一个示例,接口610、612、614中的一个或多个可以用于使用户或用户设备(如个人计算机(personalcomputer,PC)等)与处理系统600进行交互/通信。处理系统600可以包括图10中未示出的额外组件,例如长期存储部件(如非易失性存储器等)。
在一些实施例中,处理系统600包含在访问电信网络或电信网络一部分的网络设备中。在一个示例中,处理系统600位于无线或有线电信网络的网络侧设备中,例如基站、中继站、调度器、控制器、网关、路由器、应用服务器,或电信网络中的任何其他设备。在其他实施例中,处理系统600位于访问无线或有线电信网络的用户侧设备中,例如移动台、用户设备(user equipment,UE)、个人计算机(personal computer,PC)、平板电脑、可穿戴通信设备(如智能手表等),或任何用于访问电信网络的其他设备。
在一些实施例中,接口610、612、614中的一个或多个将处理系统600连接到收发器,所述收发器用于通过电信网络发送和接收信令。图11示出了用于通过电信网络发送和接收信令的收发器700的框图。收发器700可以安装在主机设备中。如图所示,收发器700包括网络侧接口702、耦合器704、发射器706、接收器708、信号处理器710和设备侧接口712。网络侧接口702可以包括任何用于通过无线或有线电信网络发送或接收信令的组件或组件的集合。耦合器704可以包括任何用于促进网络侧接口702的双向通信的组件或组件集合。发送器706可以包括任何用于将基带信号转换为适于通过网络侧接口702传输的调制载波信号的组件或组件的集合(如上变频器、功率放大器等)。接收器708可以包括任何用于将通过网络侧接口702接收的载波信号转换为基带信号的组件或组件的集合(如下变频器、低噪声放大器等)。信号处理器710可以包括任何用于将基带信号转换为适于通过设备侧接口712进行通信的数据信号(反之亦然)的组件或组件集合。设备侧接口712可以包括任何用于在信号处理器710和主机设备内的组件(如处理系统600、局域网(local areanetwork,LAN)端口等)之间传送数据信号的组件或组件集合。
收发器700可以通过任何类型的通信介质发送和接收信令。在一些实施例中,收发器700通过无线介质发送和接收信令。例如,收发器700可以是用于根据无线电信协议进行通信的无线收发器,例如蜂窝协议(如长期演进(LTE)等)、无线局域网(wireless localarea network,WLAN)协议(如Wi-Fi等),或任何其他类型的无线协议(如蓝牙、近场通信(near field communication,NFC)等)。在这样的实施例中,网络侧接口702包括一个或多个天线/辐射元件。例如,网络侧接口702可以包括单个天线、多个独立的天线,或用于多层通信的多天线阵列,比如,单输入多输出(single input multiple output,SIMO)、多输入单输出(multiple input single output,MISO)、多输入多输出(multiple inputmultiple output,MIMO)等。在其它实施例中,收发器700通过有线介质发送和接收信号,例如,双绞线电缆、同轴电缆、光纤等。具体的处理系统和/或收发器可以使用所有示出的组件、或只是所述组件的子集,并且集成的程度可因设备而异。
一个实施例包括用于执行本公开的方法和处理的多个模块。具体地,该方法包括用于获取包含软件模块的文件的方法,以及用于对所述文件执行源到源编译的方法,以产生生成的内核与数据管理文件以及与所述生成的内核与数据管理文件对应的报头文件。该实施例还包括根据所述生成的内核与数据管理文件、报头文件和生成的接口代码生成运行时间代码的方法,以及用于实时运行所述运行时间代码的方法。
在一个实施例中,所述用于获取的方法被配置为获取应用程序接口(API),其中所述用于生成运行时间代码的方法根据所述API生成所述运行时间代码。此外,在一个实施例中,所述用于执行源到源编译的方法被配置为使用领域专用语言(DSL)。
本发明的其他实施例可以由下面列出的条款进行描述。
条款1、一种方法,包括:
第一处理器获取第一软件架构描述文件;
所述第一处理器获取平台无关模型文件;
所述第一处理器获取平台架构定义文件;
所述第一处理器根据所述第一软件描述文件、所述平台无关模型文件和所述平台架构定义文件执行第一源到源编译,产生生成的接口代码;
所述第一处理器根据所述生成的接口代码生成运行时间代码;以及
第二处理器实时地运行所述运行时间代码。
条款2、根据条款1所述的方法,还包括:所述第一处理器获取第二软件架构描述文件,其中执行所述第一源到源编译是根据所述第二软件架构描述文件执行,其中所述第一软件架构描述文件包括第一时间域,并且其中所述第二软件架构描述文件包括第二时间域。
条款3、根据条款1或2中任一条所述的方法,其中所述第一时间域具有第一时间域速率,第二时间域具有第二时间域速率,其中所述第一时间域速率不同于所述第二时间域速率。
条款4、根据条款1-3中任一条所述的方法,其中所述第一时间域包括第一服务,所述第二时间域包括第二服务。
条款5、根据条款1-4中任一条所述的方法,其中执行所述第一源到源编译包括在生成的接口代码中将所述第一服务和所述第二服务组合为第三服务。
条款6、根据条款1-5中任一条所述的方法,其中运行所述运行时间代码包括:
所述第一服务以所述第一时间域速率实时地接收第一输入数据流;
对所述第一输入数据流执行所述第一服务,产生第一输出数据流;
所述第一服务发送所述第一输出数据流;
对所述第一输出数据流执行速率匹配,以产生第二输入数据流,其中所述第二输入数据流具有所述第二时间域速率;以及
所述第二服务接收所述第二输入数据流。
条款7、根据条款1-6中任一条所述的方法,还包括将元数据加入所述第一输入数据流。
条款8、根据条款1-7中任一条所述的方法,其中所述第一软件架构描述文件还包括所述第一时间域的所述第一时间域速率与所述第二时间域的所述第二时间域速率之间的速率匹配。
条款9、根据条款1-8中任一条所述的方法,其中所述第一软件架构描述文件的语言是第一编程语言,而所述第二软件架构描述文件的语言是第二编程语言。
条款10、根据条款1-9中任一条所述的方法,其中所述第一时间域是所述第二时间域的成员。
条款11、根据条款1-10中任一条所述的方法,其中执行所述第一源到源编译包括确定所述第一时间域的第一输入流的有效数据的模式特征。
条款12、根据条款1-11中任一条所述的方法,还包括:
所述第一处理器获取包括软件模块的文件;以及
所述第一处理器对所述文件执行第二源到源编译,产生生成的内核与数据管理文件,以及与所述生成的内核与数据管理文件相对应的报头文件,其中执行所述第一源到源编译是根据所述报头文件来执行的。
条款13、根据条款1-12中任一条所述的方法,其中运行所述生成的接口代码还包括:所述第二处理器使用大容量存储器执行消息。
条款14、根据条款1-13中任一条所述的方法,其中所述平台无关模型文件用于基带片上系统BBSoC。
条款15、根据条款1-14中任一条所述的方法,其中所述第一源到源编译器是领域专用语言DSL编译器。
条款16、根据条款1-15中任一条所述的方法,其中所述生成的接口代码的语言是通用编程语言。
条款17、一种方法,包括:
第一处理器获取包括软件模块的文件;
所述第一处理器对所述文件执行源到源编译,产生生成的内核与数据管理文件,以及与所述生成的内核与数据管理文件相对应的报头文件;
所述第一处理器根据所述生成的内核与数据管理文件、所述报头文件和生成的接口代码来生成运行时间代码;以及
第二处理器实时地运行所述运行时间代码。
条款18、根据条款17所述的方法,还包括:所述第一处理器获取应用程序接口API,其中生成所述运行时间代码是进一步根据所述API执行的。
条款19、根据条款17或18中任一条所述的方法,其中执行源到源编译是使用领域专用语言DSL执行的。
虽然已参考说明性实施例对本发明进行了描述,但该描述并不意在被解释为限制意义。当本领域技术人员参阅本说明书时,该说明性实施例的各种修改和组合,以及本发明的其他实施例将会显而易见。因此,所附权利要求旨在涵盖任何这样的修改或实施例。
Claims (20)
1.一种用于实时系统RTS中组件的空间和时间感知组织与隔离STOIC的方法,其中,所述RTS包括多个具有各种服务的时间域,每个时间域包括以各自时间域速率运行的一项或多项服务,包括:
第一处理器获取第一软件架构描述文件;
所述第一处理器获取平台无关模型文件;
所述第一处理器获取平台架构定义文件;
所述第一处理器根据所述第一软件架构描述文件、所述平台无关模型文件和所述平台架构定义文件执行第一源到源编译,产生生成的接口代码;
所述第一处理器根据所述生成的接口代码生成运行时间代码;以及
第二处理器实时地运行所述运行时间代码。
2.根据权利要求1所述的方法,还包括:所述第一处理器获取第二软件架构描述文件,其中执行所述第一源到源编译是根据所述第二软件架构描述文件执行,其中所述第一软件架构描述文件包括第一时间域,并且其中所述第二软件架构描述文件包括第二时间域。
3.根据权利要求2所述的方法,其中所述第一时间域具有第一时间域速率,第二时间域具有第二时间域速率,其中所述第一时间域速率不同于所述第二时间域速率。
4.根据权利要求2或3所述的方法,其中所述第一时间域包括第一服务,所述第二时间域包括第二服务。
5.根据权利要求4所述的方法,其中执行所述第一源到源编译包括在生成的接口代码中将所述第一服务和所述第二服务组合为第三服务。
6.根据权利要求4所述的方法,其中运行所述运行时间代码包括:
所述第一服务以所述第一时间域速率实时地接收第一输入数据流;
对所述第一输入数据流执行所述第一服务,产生第一输出数据流;
所述第一服务发送所述第一输出数据流;
对所述第一输出数据流执行速率匹配,以产生第二输入数据流,其中所述第二输入数据流具有所述第二时间域速率;以及
所述第二服务接收所述第二输入数据流。
7.根据权利要求6所述的方法,还包括将元数据加入所述第一输入数据流。
8.根据权利要求3所述的方法,其中所述第一软件架构描述文件还包括所述第一时间域的所述第一时间域速率与所述第二时间域的所述第二时间域速率之间的速率匹配。
9.根据权利要求2或3所述的方法,其中所述第一软件架构描述文件的语言是第一编程语言,而所述第二软件架构描述文件的语言是第二编程语言。
10.根据权利要求2或3所述的方法,其中所述第一时间域是所述第二时间域的成员。
11.根据权利要求2或3所述的方法,其中执行所述第一源到源编译包括确定所述第一时间域的第一输入流的有效数据的模式特征。
12.根据权利要求1或2所述的方法,还包括:
所述第一处理器获取包括软件模块的文件;以及
所述第一处理器对所述文件执行第二源到源编译,产生生成的内核与数据管理文件,以及与所述生成的内核与数据管理文件相对应的报头文件,其中执行所述第一源到源编译是根据所述报头文件来执行的。
13.根据权利要求1或2所述的方法,其中运行所述运行时间代码还包括:所述第二处理器使用大容量存储器执行消息。
14.根据权利要求1或2所述的方法,其中所述平台无关模型文件用于基带片上系统BBSoC。
15.根据权利要求1或2所述的方法,其中使用领域专用语言DSL编译器执行所述第一源到源编译。
16.根据权利要求1或2所述的方法,其中所述生成的接口代码的语言是通用编程语言。
17.一种用于实时系统RTS中组件的空间和时间感知组织与隔离STOIC的方法,其中,所述RTS包括多个具有各种服务的时间域,每个时间域包括以各自时间域速率运行的一项或多项服务,包括:
第一处理器获取包括软件模块的文件;
所述第一处理器对所述文件执行源到源编译,产生生成的内核与数据管理文件,以及与所述生成的内核与数据管理文件相对应的报头文件;
所述第一处理器根据所述生成的内核与数据管理文件、所述报头文件和生成的接口代码来生成运行时间代码;以及
第二处理器实时地运行所述运行时间代码。
18.根据权利要求17所述的方法,还包括:所述第一处理器获取应用程序接口API,其中生成所述运行时间代码是进一步根据所述API执行的。
19.根据权利要求17或18所述的方法,其中执行源到源编译是使用领域专用语言DSL执行的。
20.一种用于组件的空间和时间感知组织与隔离STOIC的实时系统RTS,其中,所述RTS包括多个具有各种服务的时间域,每个时间域包括以各自时间域速率运行的一项或多项服务,所述RTS还包括:
包括指令的第一非暂时性存储器存储部件;
与第一存储器通信的一个或多个第一处理器,其中所述一个或多个第一处理器执行所述指令以:
获取软件架构描述文件;
获取平台无关模型文件;
获取平台架构定义文件;
对软件描述文件、所述平台无关模型文件和所述平台架构定义文件执行第一源到源编译,产生生成的接口代码;
根据所述生成的接口代码生成运行时间代码;以及
包括指令的第二非暂时性存储器存储部件;以及
与第二存储器通信的一个或多个第二处理器,其中所述一个或多个第二处理器执行所述指令以运行所述运行时间代码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562267473P | 2015-12-15 | 2015-12-15 | |
US62/267,473 | 2015-12-15 | ||
US15/378,714 | 2016-12-14 | ||
US15/378,714 US20170168792A1 (en) | 2015-12-15 | 2016-12-14 | Space and time aware organization and isolation of components in real time systems |
PCT/CN2016/110112 WO2017101811A1 (en) | 2015-12-15 | 2016-12-15 | Space and time aware organization and isolation of components in real time systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108369501A CN108369501A (zh) | 2018-08-03 |
CN108369501B true CN108369501B (zh) | 2021-03-23 |
Family
ID=59020019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680069400.5A Expired - Fee Related CN108369501B (zh) | 2015-12-15 | 2016-12-15 | 实时系统中组件的空间和时间感知组织与隔离 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170168792A1 (zh) |
EP (1) | EP3374859A4 (zh) |
CN (1) | CN108369501B (zh) |
WO (1) | WO2017101811A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558440B2 (en) * | 2017-02-02 | 2020-02-11 | Cisco Technology, Inc. | Tightly integrated accelerator functions |
US11216255B1 (en) * | 2017-12-30 | 2022-01-04 | ezbds, LLC | Open compiler system for the construction of safe and correct computational systems |
CN114257476B (zh) * | 2020-09-23 | 2024-01-02 | 华为技术有限公司 | 一种通信方法和通信装置 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956513A (en) * | 1997-08-07 | 1999-09-21 | Mci Communications Corporation | System and method for automated software build control |
US6066181A (en) * | 1997-12-08 | 2000-05-23 | Analysis & Technology, Inc. | Java native interface code generator |
US6526570B1 (en) * | 1999-04-23 | 2003-02-25 | Sun Microsystems, Inc. | File portability techniques |
US6286134B1 (en) * | 1999-04-23 | 2001-09-04 | Sun Microsystems, Inc. | Instruction selection in a multi-platform environment |
DE10030407B4 (de) * | 1999-07-14 | 2011-09-01 | Lg Electronics Inc. | Verfahren zur optimalen Ratenanpassung in einem Mobilkommunikationssystem |
US6698014B1 (en) * | 1999-10-14 | 2004-02-24 | Convert Systems Inc. | System for automatically converting source code from one programming language to another |
GB2364579A (en) * | 1999-11-30 | 2002-01-30 | Sgs Thomson Microelectronics | An assembler using a descriptor file that contains information descriptive of the instruction set of a target microprocessor |
US6681383B1 (en) * | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US6826178B1 (en) * | 2000-09-25 | 2004-11-30 | Siemens Information And Communication Networks, Inc. | Apparatus for performing bit sensitive parallel bus peer addressing |
US7352836B1 (en) * | 2001-08-22 | 2008-04-01 | Nortel Networks Limited | System and method of cross-clock domain rate matching |
GB0121064D0 (en) * | 2001-08-31 | 2001-10-24 | Transitive Technologies Ltd | Obtaining translation of generic code representation |
US7152229B2 (en) * | 2002-01-18 | 2006-12-19 | Symbol Technologies, Inc | Workflow code generator |
US7353502B2 (en) * | 2002-07-03 | 2008-04-01 | The Mathworks, Inc. | System and method for creation of software components |
JP2005534114A (ja) * | 2002-07-25 | 2005-11-10 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ソース間分割コンパイル |
US8656372B2 (en) * | 2002-11-20 | 2014-02-18 | Purenative Software Corporation | System for translating diverse programming languages |
US7707566B2 (en) * | 2003-06-26 | 2010-04-27 | Microsoft Corporation | Software development infrastructure |
US7272821B2 (en) * | 2003-08-25 | 2007-09-18 | Tech Mahindra Limited | System and method of universal programming language conversion |
US8051410B2 (en) * | 2003-12-15 | 2011-11-01 | Evolveware, Inc. | Apparatus for migration and conversion of software code from any source platform to any target platform |
US9009658B2 (en) * | 2004-03-15 | 2015-04-14 | Ramco Systems Limited | Component based software system |
US8392873B2 (en) * | 2005-01-26 | 2013-03-05 | Tti Inventions C Llc | Methods and apparatus for implementing model-based software solution development and integrated change management |
EP1715419A1 (en) * | 2005-04-22 | 2006-10-25 | Ubs Ag | A technique for platform-independent service modeling |
US7779286B1 (en) * | 2005-10-28 | 2010-08-17 | Altera Corporation | Design tool clock domain crossing management |
US8983823B1 (en) * | 2005-12-29 | 2015-03-17 | The Mathworks, Inc. | Verification harness for automatically generating a text-based representation of a graphical model |
US20080046872A1 (en) * | 2006-05-03 | 2008-02-21 | Cooper Greg J | Compiler using interactive design markup language |
US9128727B2 (en) * | 2006-08-09 | 2015-09-08 | Microsoft Technology Licensing, Llc | Generation of managed assemblies for networks |
US20100058198A1 (en) * | 2008-04-16 | 2010-03-04 | Modria, Inc. | Collaborative realtime planning using a model driven architecture and iterative planning tools |
US8315272B2 (en) * | 2008-09-02 | 2012-11-20 | Mobius Semiconductor, Inc. | Systems and methods for digital interface translation |
US8336036B2 (en) * | 2008-11-21 | 2012-12-18 | Korea University Industrial & Academic Collaboration Foundation | System and method for translating high programming level languages code into hardware description language code |
US8418155B2 (en) * | 2009-02-10 | 2013-04-09 | International Business Machines Corporation | Generating parallel SIMD code for an arbitrary target architecture |
US8677329B2 (en) * | 2009-06-03 | 2014-03-18 | Apple Inc. | Methods and apparatuses for a compiler server |
US20110225565A1 (en) * | 2010-03-12 | 2011-09-15 | Van Velzen Danny | Optimal incremental workflow execution allowing meta-programming |
US8631364B1 (en) * | 2010-12-26 | 2014-01-14 | VSYNC Circuits Ltd. | Constraining VLSI circuits |
US8881101B2 (en) * | 2011-05-24 | 2014-11-04 | Microsoft Corporation | Binding between a layout engine and a scripting engine |
US9171060B2 (en) * | 2013-03-15 | 2015-10-27 | Sap Se | Adjustable transformations from semantic web languages |
CA2908130C (en) * | 2013-03-27 | 2020-07-21 | Netfective Technology Sa | Method for transforming first code instructions in a first programming language into second code instructions in a second programming language |
US9858115B2 (en) * | 2013-10-30 | 2018-01-02 | Mediatek Inc. | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium |
CN104021054A (zh) * | 2014-06-11 | 2014-09-03 | 浪潮(北京)电子信息产业有限公司 | 服务器故障可视化侦测及处理方法、系统及可编程芯片 |
US9619214B2 (en) * | 2014-08-13 | 2017-04-11 | International Business Machines Corporation | Compiler optimizations for vector instructions |
CN108153549B (zh) * | 2017-12-13 | 2020-08-28 | 京微齐力(北京)科技有限公司 | 一种分布式多功能层结构的fpga芯片 |
-
2016
- 2016-12-14 US US15/378,714 patent/US20170168792A1/en not_active Abandoned
- 2016-12-15 EP EP16874868.9A patent/EP3374859A4/en not_active Withdrawn
- 2016-12-15 WO PCT/CN2016/110112 patent/WO2017101811A1/en active Application Filing
- 2016-12-15 CN CN201680069400.5A patent/CN108369501B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN108369501A (zh) | 2018-08-03 |
US20170168792A1 (en) | 2017-06-15 |
EP3374859A4 (en) | 2019-01-30 |
EP3374859A1 (en) | 2018-09-19 |
WO2017101811A1 (en) | 2017-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108369501B (zh) | 实时系统中组件的空间和时间感知组织与隔离 | |
Pelcat et al. | An open framework for rapid prototyping of signal processing applications | |
Garbugli et al. | TEMPOS: QoS management middleware for edge cloud computing FaaS in the Internet of Things | |
Azzara et al. | PyoT, a macroprogramming framework for the Internet of Things | |
Gomez et al. | ALOE: an open-source SDR execution environment with cognitive computing resource management capabilities | |
US12088451B2 (en) | Cross-platform programmable network communication | |
US20030046044A1 (en) | Method for modeling and processing asynchronous functional specification for system level architecture synthesis | |
CN109947416A (zh) | 一种软件化雷达跨平台通用并行计算库的构建方法 | |
KR101945941B1 (ko) | 라디오 어플리케이션을 실행하는 방법 및 단말 장치 | |
CN109254758B (zh) | 用于麒麟系统的软件无线电系统及其开发方法 | |
Jigorea et al. | Modelling of real-time embedded systems in an object-oriented design environment with UML | |
Bjørk et al. | Lightweight time modeling in Timed Creol | |
Iazeolla et al. | A distributed approach to wireless system simulation | |
Marojevic | Computing resource management in software-defined and cognitive radios | |
Yao et al. | System architecture and operating systems | |
Díaz et al. | A component framework for wireless sensor and actor networks | |
Gatherer et al. | Towards a Domain Specific Solution for a New Generation of Wireless Modems | |
KR102722553B1 (ko) | 복수의 ran 하드웨어 플랫폼들에 걸쳐 이식 가능한 가상 ran을 프로비저닝하기 위한 시스템 및 방법 | |
Mozumdar et al. | Porting application between wireless sensor network software platforms: TinyOS, MANTIS and ZigBee | |
Barsk | Improving timer implementations within a real-time application | |
US20220417956A1 (en) | Ai engine-supporting downlink radio resource scheduling method and apparatus | |
US20230057887A1 (en) | System and method for provisioning a portable virtual ran across a plurality of ran hardware platforms | |
Bansal | Techniques for building predictable stream processing pipelines | |
Wang | Feasibility of an automatic data flow centric design trajectory for sdr | |
Rigge | Generators for Wireless Systems Prototyping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210323 Termination date: 20211215 |