CN109154926A - 用于实现跨异构机器架构的数据兼容性的系统和方法 - Google Patents
用于实现跨异构机器架构的数据兼容性的系统和方法 Download PDFInfo
- Publication number
- CN109154926A CN109154926A CN201780029790.8A CN201780029790A CN109154926A CN 109154926 A CN109154926 A CN 109154926A CN 201780029790 A CN201780029790 A CN 201780029790A CN 109154926 A CN109154926 A CN 109154926A
- Authority
- CN
- China
- Prior art keywords
- format
- data
- equipment
- data element
- processor
- 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.)
- Withdrawn
Links
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/52—Binary to binary
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/768—Data position reversal, e.g. bit reversal, byte swapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/41—Compilation
- G06F8/44—Encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Computer Security & Cryptography (AREA)
Abstract
本发明提供了一种方法,该方法包括将数据元素从至少一个存储器(412)加载(301)到至少一个内部寄存器中。该方法还包括将数据元素从网络标准化格式转换(303)为设备本机格式。该方法还包括对数据值执行(305)操作。该方法还包括将数据元素从设备本机格式解转换(307)为网络标准化格式。另外,该方法包括将数据元素存储(309)在至少一个存储器中。
Description
技术领域
本公开整体涉及用于获得跨机器架构的数据兼容性的技术。更具体地讲,本公开涉及一种用于实现跨异构机器架构的数据兼容性的系统和方法。
背景技术
术语“字节序”是指在将数据字或消息存储在计算机存储器中时用于存储和解释构成所述数据字或消息的两个或更多个字节的约定。存储器中数据的每个字节通常都有自己的地址。当读取或写入包含多个字节的数据字时,存储在存储器中的字节的顺序决定了数据字的解释。
大端字节序系统将数据字的最高有效字节存储在最小地址中,并将数据字的最低有效字节存储在最大地址中。相反,小端字节序系统将数据字的最低有效字节存储在最小地址中,并将数据字的最高有效字节存储在最大地址中。当将数据从大端字节序设备或系统移动到小端字节序设备或系统(或者相反)时,需要将数据转换为适当的“字节序”,或者接收设备或系统需要考虑差异。
发明内容
本公开提供了一种用于实现跨异构机器架构的数据兼容性的系统和方法。
在第一实施方案中,一种方法包括将数据元素从至少一个存储器加载到至少一个内部寄存器中。该方法还包括将数据元素从网络标准化格式转换为设备本机格式。该方法还包括对数据值执行操作。该方法还包括将数据元素从设备本机格式解转换为网络标准化格式。另外,该方法包括将数据元素存储在至少一个存储器中。
在第二实施方案中,一种装置包括至少一个存储器和至少一个处理器。该至少一个存储器被配置为存储数据元素。该至少一个处理设备被配置为将数据元素从至少一个存储器加载到至少一个内部寄存器中。该至少一个处理设备还被配置为将数据元素从网络标准化格式转换为设备本机格式。该至少一个处理设备还被配置为对数据值执行操作。该至少一个处理设备还被配置为将数据元素从设备本机格式解转换为网络标准化格式。另外,该至少一个处理设备被配置为将数据元素存储在至少一个存储器中。
在第三实施方案中,非暂态计算机可读介质包含以下指令:所述指令在由至少一个处理设备执行时,使得至少一个处理设备将数据元素从至少一个存储器加载到至少一个内部寄存器中。该介质还包含以下指令:所述指令在由至少一个处理设备执行时,使得至少一个处理设备将数据元素从网络标准化格式转换为设备本机格式。该介质还包含以下指令:所述指令在由至少一个处理设备执行时,使得至少一个处理设备对数据值执行操作。该介质还包含以下指令:所述指令在由至少一个处理设备执行时,使得至少一个处理设备将数据元素从设备本机格式解转换为网络标准化格式。另外,该介质包含以下指令:所述指令在由至少一个处理设备执行时,使得至少一个处理设备将数据元素存储在至少一个存储器中。
根据以下附图、具体实施方式和权利要求,其他技术特征对于本领域技术人员而言可以是显而易见的。
附图说明
为了更完整地理解本公开,现在结合附图参考以下具体实施方式,在附图中:
图1示出了根据本公开的示例性异构系统;
图2示出了根据本公开的用于实现跨异构机器架构的数据兼容性的示例性系统;
图3示出了根据本公开的用于在异构系统中实现跨异构机架构的数据兼容性的示例性方法;并且
图4示出了根据本公开的用于实现跨异构机器架构的数据兼容性的示例性设备。
具体实施方式
下文所述的图1至图4以及用于描述本发明在本专利文献中的原理的各种实施方案仅是例示性的,不应以任何方式解释为限制本发明的范围。本领域的技术人员将理解,本发明的原理可在任何类型的适当布置的设备或系统中实现。
在现代计算机系统中,多个计算机或其他设备可以通过一个或多个通信网络连接在一起,这些通信网络使这些设备能够交换和共享数据。在计算机或其他设备的系统或网络中,可能存在由不同制造商生产或使用不同操作系统操作的各种设备。例如,一些设备可代表包括INTEL的x86处理器的通用计算机。其他设备可代表工业过程控制和自动化系统中的控制器,诸如在工业制造或处理系统(如炼油厂、化工厂或工厂)中使用的那些控制器。这类控制器可包括MOTOROLA的68000系列处理器。当混合网络中不同类型的设备交换数据时,通常需要将数据排列成与两个设备都兼容的形式。
作为一个示例,在一些系统中,某些设备可能是大端字节序,而其他设备可能是小端字节序。当具有复杂数据结构的数据消息在不同字节序架构的设备之间共享时,由于数值的字节排序存在差异,这些设备可能无法直接共享数据。例如,消息可能具有数百或数千个整数或浮点值。这种消息可在发送器处以大端字节序格式存储,而预期的接收器可被配置为解释以小端字节序格式存储的值(反之亦然)。如在本文件中所用,“消息”通常是指按顺序排列的任何类型的数据,并不一定是指任何特定的记录或结构。
作为另一示例,在一些系统中,某些设备可使用IEEE 754标准浮点格式来表示浮点值,而其他设备可使用较旧的预标准来表示浮点值。与大端字节序/小端字节序差异一样,系统中设备之间的浮点表示的差异可能导致难以在不同设备之间共享数据或数据消息。
一些系统通过以下过程来提供不同字节序架构的解决方案:获取数据消息,将其划分为各个组件,检查每个组件的当前字节序格式,并且将当前不是正确的字节序格式的每个组件转换为正确的格式。虽然这一过程适用于已知确切消息布局的模板的消息,但在某些情况下可能无法使用消息模板。而且,对于一些复杂的数据消息,模板可能很复杂并且难以维护。一种替代方法是将转换的负担放在程序员身上,该程序员必须识别程序中数据的每次使用并修改程序以处理不是正确的字节序格式的数据。这种方法可能需要大量的工程工作,并且本质上容易出错,因为它依赖于程序员正确地识别程序中每个依赖于字节序的假设。
为了解决这些和其他问题,本公开的实施方案提供了一种用于实现跨异构机架构的数据兼容性的过程,而不管数据结构如何。因此,该过程有利于在具有不同字节序架构、不同浮点表示或任何其他类似差异的设备之间共享数据结构。
图1示出了根据本公开的示例性异构系统100。如图1所示,异构系统100包括第一网络110和第二网络120,这两个网络耦接到开关或集线器125。网络110包括多个节点,包括节点111-112。类似地,网络120包括多个节点,包括节点121-122。
在该示例性实施方案中,异构系统100可表示工业过程控制和自动化系统的全部或一部分。例如,节点111-112可包括一个或多个工业过程控制器,该一个或多个工业过程控制器被配置为控制过程或生产系统中可执行各种功能中的任何功能的过程元件。作为具体示例,节点111-112可被配置为向用于制造化学、药物、纸张或石化产品的过程元件或设备提供控制信号。每个节点111-112包括用于执行过程或生产系统中的一个或多个功能的任何合适的结构。节点111-112可例如包括一个或多个处理设备113以及一个或多个存储器114,该一个或多个存储器存储由处理设备113使用、收集或生成的指令和数据。作为具体示例,处理设备113可包括MOTOROLA 68000处理器系列中的处理器。
作为另一示例,节点121-122可包括一个或多个操作员站,该一个或多个操作员站被配置用于用户访问和控制过程控制和自动化系统。节点121-122中的每一者可例如包括一个或多个处理设备123以及一个或多个存储器124,该一个或多个存储器存储由处理设备123使用、收集或生成的指令和数据,诸如由节点121-122执行的软件。在具体实施方案中,节点121-122可表示执行MICROSOFT WINDOWS操作系统的个人计算机,并且处理设备123可包括INTEL x86处理器系列中的处理器。
节点111-112和121-122通过网络110-120彼此耦接并耦接到系统100的其他组件。每个网络110-120有利于系统100中的各个组件之间的通信。每个网络110-120表示有利于系统100中的组件之间的通信的任何网络或网络组合。例如,网络110可表示过程控制系统中的控制器网络,诸如同轴电缆网络或以太网网络。作为另一示例,网络120可表示以太网网络。
在这些实施方案中,节点111-112、121-122可具有不同的机器架构,并且可支持不同的数据结构或数据格式。例如,节点111-112可使用大端字节序格式进行数据存储,而节点121-122可使用小端字节序格式进行数据存储。同样,节点111-112、121-122中的某些节点可使用IEEE 754标准浮点表示,而节点111-112、121-122中的其他节点可使用非标准浮点表示。因此,在网络110和网络120之间发送的数据(诸如,从节点121传输到节点111的指令或数据,或者从节点112传输到节点122的操作状态数据)可能需要被不同地处理,这取决于处理节点的机器架构。
为了实现这一点,系统100使用跨整个数据共享器网络的多字节数据的规范表示的概念,而不管成员设备的机器架构如何。在系统100中,选择网络标准格式(也称为规范格式)用于所有共享数据。例如,规范格式可以是大端字节序和标准浮点。作为另一示例,规范格式可以是小端字节序和标准浮点。一旦确定了规范格式,在节点111-112、121-122之间传输和接收的所有数据都以规范格式维护,而不管各个网络节点的架构如何。使用与规范格式不同的格式本地操作的网络设备(诸如,节点111-112、121-122中的一者)使用规范格式接收数据并将数据传输到其他设备。然而,这种设备中的内部计算和处理以本机非规范格式执行,因此执行从规范格式到本机格式(或者相反)的数据转换。执行数据转换的必要性可以由每个单独的设备确定,所述设备固有地知道它是遵循还是不同于网络规范数据格式。
作为示例,假设系统100的规范格式是大端字节序和IEEE 754标准浮点表示,而节点121的本机格式是小端字节序和非标准浮点表示。当节点121对数据执行算术操作时,节点121照常将数据从其存储器移动到其内部算术寄存器中。另外,节点121执行从大端字节序/标准浮点到小端字节序/非标准浮点的数据转换。当将数据从算术寄存器移回存储器时,节点121还执行反向转换或“解转换”(从小端字节序/非标准浮点到大端字节序/标准浮点)。因此,存储器中的数据保持规范格式,即使为了执行算术操作其在寄存器中可为非规范格式。利用这种数据表示的不变性,来自其他网络节点的传入数据为网络规范格式,并且节点121能够正确地解释该数据。因此,节点121可对该数据的原始发送者的特定本机格式保持不感兴趣。
在一些实施方案中,使用以下转换例程使得在规范格式和本机格式之间进行数据转换成为可能:所述转换例程可以修改计算机指令以能够容忍设备的存储器中的数据具有“错误”格式。例如,软件转换例程可以修改普通机器汇编代码,以在执行机器操作时提供从规范格式到具体设备的本机格式的数据交换。对于固有地偏好规范格式的网络设备(诸如,当节点112是大端字节序/标准浮点时),数据表示转换是NULL(但是设备可在处理的该转换阶段期间出于其他目的执行其他转换)。关于转换的其他细节在下文提供。
虽然图1示出了异构系统100的一个示例,但是可对图1进行各种改变。例如,可根据具体需要添加、省略、组合或以任何其他配置放置组件。而且,虽然被描述为表示过程控制和自动化系统的全部或一部分,但是异构系统100可以任何其他方式使用。此外,图1中所示的特定类型的处理器(68000和x86)仅是示例,可在每个节点中使用任何其他或附加类型的处理器。另外,图1示出了一种操作环境,其中可以使用用于实现跨异构机器架构的数据兼容性的方法。此处所述的数据兼容性方法可用于任何其他设备或系统中。
图2示出了根据本公开的用于实现跨异构机器架构的数据兼容性的示例性系统200。如图2所示,系统200包括构建环境202和运行时环境204。运行时环境204可包括或表示图1中所示且如上所述的系统100的组件的全部或一部分。
在构建环境202中,一个或多个操作员(诸如,系统工程师、程序员或数据管理员)在运行时环境204中的执行期间开发和维护由节点111-112、121-122使用的软件。例如,操作员可开发和维护以高级编程语言(诸如,C或其某些版本)写入的源文件210。软件编译器220将源文件210编译成机器汇编语言指令230,所述机器汇编语言指令可由运行时环境204中节点111-112、121-122中的一者或多者执行。通常,将可执行指令230加载到至少一个节点111-112、121-122的存储器114、124中,以由一个或多个节点的一个或多个处理设备113、123执行。
运行时环境204中的节点111-112、121-122使用已在构建环境202中准备的机器汇编语言指令230。例如,每个节点111-112、121-122可以执行机器汇编语言指令230,以检测和接收从其他节点111-112、121-122传输的数据消息并且使用数据消息中的数据执行各种操作。
在系统200中,忽略每个数据消息的“高阶”结构。也就是说,系统200不关注每个数据消息的结构格式(诸如,存在多少数据字段以及每个数据字段表示什么)。相反,系统200关注数据的基本机器格式,包括浮点数、整数(诸如,八字节整数、四字节整数、双字节整数等)和字符串。系统200还关注每个节点111-112、121-122的本机格式。根据为其创建机器汇编语言指令230的节点111-112、121-122的本机格式,编译器220将适当的数据转换和解转换操作添加到可执行指令230中。
为了更好地例示系统200的操作,与典型的处理系统进行比较是有帮助的。假设要由计算设备执行的当前操作是将值“1”数值地添加到数据字段中的值。在典型的处理系统中,计算设备将执行机器汇编语言指令,以将数据字段值从设备存储器加载到内部寄存器中,将寄存器中的值递增1,然后将该值存储回设备存储器。这类指令(诸如,加载、添加和存储)可在编译操作期间由源代码生成。
现在,在系统200中考虑相同的示例。再次,假设当前操作是将数据字段中的值递增“1”。还假设系统200的规范格式是大端字节序/标准浮点,节点122是执行操作的计算设备,并且节点122的本机格式是小端字节序/标准浮点。如果要由节点122递增四字节整数数据值,则节点122将整数读入数据寄存器并执行字节交换,所述字节交换是从规范格式(大端字节序)到本机格式(小端字节序)的转换。节点122还使用小端字节序格式将1添加到寄存器中的值,执行另一字节交换以转换回大端字节序,并将数据存储在存储器中。因此,由节点122执行的指令是加载、转换、添加、解转换和存储。
与典型的计算设备相反,节点122执行的转换和解转换指令是由编译器220生成的机器汇编语言指令230的一部分。当编译源文件210时,转换和解转换指令可以根据需要包括在机器汇编语言指令230中。这可以是由编译器220执行的编译例程的一部分。换句话说,在编译时,编译器220将转换和解转换指令添加到机器汇编语言指令230中。
在一些实施方案中,编译器220知道或可以确定节点122的本机格式。例如,每个节点111-112、121-122的本机格式可以存储在数据表或一个或多个其他结构中,并且当编译器220编译特定节点的代码时,编译器220可以读取该特定节点的正确本机格式。在其他实施方案中,操作员(诸如,程序员)向编译器220指示本机格式。例如,操作员可指示编译器220编译作为小端字节序和标准浮点的机器或一些其他特定类型的机器的源代码。当生成机器汇编语言指令230时,编译器220添加适当的转换和解转换指令。在一些情况下,如果不需要转换,诸如当节点已使用网络规范格式处理数据时,这些指令可以是无效的。
在一些实施方案中,规范格式是大端字节序和标准浮点、小端字节序和标准浮点、大端字节序和非标准浮点,或者小端字节序和非标准浮点。因此,根据计算设备的本机格式,转换指令可包括“从大端字节序转换为小端字节序”操作(或者相反)、“从标准浮点转换为非标准浮点”操作(或者相反),或者两者。解转换指令表示转换指令的反转。而且,规范格式不仅限于字节序格式和浮点格式。其他与数据相关的特性也是可能的,并且转换和解转换可以包括与数据相关的特性中的一个、一些或全部,这取决于具体设备的本机格式。
虽然上文已经描述了将值递增1的示例,但是针对任何基本数据操作(包括添加、减少、加载和存储)以及针对具有数据的基本机器格式(包括浮点数、整数和字符串)的任何数据值,可添加转换和解转换指令。使用系统200,存储器中的数据和通过网络110-120传输的数据可以保持规范格式。因此,系统200不需要知道许多消息结构的格式,而只需要知道数据的基本机器格式的格式。在一些实施方案中,程序员甚至不需要知道那些。相反,编译器220可以自动识别执行设备,并且可以根据需要在编译期间添加转换和解转换指令。
虽然图2示出了用于实现跨异构机器架构的数据兼容性的系统200的一个示例,但是可对图2进行各种改变。例如,可组合、进一步细分或省略图2中的各个组件,并且可根据具体需要添加附加组件。另外,系统构建环境和运行时环境可呈现各种各样的配置,并且图2不将本公开限制为任何特定配置。
图3示出了根据本公开的用于在异构系统中实现跨异构机架构的数据兼容性的示例性方法300。为了便于解释,方法300被描述为使用图2的系统200来执行。但是方法300可与任何合适的设备或系统一起使用。
在步骤301处,系统200将数据元素从存储器加载到内部寄存器中。例如,这可以包括节点111-112、121-122将数据消息的数据元素从内部存储器加载到内部寄存器中。可通过网络110-120中的一者或多者从另一个节点111-112、121-122接收数据消息。
在步骤303处,系统200将数据元素从网络标准化格式转换为设备本机格式。这可包括例如节点111-112、121-122执行字节序转换、浮点格式转换或者两者。具体地讲,这可包括节点111-112、121-122将数据元素从大端字节序(网络标准化或规范格式)转换为小端字节序(设备本机格式)。
在步骤305处,系统200对数据值执行操作。例如,这可包括节点111-112、121-122对内部寄存器中的数据值执行操作。在一些实施方案中,操作是基本数学操作,诸如递增1。
在步骤307处,系统200将数据元素从设备本机格式解转换为网络标准化格式。例如,这可包括节点111-112、121-122执行字节序解转换、浮点格式解转换或者两者。具体地讲,这可包括节点111-112、121-122将数据元素从小端字节序解转换为大端字节序。
在步骤309处,系统200将数据元素存储在存储器中。例如,这可包括节点111-112、121-122将数据元素从内部寄存器存储到内部存储器中。
在一些实施方案中,在编译更高级编程语言的源代码210期间,编译器220将执行转换和解转换操作的指令添加到机器汇编语言指令230中。
虽然图3示出了用于实现跨异构机器架构的数据兼容性的方法300的一个示例,但是可对图3进行各种改变。例如,虽然示出为一系列步骤,但是图3中所示的各种步骤可以重叠,并行发生,以不同顺序发生或多次发生。此外,可组合或移除一些步骤,并且可根据具体需要添加附加步骤。另外,虽然关于系统200(其是关于工业过程控制和自动化系统描述的)描述了方法300,但是方法300可与其他类型的设备和系统结合使用。
图4示出了根据本公开的用于实现跨异构机器架构的数据兼容性的示例性设备400。设备400可例如表示图2的系统200中的计算设备,诸如节点111-112、121-122中的一者或编译器220。设备400可表示用于实现跨异构机器架构的数据兼容性的任何其他合适的设备。
如图4所示,设备400可以包括总线系统402,所述总线系统支持至少一个处理设备404、至少一个存储设备406、至少一个通信单元408和至少一个输入/输出(I/O)单元410之间的通信。处理设备404执行可加载到存储器412中的指令。处理设备404可包括任何合适数量和类型的处理器或任何合适布置的其他设备。处理设备404的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。
存储器412和持久存储装置414是存储设备406的示例,所述存储设备表示能够存储和有利于信息(诸如,数据、程序代码和/或临时或永久的其他合适信息)检索的任何结构。存储器412可表示随机存取存储器或任何其他合适的易失性或非易失性存储设备。持久存储装置414可包含支持数据长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存存储器或光盘。根据本公开,存储器412和持久存储装置414可被配置为存储与确保跨异构机器架构的数据兼容性相关联的指令。
通信单元408支持与其他系统、设备或网络(诸如,网络110-120)的通信。例如,通信单元408可包括网络接口,该网络接口有利于通过至少一个以太网网络进行通信。通信单元408还可包括无线收发器,该无线收发器有利于通过至少一个无线网络进行通信。通信单元408可通过任何合适的物理或无线通信链路来支持通信。
I/O单元410允许输入和输出数据。例如,I/O单元410可通过键盘、鼠标、小键盘、触摸屏或其他合适的输入设备来提供用于用户输入的连接。I/O单元410还可将输出发送到显示器、打印机或其他合适的输出设备。
虽然图4示出了用于实现跨异构机器架构的数据兼容性的设备400的一个示例,但是可对图4进行各种改变。例如,可组合、进一步细分或省略图4中的各个组件,并且可根据具体需要添加附加组件。而且,计算设备可呈现各种各样的配置,并且图4不将本公开限制为设备的任何特定配置。
在一些实施方案中,上述各种功能由计算机程序实现或支持,所述计算机程序由计算机可读程序代码形成并且体现在计算机可读介质中。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频光盘(DVD)或任何其他类型的存储器。“非暂态”计算机可读介质排除传输瞬时电信号或其他信号的有线、无线、光学或其他通信链路。非暂态计算机可读介质包括可以永久存储数据的介质和可以存储和稍后重写数据的介质,诸如可重写光盘或可擦除存储器设备。
阐述整个本专利文件中所用的某些词语和短语的定义可能是有利的。术语“应用程序”和“程序”是指适于在合适的计算机代码(包括源代码、目标代码或可执行代码)中实现的一个或多个计算机程序、软件组件、指令集、过程、功能、对象、类别、实例、相关数据或其一部分。术语“传输”、“接收”和“传送”及其派生词包括直接和间接通信。术语“包括”和“包含”及其派生词意指包含但不限于此。术语“或”是包含性的,意指和/或。短语“与…相关联”及其派生词可意指包括、包括在…内、与…互连、包含、包含在…内、连接到…或与…连接、耦接到…或与…耦接、可与…通信、与…协作、交错、并置、接近、粘结到…或与…粘结、具有、具有…的性质、与…有关系等。术语“控制器”意指控制至少一个操作的任何设备、系统或其部分。控制器可在硬件或者硬件和软件/固件的组合中实现。与任何特定控制器相关联的功能可以是集中的或分布的,无论是本地还是远程。短语“…中的至少一个”在与项目列表一起使用时,意指可使用所列项目中的一个或多个的不同组合,并且可能仅需要列表中的一个项目。例如,“A、B和C中的至少一个”包括以下任何组合:A、B、C、A和B、A和C、B和C以及A和B和C。
虽然本公开已经描述了某些实施方案和通常相关联的方法,但是这些实施方案和方法的变更和置换对于本领域技术人员而言将是显而易见的。因此,示例性实施方案的以上描述不限定或约束本公开。在不脱离如由以下权利要求限定的本公开的精神和范围的情况下,其他改变、替换和变更也是可能的。
Claims (10)
1.一种方法,包括:
将数据元素从至少一个存储器(412)加载(301)到至少一个内部寄存器中;
将所述数据元素从网络标准化格式转换(303)为设备本机格式;
对所述数据值执行(305)操作;
将所述数据元素从所述设备本机格式解转换(307)为所述网络标准化格式;以及
将所述数据元素存储(309)在所述至少一个存储器中。
2.根据权利要求1所述的方法,其中所执行的操作是基本数学操作。
3.根据权利要求1所述的方法,其中转换所述数据值包括以下中的至少一者:字节序转换或浮点值格式转换。
4.根据权利要求3所述的方法,其中:
所述网络标准化格式是大端字节序或小端字节序中的一者;并且所述设备本机格式是大端字节序或小端字节序中的另一者。
5.根据权利要求3所述的方法,其中:
所述网络标准化格式使用第一浮点值格式;并且
所述设备本机格式使用不同的第二浮点值格式。
6.根据权利要求1所述的方法,其中在编译更高级编程语言的源代码期间,将用于执行所述转换和所述解转换的指令添加到机器汇编语言代码中。
7.一种装置,包括:
至少一个存储器(412),所述至少一个存储器被配置为存储数据元素;和
至少一个处理设备(404),所述至少一个处理设备被配置为:
将所述数据元素从所述至少一个存储器加载到至少一个内部寄存器中;
将所述数据元素从网络标准化格式转换为设备本机格式;
对所述数据值执行操作;
将所述数据元素从所述设备本机格式解转换为所述网络标准化格式;以及
将所述数据元素存储在所述至少一个存储器中。
8.根据权利要求7所述的装置,其中所执行的操作是基本数学操作。
9.根据权利要求7所述的装置,其中所述至少一个处理设备被配置为通过执行以下中的至少一者来转换所述数据值:字节序转换或浮点值格式转换。
10.一种非暂态计算机可读介质,所述计算机可读介质包含指令,所述指令在由至少一个处理设备执行时,使得所述至少一个处理设备:
将数据元素从至少一个存储器(412)加载(301)到至少一个内部寄存器中;
将所述数据元素从网络标准化格式转换(303)为设备本机格式;
对所述数据值执行(305)操作;
将所述数据元素从所述设备本机格式解转换(307)为所述网络标准化格式;以及
将所述数据元素存储(309)在所述至少一个存储器中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/164,724 | 2016-05-25 | ||
US15/164,724 US20170344364A1 (en) | 2016-05-25 | 2016-05-25 | System and method for data compatibility across heterogeneous machine architectures |
PCT/US2017/030382 WO2017205009A1 (en) | 2016-05-25 | 2017-05-01 | System and method for data compatibility across heterogeneous machine architectures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109154926A true CN109154926A (zh) | 2019-01-04 |
Family
ID=60412946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780029790.8A Withdrawn CN109154926A (zh) | 2016-05-25 | 2017-05-01 | 用于实现跨异构机器架构的数据兼容性的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20170344364A1 (zh) |
EP (1) | EP3465454A4 (zh) |
JP (1) | JP2019526085A (zh) |
CN (1) | CN109154926A (zh) |
AU (1) | AU2017269801A1 (zh) |
WO (1) | WO2017205009A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022127453A1 (en) * | 2020-12-14 | 2022-06-23 | International Business Machines Corporation | In-line data packet transformations |
CN114787778A (zh) * | 2019-12-17 | 2022-07-22 | Abb瑞士股份有限公司 | 更新表示真实世界对象的数字对象 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810086B2 (en) | 2017-10-19 | 2020-10-20 | Honeywell International Inc. | System and method for emulation of enhanced application module redundancy (EAM-R) |
US10783026B2 (en) | 2018-02-15 | 2020-09-22 | Honeywell International Inc. | Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor |
US11366777B2 (en) | 2019-06-11 | 2022-06-21 | Honeywell International, Inc. | Process control device having modern architecture and legacy compatibility |
TWI740272B (zh) * | 2019-11-14 | 2021-09-21 | 和碩聯合科技股份有限公司 | 寫入映像檔至記憶體之裝置、方法及其非暫態電腦可讀取媒體 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828884A (en) * | 1996-05-23 | 1998-10-27 | Advanced Micro Devices, Inc. | Method for compiling a software program and executing on a system which converts data between different endian formats |
US7446774B1 (en) * | 1998-11-09 | 2008-11-04 | Broadcom Corporation | Video and graphics system with an integrated system bridge controller |
JP2002536712A (ja) * | 1999-01-28 | 2002-10-29 | エーティーアイ インターナショナル エスアールエル | 第2のアーキテクチャのコンピュータにおける第1のコンピュータアーキテクチャ用プログラムの実行 |
US20050066146A1 (en) * | 2003-09-19 | 2005-03-24 | Intel Corporation | Endian conversion |
JP2008033722A (ja) * | 2006-07-31 | 2008-02-14 | Matsushita Electric Ind Co Ltd | エンディアン変換回路を備えたデータ転送制御装置 |
US8769251B2 (en) * | 2006-12-13 | 2014-07-01 | Arm Limited | Data processing apparatus and method for converting data values between endian formats |
US8719322B2 (en) * | 2011-04-06 | 2014-05-06 | Kodak Alaris Inc. | Floating point format converter |
-
2016
- 2016-05-25 US US15/164,724 patent/US20170344364A1/en not_active Abandoned
-
2017
- 2017-05-01 EP EP17803255.3A patent/EP3465454A4/en not_active Withdrawn
- 2017-05-01 CN CN201780029790.8A patent/CN109154926A/zh not_active Withdrawn
- 2017-05-01 JP JP2018555966A patent/JP2019526085A/ja not_active Withdrawn
- 2017-05-01 AU AU2017269801A patent/AU2017269801A1/en not_active Abandoned
- 2017-05-01 WO PCT/US2017/030382 patent/WO2017205009A1/en unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114787778A (zh) * | 2019-12-17 | 2022-07-22 | Abb瑞士股份有限公司 | 更新表示真实世界对象的数字对象 |
WO2022127453A1 (en) * | 2020-12-14 | 2022-06-23 | International Business Machines Corporation | In-line data packet transformations |
US11379390B1 (en) | 2020-12-14 | 2022-07-05 | International Business Machines Corporation | In-line data packet transformations |
GB2617739A (en) * | 2020-12-14 | 2023-10-18 | Ibm | In-line data packet transformations |
Also Published As
Publication number | Publication date |
---|---|
EP3465454A4 (en) | 2020-02-26 |
JP2019526085A (ja) | 2019-09-12 |
US20170344364A1 (en) | 2017-11-30 |
EP3465454A1 (en) | 2019-04-10 |
AU2017269801A1 (en) | 2018-12-20 |
WO2017205009A1 (en) | 2017-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154926A (zh) | 用于实现跨异构机器架构的数据兼容性的系统和方法 | |
CN103164249B (zh) | 用于脚本语言编译器的扩展机制 | |
US7739696B2 (en) | Message translation systems and methods | |
TWI566180B (zh) | 一種動態創建可附加和可拆除二進位檔案的系統和方法 | |
CN102365621B (zh) | 使用嵌入式解释器类型和变量的基于解释器的程序语言翻译器 | |
US8898651B2 (en) | Automatic generation of instruction-set documentation | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
US8990789B2 (en) | Optimizing intermediate representation of script code by eliminating redundant reference count operations | |
CN102023856A (zh) | 根据用户的需求格式化输出及操作伺服端业务数据的方法 | |
US8776024B2 (en) | Software application fine-tuning method, system, and corresponding computer program product | |
US9317266B1 (en) | Leveraging legacy applications for use with modern applications | |
US20100082954A1 (en) | Configuration rule prototyping tool | |
EP3067800A1 (en) | System and method for endian correction of complex data structures in heterogeneous systems | |
CN110825386B (zh) | 代码的编译方法和装置、存储介质 | |
US9152400B2 (en) | Eliminating redundant reference count operations in intermediate representation of script code | |
US10387124B2 (en) | System and method for creating domain specific language | |
CN114780100B (zh) | 编译方法、电子设备及存储介质 | |
US10606569B2 (en) | Declarative configuration elements | |
US9292267B2 (en) | Compiling nested relational algebras with multiple intermediate representations | |
Ates et al. | Constructing VEGGIE: Machine learning for context-sensitive graph grammars | |
Wenzel | PIDE as front-end technology for Coq | |
McGuire et al. | The Austin Protocol Compiler | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
JP2010282248A (ja) | プログラム言語解析実行プログラム | |
US20150378698A1 (en) | Integrated compilation modes for data flow code generation |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190104 |