US20040123176A1 - Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains - Google Patents
Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains Download PDFInfo
- Publication number
- US20040123176A1 US20040123176A1 US10/732,505 US73250503A US2004123176A1 US 20040123176 A1 US20040123176 A1 US 20040123176A1 US 73250503 A US73250503 A US 73250503A US 2004123176 A1 US2004123176 A1 US 2004123176A1
- Authority
- US
- United States
- Prior art keywords
- clock signal
- frequency
- resource
- module
- drive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
A first clock signal having a first frequency is applied to drive a first module. A second clock signal having a second frequency is applied to drive a second module. The second frequency is different from the first frequency. A third clock signal is selectively applied with a frequency substantially the same as the first frequency to drive at least one portion of a resource to allow the first module to access the one portion of the resource. The third clock signal is selectively applied with a frequency substantially the same as the second frequency to drive at least the one portion of the resource to allow the second module to access the one portion of the resource.
Description
- 1. Field of the Invention
- The present invention relates generally to the field of resource sharing for computer systems. More particularly, the present invention relates to the field of resource sharing between or among two or more modules driven at different clock frequencies.
- 2. Description of Related Art
- FIG. 1 illustrates an integrated circuit chip10 comprising a module 12, a module 14, and a resource 20. Modules 12 and 14 share access to resource 20. Module 12 and resource 20 are driven by a clock signal 32 input to module 12 and to resource 20. Module 14 is driven by a clock signal 34 input to module 14. Clock signals 32 and 34 have different frequencies. Modules 12 and 14 cannot access resource 20 simultaneously.
- Because module14 and resource 20 are driven at different clock frequencies, module 14 accesses resource 20 using
clock crossing circuitry 70.Clock crossing circuitry 70 helps manage the cross-over of data and control signals, for example, generated at one clock frequency and received at a different clock frequency. As module 12 and resource 20 are driven at substantially the same clock frequency, module 12 does not require clock crossing circuitry to access resource 20 as module 14 does. -
Clock crossing circuitry 70 typically comprises a buffer in which data signals, for example, are input at one clock frequency and output at a different clock frequency.Clock crossing circuitry 70 may alternatively manage a direct asynchronous transfer of data signals, for example, between resource 20 and module 14 in response to handshaking signals generated between module 14 and resource 20 in accordance with a suitable asynchronous transfer protocol. -
Clock crossing circuitry 70 is typically implemented to manage clock frequency crossovers at only one or few clock ratios P/Q, where P/Q corresponds to the ratio of the frequency of clock signal 32 to the frequency of clock signal 34. Suchclock crossing circuitry 70, however, limits the frequencies at which clock signals 32 and 34 may be generated. The ability to dial in frequencies independently for each module 12 and 14 is desirable to allow integrated circuit chip 10 to cover different market segments and to facilitate different frequency bins for integrated circuit chip 10. Constraints on the frequencies at which clock signals 32 and 34 may be generated may also mean module 12 and/or module 14 may not be driven at relatively higher frequencies. Althoughclock crossing circuitry 70 may be implemented to manage many more clock ratios P/Q, suchclock crossing circuitry 70 is typically more costly and more complex to implement on silicon and typically increases die size. -
Clock crossing circuitry 70 also reduces performance of integrated circuit chip 10 due to the increase in the latency of transactions crossing multiple clock domains. Incorporating high skew and jitter parameters intoclock crossing circuitry 70 further complicates its implementation. The logic complexity of the bus crossingclock crossing circuitry 70 also increases the pre-silicon and post-silicon logic design validation effort. - Furthermore, module14 cannot access resource 20 if clock signal 32 ceases, for example, when module 12 enters an internal power down or sleep mode.
- The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
- FIG. 1 illustrates a prior art integrated circuit chip in which a resource is shared;
- FIG. 2 illustrates, for one embodiment, an integrated circuit chip in which a resource is shared between a first module and a second module;
- FIG. 3 illustrates, for one embodiment, a flow diagram to share a resource;
- FIG. 4 illustrates, for one embodiment, clocking circuitry for the integrated circuit chip of FIG. 2;
- FIG. 5 illustrates, for one embodiment, a timing diagram for shared resource clock multiplexing from the first module to the second module of FIG. 2;
- FIG. 6 illustrates, for one embodiment, a timing diagram for shared resource clock multiplexing from the second module to the first module of FIG. 2;
- FIG. 7 illustrates, for one embodiment, a computer system comprising an integrated circuit chip in which a cache memory is shared between a processor and a graphics engine;
- FIG. 8 illustrates, for one embodiment, a shared cache memory with clock multiplexing at a global level;
- FIG. 9 illustrates, for one embodiment, a shared resource with clock multiplexing at a plurality of clock taps; and
- FIG. 10 illustrates, for another embodiment, an integrated circuit chip in which a resource is shared between a first module and a second module.
- The following detailed description sets forth an embodiment or embodiments in accordance with the present invention for a dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains. In the following description, details are set forth such as specific circuit configurations, etc., in order to provide a thorough understanding of the present invention. It will be evident, however, that the present invention may be practiced without these details. In other instances, well-known circuit components, etc., have not been described in particular detail so as not to obscure the present invention.
- FIG. 2 illustrates an
integrated circuit chip 210 comprising afirst module 212, asecond module 214, aresource 220, andclocking circuitry 230.Modules resource 220. Clockingcircuitry 230 is coupled tomodules resource 220. -
Modules resource 220.Resource 220 may be apportioned, if at all, into any suitable number of portions of any suitable size or fraction ofresource 220. For one embodiment, as illustrated in FIG. 2,resource 220 comprises afirst portion 222 and a second sharedportion 224, andmodules portion 224. Clockingcircuitry 230 drivesmodules resource 220. - Clocking
circuitry 230 for one embodiment drivesmodules resource 220 in accordance with flow diagram 300 of FIG. 3. - For
block 302 of FIG. 3,clocking circuitry 230 applies aclock signal 232 having a first clock frequency tomodule 212 to drivemodule 212. Forblock 304,clocking circuitry 230 applies aclock signal 234 having a second clock frequency tomodule 214 to drivemodule 214. The frequency ofclock signal 232 for one embodiment is different from the frequency ofclock signal 234. - For
block 306,clocking circuitry 230 applies aclock signal 236 to drive at least sharedportion 224 ofresource 220 to allow eithermodule 212 ormodule 214 to access sharedportion 224 ofresource 220. In applyingclock signal 236, clockingcircuitry 230 for one embodiment selectively appliesclock signal 236 having substantially the same frequency asclock signal 232 orclock signal 234. Clockingcircuitry 230 for one embodiment selectively appliesclock signal 232 orclock signal 234 asclock signal 236. Clockingcircuitry 230 selectively appliesclock signal 236 with substantially the same frequency asclock signal 232 to drive at least sharedportion 224 ofresource 220 to allowmodule 212 to access sharedportion 224 ofresource 220. Clockingcircuitry 230 selectively appliesclock signal 236 with substantially the same frequency asclock signal 234 to drive at least sharedportion 224 ofresource 220 to allowmodule 214 to access sharedportion 224 ofresource 220. - Because clocking
circuitry 230 selectively drives sharedportion 224 at substantially the same clock frequency asmodule 212 ormodule 214, bothmodule 212 andmodule 214 may access sharedportion 224 without any clock crossing circuitry as otherwise required, for example, in integrated circuit chip 10 of FIG. 1. Clockingcircuitry 230 also allows frequencies to be independently dialed in for eachmodule integrated circuit chip 210 to cover different market segments and facilitating different frequency bins forintegrated circuit chip 210.Module 212 andmodule 214 may also be driven at relatively higher frequencies. - Also, unlike integrated circuit chip10 of FIG. 1,
clocking circuitry 230 allows dedicated access to sharedportion 224 bymodule 212 by applyingclock signal 236 with substantially the same frequency asclock signal 232 to sharedportion 224.Clocking circuitry 230 also allows dedicated access to sharedportion 224 bymodule 214 by applyingclock signal 236 with substantially the same frequency asclock signal 234 to sharedportion 224. By selectively applyingclock signal 236 with either one of such frequencies, clockingcircuitry 230 allows such dedicated access to be dynamically switched betweenmodule 212 andmodule 214. - For one embodiment, as illustrated in FIG. 2, where
resource 220 comprises at least anotherportion 222 in addition to sharedportion 224, clockingcircuitry 230 forblock 308 of FIG. 3 applies aclock signal 238 having substantially the same frequency asclock signal 232 to drive at leastportion 222 ofresource 220 to allowmodule 212 to accessportion 222. Clockingcircuitry 230 for one embodiment appliesclock signal 232 asclock signal 238. - Clocking
circuitry 230 for one embodiment appliesclock signal 238 to drive at leastportion 222 ofresource 220 while applyingclock signal 236 to drive at least sharedportion 224 ofresource 220. In this manner,module 212 may simultaneously accessportion 222 ofresource 220 while also accessing sharedportion 224. Also,module 212 may simultaneously accessportion 222 ofresource 220 whilemodule 214 accesses sharedportion 224. - Clocking
circuitry 230 for one embodiment allows sharedportion 224 ofresource 220 to be accessed bymodule 214 despite haltingclock signal 232. Clockingcircuitry 230 may haltclock signal 232, for example, whenmodule 212 enters an internal power down or sleep mode. Clockingcircuitry 230 may then continue applyingclock signal 234 tomodule 214 and applyingclock signal 236 with substantially the same frequency asclock signal 234 to sharedportion 224 to allowmodule 214 to access sharedportion 224. Similarly, clockingcircuitry 230 may haltclock signal 234 and continue applyingclock signal 232 tomodule 212 and applyingclock signal 236 with substantially the same frequency asclock signal 232 to sharedportion 224. - Clocking
circuitry 230 may comprise any suitable circuitry to generate and output clock signals 232, 234, 236, and 238 in any suitable manner. For one embodiment, as illustrated in FIG. 4, clockingcircuitry 230 comprises a phase locked loop 242, a phase lockedloop 244, and multiplexingcircuitry 250. - Phase locked loop242 receives a
system clock signal 235 and generates andoutputs clock signal 232 tomodule 212. Phase lockedloop 244 also receivessystem clock signal 235 and generates andoutputs clock signal 234 tomodule 214. Phase lockedloops 242 and 244 may receive system clock signal 235 from any suitable source. Although described as receiving the samesystem clock signal 235, phase lockedloops 242 and 244 for another embodiment may each receive a respective system clock signal at any suitable frequency from a separate source. Phase lockedloops 242 and 244 for one embodiment receivesystem clock signal 235 having a predetermined frequency and generate and output clock signals 232 and 234, respectively, with clock frequencies each higher than that ofsystem clock signal 235. Although described as comprising phase lockedloops 242 and 244, clockingcircuitry 230 for other embodiments may comprise any other suitable circuitry to generate and output clock signals 232 and 234. A single phase locked loop, for example, may be used to generate and output both clock signals 232 and 234. - Clocking
circuitry 230 for one embodiment receives a clock enable signal 247 indicating whether clockingcircuitry 230 is to generate andoutput clock signal 232 orhalt clock signal 232. For one embodiment, as illustrated in FIG. 4, phase locked loop 242 receives clock enable signal 247 and selectively generates andoutputs clock signal 232 based on clock enable signal 247. Clockingcircuitry 230 may receive clock enable signal 247 from any suitable source. For one embodiment, as illustrated in FIG. 4,module 212 may generate and output clock enable signal 247 to clockingcircuitry 230.Module 212 may generate and output clock enable signal 247 to haltclock signal 232, for example, whenmodule 212 enters an internal power down or sleep mode. For another embodiment where clockingcircuitry 230 generates and outputs a plurality of clock signals 232 over separate lines each to a separate portion ofmodule 212, for example,module 212 may selectively enable and disable one or more clock signals 232 tomodule 212 using one or more clock enable signals 247. In this manner,module 212 may disable one or more clock signals 232 while one or more clock signals 232 continue to drive one or more portions that generate and output a clock enable signal 247. - Multiplexing
circuitry 250 generates andoutputs clock signal 236 to at least sharedportion 224 ofresource 220 and may comprise any suitable circuitry to generate andoutput clock signal 236 in any suitable manner. Multiplexingcircuitry 250 for one embodiment receives a shared mode signal 251 indicating whether multiplexingcircuitry 250 is to generate clock signal 236 with substantially the same frequency asclock signal 232 orclock signal 234. Multiplexingcircuitry 250 for one embodiment also receivesclock signal 232 andclock signal 234 and outputs eitherclock signal 232 orclock signal 234 asclock signal 236 based on shared mode signal 251. - Multiplexing
circuitry 250 may receive shared mode signal 251 from any suitable source. For one embodiment, as illustrated in FIG. 4,module 212 may generate and output shared mode signal 251 to multiplexingcircuitry 250. For another embodiment,module 214 may generate and output shared mode signal 251 to multiplexingcircuitry 250. For yet another embodiment,module 212 andmodule 214 can each generate and output a shared mode signal to multiplexingcircuitry 250, and multiplexingcircuitry 250 may generate andoutput clock signal 236 based on each such shared mode signal. - For one embodiment, as illustrated in FIG. 4, multiplexing
circuitry 250 comprises a synchronizer 252 and amultiplexer 256. - Synchronizer252 receives shared mode signal 251 and generates and outputs to
multiplexer 256 moduleselect signals 253 and 254 based on shared mode signal 251. Module select signal 253 indicates whetherclock signal 236 is to have substantially the same frequency asclock signal 232. Moduleselect signal 254 indicates whetherclock signal 236 is to have substantially the same frequency asclock signal 234. Synchronizer 252 may comprise any suitable circuitry to generate and output moduleselect signals 253 and 254 in any suitable manner. For one embodiment, as illustrated in FIG. 4, synchronizer 252 receives clock signals 232 and 234 to time the generation and output of moduleselect signals 253 and 254. For another embodiment, synchronizer 252 may receiveonly clock signal select signals 253 and 254. -
Multiplexer 256 receives clock signals 232 and 234 and selectively outputsclock signal 232 orclock signal 234 asclock signal 236 based on moduleselect signals 253 and 254.Multiplexer 256 may comprise any suitable circuitry tooutput clock signal 236 in any suitable manner.Multiplexer 256 for one embodiment, as illustrated in FIG. 4, comprisestri-state drivers Driver 257 receivesclock signal 232 and is enabled by module select signal 253 tooutput clock signal 232 asclock signal 236.Driver 258 receivesclock signal 234 and is enabled by moduleselect signal 254 tooutput clock signal 234 asclock signal 236. - FIG. 5 illustrates, for one embodiment, a timing diagram500 for multiplexing
circuitry 250 to switch access to sharedportion 224 ofresource 220 frommodule 212 tomodule 214. - As illustrated in FIG. 5,
module 212 switches shared mode signal 251 at a rising edge ofclock signal 232 from a logic low level, indicatingmodule 212 is to access sharedportion 224, to a logic high level, indicatingmodule 214 is to access sharedportion 224. In response, synchronizer 252 switches module select signal 253 at or following a following falling edge ofclock signal 232 from a logic high level, enablingdriver 257 tooutput clock signal 232 asclock signal 236, to a logic low level, disablingdriver 257. Synchronizer 252 also switches moduleselect signal 254 at or following a following falling edge ofclock signal 234 from a logic low level, disablingdriver 258, to a logic high level, enablingdriver 258 tooutput clock signal 234 asclock signal 236. - Synchronizer252 for one embodiment switches module
select signal 254 after an optional predetermined delay period following the switching of shared mode signal 251 or the switching of module select signal 253. In this manner, synchronizer 252 stops application ofclock signal 236 to sharedportion 224 asclock signal 236 is switched. Stopping application ofclock signal 236 asclock signal 236 is switched may help to prevent any glitches or meta-stability conditions, to allow sharedportion 224 to stabilize beforeclock signal 236 is switched, and to account for the asynchronous transition of shared mode signal 251 relative to eachclock signal select signal 254. - FIG. 6 illustrates, for one embodiment, a timing diagram600 for multiplexing
circuitry 250 to switch access to sharedportion 224 ofresource 220 frommodule 214 tomodule 212. - As illustrated in FIG. 6,
module 212 switches shared mode signal 251 at a rising edge ofclock signal 232 from a logic high level, indicatingmodule 214 is to access sharedportion 224, to a logic low level, indicatingmodule 212 is to access sharedportion 224. In response, synchronizer 252 switches moduleselect signal 254 at or following a following falling edge ofclock signal 234 from a logic high level, enablingdriver 258 tooutput clock signal 234 asclock signal 236, to a logic low level, disablingdriver 258. Synchronizer 252 also switches module select signal 253 at or following a following falling edge ofclock signal 232 from a logic low level, disablingdriver 257, to a logic high level, enablingdriver 257 tooutput clock signal 232 asclock signal 236. - Synchronizer252 for one embodiment switches module select signal 253 after an optional predetermined delay period following the switching of shared mode signal 251 or the switching of module
select signal 254. In this manner, as with switching access to sharedportion 224 frommodule 212 tomodule 214, synchronizer 252 stops application ofclock signal 236 to sharedportion 224 asclock signal 236 is switched. Synchronizer 252 may comprise any suitable circuitry, such as a plurality of flip-flops for example, to delay switching module select signal 253. - Although described in connection with timing diagrams500 and 600, multiplexing
circuitry 250 may be designed to operate in accordance with any suitable timing diagram to generate andoutput clock signal 236. For other embodiments, for example, synchronizer 252 andmultiplexer 256 may generate andoutput clock signal 236 based on an active logic low shared mode signal 251, module select signal 253, and/or moduleselect signal 254. The timing to switch signals from logic high to logic low and/or from logic low to logic high may also be modified in any suitable manner. - Synchronizer252 and
multiplexer 256 for other embodiments may comprise other suitable circuitry to generate andoutput clock signal 236. As one example, synchronizer 252 may comprise suitable circuitry to generate and output only a single module select signal to multiplexer 256 based on shared mode signal 251.Multiplexer 256 may comprise suitable circuitry to both enabledriver other driver multiplexer 256 may receive shared mode signal 251 directly and may comprise suitable circuitry to both enabledriver other driver - Although described as selectively applying
clock signal 232 orclock signal 234 asclock signal 236, multiplexingcircuitry 250 for another embodiment may receive another clock signal having substantially the same frequency asclock signal 232 and/or another clock signal having substantially the same frequency asclock signal 234 and may selectively apply such other clock signals asclock signal 236. Multiplexingcircuitry 250 may receive such other clock signals from any suitable source. - Clocking
circuitry 230 for one embodiment, as illustrated in FIG. 4,outputs clock signal 232 asclock signal 238 to atleast portion 222 ofresource 220. Clockingcircuitry 220 for another embodiment may generate and output another clock signal having substantially the same frequency asclock signal 232 asclock signal 238. -
Modules Resource 220 may comprise any suitable circuitry to implement any suitable resource, such as a memory for example. Integratedcircuit chip 210 may be used in any suitable computer system. - FIG. 7 illustrates, for one embodiment, a
computer system 700 comprising asystem clock 702, amain memory 704, adisplay 706, and anintegrated circuit chip 710. Integratedcircuit chip 710 corresponds to integratedcircuit chip 210. -
Integrated circuit chip 710 comprises aprocessor 712, agraphics engine 714, acache memory 720, clockingcircuitry 730, andmemory controller 760.Processor 712 corresponds tomodule 212.Graphics engine 714 corresponds tomodule 214.Cache memory 720 corresponds to resource 220. Clockingcircuitry 730 corresponds to clockingcircuitry 230. -
Processor 712 may comprise any suitable processor architecture and for one embodiment comprise an Intel® Architecture used, for example, in the Pentium® III family of processors available from Intel® Corporation of Santa Clara, Calif.Graphics engine 714 controls the rendering and/or display of information ondisplay 706.Display 706 is coupled tographics engine 714. Any suitable display, such as a cathode ray tube (CRT) or liquid crystal display (LCD) for example, may be used fordisplay 706. -
Processor 712 andgraphics engine 714 share access to at least a portion ofcache memory 720.Cache memory 720 may comprise any suitable memory.Cache memory 720 for one embodiment, as illustrated in FIG. 7, comprises afirst portion 722 and a second shared portion 724, andprocessor 712 andgraphics engine 714 share access to shared portion 724. - Clocking
circuitry 730 is coupled to receive a system clock signal 735 fromsystem clock 702 and drivesprocessor 712 with aclock signal 732,graphics engine 714 with aclock signal 734, andmemory controller 760 with aclock signal 739 based onsystem clock signal 735. Clockingcircuitry 730 generates andoutputs clock signal 732 toprocessor 712 or haltsclock signal 732 based on a clock enable signal 747. Clockingcircuitry 730 also drives at least shared portion 724 with aclock signal 736 and atleast portion 722 with a clock signal 738 based onsystem clock signal 735 and based on a sharedmode signal 751. -
System clock signal 735 corresponds tosystem clock signal 235.System clock 702 may comprise any suitable circuit components to generate and outputsystem clock signal 735. Clock signals 732, 734, 736, and 738 correspond to clock signals 232, 234, 236, and 238, respectively. Clock enable signal 747 corresponds to clock enable signal 247. Sharedmode signal 751 corresponds to shared mode signal 251. -
Memory controller 760 is coupled toprocessor 712,graphics memory 714, andmain memory 704 and controls access tomain memory 704 forprocessor 712 andgraphics engine 714.Main memory 704 stores data and/or instructions, for example, forcomputer system 700 and may comprise any suitable memory, such as a dynamic random access memory (DRAM) for example. - For one embodiment where
memory controller 760 is driven byclock signal 739 at a frequency different from that ofclock signal 732,processor 712 accessesmemory controller 760 usingclock crossing circuitry 762 to help manage the cross-over of data and control signals, for example, betweenmemory controller 760 andprocessor 712. For one embodiment wherememory controller 760 is driven byclock signal 739 at a frequency different from that ofclock signal 734,graphics engine 714 accessesmemory controller 760 usingclock crossing circuitry 764 to help manage the cross-over of data and control signals, for example, betweenmemory controller 760 andgraphics engine 714. - Clocking
circuitry 730 may driveprocessor 712,graphics engine 714, andmemory controller 760 at any suitable frequency. Clockingcircuitry 730 may, for example,drive processor 712 at a frequency from approximately 1000 MegaHertz (MHz) to approximately 1600 MHz,graphics engine 714 at a frequency from approximately 300 MHz to approximately 400 MHz, andmemory controller 760 at a frequency from approximately 133 MHz to approximately 266 MHz. -
Processor 712 and/orgraphics engine 714use cache memory 720 to help maintain a steady supply of instructions and/or data forprocessor 712 and/orgraphics engine 714.Cache memory 720 stores instructions and/or data accessed frommain memory 704 throughmemory controller 760 for processing byprocessor 712 and/orgraphics engine 714.Cache memory 720 may also store recently and/or frequently used instructions and/or data. For one embodiment, as illustrated in FIG. 7, wherecache memory 720 comprises at least anotherportion 722 in addition to shared portion 724,processor 712 may access instructions and/or data inportion 722 and/or shared portion 724, andgraphics engine 714 may access instructions and/or data in shared portion 724.Cache memory 720 may store instructions and/or data in accordance with any suitable caching scheme. - Integrating
processor 712,cache memory 720, andgraphics engine 714 on integratedcircuit chip 710 allowsprocessor 712 andgraphics engine 714 to sharecache memory 720. As processors typically have their own relatively larger cache memory to improve their performance and graphics engines typically have their own relatively smaller texture and render caches to improve their performance, allowinggraphics engine 714 to use shared portion 724 ofcache memory 720 as texture and/or render caches, for example, helps improve system performance asgraphics engine 714 may use relatively more cache space. - As illustrated in FIG. 8,
cache memory 720 for one embodiment comprises one set 810 of four banks 0-3, another set 820 of four banks 4-7, atag array 830, a least recently used (LRU)array 840, and a state array 850. Wherecache memory 720 comprises at least anotherportion 722 in addition to shared portion 724, clockingcircuitry 730 for one embodiment drivesbanks 0 and 1 of set 810,banks set 820, a correspondingportion 831 oftag array 830, a correspondingportion 841 ofLRU array 840, and a corresponding portion 851 of state array 850 with clock signal 738 and drivesbanks banks set 820, a correspondingportion 832 oftag array 830, a correspondingportion 842 ofLRU array 840, and acorresponding portion 852 of state array 850 withclock signal 736. - Rather than performing clock multiplexing at a global level as illustrated in FIGS. 2, 4,7, and 8, clocking
circuitry 230 and/or 730 for another embodiment may perform clock multiplexing at a plurality of clock taps forresource 220 and/orcache memory 720, respectively. - FIG. 9 illustrates, for one embodiment, clocking circuitry comprising a phase locked
loop 942, a phase lockedloop 944, a synchronizer 952, and a plurality ofmultiplexers 956 to drive at least a sharedportion 924 of aresource 920.Resource 920 for one embodiment also comprises anotherportion 922. -
Resource 920,portion 922, and sharedportion 924 correspond to resource 220,portion 222, and sharedportion 224, respectively. Phase lockedloop 942, phase lockedloop 944, and synchronizer 952 correspond to phase locked loop 242, phase lockedloop 244, and synchronizer 252, respectively. Eachmultiplexer 956 corresponds to multiplexer 256. - Phase locked
loop 942 is coupled to receive a system clock signal 935 and generate and output a clock signal 932 toportion 922 and eachmultiplexer 956. Phase lockedloop 944 is also coupled to receive system clock signal 935 and generate and output a clock signal 934 to eachmultiplexer 956. Clock signal 932, clock signal 934, and system clock signal 935 correspond toclock signal 232,clock signal 234, andsystem clock signal 235, respectively. - Synchronizer952 is coupled to receive a shared
mode signal 951 and generates and outputs moduleselect signals 953 and 954 to eachmultiplexer 956 based on sharedmode signal 951. Moduleselect signals 953 and 954 and sharedmode signal 951 correspond to moduleselect signals 253 and 254 and shared mode signal 251, respectively. Eachmultiplexer 256 receives clock signals 932 and 934 and selectively outputs clock signal 932 or clock signal 934 as aclock signal 936 to a respective clock tap for at least sharedportion 924 ofresource 920 based on moduleselect signals 953 and 954. Eachclock signal 936 corresponds toclock signal 236. - Performing clock multiplexing at a plurality of clock taps for
resource 920 may help to avoid or minimize any clock skew conditions otherwise associated with global level clock multiplexing. - FIG. 10 illustrates, for another embodiment, an
integrated circuit chip 1010 similar tointegrated circuit chip 210 of FIG. 2. Integratedcircuit chip 1010 comprises clocking circuitry 1030 corresponding to clockingcircuitry 230. Clocking circuitry 1030 generates and outputs clock signals 1032, 1034, 1036, and 1038 corresponding to clock signals 232, 234, 236, and 238, respectively. Integratedcircuit chip 1010 also comprisesclock crossing circuitry 1070 to allow sharedportion 224 ofresource 220 to be driven byclock signal 1036 at a frequency that is greater or less than the frequency ofclock signal 1034driving module 214. - Clocking circuitry1030 may generate and output clock signals 1034 and 1036 at any suitable frequency. Clocking circuitry 1030 for one embodiment selectively generates and
outputs clock signal 1036 at a frequency that is a multiple, such as two for example, of the frequency ofclock signal 1034. In this manner,clock crossing circuitry 1070 may be implemented in a relatively simple manner, andintegrated circuit chip 1010 may leverage additional performance asresource 220 may be accessed at a higher frequency. Clocking circuitry 1030 may, for example, generate andoutput clock signal 1034 at a frequency from approximately 300 MHz to approximately 400 MHz andclock signal 1036 at a frequency from approximately 600 MHz to approximately 800 MHz. -
Clock crossing circuitry 1070 for one embodiment may also be double-pumped to better exploit the relatively faster access rate forresource 220. - Clocking circuitry1030 may generate and output clock signals 1032, 1034, 1036, and 1038 in any suitable manner. For one embodiment, clocking circuitry 1030 may be implemented by modifying
clocking circuitry 230 as illustrated in FIG. 4 such that phase lockedloop 244 generates andoutputs clock signal 234 tomodule 214 and another separate clock signal to multiplexingcircuitry 250. - Although described in the context of enabling two modules to share one portion of a resource, the present invention may be extended to enable two or more modules to share access to at least a portion of a resource or to share access to more than one portion of a resource in a selective manner. The resource may be apportioned, if at all, into any suitable number of portions of any suitable size or fraction of the resource. Suitable clocking circuitry may be used to drive any such portion with a clock signal to enable that portion to be accessed by only one module or to selectively drive any such portion with a clock signal to allow that portion to be shared between or among more than one module.
- As one example, clocking
circuitry 230 may comprise suitable circuitry to selectively applyclock signal 238 with substantially the same frequency asclock signal 232 orclock signal 234 to drive at leastportion 222 ofresource 220 to allowmodule 212 ormodule 214, respectively, to accessportion 222 ofresource 220. - As another example, clocking
circuitry 230 may comprise suitable circuitry to selectively applyclock signal 236 with substantially the same frequency asclock signal 232,clock signal 234, or another clock signal driving another module to drive at leastportion 224 ofresource 220 to allowmodule 212,module 214, or the other module, respectively, to accessportion 224 ofresource 220. - Although described in the context of two modules and a resource integrated on the same integrated circuit chip, the present invention may be extended to enable resource sharing between or among two or more modules in a system implemented on more than one integrated circuit.
- In the foregoing description, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit or scope of the present invention as defined in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims (30)
1. A method comprising:
applying a first clock signal having a first frequency to drive a first module;
applying a second clock signal having a second frequency to drive a second module, wherein the second frequency is different from the first frequency; and
selectively applying a third clock signal with a frequency substantially the same as the first frequency to drive at least one portion of a resource to allow the first module to access the one portion of the resource and with a frequency substantially the same as the second frequency to drive at least the one portion of the resource to allow the second module to access the one portion of the resource.
2. The method of claim 1 , comprising applying a fourth clock signal with a frequency substantially the same as the first frequency to drive at least another portion of the resource to allow the first module to access the other portion.
3. The method of claim 2 , wherein the selectively applying comprises applying the third clock signal with a frequency substantially the same as the second frequency to drive at least the one portion of the resource while the fourth clock signal is applied to drive at least the other portion of the resource.
4. The method of claim 1 , comprising halting the first clock signal while applying the third clock signal with a frequency substantially the same as the second frequency to drive at least the one portion of the resource.
5. An apparatus comprising:
a resource comprising at least one portion;
a first module to access at least the one portion of the resource;
a second module to access at least the one portion of the resource; and
clocking circuitry coupled to drive the first module with a first clock signal having a first frequency, coupled to drive the second module with a second clock signal having a second frequency different from the first frequency, and coupled to drive at least the one portion of the resource selectively with a third clock signal with a frequency substantially the same as the first frequency and with a frequency substantially the same as the second frequency.
6. The apparatus of claim 5 , wherein the resource comprises at least the one portion and another portion; and
wherein the clocking circuitry is coupled to drive at least the other portion of the resource with a fourth clock signal with a frequency substantially the same as the first frequency.
7. The apparatus of claim 6 , wherein the clocking circuitry drives at least the one portion of the resource with the third clock signal with a frequency substantially the same as the second frequency while driving at least the other portion of the resource with the fourth clock signal.
8. The apparatus of claim 5 , wherein the clocking circuitry halts the first clock signal while driving at least the one portion of the resource with the third clock signal with a frequency substantially the same as the second frequency.
9. The apparatus of claim 5 , wherein the clocking circuitry comprises a multiplexer to output the first clock signal or the second clock signal selectively as the third clock signal to at least the one portion of the resource.
10. The apparatus of claim 5 , wherein the clocking circuitry comprises a plurality of multiplexers each to output the first clock signal or the second clock signal selectively as the third clock signal to a respective clock tap of the resource.
11. The apparatus of claim 5 , wherein the clocking circuitry comprises a first phase locked loop to generate the first clock signal and a second phase locked loop to generate the second clock signal.
12. The apparatus of claim 5 , wherein the first module comprises a processor and the second module comprises a graphics engine.
13. The apparatus of claim 5 , wherein the resource comprises a memory.
14. The apparatus of claim 5 , wherein the first module, the second module, and the resource are integrated on one chip.
15. An integrated circuit chip comprising:
a cache memory comprising at least one portion;
a processor to access at least the one portion of the cache memory;
a graphics engine to access at least the one portion of the cache memory; and
clocking circuitry coupled to drive the processor with a first clock signal having a first frequency, coupled to drive the graphics engine with a second clock signal having a second frequency different from the first frequency, and coupled to drive at least the one portion of the cache memory selectively with a third clock signal with a frequency substantially the same as the first frequency and with a frequency substantially the same as the second frequency.
16. The integrated circuit chip of claim 15 , wherein the cache memory comprises at least the one portion and another portion; and
wherein the clocking circuitry is coupled to drive at least the other portion of the cache memory with a fourth clock signal with a frequency substantially the same as the first frequency.
17. The integrated circuit chip of claim 16 , wherein the clocking circuitry drives at least the one portion of the cache memory with the third clock signal with a frequency substantially the same as the second frequency while driving at least the other portion of the cache memory with the fourth clock signal.
18. The integrated circuit chip of claim 15 , wherein the clocking circuitry halts the first clock signal while driving at least the one portion of the cache memory with the third clock signal with a frequency substantially the same as the second frequency.
19. The integrated circuit chip of claim 15 , wherein the clocking circuitry comprises a multiplexer to output the first clock signal or the second clock signal selectively as the third clock signal to at least the one portion of the cache memory.
20. The integrated circuit chip of claim 15 , wherein the clocking circuitry comprises a plurality of multiplexers each to output the first clock signal or the second clock signal selectively as the third clock signal to a respective clock tap of the cache memory.
21. The integrated circuit chip of claim 15 , wherein the clocking circuitry comprises a first phase locked loop to generate the first clock signal and a second phase locked loop to generate the second clock signal.
22. A computer system comprising:
(a) a main memory;
(b) a system clock; and
(c) an integrated circuit chip comprising:
(i) a cache memory comprising at least one portion,
(ii) a processor to access at least the one portion of the cache memory,
(iii) a graphics engine to access at least the one portion of the cache memory,
(iv) clocking circuitry coupled to the system clock, the clocking circuitry coupled to drive the processor with a first clock signal having a first frequency, coupled to drive the graphics engine with a second clock signal having a second frequency different from the first frequency, and coupled to drive at least the one portion of the cache memory selectively with a third clock signal with a frequency substantially the same as the first frequency and with a frequency substantially the same as the second frequency, and
(v) a memory controller coupled to the processor, to the graphics engine, and to the main memory to control access to the main memory.
23. The computer system of claim 22 , wherein the cache memory comprises at least the one portion and another portion; and
wherein the clocking circuitry is coupled to drive at least the other portion of the cache memory with a fourth clock signal with a frequency substantially the same as the first frequency.
24. The computer system of claim 22 , wherein the clocking circuitry comprises a multiplexer to output the first clock signal or the second clock signal selectively as the third clock signal to at least the one portion of the cache memory.
25. An apparatus comprising:
a resource comprising at least one portion;
a first module to access at least the one portion of the resource;
a second module to access at least the one portion of the resource;
clocking circuitry coupled to drive the first module with a first clock signal having a first frequency, coupled to drive the second module with a second clock signal having a second frequency different from the first frequency, and coupled to drive at least the one portion of the resource selectively with a third clock signal with a frequency substantially the same as the first frequency and with a third frequency different from the first frequency and from the second frequency; and
clock crossing circuitry coupled to the second module and to the resource to allow the second module to access the resource while the clocking circuitry drives the resource with the third clock signal with the third frequency.
26. The apparatus of claim 25 , wherein the resource comprises at least the one portion and another portion; and
wherein the clocking circuitry is coupled to drive at least the other portion of the resource with a fourth clock signal with a frequency substantially the same as the first frequency.
27. The apparatus of claim 26 , wherein the clocking circuitry drives at least the one portion of the resource with the third clock signal with the third frequency while driving at least the other portion of the cache memory with the fourth clock signal.
28. The apparatus of claim 25 , wherein the clocking circuitry halts the first clock signal while driving at least the one portion of the resource with the third clock signal with the third frequency.
29. The apparatus of claim 25 , wherein the clocking circuitry comprises a multiplexer to output the first clock signal or another clock signal having the third frequency selectively as the third clock signal to at least the one portion of the resource.
30. The apparatus of claim 25 , wherein the first module comprises a processor, the second module comprises a graphics engine, and the resource comprises a memory; and
wherein the first module, the second module, and the resource are integrated on one chip.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/732,505 US20040123176A1 (en) | 2000-09-08 | 2003-12-09 | Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/657,559 US6735712B1 (en) | 2000-09-08 | 2000-09-08 | Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains |
US10/732,505 US20040123176A1 (en) | 2000-09-08 | 2003-12-09 | Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/657,559 Continuation US6735712B1 (en) | 2000-09-08 | 2000-09-08 | Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040123176A1 true US20040123176A1 (en) | 2004-06-24 |
Family
ID=32230644
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/657,559 Expired - Lifetime US6735712B1 (en) | 2000-09-08 | 2000-09-08 | Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains |
US10/732,505 Abandoned US20040123176A1 (en) | 2000-09-08 | 2003-12-09 | Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/657,559 Expired - Lifetime US6735712B1 (en) | 2000-09-08 | 2000-09-08 | Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains |
Country Status (1)
Country | Link |
---|---|
US (2) | US6735712B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130072256A1 (en) * | 2011-09-19 | 2013-03-21 | Broadcom Corporation | Systems and Methods for Reducing Power Consumption of a Communications Device Using Multiple Elements in a Receiver Chain |
EP2879017A3 (en) * | 2013-11-27 | 2015-12-02 | Intel IP Corporation | Performing an operating frequency change using a dynamic clock control technique |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3672874B2 (en) * | 2002-01-25 | 2005-07-20 | Necマイクロシステム株式会社 | Data processing device |
US7555585B2 (en) * | 2006-06-30 | 2009-06-30 | Broadcom Corporation | Optimized performance and power access to a shared resource in a multiclock frequency system on a chip application |
US7752373B2 (en) * | 2007-02-09 | 2010-07-06 | Sigmatel, Inc. | System and method for controlling memory operations |
GB2450564B (en) | 2007-06-29 | 2011-03-02 | Imagination Tech Ltd | Clock frequency adjustment for semi-conductor devices |
US8132036B2 (en) * | 2008-04-25 | 2012-03-06 | International Business Machines Corporation | Reducing latency in data transfer between asynchronous clock domains |
US8141024B2 (en) * | 2008-09-04 | 2012-03-20 | Synopsys, Inc. | Temporally-assisted resource sharing in electronic systems |
US8453084B2 (en) | 2008-09-04 | 2013-05-28 | Synopsys, Inc. | Approximate functional matching in electronic systems |
US10713069B2 (en) | 2008-09-04 | 2020-07-14 | Synopsys, Inc. | Software and hardware emulation system |
US9933845B2 (en) * | 2014-11-24 | 2018-04-03 | Intel Corporation | Apparatus and method to provide multiple domain clock frequencies in a processor |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448715A (en) * | 1992-07-29 | 1995-09-05 | Hewlett-Packard Company | Dual clock domain interface between CPU and memory bus |
US5818464A (en) * | 1995-08-17 | 1998-10-06 | Intel Corporation | Method and apparatus for arbitrating access requests to a shared computer system memory by a graphics controller and memory controller |
US5854637A (en) * | 1995-08-17 | 1998-12-29 | Intel Corporation | Method and apparatus for managing access to a computer system memory shared by a graphics controller and a memory controller |
US5999197A (en) * | 1993-10-15 | 1999-12-07 | Hitachi, Ltd. | Synchronized data processing system and image processing system |
US6098139A (en) * | 1998-05-27 | 2000-08-01 | 3Com Corporation | Frequency independent asynchronous clock crossing FIFO |
US6161168A (en) * | 1995-08-28 | 2000-12-12 | Hitachi, Ltd. | Shared memory system |
US6189076B1 (en) * | 1997-11-14 | 2001-02-13 | Lucent Technologies, Inc. | Shared synchronous memory with a switching circuit controlled by an arbiter and method for glitch free switching of a clock signal |
US6327667B1 (en) * | 1995-05-12 | 2001-12-04 | Compaq Computer Corporation | Apparatus and method for operating clock sensitive devices in multiple timing domains |
US6401176B1 (en) * | 1997-11-14 | 2002-06-04 | Agere Systems Guardian Corp. | Multiple agent use of a multi-ported shared memory |
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
-
2000
- 2000-09-08 US US09/657,559 patent/US6735712B1/en not_active Expired - Lifetime
-
2003
- 2003-12-09 US US10/732,505 patent/US20040123176A1/en not_active Abandoned
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448715A (en) * | 1992-07-29 | 1995-09-05 | Hewlett-Packard Company | Dual clock domain interface between CPU and memory bus |
US5999197A (en) * | 1993-10-15 | 1999-12-07 | Hitachi, Ltd. | Synchronized data processing system and image processing system |
US6327667B1 (en) * | 1995-05-12 | 2001-12-04 | Compaq Computer Corporation | Apparatus and method for operating clock sensitive devices in multiple timing domains |
US5818464A (en) * | 1995-08-17 | 1998-10-06 | Intel Corporation | Method and apparatus for arbitrating access requests to a shared computer system memory by a graphics controller and memory controller |
US5854637A (en) * | 1995-08-17 | 1998-12-29 | Intel Corporation | Method and apparatus for managing access to a computer system memory shared by a graphics controller and a memory controller |
US6222564B1 (en) * | 1995-08-17 | 2001-04-24 | Intel Corporation | Method and apparatus for managing access to a computer system memory shared by a graphics controller and a memory controller |
US6161168A (en) * | 1995-08-28 | 2000-12-12 | Hitachi, Ltd. | Shared memory system |
US6189076B1 (en) * | 1997-11-14 | 2001-02-13 | Lucent Technologies, Inc. | Shared synchronous memory with a switching circuit controlled by an arbiter and method for glitch free switching of a clock signal |
US6401176B1 (en) * | 1997-11-14 | 2002-06-04 | Agere Systems Guardian Corp. | Multiple agent use of a multi-ported shared memory |
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
US6098139A (en) * | 1998-05-27 | 2000-08-01 | 3Com Corporation | Frequency independent asynchronous clock crossing FIFO |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130072256A1 (en) * | 2011-09-19 | 2013-03-21 | Broadcom Corporation | Systems and Methods for Reducing Power Consumption of a Communications Device Using Multiple Elements in a Receiver Chain |
US8874055B2 (en) * | 2011-09-19 | 2014-10-28 | Broadcom Corporation | Systems and methods for reducing power consumption of a communications device using multiple elements in a receiver chain |
EP2879017A3 (en) * | 2013-11-27 | 2015-12-02 | Intel IP Corporation | Performing an operating frequency change using a dynamic clock control technique |
Also Published As
Publication number | Publication date |
---|---|
US6735712B1 (en) | 2004-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7657775B1 (en) | Dynamic memory clock adjustments | |
JP3960583B2 (en) | Semiconductor memory device and system having memory module including the same | |
US7127563B2 (en) | Shared memory architecture | |
KR101881089B1 (en) | Memory controllers, systems, and methods for applying page management policies based on stream transaction information | |
US20040139359A1 (en) | Power/performance optimized memory controller considering processor power states | |
US6735712B1 (en) | Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains | |
US7702944B2 (en) | Dynamic frequency scaling sequence for multi-gigahertz microprocessors | |
US6848058B1 (en) | Power reduction circuit and method with multi clock branch control | |
US20040076044A1 (en) | Method and system for improving access latency of multiple bank devices | |
US8443122B2 (en) | Asynchronous upsizing circuit in data processing system | |
US20040268029A1 (en) | Method and apparatus for using SDRAM to read and write data without latency | |
US5564042A (en) | Asynchronous clock switching between first and second clocks by extending phase of current clock and switching after a predetermined time and appropriated transitions | |
US6112307A (en) | Method and apparatus for translating signals between clock domains of different frequencies | |
JP2008165790A (en) | Modular memory controller clocking architecture | |
US6948017B2 (en) | Method and apparatus having dynamically scalable clock domains for selectively interconnecting subsystems on a synchronous bus | |
JP2004506975A (en) | Efficient clock start and stop device for clock forward system I / O | |
WO2006050983A1 (en) | Memory access using multiple sets of address/data lines | |
US6502173B1 (en) | System for accessing memory and method therefore | |
US8239695B2 (en) | Information processing device | |
US5598112A (en) | Circuit for generating a demand-based gated clock | |
US6954869B2 (en) | Methods and apparatus for clock domain conversion in digital processing systems | |
JP2003506807A (en) | Multiple data transfer speed memory | |
US7165184B2 (en) | Transferring data between differently clocked busses | |
US6928027B2 (en) | Virtual dual-port synchronous RAM architecture | |
US6975152B1 (en) | Flip flop supporting glitchless operation on a one-hot bus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |