US20180181340A1 - Method and apparatus for direct access from non-volatile memory to local memory - Google Patents
Method and apparatus for direct access from non-volatile memory to local memory Download PDFInfo
- Publication number
- US20180181340A1 US20180181340A1 US15/389,596 US201615389596A US2018181340A1 US 20180181340 A1 US20180181340 A1 US 20180181340A1 US 201615389596 A US201615389596 A US 201615389596A US 2018181340 A1 US2018181340 A1 US 2018181340A1
- Authority
- US
- United States
- Prior art keywords
- memory architecture
- gpu
- memory
- controller
- data transfer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Definitions
- a graphics processing unit may be nominally configured with a certain amount of local or dedicated memory, (hereinafter referred to as local), to service operations performed on the GPU.
- the local memory may be dynamic random access memory.
- Certain applications may require the transfer of data from non-volatile memory (NVM) to the local memory.
- NVM non-volatile memory
- OS operating system
- display driver device driver or similar hardware/software entity of a host computing system controls or manages the data transfer process.
- This data transfer process entails a two hop process; first from the NVM to a host memory, and then from the host memory to the local memory. This involves at least a root complex, which increases traffic and congestion.
- FIG. 1 is a processing system with a host computing system and solid state graphics (SSG) cards in accordance with certain implementations;
- SSG solid state graphics
- FIG. 2 is a flow diagram using the processing system of FIG. 1 in accordance with certain implementations.
- FIG. 3 is a block diagram of an example device in which one or more disclosed implementations may be implemented.
- the first memory architecture can be a non-volatile memory (NVM) or other similarly used memories, for example, along with associated controllers.
- the second memory architecture can be a local memory, a high bandwidth memory (HBM), a double data rate fourth-generation synchronous dynamic random-access memory (DDR4), a double data rate type five synchronous graphics random access memory (GDDR5), a hybrid memory cube or other similarly used memories, for example, along with associated controllers.
- HBM high bandwidth memory
- DDR4 double data rate fourth-generation synchronous dynamic random-access memory
- GDDR5 double data rate type five synchronous graphics random access memory
- hybrid memory cube a hybrid memory cube or other similarly used memories
- the method describes transferring data directly between the NVM and the local memory, which bypasses interaction with a system memory of a processor and a host system root complex.
- a transfer command is sent from the processor, (or a host agent in the GPU or dGPU), to a NVM controller.
- the NVM controller initiates transfer of the data directly between the NVM and the local memory.
- the method bypasses: 1) a host system root complex; and 2) storing the data in the system memory and then having to transfer the data to the local memory or NVM.
- a multi-hop data transfer can be accomplished in a single hop.
- FIG. 1 shows an example processing system 100 in accordance with certain implementations.
- the processing system 100 can include a host computing system 105 that is connected to one or more solid state graphics (SSG) boards or cards 110 1 to 110 n .
- the host computing system 105 includes a processor 120 , such as for example a central processing unit (CPU), which may be connected to, or in communication with, a host memory 122 such as for example random access memory (RAM).
- the processor 120 can include an operating system (OS), a device driver and other nominal elements.
- OS operating system
- the processor 120 can also be connected to, or in communication with, a number of components, including but not limited to, a bridge 124 and storage 126 .
- the components shown are illustrative and other components may also be connected to or be in communication with the CPU 105 .
- the components may be connected to or be in communication with the processor 120 using, for example, a high-speed serial computer expansion bus, such as but not limited to, a Peripheral Component Interconnect Express (PCIe) root complex and switch (collectively PCIe switch) 128 .
- PCIe switch 128 is shown for purposes of illustration and other electrical or communication interfaces may be used.
- Each SSG board 110 1 to 110 n includes a PCIe switch 136 1 to 136 n. for interfacing with PCIe switch 128 .
- Each PCIe switch 136 1 to 136 n. can be connected to or in communication with one or more non-volatile memory (NVM) controllers 134 1 to 134 k , such as for example, a NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCI) device, for accessing associated NVMs 135 1 to 135 k and can also be connected to one or more dGPUs 130 1 to 130 m .
- NVM non-volatile memory
- NVMHCI Non-Volatile Memory Host Controller Interface Specification
- Each dGPU 130 1 to 130 m is further connected to an associated local memory 132 1 to 132 m
- Each NVM controller 134 1 to 134 k can manage and access an associated NVM 135 1 to 135 k and in particular, can decode incoming commands from host computing system 105 or dGPU 130 1 to 130 m as described herein below.
- the SSG board described herein is illustrative and other configurations can be used without departing from the scope of the description and claims. Further configurations are described in co-pending application entitled “Method and Apparatus for Connecting Non-volatile Memory locally to a GPU through a Local Switch, Attorney Docket No. 160286-US-NP, which is incorporated by reference as if fully set forth.
- the processor 120 can instruct or enable direct data transfer from the associated local memory 132 1 to 132 m to one or more NVMs 135 1 to 135 k (arrow 142 ) or from one or more NVMs 135 1 to 135 k to the associated local memory (arrow 140 ).
- the direct data transfer can be initiated by an appropriate NVM controller 134 1 to 134 k via a local PCIe switch, such as for example, PCIe switch 136 1 to 136 n .
- the dGPU can have a hardware agent that can instruct the direct data transfer.
- This peer-to-peer data transfer or access can alleviate the disadvantages discussed herein.
- this process uses a single hop data transfer process, from local memory 132 1 to 132 m to NVM 135 1 to 135 k . That is, the data transfer can be executed locally with respect to the dGPU without involvement of processor 120 or PCIe root complex/switch 128 during execution of the data transfer.
- NVM controller 134 1 to 134 k since data transfer to and from local memory 132 1 to 132 m is initiated by an appropriate NVM controller 134 1 to 134 k .
- FIG. 2 in concert with FIG. 1 , shows an example flowchart 200 for transferring data directly between local memory 132 1 to 132 m and one or more NVMs 135 1 to 135 k .
- commands are executed by one or more dGPUs 130 1 to 130 m , certain commands may need access between to one or more NVMs 135 1 to 135 k (step 205 ).
- a data transfer command is sent by a processor 120 or hardware agents in one or more dGPUs 130 1 to 130 m to appropriate NVM controllers 134 1 to 134 k (step 210 ).
- the appropriate NVM controller 134 1 to 134 k initiates the data transfer (step 215 ).
- the data is transferred between local memory 132 1 to 132 m and one or more NVMs 135 1 to 135 k via a local PCIe switch 136 1 to 136 n , as appropriate (step 220 ).
- FIG. 3 is a block diagram of an example device 300 in which one portion of one or more disclosed implementations may be implemented.
- the device 300 may include, for example, a head mounted device, a server, a computer, a gaming device, a handheld device, a set-top box, a television, a mobile phone, or a tablet computer.
- the device 300 includes a processor 302 , a memory 304 , a storage 306 , one or more input devices 308 , and one or more output devices 310 .
- the device 300 may also optionally include an input driver 312 and an output driver 314 . It is understood that the device 300 may include additional components not shown in FIG. 3 .
- the processor 302 may include a central processing unit (CPU), a graphics processing unit (GPU), a CPU and GPU located on the same die, or one or more processor cores, wherein each processor core may be a CPU or a GPU.
- the memory 304 may be located on the same die as the processor 302 , or may be located separately from the processor 302 .
- the memory 304 may include a volatile or non-volatile memory, for example, random access memory (RAM), dynamic RAM, or a cache.
- the storage 306 may include a fixed or removable storage, for example, a hard disk drive, a solid state drive, an optical disk, or a flash drive.
- the input devices 308 may include a keyboard, a keypad, a touch screen, a touch pad, a detector, a microphone, an accelerometer, a gyroscope, a biometric scanner, or a network connection (e.g., a wireless local area network card for transmission and/or reception of wireless IEEE 802 signals).
- the output devices 310 may include a display, a speaker, a printer, a haptic feedback device, one or more lights, an antenna, or a network connection (e.g., a wireless local area network card for transmission and/or reception of wireless IEEE 802 signals).
- the input driver 312 communicates with the processor 302 and the input devices 308 , and permits the processor 302 to receive input from the input devices 308 .
- the output driver 314 communicates with the processor 302 and the output devices 310 , and permits the processor 302 to send output to the output devices 310 . It is noted that the input driver 312 and the output driver 314 are optional components, and that the device 300 will operate in the same manner if the input driver 312 and the output driver 314 are not present.
- a method for transferring data includes a data transfer command being received by a first memory architecture controller associated with a first memory architecture when a graphics processing unit (GPU) needs access to the first memory architecture.
- the first memory architecture controller initiates a data transfer directly from the first memory architecture to a second memory architecture associated with the GPU. Data is then transferred directly from the first memory architecture to the second memory architecture associated with the GPU using a local switch and bypassing a host processor switch.
- the data transfer command is sent by a host processor.
- the data transfer command is sent by a hardware agent of the at least one GPU.
- another data transfer command is received by the first memory architecture controller associated with the first memory architecture when the GPU needs access to the first memory architecture.
- the first memory architecture controller initiates a data transfer directly from the second memory architecture to the first memory architecture. Data is then transferred from the second memory architecture to the first memory architecture associated with the GPU using the local switch and bypassing the host processor switch.
- an apparatus for transferring data includes at least one graphics processing unit (GPU), a second memory architecture associated with each GPU, at least one first memory architecture, a first memory architecture controller connected with each first memory architecture and a local switch coupled to each first memory architecture controller and the at least one GPU.
- the at least one first memory architecture controller receives a data transfer command when the at least one GPU needs access to a first memory architecture associated with the at least one first memory architecture controller, directly initiates a data transfer directly from the first memory architecture to the second memory architecture associated with the at least one GPU and transfers data directly from the first memory architecture to the second memory architecture associated with the at least one GPU using the local switch and bypassing a host processor switch.
- the data transfer command is sent by a host processor.
- the data transfer command is sent by a hardware agent of the at least one GPU.
- the at least one first memory architecture controller receives another data transfer command when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller, initiates a data transfer directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller and transfers data directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
- a system for transferring data includes a host processor including a processor and a host processor switch and at least one solid state graphics (SSG) card connected to the host processor.
- SSG card includes at least one graphics processing unit (GPU), a second memory architecture associated with each GPU, at least one first memory architecture, a first memory architecture controller connected with each first memory architecture, and a local switch coupled to each first memory architecture controller and the at least one GPU.
- the host processor switch is connected to each local switch.
- the at least one first memory architecture controller receives a data transfer command when the at least one GPU needs access to a first memory architecture associated with the at least one first memory architecture controller, directly initiates a data transfer directly from the first memory architecture to the second memory architecture associated with the at least one GPU, and transfers data directly from the first memory architecture to the second memory architecture associated with the at least one GPU using the local switch and bypassing the host processor switch.
- the data transfer command is sent by the processor.
- the data transfer command is sent by a hardware agent of the at least one GPU.
- the at least one first memory architecture controller receives another data transfer command when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller, initiates a data transfer directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller, and transfers data directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
- a computer readable non-transitory medium including instructions which when executed in a processing system cause the processing system to execute a method for transferring data.
- the method includes a data transfer command being received at a first memory architecture controller associated with a first memory architecture when a graphics processing unit (GPU) needs access to the first memory architecture.
- a data transfer initiated by the first memory architecture controller directly from the first memory architecture to a second memory architecture associated with the GPU.
- Data is then transferred directly from the first memory architecture to the second memory architecture associated with the GPU using a local switch and bypassing a host processor switch.
- the data transfer command is sent by a host processor.
- the data transfer command is sent by a hardware agent of the at least one GPU.
- another data transfer command is received by the first memory architecture controller when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller.
- a data transfer is initiated by the first memory architecture controller to directly transfer from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller.
- Data is then directly transferred from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
- a computer readable non-transitory medium including instructions which when executed in a processing system cause the processing system to execute a method for transferring data directly from a second memory architecture in a GPU to a first memory architecture.
- processors include, by way of example, a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) circuits, any other type of integrated circuit (IC), and/or a state machine.
- DSP digital signal processor
- ASICs Application Specific Integrated Circuits
- FPGAs Field Programmable Gate Arrays
- Such processors may be manufactured by configuring a manufacturing process using the results of processed hardware description language (HDL) instructions and other intermediary data including netlists (such instructions capable of being stored on a computer readable media). The results of such processing may be maskworks that are then used in a semiconductor manufacturing process to manufacture a processor which implements aspects of the embodiments.
- HDL hardware description language
- non-transitory computer-readable storage mediums include a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs).
- ROM read only memory
- RAM random access memory
- register cache memory
- semiconductor memory devices magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
Described herein is a method and system for directly accessing and transferring data between a first memory architecture and a second memory architecture associated with a graphics processing unit (GPU) or a discrete GPU (dGPU). In particular, a method is described for transferring data between the first memory architecture and the second memory architecture that bypasses interaction with a system memory of a processor and a root complex. A transfer command is sent from the processor, (or a host agent in the GPU or dGPU), to a first memory architecture controller. The first memory architecture controller initiates the transfer of the data directly between the first memory architecture and the second memory architecture. The method bypasses: 1) a host root complex; and 2) storing the data in the system memory and then having to transfer the data to the second memory architecture or the first memory architecture.
Description
- This application is related to co-pending application entitled “Method and Apparatus for Connecting Non-volatile Memory locally to a GPU through a Local Switch”, Attorney Docket No. 160286-US-NP, filed on same date and to co-pending application entitled “Method and Apparatus for Accessing Non-volatile Memory As Byte Addressable Memory”, Attorney Docket No. 160287-US-NP, filed on same date, and to co-pending application entitled “Method and Apparatus for Integration of Non-volatile Memory”, Attorney Docket No. 160288-US-NP, filed on same date, which are incorporated by reference as if fully set forth herein.
- A graphics processing unit (GPU) may be nominally configured with a certain amount of local or dedicated memory, (hereinafter referred to as local), to service operations performed on the GPU. For example, the local memory may be dynamic random access memory. Certain applications may require the transfer of data from non-volatile memory (NVM) to the local memory. In this scenario, an operating system (OS), display driver, device driver or similar hardware/software entity of a host computing system controls or manages the data transfer process. This data transfer process entails a two hop process; first from the NVM to a host memory, and then from the host memory to the local memory. This involves at least a root complex, which increases traffic and congestion.
- A more detailed understanding may be had from the following description, given by way of example in conjunction with the accompanying drawings wherein:
-
FIG. 1 is a processing system with a host computing system and solid state graphics (SSG) cards in accordance with certain implementations; -
FIG. 2 is a flow diagram using the processing system ofFIG. 1 in accordance with certain implementations; and -
FIG. 3 is a block diagram of an example device in which one or more disclosed implementations may be implemented. - Described herein is a method and system for directly accessing and transferring data between a first memory architecture and a second memory architecture associated with a graphics processing unit (GPU) or a discrete GPU (dGPU). The first memory architecture can be a non-volatile memory (NVM) or other similarly used memories, for example, along with associated controllers. The second memory architecture can be a local memory, a high bandwidth memory (HBM), a double data rate fourth-generation synchronous dynamic random-access memory (DDR4), a double data rate type five synchronous graphics random access memory (GDDR5), a hybrid memory cube or other similarly used memories, for example, along with associated controllers. For purposes of illustration and discussion, the terms NVM and local memory will be used in the description without limiting the scope of the specification and claims.
- In particular, the method describes transferring data directly between the NVM and the local memory, which bypasses interaction with a system memory of a processor and a host system root complex. A transfer command is sent from the processor, (or a host agent in the GPU or dGPU), to a NVM controller. The NVM controller initiates transfer of the data directly between the NVM and the local memory. The method bypasses: 1) a host system root complex; and 2) storing the data in the system memory and then having to transfer the data to the local memory or NVM. In effect, a multi-hop data transfer can be accomplished in a single hop.
-
FIG. 1 shows anexample processing system 100 in accordance with certain implementations. Theprocessing system 100 can include ahost computing system 105 that is connected to one or more solid state graphics (SSG) boards orcards 110 1 to 110 n. Thehost computing system 105 includes aprocessor 120, such as for example a central processing unit (CPU), which may be connected to, or in communication with, ahost memory 122 such as for example random access memory (RAM). Theprocessor 120 can include an operating system (OS), a device driver and other nominal elements. Theprocessor 120 can also be connected to, or in communication with, a number of components, including but not limited to, abridge 124 andstorage 126. The components shown are illustrative and other components may also be connected to or be in communication with theCPU 105. The components may be connected to or be in communication with theprocessor 120 using, for example, a high-speed serial computer expansion bus, such as but not limited to, a Peripheral Component Interconnect Express (PCIe) root complex and switch (collectively PCIe switch) 128. ThePCIe switch 128 is shown for purposes of illustration and other electrical or communication interfaces may be used. - Each
SSG board 110 1 to 110 n includes aPCIe switch 136 1 to 136 n. for interfacing withPCIe switch 128. EachPCIe switch 136 1 to 136 n. can be connected to or in communication with one or more non-volatile memory (NVM)controllers 134 1 to 134 k, such as for example, a NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCI) device, for accessing associated NVMs 135 1 to 135 k and can also be connected to one or more dGPUs 130 1 to 130 m. Each dGPU 130 1 to 130 m is further connected to an associated local memory 132 1 to 132 m EachNVM controller 134 1 to 134 k can manage and access an associated NVM 135 1 to 135 k and in particular, can decode incoming commands fromhost computing system 105 or dGPU 130 1 to 130 m as described herein below. The SSG board described herein is illustrative and other configurations can be used without departing from the scope of the description and claims. Further configurations are described in co-pending application entitled “Method and Apparatus for Connecting Non-volatile Memory locally to a GPU through a Local Switch, Attorney Docket No. 160286-US-NP, which is incorporated by reference as if fully set forth. - Operationally, when a dGPU of the one or more dGPUs 130 1 to 130 m is executing commands that require data transfer between an associated local memory and one or more NVMs 135 1 to 135 k, then the
processor 120 can instruct or enable direct data transfer from the associated local memory 132 1 to 132 m to one or more NVMs 135 1 to 135 k (arrow 142) or from one or more NVMs 135 1 to 135 k to the associated local memory (arrow 140). The direct data transfer can be initiated by anappropriate NVM controller 134 1 to 134 k via a local PCIe switch, such as for example,PCIe switch 136 1 to 136 n. In an implementation, the dGPU can have a hardware agent that can instruct the direct data transfer. This peer-to-peer data transfer or access can alleviate the disadvantages discussed herein. As shown inFIG. 1 , this process uses a single hop data transfer process, from local memory 132 1 to 132 m to NVM 135 1 to 135 k. That is, the data transfer can be executed locally with respect to the dGPU without involvement ofprocessor 120 or PCIe root complex/switch 128 during execution of the data transfer. Moreover, since data transfer to and from local memory 132 1 to 132 m is initiated by anappropriate NVM controller 134 1 to 134 k. This may increase the efficiency of theprocessor 120 as it is not involved in the actual transfer of the data, increase the efficiency of dGPU 130 1 to 130 m as it is not using resources, such as for example memory management resources for initiating and executing the data transfer, decrease system latency and increase system performance. -
FIG. 2 , in concert withFIG. 1 , shows anexample flowchart 200 for transferring data directly between local memory 132 1 to 132 m and one or more NVMs 135 1 to 135 k. As commands are executed by one or more dGPUs 130 1 to 130 m, certain commands may need access between to one or more NVMs 135 1 to 135 k (step 205). A data transfer command is sent by aprocessor 120 or hardware agents in one or more dGPUs 130 1 to 130 m toappropriate NVM controllers 134 1 to 134 k (step 210). Theappropriate NVM controller 134 1 to 134 k initiates the data transfer (step 215). The data is transferred between local memory 132 1 to 132 m and one or more NVMs 135 1 to 135 k via alocal PCIe switch 136 1 to 136 n, as appropriate (step 220). -
FIG. 3 is a block diagram of anexample device 300 in which one portion of one or more disclosed implementations may be implemented. Thedevice 300 may include, for example, a head mounted device, a server, a computer, a gaming device, a handheld device, a set-top box, a television, a mobile phone, or a tablet computer. Thedevice 300 includes aprocessor 302, amemory 304, astorage 306, one ormore input devices 308, and one ormore output devices 310. Thedevice 300 may also optionally include aninput driver 312 and anoutput driver 314. It is understood that thedevice 300 may include additional components not shown inFIG. 3 . - The
processor 302 may include a central processing unit (CPU), a graphics processing unit (GPU), a CPU and GPU located on the same die, or one or more processor cores, wherein each processor core may be a CPU or a GPU. Thememory 304 may be located on the same die as theprocessor 302, or may be located separately from theprocessor 302. Thememory 304 may include a volatile or non-volatile memory, for example, random access memory (RAM), dynamic RAM, or a cache. - The
storage 306 may include a fixed or removable storage, for example, a hard disk drive, a solid state drive, an optical disk, or a flash drive. Theinput devices 308 may include a keyboard, a keypad, a touch screen, a touch pad, a detector, a microphone, an accelerometer, a gyroscope, a biometric scanner, or a network connection (e.g., a wireless local area network card for transmission and/or reception of wireless IEEE 802 signals). Theoutput devices 310 may include a display, a speaker, a printer, a haptic feedback device, one or more lights, an antenna, or a network connection (e.g., a wireless local area network card for transmission and/or reception of wireless IEEE 802 signals). - The
input driver 312 communicates with theprocessor 302 and theinput devices 308, and permits theprocessor 302 to receive input from theinput devices 308. Theoutput driver 314 communicates with theprocessor 302 and theoutput devices 310, and permits theprocessor 302 to send output to theoutput devices 310. It is noted that theinput driver 312 and theoutput driver 314 are optional components, and that thedevice 300 will operate in the same manner if theinput driver 312 and theoutput driver 314 are not present. - In general, in an implementation, a method for transferring data includes a data transfer command being received by a first memory architecture controller associated with a first memory architecture when a graphics processing unit (GPU) needs access to the first memory architecture. The first memory architecture controller initiates a data transfer directly from the first memory architecture to a second memory architecture associated with the GPU. Data is then transferred directly from the first memory architecture to the second memory architecture associated with the GPU using a local switch and bypassing a host processor switch. In an implementation, the data transfer command is sent by a host processor. In an implementation, the data transfer command is sent by a hardware agent of the at least one GPU. In an implementation, another data transfer command is received by the first memory architecture controller associated with the first memory architecture when the GPU needs access to the first memory architecture. The first memory architecture controller initiates a data transfer directly from the second memory architecture to the first memory architecture. Data is then transferred from the second memory architecture to the first memory architecture associated with the GPU using the local switch and bypassing the host processor switch.
- In an implementation, an apparatus for transferring data includes at least one graphics processing unit (GPU), a second memory architecture associated with each GPU, at least one first memory architecture, a first memory architecture controller connected with each first memory architecture and a local switch coupled to each first memory architecture controller and the at least one GPU. The at least one first memory architecture controller receives a data transfer command when the at least one GPU needs access to a first memory architecture associated with the at least one first memory architecture controller, directly initiates a data transfer directly from the first memory architecture to the second memory architecture associated with the at least one GPU and transfers data directly from the first memory architecture to the second memory architecture associated with the at least one GPU using the local switch and bypassing a host processor switch. In an implementation, the data transfer command is sent by a host processor. In an implementation, the data transfer command is sent by a hardware agent of the at least one GPU. In an implementation, the at least one first memory architecture controller receives another data transfer command when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller, initiates a data transfer directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller and transfers data directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
- In an implementation, a system for transferring data includes a host processor including a processor and a host processor switch and at least one solid state graphics (SSG) card connected to the host processor. Each SSG card includes at least one graphics processing unit (GPU), a second memory architecture associated with each GPU, at least one first memory architecture, a first memory architecture controller connected with each first memory architecture, and a local switch coupled to each first memory architecture controller and the at least one GPU. In an implementation, the host processor switch is connected to each local switch. In an implementation, the at least one first memory architecture controller receives a data transfer command when the at least one GPU needs access to a first memory architecture associated with the at least one first memory architecture controller, directly initiates a data transfer directly from the first memory architecture to the second memory architecture associated with the at least one GPU, and transfers data directly from the first memory architecture to the second memory architecture associated with the at least one GPU using the local switch and bypassing the host processor switch. In an implementation, the data transfer command is sent by the processor. In an implementation, the data transfer command is sent by a hardware agent of the at least one GPU. In an implementation, the at least one first memory architecture controller receives another data transfer command when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller, initiates a data transfer directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller, and transfers data directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
- In an implementation, a computer readable non-transitory medium including instructions which when executed in a processing system cause the processing system to execute a method for transferring data. The method includes a data transfer command being received at a first memory architecture controller associated with a first memory architecture when a graphics processing unit (GPU) needs access to the first memory architecture. A data transfer initiated by the first memory architecture controller directly from the first memory architecture to a second memory architecture associated with the GPU. Data is then transferred directly from the first memory architecture to the second memory architecture associated with the GPU using a local switch and bypassing a host processor switch. In an implementation, the data transfer command is sent by a host processor. In an implementation, the data transfer command is sent by a hardware agent of the at least one GPU. In an implementation, another data transfer command is received by the first memory architecture controller when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller. A data transfer is initiated by the first memory architecture controller to directly transfer from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller. Data is then directly transferred from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
- In general and without limiting implementations described herein, a computer readable non-transitory medium including instructions which when executed in a processing system cause the processing system to execute a method for transferring data directly from a second memory architecture in a GPU to a first memory architecture.
- It should be understood that many variations are possible based on the disclosure herein. Although features and elements are described above in particular combinations, each feature or element may be used alone without the other features and elements or in various combinations with or without other features and elements.
- The methods provided may be implemented in a general purpose computer, a processor, or a processor core. Suitable processors include, by way of example, a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) circuits, any other type of integrated circuit (IC), and/or a state machine. Such processors may be manufactured by configuring a manufacturing process using the results of processed hardware description language (HDL) instructions and other intermediary data including netlists (such instructions capable of being stored on a computer readable media). The results of such processing may be maskworks that are then used in a semiconductor manufacturing process to manufacture a processor which implements aspects of the embodiments.
- The methods or flow charts provided herein may be implemented in a computer program, software, or firmware incorporated in a non-transitory computer-readable storage medium for execution by a general purpose computer or a processor. Examples of non-transitory computer-readable storage mediums include a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs).
Claims (22)
1. A method for transferring data, the method comprising:
receiving, at a first memory architecture controller associated with a first memory architecture, a data transfer command when a graphics processing unit (GPU) needs access to the first memory architecture;
initiating, by the first memory architecture controller, a data transfer directly from the first memory architecture to a second memory architecture associated with the GPU; and
transferring data directly from the first memory architecture to the second memory architecture associated with the GPU using a local switch and bypassing a host processor switch.
2. The method of claim 1 , wherein the data transfer command is sent by a host processor.
3. The method of claim 1 , wherein the data transfer command is sent by a hardware agent of the at least one GPU.
4. The method of claim 1 , further comprising:
receiving, at the first memory architecture controller associated with the first memory architecture, another data transfer command when the GPU needs access to the first memory architecture;
initiating, by the first memory architecture controller, a data transfer directly from the second memory architecture to the first memory architecture; and
transferring data directly from the second memory architecture to the first memory architecture associated with the GPU using the local switch and bypassing the host processor switch.
5. The method of claim 1 , wherein the first memory architecture controller is a non-volatile memory (NVM) controller and the first memory architecture is a NVM.
6. The method of claim 5 , wherein the second memory architecture is a local memory.
7. An apparatus for transferring data, comprising:
at least one first memory architecture;
a first memory architecture controller connected with each first memory architecture;
at least one graphics processing unit (GPU);
a second memory architecture associated with each GPU; and
a local switch coupled to each first memory architecture controller and the at least one GPU,
wherein the at least one first memory architecture controller:
receives a data transfer command when the at least one GPU needs access to a first memory architecture associated with the at least one first memory architecture controller;
directly initiates a data transfer directly from the first memory architecture to the second memory architecture associated with the at least one GPU; and
transfers data directly from the first memory architecture to the second memory architecture associated with the at least one GPU using the local switch and bypassing a host processor switch.
8. The apparatus of claim 7 , wherein the data transfer command is sent by a host processor.
9. The apparatus of claim 7 , wherein the data transfer command is sent by a hardware agent of the at least one GPU.
10. The apparatus of claim 7 , wherein the at least one first memory architecture controller:
receives another data transfer command when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller;
initiates a data transfer directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller; and
transfers data directly from the local memory associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
11. The apparatus of claim 7 , wherein the first memory architecture controller is a non-volatile memory (NVM) controller and the first memory architecture is a NVM.
12. The apparatus of claim 7 , wherein the second memory architecture is a local memory.
13. A system for transferring data, comprising:
a host processor including a processor and a host processor switch; and
at least one solid state graphics (SSG) card connected to the host processor, wherein each SSG card includes:
at least one first memory architecture;
a first memory architecture controller connected with each first memory architecture;
at least one graphics processing unit (GPU);
a second memory architecture associated with each GPU;
and
a local switch coupled to each first memory architecture controller and the at least one GPU,
wherein the host processor switch is connected to each local switch, and
wherein the at least one first memory architecture controller:
receives a data transfer command when the at least one GPU needs access to a first memory architecture associated with the at least one first memory architecture controller;
directly initiates a data transfer directly from the first memory architecture to the second memory architecture associated with the at least one GPU; and
transfers data directly from the first memory architecture to the second memory architecture associated with the at least one GPU using the local switch and bypassing the host processor switch.
14. The system of claim 13 , wherein the data transfer command is sent by the host processor.
15. The system of claim 13 , wherein the data transfer command is sent by a hardware agent of the at least one GPU.
16. The system of claim 13 , wherein the at least one first memory architecture controller:
receives another data transfer command when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller;
initiates a data transfer directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller; and
transfers data directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
17. The system of claim 13 , wherein the first memory architecture controller is a non-volatile memory (NVM) controller and the first memory architecture is a NVM.
18. The system of claim 13 , wherein the second memory architecture is a local memory.
19. A computer readable non-transitory medium including instructions which when executed in a processing system cause the processing system to execute a method for transferring data, the method comprising the steps of:
receiving, at a first memory architecture controller associated with a first memory architecture, a data transfer command when a graphics processing unit (GPU) needs access to the first memory architecture;
initiating, by the first memory architecture controller, a data transfer directly from the first memory architecture to a second memory architecture associated with the GPU; and
transferring data directly from the first memory architecture to the second memory architecture associated with the GPU using a local switch and bypassing a host processor switch.
20. The computer readable non-transitory medium of claim 19 , wherein the data transfer command is sent by a host processor.
21. The computer readable non-transitory medium of claim 19 , wherein the data transfer command is sent by a hardware agent of the at least one GPU.
22. The computer readable non-transitory medium of claim 19 , the method further comprising the steps of:
receiving, at the first memory architecture controller, another data transfer command when the at least one GPU needs access to the first memory architecture associated with the at least one first memory architecture controller;
initiating, by the first memory architecture controller, a data transfer directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller; and
transferring data directly from the second memory architecture associated with the at least one GPU to the first memory architecture associated with the at least one first memory architecture controller using the local switch and bypassing the host processor switch.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/389,596 US20180181340A1 (en) | 2016-12-23 | 2016-12-23 | Method and apparatus for direct access from non-volatile memory to local memory |
US15/582,479 US10445275B2 (en) | 2016-12-23 | 2017-04-28 | System on chip having integrated solid state graphics controllers |
US16/055,716 US10761736B2 (en) | 2016-12-23 | 2018-08-06 | Method and apparatus for integration of non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/389,596 US20180181340A1 (en) | 2016-12-23 | 2016-12-23 | Method and apparatus for direct access from non-volatile memory to local memory |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/389,747 Continuation-In-Part US10268620B2 (en) | 2016-12-23 | 2016-12-23 | Apparatus for connecting non-volatile memory locally to a GPU through a local switch |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/582,479 Continuation-In-Part US10445275B2 (en) | 2016-12-23 | 2017-04-28 | System on chip having integrated solid state graphics controllers |
US16/055,716 Continuation US10761736B2 (en) | 2016-12-23 | 2018-08-06 | Method and apparatus for integration of non-volatile memory |
Publications (1)
Publication Number | Publication Date |
---|---|
US20180181340A1 true US20180181340A1 (en) | 2018-06-28 |
Family
ID=62625072
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/389,596 Abandoned US20180181340A1 (en) | 2016-12-23 | 2016-12-23 | Method and apparatus for direct access from non-volatile memory to local memory |
US16/055,716 Active 2037-01-21 US10761736B2 (en) | 2016-12-23 | 2018-08-06 | Method and apparatus for integration of non-volatile memory |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/055,716 Active 2037-01-21 US10761736B2 (en) | 2016-12-23 | 2018-08-06 | Method and apparatus for integration of non-volatile memory |
Country Status (1)
Country | Link |
---|---|
US (2) | US20180181340A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037269B1 (en) | 2020-03-27 | 2021-06-15 | Intel Corporation | High-speed resume for GPU applications |
WO2022271541A1 (en) * | 2021-06-24 | 2022-12-29 | Advanced Micro Devices, Inc. | Trusted processor for saving gpu context to system memory |
CN115952126A (en) * | 2023-03-14 | 2023-04-11 | 沐曦集成电路(上海)有限公司 | GPU processor system |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220413732A1 (en) * | 2021-06-28 | 2022-12-29 | Advanced Micro Devices, Inc. | System and method for transferring data from non-volatile memory to a process accelerator |
US12118281B2 (en) * | 2022-06-07 | 2024-10-15 | Dell Products L.P. | LCS orchestrator device/expansion device secondary circuit board system |
KR20240109445A (en) * | 2023-01-04 | 2024-07-11 | 삼성전자주식회사 | Computational storage device, storage system including the same, and operating method thereof |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5968143A (en) | 1995-12-13 | 1999-10-19 | International Business Machines Corporation | Information handling system for transfer of command blocks to a local processing side without local processor intervention |
US7603533B1 (en) | 2003-07-22 | 2009-10-13 | Acronis Inc. | System and method for data protection on a storage medium |
US20050251617A1 (en) | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US7281104B1 (en) | 2005-03-21 | 2007-10-09 | Acronis Inc. | System and method for online data migration |
US7953948B1 (en) | 2005-06-17 | 2011-05-31 | Acronis Inc. | System and method for data protection on a storage medium |
US20090203430A1 (en) | 2008-02-07 | 2009-08-13 | Igt | Hybrid memory system and spin-buffer journaling in a gaming machine |
KR101573047B1 (en) | 2009-01-23 | 2015-12-02 | 삼성전자주식회사 | Complex memory device and I/O processing method using these |
US9058675B2 (en) | 2010-05-29 | 2015-06-16 | Intel Corporation | Non-volatile storage for graphics hardware |
US8996781B2 (en) | 2012-11-06 | 2015-03-31 | OCZ Storage Solutions Inc. | Integrated storage/processing devices, systems and methods for performing big data analytics |
US9003071B2 (en) | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US9311266B2 (en) | 2013-06-14 | 2016-04-12 | National Instruments Corporation | Hidden base address register programming in peripheral component interconnect express buses |
US9304690B2 (en) | 2014-05-07 | 2016-04-05 | HGST Netherlands B.V. | System and method for peer-to-peer PCIe storage transfers |
US10275175B2 (en) | 2014-10-06 | 2019-04-30 | Western Digital Technologies, Inc. | System and method to provide file system functionality over a PCIe interface |
US9916634B2 (en) | 2015-06-12 | 2018-03-13 | Intel Corporation | Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices |
-
2016
- 2016-12-23 US US15/389,596 patent/US20180181340A1/en not_active Abandoned
-
2018
- 2018-08-06 US US16/055,716 patent/US10761736B2/en active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037269B1 (en) | 2020-03-27 | 2021-06-15 | Intel Corporation | High-speed resume for GPU applications |
EP3886036A1 (en) * | 2020-03-27 | 2021-09-29 | Intel Corporation | High-speed resume for gpu applications |
US11443406B2 (en) | 2020-03-27 | 2022-09-13 | Intel Corporation | High-speed resume for GPU applications |
WO2022271541A1 (en) * | 2021-06-24 | 2022-12-29 | Advanced Micro Devices, Inc. | Trusted processor for saving gpu context to system memory |
CN115952126A (en) * | 2023-03-14 | 2023-04-11 | 沐曦集成电路(上海)有限公司 | GPU processor system |
Also Published As
Publication number | Publication date |
---|---|
US10761736B2 (en) | 2020-09-01 |
US20180349057A1 (en) | 2018-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180181340A1 (en) | Method and apparatus for direct access from non-volatile memory to local memory | |
US11385795B2 (en) | Method and apparatus to enable individual non volatile memory express (NVMe) input/output (IO) queues on differing network addresses of an NVMe controller | |
US10936533B2 (en) | GPU remote communication with triggered operations | |
CN109992405B (en) | Method and network card for processing data message | |
US10678733B2 (en) | Apparatus for connecting non-volatile memory locally to a GPU through a local switch | |
JP2016035743A (en) | Input/output interceptor logic including flush control logic, and computer implemented method using said input/output interceptor logic | |
US9881680B2 (en) | Multi-host power controller (MHPC) of a flash-memory-based storage device | |
US10007464B1 (en) | Method and apparatus for integration of non-volatile memory | |
US10521389B2 (en) | Method and apparatus for accessing non-volatile memory as byte addressable memory | |
AU2016284002A1 (en) | Coherency driven enhancements to a peripheral component interconnect (PCI) express (PCIe) transaction layer | |
JP7403457B2 (en) | Near-memory hardened compute blocks for configurable computing boards | |
US20170262367A1 (en) | Multi-rank collision reduction in a hybrid parallel-serial memory system | |
US10198219B2 (en) | Method and apparatus for en route translation in solid state graphics systems | |
US20140006645A1 (en) | Emulated keyboard controller and embedded controller interface via an interconnect interface | |
US20170178275A1 (en) | Method and system for using solid state device as eviction pad for graphics processing unit | |
US10445275B2 (en) | System on chip having integrated solid state graphics controllers | |
JP2017535119A (en) | Priority arbitration to reduce interference | |
US11630502B2 (en) | Hierarchical state save and restore for device with varying power states | |
US12067237B2 (en) | Flexible memory system | |
JPWO2019143442A5 (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ATI TECHNOLOGIES ULC, CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OSQUEIZADEH, NIMA;REEL/FRAME:040899/0184 Effective date: 20161121 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |