Context Processing for Multiple Active Write Commands in a Media Controller Architecture
First Claim
1. A method of transferring data from one or more host devices to a storage media coupled to a media controller, the method comprising:
- generating, by an instruction interface of the media controller, a transfer context for each write request received from a corresponding host device;
generating one or more receive-data threads corresponding to one or more data transfer contexts for each transfer context, wherein each receive-data thread corresponds to a data transfer between the corresponding host device and a receive data path of the media controller;
generating one or more buffer threads corresponding to one or more data transfer contexts for each transfer context, wherein each buffer thread corresponds to a data transfer between the receive data path of the media controller and a buffer subsystem of the media controller;
tracking, by a pending write table of the media controller, corresponding receive-data and buffer threads for each transfer context;
iteratively transferring, for each tracked transfer context, data from the receive data path to the buffer subsystem for a previous data transfer context of the corresponding buffer thread while transferring data from the host device to the receive data path for a subsequent data transfer context of the corresponding receive-data thread; and
repeating the iteratively transferring step for each tracked transfer context until all contexts of the corresponding buffer and receive-data threads are executed.
4 Assignments
0 Petitions
Accused Products
Abstract
Described embodiments provide a method of transferring data from host devices to a media controller. The media controller generates a transfer context for each write request received from a host device. Receive-data threads corresponding to data transfer contexts for each transfer context are generated, each receive-data thread corresponding to a data transfer between a host device and the media controller. Buffer threads corresponding to data transfer contexts for each transfer context are generated, each buffer thread corresponding to a data transfer between the receive data path and a buffer subsystem. The receive-data and buffer threads are tracked for each transfer context. For each tracked transfer context, data from the receive datapath is iteratively transferred to the buffer subsystem for a previous data transfer context of the buffer thread while data from the host device is transferred to the receive datapath for a subsequent data transfer context of the receive-data thread.
-
Citations
20 Claims
-
1. A method of transferring data from one or more host devices to a storage media coupled to a media controller, the method comprising:
-
generating, by an instruction interface of the media controller, a transfer context for each write request received from a corresponding host device; generating one or more receive-data threads corresponding to one or more data transfer contexts for each transfer context, wherein each receive-data thread corresponds to a data transfer between the corresponding host device and a receive data path of the media controller; generating one or more buffer threads corresponding to one or more data transfer contexts for each transfer context, wherein each buffer thread corresponds to a data transfer between the receive data path of the media controller and a buffer subsystem of the media controller; tracking, by a pending write table of the media controller, corresponding receive-data and buffer threads for each transfer context; iteratively transferring, for each tracked transfer context, data from the receive data path to the buffer subsystem for a previous data transfer context of the corresponding buffer thread while transferring data from the host device to the receive data path for a subsequent data transfer context of the corresponding receive-data thread; and repeating the iteratively transferring step for each tracked transfer context until all contexts of the corresponding buffer and receive-data threads are executed. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory machine-readable medium, having encoded thereon program code, wherein, when the program code is executed by a machine, the machine implements a method of transferring data from one or more host devices to a storage media coupled to a media controller, the method comprising:
-
generating, by an instruction interface of the media controller, a transfer context for each write request received from a corresponding host device; generating one or more receive-data threads corresponding to one or more data transfer contexts for each transfer context, wherein each receive-data thread corresponds to a data transfer between the corresponding host device and a receive data path of the media controller; generating one or more buffer threads corresponding to one or more data transfer contexts for each transfer context, wherein each buffer thread corresponds to a data transfer between the receive data path of the media controller and a buffer subsystem of the media controller; tracking, by a pending write table of the media controller, corresponding receive-data and buffer threads for each transfer context; iteratively transferring, for each tracked transfer context, data from the receive data path to the buffer subsystem for a previous data transfer context of the corresponding buffer thread while transferring data from the host device to the receive data path for a subsequent data transfer context of the corresponding receive-data thread; and repeating the iteratively transferring step for each tracked transfer context until all contexts of the corresponding buffer and receive-data threads are executed. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A media controller for transferring data from one or more host devices to a storage media coupled to the media controller, the media controller comprising:
-
a receive data path for receiving one or more write requests from one or more host devices to write data to the storage media; an instruction interface to generate a transfer context corresponding to each received write request; a context generator to generate i) one or more receive-data threads corresponding to one or more data transfer contexts for each transfer context, wherein each receive-data thread corresponds to a data transfer between the corresponding host device and a receive data path of the media controller, and ii) one or more buffer threads corresponding to one or more data transfer contexts for each transfer context, wherein each buffer thread corresponds to a data transfer between the receive data path of the media controller and a buffer subsystem of the media controller; a pending write table to track corresponding receive-data and buffer threads for each transfer context;
whereinthe pending write table is configured to, for each tracked transfer context, i) iteratively transfer data from the receive data path to the buffer subsystem for a previous data transfer context of the corresponding buffer thread while transferring data from the host device to the receive data path for a subsequent data transfer context of the corresponding receive-data thread, and ii) repeat the iterative transfer of data for each tracked transfer context until all contexts of the corresponding buffer and receive-data threads are executed. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification