Detection of a stuck data line of a serial data bus
US-2024419623-A1 · Dec 19, 2024 · US
US10049074B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10049074-B2 |
| Application number | US-201514835088-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 25, 2015 |
| Priority date | Aug 25, 2015 |
| Publication date | Aug 14, 2018 |
| Grant date | Aug 14, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
For optimizing expansion devices on a computer expansion bus based on real-time flow control data, a system, apparatus, method, and computer program product are disclosed. The apparatus includes a configuration module that initializes a plurality of expansion bus registers, each expansion bus register associated with one of the plurality of expansion bus slots, a packet module that monitors flow control packets on the expansion bus, a flow control module that calculates flow control data from the flow control packets, the flow control data relating to the plurality of expansion devices, and a register module that writes flow control data to the plurality of expansion bus registers. The apparatus may further includes an optimization module that calculates an arrangement of the plurality of expansion devices, based on the flow control data, to maximize expansion bus throughput.
Opening claim text (preview).
What is claimed is: 1. An apparatus comprising: a configuration module that initializes a plurality of expansion bus registers, each expansion bus register associated with one of a plurality of expansion bus slots; a packet module that monitors flow control packets on an expansion bus; a flow control module that calculates, from the flow control packets, flow control data for each of a plurality of expansion devices operating on the expansion bus, each expansion device being received into one of the plurality of expansion bus slots, wherein the flow control module updates the flow control data as new flow control packets are received; and a register module that writes the flow control data to a corresponding one of the plurality of expansion bus registers, wherein the register module updates the flow control data stored in the plurality of expansion bus registers as additional flow control data is received, wherein said modules comprise one or more of a hardware circuit, a programmable hardware device, and a processor executing code. 2. The apparatus of claim 1 , further comprising an optimization module that calculates an arrangement of the plurality of expansion devices, based on the flow control data, to maximize expansion bus throughput. 3. The apparatus of claim 2 , further comprising: a relocation module that prompts a user to relocate at least one of the plurality of expansion devices into a different expansion bus slot; and a reset module that deletes data values stored in the plurality of expansion bus registers in response to the at least one expansion device being relocated, wherein the register module writes new flow control data to the plurality of expansion bus registers based on the relocated at least one expansion device. 4. The apparatus of claim 2 , wherein optimization module includes: a slot limit module that identifies flow control limits for each of the plurality of expansion bus slots; a candidate module that compares, for each of the plurality of expansion bus slots, an average flow control usage for an expansion device using the expansion bus slot to an identified flow control limit for the expansion bus slot, the flow control data including average flow control usage for each of the plurality of expansion devices, wherein the candidate module selects at least one candidate expansion device from the plurality of expansion devices based on the comparison; and a placement module that assigns each candidate expansion device to one of the plurality of expansion bus slots based on the average flow control usage and the flow control limits. 5. The apparatus of claim 4 , further comprising: a priority module that ranks the at least one candidate expansion device based on highest average flow control usage; and a compatibility module that compares a physical size of an expansion device to a size supported by an expansion bus slot, wherein the placement module assigns each candidate expansion device to one of the plurality of expansion bus slots based on the size comparison. 6. The apparatus of claim 1 , wherein the configuration module further comprises: an allocation module that identifies an unused expansion bus register for each expansion bus slot and allocates the unused expansion bus registers for storing the flow control data; and a reset module that deletes data values stored in the allocated expansion bus registers. 7. The apparatus of claim 1 , wherein the plurality of expansion bus registers further comprises a plurality of extended capability registers for a peripheral component interconnect express (PCIe) expansion bus, each extended capability register storing the flow control data of one of plurality of expansion bus slots. 8. The apparatus of claim 1 , wherein the flow control data comprises one or more of: average flow control usage for each expansion device, a ratio of average flow control usage to flow control limit for each expansion device, and an average amount of unused flow control credits for each expansion device. 9. The apparatus of claim 1 , wherein the register module further updates the flow control data stored to the plurality of expansion bus registers in response to the flow control module calculating additional flow control data. 10. A method comprising: initializing a plurality of expansion bus registers, each expansion bus register associated with one of a plurality of expansion bus slots; monitoring for flow control packets on an expansion bus; extracting, from the flow control packets, flow control data for each of a plurality of expansion devices operating on the expansion bus, each expansion device being received into one of the plurality of expansion bus slots, wherein extracting the flow control data comprises updating the flow control data as new flow control packets are received; and writing the flow control data to a corresponding one of the plurality of expansion bus registers, wherein writing the flow control data comprises updating the flow control data stored in the plurality of expansion bus registers as additional flow control data is received. 11. The method of claim 10 , further comprising calculating an arrangement of the plurality of expansion devices that optimizes throughput based on the flow control data, wherein each of the plurality of expansion devices is coupled to one of the plurality of expansion bus slots. 12. The method of claim 11 , further comprising: prompting a user to relocate at least one of the plurality of expansion devices into a different expansion bus slot based on the calculated arrangement of the plurality of expansion devices; determining that the at least one expansion device is relocated; resetting the plurality of expansion bus registers storing the flow control data; and writing new flow control data to the plurality of expansion bus registers based on the relocated at least one expansion device. 13. The method of claim 11 , wherein optimizing throughput of the plurality of expansion devices based on the flow control data comprises: identifying flow control limits for each of the plurality of expansion bus slots; comparing, for each of the plurality of expansion bus slots, an average flow control usage for an expansion device using the expansion bus slot to an identified flow control limit for the expansion bus slot, the flow control data including average flow control usage for each of the plurality of expansion devices; determining at least one candidate expansion device from the plurality of expansion devices based on the comparison; and assigning each candidate expansion device to one of the plurality of expansion bus slots based on the average flow control usage and the flow control limits. 14. The method of claim 13 , further comprising assigning a priority to each candidate expansion device based on average flow control usage, wherein a candidate expansion device having a highest average flow control usage is assigned a highest priority, wherein assigning each candidate expansion device to one of the plurality of expansion bus slots is further based on the priority of each candidate expansion device. 15. The method of claim 13 , wherein assigning each candidate expansion device to one of the plurality of expansion bus slots comprises: selecting a candidate expansion device having a highest average flow control usage, the selected candidate expansion device being coupled to an incumbent expansion bus slot; determining at least one candidate expansion bus slot from the plurality of expansion bus slots, each candidate expansion bus slot being physically compatible with the selected c
on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title
using a self-select method with individual priority code comparator · CPC title
Electrical coupling · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.