Parallel IO Device Enumeration Across Multiple Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing hardware system architectures, such as x86 and Itanium, face inefficiencies in initializing system IO buses and enumerating IO devices, leading to prolonged system startup times, which hinder user satisfaction and increase product development costs due to repeated restarts during the design and verification process.

Innovation Solution

A method and device that acquire identifiers of processors and IO centralized controllers, instruct multiple processors to simultaneously enumerate IO devices, and collect related information, thereby distributing the enumeration task across multiple processors to reduce the time consumed in the process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If one processor enumerates all IO devices sequentially, then resource allocation consistency is maintained, but system startup time is prolonged

Engineering Contradiction:
Improveresource allocation consistencyVSAvoidsystem startup time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the IO device enumeration task into multiple segments, assigning each processor to enumerate specific IO devices or IO bus segments. This segmentation allows parallel execution of enumeration tasks across multiple processors while maintaining resource allocation consistency through coordinated management of the divided tasks.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple processors simultaneously enumerate IO devices, then enumeration efficiency is improved, but system complexity increases

Engineering Contradiction:
Improveenumeration efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the enumeration task among multiple processors, with each processor handling specific portions of the IO device enumeration. This division enables simultaneous execution of enumeration operations by multiple processors, improving overall productivity while managing system complexity through structured task distribution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements feedback mechanisms where processors communicate enumeration results and status to coordinate their parallel operations. This feedback system ensures that multiple processors working simultaneously on enumeration tasks can synchronize their actions, avoid conflicts, and maintain system consistency without excessive complexity.

Inventive Principle:
Principle #23Feedback

3Reliability

If system firmware performs IO device enumeration, then hardware detection is complete, but product development verification time increases

Engineering Contradiction:
Improvehardware detection completenessVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies segmentation to the verification process by enabling multiple processors to simultaneously perform hardware detection and enumeration tasks. This parallel execution maintains complete hardware detection capability while reducing the total verification time required during product development and testing phases.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9280493B2Method and device for enumerating input/output devices
Publication Date: 2016.03.08 XFUSION DIGITAL TECH CO LTD
  • US9280493B2 patent drawing
  • US9280493B2 patent drawing
  • US9280493B2 patent drawing

AI summary

Embodiments of the present disclosure relate to a method and a device for enumerating input/output devices (IO devices). The method for enumerating input/output devices includes: acquiring an identifier of each processor and an identifier of each input/output (IO) centralized controller in a system; separately instructing processors to simultaneously enumerate a specific IO centralized controller and an input/output IO device connected to the specific IO centralized controller, according to the identifier of each processor and the identifier of each IO centralized controller; and acquiring related information of IO devices enumerated by the instructed processors. According to the embodiments of the present disclosure, the work of enumerating the system IO devices may be allocated to multiple processors to be carried out simultaneously, so as to greatly reduce time consumed in the enumeration process, and to accelerate a system initialization process.