Title:
Memory hub bypass circuit and method
Document Type and Number:
United States Patent 7415567

Abstract:
A computer system and a method used to access data from a plurality of memory devices with a memory hub. The computer system includes a plurality of memory modules coupled to a memory hub controller. Each of the memory modules includes the memory hub and the plurality of memory devices. The memory hub includes a sequencer and a bypass circuit. When the memory hub is busy servicing one or more memory requests, the sequencer generates and couples the memory requests to the memory devices. When the memory hub is not busy servicing multiple memory requests, the bypass circuit generates and couples a portion of each the memory requests to the memory devices and the sequencer generates and couples the remaining portion of each of the memory requests to the memory devices.

Inventors:
Jeddeloh, Joseph M. (Shoreview, MN, US)
      Plaque It!

Sponsored by:
Flash of Genius
Application Number:
11/398018
Publication Date:
08/19/2008
Filing Date:
04/04/2006
View Patent Images:
Images are available in PDF form when logged in. To view PDFs, Login  or  Create Account (Free!)
Assignee:
Micron Technology, Inc. (Boise, ID, US)
Primary Class:
Other Classes:
711/154
International Classes:
G06F12/00
Field of Search:
711/169, 711/168, 711/5, 711/154, 711/167, 711/152, 711/150
US Patent References:
3742253THREE STATE LOGIC DEVICE WITH APPLICATIONSJune, 1973Kronies307/247
4045781Memory module with selectable byte addressing for digital data processing systemAugust, 1977Levy et al.364/200
4078228Loop data highway communication systemMarch, 1978Miyazaki340/147R
4240143Hierarchical multi-processor network for memory sharingDecember, 1980Besemer et al.364/200
4245306Selection of addressed processor in a multi-processor networkJanuary, 1981Besemer et al.364/200
4253144Multi-processor communication networkFebruary, 1981Bellamy et al.364/200
4253146Module for coupling computer-processorsFebruary, 1981Bellamy et al.364/200
4608702Method for digital clock recovery from Manchester-encoded signalsAugust, 1986Hirzel et al.375/110
4707823Fiber optic multiplexed data acquisition systemNovember, 1987Holdren et al.370/1
4724520Modular multiport data hubFebruary, 1988Athanas et al.364/200
4831520Bus interface circuit for digital data processorMay, 1989Rubinfeld et al.364/200
4843263Clock timing controller for a plurality of LSI chipsJune, 1989Ando307/480
4891808Self-synchronizing multiplexerJanuary, 1990Williams370/112
4930128Method for restart of online computer system and apparatus for carrying out the sameMay, 1990Suzuki et al.371/12
4953930CPU socket supporting socket-to-socket optical communicationsSeptember, 1990Ramsey et al.350/96.11
4982185System for synchronous measurement in a digital computer networkJanuary, 1991Holmberg et al.340/825.21
5241506Semiconductor memory circuit apparatusAugust, 1993Motegi et al.365/210
5243703Apparatus for synchronously generating clock signals in a data processing systemSeptember, 1993Farmwald et al.395/325
5251303System for DMA block data transfer based on linked control blocksOctober, 1993Fogg, Jr. et al.395/275
5269022Method and apparatus for booting a computer system by restoring the main memory from a backup memoryDecember, 1993Shinjo et al.395/700
5299293Protection arrangement for an optical transmitter/receiver deviceMarch, 1994Mestdagh et al.359/110
5313590System having fixedly priorized and grouped by positions I/O lines for interconnecting router elements in plurality of stages within parrallel computerMay, 1994Taylor395/325
5317752Fault-tolerant computer system with auto-restart after power-fallMay, 1994Jewett et al.395/750
5319755Integrated circuit I/O using high performance bus interfaceJune, 1994Farmwald et al.395/325
5327553Fault-tolerant computer system with /CONFIG filesystemJuly, 1994Jewett et al.395/575
5355391High speed bus systemOctober, 1994Horowitz et al.375/36
5432823Method and circuitry for minimizing clock-data skew in a bus systemJuly, 1995Gasbarro et al.375/356
5432907Network hub with integrated bridgeJuly, 1995Picazo, Jr. et al.395/200
5442770Triple port cache memoryAugust, 1995Barratt395/403
5461627Access protocol for a common channel wireless networkOctober, 1995Rypinski370/95.2
5465229Single in-line memory moduleNovember, 1995Bechtolsheim et al.345/477
5479370Semiconductor memory with bypass circuitDecember, 1995Furuyama et al.365/189.12
5497476Scatter-gather in data processing systemMarch, 1996Oldfield et al.395/439
5502621Mirrored pin assignment for two sided multi-chip layoutMarch, 1996Schumacher et al.361/760
5544319Fiber optic memory coupling system with converter transmitting and receiving bus data in parallel fashion and diagnostic data in serial fashionAugust, 1996Acton et al.395/200.07
5566325Method and apparatus for adaptive memory accessOctober, 1996Bruce, II et al.395/494
5577220Method for saving and restoring the state of a CPU executing code in protected mode including estimating the value of the page table base registerNovember, 1996Combs et al.395/416
5581767Bus structure for multiprocessor system having separated processor section and control/memory sectionDecember, 1996Katsuki et al.395/800
5606717Memory circuitry having bus interface for receiving information in packets and access time registersFebruary, 1997Farmwald et al.395/856
5638334Integrated circuit I/O using a high performance bus interfaceJune, 1997Farmwald et al.365/230.03
5638534Memory controller which executes read and write commands out of orderJune, 1997Mote, Jr.395/485
5659798Method and system for initiating and loading DMA controller registers by using user-level programsAugust, 1997Blumrich et al.395/846
5687325Application specific field programmable gate arrayNovember, 1997Chang395/284
5706224Content addressable memory and random access memory partition circuitJanuary, 1998Srinivasan et al.365/49
5710733Processor-inclusive memory moduleJanuary, 1998Chengson et al.365/52
5715456Method and apparatus for booting a computer system without pre-installing an operating systemFebruary, 1998Bennett et al.395/652
5729709Memory controller with burst addressing circuitMarch, 1998Harness395/405
5748616Data link module for time division multiplexing control systemsMay, 1998Riley370/242
5796413Graphics controller utilizing video memory to provide macro command capability and enhanched command bufferingAugust, 1998Shipp et al.345/522
5818844Address generation and data path arbitration to and from SRAM to accommodate multiple transmitted packetsOctober, 1998Singh et al.370/463
5819304Random access memory assemblyOctober, 1998Nilsen et al.711/5
5822255Semiconductor integrated circuit for supplying a control signal to a plurality of object circuitsOctober, 1998Uchida365/194
5832250Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bitsNovember, 1998Whittaker395/471
5875352Method and apparatus for multiple channel direct memory access controlFebruary, 1999Gentry et al.395/843
5875454Compressed data cache storage systemFebruary, 1999Craft et al.711/113
5887159Dynamically determining instruction hint fieldsMarch, 1999Burrows395/567
5889714Adaptive precharge management for synchronous DRAMMarch, 1999Schumann et al.365/203
5928343Memory module having memory devices containing internal device ID registers and method of initializing sameJuly, 1999Farmwald et al.710/104
5963942Pattern search apparatus and methodOctober, 1999Igata707/6
5966724Synchronous memory device with dual page and burst mode operationsOctober, 1999Ryan711/105
5973935Interdigitated leads-over-chip lead frame for supporting an integrated circuit dieOctober, 1999Schoenfeld et al.361/813
5973951Single in-line memory moduleOctober, 1999Bechtolsheim et al.365/52
5978567System for distribution of interactive multimedia and linear programs by enabling program webs which include control scripts to define presentation by client transceiverNovember, 1999Rebane et al.395/200.49
5987196Semiconductor structure having an optical signal path in a substrate and method for forming the sameNovember, 1999Noble385/14
6011741Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systemsJanuary, 2000Wallace et al.365/221
6014721Method and system for transferring data between buses having differing ordering policiesJanuary, 2000Arimilli et al.710/129
6023726User configurable prefetch control system for enabling client to prefetch documents from a network serverFebruary, 2000Saksena709/219
6029250Method and apparatus for adaptively adjusting the timing offset between a clock signal and digital signals transmitted coincident with that clock signal, and memory device and system using sameFebruary, 2000Keeth713/400
6031241Capillary discharge extreme ultraviolet lamp source for EUV microlithography and other related applicationsFebruary, 2000Silfvast et al.250/504R
6033951Process for fabricating a storage capacitor for semiconductor memory devicesMarch, 2000Chao438/253
6038630Shared access control device for integrated system with multiple functional units accessing external structures over multiple data busesMarch, 2000Foster et al.710/132
6061263Small outline rambus in-line memory moduleMay, 2000Boaz et al.365/51
6061296Multiple data clock activation with programmable delay for use in multiple CAS latency memory devicesMay, 2000Ternullo, Jr. et al.365/233
6064706Apparatus and method of desynchronizing synchronously mapped asynchronous dataMay, 2000Driskill et al.375/372
6067262Redundancy analysis for embedded memories with built-in self test and built-in self repairMay, 2000Irrinki et al.365/201
6067649Method and apparatus for a low power self test of a memory subsystemMay, 2000Goodwin714/718
6073190System for dynamic buffer allocation comprising control logic for controlling a first address buffer and a first data buffer as a matched pairJune, 2000Rooney710/56
6076139Multimedia computer architecture with multi-channel concurrent memory accessJune, 2000Welker et al.711/104
6079008Multiple thread multiple data predictive coded parallel processing system and methodJune, 2000Clery, III712/11
6092158Method and apparatus for arbitrating between command streamsJuly, 2000Harriman et al.711/151
6098158Software-enabled fast bootAugust, 2000Lay et al.711/162
6100735Segmented dual delay-locked loop for precise variable-phase clock generationAugust, 2000Lu327/158
6105075Scatter gather memory system for a hardware accelerated command interpreter engineAugust, 2000Ghaffari710/5
6111757SIMM/DIMM memory moduleAugust, 2000Dell et al.361/737
6125431Single-chip microcomputer using adjustable timing to fetch data from an external memorySeptember, 2000Kobayashi711/154
6128703Method and apparatus for memory prefetch operation of volatile non-coherent dataOctober, 2000Bourekas et al.711/138
6131149Apparatus and method for reading data from synchronous memory with skewed clock pulsesOctober, 2000Lu et al.711/167
6134624High bandwidth cache systemOctober, 2000Burns et al.710/131
6137709Small outline memory moduleOctober, 2000Boaz et al.365/51
6144587Semiconductor memory deviceNovember, 2000Yoshida365/189.05
6167465System for managing multiple DMA connections between a peripheral device and a memory and performing real-time operations on data carried by a selected DMA connectionDecember, 2000Parvin et al.710/22
6167486Parallel access virtual channel memory system with cacheable channelsDecember, 2000Lee et al.711/120
6175571Distributed memory switching hubJanuary, 2001Haddock et al.370/423
6185352Optical fiber ribbon fan-out cablesFebruary, 2001Hurley385/114
6185676Method and apparatus for performing early branch prediction in a microprocessorFebruary, 2001Poplingher et al.712/239
6186400Bar code reader with an integrated scanning component module mountable on printed circuit boardFebruary, 2001Dvorkis et al.235/462.45
6191663Echo reduction on bit-serial, multi-drop busFebruary, 2001Hannah333/17.3
6201724Semiconductor memory having improved register array access speedMarch, 2001Ishizaki et al.365/49
6208180Core clock correction in a 2/N mode clocking schemeMarch, 2001Fisch et al.327/141
6219725Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locationsApril, 2001Diehl et al.710/26
6223301Fault tolerant memoryApril, 2001Santeler et al.714/6
6233376Embedded fiber optic circuit boards and integrated circuitsMay, 2001Updegrove385/14
6243769Dynamic buffer allocation for a computer systemJune, 2001Rooney710/56
6243831Computer system with power loss protection mechanismJune, 2001Mustafa et al.714/24
6246618Semiconductor integrated circuit capable of testing and substituting defective memories and method thereofJune, 2001Yamamoto et al.365/200
6247107Chipset configured to perform data-directed prefetchingJune, 2001Christie711/216
6249802Method, system, and computer program product for allocating physical memory in a distributed shared memory networkJune, 2001Richardson et al.709/200
6256325Transmission apparatus for half duplex communication using HDLCJuly, 2001Park370/503
6256692CardBus interface circuit, and a CardBus PC having the sameJuly, 2001Yoda et al.710/104
6266730High-frequency bus systemJuly, 2001Perino et al.710/126
6272600Memory request reordering in a data processing systemAugust, 2001Talbot et al.711/140
6272609Pipelined memory controllerAugust, 2001Jeddeloh711/169
6278755Bit synchronization circuitAugust, 2001Baba et al.375/360
6285349Correcting non-uniformity in displaysSeptember, 2001Smith345/147
6286083Computer system with adaptive memory arbitration schemeSeptember, 2001Chin et al.711/151
6289068Delay lock loop with clock phase shifterSeptember, 2001Hassoun et al.375/376
6294937Method and apparatus for self correcting parallel I/O circuitrySeptember, 2001Crafts et al.327/158
6301637High performance data pathsOctober, 2001Krull et al.711/112
6324485Application specific automated test equipment system for testing integrated circuit devices in a native environmentNovember, 2001Ellis702/117
6327642Parallel access virtual channel memory systemDecember, 2001Lee et al.711/120
6330205Virtual channel synchronous dynamic random access memoryDecember, 2001Shimizu et al.365/230.06
6347055Line buffer type semiconductor memory device capable of direct prefetch and restore operationsFebruary, 2002Motomura365/189.05
6349363Multi-section cache with different attributes for each sectionFebruary, 2002Cai et al.711/129
6356573Vertical cavity surface emitting laserMarch, 2002Jonsson et al.372/46
6367074Operation of a systemApril, 2002Bates et al.717/11
6370068Semiconductor memory devices and methods for sampling data therefrom based on a relative position of a memory cell array section containing the dataApril, 2002Rhee365/196
6370611Raid XOR operations to synchronous DRAM using a read buffer and pipelining of synchronous DRAM burst read dataApril, 2002Callison et al.711/105
6373777Semiconductor memoryApril, 2002Suzuki365/230.03
6381190Semiconductor memory device in which use of cache can be selectedApril, 2002Shinkai365/230.03
6389514Method and computer system for speculatively closing pages in memoryMay, 2002Rokicki711/136
6392653Device for processing acquisition data, in particular image dataMay, 2002Malandain et al.345/501
6401149Methods for context switching within a disk controllerJune, 2002Dennin et al.710/58
6401213Timing circuit for high speed memoryJune, 2002Jeddeloh713/401
6405280Packet-oriented synchronous DRAM interface supporting a plurality of orderings for data block transfers within a burst sequenceJune, 2002Ryan711/105
6421744Direct memory access controller and method thereforJuly, 2002Morrison et al.710/22
6430696Method and apparatus for high speed data capture utilizing bit-to-bit timing correction, and memory device using sameAugust, 2002Keeth713/503
6433785Method and apparatus for improving processor to graphics device throughputAugust, 2002Garcia et al.345/531
6434639System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operationAugust, 2002Haghighi710/39
6434696Method for quickly booting a computer systemAugust, 2002Kang713/2
6434736Location based timing scheme in memory designAugust, 2002Schaecher et al.716/17
6438622Multiprocessor system including a docking systemAugust, 2002Haghighi et al.710/1
6438668Method and apparatus for reducing power consumption in a digital processing systemAugust, 2002Esfahani et al.711/165
6449308High-speed digital distribution systemSeptember, 2002Knight, Jr. et al.375/212
6453393Method and apparatus for interfacing to a computer memorySeptember, 2002Holman et al.711/154
6457116Method and apparatus for controlling contexts of multiple context processing elements in a network of multiple context processing elementsSeptember, 2002Mirsky et al.712/16
6460114Storing a flushed cache line in a memory buffer of a controllerOctober, 2002Jeddeloh711/120
6462978Method of designing semiconductor integrated circuit device and semiconductor integrated circuit deviceOctober, 2002Shibata et al.365/63
6463059Direct memory access execution engine with indirect addressing of circular queues in addition to direct memory addressingOctober, 2002Movshovich et al.370/389
6467013Memory transceiver to couple an additional memory channel to an existing memory channelOctober, 2002Nizar711/1
6470422Buffer memory management in a system having multiple execution entitiesOctober, 2002Cai et al.711/129
6473828Virtual channel synchronous dynamic random access memoryOctober, 2002Matsui711/104
6477592System for I/O interfacing for semiconductor chip utilizing addition of reference element to each data element in first data stream and interpret to recover data elements of second data streamNovember, 2002Chen et al.710/52
6477614Method for implementing multiple memory buses on a memory moduleNovember, 2002Leddige et al.711/5
6477621Parallel access virtual channel memory systemNovember, 2002Lee et al.711/120
6479322Semiconductor device with two stacked chips in one resin body and method of producingNovember, 2002Kawata et al.438/109
6487556Method and system for providing an associative datastore within a data processing systemNovember, 2002Downs et al.707/101
6490188Semiconductor devices having mirrored terminal arrangements, devices including same, and methods of testing such semiconductor devicesDecember, 2002Nuxoll et al.365/63
6493803Direct memory access controller with channel width configurability supportDecember, 2002Pham et al.711/147
6496193Method and apparatus for fast loading of texture data into a tiled memoryDecember, 2002Surti et al.345/552
6496909Method for managing concurrent access to virtual memory data structuresDecember, 2002Schimmel711/163
6501471Volume renderingDecember, 2002Venkataraman et al.345/424
6505287Virtual channel memory access controlling circuitJanuary, 2003Uematsu711/170
6523092Cache line replacement policy enhancement to avoid memory page thrashingFebruary, 2003Fanning711/134
6523093Prefetch buffer allocation and filtering systemFebruary, 2003Bogin et al.711/137
6526483Page open hint in transactionsFebruary, 2003Cho et al.711/154
6526498Method and apparatus for retiming in a network of multiple context processing elementsFebruary, 2003Mirsky et al.712/11
6539490Clock distribution without clock delay or skewMarch, 2003Forbes et al.713/401
6552564Technique to reduce reflections and ringing on CMOS interconnectionsApril, 2003Forbes et al.326/30
6553479Local control of multiple context processing elements with major contexts and minor contextsApril, 2003Mirsky et al.712/16
6564329System and method for dynamic clock generationMay, 2003Cheung et al.713/322
6587912Method and apparatus for implementing multiple memory buses on a memory moduleJuly, 2003Leddige et al.711/5
6590816Integrated memory and method for testing and repairing the integrated memoryJuly, 2003Perner365/200
6594713Hub interface unit and application unit interfaces for expanded direct memory access processorJuly, 2003Fuoco et al.710/31
6594722Mechanism for managing multiple out-of-order packet streams in a PCI host bridgeJuly, 2003Willke, II et al.710/313
6598154Precoding branch instructions to reduce branch-penalty in pipelined processorsJuly, 2003Vaid et al.712/237
6615325Method for switching between modes of operationSeptember, 2003Mailloux et al.711/154
662218812C bus expansion apparatus and method thereforSeptember, 2003Goodwin et al.710/101
6622227Method and apparatus for utilizing write buffers in memory control/interfaceSeptember, 2003Zumkehr et al.711/167
6628294Prefetching of virtual-to-physical address translation for display dataSeptember, 2003Sadowsky et al.345/568
6629220Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction typeSeptember, 2003Dyer711/158
6631440Method and apparatus for scheduling memory calibrations based on transactionsOctober, 2003Jenne et al.711/105
6636110Internal clock generating circuit for clock synchronous semiconductor memory deviceOctober, 2003Ooishi et al.327/565
6636912Method and apparatus for mode selection in a computer systemOctober, 2003Ajanovic et al.710/105
6646929Methods and structure for read data synchronization with minimal latencyNovember, 2003Moss et al.365/194
6647470Memory device having posted write per commandNovember, 2003Janzen711/154
6658509Multi-tier point-to-point ring memory interfaceDecember, 2003Bonella et al.710/100
6662304Method and apparatus for bit-to-bit timing correction of a high speed memory busDecember, 2003Keeth et al.713/400
6665202Content addressable memory (CAM) devices that can identify highest priority matches in non-sectored CAM arrays and methods of operating sameDecember, 2003Lindahl et al.365/49
6667895Integrated circuit device and module with integrated circuitsDecember, 2003Jang et al.365/63
6667926Memory read/write arbitration methodDecember, 2003Chen et al.365/221
6670833Multiple VCO phase lock loop architectureDecember, 2003Kurd et al.327/156
6681292Distributed read and write caching implementation for optimized input/output applicationsJanuary, 2004Creta et al.711/119
6697926Method and apparatus for determining actual write latency and accurately aligning the start of data capture with the arrival of data at a memory deviceFebruary, 2004Johnson et al.711/167
6715018Computer including installable and removable cards, optical interconnection between cards, and method of assembling a computerMarch, 2004Farnworth et al.710/300
6718440Memory access latency hiding with hint bufferApril, 2004Maiyuran et al.711/137
6721195Reversed memory module socket and motherboard incorporating sameApril, 2004Brunelle et al.365/63
6724685Configuration for data transmission in a semiconductor memory system, and relevant data transmission methodApril, 2004Braun et al.365/233
6728800Efficient performance based scheduling mechanism for handling multiple TLB operationsApril, 2004Lee et al.710/54
6735679Apparatus and method for optimizing access to memoryMay, 2004Herbst et al.711/167
6735682Apparatus and method for address calculationMay, 2004Segelken et al.711/220
6742098Dual-port buffer-to-memory interfaceMay, 2004Halbert et al.711/172
6745275Feedback system for accomodating different memory module loadingJune, 2004Chang710/305
6751113Arrangement of integrated circuits in a memory moduleJune, 2004Bhakta et al.365/63
6751703Data storage systems and methods which utilize an on-board cacheJune, 2004Chilton711/113
6751722Local control of multiple context processing elements with configuration contextsJune, 2004Mirsky et al.712/15
6754117System and method for self-testing and repair of memory modulesJune, 2004Jeddeloh365/201
6754812Hardware predication for conditional instruction path branchingJune, 2004Abdallah et al.712/234
6756661Semiconductor device, a semiconductor module loaded with said semiconductor device and a method of manufacturing said semiconductor deviceJune, 2004Tsuneda et al.257/673
6760833Split embedded DRAM processorJuly, 2004Dowling712/34
6771538Semiconductor integrated circuit and nonvolatile memory elementAugust, 2004Shukuri et al.365/185.05
6775747System and method for performing page table walks on speculative software prefetch operationsAugust, 2004Venkatraman711/137
6782435Device for spatially and temporally reordering for data between a processor, memory and peripheralsAugust, 2004Garcia et al.710/33
6785780Distributed processor memory module and methodAugust, 2004Klein et al.711/148
6789173Node controller for performing cache coherence control and memory-shared multiprocessor systemSeptember, 2004Tanaka et al.711/147
6792059Early/on-time/late gate bit synchronizerSeptember, 2004Yuan et al.375/354
6792496Prefetching data for peripheral component interconnect devicesSeptember, 2004Aboulenein et al.710/306
6795899Memory system with burst length shorter than prefetch lengthSeptember, 2004Dodd et al.711/137
6799246Memory interface for reading/writing data from/to a memorySeptember, 2004Wise et al.711/117
6799268Branch ordering bufferSeptember, 2004Boggs et al.712/228
6804760Method for determining a type of memory present in a systemOctober, 2004Wiliams711/170
6804764Write clock and data window tuning based on rank selectOctober, 2004LaBerge et al.711/170
6807630Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memoryOctober, 2004Lay et al.713/2
6811320System for connecting a fiber optic cable to an electronic deviceNovember, 2004Abbott385/58
6816947System and method for memory arbitrationNovember, 2004Huffman711/151
6820181Method and system for controlling memory accesses to memory modules having a memory hub architectureNovember, 2004Jeddeloh et al.711/169
6821029High speed serial I/O technology using an optical linkNovember, 2004Grung et al.385/92
6823023Serial bus communication systemNovember, 2004Hannah375/296
6845409Data exchange methods for a switch which selectively forms a communication channel between a processing unit and multiple devicesJanuary, 2005Talagala et al.710/20
6889304Memory device supporting a dynamically configurable core organizationMay, 2005Perego et al.711/170
6901494Memory control translatorsMay, 2005Zumkehr et al.711/167
6904556Systems and methods which utilize parity setsJune, 2005Walton et al.714/766
6910109Tracking memory page stateJune, 2005Holman et al.711/156
6912612Shared bypass bus structureJune, 2005Kapur et al.710/309
6947672High-speed optical data linksSeptember, 2005Jiang et al.398/135
6980042Delay line synchronizer apparatus and methodDecember, 2005LaBerge327/291
7046060Method and apparatus compensating for frequency drift in a delay locked loopMay, 2006Minzoni et al.327/158
7181584Dynamic command and/or address mirroring system and method for memory modulesFebruary, 2007LaBerge711/167
7187742Synchronized multi-output digital clock managerMarch, 2007Logue et al.375/376
20010038611Apparatus and method to monitor communication system statusNovember, 2001Darcie et al.370/248
20010039612Apparatus and method for fast bootingNovember, 2001Lee713/2
20020112119Dual-port buffer-to-memory interfaceAugust, 2002Halbert et al.711/115
20020116588Software management systems and methods for automotive computing devicesAugust, 2002Beckert et al.711/161
20020144064Controlling cache memory in external chipset using processorOctober, 2002Fanning711/144
20020178319Optical bus arrangement for computer systemNovember, 2002Sanchez-Olea710/305
20030005223System boot time reduction methodJanuary, 2003Coulson et al.711/118
20030005344Synchronizing data with a capture pulse and synchronizerJanuary, 2003Bhamidipati et al.713/400
20030043158Method and apparatus for reducing inefficiencies in shared memory devicesMarch, 2003Wasserman et al.345/545
20030043426Optical interconnect in high-speed memory systemsMarch, 2003Baker et al.359/109
20030065836Controller data sharing using a modular DMA architectureApril, 2003Pecone710/62
20030093630Techniques for processing out-of -order requests in a processor-based systemMay, 2003Richard et al.711/154
20030095559Systems including packet interfaces, switches, and packet DMA circuits for splitting and merging packet streamsMay, 2003Sano et al.370/419
20030149809Method and apparatus for timing and event processing in wireless systemsAugust, 2003Jensen et al.710/22
20030156581Method and apparatus for hublink read return streamingAugust, 2003Osborne370/389
20030163649Shared bypass bus structureAugust, 2003Kapur et al.711/146
20030177320Memory read/write reorderingSeptember, 2003Sah et al.711/158
20030193927Random access memory architecture and serial interface with continuous packet handling capabilityOctober, 2003Hronik370/351
20030217223Combined command setNovember, 2003Nino, Jr. et al.711/105
20030227798REDUCED POWER REGISTERED MEMORY MODULE AND METHODDecember, 2003Pax365/189.12
20030229762Apparatus, method, and system for synchronizing information prefetch between processors and memory controllersDecember, 2003Maiyuran et al.711/137
20030229770Memory hub with internal cache and/or memory access predictionDecember, 2003Jeddeloh711/213
20040022094Cache usage for concurrent multiple streamsFebruary, 2004Radhakrishnan et al.365/200
20040024948Response reordering mechanismFebruary, 2004Winkler et al.710/311
20040044833System and method for optimizing interconnections of memory devices in a multichip moduleMarch, 2004Ryan711/5
20040047169Wavelength division multiplexed memory module, memory system and methodMarch, 2004Lee et al.365/63
20040064602Claiming cycles on a processor bus in a system having a PCI to PCI bridge north of a memory controllerApril, 2004George710/22
20040107306Ordering rule controlled command storageJune, 2004Barth et al.710/310
20040126115System having multiple agents on optical and electrical busJuly, 2004Levy et al.398/116
20040128449Method and system to improve prefetching operationsJuly, 2004Osborne et al.711/137
20040144994Apparatus and methods for optically-coupled memory systemsJuly, 2004Lee et al.257/200
20040160206Servo motor control systemAugust, 2004Komaki et al.318/569
20040193821Providing an arrangement of memory devices to enable high-speed data accessSeptember, 2004Ruhovets et al.711/167
20040199739System and method of processing memory requests in a pipelined memory controllerOctober, 2004Jeddeloh711/169
20040225847Systems and methods for scheduling memory requests utilizing multi-level arbitrationNovember, 2004Wastlick et al.711/158
20040236885Arrangement and method for system of locally deployed module units, and contact unit for connection of such a module unitNovember, 2004Fredriksson et al.710/100
20050015426Communicating data over a communication linkJanuary, 2005Woodruff et al.709/200
20050044304Method and system for capturing and bypassing memory transactions in a hub-based memory systemFebruary, 2005James711/105
20050044327Asynchronous, independent and multiple process shared memory system in an adaptive computing architectureFebruary, 2005Howard et al.711/147
20050050255Multiple processor system and method including multiple memory hub modulesMarch, 2005Jeddeloh710/317
20050071542Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnectMarch, 2005Weber et al.711/105
20050086441Arbitration system and method for memory responses in a hub-based memory systemApril, 2005Meyer et al.711/158
20050105350Memory channel test fixture and methodMay, 2005Zimmerman365/201
20050149603Queuing of conflicted remotely received transactionsJuly, 2005DeSota et al.709/200
20050166006System including a host connected serially in a chain to one or more memory modules that include a cacheJuly, 2005Talbot et al.711/105
20050177677Arbitration system having a packet memory and method for memory responses in a hub-based memory systemAugust, 2005Jeddeloh711/100
20050177695Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-systemAugust, 2005Larson et al.711/167
20050213611Method and system for synchronizing communications links in a hub-based memory systemSeptember, 2005James370/503
20050216677Memory arbitration system and method having an arbitration packet protocolSeptember, 2005Jeddeloh et al.711/150
20050268060Method and system for terminating write commands in a hub-based memory systemDecember, 2005Cronin et al.711/167
20060022724Method and apparatus for fail-safe resynchronization with minimum latencyFebruary, 2006Zerbe et al.327/141
20060066375Delay line synchronizer apparatus and methodMarch, 2006LeBerge327/291
20060271746Arbitration system and method for memory responses in a hub-based memory systemNovember, 2006Meyer et al.711/148
20070033317Multiple processor system and method including multiple memory hub modulesFebruary, 2007Jeddeloh710/317
20070180171Memory arbitration system and method having an arbitration packet protocolAugust, 2007Jeddeloh et al.710/74
Foreign References:
EP0709786May, 1996Semiconductor memory with a timing controlled for receiving data at a semiconductor memory module to be accessed
EP0849685June, 1998Communication bus system between processors and memory modules
JP2001265539September, 2001ARRAY TYPE STORAGE DEVICE AND INFORMATION PROCESSING SYSTEM
WO/1993/019422September, 1993FIBER OPTIC MEMORY COUPLING SYSTEM
WO/1998/057489December, 1998MODULAR SYSTEM FOR ACCELERATING DATA SEARCHES AND DATA STREAM OPERATIONS
WO/2002/027499April, 2002SHARED TRANSLATION ADDRESS CACHING
Other References:
“Free On-Line Dictionary of Computing” entry Flash Erasable Programmable Read-Only Memory, online May 17, 2004 [http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?flash+memory].
Intel, “Flash Memory PCI Add-In Card for Embedded Systems”, Application Note AP-758, Sep. 1997, pp. i-13.
Intel, “Intel 840 Chipset: 82840 Memory Controller Hub (MCH)”, Datasheet, www.intel.com/design/chipsets/datashts/298020.htm, Oct. 1999, pp. 1-178.
Micron Technology, Inc. “Synchronous DRAM Module 512MB/1GB (x72, ECC) 168-PIN Registered FBGA SDRAM DIMM”, Micron Technology, Inc., 2002, pp. 1-23.
Rambus, Inc., “Direct Rambus™ Technology Disclosure”, Oct. 1997, pp. 1-16.
Shanley, T. et al., “PCI System Architecture”, Third Edition, Mindshare, Inc., 1995, pp. 24-25.
Primary Examiner:
Peugh, Brian R.
Attorney, Agent or Firm:
Dorsey & Whitney LLP
Parent Case Data:

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of pending U.S. patent application Ser. No. 11/041,071, now U.S. Pat. No. 7,047,351, filed Jan. 21, 2005; which application is a continuation of pending U.S. patent application Ser. No. 10/222,415, now U.S. Pat. No. 7,149,874, filed Aug. 16, 2002.

