Command and interrupt grouping for a data storage device
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-013/24
출원번호
US-0537727
(2009-08-07)
등록번호
US-8250271
(2012-08-21)
발명자
/ 주소
Swing, Andrew T.
Borchers, Albert T.
Grundler, Grant
출원인 / 주소
Google Inc.
대리인 / 주소
Brake Hughes Bellermann LLP
인용정보
피인용 횟수 :
19인용 특허 :
50
초록▼
A data storage device may include multiple memory chips and a controller that is operably coupled to the memory chips and that is arranged and configured to receive a group of commands from a host, where each of the commands in the group includes a same group number to identify the commands as part
A data storage device may include multiple memory chips and a controller that is operably coupled to the memory chips and that is arranged and configured to receive a group of commands from a host, where each of the commands in the group includes a same group number to identify the commands as part of the group, process the group of the commands using the memory chips and generate and send a single interrupt to the host when the group of the commands completes processing.
대표청구항▼
1. A data storage device, comprising: multiple memory chips; anda controller that is operably coupled to the memory chips and that is arranged and configured to: receive multiple groups of commands from a host, wherein each group of commands is assigned a group number and each command in a specific
1. A data storage device, comprising: multiple memory chips; anda controller that is operably coupled to the memory chips and that is arranged and configured to: receive multiple groups of commands from a host, wherein each group of commands is assigned a group number and each command in a specific group includes a same group number to identify the commands as part of the specific group,process the groups of the commands using the memory chips, andgenerate and send a single interrupt to the host for each of the groups when each of the groups of the commands completes processing,wherein the controller is capable of maintaining an order of the commands within a same group designated for a same storage location and, at a same time, is capable of reordering and dispatching commands from different groups designated for different storage locations in a non-contiguous order. 2. The data storage device of claim 1 wherein each of the commands includes a command header and the command header includes the group number. 3. The data storage device of claim 1 wherein a last command in the group of the commands includes a flag in a command header to indicate the last command to the controller. 4. The data storage device of claim 1 wherein the group number identifies each of the commands as part of the group without using pointers in the commands to point to a next command in the group. 5. The data storage device of claim 1 wherein the controller comprises an interrupt processor that is arranged and configured to track the group of the commands as the commands are processed by the controller and to generate the single interrupt to send to the host when the group of the commands is completed processing. 6. The data storage device of claim 5 wherein the interrupt processor comprises multiple counters, wherein each of the counters is assigned to a different group of commands received by the controller. 7. The data storage device of claim 5 wherein the interrupt processor comprises multiple different interrupt mechanisms. 8. The data storage device of claim 7 wherein more than one interrupt mechanism is enabled at a same time. 9. The data storage device of claim 7 wherein the interrupt mechanisms include a watermark interrupt mechanism, a timeout interrupt mechanism and a group interrupt mechanism. 10. The data storage device of claim 1 wherein the memory chips are flash memory chips and the controller is a field programmable gate array (FPGA) controller. 11. The data storage device of claim 10 further comprising: a memory board on which the flash memory chips are arranged and configured into multiple channels, with each of the channels being associated with one or more of the flash memory chips; anda controller board that is operably connected to the memory board, wherein the controller board comprises:a high speed interface; andthe controller that is arranged and configured to receive the commands from the host using the high speed interface. 12. A method for processing a group of commands on a data storage device having multiple memory chips, the method comprising: receiving multiple groups of commands from a host, wherein each group of commands is assigned a group number and each command in a specific group includes a same group number to identify the commands as part of the specific group;processing the groups of commands using multiple memory chips; andgenerating and sending a single interrupt to the host for each of the groups when each of the groups of the commands completes processing, wherein processing the groups of commands includes maintaining an order of the commands within a same group designated for a same storage location and, at a same time, reordering and dispatching commands from different groups designated for different storage locations in a non-contiguous order. 13. An apparatus for tracking commands in a controller, the apparatus comprising: multiple group counters, wherein each of the group counters is configured to track a group of commands being processed by a controller by incrementing when a command in the group begins processing by the controller and decrementing when a command in the group completes processing; andinterrupt send logic that is operably coupled to the group counters and that is arranged and configured to generate and send a single interrupt for each of the group counters when all of the commands in a group complete processing,wherein the controller is capable of maintaining an order of the commands within a same group designated for a same storage location and, at a same time, is capable of reordering and dispatching commands from different groups designated for different storage locations in a non-contiguous order. 14. The apparatus of claim 13 wherein each of the commands in a same group is identified by a same group number. 15. The apparatus of claim 13 wherein the multiple group counters are configured to receive a signal to increment one of the group counters when a command being tracked by the group counter begins processing. 16. The apparatus of claim 13 wherein the multiple group counters are configured to receive a signal to decrement one of the group counters when a command being tracked by the group counter completes processing. 17. The apparatus of claim 13 wherein the interrupt send logic is configured to generate and send the single interrupt when a last command in a group begins processing and the group counter associated with the final command is decremented to zero. 18. A method for tracking commands in a controller, the method comprising: incrementing a group counter when a command in a group of commands begins processing;decrementing the group counter when a command in the group of commands completes processing;generating and sending a single interrupt for the group of commands when all of the commands in the group complete processing; andmaintaining an order of the commands within a same group designated for a same storage location and, at a same time, reordering and dispatching commands from different groups designated for different storage locations in a non-contiguous order. 19. The method as in claim 18 wherein generating and sending the single interrupt comprises generating and sending the single interrupt when a last command in the group begins processing and the group counter is decremented to zero. 20. A system comprising: a data storage device including a plurality of memory chips and multiple physical channels for communication of data between a host and the plurality of memory chips, each channel being operably connected to a different plurality of the memory chips; anda host operably coupled to the data storage device using an interface, the host comprising a driver that is configured to: send commands to the data storage device for processing by the data storage device using the plurality of memory chips,group the commands into one or more different groups and to assign a group number to each of the commands in a group, andmark a last command in a group,wherein the data storage device is capable of maintaining an order of the commands within a same group designated for a same storage location and, at a same time, is capable of reordering and dispatching commands from different groups designated for different storage locations in a non-contiguous order. 21. The system of claim 20 wherein the data storage device is configured to generate and send a single interrupt to the host after processing the commands in the group. 22. The system of claim 20 wherein the plurality of memory chips comprise flash memory chips. 23. The system of claim 20 wherein the driver is configured to track usage of group numbers. 24. The system of claim 20 where the host is configured to enable one or more interrupt mechanisms on the data storage device. 25. The system of claim 24 wherein the interrupt mechanisms include a watermark interrupt mechanism, a timeout interrupt mechanism and a group interrupt mechanism. 26. The method as in claim 12 wherein the memory chips are flash memory chips. 27. The method as in claim 12 wherein each of the commands includes a command header and the command header includes the group number inserted by the host. 28. The method as in claim 12 further comprising: incrementing a group counter when a command in a group of commands begins processing; anddecrementing the group counter when a command in the group of commands completes processing. 29. The method as in claim 18 wherein the controller is a field programmable gate array (FPGA) controller. 30. The method as in claim 19 further comprising using a flag in the last command to indicate the last command in the group.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (50)
Strecker William D. (Stow Harvard MA) Stewart Robert E. (Stow Harvard MA) Fuller Samuel (Harvard MA), Apparatus for transferring blocks of information from one node to a second node in a computer network.
Clark,Scott D.; Willenborg,Scott M., Command ordering among commands in multiple queues using hold-off vector generated from in-use vector and queue dependency scorecard.
Matsunami Naoto,JPX ; Kan Masayuki ; Kaneda Yasunori,JPX ; Yagisawa Ikuya,JPX ; Oeda Takashi,JPX ; Arakawa Hiroshi,JPX, Computer system with a reduced number of command end interrupts from auxiliary memory unit and method of reducing the nu.
Panner Bryan K. ; Hoskins Timothy Lee ; Napolitano Richard, File array communications interface for communicating between a host computer and an adapter.
Rubinson Barry L. (Colorado Springs CO) Gardner Edward A. (Colorado Springs CO) Grace William A. (Colorado Springs CO) Lary Richard F. (Colorado Springs CO) Keck Dale R. (Colorado Springs CO), Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems.
Short Robert T. ; Parchem John M. ; Cutler David N., Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events.
Langan John A. (Austin TX) Winter Marlan L. (Austin TX) Sibigtroth James M. (Round Rock TX), Queue system having a time-out feature and method therefor.
Day, Michael Norman; Hofstee, Harm Peter; Johns, Charles Ray; Liu, Peichum Peter; Truong, Thuong Quang; Yamazaki, Takeshi, System for asynchronous DMA command completion notification wherein the DMA command comprising a tag belongs to a plurality of tag groups.
Okin, Kenneth Alan; Moussa, George; Ganapathy, Kumar; Karamcheti, Vijay; Parekh, Rajesh, Systems and apparatus with programmable memory control for heterogeneous main memory.
Giganti, John; Baum, Richard; Bibbee, Ann Nelson; Bresnan, Timothy Patrick; Huo, Andrew; Nguyen, Thuy-Tien Thi; Shockey, Harry Todd; Wihl, Peter Reza, Methods and apparatus for a tablet computer system incorporating a reprogrammable circuit module.
Giganti, John J.; Huo, Andrew; Baum, Richard A.; Cavallo, John M.; Bresnan, Timothy P.; Moses, Charles A.; Siddalingaiah, Madhu, Methods and apparatus for data access by a reprogrammable circuit module.
Borchers, Albert T.; Gelb, Benjamin S.; Norrie, Thomas J.; Swing, Andrew T., Using a logical to physical map for direct user space communication with a data storage device.
Borchers, Albert T.; Gelb, Benjamin S.; Norrie, Thomas J.; Swing, Andrew T., Using a virtual to physical map for direct user space communication with a data storage device.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.