PACK Instruction Emulation Using Block-Based ASCII and Unicode Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for emulating PACK instructions, particularly for ASCII and Unicode character strings, are inefficient as they rely on byte-by-byte operations, which are slower compared to block-by-block processing, and do not effectively handle big-endian and small-endian architectures.

Innovation Solution

A block-by-block algorithm is developed to convert Unicode and ASCII strings to packed formats, using 8-byte blocks and employing specific bitwise operations to process data on both big-endian and small-endian machines, with pointers and nibble manipulation to achieve efficient packing and unpacking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If byte-by-byte operations are used for emulating PACK instructions, then the emulation can be implemented on any architecture, but the processing speed is slow

Engineering Contradiction:
Improvearchitecture compatibilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the PACK instruction emulation into two distinct pathways: a byte-by-byte emulation mode for cross-architecture compatibility, and a block-by-block optimized mode for native architecture performance. The segmentation allows the system to choose the appropriate emulation strategy based on the target architecture's capabilities, thereby resolving the contradiction between adaptability and processing speed.

Inventive Principle:
Principle #1Segmentation

2Productivity

If block-by-block methods are used for processing, then processing speed improves, but the implementation becomes more complex and architecture-specific

Engineering Contradiction:
Improveprocessing speedVSAvoidemulation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic emulation by making the emulation method adaptable at runtime. The system dynamically selects between byte-by-byte and block-by-block processing based on architecture detection, and dynamically adjusts block sizes based on data characteristics. This dynamic approach allows the system to achieve high performance when conditions permit while maintaining simplicity and compatibility when they don't, thereby reducing overall implementation complexity.

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If byte-by-byte operations are used, then the emulation logic is simpler to implement, but the processing time increases

Engineering Contradiction:
Improveemulation implementation easeVSAvoidprocessing time
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent changes the processing parameter from fixed byte-by-byte operations to variable block-size operations. By introducing a block size parameter that can be adjusted based on architecture capabilities and data characteristics, the system can optimize processing time without sacrificing implementation feasibility. The parameter change enables a spectrum of implementation complexities rather than a binary choice, resolving the contradiction between ease of implementation and processing time.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7764203B2Method of doing pack ASCII Z series instructions
Publication Date: 2010.07.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US7764203B2 patent drawing
  • US7764203B2 patent drawing
  • US7764203B2 patent drawing

AI summary

Emulation methods are provided for two PACK instructions, one for Unicode data and the other for ASCII coded data in which processing is carried out in a block-by-block fashion as opposed to a byte-by-byte fashion as a way to provide superior performance in the face of the usual challenges facing the execution of emulated data processing machine instructions as opposed to native instructions.