Vector Element Order Control via Assembler Section Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems face complexity in managing vector element ordering, particularly when transitioning between big-endian and little-endian architectures, which can lead to costly and time-consuming code rewrites to match different byte and element ordering schemes, affecting interoperability and performance.

Innovation Solution

A method and system for managing vector element ordering through the use of control bits in machine status registers and page table entries, allowing for independent selection of vector element ordering and numbering, enabling legacy systems to operate with different data orderings without altering source code, using instructions like MTVEO to set vector element ordering and numbering, and employing assemblers and linkers to place code in appropriate sections based on specified orderings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If code is rewritten to match the architecture of the system, then interoperability is improved, but development time and cost increase

Engineering Contradiction:
ImproveinteroperabilityVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The assembler performs preliminary action by automatically detecting the required vector element ordering from assembly directives and pre-organizing machine instructions into appropriately labeled sections (BE section, LE section) before execution. This eliminates the need for manual code rewriting while ensuring correct interoperability with the target architecture.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The assembler acts as an intermediary between the source code and the execution environment. It translates high-level assembly directives into architecture-specific machine instructions with correct byte ordering, mediating between different architectural requirements without requiring source code changes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If vector element ordering is changed for different architectures, then adaptability is improved, but code complexity increases

Engineering Contradiction:
ImproveadaptabilityVSAvoidcode complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The code is segmented into distinct sections (BE section for big-endian, LE section for little-endian) based on the required vector element ordering. Each section contains machine instructions optimized for its specific architecture, allowing the system to manage complexity by organizing code into manageable, architecture-specific segments rather than handling all architectures uniformly.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If byte ordering and vector element ordering are made the same, then simplicity is improved, but flexibility deteriorates

Engineering Contradiction:
ImprovesimplicityVSAvoidflexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system dynamically selects the appropriate vector element ordering (big-endian or little-endian) based on the specific assembly directives and architecture requirements. Rather than being fixed, the ordering can be changed by modifying the assembler directives, allowing the system to adapt to different architectural needs while maintaining simplicity in the source code structure.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10101997B2Independent vector element order and memory byte order controls
Publication Date: 2018.10.16 BEIJING ZITIAO NETWORK TECH CO LTD
  • US10101997B2 patent drawing
  • US10101997B2 patent drawing
  • US10101997B2 patent drawing

AI summary

Techniques are disclosed for managing vector element ordering. One technique includes receiving an assembler command from a source file, wherein the assembler command indicates a vector element order for one or more subsequent machine instructions in the source file. The technique includes determining whether the vector element order comprises a big-endian (BE) order or a little-endian (LE) order. If the vector element order comprises a BE order, the technique includes assembling one or more subsequent machine instructions and placing the machine instructions in a BE section of a file. If the vector element order comprises a LE order, the technique includes assembling one or more subsequent machine instructions and placing the machine instructions in a LE section of the file.