Late selection architecture for a cache

Abstract: A current source based multilevel bus driver and converter suitable to simultaneously inject 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: 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. 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 practising 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 "late select", 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. IBM Technical Disclosure Bulletin, "Binary Quaternary Encoder Decoder.June 1969", Vol. 12, no.1, June 1969, pages 22-23, describes a binary to quaternary encoder and decoder having two binary inputs and two binary outputs. U.S. Patent No. 4,101,734 describes a binary to multistate line driver and remote receiver including a line driver comprising first and second injection logic encoder circuits. The circuits have current injectors and are connected to receive respective first and secondary binary signals to provide analog outputs at a signal output terminal in response to the input signals. The encoder circuits each have current injectors with substantially similar structural characteristics. The line driver further includes a reference channel cirucit connected to a reference terminal to provide a reference to the encoded signals. The reference circuit has a current injector with structural characteristics substantially similar to the encoder circuit current injectors. A remote receiver has reference and signal inputs connected to the corresponding driver outputs and includes a reference level circuit for generating predetermined threshold reference levels from the reference signal, an input circuit for receiving signals and generating plural replicated outputs and a threshold detector circuit having two binary outputs and further having plural input nodes connected to the threshold signal level and the replicated outputs. The inputs at the threshold detector nodes are compared and the threshold detector circuit provides a binary output from the encoded input signal which is a replica of the binary signal outputs. 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. The problems in the prior art are addressed and solved through a late selection architecture as set forth in claim 1. 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. An embodiment of the invention will now be described with reference to the accompanying drawings, in which: Fig. 1 is a schematic block diagram of a 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. 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 "late select" 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. Net Bus Current in a Bus Line Cache A Data Cache B Data 0 0 0 i/2 0 1 i 1 0 3i/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. Patent 5,568,064. Later refinements, as will be described hereinafter, appeared in U. S. Patent Application Serial No. 08/703,317, filed August 26, 1996, and in U. S. Patent Application Serial No. 08/703,318, filed August 26, 1996. 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 implementations 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 Serial No. 08/703,317, filed August 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, iT / 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.

Claims: Late select architecture for a L1 n-way set associative cache having two or more cache sections that provide data to a processor (12) over a common bus (29), wherein the processor (12) is on a different integrated circuit chip from the cache sections, and wherein the bus is an onboard level data bus, comprising: means (26) for simultaneously selecting digital data in the cache sections during a read clock cycle in response to an address tag search; reference generators means (32,33) for generating analog currents in amounts attributable to cache sections and in response to the digital data selected in the cache sections; current source drivers means (27,28) for injecting the analog currents generated from the selected cache sections, each at a distinct current level, individually by line into lines of the common bus; means (16) on processor chip for detecting net analog currents injected in the lines of the common bus; means (16) on processor chip for converting the detected net analog currents into digital data attributable to individual cache sections; and means (14) on processor chip for selecting late in the same read clock cycle the desired digital data from among digital data attributable to individual cache sections in response to a late select signal. The apparatus recited in claim 1, further comprising a reference node (17) linking the means (32) for generating analog currents to the means (16) for'converting the detected sums. The apparatus recited in claim 1, wherein the means (16) for detecting net analog currents is comprised of an active terminator (64) with current bias. The apparatus recited in claim 3, wherein the means (14) for selecting the desired digital data comprises a multiplexer on the processor integrated circuit chip. The apparatus recited in claim 1, wherein the means for converting detected net analog currents is a current to digital voltage converter on the processor integrated circuit chip. The apparatus recited in claim 2, wherein the reference node (17) conveys a reference voltage (V REF ) among integrated circuit chips, and in conjunction with active terminators (64) provides current mirror replication of current magnitudes.

Inventors: FRANKENY RICHARD FRANCIS, VENKATRAMANI KRISHNAMURTHY, FRANKENY, RICHARD FRANCIS, VENKATRAMANI, KRISHNAMURTHY
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1997
Main classification: G06F12
IPC codes: G06F12