Providing indeterminate read data latency in a memory system
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-013/18
G06F-013/372
G06F-013/376
출원번호
UP-0289193
(2005-11-28)
등록번호
US-7685392
(2010-04-21)
발명자
/ 주소
Coteus, Paul W.
Gower, Kevin C.
Maule, Warren E.
Tremaine, Robert B.
출원인 / 주소
International Business Machines Corporation
대리인 / 주소
Cantor Colburn LLP
인용정보
피인용 횟수 :
4인용 특허 :
250
초록▼
A method for providing indeterminate read data latency in a memory system. The method includes determining if a local data packet has been received and storing it into a buffer device. The method also includes determining if the buffer device contains a data packet and determining if an upstream dri
A method for providing indeterminate read data latency in a memory system. The method includes determining if a local data packet has been received and storing it into a buffer device. The method also includes determining if the buffer device contains a data packet and determining if an upstream driver for transmitting data packets to a memory controller via an upstream channel is idle, and in response thereto the data packet is transmitted to the upstream driver. The method further includes determining if an upstream data packet has been received and the upstream driver is not idle, then the upstream data packet is stored into the buffer device. The upstream data packet is selectively transmitted to the upstream driver. If the upstream driver is not idle, then any data packets in progress are continued being transmitted to the upstream driver.
대표청구항▼
The invention claimed is: 1. A method for providing indeterminate read data latency in a memory system, the method comprising: determining if a local data packet has been received; if the local data packet has been received, then storing the local data packet into a buffer device; determining if th
The invention claimed is: 1. A method for providing indeterminate read data latency in a memory system, the method comprising: determining if a local data packet has been received; if the local data packet has been received, then storing the local data packet into a buffer device; determining if the buffer device contains one or more data packets; determining if an upstream driver for transmitting the one or more data packets to a memory controller via an upstream channel is idle; if the buffer device contains the one or more data packets and the upstream driver is idle, then transmitting a selected data packet of the one or more data packets to the upstream driver; determining if an upstream data packet has been received, the upstream data packet in a multi-transfer frame format that includes a single bit frame start indicator in a first transfer and an identification tag for use by the memory controller in associating the upstream data packet with its corresponding read instruction, the identification tag distributed over each transfer of multiple transfers for the entire upstream data packet; if the upstream data packet has been received and the upstream driver is not idle, then storing the upstream data packet into the buffer device, the buffer device configured to store both the local data packet and the upstream data packet as the one or more data packets; if the upstream data packet has been received and the buffer device does not contain the one or more data packets and the upstream driver is idle, then transmitting the upstream data packet to the upstream driver; and continuing to transmit any in-progress data packet if the upstream driver is not idle. 2. The method of claim 1 wherein the determining if the local data packet has been received, the determining if the buffer device contains the one or more data packets, the determining if the upstream driver is idle and the determining if the upstream data packet has been received are performed on a periodic basis. 3. The method of claim 2 wherein the periodic basis is once every upstream channel cycle. 4. The method of claim 1 wherein the selected data packet is selected for transmitting based on a prioritization algorithm. 5. The method of claim 4 wherein the prioritization algorithm selects the selected data packet based on an age of the read instruction that corresponds to the selected data packet. 6. The method of claim 4 wherein the prioritization algorithm selects the selected data packet based on a priority associated with the selected data packet, and farther wherein the selected data packet is formatted in the multi-transfer frame format that includes the frame start indicator and the identification tag, the priority included in a priority field of the identification tag, and the prioritization algorithm periodically selects a lower priority data packet before a higher priority data packet as the selected data packet. 7. The method of claim 1 wherein the multi-transfer frame format farther includes a bus cyclical redundancy code (CRC) field, the bus CRC field distributed over the multiple transfers excluding the first transfer and located in a common bit position with the frame staff indicator. 8. The method of claim 7 wherein the storing the local data packet into the buffer device includes formatting the local data packet, the formatting including serializing the local data packet into the multi-transfer frame format and inserting values into the frame staff indicator, the identification tag and the bus CRC field. 9. A hub device in a memory system, the hub device comprising: a device for receiving data packets, the device including an upstream receiver for receiving upstream data packets from a downstream hub device and a memory interface for receiving local data packets from a local storage device, wherein each data packet is in a multi-transfer frame format that includes a single bit frame start indicator in a first transfer and an identification tag for use by a memory controller in associating the data packet with its corresponding read instruction, the identification tag distributed over each transfer of multiple transfers for the entire data packet; an upstream driver for transmitting the data packets to the memory controller via an upstream channel; and a mechanism including instructions for facilitating: determining if a local data packet has been received; if the local data packet has been received, then storing the local data packet into a buffer device; determining if the buffer device contains one or more data packets; determining if the upstream driver is idle; if the buffer device contains the one or more data packets and the upstream driver is idle, then transmitting a selected data packet of the one or more data packets to the upstream driver; determining if an upstream data packet has been received; if the upstream data packet has been received and the upstream driver is not idle, then storing the upstream data packet into the buffer device, the buffer device configured to store both the local data packet and the upstream data packet as the one or more data packets; if the upstream data packet has been received and the buffer device does not contain the one or more data packets and the upstream driver is idle, then transmitting the upstream data packet to the upstream driver; and continuing to transmit any in-progress data packets if the upstream driver is not idle. 10. The hub device of claim 9 wherein the determining if the local data packet has been received, the determining if the buffer device contains the one or more data packets, the determining if the upstream driver is idle and the determining if the upstream data packet has been received are performed on a periodic basis. 11. The hub device of claim 10 wherein the periodic basis is once every upstream channel cycle. 12. The hub device of claim 9 wherein the selected data packet is selected for transmitting based on a prioritization algorithm. 13. The hub device of claim 12 wherein the prioritization algorithm selects the selected data packet based on an age of the read instruction that corresponds to the selected data packet. 14. The hub device of claim 12 wherein the prioritization algorithm selects the selected data packet based on a priority associated with the selected data packet, and further wherein the selected data packet is formatted in the multi-transfer frame format that includes the frame start indicator and the identification tag, the priority included in a priority field of the identification tag, and the prioritization algorithm periodically selects a lower priority data packet before a higher priority data packet as the selected data packet. 15. The hub device of claim 9 wherein the multi-transfer frame format further includes a bus cyclical redundancy code (CRC) field, the bus CRC field distributed over the multiple transfers excluding the first transfer and located in a common bit position with the frame start indicator. 16. A memory controller for use in a memory system, the memory controller comprising: an upstream channel for receiving one or more read data packets at an unpredicted time from a downstream hub device, each packet in a multi-transfer frame format including a single bit frame start indicator in a first transfer and an identification tag distributed over each transfer of multiple transfers for the entire packet; and logic for correlating the received data packets at the memory controller with their corresponding read data request commands using the identification tags included in the read data packets. 17. The memory controller of claim 16 wherein each read data packet is received at an unpredicted time relative to its corresponding read request command. 18. The memory controller of claim 16 wherein the read data packets are received in an unpredicted order relative to an issue order of their corresponding read request commands. 19. The memory controller of claim 16 wherein the multi-transfer frame format further includes a bus cyclical redundancy code (CRC) field, the bus CRC field distributed over the multiple transfers excluding the first transfer and located in a common bit position with the frame start indicator. 20. A memory system comprising: a memory controller comprising: an upstream channel for receiving one or more read data packets at an unpredicted time relative to its corresponding read request command, each read data packet in a multi-transfer frame format including a single bit frame start indicator in a first transfer and an identification tag distributed over each transfer of multiple transfers for the entire upstream read data packet; and computer instructions for correlating the received one or more read data packets at the memory controller with one or more corresponding read data request commands using the identification tag included in each of the one or more read data packets; one or more memory modules with one or more memory devices connected to the memory controller by a daisy chained channel, wherein the read data is returned to the memory controller as the one or more read data packets; and one or more hub devices on the memory modules for buffering address, commands and data, the hub devices including controller channel buffers used in conjunction with preemptive local data merge logic to minimize read data latency and enable indeterminate read data return times to the memory controller. 21. The memory system of claim 20 wherein each of the one or more hub devices includes an upstream driver and performs: determining if a local data packet has been received; if the local data packet has been received, then storing the local data packet into a buffer device; determining if the buffer device contains one or more data packets; determining if the upstream driver is idle; if the buffer device contains the one or more data packets and the upstream driver is idle, then transmitting a selected data packet of the one or more data packets to the upstream driver; determining if an upstream data packet has been received; if the upstream data packet has been received and the upstream driver is not idle, then storing the upstream data packet into the buffer device, the buffer device configured to store both the local data packet and the upstream data packet as the one or more data packets; if the upstream data packet has been received and the buffer device does not contain the one or more data packets and the upstream driver is idle, then transmitting the upstream data packet to the upstream driver; and continuing to transmit any in-progress data packets if the upstream driver is not idle. 22. The memory system of claim 21 wherein the determining if the local data packet has been received, the determining if the buffer device contains the one or more data packets, the determining if the upstream driver is idle and the determining if the upstream data packet has been received are performed on a periodic basis once every upstream channel cycle. 23. The memory system of claim 21 wherein the selected data packet is selected for transmitting based on a prioritization algorithm to selects the selected data packet based on an age of the read instruction that corresponds to the selected data packet, and further wherein the selected data packet is formatted in the multi-transfer frame format that includes the frame start indicator and the identification tag, the priority included in a priority field of the identification tag, and the prioritization algorithm periodically selects a lower priority data packet before a higher priority data packet as the selected data packet. 24. The memory system of claim 20 wherein the multi-transfer frame format further includes a bus cyclical redundancy code (CRC) field, the bus CRC field distributed over the multiple transfers excluding the first transfer and located in a common bit position with the frame staff indicator. 25. The memory system of claim 24 wherein the storing the local data packet into the buffer device includes formatting the local data packet, the formatting including serializing the local data packet into the multi-transfer frame format and inserting values into the frame staff indicator, the identification tag and the bus CRC field.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (250)
Creta Kenneth C. ; Garbus Elliot, 32-bit mode for a 64-bit ECC capable memory subsystem.
Halbert John B. ; Dodd Jim M. ; Lam Chung ; Bonella Randy M., Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules.
Drehmel, Robert Allen; Haselhorst, Kent Harold; Hoover, Russell Dean; Marcella, James Anthony, Bus architecture employing varying width uni-directional command bus.
Gharachorloo, Kourosh; Barroso, Luiz A.; Ravishankar, Mosur K.; Stets, Jr., Robert J; Nowatzyk, Andreas, Cache coherence protocol engine system and method for processing memory transaction in distinct address subsets during interleaved time periods in a multiprocessor system.
McMinn Brian D., Cache including a prefetch way for storing cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line.
Ahrens, George Henry; Kitamorn, Alongkorn; McLaughlin, Charles Andrew; Vaden, Michael Thomas, Cache thresholding method, apparatus, and program for predictive reporting of array bit line or driver failures.
Betts,William L.; Bremer,Gordon; Holmquist,Kurt, Communication device and method for using non-self-synchronizing scrambling in a communication system.
Clark Scott D. ; Veldhuizen Mark G. ; Jensen Randall S. ; Kirscht Joseph A. ; Rudrud Paul W., Continuously powered mainstore for large memory subsystems.
Perlman Eugene H. (Bedford NY) MacNaughton ; III Laurence (Hampton CT), Controller system or emulating local parallel minicomputer/printer interface and transferring serial data to remote line.
Doody, John W.; Long, Finbarr Denis; McLoughlin, Michael; O'Keefe, Michael James, Coordinated recalibration of high bandwidth memories in a multiprocessor computer.
Rogers ; Jr. Harry R. (Spring TX) Landry John A. (Tomball TX) Izquierdo Javier F. (Houston TX), Daisy-chained serial shift register for determining configuration of removable circuit boards in a computer system.
Aldereguia Alfredo (Boca Raton FL) Cromer Daryl C. (Delray Beach FL) Bland Patrick M. (Delray Beach FL) Stutes Rodger M. (Delray Beach FL), Data processing apparatus for dynamically setting timings in a dynamic memory system.
Pechanek Gerald G. (Endwell NY) Shippy David J. (Endwell NY) Snedaker Mark C. (Vestal NY) Woodward Sandra S. (Endwell NY), Data processing system parallel data bus having a single oscillator clocking apparatus.
Chang Luke L. (Boca Raton FL) Cazzolla John J. (Fuquay-Varina NC) Nguyen Kha D. (Boca Raton FL), Data processing system with modified planar for boundary scan diagnostics.
Doi Toshio,JPX ; Hayashi Takehisa,JPX ; Nakano Tetsuo,JPX, Data transfer system and method including tuning of a sampling clock used for latching data.
Leung Wing Y. (Cupertino CA) Hsu Fu-Chieh (Saratoga CA), Defect tolerant integrated circuit subsystem for communication between a module and a bus controller in a wafer-scale in.
Samson Joseph E. (Dover MA) Wolff Kenneth T. (Medway MA) Reid Robert (Dunstable MA) Hendrie Gardner C. (Marlboro MA) Falkoff Daniel M. (Natick MA) Dynneson Ronald E. (Brighton MA) Clemson Daniel M. (, Digital data processor with high reliability.
Kertesz Veronica ; Whitehead Don ; Burke James ; Tanna Harshad ; Garg Subhash ; Rao A. Rajeshwar,INX ; Lakshmi S. S.,INX ; Mishra S. ; Lakshminarayana J. ; Tamanna Pradeep Kumar,INX ; Kumar B. Ravi,I, Dynamic data exchange server.
LaVallee Russell W. (Poughkeepsie NY) Ryan Philip M. (Hopewell Junction NY) Sollitto ; Jr. Vincent F. (Rhinebeck NY), Dynamic replacement of defective memory words.
Hartmann Alfred C., Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip.
Vail, David Kenyon; Wilson, Stephen S.; Volz, Jeffrey D.; Bruckmeyer, Joshua P.; Plum, Allen G., Fault-tolerant communications system and associated methods.
Fuoco, Charles; Comisky, David A.; Agarwala, Sanjive; Damodaran, Raguram, Hub interface unit and application unit interfaces for expanded direct memory access processor.
Moon,Byong Mo, Information processing system has clock lines which are electrically isolated from another clock line electrically connected to clock buffer and termination voltage.
Dortu,Jean Marc, Integrated memory having a memory cell array containing a plurality of memory banks, and circuit configuration having an integrated memory.
Takahashi, Yoshitaka; Saito, Masahiko; Naya, Hidemitsu; Kikuchi, Mutsumi; Hotta, Takashi, Logic circuit module having power consumption control interface and a recording medium storing the module.
Dell Timothy J. ; Dimitri Kamal E. ; Dramstad Kent A. ; Faucher Marc R. ; Hazelzet Bruce G. ; Singer Bruce W., Memory card design with parity and ECC for non-parity and non-ECC systems.
Bowden ; III Raymond D. (Tewksbury MA) Salas Edward R. (Lowell MA) Sanfacon Marc E. (Acton MA) Somers Jeffrey S. (Lowell MA), Memory controller with error logging.
Rentschler, Eric M.; Hargis, Jeffrey G.; Letey, George T, Memory controller with support for memory modules comprised of non-homogeneous data width RAM devices.
Ely K. Tsern ; Thomas J. Holman ; Richard M. Barth ; Andrew V. Anderson ; Paul G. Davis ; Craig E. Hampel ; Donald C. Stark ; Abhijit M. Abhyankar, Memory device and system including a low power interface.
Baguette,Benoit Leon Roger Ghislain; Vecoven,Frederic Louis Ghislain Gabriel, Memory error analysis for determining potentially faulty memory components.
Grundon, Steven Alfred; Hazelzet, Bruce Gerard; Kellogg, Mark William; Rogers, James Lewis, Memory interface with programable clock to output time based on wide range of receiver loads.
Halbert, John B.; Dodd, Jim M.; Lam, Chung; Bonella, Randy M., Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing.
Funaba, Seiji; Nakagome, Yoshinobu; Horiguchi, Masashi; Nishio, Yoji, Memory module including module data wirings available as a memory access data bus.
Lee, Terry R., Memory system that sets a predetermined phase relationship between read and write clock signals at a bus midpoint for a plurality of spaced device locations.
Brock, Bishop Chapman; Chiprout, Eli; Elnozahy, Elmootazbellah Nabil; Rajamony, Ramakrishnan; Rawson, III, Freeman Leigh; Rockhold, Ronald Lynn, Memory transaction monitoring system and user interface.
Harder Stanley D. (Garland TX) Houghton Richard A. (Cocoa Beach FL) Wallace Richard H. (Plano TX), Method and apparatus determining order and identity of subunits by inputting bit signals during first clock period and r.
Petty ; Jr. John S. (Durham NC), Method and apparatus for constructing and operating multipoint communication networks utilizing point-to point hardware.
Leak Daniel P. (Wichita KS) Kloeppner John R. (Wichita KS), Method and apparatus for generating Reed-Soloman error correcting code across multiple word boundaries.
Shimizu Naohiko (Hadano JPX) Sawamoto Hideo (Hadano JPX), Method and apparatus for generating a real address multiple virtual address spaces of a storage.
Krishan Baldev (Fremont CA) Singh Baljeet (Fremont CA) Moorthy Harihara (Fremont CA), Method and apparatus for implementing a PCMCIA auxiliary port connector for selectively communicating with peripheral de.
Leddige, Michael W.; Horine, Bryce D.; Bonella, Randy; MacWilliams, Peter D., Method and apparatus for implementing multiple memory buses on a memory module.
Dow, Keith E., Method and apparatus for improving timing margin in an integrated circuit as determined from recorded pass/fail indications for relative phase settings.
Helms,Frank P., Method and apparatus for powering down the CPU/memory controller complex while preserving the self refresh state of memory in the system.
Gleichert Marc C. (1191 Bretmoor Way San Jose CA 95129) Hsu Arthur (763 Almondwood Way San Jose CA 95120) Wang Yun-Che (278 Sylvia Dr. Los Altos CA 94022), Method and apparatus for transmitting and receiving both 8B/10B code and 10B/12B code in a switchable 8B/10B transmitter.
Barth Richard Maurice ; Griffin Matthew Murdy ; Ware Frederick Abbott ; Horowitz Mark Alan, Method and apparatus for transmitting memory requests by transmitting portions of count data in adjacent words of a pac.
Leung Wing Y. (Cupertino CA) Hsu Fu-Chieh (Saratoga CA), Method and circuit for communication between a module and a bus controller in a wafer-scale integrated circuit system.
Michael Baentsch CH; Peter Buhler CH; Thomas Eirich CH; Frank Hoering CH; Marcus Oestreicher CH, Method and device for loading instruction codes to a memory and linking said instruction codes.
Cheselka Harry ; Hunter Steven Wade ; Lingafelt Charles Steven ; Mulkey James Gregory ; Yarbrough John Wagner, Method and system for managing system bus communications in a data processing system.
VanDoren Stephen R. ; Sharma Madhumitra, Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies.
Archer Jordan J. (San Jose CA) Deora Ajit J. (San Jose CA) Leung Kent S. (Milpitas CA) Peng Leon (Mountain View CA) Schopmeyer Robert C. (Los Altos CA) Scott David J. (Gilroy CA) Sharma Sanjay (Sunny, Open high speed bus for microcomputer system.
Ravi Kumar Arimilli ; Lakshminarayana Baba Arimilli ; Leo James Clark ; John Steven Dodson ; Guy Lynn Guthrie ; James Stephen Fields, Jr., Optimized cache allocation algorithm for multiple speculative requests.
Ackerman Dennis Frank ; Desai Himanshu Harshadrai ; Gupta Ram Kishor ; Strinivasan Ravi Rengarajan, Page table entry management method and apparatus for a microkernel data processing system.
Drehmel, Robert Allen; Haselhorst, Kent Harold; Hoover, Russell Dean; Marcella, James Anthony; Nation, George Wayne, Processor-memory bus architecture for supporting multiple processors.
Martin Douglas E. (Round Rock TX), Reconfigurable contiguous address space memory system including serially connected variable capacity memory modules and.
Gabillard Bertrand (Paris FRX) Girard Philippe (Corbeil-Essonnes FRX) Omet Dominique (Evry FRX), Redundant read bus for correcting defective columns in a cache memory.
Bruce ; II E. William (Lunenberg MA), Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types.
Dell Timothy J. (Colchester VT) Farah Lina S. (Burlington VT) Feng George C. (Essex Junction VT) Kellogg Mark W. (Essex Junction VT), Synchronous memory packaged in single/dual in-line memory module and method of fabrication.
Gharachorloo, Kourosh; Barroso, Luiz A.; Stets, Jr., Robert J.; Ravishankar, Mosur K.; Nowatzyk, Andreas, System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system.
Dye Thomas A., System and method for managing system memory and/or non-volatile memory using a memory controller with integrated compression and decompression capabilities.
Bashant,David M.; Buddenbaum,Donald E.; Denny,Michael L.; Yellin,Daniel M., System and method for synchronizing related data elements in disparate storage systems.
James,Ralph, System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding.
Brooks Gary S., System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses.
Bowden ; III Raymond D. (Tewksbury MA) Salas Edward R. (Lowell MA) Sanfacon Marc E. (Acton MA) Somers Jeffrey S. (Lowell MA), System for determining status of errors in a memory subsystem.
Polzin,R. Stephen; Weber,Frederick D.; Talbot,Gerald R.; Hewitt,Larry D.; Reeves,Richard W.; Patel,Shwetal A.; La Fetra,Ross V.; Gulick,Dale E.; Hummel,Mark D.; Miranda,Paul C., System including a host connected to a plurality of memory modules via a serial memory interconnect.
Gower,Kevin C.; Kark,Kevin W.; Kellogg,Mark W.; Maule,Warren E., System, method and storage medium for providing a serialized memory interface with a bus repeater.
Sites Richard L. (Boyleston MA) Witek Richard T. (Littleton MA), Virtual to physical address translation scheme with granularity hint for identifying subsequent pages to be accessed.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.