Modular and scalable PCIe controller architecture
AssigneeWestern Digital Technologies, Inc.
InventorsAvichay Haim Hodes, Judah Gamliel Hahn, Shay Benisty
Life of this patent
Estimating the term…
Abstract
The present disclosure generally relates to a Modular PCIe Unit (MPU), which is a single-lane PCI Express endpoint that can act as either a Stand-Alone Single-Lane or as a (one) Lane in a Multilane Endpoint Unit, composed by cascaded-MPUs. The MPU will include a PCIe link, a PCIe transition, a SoC specific and a PCIe phy that are all unique to the individual MPU. The MPUs are scalable in that a single MPU may be used or, if more MPUs are desired for higher performance, additional MPUs, each of which can be unique, added to create the Multilane Endpoint Unit.
Claims23
A memory system, comprising:
- a first modular PCIe unit, the first modular PCIe unit including:
- a first PCIe phy;
- a first PCIe link module coupled to the first PCIe phy;
- a first PCIe transaction component coupled to the first PCIe link module;
- and
- a first SoC specific device coupled to the first PCIe transaction component;
- a second modular PCIe unit;
- and
- a single interconnection bus coupled between the first modular PCIe unit and the second modular PCIe unit, wherein the first modular PCIe unit can communicate with the second modular PCIe unit through the single interconnection bus, wherein the single interconnection bus is configured to combine a portion of data sent through the first modular PCIe unit and the second modular PCIe unit as one data address, wherein at least one of the first modular PCIe unit and the second modular PCIe unit is configured to:
- sequence all transaction layer packets (TLPs) that are generated by the PCIe transaction component;
- ensure reliable delivery of TLPs between two endpoints via an acknowledgement protocol that explicitly requires replay of unacknowledged/bad TLPs;
- and
- initialize and manage all flow control credits.
A device, comprising:
- a host device;
- a storage device;
- and
- an interface device coupled between the host device and the storage device, the interface device including a plurality of modular PCIe units,
- wherein:
- the plurality of modular PCIe units are coupled together with a single interconnection bus;
- the single interconnection bus is directly coupled to each modular PCIe unit, wherein the plurality of modular PCIe units can communicate through the single interconnection bus, wherein the single interconnection bus is configured to combine a portion of data sent through the plurality of modular PCIe units as one data address;
- and
- at least one of the plurality of modular PCIe units is configured to:
- sequence all transaction layer packets (TLPs) that are generated by a PCIe transaction component;
- ensure reliable delivery of TLPs between two endpoints via an acknowledgement protocol that explicitly requires replay of unacknowledged/bad TLPs;
- and
- initialize and manage all flow control credits.
A method of delivering data to a host device, comprising:
- retrieving data from a memory device;
- delivering a first portion of the retrieved data to a first modular PCIe unit, wherein the first modular PCIe unit has first command data that indicates the first portion of the retrieved data is less than all the retrieved data;
- delivering a second portion of the retrieved data to a second modular PCIe unit, wherein the second modular PCIe unit has second command data that indicates the second portion of the retrieved data is less than the retrieved data;
- passing all the data through a single interconnection bus;
- delivering the first portion of the retrieved data from the first modular PCIe unit to the host device;
- delivering the second portion of the retrieved data from the second modular PCIe unit to the host device, wherein the first modular PCIe unit can communicate with the second modular PCIe unit through the single interconnection bus, wherein the single interconnection bus is configured to combine the first portion of the retrieved data sent through the first modular PCIe unit and the second portion of the retrieved data sent through the second modular PCIe unit as one data address;
- sequencing all transaction layer packets (TLPs) that are generated by a PCIe transaction component;
- ensuring reliable delivery of TLPs between two endpoints via an acknowledgement protocol that explicitly requires replay of unacknowledged/bad TLPs;
- and
- initializing and managing all flow control credits.
A method of receiving data, comprising:
- receiving a first portion of data from a host device through a first phy of a first modular PCIe unit;
- receiving a second portion of data from the host device through a second phy of a second modular PCIe unit;
- passing the first portion of the data and the second portion of the data through a single interconnection bus;
- sending a first portion of retrieved data to the first modular PCIe unit, wherein the first modular PCIe unit has first command data that indicates the first portion of the retrieved data is less than the retrieved data;
- sending a second portion of the retrieved data to the second modular PCIe unit, wherein the second modular PCIe unit has second command data that indicates the second portion of the retrieved data is less than the retrieved data, wherein the first modular PCIe unit can communicate with the second modular PCIe unit through the single interconnection bus, wherein the single interconnection bus is configured to combine the first portion of the retrieved data sent through the first modular PCIe unit and the second portion of the retrieved data sent through the second modular PCIe unit as one data address;
- and
- writing data from the first modular PCIe unit and second modular PCIe unit to a memory device, wherein at least one of the first modular PCIe unit and the second modular PCIe unit is configured to:
- sequence all transaction layer packets (TLPs) that are generated by a PCIe transaction component;
- ensure reliable delivery of TLPs between two endpoints via an acknowledgement protocol that explicitly requires replay of unacknowledged/bad TLPs;
- and
- initialize and manage all flow control credits.
A memory system, comprising:
- a first means to communicate with a host device;
- a second means to communicate with the host device, wherein:
- the first means is coupled to the second means with an interconnection bus;
- the interconnection bus is coupled to the first means at a location within the first means;
- and
- the interconnection bus is coupled to the second means at a location within the second means, wherein the first means communicates with the second means through the interconnection bus, wherein the interconnection bus is configured to combine a portion of data sent through the first means and the second means as one data address;
- wherein at least one of the first means and the second means is configured to:
- sequence all transaction layer packets (TLPs) that are generated by a PCIe transaction component;
- ensure reliable delivery of TLPs between two endpoints via an acknowledgement protocol that explicitly requires replay of unacknowledged/bad TLPs;
- and
- initialize and manage all flow control credits.
Dependencies are inferred from the claim text.