RISC Flag Select Circuit for Multi-Size Operand Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

RISC processors with a fixed 16-bit instruction set face challenges in efficiently supporting 64-bit operations due to increased instruction code space requirements, leading to a need for optimizing flag management to reduce the number of instructions and minimize code space usage.

Innovation Solution

The solution involves increasing the number of flags generated by each instruction to decrease the number of flag-generating instructions, while also using prefix instructions to update only necessary flags and enable logical operations between them, thereby reducing the overall number of instructions and optimizing flag usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If 32-bit and 64-bit operation instructions are both defined for the same operation, then the processor can support both 32-bit and 64-bit operational systems, but the number of operation instructions rises and code spaces required increase

Engineering Contradiction:
Improvesupport for both 32-bit and 64-bit operational systemsVSAvoidnumber of operation instructions and code space
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

A single operation instruction is designed to handle multiple data sizes (8-bit, 16-bit, 32-bit, and 64-bit) by using size specification bits within the instruction format. This allows one instruction to perform the same operation on different sized operands, eliminating the need for separate instructions for each data size and reducing the overall instruction count while maintaining support for both 32-bit and 64-bit systems

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The instruction format includes size specification bits that dynamically change the operational parameters based on the desired data size. By modifying these parameter bits, the same instruction can adapt to different operand sizes (8, 16, 32, or 64 bits), allowing the processor to support multiple operational systems without requiring separate instruction sets for each size

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the number of flags generated by each instruction is increased, then the number of flag-generating instructions can be reduced, but the complexity of flag management increases

Engineering Contradiction:
Improvenumber of flag-generating instructionsVSAvoidflag management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Multiple individual flags (N, Z, V, C for negative, zero, overflow, and carry) are segmented into a single composite flag register. This allows the processor to generate all necessary condition information in one operation rather than requiring separate flag-generating instructions for each condition, reducing the total number of instructions while the flag select mechanism manages the complexity of individual flag access

Inventive Principle:
Principle #1Segmentation

3Productivity

If an instruction set with a fixed length of 16 bits is used, then code efficiency is improved and on-chip caches are used effectively, but the instruction code space becomes limited and difficult to expand

Engineering Contradiction:
Improvecode efficiency and cache utilizationVSAvoidinstruction code space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The instruction format is structured with nested fields where size specification bits are embedded within the opcode structure. The 16-bit instruction contains nested elements including operation code bits, size specification bits, and operand specification bits, allowing multiple levels of information to be packed into the fixed 16-bit format. This enables expansion of functionality without increasing instruction length, maintaining code efficiency while accommodating support for multiple data sizes and operational systems

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS10235179B2Data processor selecting a flag out of a plurality of flags generated by an instruction operating on multiple operand sizes in parallel
Publication Date: 2019.03.19 RENESAS ELECTRONICS CORP
  • US10235179B2 patent drawing
  • US10235179B2 patent drawing
  • US10235179B2 patent drawing

AI summary

The RISC data processor is based on the idea that in case that there are many flag-generating instructions, the number of flags generated by each instruction is increased so that a decrease of flag-generating instructions exceeds an increase of flag-using instructions in quantity, thereby achieving the decrease in instructions. With the data processor, an instruction for generating flags according to operands' data sizes is defined. To an instruction set handled by the RISC data processor, an instruction capable of executing an operation on operand in more than one data size, which performs a process identical to an operation process conducted on the small-size operand on low-order bits of the large-size operand, and generates flags capable of coping with the respective data sizes regardless of the data size of each operand subjected to the operation is added. Thus, the reduction in instruction code space of the RISC data processor tight in instruction code space can be achieved.