Microcode ROM Multiple Control Sequences Per Row

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current integrated circuit production methods are inadequate to produce a single chip capable of executing all x86 instructions directly in hardware due to the complexity and cost of hardware required, leading to inefficiencies in microcode ROM storage where significant capacity remains unused.

Innovation Solution

Storing multiple groups of microcode operations and their associated control sequences per row in the microcode ROM, allowing the control sequence logic unit to determine the location of the next group of operations and optimize output to the scheduler, including the use of NOPs or branch predictions to manage conditional branches, thereby improving storage utilization and execution efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If hardware is designed to execute all x86 instructions directly, then instruction execution capability is improved, but device complexity and manufacturing cost increase prohibitively

Engineering Contradiction:
Improveinstruction execution capabilityVSAvoidhardware complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent uses microcode ROM to store copies of microcode operations that implement complex x86 instructions. Instead of implementing all instructions directly in hardware, the system stores pre-computed microcode sequences in ROM and retrieves them as needed, reducing hardware complexity while maintaining instruction execution capability

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces microcode as an intermediary layer between x86 instructions and hardware execution. The microcode ROM unit acts as a mediator that translates complex x86 instructions into simpler microcode operations, which are then executed by less complex hardware, thus resolving the contradiction between versatility and complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If microcode operations are stored in sequential rows with one group per row, then control sequence logic is simplified, but storage capacity utilization decreases significantly

Engineering Contradiction:
Improvecontrol sequence logic simplicityVSAvoidstorage capacity utilization
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent merges multiple groups of microcode operations into a single row storage unit. Each row can contain multiple groups (e.g., first group, second group, third group) along with their control sequences, allowing one row to serve multiple microcode routines. This combining approach significantly increases storage capacity utilization while maintaining manageable control logic through the control sequence fields that indicate which groups belong to which routines

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent makes each row of microcode ROM multi-functional by allowing it to store groups from different microcode routines. The control sequence logic unit determines which groups to retrieve based on the current microcode routine being executed, enabling a single row structure to serve multiple purposes across different routines, thereby maximizing storage efficiency

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

Data Source

PatentUS7610476B1Multiple control sequences per row of microcode ROM
Publication Date: 2009.10.27 ADVANCED MICRO DEVICES INC
  • US7610476B1 patent drawing
  • US7610476B1 patent drawing
  • US7610476B1 patent drawing

AI summary

Various embodiments of methods and systems for storing multiple groups of microcode operations and corresponding control sequences per row of microcode ROM are disclosed. In one embodiment, an integrated circuit may include a microcode ROM coupled to a control sequence logic unit. The microcode ROM may store multiple groups of microcode operations per row. For each group of microcode operations stored in a row, a corresponding control sequence may also be stored in the row. Each group of microcode operations may be included in a microcode routine. The groups of microcode operations stored in a row may be included in the same microcode routine, or some of the groups may be included in different microcode routines.