Claims:
The invention claimed is:

1. A method of operating a memory hub coupled to a plurality of memory devices, the method comprising: checking if the memory hub is servicing a memory request; if the memory hub is not busy servicing a memory request, initially transmitting a portion of a received memory request from the memory hub to the memory devices, and scheduling the remaining portion of the received memory request for subsequent transmission from the memory hub to the memory devices; and if the memory hub is busy servicing a memory request, scheduling the received memory request for subsequent transmission from the memory hub to the memory devices.

2. The method of claim 1 wherein the portion of the received memory request initially transmitted from the memory hub to the memory devices comprises a row address.

3. The method of claim 1, further comprising reformatting the received memory request before transmitting the memory request to the memory devices.

Description:

TECHNICAL FIELD

This invention relates to a computer system, and, more particularly, to a computer system having a memory hub coupling several memory devices to a processor or other memory access device.

BACKGROUND OF THE INVENTION

Computer systems use memory devices, such as dynamic random access memory (“DRAM”) devices, to store instructions and data that are accessed by a processor. These memory devices are normally used as system memory in a computer system. In a typical computer system, the processor communicates with the system memory through a processor bus and a memory controller. The processor issues a memory request, which includes a memory command, such as a read command, and an address designating the location from which data or instructions are to be read. The memory controller uses the command and address to generate appropriate command signals as well as row and column addresses, which are applied to the system memory. In response to the commands and addresses, data is transferred between the system memory and the processor. The memory controller is often part of a system controller, which also includes bus bridge circuitry for coupling the processor bus to an expansion bus, such as a PCI bus.

Although the operating speed of memory devices has continuously increased, this increase in operating speed has not kept pace with increases in the operating speed of processors. Even slower has been the increase in operating speed of memory controllers coupling processors to memory devices. The relatively slow speed of memory controllers and memory devices limits the data bandwidth between the processor and the memory devices.

In addition to the limited bandwidth between processors and memory devices, the performance of computer systems is also limited by latency problems that increase the time required to read data from system memory devices. More specifically, when a memory device read command is coupled to a system memory device, such as a synchronous DRAM (“SDRAM”) device, the read data are output from the SDRAM device only after a delay of several clock periods. Therefore, although SDRAM devices can synchronously output burst data at a high data rate, the delay in initially providing the data can significantly slow the operating speed of a computer system using such SDRAM devices.

One approach to alleviating the memory latency problem is to use multiple memory devices coupled to the processor through a memory hub. In a memory hub architecture, a system controller or memory controller is coupled to several memory modules, each of which includes a memory hub coupled to several memory devices. The memory hub efficiently routes memory requests and responses between the controller and the memory devices. Computer systems employing this architecture can have a higher bandwidth because a processor can access one memory device while another memory device is responding to a prior memory access. For example, the processor can output write data to one of the memory devices in the system while another memory device in the system is preparing to provide read data to the processor.

Although computer systems using memory hubs may provide superior performance, they nevertheless often fail to operate at optimum speed for several reasons. For example, even though memory hubs can provide computer systems with a greater memory bandwidth, they still suffer from latency problems of the type described above. More specifically, although the processor may communicate with one memory device while another memory device is preparing to transfer data, it is sometimes necessary to receive data from one memory device before the data from another memory device can be used. In the event data must be received from one memory device before data received from another memory device can be used, the latency problem continues to slow the operating speed of such computer systems. In addition, the memory hub is designed to handle multiple memory requests. Thus, it is only when the memory hub is busy servicing more than one memory request that the benefits of communicating with multiple memory requests are actually realized. Thus, when the memory hub is not busy, the slower and more complex logic used by the memory hub to handle multiple memory requests creates additional latency when servicing only one memory request.

There is therefore a need for a memory hub that bypasses the normal logic used to handle multiple memory requests when only one memory request is being serviced.

SUMMARY OF THE INVENTION

The present invention is directed to a computer system and method of accessing a plurality of memory devices with a memory hub. The computer system includes a plurality of memory modules coupled to a memory hub controller. Each of the memory modules includes the plurality of memory devices and the memory hub. The memory hub includes a link interface, a sequencer, a bypass circuit, and a memory device interface. The link interface receives memory requests from the memory hub controller and forwards the memory requests to either the sequencer or both the sequencer and the bypass circuit based on the status of the memory device interface. The memory device interface couples memory requests to the memory devices. When the memory device interface is busy servicing one or more memory requests, the sequencer generates memory requests and couples the memory requests to the memory device interface. When the memory device interface is not busy servicing one or more memory requests, the bypass circuit generates memory requests and couples a portion of each of the memory requests to the memory device interface. The sequencer generates and couples the remaining portion of each of the memory requests to the memory device interface. The bypass circuit allows the memory requests to more quickly access the memory devices when the memory device interface is not busy, thereby avoiding the additional latency that would otherwise be created by the sequencer.

As will be apparent, the invention is capable of modifications in various obvious aspects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system according to one example of the invention in which a memory hub is included in each of a plurality of memory modules.

FIG. 2 is a block diagram of a memory hub used in the computer system of FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

A computer system 100 according to one example of the invention is shown in FIG. 1. The computer system 100 includes a processor 104 for performing various computing functions, such as executing specific software to perform specific calculations or tasks. The processor 104 includes a processor bus 106 that normally includes an address bus, a control bus, and a data bus. The processor bus 106 is typically coupled to cache memory 108 , which, as previously mentioned, is usually static random access memory (“SRAM”). Finally, the processor bus 106 is coupled to a system controller 110 , which is also sometimes referred to as a “North Bridge” or “memory controller.”

The system controller 110 serves as a communications path to the processor 104 for a variety of other components. More specifically, the system controller 110 includes a graphics port that is typically coupled to a graphics controller 112 , which is, in turn, coupled to a video terminal 114 . The system controller 110 is also coupled to one or more input devices 118 , such as a keyboard or a mouse, to allow an operator to interface with the computer system 100 . Typically, the computer system 100 also includes one or more output devices 120 , such as a printer, coupled to the processor 104 through the system controller 110 . One or more data storage devices 124 are also typically coupled to the processor 104 through the system controller 110 to allow the processor 104 to store data or retrieve data from internal or external storage media (not shown). Examples of typical storage devices 124 include hard and floppy disks, tape cassettes, and compact disk read-only memories (CD-ROMs).

The system controller 110 includes a memory hub controller 128 that is coupled to several memory modules 130 a , 130 b , . . . 130 n , which serve as system memory for the computer system 100 . The memory modules 130 are preferably coupled to the memory hub controller 128 through a high-speed link 134 , which may be an optical or electrical communication path or some other type of communications path. In the event the high-speed link 134 is implemented as an optical communication path, the optical communication path may be in the form of one or more optical fibers, for example. In such case, the memory hub controller 128 and the memory modules will include an optical input/output port or separate input and output ports coupled to the optical communication path.

The memory modules 130 are shown coupled to the memory hub controller 128 in a multi-drop arrangement in which the single high-speed link 134 is coupled to all of the memory modules 130 . However, it will be understood that other topologies may also be used, such as a point-to-point coupling arrangement in which a separate high-speed link (not shown) is used to couple each of the memory modules 130 to the memory hub controller 128 . A switching topology may also be used in which the memory hub controller 128 is selectively coupled to each of the memory modules 130 through a switch (not shown). Other topologies that may be used will be apparent to one skilled in the art.

Each of the memory modules 130 includes a memory hub 140 for controlling access to 6 memory devices 148 , which, in the example illustrated in FIG. 1, are synchronous dynamic random access memory (“SDRAM”) devices. However, a fewer or greater number of memory devices 148 may be used, and memory devices other than SDRAM devices may, of course, also be used. The memory hub 140 is coupled to each of the system memory devices 148 through a bus system 150 , which normally includes a control bus, an address bus and a data bus.

One example of the memory hub 140 of FIG. 1 is shown in FIG. 2. The memory hub 140 includes a link interface 152 that is coupled to the high-speed link 134 . The nature of the link interface 152 will depend upon the characteristics of the high-speed link 134 . For example, in the event the high-speed link 134 is implemented using an optical communications path, the link interface 152 will include an optical input/output port and will convert optical signals coupled through the optical communications path into electrical signals. In any case, the link interface 152 preferably includes a buffer, such as a first-in, first-out buffer 154 , for receiving and storing memory requests as they are received through the high-speed link 134 . The memory requests are stored in the buffer 154 until they can be processed by the memory hub 140 .

When the memory hub 140 is able to process a memory request, one of the memory requests stored in the buffer 154 is transferred to a memory sequencer 160 . The memory sequencer 160 converts the memory requests from the format output by the memory hub controller 128 into a memory request having a format that can be used by the memory devices 148 . These re-formatted request signals will normally include memory command signals, which are derived from memory commands contained in the memory requests received by the memory hub 140 , and row and column address signals, which are derived from an address contained in the memory requests received by the memory hub 140 . In the event one of the memory requests is a write memory request, the re-formatted request signals will normally include write data signals which are derived from write data contained in the memory request received by the memory hub 140 . For example, where the memory devices 148 are conventional DRAM devices, the memory sequencer 160 will output row address signals, a row address strobe (“RAS”) signal, an active high write/active low read signal (“W/R*”), column address signals and a column address strobe (“CAS”) signal. The re-formatted memory requests are preferably output from the sequencer 160 in the order they will be used by the memory devices 148 . However, the sequencer 160 may output the memory requests in a manner that causes one type of request, such as read requests, to be processed before other types of requests, such as write requests.

The sequencer 160 provides a relatively high bandwidth because it allows the memory hub controller 128 to send multiple memory requests to the memory module 130 containing the memory hub 140 , even though previously sent memory requests have not yet been serviced. As a result, the memory requests can be sent at a rate that is faster than the rate at which the memory module 130 can service those requests. The sequencer 160 simply formats the signals of one memory request while memory devices are servicing another memory request. In addition, the sequencer 160 may reorder the memory requests, such as placing a series of read requests before previously received write requests, which reduces the memory read latency.

The memory sequencer 160 applies the re-formatted memory requests to a memory device interface 166 . The nature of the memory device interface 166 will again depend upon the characteristics of the memory devices 148 . In any case, the memory device interface 166 preferably includes a buffer, such as a FIFO buffer 168 , for receiving and storing one or more memory requests as they are received from the link interface 152 . The memory requests are stored in the buffer 168 until they can be processed by the memory devices 148 .

The memory requests are described above as being received by the memory hub 140 in a format that is different from the format that the memory requests are applied to the memory devices 148 . However, the memory hub controller 128 may instead re-format the memory requests from the processor 104 (FIG. 1) to a format that can be used by the memory devices 148 . In such case, it is not necessary for the sequencer 160 to re-format the memory requests. Instead, the sequencer 160 simply schedules the re-formatted memory request signals in the order needed for use by the memory devices 148 . The memory request signals for one or more memory requests are then transferred to the memory device interface 166 so they can subsequently be applied to the memory devices 148 .

As previously explained, the sequencer 160 can provide a memory bandwidth that is significantly higher than the memory bandwidth of conventional computer systems. Although the sequencer 160 provides this advantage when the memory hub controller 128 is issuing memory commands at a rapid rate, the sequencer 160 does not provide this advantage when the memory hub controller 128 is issuing memory requests to a memory module 130 at a rate that can be serviced by the memory module 130 . In fact, the sequencer 160 can actually increase the read latency of the memory module 130 when no unserviced memory requests are queued in the memory hub 140 . The increased latency results from the need to store the memory requests in the sequencer 160 , re-format the memory requests, schedule resulting control signals in the sequencer 160 , and begin applying those control signals to the memory devices 148 . Also, the memory sequencer 160 has a relatively slow clocking structure that can delay the memory hub 140 from issuing to the memory devices memory requests received from the memory hub controller 128 .

The memory hub 140 shown in FIG. 2 avoids the potential disadvantage of using the memory sequencer 160 by including the bypass circuit 170 . The bypass circuit 170 allows the memory requests to access the memory devices 148 more quickly when the memory device interface 166 is not busy servicing at least one memory request. As explained above, when multiple memory requests are not being handled by the sequencer 160 , the advantages of servicing memory requests with the sequencer 160 no longer exist. Instead, the sequencer 160 increases the memory read latency. The bypass circuit 170 , however, allows the memory hub 140 to decrease the access time of each memory request by handling an initial portion of the signal sequencing normally handled by the sequencer 160 , and it preferably uses a faster clocking structure than the sequencer 160 . Thus, the bypass circuit 170 increases the access time of the memory requests to the memory devices 148 .

The bypass circuit 170 includes conventional circuitry that converts each of the memory requests from the format output by the memory hub controller 128 into a memory request with a format that can be used by the memory devices 148 . While the bypass circuit 170 may handle reformatting of the entire memory request, the bypass circuit 170 preferably handles the row address portion of the memory request. Similar to the memory sequencer 160 described above, the bypass circuit 170 receives the memory request from the link interface 154 . The bypass circuit 170 then reformats the address portion of the memory request into a row address signal. The bypass circuit 170 outputs the row address signal to the memory device interface 166 and then outputs a row address strobe (RAS) to the memory device interface 166 . These signals allow the memory device interface 166 to access the addressed row of one of the memory devices 148 . By the time the memory devices have processed the portion of the memory request provided by the bypass circuit 170 , the sequencer 160 is ready to provide the remaining portion of the memory request.

As shown in FIG. 2, the bypass circuit 170 utilizes a link-in clock 176 from the memory hub controller 128 to forward the row address and RAS signals to the memory device interface 166 . The link-in clock 176 is received by the link interface 152 and forwarded to the bypass circuit 170 . The bypass circuit includes logic that delays and balances the link-in clock 176 with the clock forwarded from the link interface 152 with the memory requests. More specifically, the link-in clock 176 is used to forward each memory request from the memory hub controller 128 to the memory hub 140 , in particular to the link interface 152 . The link-in clock 176 is then forwarded to the bypass circuit 170 . The memory request output by the link interface 152 to the bypass circuit 170 uses a controller clock, which is a slower clock used by the memory hub 140 to process memory requests. The bypass circuit 170 delays and balances the link-in clock 176 with the controller clock, which allows the bypass circuit 170 to use the link-in clock 176 to service the row portion of the memory request. The faster link-in clock 176 allows the bypass circuit 170 to process and forward the row address and RAS signals more quickly than the controller clock used by the sequencer 160 .

While the bypass circuit 170 handles the row portion of the memory request from the link interface 152 , the remaining portion of the memory request, for example the command signal and column address, is formatted and forwarded by the sequencer 160 . This allows the sequencer 160 to format the remaining portion of the memory request, as explained above, while the read address and RAS signals are accessing the addressed row of one of the memory devices 148 . Thus, the sequencer 160 does not have to service the row portion of the memory request. This structure increases the overall access time to the memory devices 148 , thus reducing the latency of the memory hub 140 , because the bypass circuit 170 forwards the row address and RAS signals to one of the memory devices more quickly than the sequencer 160 . In addition, during the clock delays used by the row address and RAS signals to access one of the memory devices 148 , the sequencer 160 is formatting and ordering the remaining signals of the memory request. Thus, once the remaining signals are formatted and ordered by the sequencer 160 , they can be immediately coupled to the memory device 148 that has already been accessed by the row address signal.

The bypass circuit 170 is utilized by the memory hub 140 when the memory device interface 166 is not busy servicing memory requests. The memory device interface 166 generates a high “ACTIVE/IDLE*” signal when the buffer 168 of the memory device interface 166 is active and contains, for example, one or more memory requests. The high ACTIVE/IDLE* signal indicates that the memory device interface is busy, thus memory requests can be more efficiently handled by using the sequencer 160 . When the buffer 168 contains, for example, less than one memory request, the memory device interface generates a low “ACTIVE/IDLE*” signal. The low ACTIVE/IDLE* signal indicates that the memory device interface is not busy, thus the memory hub 140 uses the bypass circuit 170 and sequencer 160 to service memory requests. The ACTIVE and IDLE* conditions generated by the memory device interface 166 are not limited to the circumstances described above. For example, the memory device interface 166 may generate an ACTIVE signal based on the buffer 168 containing a certain percentage of memory requests and likewise an IDLE* signal when the number of memory requests is under a certain percentage.

The memory hub 140 , shown in FIG. 2, further includes a multiplexer 172 , which works in conjunction with the memory device interface 166 to service the memory requests. The multiplexer 172 has inputs coupled to the bypass circuit 170 and the sequencer 160 , an output coupled to the memory device interface 166 , and a control input coupled to the memory device interface 166 . The multiplexer 172 uses the ACTIVE/IDLE* signal from the memory device interface 166 to couple memory requests to the memory device interface 166 . When the multiplexer 172 receives an ACTIVE signal, or a high ACTIVE/IDLE* signal, the multiplexer 172 couples memory requests from the sequencer 160 to the memory device interface 166 . Likewise, when the multiplexer 172 receives an IDLE* signal, or a low ACTIVE/IDLE* signal, the multiplexer 172 couples a portion of each memory request from the bypass circuit 170 to the memory device interface 166 and a portion of each memory request from the sequencer 160 to the memory device interface 166 .

The ACTIVE/IDLE* signal generated by the memory device interface 166 is also used to determine whether memory requests should be forwarded from the link interface 152 to the sequencer 160 or to both the bypass circuit 170 and the sequencer 160 . Both the sequencer 160 and the bypass circuit 170 are coupled to the memory device interface 166 . When the memory device interface 166 generates an ACTIVE signal, the sequencer 160 receives the memory requests from the link interface 152 and generates and couples memory requests to the multiplexer 172 . When the memory device interface 166 generates an IDLE* signal, both the sequencer 160 and the bypass circuits receive the memory requests and handle specific portions of each of the memory requests, as described above.

Although the present invention has been described with reference to preferred embodiments, persons skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims.





<- Previous Patent (***WITHDRAWN PATENT ...)   |   Next Patent (Method and apparatus...) ->