Abstract:
A current source based multilevel bus driver and converter suitable to simultaneously insect precise magnitudes of current from multiple locations into common lines of a bus and then detect analog sums of the net current. The analog current sums so detected are decoded into digital equivalents corresponding to the respective current injection sources. In a typical application the current source drivers and converter are Located on separate integrated circuit chips. The reference node common to all the chips allows a reference generator on each chip to precisely define bias and transmitted current levels suitable to ensure precise values of injected current and to accurately differentiate between analog current levels in each line as an aspect of conversion into digital form and attribution as to origin.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     The present application is related to U.S. Pat. Nos. 5,815,107, 5,793,233, and 5,760,601. All the applications are assigned to the assignee of the present application. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates generally to multilevel coding and decoding of signals. More particularly, the invention is directed to multilevel current source driving, detection, and use in late selection of cache data in a digital processing system. 
     BACKGROUND OF THE INVENTION 
     A digital data processing systems, and in particular computer processors, continually press for higher operating frequencies as typically measured by clock rates. With processors having multiple execution units it is not at all unusual to have instructions executed completely with one clock cycle. In those contexts, instructions and data must be accessible at the same clock rate if processor stalls are to be avoided. In furtherance of this objection, modern computer systems have processors with cache memories, often of multiple levels, the memory designs being refined to exhibit accessing rates approaching the processor clock rates. A generalized example of such a system is schematically depicted in FIG. 1, where processor 1 having onboard level 1 (L1) cache 2 is connected through level 2 (L2) cache 3 to system bus 4. As commonly implemented, system bus 4 also has attached thereto input/output communication resource 6 as well as main memory 7. Furthermore, in contemporary computer systems it is not at all unusual to have multiple processors, such as processor 8, also connected to system bus 4. 
     Given the contention for access to bus 4 in pursuit of instructions and data originally stored in main memory 7, processor 1 utilizes L2 cache 3 and L1 cache 2 to improve the match between the clock rate capability of processor 1 and the read and write access capabilities of the various memory devices storing instructions and data. Since cache architectures are well known by those routinely practicing in the contemporary computer processor technologies, it should be sufficient to note that lines of data A from main memory 7 are stored as cache lines in L2 cache 3, generally at 9, with their associated address tags, generally at 11. Some cache lines and related address tags are also stored in L1 level cache 2, that being a subset of what is in larger L2 cache 3, which is itself a subset of the information stored in main memory 7. Note that L1 cache 2 is shown within the boundaries of processor 1, the depiction representing a typical modern processor architecture in which the L1 cache is on a common integrated circuit chip with the processor. In contrast, the materially larger L2 cache resides on one or more separate integrated circuit chips. 
     FIG. 2 schematically depicts the elements of a typical L1 cache, where the cache is physically located on the same integrated circuit chip with a processor and is two-way set associative to optimize the match between the clock rate capability of the processor and the access capability of the cache memory. The architecture is commonly referred to as being a &#34;late select&#34;, in that data is simultaneously extracted from both banks of the cache and stored in a set of registers for selective transfer to the processor late in the clock cycle. The select signal which defines the data set provided to the processor, from the data sets on bus 1 and bus 2, is derived from a search of the address tags in the two halves of the cache by the search engine. With the processor clock rates being so high, there is insufficient time to search the address tags, to identify which section of the cache holds the data for the specified address, and to access and transfer that data to the processor all within the clock cycle. In fact, the practice depicted in FIG. 2 transmits both data sets potentially defined by the requested address to a late select multiplexer just outside the processor, and in parallel time resolves the search of the address tags to decide, and late select, between the two. 
     Though the architecture depicted in FIG. 2 is suitable for most on-chip applications, it is not considered suitable for designs in which the processor and cache memory reside on separate chips in that two full 64-bit bus lines (assuming a 32-bit processor architecture) must extend across the printed circuit board for each section of the cache. The duplication of bus lines from the cache sections to a location immediately proximate or actually into the processor chip is not considered viable from a printed circuit board real estate, processor pin-out and cost perspective. 
     FIG. 3 schematically illustrates the conventional implementation of a 2-way set associative cache in which the cache memory chip or chips are connected through a common board level bus to the processor, the processor itself residing on a separate chip. Though the common bus avoids the bus line duplication noted earlier, it does not provide the capability for late selection in that the data must move over a single bus. Therefore, in the context of the architecture in FIG. 3, designers often have the search engine undergo a speculative selection between the cache sections, place that data on the board level data bus for access by the processor, and, late in the clock cycle, confirm the validity of the data. When the speculative architecture in FIG. 3 chooses the wrong cache section, a multiple clock cycle delay is needed to replace the data with that from the other cache section. Since the run lengths and capacitive loading of board level wiring lines are significantly greater than those associated with cache lines internal to an integrated circuit chip, it is not possible to switch within a clock cycle between cache sections when a speculative choice is found to be incorrect. 
     Therefore, what is needed is an architecture for an associative cache in which the cache memory and the processor reside on separate integrated circuit chips while sharing a common board level bus, yet can within a clock cycle provide the data from the correct cache section to the processor in the context of having to complete an address tag search of both cache sections. In a more generalized sense, there is a need for resources by which multilevel signals originating in different devices can be transmitted simultaneously over the same line and decoded at a common receiving end for appropriate binary level attribution to the respective transmitting devices. The desired multilevel transmission and conversion back to binary form should avoid the common problems attributable to multilevel voltage transmission as experienced in the prior art. 
     SUMMARY OF THE INVENTION 
     The problems in the prior art are addressed and solved through a late selection architecture for a set associative cache having two or more cache sections that provide data to a processor over a common bus, comprising a means for selecting digital data for addresses in the cache sections, means for generating analog currents in amounts attributable to cache sections and in response to the digital data selected in the cache sections, means for injecting the generated analog currents into lines of the common bus, means for detecting net analog currents injected in lines of the common bus, means for converting the detected net analog currents into digital data attributable to individual cache sections, and means for selecting the desired digital data from among digital data attributable to individual cache sections in response to a late select signal. 
     In another form, the invention is directed to apparatus for simultaneously transmitting digital data over a common bus using multilevel current sources and current summing, comprising means for generating in a first device connected to the common bus currents of first or second magnitude in representation of respective first or second binary states in the first device, means for generating in a second device connected to the common bus currents of first or third magnitude in representation of respective first or second binary states in the second device, means for selectively injecting first or second magnitude currents from the first device, and first or third magnitude currents from the second device, into a first line of the bus responsive to the binary states to be represented by each device on the first line, means for detecting respective individual net sums of injected currents in the first line of the bus, reference node linking the means for generating in the first device, the means for generating in the second device, and the means for detecting respective individual net sums, to provide a common reference voltage for deriving the first, second and third magnitude currents, and means for converting detected net sums of injected current into first and second binary values individually attributable to first and second devices responsive to the voltage on the reference node. 
     In an particularized form, a two-way set associative cache situated on an integrated circuit chip distinct from the processor is connected to a board level data bus common to the processor integrated circuit device. The two sections of the cache are simultaneously addressed and have their respective binary data simultaneously provided onto the data bus through respective current source drivers generating distinct current levels. A multilevel converter interfaces the data bus at the processor integrated circuit device, the multilevel converter detecting and decoding the net currents on the lines of the data bus into binary values respectively associated with the two cache sections. Late selection is accomplished by signals from the search engine responsive to address tags in the respective cache sections using a multiplexer situated on the processor integrated circuit device. Current levels are accurately generated and decoded through the use of a reference node common to all current source drivers and the multilevel converter. 
     As further generalized, the invention provides resources for having two data sources generate respective current levels to drive a common line, with the current sum being detected and decoded in a multilevel converter located distinct from the two data sources. 
     These and other features of the invention will be more clearly understood and appreciated upon considering the detailed embodiment which is set forth hereinafter. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic block diagram of classical computer system. 
     FIG. 2 is a schematic block diagram of a processor and on-board cache with late select. 
     FIG. 3 is a schematic block diagram of a processor and cache system utilizing speculative selection and late validation. 
     FIG. 4 is a schematic block diagram depicting a board level embodiment of the invention including separate processor and cache integrated circuit chips. 
     FIG. 5 is a schematic depicting current source drivers and related bias and reference functions. 
     FIG. 6 is a schematic depicting a composite reference generator. 
     FIG. 7 is a schematic depicting a multilevel converter. 
     FIG. 8 is a schematic diagram depicting current levels on the bus lines and binary equivalents. 
     FIG. 9 is a schematic depicting an active terminator. 
     FIG. 10 is a schematic depicting a high speed current source switch. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 4 depicts by block diagram a preferred embodiment of the invention in the context of a computer system with processor integrated circuit, set associative cache integrated circuit, and a board level data bus. As preferably embodied, processor 12 is situated on integrated circuit chip 13, chip 13 including multiplexer 14, multilevel converter 16 and reference generator 17. FIG. 4 also depicts the presence of a two-way set associative cache comprised of two cache sections individually situated on separate integrated circuit chips 18 and 19. Each cache section, identified individually as cache section A and cache section B, includes respective associated memory array 21 and 22 for storing digital data in the form of cache lines, and respectively associated address tags 23 and 24. Search engine 26 receives addresses from processor 12, and searches address tags 23 and 24 to select. the appropriate cache section, and accesses cache lines of data from cache memory sections 21 and 22. The &#34;late select&#34; signal is transmitted to multiplexer 14. 
     Particularly unique to the present invention is the use of multiple current source drivers 27 and 28 associated with respective cache memory sections 21 and 22. Current source drivers 27 and 28 inject currents into board level data bus 29 individually by line based upon the binary content of the data to be transmitted for such line. The levels of currents provided by drivers 27 and 28 differ. 
     Multilevel converter 16 connected to bus 29 detects the analog sums of the currents on the lines of bus 29 and decodes from such net line currents the binary equivalents by line of the data being provided by cache sections 21 and 22. The relationship between net bus line current and digital data are presented at 31 in FIG. 4 and set forth in Table A, below. 
     
                       TABLE A______________________________________Net Bus Current ina Bus Line     Cache A Data                     Cache B Data______________________________________0              0          0i/2            0          1i              1          03i/2           1          1______________________________________ 
    
     Note that the current values identified as net bus currents in Table A are relative to bias currents to be described hereinafter. 
     Selection between cache sections, and the associated choice of the data to be presented to processor 12, is accomplished by multiplexer 14. The operation can be performed late in the cache read clock cycle since data from both sections of the cache are read from the cache sections, transmitted, fully decoded, and available on the processor chip 13 when the final selection is received from search engine 26. 
     An important aspect of the invention involves the accurate generation and differentiate of current levels in the context of field effect transistor implemented integrated circuit devices. Early concepts were introduced in U.S. Pat. No. 5,568,064, the subject matter of which is incorporated herein by reference. Later refinements, as will be described hereinafter, appeared in U.S. patent application Ser. No. 08/703,317, filed Aug. 26, 1996, the subject matter of which is incorporated herein by reference, and in U.S. patent application Ser. No. 08/703,318, filed Aug. 26, 1996, the subject matter of which is also incorporated herein by reference. Accurate generation of current source signals, detection of current levels, and conversion to binary are accomplished through the use of reference generators 17, 32 and 33, where reference generator 17 resides on processor chip 13, reference generator 32 resides on integrated circuit chip 18 in common with cache section A, and reference generator 33 resides on integrated circuit chip 19 in common with cache section B. Reference generators 17, 32, and 33 are linked by line 34 having a common node voltage V ref . The voltage on line 34 establishes a mutually derived voltage level which is then used by each reference generator to accurately replicate corresponding levels of transmitted current (I T ), bias current (I B ) and reference bias voltage (V B ). 
     Though the depiction and table are described in the context of a two-way set associative cache the underlying concepts are not that limited and therefore may be extended through analogous implementation to an n-way set associative cache. 
     FIG. 5 schematically depicts in greater detail elements from current source driver 27 in FIG. 4. In particular, the depiction shows the elements used to drive data example bus lines 0 and 5. Reference generator 32 provides transmission current; signal I T  on line 36 and bias current signal I B  on line 37 to pairs of current source drivers connected to each data bus lines. For example, as to data bus line 0, bias signal I B  generates in driver 38 a bias current of level i B . Similarly, signal I T  causes current source 39 to generate a transmission current level i T  when the data on line 0 is a binary 1 so as to enable gate 41. When the data on line 0 is a binary 0 gate 41 is disabled and current source 39 produces no output. Thus, current source 39 modulates between 0 output and output i T  depending on the binary state of the data on line 0. The bias and data currents driving line 5 of the data bus are similarly generated and modulated. Line 0 data which enables gate 41 comes from the cache memory array in conventional manner for the respective line. 
     For purposes of contrast, as illustrated by dashed lines generally at 40, note that the corresponding bus line 0 of cache section B generates a bus current of 0 and i T  /2 for corresponding for binary data values of 0 and 1. 
     Reference generators 17, 32 and 33 in FIG. 4 are critical elements in the successful operation of the system. Since each reference generator resides on the corresponding integrated circuit chip, the operation of its active and passive devices reflects characteristics common to other devices on that chip. With the reference generator 17 being on a common chip with multilevel converter 16, reference generator 32 being on a common chip with current source drivers 27, and reference generator 33 being on a common chip with current source drivers 28, not only are the respective fabrication effects linked but so too are the thermal effects as the individual chips vary in temperature. The three reference generators themselves are interconnected through node 34, so that the commonly defined node voltage V ref  can be used to precisely establish biases and transmission signals, namely V B , I B , and I T . 
     Bias signal I B  eminating from reference generator 33 in FIG. 4 is depicted by dashed line in that the current bias on each line of data bus 29 may originate at any one of the reference generators, or may be the result of multiple contributors as long as the net injected bias current is of value i B . 
     FIG. 6 schematically depicts a composite reference generator, namely one that provides all the reference signals V B , I B  and I T  as may be used in conjunction with current source drivers 27 and 28 as well as multilevel converter 16. All the signal generators depicted in the composite reference generator of FIG. 6 may not be needed on each chip. For example, multilevel converter 16 (FIG. 4) does not utilize reference signal I B , and correspondingly does not require the generation of the signal in reference generator 17. In contrast, some signals may need to be generated as an aspect of operating the reference generator, an example being signal V B . 
     Reference generator 42 in FIG. 6 uses signal V B  to balance the currents i T  flowing in terminators 44 and 46, where the current i T  flowing in terminator 46 is current mirror generated by field effect transistor 47 as effected by the interconnection with reference node V ref , while the current i T  flowing in field effect transistor 48 is a direct current mirror outcome. The current i T  flowing in field effect transistor 49 is a current mirror of that in field effect transistor 51 and appears as a signal output I T  for current mirror matching. Current i T  flows through accurate resistors 52 and 53, each resistor preferably having a value Z o  representing the characteristic impedance of the lines of data bus 29 (FIG. 4). Amplifier 54 adjusts the level of signal i t  accordingly. 
     Bias signal I B  is generated through the current mirror operation of field effect transistors 57 and 58 responsive to amplifier 59, where amplifier 59 detects the signal through the earlier noted characteristic impedance resistors 52 and 53 in relation to the bias current effects on terminator 61. 
     Other refinements of reference generator 42 in FIG. 6 are described in the aforementioned copending U.S. patent application Ser. No. 08/703,317, filed Aug. 26, 1996. 
     FIG. 7 depicts a detailed embodiment of multilevel converter 16 (FIG. 4) as applied to board level data bus line 5, functionally depicted as transmission line 62. Note that three current sources drive data bus line 5, namely, line 5 bias current i B , line 5 data current from section A of the cache, having current levels 0 or i T , and line 5 data current from the cache section B, having data current levels of 0 or i T  /2. The sum or net current received at node 63, representing the input for line 5 of the board level data bus 29 (FIG. 4), appears in increments as shown depending on the data content read from the cache sections. The net currents start at a base level of i B , representing 0, and increase in successive i T  /2 increments to represent data as described in Table A. The net current appearing at node 63 is sunk by active terminator 64. Active termination 64 is preferred in that it maintains the accuracy sought through the use of multiple functionally matched reference generators. 
     The current sinking signal generated in active terminator 64 is replicated by current mirror transistors 66 and 67. The current sources 68 and 69 are generated using conventional current mirror techniques in response to the reference signal i T  as created in reference generator 17 (FIG. 4). Note that current source 69 is selectively enabled and disabled by high speed current source switch 71. Current source 72 of magnitude i T  /4 is similarly generated, with a current mirrored replication in field effect transistors 73 and 74. The combination of switched and non-switched multiple level current sources in multilevel converter 16 allows one to distinguish between current levels, above the bias current i B , using thresholds of i T  /4, 3i T  /4 and 5i T  /4 to differentiate between net current levels of 0, i T  /2, i T , and 3i T  /2. 
     Waveforms depicting the differentiation and the corresponding binary outputs on bit lines 1 and 2 are depicted by plots in FIG. 8. The first plot shows the various levels of analog current sums, such as would appear on node 63 (FIG. 7) and the corresponding outputs on bit lines 1 and 2. High speed current. source switch 71 (FIG. 7) ensures that the turn-on of bit 1 shown by the spike in the third plot is sufficiently brief to avoid an erroneous interpretation of the decoded output. 
     FIG. 9 shows active terminator transistors 76, 77, and 78. Note that transistor 77 is biased by the supply voltage V DD  common to the other field effect transistor devices in the chips. Transistor 76, however, is subject to a gate drive defined by reference voltage V B . The currents being terminated, various levels of i T  and i B , generate an output signal from node 79 suitable for current mirror replication in the manner used repeatedly in the present invention. The active terminator in FIG. 9 is selected to maximize the match of transistor characteristics as may appear on different integrated circuit chips and as may be further affected by temperature variations. 
     An implemention of high speed current source switch 71 appears in FIG. 10 of the drawings. The switch is driven by bit line 2 and is utilized to enable current source 69 (FIG. 7) with minimum delay. The current sources i T  /n are generated through current mirror scaled replication of signal i T  from reference generator 17 (FIG. 4). 
     The fundamental concept of simultaneously transmitting data from sections of a set associative cache as embodied for a two-way set associative cache in FIG. 4 clearly is applicable for more than two sections, adjusting accordingly for the current source driver and multilevel converter granularity. The fundamental underlying concepts are fully applicable to the extent that integrated circuit tolerances permit differentiation between levels. 
     The concepts embodied in the two-way set associative cache and simultaneous data transmission over a common bus are equally applicable to other forms of simultaneous multilevel transmissions of information over such bus. The key objective is to utilize accurately referenced current sources at the transmitting end and an accurately referenced multilevel converter at the receiving end, the accuracy preferably being established and maintained through the use of multiple reference generators and a common reference node. 
     It will be understood that those skilled in the art that the embodiment set forth hereinbefore is merely exemplary of the numerous arrangements by which the invention may be practiced, and as such may be replaced by equivalents without departing from the invention which will now be defined by appended claims.